@werckmeister/components 1.1.6-109 → 1.1.6-113

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,7 +31,7 @@ var t;!function(e){"object"==typeof exports&&"object"==typeof module?e(require("
31
31
  },{"../../lib/codemirror":"tQq4"}],"edJQ":[function(require,module,exports) {
32
32
  var e=require("codemirror/lib/codemirror.js");require("codemirror/addon/mode/simple.js"),e.defineSimpleMode("sheet",{start:[{regex:/"(?:[^\\]|\\.)*?(?:"|$)/,token:"string"},{regex:/(?:\w+):/,token:"keyword",next:"wmCommandValues"},{regex:/.*--WM-HIDDEN-LINE\s*$/,token:"comment wm-hidden-line"},{regex:/using/,token:"keyword"},{regex:/\\[pf]{1,5}/,token:"atom"},{regex:/--.*/,token:"comment"}],wmCommandValues:[{regex:/;|\//,token:"text",next:"start"},{regex:/[^;\/]*/,token:"variable"}],meta:{dontIndentStates:["comment"],lineComment:"--"}});
33
33
  },{"codemirror/lib/codemirror.js":"tQq4","codemirror/addon/mode/simple.js":"YCgH"}],"PWBo":[function(require,module,exports) {
34
- var e=require("codemirror/lib/codemirror.js");require("codemirror/addon/mode/simple.js");var o=["fromPosition","toPosition","onBeat","fromPitch","toPitch","pitch","instrument","fromBeat","toBeat","fromBar","toBar","onBar","nthBar","channel"],t=["velocity","timeOffset","duration","pitch"];e.defineSimpleMode("conductions",{start:[{regex:new RegExp("".concat(o.join("|"))),token:"tag"},{regex:new RegExp("".concat(t.join("|"))),token:"property"},{regex:/[0-9]\s*%{0,1}/,token:"number"},{regex:/--.*/,token:"comment"},{regex:/.*--WM-HIDDEN-LINE\s*$/,token:"comment wm-hidden-line"}],meta:{dontIndentStates:["comment"],lineComment:"--"}});
34
+ var e=require("codemirror/lib/codemirror.js");require("codemirror/addon/mode/simple.js");var o=["fromPosition","toPosition","onBeat","fromPitch","toPitch","pitch","instrument","fromBeat","toBeat","fromBar","toBar","onBar","nthBar","channel","all","withTag"],t=["velocity","timeOffset","duration","pitch"];e.defineSimpleMode("conductions",{start:[{regex:new RegExp("".concat(o.join("|"))),token:"tag"},{regex:new RegExp("".concat(t.join("|"))),token:"property"},{regex:/[0-9]\s*%{0,1}/,token:"number"},{regex:/--.*/,token:"comment"},{regex:/.*--WM-HIDDEN-LINE\s*$/,token:"comment wm-hidden-line"}],meta:{dontIndentStates:["comment"],lineComment:"--"}});
35
35
  },{"codemirror/lib/codemirror.js":"tQq4","codemirror/addon/mode/simple.js":"YCgH"}],"BzA4":[function(require,module,exports) {
36
36
  "use strict";function e(e,r){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=t(e))||r&&e&&"number"==typeof e.length){n&&(e=n);var i=0,o=function(){};return{s:o,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,u=!0,l=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return u=e.done,e},e:function(e){l=!0,a=e},f:function(){try{u||null==n.return||n.return()}finally{if(l)throw a}}}}function t(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function o(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),e}var a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),u=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return u(t,e),t},s=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e))}catch(t){o(t)}}function u(e){try{l(n.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(a,u)}l((n=n.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Editor=exports.Mode=void 0;var c=require("./SourceDocumentImpl"),f=l(require("lodash")),h=require("codemirror/lib/codemirror.js");require("codemirror/addon/hint/show-hint.js"),require("codemirror/mode/lua/lua.js"),require("./SheetMode"),require("./ConductionsSheetMode");var d,m="base16-dark";function v(e,t){var r=f.map(t,function(e){return"".concat(e,"?")}).join("");r=r.replace(/\./g,"\\.").replace(/\(/g,"\\(").replace(/\)/g,"\\)").replace(/\{/g,"\\{").replace(/\}/g,"\\}").replace(/\[/g,"\\[").replace(/\[/g,"\\]");var n=new RegExp("(".concat(r,")$"),"g");return(e.match(n)||[])[0]}function p(e,t){return(e.match(/.*="?(.*)/)||[])[1]}!function(e){e.sheet="sheet",e.text="text",e.lua="lua",e.conductions="conductions"}(d=exports.Mode||(exports.Mode={}));var y=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0;n(this,t),this.element=e,this.eventMarkClass="wm-marked",this.errorClass="wm-error",this.warningClass="wm-warning",i=i||{theme:"default"},this.editor=h(e,{value:r,theme:i.theme,mode:d[d.sheet],lineNumbers:i.lineNumbers})}return o(t,[{key:"activateAutoCompletion",value:function(e,t){var r=this;this.languageFeatures=e,h.registerHelper("hint","wmAutoComplete",function(e,n){return s(r,void 0,void 0,regeneratorRuntime.mark(function r(){var n,i,o,a,u,l,s;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return n=e.getCursor(),i=n.ch,o=i,a=new c.ActiveSourceDocument(e,t),r.next=5,this.languageFeatures.autoComplete(a);case 5:return u=r.sent,l=function(e){return e.file?e.file.isDirectory?"isFolder":"isFile":""},s={list:u.map(function(e){return{text:e.displayText,replaceText:e.text,isValueSuggestion:!!e.parameter,className:l(e),hint:function(e,t,r){var i=r.isValueSuggestion,a=e.getRange({line:n.line,ch:0},{line:n.line,ch:n.ch}),u=r.replaceText,l=((i?p(a,u):v(a,u))||"").length,s=o-l,c=o+l;s!==c&&(c-=1),e.replaceRange(r.replaceText,h.Pos(n.line,s),h.Pos(n.line,c))}}}),from:h.Pos(n.line,o),to:h.Pos(n.line,i)},r.abrupt("return",s);case 9:case"end":return r.stop()}},r,this)}))}),h.commands.autocomplete=function(e){e.showHint({hint:h.hint.wmAutoComplete,container:r.element})};var n=function(e,t){var r=t.getCursor();t.replaceRange(e,r),h.commands.autocomplete(t)};this.editor.setOption("extraKeys",{"Ctrl-Space":"autocomplete","'\"'":n.bind(null,'"'),"'/'":n.bind(null,"/"),"'_'":n.bind(null,"_"),"'='":n.bind(null,"=")})}},{key:"setMode",value:function(e){e!==d.text?this.editor.setOption("mode",d[e]):this.editor.setOption("mode",null)}},{key:"getValue",value:function(){return this.editor.getValue()}},{key:"setValue",value:function(e){this.editor.setValue(e)}},{key:"clearEventMarkers",value:function(){var t,r=e(this.editor.getAllMarks());try{for(r.s();!(t=r.n()).done;){var n=t.value;n.className!==this.warningClass&&n.className!==this.errorClass&&n.clear()}}catch(i){r.e(i)}finally{r.f()}}},{key:"clearAllMarkers",value:function(){var t,r=e(this.editor.getAllMarks());try{for(r.s();!(t=r.n()).done;){t.value.clear()}}catch(n){r.e(n)}finally{r.f()}}},{key:"setMarker",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0,i=this.editor.posFromIndex(e),o=this.editor.posFromIndex(t+1);return this.editor.markText(i,o,{className:r,attributes:n})}},{key:"setEventMarker",value:function(e,t){return this.setMarker(e,t,this.eventMarkClass)}},{key:"setErrorMarker",value:function(e,t){return this.setMarker(e,t,this.errorClass)}},{key:"setWarningMarker",value:function(e,t,r){return this.setMarker(t,r,this.warningClass,{title:e})}},{key:"update",value:function(){this.editor.refresh()}},{key:"isClean",value:function(){return this.editor.isClean()}},{key:"markClean",value:function(){this.editor.markClean()}},{key:"clearHistory",value:function(){this.editor.clearHistory()}}]),t}();exports.Editor=y;
37
37
  },{"./SourceDocumentImpl":"Glli","lodash":"B1iE","codemirror/lib/codemirror.js":"tQq4","codemirror/addon/hint/show-hint.js":"rbVD","codemirror/mode/lua/lua.js":"JTrO","./SheetMode":"edJQ","./ConductionsSheetMode":"PWBo"}],"LghJ":[function(require,module,exports) {
@@ -487,9 +487,9 @@ var process = require("process");
487
487
  var __dirname = "/home/runner/work/werckmeister-component/werckmeister-component/node_modules/@werckmeister/compilerjs";
488
488
  var Buffer = require("buffer").Buffer;
489
489
  var define;
490
- var r,t="/home/runner/work/werckmeister-component/werckmeister-component/node_modules/@werckmeister/compilerjs/werckmeister.js",e=require("process"),n="/home/runner/work/werckmeister-component/werckmeister-component/node_modules/@werckmeister/compilerjs",o=require("buffer").Buffer,i=function(){var r="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return void 0!==t&&(r=r||t),function(t){var i,a,u=void 0!==(t=t||{})?t:{};u.ready=new Promise(function(r,t){i=r,a=t});var s,c={};for(s in u)u.hasOwnProperty(s)&&(c[s]=u[s]);var f,l,d,m,p,h=[],v="./this.program",w=function(r,t){throw t},g="object"==typeof window,y="function"==typeof importScripts,_="object"==typeof e&&"object"==typeof e.versions&&"string"==typeof e.versions.node,E="";_?(E=y?require("path").dirname(E)+"/":n+"/",f=function(r,t){return m||(m=require("fs")),p||(p=require("path")),r=p.normalize(r),m.readFileSync(r,t?null:"utf8")},d=function(r){var t=f(r,!0);return t.buffer||(t=new Uint8Array(t)),x(t.buffer),t},l=function(r,t,e){m||(m=require("fs")),p||(p=require("path")),r=p.normalize(r),m.readFile(r,function(r,n){r?e(r):t(n.buffer)})},e.argv.length>1&&(v=e.argv[1].replace(/\\/g,"/")),h=e.argv.slice(2),e.on("uncaughtException",function(r){if(!(r instanceof kt))throw r}),e.on("unhandledRejection",function(r){throw r}),w=function(r,t){if(tr())throw e.exitCode=r,t;var n;(n=t)instanceof kt||k("exiting due to exception: "+n),e.exit(r)},u.inspect=function(){return"[Emscripten Module object]"}):(g||y)&&(y?E=self.location.href:"undefined"!=typeof document&&document.currentScript&&(E=document.currentScript.src),r&&(E=r),E=0!==E.indexOf("blob:")?E.substr(0,E.replace(/[?#].*/,"").lastIndexOf("/")+1):"",f=function(r){var t=new XMLHttpRequest;return t.open("GET",r,!1),t.send(null),t.responseText},y&&(d=function(r){var t=new XMLHttpRequest;return t.open("GET",r,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),l=function(r,t,e){var n=new XMLHttpRequest;n.open("GET",r,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?t(n.response):e()},n.onerror=e,n.send(null)});var b=u.print||console.log.bind(console),k=u.printErr||console.warn.bind(console);for(s in c)c.hasOwnProperty(s)&&(u[s]=c[s]);c=null,u.arguments&&(h=u.arguments),u.thisProgram&&(v=u.thisProgram),u.quit&&(w=u.quit);var j,D=0,S=function(r){D=r},F=function(){return D};u.wasmBinary&&(j=u.wasmBinary);var M,A=u.noExitRuntime||!0;"object"!=typeof WebAssembly&&sr("no native wasm support detected");var P,T=!1;function x(r,t){r||sr("Assertion failed: "+t)}function C(r){var t=u["_"+r];return x(t,"Cannot call unknown function "+r+", make sure it is exported"),t}function R(r,t,e,n,o){var i={string:function(r){var t=0;if(null!=r&&0!==r){var e=1+(r.length<<2);q(r,t=et(e),e)}return t},array:function(r){var t=et(r.length);return V(r,t),t}};var a=C(r),u=[],s=0;if(n)for(var c=0;c<n.length;c++){var f=i[e[c]];f?(0===s&&(s=rt()),u[c]=f(n[c])):u[c]=n[c]}var l=a.apply(null,u);return l=function(r){return 0!==s&&tt(s),function(r){return"string"===t?H(r):"boolean"===t?Boolean(r):r}(r)}(l)}var z,O,B,N,I,U="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function L(r,t,e){for(var n=t+e,o=t;r[o]&&!(o>=n);)++o;if(o-t>16&&r.subarray&&U)return U.decode(r.subarray(t,o));for(var i="";t<o;){var a=r[t++];if(128&a){var u=63&r[t++];if(192!=(224&a)){var s=63&r[t++];if((a=224==(240&a)?(15&a)<<12|u<<6|s:(7&a)<<18|u<<12|s<<6|63&r[t++])<65536)i+=String.fromCharCode(a);else{var c=a-65536;i+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else i+=String.fromCharCode((31&a)<<6|u)}else i+=String.fromCharCode(a)}return i}function H(r,t){return r?L(B,r,t):""}function Y(r,t,e,n){if(!(n>0))return 0;for(var o=e,i=e+n-1,a=0;a<r.length;++a){var u=r.charCodeAt(a);if(u>=55296&&u<=57343)u=65536+((1023&u)<<10)|1023&r.charCodeAt(++a);if(u<=127){if(e>=i)break;t[e++]=u}else if(u<=2047){if(e+1>=i)break;t[e++]=192|u>>6,t[e++]=128|63&u}else if(u<=65535){if(e+2>=i)break;t[e++]=224|u>>12,t[e++]=128|u>>6&63,t[e++]=128|63&u}else{if(e+3>=i)break;t[e++]=240|u>>18,t[e++]=128|u>>12&63,t[e++]=128|u>>6&63,t[e++]=128|63&u}}return t[e]=0,e-o}function q(r,t,e){return Y(r,B,t,e)}function G(r){for(var t=0,e=0;e<r.length;++e){var n=r.charCodeAt(e);n>=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&r.charCodeAt(++e)),n<=127?++t:t+=n<=2047?2:n<=65535?3:4}return t}function W(r){var t=G(r)+1,e=Kr(t);return e&&Y(r,O,e,t),e}function X(r){var t=G(r)+1,e=et(t);return Y(r,O,e,t),e}function V(r,t){O.set(r,t)}u.INITIAL_MEMORY;var K,J=[],$=[],Z=[],Q=[],rr=0;function tr(){return A||rr>0}var er=0,nr=null,or=null;function ir(r){return r}function ar(r){er++,u.monitorRunDependencies&&u.monitorRunDependencies(er)}function ur(r){if(er--,u.monitorRunDependencies&&u.monitorRunDependencies(er),0==er&&(null!==nr&&(clearInterval(nr),nr=null),or)){var t=or;or=null,t()}}function sr(r){u.onAbort&&u.onAbort(r),k(r="Aborted("+r+")"),T=!0,P=1,r+=". Build with -s ASSERTIONS=1 for more info.";var t=new WebAssembly.RuntimeError(r);throw a(t),t}u.preloadedImages={},u.preloadedAudios={};var cr,fr,lr,dr,mr,pr="data:application/octet-stream;base64,";function hr(r){return r.startsWith(pr)}function vr(r){return r.startsWith("file://")}function wr(r){try{if(r==cr&&j)return new Uint8Array(j);if(d)return d(r);throw"both async and sync fetching of the wasm failed"}catch(k){sr(k)}}function gr(r){for(;r.length>0;){var t=r.shift();if("function"!=typeof t){var e=t.func;"number"==typeof e?void 0===t.arg?yr(e)():yr(e)(t.arg):e(void 0===t.arg?null:t.arg)}else t(u)}}function yr(r){return K.get(r)}hr(cr="werckmeister.wasm")||(fr=cr,cr=u.locateFile?u.locateFile(fr,E):E+fr),mr=_?function(){var r=e.hrtime();return 1e3*r[0]+r[1]/1e6}:function(){return performance.now()};var _r=!0;function Er(r){return I[Jr()>>2]=r,r}function br(r){this.excPtr=r,this.ptr=r-16,this.set_type=function(r){I[this.ptr+4>>2]=r},this.get_type=function(){return I[this.ptr+4>>2]},this.set_destructor=function(r){I[this.ptr+8>>2]=r},this.get_destructor=function(){return I[this.ptr+8>>2]},this.set_refcount=function(r){I[this.ptr>>2]=r},this.set_caught=function(r){r=r?1:0,O[this.ptr+12>>0]=r},this.get_caught=function(){return 0!=O[this.ptr+12>>0]},this.set_rethrown=function(r){r=r?1:0,O[this.ptr+13>>0]=r},this.get_rethrown=function(){return 0!=O[this.ptr+13>>0]},this.init=function(r,t){this.set_type(r),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var r=I[this.ptr>>2];I[this.ptr>>2]=r+1},this.release_ref=function(){var r=I[this.ptr>>2];return I[this.ptr>>2]=r-1,1===r}}function kr(r){this.free=function(){Vr(this.ptr),this.ptr=0},this.set_base_ptr=function(r){I[this.ptr>>2]=r},this.get_base_ptr=function(){return I[this.ptr>>2]},this.set_adjusted_ptr=function(r){I[this.ptr+4>>2]=r},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return I[this.ptr+4>>2]},this.get_exception_ptr=function(){if(it(this.get_exception_info().get_type()))return I[this.get_base_ptr()>>2];var r=this.get_adjusted_ptr();return 0!==r?r:this.get_base_ptr()},this.get_exception_info=function(){return new br(this.get_base_ptr())},void 0===r?(this.ptr=Kr(8),this.set_adjusted_ptr(0)):this.ptr=r}var jr=[];var Dr=0;var Sr=0;function Fr(r){try{return Vr(new br(r).ptr)}catch(t){}}function Mr(r,t){var e=new Date(1e3*I[r>>2]);I[t>>2]=e.getUTCSeconds(),I[t+4>>2]=e.getUTCMinutes(),I[t+8>>2]=e.getUTCHours(),I[t+12>>2]=e.getUTCDate(),I[t+16>>2]=e.getUTCMonth(),I[t+20>>2]=e.getUTCFullYear()-1900,I[t+24>>2]=e.getUTCDay(),I[t+36>>2]=0,I[t+32>>2]=0;var n=Date.UTC(e.getUTCFullYear(),0,1,0,0,0,0),o=(e.getTime()-n)/864e5|0;return I[t+28>>2]=o,Mr.GMTString||(Mr.GMTString=W("GMT")),I[t+40>>2]=Mr.GMTString,t}function Ar(){Ar.called||(Ar.called=!0,function(){var r=(new Date).getFullYear(),t=new Date(r,0,1),e=new Date(r,6,1),n=t.getTimezoneOffset(),o=e.getTimezoneOffset(),i=Math.max(n,o);function a(r){var t=r.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}I[Qr()>>2]=60*i,I[Zr()>>2]=Number(n!=o);var u=a(t),s=a(e),c=W(u),f=W(s);o<n?(I[$r()>>2]=c,I[$r()+4>>2]=f):(I[$r()>>2]=f,I[$r()+4>>2]=c)}())}var Pr={splitPath:function(r){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(r).slice(1)},normalizeArray:function(r,t){for(var e=0,n=r.length-1;n>=0;n--){var o=r[n];"."===o?r.splice(n,1):".."===o?(r.splice(n,1),e++):e&&(r.splice(n,1),e--)}if(t)for(;e;e--)r.unshift("..");return r},normalize:function(r){var t="/"===r.charAt(0),e="/"===r.substr(-1);return(r=Pr.normalizeArray(r.split("/").filter(function(r){return!!r}),!t).join("/"))||t||(r="."),r&&e&&(r+="/"),(t?"/":"")+r},dirname:function(r){var t=Pr.splitPath(r),e=t[0],n=t[1];return e||n?(n&&(n=n.substr(0,n.length-1)),e+n):"."},basename:function(r){if("/"===r)return"/";var t=(r=(r=Pr.normalize(r)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?r:r.substr(t+1)},extname:function(r){return Pr.splitPath(r)[3]},join:function(){var r=Array.prototype.slice.call(arguments,0);return Pr.normalize(r.join("/"))},join2:function(r,t){return Pr.normalize(r+"/"+t)}};var Tr={resolve:function(){for(var r="",t=!1,e=arguments.length-1;e>=-1&&!t;e--){var n=e>=0?arguments[e]:Rr.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";r=n+"/"+r,t="/"===n.charAt(0)}return(t?"/":"")+(r=Pr.normalizeArray(r.split("/").filter(function(r){return!!r}),!t).join("/"))||"."},relative:function(r,t){function e(r){for(var t=0;t<r.length&&""===r[t];t++);for(var e=r.length-1;e>=0&&""===r[e];e--);return t>e?[]:r.slice(t,e-t+1)}r=Tr.resolve(r).substr(1),t=Tr.resolve(t).substr(1);for(var n=e(r.split("/")),o=e(t.split("/")),i=Math.min(n.length,o.length),a=i,u=0;u<i;u++)if(n[u]!==o[u]){a=u;break}var s=[];for(u=a;u<n.length;u++)s.push("..");return(s=s.concat(o.slice(a))).join("/")}},xr={ttys:[],init:function(){},shutdown:function(){},register:function(r,t){xr.ttys[r]={input:[],output:[],ops:t},Rr.registerDevice(r,xr.stream_ops)},stream_ops:{open:function(r){var t=xr.ttys[r.node.rdev];if(!t)throw new Rr.ErrnoError(43);r.tty=t,r.seekable=!1},close:function(r){r.tty.ops.flush(r.tty)},flush:function(r){r.tty.ops.flush(r.tty)},read:function(r,t,e,n,o){if(!r.tty||!r.tty.ops.get_char)throw new Rr.ErrnoError(60);for(var i=0,a=0;a<n;a++){var u;try{u=r.tty.ops.get_char(r.tty)}catch(s){throw new Rr.ErrnoError(29)}if(void 0===u&&0===i)throw new Rr.ErrnoError(6);if(null==u)break;i++,t[e+a]=u}return i&&(r.node.timestamp=Date.now()),i},write:function(r,t,e,n,o){if(!r.tty||!r.tty.ops.put_char)throw new Rr.ErrnoError(60);try{for(var i=0;i<n;i++)r.tty.ops.put_char(r.tty,t[e+i])}catch(a){throw new Rr.ErrnoError(29)}return n&&(r.node.timestamp=Date.now()),i}},default_tty_ops:{get_char:function(r){if(!r.input.length){var t=null;if(_){var n=o.alloc(256),i=0;try{i=m.readSync(e.stdin.fd,n,0,256,null)}catch(a){if(!a.toString().includes("EOF"))throw a;i=0}t=i>0?n.slice(0,i).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(t=window.prompt("Input: "))&&(t+="\n"):"function"==typeof readline&&null!==(t=readline())&&(t+="\n");if(!t)return null;r.input=Gr(t,!0)}return r.input.shift()},put_char:function(r,t){null===t||10===t?(b(L(r.output,0)),r.output=[]):0!=t&&r.output.push(t)},flush:function(r){r.output&&r.output.length>0&&(b(L(r.output,0)),r.output=[])}},default_tty1_ops:{put_char:function(r,t){null===t||10===t?(k(L(r.output,0)),r.output=[]):0!=t&&r.output.push(t)},flush:function(r){r.output&&r.output.length>0&&(k(L(r.output,0)),r.output=[])}}};var Cr={ops_table:null,mount:function(r){return Cr.createNode(null,"/",16895,0)},createNode:function(r,t,e,n){if(Rr.isBlkdev(e)||Rr.isFIFO(e))throw new Rr.ErrnoError(63);Cr.ops_table||(Cr.ops_table={dir:{node:{getattr:Cr.node_ops.getattr,setattr:Cr.node_ops.setattr,lookup:Cr.node_ops.lookup,mknod:Cr.node_ops.mknod,rename:Cr.node_ops.rename,unlink:Cr.node_ops.unlink,rmdir:Cr.node_ops.rmdir,readdir:Cr.node_ops.readdir,symlink:Cr.node_ops.symlink},stream:{llseek:Cr.stream_ops.llseek}},file:{node:{getattr:Cr.node_ops.getattr,setattr:Cr.node_ops.setattr},stream:{llseek:Cr.stream_ops.llseek,read:Cr.stream_ops.read,write:Cr.stream_ops.write,allocate:Cr.stream_ops.allocate,mmap:Cr.stream_ops.mmap,msync:Cr.stream_ops.msync}},link:{node:{getattr:Cr.node_ops.getattr,setattr:Cr.node_ops.setattr,readlink:Cr.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Cr.node_ops.getattr,setattr:Cr.node_ops.setattr},stream:Rr.chrdev_stream_ops}});var o=Rr.createNode(r,t,e,n);return Rr.isDir(o.mode)?(o.node_ops=Cr.ops_table.dir.node,o.stream_ops=Cr.ops_table.dir.stream,o.contents={}):Rr.isFile(o.mode)?(o.node_ops=Cr.ops_table.file.node,o.stream_ops=Cr.ops_table.file.stream,o.usedBytes=0,o.contents=null):Rr.isLink(o.mode)?(o.node_ops=Cr.ops_table.link.node,o.stream_ops=Cr.ops_table.link.stream):Rr.isChrdev(o.mode)&&(o.node_ops=Cr.ops_table.chrdev.node,o.stream_ops=Cr.ops_table.chrdev.stream),o.timestamp=Date.now(),r&&(r.contents[t]=o,r.timestamp=o.timestamp),o},getFileDataAsTypedArray:function(r){return r.contents?r.contents.subarray?r.contents.subarray(0,r.usedBytes):new Uint8Array(r.contents):new Uint8Array(0)},expandFileStorage:function(r,t){var e=r.contents?r.contents.length:0;if(!(e>=t)){t=Math.max(t,e*(e<1048576?2:1.125)>>>0),0!=e&&(t=Math.max(t,256));var n=r.contents;r.contents=new Uint8Array(t),r.usedBytes>0&&r.contents.set(n.subarray(0,r.usedBytes),0)}},resizeFileStorage:function(r,t){if(r.usedBytes!=t)if(0==t)r.contents=null,r.usedBytes=0;else{var e=r.contents;r.contents=new Uint8Array(t),e&&r.contents.set(e.subarray(0,Math.min(t,r.usedBytes))),r.usedBytes=t}},node_ops:{getattr:function(r){var t={};return t.dev=Rr.isChrdev(r.mode)?r.id:1,t.ino=r.id,t.mode=r.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=r.rdev,Rr.isDir(r.mode)?t.size=4096:Rr.isFile(r.mode)?t.size=r.usedBytes:Rr.isLink(r.mode)?t.size=r.link.length:t.size=0,t.atime=new Date(r.timestamp),t.mtime=new Date(r.timestamp),t.ctime=new Date(r.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(r,t){void 0!==t.mode&&(r.mode=t.mode),void 0!==t.timestamp&&(r.timestamp=t.timestamp),void 0!==t.size&&Cr.resizeFileStorage(r,t.size)},lookup:function(r,t){throw Rr.genericErrors[44]},mknod:function(r,t,e,n){return Cr.createNode(r,t,e,n)},rename:function(r,t,e){if(Rr.isDir(r.mode)){var n;try{n=Rr.lookupNode(t,e)}catch(i){}if(n)for(var o in n.contents)throw new Rr.ErrnoError(55)}delete r.parent.contents[r.name],r.parent.timestamp=Date.now(),r.name=e,t.contents[e]=r,t.timestamp=r.parent.timestamp,r.parent=t},unlink:function(r,t){delete r.contents[t],r.timestamp=Date.now()},rmdir:function(r,t){var e=Rr.lookupNode(r,t);for(var n in e.contents)throw new Rr.ErrnoError(55);delete r.contents[t],r.timestamp=Date.now()},readdir:function(r){var t=[".",".."];for(var e in r.contents)r.contents.hasOwnProperty(e)&&t.push(e);return t},symlink:function(r,t,e){var n=Cr.createNode(r,t,41471,0);return n.link=e,n},readlink:function(r){if(!Rr.isLink(r.mode))throw new Rr.ErrnoError(28);return r.link}},stream_ops:{read:function(r,t,e,n,o){var i=r.node.contents;if(o>=r.node.usedBytes)return 0;var a=Math.min(r.node.usedBytes-o,n);if(a>8&&i.subarray)t.set(i.subarray(o,o+a),e);else for(var u=0;u<a;u++)t[e+u]=i[o+u];return a},write:function(r,t,e,n,o,i){if(!n)return 0;var a=r.node;if(a.timestamp=Date.now(),t.subarray&&(!a.contents||a.contents.subarray)){if(i)return a.contents=t.subarray(e,e+n),a.usedBytes=n,n;if(0===a.usedBytes&&0===o)return a.contents=t.slice(e,e+n),a.usedBytes=n,n;if(o+n<=a.usedBytes)return a.contents.set(t.subarray(e,e+n),o),n}if(Cr.expandFileStorage(a,o+n),a.contents.subarray&&t.subarray)a.contents.set(t.subarray(e,e+n),o);else for(var u=0;u<n;u++)a.contents[o+u]=t[e+u];return a.usedBytes=Math.max(a.usedBytes,o+n),n},llseek:function(r,t,e){var n=t;if(1===e?n+=r.position:2===e&&Rr.isFile(r.node.mode)&&(n+=r.node.usedBytes),n<0)throw new Rr.ErrnoError(28);return n},allocate:function(r,t,e){Cr.expandFileStorage(r.node,t+e),r.node.usedBytes=Math.max(r.node.usedBytes,t+e)},mmap:function(r,t,e,n,o,i){if(0!==t)throw new Rr.ErrnoError(28);if(!Rr.isFile(r.node.mode))throw new Rr.ErrnoError(43);var a,u,s=r.node.contents;if(2&i||s.buffer!==z){if((n>0||n+e<s.length)&&(s=s.subarray?s.subarray(n,n+e):Array.prototype.slice.call(s,n,n+e)),u=!0,!(a=void sr()))throw new Rr.ErrnoError(48);O.set(s,a)}else u=!1,a=s.byteOffset;return{ptr:a,allocated:u}},msync:function(r,t,e,n,o){if(!Rr.isFile(r.node.mode))throw new Rr.ErrnoError(43);if(2&o)return 0;Cr.stream_ops.write(r,t,0,n,e,!1);return 0}}};var Rr={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(r,t){if(t=t||{},!(r=Tr.resolve(Rr.cwd(),r)))return{path:"",node:null};var e={follow_mount:!0,recurse_count:0};for(var n in e)void 0===t[n]&&(t[n]=e[n]);if(t.recurse_count>8)throw new Rr.ErrnoError(32);for(var o=Pr.normalizeArray(r.split("/").filter(function(r){return!!r}),!1),i=Rr.root,a="/",u=0;u<o.length;u++){var s=u===o.length-1;if(s&&t.parent)break;if(i=Rr.lookupNode(i,o[u]),a=Pr.join2(a,o[u]),Rr.isMountpoint(i)&&(!s||s&&t.follow_mount)&&(i=i.mounted.root),!s||t.follow)for(var c=0;Rr.isLink(i.mode);){var f=Rr.readlink(a);if(a=Tr.resolve(Pr.dirname(a),f),i=Rr.lookupPath(a,{recurse_count:t.recurse_count}).node,c++>40)throw new Rr.ErrnoError(32)}}return{path:a,node:i}},getPath:function(r){for(var t;;){if(Rr.isRoot(r)){var e=r.mount.mountpoint;return t?"/"!==e[e.length-1]?e+"/"+t:e+t:e}t=t?r.name+"/"+t:r.name,r=r.parent}},hashName:function(r,t){for(var e=0,n=0;n<t.length;n++)e=(e<<5)-e+t.charCodeAt(n)|0;return(r+e>>>0)%Rr.nameTable.length},hashAddNode:function(r){var t=Rr.hashName(r.parent.id,r.name);r.name_next=Rr.nameTable[t],Rr.nameTable[t]=r},hashRemoveNode:function(r){var t=Rr.hashName(r.parent.id,r.name);if(Rr.nameTable[t]===r)Rr.nameTable[t]=r.name_next;else for(var e=Rr.nameTable[t];e;){if(e.name_next===r){e.name_next=r.name_next;break}e=e.name_next}},lookupNode:function(r,t){var e=Rr.mayLookup(r);if(e)throw new Rr.ErrnoError(e,r);for(var n=Rr.hashName(r.id,t),o=Rr.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===r.id&&i===t)return o}return Rr.lookup(r,t)},createNode:function(r,t,e,n){var o=new Rr.FSNode(r,t,e,n);return Rr.hashAddNode(o),o},destroyNode:function(r){Rr.hashRemoveNode(r)},isRoot:function(r){return r===r.parent},isMountpoint:function(r){return!!r.mounted},isFile:function(r){return 32768==(61440&r)},isDir:function(r){return 16384==(61440&r)},isLink:function(r){return 40960==(61440&r)},isChrdev:function(r){return 8192==(61440&r)},isBlkdev:function(r){return 24576==(61440&r)},isFIFO:function(r){return 4096==(61440&r)},isSocket:function(r){return 49152==(49152&r)},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(r){var t=Rr.flagModes[r];if(void 0===t)throw new Error("Unknown file open mode: "+r);return t},flagsToPermissionString:function(r){var t=["r","w","rw"][3&r];return 512&r&&(t+="w"),t},nodePermissions:function(r,t){return Rr.ignorePermissions?0:(!t.includes("r")||292&r.mode)&&(!t.includes("w")||146&r.mode)&&(!t.includes("x")||73&r.mode)?0:2},mayLookup:function(r){var t=Rr.nodePermissions(r,"x");return t||(r.node_ops.lookup?0:2)},mayCreate:function(r,t){try{Rr.lookupNode(r,t);return 20}catch(e){}return Rr.nodePermissions(r,"wx")},mayDelete:function(r,t,e){var n;try{n=Rr.lookupNode(r,t)}catch(i){return i.errno}var o=Rr.nodePermissions(r,"wx");if(o)return o;if(e){if(!Rr.isDir(n.mode))return 54;if(Rr.isRoot(n)||Rr.getPath(n)===Rr.cwd())return 10}else if(Rr.isDir(n.mode))return 31;return 0},mayOpen:function(r,t){return r?Rr.isLink(r.mode)?32:Rr.isDir(r.mode)&&("r"!==Rr.flagsToPermissionString(t)||512&t)?31:Rr.nodePermissions(r,Rr.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(r,t){r=r||0,t=t||Rr.MAX_OPEN_FDS;for(var e=r;e<=t;e++)if(!Rr.streams[e])return e;throw new Rr.ErrnoError(33)},getStream:function(r){return Rr.streams[r]},createStream:function(r,t,e){Rr.FSStream||(Rr.FSStream=function(){},Rr.FSStream.prototype={object:{get:function(){return this.node},set:function(r){this.node=r}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var n=new Rr.FSStream;for(var o in r)n[o]=r[o];r=n;var i=Rr.nextfd(t,e);return r.fd=i,Rr.streams[i]=r,r},closeStream:function(r){Rr.streams[r]=null},chrdev_stream_ops:{open:function(r){var t=Rr.getDevice(r.node.rdev);r.stream_ops=t.stream_ops,r.stream_ops.open&&r.stream_ops.open(r)},llseek:function(){throw new Rr.ErrnoError(70)}},major:function(r){return r>>8},minor:function(r){return 255&r},makedev:function(r,t){return r<<8|t},registerDevice:function(r,t){Rr.devices[r]={stream_ops:t}},getDevice:function(r){return Rr.devices[r]},getMounts:function(r){for(var t=[],e=[r];e.length;){var n=e.pop();t.push(n),e.push.apply(e,n.mounts)}return t},syncfs:function(r,t){"function"==typeof r&&(t=r,r=!1),Rr.syncFSRequests++,Rr.syncFSRequests>1&&k("warning: "+Rr.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var e=Rr.getMounts(Rr.root.mount),n=0;function o(r){return Rr.syncFSRequests--,t(r)}function i(r){if(r)return i.errored?void 0:(i.errored=!0,o(r));++n>=e.length&&o(null)}e.forEach(function(t){if(!t.type.syncfs)return i(null);t.type.syncfs(t,r,i)})},mount:function(r,t,e){var n,o="/"===e,i=!e;if(o&&Rr.root)throw new Rr.ErrnoError(10);if(!o&&!i){var a=Rr.lookupPath(e,{follow_mount:!1});if(e=a.path,n=a.node,Rr.isMountpoint(n))throw new Rr.ErrnoError(10);if(!Rr.isDir(n.mode))throw new Rr.ErrnoError(54)}var u={type:r,opts:t,mountpoint:e,mounts:[]},s=r.mount(u);return s.mount=u,u.root=s,o?Rr.root=s:n&&(n.mounted=u,n.mount&&n.mount.mounts.push(u)),s},unmount:function(r){var t=Rr.lookupPath(r,{follow_mount:!1});if(!Rr.isMountpoint(t.node))throw new Rr.ErrnoError(28);var e=t.node,n=e.mounted,o=Rr.getMounts(n);Object.keys(Rr.nameTable).forEach(function(r){for(var t=Rr.nameTable[r];t;){var e=t.name_next;o.includes(t.mount)&&Rr.destroyNode(t),t=e}}),e.mounted=null;var i=e.mount.mounts.indexOf(n);e.mount.mounts.splice(i,1)},lookup:function(r,t){return r.node_ops.lookup(r,t)},mknod:function(r,t,e){var n=Rr.lookupPath(r,{parent:!0}).node,o=Pr.basename(r);if(!o||"."===o||".."===o)throw new Rr.ErrnoError(28);var i=Rr.mayCreate(n,o);if(i)throw new Rr.ErrnoError(i);if(!n.node_ops.mknod)throw new Rr.ErrnoError(63);return n.node_ops.mknod(n,o,t,e)},create:function(r,t){return t=void 0!==t?t:438,t&=4095,t|=32768,Rr.mknod(r,t,0)},mkdir:function(r,t){return t=void 0!==t?t:511,t&=1023,t|=16384,Rr.mknod(r,t,0)},mkdirTree:function(r,t){for(var e=r.split("/"),n="",o=0;o<e.length;++o)if(e[o]){n+="/"+e[o];try{Rr.mkdir(n,t)}catch(i){if(20!=i.errno)throw i}}},mkdev:function(r,t,e){return void 0===e&&(e=t,t=438),t|=8192,Rr.mknod(r,t,e)},symlink:function(r,t){if(!Tr.resolve(r))throw new Rr.ErrnoError(44);var e=Rr.lookupPath(t,{parent:!0}).node;if(!e)throw new Rr.ErrnoError(44);var n=Pr.basename(t),o=Rr.mayCreate(e,n);if(o)throw new Rr.ErrnoError(o);if(!e.node_ops.symlink)throw new Rr.ErrnoError(63);return e.node_ops.symlink(e,n,r)},rename:function(r,t){var e,n,o=Pr.dirname(r),i=Pr.dirname(t),a=Pr.basename(r),u=Pr.basename(t);if(e=Rr.lookupPath(r,{parent:!0}).node,n=Rr.lookupPath(t,{parent:!0}).node,!e||!n)throw new Rr.ErrnoError(44);if(e.mount!==n.mount)throw new Rr.ErrnoError(75);var s,c=Rr.lookupNode(e,a),f=Tr.relative(r,i);if("."!==f.charAt(0))throw new Rr.ErrnoError(28);if("."!==(f=Tr.relative(t,o)).charAt(0))throw new Rr.ErrnoError(55);try{s=Rr.lookupNode(n,u)}catch(m){}if(c!==s){var l=Rr.isDir(c.mode),d=Rr.mayDelete(e,a,l);if(d)throw new Rr.ErrnoError(d);if(d=s?Rr.mayDelete(n,u,l):Rr.mayCreate(n,u))throw new Rr.ErrnoError(d);if(!e.node_ops.rename)throw new Rr.ErrnoError(63);if(Rr.isMountpoint(c)||s&&Rr.isMountpoint(s))throw new Rr.ErrnoError(10);if(n!==e&&(d=Rr.nodePermissions(e,"w")))throw new Rr.ErrnoError(d);Rr.hashRemoveNode(c);try{e.node_ops.rename(c,n,u)}catch(m){throw m}finally{Rr.hashAddNode(c)}}},rmdir:function(r){var t=Rr.lookupPath(r,{parent:!0}).node,e=Pr.basename(r),n=Rr.lookupNode(t,e),o=Rr.mayDelete(t,e,!0);if(o)throw new Rr.ErrnoError(o);if(!t.node_ops.rmdir)throw new Rr.ErrnoError(63);if(Rr.isMountpoint(n))throw new Rr.ErrnoError(10);t.node_ops.rmdir(t,e),Rr.destroyNode(n)},readdir:function(r){var t=Rr.lookupPath(r,{follow:!0}).node;if(!t.node_ops.readdir)throw new Rr.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(r){var t=Rr.lookupPath(r,{parent:!0}).node,e=Pr.basename(r),n=Rr.lookupNode(t,e),o=Rr.mayDelete(t,e,!1);if(o)throw new Rr.ErrnoError(o);if(!t.node_ops.unlink)throw new Rr.ErrnoError(63);if(Rr.isMountpoint(n))throw new Rr.ErrnoError(10);t.node_ops.unlink(t,e),Rr.destroyNode(n)},readlink:function(r){var t=Rr.lookupPath(r).node;if(!t)throw new Rr.ErrnoError(44);if(!t.node_ops.readlink)throw new Rr.ErrnoError(28);return Tr.resolve(Rr.getPath(t.parent),t.node_ops.readlink(t))},stat:function(r,t){var e=Rr.lookupPath(r,{follow:!t}).node;if(!e)throw new Rr.ErrnoError(44);if(!e.node_ops.getattr)throw new Rr.ErrnoError(63);return e.node_ops.getattr(e)},lstat:function(r){return Rr.stat(r,!0)},chmod:function(r,t,e){var n;"string"==typeof r?n=Rr.lookupPath(r,{follow:!e}).node:n=r;if(!n.node_ops.setattr)throw new Rr.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(r,t){Rr.chmod(r,t,!0)},fchmod:function(r,t){var e=Rr.getStream(r);if(!e)throw new Rr.ErrnoError(8);Rr.chmod(e.node,t)},chown:function(r,t,e,n){var o;"string"==typeof r?o=Rr.lookupPath(r,{follow:!n}).node:o=r;if(!o.node_ops.setattr)throw new Rr.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(r,t,e){Rr.chown(r,t,e,!0)},fchown:function(r,t,e){var n=Rr.getStream(r);if(!n)throw new Rr.ErrnoError(8);Rr.chown(n.node,t,e)},truncate:function(r,t){if(t<0)throw new Rr.ErrnoError(28);var e;"string"==typeof r?e=Rr.lookupPath(r,{follow:!0}).node:e=r;if(!e.node_ops.setattr)throw new Rr.ErrnoError(63);if(Rr.isDir(e.mode))throw new Rr.ErrnoError(31);if(!Rr.isFile(e.mode))throw new Rr.ErrnoError(28);var n=Rr.nodePermissions(e,"w");if(n)throw new Rr.ErrnoError(n);e.node_ops.setattr(e,{size:t,timestamp:Date.now()})},ftruncate:function(r,t){var e=Rr.getStream(r);if(!e)throw new Rr.ErrnoError(8);if(0==(2097155&e.flags))throw new Rr.ErrnoError(28);Rr.truncate(e.node,t)},utime:function(r,t,e){var n=Rr.lookupPath(r,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,e)})},open:function(r,t,e,n,o){if(""===r)throw new Rr.ErrnoError(44);var i;if(e=void 0===e?438:e,e=64&(t="string"==typeof t?Rr.modeStringToFlags(t):t)?4095&e|32768:0,"object"==typeof r)i=r;else{r=Pr.normalize(r);try{i=Rr.lookupPath(r,{follow:!(131072&t)}).node}catch(f){}}var a=!1;if(64&t)if(i){if(128&t)throw new Rr.ErrnoError(20)}else i=Rr.mknod(r,e,0),a=!0;if(!i)throw new Rr.ErrnoError(44);if(Rr.isChrdev(i.mode)&&(t&=-513),65536&t&&!Rr.isDir(i.mode))throw new Rr.ErrnoError(54);if(!a){var s=Rr.mayOpen(i,t);if(s)throw new Rr.ErrnoError(s)}512&t&&Rr.truncate(i,0),t&=-131713;var c=Rr.createStream({node:i,path:Rr.getPath(i),id:i.id,flags:t,mode:i.mode,seekable:!0,position:0,stream_ops:i.stream_ops,node_ops:i.node_ops,ungotten:[],error:!1},n,o);return c.stream_ops.open&&c.stream_ops.open(c),!u.logReadFiles||1&t||(Rr.readFiles||(Rr.readFiles={}),r in Rr.readFiles||(Rr.readFiles[r]=1)),c},close:function(r){if(Rr.isClosed(r))throw new Rr.ErrnoError(8);r.getdents&&(r.getdents=null);try{r.stream_ops.close&&r.stream_ops.close(r)}catch(t){throw t}finally{Rr.closeStream(r.fd)}r.fd=null},isClosed:function(r){return null===r.fd},llseek:function(r,t,e){if(Rr.isClosed(r))throw new Rr.ErrnoError(8);if(!r.seekable||!r.stream_ops.llseek)throw new Rr.ErrnoError(70);if(0!=e&&1!=e&&2!=e)throw new Rr.ErrnoError(28);return r.position=r.stream_ops.llseek(r,t,e),r.ungotten=[],r.position},read:function(r,t,e,n,o){if(n<0||o<0)throw new Rr.ErrnoError(28);if(Rr.isClosed(r))throw new Rr.ErrnoError(8);if(1==(2097155&r.flags))throw new Rr.ErrnoError(8);if(Rr.isDir(r.node.mode))throw new Rr.ErrnoError(31);if(!r.stream_ops.read)throw new Rr.ErrnoError(28);var i=void 0!==o;if(i){if(!r.seekable)throw new Rr.ErrnoError(70)}else o=r.position;var a=r.stream_ops.read(r,t,e,n,o);return i||(r.position+=a),a},write:function(r,t,e,n,o,i){if(n<0||o<0)throw new Rr.ErrnoError(28);if(Rr.isClosed(r))throw new Rr.ErrnoError(8);if(0==(2097155&r.flags))throw new Rr.ErrnoError(8);if(Rr.isDir(r.node.mode))throw new Rr.ErrnoError(31);if(!r.stream_ops.write)throw new Rr.ErrnoError(28);r.seekable&&1024&r.flags&&Rr.llseek(r,0,2);var a=void 0!==o;if(a){if(!r.seekable)throw new Rr.ErrnoError(70)}else o=r.position;var u=r.stream_ops.write(r,t,e,n,o,i);return a||(r.position+=u),u},allocate:function(r,t,e){if(Rr.isClosed(r))throw new Rr.ErrnoError(8);if(t<0||e<=0)throw new Rr.ErrnoError(28);if(0==(2097155&r.flags))throw new Rr.ErrnoError(8);if(!Rr.isFile(r.node.mode)&&!Rr.isDir(r.node.mode))throw new Rr.ErrnoError(43);if(!r.stream_ops.allocate)throw new Rr.ErrnoError(138);r.stream_ops.allocate(r,t,e)},mmap:function(r,t,e,n,o,i){if(0!=(2&o)&&0==(2&i)&&2!=(2097155&r.flags))throw new Rr.ErrnoError(2);if(1==(2097155&r.flags))throw new Rr.ErrnoError(2);if(!r.stream_ops.mmap)throw new Rr.ErrnoError(43);return r.stream_ops.mmap(r,t,e,n,o,i)},msync:function(r,t,e,n,o){return r&&r.stream_ops.msync?r.stream_ops.msync(r,t,e,n,o):0},munmap:function(r){return 0},ioctl:function(r,t,e){if(!r.stream_ops.ioctl)throw new Rr.ErrnoError(59);return r.stream_ops.ioctl(r,t,e)},readFile:function(r,t){if((t=t||{}).flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var e,n=Rr.open(r,t.flags),o=Rr.stat(r).size,i=new Uint8Array(o);return Rr.read(n,i,0,o,0),"utf8"===t.encoding?e=L(i,0):"binary"===t.encoding&&(e=i),Rr.close(n),e},writeFile:function(r,t,e){(e=e||{}).flags=e.flags||577;var n=Rr.open(r,e.flags,e.mode);if("string"==typeof t){var o=new Uint8Array(G(t)+1),i=Y(t,o,0,o.length);Rr.write(n,o,0,i,void 0,e.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Rr.write(n,t,0,t.byteLength,void 0,e.canOwn)}Rr.close(n)},cwd:function(){return Rr.currentPath},chdir:function(r){var t=Rr.lookupPath(r,{follow:!0});if(null===t.node)throw new Rr.ErrnoError(44);if(!Rr.isDir(t.node.mode))throw new Rr.ErrnoError(54);var e=Rr.nodePermissions(t.node,"x");if(e)throw new Rr.ErrnoError(e);Rr.currentPath=t.path},createDefaultDirectories:function(){Rr.mkdir("/tmp"),Rr.mkdir("/home"),Rr.mkdir("/home/web_user")},createDefaultDevices:function(){Rr.mkdir("/dev"),Rr.registerDevice(Rr.makedev(1,3),{read:function(){return 0},write:function(r,t,e,n,o){return n}}),Rr.mkdev("/dev/null",Rr.makedev(1,3)),xr.register(Rr.makedev(5,0),xr.default_tty_ops),xr.register(Rr.makedev(6,0),xr.default_tty1_ops),Rr.mkdev("/dev/tty",Rr.makedev(5,0)),Rr.mkdev("/dev/tty1",Rr.makedev(6,0));var r=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var r=new Uint8Array(1);return function(){return crypto.getRandomValues(r),r[0]}}if(_)try{var t=require("crypto");return function(){return t.randomBytes(1)[0]}}catch(e){}return function(){sr("randomDevice")}}();Rr.createDevice("/dev","random",r),Rr.createDevice("/dev","urandom",r),Rr.mkdir("/dev/shm"),Rr.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Rr.mkdir("/proc");var r=Rr.mkdir("/proc/self");Rr.mkdir("/proc/self/fd"),Rr.mount({mount:function(){var t=Rr.createNode(r,"fd",16895,73);return t.node_ops={lookup:function(r,t){var e=+t,n=Rr.getStream(e);if(!n)throw new Rr.ErrnoError(8);var o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return n.path}}};return o.parent=o,o}},t}},{},"/proc/self/fd")},createStandardStreams:function(){u.stdin?Rr.createDevice("/dev","stdin",u.stdin):Rr.symlink("/dev/tty","/dev/stdin"),u.stdout?Rr.createDevice("/dev","stdout",null,u.stdout):Rr.symlink("/dev/tty","/dev/stdout"),u.stderr?Rr.createDevice("/dev","stderr",null,u.stderr):Rr.symlink("/dev/tty1","/dev/stderr");Rr.open("/dev/stdin",0),Rr.open("/dev/stdout",1),Rr.open("/dev/stderr",1)},ensureErrnoError:function(){Rr.ErrnoError||(Rr.ErrnoError=function(r,t){this.node=t,this.setErrno=function(r){this.errno=r},this.setErrno(r),this.message="FS error"},Rr.ErrnoError.prototype=new Error,Rr.ErrnoError.prototype.constructor=Rr.ErrnoError,[44].forEach(function(r){Rr.genericErrors[r]=new Rr.ErrnoError(r),Rr.genericErrors[r].stack="<generic error, no stack>"}))},staticInit:function(){Rr.ensureErrnoError(),Rr.nameTable=new Array(4096),Rr.mount(Cr,{},"/"),Rr.createDefaultDirectories(),Rr.createDefaultDevices(),Rr.createSpecialDirectories(),Rr.filesystems={MEMFS:Cr}},init:function(r,t,e){Rr.init.initialized=!0,Rr.ensureErrnoError(),u.stdin=r||u.stdin,u.stdout=t||u.stdout,u.stderr=e||u.stderr,Rr.createStandardStreams()},quit:function(){Rr.init.initialized=!1;var r=u._fflush;r&&r(0);for(var t=0;t<Rr.streams.length;t++){var e=Rr.streams[t];e&&Rr.close(e)}},getMode:function(r,t){var e=0;return r&&(e|=365),t&&(e|=146),e},findObject:function(r,t){var e=Rr.analyzePath(r,t);return e.exists?e.object:null},analyzePath:function(r,t){try{r=(n=Rr.lookupPath(r,{follow:!t})).path}catch(o){}var e={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=Rr.lookupPath(r,{parent:!0});e.parentExists=!0,e.parentPath=n.path,e.parentObject=n.node,e.name=Pr.basename(r),n=Rr.lookupPath(r,{follow:!t}),e.exists=!0,e.path=n.path,e.object=n.node,e.name=n.node.name,e.isRoot="/"===n.path}catch(o){e.error=o.errno}return e},createPath:function(r,t,e,n){r="string"==typeof r?r:Rr.getPath(r);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var a=Pr.join2(r,i);try{Rr.mkdir(a)}catch(u){}r=a}}return a},createFile:function(r,t,e,n,o){var i=Pr.join2("string"==typeof r?r:Rr.getPath(r),t),a=Rr.getMode(n,o);return Rr.create(i,a)},createDataFile:function(r,t,e,n,o,i){var a=t?Pr.join2("string"==typeof r?r:Rr.getPath(r),t):r,u=Rr.getMode(n,o),s=Rr.create(a,u);if(e){if("string"==typeof e){for(var c=new Array(e.length),f=0,l=e.length;f<l;++f)c[f]=e.charCodeAt(f);e=c}Rr.chmod(s,146|u);var d=Rr.open(s,577);Rr.write(d,e,0,e.length,0,i),Rr.close(d),Rr.chmod(s,u)}return s},createDevice:function(r,t,e,n){var o=Pr.join2("string"==typeof r?r:Rr.getPath(r),t),i=Rr.getMode(!!e,!!n);Rr.createDevice.major||(Rr.createDevice.major=64);var a=Rr.makedev(Rr.createDevice.major++,0);return Rr.registerDevice(a,{open:function(r){r.seekable=!1},close:function(r){n&&n.buffer&&n.buffer.length&&n(10)},read:function(r,t,n,o,i){for(var a=0,u=0;u<o;u++){var s;try{s=e()}catch(c){throw new Rr.ErrnoError(29)}if(void 0===s&&0===a)throw new Rr.ErrnoError(6);if(null==s)break;a++,t[n+u]=s}return a&&(r.node.timestamp=Date.now()),a},write:function(r,t,e,o,i){for(var a=0;a<o;a++)try{n(t[e+a])}catch(u){throw new Rr.ErrnoError(29)}return o&&(r.node.timestamp=Date.now()),a}}),Rr.mkdev(o,i,a)},forceLoadFile:function(r){if(r.isDevice||r.isFolder||r.link||r.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new 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(!f)throw new Error("Cannot load without read() or XMLHttpRequest.");try{r.contents=Gr(f(r.url),!0),r.usedBytes=r.contents.length}catch(t){throw new Rr.ErrnoError(29)}},createLazyFile:function(r,t,e,n,o){function i(){this.lengthKnown=!1,this.chunks=[]}if(i.prototype.get=function(r){if(!(r>this.length-1||r<0)){var t=r%this.chunkSize,e=r/this.chunkSize|0;return this.getter(e)[t]}},i.prototype.setDataGetter=function(r){this.getter=r},i.prototype.cacheLength=function(){var r=new XMLHttpRequest;if(r.open("HEAD",e,!1),r.send(null),!(r.status>=200&&r.status<300||304===r.status))throw new Error("Couldn't load "+e+". Status: "+r.status);var t,n=Number(r.getResponseHeader("Content-length")),o=(t=r.getResponseHeader("Accept-Ranges"))&&"bytes"===t,i=(t=r.getResponseHeader("Content-Encoding"))&&"gzip"===t,a=1048576;o||(a=n);var u=this;u.setDataGetter(function(r){var t=r*a,o=(r+1)*a-1;if(o=Math.min(o,n-1),void 0===u.chunks[r]&&(u.chunks[r]=function(r,t){if(r>t)throw new Error("invalid range ("+r+", "+t+") or no bytes requested!");if(t>n-1)throw new Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",e,!1),n!==a&&o.setRequestHeader("Range","bytes="+r+"-"+t),"undefined"!=typeof Uint8Array&&(o.responseType="arraybuffer"),o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+e+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):Gr(o.responseText||"",!0)}(t,o)),void 0===u.chunks[r])throw new Error("doXHR failed!");return u.chunks[r]}),!i&&n||(a=n=1,n=this.getter(0).length,a=n,b("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=a,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!y)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new i;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var u={isDevice:!1,contents:a}}else u={isDevice:!1,url:e};var s=Rr.createFile(r,t,u,n,o);u.contents?s.contents=u.contents:u.url&&(s.contents=null,s.url=u.url),Object.defineProperties(s,{usedBytes:{get:function(){return this.contents.length}}});var c={};return Object.keys(s.stream_ops).forEach(function(r){var t=s.stream_ops[r];c[r]=function(){return Rr.forceLoadFile(s),t.apply(null,arguments)}}),c.read=function(r,t,e,n,o){Rr.forceLoadFile(s);var i=r.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(i.slice)for(var u=0;u<a;u++)t[e+u]=i[o+u];else for(u=0;u<a;u++)t[e+u]=i.get(o+u);return a},s.stream_ops=c,s},createPreloadedFile:function(r,t,e,n,o,i,a,s,c,f){Browser.init();var d=t?Tr.resolve(Pr.join2(r,t)):r;ir("cp "+d);function m(e){function l(e){f&&f(),s||Rr.createDataFile(r,t,e,n,o,c),i&&i(),ur()}var m=!1;u.preloadPlugins.forEach(function(r){m||r.canHandle(d)&&(r.handle(e,d,l,function(){a&&a(),ur()}),m=!0)}),m||l(e)}ar(),"string"==typeof e?function(r,t,e,n){var o=n?"":ir("al "+r);l(r,function(e){x(e,'Loading data file "'+r+'" failed (no arrayBuffer).'),t(new Uint8Array(e)),o&&ur()},function(t){if(!e)throw'Loading data file "'+r+'" failed.';e()}),o&&ar()}(e,function(r){m(r)},a):m(e)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(r,t,e){t=t||function(){},e=e||function(){};var n=Rr.indexedDB();try{var o=n.open(Rr.DB_NAME(),Rr.DB_VERSION)}catch(i){return e(i)}o.onupgradeneeded=function(){b("creating db"),o.result.createObjectStore(Rr.DB_STORE_NAME)},o.onsuccess=function(){var n=o.result.transaction([Rr.DB_STORE_NAME],"readwrite"),i=n.objectStore(Rr.DB_STORE_NAME),a=0,u=0,s=r.length;function c(){0==u?t():e()}r.forEach(function(r){var t=i.put(Rr.analyzePath(r).object.contents,r);t.onsuccess=function(){++a+u==s&&c()},t.onerror=function(){a+ ++u==s&&c()}}),n.onerror=e},o.onerror=e},loadFilesFromDB:function(r,t,e){t=t||function(){},e=e||function(){};var n=Rr.indexedDB();try{var o=n.open(Rr.DB_NAME(),Rr.DB_VERSION)}catch(i){return e(i)}o.onupgradeneeded=e,o.onsuccess=function(){var n=o.result;try{var a=n.transaction([Rr.DB_STORE_NAME],"readonly")}catch(i){return void e(i)}var u=a.objectStore(Rr.DB_STORE_NAME),s=0,c=0,f=r.length;function l(){0==c?t():e()}r.forEach(function(r){var t=u.get(r);t.onsuccess=function(){Rr.analyzePath(r).exists&&Rr.unlink(r),Rr.createDataFile(Pr.dirname(r),Pr.basename(r),t.result,!0,!0,!0),++s+c==f&&l()},t.onerror=function(){s+ ++c==f&&l()}}),a.onerror=e},o.onerror=e}},zr={mappings:{},DEFAULT_POLLMASK:5,calculateAt:function(r,t,e){if("/"===t[0])return t;var n;if(-100===r)n=Rr.cwd();else{var o=Rr.getStream(r);if(!o)throw new Rr.ErrnoError(8);n=o.path}if(0==t.length){if(!e)throw new Rr.ErrnoError(44);return n}return Pr.join2(n,t)},doStat:function(r,t,e){try{var n=r(t)}catch(o){if(o&&o.node&&Pr.normalize(t)!==Pr.normalize(Rr.getPath(o.node)))return-54;throw o}return I[e>>2]=n.dev,I[e+4>>2]=0,I[e+8>>2]=n.ino,I[e+12>>2]=n.mode,I[e+16>>2]=n.nlink,I[e+20>>2]=n.uid,I[e+24>>2]=n.gid,I[e+28>>2]=n.rdev,I[e+32>>2]=0,dr=[n.size>>>0,(lr=n.size,+Math.abs(lr)>=1?lr>0?(0|Math.min(+Math.floor(lr/4294967296),4294967295))>>>0:~~+Math.ceil((lr-+(~~lr>>>0))/4294967296)>>>0:0)],I[e+40>>2]=dr[0],I[e+44>>2]=dr[1],I[e+48>>2]=4096,I[e+52>>2]=n.blocks,I[e+56>>2]=n.atime.getTime()/1e3|0,I[e+60>>2]=0,I[e+64>>2]=n.mtime.getTime()/1e3|0,I[e+68>>2]=0,I[e+72>>2]=n.ctime.getTime()/1e3|0,I[e+76>>2]=0,dr=[n.ino>>>0,(lr=n.ino,+Math.abs(lr)>=1?lr>0?(0|Math.min(+Math.floor(lr/4294967296),4294967295))>>>0:~~+Math.ceil((lr-+(~~lr>>>0))/4294967296)>>>0:0)],I[e+80>>2]=dr[0],I[e+84>>2]=dr[1],0},doMsync:function(r,t,e,n,o){var i=B.slice(r,r+e);Rr.msync(t,i,o,e,n)},doMkdir:function(r,t){return"/"===(r=Pr.normalize(r))[r.length-1]&&(r=r.substr(0,r.length-1)),Rr.mkdir(r,t,0),0},doMknod:function(r,t,e){switch(61440&t){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return Rr.mknod(r,t,e),0},doReadlink:function(r,t,e){if(e<=0)return-28;var n=Rr.readlink(r),o=Math.min(e,G(n)),i=O[t+o];return q(n,t,e+1),O[t+o]=i,o},doAccess:function(r,t){if(-8&t)return-28;var e;if(!(e=Rr.lookupPath(r,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&Rr.nodePermissions(e,n)?-2:0},doDup:function(r,t,e){var n=Rr.getStream(e);return n&&Rr.close(n),Rr.open(r,t,0,e,e).fd},doReadv:function(r,t,e,n){for(var o=0,i=0;i<e;i++){var a=I[t+8*i>>2],u=I[t+(8*i+4)>>2],s=Rr.read(r,O,a,u,n);if(s<0)return-1;if(o+=s,s<u)break}return o},doWritev:function(r,t,e,n){for(var o=0,i=0;i<e;i++){var a=I[t+8*i>>2],u=I[t+(8*i+4)>>2],s=Rr.write(r,O,a,u,n);if(s<0)return-1;o+=s}return o},varargs:void 0,get:function(){return zr.varargs+=4,I[zr.varargs-4>>2]},getStr:function(r){return H(r)},getStreamFromFD:function(r){var t=Rr.getStream(r);if(!t)throw new Rr.ErrnoError(8);return t},get64:function(r,t){return r}};var Or={};function Br(){if(!Br.strings){var r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:v||"./this.program"};for(var t in Or)void 0===Or[t]?delete r[t]:r[t]=Or[t];var e=[];for(var t in r)e.push(t+"="+r[t]);Br.strings=e}return Br.strings}function Nr(r){return r%4==0&&(r%100!=0||r%400==0)}function Ir(r,t){for(var e=0,n=0;n<=t;e+=r[n++]);return e}var Ur=[31,29,31,30,31,30,31,31,30,31,30,31],Lr=[31,28,31,30,31,30,31,31,30,31,30,31];function Hr(r,t){for(var e=new Date(r.getTime());t>0;){var n=Nr(e.getFullYear()),o=e.getMonth(),i=(n?Ur:Lr)[o];if(!(t>i-e.getDate()))return e.setDate(e.getDate()+t),e;t-=i-e.getDate()+1,e.setDate(1),o<11?e.setMonth(o+1):(e.setMonth(0),e.setFullYear(e.getFullYear()+1))}return e}function Yr(r,t,e,n){var o=I[n+40>>2],i={tm_sec:I[n>>2],tm_min:I[n+4>>2],tm_hour:I[n+8>>2],tm_mday:I[n+12>>2],tm_mon:I[n+16>>2],tm_year:I[n+20>>2],tm_wday:I[n+24>>2],tm_yday:I[n+28>>2],tm_isdst:I[n+32>>2],tm_gmtoff:I[n+36>>2],tm_zone:o?H(o):""},a=H(e),u={"%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","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var s in u)a=a.replace(new RegExp(s,"g"),u[s]);var c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],f=["January","February","March","April","May","June","July","August","September","October","November","December"];function l(r,t,e){for(var n="number"==typeof r?r.toString():r||"";n.length<t;)n=e[0]+n;return n}function d(r,t){return l(r,t,"0")}function m(r,t){function e(r){return r<0?-1:r>0?1:0}var n;return 0===(n=e(r.getFullYear()-t.getFullYear()))&&0===(n=e(r.getMonth()-t.getMonth()))&&(n=e(r.getDate()-t.getDate())),n}function p(r){switch(r.getDay()){case 0:return new Date(r.getFullYear()-1,11,29);case 1:return r;case 2:return new Date(r.getFullYear(),0,3);case 3:return new Date(r.getFullYear(),0,2);case 4:return new Date(r.getFullYear(),0,1);case 5:return new Date(r.getFullYear()-1,11,31);case 6:return new Date(r.getFullYear()-1,11,30)}}function h(r){var t=Hr(new Date(r.tm_year+1900,0,1),r.tm_yday),e=new Date(t.getFullYear(),0,4),n=new Date(t.getFullYear()+1,0,4),o=p(e),i=p(n);return m(o,t)<=0?m(i,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var v={"%a":function(r){return c[r.tm_wday].substring(0,3)},"%A":function(r){return c[r.tm_wday]},"%b":function(r){return f[r.tm_mon].substring(0,3)},"%B":function(r){return f[r.tm_mon]},"%C":function(r){return d((r.tm_year+1900)/100|0,2)},"%d":function(r){return d(r.tm_mday,2)},"%e":function(r){return l(r.tm_mday,2," ")},"%g":function(r){return h(r).toString().substring(2)},"%G":function(r){return h(r)},"%H":function(r){return d(r.tm_hour,2)},"%I":function(r){var t=r.tm_hour;return 0==t?t=12:t>12&&(t-=12),d(t,2)},"%j":function(r){return d(r.tm_mday+Ir(Nr(r.tm_year+1900)?Ur:Lr,r.tm_mon-1),3)},"%m":function(r){return d(r.tm_mon+1,2)},"%M":function(r){return d(r.tm_min,2)},"%n":function(){return"\n"},"%p":function(r){return r.tm_hour>=0&&r.tm_hour<12?"AM":"PM"},"%S":function(r){return d(r.tm_sec,2)},"%t":function(){return"\t"},"%u":function(r){return r.tm_wday||7},"%U":function(r){var t=new Date(r.tm_year+1900,0,1),e=0===t.getDay()?t:Hr(t,7-t.getDay()),n=new Date(r.tm_year+1900,r.tm_mon,r.tm_mday);if(m(e,n)<0){var o=Ir(Nr(n.getFullYear())?Ur:Lr,n.getMonth()-1)-31,i=31-e.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===m(e,t)?"01":"00"},"%V":function(r){var t,e=new Date(r.tm_year+1900,0,4),n=new Date(r.tm_year+1901,0,4),o=p(e),i=p(n),a=Hr(new Date(r.tm_year+1900,0,1),r.tm_yday);return m(a,o)<0?"53":m(i,a)<=0?"01":(t=o.getFullYear()<r.tm_year+1900?r.tm_yday+32-o.getDate():r.tm_yday+1-o.getDate(),d(Math.ceil(t/7),2))},"%w":function(r){return r.tm_wday},"%W":function(r){var t=new Date(r.tm_year,0,1),e=1===t.getDay()?t:Hr(t,0===t.getDay()?1:7-t.getDay()+1),n=new Date(r.tm_year+1900,r.tm_mon,r.tm_mday);if(m(e,n)<0){var o=Ir(Nr(n.getFullYear())?Ur:Lr,n.getMonth()-1)-31,i=31-e.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===m(e,t)?"01":"00"},"%y":function(r){return(r.tm_year+1900).toString().substring(2)},"%Y":function(r){return r.tm_year+1900},"%z":function(r){var t=r.tm_gmtoff,e=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(e?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(r){return r.tm_zone},"%%":function(){return"%"}};for(var s in v)a.includes(s)&&(a=a.replace(new RegExp(s,"g"),v[s](i)));var w=Gr(a,!1);return w.length>t?0:(V(w,r),w.length-1)}var qr=function(r,t,e,n){r||(r=this),this.parent=r,this.mount=r.mount,this.mounted=null,this.id=Rr.nextInode++,this.name=t,this.mode=e,this.node_ops={},this.stream_ops={},this.rdev=n};function Gr(r,t,e){var n=e>0?e:G(r)+1,o=new Array(n),i=Y(r,o,0,o.length);return t&&(o.length=i),o}Object.defineProperties(qr.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(r){r?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(r){r?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return Rr.isDir(this.mode)}},isDevice:{get:function(){return Rr.isChrdev(this.mode)}}}),Rr.FSNode=qr,Rr.staticInit();var Wr,Xr={va:function(r,t){return function(r,t){var e;if(0===r)e=Date.now();else{if(1!==r&&4!==r||!_r)return Er(28),-1;e=mr()}return I[t>>2]=e/1e3|0,I[t+4>>2]=e%1e3*1e3*1e3|0,0}(r,t)},k:function(r){return Kr(r+16)+16},q:function(r){var t=new kr(r),e=t.get_exception_info();return e.get_caught()||(e.set_caught(!0),Dr--),e.set_rethrown(!1),jr.push(t),function(r){r.add_ref()}(e),t.get_exception_ptr()},v:function(){nt(0);var r=jr.pop();!function(r){if(r.release_ref()&&!r.get_rethrown()){var t=r.get_destructor();t&&yr(t)(r.excPtr),Fr(r.excPtr)}}(r.get_exception_info()),r.free(),Sr=0},b:function(){var r=Sr;if(!r)return S(0),0;var t=new br(r).get_type(),e=new kr;if(e.set_base_ptr(r),e.set_adjusted_ptr(r),!t)return S(0),0|e.ptr;for(var n=Array.prototype.slice.call(arguments),o=0;o<n.length;o++){var i=n[o];if(0===i||i===t)break;if(ot(i,t,e.get_adjusted_ptr_addr()))return S(i),0|e.ptr}return S(t),0|e.ptr},h:function(){var r=Sr;if(!r)return S(0),0;var t=new br(r).get_type(),e=new kr;if(e.set_base_ptr(r),e.set_adjusted_ptr(r),!t)return S(0),0|e.ptr;for(var n=Array.prototype.slice.call(arguments),o=0;o<n.length;o++){var i=n[o];if(0===i||i===t)break;if(ot(i,t,e.get_adjusted_ptr_addr()))return S(i),0|e.ptr}return S(t),0|e.ptr},B:function(){var r=Sr;if(!r)return S(0),0;var t=new br(r).get_type(),e=new kr;if(e.set_base_ptr(r),e.set_adjusted_ptr(r),!t)return S(0),0|e.ptr;for(var n=Array.prototype.slice.call(arguments),o=0;o<n.length;o++){var i=n[o];if(0===i||i===t)break;if(ot(i,t,e.get_adjusted_ptr_addr()))return S(i),0|e.ptr}return S(t),0|e.ptr},L:function(){var r=Sr;if(!r)return S(0),0;var t=new br(r).get_type(),e=new kr;if(e.set_base_ptr(r),e.set_adjusted_ptr(r),!t)return S(0),0|e.ptr;for(var n=Array.prototype.slice.call(arguments),o=0;o<n.length;o++){var i=n[o];if(0===i||i===t)break;if(ot(i,t,e.get_adjusted_ptr_addr()))return S(i),0|e.ptr}return S(t),0|e.ptr},l:Fr,W:function(){var r=jr.pop();r||sr("no exception to throw");var t=r.get_exception_info(),e=r.get_base_ptr();throw t.get_rethrown()?r.free():(jr.push(r),t.set_rethrown(!0),t.set_caught(!1),Dr++),Sr=e,e},s:function(r,t,e){throw new br(r).init(t,e),Sr=r,Dr++,r},oa:function(){return Dr},ua:function(r,t){return Mr(r,t)},ta:function(r,t){return function(r,t){Ar();var e=new Date(1e3*I[r>>2]);I[t>>2]=e.getSeconds(),I[t+4>>2]=e.getMinutes(),I[t+8>>2]=e.getHours(),I[t+12>>2]=e.getDate(),I[t+16>>2]=e.getMonth(),I[t+20>>2]=e.getFullYear()-1900,I[t+24>>2]=e.getDay();var n=new Date(e.getFullYear(),0,1),o=(e.getTime()-n.getTime())/864e5|0;I[t+28>>2]=o,I[t+36>>2]=-60*e.getTimezoneOffset();var i=new Date(e.getFullYear(),6,1).getTimezoneOffset(),a=n.getTimezoneOffset(),u=0|(i!=a&&e.getTimezoneOffset()==Math.min(a,i));I[t+32>>2]=u;var s=I[$r()+(u?4:0)>>2];return I[t+40>>2]=s,t}(r,t)},c:function(r){var t=new kr(r),e=t.get_base_ptr();throw Sr||(Sr=e),t.free(),e},ya:function(r,t){try{var e=zr.getStreamFromFD(r);return e.fd===t?t:zr.doDup(e.path,e.flags,t)}catch(n){return void 0!==Rr&&n instanceof Rr.ErrnoError||sr(n),-n.errno}},za:function(r,t,e){try{var n=zr.getStreamFromFD(r);return n.fd===t?-28:zr.doDup(n.path,n.flags,t)}catch(o){return void 0!==Rr&&o instanceof Rr.ErrnoError||sr(o),-o.errno}},H:function(r,t,e){zr.varargs=e;try{var n=zr.getStreamFromFD(r);switch(t){case 0:return(o=zr.get())<0?-28:Rr.open(n.path,n.flags,0,o).fd;case 1:case 2:return 0;case 3:return n.flags;case 4:var o=zr.get();return n.flags|=o,0;case 12:return o=zr.get(),N[o+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Er(28),-1;default:return-28}}catch(i){return void 0!==Rr&&i instanceof Rr.ErrnoError||sr(i),-i.errno}},wa:function(r,t){try{if(0===t)return-28;var e=Rr.cwd();return t<G(e)+1?-68:(q(e,r,t),r)}catch(n){return void 0!==Rr&&n instanceof Rr.ErrnoError||sr(n),-n.errno}},Aa:function(r,t,e){zr.varargs=e;try{var n=zr.getStreamFromFD(r);switch(t){case 21509:case 21505:return n.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var o=zr.get();return I[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:return o=zr.get(),Rr.ioctl(n,t,o);case 21523:case 21524:return n.tty?0:-59;default:sr("bad ioctl syscall "+t)}}catch(i){return void 0!==Rr&&i instanceof Rr.ErrnoError||sr(i),-i.errno}},S:function(r,t){try{return r=zr.getStr(r),zr.doStat(Rr.lstat,r,t)}catch(e){return void 0!==Rr&&e instanceof Rr.ErrnoError||sr(e),-e.errno}},R:function(r,t,e){zr.varargs=e;try{var n=zr.getStr(r),o=e?zr.get():0;return Rr.open(n,t,o).fd}catch(i){return void 0!==Rr&&i instanceof Rr.ErrnoError||sr(i),-i.errno}},xa:function(r,t,e){try{return r=zr.getStr(r),zr.doReadlink(r,t,e)}catch(n){return void 0!==Rr&&n instanceof Rr.ErrnoError||sr(n),-n.errno}},Ca:function(r,t){try{return r=zr.getStr(r),t=zr.getStr(t),Rr.rename(r,t),0}catch(e){return void 0!==Rr&&e instanceof Rr.ErrnoError||sr(e),-e.errno}},Da:function(r){try{return r=zr.getStr(r),Rr.rmdir(r),0}catch(t){return void 0!==Rr&&t instanceof Rr.ErrnoError||sr(t),-t.errno}},Ea:function(r,t){try{return r=zr.getStr(r),zr.doStat(Rr.stat,r,t)}catch(e){return void 0!==Rr&&e instanceof Rr.ErrnoError||sr(e),-e.errno}},Q:function(r){try{return r=zr.getStr(r),Rr.unlink(r),0}catch(t){return void 0!==Rr&&t instanceof Rr.ErrnoError||sr(t),-t.errno}},qa:function(){throw"longjmp"},J:function(){sr("")},T:function r(){return void 0===r.start&&(r.start=Date.now()),1e3*(Date.now()-r.start)|0},Ia:function(r,t){return r-t},na:function(r){B.length,sr("OOM")},ra:function(r,t){var e=0;return Br().forEach(function(n,o){var i=t+e;I[r+4*o>>2]=i,function(r,t,e){for(var n=0;n<r.length;++n)O[t++>>0]=r.charCodeAt(n);e||(O[t>>0]=0)}(n,i),e+=n.length+1}),0},sa:function(r,t){var e=Br();I[r>>2]=e.length;var n=0;return e.forEach(function(r){n+=r.length+1}),I[t>>2]=n,0},Ga:function(r){St(r)},I:function(r){try{var t=zr.getStreamFromFD(r);return Rr.close(t),0}catch(e){return void 0!==Rr&&e instanceof Rr.ErrnoError||sr(e),e.errno}},Ba:function(r,t,e,n){try{var o=zr.getStreamFromFD(r),i=zr.doReadv(o,t,e);return I[n>>2]=i,0}catch(a){return void 0!==Rr&&a instanceof Rr.ErrnoError||sr(a),a.errno}},Z:function(r,t,e,n,o){try{var i=zr.getStreamFromFD(r),a=4294967296*e+(t>>>0);return a<=-9007199254740992||a>=9007199254740992?-61:(Rr.llseek(i,a,n),dr=[i.position>>>0,(lr=i.position,+Math.abs(lr)>=1?lr>0?(0|Math.min(+Math.floor(lr/4294967296),4294967295))>>>0:~~+Math.ceil((lr-+(~~lr>>>0))/4294967296)>>>0:0)],I[o>>2]=dr[0],I[o+4>>2]=dr[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(u){return void 0!==Rr&&u instanceof Rr.ErrnoError||sr(u),u.errno}},P:function(r,t,e,n){try{var o=zr.getStreamFromFD(r),i=zr.doWritev(o,t,e);return I[n>>2]=i,0}catch(a){return void 0!==Rr&&a instanceof Rr.ErrnoError||sr(a),a.errno}},a:function(){return F()},w:function(r,t){var e=rt();try{return yr(r)(t)}catch(n){if(tt(e),n!==n+0&&"longjmp"!==n)throw n;nt(1,0)}},M:function(r,t,e,n){var o=rt();try{return yr(r)(t,e,n)}catch(i){if(tt(o),i!==i+0&&"longjmp"!==i)throw i;nt(1,0)}},N:function(r,t,e,n){var o=rt();try{return yr(r)(t,e,n)}catch(i){if(tt(o),i!==i+0&&"longjmp"!==i)throw i;nt(1,0)}},r:function(r){var t=rt();try{return yr(r)()}catch(e){if(tt(t),e!==e+0&&"longjmp"!==e)throw e;nt(1,0)}},i:function(r,t){var e=rt();try{return yr(r)(t)}catch(n){if(tt(e),n!==n+0&&"longjmp"!==n)throw n;nt(1,0)}},d:function(r,t,e){var n=rt();try{return yr(r)(t,e)}catch(o){if(tt(n),o!==o+0&&"longjmp"!==o)throw o;nt(1,0)}},g:function(r,t,e,n){var o=rt();try{return yr(r)(t,e,n)}catch(i){if(tt(o),i!==i+0&&"longjmp"!==i)throw i;nt(1,0)}},j:function(r,t,e,n,o){var i=rt();try{return yr(r)(t,e,n,o)}catch(a){if(tt(i),a!==a+0&&"longjmp"!==a)throw a;nt(1,0)}},u:function(r,t,e,n,o,i){var a=rt();try{return yr(r)(t,e,n,o,i)}catch(u){if(tt(a),u!==u+0&&"longjmp"!==u)throw u;nt(1,0)}},x:function(r,t,e,n,o,i,a){var u=rt();try{return yr(r)(t,e,n,o,i,a)}catch(s){if(tt(u),s!==s+0&&"longjmp"!==s)throw s;nt(1,0)}},O:function(r,t,e,n,o,i,a,u){var s=rt();try{return yr(r)(t,e,n,o,i,a,u)}catch(c){if(tt(s),c!==c+0&&"longjmp"!==c)throw c;nt(1,0)}},Ka:function(r,t,e,n,o,i,a,u,s,c,f){var l=rt();try{return yr(r)(t,e,n,o,i,a,u,s,c,f)}catch(d){if(tt(l),d!==d+0&&"longjmp"!==d)throw d;nt(1,0)}},E:function(r,t,e,n,o,i,a,u,s,c,f,l){var d=rt();try{return yr(r)(t,e,n,o,i,a,u,s,c,f,l)}catch(m){if(tt(d),m!==m+0&&"longjmp"!==m)throw m;nt(1,0)}},U:function(r,t,e,n,o,i,a,u,s,c,f,l,d){var m=rt();try{return yr(r)(t,e,n,o,i,a,u,s,c,f,l,d)}catch(p){if(tt(m),p!==p+0&&"longjmp"!==p)throw p;nt(1,0)}},X:function(r,t,e,n,o,i,a,u,s){var c=rt();try{return bt(r,t,e,n,o,i,a,u,s)}catch(f){if(tt(c),f!==f+0&&"longjmp"!==f)throw f;nt(1,0)}},ja:function(r,t,e,n,o,i){var a=rt();try{return ct(r,t,e,n,o,i)}catch(u){if(tt(a),u!==u+0&&"longjmp"!==u)throw u;nt(1,0)}},ia:function(r,t,e,n,o,i,a,u){var s=rt();try{return ft(r,t,e,n,o,i,a,u)}catch(c){if(tt(s),c!==c+0&&"longjmp"!==c)throw c;nt(1,0)}},$:function(r,t,e,n){var o=rt();try{return yt(r,t,e,n)}catch(i){if(tt(o),i!==i+0&&"longjmp"!==i)throw i;nt(1,0)}},Y:function(r,t,e,n,o){var i=rt();try{return Et(r,t,e,n,o)}catch(a){if(tt(i),a!==a+0&&"longjmp"!==a)throw a;nt(1,0)}},m:function(r){var t=rt();try{yr(r)()}catch(e){if(tt(t),e!==e+0&&"longjmp"!==e)throw e;nt(1,0)}},p:function(r,t){var e=rt();try{yr(r)(t)}catch(n){if(tt(e),n!==n+0&&"longjmp"!==n)throw n;nt(1,0)}},z:function(r,t,e){var n=rt();try{yr(r)(t,e)}catch(o){if(tt(n),o!==o+0&&"longjmp"!==o)throw o;nt(1,0)}},ba:function(r,t,e,n,o,i,a){var u=rt();try{ht(r,t,e,n,o,i,a)}catch(s){if(tt(u),s!==s+0&&"longjmp"!==s)throw s;nt(1,0)}},e:function(r,t,e){var n=rt();try{yr(r)(t,e)}catch(o){if(tt(n),o!==o+0&&"longjmp"!==o)throw o;nt(1,0)}},f:function(r,t,e,n){var o=rt();try{yr(r)(t,e,n)}catch(i){if(tt(o),i!==i+0&&"longjmp"!==i)throw i;nt(1,0)}},G:function(r,t,e,n,o,i,a,u,s,c,f,l){var d=rt();try{yr(r)(t,e,n,o,i,a,u,s,c,f,l)}catch(m){if(tt(d),m!==m+0&&"longjmp"!==m)throw m;nt(1,0)}},o:function(r,t,e,n,o){var i=rt();try{yr(r)(t,e,n,o)}catch(a){if(tt(i),a!==a+0&&"longjmp"!==a)throw a;nt(1,0)}},n:function(r,t,e,n,o,i){var a=rt();try{yr(r)(t,e,n,o,i)}catch(u){if(tt(a),u!==u+0&&"longjmp"!==u)throw u;nt(1,0)}},K:function(r,t,e,n,o,i,a){var u=rt();try{yr(r)(t,e,n,o,i,a)}catch(s){if(tt(u),s!==s+0&&"longjmp"!==s)throw s;nt(1,0)}},y:function(r,t,e,n,o,i,a,u){var s=rt();try{yr(r)(t,e,n,o,i,a,u)}catch(c){if(tt(s),c!==c+0&&"longjmp"!==c)throw c;nt(1,0)}},V:function(r,t,e,n,o,i,a,u,s){var c=rt();try{yr(r)(t,e,n,o,i,a,u,s)}catch(f){if(tt(c),f!==f+0&&"longjmp"!==f)throw f;nt(1,0)}},A:function(r,t,e,n,o,i,a,u,s,c,f){var l=rt();try{yr(r)(t,e,n,o,i,a,u,s,c,f)}catch(d){if(tt(l),d!==d+0&&"longjmp"!==d)throw d;nt(1,0)}},D:function(r,t,e,n,o,i,a,u,s,c,f,l,d,m,p,h){var v=rt();try{yr(r)(t,e,n,o,i,a,u,s,c,f,l,d,m,p,h)}catch(w){if(tt(v),w!==w+0&&"longjmp"!==w)throw w;nt(1,0)}},ea:function(r,t,e,n,o,i,a){var u=rt();try{pt(r,t,e,n,o,i,a)}catch(s){if(tt(u),s!==s+0&&"longjmp"!==s)throw s;nt(1,0)}},fa:function(r,t,e,n,o,i,a,u){var s=rt();try{mt(r,t,e,n,o,i,a,u)}catch(c){if(tt(s),c!==c+0&&"longjmp"!==c)throw c;nt(1,0)}},ca:function(r,t,e,n,o,i,a,u,s){var c=rt();try{vt(r,t,e,n,o,i,a,u,s)}catch(f){if(tt(c),f!==f+0&&"longjmp"!==f)throw f;nt(1,0)}},da:function(r,t,e,n,o,i,a,u,s,c,f,l){var d=rt();try{wt(r,t,e,n,o,i,a,u,s,c,f,l)}catch(m){if(tt(d),m!==m+0&&"longjmp"!==m)throw m;nt(1,0)}},la:function(r,t,e,n,o,i,a,u){var s=rt();try{ut(r,t,e,n,o,i,a,u)}catch(c){if(tt(s),c!==c+0&&"longjmp"!==c)throw c;nt(1,0)}},ga:function(r,t,e,n,o,i,a,u,s){var c=rt();try{dt(r,t,e,n,o,i,a,u,s)}catch(f){if(tt(c),f!==f+0&&"longjmp"!==f)throw f;nt(1,0)}},ka:function(r,t,e,n,o,i,a,u,s,c){var f=rt();try{st(r,t,e,n,o,i,a,u,s,c)}catch(l){if(tt(f),l!==l+0&&"longjmp"!==l)throw l;nt(1,0)}},aa:function(r,t,e,n){var o=rt();try{gt(r,t,e,n)}catch(i){if(tt(o),i!==i+0&&"longjmp"!==i)throw i;nt(1,0)}},ha:function(r,t,e,n,o,i){var a=rt();try{lt(r,t,e,n,o,i)}catch(u){if(tt(a),u!==u+0&&"longjmp"!==u)throw u;nt(1,0)}},_:function(r,t,e,n,o,i,a){var u=rt();try{_t(r,t,e,n,o,i,a)}catch(s){if(tt(u),s!==s+0&&"longjmp"!==s)throw s;nt(1,0)}},ma:function(r,t,e,n,o,i,a,u,s,c){var f=rt();try{at(r,t,e,n,o,i,a,u,s,c)}catch(l){if(tt(f),l!==l+0&&"longjmp"!==l)throw l;nt(1,0)}},t:function(r){return r},Fa:function(r){Ar();var t=new Date(I[r+20>>2]+1900,I[r+16>>2],I[r+12>>2],I[r+8>>2],I[r+4>>2],I[r>>2],0),e=I[r+32>>2],n=t.getTimezoneOffset(),o=new Date(t.getFullYear(),0,1),i=new Date(t.getFullYear(),6,1).getTimezoneOffset(),a=o.getTimezoneOffset(),u=Math.min(a,i);if(e<0)I[r+32>>2]=Number(i!=a&&u==n);else if(e>0!=(u==n)){var s=Math.max(a,i),c=e>0?u:s;t.setTime(t.getTime()+6e4*(c-n))}I[r+24>>2]=t.getDay();var f=(t.getTime()-o.getTime())/864e5|0;return I[r+28>>2]=f,I[r>>2]=t.getSeconds(),I[r+4>>2]=t.getMinutes(),I[r+8>>2]=t.getHours(),I[r+12>>2]=t.getDate(),I[r+16>>2]=t.getMonth(),t.getTime()/1e3|0},C:function(r){S(r)},Ja:Yr,pa:function(r,t,e,n){return Yr(r,t,e,n)},Ha:function(r){if(_){if(!r)return 1;var t=H(r);if(!t.length)return 0;var e=require("child_process").spawnSync(t,[],{shell:!0,stdio:"inherit"}),n=function(r,t){return r<<8|t};return null===e.status?n(0,function(r){switch(r){case"SIGHUP":return 1;case"SIGINT":return 2;case"SIGQUIT":return 3;case"SIGFPE":return 8;case"SIGKILL":return 9;case"SIGALRM":return 14;case"SIGTERM":return 15}return 2}(e.signal)):n(e.status,0)}return r?(Er(52),-1):0},F:function(r){var t=Date.now()/1e3|0;return r&&(I[r>>2]=t),t}},Vr=(function(){var r={a:Xr};function t(r,t){var e,n,o=r.exports;u.asm=o,M=u.asm.La,e=M.buffer,z=e,u.HEAP8=O=new Int8Array(e),u.HEAP16=N=new Int16Array(e),u.HEAP32=I=new Int32Array(e),u.HEAPU8=B=new Uint8Array(e),u.HEAPU16=new Uint16Array(e),u.HEAPU32=new Uint32Array(e),u.HEAPF32=new Float32Array(e),u.HEAPF64=new Float64Array(e),K=u.asm.Pa,n=u.asm.Ma,$.unshift(n),ur()}function e(r){t(r.instance)}function n(t){return function(){if(!j&&(g||y)){if("function"==typeof fetch&&!vr(cr))return fetch(cr,{credentials:"same-origin"}).then(function(r){if(!r.ok)throw"failed to load wasm binary file at '"+cr+"'";return r.arrayBuffer()}).catch(function(){return wr(cr)});if(l)return new Promise(function(r,t){l(cr,function(t){r(new Uint8Array(t))},t)})}return Promise.resolve().then(function(){return wr(cr)})}().then(function(t){return WebAssembly.instantiate(t,r)}).then(function(r){return r}).then(t,function(r){k("failed to asynchronously prepare wasm: "+r),sr(r)})}if(ar(),u.instantiateWasm)try{return u.instantiateWasm(r,t)}catch(o){return k("Module.instantiateWasm callback failed with error: "+o),!1}(j||"function"!=typeof WebAssembly.instantiateStreaming||hr(cr)||vr(cr)||"function"!=typeof fetch?n(e):fetch(cr,{credentials:"same-origin"}).then(function(t){return WebAssembly.instantiateStreaming(t,r).then(e,function(r){return k("wasm streaming compile failed: "+r),k("falling back to ArrayBuffer instantiation"),n(e)})})).catch(a)}(),u.___wasm_call_ctors=function(){return(u.___wasm_call_ctors=u.asm.Ma).apply(null,arguments)},u._create_compile_result=function(){return(u._create_compile_result=u.asm.Na).apply(null,arguments)},u._main=function(){return(u._main=u.asm.Oa).apply(null,arguments)},u._free=function(){return(Vr=u._free=u.asm.Qa).apply(null,arguments)}),Kr=u._malloc=function(){return(Kr=u._malloc=u.asm.Ra).apply(null,arguments)},Jr=u.___errno_location=function(){return(Jr=u.___errno_location=u.asm.Sa).apply(null,arguments)},$r=u.__get_tzname=function(){return($r=u.__get_tzname=u.asm.Ta).apply(null,arguments)},Zr=u.__get_daylight=function(){return(Zr=u.__get_daylight=u.asm.Ua).apply(null,arguments)},Qr=u.__get_timezone=function(){return(Qr=u.__get_timezone=u.asm.Va).apply(null,arguments)},rt=u.stackSave=function(){return(rt=u.stackSave=u.asm.Wa).apply(null,arguments)},tt=u.stackRestore=function(){return(tt=u.stackRestore=u.asm.Xa).apply(null,arguments)},et=u.stackAlloc=function(){return(et=u.stackAlloc=u.asm.Ya).apply(null,arguments)},nt=u._setThrew=function(){return(nt=u._setThrew=u.asm.Za).apply(null,arguments)},ot=u.___cxa_can_catch=function(){return(ot=u.___cxa_can_catch=u.asm._a).apply(null,arguments)},it=u.___cxa_is_pointer_type=function(){return(it=u.___cxa_is_pointer_type=u.asm.$a).apply(null,arguments)},at=u.dynCall_vijjjj=function(){return(at=u.dynCall_vijjjj=u.asm.ab).apply(null,arguments)},ut=u.dynCall_viijji=function(){return(ut=u.dynCall_viijji=u.asm.bb).apply(null,arguments)},st=u.dynCall_viijjiii=function(){return(st=u.dynCall_viijjiii=u.asm.cb).apply(null,arguments)},ct=u.dynCall_iijj=function(){return(ct=u.dynCall_iijj=u.asm.db).apply(null,arguments)},ft=u.dynCall_iijjii=function(){return(ft=u.dynCall_iijjii=u.asm.eb).apply(null,arguments)},lt=u.dynCall_vijj=function(){return(lt=u.dynCall_vijj=u.asm.fb).apply(null,arguments)},dt=u.dynCall_viijjii=function(){return(dt=u.dynCall_viijjii=u.asm.gb).apply(null,arguments)},mt=u.dynCall_viijjd=function(){return(mt=u.dynCall_viijjd=u.asm.hb).apply(null,arguments)},pt=u.dynCall_viijj=function(){return(pt=u.dynCall_viijj=u.asm.ib).apply(null,arguments)},ht=u.dynCall_vidjj=function(){return(ht=u.dynCall_vidjj=u.asm.jb).apply(null,arguments)},vt=u.dynCall_viijjdi=function(){return(vt=u.dynCall_viijjdi=u.asm.kb).apply(null,arguments)},wt=u.dynCall_viijjdjj=function(){return(wt=u.dynCall_viijjdjj=u.asm.lb).apply(null,arguments)},gt=u.dynCall_vij=function(){return(gt=u.dynCall_vij=u.asm.mb).apply(null,arguments)},yt=u.dynCall_jiii=function(){return(yt=u.dynCall_jiii=u.asm.nb).apply(null,arguments)},_t=u.dynCall_vijji=function(){return(_t=u.dynCall_vijji=u.asm.ob).apply(null,arguments)},Et=u.dynCall_jiiii=function(){return(Et=u.dynCall_jiiii=u.asm.pb).apply(null,arguments)},bt=u.dynCall_iiiiijj=function(){return(bt=u.dynCall_iiiiijj=u.asm.qb).apply(null,arguments)};function kt(r){this.name="ExitStatus",this.message="Program terminated with exit("+r+")",this.status=r}u.cwrap=function(r,t,e,n){var o=(e=e||[]).every(function(r){return"number"===r});return"string"!==t&&o&&!n?C(r):function(){return R(r,t,e,arguments)}},u.UTF8ToString=H,u.FS=Rr;function jt(r){var t=u._main,e=(r=r||[]).length+1,n=et(4*(e+1));I[n>>2]=X(v);for(var o=1;o<e;o++)I[(n>>2)+o]=X(r[o-1]);I[(n>>2)+e]=0;try{var i=t(e,n);return St(i,!0),i}catch(a){return function(r){if(r instanceof kt||"unwind"==r)return P;w(1,r)}(a)}finally{!0}}function Dt(r){function t(){Wr||(Wr=!0,u.calledRun=!0,T||(!0,u.noFSInit||Rr.init.initialized||Rr.init(),Rr.ignorePermissions=!1,xr.init(),gr($),gr(Z),i(u),u.onRuntimeInitialized&&u.onRuntimeInitialized(),Ft&&jt(r),function(){if(u.postRun)for("function"==typeof u.postRun&&(u.postRun=[u.postRun]);u.postRun.length;)r=u.postRun.shift(),Q.unshift(r);var r;gr(Q)}()))}r=r||h,er>0||(!function(){if(u.preRun)for("function"==typeof u.preRun&&(u.preRun=[u.preRun]);u.preRun.length;)r=u.preRun.shift(),J.unshift(r);var r;gr(J)}(),er>0||(u.setStatus?(u.setStatus("Running..."),setTimeout(function(){setTimeout(function(){u.setStatus("")},1),t()},1)):t()))}function St(r,t){P=r,tr()||!0,function(r){P=r,tr()||(u.onExit&&u.onExit(r),T=!0);w(r,new kt(r))}(r)}if(or=function r(){Wr||Dt(),Wr||(or=r)},u.run=Dt,u.preInit)for("function"==typeof u.preInit&&(u.preInit=[u.preInit]);u.preInit.length>0;)u.preInit.pop()();var Ft=!0;return u.noInitialRun&&(Ft=!1),Dt(),t.ready}}();"object"==typeof exports&&"object"==typeof module?module.exports=i:"function"==typeof r&&r.amd?r([],function(){return i}):"object"==typeof exports&&(exports.startWerckmeisterJs=i);
490
+ var r,t="/home/runner/work/werckmeister-component/werckmeister-component/node_modules/@werckmeister/compilerjs/werckmeister.js",e=require("process"),n="/home/runner/work/werckmeister-component/werckmeister-component/node_modules/@werckmeister/compilerjs",o=require("buffer").Buffer,i=(()=>{var r="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return void 0!==t&&(r=r||t),function(t){var i,a,u=void 0!==(t=t||{})?t:{},s=Object.assign;u.ready=new Promise(function(r,t){i=r,a=t});var c,f,l,d,m,h,p=s({},u),w=[],v="./this.program",g=(r,t)=>{throw t},y="object"==typeof window,_="function"==typeof importScripts,E="object"==typeof e&&"object"==typeof e.versions&&"string"==typeof e.versions.node,b="";E?(b=_?require("path").dirname(b)+"/":n+"/",h=function(){m||(d=require("fs"),m=require("path"))},c=function(r,t){return h(),r=m.normalize(r),d.readFileSync(r,t?null:"utf8")},l=function(r){var t=c(r,!0);return t.buffer||(t=new Uint8Array(t)),t},f=function(r,t,e){h(),r=m.normalize(r),d.readFile(r,function(r,n){r?e(r):t(n.buffer)})},e.argv.length>1&&(v=e.argv[1].replace(/\\/g,"/")),w=e.argv.slice(2),e.on("uncaughtException",function(r){if(!(r instanceof kt))throw r}),e.on("unhandledRejection",function(r){throw r}),g=((r,t)=>{if(tr())throw e.exitCode=r,t;!function(r){if(r instanceof kt)return;j("exiting due to exception: "+r)}(t),e.exit(r)}),u.inspect=function(){return"[Emscripten Module object]"}):(y||_)&&(_?b=self.location.href:"undefined"!=typeof document&&document.currentScript&&(b=document.currentScript.src),r&&(b=r),b=0!==b.indexOf("blob:")?b.substr(0,b.replace(/[?#].*/,"").lastIndexOf("/")+1):"",c=function(r){var t=new XMLHttpRequest;return t.open("GET",r,!1),t.send(null),t.responseText},_&&(l=function(r){var t=new XMLHttpRequest;return t.open("GET",r,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),f=function(r,t,e){var n=new XMLHttpRequest;n.open("GET",r,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?t(n.response):e()},n.onerror=e,n.send(null)});var k=u.print||console.log.bind(console),j=u.printErr||console.warn.bind(console);s(u,p),p=null,u.arguments&&(w=u.arguments),u.thisProgram&&(v=u.thisProgram),u.quit&&(g=u.quit);var D,S=0,F=function(r){S=r},M=function(){return S};u.wasmBinary&&(D=u.wasmBinary);var A,P=u.noExitRuntime||!0;"object"!=typeof WebAssembly&&sr("no native wasm support detected");var T,x=!1;function C(r){return u["_"+r]}function R(r,t,e,n,o){var i={string:function(r){var t=0;if(null!=r&&0!==r){var e=1+(r.length<<2);q(r,t=nt(e),e)}return t},array:function(r){var t=nt(r.length);return V(r,t),t}};var a=C(r),u=[],s=0;if(n)for(var c=0;c<n.length;c++){var f=i[e[c]];f?(0===s&&(s=tt()),u[c]=f(n[c])):u[c]=n[c]}var l=a.apply(null,u);return l=function(r){return 0!==s&&et(s),function(r){return"string"===t?H(r):"boolean"===t?Boolean(r):r}(r)}(l)}var z,O,B,N,I,U="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function L(r,t,e){for(var n=t+e,o=t;r[o]&&!(o>=n);)++o;if(o-t>16&&r.subarray&&U)return U.decode(r.subarray(t,o));for(var i="";t<o;){var a=r[t++];if(128&a){var u=63&r[t++];if(192!=(224&a)){var s=63&r[t++];if((a=224==(240&a)?(15&a)<<12|u<<6|s:(7&a)<<18|u<<12|s<<6|63&r[t++])<65536)i+=String.fromCharCode(a);else{var c=a-65536;i+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else i+=String.fromCharCode((31&a)<<6|u)}else i+=String.fromCharCode(a)}return i}function H(r,t){return r?L(B,r,t):""}function Y(r,t,e,n){if(!(n>0))return 0;for(var o=e,i=e+n-1,a=0;a<r.length;++a){var u=r.charCodeAt(a);if(u>=55296&&u<=57343)u=65536+((1023&u)<<10)|1023&r.charCodeAt(++a);if(u<=127){if(e>=i)break;t[e++]=u}else if(u<=2047){if(e+1>=i)break;t[e++]=192|u>>6,t[e++]=128|63&u}else if(u<=65535){if(e+2>=i)break;t[e++]=224|u>>12,t[e++]=128|u>>6&63,t[e++]=128|63&u}else{if(e+3>=i)break;t[e++]=240|u>>18,t[e++]=128|u>>12&63,t[e++]=128|u>>6&63,t[e++]=128|63&u}}return t[e]=0,e-o}function q(r,t,e){return Y(r,B,t,e)}function W(r){for(var t=0,e=0;e<r.length;++e){var n=r.charCodeAt(e);n>=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&r.charCodeAt(++e)),n<=127?++t:t+=n<=2047?2:n<=65535?3:4}return t}function G(r){var t=W(r)+1,e=Kr(t);return e&&Y(r,O,e,t),e}function X(r){var t=W(r)+1,e=nt(t);return Y(r,O,e,t),e}function V(r,t){O.set(r,t)}u.INITIAL_MEMORY;var K,J=[],$=[],Z=[],Q=[],rr=0;function tr(){return P||rr>0}var er=0,nr=null,or=null;function ir(r){return r}function ar(r){er++,u.monitorRunDependencies&&u.monitorRunDependencies(er)}function ur(r){if(er--,u.monitorRunDependencies&&u.monitorRunDependencies(er),0==er&&(null!==nr&&(clearInterval(nr),nr=null),or)){var t=or;or=null,t()}}function sr(r){u.onAbort&&u.onAbort(r),j(r="Aborted("+r+")"),x=!0,T=1,r+=". Build with -s ASSERTIONS=1 for more info.";var t=new WebAssembly.RuntimeError(r);throw a(t),t}u.preloadedImages={},u.preloadedAudios={};var cr,fr,lr,dr,mr,hr="data:application/octet-stream;base64,";function pr(r){return r.startsWith(hr)}function wr(r){return r.startsWith("file://")}function vr(r){try{if(r==cr&&D)return new Uint8Array(D);if(l)return l(r);throw"both async and sync fetching of the wasm failed"}catch(j){sr(j)}}function gr(r){for(;r.length>0;){var t=r.shift();if("function"!=typeof t){var e=t.func;"number"==typeof e?void 0===t.arg?yr(e)():yr(e)(t.arg):e(void 0===t.arg?null:t.arg)}else t(u)}}function yr(r){return K.get(r)}pr(cr="werckmeister.wasm")||(fr=cr,cr=u.locateFile?u.locateFile(fr,b):b+fr),mr=E?()=>{var r=e.hrtime();return 1e3*r[0]+r[1]/1e6}:()=>performance.now();var _r=!0;function Er(r){return I[Jr()>>2]=r,r}function br(r){this.excPtr=r,this.ptr=r-16,this.set_type=function(r){I[this.ptr+4>>2]=r},this.get_type=function(){return I[this.ptr+4>>2]},this.set_destructor=function(r){I[this.ptr+8>>2]=r},this.get_destructor=function(){return I[this.ptr+8>>2]},this.set_refcount=function(r){I[this.ptr>>2]=r},this.set_caught=function(r){r=r?1:0,O[this.ptr+12>>0]=r},this.get_caught=function(){return 0!=O[this.ptr+12>>0]},this.set_rethrown=function(r){r=r?1:0,O[this.ptr+13>>0]=r},this.get_rethrown=function(){return 0!=O[this.ptr+13>>0]},this.init=function(r,t){this.set_type(r),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var r=I[this.ptr>>2];I[this.ptr>>2]=r+1},this.release_ref=function(){var r=I[this.ptr>>2];return I[this.ptr>>2]=r-1,1===r}}function kr(r){this.free=function(){Vr(this.ptr),this.ptr=0},this.set_base_ptr=function(r){I[this.ptr>>2]=r},this.get_base_ptr=function(){return I[this.ptr>>2]},this.set_adjusted_ptr=function(r){I[this.ptr+4>>2]=r},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return I[this.ptr+4>>2]},this.get_exception_ptr=function(){if(it(this.get_exception_info().get_type()))return I[this.get_base_ptr()>>2];var r=this.get_adjusted_ptr();return 0!==r?r:this.get_base_ptr()},this.get_exception_info=function(){return new br(this.get_base_ptr())},void 0===r?(this.ptr=Kr(8),this.set_adjusted_ptr(0)):this.ptr=r}var jr=[];var Dr=0;var Sr=0;function Fr(r){try{return Vr(new br(r).ptr)}catch(t){}}function Mr(){Mr.called||(Mr.called=!0,function(){var r=(new Date).getFullYear(),t=new Date(r,0,1),e=new Date(r,6,1),n=t.getTimezoneOffset(),o=e.getTimezoneOffset(),i=Math.max(n,o);function a(r){var t=r.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}I[Qr()>>2]=60*i,I[Zr()>>2]=Number(n!=o);var u=a(t),s=a(e),c=G(u),f=G(s);o<n?(I[$r()>>2]=c,I[$r()+4>>2]=f):(I[$r()>>2]=f,I[$r()+4>>2]=c)}())}var Ar={splitPath:function(r){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(r).slice(1)},normalizeArray:function(r,t){for(var e=0,n=r.length-1;n>=0;n--){var o=r[n];"."===o?r.splice(n,1):".."===o?(r.splice(n,1),e++):e&&(r.splice(n,1),e--)}if(t)for(;e;e--)r.unshift("..");return r},normalize:function(r){var t="/"===r.charAt(0),e="/"===r.substr(-1);return(r=Ar.normalizeArray(r.split("/").filter(function(r){return!!r}),!t).join("/"))||t||(r="."),r&&e&&(r+="/"),(t?"/":"")+r},dirname:function(r){var t=Ar.splitPath(r),e=t[0],n=t[1];return e||n?(n&&(n=n.substr(0,n.length-1)),e+n):"."},basename:function(r){if("/"===r)return"/";var t=(r=(r=Ar.normalize(r)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?r:r.substr(t+1)},extname:function(r){return Ar.splitPath(r)[3]},join:function(){var r=Array.prototype.slice.call(arguments,0);return Ar.normalize(r.join("/"))},join2:function(r,t){return Ar.normalize(r+"/"+t)}};var Pr={resolve:function(){for(var r="",t=!1,e=arguments.length-1;e>=-1&&!t;e--){var n=e>=0?arguments[e]:Rr.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";r=n+"/"+r,t="/"===n.charAt(0)}return(t?"/":"")+(r=Ar.normalizeArray(r.split("/").filter(function(r){return!!r}),!t).join("/"))||"."},relative:function(r,t){function e(r){for(var t=0;t<r.length&&""===r[t];t++);for(var e=r.length-1;e>=0&&""===r[e];e--);return t>e?[]:r.slice(t,e-t+1)}r=Pr.resolve(r).substr(1),t=Pr.resolve(t).substr(1);for(var n=e(r.split("/")),o=e(t.split("/")),i=Math.min(n.length,o.length),a=i,u=0;u<i;u++)if(n[u]!==o[u]){a=u;break}var s=[];for(u=a;u<n.length;u++)s.push("..");return(s=s.concat(o.slice(a))).join("/")}},Tr={ttys:[],init:function(){},shutdown:function(){},register:function(r,t){Tr.ttys[r]={input:[],output:[],ops:t},Rr.registerDevice(r,Tr.stream_ops)},stream_ops:{open:function(r){var t=Tr.ttys[r.node.rdev];if(!t)throw new Rr.ErrnoError(43);r.tty=t,r.seekable=!1},close:function(r){r.tty.ops.flush(r.tty)},flush:function(r){r.tty.ops.flush(r.tty)},read:function(r,t,e,n,o){if(!r.tty||!r.tty.ops.get_char)throw new Rr.ErrnoError(60);for(var i=0,a=0;a<n;a++){var u;try{u=r.tty.ops.get_char(r.tty)}catch(s){throw new Rr.ErrnoError(29)}if(void 0===u&&0===i)throw new Rr.ErrnoError(6);if(null==u)break;i++,t[e+a]=u}return i&&(r.node.timestamp=Date.now()),i},write:function(r,t,e,n,o){if(!r.tty||!r.tty.ops.put_char)throw new Rr.ErrnoError(60);try{for(var i=0;i<n;i++)r.tty.ops.put_char(r.tty,t[e+i])}catch(a){throw new Rr.ErrnoError(29)}return n&&(r.node.timestamp=Date.now()),i}},default_tty_ops:{get_char:function(r){if(!r.input.length){var t=null;if(E){var n=o.alloc(256),i=0;try{i=d.readSync(e.stdin.fd,n,0,256,null)}catch(a){if(!a.toString().includes("EOF"))throw a;i=0}t=i>0?n.slice(0,i).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(t=window.prompt("Input: "))&&(t+="\n"):"function"==typeof readline&&null!==(t=readline())&&(t+="\n");if(!t)return null;r.input=Wr(t,!0)}return r.input.shift()},put_char:function(r,t){null===t||10===t?(k(L(r.output,0)),r.output=[]):0!=t&&r.output.push(t)},flush:function(r){r.output&&r.output.length>0&&(k(L(r.output,0)),r.output=[])}},default_tty1_ops:{put_char:function(r,t){null===t||10===t?(j(L(r.output,0)),r.output=[]):0!=t&&r.output.push(t)},flush:function(r){r.output&&r.output.length>0&&(j(L(r.output,0)),r.output=[])}}};var xr={ops_table:null,mount:function(r){return xr.createNode(null,"/",16895,0)},createNode:function(r,t,e,n){if(Rr.isBlkdev(e)||Rr.isFIFO(e))throw new Rr.ErrnoError(63);xr.ops_table||(xr.ops_table={dir:{node:{getattr:xr.node_ops.getattr,setattr:xr.node_ops.setattr,lookup:xr.node_ops.lookup,mknod:xr.node_ops.mknod,rename:xr.node_ops.rename,unlink:xr.node_ops.unlink,rmdir:xr.node_ops.rmdir,readdir:xr.node_ops.readdir,symlink:xr.node_ops.symlink},stream:{llseek:xr.stream_ops.llseek}},file:{node:{getattr:xr.node_ops.getattr,setattr:xr.node_ops.setattr},stream:{llseek:xr.stream_ops.llseek,read:xr.stream_ops.read,write:xr.stream_ops.write,allocate:xr.stream_ops.allocate,mmap:xr.stream_ops.mmap,msync:xr.stream_ops.msync}},link:{node:{getattr:xr.node_ops.getattr,setattr:xr.node_ops.setattr,readlink:xr.node_ops.readlink},stream:{}},chrdev:{node:{getattr:xr.node_ops.getattr,setattr:xr.node_ops.setattr},stream:Rr.chrdev_stream_ops}});var o=Rr.createNode(r,t,e,n);return Rr.isDir(o.mode)?(o.node_ops=xr.ops_table.dir.node,o.stream_ops=xr.ops_table.dir.stream,o.contents={}):Rr.isFile(o.mode)?(o.node_ops=xr.ops_table.file.node,o.stream_ops=xr.ops_table.file.stream,o.usedBytes=0,o.contents=null):Rr.isLink(o.mode)?(o.node_ops=xr.ops_table.link.node,o.stream_ops=xr.ops_table.link.stream):Rr.isChrdev(o.mode)&&(o.node_ops=xr.ops_table.chrdev.node,o.stream_ops=xr.ops_table.chrdev.stream),o.timestamp=Date.now(),r&&(r.contents[t]=o,r.timestamp=o.timestamp),o},getFileDataAsTypedArray:function(r){return r.contents?r.contents.subarray?r.contents.subarray(0,r.usedBytes):new Uint8Array(r.contents):new Uint8Array(0)},expandFileStorage:function(r,t){var e=r.contents?r.contents.length:0;if(!(e>=t)){t=Math.max(t,e*(e<1048576?2:1.125)>>>0),0!=e&&(t=Math.max(t,256));var n=r.contents;r.contents=new Uint8Array(t),r.usedBytes>0&&r.contents.set(n.subarray(0,r.usedBytes),0)}},resizeFileStorage:function(r,t){if(r.usedBytes!=t)if(0==t)r.contents=null,r.usedBytes=0;else{var e=r.contents;r.contents=new Uint8Array(t),e&&r.contents.set(e.subarray(0,Math.min(t,r.usedBytes))),r.usedBytes=t}},node_ops:{getattr:function(r){var t={};return t.dev=Rr.isChrdev(r.mode)?r.id:1,t.ino=r.id,t.mode=r.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=r.rdev,Rr.isDir(r.mode)?t.size=4096:Rr.isFile(r.mode)?t.size=r.usedBytes:Rr.isLink(r.mode)?t.size=r.link.length:t.size=0,t.atime=new Date(r.timestamp),t.mtime=new Date(r.timestamp),t.ctime=new Date(r.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(r,t){void 0!==t.mode&&(r.mode=t.mode),void 0!==t.timestamp&&(r.timestamp=t.timestamp),void 0!==t.size&&xr.resizeFileStorage(r,t.size)},lookup:function(r,t){throw Rr.genericErrors[44]},mknod:function(r,t,e,n){return xr.createNode(r,t,e,n)},rename:function(r,t,e){if(Rr.isDir(r.mode)){var n;try{n=Rr.lookupNode(t,e)}catch(i){}if(n)for(var o in n.contents)throw new Rr.ErrnoError(55)}delete r.parent.contents[r.name],r.parent.timestamp=Date.now(),r.name=e,t.contents[e]=r,t.timestamp=r.parent.timestamp,r.parent=t},unlink:function(r,t){delete r.contents[t],r.timestamp=Date.now()},rmdir:function(r,t){var e=Rr.lookupNode(r,t);for(var n in e.contents)throw new Rr.ErrnoError(55);delete r.contents[t],r.timestamp=Date.now()},readdir:function(r){var t=[".",".."];for(var e in r.contents)r.contents.hasOwnProperty(e)&&t.push(e);return t},symlink:function(r,t,e){var n=xr.createNode(r,t,41471,0);return n.link=e,n},readlink:function(r){if(!Rr.isLink(r.mode))throw new Rr.ErrnoError(28);return r.link}},stream_ops:{read:function(r,t,e,n,o){var i=r.node.contents;if(o>=r.node.usedBytes)return 0;var a=Math.min(r.node.usedBytes-o,n);if(a>8&&i.subarray)t.set(i.subarray(o,o+a),e);else for(var u=0;u<a;u++)t[e+u]=i[o+u];return a},write:function(r,t,e,n,o,i){if(!n)return 0;var a=r.node;if(a.timestamp=Date.now(),t.subarray&&(!a.contents||a.contents.subarray)){if(i)return a.contents=t.subarray(e,e+n),a.usedBytes=n,n;if(0===a.usedBytes&&0===o)return a.contents=t.slice(e,e+n),a.usedBytes=n,n;if(o+n<=a.usedBytes)return a.contents.set(t.subarray(e,e+n),o),n}if(xr.expandFileStorage(a,o+n),a.contents.subarray&&t.subarray)a.contents.set(t.subarray(e,e+n),o);else for(var u=0;u<n;u++)a.contents[o+u]=t[e+u];return a.usedBytes=Math.max(a.usedBytes,o+n),n},llseek:function(r,t,e){var n=t;if(1===e?n+=r.position:2===e&&Rr.isFile(r.node.mode)&&(n+=r.node.usedBytes),n<0)throw new Rr.ErrnoError(28);return n},allocate:function(r,t,e){xr.expandFileStorage(r.node,t+e),r.node.usedBytes=Math.max(r.node.usedBytes,t+e)},mmap:function(r,t,e,n,o,i){if(0!==t)throw new Rr.ErrnoError(28);if(!Rr.isFile(r.node.mode))throw new Rr.ErrnoError(43);var a,u,s=r.node.contents;if(2&i||s.buffer!==z){if((n>0||n+e<s.length)&&(s=s.subarray?s.subarray(n,n+e):Array.prototype.slice.call(s,n,n+e)),u=!0,!(a=void sr()))throw new Rr.ErrnoError(48);O.set(s,a)}else u=!1,a=s.byteOffset;return{ptr:a,allocated:u}},msync:function(r,t,e,n,o){if(!Rr.isFile(r.node.mode))throw new Rr.ErrnoError(43);if(2&o)return 0;xr.stream_ops.write(r,t,0,n,e,!1);return 0}}};function Cr(r,t,e,n){var o=n?"":ir("al "+r);f(r,function(e){var n;n='Loading data file "'+r+'" failed (no arrayBuffer).',e||sr(n),t(new Uint8Array(e)),o&&ur()},function(t){if(!e)throw'Loading data file "'+r+'" failed.';e()}),o&&ar()}var Rr={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(r,t){if(t=t||{},!(r=Pr.resolve(Rr.cwd(),r)))return{path:"",node:null};var e={follow_mount:!0,recurse_count:0};for(var n in e)void 0===t[n]&&(t[n]=e[n]);if(t.recurse_count>8)throw new Rr.ErrnoError(32);for(var o=Ar.normalizeArray(r.split("/").filter(function(r){return!!r}),!1),i=Rr.root,a="/",u=0;u<o.length;u++){var s=u===o.length-1;if(s&&t.parent)break;if(i=Rr.lookupNode(i,o[u]),a=Ar.join2(a,o[u]),Rr.isMountpoint(i)&&(!s||s&&t.follow_mount)&&(i=i.mounted.root),!s||t.follow)for(var c=0;Rr.isLink(i.mode);){var f=Rr.readlink(a);if(a=Pr.resolve(Ar.dirname(a),f),i=Rr.lookupPath(a,{recurse_count:t.recurse_count}).node,c++>40)throw new Rr.ErrnoError(32)}}return{path:a,node:i}},getPath:function(r){for(var t;;){if(Rr.isRoot(r)){var e=r.mount.mountpoint;return t?"/"!==e[e.length-1]?e+"/"+t:e+t:e}t=t?r.name+"/"+t:r.name,r=r.parent}},hashName:function(r,t){for(var e=0,n=0;n<t.length;n++)e=(e<<5)-e+t.charCodeAt(n)|0;return(r+e>>>0)%Rr.nameTable.length},hashAddNode:function(r){var t=Rr.hashName(r.parent.id,r.name);r.name_next=Rr.nameTable[t],Rr.nameTable[t]=r},hashRemoveNode:function(r){var t=Rr.hashName(r.parent.id,r.name);if(Rr.nameTable[t]===r)Rr.nameTable[t]=r.name_next;else for(var e=Rr.nameTable[t];e;){if(e.name_next===r){e.name_next=r.name_next;break}e=e.name_next}},lookupNode:function(r,t){var e=Rr.mayLookup(r);if(e)throw new Rr.ErrnoError(e,r);for(var n=Rr.hashName(r.id,t),o=Rr.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===r.id&&i===t)return o}return Rr.lookup(r,t)},createNode:function(r,t,e,n){var o=new Rr.FSNode(r,t,e,n);return Rr.hashAddNode(o),o},destroyNode:function(r){Rr.hashRemoveNode(r)},isRoot:function(r){return r===r.parent},isMountpoint:function(r){return!!r.mounted},isFile:function(r){return 32768==(61440&r)},isDir:function(r){return 16384==(61440&r)},isLink:function(r){return 40960==(61440&r)},isChrdev:function(r){return 8192==(61440&r)},isBlkdev:function(r){return 24576==(61440&r)},isFIFO:function(r){return 4096==(61440&r)},isSocket:function(r){return 49152==(49152&r)},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(r){var t=Rr.flagModes[r];if(void 0===t)throw new Error("Unknown file open mode: "+r);return t},flagsToPermissionString:function(r){var t=["r","w","rw"][3&r];return 512&r&&(t+="w"),t},nodePermissions:function(r,t){return Rr.ignorePermissions?0:(!t.includes("r")||292&r.mode)&&(!t.includes("w")||146&r.mode)&&(!t.includes("x")||73&r.mode)?0:2},mayLookup:function(r){var t=Rr.nodePermissions(r,"x");return t||(r.node_ops.lookup?0:2)},mayCreate:function(r,t){try{Rr.lookupNode(r,t);return 20}catch(e){}return Rr.nodePermissions(r,"wx")},mayDelete:function(r,t,e){var n;try{n=Rr.lookupNode(r,t)}catch(i){return i.errno}var o=Rr.nodePermissions(r,"wx");if(o)return o;if(e){if(!Rr.isDir(n.mode))return 54;if(Rr.isRoot(n)||Rr.getPath(n)===Rr.cwd())return 10}else if(Rr.isDir(n.mode))return 31;return 0},mayOpen:function(r,t){return r?Rr.isLink(r.mode)?32:Rr.isDir(r.mode)&&("r"!==Rr.flagsToPermissionString(t)||512&t)?31:Rr.nodePermissions(r,Rr.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(r,t){r=r||0,t=t||Rr.MAX_OPEN_FDS;for(var e=r;e<=t;e++)if(!Rr.streams[e])return e;throw new Rr.ErrnoError(33)},getStream:function(r){return Rr.streams[r]},createStream:function(r,t,e){Rr.FSStream||(Rr.FSStream=function(){},Rr.FSStream.prototype={object:{get:function(){return this.node},set:function(r){this.node=r}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var n=new Rr.FSStream;for(var o in r)n[o]=r[o];r=n;var i=Rr.nextfd(t,e);return r.fd=i,Rr.streams[i]=r,r},closeStream:function(r){Rr.streams[r]=null},chrdev_stream_ops:{open:function(r){var t=Rr.getDevice(r.node.rdev);r.stream_ops=t.stream_ops,r.stream_ops.open&&r.stream_ops.open(r)},llseek:function(){throw new Rr.ErrnoError(70)}},major:function(r){return r>>8},minor:function(r){return 255&r},makedev:function(r,t){return r<<8|t},registerDevice:function(r,t){Rr.devices[r]={stream_ops:t}},getDevice:function(r){return Rr.devices[r]},getMounts:function(r){for(var t=[],e=[r];e.length;){var n=e.pop();t.push(n),e.push.apply(e,n.mounts)}return t},syncfs:function(r,t){"function"==typeof r&&(t=r,r=!1),Rr.syncFSRequests++,Rr.syncFSRequests>1&&j("warning: "+Rr.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var e=Rr.getMounts(Rr.root.mount),n=0;function o(r){return Rr.syncFSRequests--,t(r)}function i(r){if(r)return i.errored?void 0:(i.errored=!0,o(r));++n>=e.length&&o(null)}e.forEach(function(t){if(!t.type.syncfs)return i(null);t.type.syncfs(t,r,i)})},mount:function(r,t,e){var n,o="/"===e,i=!e;if(o&&Rr.root)throw new Rr.ErrnoError(10);if(!o&&!i){var a=Rr.lookupPath(e,{follow_mount:!1});if(e=a.path,n=a.node,Rr.isMountpoint(n))throw new Rr.ErrnoError(10);if(!Rr.isDir(n.mode))throw new Rr.ErrnoError(54)}var u={type:r,opts:t,mountpoint:e,mounts:[]},s=r.mount(u);return s.mount=u,u.root=s,o?Rr.root=s:n&&(n.mounted=u,n.mount&&n.mount.mounts.push(u)),s},unmount:function(r){var t=Rr.lookupPath(r,{follow_mount:!1});if(!Rr.isMountpoint(t.node))throw new Rr.ErrnoError(28);var e=t.node,n=e.mounted,o=Rr.getMounts(n);Object.keys(Rr.nameTable).forEach(function(r){for(var t=Rr.nameTable[r];t;){var e=t.name_next;o.includes(t.mount)&&Rr.destroyNode(t),t=e}}),e.mounted=null;var i=e.mount.mounts.indexOf(n);e.mount.mounts.splice(i,1)},lookup:function(r,t){return r.node_ops.lookup(r,t)},mknod:function(r,t,e){var n=Rr.lookupPath(r,{parent:!0}).node,o=Ar.basename(r);if(!o||"."===o||".."===o)throw new Rr.ErrnoError(28);var i=Rr.mayCreate(n,o);if(i)throw new Rr.ErrnoError(i);if(!n.node_ops.mknod)throw new Rr.ErrnoError(63);return n.node_ops.mknod(n,o,t,e)},create:function(r,t){return t=void 0!==t?t:438,t&=4095,t|=32768,Rr.mknod(r,t,0)},mkdir:function(r,t){return t=void 0!==t?t:511,t&=1023,t|=16384,Rr.mknod(r,t,0)},mkdirTree:function(r,t){for(var e=r.split("/"),n="",o=0;o<e.length;++o)if(e[o]){n+="/"+e[o];try{Rr.mkdir(n,t)}catch(i){if(20!=i.errno)throw i}}},mkdev:function(r,t,e){return void 0===e&&(e=t,t=438),t|=8192,Rr.mknod(r,t,e)},symlink:function(r,t){if(!Pr.resolve(r))throw new Rr.ErrnoError(44);var e=Rr.lookupPath(t,{parent:!0}).node;if(!e)throw new Rr.ErrnoError(44);var n=Ar.basename(t),o=Rr.mayCreate(e,n);if(o)throw new Rr.ErrnoError(o);if(!e.node_ops.symlink)throw new Rr.ErrnoError(63);return e.node_ops.symlink(e,n,r)},rename:function(r,t){var e,n,o=Ar.dirname(r),i=Ar.dirname(t),a=Ar.basename(r),u=Ar.basename(t);if(e=Rr.lookupPath(r,{parent:!0}).node,n=Rr.lookupPath(t,{parent:!0}).node,!e||!n)throw new Rr.ErrnoError(44);if(e.mount!==n.mount)throw new Rr.ErrnoError(75);var s,c=Rr.lookupNode(e,a),f=Pr.relative(r,i);if("."!==f.charAt(0))throw new Rr.ErrnoError(28);if("."!==(f=Pr.relative(t,o)).charAt(0))throw new Rr.ErrnoError(55);try{s=Rr.lookupNode(n,u)}catch(m){}if(c!==s){var l=Rr.isDir(c.mode),d=Rr.mayDelete(e,a,l);if(d)throw new Rr.ErrnoError(d);if(d=s?Rr.mayDelete(n,u,l):Rr.mayCreate(n,u))throw new Rr.ErrnoError(d);if(!e.node_ops.rename)throw new Rr.ErrnoError(63);if(Rr.isMountpoint(c)||s&&Rr.isMountpoint(s))throw new Rr.ErrnoError(10);if(n!==e&&(d=Rr.nodePermissions(e,"w")))throw new Rr.ErrnoError(d);Rr.hashRemoveNode(c);try{e.node_ops.rename(c,n,u)}catch(m){throw m}finally{Rr.hashAddNode(c)}}},rmdir:function(r){var t=Rr.lookupPath(r,{parent:!0}).node,e=Ar.basename(r),n=Rr.lookupNode(t,e),o=Rr.mayDelete(t,e,!0);if(o)throw new Rr.ErrnoError(o);if(!t.node_ops.rmdir)throw new Rr.ErrnoError(63);if(Rr.isMountpoint(n))throw new Rr.ErrnoError(10);t.node_ops.rmdir(t,e),Rr.destroyNode(n)},readdir:function(r){var t=Rr.lookupPath(r,{follow:!0}).node;if(!t.node_ops.readdir)throw new Rr.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(r){var t=Rr.lookupPath(r,{parent:!0}).node;if(!t)throw new Rr.ErrnoError(44);var e=Ar.basename(r),n=Rr.lookupNode(t,e),o=Rr.mayDelete(t,e,!1);if(o)throw new Rr.ErrnoError(o);if(!t.node_ops.unlink)throw new Rr.ErrnoError(63);if(Rr.isMountpoint(n))throw new Rr.ErrnoError(10);t.node_ops.unlink(t,e),Rr.destroyNode(n)},readlink:function(r){var t=Rr.lookupPath(r).node;if(!t)throw new Rr.ErrnoError(44);if(!t.node_ops.readlink)throw new Rr.ErrnoError(28);return Pr.resolve(Rr.getPath(t.parent),t.node_ops.readlink(t))},stat:function(r,t){var e=Rr.lookupPath(r,{follow:!t}).node;if(!e)throw new Rr.ErrnoError(44);if(!e.node_ops.getattr)throw new Rr.ErrnoError(63);return e.node_ops.getattr(e)},lstat:function(r){return Rr.stat(r,!0)},chmod:function(r,t,e){var n;"string"==typeof r?n=Rr.lookupPath(r,{follow:!e}).node:n=r;if(!n.node_ops.setattr)throw new Rr.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(r,t){Rr.chmod(r,t,!0)},fchmod:function(r,t){var e=Rr.getStream(r);if(!e)throw new Rr.ErrnoError(8);Rr.chmod(e.node,t)},chown:function(r,t,e,n){var o;"string"==typeof r?o=Rr.lookupPath(r,{follow:!n}).node:o=r;if(!o.node_ops.setattr)throw new Rr.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(r,t,e){Rr.chown(r,t,e,!0)},fchown:function(r,t,e){var n=Rr.getStream(r);if(!n)throw new Rr.ErrnoError(8);Rr.chown(n.node,t,e)},truncate:function(r,t){if(t<0)throw new Rr.ErrnoError(28);var e;"string"==typeof r?e=Rr.lookupPath(r,{follow:!0}).node:e=r;if(!e.node_ops.setattr)throw new Rr.ErrnoError(63);if(Rr.isDir(e.mode))throw new Rr.ErrnoError(31);if(!Rr.isFile(e.mode))throw new Rr.ErrnoError(28);var n=Rr.nodePermissions(e,"w");if(n)throw new Rr.ErrnoError(n);e.node_ops.setattr(e,{size:t,timestamp:Date.now()})},ftruncate:function(r,t){var e=Rr.getStream(r);if(!e)throw new Rr.ErrnoError(8);if(0==(2097155&e.flags))throw new Rr.ErrnoError(28);Rr.truncate(e.node,t)},utime:function(r,t,e){var n=Rr.lookupPath(r,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,e)})},open:function(r,t,e,n,o){if(""===r)throw new Rr.ErrnoError(44);var i;if(e=void 0===e?438:e,e=64&(t="string"==typeof t?Rr.modeStringToFlags(t):t)?4095&e|32768:0,"object"==typeof r)i=r;else{r=Ar.normalize(r);try{i=Rr.lookupPath(r,{follow:!(131072&t)}).node}catch(f){}}var a=!1;if(64&t)if(i){if(128&t)throw new Rr.ErrnoError(20)}else i=Rr.mknod(r,e,0),a=!0;if(!i)throw new Rr.ErrnoError(44);if(Rr.isChrdev(i.mode)&&(t&=-513),65536&t&&!Rr.isDir(i.mode))throw new Rr.ErrnoError(54);if(!a){var s=Rr.mayOpen(i,t);if(s)throw new Rr.ErrnoError(s)}512&t&&Rr.truncate(i,0),t&=-131713;var c=Rr.createStream({node:i,path:Rr.getPath(i),id:i.id,flags:t,mode:i.mode,seekable:!0,position:0,stream_ops:i.stream_ops,node_ops:i.node_ops,ungotten:[],error:!1},n,o);return c.stream_ops.open&&c.stream_ops.open(c),!u.logReadFiles||1&t||(Rr.readFiles||(Rr.readFiles={}),r in Rr.readFiles||(Rr.readFiles[r]=1)),c},close:function(r){if(Rr.isClosed(r))throw new Rr.ErrnoError(8);r.getdents&&(r.getdents=null);try{r.stream_ops.close&&r.stream_ops.close(r)}catch(t){throw t}finally{Rr.closeStream(r.fd)}r.fd=null},isClosed:function(r){return null===r.fd},llseek:function(r,t,e){if(Rr.isClosed(r))throw new Rr.ErrnoError(8);if(!r.seekable||!r.stream_ops.llseek)throw new Rr.ErrnoError(70);if(0!=e&&1!=e&&2!=e)throw new Rr.ErrnoError(28);return r.position=r.stream_ops.llseek(r,t,e),r.ungotten=[],r.position},read:function(r,t,e,n,o){if(n<0||o<0)throw new Rr.ErrnoError(28);if(Rr.isClosed(r))throw new Rr.ErrnoError(8);if(1==(2097155&r.flags))throw new Rr.ErrnoError(8);if(Rr.isDir(r.node.mode))throw new Rr.ErrnoError(31);if(!r.stream_ops.read)throw new Rr.ErrnoError(28);var i=void 0!==o;if(i){if(!r.seekable)throw new Rr.ErrnoError(70)}else o=r.position;var a=r.stream_ops.read(r,t,e,n,o);return i||(r.position+=a),a},write:function(r,t,e,n,o,i){if(n<0||o<0)throw new Rr.ErrnoError(28);if(Rr.isClosed(r))throw new Rr.ErrnoError(8);if(0==(2097155&r.flags))throw new Rr.ErrnoError(8);if(Rr.isDir(r.node.mode))throw new Rr.ErrnoError(31);if(!r.stream_ops.write)throw new Rr.ErrnoError(28);r.seekable&&1024&r.flags&&Rr.llseek(r,0,2);var a=void 0!==o;if(a){if(!r.seekable)throw new Rr.ErrnoError(70)}else o=r.position;var u=r.stream_ops.write(r,t,e,n,o,i);return a||(r.position+=u),u},allocate:function(r,t,e){if(Rr.isClosed(r))throw new Rr.ErrnoError(8);if(t<0||e<=0)throw new Rr.ErrnoError(28);if(0==(2097155&r.flags))throw new Rr.ErrnoError(8);if(!Rr.isFile(r.node.mode)&&!Rr.isDir(r.node.mode))throw new Rr.ErrnoError(43);if(!r.stream_ops.allocate)throw new Rr.ErrnoError(138);r.stream_ops.allocate(r,t,e)},mmap:function(r,t,e,n,o,i){if(0!=(2&o)&&0==(2&i)&&2!=(2097155&r.flags))throw new Rr.ErrnoError(2);if(1==(2097155&r.flags))throw new Rr.ErrnoError(2);if(!r.stream_ops.mmap)throw new Rr.ErrnoError(43);return r.stream_ops.mmap(r,t,e,n,o,i)},msync:function(r,t,e,n,o){return r&&r.stream_ops.msync?r.stream_ops.msync(r,t,e,n,o):0},munmap:function(r){return 0},ioctl:function(r,t,e){if(!r.stream_ops.ioctl)throw new Rr.ErrnoError(59);return r.stream_ops.ioctl(r,t,e)},readFile:function(r,t){if((t=t||{}).flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var e,n=Rr.open(r,t.flags),o=Rr.stat(r).size,i=new Uint8Array(o);return Rr.read(n,i,0,o,0),"utf8"===t.encoding?e=L(i,0):"binary"===t.encoding&&(e=i),Rr.close(n),e},writeFile:function(r,t,e){(e=e||{}).flags=e.flags||577;var n=Rr.open(r,e.flags,e.mode);if("string"==typeof t){var o=new Uint8Array(W(t)+1),i=Y(t,o,0,o.length);Rr.write(n,o,0,i,void 0,e.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Rr.write(n,t,0,t.byteLength,void 0,e.canOwn)}Rr.close(n)},cwd:function(){return Rr.currentPath},chdir:function(r){var t=Rr.lookupPath(r,{follow:!0});if(null===t.node)throw new Rr.ErrnoError(44);if(!Rr.isDir(t.node.mode))throw new Rr.ErrnoError(54);var e=Rr.nodePermissions(t.node,"x");if(e)throw new Rr.ErrnoError(e);Rr.currentPath=t.path},createDefaultDirectories:function(){Rr.mkdir("/tmp"),Rr.mkdir("/home"),Rr.mkdir("/home/web_user")},createDefaultDevices:function(){Rr.mkdir("/dev"),Rr.registerDevice(Rr.makedev(1,3),{read:function(){return 0},write:function(r,t,e,n,o){return n}}),Rr.mkdev("/dev/null",Rr.makedev(1,3)),Tr.register(Rr.makedev(5,0),Tr.default_tty_ops),Tr.register(Rr.makedev(6,0),Tr.default_tty1_ops),Rr.mkdev("/dev/tty",Rr.makedev(5,0)),Rr.mkdev("/dev/tty1",Rr.makedev(6,0));var r=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var r=new Uint8Array(1);return function(){return crypto.getRandomValues(r),r[0]}}if(E)try{var t=require("crypto");return function(){return t.randomBytes(1)[0]}}catch(e){}return function(){sr("randomDevice")}}();Rr.createDevice("/dev","random",r),Rr.createDevice("/dev","urandom",r),Rr.mkdir("/dev/shm"),Rr.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Rr.mkdir("/proc");var r=Rr.mkdir("/proc/self");Rr.mkdir("/proc/self/fd"),Rr.mount({mount:function(){var t=Rr.createNode(r,"fd",16895,73);return t.node_ops={lookup:function(r,t){var e=+t,n=Rr.getStream(e);if(!n)throw new Rr.ErrnoError(8);var o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return n.path}}};return o.parent=o,o}},t}},{},"/proc/self/fd")},createStandardStreams:function(){u.stdin?Rr.createDevice("/dev","stdin",u.stdin):Rr.symlink("/dev/tty","/dev/stdin"),u.stdout?Rr.createDevice("/dev","stdout",null,u.stdout):Rr.symlink("/dev/tty","/dev/stdout"),u.stderr?Rr.createDevice("/dev","stderr",null,u.stderr):Rr.symlink("/dev/tty1","/dev/stderr");Rr.open("/dev/stdin",0),Rr.open("/dev/stdout",1),Rr.open("/dev/stderr",1)},ensureErrnoError:function(){Rr.ErrnoError||(Rr.ErrnoError=function(r,t){this.node=t,this.setErrno=function(r){this.errno=r},this.setErrno(r),this.message="FS error"},Rr.ErrnoError.prototype=new Error,Rr.ErrnoError.prototype.constructor=Rr.ErrnoError,[44].forEach(function(r){Rr.genericErrors[r]=new Rr.ErrnoError(r),Rr.genericErrors[r].stack="<generic error, no stack>"}))},staticInit:function(){Rr.ensureErrnoError(),Rr.nameTable=new Array(4096),Rr.mount(xr,{},"/"),Rr.createDefaultDirectories(),Rr.createDefaultDevices(),Rr.createSpecialDirectories(),Rr.filesystems={MEMFS:xr}},init:function(r,t,e){Rr.init.initialized=!0,Rr.ensureErrnoError(),u.stdin=r||u.stdin,u.stdout=t||u.stdout,u.stderr=e||u.stderr,Rr.createStandardStreams()},quit:function(){Rr.init.initialized=!1;for(var r=0;r<Rr.streams.length;r++){var t=Rr.streams[r];t&&Rr.close(t)}},getMode:function(r,t){var e=0;return r&&(e|=365),t&&(e|=146),e},findObject:function(r,t){var e=Rr.analyzePath(r,t);return e.exists?e.object:null},analyzePath:function(r,t){try{r=(n=Rr.lookupPath(r,{follow:!t})).path}catch(o){}var e={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=Rr.lookupPath(r,{parent:!0});e.parentExists=!0,e.parentPath=n.path,e.parentObject=n.node,e.name=Ar.basename(r),n=Rr.lookupPath(r,{follow:!t}),e.exists=!0,e.path=n.path,e.object=n.node,e.name=n.node.name,e.isRoot="/"===n.path}catch(o){e.error=o.errno}return e},createPath:function(r,t,e,n){r="string"==typeof r?r:Rr.getPath(r);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var a=Ar.join2(r,i);try{Rr.mkdir(a)}catch(u){}r=a}}return a},createFile:function(r,t,e,n,o){var i=Ar.join2("string"==typeof r?r:Rr.getPath(r),t),a=Rr.getMode(n,o);return Rr.create(i,a)},createDataFile:function(r,t,e,n,o,i){var a=t?Ar.join2("string"==typeof r?r:Rr.getPath(r),t):r,u=Rr.getMode(n,o),s=Rr.create(a,u);if(e){if("string"==typeof e){for(var c=new Array(e.length),f=0,l=e.length;f<l;++f)c[f]=e.charCodeAt(f);e=c}Rr.chmod(s,146|u);var d=Rr.open(s,577);Rr.write(d,e,0,e.length,0,i),Rr.close(d),Rr.chmod(s,u)}return s},createDevice:function(r,t,e,n){var o=Ar.join2("string"==typeof r?r:Rr.getPath(r),t),i=Rr.getMode(!!e,!!n);Rr.createDevice.major||(Rr.createDevice.major=64);var a=Rr.makedev(Rr.createDevice.major++,0);return Rr.registerDevice(a,{open:function(r){r.seekable=!1},close:function(r){n&&n.buffer&&n.buffer.length&&n(10)},read:function(r,t,n,o,i){for(var a=0,u=0;u<o;u++){var s;try{s=e()}catch(c){throw new Rr.ErrnoError(29)}if(void 0===s&&0===a)throw new Rr.ErrnoError(6);if(null==s)break;a++,t[n+u]=s}return a&&(r.node.timestamp=Date.now()),a},write:function(r,t,e,o,i){for(var a=0;a<o;a++)try{n(t[e+a])}catch(u){throw new Rr.ErrnoError(29)}return o&&(r.node.timestamp=Date.now()),a}}),Rr.mkdev(o,i,a)},forceLoadFile:function(r){if(r.isDevice||r.isFolder||r.link||r.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new 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(!c)throw new Error("Cannot load without read() or XMLHttpRequest.");try{r.contents=Wr(c(r.url),!0),r.usedBytes=r.contents.length}catch(t){throw new Rr.ErrnoError(29)}},createLazyFile:function(r,t,e,n,o){function i(){this.lengthKnown=!1,this.chunks=[]}if(i.prototype.get=function(r){if(!(r>this.length-1||r<0)){var t=r%this.chunkSize,e=r/this.chunkSize|0;return this.getter(e)[t]}},i.prototype.setDataGetter=function(r){this.getter=r},i.prototype.cacheLength=function(){var r=new XMLHttpRequest;if(r.open("HEAD",e,!1),r.send(null),!(r.status>=200&&r.status<300||304===r.status))throw new Error("Couldn't load "+e+". Status: "+r.status);var t,n=Number(r.getResponseHeader("Content-length")),o=(t=r.getResponseHeader("Accept-Ranges"))&&"bytes"===t,i=(t=r.getResponseHeader("Content-Encoding"))&&"gzip"===t,a=1048576;o||(a=n);var u=this;u.setDataGetter(function(r){var t=r*a,o=(r+1)*a-1;if(o=Math.min(o,n-1),void 0===u.chunks[r]&&(u.chunks[r]=function(r,t){if(r>t)throw new Error("invalid range ("+r+", "+t+") or no bytes requested!");if(t>n-1)throw new Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",e,!1),n!==a&&o.setRequestHeader("Range","bytes="+r+"-"+t),"undefined"!=typeof Uint8Array&&(o.responseType="arraybuffer"),o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+e+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):Wr(o.responseText||"",!0)}(t,o)),void 0===u.chunks[r])throw new Error("doXHR failed!");return u.chunks[r]}),!i&&n||(a=n=1,n=this.getter(0).length,a=n,k("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=a,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!_)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new i;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var u={isDevice:!1,contents:a}}else u={isDevice:!1,url:e};var s=Rr.createFile(r,t,u,n,o);u.contents?s.contents=u.contents:u.url&&(s.contents=null,s.url=u.url),Object.defineProperties(s,{usedBytes:{get:function(){return this.contents.length}}});var c={};return Object.keys(s.stream_ops).forEach(function(r){var t=s.stream_ops[r];c[r]=function(){return Rr.forceLoadFile(s),t.apply(null,arguments)}}),c.read=function(r,t,e,n,o){Rr.forceLoadFile(s);var i=r.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(i.slice)for(var u=0;u<a;u++)t[e+u]=i[o+u];else for(u=0;u<a;u++)t[e+u]=i.get(o+u);return a},s.stream_ops=c,s},createPreloadedFile:function(r,t,e,n,o,i,a,s,c,f){Browser.init();var l=t?Pr.resolve(Ar.join2(r,t)):r;ir("cp "+l);function d(e){function d(e){f&&f(),s||Rr.createDataFile(r,t,e,n,o,c),i&&i(),ur()}var m=!1;u.preloadPlugins.forEach(function(r){m||r.canHandle(l)&&(r.handle(e,l,d,function(){a&&a(),ur()}),m=!0)}),m||d(e)}ar(),"string"==typeof e?Cr(e,function(r){d(r)},a):d(e)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(r,t,e){t=t||function(){},e=e||function(){};var n=Rr.indexedDB();try{var o=n.open(Rr.DB_NAME(),Rr.DB_VERSION)}catch(i){return e(i)}o.onupgradeneeded=function(){k("creating db"),o.result.createObjectStore(Rr.DB_STORE_NAME)},o.onsuccess=function(){var n=o.result.transaction([Rr.DB_STORE_NAME],"readwrite"),i=n.objectStore(Rr.DB_STORE_NAME),a=0,u=0,s=r.length;function c(){0==u?t():e()}r.forEach(function(r){var t=i.put(Rr.analyzePath(r).object.contents,r);t.onsuccess=function(){++a+u==s&&c()},t.onerror=function(){a+ ++u==s&&c()}}),n.onerror=e},o.onerror=e},loadFilesFromDB:function(r,t,e){t=t||function(){},e=e||function(){};var n=Rr.indexedDB();try{var o=n.open(Rr.DB_NAME(),Rr.DB_VERSION)}catch(i){return e(i)}o.onupgradeneeded=e,o.onsuccess=function(){var n=o.result;try{var a=n.transaction([Rr.DB_STORE_NAME],"readonly")}catch(i){return void e(i)}var u=a.objectStore(Rr.DB_STORE_NAME),s=0,c=0,f=r.length;function l(){0==c?t():e()}r.forEach(function(r){var t=u.get(r);t.onsuccess=function(){Rr.analyzePath(r).exists&&Rr.unlink(r),Rr.createDataFile(Ar.dirname(r),Ar.basename(r),t.result,!0,!0,!0),++s+c==f&&l()},t.onerror=function(){s+ ++c==f&&l()}}),a.onerror=e},o.onerror=e}},zr={mappings:{},DEFAULT_POLLMASK:5,calculateAt:function(r,t,e){if("/"===t[0])return t;var n;if(-100===r)n=Rr.cwd();else{var o=Rr.getStream(r);if(!o)throw new Rr.ErrnoError(8);n=o.path}if(0==t.length){if(!e)throw new Rr.ErrnoError(44);return n}return Ar.join2(n,t)},doStat:function(r,t,e){try{var n=r(t)}catch(o){if(o&&o.node&&Ar.normalize(t)!==Ar.normalize(Rr.getPath(o.node)))return-54;throw o}return I[e>>2]=n.dev,I[e+4>>2]=0,I[e+8>>2]=n.ino,I[e+12>>2]=n.mode,I[e+16>>2]=n.nlink,I[e+20>>2]=n.uid,I[e+24>>2]=n.gid,I[e+28>>2]=n.rdev,I[e+32>>2]=0,dr=[n.size>>>0,(lr=n.size,+Math.abs(lr)>=1?lr>0?(0|Math.min(+Math.floor(lr/4294967296),4294967295))>>>0:~~+Math.ceil((lr-+(~~lr>>>0))/4294967296)>>>0:0)],I[e+40>>2]=dr[0],I[e+44>>2]=dr[1],I[e+48>>2]=4096,I[e+52>>2]=n.blocks,I[e+56>>2]=n.atime.getTime()/1e3|0,I[e+60>>2]=0,I[e+64>>2]=n.mtime.getTime()/1e3|0,I[e+68>>2]=0,I[e+72>>2]=n.ctime.getTime()/1e3|0,I[e+76>>2]=0,dr=[n.ino>>>0,(lr=n.ino,+Math.abs(lr)>=1?lr>0?(0|Math.min(+Math.floor(lr/4294967296),4294967295))>>>0:~~+Math.ceil((lr-+(~~lr>>>0))/4294967296)>>>0:0)],I[e+80>>2]=dr[0],I[e+84>>2]=dr[1],0},doMsync:function(r,t,e,n,o){var i=B.slice(r,r+e);Rr.msync(t,i,o,e,n)},doMkdir:function(r,t){return"/"===(r=Ar.normalize(r))[r.length-1]&&(r=r.substr(0,r.length-1)),Rr.mkdir(r,t,0),0},doMknod:function(r,t,e){switch(61440&t){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return Rr.mknod(r,t,e),0},doReadlink:function(r,t,e){if(e<=0)return-28;var n=Rr.readlink(r),o=Math.min(e,W(n)),i=O[t+o];return q(n,t,e+1),O[t+o]=i,o},doAccess:function(r,t){if(-8&t)return-28;var e=Rr.lookupPath(r,{follow:!0}).node;if(!e)return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&Rr.nodePermissions(e,n)?-2:0},doDup:function(r,t,e){var n=Rr.getStream(e);return n&&Rr.close(n),Rr.open(r,t,0,e,e).fd},doReadv:function(r,t,e,n){for(var o=0,i=0;i<e;i++){var a=I[t+8*i>>2],u=I[t+(8*i+4)>>2],s=Rr.read(r,O,a,u,n);if(s<0)return-1;if(o+=s,s<u)break}return o},doWritev:function(r,t,e,n){for(var o=0,i=0;i<e;i++){var a=I[t+8*i>>2],u=I[t+(8*i+4)>>2],s=Rr.write(r,O,a,u,n);if(s<0)return-1;o+=s}return o},varargs:void 0,get:function(){return zr.varargs+=4,I[zr.varargs-4>>2]},getStr:function(r){return H(r)},getStreamFromFD:function(r){var t=Rr.getStream(r);if(!t)throw new Rr.ErrnoError(8);return t},get64:function(r,t){return r}};var Or={};function Br(){if(!Br.strings){var r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:v||"./this.program"};for(var t in Or)void 0===Or[t]?delete r[t]:r[t]=Or[t];var e=[];for(var t in r)e.push(t+"="+r[t]);Br.strings=e}return Br.strings}function Nr(r){return r%4==0&&(r%100!=0||r%400==0)}function Ir(r,t){for(var e=0,n=0;n<=t;e+=r[n++]);return e}var Ur=[31,29,31,30,31,30,31,31,30,31,30,31],Lr=[31,28,31,30,31,30,31,31,30,31,30,31];function Hr(r,t){for(var e=new Date(r.getTime());t>0;){var n=Nr(e.getFullYear()),o=e.getMonth(),i=(n?Ur:Lr)[o];if(!(t>i-e.getDate()))return e.setDate(e.getDate()+t),e;t-=i-e.getDate()+1,e.setDate(1),o<11?e.setMonth(o+1):(e.setMonth(0),e.setFullYear(e.getFullYear()+1))}return e}function Yr(r,t,e,n){var o=I[n+40>>2],i={tm_sec:I[n>>2],tm_min:I[n+4>>2],tm_hour:I[n+8>>2],tm_mday:I[n+12>>2],tm_mon:I[n+16>>2],tm_year:I[n+20>>2],tm_wday:I[n+24>>2],tm_yday:I[n+28>>2],tm_isdst:I[n+32>>2],tm_gmtoff:I[n+36>>2],tm_zone:o?H(o):""},a=H(e),u={"%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","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var s in u)a=a.replace(new RegExp(s,"g"),u[s]);var c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],f=["January","February","March","April","May","June","July","August","September","October","November","December"];function l(r,t,e){for(var n="number"==typeof r?r.toString():r||"";n.length<t;)n=e[0]+n;return n}function d(r,t){return l(r,t,"0")}function m(r,t){function e(r){return r<0?-1:r>0?1:0}var n;return 0===(n=e(r.getFullYear()-t.getFullYear()))&&0===(n=e(r.getMonth()-t.getMonth()))&&(n=e(r.getDate()-t.getDate())),n}function h(r){switch(r.getDay()){case 0:return new Date(r.getFullYear()-1,11,29);case 1:return r;case 2:return new Date(r.getFullYear(),0,3);case 3:return new Date(r.getFullYear(),0,2);case 4:return new Date(r.getFullYear(),0,1);case 5:return new Date(r.getFullYear()-1,11,31);case 6:return new Date(r.getFullYear()-1,11,30)}}function p(r){var t=Hr(new Date(r.tm_year+1900,0,1),r.tm_yday),e=new Date(t.getFullYear(),0,4),n=new Date(t.getFullYear()+1,0,4),o=h(e),i=h(n);return m(o,t)<=0?m(i,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var w={"%a":function(r){return c[r.tm_wday].substring(0,3)},"%A":function(r){return c[r.tm_wday]},"%b":function(r){return f[r.tm_mon].substring(0,3)},"%B":function(r){return f[r.tm_mon]},"%C":function(r){return d((r.tm_year+1900)/100|0,2)},"%d":function(r){return d(r.tm_mday,2)},"%e":function(r){return l(r.tm_mday,2," ")},"%g":function(r){return p(r).toString().substring(2)},"%G":function(r){return p(r)},"%H":function(r){return d(r.tm_hour,2)},"%I":function(r){var t=r.tm_hour;return 0==t?t=12:t>12&&(t-=12),d(t,2)},"%j":function(r){return d(r.tm_mday+Ir(Nr(r.tm_year+1900)?Ur:Lr,r.tm_mon-1),3)},"%m":function(r){return d(r.tm_mon+1,2)},"%M":function(r){return d(r.tm_min,2)},"%n":function(){return"\n"},"%p":function(r){return r.tm_hour>=0&&r.tm_hour<12?"AM":"PM"},"%S":function(r){return d(r.tm_sec,2)},"%t":function(){return"\t"},"%u":function(r){return r.tm_wday||7},"%U":function(r){var t=new Date(r.tm_year+1900,0,1),e=0===t.getDay()?t:Hr(t,7-t.getDay()),n=new Date(r.tm_year+1900,r.tm_mon,r.tm_mday);if(m(e,n)<0){var o=Ir(Nr(n.getFullYear())?Ur:Lr,n.getMonth()-1)-31,i=31-e.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===m(e,t)?"01":"00"},"%V":function(r){var t,e=new Date(r.tm_year+1900,0,4),n=new Date(r.tm_year+1901,0,4),o=h(e),i=h(n),a=Hr(new Date(r.tm_year+1900,0,1),r.tm_yday);return m(a,o)<0?"53":m(i,a)<=0?"01":(t=o.getFullYear()<r.tm_year+1900?r.tm_yday+32-o.getDate():r.tm_yday+1-o.getDate(),d(Math.ceil(t/7),2))},"%w":function(r){return r.tm_wday},"%W":function(r){var t=new Date(r.tm_year,0,1),e=1===t.getDay()?t:Hr(t,0===t.getDay()?1:7-t.getDay()+1),n=new Date(r.tm_year+1900,r.tm_mon,r.tm_mday);if(m(e,n)<0){var o=Ir(Nr(n.getFullYear())?Ur:Lr,n.getMonth()-1)-31,i=31-e.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===m(e,t)?"01":"00"},"%y":function(r){return(r.tm_year+1900).toString().substring(2)},"%Y":function(r){return r.tm_year+1900},"%z":function(r){var t=r.tm_gmtoff,e=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(e?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(r){return r.tm_zone},"%%":function(){return"%"}};for(var s in w)a.includes(s)&&(a=a.replace(new RegExp(s,"g"),w[s](i)));var v=Wr(a,!1);return v.length>t?0:(V(v,r),v.length-1)}var qr=function(r,t,e,n){r||(r=this),this.parent=r,this.mount=r.mount,this.mounted=null,this.id=Rr.nextInode++,this.name=t,this.mode=e,this.node_ops={},this.stream_ops={},this.rdev=n};function Wr(r,t,e){var n=e>0?e:W(r)+1,o=new Array(n),i=Y(r,o,0,o.length);return t&&(o.length=i),o}Object.defineProperties(qr.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(r){r?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(r){r?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return Rr.isDir(this.mode)}},isDevice:{get:function(){return Rr.isChrdev(this.mode)}}}),Rr.FSNode=qr,Rr.staticInit();var Gr,Xr={qa:function(r,t){return function(r,t){var e;if(0===r)e=Date.now();else{if(1!==r&&4!==r||!_r)return Er(28),-1;e=mr()}return I[t>>2]=e/1e3|0,I[t+4>>2]=e%1e3*1e3*1e3|0,0}(r,t)},k:function(r){return Kr(r+16)+16},q:function(r){var t=new kr(r),e=t.get_exception_info();return e.get_caught()||(e.set_caught(!0),Dr--),e.set_rethrown(!1),jr.push(t),function(r){r.add_ref()}(e),t.get_exception_ptr()},v:function(){rt(0);var r=jr.pop();!function(r){if(r.release_ref()&&!r.get_rethrown()){var t=r.get_destructor();t&&yr(t)(r.excPtr),Fr(r.excPtr)}}(r.get_exception_info()),r.free(),Sr=0},b:function(){var r=Sr;if(!r)return F(0),0;var t=new br(r).get_type(),e=new kr;if(e.set_base_ptr(r),e.set_adjusted_ptr(r),!t)return F(0),0|e.ptr;for(var n=Array.prototype.slice.call(arguments),o=0;o<n.length;o++){var i=n[o];if(0===i||i===t)break;if(ot(i,t,e.get_adjusted_ptr_addr()))return F(i),0|e.ptr}return F(t),0|e.ptr},g:function(){var r=Sr;if(!r)return F(0),0;var t=new br(r).get_type(),e=new kr;if(e.set_base_ptr(r),e.set_adjusted_ptr(r),!t)return F(0),0|e.ptr;for(var n=Array.prototype.slice.call(arguments),o=0;o<n.length;o++){var i=n[o];if(0===i||i===t)break;if(ot(i,t,e.get_adjusted_ptr_addr()))return F(i),0|e.ptr}return F(t),0|e.ptr},B:function(){var r=Sr;if(!r)return F(0),0;var t=new br(r).get_type(),e=new kr;if(e.set_base_ptr(r),e.set_adjusted_ptr(r),!t)return F(0),0|e.ptr;for(var n=Array.prototype.slice.call(arguments),o=0;o<n.length;o++){var i=n[o];if(0===i||i===t)break;if(ot(i,t,e.get_adjusted_ptr_addr()))return F(i),0|e.ptr}return F(t),0|e.ptr},K:function(){var r=Sr;if(!r)return F(0),0;var t=new br(r).get_type(),e=new kr;if(e.set_base_ptr(r),e.set_adjusted_ptr(r),!t)return F(0),0|e.ptr;for(var n=Array.prototype.slice.call(arguments),o=0;o<n.length;o++){var i=n[o];if(0===i||i===t)break;if(ot(i,t,e.get_adjusted_ptr_addr()))return F(i),0|e.ptr}return F(t),0|e.ptr},m:Fr,V:function(){var r=jr.pop();r||sr("no exception to throw");var t=r.get_exception_info(),e=r.get_base_ptr();throw t.get_rethrown()?r.free():(jr.push(r),t.set_rethrown(!0),t.set_caught(!1),Dr++),Sr=e,e},s:function(r,t,e){throw new br(r).init(t,e),Sr=r,Dr++,r},oa:function(){return Dr},va:function(r,t){return function(r,t){Mr();var e=new Date(1e3*I[r>>2]);I[t>>2]=e.getSeconds(),I[t+4>>2]=e.getMinutes(),I[t+8>>2]=e.getHours(),I[t+12>>2]=e.getDate(),I[t+16>>2]=e.getMonth(),I[t+20>>2]=e.getFullYear()-1900,I[t+24>>2]=e.getDay();var n=new Date(e.getFullYear(),0,1),o=(e.getTime()-n.getTime())/864e5|0;I[t+28>>2]=o,I[t+36>>2]=-60*e.getTimezoneOffset();var i=new Date(e.getFullYear(),6,1).getTimezoneOffset(),a=n.getTimezoneOffset(),u=0|(i!=a&&e.getTimezoneOffset()==Math.min(a,i));I[t+32>>2]=u;var s=I[$r()+(u?4:0)>>2];return I[t+40>>2]=s,t}(r,t)},c:function(r){var t=new kr(r),e=t.get_base_ptr();throw Sr||(Sr=e),t.free(),e},Aa:function(r,t,e){try{var n=zr.getStreamFromFD(r);return n.fd===t?-28:zr.doDup(n.path,n.flags,t)}catch(o){if(void 0===Rr||!(o instanceof Rr.ErrnoError))throw o;return-o.errno}},I:function(r,t,e){zr.varargs=e;try{var n=zr.getStreamFromFD(r);switch(t){case 0:return(o=zr.get())<0?-28:Rr.open(n.path,n.flags,0,o).fd;case 1:case 2:return 0;case 3:return n.flags;case 4:var o=zr.get();return n.flags|=o,0;case 5:return o=zr.get(),N[o+0>>1]=2,0;case 6:case 7:return 0;case 16:case 8:return-28;case 9:return Er(28),-1;default:return-28}}catch(i){if(void 0===Rr||!(i instanceof Rr.ErrnoError))throw i;return-i.errno}},Da:function(r,t,e,n){try{t=zr.getStr(t);var o=256&n,i=4096&n;return n&=-4353,t=zr.calculateAt(r,t,i),zr.doStat(o?Rr.lstat:Rr.stat,t,e)}catch(a){if(void 0===Rr||!(a instanceof Rr.ErrnoError))throw a;return-a.errno}},za:function(r,t){try{if(0===t)return-28;var e=Rr.cwd();return t<W(e)+1?-68:(q(e,r,t),r)}catch(n){if(void 0===Rr||!(n instanceof Rr.ErrnoError))throw n;return-n.errno}},Ca:function(r,t,e){zr.varargs=e;try{var n=zr.getStreamFromFD(r);switch(t){case 21509:case 21505:return n.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var o=zr.get();return I[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:return o=zr.get(),Rr.ioctl(n,t,o);case 21523:case 21524:return n.tty?0:-59;default:sr("bad ioctl syscall "+t)}}catch(i){if(void 0===Rr||!(i instanceof Rr.ErrnoError))throw i;return-i.errno}},P:function(r,t){try{return r=zr.getStr(r),zr.doStat(Rr.lstat,r,t)}catch(e){if(void 0===Rr||!(e instanceof Rr.ErrnoError))throw e;return-e.errno}},R:function(r,t,e){zr.varargs=e;try{var n=zr.getStr(r),o=e?zr.get():0;return Rr.open(n,t,o).fd}catch(i){if(void 0===Rr||!(i instanceof Rr.ErrnoError))throw i;return-i.errno}},ta:function(r,t,e){try{return r=zr.getStr(r),zr.doReadlink(r,t,e)}catch(n){if(void 0===Rr||!(n instanceof Rr.ErrnoError))throw n;return-n.errno}},ra:function(r,t){try{return r=zr.getStr(r),t=zr.getStr(t),Rr.rename(r,t),0}catch(e){if(void 0===Rr||!(e instanceof Rr.ErrnoError))throw e;return-e.errno}},sa:function(r){try{return r=zr.getStr(r),Rr.rmdir(r),0}catch(t){if(void 0===Rr||!(t instanceof Rr.ErrnoError))throw t;return-t.errno}},ua:function(r,t){try{return r=zr.getStr(r),zr.doStat(Rr.stat,r,t)}catch(e){if(void 0===Rr||!(e instanceof Rr.ErrnoError))throw e;return-e.errno}},O:function(r){try{return r=zr.getStr(r),Rr.unlink(r),0}catch(t){if(void 0===Rr||!(t instanceof Rr.ErrnoError))throw t;return-t.errno}},pa:function(){throw"longjmp"},wa:function(r,t){var e=new Date(1e3*I[r>>2]);I[t>>2]=e.getUTCSeconds(),I[t+4>>2]=e.getUTCMinutes(),I[t+8>>2]=e.getUTCHours(),I[t+12>>2]=e.getUTCDate(),I[t+16>>2]=e.getUTCMonth(),I[t+20>>2]=e.getUTCFullYear()-1900,I[t+24>>2]=e.getUTCDay();var n=Date.UTC(e.getUTCFullYear(),0,1,0,0,0,0),o=(e.getTime()-n)/864e5|0;I[t+28>>2]=o},G:function(){sr("")},S:function r(){return void 0===r.start&&(r.start=Date.now()),1e3*(Date.now()-r.start)|0},Ha:function(r,t){return r-t},ma:function(r){B.length,sr("OOM")},xa:function(r,t){var e=0;return Br().forEach(function(n,o){var i=t+e;I[r+4*o>>2]=i,function(r,t,e){for(var n=0;n<r.length;++n)O[t++>>0]=r.charCodeAt(n);e||(O[t>>0]=0)}(n,i),e+=n.length+1}),0},ya:function(r,t){var e=Br();I[r>>2]=e.length;var n=0;return e.forEach(function(r){n+=r.length+1}),I[t>>2]=n,0},Fa:function(r){St(r)},J:function(r){try{var t=zr.getStreamFromFD(r);return Rr.close(t),0}catch(e){if(void 0===Rr||!(e instanceof Rr.ErrnoError))throw e;return e.errno}},Ba:function(r,t,e,n){try{var o=zr.getStreamFromFD(r),i=zr.doReadv(o,t,e);return I[n>>2]=i,0}catch(a){if(void 0===Rr||!(a instanceof Rr.ErrnoError))throw a;return a.errno}},Y:function(r,t,e,n,o){try{var i=zr.getStreamFromFD(r),a=4294967296*e+(t>>>0);return a<=-9007199254740992||a>=9007199254740992?-61:(Rr.llseek(i,a,n),dr=[i.position>>>0,(lr=i.position,+Math.abs(lr)>=1?lr>0?(0|Math.min(+Math.floor(lr/4294967296),4294967295))>>>0:~~+Math.ceil((lr-+(~~lr>>>0))/4294967296)>>>0:0)],I[o>>2]=dr[0],I[o+4>>2]=dr[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(u){if(void 0===Rr||!(u instanceof Rr.ErrnoError))throw u;return u.errno}},Q:function(r,t,e,n){try{var o=zr.getStreamFromFD(r),i=zr.doWritev(o,t,e);return I[n>>2]=i,0}catch(a){if(void 0===Rr||!(a instanceof Rr.ErrnoError))throw a;return a.errno}},a:function(){return M()},w:function(r,t){var e=tt();try{return yr(r)(t)}catch(n){if(et(e),n!==n+0&&"longjmp"!==n)throw n;rt(1,0)}},L:function(r,t,e,n){var o=tt();try{return yr(r)(t,e,n)}catch(i){if(et(o),i!==i+0&&"longjmp"!==i)throw i;rt(1,0)}},M:function(r,t,e,n){var o=tt();try{return yr(r)(t,e,n)}catch(i){if(et(o),i!==i+0&&"longjmp"!==i)throw i;rt(1,0)}},r:function(r){var t=tt();try{return yr(r)()}catch(e){if(et(t),e!==e+0&&"longjmp"!==e)throw e;rt(1,0)}},i:function(r,t){var e=tt();try{return yr(r)(t)}catch(n){if(et(e),n!==n+0&&"longjmp"!==n)throw n;rt(1,0)}},d:function(r,t,e){var n=tt();try{return yr(r)(t,e)}catch(o){if(et(n),o!==o+0&&"longjmp"!==o)throw o;rt(1,0)}},h:function(r,t,e,n){var o=tt();try{return yr(r)(t,e,n)}catch(i){if(et(o),i!==i+0&&"longjmp"!==i)throw i;rt(1,0)}},j:function(r,t,e,n,o){var i=tt();try{return yr(r)(t,e,n,o)}catch(a){if(et(i),a!==a+0&&"longjmp"!==a)throw a;rt(1,0)}},u:function(r,t,e,n,o,i){var a=tt();try{return yr(r)(t,e,n,o,i)}catch(u){if(et(a),u!==u+0&&"longjmp"!==u)throw u;rt(1,0)}},x:function(r,t,e,n,o,i,a){var u=tt();try{return yr(r)(t,e,n,o,i,a)}catch(s){if(et(u),s!==s+0&&"longjmp"!==s)throw s;rt(1,0)}},N:function(r,t,e,n,o,i,a,u){var s=tt();try{return yr(r)(t,e,n,o,i,a,u)}catch(c){if(et(s),c!==c+0&&"longjmp"!==c)throw c;rt(1,0)}},Ka:function(r,t,e,n,o,i,a,u,s,c,f){var l=tt();try{return yr(r)(t,e,n,o,i,a,u,s,c,f)}catch(d){if(et(l),d!==d+0&&"longjmp"!==d)throw d;rt(1,0)}},E:function(r,t,e,n,o,i,a,u,s,c,f,l){var d=tt();try{return yr(r)(t,e,n,o,i,a,u,s,c,f,l)}catch(m){if(et(d),m!==m+0&&"longjmp"!==m)throw m;rt(1,0)}},T:function(r,t,e,n,o,i,a,u,s,c,f,l,d){var m=tt();try{return yr(r)(t,e,n,o,i,a,u,s,c,f,l,d)}catch(h){if(et(m),h!==h+0&&"longjmp"!==h)throw h;rt(1,0)}},X:function(r,t,e,n,o,i,a,u,s){var c=tt();try{return Et(r,t,e,n,o,i,a,u,s)}catch(f){if(et(c),f!==f+0&&"longjmp"!==f)throw f;rt(1,0)}},ia:function(r,t,e,n,o,i){var a=tt();try{return ct(r,t,e,n,o,i)}catch(u){if(et(a),u!==u+0&&"longjmp"!==u)throw u;rt(1,0)}},ha:function(r,t,e,n,o,i,a,u){var s=tt();try{return ft(r,t,e,n,o,i,a,u)}catch(c){if(et(s),c!==c+0&&"longjmp"!==c)throw c;rt(1,0)}},_:function(r,t,e,n){var o=tt();try{return yt(r,t,e,n)}catch(i){if(et(o),i!==i+0&&"longjmp"!==i)throw i;rt(1,0)}},W:function(r,t,e,n,o){var i=tt();try{return bt(r,t,e,n,o)}catch(a){if(et(i),a!==a+0&&"longjmp"!==a)throw a;rt(1,0)}},l:function(r){var t=tt();try{yr(r)()}catch(e){if(et(t),e!==e+0&&"longjmp"!==e)throw e;rt(1,0)}},p:function(r,t){var e=tt();try{yr(r)(t)}catch(n){if(et(e),n!==n+0&&"longjmp"!==n)throw n;rt(1,0)}},z:function(r,t,e){var n=tt();try{yr(r)(t,e)}catch(o){if(et(n),o!==o+0&&"longjmp"!==o)throw o;rt(1,0)}},aa:function(r,t,e,n,o,i,a){var u=tt();try{pt(r,t,e,n,o,i,a)}catch(s){if(et(u),s!==s+0&&"longjmp"!==s)throw s;rt(1,0)}},e:function(r,t,e){var n=tt();try{yr(r)(t,e)}catch(o){if(et(n),o!==o+0&&"longjmp"!==o)throw o;rt(1,0)}},f:function(r,t,e,n){var o=tt();try{yr(r)(t,e,n)}catch(i){if(et(o),i!==i+0&&"longjmp"!==i)throw i;rt(1,0)}},H:function(r,t,e,n,o,i,a,u,s,c,f,l){var d=tt();try{yr(r)(t,e,n,o,i,a,u,s,c,f,l)}catch(m){if(et(d),m!==m+0&&"longjmp"!==m)throw m;rt(1,0)}},o:function(r,t,e,n,o){var i=tt();try{yr(r)(t,e,n,o)}catch(a){if(et(i),a!==a+0&&"longjmp"!==a)throw a;rt(1,0)}},n:function(r,t,e,n,o,i){var a=tt();try{yr(r)(t,e,n,o,i)}catch(u){if(et(a),u!==u+0&&"longjmp"!==u)throw u;rt(1,0)}},Ja:function(r,t,e,n,o,i,a){var u=tt();try{yr(r)(t,e,n,o,i,a)}catch(s){if(et(u),s!==s+0&&"longjmp"!==s)throw s;rt(1,0)}},y:function(r,t,e,n,o,i,a,u){var s=tt();try{yr(r)(t,e,n,o,i,a,u)}catch(c){if(et(s),c!==c+0&&"longjmp"!==c)throw c;rt(1,0)}},U:function(r,t,e,n,o,i,a,u,s){var c=tt();try{yr(r)(t,e,n,o,i,a,u,s)}catch(f){if(et(c),f!==f+0&&"longjmp"!==f)throw f;rt(1,0)}},A:function(r,t,e,n,o,i,a,u,s,c,f){var l=tt();try{yr(r)(t,e,n,o,i,a,u,s,c,f)}catch(d){if(et(l),d!==d+0&&"longjmp"!==d)throw d;rt(1,0)}},D:function(r,t,e,n,o,i,a,u,s,c,f,l,d,m,h,p){var w=tt();try{yr(r)(t,e,n,o,i,a,u,s,c,f,l,d,m,h,p)}catch(v){if(et(w),v!==v+0&&"longjmp"!==v)throw v;rt(1,0)}},da:function(r,t,e,n,o,i,a){var u=tt();try{ht(r,t,e,n,o,i,a)}catch(s){if(et(u),s!==s+0&&"longjmp"!==s)throw s;rt(1,0)}},ea:function(r,t,e,n,o,i,a,u){var s=tt();try{mt(r,t,e,n,o,i,a,u)}catch(c){if(et(s),c!==c+0&&"longjmp"!==c)throw c;rt(1,0)}},ba:function(r,t,e,n,o,i,a,u,s){var c=tt();try{wt(r,t,e,n,o,i,a,u,s)}catch(f){if(et(c),f!==f+0&&"longjmp"!==f)throw f;rt(1,0)}},ca:function(r,t,e,n,o,i,a,u,s,c,f,l){var d=tt();try{vt(r,t,e,n,o,i,a,u,s,c,f,l)}catch(m){if(et(d),m!==m+0&&"longjmp"!==m)throw m;rt(1,0)}},ka:function(r,t,e,n,o,i,a,u){var s=tt();try{ut(r,t,e,n,o,i,a,u)}catch(c){if(et(s),c!==c+0&&"longjmp"!==c)throw c;rt(1,0)}},fa:function(r,t,e,n,o,i,a,u,s){var c=tt();try{dt(r,t,e,n,o,i,a,u,s)}catch(f){if(et(c),f!==f+0&&"longjmp"!==f)throw f;rt(1,0)}},ja:function(r,t,e,n,o,i,a,u,s,c){var f=tt();try{st(r,t,e,n,o,i,a,u,s,c)}catch(l){if(et(f),l!==l+0&&"longjmp"!==l)throw l;rt(1,0)}},$:function(r,t,e,n){var o=tt();try{gt(r,t,e,n)}catch(i){if(et(o),i!==i+0&&"longjmp"!==i)throw i;rt(1,0)}},ga:function(r,t,e,n,o,i){var a=tt();try{lt(r,t,e,n,o,i)}catch(u){if(et(a),u!==u+0&&"longjmp"!==u)throw u;rt(1,0)}},Z:function(r,t,e,n,o,i,a){var u=tt();try{_t(r,t,e,n,o,i,a)}catch(s){if(et(u),s!==s+0&&"longjmp"!==s)throw s;rt(1,0)}},la:function(r,t,e,n,o,i,a,u,s,c){var f=tt();try{at(r,t,e,n,o,i,a,u,s,c)}catch(l){if(et(f),l!==l+0&&"longjmp"!==l)throw l;rt(1,0)}},t:function(r){return r},Ea:function(r){Mr();var t=new Date(I[r+20>>2]+1900,I[r+16>>2],I[r+12>>2],I[r+8>>2],I[r+4>>2],I[r>>2],0),e=I[r+32>>2],n=t.getTimezoneOffset(),o=new Date(t.getFullYear(),0,1),i=new Date(t.getFullYear(),6,1).getTimezoneOffset(),a=o.getTimezoneOffset(),u=Math.min(a,i);if(e<0)I[r+32>>2]=Number(i!=a&&u==n);else if(e>0!=(u==n)){var s=Math.max(a,i),c=e>0?u:s;t.setTime(t.getTime()+6e4*(c-n))}I[r+24>>2]=t.getDay();var f=(t.getTime()-o.getTime())/864e5|0;return I[r+28>>2]=f,I[r>>2]=t.getSeconds(),I[r+4>>2]=t.getMinutes(),I[r+8>>2]=t.getHours(),I[r+12>>2]=t.getDate(),I[r+16>>2]=t.getMonth(),t.getTime()/1e3|0},C:function(r){F(r)},Ia:Yr,na:function(r,t,e,n){return Yr(r,t,e,n)},Ga:function(r){if(E){if(!r)return 1;var t=H(r);if(!t.length)return 0;var e=require("child_process").spawnSync(t,[],{shell:!0,stdio:"inherit"}),n=(r,t)=>r<<8|t;return null===e.status?n(0,(r=>{switch(r){case"SIGHUP":return 1;case"SIGINT":return 2;case"SIGQUIT":return 3;case"SIGFPE":return 8;case"SIGKILL":return 9;case"SIGALRM":return 14;case"SIGTERM":return 15}return 2})(e.signal)):n(e.status,0)}return r?(Er(52),-1):0},F:function(r){var t=Date.now()/1e3|0;return r&&(I[r>>2]=t),t}},Vr=(function(){var r={a:Xr};function t(r,t){var e,n,o=r.exports;u.asm=o,A=u.asm.La,e=A.buffer,z=e,u.HEAP8=O=new Int8Array(e),u.HEAP16=N=new Int16Array(e),u.HEAP32=I=new Int32Array(e),u.HEAPU8=B=new Uint8Array(e),u.HEAPU16=new Uint16Array(e),u.HEAPU32=new Uint32Array(e),u.HEAPF32=new Float32Array(e),u.HEAPF64=new Float64Array(e),K=u.asm.Pa,n=u.asm.Ma,$.unshift(n),ur()}function e(r){t(r.instance)}function n(t){return function(){if(!D&&(y||_)){if("function"==typeof fetch&&!wr(cr))return fetch(cr,{credentials:"same-origin"}).then(function(r){if(!r.ok)throw"failed to load wasm binary file at '"+cr+"'";return r.arrayBuffer()}).catch(function(){return vr(cr)});if(f)return new Promise(function(r,t){f(cr,function(t){r(new Uint8Array(t))},t)})}return Promise.resolve().then(function(){return vr(cr)})}().then(function(t){return WebAssembly.instantiate(t,r)}).then(function(r){return r}).then(t,function(r){j("failed to asynchronously prepare wasm: "+r),sr(r)})}if(ar(),u.instantiateWasm)try{return u.instantiateWasm(r,t)}catch(o){return j("Module.instantiateWasm callback failed with error: "+o),!1}(D||"function"!=typeof WebAssembly.instantiateStreaming||pr(cr)||wr(cr)||"function"!=typeof fetch?n(e):fetch(cr,{credentials:"same-origin"}).then(function(t){return WebAssembly.instantiateStreaming(t,r).then(e,function(r){return j("wasm streaming compile failed: "+r),j("falling back to ArrayBuffer instantiation"),n(e)})})).catch(a)}(),u.___wasm_call_ctors=function(){return(u.___wasm_call_ctors=u.asm.Ma).apply(null,arguments)},u._create_compile_result=function(){return(u._create_compile_result=u.asm.Na).apply(null,arguments)},u._main=function(){return(u._main=u.asm.Oa).apply(null,arguments)},u._free=function(){return(Vr=u._free=u.asm.Qa).apply(null,arguments)}),Kr=u._malloc=function(){return(Kr=u._malloc=u.asm.Ra).apply(null,arguments)},Jr=u.___errno_location=function(){return(Jr=u.___errno_location=u.asm.Sa).apply(null,arguments)},$r=u.__get_tzname=function(){return($r=u.__get_tzname=u.asm.Ta).apply(null,arguments)},Zr=u.__get_daylight=function(){return(Zr=u.__get_daylight=u.asm.Ua).apply(null,arguments)},Qr=u.__get_timezone=function(){return(Qr=u.__get_timezone=u.asm.Va).apply(null,arguments)},rt=u._setThrew=function(){return(rt=u._setThrew=u.asm.Wa).apply(null,arguments)},tt=u.stackSave=function(){return(tt=u.stackSave=u.asm.Xa).apply(null,arguments)},et=u.stackRestore=function(){return(et=u.stackRestore=u.asm.Ya).apply(null,arguments)},nt=u.stackAlloc=function(){return(nt=u.stackAlloc=u.asm.Za).apply(null,arguments)},ot=u.___cxa_can_catch=function(){return(ot=u.___cxa_can_catch=u.asm._a).apply(null,arguments)},it=u.___cxa_is_pointer_type=function(){return(it=u.___cxa_is_pointer_type=u.asm.$a).apply(null,arguments)},at=u.dynCall_vijjjj=function(){return(at=u.dynCall_vijjjj=u.asm.ab).apply(null,arguments)},ut=u.dynCall_viijji=function(){return(ut=u.dynCall_viijji=u.asm.bb).apply(null,arguments)},st=u.dynCall_viijjiii=function(){return(st=u.dynCall_viijjiii=u.asm.cb).apply(null,arguments)},ct=u.dynCall_iijj=function(){return(ct=u.dynCall_iijj=u.asm.db).apply(null,arguments)},ft=u.dynCall_iijjii=function(){return(ft=u.dynCall_iijjii=u.asm.eb).apply(null,arguments)},lt=u.dynCall_vijj=function(){return(lt=u.dynCall_vijj=u.asm.fb).apply(null,arguments)},dt=u.dynCall_viijjii=function(){return(dt=u.dynCall_viijjii=u.asm.gb).apply(null,arguments)},mt=u.dynCall_viijjd=function(){return(mt=u.dynCall_viijjd=u.asm.hb).apply(null,arguments)},ht=u.dynCall_viijj=function(){return(ht=u.dynCall_viijj=u.asm.ib).apply(null,arguments)},pt=u.dynCall_vidjj=function(){return(pt=u.dynCall_vidjj=u.asm.jb).apply(null,arguments)},wt=u.dynCall_viijjdi=function(){return(wt=u.dynCall_viijjdi=u.asm.kb).apply(null,arguments)},vt=u.dynCall_viijjdjj=function(){return(vt=u.dynCall_viijjdjj=u.asm.lb).apply(null,arguments)},gt=u.dynCall_vij=function(){return(gt=u.dynCall_vij=u.asm.mb).apply(null,arguments)},yt=u.dynCall_jiii=function(){return(yt=u.dynCall_jiii=u.asm.nb).apply(null,arguments)},_t=u.dynCall_vijji=function(){return(_t=u.dynCall_vijji=u.asm.ob).apply(null,arguments)},Et=u.dynCall_iiiiijj=function(){return(Et=u.dynCall_iiiiijj=u.asm.pb).apply(null,arguments)},bt=u.dynCall_jiiii=function(){return(bt=u.dynCall_jiiii=u.asm.qb).apply(null,arguments)};function kt(r){this.name="ExitStatus",this.message="Program terminated with exit("+r+")",this.status=r}u.cwrap=function(r,t,e,n){var o=(e=e||[]).every(function(r){return"number"===r});return"string"!==t&&o&&!n?C(r):function(){return R(r,t,e,arguments)}},u.UTF8ToString=H,u.FS=Rr;function jt(r){var t=u._main,e=(r=r||[]).length+1,n=nt(4*(e+1));I[n>>2]=X(v);for(var o=1;o<e;o++)I[(n>>2)+o]=X(r[o-1]);I[(n>>2)+e]=0;try{var i=t(e,n);return St(i,!0),i}catch(a){return function(r){if(r instanceof kt||"unwind"==r)return T;g(1,r)}(a)}finally{!0}}function Dt(r){function t(){Gr||(Gr=!0,u.calledRun=!0,x||(!0,u.noFSInit||Rr.init.initialized||Rr.init(),Rr.ignorePermissions=!1,Tr.init(),gr($),gr(Z),i(u),u.onRuntimeInitialized&&u.onRuntimeInitialized(),Ft&&jt(r),function(){if(u.postRun)for("function"==typeof u.postRun&&(u.postRun=[u.postRun]);u.postRun.length;)r=u.postRun.shift(),Q.unshift(r);var r;gr(Q)}()))}r=r||w,er>0||(!function(){if(u.preRun)for("function"==typeof u.preRun&&(u.preRun=[u.preRun]);u.preRun.length;)r=u.preRun.shift(),J.unshift(r);var r;gr(J)}(),er>0||(u.setStatus?(u.setStatus("Running..."),setTimeout(function(){setTimeout(function(){u.setStatus("")},1),t()},1)):t()))}function St(r,t){T=r,tr()||!0,function(r){T=r,tr()||(u.onExit&&u.onExit(r),x=!0);g(r,new kt(r))}(r)}if(or=function r(){Gr||Dt(),Gr||(or=r)},u.run=Dt,u.preInit)for("function"==typeof u.preInit&&(u.preInit=[u.preInit]);u.preInit.length>0;)u.preInit.pop()();var Ft=!0;return u.noInitialRun&&(Ft=!1),Dt(),t.ready}})();"object"==typeof exports&&"object"==typeof module?module.exports=i:"function"==typeof r&&r.amd?r([],function(){return i}):"object"==typeof exports&&(exports.startWerckmeisterJs=i);
491
491
  },{"path":"UUq2","fs":"rDCW","crypto":"mRF4","child_process":"rDCW","process":"pBGv","buffer":"dskh"}],"RSuL":[function(require,module,exports) {
492
- "use strict";function n(n,t){var a;if("undefined"==typeof Symbol||null==n[Symbol.iterator]){if(Array.isArray(n)||(a=e(n))||t&&n&&"number"==typeof n.length){a&&(n=a);var r=0,o=function(){};return{s:o,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(n){throw n},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,l=!1;return{s:function(){a=n[Symbol.iterator]()},n:function(){var n=a.next();return s=n.done,n},e:function(n){l=!0,i=n},f:function(){try{s||null==a.return||a.return()}finally{if(l)throw i}}}}function e(n,e){if(n){if("string"==typeof n)return t(n,e);var a=Object.prototype.toString.call(n).slice(8,-1);return"Object"===a&&n.constructor&&(a=n.constructor.name),"Map"===a||"Set"===a?Array.from(n):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?t(n,e):void 0}}function t(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,a=new Array(e);t<e;t++)a[t]=n[t];return a}function a(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}function r(n,e){for(var t=0;t<e.length;t++){var a=e[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(n,a.key,a)}}function o(n,e,t){return e&&r(n.prototype,e),t&&r(n,t),n}var i=this&&this.__awaiter||function(n,e,t,a){return new(t||(t=Promise))(function(r,o){function i(n){try{l(a.next(n))}catch(e){o(e)}}function s(n){try{l(a.throw(n))}catch(e){o(e)}}function l(n){var e;n.done?r(n.value):(e=n.value,e instanceof t?e:new t(function(n){n(e)})).then(i,s)}l((a=a.apply(n,e||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.WerckmeisterCompiler=exports.CompilerError=void 0;var s=require("@werckmeister/compilerjs/werckmeister"),l=require("fs"),c=JSON.parse('[{"path": "chords/default.chords", "data": "------------------------------------------------------------------\\nX: \\t\\t\\tI=0\\t \\t\\tIII=4 \\t\\t\\tV=7\\nXmin: \\t\\tI=0 \\t\\tIII=3 \\t\\t\\tV=7\\nX-: \\t\\tI=0 \\t\\tIII=3 \\t\\t\\tV=7\\nX/7: \\t\\tI=0 \\t\\tIII=4 \\t\\t\\tV=7 \\t\\t\\tVII=-2\\nX-/7: \\t\\tI=0 \\t\\tIII=3 \\t\\t\\tV=7 \\t\\t\\tVII=-2\\nX/maj7: \\tI=0 \\tIII=4 \\t\\t\\tV=7 \\t\\t\\tVII=-1\\nX/5: \\t\\tI=0\\t \\t\\tIII=4 \\t\\t\\tV=-5\\nX-/5: \\t\\tI=0\\t \\t\\tIII=3 \\t\\t\\tV=-5\\nX/4: \\t\\tI=0\\t \\t\\tIII=4 \\tIV=-7\\tV=7\\nX-/4: \\t\\tI=0\\t \\t\\tIII=3 \\tIV=-7\\tV=7\\nX/3: \\t\\tI=0\\t \\t\\tIII=-8 \\t \\tV=7\\nX-/3: \\t\\tI=0\\t \\t\\tIII=-9 \\t \\tV=7\\nX/2: \\t\\tI=0\\t II=-10\\tIII=4 \\t \\tV=7\\nX-7b5/b5: \\tI=0 \\t\\tIII=3 \\t\\t\\tV=-6 \\t\\t\\tVII=10\\n------------------------------------------------------------------\\nXsus4: I=0 IV=5 V=7\\nX7sus4: I=0 IV=5 V=7 VII=10\\nX9sus4: I=0 II=2 IV=5 V=7 VII=10\\nXsus2: I=0 II=2 V=7\\n------------------------------------------------------------------\\nX6: I=0 \\t\\tIII=4 \\t\\t\\tV=7 VI=9\\nX-6: I=0 \\t\\tIII=3 \\t\\t\\tV=7 VI=9\\nX-6/9: I=0 II=2\\tIII=3 \\t\\t\\tV=7 VI=9\\n------------------------------------------------------------------\\nX7: \\t\\tI=0 \\t\\tIII=4 \\t\\t\\tV=7 \\t\\t\\tVII=10\\nXmin7: \\t\\tI=0 \\t\\tIII=3 \\t\\t\\tV=7 \\t\\t\\tVII=10\\nX-7: \\t\\tI=0 \\t\\tIII=3 \\t\\t\\tV=7 \\t\\t\\tVII=10\\nXmaj7: \\t\\tI=0 \\t\\tIII=4 \\t\\t\\tV=7 \\t\\t\\tVII=11\\nXmaj7b5:\\tI=0 \\t\\tIII=4 \\t\\t\\tV=6 \\t\\t\\tVII=11\\nX-7b5: \\tI=0 \\t\\tIII=3 \\t\\t\\tV=6 \\t\\t\\tVII=10\\nXmaj7#11: \\tI=0 \\t\\tIII=4 \\tIV=6\\t \\t\\t\\tVII=11\\nX7b5: \\t\\tI=0 \\t\\tIII=4 \\t\\t\\tV=6 \\t\\t\\tVII=10\\nX7#5: \\t\\tI=0 \\t\\tIII=4 \\t\\t\\tV=8 \\t\\t\\tVII=10\\nX07: \\t\\tI=0 \\t\\tIII=3 \\t\\t\\tV=6 \\t\\t\\tVII=9\\n-- II=3 and III=3 was intended\\nX7#5#9:\\t\\tI=0 II=3 III=3 \\tV=8 \\t\\t\\tVII=10\\n------------------------------------------------------------------\\nX2: \\t\\tI=0 III=2 \\t\\t\\tV=7 \\t\\t\\t\\nX9: \\t\\tI=0 II=2 III=4 \\t\\t\\tV=7 \\t\\t\\tVII=10\\n# to distinguish between Xb9 (Xflat and 9) and Xb9 (X and flat 9)\\n# we write Xflat9 for the latter. (same for 11 and 13)\\nXflat9: \\tI=0 II=1 III=4 \\t\\t\\tV=7 \\t\\t\\t\\nXmin9: \\t\\tI=0 II=2\\tIII=3 \\t\\t\\tV=7 \\t\\t\\tVII=10\\nX-9: \\t\\tI=0 II=2\\tIII=3 \\t\\t\\tV=7 \\t\\t\\tVII=10\\nXminAdd9:\\tI=0 II=2\\tIII=3 \\t\\t\\tV=7 \\t\\t\\t\\nX-add9:\\t\\tI=0 II=2\\tIII=3 \\t\\t\\tV=7 \\t\\t\\t\\n\\n\\nXmaj9: \\t\\tI=0 II=2\\tIII=4 \\t\\t\\tV=7 \\t\\t\\tVII=11\\n-- II=3 and III=3 was intended\\nX7#9: \\t\\tI=0 II=3\\tIII=4 \\t\\t\\tV=7 \\t\\t\\tVII=10\\nX7b9: I=0 II=1 III=4 \\t\\t\\tV=7 \\t\\t\\tVII=10\\nXmaj7b9: I=0 II=1 III=4 \\t\\t\\tV=7 \\t\\t\\tVII=11\\n------------------------------------------------------------------\\nX11: \\t\\tI=0 \\tIII=4 \\tIV=5\\tV=7 \\t\\t\\tVII=10\\nXflat11: I=0 \\tIII=3 \\tIV=4\\tV=7 \\t\\t\\t\\nXmin11:\\t\\tI=0 \\tIII=3 \\tIV=5\\tV=7 \\t\\t\\tVII=10\\nX-11:\\t\\tI=0 \\tIII=3 \\tIV=5\\tV=7 \\t\\t\\tVII=10\\nXmaj11:\\t\\tI=0 \\tIII=4 \\tIV=5\\tV=7 \\t\\t\\tVII=11\\n------------------------------------------------------------------\\nX13: \\t\\tI=0 \\tIII=4 \\t \\tV=7 \\tVI=9\\tVII=10\\nXflat13:\\tI=0 \\tIII=4 \\t \\t \\tVI=8\\t\\nXmin13:\\t\\tI=0 \\tIII=3 \\t\\t V=7 \\tVI=9\\tVII=10\\nX-13:\\t\\tI=0 \\tIII=3 \\t\\t V=7 \\tVI=9\\tVII=10\\nXmaj13:\\t\\tI=0 \\tIII=4 \\t\\t V=7 \\tVI=9\\tVII=11"}, {"path": "lua/com/com.lua", "data": "local _inspect = require \\"lua/com/inspect\\"\\n\\nlocal MidiSchluesselCOffset = 60\\nParameterValueNoTag = \'__noTagValue\'\\n\\nfunction istable(t) return type(t) == \'table\' end\\nfunction isnumber(t) return type(t) == \'number\' end\\nfunction inspect(x) return print(_inspect(x)) end\\nfunction dump(x) print(inspect(x)) end\\n\\n\\nfunction checkLegacyNamedParams(params, ...)\\n local args = table.pack(...)\\n for k, v in pairs(params) do\\n if contains(args, v) then\\n local msg = \\"Error: legacy named parameter with the argument \'\\" .. v .. \\"\'. \\"\\n msg = msg .. \\" Use this expression instead: _\\" .. v .. \\"=...\\" \\n error(msg)\\n end\\n end\\nend\\n\\n-- returns the minimum amount of semitones between the relative pitches x and y.\\n-- e.g.: from c(0) to b(11) = -1\\nfunction relpitchdiff(x, y)\\n x = x % 12\\n y = y % 12\\n if math.abs(x-y) < 6 then\\n return -(x-y)\\n end\\n if x < 6 then \\n x = x + 12 \\n end\\n if y < 6 then\\n y = y + 12\\n end\\n return -(x-y)\\nend\\n\\n-- [a, 1, b, 2, c, 3] => {a=1, b=2, c=3}\\n-- @deprecated use the native named parameter feature: _name=value\\nfunction tokeyvalue(args)\\n assert(#args % 2 == 0)\\n local result = {}\\n for i=1, #args, 2 do\\n result[ args[i] ] = args[i+1]\\n end\\n return result\\nend\\n\\nfunction toMidiPitch(pitch)\\n return MidiSchluesselCOffset + pitch.pitch + (pitch.octave * 12)\\nend\\n\\nfunction deepcopy(o, seen)\\n seen = seen or {}\\n if o == nil then return nil end\\n if seen[o] then return seen[o] end\\n \\n local no\\n if type(o) == \'table\' then\\n no = {}\\n seen[o] = no\\n \\n for k, v in next, o, nil do\\n no[deepcopy(k, seen)] = deepcopy(v, seen)\\n end\\n setmetatable(no, deepcopy(getmetatable(o), seen))\\n else -- number, string, boolean, etc\\n no = o\\n end\\n return no\\nend\\n\\nfunction contains(table, value)\\n if table == nil then\\n return false\\n end\\n for k, v in pairs(table) do\\n if v == value then\\n return true\\n end\\n end\\n return false\\nend\\n\\n-- https://stackoverflow.com/questions/1426954/split-string-in-lua#1426970\\nfunction split(pString, pPattern)\\n local Table = {} -- NOTE: use {n = 0} in Lua-5.0\\n local fpat = \\"(.-)\\" .. pPattern\\n local last_end = 1\\n local s, e, cap = pString:find(fpat, 1)\\n while s do\\n if s ~= 1 or cap ~= \\"\\" then\\n table.insert(Table,cap)\\n end\\n last_end = e+1\\n s, e, cap = pString:find(fpat, last_end)\\n end\\n if last_end <= #pString then\\n cap = pString:sub(last_end)\\n table.insert(Table, cap)\\n end\\n return Table\\n end"}, {"path": "lua/com/globals.lua", "data": "I = 1\\nII = 2\\nIII = 3\\nIV = 4\\nV = 5\\nVI = 6\\nVII = 7\\n\\nDegreeStringValues = {\\n I = I,\\n II = II,\\n III = III,\\n IV = IV,\\n V = V,\\n VI = VI,\\n VII = VII\\n}\\n\\nMajorScaleSemitones = {\\n I = 0,\\n II = 2,\\n III = 4,\\n IV = 5,\\n V = 7,\\n VI = 9,\\n VII = 11\\n}\\n\\nC = 0\\nCIS = 1\\nDES = 1\\nD = 2\\nDIS = 3\\nES = 3\\nE = 4\\nFES = 4\\nF = 5\\nFIS = 6\\nGES = 6\\nG = 7\\nGIS = 8\\nAS = 8\\nA = 9\\nAIS = 10\\nBES = 10\\nB = 11\\nCES = 11\\n"}, {"path": "lua/com/inspect.lua", "data": "local inspect ={\\n _VERSION = \'inspect.lua 3.1.0\',\\n _URL = \'http://github.com/kikito/inspect.lua\',\\n _DESCRIPTION = \'human-readable representations of tables\',\\n _LICENSE = [[\\n MIT LICENSE\\n\\n Copyright (c) 2013 Enrique Garc\\u00eda Cota\\n\\n Permission is hereby granted, free of charge, to any person obtaining a\\n copy of this software and associated documentation files (the\\n \\"Software\\"), to deal in the Software without restriction, including\\n without limitation the rights to use, copy, modify, merge, publish,\\n distribute, sublicense, and/or sell copies of the Software, and to\\n permit persons to whom the Software is furnished to do so, subject to\\n the following conditions:\\n\\n The above copyright notice and this permission notice shall be included\\n in all copies or substantial portions of the Software.\\n\\n THE SOFTWARE IS PROVIDED \\"AS IS\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\\n OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\\n ]]\\n}\\n\\nlocal tostring = tostring\\n\\ninspect.KEY = setmetatable({}, {__tostring = function() return \'inspect.KEY\' end})\\ninspect.METATABLE = setmetatable({}, {__tostring = function() return \'inspect.METATABLE\' end})\\n\\nlocal function rawpairs(t)\\n return next, t, nil\\nend\\n\\n-- Apostrophizes the string if it has quotes, but not aphostrophes\\n-- Otherwise, it returns a regular quoted string\\nlocal function smartQuote(str)\\n if str:match(\'\\"\') and not str:match(\\"\'\\") then\\n return \\"\'\\" .. str .. \\"\'\\"\\n end\\n return \'\\"\' .. str:gsub(\'\\"\', \'\\\\\\\\\\"\') .. \'\\"\'\\nend\\n\\n-- \\\\a => \'\\\\\\\\a\', \\\\0 => \'\\\\\\\\0\', 31 => \'\\\\31\'\\nlocal shortControlCharEscapes = {\\n [\\"\\\\a\\"] = \\"\\\\\\\\a\\", [\\"\\\\b\\"] = \\"\\\\\\\\b\\", [\\"\\\\f\\"] = \\"\\\\\\\\f\\", [\\"\\\\n\\"] = \\"\\\\\\\\n\\",\\n [\\"\\\\r\\"] = \\"\\\\\\\\r\\", [\\"\\\\t\\"] = \\"\\\\\\\\t\\", [\\"\\\\v\\"] = \\"\\\\\\\\v\\"\\n}\\nlocal longControlCharEscapes = {} -- \\\\a => nil, \\\\0 => \\\\000, 31 => \\\\031\\nfor i=0, 31 do\\n local ch = string.char(i)\\n if not shortControlCharEscapes[ch] then\\n shortControlCharEscapes[ch] = \\"\\\\\\\\\\"..i\\n longControlCharEscapes[ch] = string.format(\\"\\\\\\\\%03d\\", i)\\n end\\nend\\n\\nlocal function escape(str)\\n return (str:gsub(\\"\\\\\\\\\\", \\"\\\\\\\\\\\\\\\\\\")\\n :gsub(\\"(%c)%f[0-9]\\", longControlCharEscapes)\\n :gsub(\\"%c\\", shortControlCharEscapes))\\nend\\n\\nlocal function isIdentifier(str)\\n return type(str) == \'string\' and str:match( \\"^[_%a][_%a%d]*$\\" )\\nend\\n\\nlocal function isSequenceKey(k, sequenceLength)\\n return type(k) == \'number\'\\n and 1 <= k\\n and k <= sequenceLength\\n and math.floor(k) == k\\nend\\n\\nlocal defaultTypeOrders = {\\n [\'number\'] = 1, [\'boolean\'] = 2, [\'string\'] = 3, [\'table\'] = 4,\\n [\'function\'] = 5, [\'userdata\'] = 6, [\'thread\'] = 7\\n}\\n\\nlocal function sortKeys(a, b)\\n local ta, tb = type(a), type(b)\\n\\n -- strings and numbers are sorted numerically/alphabetically\\n if ta == tb and (ta == \'string\' or ta == \'number\') then return a < b end\\n\\n local dta, dtb = defaultTypeOrders[ta], defaultTypeOrders[tb]\\n -- Two default types are compared according to the defaultTypeOrders table\\n if dta and dtb then return defaultTypeOrders[ta] < defaultTypeOrders[tb]\\n elseif dta then return true -- default types before custom ones\\n elseif dtb then return false -- custom types after default ones\\n end\\n\\n -- custom types are sorted out alphabetically\\n return ta < tb\\nend\\n\\n-- For implementation reasons, the behavior of rawlen & # is \\"undefined\\" when\\n-- tables aren\'t pure sequences. So we implement our own # operator.\\nlocal function getSequenceLength(t)\\n local len = 1\\n local v = rawget(t,len)\\n while v ~= nil do\\n len = len + 1\\n v = rawget(t,len)\\n end\\n return len - 1\\nend\\n\\nlocal function getNonSequentialKeys(t)\\n local keys, keysLength = {}, 0\\n local sequenceLength = getSequenceLength(t)\\n for k,_ in rawpairs(t) do\\n if not isSequenceKey(k, sequenceLength) then\\n keysLength = keysLength + 1\\n keys[keysLength] = k\\n end\\n end\\n table.sort(keys, sortKeys)\\n return keys, keysLength, sequenceLength\\nend\\n\\nlocal function countTableAppearances(t, tableAppearances)\\n tableAppearances = tableAppearances or {}\\n\\n if type(t) == \'table\' then\\n if not tableAppearances[t] then\\n tableAppearances[t] = 1\\n for k,v in rawpairs(t) do\\n countTableAppearances(k, tableAppearances)\\n countTableAppearances(v, tableAppearances)\\n end\\n countTableAppearances(getmetatable(t), tableAppearances)\\n else\\n tableAppearances[t] = tableAppearances[t] + 1\\n end\\n end\\n\\n return tableAppearances\\nend\\n\\nlocal copySequence = function(s)\\n local copy, len = {}, #s\\n for i=1, len do copy[i] = s[i] end\\n return copy, len\\nend\\n\\nlocal function makePath(path, ...)\\n local keys = {...}\\n local newPath, len = copySequence(path)\\n for i=1, #keys do\\n newPath[len + i] = keys[i]\\n end\\n return newPath\\nend\\n\\nlocal function processRecursive(process, item, path, visited)\\n if item == nil then return nil end\\n if visited[item] then return visited[item] end\\n\\n local processed = process(item, path)\\n if type(processed) == \'table\' then\\n local processedCopy = {}\\n visited[item] = processedCopy\\n local processedKey\\n\\n for k,v in rawpairs(processed) do\\n processedKey = processRecursive(process, k, makePath(path, k, inspect.KEY), visited)\\n if processedKey ~= nil then\\n processedCopy[processedKey] = processRecursive(process, v, makePath(path, processedKey), visited)\\n end\\n end\\n\\n local mt = processRecursive(process, getmetatable(processed), makePath(path, inspect.METATABLE), visited)\\n if type(mt) ~= \'table\' then mt = nil end -- ignore not nil/table __metatable field\\n setmetatable(processedCopy, mt)\\n processed = processedCopy\\n end\\n return processed\\nend\\n\\n\\n\\n-------------------------------------------------------------------\\n\\nlocal Inspector = {}\\nlocal Inspector_mt = {__index = Inspector}\\n\\nfunction Inspector:puts(...)\\n local args = {...}\\n local buffer = self.buffer\\n local len = #buffer\\n for i=1, #args do\\n len = len + 1\\n buffer[len] = args[i]\\n end\\nend\\n\\nfunction Inspector:down(f)\\n self.level = self.level + 1\\n f()\\n self.level = self.level - 1\\nend\\n\\nfunction Inspector:tabify()\\n self:puts(self.newline, string.rep(self.indent, self.level))\\nend\\n\\nfunction Inspector:alreadyVisited(v)\\n return self.ids[v] ~= nil\\nend\\n\\nfunction Inspector:getId(v)\\n local id = self.ids[v]\\n if not id then\\n local tv = type(v)\\n id = (self.maxIds[tv] or 0) + 1\\n self.maxIds[tv] = id\\n self.ids[v] = id\\n end\\n return tostring(id)\\nend\\n\\nfunction Inspector:putKey(k)\\n if isIdentifier(k) then return self:puts(k) end\\n self:puts(\\"[\\")\\n self:putValue(k)\\n self:puts(\\"]\\")\\nend\\n\\nfunction Inspector:putTable(t)\\n if t == inspect.KEY or t == inspect.METATABLE then\\n self:puts(tostring(t))\\n elseif self:alreadyVisited(t) then\\n self:puts(\'<table \', self:getId(t), \'>\')\\n elseif self.level >= self.depth then\\n self:puts(\'{...}\')\\n else\\n if self.tableAppearances[t] > 1 then self:puts(\'<\', self:getId(t), \'>\') end\\n\\n local nonSequentialKeys, nonSequentialKeysLength, sequenceLength = getNonSequentialKeys(t)\\n local mt = getmetatable(t)\\n\\n self:puts(\'{\')\\n self:down(function()\\n local count = 0\\n for i=1, sequenceLength do\\n if count > 0 then self:puts(\',\') end\\n self:puts(\' \')\\n self:putValue(t[i])\\n count = count + 1\\n end\\n\\n for i=1, nonSequentialKeysLength do\\n local k = nonSequentialKeys[i]\\n if count > 0 then self:puts(\',\') end\\n self:tabify()\\n self:putKey(k)\\n self:puts(\' = \')\\n self:putValue(t[k])\\n count = count + 1\\n end\\n\\n if type(mt) == \'table\' then\\n if count > 0 then self:puts(\',\') end\\n self:tabify()\\n self:puts(\'<metatable> = \')\\n self:putValue(mt)\\n end\\n end)\\n\\n if nonSequentialKeysLength > 0 or type(mt) == \'table\' then -- result is multi-lined. Justify closing }\\n self:tabify()\\n elseif sequenceLength > 0 then -- array tables have one extra space before closing }\\n self:puts(\' \')\\n end\\n\\n self:puts(\'}\')\\n end\\nend\\n\\nfunction Inspector:putValue(v)\\n local tv = type(v)\\n\\n if tv == \'string\' then\\n self:puts(smartQuote(escape(v)))\\n elseif tv == \'number\' or tv == \'boolean\' or tv == \'nil\' or\\n tv == \'cdata\' or tv == \'ctype\' then\\n self:puts(tostring(v))\\n elseif tv == \'table\' then\\n self:putTable(v)\\n else\\n self:puts(\'<\', tv, \' \', self:getId(v), \'>\')\\n end\\nend\\n\\n-------------------------------------------------------------------\\n\\nfunction inspect.inspect(root, options)\\n options = options or {}\\n\\n local depth = options.depth or math.huge\\n local newline = options.newline or \'\\\\n\'\\n local indent = options.indent or \' \'\\n local process = options.process\\n\\n if process then\\n root = processRecursive(process, root, {}, {})\\n end\\n\\n local inspector = setmetatable({\\n depth = depth,\\n level = 0,\\n buffer = {},\\n ids = {},\\n maxIds = {},\\n newline = newline,\\n indent = indent,\\n tableAppearances = countTableAppearances(root)\\n }, Inspector_mt)\\n\\n inspector:putValue(root)\\n\\n return table.concat(inspector.buffer)\\nend\\n\\nsetmetatable(inspect, { __call = function(_, ...) return inspect.inspect(...) end })\\n\\nreturn inspect\\n"}, {"path": "lua/com/tests.lua", "data": "require \\"com/com\\"\\nrequire \\"com/globals\\"\\n\\nfunction testpitchdiff(a, b, expected)\\n local diff = relpitchdiff(a, b)\\n if diff ~= expected then\\n print(\\"pitchdiff: \\" .. a .. \\"-\\" .. b .. \\"~=\\" .. expected .. \\"(\\" .. diff .. \\")\\" )\\n end\\nend\\n\\ntestpitchdiff( 0, 0, 0)\\ntestpitchdiff( 0, 5, 5)\\ntestpitchdiff( 5, 0, -5)\\ntestpitchdiff( 0, 6, -6)\\ntestpitchdiff( 6, 0, 6)\\ntestpitchdiff( 7, 0, 5)\\ntestpitchdiff( 0, 7, -5)\\ntestpitchdiff( 7, 1, 6)\\ntestpitchdiff( 1, 7, -6)\\ntestpitchdiff( 7, 11, 4)\\ntestpitchdiff(11, 7, -4)\\ntestpitchdiff( 0, 10, -2)\\ntestpitchdiff(10, 0, 2)\\ntestpitchdiff( 5, 9, 4)\\ntestpitchdiff( 9, 5, -4)\\ntestpitchdiff( 5, 11, -6)\\ntestpitchdiff(11, 5, 6)\\ntestpitchdiff( 9, 11, 2)\\ntestpitchdiff(11, 9, -2)\\ntestpitchdiff(11, 1, 2)\\ntestpitchdiff( 1, 11, -2)\\ntestpitchdiff( 12, 24, 0)\\n\\n\\nx = tokeyvalue({\\"a\\", 100, \\"b\\", 200, \\"c\\", 300})\\nassert(x.a == 100)\\nassert(x.b == 200)\\nassert(x.c == 300)\\n\\n\\nassert( toMidiPitch({pitch=C, octave=0}) == 60)\\nassert( toMidiPitch({pitch=C, octave=1}) == 72)\\nassert( toMidiPitch({pitch=CIS, octave=1}) == 73)\\nassert( toMidiPitch({pitch=C, octave=-1}) == 48)"}, {"path": "lua/mods/_drumRudimentsRepository.lua", "data": "-- A definition of drum rudiments.\\n-- The actual rudiment duration dosen\'t matter. At the end, the sequence\\n-- will be ajdusted, so that it fits into the duration of the related event.\\n-- The relations between the different durations is what matters.\\n-- For example\\n-- A rudiment with four quarters, played over the duration of one eight:\\n-- every rudiment quarter will become eventually a 32th\\nR=\\"R\\"\\nL=\\"L\\"\\n\\nFlamType = \\"flam\\"\\nDragType = \\"drag\\"\\n\\n-- durations\\nlocal _4 = 1\\nlocal _8 = 1/2\\nlocal _16 = 1/4\\nlocal _32 = 1/8 \\nlocal _4t = _4 / 3\\nlocal _8t = _8 / 3\\nlocal _16t = _16 / 3\\nlocal _32t = _32 / 3\\n-- velocity factors\\nAccent = \\"accent\\"\\nUnaccented = \\"unaccented\\"\\nGraceNote = \\"grace note\\"\\n\\nlocal ac = Accent\\nlocal un = Unaccented\\n\\n\\n-- create a rudiment sequence event\\nlocal function Stroke(which, duration, velocityClass)\\n if velocityClass == nil then\\n velocityClass = Accent\\n end\\n return { which=which, duration=duration, velocityClass = velocityClass }\\nend\\n\\nlocal function Flam(which, duration, velocityClass)\\n if velocityClass == nil then\\n velocityClass = Accent\\n end\\n return { which=which, duration=duration, velocityClass = velocityClass, type = FlamType}\\nend\\n\\nlocal function Drag(which, duration, velocityClass)\\n if velocityClass == nil then\\n velocityClass = Accent\\n end\\n return { which=which, duration=duration, velocityClass = velocityClass, type = DragType}\\nend\\n\\nlocal S = Stroke\\n\\nlocal function Diddle(which, duration)\\n return {\\n S(which, duration, un), S(which, duration, un)\\n }\\nend\\n\\n-- returns L for R and R for L.\\nfunction Alt(which)\\n if which == L then\\n return R\\n elseif which == R then\\n return L\\n end\\n return nil\\nend\\n\\n-- alternates the \\"Hand\\" value (which).\\n-- \\"L\\" -> \\"R\\"\\n-- \\"R\\" -> \\"L\\"\\nfunction AlternateEvent(event)\\n local copy = deepcopy(event)\\n copy.which = Alt(event.which)\\n return copy\\nend\\n\\n-- Creates a alternating stroke sequence RL...n or LR...n.\\n-- @param startingEvent: the first event. All further created events are unaccented.\\n-- @param numberOfPerformances: the number of the total performances. One RL means one performance.\\nlocal function Alternate(startingEvent, numberOfPerformances)\\n if numberOfPerformances == nil then\\n numberOfPerformances = 1\\n end\\n local result = {startingEvent}\\n local which = startingEvent.which\\n for i = 0, (numberOfPerformances-1)*2, 1 do\\n which = Alt(which)\\n table.insert(result, S(which, startingEvent.duration, un))\\n end\\n return result\\nend\\n\\n-- Creates a sequence of variable args.\\n-- An argument can be either a array of events or a single event\\nlocal function Seq(...)\\n local args = table.pack(...)\\n local result = {}\\n for i=1,args.n do\\n local arg = args[i]\\n local isEvent = arg.which ~= nil\\n if isEvent then\\n table.insert(result, arg)\\n else\\n for key, event in pairs(arg) do\\n table.insert(result, event)\\n end\\n end\\n end\\n return result\\nend\\n\\nRudiments = {\\n [\\"singleStrokeRoll\\"] =\\n { S(R, _4), S(L, _4) },\\n [\\"doubleStrokeRoll\\"] =\\n { S(R, _4), S(R, _4), S(L, _4), S(L, _4) },\\n [\\"trippleStrokeRoll\\"] =\\n { S(R, _4), S(R, _4), S(R, _4), S(L, _4), S(L, _4), S(L, _4) },\\n [\\"fiveStrokeRoll\\"] =\\n { S(R, _32, un), S(R, _32, un), S(L, _32, un), S(L, _32, un), S(R, _8, ac) },\\n [\\"singleStrokeFour\\"] =\\n { S(R, _4t), S(L, _4t), S(R, _4t), S(L, _4) },\\n [\\"singleStrokeSeven\\"] =\\n { S(R, _8t), S(L, _8t), S(R, _8t), S(L, _8t), S(R, _8t), S(L, _8t), S(R, _4) },\\n [\\"multipleBounceRoll\\"] =\\n { S(R, _32, un), S(R, _32, un), S(R, _32, un), S(R, _32, un),\\n S(L, _32, un), S(L, _32, un), S(L, _32, un), S(L, _32, un)},\\n [\\"sixStrokeRoll\\"] =\\n Seq(S(R, _8, ac), Diddle(L, _16), Diddle(R, _16), S(L, _8, ac)),\\n [\\"sevenStrokeRoll\\"] =\\n Seq(Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), S(R, _8, ac)),\\n [\\"nineStrokeRoll\\"] =\\n Seq(Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), S(R, _8, ac)),\\n [\\"tenStrokeRoll\\"] =\\n Seq(Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), S(R, _8, ac), S(L, _8, ac)),\\n [\\"elevenStrokeRoll\\"] =\\n Seq(Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), S(L, _8, ac)),\\n [\\"thirteenStrokeRoll\\"] =\\n Seq(Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), S(R, _8, ac)),\\n [\\"fifteenStrokeRoll\\"] =\\n Seq(Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), S(L, _8, ac)),\\n [\\"seventeenStrokeRoll\\"] =\\n Seq(Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), S(R, _8, ac)),\\n [\\"paradiddle\\"] =\\n Seq(Alternate(S(R, _16, ac)), Diddle(R, _16)),\\n [\\"doubleParadiddle\\"] =\\n Seq(Alternate(S(R, _16, ac), 2), Diddle(R, _16)),\\n [\\"trippleParadiddle\\"] =\\n Seq(Alternate(S(R, _16, ac), 3), Diddle(R, _16)),\\n [\\"paradiddlediddle\\"] =\\n Seq(Alternate(S(R, _16, ac)), Diddle(R, _16), Diddle(L, _16)),\\n [\\"flam\\"] =\\n Seq(Flam(R, _4)),\\n [\\"flamAccent\\"] =\\n Seq(Flam(R, _8, ac), S(L, _8, un), S(R, _8, un)),\\n [\\"flamTap\\"] =\\n Seq(Flam(R, _16, ac), S(R, _16, un)),\\n [\\"flamacue\\"] =\\n Seq(Flam(R, _16, un), S(L, _16, ac), S(R, _16, un), S(L, _16, un), Flam(R, _4, un)),\\n [\\"flamParadiddle\\"] =\\n Seq(Flam(R, _16, ac), S(L, _16, un), Diddle(R, _16)),\\n [\\"singleFlammedMill\\"] =\\n Seq(Flam(R, _16, ac), S(R, _16, un), S(L, _16, un), S(R, _16, un)),\\n [\\"pataflafla\\"] =\\n Seq(Flam(R, _16, ac), S(L, _16, un), Diddle(R, _16), Flam(L, _16, ac)),\\n [\\"swissArmytriplet\\"] =\\n Seq(Flam(R, _16t, ac), S(R, _16t, un), S(L, _16t, un)),\\n [\\"invertedFlamTap\\"] =\\n Seq(Flam(R, _16, ac), S(L, _16, un)),\\n [\\"flamDrag\\"] =\\n Seq(Flam(R, _8, ac), S(L, _16, un), S(L, _16, un), S(R, _8, un)),\\n [\\"drag\\"] =\\n Seq(Drag(R, _4, ac)),\\n [\\"singleDragTap\\"] =\\n Seq(Drag(R, _8, un), S(L, _8, ac)),\\n [\\"doubleDragTap\\"] =\\n Seq(Drag(R, _8, un), Drag(R, _8, un), S(L, _8, ac)),\\n [\\"lesson25\\"] =\\n Seq(Drag(R, _16, un), S(L, _16, un), S(R, _8, ac)),\\n [\\"singleDragadiddle\\"] =\\n Seq(Drag(R, _16, ac), S(L, _16, un), Diddle(R, _16)),\\n [\\"dragParadiddle1\\"] =\\n Seq(S(R, _8, ac), Drag(R, _16, un), S(L, _16, un), Diddle(R, _16)),\\n [\\"dragParadiddle2\\"] =\\n Seq(S(R, _8, ac), Drag(R, _8, un), Drag(R, _16, un), S(L, _16, un), Diddle(R, _16)),\\n [\\"singleRatamacue\\"] =\\n Seq(Drag(R, _8t, un), S(L, _8t, un), S(R, _8t, un), S(L, _8, ac)),\\n [\\"doubleRatamacue\\"] =\\n Seq(Drag(R, _8, un), Drag(R, _8t, un), S(L, _8t, un), S(R, _8t, un), S(L, _8, ac)),\\n [\\"trippleRatamacue\\"] =\\n Seq(Drag(R, _8, un), Drag(R, _8, un), Drag(R, _8t, un), S(L, _8t, un), S(R, _8t, un), S(L, _8, ac)) \\n}\\n"}, {"path": "lua/mods/_events.lua", "data": "\\nNote = {}\\n\\nfunction Note:new()\\n local o = {}\\n setmetatable(o, self)\\n self.__index = self\\n o.duration = 0\\n o.isTied = false\\n o.offset = 0\\n o.pitches = {}\\n o.type = \\"note\\"\\n o.velocity = 0\\n return o \\nend\\n\\nfunction Note:addPitch(pitch, octave)\\n table.insert(self.pitches, {pitch=pitch, octave=octave})\\nend\\n\\nfunction pitchCompare(a, b)\\n a = a.pitch + (a.octave * 12)\\n b = b.pitch + (b.octave * 12)\\n return a < b\\nend\\n\\nfunction pitchCompareReversed(a, b)\\n a = a.pitch + (a.octave * 12)\\n b = b.pitch + (b.octave * 12)\\n return a > b\\nend\\n"}, {"path": "lua/mods/drumRudiments.lua", "data": "-- <command name=\\"drumRudiments\\" where=\\"mod\\" using=\\"lua/mod/drumRudiments.lua\\">\\n-- <![CDATA[\\n-- Implements a collection of different drum rudiments. ([see Wikipedia](https://en.wikipedia.org/wiki/Drum_rudiment))\\n-- You can specify which notes are for `L` and `R` and performing duration.\\n-- This will be achived by using an chord as source material.\\n-- The chord pitches will be used for `L` and `R`.\\n-- The length of the chord event defines over which time the rudiment will be peformed.\\n-- An event tag specifies which rudiment will be performed.\\n-- For example:\\n-- This plays one paradiddle over a length of 1 quarter\\n-- using `sn1` for R and `sn2` for L:\\n-- ```\\n-- /mod: drumRudiments/\\\\n\\n-- R L \\\\n\\n-- \\"paradiddle\\"@<\\"sn1\\" \\"sn2\\">4\\\\n\\n-- ```\\n-- Examples:\\n-- **a single paradiddle**\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/drumRudiments.lua\\";\\\\n\\n--tempo: 150;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=118;\\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /mod: drumRudiments/\\\\n\\n-- -- a paradiddle (RLRR) with c\' for R and c for L\\\\n\\n-- \\"paradiddle\\"@<c\' c>1\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- **repeating**\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/drumRudiments.lua\\";\\\\n\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=118;\\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /mod: drumRudiments/\\\\n\\n-- -- performs 4 paradiddles (RLRR LRLL RLRR LRLL) with c\' for R and c for L\\\\n\\n-- \\"4x paradiddle\\"@<c\' c>1\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- **orchestration**\\n-- If you want to orchestrate a rudiment over a drum set,\\n-- you are able to define more R & L notes. *(The total number of the notes has to be even.)*\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/drumRudiments.lua\\";\\\\n\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=118;\\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /mod: drumRudiments/\\\\n\\n-- -- performs 4 paradiddles (RLRR LRLL RLRR LRLL) with \\\\n\\n-- -- c\' for R1 and c for L1\\\\n\\n-- -- and c, for R2 and c,, for L2.\\\\n\\n-- -- The final sequence will be: c\'(R1) c(L1) c,(R2) c,,(R1) ... \\\\n\\n-- \\"4x paradiddle\\"@<c\' c c, c,,>1\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- **Supported Rudiments**\\n--<ul style=\\"font-size: 0.9em;\\">\\n--<li>singleStrokeRoll</li>\\n--<li>doubleStrokeRoll</li>\\n--<li>trippleStrokeRoll</li>\\n--<li>fiveStrokeRoll</li>\\n--<li>singleStrokeFour</li>\\n--<li>singleStrokeSeven</li>\\n--<li>multipleBounceRoll</li>\\n--<li>sixStrokeRoll</li>\\n--<li>sevenStrokeRoll</li>\\n--<li>nineStrokeRoll</li>\\n--<li>tenStrokeRoll</li>\\n--<li>elevenStrokeRoll</li>\\n--<li>thirteenStrokeRoll</li>\\n--<li>fifteenStrokeRoll</li>\\n--<li>seventeenStrokeRoll</li>\\n--<li>paradiddle</li>\\n--<li>doubleParadiddle</li>\\n--<li>trippleParadiddle</li>\\n--<li>paradiddlediddle</li>\\n--<li>flam</li>\\n--<li>flamAccent</li>\\n--<li>flamTap</li>\\n--<li>flamacue</li>\\n--<li>flamParadiddle</li>\\n--<li>singleFlammedMill</li>\\n--<li>pataflafla</li>\\n--<li>swissArmytriplet</li>\\n--<li>invertedFlamTap</li>\\n--<li>flamDrag</li>\\n--<li>singleDragTap</li>\\n--<li>doubleDragTap</li>\\n--<li>lesson25</li>\\n--<li>singleDragadiddle</li>\\n--<li>dragParadiddle1</li>\\n--<li>dragParadiddle2</li>\\n--<li>singleRatamacue</li>\\n--<li>doubleRatamacue</li>\\n--<li>trippleRatamacue</li>\\n--</ul>\\n-- ]]>\\n-- </command>\\n-- <param name=\\"velocityFactorAccented\\" optional=\\"1\\" type=\\"0..1\\">The velocity factor for accented notes (Default=1)</param>\\n-- <param name=\\"velocityFactorUnaccented\\" optional=\\"1\\" type=\\"0..1\\">The velocity factor for unaccented notes (Default=0.7)</param>\\n-- <param name=\\"velocityFactorGraceNote\\" optional=\\"1\\" type=\\"0..1\\">The velocity factor for accented notes (Default=1)</param>\\n-- <param name=\\"flamOffset\\" optional=\\"1\\" type=\\"0..N\\">The offset in quartes when to perform the grace note before the actual note (Default=0.05)</param>\\n-- <param name=\\"dragOffset\\" optional=\\"1\\" type=\\"0..N\\">The offset in quartes when to perform the two grace notes before the actual note (Default=0.05)</param>\\n\\n\\n\\nrequire \\"lua/com/com\\"\\nrequire \\"_drumRudimentsRepository\\"\\nrequire \\"_events\\"\\n\\nparameters = {\\n { name=\\"velocityFactorAccented\\", default=\\"1\\" },\\n { name=\\"velocityFactorUnaccented\\", default=\\"0.7\\" },\\n { name=\\"velocityFactorGraceNote\\", default=\\"0.2\\" },\\n { name=\\"flamOffset\\", default=\\"0.05\\" },\\n { name=\\"dragOffset\\", default=\\"0.05\\" },\\n}\\n\\n\\nSupportedRepeatTags = {\\n [\\"2x\\"] = 2,\\n [\\"3x\\"] = 3,\\n [\\"4x\\"] = 4,\\n [\\"5x\\"] = 5,\\n [\\"6x\\"] = 6,\\n [\\"7x\\"] = 7,\\n [\\"8x\\"] = 8,\\n [\\"9x\\"] = 9,\\n [\\"10x\\"] = 10,\\n [\\"11x\\"] = 11,\\n [\\"12x\\"] = 12,\\n [\\"13x\\"] = 13,\\n [\\"14x\\"] = 14,\\n [\\"15x\\"] = 15,\\n [\\"16x\\"] = 16,\\n [\\"17x\\"] = 17,\\n [\\"18x\\"] = 18,\\n [\\"19x\\"] = 19,\\n [\\"20x\\"] = 20,\\n [\\"21x\\"] = 21,\\n [\\"22x\\"] = 22,\\n [\\"23x\\"] = 23,\\n [\\"24x\\"] = 24,\\n [\\"25x\\"] = 25,\\n [\\"26x\\"] = 26,\\n [\\"27x\\"] = 27,\\n [\\"28x\\"] = 28,\\n [\\"29x\\"] = 29,\\n [\\"30x\\"] = 30,\\n [\\"31x\\"] = 31,\\n [\\"32x\\"] = 32,\\n}\\n\\nlocal tiedEventCache = {\\n [\\"offset\\"] = 0,\\n [\\"duration\\"] = 0,\\n [\\"originEvent\\"] = nil\\n}\\n\\nlocal function newTiedEventCache(event)\\n tiedEventCache.duration = event.duration\\n tiedEventCache.originEvent = event\\nend\\n\\nlocal function isTiedEventCacheEmpty()\\n return tiedEventCache.originEvent == nil\\nend\\n\\nlocal function clearTiedEventCache()\\n tiedEventCache.originEvent = nil\\n tiedEventCache.duration = 0\\n tiedEventCache.offset = 0\\nend\\n\\nlocal function getPossibleRudimentEvent(events)\\n local firstEvent = events[1]\\n if not isTiedEventCacheEmpty() then\\n tiedEventCache.duration = tiedEventCache.duration + firstEvent.duration\\n tiedEventCache.offset = tiedEventCache.offset - firstEvent.duration\\n if firstEvent.isTied then\\n return nil\\n end\\n end\\n if not isTiedEventCacheEmpty() and not firstEvent.isTied then\\n firstEvent = tiedEventCache.originEvent\\n firstEvent.isTied = false\\n firstEvent.offset = tiedEventCache.offset\\n firstEvent.duration = tiedEventCache.duration\\n clearTiedEventCache()\\n end\\n return firstEvent\\nend\\n\\n\\nfunction perform(events, params, timeinfo)\\n local firstEvent = getPossibleRudimentEvent(events)\\n if (firstEvent == nil) then\\n return {}\\n end\\n if #events == 0 or #firstEvent.tags == 0 then\\n return events\\n end\\n if firstEvent.duration == 0 then\\n return events\\n end\\n local rudimentPerformer = RudimentPerformer:new()\\n rudimentPerformer.velocityFactorAccented = tonumber(params.velocityFactorAccented)\\n rudimentPerformer.velocityFactorUnaccented = tonumber(params.velocityFactorUnaccented)\\n rudimentPerformer.velocityFactorGraceNote = tonumber(params.velocityFactorGraceNote)\\n rudimentPerformer.flamOffset = tonumber(params.flamOffset)\\n rudimentPerformer.dragOffset = tonumber(params.dragOffset)\\n rudimentPerformer:setSourceEvent(firstEvent)\\n if rudimentPerformer.rudiment == nil then\\n return events\\n end\\n if firstEvent.isTied then\\n newTiedEventCache(firstEvent)\\n return {}\\n end\\n local rudimentEvents = rudimentPerformer:perform();\\n return rudimentEvents\\nend\\n\\nRudimentPerformer = {}\\nfunction RudimentPerformer:new(o)\\n local o = o or {}\\n setmetatable(o, self)\\n self.__index = self\\n self.idxL = 1\\n self.idxR = 1\\n self.offset = 0\\n self.velocityFactorAccented = 1\\n self.velocityFactorUnaccented = 0.7\\n self.velocityFactorGraceNote = 0.2\\n self.flamOffset = 0.05\\n self.dragOffset = 0.05\\n return o\\nend\\n\\nfunction RudimentPerformer:findRudimentName(tags)\\n for idx, tag in pairs(tags) do\\n local val = Rudiments[tag]\\n if val ~= nil then\\n return tag\\n end\\n end\\n return nil\\nend\\n\\nfunction RudimentPerformer:findRepeatTagValue(tags)\\n for idx, tag in pairs(tags) do\\n local val = SupportedRepeatTags[tag]\\n if val ~= nil then\\n return val\\n end\\n end\\n return nil\\nend\\n\\nfunction RudimentPerformer:setSourceEvent(event)\\n local rudimentName = self:findRudimentName(event.tags)\\n local source = event.pitches\\n self.offset = event.offset\\n self.rudiment = Rudiments[rudimentName]\\n if self.rudiment == nil then\\n return\\n end\\n if #source % 2 ~= 0 then\\n -- not enough events\\n error(\\"not enough chord pitches for rudiment \\" .. rudimentName)\\n end\\n local repeatCount = self:findRepeatTagValue(event.tags)\\n if repeatCount ~= nil then\\n self:repeat_(repeatCount)\\n end\\n self.duration = event.duration\\n self.ls = {}\\n self.rs = {}\\n self.velocity = event.velocity\\n for idx, pitch in pairs(source) do\\n if idx % 2 == 0 then\\n table.insert(self.ls, pitch)\\n else\\n table.insert(self.rs, pitch)\\n end\\n end\\nend\\n\\nfunction RudimentPerformer:repeat_(count)\\n local sequence = {}\\n for i=1,count do\\n local useAlternation = i % 2 == 1\\n for idx, rudimentEvent in pairs(self.rudiment) do\\n local event = rudimentEvent\\n if (useAlternation) then\\n event = AlternateEvent(event)\\n end\\n table.insert(sequence, event)\\n end\\n end\\n self.rudiment = sequence\\nend\\n\\nfunction RudimentPerformer:l()\\n local l = self.ls[self.idxL]\\n self.idxL = self.idxL + 1\\n if self.idxL > #self.ls then\\n self.idxL = 1\\n end\\n return l\\nend\\n\\nfunction RudimentPerformer:r()\\n local r = self.rs[self.idxR]\\n self.idxR = self.idxR + 1\\n if self.idxR > #self.ls then\\n self.idxR = 1\\n end\\n return r\\nend\\n\\nfunction RudimentPerformer:nextPitch(lOrR)\\n if lOrR == nil then\\n error(\\"invalid L R value for rudiment: nil\\")\\n end\\n if lOrR == L then\\n return self:l()\\n elseif lOrR == R then\\n return self:r()\\n end\\n error(\\"invalid L R value for rudiment: \\" .. lOrR)\\nend\\n\\n-- duration of the rudiment definition\\nfunction RudimentPerformer:defDuration()\\n local duration = 0\\n for idx, rudiment in pairs(self.rudiment) do\\n duration = duration + rudiment.duration\\n end\\n return duration\\nend\\n\\nfunction RudimentPerformer:getVelocityFactor(rudiment)\\n if rudiment.velocityClass == Accent then\\n return self.velocityFactorAccented\\n end\\n if rudiment.velocityClass == Unaccented then\\n return self.velocityFactorUnaccented\\n end\\n if rudiment.velocityClass == GraceNote then\\n return self.velocityFactorGraceNote\\n end\\n error(\\"no velocity value for class \\" .. rudiment.velocityClass)\\nend\\n\\nfunction RudimentPerformer:perform()\\n local events = {}\\n local offset = self.offset\\n local durationFactor = self.duration / self:defDuration()\\n for idx, rudiment in pairs(self.rudiment) do\\n local type = rudiment.type\\n local which = rudiment.which\\n local duration = rudiment.duration\\n local velocityFactor = self:getVelocityFactor(rudiment)\\n local note = Note:new()\\n note.duration = duration * durationFactor\\n note.velocity = self.velocity * velocityFactor\\n note.offset = offset\\n local pitch = self:nextPitch(which)\\n note:addPitch(pitch.pitch, pitch.octave)\\n if type == FlamType then\\n self:performFlam(events, note, Alt(which))\\n end\\n if type == DragType then\\n self:performDrag(events, note, Alt(which))\\n end \\n table.insert(events, note)\\n offset = offset + note.duration\\n end\\n return events\\nend\\n\\n\\nfunction RudimentPerformer:performFlam(events, note, which)\\n local flamDuration = self.flamOffset\\n local flam = Note:new()\\n local pitch = self:nextPitch(which)\\n flam:addPitch(pitch.pitch, pitch.octave)\\n flam.duration = flamDuration\\n flam.velocity = note.velocity * self.velocityFactorGraceNote\\n flam.offset = note.offset\\n note.offset = note.offset + flamDuration\\n note.duration = note.duration\\n table.insert(events, flam)\\nend\\n\\nfunction RudimentPerformer:performDrag(events, note, which)\\n local flamDuration = self.dragOffset\\n local pitch = self:nextPitch(which)\\n local flam = Note:new()\\n flam:addPitch(pitch.pitch, pitch.octave)\\n flam.duration = flamDuration\\n flam.velocity = note.velocity * self.velocityFactorGraceNote\\n flam.offset = note.offset\\n table.insert(events, flam)\\n\\n flam = Note:new()\\n flam:addPitch(pitch.pitch, pitch.octave)\\n flam.duration = flamDuration\\n flam.velocity = note.velocity * self.velocityFactorGraceNote\\n flam.offset = note.offset + flamDuration\\n table.insert(events, flam)\\n\\n note.offset = note.offset + flamDuration * 2\\n note.duration = note.duration\\n\\nend\\n"}, {"path": "lua/mods/guitarStroke.lua", "data": "-- <command name=\\"guitarStroke\\" where=\\"mod\\" using=\\"lua/mod/guitarStroke.lua\\">\\n-- <![CDATA[\\n-- Simulates guitar strokes as mini arpeggios.\\n-- *Note: the alternate mode works only if this mod is set via instrumentConf.*\\n-- ```\\n-- -- does not work: \\\\n\\n-- [ \\\\n\\n-- { \\\\n\\n-- /mod: guitarStroke _mode=alternate/\\\\n\\n-- } \\\\n\\n-- ] \\\\n\\n-- ```\\n-- ```\\n-- -- does work: \\\\n\\n-- instrumentConf: myInstrument mod guitarStroke _mode=alternate; \\\\n\\n-- ```\\n-- **Example**\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/guitarStroke.lua\\";\\\\n\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef: piano MyDevice _ch=0 _pc=24;\\\\n\\n--instrumentConf: piano mod guitarStroke _mode=alternate _value=16; \\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- <c e g b>4 <c e g b>4 <c eb g bb>2 | <c eb g bb>2 <c eb g bb>2\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- ]]>\\n-- </command>\\n-- <param name=\\"direction\\" optional=\\"1\\" type=\\"[up,down]\\">Specifies the start direction of the stroke</param>\\n-- <param name=\\"value\\" optional=\\"1\\" type=\\"[1,2,4,8,...]\\">the duration of one aprgeggio event. (Default=64)</param>\\n-- <param name=\\"mode\\" optional=\\"1\\" type=\\"[normal,alternate]\\">Perform only one stroke direction (normal) or alternates between up and down. (Default=normal)</param>\\n\\nrequire \\"lua/com/com\\"\\nrequire \\"_events\\"\\n\\n\\nparameters = {\\n -- can be up, down\\n { name=\\"direction\\", default=\\"up\\" },\\n -- can be 1, 2, 4, 8, 16, 32, 64, ...\\n { name=\\"value\\", default=\\"64\\" },\\n -- can be normal, alternate\\n { name=\\"mode\\", default=\\"normal\\" }\\n\\n}\\n\\nlocal direction = nil\\nlocal mode = nil\\n\\nfunction perform(eventsOrigin, params, timeinfo)\\n if #eventsOrigin > 2 then\\n return eventsOrigin\\n end\\n checkLegacyNamedParams(params, \\"direction\\", \\"mode\\", \\"value\\")\\n local directionParam = params.direction\\n local modeParam = params.mode\\n local value = params.value\\n value = tonumber(value)\\n local event = eventsOrigin[1]\\n local events = { }\\n local comparer = pitchCompare\\n \\n if mode == nil then\\n mode = modeParam\\n end\\n\\n if direction ==nil then\\n direction = directionParam\\n end\\n\\n if direction == \\"down\\" then\\n comparer = pitchCompareReversed\\n if mode == \\"alternate\\" then\\n direction = \\"up\\"\\n end\\n else\\n comparer = pitchCompare\\n if mode == \\"alternate\\" then\\n direction = \\"down\\"\\n end\\n end\\n\\n local duration = 1 / value\\n table.sort( event.pitches, comparer)\\n for i, pitch in pairs(event.pitches) do\\n local note = Note:new()\\n local newOffset = event.offset + (i-1) * duration\\n note.offset = newOffset\\n note.duration = event.duration - newOffset\\n note.isTied = event.isTied\\n note.velocity = event.velocity\\n note:addPitch(pitch.pitch, pitch.octave)\\n table.insert(events, note) \\n end\\n return events\\nend"}, {"path": "lua/mods/legato.lua", "data": "-- <command name=\\"legato\\" where=\\"mod\\" using=\\"lua/mod/legato.lua\\">\\n-- Performs every note legato. It is also possible to tag single notes.\\n-- If a tag is given, only the tagged notes are performed legato.\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/legato.lua\\";\\\\n\\n--tempo: 140;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=0;\\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /mod: legato _forTag=leg _amount=100/\\\\n\\n-- -- only the `d` will be performed legato. \\\\n\\n-- c \\"leg\\"@d e f\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- </command>\\n-- <param name=\\"forTag\\" optional=\\"1\\" type=\\"text\\">Specifies a tag name. If set only events with this tag name will be affected by the legato mod.</param>\\n-- <param name=\\"amount\\" optional=\\"1\\" type=\\"0..100\\">The ammount of the legato effect</param>\\n\\nrequire \\"lua/com/com\\"\\n\\nlocal defaultAmountValue = 50\\n\\nparameters = {\\n -- specify a tag name. If set only events with this tag name will be affected by the staccato mod. \\n { name=\\"forTag\\", default=ParameterValueNoTag },\\n -- the ammount of the staccato mod. Can be between 0 and 100\\n { name=\\"amount\\", default=\\"50\\" }\\n}\\n\\nfunction perform(events, params, timeinfo) \\n checkLegacyNamedParams(params, \\"forTag\\", \\"amount\\")\\n local tag = params.forTag\\n if tag == ParameterValueNoTag then\\n tag = nil\\n end\\n local amount = tonumber(params.amount)\\n local factor = 100 - ((amount/100) * 90)\\n factor = factor / 100\\n for i, event in pairs(events) do\\n if tag == nil or contains(event.tags, tag) then\\n event.duration = event.duration / factor\\n end\\n end\\n return events\\nend"}, {"path": "lua/mods/myArpeggio.lua", "data": "-- <command name=\\"myArpeggio\\" where=\\"mod\\" using=\\"lua/mod/myArpeggio.lua\\">\\n-- <![CDATA[\\n-- A simple arpeggio implementation.\\n-- **Example**\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/myArpeggio.lua\\";\\\\n\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef: piano MyDevice _ch=0 _pc=0;\\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /do: myArpeggio/ \\\\n\\n-- <c e g b>2 \\\\n\\n-- /do: myArpeggio _direction=down/ \\\\n\\n-- <c eb g bb>2 \\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- ]]>\\n-- </command>\\n-- <param name=\\"style\\" optional=\\"1\\" type=\\"[normal,legato]\\">Performs the arpeggio normal or legato</param>\\n-- <param name=\\"direction\\" optional=\\"1\\" type=\\"[up,down]\\">the direction of the aprgeggio. (Default=up)</param>\\n\\nrequire \\"lua/com/com\\"\\nrequire \\"_events\\"\\n\\n\\nparameters = {\\n -- can be legato, normal\\n { name=\\"style\\", default=\\"normal\\" },\\n -- can be up, down\\n { name=\\"direction\\", default=\\"up\\" }\\n}\\n\\nfunction perform(eventsOrigin, params, timeinfo)\\n checkLegacyNamedParams(params, \\"direction\\", \\"style\\")\\n local event = eventsOrigin[1]\\n local events = { }\\n local comparer = pitchCompare\\n local direction = params.direction\\n local style = params.style\\n\\n if direction == \\"down\\" then\\n comparer = pitchCompareReversed\\n end\\n local duration = event.duration / #event.pitches\\n table.sort( event.pitches, comparer)\\n for i, pitch in pairs(event.pitches) do\\n local note = Note:new()\\n note.duration = duration\\n if style == \\"legato\\" then\\n note.duration = event.duration\\n end\\n note.velocity = event.velocity\\n note.offset = (i-1) * duration\\n note.isTied = event.isTied\\n note:addPitch(pitch.pitch, pitch.octave)\\n table.insert(events, note) \\n end\\n return events\\nend"}, {"path": "lua/mods/staccato.lua", "data": "-- <command name=\\"staccato\\" where=\\"mod\\" using=\\"lua/mod/staccato.lua\\">\\n-- Performs every note staccato. It is also possible to tag single notes.\\n-- If a tag is given, only the tagged notes are performed staccato.\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/staccato.lua\\";\\\\n\\n--tempo: 140;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=0;\\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /mod: staccato _forTag=stac _amount=100/\\\\n\\n-- -- only the `d` will be performed staccato. \\\\n\\n-- c \\"stac\\"@d e f\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ``` \\n-- </command>\\n-- <param name=\\"forTag\\" optional=\\"1\\" type=\\"text\\">Specifies a tag name. If set only events with this tag name will be affected by the staccato mod.</param>\\n-- <param name=\\"amount\\" optional=\\"1\\" type=\\"0..100\\">The ammount of the staccato effect</param>\\n\\nrequire \\"lua/com/com\\"\\n\\n\\nparameters = {\\n -- specify a tag name. If set only events with this tag name will be affected by the staccato mod. \\n { name=\\"forTag\\", default=ParameterValueNoTag },\\n -- the ammount of the staccato mod. Can be between 0 and 100\\n { name=\\"amount\\", default=\\"50\\" }\\n}\\n\\nfunction perform(events, params, timeinfo)\\n checkLegacyNamedParams(params, \\"forTag\\", \\"amount\\")\\n local tag = params.forTag\\n if tag == ParameterValueNoTag then\\n tag = nil\\n end\\n local amount = tonumber(params.amount)\\n local factor = 100 - ((amount/100) * 90)\\n factor = factor / 100\\n for i, event in pairs(events) do\\n if tag == nil or contains(event.tags, tag) then\\n event.duration = event.duration * factor\\n end\\n end\\n return events\\nend"}, {"path": "lua/mods/swing.lua", "data": "-- <command name=\\"swing\\" where=\\"mod\\" using=\\"lua/mod/swing.lua\\">\\n-- Performs a swing groove.\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/swing.lua\\";\\\\n\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef: piano MyDevice _ch=0 _pc=0;\\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /mod: swing/\\\\n\\n-- c8 c c c c c c c\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- </command>\\n-- <param name=\\"grid\\" optional=\\"1\\" type=\\"[8, 16]\\">Performs the swing offset either on 8th or 16th. (Default=8)</param>\\n-- <param name=\\"offset\\" optional=\\"1\\" type=\\"0..100\\">The ammount of the swing offset</param>\\n\\nrequire \\"lua/com/com\\"\\n\\nparameters = {\\n -- can be 8, 16\\n { name=\\"grid\\", default=\\"8\\" },\\n -- can be between 0 and 100\\n { name=\\"offset\\", default=\\"100\\" }\\n}\\n\\n\\nfunction compareQuarters(a, b)\\n return math.abs(a-b) <= 0.1\\nend\\n\\nfunction isLaidBack(timeinfo, grid)\\n local q = timeinfo.quarterPosition\\n q = q - math.floor(q)\\n if grid == 16 then\\n return compareQuarters(q, 0.25) or compareQuarters(q, 0.75)\\n end\\n return compareQuarters(q, 0.5)\\nend\\n\\nfunction offset(grid, offset)\\n if offset == nil then\\n offset = 100\\n end\\n offset = offset / 100\\n local max = 0.25\\n if grid == 16 then\\n max = 0.09\\n end\\n return offset * max\\nend\\n\\nfunction perform(events, params, timeinfo)\\n checkLegacyNamedParams(params, \\"grid\\", \\"offset\\")\\n local gridValue = tonumber(params.grid)\\n local offsetValue = tonumber(params.offset)\\n for i, event in pairs(events) do\\n if isLaidBack(timeinfo, gridValue) then\\n event.offset = offset(gridValue, offsetValue)\\n event.velocity = event.velocity\\n end\\n end\\n return events\\nend"}, {"path": "lua/voicings/config.lua", "data": "PitchRanges = {\\n contrabass = { min=28, max=55 },\\n bass = { min=40, max=60 },\\n baritone = { min=45, max=69 },\\n tenor = { min=48, max=72 },\\n alto = { min=53, max=77 },\\n mezzosoprano = { min=57, max=81 },\\n soprano = { min=60, max=84 }\\n}"}, {"path": "lua/voicings/guitar.lua", "data": "-- <command name=\\"guitar\\" where=\\"voicingStrategy\\" using=\\"lua/voicings/guitar.lua\\">\\n-- <![CDATA[\\n-- Tries to simulate the chord voicing of an guitar.\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/voicings/guitar.lua\\";\\\\n\\n--using \\"chords/default.chords\\";\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=0;\\\\n\\n--[\\\\n\\n--type: template;\\\\n\\n--name: myTemplate;\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /voicingStrategy: guitar/\\\\n\\n-- <I II III IV V VI VII>1\\\\n\\n--}\\\\n\\n--]\\\\n\\n--[\\\\n\\n--type: accomp;\\n--{\\\\n\\n-- C | F | G | C |\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- ]]>\\n-- </command>\\n-- <param name=\\"range\\" optional=\\"1\\" type=\\"[contrabass,bass,baritone,tenor,alto,mezzosoprano,soprano]\\">If given the strategy tries to keeps the range by shifting the octave of the chord.</param>\\n\\nrequire \\"lua/com/com\\"\\nrequire \\"lua/com/globals\\"\\nrequire \\"solvers/guitar\\"\\n\\nparameters = {\\n table.unpack(ASolverDefaultParameter)\\n}\\n\\nlocal solver = GuitarSolver:new()\\n\\nfunction solve(chord, degrees, params, timeinfo)\\n return solver:solve(chord, degrees, params)\\nend"}, {"path": "lua/voicings/simple.lua", "data": "-- <command name=\\"simple\\" where=\\"voicingStrategy\\" using=\\"lua/voicings/simple.lua\\">\\n-- <![CDATA[\\n-- The simple approach with no strategy.\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/voicings/simple.lua\\";\\\\n\\n--using \\"chords/default.chords\\";\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=0;\\\\n\\n--[\\\\n\\n--type: template;\\\\n\\n--name: myTemplate;\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /voicingStrategy: simple/\\\\n\\n-- <I II III IV V VI VII>1\\\\n\\n--}\\\\n\\n--]\\\\n\\n--[\\\\n\\n--type: accomp;\\n--{\\\\n\\n-- C | F | G | C |\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- ]]>\\n-- </command>\\n-- <param name=\\"range\\" optional=\\"1\\" type=\\"[contrabass,bass,baritone,tenor,alto,mezzosoprano,soprano]\\">If given the strategy tries to keeps the range by shifting the octave of the chord.</param>\\n\\nrequire \\"lua/com/com\\"\\nrequire \\"solvers/simple\\"\\nrequire \\"solvers/asolver\\"\\n\\nparameters = {\\n table.unpack(ASolverDefaultParameter)\\n}\\n\\nlocal solver = Simple:new()\\n\\nfunction solve(chord, degrees, parameters)\\n return solver:solve(chord, degrees, parameters)\\nend"}, {"path": "lua/voicings/voicelead.lua", "data": "-- <command name=\\"voicelead\\" where=\\"voicingStrategy\\" using=\\"lua/voicings/voicelead.lua\\">\\n-- <![CDATA[\\n-- Tries to simulates a voice leading approach:\\n-- the octaves of a chord are rearranged, so that the actual pitch distance between the previous chord is kept minimal.\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/voicings/voicelead.lua\\";\\\\n\\n--using \\"chords/default.chords\\";\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=0;\\\\n\\n--[\\\\n\\n--type: template;\\\\n\\n--name: myTemplate;\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /voicingStrategy: voicelead/\\\\n\\n-- <I II III IV V VI VII>1\\\\n\\n--}\\\\n\\n--]\\\\n\\n--[\\\\n\\n--type: accomp;\\n--{\\\\n\\n-- C | F | G | C |\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- ]]>\\n-- </command>\\n-- <param name=\\"range\\" optional=\\"1\\" type=\\"[contrabass,bass,baritone,tenor,alto,mezzosoprano,soprano]\\">If given the strategy tries to keeps the range by shifting the octave of the chord.</param>\\n\\nrequire \\"lua/com/com\\"\\nrequire \\"lua/com/globals\\"\\nrequire \\"solvers/voicelead\\"\\n\\nparameters = {\\n table.unpack(ASolverDefaultParameter)\\n}\\n\\nlocal solver = VoiceLeadSolver:new()\\n\\nfunction solve(chord, degrees, params)\\n return solver:solve(chord, degrees, params)\\nend"}, {"path": "lua/voicings/solvers/asolver.lua", "data": "require \\"config\\"\\nrequire \\"lua/com/com\\"\\n\\nNoRangeSet = \\"__noRangeSet\\"\\nNoImportantDegreesSet = \\"_noImportantDegreesSet\\"\\n\\nASolverDefaultParameter = {\\n -- can be contrabass, bass, baritone, tenor, alto, mezzosoprano, soprano\\n { name=\\"range\\", default=NoRangeSet },\\n { name=\\"importantDegrees\\", default=NoImportantDegreesSet },\\n { name=\\"importantDegree\\", default=NoImportantDegreesSet },\\n}\\nASolver = {}\\n\\nfunction ASolver:new(o)\\n local o = o or {}\\n setmetatable(o, self)\\n self.__index = self\\n return o\\nend\\n\\nfunction ASolver:checkForLegacyParameters(params)\\n checkLegacyNamedParams(params, \\"range\\", \\"importantDegrees\\", \\"importantDegree\\")\\nend\\n\\n-- returns the a degree def from the given degree def collection\\n-- if more than one degree def defined, it will return the first one\\nfunction ASolver:getDefaultDegreeDef(degreeValue, degrees)\\n local default = degrees[degreeValue]\\n if default == nil \\n then\\n return nil\\n end\\n return default[1]\\nend\\n\\n-- creates a absolute pitch using the given chord\\nfunction ASolver:createPitch(chord, degreeDef, octave)\\n if degreeDef == nil or degreeDef.degreeValue == nil\\n then\\n return nil\\n end\\n return { [\\"pitch\\"]= self:degreeToPitch(degreeDef, chord), [\\"octave\\"]=octave }\\nend\\n\\nfunction ASolver:degreeToPitch(degreeDef, chord)\\n return chord.rootPitch + degreeDef.degreeValue\\nend\\n\\nfunction ASolver:getAbsolutePitch(pitch)\\n return pitch.pitch + (pitch.octave * 12)\\nend\\n\\nfunction ASolver:_addImportantDegree(degrees, degreeVal, semitone)\\n local degreeInfo = self:getDefaultDegreeDef(degreeVal, degrees)\\n if degreeInfo==nil then\\n return\\n end\\n local degrObj = {\\n degreeValue= semitone,\\n octave= degreeInfo.octave\\n }\\n degrees[degreeVal] = {degrObj}\\nend\\n\\n-- set important degrees if defined in params\\n-- more informations about important degrees:\\n-- https://github.com/werckme/werckmeister/issues/123\\nfunction ASolver:_setImportantDegreesIfExists(params, degrees)\\n local strDegree = params.importantDegree\\n if (strDegree == nil or strDegree == NoImportantDegreesSet) then\\n strDegree = params.importantDegrees\\n if strDegree == nil or strDegree == NoImportantDegreesSet then\\n return\\n end\\n end\\n local strDegrees = split(strDegree, \\" \\")\\n for i, degree in pairs(strDegrees) do \\n local degreeVal = DegreeStringValues[degree]\\n if degreeVal ~= nil then\\n local semitone = MajorScaleSemitones[degree]\\n self:_addImportantDegree(degrees, degreeVal, semitone)\\n end\\n end\\nend\\n\\n-- solves degrees into absolute pitches\\n-- @param chord: the current cord informations\\n-- @param degrees: the current degree event including the semitone informations from \\n-- the chord definition eg.: { II= {degreeValue, octave} }\\n-- If the current chord has no information about a degree\\n-- the value is empty eg.: II= {} \\nfunction ASolver:solve(chord, degrees, params)\\n self:checkForLegacyParameters(params)\\n self:_setImportantDegreesIfExists(params, degrees)\\n local result = self:_solveImpl(chord, degrees, params)\\n if params.range ~= nil and params.range ~=NoRangeSet then\\n self:_keepRange(result, params.range)\\n end\\n return result\\nend\\n\\nfunction ASolver:_solveImpl(chord, degrees, args)\\n error(\\"this is an abstract function\\")\\nend\\n\\nfunction ASolver:_transpose(pitches, numOctaves)\\n for i, pitch in pairs(pitches) do\\n pitch.octave = pitch.octave + numOctaves\\n end\\nend\\n\\nfunction ASolver:_keepRange(pitches, strRange)\\n local destinationRange = PitchRanges[strRange]\\n if destinationRange == nil then\\n error(\\"strRange \\" .. strRange .. \\" not defined\\")\\n end\\n local nbUnder = 0\\n local nbOver = 0\\n local mindiff = math.maxinteger\\n local maxdiff = math.mininteger\\n for i, pitch in pairs(pitches) do\\n local midipitch = toMidiPitch(pitch)\\n if midipitch > destinationRange.max then\\n local diff = midipitch - destinationRange.max\\n if diff > maxdiff then\\n maxdiff = diff\\n end\\n nbOver = nbOver + 1\\n end\\n if midipitch < destinationRange.min then\\n local diff = destinationRange.min - midipitch\\n if diff < mindiff then\\n mindiff = diff\\n end\\n nbUnder = nbUnder + 1\\n end\\n end\\n if nbUnder > nbOver then\\n local octaves = math.ceil(mindiff/12)\\n self:_transpose(pitches, octaves)\\n end\\n if nbUnder < nbOver then\\n local octaves = -math.ceil(maxdiff/12)\\n self:_transpose(pitches, octaves)\\n end\\nend"}, {"path": "lua/voicings/solvers/config.lua", "data": "PitchRanges = {\\n contrabass = { min=28, max=55 },\\n bass = { min=40, max=60 },\\n baritone = { min=45, max=69 },\\n tenor = { min=48, max=72 },\\n alto = { min=53, max=77 },\\n mezzosoprano = { min=57, max=81 },\\n soprano = { min=60, max=84 }\\n}"}, {"path": "lua/voicings/solvers/guitar.lua", "data": "require \\"lua/voicings/solvers/asolver\\"\\nrequire \\"lua/com/globals\\"\\n\\n-- https://www.8notes.com \\n-- https://www.oolimo.de/gitarrenakkorde/find\\n-- https://www.scales-chords.com/chord/piano/\\nVoicingMatrix = {\\n [\\"1234567/bass\\"] = nil,\\n [\\"1010100\\"] = {I, V, I, III, I}, -- base\\n [\\"1100100\\"] = {I, V, I, II }, -- sus2\\n [\\"1001100\\"] = {I, V, I, IV, V }, -- sus4\\n [\\"1001101\\"] = {I, V, VII, IV, V}, -- 7sus4\\n [\\"1101101\\"] = {I, IV, VII, II, V}, -- 9sus4\\n [\\"1010110\\"] = {I, VI, III, V}, -- 6\\n [\\"1110110\\"] = {I, VI, III, V, II}, -- 6/9\\n [\\"1010101\\"] = {I, V, VII, III, I}, -- 7\\n [\\"1110101\\"] = {I, III, VII, II}, -- 9\\n [\\"1110100\\"] = {I, V, II, III}, -- add9\\n [\\"1011101\\"] = {I, IV, VII, III}, -- 11\\n [\\"1011001\\"] = {I, VII, III, IV}, -- 7#11\\n [\\"1010111\\"] = {I, V, VII, III, VI}, -- 13\\n [\\"1010101/7\\"] = {VII, V, I, III}, -- /7\\n [\\"1010100/5\\"] = {V, I, III, V}, -- /5\\n [\\"1011100/4\\"] = {IV, V, I, III}, -- /4\\n [\\"1010100/3\\"] = {III, V, I, III}, -- /3\\n [\\"1110100/2\\"] = {II, V, I, III}, -- /2\\n}\\n\\n\\n-- returns the degrees defined for a chord as a bit string.\\n-- e.g.: Xmaj\'s degrees are defined as I III V\\n-- 1234567\\n-- as bitstring = 1010100\\n-- if chord is a slash chord, the degree value will be appended as number.\\n-- e.g.: X/V = 1010100/5\\nfunction chordToHashString(chord)\\n bits = {}\\n slashAppendings = {}\\n local degree = chord.degrees\\n for i=1, 7 do\\n if degree[i] == nil then\\n bits[i] = 0\\n else\\n bits[i] = 1\\n if chord.degrees[i] < 0 then\\n table.insert(slashAppendings, i)\\n end\\n end\\n end\\n if #slashAppendings == 0 then\\n return table.concat(bits)\\n end\\n return table.concat(bits) .. \\"/\\" .. table.concat(slashAppendings)\\nend\\n\\nGuitarSolver = ASolver:new()\\n\\nfunction GuitarSolver:degreeToPitch(degreeDef, chord)\\n return chord.rootPitch + (degreeDef.degreeValue % 12)\\nend\\n\\nfunction GuitarSolver:_solveImpl(chord, degrees, params)\\n local d = function(degreeValue) return self:getDefaultDegreeDef(degreeValue, degrees) end\\n local strDegrees = chordToHashString(chord)\\n local voicing = VoicingMatrix[strDegrees]\\n if voicing == nil then\\n error(\\"no voicing found defined for \\" .. chord.strBase .. chord.strOptions .. \\" \\" .. strDegrees)\\n end\\n local result = {}\\n local octave = -1\\n local lastDegree = -1\\n for idx, degree in pairs(voicing) do\\n if degree <= lastDegree then \\n octave = octave + 1\\n end\\n lastDegree = degree\\n result[idx] = self:createPitch(chord, d(degree ), octave)\\n end\\n return result\\nend"}, {"path": "lua/voicings/solvers/simple.lua", "data": "require \\"lua/voicings/solvers/asolver\\"\\nrequire \\"lua/com/globals\\"\\n\\nSimple = ASolver:new()\\n\\nfunction Simple:degreeToPitch(degreeDef, chord)\\n return chord.rootPitch + degreeDef.degreeValue\\nend\\n\\nfunction Simple:_solveImpl(chord, degrees, parameters)\\n local pitches = {}\\n for degree, degreeDefs in pairs(degrees)\\n do\\n if isnumber(degree)\\n then\\n for idx, degreeDef in pairs(degreeDefs)\\n do\\n table.insert(pitches, self:createPitch(chord, degreeDef, degreeDef.octave))\\n end\\n end\\n end\\n return pitches\\nend"}, {"path": "lua/voicings/solvers/voicelead.lua", "data": "require \\"simple\\"\\nrequire \\"lua/com/globals\\"\\n\\nVoiceLeadSolver = Simple:new()\\n\\nfunction VoiceLeadSolver:getPitchWithMinDistance(pitch, pitches)\\n local min = math.maxinteger\\n local minPitch = nil\\n local relPitch = pitch.pitch % 12\\n for i, refpitch in pairs(pitches) do\\n local diff = relpitchdiff(refpitch.pitch, relPitch)\\n diff = math.abs(diff)\\n if (diff < min) then\\n minPitch = refpitch\\n min = diff\\n end\\n end\\n return minPitch\\nend\\n\\n-- changes the octave of pitch, so that the interval\\n-- between pitch and targetPitch is minimal\\nfunction VoiceLeadSolver:toPitchNextTo(pitch, targetPitch)\\n if targetPitch == nil then\\n return pitch\\n end\\n local diff = pitch.pitch - targetPitch.pitch\\n pitch.octave = targetPitch.octave\\n --print(pitch.pitch, targetPitch.pitch, diff)\\n if (diff > 6) then\\n pitch.octave = pitch.octave - 1\\n end\\n if (diff < -6) then\\n pitch.octave = pitch.octave + 1\\n end\\n return pitch\\nend\\n\\n\\n-- compare pitches with a reference and adjust octaves\\nfunction VoiceLeadSolver:adjustOctaves(pitches, reference)\\n for i, pitch in pairs(pitches) do\\n local min = self:getPitchWithMinDistance(pitch, reference) \\n self:toPitchNextTo(pitch, min)\\n end\\n return pitches\\nend\\n\\nfunction VoiceLeadSolver:_solveImpl(chord, degrees, params)\\n local pitches = Simple:_solveImpl(chord, degrees, params)\\n if #pitches < 2\\n then\\n return pitches\\n end\\n if self.previous ~= nil \\n then\\n pitches = self:adjustOctaves(pitches, self.previous)\\n end\\n return pitches\\nend\\n\\nfunction VoiceLeadSolver:solve(chord, degrees, params)\\n self:checkForLegacyParameters(params)\\n local result = self:_solveImpl(chord, degrees, params)\\n if params.range ~=nil and params.range ~=NoRangeSet then\\n self:_keepRange(result, params.range)\\n end\\n self.previous = result\\n return result\\nend"}, {"path": "pitchmaps/battery3.tight.pitchmap", "data": "\\"bd\\": c,,\\n\\"sn\\": d,,\\n\\"sng\\": g# --snare ghost notes\\n\\"ss\\": c#,, -- sidestick\\n\\"hc\\": d#,, -- handclap\\n\\"ht\\": f#,, -- hihat closed\\n\\"hf\\": g#,, -- hihat foot\\n\\"ho\\": bb,, -- hihat open\\n\\"ho1\\": g\' -- hihat half open1\\n\\"ho2\\": g#\' -- hihat half open2\\n\\"ho3\\": a\' -- hihat half open3\\n\\"cy\\": c#,\\n\\"hto\\": c,\\n\\"hto1\\": c,\\n\\"hto2\\": d,\\n\\"mto\\": b,,\\n\\"mto1\\": b,,\\n\\"mto2\\": a,,\\n\\"lto\\": g,,\\n\\"lto1\\": g,,\\n\\"lto2\\": f,,\\n\\"rdbell\\": f#,\\n\\"mtr\\": ab\'\\n\\"otr\\": a\'\\n-- r&l\\n\\"snl\\": d,,\\n\\"snr\\": e,,\\n\\"riml\\": c#,,\\n\\"rimr\\": d#,,\\n\\"htol\\": e,\\n\\"htor\\": f,\\n\\"mtol\\": c,\\n\\"mtor\\": d,\\n\\"ltol\\": b,,\\n\\"ltor\\": a,,\\n\\"ftol\\": g,,\\n\\"ftor\\": f,,\\n"}, {"path": "pitchmaps/defaultMIDI.pitchmap", "data": "\\"bd\\": c,,,,\\n\\"bd2\\": b,,,\\n\\"o\\": b,,,\\n\\"sn\\": d,,\\n\\"x\\": d,,\\n\\"sn2\\": e,,\\n\\"esn\\": e,, -- electric snare\\n\\"sng\\": d,, --snare ghost notes\\n\\"ss\\": c#,, -- sidestick\\n\\"hc\\": d#,, -- handclap\\n\\"ht\\": f#,, -- hihat closed\\n\\"h\\": f#,, -- hihat closed\\n\\"hf\\": g#,, -- hihat foot\\n\\"h,\\": g#,, -- hihat foot\\n\\"ho\\": bb,, -- hihat open\\n\\"h\'\\": bb,, -- hihat open\\n\\"ho1\\": bb,, -- hihat half open1\\n\\"ho2\\": bb,, -- hihat half open2\\n\\"ho3\\": bb,, -- hihat half open3\\n\\"cy\\": c#, -- crash cymbal\\n\\"spl\\": g, -- splash cymbal\\n\\"hto\\": c, -- high tom \\n\\"m\'\\": c, -- high tom \\n\\"hto1\\": c,\\n\\"hto2\\": d,\\n\\"mto\\": b,, -- middle tom\\n\\"m\\": b,, -- middle tom\\n\\"mto1\\": b,,\\n\\"mto2\\": a,,\\n\\"lto\\": g,, -- low tom\\n\\"m,\\": g,, -- low tom\\n\\"lto1\\": g,,\\n\\"lto2\\": f,,\\n\\"rcym1\\": d#, -- ride cymbal 1\\n\\"rcym2\\": b, -- ride cymbal 2\\n\\"rbell\\": f, -- ride bell\\n\\"mtr\\": ab\' -- muted triangle\\n\\"otr\\": a\' -- open triangle\\n\\"bo1\\": c --bongo 1\\n\\"bo2\\": c# --bongo 2\\n\\"tim1\\": f --timbale 1\\n\\"tim2\\": f# --timbale 2\\n\\"ago1\\": g --agogo 1\\n\\"ago2\\": g# --agogo 2\\n\\"cui1\\": f#\' -- cuica 1\\n\\"cui2\\": g\' -- cuica 2\\n\\"cwb\\": g#, -- cowbell\\n\\"cla\\": d#\' -- claves\\n\\"mcon\\":d -- mute high conga\\n\\"ocon\\":d# -- open conga\\n\\"lcon\\":e -- low conga\\n\\"tmb\\":f#, -- tambourine \\n\\n\\n\\"brsw\\": e,, -- brush swirl\\n\\"brtp\\": d,, -- brush tap\\n\\"brsp\\": d#,, -- brush slap"}, {"path": "pitchmaps/defaultMidiDrumMap.pitchmap", "data": "\\"bd\\": c,,,,\\n\\"sn\\": d,,\\n\\"sng\\": d,, --snare ghost notes\\n\\"ss\\": c#,, -- sidestick\\n\\"hc\\": d#,, -- handclap\\n\\"ht\\": f#,, -- hihat closed\\n\\"hf\\": g#,, -- hihat foot\\n\\"ho\\": bb,, -- hihat open\\n\\"ho1\\": bb,, -- hihat half open1\\n\\"ho2\\": bb,, -- hihat half open2\\n\\"ho2\\": bb,, -- hihat half open3\\n\\"cy\\": c#, -- crash cymal\\n\\"spl\\": g, -- splash cymal\\n\\"hto\\": c, -- high tom \\n\\"hto1\\": c,\\n\\"hto2\\": d,\\n\\"mto\\": b,, -- middle tom\\n\\"mto1\\": b,,\\n\\"mto2\\": a,,\\n\\"lto\\": g,, -- low tom\\n\\"lto1\\": g,,\\n\\"lto2\\": f,,\\n\\"rdbell\\": b,\\n\\"mtr\\": ab\' -- muted triangle\\n\\"otr\\": a\' -- open triangle\\n\\"bo1\\": c --bongo 1\\n\\"bo2\\": c# --bongo 2\\n\\"tim1\\": f --timbale 1\\n\\"tim2\\": f# --timbale 2\\n\\"ago1\\": g --agogo 1\\n\\"ago2\\": g# --agogo 2\\n\\"cui1\\": f#\' -- cuica 1\\n\\"cui2\\": g\' -- cuica 2\\n\\"cwb\\": g#, -- cowbell\\n\\"cla\\": d#\' -- claves\\n\\n\\"cr\\": c#, -- crash cymal\\n\\"t1\\": c, -- high tom \\n\\"t2\\": b,, -- middle tom\\n\\"t3\\": g,, -- low tom\\n\\"t4\\": f,,"}, {"path": "templates/bass.blues.template", "data": "[\\ntype: template;\\nname: bass.blues.normal; \\ninstrument: bass;\\n{\\n /do: swing _grid=8 _offset =60/\\n I,,,8 & I,,& VII,,,& V,,,& |\\n}\\n]"}, {"path": "templates/bass.bossanova.template", "data": "[\\ntype: template;\\nname: bass.bossanova.normal;\\ninstrument: bass; \\n{\\n \\\\fff\\n I,,4. V,,8 V,,4. I,,8 |\\n I,,4. V,,8 V,,4 I,,4 |\\n I,,4. V,,8 V,,4. I,,8 |\\n I,,4. V,,8 V,,4 I,,8 V,,8 |\\n} \\n] \\n"}, {"path": "templates/bass.country.template", "data": "[\\ntype: template;\\nname: bass.country.normal;\\ninstrument: bass; \\n{\\n I,,4. I,,8 V,,,4. V,,,8 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: bass.country.ende;\\ninstrument: bass; \\n{\\n I,,1 |\\n} \\n] "}, {"path": "templates/bass.disco.template", "data": "[\\ntype: template;\\nname: bass.disco.normal;\\ninstrument: bass;\\n{\\n \\\\ffff\\n I,,8 I,16 I,16 I,,8 I,16 I,16 I,,8 I,16 I,16 I,,8 I,16 I,16 |\\n} \\n]\\n"}, {"path": "templates/bass.jazzSwing.template", "data": "-- tempo: 155\\n-- signature: 4/4\\n-- parts: normal\\n[\\ntype: template;\\nname: bass.jazzSwing.normal;\\ninstrument: bass; \\n{\\n I,,2 V,, | \\n I,, V,,,4 I,, |\\n}\\n\\n]\\n"}, {"path": "templates/bass.reggae.template", "data": "using \\"lua/mods/swing.lua\\";\\n\\n[\\ntype: template;\\nname: bass.reggae.normal;\\ninstrument: bass;\\n{\\n /do: swing _grid=8 _offset =30/\\n I,,16 r16 I,,8 r2 V,,,4 |\\n I,,16 r16 r8 I,,8 r4. V,,,4 |\\n I,,16 r16 I,,8 r2 V,,,4 |\\n I,,16 r16 I,,8 r2 V,,,4 |\\n}\\n]"}, {"path": "templates/bass.soca.template", "data": "[\\ntype: template;\\nname: bass.soca.normal;\\ninstrument: bass;\\n{\\n r8 r16 I,,32 r32 I,,8 I,,16 r \\n r8 r16 I,,32 r32 r16 I,,32 r V,,, r I,, r |\\n}\\n]"}, {"path": "templates/bossanova.template", "data": "using \\"lua/voicings/voicelead.lua\\";\\nusing \\"lua/voicings/simple.lua\\";\\nusing \\"lua/voicings/guitar.lua\\";\\nusing \\"lua/mods/guitarStroke.lua\\";\\n\\n[\\ntype: template;\\nname: bossanova.normal;\\ninstrument: drums;\\n{\\n \\"ht\\"8 !f\\"ht\\" \\"ht\\" !f\\"ht\\" \\"ht\\" \\"ht\\" \\"ht\\" !f\\"ht\\" |\\n} \\n{\\n \\\\fff\\n r4 \\"ss\\"8 r4 \\"ss\\"8 r4 | \\"ss\\"4. \\"ss\\"8 r4 \\"ss\\" |\\n} \\n{\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"4. \\"bd\\"8 |\\n} \\n]\\n\\n[\\ntype: template;\\nname: bossanova.normal;\\ninstrument: guitar; \\n{\\n /do: guitarStroke _value=32/\\n /voicingStrategy: guitar/\\n \\\\f\\n <I II III IV V VI VII>4 <I II III IV V VI VII>4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 |\\n r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 r4 <I II III IV V VI VII>4 |\\n <I II III IV V VI VII>4 <I II III IV V VI VII>4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 |\\n r4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>4. |\\n} \\n] \\n\\n[\\ntype: template;\\nname: bossanova.normal;\\ninstrument: piano; \\n{\\n -- /voicingStrategy: simple _range=tenor/\\n <VII, VII>4 <III, V,>8 <V, V>8 r8 <III, V,>8 r8 <V, V> | r8 <III, V,>8 r8 <V, V> r8 <III, V,> r8 <VII, VII> |\\n} \\n] \\n\\n[\\ntype: template;\\nname: bossanova.normal;\\ninstrument: bass; \\n{\\n \\\\fff\\n I,,4. V,,8 V,,4. I,,8 |\\n I,,4. V,,8 V,,4 I,,4 |\\n I,,4. V,,8 V,,4. I,,8 |\\n I,,4. V,,8 V,,4 I,,8 V,,8 |\\n} \\n] \\n"}, {"path": "templates/countryschlager1.template", "data": "using \\"lua/voicings/guitar.lua\\";\\nusing \\"lua/voicings/voicelead.lua\\";\\nusing \\"lua/mods/guitarStroke.lua\\";\\n\\n[\\ntype: template;\\nname: countryschlager1.normal;\\ninstrument: guitar; \\n{\\n /do: guitarStroke/\\n /voicingStrategy: guitar _range=tenor/\\n \\\\f\\n <I II III IV V VI VII>8 <I II III IV V VI VII>8 r8 \\n <I II III IV V VI VII>4 <I II III IV V VI VII>8 <I II III IV V VI VII>8 <I II III IV V VI VII>8 |\\n} \\n]\\n\\n[\\ntype: template;\\nname: countryschlager1.normal;\\ninstrument: slide; \\n{\\n \\\\f\\n /modOnce: bend from 0/\\n r1 |\\n r1 |\\n r1 |\\n <I\' II\' III\' IV\' V\' VI\' VII\'>1 |\\n r1 |\\n r1 |\\n r1 |\\n /modOnce: bend to 100/\\n <I\' II\' III\' IV\' V\' VI\' VII\'>1 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: countryschlager1.normal;\\ninstrument: bass; \\n{\\n I,,4. I,,8 V,,,4. V,,,8 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: countryschlager1.normal;\\ninstrument: drums;\\n{\\n \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 |\\n} \\n{\\n r4 \\"sn\\" r \\"sn\\" |\\n}\\n{\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"4. \\"bd\\"8 |\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"4. \\"bd\\"8 |\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"8 !f\\"bd\\"8 r8 \\"bd\\"8 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: countryschlager1.ende;\\ninstrument: guitar; \\n{\\n /do: guitarStroke _value=8/\\n <I II III IV V VI VII>1 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: countryschlager1.ende;\\ninstrument: bass; \\n{\\n I,,1 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: countryschlager1.ende;\\ninstrument: drums;\\n{\\n \\"cy\\"1 |\\n} \\n{\\n \\"bd\\"1|\\n} \\n]\\n\\n[\\ntype: template;\\nname: countryschlager1.ende;\\ninstrument: slide; \\n{\\n \\\\f\\n /modOnce: bend from 1/\\n <I\' II\' III\' IV\' V\' VI\' VII\'>1 |\\n} \\n] \\n"}, {"path": "templates/drums.bossanova.template", "data": "[\\ntype: template;\\nname: drums.bossanova.normal;\\ninstrument: drums;\\n{\\n \\"ht\\"8 !f\\"ht\\" \\"ht\\" !f\\"ht\\" \\"ht\\" \\"ht\\" \\"ht\\" !f\\"ht\\" |\\n} \\n{\\n \\\\fff\\n r4 \\"ss\\"8 r4 \\"ss\\"8 r4 | \\"ss\\"4. \\"ss\\"8 r4 \\"ss\\" |\\n} \\n{\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"4. \\"bd\\"8 |\\n} \\n]"}, {"path": "templates/drums.country.template", "data": "[\\ntype: template;\\nname: drums.country.normal;\\ninstrument: drums;\\n{\\n \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 |\\n} \\n{\\n r4 \\"sn\\" r \\"sn\\" |\\n}\\n{\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"4. \\"bd\\"8 |\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"4. \\"bd\\"8 |\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"8 !f\\"bd\\"8 r8 \\"bd\\"8 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: drums.country.cymbal;\\ninstrument: drums;\\n{\\n \\"cy\\"4 \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 |\\n} \\n{\\n r4 \\"sn\\" r \\"sn\\" |\\n}\\n{\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"4. \\"bd\\"8 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: drums.country.ende;\\ninstrument: drums;\\n{\\n \\"cy\\"1 |\\n} \\n{\\n \\"bd\\"1|\\n} \\n]"}, {"path": "templates/drums.disco.template", "data": "[\\ntype: template;\\nname: drums.disco.normal;\\ninstrument: drums;\\n{\\n r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 |\\n r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 !ffff<\\"sn\\" \\"ht\\">16 !fffff\\"sn\\"16 |\\n \\"cy\\"8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 |\\n r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 <\\"sn\\" \\"ht\\">16 !fffff\\"sn\\"16 |\\n} \\n{\\n \\"bd\\"4 \\"bd\\" \\"bd\\" \\"bd\\" |\\n} \\n] \\n\\n[\\ntype: template;\\nname: drums.disco.solo;\\ninstrument: drums;\\n{\\n \\"bd\\"4 \\"bd\\" \\"bd\\" \\"bd\\" |\\n} \\n] \\n\\n[\\ntype: template;\\nname: drums.disco.solo2;\\ninstrument: drums;\\n{\\n \\"cy\\"8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 |\\n r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 <\\"sn\\" \\"ht\\">16 !fffff\\"sn\\"16 |\\n} \\n{\\n \\"bd\\"4 \\"bd\\" \\"bd\\" \\"bd\\" |\\n} \\n] "}, {"path": "templates/drums.jazzSwing.template", "data": "-- tempo: 155\\n-- signature: 4/4\\n-- parts: normal, bridge\\n[\\ntype: template;\\nname: drums.jazzSwing.bridge;\\ninstrument: drumsBrushes; \\n{\\n (!ff\\"rcym1\\" r r)4 (\\"rcym1\\" r !p\\"rcym1\\") (!ff\\"rcym1\\" r r) (\\"rcym1\\" r !p\\"rcym1\\")\\n}\\n{\\n (r r \\"brtp\\")4 r4 (r r !p\\"brtp\\")4 r4 |\\n (r r !p\\"brtp\\")4 r4 (r r !p\\"brtp\\")4 r4 |\\n (r r !p\\"brtp\\")4 r4 (r r !p\\"brtp\\")4 r4 |\\n (r r !p\\"brtp\\")4 (r !pp\\"brtp\\"4 r) (r r !p\\"brtp\\")4 r4 |\\n}\\n{\\n \\\\pp\\n \\"bd2\\"4 (r r \\"bd2\\")4 r2 |\\n}\\n]\\n\\n[\\ntype: template;\\nname: drums.jazzSwing.normal;\\ninstrument: drumsBrushes; \\n{\\n \\\\pp\\n (\\"brtp\\" !pppp\\"brsw\\" r)4 (!ppp\\"brsp\\" r \\"brtp\\") (\\"brtp\\" !pppp\\"brsw\\" r) (!pp\\"brsp\\" r !p\\"brtp\\") \\n}\\n{\\n \\\\p\\n r4 \\"ht\\" r &\\n}\\n{\\n !pp\\"bd2\\"1 |\\n}\\n]"}, {"path": "templates/drums.purdie.template", "data": "[\\ntype: template;\\nname: drums.purdie.normal;\\ninstrument: drums; \\n{\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\p\\"ho\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t r8t !pp\\"ho\\"8t !pp\\"ht\\"8t |\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\f\\"ho\\"8t \\"ht\\"8t \\"bd\\"8t \\\\f\\"ho\\"8t \\"ht\\"8t r8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n}\\n{\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t |\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t | \\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !ppp\\"sn\\"8t !pp\\"sn\\"8t |\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t |\\n\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t |\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t | \\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r4t r8t | \\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t |\\n\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t |\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t | \\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !ppp\\"sn\\"8t !pp\\"sn\\"8t |\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t | \\n}\\n{\\n \\"bd\\"4t r8t r4t \\"bd\\"8t r4t r8t \\"bd\\"4t r8t |\\n}\\n]"}, {"path": "templates/drums.reggae.template", "data": "using \\"lua/mods/swing.lua\\";\\n\\n\\n[\\ntype: template;\\nname: drums.reggae.normal;\\ninstrument: drums; \\n{\\n\\n}\\n{\\n /do: swing _grid=8 _offset =50/\\n !f\\"ht\\"4 &8 !p& \\"ht\\"4 &8 !p&|\\n !f\\"ht\\"4 \\"ht\\"8t & & \\"ht\\"4 &8 !p&|\\n !f\\"ht\\"4 !pp\\"ho1\\"4 \\"ht\\"4 &8 !p&|\\n}\\n{\\n r r \\"bd\\"4 r |\\n r r \\"sn\\"4 r |\\n}\\n]\\n\\n--\\n\\n[\\ntype: template;\\nname: drums.reggae.fill1;\\ninstrument: drums; \\n{\\n\\n}\\n{\\n /do: swing _grid=8 _offset =50/\\n !f\\"ht\\"4 !p\\"ho2\\"4 r2 |\\n}\\n{\\n /do: swing _grid=8 _offset =50/\\n r \\"hto1\\"64->\\"hto1\\"4. \\"mto1\\"8 \\"mto1\\"8t r \\"mto1\\" |\\n}\\n]\\n\\n[\\ntype: template;\\nname: drums.reggae.fill2;\\ninstrument: drums; \\n{\\n\\n}\\n{\\n /do: swing _grid=8 _offset =50/\\n !f\\"ht\\"4 \\"ht\\"4 r2 |\\n}\\n{\\n /do: swing _grid=16 _offset =50/\\n !f\\"tim1\\"32->!p\\"tim2\\"8t & & \\"hto1\\"4 r2 |\\n}\\n]\\n"}, {"path": "templates/drums.soca.template", "data": "[\\ntype: template;\\nname: drums.soca.normal;\\ninstrument: drums;\\n{\\n \\"ago1\\"16 & \\"ago2\\" & \\"ago1\\" & \\"ago2\\" & \\"ago1\\"16 & \\"ago2\\" & \\"ago1\\" & \\"ago2\\" & |\\n}\\n{\\n \\"cwb\\"8 & &16 & r \\"cwb\\" r16 \\"cwb\\" r \\"cwb\\" \\"cwb\\" r & r | \\n}\\n{\\n \\\\p\\n \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 |\\n}\\n{\\n \\\\ffff\\n r8. \\"sn\\"16 r8 \\"sn\\" r8. \\"sn\\"16 r8 \\"sn\\" |\\n}\\n{\\n \\"bd\\"4 \\"bd\\" \\"bd\\" \\"bd\\" |\\n}\\n]\\n\\n[\\ntype: template;\\nname: drums.soca.bridge;\\ninstrument: drums;\\n{\\n \\"ago1\\"16 & \\"ago2\\" & \\"ago1\\" & \\"ago2\\" & \\"ago1\\"16 & \\"ago2\\" & \\"ago1\\" & \\"ago2\\" & |\\n}\\n{\\n \\"cwb\\"8 & &16 & r \\"cwb\\" r16 \\"cwb\\" r \\"cwb\\" \\"cwb\\" r & r | \\n}\\n{\\n \\\\fff\\n \\"mtr\\"16 & \\"otr\\"8 \\"mtr\\"16 & \\"otr\\"8 \\"mtr\\"16 & \\"otr\\"8 \\"mtr\\"16 & \\"otr\\"8 |\\n}\\n{\\n \\\\p\\n !ff\\"spl\\"16 \\"ht\\" \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 |\\n \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 |\\n}\\n{\\n \\\\f\\n r4 r16 \\"bo1\\" \\"bo2\\" & r4 r16 \\"bo1\\" \\"bo2\\" & |\\n}\\n{\\n \\\\pp\\n r4 r16 \\"cla\\" r8 \\"cla\\" r16 \\"cla\\"16 r4 |\\n}\\n{\\n \\\\fffff\\n r8. \\"sn\\"16 r8 \\"sn\\" r8. \\"sn\\"16 r8 \\"sn\\" |\\n r8. \\"sn\\"16 r8 \\"sn\\" r4 r16 !fff\\"sn\\" !ffff& !fffff& |\\n}\\n{\\n \\"bd\\"4 \\"bd\\" \\"bd\\" \\"bd\\" |\\n}\\n]"}, {"path": "templates/ennio.template", "data": "[\\ntype: template;\\nname: ennio.normal;\\ninstrument: piano; \\n{\\n !ffffI,,4 <II, III, IV, V, VI, VII,> <II, III, IV, V, VI, VII,> !fffV,,, |\\n}\\n] \\n\\n"}, {"path": "templates/guitar.bossanova.template", "data": "[\\ntype: template;\\nname: guitar.bossanova.normal;\\ninstrument: guitar; \\n{\\n /voicingStrategy: simpleGuitar/\\n \\\\f\\n <I II III IV V VI VII>4 <I II III IV V VI VII>4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 |\\n r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 r4 <I II III IV V VI VII>4 |\\n <I II III IV V VI VII>4 <I II III IV V VI VII>4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 |\\n r4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>4. |\\n} \\n] "}, {"path": "templates/guitar.country.template", "data": "using \\"lua/voicings/guitar.lua\\";\\n\\n[\\ntype: template;\\nname: guitar.country.normal;\\ninstrument: guitar; \\n{\\n /voicingStrategy: guitar _range=mezzosoprano/\\n \\\\f\\n <I II III IV V VI VII>8 <I II III IV V VI VII>8 r8 \\n <I II III IV V VI VII>4 <I II III IV V VI VII>8 <I II III IV V VI VII>8 <I II III IV V VI VII>8 |\\n} \\n]\\n\\n[\\ntype: template;\\nname: guitar.country.ende;\\ninstrument: guitar; \\n{\\n <I II III IV V VI VII>1 |\\n} \\n] \\n"}, {"path": "templates/rhythm.bossanova.template", "data": "[\\ntype: template;\\nname: rhythm.bossanova.normal;\\ninstrument: rhythm; \\n{\\n \\\\f\\n <I II III IV V VI VII>4 <I II III IV V VI VII>4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 |\\n r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 r4 <I II III IV V VI VII>4 |\\n <I II III IV V VI VII>4 <I II III IV V VI VII>4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 |\\n r4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>4. |\\n} \\n] "}, {"path": "templates/rhythm.country.template", "data": "using \\"lua/voicings/guitar.lua\\";\\n\\n[\\ntype: template;\\nname: rhythm.country.normal;\\ninstrument: rhythm; \\n{\\n \\\\f\\n <I II III IV V VI VII>8 <I II III IV V VI VII>8 r8 \\n <I II III IV V VI VII>4 <I II III IV V VI VII>8 <I II III IV V VI VII>8 <I II III IV V VI VII>8 |\\n} \\n]\\n\\n[\\ntype: template;\\nname: rhythm.country.ende;\\ninstrument: rhythm; \\n{\\n /doOnce: arpeggio/\\n <I II III IV V VI VII>4~ <I II III IV V VI VII>2. |\\n} \\n] \\n"}, {"path": "templates/rhythm.jazzSwing.template", "data": "-- tempo: 155\\n-- signature: 4/4\\n-- parts: normal\\n[\\ntype: template;\\nname: rhythm.jazzSwing.normal;\\ninstrument: rhythm2; \\n{\\n \\\\f\\n <I,, V, VII, I III>1~ | &4 (r r &) r2 |\\n\\n (<V, VII, I III> r r)4 r <V, VII, I III>4 r |\\n \\n (<V, VII, I III> r I,,)4 r <V, VII, I III>4 r |\\n\\n <I,, V, VII, I III>1~ | &4 (r r &) r2 |\\n\\n (<V, VII, I III> r r)4 r <V, VII, I III>4 r |\\n\\n <V, VII, I III> r I,,4 (I,, r <V, VII, I III>~) (<V, VII, I III> r I,,) |\\n}\\n]\\n"}, {"path": "templates/rhythm.reggae.template", "data": "using \\"lua/mods/swing.lua\\";\\nusing \\"lua/mods/staccato.lua\\";\\n\\n[\\ntype: template;\\nname: rhythm.reggae.normal;\\ninstrument: rhythm;\\n{\\n \\\\f\\n /do: swing _grid=8 _offset =40/\\n r4 /modOnce: staccato _amount=100/ <I II III IV V VI VII>8 /modOnce: staccato _amount=40/ <I II III IV V VI VII>8 \\n r4 /modOnce: staccato _amount=100/ <I II III IV V VI VII>8 /modOnce: staccato _amount=40/ <I II III IV V VI VII>8 \\n |\\n\\n}\\n]"}]'),d=require("lodash"),p=function(){function n(e){a(this,n),this.module=e,this.blacklist=["/dev","/home","/proc","/tmp"]}return o(n,[{key:"resolve",value:function(n,e){return i(this,void 0,void 0,regeneratorRuntime.mark(function t(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.replace("./",n));case 1:case"end":return t.stop()}},t)}))}},{key:"ls",value:function(n){return i(this,void 0,void 0,regeneratorRuntime.mark(function e(){var t,a,r,o,i,s;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.module.FS,a=t.analyzePath(n,!1),a.exists&&a.object&&a.object.isFolder){e.next=5;break}return e.abrupt("return",[]);case 5:r=[],o=a.object.contents,e.t0=regeneratorRuntime.keys(o);case 8:if((e.t1=e.t0()).done){e.next=18;break}if(i=e.t1.value,s=o[i],!this.blacklist.includes("".concat(a.parentPath).concat(i))){e.next=13;break}return e.abrupt("continue",8);case 13:if("_"!==i[0]&&"."!==i[0]){e.next=15;break}return e.abrupt("continue",8);case 15:r.push({name:i,isDirectory:s.isFolder}),e.next=8;break;case 18:return e.abrupt("return",r);case 19:case"end":return e.stop()}},e,this)}))}},{key:"getParentPath",value:function(n){return i(this,void 0,void 0,regeneratorRuntime.mark(function e(){var t,a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.module.FS,a=t.analyzePath(n,!1),e.abrupt("return",a.parentPath);case 3:case"end":return e.stop()}},e,this)}))}}]),n}(),u=function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";a(this,n),this.errorMessage=e};exports.CompilerError=u;var I=function(){function e(){var n=this;a(this,e),this.cwdFiles=[],this.module=s().then(function(e){return i(n,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this.init(e);case 2:return n.abrupt("return",e);case 3:case"end":return n.stop()}},n,this)}))})}return o(e,[{key:"init",value:function(n){return i(this,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.prepareModule(n),e.next=3,this.prepareFileSystem(n);case 3:case"end":return e.stop()}},e,this)}))}},{key:"getFileSystemInspector",value:function(){return i(this,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.t0=p,n.next=3,this.module;case 3:return n.t1=n.sent,n.abrupt("return",new n.t0(n.t1));case 5:case"end":return n.stop()}},n,this)}))}},{key:"prepareModule",value:function(n){this.createCompileResult=n.cwrap("create_compile_result","number",["string","number"])}},{key:"mkdir_p",value:function(n,e){for(var t=n.split("/"),a=[],r=0;r<t.length&&r!==t.length-1;++r){var o=t[r];a.push(o);var i=a.join("/");e.FS.analyzePath(i,!1).exists||e.FS.mkdir(i)}}},{key:"prepareFileSystem",value:function(e){return i(this,void 0,void 0,regeneratorRuntime.mark(function t(){var a,r,o,i,s;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:a=d.cloneDeep(c),r=e.FS,o=n(a);try{for(o.s();!(i=o.n()).done;){s=i.value;try{this.mkdir_p(s.path,e),r.writeFile(s.path,s.data)}catch(l){console.error(l)}}}catch(p){o.e(p)}finally{o.f()}case 4:case"end":return t.stop()}},t,this)}))}},{key:"writeFileToFS",value:function(n,e){return i(this,void 0,void 0,regeneratorRuntime.mark(function t(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.module;case 2:t.sent.FS.writeFile(n,e),this.cwdFiles.push(n);case 5:case"end":return t.stop()}},t,this)}))}},{key:"cleanCWD",value:function(){return i(this,void 0,void 0,regeneratorRuntime.mark(function e(){var t,a,r,o;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.module;case 2:t=e.sent.FS,a=n(this.cwdFiles);try{for(a.s();!(r=a.n()).done;)o=r.value,t.analyzePath(o,!1).exists&&t.unlink(o)}catch(i){a.e(i)}finally{a.f()}this.cwdFiles.splice(0,this.cwdFiles.length);case 6:case"end":return e.stop()}},e,this)}))}},{key:"compile",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return i(this,void 0,void 0,regeneratorRuntime.mark(function a(){var r,o,i,s,l,c,d,p;return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=2,this.cleanCWD();case 2:if(e&&0!==e.length){a.next=4;break}throw new u("no content to compile");case 4:return a.next=6,this.module;case 6:r=a.sent,o=0,i=null,s=n(e),a.prev=10,s.s();case 12:if((l=s.n()).done){a.next=21;break}if((c=l.value).path&&c.path.trim()){a.next=16;break}throw new u("sheet file has no path");case 16:return a.next=18,this.writeFileToFS(c.path,c.data);case 18:c.path.trim().endsWith(".sheet")&&(i=c);case 19:a.next=12;break;case 21:a.next=26;break;case 23:a.prev=23,a.t0=a.catch(10),s.e(a.t0);case 26:return a.prev=26,s.f(),a.finish(26);case 29:if(i){a.next=31;break}throw new u("missing main sheet file (.sheet)");case 31:if(o=this.createCompileResult(i.path,t),d=r.UTF8ToString(o),r._free(o),!(p=JSON.parse(d)).errorMessage){a.next=37;break}throw{error:p};case 37:return a.abrupt("return",p);case 38:case"end":return a.stop()}},a,this,[[10,23,26,29]])}))}}]),e}();exports.WerckmeisterCompiler=I;
492
+ "use strict";function n(n,t){var a;if("undefined"==typeof Symbol||null==n[Symbol.iterator]){if(Array.isArray(n)||(a=e(n))||t&&n&&"number"==typeof n.length){a&&(n=a);var r=0,o=function(){};return{s:o,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(n){throw n},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,l=!1;return{s:function(){a=n[Symbol.iterator]()},n:function(){var n=a.next();return s=n.done,n},e:function(n){l=!0,i=n},f:function(){try{s||null==a.return||a.return()}finally{if(l)throw i}}}}function e(n,e){if(n){if("string"==typeof n)return t(n,e);var a=Object.prototype.toString.call(n).slice(8,-1);return"Object"===a&&n.constructor&&(a=n.constructor.name),"Map"===a||"Set"===a?Array.from(n):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?t(n,e):void 0}}function t(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,a=new Array(e);t<e;t++)a[t]=n[t];return a}function a(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}function r(n,e){for(var t=0;t<e.length;t++){var a=e[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(n,a.key,a)}}function o(n,e,t){return e&&r(n.prototype,e),t&&r(n,t),n}var i=this&&this.__awaiter||function(n,e,t,a){return new(t||(t=Promise))(function(r,o){function i(n){try{l(a.next(n))}catch(e){o(e)}}function s(n){try{l(a.throw(n))}catch(e){o(e)}}function l(n){var e;n.done?r(n.value):(e=n.value,e instanceof t?e:new t(function(n){n(e)})).then(i,s)}l((a=a.apply(n,e||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.WerckmeisterCompiler=exports.CompilerError=void 0;var s=require("@werckmeister/compilerjs/werckmeister"),l=require("fs"),c=JSON.parse('[{"path": "chords/default.chords", "data": "------------------------------------------------------------------\\nX: \\t\\t\\tI=0\\t \\t\\tIII=4 \\t\\t\\tV=7\\nXmin: \\t\\tI=0 \\t\\tIII=3 \\t\\t\\tV=7\\nX-: \\t\\tI=0 \\t\\tIII=3 \\t\\t\\tV=7\\nX/7: \\t\\tI=0 \\t\\tIII=4 \\t\\t\\tV=7 \\t\\t\\tVII=-2\\nX-/7: \\t\\tI=0 \\t\\tIII=3 \\t\\t\\tV=7 \\t\\t\\tVII=-2\\nX/maj7: \\tI=0 \\tIII=4 \\t\\t\\tV=7 \\t\\t\\tVII=-1\\nX/5: \\t\\tI=0\\t \\t\\tIII=4 \\t\\t\\tV=-5\\nX-/5: \\t\\tI=0\\t \\t\\tIII=3 \\t\\t\\tV=-5\\nX/4: \\t\\tI=0\\t \\t\\tIII=4 \\tIV=-7\\tV=7\\nX-/4: \\t\\tI=0\\t \\t\\tIII=3 \\tIV=-7\\tV=7\\nX/3: \\t\\tI=0\\t \\t\\tIII=-8 \\t \\tV=7\\nX-/3: \\t\\tI=0\\t \\t\\tIII=-9 \\t \\tV=7\\nX/2: \\t\\tI=0\\t II=-10\\tIII=4 \\t \\tV=7\\nX-7b5/b5: \\tI=0 \\t\\tIII=3 \\t\\t\\tV=-6 \\t\\t\\tVII=10\\n------------------------------------------------------------------\\nXsus4: I=0 IV=5 V=7\\nX7sus4: I=0 IV=5 V=7 VII=10\\nX9sus4: I=0 II=2 IV=5 V=7 VII=10\\nXsus2: I=0 II=2 V=7\\n------------------------------------------------------------------\\nX6: I=0 \\t\\tIII=4 \\t\\t\\tV=7 VI=9\\nX-6: I=0 \\t\\tIII=3 \\t\\t\\tV=7 VI=9\\nX-6/9: I=0 II=2\\tIII=3 \\t\\t\\tV=7 VI=9\\n------------------------------------------------------------------\\nX7: \\t\\tI=0 \\t\\tIII=4 \\t\\t\\tV=7 \\t\\t\\tVII=10\\nXmin7: \\t\\tI=0 \\t\\tIII=3 \\t\\t\\tV=7 \\t\\t\\tVII=10\\nX-7: \\t\\tI=0 \\t\\tIII=3 \\t\\t\\tV=7 \\t\\t\\tVII=10\\nXmaj7: \\t\\tI=0 \\t\\tIII=4 \\t\\t\\tV=7 \\t\\t\\tVII=11\\nXmaj7b5:\\tI=0 \\t\\tIII=4 \\t\\t\\tV=6 \\t\\t\\tVII=11\\nX-7b5: \\tI=0 \\t\\tIII=3 \\t\\t\\tV=6 \\t\\t\\tVII=10\\nXmaj7#11: \\tI=0 \\t\\tIII=4 \\tIV=6\\t \\t\\t\\tVII=11\\nX7b5: \\t\\tI=0 \\t\\tIII=4 \\t\\t\\tV=6 \\t\\t\\tVII=10\\nX7#5: \\t\\tI=0 \\t\\tIII=4 \\t\\t\\tV=8 \\t\\t\\tVII=10\\nX07: \\t\\tI=0 \\t\\tIII=3 \\t\\t\\tV=6 \\t\\t\\tVII=9\\n-- II=3 and III=3 was intended\\nX7#5#9:\\t\\tI=0 II=3 III=3 \\tV=8 \\t\\t\\tVII=10\\n------------------------------------------------------------------\\nX2: \\t\\tI=0 III=2 \\t\\t\\tV=7 \\t\\t\\t\\nX9: \\t\\tI=0 II=2 III=4 \\t\\t\\tV=7 \\t\\t\\tVII=10\\n# to distinguish between Xb9 (Xflat and 9) and Xb9 (X and flat 9)\\n# we write Xflat9 for the latter. (same for 11 and 13)\\nXflat9: \\tI=0 II=1 III=4 \\t\\t\\tV=7 \\t\\t\\t\\nXmin9: \\t\\tI=0 II=2\\tIII=3 \\t\\t\\tV=7 \\t\\t\\tVII=10\\nX-9: \\t\\tI=0 II=2\\tIII=3 \\t\\t\\tV=7 \\t\\t\\tVII=10\\nXminAdd9:\\tI=0 II=2\\tIII=3 \\t\\t\\tV=7 \\t\\t\\t\\nX-add9:\\t\\tI=0 II=2\\tIII=3 \\t\\t\\tV=7 \\t\\t\\t\\n\\n\\nXmaj9: \\t\\tI=0 II=2\\tIII=4 \\t\\t\\tV=7 \\t\\t\\tVII=11\\n-- II=3 and III=3 was intended\\nX7#9: \\t\\tI=0 II=3\\tIII=4 \\t\\t\\tV=7 \\t\\t\\tVII=10\\nX7b9: I=0 II=1 III=4 \\t\\t\\tV=7 \\t\\t\\tVII=10\\nXmaj7b9: I=0 II=1 III=4 \\t\\t\\tV=7 \\t\\t\\tVII=11\\n------------------------------------------------------------------\\nX11: \\t\\tI=0 \\tIII=4 \\tIV=5\\tV=7 \\t\\t\\tVII=10\\nXflat11: I=0 \\tIII=3 \\tIV=4\\tV=7 \\t\\t\\t\\nXmin11:\\t\\tI=0 \\tIII=3 \\tIV=5\\tV=7 \\t\\t\\tVII=10\\nX-11:\\t\\tI=0 \\tIII=3 \\tIV=5\\tV=7 \\t\\t\\tVII=10\\nXmaj11:\\t\\tI=0 \\tIII=4 \\tIV=5\\tV=7 \\t\\t\\tVII=11\\n------------------------------------------------------------------\\nX13: \\t\\tI=0 \\tIII=4 \\t \\tV=7 \\tVI=9\\tVII=10\\nXflat13:\\tI=0 \\tIII=4 \\t \\t \\tVI=8\\t\\nXmin13:\\t\\tI=0 \\tIII=3 \\t\\t V=7 \\tVI=9\\tVII=10\\nX-13:\\t\\tI=0 \\tIII=3 \\t\\t V=7 \\tVI=9\\tVII=10\\nXmaj13:\\t\\tI=0 \\tIII=4 \\t\\t V=7 \\tVI=9\\tVII=11"}, {"path": "lua/com/com.lua", "data": "local _inspect = require \\"lua/com/inspect\\"\\n\\nlocal MidiSchluesselCOffset = 60\\nParameterValueNoTag = \'__noTagValue\'\\n\\nfunction istable(t) return type(t) == \'table\' end\\nfunction isnumber(t) return type(t) == \'number\' end\\nfunction inspect(x) return print(_inspect(x)) end\\nfunction dump(x) print(inspect(x)) end\\n\\n\\nfunction checkLegacyNamedParams(params, ...)\\n local args = table.pack(...)\\n for k, v in pairs(params) do\\n if contains(args, v) then\\n local msg = \\"Error: legacy named parameter with the argument \'\\" .. v .. \\"\'. \\"\\n msg = msg .. \\" Use this expression instead: _\\" .. v .. \\"=...\\" \\n error(msg)\\n end\\n end\\nend\\n\\n-- returns the minimum amount of semitones between the relative pitches x and y.\\n-- e.g.: from c(0) to b(11) = -1\\nfunction relpitchdiff(x, y)\\n x = x % 12\\n y = y % 12\\n if math.abs(x-y) < 6 then\\n return -(x-y)\\n end\\n if x < 6 then \\n x = x + 12 \\n end\\n if y < 6 then\\n y = y + 12\\n end\\n return -(x-y)\\nend\\n\\n-- [a, 1, b, 2, c, 3] => {a=1, b=2, c=3}\\n-- @deprecated use the native named parameter feature: _name=value\\nfunction tokeyvalue(args)\\n assert(#args % 2 == 0)\\n local result = {}\\n for i=1, #args, 2 do\\n result[ args[i] ] = args[i+1]\\n end\\n return result\\nend\\n\\nfunction toMidiPitch(pitch)\\n return MidiSchluesselCOffset + pitch.pitch + (pitch.octave * 12)\\nend\\n\\nfunction deepcopy(o, seen)\\n seen = seen or {}\\n if o == nil then return nil end\\n if seen[o] then return seen[o] end\\n \\n local no\\n if type(o) == \'table\' then\\n no = {}\\n seen[o] = no\\n \\n for k, v in next, o, nil do\\n no[deepcopy(k, seen)] = deepcopy(v, seen)\\n end\\n setmetatable(no, deepcopy(getmetatable(o), seen))\\n else -- number, string, boolean, etc\\n no = o\\n end\\n return no\\nend\\n\\nfunction contains(table, value)\\n if table == nil then\\n return false\\n end\\n for k, v in pairs(table) do\\n if v == value then\\n return true\\n end\\n end\\n return false\\nend\\n\\n-- https://stackoverflow.com/questions/1426954/split-string-in-lua#1426970\\nfunction split(pString, pPattern)\\n local Table = {} -- NOTE: use {n = 0} in Lua-5.0\\n local fpat = \\"(.-)\\" .. pPattern\\n local last_end = 1\\n local s, e, cap = pString:find(fpat, 1)\\n while s do\\n if s ~= 1 or cap ~= \\"\\" then\\n table.insert(Table,cap)\\n end\\n last_end = e+1\\n s, e, cap = pString:find(fpat, last_end)\\n end\\n if last_end <= #pString then\\n cap = pString:sub(last_end)\\n table.insert(Table, cap)\\n end\\n return Table\\n end"}, {"path": "lua/com/globals.lua", "data": "I = 1\\nII = 2\\nIII = 3\\nIV = 4\\nV = 5\\nVI = 6\\nVII = 7\\n\\nDegreeStringValues = {\\n I = I,\\n II = II,\\n III = III,\\n IV = IV,\\n V = V,\\n VI = VI,\\n VII = VII\\n}\\n\\nMajorScaleSemitones = {\\n I = 0,\\n II = 2,\\n III = 4,\\n IV = 5,\\n V = 7,\\n VI = 9,\\n VII = 11\\n}\\n\\nC = 0\\nCIS = 1\\nDES = 1\\nD = 2\\nDIS = 3\\nES = 3\\nE = 4\\nFES = 4\\nF = 5\\nFIS = 6\\nGES = 6\\nG = 7\\nGIS = 8\\nAS = 8\\nA = 9\\nAIS = 10\\nBES = 10\\nB = 11\\nCES = 11\\n"}, {"path": "lua/com/inspect.lua", "data": "local inspect ={\\n _VERSION = \'inspect.lua 3.1.0\',\\n _URL = \'http://github.com/kikito/inspect.lua\',\\n _DESCRIPTION = \'human-readable representations of tables\',\\n _LICENSE = [[\\n MIT LICENSE\\n\\n Copyright (c) 2013 Enrique Garc\\u00eda Cota\\n\\n Permission is hereby granted, free of charge, to any person obtaining a\\n copy of this software and associated documentation files (the\\n \\"Software\\"), to deal in the Software without restriction, including\\n without limitation the rights to use, copy, modify, merge, publish,\\n distribute, sublicense, and/or sell copies of the Software, and to\\n permit persons to whom the Software is furnished to do so, subject to\\n the following conditions:\\n\\n The above copyright notice and this permission notice shall be included\\n in all copies or substantial portions of the Software.\\n\\n THE SOFTWARE IS PROVIDED \\"AS IS\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\\n OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\\n ]]\\n}\\n\\nlocal tostring = tostring\\n\\ninspect.KEY = setmetatable({}, {__tostring = function() return \'inspect.KEY\' end})\\ninspect.METATABLE = setmetatable({}, {__tostring = function() return \'inspect.METATABLE\' end})\\n\\nlocal function rawpairs(t)\\n return next, t, nil\\nend\\n\\n-- Apostrophizes the string if it has quotes, but not aphostrophes\\n-- Otherwise, it returns a regular quoted string\\nlocal function smartQuote(str)\\n if str:match(\'\\"\') and not str:match(\\"\'\\") then\\n return \\"\'\\" .. str .. \\"\'\\"\\n end\\n return \'\\"\' .. str:gsub(\'\\"\', \'\\\\\\\\\\"\') .. \'\\"\'\\nend\\n\\n-- \\\\a => \'\\\\\\\\a\', \\\\0 => \'\\\\\\\\0\', 31 => \'\\\\31\'\\nlocal shortControlCharEscapes = {\\n [\\"\\\\a\\"] = \\"\\\\\\\\a\\", [\\"\\\\b\\"] = \\"\\\\\\\\b\\", [\\"\\\\f\\"] = \\"\\\\\\\\f\\", [\\"\\\\n\\"] = \\"\\\\\\\\n\\",\\n [\\"\\\\r\\"] = \\"\\\\\\\\r\\", [\\"\\\\t\\"] = \\"\\\\\\\\t\\", [\\"\\\\v\\"] = \\"\\\\\\\\v\\"\\n}\\nlocal longControlCharEscapes = {} -- \\\\a => nil, \\\\0 => \\\\000, 31 => \\\\031\\nfor i=0, 31 do\\n local ch = string.char(i)\\n if not shortControlCharEscapes[ch] then\\n shortControlCharEscapes[ch] = \\"\\\\\\\\\\"..i\\n longControlCharEscapes[ch] = string.format(\\"\\\\\\\\%03d\\", i)\\n end\\nend\\n\\nlocal function escape(str)\\n return (str:gsub(\\"\\\\\\\\\\", \\"\\\\\\\\\\\\\\\\\\")\\n :gsub(\\"(%c)%f[0-9]\\", longControlCharEscapes)\\n :gsub(\\"%c\\", shortControlCharEscapes))\\nend\\n\\nlocal function isIdentifier(str)\\n return type(str) == \'string\' and str:match( \\"^[_%a][_%a%d]*$\\" )\\nend\\n\\nlocal function isSequenceKey(k, sequenceLength)\\n return type(k) == \'number\'\\n and 1 <= k\\n and k <= sequenceLength\\n and math.floor(k) == k\\nend\\n\\nlocal defaultTypeOrders = {\\n [\'number\'] = 1, [\'boolean\'] = 2, [\'string\'] = 3, [\'table\'] = 4,\\n [\'function\'] = 5, [\'userdata\'] = 6, [\'thread\'] = 7\\n}\\n\\nlocal function sortKeys(a, b)\\n local ta, tb = type(a), type(b)\\n\\n -- strings and numbers are sorted numerically/alphabetically\\n if ta == tb and (ta == \'string\' or ta == \'number\') then return a < b end\\n\\n local dta, dtb = defaultTypeOrders[ta], defaultTypeOrders[tb]\\n -- Two default types are compared according to the defaultTypeOrders table\\n if dta and dtb then return defaultTypeOrders[ta] < defaultTypeOrders[tb]\\n elseif dta then return true -- default types before custom ones\\n elseif dtb then return false -- custom types after default ones\\n end\\n\\n -- custom types are sorted out alphabetically\\n return ta < tb\\nend\\n\\n-- For implementation reasons, the behavior of rawlen & # is \\"undefined\\" when\\n-- tables aren\'t pure sequences. So we implement our own # operator.\\nlocal function getSequenceLength(t)\\n local len = 1\\n local v = rawget(t,len)\\n while v ~= nil do\\n len = len + 1\\n v = rawget(t,len)\\n end\\n return len - 1\\nend\\n\\nlocal function getNonSequentialKeys(t)\\n local keys, keysLength = {}, 0\\n local sequenceLength = getSequenceLength(t)\\n for k,_ in rawpairs(t) do\\n if not isSequenceKey(k, sequenceLength) then\\n keysLength = keysLength + 1\\n keys[keysLength] = k\\n end\\n end\\n table.sort(keys, sortKeys)\\n return keys, keysLength, sequenceLength\\nend\\n\\nlocal function countTableAppearances(t, tableAppearances)\\n tableAppearances = tableAppearances or {}\\n\\n if type(t) == \'table\' then\\n if not tableAppearances[t] then\\n tableAppearances[t] = 1\\n for k,v in rawpairs(t) do\\n countTableAppearances(k, tableAppearances)\\n countTableAppearances(v, tableAppearances)\\n end\\n countTableAppearances(getmetatable(t), tableAppearances)\\n else\\n tableAppearances[t] = tableAppearances[t] + 1\\n end\\n end\\n\\n return tableAppearances\\nend\\n\\nlocal copySequence = function(s)\\n local copy, len = {}, #s\\n for i=1, len do copy[i] = s[i] end\\n return copy, len\\nend\\n\\nlocal function makePath(path, ...)\\n local keys = {...}\\n local newPath, len = copySequence(path)\\n for i=1, #keys do\\n newPath[len + i] = keys[i]\\n end\\n return newPath\\nend\\n\\nlocal function processRecursive(process, item, path, visited)\\n if item == nil then return nil end\\n if visited[item] then return visited[item] end\\n\\n local processed = process(item, path)\\n if type(processed) == \'table\' then\\n local processedCopy = {}\\n visited[item] = processedCopy\\n local processedKey\\n\\n for k,v in rawpairs(processed) do\\n processedKey = processRecursive(process, k, makePath(path, k, inspect.KEY), visited)\\n if processedKey ~= nil then\\n processedCopy[processedKey] = processRecursive(process, v, makePath(path, processedKey), visited)\\n end\\n end\\n\\n local mt = processRecursive(process, getmetatable(processed), makePath(path, inspect.METATABLE), visited)\\n if type(mt) ~= \'table\' then mt = nil end -- ignore not nil/table __metatable field\\n setmetatable(processedCopy, mt)\\n processed = processedCopy\\n end\\n return processed\\nend\\n\\n\\n\\n-------------------------------------------------------------------\\n\\nlocal Inspector = {}\\nlocal Inspector_mt = {__index = Inspector}\\n\\nfunction Inspector:puts(...)\\n local args = {...}\\n local buffer = self.buffer\\n local len = #buffer\\n for i=1, #args do\\n len = len + 1\\n buffer[len] = args[i]\\n end\\nend\\n\\nfunction Inspector:down(f)\\n self.level = self.level + 1\\n f()\\n self.level = self.level - 1\\nend\\n\\nfunction Inspector:tabify()\\n self:puts(self.newline, string.rep(self.indent, self.level))\\nend\\n\\nfunction Inspector:alreadyVisited(v)\\n return self.ids[v] ~= nil\\nend\\n\\nfunction Inspector:getId(v)\\n local id = self.ids[v]\\n if not id then\\n local tv = type(v)\\n id = (self.maxIds[tv] or 0) + 1\\n self.maxIds[tv] = id\\n self.ids[v] = id\\n end\\n return tostring(id)\\nend\\n\\nfunction Inspector:putKey(k)\\n if isIdentifier(k) then return self:puts(k) end\\n self:puts(\\"[\\")\\n self:putValue(k)\\n self:puts(\\"]\\")\\nend\\n\\nfunction Inspector:putTable(t)\\n if t == inspect.KEY or t == inspect.METATABLE then\\n self:puts(tostring(t))\\n elseif self:alreadyVisited(t) then\\n self:puts(\'<table \', self:getId(t), \'>\')\\n elseif self.level >= self.depth then\\n self:puts(\'{...}\')\\n else\\n if self.tableAppearances[t] > 1 then self:puts(\'<\', self:getId(t), \'>\') end\\n\\n local nonSequentialKeys, nonSequentialKeysLength, sequenceLength = getNonSequentialKeys(t)\\n local mt = getmetatable(t)\\n\\n self:puts(\'{\')\\n self:down(function()\\n local count = 0\\n for i=1, sequenceLength do\\n if count > 0 then self:puts(\',\') end\\n self:puts(\' \')\\n self:putValue(t[i])\\n count = count + 1\\n end\\n\\n for i=1, nonSequentialKeysLength do\\n local k = nonSequentialKeys[i]\\n if count > 0 then self:puts(\',\') end\\n self:tabify()\\n self:putKey(k)\\n self:puts(\' = \')\\n self:putValue(t[k])\\n count = count + 1\\n end\\n\\n if type(mt) == \'table\' then\\n if count > 0 then self:puts(\',\') end\\n self:tabify()\\n self:puts(\'<metatable> = \')\\n self:putValue(mt)\\n end\\n end)\\n\\n if nonSequentialKeysLength > 0 or type(mt) == \'table\' then -- result is multi-lined. Justify closing }\\n self:tabify()\\n elseif sequenceLength > 0 then -- array tables have one extra space before closing }\\n self:puts(\' \')\\n end\\n\\n self:puts(\'}\')\\n end\\nend\\n\\nfunction Inspector:putValue(v)\\n local tv = type(v)\\n\\n if tv == \'string\' then\\n self:puts(smartQuote(escape(v)))\\n elseif tv == \'number\' or tv == \'boolean\' or tv == \'nil\' or\\n tv == \'cdata\' or tv == \'ctype\' then\\n self:puts(tostring(v))\\n elseif tv == \'table\' then\\n self:putTable(v)\\n else\\n self:puts(\'<\', tv, \' \', self:getId(v), \'>\')\\n end\\nend\\n\\n-------------------------------------------------------------------\\n\\nfunction inspect.inspect(root, options)\\n options = options or {}\\n\\n local depth = options.depth or math.huge\\n local newline = options.newline or \'\\\\n\'\\n local indent = options.indent or \' \'\\n local process = options.process\\n\\n if process then\\n root = processRecursive(process, root, {}, {})\\n end\\n\\n local inspector = setmetatable({\\n depth = depth,\\n level = 0,\\n buffer = {},\\n ids = {},\\n maxIds = {},\\n newline = newline,\\n indent = indent,\\n tableAppearances = countTableAppearances(root)\\n }, Inspector_mt)\\n\\n inspector:putValue(root)\\n\\n return table.concat(inspector.buffer)\\nend\\n\\nsetmetatable(inspect, { __call = function(_, ...) return inspect.inspect(...) end })\\n\\nreturn inspect\\n"}, {"path": "lua/com/tests.lua", "data": "require \\"com/com\\"\\nrequire \\"com/globals\\"\\n\\nfunction testpitchdiff(a, b, expected)\\n local diff = relpitchdiff(a, b)\\n if diff ~= expected then\\n print(\\"pitchdiff: \\" .. a .. \\"-\\" .. b .. \\"~=\\" .. expected .. \\"(\\" .. diff .. \\")\\" )\\n end\\nend\\n\\ntestpitchdiff( 0, 0, 0)\\ntestpitchdiff( 0, 5, 5)\\ntestpitchdiff( 5, 0, -5)\\ntestpitchdiff( 0, 6, -6)\\ntestpitchdiff( 6, 0, 6)\\ntestpitchdiff( 7, 0, 5)\\ntestpitchdiff( 0, 7, -5)\\ntestpitchdiff( 7, 1, 6)\\ntestpitchdiff( 1, 7, -6)\\ntestpitchdiff( 7, 11, 4)\\ntestpitchdiff(11, 7, -4)\\ntestpitchdiff( 0, 10, -2)\\ntestpitchdiff(10, 0, 2)\\ntestpitchdiff( 5, 9, 4)\\ntestpitchdiff( 9, 5, -4)\\ntestpitchdiff( 5, 11, -6)\\ntestpitchdiff(11, 5, 6)\\ntestpitchdiff( 9, 11, 2)\\ntestpitchdiff(11, 9, -2)\\ntestpitchdiff(11, 1, 2)\\ntestpitchdiff( 1, 11, -2)\\ntestpitchdiff( 12, 24, 0)\\n\\n\\nx = tokeyvalue({\\"a\\", 100, \\"b\\", 200, \\"c\\", 300})\\nassert(x.a == 100)\\nassert(x.b == 200)\\nassert(x.c == 300)\\n\\n\\nassert( toMidiPitch({pitch=C, octave=0}) == 60)\\nassert( toMidiPitch({pitch=C, octave=1}) == 72)\\nassert( toMidiPitch({pitch=CIS, octave=1}) == 73)\\nassert( toMidiPitch({pitch=C, octave=-1}) == 48)"}, {"path": "lua/mods/_drumRudimentsRepository.lua", "data": "-- A definition of drum rudiments.\\n-- The actual rudiment duration dosen\'t matter. At the end, the sequence\\n-- will be ajdusted, so that it fits into the duration of the related event.\\n-- The relations between the different durations is what matters.\\n-- For example\\n-- A rudiment with four quarters, played over the duration of one eight:\\n-- every rudiment quarter will become eventually a 32th\\nR=\\"R\\"\\nL=\\"L\\"\\n\\nFlamType = \\"flam\\"\\nDragType = \\"drag\\"\\n\\n-- durations\\nlocal _4 = 1\\nlocal _8 = 1/2\\nlocal _16 = 1/4\\nlocal _32 = 1/8 \\nlocal _4t = _4 / 3\\nlocal _8t = _8 / 3\\nlocal _16t = _16 / 3\\nlocal _32t = _32 / 3\\n-- velocity factors\\nAccent = \\"accent\\"\\nUnaccented = \\"unaccented\\"\\nGraceNote = \\"grace note\\"\\n\\nlocal ac = Accent\\nlocal un = Unaccented\\n\\n\\n-- create a rudiment sequence event\\nlocal function Stroke(which, duration, velocityClass)\\n if velocityClass == nil then\\n velocityClass = Accent\\n end\\n return { which=which, duration=duration, velocityClass = velocityClass }\\nend\\n\\nlocal function Flam(which, duration, velocityClass)\\n if velocityClass == nil then\\n velocityClass = Accent\\n end\\n return { which=which, duration=duration, velocityClass = velocityClass, type = FlamType}\\nend\\n\\nlocal function Drag(which, duration, velocityClass)\\n if velocityClass == nil then\\n velocityClass = Accent\\n end\\n return { which=which, duration=duration, velocityClass = velocityClass, type = DragType}\\nend\\n\\nlocal S = Stroke\\n\\nlocal function Diddle(which, duration)\\n return {\\n S(which, duration, un), S(which, duration, un)\\n }\\nend\\n\\n-- returns L for R and R for L.\\nfunction Alt(which)\\n if which == L then\\n return R\\n elseif which == R then\\n return L\\n end\\n return nil\\nend\\n\\n-- alternates the \\"Hand\\" value (which).\\n-- \\"L\\" -> \\"R\\"\\n-- \\"R\\" -> \\"L\\"\\nfunction AlternateEvent(event)\\n local copy = deepcopy(event)\\n copy.which = Alt(event.which)\\n return copy\\nend\\n\\n-- Creates a alternating stroke sequence RL...n or LR...n.\\n-- @param startingEvent: the first event. All further created events are unaccented.\\n-- @param numberOfPerformances: the number of the total performances. One RL means one performance.\\nlocal function Alternate(startingEvent, numberOfPerformances)\\n if numberOfPerformances == nil then\\n numberOfPerformances = 1\\n end\\n local result = {startingEvent}\\n local which = startingEvent.which\\n for i = 0, (numberOfPerformances-1)*2, 1 do\\n which = Alt(which)\\n table.insert(result, S(which, startingEvent.duration, un))\\n end\\n return result\\nend\\n\\n-- Creates a sequence of variable args.\\n-- An argument can be either a array of events or a single event\\nlocal function Seq(...)\\n local args = table.pack(...)\\n local result = {}\\n for i=1,args.n do\\n local arg = args[i]\\n local isEvent = arg.which ~= nil\\n if isEvent then\\n table.insert(result, arg)\\n else\\n for key, event in pairs(arg) do\\n table.insert(result, event)\\n end\\n end\\n end\\n return result\\nend\\n\\nRudiments = {\\n [\\"singleStrokeRoll\\"] =\\n { S(R, _4), S(L, _4) },\\n [\\"doubleStrokeRoll\\"] =\\n { S(R, _4), S(R, _4), S(L, _4), S(L, _4) },\\n [\\"trippleStrokeRoll\\"] =\\n { S(R, _4), S(R, _4), S(R, _4), S(L, _4), S(L, _4), S(L, _4) },\\n [\\"fiveStrokeRoll\\"] =\\n { S(R, _32, un), S(R, _32, un), S(L, _32, un), S(L, _32, un), S(R, _8, ac) },\\n [\\"singleStrokeFour\\"] =\\n { S(R, _4t), S(L, _4t), S(R, _4t), S(L, _4) },\\n [\\"singleStrokeSeven\\"] =\\n { S(R, _8t), S(L, _8t), S(R, _8t), S(L, _8t), S(R, _8t), S(L, _8t), S(R, _4) },\\n [\\"multipleBounceRoll\\"] =\\n { S(R, _32, un), S(R, _32, un), S(R, _32, un), S(R, _32, un),\\n S(L, _32, un), S(L, _32, un), S(L, _32, un), S(L, _32, un)},\\n [\\"sixStrokeRoll\\"] =\\n Seq(S(R, _8, ac), Diddle(L, _16), Diddle(R, _16), S(L, _8, ac)),\\n [\\"sevenStrokeRoll\\"] =\\n Seq(Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), S(R, _8, ac)),\\n [\\"nineStrokeRoll\\"] =\\n Seq(Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), S(R, _8, ac)),\\n [\\"tenStrokeRoll\\"] =\\n Seq(Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), S(R, _8, ac), S(L, _8, ac)),\\n [\\"elevenStrokeRoll\\"] =\\n Seq(Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), S(L, _8, ac)),\\n [\\"thirteenStrokeRoll\\"] =\\n Seq(Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), S(R, _8, ac)),\\n [\\"fifteenStrokeRoll\\"] =\\n Seq(Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), S(L, _8, ac)),\\n [\\"seventeenStrokeRoll\\"] =\\n Seq(Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), Diddle(R, _16), Diddle(L, _16), S(R, _8, ac)),\\n [\\"paradiddle\\"] =\\n Seq(Alternate(S(R, _16, ac)), Diddle(R, _16)),\\n [\\"doubleParadiddle\\"] =\\n Seq(Alternate(S(R, _16, ac), 2), Diddle(R, _16)),\\n [\\"trippleParadiddle\\"] =\\n Seq(Alternate(S(R, _16, ac), 3), Diddle(R, _16)),\\n [\\"paradiddlediddle\\"] =\\n Seq(Alternate(S(R, _16, ac)), Diddle(R, _16), Diddle(L, _16)),\\n [\\"flam\\"] =\\n Seq(Flam(R, _4)),\\n [\\"flamAccent\\"] =\\n Seq(Flam(R, _8, ac), S(L, _8, un), S(R, _8, un)),\\n [\\"flamTap\\"] =\\n Seq(Flam(R, _16, ac), S(R, _16, un)),\\n [\\"flamacue\\"] =\\n Seq(Flam(R, _16, un), S(L, _16, ac), S(R, _16, un), S(L, _16, un), Flam(R, _4, un)),\\n [\\"flamParadiddle\\"] =\\n Seq(Flam(R, _16, ac), S(L, _16, un), Diddle(R, _16)),\\n [\\"singleFlammedMill\\"] =\\n Seq(Flam(R, _16, ac), S(R, _16, un), S(L, _16, un), S(R, _16, un)),\\n [\\"pataflafla\\"] =\\n Seq(Flam(R, _16, ac), S(L, _16, un), Diddle(R, _16), Flam(L, _16, ac)),\\n [\\"swissArmytriplet\\"] =\\n Seq(Flam(R, _16t, ac), S(R, _16t, un), S(L, _16t, un)),\\n [\\"invertedFlamTap\\"] =\\n Seq(Flam(R, _16, ac), S(L, _16, un)),\\n [\\"flamDrag\\"] =\\n Seq(Flam(R, _8, ac), S(L, _16, un), S(L, _16, un), S(R, _8, un)),\\n [\\"drag\\"] =\\n Seq(Drag(R, _4, ac)),\\n [\\"singleDragTap\\"] =\\n Seq(Drag(R, _8, un), S(L, _8, ac)),\\n [\\"doubleDragTap\\"] =\\n Seq(Drag(R, _8, un), Drag(R, _8, un), S(L, _8, ac)),\\n [\\"lesson25\\"] =\\n Seq(Drag(R, _16, un), S(L, _16, un), S(R, _8, ac)),\\n [\\"singleDragadiddle\\"] =\\n Seq(Drag(R, _16, ac), S(L, _16, un), Diddle(R, _16)),\\n [\\"dragParadiddle1\\"] =\\n Seq(S(R, _8, ac), Drag(R, _16, un), S(L, _16, un), Diddle(R, _16)),\\n [\\"dragParadiddle2\\"] =\\n Seq(S(R, _8, ac), Drag(R, _8, un), Drag(R, _16, un), S(L, _16, un), Diddle(R, _16)),\\n [\\"singleRatamacue\\"] =\\n Seq(Drag(R, _8t, un), S(L, _8t, un), S(R, _8t, un), S(L, _8, ac)),\\n [\\"doubleRatamacue\\"] =\\n Seq(Drag(R, _8, un), Drag(R, _8t, un), S(L, _8t, un), S(R, _8t, un), S(L, _8, ac)),\\n [\\"trippleRatamacue\\"] =\\n Seq(Drag(R, _8, un), Drag(R, _8, un), Drag(R, _8t, un), S(L, _8t, un), S(R, _8t, un), S(L, _8, ac)) \\n}\\n"}, {"path": "lua/mods/_events.lua", "data": "\\nNote = {}\\n\\nfunction Note:new()\\n local o = {}\\n setmetatable(o, self)\\n self.__index = self\\n o.duration = 0\\n o.isTied = false\\n o.offset = 0\\n o.pitches = {}\\n o.type = \\"note\\"\\n o.velocity = 0\\n return o \\nend\\n\\nfunction Note:addPitch(pitch, octave)\\n table.insert(self.pitches, {pitch=pitch, octave=octave})\\nend\\n\\nfunction pitchCompare(a, b)\\n a = a.pitch + (a.octave * 12)\\n b = b.pitch + (b.octave * 12)\\n return a < b\\nend\\n\\nfunction pitchCompareReversed(a, b)\\n a = a.pitch + (a.octave * 12)\\n b = b.pitch + (b.octave * 12)\\n return a > b\\nend\\n"}, {"path": "lua/mods/drumRudiments.lua", "data": "-- <command name=\\"drumRudiments\\" where=\\"mod\\" using=\\"lua/mod/drumRudiments.lua\\">\\n-- <![CDATA[\\n-- Implements a collection of different drum rudiments. ([see Wikipedia](https://en.wikipedia.org/wiki/Drum_rudiment))\\n-- You can specify which notes are for `L` and `R` and performing duration.\\n-- This will be achieved by using an chord as source material.\\n-- The chord pitches will be used for `L` and `R`.\\n-- The length of the chord event defines over which time the rudiment will be peformed.\\n-- An event tag specifies which rudiment will be performed.\\n-- For example:\\n-- This plays one paradiddle over a length of 1 quarter\\n-- using `sn1` for R and `sn2` for L:\\n-- ```\\n-- /mod: drumRudiments/\\\\n\\n-- R L \\\\n\\n-- \\"paradiddle\\"@<\\"sn1\\" \\"sn2\\">4\\\\n\\n-- ```\\n-- Examples:\\n-- **a single paradiddle**\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/drumRudiments.lua\\";\\\\n\\n--tempo: 150;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=118;\\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /mod: drumRudiments/\\\\n\\n-- -- a paradiddle (RLRR) with c\' for R and c for L\\\\n\\n-- \\"paradiddle\\"@<c\' c>1\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- **repeating**\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/drumRudiments.lua\\";\\\\n\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=118;\\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /mod: drumRudiments/\\\\n\\n-- -- performs 4 paradiddles (RLRR LRLL RLRR LRLL) with c\' for R and c for L\\\\n\\n-- \\"4x paradiddle\\"@<c\' c>1\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- **orchestration**\\n-- If you want to orchestrate a rudiment over a drum set,\\n-- you are able to define more R & L notes. *(The total number of the notes has to be even.)*\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/drumRudiments.lua\\";\\\\n\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=118;\\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /mod: drumRudiments/\\\\n\\n-- -- performs 4 paradiddles (RLRR LRLL RLRR LRLL) with \\\\n\\n-- -- c\' for R1 and c for L1\\\\n\\n-- -- and c, for R2 and c,, for L2.\\\\n\\n-- -- The final sequence will be: c\'(R1) c(L1) c,(R2) c,,(R1) ... \\\\n\\n-- \\"4x paradiddle\\"@<c\' c c, c,,>1\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- **Supported Rudiments**\\n--<ul style=\\"font-size: 0.9em;\\">\\n--<li>singleStrokeRoll</li>\\n--<li>doubleStrokeRoll</li>\\n--<li>trippleStrokeRoll</li>\\n--<li>fiveStrokeRoll</li>\\n--<li>singleStrokeFour</li>\\n--<li>singleStrokeSeven</li>\\n--<li>multipleBounceRoll</li>\\n--<li>sixStrokeRoll</li>\\n--<li>sevenStrokeRoll</li>\\n--<li>nineStrokeRoll</li>\\n--<li>tenStrokeRoll</li>\\n--<li>elevenStrokeRoll</li>\\n--<li>thirteenStrokeRoll</li>\\n--<li>fifteenStrokeRoll</li>\\n--<li>seventeenStrokeRoll</li>\\n--<li>paradiddle</li>\\n--<li>doubleParadiddle</li>\\n--<li>trippleParadiddle</li>\\n--<li>paradiddlediddle</li>\\n--<li>flam</li>\\n--<li>flamAccent</li>\\n--<li>flamTap</li>\\n--<li>flamacue</li>\\n--<li>flamParadiddle</li>\\n--<li>singleFlammedMill</li>\\n--<li>pataflafla</li>\\n--<li>swissArmytriplet</li>\\n--<li>invertedFlamTap</li>\\n--<li>flamDrag</li>\\n--<li>singleDragTap</li>\\n--<li>doubleDragTap</li>\\n--<li>lesson25</li>\\n--<li>singleDragadiddle</li>\\n--<li>dragParadiddle1</li>\\n--<li>dragParadiddle2</li>\\n--<li>singleRatamacue</li>\\n--<li>doubleRatamacue</li>\\n--<li>trippleRatamacue</li>\\n--</ul>\\n-- ]]>\\n-- </command>\\n-- <param name=\\"velocityFactorAccented\\" optional=\\"1\\" type=\\"0..1\\">The velocity factor for accented notes (Default=1)</param>\\n-- <param name=\\"velocityFactorUnaccented\\" optional=\\"1\\" type=\\"0..1\\">The velocity factor for unaccented notes (Default=0.7)</param>\\n-- <param name=\\"velocityFactorGraceNote\\" optional=\\"1\\" type=\\"0..1\\">The velocity factor for accented notes (Default=1)</param>\\n-- <param name=\\"flamOffset\\" optional=\\"1\\" type=\\"0..N\\">The offset in quartes when to perform the grace note before the actual note (Default=0.05)</param>\\n-- <param name=\\"dragOffset\\" optional=\\"1\\" type=\\"0..N\\">The offset in quartes when to perform the two grace notes before the actual note (Default=0.05)</param>\\n\\n\\n\\nrequire \\"lua/com/com\\"\\nrequire \\"_drumRudimentsRepository\\"\\nrequire \\"_events\\"\\n\\nparameters = {\\n { name=\\"velocityFactorAccented\\", default=\\"1\\" },\\n { name=\\"velocityFactorUnaccented\\", default=\\"0.7\\" },\\n { name=\\"velocityFactorGraceNote\\", default=\\"0.2\\" },\\n { name=\\"flamOffset\\", default=\\"0.05\\" },\\n { name=\\"dragOffset\\", default=\\"0.05\\" },\\n}\\n\\n\\nSupportedRepeatTags = {\\n [\\"2x\\"] = 2,\\n [\\"3x\\"] = 3,\\n [\\"4x\\"] = 4,\\n [\\"5x\\"] = 5,\\n [\\"6x\\"] = 6,\\n [\\"7x\\"] = 7,\\n [\\"8x\\"] = 8,\\n [\\"9x\\"] = 9,\\n [\\"10x\\"] = 10,\\n [\\"11x\\"] = 11,\\n [\\"12x\\"] = 12,\\n [\\"13x\\"] = 13,\\n [\\"14x\\"] = 14,\\n [\\"15x\\"] = 15,\\n [\\"16x\\"] = 16,\\n [\\"17x\\"] = 17,\\n [\\"18x\\"] = 18,\\n [\\"19x\\"] = 19,\\n [\\"20x\\"] = 20,\\n [\\"21x\\"] = 21,\\n [\\"22x\\"] = 22,\\n [\\"23x\\"] = 23,\\n [\\"24x\\"] = 24,\\n [\\"25x\\"] = 25,\\n [\\"26x\\"] = 26,\\n [\\"27x\\"] = 27,\\n [\\"28x\\"] = 28,\\n [\\"29x\\"] = 29,\\n [\\"30x\\"] = 30,\\n [\\"31x\\"] = 31,\\n [\\"32x\\"] = 32,\\n}\\n\\nlocal tiedEventCache = {\\n [\\"offset\\"] = 0,\\n [\\"duration\\"] = 0,\\n [\\"originEvent\\"] = nil\\n}\\n\\nlocal function newTiedEventCache(event)\\n tiedEventCache.duration = event.duration\\n tiedEventCache.originEvent = event\\nend\\n\\nlocal function isTiedEventCacheEmpty()\\n return tiedEventCache.originEvent == nil\\nend\\n\\nlocal function clearTiedEventCache()\\n tiedEventCache.originEvent = nil\\n tiedEventCache.duration = 0\\n tiedEventCache.offset = 0\\nend\\n\\nlocal function getPossibleRudimentEvent(events)\\n local firstEvent = events[1]\\n if not isTiedEventCacheEmpty() then\\n tiedEventCache.duration = tiedEventCache.duration + firstEvent.duration\\n tiedEventCache.offset = tiedEventCache.offset - firstEvent.duration\\n if firstEvent.isTied then\\n return nil\\n end\\n end\\n if not isTiedEventCacheEmpty() and not firstEvent.isTied then\\n firstEvent = tiedEventCache.originEvent\\n firstEvent.isTied = false\\n firstEvent.offset = tiedEventCache.offset\\n firstEvent.duration = tiedEventCache.duration\\n clearTiedEventCache()\\n end\\n return firstEvent\\nend\\n\\n\\nfunction perform(events, params, timeinfo)\\n local firstEvent = getPossibleRudimentEvent(events)\\n if (firstEvent == nil) then\\n return {}\\n end\\n if #events == 0 or #firstEvent.tags == 0 then\\n return events\\n end\\n if firstEvent.duration == 0 then\\n return events\\n end\\n local rudimentPerformer = RudimentPerformer:new()\\n rudimentPerformer.velocityFactorAccented = tonumber(params.velocityFactorAccented)\\n rudimentPerformer.velocityFactorUnaccented = tonumber(params.velocityFactorUnaccented)\\n rudimentPerformer.velocityFactorGraceNote = tonumber(params.velocityFactorGraceNote)\\n rudimentPerformer.flamOffset = tonumber(params.flamOffset)\\n rudimentPerformer.dragOffset = tonumber(params.dragOffset)\\n rudimentPerformer:setSourceEvent(firstEvent)\\n if rudimentPerformer.rudiment == nil then\\n return events\\n end\\n if firstEvent.isTied then\\n newTiedEventCache(firstEvent)\\n return {}\\n end\\n local rudimentEvents = rudimentPerformer:perform();\\n return rudimentEvents\\nend\\n\\nRudimentPerformer = {}\\nfunction RudimentPerformer:new(o)\\n local o = o or {}\\n setmetatable(o, self)\\n self.__index = self\\n self.idxL = 1\\n self.idxR = 1\\n self.offset = 0\\n self.velocityFactorAccented = 1\\n self.velocityFactorUnaccented = 0.7\\n self.velocityFactorGraceNote = 0.2\\n self.flamOffset = 0.05\\n self.dragOffset = 0.05\\n return o\\nend\\n\\nfunction RudimentPerformer:findRudimentName(tags)\\n for idx, tag in pairs(tags) do\\n local val = Rudiments[tag]\\n if val ~= nil then\\n return tag\\n end\\n end\\n return nil\\nend\\n\\nfunction RudimentPerformer:findRepeatTagValue(tags)\\n for idx, tag in pairs(tags) do\\n local val = SupportedRepeatTags[tag]\\n if val ~= nil then\\n return val\\n end\\n end\\n return nil\\nend\\n\\nfunction RudimentPerformer:setSourceEvent(event)\\n local rudimentName = self:findRudimentName(event.tags)\\n local source = event.pitches\\n self.offset = event.offset\\n self.rudiment = Rudiments[rudimentName]\\n if self.rudiment == nil then\\n return\\n end\\n if #source % 2 ~= 0 then\\n -- not enough events\\n error(\\"not enough chord pitches for rudiment \\" .. rudimentName)\\n end\\n local repeatCount = self:findRepeatTagValue(event.tags)\\n if repeatCount ~= nil then\\n self:repeat_(repeatCount)\\n end\\n self.duration = event.duration\\n self.ls = {}\\n self.rs = {}\\n self.velocity = event.velocity\\n for idx, pitch in pairs(source) do\\n if idx % 2 == 0 then\\n table.insert(self.ls, pitch)\\n else\\n table.insert(self.rs, pitch)\\n end\\n end\\nend\\n\\nfunction RudimentPerformer:repeat_(count)\\n local sequence = {}\\n for i=1,count do\\n local useAlternation = i % 2 == 1\\n for idx, rudimentEvent in pairs(self.rudiment) do\\n local event = rudimentEvent\\n if (useAlternation) then\\n event = AlternateEvent(event)\\n end\\n table.insert(sequence, event)\\n end\\n end\\n self.rudiment = sequence\\nend\\n\\nfunction RudimentPerformer:l()\\n local l = self.ls[self.idxL]\\n self.idxL = self.idxL + 1\\n if self.idxL > #self.ls then\\n self.idxL = 1\\n end\\n return l\\nend\\n\\nfunction RudimentPerformer:r()\\n local r = self.rs[self.idxR]\\n self.idxR = self.idxR + 1\\n if self.idxR > #self.ls then\\n self.idxR = 1\\n end\\n return r\\nend\\n\\nfunction RudimentPerformer:nextPitch(lOrR)\\n if lOrR == nil then\\n error(\\"invalid L R value for rudiment: nil\\")\\n end\\n if lOrR == L then\\n return self:l()\\n elseif lOrR == R then\\n return self:r()\\n end\\n error(\\"invalid L R value for rudiment: \\" .. lOrR)\\nend\\n\\n-- duration of the rudiment definition\\nfunction RudimentPerformer:defDuration()\\n local duration = 0\\n for idx, rudiment in pairs(self.rudiment) do\\n duration = duration + rudiment.duration\\n end\\n return duration\\nend\\n\\nfunction RudimentPerformer:getVelocityFactor(rudiment)\\n if rudiment.velocityClass == Accent then\\n return self.velocityFactorAccented\\n end\\n if rudiment.velocityClass == Unaccented then\\n return self.velocityFactorUnaccented\\n end\\n if rudiment.velocityClass == GraceNote then\\n return self.velocityFactorGraceNote\\n end\\n error(\\"no velocity value for class \\" .. rudiment.velocityClass)\\nend\\n\\nfunction RudimentPerformer:perform()\\n local events = {}\\n local offset = self.offset\\n local durationFactor = self.duration / self:defDuration()\\n for idx, rudiment in pairs(self.rudiment) do\\n local type = rudiment.type\\n local which = rudiment.which\\n local duration = rudiment.duration\\n local velocityFactor = self:getVelocityFactor(rudiment)\\n local note = Note:new()\\n note.duration = duration * durationFactor\\n note.velocity = self.velocity * velocityFactor\\n note.offset = offset\\n local pitch = self:nextPitch(which)\\n note:addPitch(pitch.pitch, pitch.octave)\\n if type == FlamType then\\n self:performFlam(events, note, Alt(which))\\n end\\n if type == DragType then\\n self:performDrag(events, note, Alt(which))\\n end \\n table.insert(events, note)\\n offset = offset + note.duration\\n end\\n return events\\nend\\n\\n\\nfunction RudimentPerformer:performFlam(events, note, which)\\n local flamDuration = self.flamOffset\\n local flam = Note:new()\\n local pitch = self:nextPitch(which)\\n flam:addPitch(pitch.pitch, pitch.octave)\\n flam.duration = flamDuration\\n flam.velocity = note.velocity * self.velocityFactorGraceNote\\n flam.offset = note.offset\\n note.offset = note.offset + flamDuration\\n note.duration = note.duration\\n table.insert(events, flam)\\nend\\n\\nfunction RudimentPerformer:performDrag(events, note, which)\\n local flamDuration = self.dragOffset\\n local pitch = self:nextPitch(which)\\n local flam = Note:new()\\n flam:addPitch(pitch.pitch, pitch.octave)\\n flam.duration = flamDuration\\n flam.velocity = note.velocity * self.velocityFactorGraceNote\\n flam.offset = note.offset\\n table.insert(events, flam)\\n\\n flam = Note:new()\\n flam:addPitch(pitch.pitch, pitch.octave)\\n flam.duration = flamDuration\\n flam.velocity = note.velocity * self.velocityFactorGraceNote\\n flam.offset = note.offset + flamDuration\\n table.insert(events, flam)\\n\\n note.offset = note.offset + flamDuration * 2\\n note.duration = note.duration\\n\\nend\\n"}, {"path": "lua/mods/guitarStroke.lua", "data": "-- <command name=\\"guitarStroke\\" where=\\"mod\\" using=\\"lua/mod/guitarStroke.lua\\">\\n-- <![CDATA[\\n-- Simulates guitar strokes as mini arpeggios.\\n-- *Note: the alternate mode works only if this mod is set via instrumentConf.*\\n-- ```\\n-- -- does not work: \\\\n\\n-- [ \\\\n\\n-- { \\\\n\\n-- /mod: guitarStroke _mode=alternate/\\\\n\\n-- } \\\\n\\n-- ] \\\\n\\n-- ```\\n-- ```\\n-- -- does work: \\\\n\\n-- instrumentConf: myInstrument mod guitarStroke _mode=alternate; \\\\n\\n-- ```\\n-- **Example**\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/guitarStroke.lua\\";\\\\n\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef: piano MyDevice _ch=0 _pc=24;\\\\n\\n--instrumentConf: piano mod guitarStroke _mode=alternate _value=16; \\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- <c e g b>4 <c e g b>4 <c eb g bb>2 | <c eb g bb>2 <c eb g bb>2\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- ]]>\\n-- </command>\\n-- <param name=\\"direction\\" optional=\\"1\\" type=\\"[up,down]\\">Specifies the start direction of the stroke</param>\\n-- <param name=\\"value\\" optional=\\"1\\" type=\\"[1,2,4,8,...]\\">the duration of one arpeggio event. (Default=64)</param>\\n-- <param name=\\"mode\\" optional=\\"1\\" type=\\"[normal,alternate]\\">Perform only one stroke direction (normal) or alternates between up and down. (Default=normal)</param>\\n\\nrequire \\"lua/com/com\\"\\nrequire \\"_events\\"\\n\\n\\nparameters = {\\n -- can be up, down\\n { name=\\"direction\\", default=\\"up\\" },\\n -- can be 1, 2, 4, 8, 16, 32, 64, ...\\n { name=\\"value\\", default=\\"64\\" },\\n -- can be normal, alternate\\n { name=\\"mode\\", default=\\"normal\\" }\\n\\n}\\n\\nlocal direction = nil\\nlocal mode = nil\\n\\nfunction perform(eventsOrigin, params, timeinfo)\\n if #eventsOrigin > 2 then\\n return eventsOrigin\\n end\\n checkLegacyNamedParams(params, \\"direction\\", \\"mode\\", \\"value\\")\\n local directionParam = params.direction\\n local modeParam = params.mode\\n local value = params.value\\n value = tonumber(value)\\n local event = eventsOrigin[1]\\n local events = { }\\n local comparer = pitchCompare\\n \\n if mode == nil then\\n mode = modeParam\\n end\\n\\n if direction ==nil then\\n direction = directionParam\\n end\\n\\n if direction == \\"down\\" then\\n comparer = pitchCompareReversed\\n if mode == \\"alternate\\" then\\n direction = \\"up\\"\\n end\\n else\\n comparer = pitchCompare\\n if mode == \\"alternate\\" then\\n direction = \\"down\\"\\n end\\n end\\n\\n local duration = 1 / value\\n table.sort( event.pitches, comparer)\\n for i, pitch in pairs(event.pitches) do\\n local note = Note:new()\\n local newOffset = event.offset + (i-1) * duration\\n note.offset = newOffset\\n note.duration = event.duration - newOffset\\n note.isTied = event.isTied\\n note.velocity = event.velocity\\n note:addPitch(pitch.pitch, pitch.octave)\\n table.insert(events, note) \\n end\\n return events\\nend"}, {"path": "lua/mods/legato.lua", "data": "-- <command name=\\"legato\\" where=\\"mod\\" using=\\"lua/mod/legato.lua\\">\\n-- Performs every note legato. It is also possible to tag single notes.\\n-- If a tag is given, only the tagged notes are performed legato.\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/legato.lua\\";\\\\n\\n--tempo: 140;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=0;\\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /mod: legato _forTag=leg _amount=100/\\\\n\\n-- -- only the `d` will be performed legato. \\\\n\\n-- c \\"leg\\"@d e f\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- </command>\\n-- <param name=\\"forTag\\" optional=\\"1\\" type=\\"text\\">Specifies a tag name. If set only events with this tag name will be affected by the legato mod.</param>\\n-- <param name=\\"amount\\" optional=\\"1\\" type=\\"0..100\\">The ammount of the legato effect</param>\\n\\nrequire \\"lua/com/com\\"\\n\\nlocal defaultAmountValue = 50\\n\\nparameters = {\\n -- specify a tag name. If set only events with this tag name will be affected by the staccato mod. \\n { name=\\"forTag\\", default=ParameterValueNoTag },\\n -- the ammount of the staccato mod. Can be between 0 and 100\\n { name=\\"amount\\", default=\\"50\\" }\\n}\\n\\nfunction perform(events, params, timeinfo) \\n checkLegacyNamedParams(params, \\"forTag\\", \\"amount\\")\\n local tag = params.forTag\\n if tag == ParameterValueNoTag then\\n tag = nil\\n end\\n local amount = tonumber(params.amount)\\n local factor = 100 - ((amount/100) * 90)\\n factor = factor / 100\\n for i, event in pairs(events) do\\n if tag == nil or contains(event.tags, tag) then\\n event.duration = event.duration / factor\\n end\\n end\\n return events\\nend"}, {"path": "lua/mods/myArpeggio.lua", "data": "-- <command name=\\"myArpeggio\\" where=\\"mod\\" using=\\"lua/mod/myArpeggio.lua\\">\\n-- <![CDATA[\\n-- A simple arpeggio implementation.\\n-- **Example**\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/myArpeggio.lua\\";\\\\n\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef: piano MyDevice _ch=0 _pc=0;\\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /do: myArpeggio/ \\\\n\\n-- <c e g b>2 \\\\n\\n-- /do: myArpeggio _direction=down/ \\\\n\\n-- <c eb g bb>2 \\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- ]]>\\n-- </command>\\n-- <param name=\\"style\\" optional=\\"1\\" type=\\"[normal,legato]\\">Performs the arpeggio normal or legato</param>\\n-- <param name=\\"direction\\" optional=\\"1\\" type=\\"[up,down]\\">the direction of the arpeggio. (Default=up)</param>\\n\\nrequire \\"lua/com/com\\"\\nrequire \\"_events\\"\\n\\n\\nparameters = {\\n -- can be legato, normal\\n { name=\\"style\\", default=\\"normal\\" },\\n -- can be up, down\\n { name=\\"direction\\", default=\\"up\\" }\\n}\\n\\nfunction perform(eventsOrigin, params, timeinfo)\\n checkLegacyNamedParams(params, \\"direction\\", \\"style\\")\\n local event = eventsOrigin[1]\\n local events = { }\\n local comparer = pitchCompare\\n local direction = params.direction\\n local style = params.style\\n\\n if direction == \\"down\\" then\\n comparer = pitchCompareReversed\\n end\\n local duration = event.duration / #event.pitches\\n table.sort( event.pitches, comparer)\\n for i, pitch in pairs(event.pitches) do\\n local note = Note:new()\\n note.duration = duration\\n if style == \\"legato\\" then\\n note.duration = event.duration\\n end\\n note.velocity = event.velocity\\n note.offset = (i-1) * duration\\n note.isTied = event.isTied\\n note:addPitch(pitch.pitch, pitch.octave)\\n table.insert(events, note) \\n end\\n return events\\nend"}, {"path": "lua/mods/staccato.lua", "data": "-- <command name=\\"staccato\\" where=\\"mod\\" using=\\"lua/mod/staccato.lua\\">\\n-- Performs every note staccato. It is also possible to tag single notes.\\n-- If a tag is given, only the tagged notes are performed staccato.\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/staccato.lua\\";\\\\n\\n--tempo: 140;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=0;\\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /mod: staccato _forTag=stac _amount=100/\\\\n\\n-- -- only the `d` will be performed staccato. \\\\n\\n-- c \\"stac\\"@d e f\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ``` \\n-- </command>\\n-- <param name=\\"forTag\\" optional=\\"1\\" type=\\"text\\">Specifies a tag name. If set only events with this tag name will be affected by the staccato mod.</param>\\n-- <param name=\\"amount\\" optional=\\"1\\" type=\\"0..100\\">The ammount of the staccato effect</param>\\n\\nrequire \\"lua/com/com\\"\\n\\n\\nparameters = {\\n -- specify a tag name. If set only events with this tag name will be affected by the staccato mod. \\n { name=\\"forTag\\", default=ParameterValueNoTag },\\n -- the ammount of the staccato mod. Can be between 0 and 100\\n { name=\\"amount\\", default=\\"50\\" }\\n}\\n\\nfunction perform(events, params, timeinfo)\\n checkLegacyNamedParams(params, \\"forTag\\", \\"amount\\")\\n local tag = params.forTag\\n if tag == ParameterValueNoTag then\\n tag = nil\\n end\\n local amount = tonumber(params.amount)\\n local factor = 100 - ((amount/100) * 90)\\n factor = factor / 100\\n for i, event in pairs(events) do\\n if tag == nil or contains(event.tags, tag) then\\n event.duration = event.duration * factor\\n end\\n end\\n return events\\nend"}, {"path": "lua/mods/swing.lua", "data": "-- <command name=\\"swing\\" where=\\"mod\\" using=\\"lua/mod/swing.lua\\">\\n-- Performs a swing groove.\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/mods/swing.lua\\";\\\\n\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef: piano MyDevice _ch=0 _pc=0;\\\\n\\n--[\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /mod: swing/\\\\n\\n-- c8 c c c c c c c\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- </command>\\n-- <param name=\\"grid\\" optional=\\"1\\" type=\\"[8, 16]\\">Performs the swing offset either on 8th or 16th. (Default=8)</param>\\n-- <param name=\\"offset\\" optional=\\"1\\" type=\\"0..100\\">The ammount of the swing offset</param>\\n\\nrequire \\"lua/com/com\\"\\n\\nparameters = {\\n -- can be 8, 16\\n { name=\\"grid\\", default=\\"8\\" },\\n -- can be between 0 and 100\\n { name=\\"offset\\", default=\\"100\\" }\\n}\\n\\n\\nfunction compareQuarters(a, b)\\n return math.abs(a-b) <= 0.1\\nend\\n\\nfunction isLaidBack(timeinfo, grid)\\n local q = timeinfo.quarterPosition\\n q = q - math.floor(q)\\n if grid == 16 then\\n return compareQuarters(q, 0.25) or compareQuarters(q, 0.75)\\n end\\n return compareQuarters(q, 0.5)\\nend\\n\\nfunction offset(grid, offset)\\n if offset == nil then\\n offset = 100\\n end\\n offset = offset / 100\\n local max = 0.25\\n if grid == 16 then\\n max = 0.09\\n end\\n return offset * max\\nend\\n\\nfunction perform(events, params, timeinfo)\\n checkLegacyNamedParams(params, \\"grid\\", \\"offset\\")\\n local gridValue = tonumber(params.grid)\\n local offsetValue = tonumber(params.offset)\\n for i, event in pairs(events) do\\n if isLaidBack(timeinfo, gridValue) then\\n event.offset = offset(gridValue, offsetValue)\\n event.velocity = event.velocity\\n end\\n end\\n return events\\nend"}, {"path": "lua/voicings/config.lua", "data": "PitchRanges = {\\n contrabass = { min=28, max=55 },\\n bass = { min=40, max=60 },\\n baritone = { min=45, max=69 },\\n tenor = { min=48, max=72 },\\n alto = { min=53, max=77 },\\n mezzosoprano = { min=57, max=81 },\\n soprano = { min=60, max=84 }\\n}"}, {"path": "lua/voicings/guitar.lua", "data": "-- <command name=\\"guitar\\" where=\\"voicingStrategy\\" using=\\"lua/voicings/guitar.lua\\">\\n-- <![CDATA[\\n-- Tries to simulate the chord voicing of an guitar.\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/voicings/guitar.lua\\";\\\\n\\n--using \\"chords/default.chords\\";\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=0;\\\\n\\n--[\\\\n\\n--type: template;\\\\n\\n--name: myTemplate;\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /voicingStrategy: guitar/\\\\n\\n-- <I II III IV V VI VII>1\\\\n\\n--}\\\\n\\n--]\\\\n\\n--[\\\\n\\n--type: accomp;\\n--{\\\\n\\n-- C | F | G | C |\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- ]]>\\n-- </command>\\n-- <param name=\\"range\\" optional=\\"1\\" type=\\"[contrabass,bass,baritone,tenor,alto,mezzosoprano,soprano]\\">If given the strategy tries to keeps the range by shifting the octave of the chord.</param>\\n\\nrequire \\"lua/com/com\\"\\nrequire \\"lua/com/globals\\"\\nrequire \\"solvers/guitar\\"\\n\\nparameters = {\\n table.unpack(ASolverDefaultParameter)\\n}\\n\\nlocal solver = GuitarSolver:new()\\n\\nfunction solve(chord, degrees, params, timeinfo)\\n return solver:solve(chord, degrees, params)\\nend"}, {"path": "lua/voicings/simple.lua", "data": "-- <command name=\\"simple\\" where=\\"voicingStrategy\\" using=\\"lua/voicings/simple.lua\\">\\n-- <![CDATA[\\n-- The simple approach with no strategy.\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/voicings/simple.lua\\";\\\\n\\n--using \\"chords/default.chords\\";\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=0;\\\\n\\n--[\\\\n\\n--type: template;\\\\n\\n--name: myTemplate;\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /voicingStrategy: simple/\\\\n\\n-- <I II III IV V VI VII>1\\\\n\\n--}\\\\n\\n--]\\\\n\\n--[\\\\n\\n--type: accomp;\\n--{\\\\n\\n-- C | F | G | C |\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- ]]>\\n-- </command>\\n-- <param name=\\"range\\" optional=\\"1\\" type=\\"[contrabass,bass,baritone,tenor,alto,mezzosoprano,soprano]\\">If given the strategy tries to keeps the range by shifting the octave of the chord.</param>\\n\\nrequire \\"lua/com/com\\"\\nrequire \\"solvers/simple\\"\\nrequire \\"solvers/asolver\\"\\n\\nparameters = {\\n table.unpack(ASolverDefaultParameter)\\n}\\n\\nlocal solver = Simple:new()\\n\\nfunction solve(chord, degrees, parameters)\\n return solver:solve(chord, degrees, parameters)\\nend"}, {"path": "lua/voicings/voicelead.lua", "data": "-- <command name=\\"voicelead\\" where=\\"voicingStrategy\\" using=\\"lua/voicings/voicelead.lua\\">\\n-- <![CDATA[\\n-- Tries to simulates a voice leading approach:\\n-- the octaves of a chord are rearranged, so that the actual pitch distance between the previous chord is kept minimal.\\n-- ```language=Werckmeister\\\\n\\n--using \\"lua/voicings/voicelead.lua\\";\\\\n\\n--using \\"chords/default.chords\\";\\n--tempo: 120;\\\\n\\n--device: MyDevice midi 0;\\\\n\\n--instrumentDef:piano MyDevice _ch=0 _pc=0;\\\\n\\n--[\\\\n\\n--type: template;\\\\n\\n--name: myTemplate;\\\\n\\n--instrument: piano;\\\\n\\n--{\\\\n\\n-- /voicingStrategy: voicelead/\\\\n\\n-- <I II III IV V VI VII>1\\\\n\\n--}\\\\n\\n--]\\\\n\\n--[\\\\n\\n--type: accomp;\\n--{\\\\n\\n-- C | F | G | C |\\\\n\\n--}\\\\n\\n--]\\\\n\\n-- ```\\n-- ]]>\\n-- </command>\\n-- <param name=\\"range\\" optional=\\"1\\" type=\\"[contrabass,bass,baritone,tenor,alto,mezzosoprano,soprano]\\">If given the strategy tries to keeps the range by shifting the octave of the chord.</param>\\n\\nrequire \\"lua/com/com\\"\\nrequire \\"lua/com/globals\\"\\nrequire \\"solvers/voicelead\\"\\n\\nparameters = {\\n table.unpack(ASolverDefaultParameter)\\n}\\n\\nlocal solver = VoiceLeadSolver:new()\\n\\nfunction solve(chord, degrees, params)\\n return solver:solve(chord, degrees, params)\\nend"}, {"path": "lua/voicings/solvers/asolver.lua", "data": "require \\"config\\"\\nrequire \\"lua/com/com\\"\\n\\nNoRangeSet = \\"__noRangeSet\\"\\nNoImportantDegreesSet = \\"_noImportantDegreesSet\\"\\n\\nASolverDefaultParameter = {\\n -- can be contrabass, bass, baritone, tenor, alto, mezzosoprano, soprano\\n { name=\\"range\\", default=NoRangeSet },\\n { name=\\"importantDegrees\\", default=NoImportantDegreesSet },\\n { name=\\"importantDegree\\", default=NoImportantDegreesSet },\\n}\\nASolver = {}\\n\\nfunction ASolver:new(o)\\n local o = o or {}\\n setmetatable(o, self)\\n self.__index = self\\n return o\\nend\\n\\nfunction ASolver:checkForLegacyParameters(params)\\n checkLegacyNamedParams(params, \\"range\\", \\"importantDegrees\\", \\"importantDegree\\")\\nend\\n\\n-- returns the a degree def from the given degree def collection\\n-- if more than one degree def defined, it will return the first one\\nfunction ASolver:getDefaultDegreeDef(degreeValue, degrees)\\n local default = degrees[degreeValue]\\n if default == nil \\n then\\n return nil\\n end\\n return default[1]\\nend\\n\\n-- creates a absolute pitch using the given chord\\nfunction ASolver:createPitch(chord, degreeDef, octave)\\n if degreeDef == nil or degreeDef.degreeValue == nil\\n then\\n return nil\\n end\\n return { [\\"pitch\\"]= self:degreeToPitch(degreeDef, chord), [\\"octave\\"]=octave }\\nend\\n\\nfunction ASolver:degreeToPitch(degreeDef, chord)\\n return chord.rootPitch + degreeDef.degreeValue\\nend\\n\\nfunction ASolver:getAbsolutePitch(pitch)\\n return pitch.pitch + (pitch.octave * 12)\\nend\\n\\nfunction ASolver:_addImportantDegree(degrees, degreeVal, semitone)\\n local degreeInfo = self:getDefaultDegreeDef(degreeVal, degrees)\\n if degreeInfo==nil then\\n return\\n end\\n local degrObj = {\\n degreeValue= semitone,\\n octave= degreeInfo.octave\\n }\\n degrees[degreeVal] = {degrObj}\\nend\\n\\n-- set important degrees if defined in params\\n-- more informations about important degrees:\\n-- https://github.com/werckme/werckmeister/issues/123\\nfunction ASolver:_setImportantDegreesIfExists(params, degrees)\\n local strDegree = params.importantDegree\\n if (strDegree == nil or strDegree == NoImportantDegreesSet) then\\n strDegree = params.importantDegrees\\n if strDegree == nil or strDegree == NoImportantDegreesSet then\\n return\\n end\\n end\\n local strDegrees = split(strDegree, \\" \\")\\n for i, degree in pairs(strDegrees) do \\n local degreeVal = DegreeStringValues[degree]\\n if degreeVal ~= nil then\\n local semitone = MajorScaleSemitones[degree]\\n self:_addImportantDegree(degrees, degreeVal, semitone)\\n end\\n end\\nend\\n\\n-- solves degrees into absolute pitches\\n-- @param chord: the current cord informations\\n-- @param degrees: the current degree event including the semitone informations from \\n-- the chord definition eg.: { II= {degreeValue, octave} }\\n-- If the current chord has no information about a degree\\n-- the value is empty eg.: II= {} \\nfunction ASolver:solve(chord, degrees, params)\\n self:checkForLegacyParameters(params)\\n self:_setImportantDegreesIfExists(params, degrees)\\n local result = self:_solveImpl(chord, degrees, params)\\n if params.range ~= nil and params.range ~=NoRangeSet then\\n self:_keepRange(result, params.range)\\n end\\n return result\\nend\\n\\nfunction ASolver:_solveImpl(chord, degrees, args)\\n error(\\"this is an abstract function\\")\\nend\\n\\nfunction ASolver:_transpose(pitches, numOctaves)\\n for i, pitch in pairs(pitches) do\\n pitch.octave = pitch.octave + numOctaves\\n end\\nend\\n\\nfunction ASolver:_keepRange(pitches, strRange)\\n local destinationRange = PitchRanges[strRange]\\n if destinationRange == nil then\\n error(\\"strRange \\" .. strRange .. \\" not defined\\")\\n end\\n local nbUnder = 0\\n local nbOver = 0\\n local mindiff = math.maxinteger\\n local maxdiff = math.mininteger\\n for i, pitch in pairs(pitches) do\\n local midipitch = toMidiPitch(pitch)\\n if midipitch > destinationRange.max then\\n local diff = midipitch - destinationRange.max\\n if diff > maxdiff then\\n maxdiff = diff\\n end\\n nbOver = nbOver + 1\\n end\\n if midipitch < destinationRange.min then\\n local diff = destinationRange.min - midipitch\\n if diff < mindiff then\\n mindiff = diff\\n end\\n nbUnder = nbUnder + 1\\n end\\n end\\n if nbUnder > nbOver then\\n local octaves = math.ceil(mindiff/12)\\n self:_transpose(pitches, octaves)\\n end\\n if nbUnder < nbOver then\\n local octaves = -math.ceil(maxdiff/12)\\n self:_transpose(pitches, octaves)\\n end\\nend"}, {"path": "lua/voicings/solvers/config.lua", "data": "PitchRanges = {\\n contrabass = { min=28, max=55 },\\n bass = { min=40, max=60 },\\n baritone = { min=45, max=69 },\\n tenor = { min=48, max=72 },\\n alto = { min=53, max=77 },\\n mezzosoprano = { min=57, max=81 },\\n soprano = { min=60, max=84 }\\n}"}, {"path": "lua/voicings/solvers/guitar.lua", "data": "require \\"lua/voicings/solvers/asolver\\"\\nrequire \\"lua/com/globals\\"\\n\\n-- https://www.8notes.com \\n-- https://www.oolimo.de/gitarrenakkorde/find\\n-- https://www.scales-chords.com/chord/piano/\\nVoicingMatrix = {\\n [\\"1234567/bass\\"] = nil,\\n [\\"1010100\\"] = {I, V, I, III, I}, -- base\\n [\\"1100100\\"] = {I, V, I, II }, -- sus2\\n [\\"1001100\\"] = {I, V, I, IV, V }, -- sus4\\n [\\"1001101\\"] = {I, V, VII, IV, V}, -- 7sus4\\n [\\"1101101\\"] = {I, IV, VII, II, V}, -- 9sus4\\n [\\"1010110\\"] = {I, VI, III, V}, -- 6\\n [\\"1110110\\"] = {I, VI, III, V, II}, -- 6/9\\n [\\"1010101\\"] = {I, V, VII, III, I}, -- 7\\n [\\"1110101\\"] = {I, III, VII, II}, -- 9\\n [\\"1110100\\"] = {I, V, II, III}, -- add9\\n [\\"1011101\\"] = {I, IV, VII, III}, -- 11\\n [\\"1011001\\"] = {I, VII, III, IV}, -- 7#11\\n [\\"1010111\\"] = {I, V, VII, III, VI}, -- 13\\n [\\"1010101/7\\"] = {VII, V, I, III}, -- /7\\n [\\"1010100/5\\"] = {V, I, III, V}, -- /5\\n [\\"1011100/4\\"] = {IV, V, I, III}, -- /4\\n [\\"1010100/3\\"] = {III, V, I, III}, -- /3\\n [\\"1110100/2\\"] = {II, V, I, III}, -- /2\\n}\\n\\n\\n-- returns the degrees defined for a chord as a bit string.\\n-- e.g.: Xmaj\'s degrees are defined as I III V\\n-- 1234567\\n-- as bitstring = 1010100\\n-- if chord is a slash chord, the degree value will be appended as number.\\n-- e.g.: X/V = 1010100/5\\nfunction chordToHashString(chord)\\n bits = {}\\n slashAppendings = {}\\n local degree = chord.degrees\\n for i=1, 7 do\\n if degree[i] == nil then\\n bits[i] = 0\\n else\\n bits[i] = 1\\n if chord.degrees[i] < 0 then\\n table.insert(slashAppendings, i)\\n end\\n end\\n end\\n if #slashAppendings == 0 then\\n return table.concat(bits)\\n end\\n return table.concat(bits) .. \\"/\\" .. table.concat(slashAppendings)\\nend\\n\\nGuitarSolver = ASolver:new()\\n\\nfunction GuitarSolver:degreeToPitch(degreeDef, chord)\\n return chord.rootPitch + (degreeDef.degreeValue % 12)\\nend\\n\\nfunction GuitarSolver:_solveImpl(chord, degrees, params)\\n local d = function(degreeValue) return self:getDefaultDegreeDef(degreeValue, degrees) end\\n local strDegrees = chordToHashString(chord)\\n local voicing = VoicingMatrix[strDegrees]\\n if voicing == nil then\\n error(\\"no voicing found defined for \\" .. chord.strBase .. chord.strOptions .. \\" \\" .. strDegrees)\\n end\\n local result = {}\\n local octave = -1\\n local lastDegree = -1\\n for idx, degree in pairs(voicing) do\\n if degree <= lastDegree then \\n octave = octave + 1\\n end\\n lastDegree = degree\\n result[idx] = self:createPitch(chord, d(degree ), octave)\\n end\\n return result\\nend"}, {"path": "lua/voicings/solvers/simple.lua", "data": "require \\"lua/voicings/solvers/asolver\\"\\nrequire \\"lua/com/globals\\"\\n\\nSimple = ASolver:new()\\n\\nfunction Simple:degreeToPitch(degreeDef, chord)\\n return chord.rootPitch + degreeDef.degreeValue\\nend\\n\\nfunction Simple:_solveImpl(chord, degrees, parameters)\\n local pitches = {}\\n for degree, degreeDefs in pairs(degrees)\\n do\\n if isnumber(degree)\\n then\\n for idx, degreeDef in pairs(degreeDefs)\\n do\\n table.insert(pitches, self:createPitch(chord, degreeDef, degreeDef.octave))\\n end\\n end\\n end\\n return pitches\\nend"}, {"path": "lua/voicings/solvers/voicelead.lua", "data": "require \\"simple\\"\\nrequire \\"lua/com/globals\\"\\n\\nVoiceLeadSolver = Simple:new()\\n\\nfunction VoiceLeadSolver:getPitchWithMinDistance(pitch, pitches)\\n local min = math.maxinteger\\n local minPitch = nil\\n local relPitch = pitch.pitch % 12\\n for i, refpitch in pairs(pitches) do\\n local diff = relpitchdiff(refpitch.pitch, relPitch)\\n diff = math.abs(diff)\\n if (diff < min) then\\n minPitch = refpitch\\n min = diff\\n end\\n end\\n return minPitch\\nend\\n\\n-- changes the octave of pitch, so that the interval\\n-- between pitch and targetPitch is minimal\\nfunction VoiceLeadSolver:toPitchNextTo(pitch, targetPitch)\\n if targetPitch == nil then\\n return pitch\\n end\\n local diff = pitch.pitch - targetPitch.pitch\\n pitch.octave = targetPitch.octave\\n --print(pitch.pitch, targetPitch.pitch, diff)\\n if (diff > 6) then\\n pitch.octave = pitch.octave - 1\\n end\\n if (diff < -6) then\\n pitch.octave = pitch.octave + 1\\n end\\n return pitch\\nend\\n\\n\\n-- compare pitches with a reference and adjust octaves\\nfunction VoiceLeadSolver:adjustOctaves(pitches, reference)\\n for i, pitch in pairs(pitches) do\\n local min = self:getPitchWithMinDistance(pitch, reference) \\n self:toPitchNextTo(pitch, min)\\n end\\n return pitches\\nend\\n\\nfunction VoiceLeadSolver:_solveImpl(chord, degrees, params)\\n local pitches = Simple:_solveImpl(chord, degrees, params)\\n if #pitches < 2\\n then\\n return pitches\\n end\\n if self.previous ~= nil \\n then\\n pitches = self:adjustOctaves(pitches, self.previous)\\n end\\n return pitches\\nend\\n\\nfunction VoiceLeadSolver:solve(chord, degrees, params)\\n self:checkForLegacyParameters(params)\\n local result = self:_solveImpl(chord, degrees, params)\\n if params.range ~=nil and params.range ~=NoRangeSet then\\n self:_keepRange(result, params.range)\\n end\\n self.previous = result\\n return result\\nend"}, {"path": "pitchmaps/battery3.tight.pitchmap", "data": "\\"bd\\": c,,\\n\\"sn\\": d,,\\n\\"sng\\": g# --snare ghost notes\\n\\"ss\\": c#,, -- sidestick\\n\\"hc\\": d#,, -- handclap\\n\\"ht\\": f#,, -- hihat closed\\n\\"hf\\": g#,, -- hihat foot\\n\\"ho\\": bb,, -- hihat open\\n\\"ho1\\": g\' -- hihat half open1\\n\\"ho2\\": g#\' -- hihat half open2\\n\\"ho3\\": a\' -- hihat half open3\\n\\"cy\\": c#,\\n\\"hto\\": c,\\n\\"hto1\\": c,\\n\\"hto2\\": d,\\n\\"mto\\": b,,\\n\\"mto1\\": b,,\\n\\"mto2\\": a,,\\n\\"lto\\": g,,\\n\\"lto1\\": g,,\\n\\"lto2\\": f,,\\n\\"rdbell\\": f#,\\n\\"mtr\\": ab\'\\n\\"otr\\": a\'\\n-- r&l\\n\\"snl\\": d,,\\n\\"snr\\": e,,\\n\\"riml\\": c#,,\\n\\"rimr\\": d#,,\\n\\"htol\\": e,\\n\\"htor\\": f,\\n\\"mtol\\": c,\\n\\"mtor\\": d,\\n\\"ltol\\": b,,\\n\\"ltor\\": a,,\\n\\"ftol\\": g,,\\n\\"ftor\\": f,,\\n"}, {"path": "pitchmaps/defaultMIDI.pitchmap", "data": "\\"bd\\": c,,,,\\n\\"bd2\\": b,,,\\n\\"o\\": b,,,\\n\\"sn\\": d,,\\n\\"x\\": d,,\\n\\"sn2\\": e,,\\n\\"esn\\": e,, -- electric snare\\n\\"sng\\": d,, --snare ghost notes\\n\\"ss\\": c#,, -- sidestick\\n\\"hc\\": d#,, -- handclap\\n\\"ht\\": f#,, -- hihat closed\\n\\"h\\": f#,, -- hihat closed\\n\\"hf\\": g#,, -- hihat foot\\n\\"h,\\": g#,, -- hihat foot\\n\\"ho\\": bb,, -- hihat open\\n\\"h\'\\": bb,, -- hihat open\\n\\"ho1\\": bb,, -- hihat half open1\\n\\"ho2\\": bb,, -- hihat half open2\\n\\"ho3\\": bb,, -- hihat half open3\\n\\"cy\\": c#, -- crash cymbal\\n\\"spl\\": g, -- splash cymbal\\n\\"hto\\": c, -- high tom \\n\\"m\'\\": c, -- high tom \\n\\"hto1\\": c,\\n\\"hto2\\": d,\\n\\"mto\\": b,, -- middle tom\\n\\"m\\": b,, -- middle tom\\n\\"mto1\\": b,,\\n\\"mto2\\": a,,\\n\\"lto\\": g,, -- low tom\\n\\"m,\\": g,, -- low tom\\n\\"lto1\\": g,,\\n\\"lto2\\": f,,\\n\\"rcym1\\": d#, -- ride cymbal 1\\n\\"rcym2\\": b, -- ride cymbal 2\\n\\"rbell\\": f, -- ride bell\\n\\"mtr\\": ab\' -- muted triangle\\n\\"otr\\": a\' -- open triangle\\n\\"bo1\\": c --bongo 1\\n\\"bo2\\": c# --bongo 2\\n\\"tim1\\": f --timbale 1\\n\\"tim2\\": f# --timbale 2\\n\\"ago1\\": g --agogo 1\\n\\"ago2\\": g# --agogo 2\\n\\"cui1\\": f#\' -- cuica 1\\n\\"cui2\\": g\' -- cuica 2\\n\\"cwb\\": g#, -- cowbell\\n\\"cla\\": d#\' -- claves\\n\\"mcon\\":d -- mute high conga\\n\\"ocon\\":d# -- open conga\\n\\"lcon\\":e -- low conga\\n\\"tmb\\":f#, -- tambourine \\n\\n\\n\\"brsw\\": e,, -- brush swirl\\n\\"brtp\\": d,, -- brush tap\\n\\"brsp\\": d#,, -- brush slap"}, {"path": "pitchmaps/defaultMidiDrumMap.pitchmap", "data": "\\"bd\\": c,,,,\\n\\"sn\\": d,,\\n\\"sng\\": d,, --snare ghost notes\\n\\"ss\\": c#,, -- sidestick\\n\\"hc\\": d#,, -- handclap\\n\\"ht\\": f#,, -- hihat closed\\n\\"hf\\": g#,, -- hihat foot\\n\\"ho\\": bb,, -- hihat open\\n\\"ho1\\": bb,, -- hihat half open1\\n\\"ho2\\": bb,, -- hihat half open2\\n\\"ho2\\": bb,, -- hihat half open3\\n\\"cy\\": c#, -- crash cymal\\n\\"spl\\": g, -- splash cymal\\n\\"hto\\": c, -- high tom \\n\\"hto1\\": c,\\n\\"hto2\\": d,\\n\\"mto\\": b,, -- middle tom\\n\\"mto1\\": b,,\\n\\"mto2\\": a,,\\n\\"lto\\": g,, -- low tom\\n\\"lto1\\": g,,\\n\\"lto2\\": f,,\\n\\"rdbell\\": b,\\n\\"mtr\\": ab\' -- muted triangle\\n\\"otr\\": a\' -- open triangle\\n\\"bo1\\": c --bongo 1\\n\\"bo2\\": c# --bongo 2\\n\\"tim1\\": f --timbale 1\\n\\"tim2\\": f# --timbale 2\\n\\"ago1\\": g --agogo 1\\n\\"ago2\\": g# --agogo 2\\n\\"cui1\\": f#\' -- cuica 1\\n\\"cui2\\": g\' -- cuica 2\\n\\"cwb\\": g#, -- cowbell\\n\\"cla\\": d#\' -- claves\\n\\n\\"cr\\": c#, -- crash cymal\\n\\"t1\\": c, -- high tom \\n\\"t2\\": b,, -- middle tom\\n\\"t3\\": g,, -- low tom\\n\\"t4\\": f,,"}, {"path": "templates/bass.blues.template", "data": "[\\ntype: template;\\nname: bass.blues.normal; \\ninstrument: bass;\\n{\\n /do: swing _grid=8 _offset =60/\\n I,,,8 & I,,& VII,,,& V,,,& |\\n}\\n]"}, {"path": "templates/bass.bossanova.template", "data": "[\\ntype: template;\\nname: bass.bossanova.normal;\\ninstrument: bass; \\n{\\n \\\\fff\\n I,,4. V,,8 V,,4. I,,8 |\\n I,,4. V,,8 V,,4 I,,4 |\\n I,,4. V,,8 V,,4. I,,8 |\\n I,,4. V,,8 V,,4 I,,8 V,,8 |\\n} \\n] \\n"}, {"path": "templates/bass.country.template", "data": "[\\ntype: template;\\nname: bass.country.normal;\\ninstrument: bass; \\n{\\n I,,4. I,,8 V,,,4. V,,,8 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: bass.country.ende;\\ninstrument: bass; \\n{\\n I,,1 |\\n} \\n] "}, {"path": "templates/bass.disco.template", "data": "[\\ntype: template;\\nname: bass.disco.normal;\\ninstrument: bass;\\n{\\n \\\\ffff\\n I,,8 I,16 I,16 I,,8 I,16 I,16 I,,8 I,16 I,16 I,,8 I,16 I,16 |\\n} \\n]\\n"}, {"path": "templates/bass.jazzSwing.template", "data": "-- tempo: 155\\n-- signature: 4/4\\n-- parts: normal\\n[\\ntype: template;\\nname: bass.jazzSwing.normal;\\ninstrument: bass; \\n{\\n I,,2 V,, | \\n I,, V,,,4 I,, |\\n}\\n\\n]\\n"}, {"path": "templates/bass.reggae.template", "data": "using \\"lua/mods/swing.lua\\";\\n\\n[\\ntype: template;\\nname: bass.reggae.normal;\\ninstrument: bass;\\n{\\n /do: swing _grid=8 _offset =30/\\n I,,16 r16 I,,8 r2 V,,,4 |\\n I,,16 r16 r8 I,,8 r4. V,,,4 |\\n I,,16 r16 I,,8 r2 V,,,4 |\\n I,,16 r16 I,,8 r2 V,,,4 |\\n}\\n]"}, {"path": "templates/bass.soca.template", "data": "[\\ntype: template;\\nname: bass.soca.normal;\\ninstrument: bass;\\n{\\n r8 r16 I,,32 r32 I,,8 I,,16 r \\n r8 r16 I,,32 r32 r16 I,,32 r V,,, r I,, r |\\n}\\n]"}, {"path": "templates/bossanova.template", "data": "using \\"lua/voicings/voicelead.lua\\";\\nusing \\"lua/voicings/simple.lua\\";\\nusing \\"lua/voicings/guitar.lua\\";\\nusing \\"lua/mods/guitarStroke.lua\\";\\n\\n[\\ntype: template;\\nname: bossanova.normal;\\ninstrument: drums;\\n{\\n \\"ht\\"8 !f\\"ht\\" \\"ht\\" !f\\"ht\\" \\"ht\\" \\"ht\\" \\"ht\\" !f\\"ht\\" |\\n} \\n{\\n \\\\fff\\n r4 \\"ss\\"8 r4 \\"ss\\"8 r4 | \\"ss\\"4. \\"ss\\"8 r4 \\"ss\\" |\\n} \\n{\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"4. \\"bd\\"8 |\\n} \\n]\\n\\n[\\ntype: template;\\nname: bossanova.normal;\\ninstrument: guitar; \\n{\\n /do: guitarStroke _value=32/\\n /voicingStrategy: guitar/\\n \\\\f\\n <I II III IV V VI VII>4 <I II III IV V VI VII>4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 |\\n r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 r4 <I II III IV V VI VII>4 |\\n <I II III IV V VI VII>4 <I II III IV V VI VII>4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 |\\n r4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>4. |\\n} \\n] \\n\\n[\\ntype: template;\\nname: bossanova.normal;\\ninstrument: piano; \\n{\\n -- /voicingStrategy: simple _range=tenor/\\n <VII, VII>4 <III, V,>8 <V, V>8 r8 <III, V,>8 r8 <V, V> | r8 <III, V,>8 r8 <V, V> r8 <III, V,> r8 <VII, VII> |\\n} \\n] \\n\\n[\\ntype: template;\\nname: bossanova.normal;\\ninstrument: bass; \\n{\\n \\\\fff\\n I,,4. V,,8 V,,4. I,,8 |\\n I,,4. V,,8 V,,4 I,,4 |\\n I,,4. V,,8 V,,4. I,,8 |\\n I,,4. V,,8 V,,4 I,,8 V,,8 |\\n} \\n] \\n"}, {"path": "templates/countryschlager1.template", "data": "using \\"lua/voicings/guitar.lua\\";\\nusing \\"lua/voicings/voicelead.lua\\";\\nusing \\"lua/mods/guitarStroke.lua\\";\\n\\n[\\ntype: template;\\nname: countryschlager1.normal;\\ninstrument: guitar; \\n{\\n /do: guitarStroke/\\n /voicingStrategy: guitar _range=tenor/\\n \\\\f\\n <I II III IV V VI VII>8 <I II III IV V VI VII>8 r8 \\n <I II III IV V VI VII>4 <I II III IV V VI VII>8 <I II III IV V VI VII>8 <I II III IV V VI VII>8 |\\n} \\n]\\n\\n[\\ntype: template;\\nname: countryschlager1.normal;\\ninstrument: slide; \\n{\\n \\\\f\\n /modOnce: bend from 0/\\n r1 |\\n r1 |\\n r1 |\\n <I\' II\' III\' IV\' V\' VI\' VII\'>1 |\\n r1 |\\n r1 |\\n r1 |\\n /modOnce: bend to 100/\\n <I\' II\' III\' IV\' V\' VI\' VII\'>1 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: countryschlager1.normal;\\ninstrument: bass; \\n{\\n I,,4. I,,8 V,,,4. V,,,8 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: countryschlager1.normal;\\ninstrument: drums;\\n{\\n \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 |\\n} \\n{\\n r4 \\"sn\\" r \\"sn\\" |\\n}\\n{\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"4. \\"bd\\"8 |\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"4. \\"bd\\"8 |\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"8 !f\\"bd\\"8 r8 \\"bd\\"8 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: countryschlager1.ende;\\ninstrument: guitar; \\n{\\n /do: guitarStroke _value=8/\\n <I II III IV V VI VII>1 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: countryschlager1.ende;\\ninstrument: bass; \\n{\\n I,,1 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: countryschlager1.ende;\\ninstrument: drums;\\n{\\n \\"cy\\"1 |\\n} \\n{\\n \\"bd\\"1|\\n} \\n]\\n\\n[\\ntype: template;\\nname: countryschlager1.ende;\\ninstrument: slide; \\n{\\n \\\\f\\n /modOnce: bend from 1/\\n <I\' II\' III\' IV\' V\' VI\' VII\'>1 |\\n} \\n] \\n"}, {"path": "templates/drums.bossanova.template", "data": "[\\ntype: template;\\nname: drums.bossanova.normal;\\ninstrument: drums;\\n{\\n \\"ht\\"8 !f\\"ht\\" \\"ht\\" !f\\"ht\\" \\"ht\\" \\"ht\\" \\"ht\\" !f\\"ht\\" |\\n} \\n{\\n \\\\fff\\n r4 \\"ss\\"8 r4 \\"ss\\"8 r4 | \\"ss\\"4. \\"ss\\"8 r4 \\"ss\\" |\\n} \\n{\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"4. \\"bd\\"8 |\\n} \\n]"}, {"path": "templates/drums.country.template", "data": "[\\ntype: template;\\nname: drums.country.normal;\\ninstrument: drums;\\n{\\n \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 |\\n} \\n{\\n r4 \\"sn\\" r \\"sn\\" |\\n}\\n{\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"4. \\"bd\\"8 |\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"4. \\"bd\\"8 |\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"8 !f\\"bd\\"8 r8 \\"bd\\"8 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: drums.country.cymbal;\\ninstrument: drums;\\n{\\n \\"cy\\"4 \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 \\"ht\\"8 !f\\"ht\\"8 |\\n} \\n{\\n r4 \\"sn\\" r \\"sn\\" |\\n}\\n{\\n \\"bd\\"4. \\"bd\\"8 \\"bd\\"4. \\"bd\\"8 |\\n} \\n] \\n\\n[\\ntype: template;\\nname: drums.country.ende;\\ninstrument: drums;\\n{\\n \\"cy\\"1 |\\n} \\n{\\n \\"bd\\"1|\\n} \\n]"}, {"path": "templates/drums.disco.template", "data": "[\\ntype: template;\\nname: drums.disco.normal;\\ninstrument: drums;\\n{\\n r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 |\\n r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 !ffff<\\"sn\\" \\"ht\\">16 !fffff\\"sn\\"16 |\\n \\"cy\\"8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 |\\n r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 <\\"sn\\" \\"ht\\">16 !fffff\\"sn\\"16 |\\n} \\n{\\n \\"bd\\"4 \\"bd\\" \\"bd\\" \\"bd\\" |\\n} \\n] \\n\\n[\\ntype: template;\\nname: drums.disco.solo;\\ninstrument: drums;\\n{\\n \\"bd\\"4 \\"bd\\" \\"bd\\" \\"bd\\" |\\n} \\n] \\n\\n[\\ntype: template;\\nname: drums.disco.solo2;\\ninstrument: drums;\\n{\\n \\"cy\\"8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 |\\n r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 \\"ht\\"16 \\"ht\\"16 r8 \\"ht\\"16 \\"ht\\"16 !ffff\\"sn\\"8 <\\"sn\\" \\"ht\\">16 !fffff\\"sn\\"16 |\\n} \\n{\\n \\"bd\\"4 \\"bd\\" \\"bd\\" \\"bd\\" |\\n} \\n] "}, {"path": "templates/drums.jazzSwing.template", "data": "-- tempo: 155\\n-- signature: 4/4\\n-- parts: normal, bridge\\n[\\ntype: template;\\nname: drums.jazzSwing.bridge;\\ninstrument: drumsBrushes; \\n{\\n (!ff\\"rcym1\\" r r)4 (\\"rcym1\\" r !p\\"rcym1\\") (!ff\\"rcym1\\" r r) (\\"rcym1\\" r !p\\"rcym1\\")\\n}\\n{\\n (r r \\"brtp\\")4 r4 (r r !p\\"brtp\\")4 r4 |\\n (r r !p\\"brtp\\")4 r4 (r r !p\\"brtp\\")4 r4 |\\n (r r !p\\"brtp\\")4 r4 (r r !p\\"brtp\\")4 r4 |\\n (r r !p\\"brtp\\")4 (r !pp\\"brtp\\"4 r) (r r !p\\"brtp\\")4 r4 |\\n}\\n{\\n \\\\pp\\n \\"bd2\\"4 (r r \\"bd2\\")4 r2 |\\n}\\n]\\n\\n[\\ntype: template;\\nname: drums.jazzSwing.normal;\\ninstrument: drumsBrushes; \\n{\\n \\\\pp\\n (\\"brtp\\" !pppp\\"brsw\\" r)4 (!ppp\\"brsp\\" r \\"brtp\\") (\\"brtp\\" !pppp\\"brsw\\" r) (!pp\\"brsp\\" r !p\\"brtp\\") \\n}\\n{\\n \\\\p\\n r4 \\"ht\\" r &\\n}\\n{\\n !pp\\"bd2\\"1 |\\n}\\n]"}, {"path": "templates/drums.purdie.template", "data": "[\\ntype: template;\\nname: drums.purdie.normal;\\ninstrument: drums; \\n{\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\p\\"ho\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t r8t !pp\\"ho\\"8t !pp\\"ht\\"8t |\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\p\\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n \\\\f\\"ho\\"8t \\"ht\\"8t \\"bd\\"8t \\\\f\\"ho\\"8t \\"ht\\"8t r8t \\"ht\\"8t r8t !pp\\"ht\\"8t \\"ht\\"8t r8t !pp\\"ht\\"8t |\\n}\\n{\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t |\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t | \\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !ppp\\"sn\\"8t !pp\\"sn\\"8t |\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t |\\n\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t |\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t | \\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r4t r8t | \\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t |\\n\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t |\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t | \\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !ppp\\"sn\\"8t !pp\\"sn\\"8t |\\n r8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t \\\\ff\\"sn\\"8t !pppp\\"sng\\"8t r8t r8t !pppp\\"sng\\"8t r8t | \\n}\\n{\\n \\"bd\\"4t r8t r4t \\"bd\\"8t r4t r8t \\"bd\\"4t r8t |\\n}\\n]"}, {"path": "templates/drums.reggae.template", "data": "using \\"lua/mods/swing.lua\\";\\n\\n\\n[\\ntype: template;\\nname: drums.reggae.normal;\\ninstrument: drums; \\n{\\n\\n}\\n{\\n /do: swing _grid=8 _offset =50/\\n !f\\"ht\\"4 &8 !p& \\"ht\\"4 &8 !p&|\\n !f\\"ht\\"4 \\"ht\\"8t & & \\"ht\\"4 &8 !p&|\\n !f\\"ht\\"4 !pp\\"ho1\\"4 \\"ht\\"4 &8 !p&|\\n}\\n{\\n r r \\"bd\\"4 r |\\n r r \\"sn\\"4 r |\\n}\\n]\\n\\n--\\n\\n[\\ntype: template;\\nname: drums.reggae.fill1;\\ninstrument: drums; \\n{\\n\\n}\\n{\\n /do: swing _grid=8 _offset =50/\\n !f\\"ht\\"4 !p\\"ho2\\"4 r2 |\\n}\\n{\\n /do: swing _grid=8 _offset =50/\\n r \\"hto1\\"64->\\"hto1\\"4. \\"mto1\\"8 \\"mto1\\"8t r \\"mto1\\" |\\n}\\n]\\n\\n[\\ntype: template;\\nname: drums.reggae.fill2;\\ninstrument: drums; \\n{\\n\\n}\\n{\\n /do: swing _grid=8 _offset =50/\\n !f\\"ht\\"4 \\"ht\\"4 r2 |\\n}\\n{\\n /do: swing _grid=16 _offset =50/\\n !f\\"tim1\\"32->!p\\"tim2\\"8t & & \\"hto1\\"4 r2 |\\n}\\n]\\n"}, {"path": "templates/drums.soca.template", "data": "[\\ntype: template;\\nname: drums.soca.normal;\\ninstrument: drums;\\n{\\n \\"ago1\\"16 & \\"ago2\\" & \\"ago1\\" & \\"ago2\\" & \\"ago1\\"16 & \\"ago2\\" & \\"ago1\\" & \\"ago2\\" & |\\n}\\n{\\n \\"cwb\\"8 & &16 & r \\"cwb\\" r16 \\"cwb\\" r \\"cwb\\" \\"cwb\\" r & r | \\n}\\n{\\n \\\\p\\n \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 |\\n}\\n{\\n \\\\ffff\\n r8. \\"sn\\"16 r8 \\"sn\\" r8. \\"sn\\"16 r8 \\"sn\\" |\\n}\\n{\\n \\"bd\\"4 \\"bd\\" \\"bd\\" \\"bd\\" |\\n}\\n]\\n\\n[\\ntype: template;\\nname: drums.soca.bridge;\\ninstrument: drums;\\n{\\n \\"ago1\\"16 & \\"ago2\\" & \\"ago1\\" & \\"ago2\\" & \\"ago1\\"16 & \\"ago2\\" & \\"ago1\\" & \\"ago2\\" & |\\n}\\n{\\n \\"cwb\\"8 & &16 & r \\"cwb\\" r16 \\"cwb\\" r \\"cwb\\" \\"cwb\\" r & r | \\n}\\n{\\n \\\\fff\\n \\"mtr\\"16 & \\"otr\\"8 \\"mtr\\"16 & \\"otr\\"8 \\"mtr\\"16 & \\"otr\\"8 \\"mtr\\"16 & \\"otr\\"8 |\\n}\\n{\\n \\\\p\\n !ff\\"spl\\"16 \\"ht\\" \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 |\\n \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 \\"ht\\"16 & \\"ho\\"8 |\\n}\\n{\\n \\\\f\\n r4 r16 \\"bo1\\" \\"bo2\\" & r4 r16 \\"bo1\\" \\"bo2\\" & |\\n}\\n{\\n \\\\pp\\n r4 r16 \\"cla\\" r8 \\"cla\\" r16 \\"cla\\"16 r4 |\\n}\\n{\\n \\\\fffff\\n r8. \\"sn\\"16 r8 \\"sn\\" r8. \\"sn\\"16 r8 \\"sn\\" |\\n r8. \\"sn\\"16 r8 \\"sn\\" r4 r16 !fff\\"sn\\" !ffff& !fffff& |\\n}\\n{\\n \\"bd\\"4 \\"bd\\" \\"bd\\" \\"bd\\" |\\n}\\n]"}, {"path": "templates/ennio.template", "data": "[\\ntype: template;\\nname: ennio.normal;\\ninstrument: piano; \\n{\\n !ffffI,,4 <II, III, IV, V, VI, VII,> <II, III, IV, V, VI, VII,> !fffV,,, |\\n}\\n] \\n\\n"}, {"path": "templates/guitar.bossanova.template", "data": "[\\ntype: template;\\nname: guitar.bossanova.normal;\\ninstrument: guitar; \\n{\\n /voicingStrategy: simpleGuitar/\\n \\\\f\\n <I II III IV V VI VII>4 <I II III IV V VI VII>4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 |\\n r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 r4 <I II III IV V VI VII>4 |\\n <I II III IV V VI VII>4 <I II III IV V VI VII>4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 |\\n r4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>4. |\\n} \\n] "}, {"path": "templates/guitar.country.template", "data": "using \\"lua/voicings/guitar.lua\\";\\n\\n[\\ntype: template;\\nname: guitar.country.normal;\\ninstrument: guitar; \\n{\\n /voicingStrategy: guitar _range=mezzosoprano/\\n \\\\f\\n <I II III IV V VI VII>8 <I II III IV V VI VII>8 r8 \\n <I II III IV V VI VII>4 <I II III IV V VI VII>8 <I II III IV V VI VII>8 <I II III IV V VI VII>8 |\\n} \\n]\\n\\n[\\ntype: template;\\nname: guitar.country.ende;\\ninstrument: guitar; \\n{\\n <I II III IV V VI VII>1 |\\n} \\n] \\n"}, {"path": "templates/rhythm.bossanova.template", "data": "[\\ntype: template;\\nname: rhythm.bossanova.normal;\\ninstrument: rhythm; \\n{\\n \\\\f\\n <I II III IV V VI VII>4 <I II III IV V VI VII>4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 |\\n r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 r4 <I II III IV V VI VII>4 |\\n <I II III IV V VI VII>4 <I II III IV V VI VII>4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>8 |\\n r4 r8 <I II III IV V VI VII>8 r8 <I II III IV V VI VII>4. |\\n} \\n] "}, {"path": "templates/rhythm.country.template", "data": "using \\"lua/voicings/guitar.lua\\";\\n\\n[\\ntype: template;\\nname: rhythm.country.normal;\\ninstrument: rhythm; \\n{\\n \\\\f\\n <I II III IV V VI VII>8 <I II III IV V VI VII>8 r8 \\n <I II III IV V VI VII>4 <I II III IV V VI VII>8 <I II III IV V VI VII>8 <I II III IV V VI VII>8 |\\n} \\n]\\n\\n[\\ntype: template;\\nname: rhythm.country.ende;\\ninstrument: rhythm; \\n{\\n /doOnce: arpeggio/\\n <I II III IV V VI VII>4~ <I II III IV V VI VII>2. |\\n} \\n] \\n"}, {"path": "templates/rhythm.jazzSwing.template", "data": "-- tempo: 155\\n-- signature: 4/4\\n-- parts: normal\\n[\\ntype: template;\\nname: rhythm.jazzSwing.normal;\\ninstrument: rhythm2; \\n{\\n \\\\f\\n <I,, V, VII, I III>1~ | &4 (r r &) r2 |\\n\\n (<V, VII, I III> r r)4 r <V, VII, I III>4 r |\\n \\n (<V, VII, I III> r I,,)4 r <V, VII, I III>4 r |\\n\\n <I,, V, VII, I III>1~ | &4 (r r &) r2 |\\n\\n (<V, VII, I III> r r)4 r <V, VII, I III>4 r |\\n\\n <V, VII, I III> r I,,4 (I,, r <V, VII, I III>~) (<V, VII, I III> r I,,) |\\n}\\n]\\n"}, {"path": "templates/rhythm.reggae.template", "data": "using \\"lua/mods/swing.lua\\";\\nusing \\"lua/mods/staccato.lua\\";\\n\\n[\\ntype: template;\\nname: rhythm.reggae.normal;\\ninstrument: rhythm;\\n{\\n \\\\f\\n /do: swing _grid=8 _offset =40/\\n r4 /modOnce: staccato _amount=100/ <I II III IV V VI VII>8 /modOnce: staccato _amount=40/ <I II III IV V VI VII>8 \\n r4 /modOnce: staccato _amount=100/ <I II III IV V VI VII>8 /modOnce: staccato _amount=40/ <I II III IV V VI VII>8 \\n |\\n\\n}\\n]"}]'),d=require("lodash"),p=function(){function n(e){a(this,n),this.module=e,this.blacklist=["/dev","/home","/proc","/tmp"]}return o(n,[{key:"resolve",value:function(n,e){return i(this,void 0,void 0,regeneratorRuntime.mark(function t(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.replace("./",n));case 1:case"end":return t.stop()}},t)}))}},{key:"ls",value:function(n){return i(this,void 0,void 0,regeneratorRuntime.mark(function e(){var t,a,r,o,i,s;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.module.FS,a=t.analyzePath(n,!1),a.exists&&a.object&&a.object.isFolder){e.next=5;break}return e.abrupt("return",[]);case 5:r=[],o=a.object.contents,e.t0=regeneratorRuntime.keys(o);case 8:if((e.t1=e.t0()).done){e.next=18;break}if(i=e.t1.value,s=o[i],!this.blacklist.includes("".concat(a.parentPath).concat(i))){e.next=13;break}return e.abrupt("continue",8);case 13:if("_"!==i[0]&&"."!==i[0]){e.next=15;break}return e.abrupt("continue",8);case 15:r.push({name:i,isDirectory:s.isFolder}),e.next=8;break;case 18:return e.abrupt("return",r);case 19:case"end":return e.stop()}},e,this)}))}},{key:"getParentPath",value:function(n){return i(this,void 0,void 0,regeneratorRuntime.mark(function e(){var t,a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.module.FS,a=t.analyzePath(n,!1),e.abrupt("return",a.parentPath);case 3:case"end":return e.stop()}},e,this)}))}}]),n}(),u=function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";a(this,n),this.errorMessage=e};exports.CompilerError=u;var I=function(){function e(){var n=this;a(this,e),this.cwdFiles=[],this.module=s().then(function(e){return i(n,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this.init(e);case 2:return n.abrupt("return",e);case 3:case"end":return n.stop()}},n,this)}))})}return o(e,[{key:"init",value:function(n){return i(this,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.prepareModule(n),e.next=3,this.prepareFileSystem(n);case 3:case"end":return e.stop()}},e,this)}))}},{key:"getFileSystemInspector",value:function(){return i(this,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.t0=p,n.next=3,this.module;case 3:return n.t1=n.sent,n.abrupt("return",new n.t0(n.t1));case 5:case"end":return n.stop()}},n,this)}))}},{key:"prepareModule",value:function(n){this.createCompileResult=n.cwrap("create_compile_result","number",["string","number"])}},{key:"mkdir_p",value:function(n,e){for(var t=n.split("/"),a=[],r=0;r<t.length&&r!==t.length-1;++r){var o=t[r];a.push(o);var i=a.join("/");e.FS.analyzePath(i,!1).exists||e.FS.mkdir(i)}}},{key:"prepareFileSystem",value:function(e){return i(this,void 0,void 0,regeneratorRuntime.mark(function t(){var a,r,o,i,s;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:a=d.cloneDeep(c),r=e.FS,o=n(a);try{for(o.s();!(i=o.n()).done;){s=i.value;try{this.mkdir_p(s.path,e),r.writeFile(s.path,s.data)}catch(l){console.error(l)}}}catch(p){o.e(p)}finally{o.f()}case 4:case"end":return t.stop()}},t,this)}))}},{key:"writeFileToFS",value:function(n,e){return i(this,void 0,void 0,regeneratorRuntime.mark(function t(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.module;case 2:t.sent.FS.writeFile(n,e),this.cwdFiles.push(n);case 5:case"end":return t.stop()}},t,this)}))}},{key:"cleanCWD",value:function(){return i(this,void 0,void 0,regeneratorRuntime.mark(function e(){var t,a,r,o;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.module;case 2:t=e.sent.FS,a=n(this.cwdFiles);try{for(a.s();!(r=a.n()).done;)o=r.value,t.analyzePath(o,!1).exists&&t.unlink(o)}catch(i){a.e(i)}finally{a.f()}this.cwdFiles.splice(0,this.cwdFiles.length);case 6:case"end":return e.stop()}},e,this)}))}},{key:"compile",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return i(this,void 0,void 0,regeneratorRuntime.mark(function a(){var r,o,i,s,l,c,d,p;return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=2,this.cleanCWD();case 2:if(e&&0!==e.length){a.next=4;break}throw new u("no content to compile");case 4:return a.next=6,this.module;case 6:r=a.sent,o=0,i=null,s=n(e),a.prev=10,s.s();case 12:if((l=s.n()).done){a.next=21;break}if((c=l.value).path&&c.path.trim()){a.next=16;break}throw new u("sheet file has no path");case 16:return a.next=18,this.writeFileToFS(c.path,c.data);case 18:c.path.trim().endsWith(".sheet")&&(i=c);case 19:a.next=12;break;case 21:a.next=26;break;case 23:a.prev=23,a.t0=a.catch(10),s.e(a.t0);case 26:return a.prev=26,s.f(),a.finish(26);case 29:if(i){a.next=31;break}throw new u("missing main sheet file (.sheet)");case 31:if(o=this.createCompileResult(i.path,t),d=r.UTF8ToString(o),r._free(o),!(p=JSON.parse(d)).errorMessage){a.next=37;break}throw{error:p};case 37:return a.abrupt("return",p);case 38:case"end":return a.stop()}},a,this,[[10,23,26,29]])}))}}]),e}();exports.WerckmeisterCompiler=I;
493
493
  },{"@werckmeister/compilerjs/werckmeister":"ouOZ","fs":"rDCW","lodash":"B1iE"}],"X3ym":[function(require,module,exports) {
494
494
  var define;
495
495
  var A;parcelRequire=function(e,t,n,r){var i,o="function"==typeof parcelRequire&&parcelRequire,a="function"==typeof require&&require;function s(A,n){if(!t[A]){if(!e[A]){var r="function"==typeof parcelRequire&&parcelRequire;if(!n&&r)return r(A,!0);if(o)return o(A,!0);if(a&&"string"==typeof A)return a(A);var i=new Error("Cannot find module '"+A+"'");throw i.code="MODULE_NOT_FOUND",i}I.resolve=function(t){return e[A][1][t]||t},I.cache={};var g=t[A]=new s.Module(A);e[A][0].call(g.exports,I,g,g.exports,this)}return t[A].exports;function I(A){return s(I.resolve(A))}}s.isParcelRequire=!0,s.Module=function(A){this.id=A,this.bundle=s,this.exports={}},s.modules=e,s.cache=t,s.parent=o,s.register=function(A,t){e[A]=[function(A,e){e.exports=t},{}]};for(var g=0;g<n.length;g++)try{s(n[g])}catch(e){i||(i=e)}if(n.length){var I=s(n[n.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=I:"function"==typeof A&&A.amd&&A(function(){return I})}if(parcelRequire=s,i)throw i;return s}({yh9p:[function(A,e,t){"use strict";t.byteLength=function(A){var e=g(A),t=e[0],n=e[1];return 3*(t+n)/4-n},t.toByteArray=function(A){var e,t,n=g(A),o=n[0],a=n[1],s=new i(function(A,e,t){return 3*(e+t)/4-t}(0,o,a)),I=0,u=a>0?o-4:o;for(t=0;t<u;t+=4)e=r[A.charCodeAt(t)]<<18|r[A.charCodeAt(t+1)]<<12|r[A.charCodeAt(t+2)]<<6|r[A.charCodeAt(t+3)],s[I++]=e>>16&255,s[I++]=e>>8&255,s[I++]=255&e;return 2===a&&(e=r[A.charCodeAt(t)]<<2|r[A.charCodeAt(t+1)]>>4,s[I++]=255&e),1===a&&(e=r[A.charCodeAt(t)]<<10|r[A.charCodeAt(t+1)]<<4|r[A.charCodeAt(t+2)]>>2,s[I++]=e>>8&255,s[I++]=255&e),s},t.fromByteArray=function(A){for(var e,t=A.length,r=t%3,i=[],o=0,a=t-r;o<a;o+=16383)i.push(u(A,o,o+16383>a?a:o+16383));return 1===r?(e=A[t-1],i.push(n[e>>2]+n[e<<4&63]+"==")):2===r&&(e=(A[t-2]<<8)+A[t-1],i.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),i.join("")};for(var n=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,s=o.length;a<s;++a)n[a]=o[a],r[o.charCodeAt(a)]=a;function g(A){var e=A.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=A.indexOf("=");return-1===t&&(t=e),[t,t===e?0:4-t%4]}function I(A){return n[A>>18&63]+n[A>>12&63]+n[A>>6&63]+n[63&A]}function u(A,e,t){for(var n,r=[],i=e;i<t;i+=3)n=(A[i]<<16&16711680)+(A[i+1]<<8&65280)+(255&A[i+2]),r.push(I(n));return r.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},{}],JgNJ:[function(A,e,t){t.read=function(A,e,t,n,r){var i,o,a=8*r-n-1,s=(1<<a)-1,g=s>>1,I=-7,u=t?r-1:0,f=t?-1:1,l=A[e+u];for(u+=f,i=l&(1<<-I)-1,l>>=-I,I+=a;I>0;i=256*i+A[e+u],u+=f,I-=8);for(o=i&(1<<-I)-1,i>>=-I,I+=n;I>0;o=256*o+A[e+u],u+=f,I-=8);if(0===i)i=1-g;else{if(i===s)return o?NaN:1/0*(l?-1:1);o+=Math.pow(2,n),i-=g}return(l?-1:1)*o*Math.pow(2,i-n)},t.write=function(A,e,t,n,r,i){var o,a,s,g=8*i-r-1,I=(1<<g)-1,u=I>>1,f=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,l=n?0:i-1,B=n?1:-1,E=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=I):(o=Math.floor(Math.log(e)/Math.LN2),e*(s=Math.pow(2,-o))<1&&(o--,s*=2),(e+=o+u>=1?f/s:f*Math.pow(2,1-u))*s>=2&&(o++,s/=2),o+u>=I?(a=0,o=I):o+u>=1?(a=(e*s-1)*Math.pow(2,r),o+=u):(a=e*Math.pow(2,u-1)*Math.pow(2,r),o=0));r>=8;A[t+l]=255&a,l+=B,a/=256,r-=8);for(o=o<<r|a,g+=r;g>0;A[t+l]=255&o,l+=B,o/=256,g-=8);A[t+l-B]|=128*E}},{}],REa7:[function(A,e,t){var n={}.toString;e.exports=Array.isArray||function(A){return"[object Array]"==n.call(A)}},{}],dskh:[function(A,e,t){arguments[3];var n=arguments[3],r=A("base64-js"),i=A("ieee754"),o=A("isarray");function a(){return g.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(A,e){if(a()<e)throw new RangeError("Invalid typed array length");return g.TYPED_ARRAY_SUPPORT?(A=new Uint8Array(e)).__proto__=g.prototype:(null===A&&(A=new g(e)),A.length=e),A}function g(A,e,t){if(!(g.TYPED_ARRAY_SUPPORT||this instanceof g))return new g(A,e,t);if("number"==typeof A){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return f(this,A)}return I(this,A,e,t)}function I(A,e,t,n){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function(A,e,t,n){if(e.byteLength,t<0||e.byteLength<t)throw new RangeError("'offset' is out of bounds");if(e.byteLength<t+(n||0))throw new RangeError("'length' is out of bounds");return e=void 0===t&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,t):new Uint8Array(e,t,n),g.TYPED_ARRAY_SUPPORT?(A=e).__proto__=g.prototype:A=l(A,e),A}(A,e,t,n):"string"==typeof e?function(A,e,t){if("string"==typeof t&&""!==t||(t="utf8"),!g.isEncoding(t))throw new TypeError('"encoding" must be a valid string encoding');var n=0|c(e,t),r=(A=s(A,n)).write(e,t);return r!==n&&(A=A.slice(0,r)),A}(A,e,t):B(A,e)}function u(A){if("number"!=typeof A)throw new TypeError('"size" argument must be a number');if(A<0)throw new RangeError('"size" argument must not be negative')}function f(A,e){if(u(e),A=s(A,e<0?0:0|E(e)),!g.TYPED_ARRAY_SUPPORT)for(var t=0;t<e;++t)A[t]=0;return A}function l(A,e){var t=e.length<0?0:0|E(e.length);A=s(A,t);for(var n=0;n<t;n+=1)A[n]=255&e[n];return A}function B(A,e){if(g.isBuffer(e)){var t=0|E(e.length);return 0===(A=s(A,t)).length?A:(e.copy(A,0,0,t),A)}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||function(A){return A!=A}(e.length)?s(A,0):l(A,e);if("Buffer"===e.type&&o(e.data))return l(A,e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function E(A){if(A>=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|A}function c(A,e){if(g.isBuffer(A))return A.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(A)||A instanceof ArrayBuffer))return A.byteLength;"string"!=typeof A&&(A=""+A);var t=A.length;if(0===t)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return t;case"utf8":case"utf-8":case void 0:return H(A).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*t;case"hex":return t>>>1;case"base64":return X(A).length;default:if(n)return H(A).length;e=(""+e).toLowerCase(),n=!0}}function d(A,e,t){var n=A[e];A[e]=A[t],A[t]=n}function C(A,e,t,n,r){if(0===A.length)return-1;if("string"==typeof t?(n=t,t=0):t>2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),t=+t,isNaN(t)&&(t=r?0:A.length-1),t<0&&(t=A.length+t),t>=A.length){if(r)return-1;t=A.length-1}else if(t<0){if(!r)return-1;t=0}if("string"==typeof e&&(e=g.from(e,n)),g.isBuffer(e))return 0===e.length?-1:h(A,e,t,n,r);if("number"==typeof e)return e&=255,g.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(A,e,t):Uint8Array.prototype.lastIndexOf.call(A,e,t):h(A,[e],t,n,r);throw new TypeError("val must be string, number or Buffer")}function h(A,e,t,n,r){var i,o=1,a=A.length,s=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(A.length<2||e.length<2)return-1;o=2,a/=2,s/=2,t/=2}function g(A,e){return 1===o?A[e]:A.readUInt16BE(e*o)}if(r){var I=-1;for(i=t;i<a;i++)if(g(A,i)===g(e,-1===I?0:i-I)){if(-1===I&&(I=i),i-I+1===s)return I*o}else-1!==I&&(i-=i-I),I=-1}else for(t+s>a&&(t=a-s),i=t;i>=0;i--){for(var u=!0,f=0;f<s;f++)if(g(A,i+f)!==g(e,f)){u=!1;break}if(u)return i}return-1}function Q(A,e,t,n){t=Number(t)||0;var r=A.length-t;n?(n=Number(n))>r&&(n=r):n=r;var i=e.length;if(i%2!=0)throw new TypeError("Invalid hex string");n>i/2&&(n=i/2);for(var o=0;o<n;++o){var a=parseInt(e.substr(2*o,2),16);if(isNaN(a))return o;A[t+o]=a}return o}function p(A,e,t,n){return K(H(e,A.length-t),A,t,n)}function m(A,e,t,n){return K(function(A){for(var e=[],t=0;t<A.length;++t)e.push(255&A.charCodeAt(t));return e}(e),A,t,n)}function y(A,e,t,n){return m(A,e,t,n)}function w(A,e,t,n){return K(X(e),A,t,n)}function b(A,e,t,n){return K(function(A,e){for(var t,n,r,i=[],o=0;o<A.length&&!((e-=2)<0);++o)n=(t=A.charCodeAt(o))>>8,r=t%256,i.push(r),i.push(n);return i}(e,A.length-t),A,t,n)}function _(A,e,t){return 0===e&&t===A.length?r.fromByteArray(A):r.fromByteArray(A.slice(e,t))}function D(A,e,t){t=Math.min(A.length,t);for(var n=[],r=e;r<t;){var i,o,a,s,g=A[r],I=null,u=g>239?4:g>223?3:g>191?2:1;if(r+u<=t)switch(u){case 1:g<128&&(I=g);break;case 2:128==(192&(i=A[r+1]))&&(s=(31&g)<<6|63&i)>127&&(I=s);break;case 3:i=A[r+1],o=A[r+2],128==(192&i)&&128==(192&o)&&(s=(15&g)<<12|(63&i)<<6|63&o)>2047&&(s<55296||s>57343)&&(I=s);break;case 4:i=A[r+1],o=A[r+2],a=A[r+3],128==(192&i)&&128==(192&o)&&128==(192&a)&&(s=(15&g)<<18|(63&i)<<12|(63&o)<<6|63&a)>65535&&s<1114112&&(I=s)}null===I?(I=65533,u=1):I>65535&&(I-=65536,n.push(I>>>10&1023|55296),I=56320|1023&I),n.push(I),r+=u}return function(A){var e=A.length;if(e<=v)return String.fromCharCode.apply(String,A);for(var t="",n=0;n<e;)t+=String.fromCharCode.apply(String,A.slice(n,n+=v));return t}(n)}t.Buffer=g,t.SlowBuffer=function(A){return+A!=A&&(A=0),g.alloc(+A)},t.INSPECT_MAX_BYTES=50,g.TYPED_ARRAY_SUPPORT=void 0!==n.TYPED_ARRAY_SUPPORT?n.TYPED_ARRAY_SUPPORT:function(){try{var A=new Uint8Array(1);return A.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===A.foo()&&"function"==typeof A.subarray&&0===A.subarray(1,1).byteLength}catch(r){return!1}}(),t.kMaxLength=a(),g.poolSize=8192,g._augment=function(A){return A.__proto__=g.prototype,A},g.from=function(A,e,t){return I(null,A,e,t)},g.TYPED_ARRAY_SUPPORT&&(g.prototype.__proto__=Uint8Array.prototype,g.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&g[Symbol.species]===g&&Object.defineProperty(g,Symbol.species,{value:null,configurable:!0})),g.alloc=function(A,e,t){return function(A,e,t,n){return u(e),e<=0?s(A,e):void 0!==t?"string"==typeof n?s(A,e).fill(t,n):s(A,e).fill(t):s(A,e)}(null,A,e,t)},g.allocUnsafe=function(A){return f(null,A)},g.allocUnsafeSlow=function(A){return f(null,A)},g.isBuffer=function(A){return!(null==A||!A._isBuffer)},g.compare=function(A,e){if(!g.isBuffer(A)||!g.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(A===e)return 0;for(var t=A.length,n=e.length,r=0,i=Math.min(t,n);r<i;++r)if(A[r]!==e[r]){t=A[r],n=e[r];break}return t<n?-1:n<t?1:0},g.isEncoding=function(A){switch(String(A).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},g.concat=function(A,e){if(!o(A))throw new TypeError('"list" argument must be an Array of Buffers');if(0===A.length)return g.alloc(0);var t;if(void 0===e)for(e=0,t=0;t<A.length;++t)e+=A[t].length;var n=g.allocUnsafe(e),r=0;for(t=0;t<A.length;++t){var i=A[t];if(!g.isBuffer(i))throw new TypeError('"list" argument must be an Array of Buffers');i.copy(n,r),r+=i.length}return n},g.byteLength=c,g.prototype._isBuffer=!0,g.prototype.swap16=function(){var A=this.length;if(A%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<A;e+=2)d(this,e,e+1);return this},g.prototype.swap32=function(){var A=this.length;if(A%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<A;e+=4)d(this,e,e+3),d(this,e+1,e+2);return this},g.prototype.swap64=function(){var A=this.length;if(A%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<A;e+=8)d(this,e,e+7),d(this,e+1,e+6),d(this,e+2,e+5),d(this,e+3,e+4);return this},g.prototype.toString=function(){var A=0|this.length;return 0===A?"":0===arguments.length?D(this,0,A):function(A,e,t){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===t||t>this.length)&&(t=this.length),t<=0)return"";if((t>>>=0)<=(e>>>=0))return"";for(A||(A="utf8");;)switch(A){case"hex":return M(this,e,t);case"utf8":case"utf-8":return D(this,e,t);case"ascii":return R(this,e,t);case"latin1":case"binary":return F(this,e,t);case"base64":return _(this,e,t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t);default:if(n)throw new TypeError("Unknown encoding: "+A);A=(A+"").toLowerCase(),n=!0}}.apply(this,arguments)},g.prototype.equals=function(A){if(!g.isBuffer(A))throw new TypeError("Argument must be a Buffer");return this===A||0===g.compare(this,A)},g.prototype.inspect=function(){var A="",e=t.INSPECT_MAX_BYTES;return this.length>0&&(A=this.toString("hex",0,e).match(/.{2}/g).join(" "),this.length>e&&(A+=" ... ")),"<Buffer "+A+">"},g.prototype.compare=function(A,e,t,n,r){if(!g.isBuffer(A))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===t&&(t=A?A.length:0),void 0===n&&(n=0),void 0===r&&(r=this.length),e<0||t>A.length||n<0||r>this.length)throw new RangeError("out of range index");if(n>=r&&e>=t)return 0;if(n>=r)return-1;if(e>=t)return 1;if(this===A)return 0;for(var i=(r>>>=0)-(n>>>=0),o=(t>>>=0)-(e>>>=0),a=Math.min(i,o),s=this.slice(n,r),I=A.slice(e,t),u=0;u<a;++u)if(s[u]!==I[u]){i=s[u],o=I[u];break}return i<o?-1:o<i?1:0},g.prototype.includes=function(A,e,t){return-1!==this.indexOf(A,e,t)},g.prototype.indexOf=function(A,e,t){return C(this,A,e,t,!0)},g.prototype.lastIndexOf=function(A,e,t){return C(this,A,e,t,!1)},g.prototype.write=function(A,e,t,n){if(void 0===e)n="utf8",t=this.length,e=0;else if(void 0===t&&"string"==typeof e)n=e,t=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e|=0,isFinite(t)?(t|=0,void 0===n&&(n="utf8")):(n=t,t=void 0)}var r=this.length-e;if((void 0===t||t>r)&&(t=r),A.length>0&&(t<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return Q(this,A,e,t);case"utf8":case"utf-8":return p(this,A,e,t);case"ascii":return m(this,A,e,t);case"latin1":case"binary":return y(this,A,e,t);case"base64":return w(this,A,e,t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return b(this,A,e,t);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},g.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var v=4096;function R(A,e,t){var n="";t=Math.min(A.length,t);for(var r=e;r<t;++r)n+=String.fromCharCode(127&A[r]);return n}function F(A,e,t){var n="";t=Math.min(A.length,t);for(var r=e;r<t;++r)n+=String.fromCharCode(A[r]);return n}function M(A,e,t){var n=A.length;(!e||e<0)&&(e=0),(!t||t<0||t>n)&&(t=n);for(var r="",i=e;i<t;++i)r+=Z(A[i]);return r}function S(A,e,t){for(var n=A.slice(e,t),r="",i=0;i<n.length;i+=2)r+=String.fromCharCode(n[i]+256*n[i+1]);return r}function k(A,e,t){if(A%1!=0||A<0)throw new RangeError("offset is not uint");if(A+e>t)throw new RangeError("Trying to access beyond buffer length")}function G(A,e,t,n,r,i){if(!g.isBuffer(A))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>r||e<i)throw new RangeError('"value" argument is out of bounds');if(t+n>A.length)throw new RangeError("Index out of range")}function N(A,e,t,n){e<0&&(e=65535+e+1);for(var r=0,i=Math.min(A.length-t,2);r<i;++r)A[t+r]=(e&255<<8*(n?r:1-r))>>>8*(n?r:1-r)}function P(A,e,t,n){e<0&&(e=4294967295+e+1);for(var r=0,i=Math.min(A.length-t,4);r<i;++r)A[t+r]=e>>>8*(n?r:3-r)&255}function L(A,e,t,n,r,i){if(t+n>A.length)throw new RangeError("Index out of range");if(t<0)throw new RangeError("Index out of range")}function U(A,e,t,n,r){return r||L(A,0,t,4),i.write(A,e,t,n,23,4),t+4}function Y(A,e,t,n,r){return r||L(A,0,t,8),i.write(A,e,t,n,52,8),t+8}g.prototype.slice=function(A,e){var t,n=this.length;if((A=~~A)<0?(A+=n)<0&&(A=0):A>n&&(A=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e<A&&(e=A),g.TYPED_ARRAY_SUPPORT)(t=this.subarray(A,e)).__proto__=g.prototype;else{var r=e-A;t=new g(r,void 0);for(var i=0;i<r;++i)t[i]=this[i+A]}return t},g.prototype.readUIntLE=function(A,e,t){A|=0,e|=0,t||k(A,e,this.length);for(var n=this[A],r=1,i=0;++i<e&&(r*=256);)n+=this[A+i]*r;return n},g.prototype.readUIntBE=function(A,e,t){A|=0,e|=0,t||k(A,e,this.length);for(var n=this[A+--e],r=1;e>0&&(r*=256);)n+=this[A+--e]*r;return n},g.prototype.readUInt8=function(A,e){return e||k(A,1,this.length),this[A]},g.prototype.readUInt16LE=function(A,e){return e||k(A,2,this.length),this[A]|this[A+1]<<8},g.prototype.readUInt16BE=function(A,e){return e||k(A,2,this.length),this[A]<<8|this[A+1]},g.prototype.readUInt32LE=function(A,e){return e||k(A,4,this.length),(this[A]|this[A+1]<<8|this[A+2]<<16)+16777216*this[A+3]},g.prototype.readUInt32BE=function(A,e){return e||k(A,4,this.length),16777216*this[A]+(this[A+1]<<16|this[A+2]<<8|this[A+3])},g.prototype.readIntLE=function(A,e,t){A|=0,e|=0,t||k(A,e,this.length);for(var n=this[A],r=1,i=0;++i<e&&(r*=256);)n+=this[A+i]*r;return n>=(r*=128)&&(n-=Math.pow(2,8*e)),n},g.prototype.readIntBE=function(A,e,t){A|=0,e|=0,t||k(A,e,this.length);for(var n=e,r=1,i=this[A+--n];n>0&&(r*=256);)i+=this[A+--n]*r;return i>=(r*=128)&&(i-=Math.pow(2,8*e)),i},g.prototype.readInt8=function(A,e){return e||k(A,1,this.length),128&this[A]?-1*(255-this[A]+1):this[A]},g.prototype.readInt16LE=function(A,e){e||k(A,2,this.length);var t=this[A]|this[A+1]<<8;return 32768&t?4294901760|t:t},g.prototype.readInt16BE=function(A,e){e||k(A,2,this.length);var t=this[A+1]|this[A]<<8;return 32768&t?4294901760|t:t},g.prototype.readInt32LE=function(A,e){return e||k(A,4,this.length),this[A]|this[A+1]<<8|this[A+2]<<16|this[A+3]<<24},g.prototype.readInt32BE=function(A,e){return e||k(A,4,this.length),this[A]<<24|this[A+1]<<16|this[A+2]<<8|this[A+3]},g.prototype.readFloatLE=function(A,e){return e||k(A,4,this.length),i.read(this,A,!0,23,4)},g.prototype.readFloatBE=function(A,e){return e||k(A,4,this.length),i.read(this,A,!1,23,4)},g.prototype.readDoubleLE=function(A,e){return e||k(A,8,this.length),i.read(this,A,!0,52,8)},g.prototype.readDoubleBE=function(A,e){return e||k(A,8,this.length),i.read(this,A,!1,52,8)},g.prototype.writeUIntLE=function(A,e,t,n){A=+A,e|=0,t|=0,n||G(this,A,e,t,Math.pow(2,8*t)-1,0);var r=1,i=0;for(this[e]=255&A;++i<t&&(r*=256);)this[e+i]=A/r&255;return e+t},g.prototype.writeUIntBE=function(A,e,t,n){A=+A,e|=0,t|=0,n||G(this,A,e,t,Math.pow(2,8*t)-1,0);var r=t-1,i=1;for(this[e+r]=255&A;--r>=0&&(i*=256);)this[e+r]=A/i&255;return e+t},g.prototype.writeUInt8=function(A,e,t){return A=+A,e|=0,t||G(this,A,e,1,255,0),g.TYPED_ARRAY_SUPPORT||(A=Math.floor(A)),this[e]=255&A,e+1},g.prototype.writeUInt16LE=function(A,e,t){return A=+A,e|=0,t||G(this,A,e,2,65535,0),g.TYPED_ARRAY_SUPPORT?(this[e]=255&A,this[e+1]=A>>>8):N(this,A,e,!0),e+2},g.prototype.writeUInt16BE=function(A,e,t){return A=+A,e|=0,t||G(this,A,e,2,65535,0),g.TYPED_ARRAY_SUPPORT?(this[e]=A>>>8,this[e+1]=255&A):N(this,A,e,!1),e+2},g.prototype.writeUInt32LE=function(A,e,t){return A=+A,e|=0,t||G(this,A,e,4,4294967295,0),g.TYPED_ARRAY_SUPPORT?(this[e+3]=A>>>24,this[e+2]=A>>>16,this[e+1]=A>>>8,this[e]=255&A):P(this,A,e,!0),e+4},g.prototype.writeUInt32BE=function(A,e,t){return A=+A,e|=0,t||G(this,A,e,4,4294967295,0),g.TYPED_ARRAY_SUPPORT?(this[e]=A>>>24,this[e+1]=A>>>16,this[e+2]=A>>>8,this[e+3]=255&A):P(this,A,e,!1),e+4},g.prototype.writeIntLE=function(A,e,t,n){if(A=+A,e|=0,!n){var r=Math.pow(2,8*t-1);G(this,A,e,t,r-1,-r)}var i=0,o=1,a=0;for(this[e]=255&A;++i<t&&(o*=256);)A<0&&0===a&&0!==this[e+i-1]&&(a=1),this[e+i]=(A/o>>0)-a&255;return e+t},g.prototype.writeIntBE=function(A,e,t,n){if(A=+A,e|=0,!n){var r=Math.pow(2,8*t-1);G(this,A,e,t,r-1,-r)}var i=t-1,o=1,a=0;for(this[e+i]=255&A;--i>=0&&(o*=256);)A<0&&0===a&&0!==this[e+i+1]&&(a=1),this[e+i]=(A/o>>0)-a&255;return e+t},g.prototype.writeInt8=function(A,e,t){return A=+A,e|=0,t||G(this,A,e,1,127,-128),g.TYPED_ARRAY_SUPPORT||(A=Math.floor(A)),A<0&&(A=255+A+1),this[e]=255&A,e+1},g.prototype.writeInt16LE=function(A,e,t){return A=+A,e|=0,t||G(this,A,e,2,32767,-32768),g.TYPED_ARRAY_SUPPORT?(this[e]=255&A,this[e+1]=A>>>8):N(this,A,e,!0),e+2},g.prototype.writeInt16BE=function(A,e,t){return A=+A,e|=0,t||G(this,A,e,2,32767,-32768),g.TYPED_ARRAY_SUPPORT?(this[e]=A>>>8,this[e+1]=255&A):N(this,A,e,!1),e+2},g.prototype.writeInt32LE=function(A,e,t){return A=+A,e|=0,t||G(this,A,e,4,2147483647,-2147483648),g.TYPED_ARRAY_SUPPORT?(this[e]=255&A,this[e+1]=A>>>8,this[e+2]=A>>>16,this[e+3]=A>>>24):P(this,A,e,!0),e+4},g.prototype.writeInt32BE=function(A,e,t){return A=+A,e|=0,t||G(this,A,e,4,2147483647,-2147483648),A<0&&(A=4294967295+A+1),g.TYPED_ARRAY_SUPPORT?(this[e]=A>>>24,this[e+1]=A>>>16,this[e+2]=A>>>8,this[e+3]=255&A):P(this,A,e,!1),e+4},g.prototype.writeFloatLE=function(A,e,t){return U(this,A,e,!0,t)},g.prototype.writeFloatBE=function(A,e,t){return U(this,A,e,!1,t)},g.prototype.writeDoubleLE=function(A,e,t){return Y(this,A,e,!0,t)},g.prototype.writeDoubleBE=function(A,e,t){return Y(this,A,e,!1,t)},g.prototype.copy=function(A,e,t,n){if(t||(t=0),n||0===n||(n=this.length),e>=A.length&&(e=A.length),e||(e=0),n>0&&n<t&&(n=t),n===t)return 0;if(0===A.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(t<0||t>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),A.length-e<n-t&&(n=A.length-e+t);var r,i=n-t;if(this===A&&t<e&&e<n)for(r=i-1;r>=0;--r)A[r+e]=this[r+t];else if(i<1e3||!g.TYPED_ARRAY_SUPPORT)for(r=0;r<i;++r)A[r+e]=this[r+t];else Uint8Array.prototype.set.call(A,this.subarray(t,t+i),e);return i},g.prototype.fill=function(A,e,t,n){if("string"==typeof A){if("string"==typeof e?(n=e,e=0,t=this.length):"string"==typeof t&&(n=t,t=this.length),1===A.length){var r=A.charCodeAt(0);r<256&&(A=r)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!g.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof A&&(A&=255);if(e<0||this.length<e||this.length<t)throw new RangeError("Out of range index");if(t<=e)return this;var i;if(e>>>=0,t=void 0===t?this.length:t>>>0,A||(A=0),"number"==typeof A)for(i=e;i<t;++i)this[i]=A;else{var o=g.isBuffer(A)?A:H(new g(A,n).toString()),a=o.length;for(i=0;i<t-e;++i)this[i+e]=o[i%a]}return this};var x=/[^+\/0-9A-Za-z-_]/g;function Z(A){return A<16?"0"+A.toString(16):A.toString(16)}function H(A,e){var t;e=e||1/0;for(var n=A.length,r=null,i=[],o=0;o<n;++o){if((t=A.charCodeAt(o))>55295&&t<57344){if(!r){if(t>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&i.push(239,191,189);continue}r=t;continue}if(t<56320){(e-=3)>-1&&i.push(239,191,189),r=t;continue}t=65536+(r-55296<<10|t-56320)}else r&&(e-=3)>-1&&i.push(239,191,189);if(r=null,t<128){if((e-=1)<0)break;i.push(t)}else if(t<2048){if((e-=2)<0)break;i.push(t>>6|192,63&t|128)}else if(t<65536){if((e-=3)<0)break;i.push(t>>12|224,t>>6&63|128,63&t|128)}else{if(!(t<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;i.push(t>>18|240,t>>12&63|128,t>>6&63|128,63&t|128)}}return i}function X(A){return r.toByteArray(function(A){if((A=function(A){return A.trim?A.trim():A.replace(/^\s+|\s+$/g,"")}(A).replace(x,"")).length<2)return"";for(;A.length%4!=0;)A+="=";return A}(A))}function K(A,e,t,n){for(var r=0;r<n&&!(r+t>=e.length||r>=A.length);++r)e[r+t]=A[r];return r}},{"base64-js":"yh9p",ieee754:"JgNJ",isarray:"REa7",buffer:"dskh"}],B1iE:[function(A,e,t){arguments[3],A("buffer").Buffer;var n=arguments[3];A("buffer").Buffer;(function(){var A,r=200,i="Expected a function",o="__lodash_hash_undefined__",a="__lodash_placeholder__",s=1,g=2,I=4,u=1,f=2,l=1,B=2,E=4,c=8,d=16,C=32,h=64,Q=128,p=256,m=512,y=800,w=16,b=1/0,_=9007199254740991,D=1.7976931348623157e308,v=NaN,R=4294967295,F=R-1,M=R>>>1,S=[["ary",Q],["bind",l],["bindKey",B],["curry",c],["curryRight",d],["flip",m],["partial",C],["partialRight",h],["rearg",p]],k="[object Arguments]",G="[object Array]",N="[object AsyncFunction]",P="[object Boolean]",L="[object Date]",U="[object DOMException]",Y="[object Error]",x="[object Function]",Z="[object GeneratorFunction]",H="[object Map]",X="[object Number]",K="[object Null]",T="[object Object]",W="[object Proxy]",q="[object RegExp]",J="[object Set]",V="[object String]",O="[object Symbol]",z="[object Undefined]",j="[object WeakMap]",$="[object ArrayBuffer]",AA="[object DataView]",eA="[object Float32Array]",tA="[object Float64Array]",nA="[object Int8Array]",rA="[object Int16Array]",iA="[object Int32Array]",oA="[object Uint8Array]",aA="[object Uint8ClampedArray]",sA="[object Uint16Array]",gA="[object Uint32Array]",IA=/\b__p \+= '';/g,uA=/\b(__p \+=) '' \+/g,fA=/(__e\(.*?\)|\b__t\)) \+\n'';/g,lA=/&(?:amp|lt|gt|quot|#39);/g,BA=/[&<>"']/g,EA=RegExp(lA.source),cA=RegExp(BA.source),dA=/<%-([\s\S]+?)%>/g,CA=/<%([\s\S]+?)%>/g,hA=/<%=([\s\S]+?)%>/g,QA=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,pA=/^\w*$/,mA=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,yA=/[\\^$.*+?()[\]{}|]/g,wA=RegExp(yA.source),bA=/^\s+|\s+$/g,_A=/^\s+/,DA=/\s+$/,vA=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,RA=/\{\n\/\* \[wrapped with (.+)\] \*/,FA=/,? & /,MA=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,SA=/\\(\\)?/g,kA=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,GA=/\w*$/,NA=/^[-+]0x[0-9a-f]+$/i,PA=/^0b[01]+$/i,LA=/^\[object .+?Constructor\]$/,UA=/^0o[0-7]+$/i,YA=/^(?:0|[1-9]\d*)$/,xA=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ZA=/($^)/,HA=/['\n\r\u2028\u2029\\]/g,XA="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",KA="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",TA="["+KA+"]",WA="["+XA+"]",qA="\\d+",JA="[a-z\\xdf-\\xf6\\xf8-\\xff]",VA="[^\\ud800-\\udfff"+KA+qA+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",OA="\\ud83c[\\udffb-\\udfff]",zA="[^\\ud800-\\udfff]",jA="(?:\\ud83c[\\udde6-\\uddff]){2}",$A="[\\ud800-\\udbff][\\udc00-\\udfff]",Ae="[A-Z\\xc0-\\xd6\\xd8-\\xde]",ee="(?:"+JA+"|"+VA+")",te="(?:"+Ae+"|"+VA+")",ne="(?:"+WA+"|"+OA+")?",re="[\\ufe0e\\ufe0f]?"+ne+"(?:\\u200d(?:"+[zA,jA,$A].join("|")+")[\\ufe0e\\ufe0f]?"+ne+")*",ie="(?:"+["[\\u2700-\\u27bf]",jA,$A].join("|")+")"+re,oe="(?:"+[zA+WA+"?",WA,jA,$A,"[\\ud800-\\udfff]"].join("|")+")",ae=RegExp("['’]","g"),se=RegExp(WA,"g"),ge=RegExp(OA+"(?="+OA+")|"+oe+re,"g"),Ie=RegExp([Ae+"?"+JA+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[TA,Ae,"$"].join("|")+")",te+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[TA,Ae+ee,"$"].join("|")+")",Ae+"?"+ee+"+(?:['’](?:d|ll|m|re|s|t|ve))?",Ae+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",qA,ie].join("|"),"g"),ue=RegExp("[\\u200d\\ud800-\\udfff"+XA+"\\ufe0e\\ufe0f]"),fe=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,le=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Be=-1,Ee={};Ee[eA]=Ee[tA]=Ee[nA]=Ee[rA]=Ee[iA]=Ee[oA]=Ee[aA]=Ee[sA]=Ee[gA]=!0,Ee[k]=Ee[G]=Ee[$]=Ee[P]=Ee[AA]=Ee[L]=Ee[Y]=Ee[x]=Ee[H]=Ee[X]=Ee[T]=Ee[q]=Ee[J]=Ee[V]=Ee[j]=!1;var ce={};ce[k]=ce[G]=ce[$]=ce[AA]=ce[P]=ce[L]=ce[eA]=ce[tA]=ce[nA]=ce[rA]=ce[iA]=ce[H]=ce[X]=ce[T]=ce[q]=ce[J]=ce[V]=ce[O]=ce[oA]=ce[aA]=ce[sA]=ce[gA]=!0,ce[Y]=ce[x]=ce[j]=!1;var de={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ce=parseFloat,he=parseInt,Qe="object"==typeof n&&n&&n.Object===Object&&n,pe="object"==typeof self&&self&&self.Object===Object&&self,me=Qe||pe||Function("return this")(),ye="object"==typeof t&&t&&!t.nodeType&&t,we=ye&&"object"==typeof e&&e&&!e.nodeType&&e,be=we&&we.exports===ye,_e=be&&Qe.process,De=function(){try{return we&&we.require&&we.require("util").types||_e&&_e.binding&&_e.binding("util")}catch(n){}}(),ve=De&&De.isArrayBuffer,Re=De&&De.isDate,Fe=De&&De.isMap,Me=De&&De.isRegExp,Se=De&&De.isSet,ke=De&&De.isTypedArray;function Ge(A,e,t){switch(t.length){case 0:return A.call(e);case 1:return A.call(e,t[0]);case 2:return A.call(e,t[0],t[1]);case 3:return A.call(e,t[0],t[1],t[2])}return A.apply(e,t)}function Ne(A,e,t,n){for(var r=-1,i=null==A?0:A.length;++r<i;){var o=A[r];e(n,o,t(o),A)}return n}function Pe(A,e){for(var t=-1,n=null==A?0:A.length;++t<n&&!1!==e(A[t],t,A););return A}function Le(A,e){for(var t=-1,n=null==A?0:A.length;++t<n;)if(!e(A[t],t,A))return!1;return!0}function Ue(A,e){for(var t=-1,n=null==A?0:A.length,r=0,i=[];++t<n;){var o=A[t];e(o,t,A)&&(i[r++]=o)}return i}function Ye(A,e){return!(null==A||!A.length)&&Ve(A,e,0)>-1}function xe(A,e,t){for(var n=-1,r=null==A?0:A.length;++n<r;)if(t(e,A[n]))return!0;return!1}function Ze(A,e){for(var t=-1,n=null==A?0:A.length,r=Array(n);++t<n;)r[t]=e(A[t],t,A);return r}function He(A,e){for(var t=-1,n=e.length,r=A.length;++t<n;)A[r+t]=e[t];return A}function Xe(A,e,t,n){var r=-1,i=null==A?0:A.length;for(n&&i&&(t=A[++r]);++r<i;)t=e(t,A[r],r,A);return t}function Ke(A,e,t,n){var r=null==A?0:A.length;for(n&&r&&(t=A[--r]);r--;)t=e(t,A[r],r,A);return t}function Te(A,e){for(var t=-1,n=null==A?0:A.length;++t<n;)if(e(A[t],t,A))return!0;return!1}var We=$e("length");function qe(A,e,t){var n;return t(A,function(A,t,r){if(e(A,t,r))return n=t,!1}),n}function Je(A,e,t,n){for(var r=A.length,i=t+(n?1:-1);n?i--:++i<r;)if(e(A[i],i,A))return i;return-1}function Ve(A,e,t){return e==e?function(A,e,t){for(var n=t-1,r=A.length;++n<r;)if(A[n]===e)return n;return-1}(A,e,t):Je(A,ze,t)}function Oe(A,e,t,n){for(var r=t-1,i=A.length;++r<i;)if(n(A[r],e))return r;return-1}function ze(A){return A!=A}function je(A,e){var t=null==A?0:A.length;return t?tt(A,e)/t:v}function $e(e){return function(t){return null==t?A:t[e]}}function At(e){return function(t){return null==e?A:e[t]}}function et(A,e,t,n,r){return r(A,function(A,r,i){t=n?(n=!1,A):e(t,A,r,i)}),t}function tt(e,t){for(var n,r=-1,i=e.length;++r<i;){var o=t(e[r]);o!==A&&(n=n===A?o:n+o)}return n}function nt(A,e){for(var t=-1,n=Array(A);++t<A;)n[t]=e(t);return n}function rt(A){return function(e){return A(e)}}function it(A,e){return Ze(e,function(e){return A[e]})}function ot(A,e){return A.has(e)}function at(A,e){for(var t=-1,n=A.length;++t<n&&Ve(e,A[t],0)>-1;);return t}function st(A,e){for(var t=A.length;t--&&Ve(e,A[t],0)>-1;);return t}var gt=At({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),It=At({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function ut(A){return"\\"+de[A]}function ft(A){return ue.test(A)}function lt(A){var e=-1,t=Array(A.size);return A.forEach(function(A,n){t[++e]=[n,A]}),t}function Bt(A,e){return function(t){return A(e(t))}}function Et(A,e){for(var t=-1,n=A.length,r=0,i=[];++t<n;){var o=A[t];o!==e&&o!==a||(A[t]=a,i[r++]=t)}return i}function ct(A){var e=-1,t=Array(A.size);return A.forEach(function(A){t[++e]=A}),t}function dt(A){return ft(A)?function(A){for(var e=ge.lastIndex=0;ge.test(A);)++e;return e}(A):We(A)}function Ct(A){return ft(A)?function(A){return A.match(ge)||[]}(A):function(A){return A.split("")}(A)}var ht=At({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),Qt=function e(t){var n,XA=(t=null==t?me:Qt.defaults(me.Object(),t,Qt.pick(me,le))).Array,KA=t.Date,TA=t.Error,WA=t.Function,qA=t.Math,JA=t.Object,VA=t.RegExp,OA=t.String,zA=t.TypeError,jA=XA.prototype,$A=WA.prototype,Ae=JA.prototype,ee=t["__core-js_shared__"],te=$A.toString,ne=Ae.hasOwnProperty,re=0,ie=(n=/[^.]+$/.exec(ee&&ee.keys&&ee.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",oe=Ae.toString,ge=te.call(JA),ue=me._,de=VA("^"+te.call(ne).replace(yA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Qe=be?t.Buffer:A,pe=t.Symbol,ye=t.Uint8Array,we=Qe?Qe.allocUnsafe:A,_e=Bt(JA.getPrototypeOf,JA),De=JA.create,We=Ae.propertyIsEnumerable,At=jA.splice,pt=pe?pe.isConcatSpreadable:A,mt=pe?pe.iterator:A,yt=pe?pe.toStringTag:A,wt=function(){try{var A=yi(JA,"defineProperty");return A({},"",{}),A}catch(t){}}(),bt=t.clearTimeout!==me.clearTimeout&&t.clearTimeout,_t=KA&&KA.now!==me.Date.now&&KA.now,Dt=t.setTimeout!==me.setTimeout&&t.setTimeout,vt=qA.ceil,Rt=qA.floor,Ft=JA.getOwnPropertySymbols,Mt=Qe?Qe.isBuffer:A,St=t.isFinite,kt=jA.join,Gt=Bt(JA.keys,JA),Nt=qA.max,Pt=qA.min,Lt=KA.now,Ut=t.parseInt,Yt=qA.random,xt=jA.reverse,Zt=yi(t,"DataView"),Ht=yi(t,"Map"),Xt=yi(t,"Promise"),Kt=yi(t,"Set"),Tt=yi(t,"WeakMap"),Wt=yi(JA,"create"),qt=Tt&&new Tt,Jt={},Vt=Vi(Zt),Ot=Vi(Ht),zt=Vi(Xt),jt=Vi(Kt),$t=Vi(Tt),An=pe?pe.prototype:A,en=An?An.valueOf:A,tn=An?An.toString:A;function nn(A){if(la(A)&&!ta(A)&&!(A instanceof sn)){if(A instanceof an)return A;if(ne.call(A,"__wrapped__"))return Oi(A)}return new an(A)}var rn=function(){function e(){}return function(t){if(!fa(t))return{};if(De)return De(t);e.prototype=t;var n=new e;return e.prototype=A,n}}();function on(){}function an(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=A}function sn(A){this.__wrapped__=A,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=R,this.__views__=[]}function gn(A){var e=-1,t=null==A?0:A.length;for(this.clear();++e<t;){var n=A[e];this.set(n[0],n[1])}}function In(A){var e=-1,t=null==A?0:A.length;for(this.clear();++e<t;){var n=A[e];this.set(n[0],n[1])}}function un(A){var e=-1,t=null==A?0:A.length;for(this.clear();++e<t;){var n=A[e];this.set(n[0],n[1])}}function fn(A){var e=-1,t=null==A?0:A.length;for(this.__data__=new un;++e<t;)this.add(A[e])}function ln(A){var e=this.__data__=new In(A);this.size=e.size}function Bn(A,e){var t=ta(A),n=!t&&ea(A),r=!t&&!n&&oa(A),i=!t&&!n&&!r&&pa(A),o=t||n||r||i,a=o?nt(A.length,OA):[],s=a.length;for(var g in A)!e&&!ne.call(A,g)||o&&("length"==g||r&&("offset"==g||"parent"==g)||i&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||Fi(g,s))||a.push(g);return a}function En(e){var t=e.length;return t?e[gr(0,t-1)]:A}function cn(e,t,n){(n===A||jo(e[t],n))&&(n!==A||t in e)||pn(e,t,n)}function dn(e,t,n){var r=e[t];ne.call(e,t)&&jo(r,n)&&(n!==A||t in e)||pn(e,t,n)}function Cn(A,e){for(var t=A.length;t--;)if(jo(A[t][0],e))return t;return-1}function hn(A,e,t,n){return vn(A,function(A,r,i){e(n,A,t(A),i)}),n}function Qn(A,e){return A&&Hr(e,Xa(e),A)}function pn(A,e,t){"__proto__"==e&&wt?wt(A,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):A[e]=t}function mn(e,t){for(var n=-1,r=t.length,i=XA(r),o=null==e;++n<r;)i[n]=o?A:Ua(e,t[n]);return i}function yn(e,t,n){return e==e&&(n!==A&&(e=e<=n?e:n),t!==A&&(e=e>=t?e:t)),e}function wn(e,t,n,r,i,o){var a,u=t&s,f=t&g,l=t&I;if(n&&(a=i?n(e,r,i,o):n(e)),a!==A)return a;if(!fa(e))return e;var B=ta(e);if(B){if(a=function(A){var e=A.length,t=new A.constructor(e);return e&&"string"==typeof A[0]&&ne.call(A,"index")&&(t.index=A.index,t.input=A.input),t}(e),!u)return Zr(e,a)}else{var E=_i(e),c=E==x||E==Z;if(oa(e))return Nr(e,u);if(E==T||E==k||c&&!i){if(a=f||c?{}:vi(e),!u)return f?function(A,e){return Hr(A,bi(A),e)}(e,function(A,e){return A&&Hr(e,Ka(e),A)}(a,e)):function(A,e){return Hr(A,wi(A),e)}(e,Qn(a,e))}else{if(!ce[E])return i?e:{};a=function(A,e,t){var n,r,i,o=A.constructor;switch(e){case $:return Pr(A);case P:case L:return new o(+A);case AA:return function(A,e){var t=e?Pr(A.buffer):A.buffer;return new A.constructor(t,A.byteOffset,A.byteLength)}(A,t);case eA:case tA:case nA:case rA:case iA:case oA:case aA:case sA:case gA:return Lr(A,t);case H:return new o;case X:case V:return new o(A);case q:return(i=new(r=A).constructor(r.source,GA.exec(r))).lastIndex=r.lastIndex,i;case J:return new o;case O:return n=A,en?JA(en.call(n)):{}}}(e,E,u)}}o||(o=new ln);var d=o.get(e);if(d)return d;o.set(e,a),Ca(e)?e.forEach(function(A){a.add(wn(A,t,n,A,e,o))}):Ba(e)&&e.forEach(function(A,r){a.set(r,wn(A,t,n,r,e,o))});var C=B?A:(l?f?ci:Ei:f?Ka:Xa)(e);return Pe(C||e,function(A,r){C&&(A=e[r=A]),dn(a,r,wn(A,t,n,r,e,o))}),a}function bn(e,t,n){var r=n.length;if(null==e)return!r;for(e=JA(e);r--;){var i=n[r],o=t[i],a=e[i];if(a===A&&!(i in e)||!o(a))return!1}return!0}function _n(e,t,n){if("function"!=typeof e)throw new zA(i);return Hi(function(){e.apply(A,n)},t)}function Dn(A,e,t,n){var i=-1,o=Ye,a=!0,s=A.length,g=[],I=e.length;if(!s)return g;t&&(e=Ze(e,rt(t))),n?(o=xe,a=!1):e.length>=r&&(o=ot,a=!1,e=new fn(e));A:for(;++i<s;){var u=A[i],f=null==t?u:t(u);if(u=n||0!==u?u:0,a&&f==f){for(var l=I;l--;)if(e[l]===f)continue A;g.push(u)}else o(e,f,n)||g.push(u)}return g}nn.templateSettings={escape:dA,evaluate:CA,interpolate:hA,variable:"",imports:{_:nn}},nn.prototype=on.prototype,nn.prototype.constructor=nn,an.prototype=rn(on.prototype),an.prototype.constructor=an,sn.prototype=rn(on.prototype),sn.prototype.constructor=sn,gn.prototype.clear=function(){this.__data__=Wt?Wt(null):{},this.size=0},gn.prototype.delete=function(A){var e=this.has(A)&&delete this.__data__[A];return this.size-=e?1:0,e},gn.prototype.get=function(e){var t=this.__data__;if(Wt){var n=t[e];return n===o?A:n}return ne.call(t,e)?t[e]:A},gn.prototype.has=function(e){var t=this.__data__;return Wt?t[e]!==A:ne.call(t,e)},gn.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Wt&&t===A?o:t,this},In.prototype.clear=function(){this.__data__=[],this.size=0},In.prototype.delete=function(A){var e=this.__data__,t=Cn(e,A);return!(t<0||(t==e.length-1?e.pop():At.call(e,t,1),--this.size,0))},In.prototype.get=function(e){var t=this.__data__,n=Cn(t,e);return n<0?A:t[n][1]},In.prototype.has=function(A){return Cn(this.__data__,A)>-1},In.prototype.set=function(A,e){var t=this.__data__,n=Cn(t,A);return n<0?(++this.size,t.push([A,e])):t[n][1]=e,this},un.prototype.clear=function(){this.size=0,this.__data__={hash:new gn,map:new(Ht||In),string:new gn}},un.prototype.delete=function(A){var e=pi(this,A).delete(A);return this.size-=e?1:0,e},un.prototype.get=function(A){return pi(this,A).get(A)},un.prototype.has=function(A){return pi(this,A).has(A)},un.prototype.set=function(A,e){var t=pi(this,A),n=t.size;return t.set(A,e),this.size+=t.size==n?0:1,this},fn.prototype.add=fn.prototype.push=function(A){return this.__data__.set(A,o),this},fn.prototype.has=function(A){return this.__data__.has(A)},ln.prototype.clear=function(){this.__data__=new In,this.size=0},ln.prototype.delete=function(A){var e=this.__data__,t=e.delete(A);return this.size=e.size,t},ln.prototype.get=function(A){return this.__data__.get(A)},ln.prototype.has=function(A){return this.__data__.has(A)},ln.prototype.set=function(A,e){var t=this.__data__;if(t instanceof In){var n=t.__data__;if(!Ht||n.length<r-1)return n.push([A,e]),this.size=++t.size,this;t=this.__data__=new un(n)}return t.set(A,e),this.size=t.size,this};var vn=Tr(Pn),Rn=Tr(Ln,!0);function Fn(A,e){var t=!0;return vn(A,function(A,n,r){return t=!!e(A,n,r)}),t}function Mn(e,t,n){for(var r=-1,i=e.length;++r<i;){var o=e[r],a=t(o);if(null!=a&&(s===A?a==a&&!Qa(a):n(a,s)))var s=a,g=o}return g}function Sn(A,e){var t=[];return vn(A,function(A,n,r){e(A,n,r)&&t.push(A)}),t}function kn(A,e,t,n,r){var i=-1,o=A.length;for(t||(t=Ri),r||(r=[]);++i<o;){var a=A[i];e>0&&t(a)?e>1?kn(a,e-1,t,n,r):He(r,a):n||(r[r.length]=a)}return r}var Gn=Wr(),Nn=Wr(!0);function Pn(A,e){return A&&Gn(A,e,Xa)}function Ln(A,e){return A&&Nn(A,e,Xa)}function Un(A,e){return Ue(e,function(e){return ga(A[e])})}function Yn(e,t){for(var n=0,r=(t=Mr(t,e)).length;null!=e&&n<r;)e=e[Ji(t[n++])];return n&&n==r?e:A}function xn(A,e,t){var n=e(A);return ta(A)?n:He(n,t(A))}function Zn(e){return null==e?e===A?z:K:yt&&yt in JA(e)?function(e){var t=ne.call(e,yt),n=e[yt];try{e[yt]=A;var r=!0}catch(o){}var i=oe.call(e);return r&&(t?e[yt]=n:delete e[yt]),i}(e):function(A){return oe.call(A)}(e)}function Hn(A,e){return A>e}function Xn(A,e){return null!=A&&ne.call(A,e)}function Kn(A,e){return null!=A&&e in JA(A)}function Tn(e,t,n){for(var r=n?xe:Ye,i=e[0].length,o=e.length,a=o,s=XA(o),g=1/0,I=[];a--;){var u=e[a];a&&t&&(u=Ze(u,rt(t))),g=Pt(u.length,g),s[a]=!n&&(t||i>=120&&u.length>=120)?new fn(a&&u):A}u=e[0];var f=-1,l=s[0];A:for(;++f<i&&I.length<g;){var B=u[f],E=t?t(B):B;if(B=n||0!==B?B:0,!(l?ot(l,E):r(I,E,n))){for(a=o;--a;){var c=s[a];if(!(c?ot(c,E):r(e[a],E,n)))continue A}l&&l.push(E),I.push(B)}}return I}function Wn(e,t,n){var r=null==(e=Yi(e,t=Mr(t,e)))?e:e[Ji(ao(t))];return null==r?A:Ge(r,e,n)}function qn(A){return la(A)&&Zn(A)==k}function Jn(e,t,n,r,i){return e===t||(null==e||null==t||!la(e)&&!la(t)?e!=e&&t!=t:function(e,t,n,r,i,o){var a=ta(e),s=ta(t),g=a?G:_i(e),I=s?G:_i(t),l=(g=g==k?T:g)==T,B=(I=I==k?T:I)==T,E=g==I;if(E&&oa(e)){if(!oa(t))return!1;a=!0,l=!1}if(E&&!l)return o||(o=new ln),a||pa(e)?li(e,t,n,r,i,o):function(A,e,t,n,r,i,o){switch(t){case AA:if(A.byteLength!=e.byteLength||A.byteOffset!=e.byteOffset)return!1;A=A.buffer,e=e.buffer;case $:return!(A.byteLength!=e.byteLength||!i(new ye(A),new ye(e)));case P:case L:case X:return jo(+A,+e);case Y:return A.name==e.name&&A.message==e.message;case q:case V:return A==e+"";case H:var a=lt;case J:var s=n&u;if(a||(a=ct),A.size!=e.size&&!s)return!1;var g=o.get(A);if(g)return g==e;n|=f,o.set(A,e);var I=li(a(A),a(e),n,r,i,o);return o.delete(A),I;case O:if(en)return en.call(A)==en.call(e)}return!1}(e,t,g,n,r,i,o);if(!(n&u)){var c=l&&ne.call(e,"__wrapped__"),d=B&&ne.call(t,"__wrapped__");if(c||d){var C=c?e.value():e,h=d?t.value():t;return o||(o=new ln),i(C,h,n,r,o)}}return!!E&&(o||(o=new ln),function(e,t,n,r,i,o){var a=n&u,s=Ei(e),g=s.length;if(g!=Ei(t).length&&!a)return!1;for(var I=g;I--;){var f=s[I];if(!(a?f in t:ne.call(t,f)))return!1}var l=o.get(e),B=o.get(t);if(l&&B)return l==t&&B==e;var E=!0;o.set(e,t),o.set(t,e);for(var c=a;++I<g;){var d=e[f=s[I]],C=t[f];if(r)var h=a?r(C,d,f,t,e,o):r(d,C,f,e,t,o);if(!(h===A?d===C||i(d,C,n,r,o):h)){E=!1;break}c||(c="constructor"==f)}if(E&&!c){var Q=e.constructor,p=t.constructor;Q!=p&&"constructor"in e&&"constructor"in t&&!("function"==typeof Q&&Q instanceof Q&&"function"==typeof p&&p instanceof p)&&(E=!1)}return o.delete(e),o.delete(t),E}(e,t,n,r,i,o))}(e,t,n,r,Jn,i))}function Vn(e,t,n,r){var i=n.length,o=i,a=!r;if(null==e)return!o;for(e=JA(e);i--;){var s=n[i];if(a&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i<o;){var g=(s=n[i])[0],I=e[g],l=s[1];if(a&&s[2]){if(I===A&&!(g in e))return!1}else{var B=new ln;if(r)var E=r(I,l,g,e,t,B);if(!(E===A?Jn(l,I,u|f,r,B):E))return!1}}return!0}function On(A){return!(!fa(A)||(e=A,ie&&ie in e))&&(ga(A)?de:LA).test(Vi(A));var e}function zn(A){return"function"==typeof A?A:null==A?Es:"object"==typeof A?ta(A)?tr(A[0],A[1]):er(A):ws(A)}function jn(A){if(!Ni(A))return Gt(A);var e=[];for(var t in JA(A))ne.call(A,t)&&"constructor"!=t&&e.push(t);return e}function $n(A,e){return A<e}function Ar(A,e){var t=-1,n=ra(A)?XA(A.length):[];return vn(A,function(A,r,i){n[++t]=e(A,r,i)}),n}function er(A){var e=mi(A);return 1==e.length&&e[0][2]?Li(e[0][0],e[0][1]):function(t){return t===A||Vn(t,A,e)}}function tr(e,t){return Si(e)&&Pi(t)?Li(Ji(e),t):function(n){var r=Ua(n,e);return r===A&&r===t?Ya(n,e):Jn(t,r,u|f)}}function nr(e,t,n,r,i){e!==t&&Gn(t,function(o,a){if(i||(i=new ln),fa(o))!function(e,t,n,r,i,o,a){var s=xi(e,n),g=xi(t,n),I=a.get(g);if(I)cn(e,n,I);else{var u=o?o(s,g,n+"",e,t,a):A,f=u===A;if(f){var l=ta(g),B=!l&&oa(g),E=!l&&!B&&pa(g);u=g,l||B||E?ta(s)?u=s:ia(s)?u=Zr(s):B?(f=!1,u=Nr(g,!0)):E?(f=!1,u=Lr(g,!0)):u=[]:ca(g)||ea(g)?(u=s,ea(s)?u=Ra(s):fa(s)&&!ga(s)||(u=vi(g))):f=!1}f&&(a.set(g,u),i(u,g,r,o,a),a.delete(g)),cn(e,n,u)}}(e,t,a,n,nr,r,i);else{var s=r?r(xi(e,a),o,a+"",e,t,i):A;s===A&&(s=o),cn(e,a,s)}},Ka)}function rr(e,t){var n=e.length;if(n)return Fi(t+=t<0?n:0,n)?e[t]:A}function ir(A,e,t){e=e.length?Ze(e,function(A){return ta(A)?function(e){return Yn(e,1===A.length?A[0]:A)}:A}):[Es];var n=-1;return e=Ze(e,rt(Qi())),function(A,e){var t=A.length;for(A.sort(e);t--;)A[t]=A[t].value;return A}(Ar(A,function(A,t,r){return{criteria:Ze(e,function(e){return e(A)}),index:++n,value:A}}),function(A,e){return function(A,e,t){for(var n=-1,r=A.criteria,i=e.criteria,o=r.length,a=t.length;++n<o;){var s=Ur(r[n],i[n]);if(s)return n>=a?s:s*("desc"==t[n]?-1:1)}return A.index-e.index}(A,e,t)})}function or(A,e,t){for(var n=-1,r=e.length,i={};++n<r;){var o=e[n],a=Yn(A,o);t(a,o)&&fr(i,Mr(o,A),a)}return i}function ar(A,e,t,n){var r=n?Oe:Ve,i=-1,o=e.length,a=A;for(A===e&&(e=Zr(e)),t&&(a=Ze(A,rt(t)));++i<o;)for(var s=0,g=e[i],I=t?t(g):g;(s=r(a,I,s,n))>-1;)a!==A&&At.call(a,s,1),At.call(A,s,1);return A}function sr(A,e){for(var t=A?e.length:0,n=t-1;t--;){var r=e[t];if(t==n||r!==i){var i=r;Fi(r)?At.call(A,r,1):yr(A,r)}}return A}function gr(A,e){return A+Rt(Yt()*(e-A+1))}function Ir(A,e){var t="";if(!A||e<1||e>_)return t;do{e%2&&(t+=A),(e=Rt(e/2))&&(A+=A)}while(e);return t}function ur(A,e){return Xi(Ui(A,e,Es),A+"")}function fr(e,t,n,r){if(!fa(e))return e;for(var i=-1,o=(t=Mr(t,e)).length,a=o-1,s=e;null!=s&&++i<o;){var g=Ji(t[i]),I=n;if("__proto__"===g||"constructor"===g||"prototype"===g)return e;if(i!=a){var u=s[g];(I=r?r(u,g,s):A)===A&&(I=fa(u)?u:Fi(t[i+1])?[]:{})}dn(s,g,I),s=s[g]}return e}var lr=qt?function(A,e){return qt.set(A,e),A}:Es,Br=wt?function(A,e){return wt(A,"toString",{configurable:!0,enumerable:!1,value:fs(e),writable:!0})}:Es;function Er(A,e,t){var n=-1,r=A.length;e<0&&(e=-e>r?0:r+e),(t=t>r?r:t)<0&&(t+=r),r=e>t?0:t-e>>>0,e>>>=0;for(var i=XA(r);++n<r;)i[n]=A[n+e];return i}function cr(A,e){var t;return vn(A,function(A,n,r){return!(t=e(A,n,r))}),!!t}function dr(A,e,t){var n=0,r=null==A?n:A.length;if("number"==typeof e&&e==e&&r<=M){for(;n<r;){var i=n+r>>>1,o=A[i];null!==o&&!Qa(o)&&(t?o<=e:o<e)?n=i+1:r=i}return r}return Cr(A,e,Es,t)}function Cr(e,t,n,r){var i=0,o=null==e?0:e.length;if(0===o)return 0;for(var a=(t=n(t))!=t,s=null===t,g=Qa(t),I=t===A;i<o;){var u=Rt((i+o)/2),f=n(e[u]),l=f!==A,B=null===f,E=f==f,c=Qa(f);if(a)var d=r||E;else d=I?E&&(r||l):s?E&&l&&(r||!B):g?E&&l&&!B&&(r||!c):!B&&!c&&(r?f<=t:f<t);d?i=u+1:o=u}return Pt(o,F)}function hr(A,e){for(var t=-1,n=A.length,r=0,i=[];++t<n;){var o=A[t],a=e?e(o):o;if(!t||!jo(a,s)){var s=a;i[r++]=0===o?0:o}}return i}function Qr(A){return"number"==typeof A?A:Qa(A)?v:+A}function pr(A){if("string"==typeof A)return A;if(ta(A))return Ze(A,pr)+"";if(Qa(A))return tn?tn.call(A):"";var e=A+"";return"0"==e&&1/A==-b?"-0":e}function mr(A,e,t){var n=-1,i=Ye,o=A.length,a=!0,s=[],g=s;if(t)a=!1,i=xe;else if(o>=r){var I=e?null:ai(A);if(I)return ct(I);a=!1,i=ot,g=new fn}else g=e?[]:s;A:for(;++n<o;){var u=A[n],f=e?e(u):u;if(u=t||0!==u?u:0,a&&f==f){for(var l=g.length;l--;)if(g[l]===f)continue A;e&&g.push(f),s.push(u)}else i(g,f,t)||(g!==s&&g.push(f),s.push(u))}return s}function yr(A,e){return null==(A=Yi(A,e=Mr(e,A)))||delete A[Ji(ao(e))]}function wr(A,e,t,n){return fr(A,e,t(Yn(A,e)),n)}function br(A,e,t,n){for(var r=A.length,i=n?r:-1;(n?i--:++i<r)&&e(A[i],i,A););return t?Er(A,n?0:i,n?i+1:r):Er(A,n?i+1:0,n?r:i)}function _r(A,e){var t=A;return t instanceof sn&&(t=t.value()),Xe(e,function(A,e){return e.func.apply(e.thisArg,He([A],e.args))},t)}function Dr(A,e,t){var n=A.length;if(n<2)return n?mr(A[0]):[];for(var r=-1,i=XA(n);++r<n;)for(var o=A[r],a=-1;++a<n;)a!=r&&(i[r]=Dn(i[r]||o,A[a],e,t));return mr(kn(i,1),e,t)}function vr(e,t,n){for(var r=-1,i=e.length,o=t.length,a={};++r<i;){var s=r<o?t[r]:A;n(a,e[r],s)}return a}function Rr(A){return ia(A)?A:[]}function Fr(A){return"function"==typeof A?A:Es}function Mr(A,e){return ta(A)?A:Si(A,e)?[A]:qi(Fa(A))}var Sr=ur;function kr(e,t,n){var r=e.length;return n=n===A?r:n,!t&&n>=r?e:Er(e,t,n)}var Gr=bt||function(A){return me.clearTimeout(A)};function Nr(A,e){if(e)return A.slice();var t=A.length,n=we?we(t):new A.constructor(t);return A.copy(n),n}function Pr(A){var e=new A.constructor(A.byteLength);return new ye(e).set(new ye(A)),e}function Lr(A,e){var t=e?Pr(A.buffer):A.buffer;return new A.constructor(t,A.byteOffset,A.length)}function Ur(e,t){if(e!==t){var n=e!==A,r=null===e,i=e==e,o=Qa(e),a=t!==A,s=null===t,g=t==t,I=Qa(t);if(!s&&!I&&!o&&e>t||o&&a&&g&&!s&&!I||r&&a&&g||!n&&g||!i)return 1;if(!r&&!o&&!I&&e<t||I&&n&&i&&!r&&!o||s&&n&&i||!a&&i||!g)return-1}return 0}function Yr(A,e,t,n){for(var r=-1,i=A.length,o=t.length,a=-1,s=e.length,g=Nt(i-o,0),I=XA(s+g),u=!n;++a<s;)I[a]=e[a];for(;++r<o;)(u||r<i)&&(I[t[r]]=A[r]);for(;g--;)I[a++]=A[r++];return I}function xr(A,e,t,n){for(var r=-1,i=A.length,o=-1,a=t.length,s=-1,g=e.length,I=Nt(i-a,0),u=XA(I+g),f=!n;++r<I;)u[r]=A[r];for(var l=r;++s<g;)u[l+s]=e[s];for(;++o<a;)(f||r<i)&&(u[l+t[o]]=A[r++]);return u}function Zr(A,e){var t=-1,n=A.length;for(e||(e=XA(n));++t<n;)e[t]=A[t];return e}function Hr(e,t,n,r){var i=!n;n||(n={});for(var o=-1,a=t.length;++o<a;){var s=t[o],g=r?r(n[s],e[s],s,n,e):A;g===A&&(g=e[s]),i?pn(n,s,g):dn(n,s,g)}return n}function Xr(A,e){return function(t,n){var r=ta(t)?Ne:hn,i=e?e():{};return r(t,A,Qi(n,2),i)}}function Kr(e){return ur(function(t,n){var r=-1,i=n.length,o=i>1?n[i-1]:A,a=i>2?n[2]:A;for(o=e.length>3&&"function"==typeof o?(i--,o):A,a&&Mi(n[0],n[1],a)&&(o=i<3?A:o,i=1),t=JA(t);++r<i;){var s=n[r];s&&e(t,s,r,o)}return t})}function Tr(A,e){return function(t,n){if(null==t)return t;if(!ra(t))return A(t,n);for(var r=t.length,i=e?r:-1,o=JA(t);(e?i--:++i<r)&&!1!==n(o[i],i,o););return t}}function Wr(A){return function(e,t,n){for(var r=-1,i=JA(e),o=n(e),a=o.length;a--;){var s=o[A?a:++r];if(!1===t(i[s],s,i))break}return e}}function qr(e){return function(t){var n=ft(t=Fa(t))?Ct(t):A,r=n?n[0]:t.charAt(0),i=n?kr(n,1).join(""):t.slice(1);return r[e]()+i}}function Jr(A){return function(e){return Xe(gs(es(e).replace(ae,"")),A,"")}}function Vr(A){return function(){var e=arguments;switch(e.length){case 0:return new A;case 1:return new A(e[0]);case 2:return new A(e[0],e[1]);case 3:return new A(e[0],e[1],e[2]);case 4:return new A(e[0],e[1],e[2],e[3]);case 5:return new A(e[0],e[1],e[2],e[3],e[4]);case 6:return new A(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new A(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var t=rn(A.prototype),n=A.apply(t,e);return fa(n)?n:t}}function Or(e){return function(t,n,r){var i=JA(t);if(!ra(t)){var o=Qi(n,3);t=Xa(t),n=function(A){return o(i[A],A,i)}}var a=e(t,n,r);return a>-1?i[o?t[a]:a]:A}}function zr(e){return Bi(function(t){var n=t.length,r=n,o=an.prototype.thru;for(e&&t.reverse();r--;){var a=t[r];if("function"!=typeof a)throw new zA(i);if(o&&!s&&"wrapper"==Ci(a))var s=new an([],!0)}for(r=s?r:n;++r<n;){var g=Ci(a=t[r]),I="wrapper"==g?di(a):A;s=I&&ki(I[0])&&I[1]==(Q|c|C|p)&&!I[4].length&&1==I[9]?s[Ci(I[0])].apply(s,I[3]):1==a.length&&ki(a)?s[g]():s.thru(a)}return function(){var A=arguments,e=A[0];if(s&&1==A.length&&ta(e))return s.plant(e).value();for(var r=0,i=n?t[r].apply(this,A):e;++r<n;)i=t[r].call(this,i);return i}})}function jr(e,t,n,r,i,o,a,s,g,I){var u=t&Q,f=t&l,E=t&B,C=t&(c|d),h=t&m,p=E?A:Vr(e);return function l(){for(var B=arguments.length,c=XA(B),d=B;d--;)c[d]=arguments[d];if(C)var Q=hi(l),m=function(A,e){for(var t=A.length,n=0;t--;)A[t]===e&&++n;return n}(c,Q);if(r&&(c=Yr(c,r,i,C)),o&&(c=xr(c,o,a,C)),B-=m,C&&B<I){var y=Et(c,Q);return ii(e,t,jr,l.placeholder,n,c,y,s,g,I-B)}var w=f?n:this,b=E?w[e]:e;return B=c.length,s?c=function(e,t){for(var n=e.length,r=Pt(t.length,n),i=Zr(e);r--;){var o=t[r];e[r]=Fi(o,n)?i[o]:A}return e}(c,s):h&&B>1&&c.reverse(),u&&g<B&&(c.length=g),this&&this!==me&&this instanceof l&&(b=p||Vr(b)),b.apply(w,c)}}function $r(A,e){return function(t,n){return function(A,e,t,n){return Pn(A,function(A,r,i){e(n,t(A),r,i)}),n}(t,A,e(n),{})}}function Ai(e,t){return function(n,r){var i;if(n===A&&r===A)return t;if(n!==A&&(i=n),r!==A){if(i===A)return r;"string"==typeof n||"string"==typeof r?(n=pr(n),r=pr(r)):(n=Qr(n),r=Qr(r)),i=e(n,r)}return i}}function ei(A){return Bi(function(e){return e=Ze(e,rt(Qi())),ur(function(t){var n=this;return A(e,function(A){return Ge(A,n,t)})})})}function ti(e,t){var n=(t=t===A?" ":pr(t)).length;if(n<2)return n?Ir(t,e):t;var r=Ir(t,vt(e/dt(t)));return ft(t)?kr(Ct(r),0,e).join(""):r.slice(0,e)}function ni(e){return function(t,n,r){return r&&"number"!=typeof r&&Mi(t,n,r)&&(n=r=A),t=ba(t),n===A?(n=t,t=0):n=ba(n),function(A,e,t,n){for(var r=-1,i=Nt(vt((e-A)/(t||1)),0),o=XA(i);i--;)o[n?i:++r]=A,A+=t;return o}(t,n,r=r===A?t<n?1:-1:ba(r),e)}}function ri(A){return function(e,t){return"string"==typeof e&&"string"==typeof t||(e=va(e),t=va(t)),A(e,t)}}function ii(e,t,n,r,i,o,a,s,g,I){var u=t&c;t|=u?C:h,(t&=~(u?h:C))&E||(t&=~(l|B));var f=[e,t,i,u?o:A,u?a:A,u?A:o,u?A:a,s,g,I],d=n.apply(A,f);return ki(e)&&Zi(d,f),d.placeholder=r,Ki(d,e,t)}function oi(A){var e=qA[A];return function(A,t){if(A=va(A),(t=null==t?0:Pt(_a(t),292))&&St(A)){var n=(Fa(A)+"e").split("e");return+((n=(Fa(e(n[0]+"e"+(+n[1]+t)))+"e").split("e"))[0]+"e"+(+n[1]-t))}return e(A)}}var ai=Kt&&1/ct(new Kt([,-0]))[1]==b?function(A){return new Kt(A)}:Qs;function si(A){return function(e){var t=_i(e);return t==H?lt(e):t==J?function(A){var e=-1,t=Array(A.size);return A.forEach(function(A){t[++e]=[A,A]}),t}(e):function(A,e){return Ze(e,function(e){return[e,A[e]]})}(e,A(e))}}function gi(e,t,n,r,o,s,g,I){var u=t&B;if(!u&&"function"!=typeof e)throw new zA(i);var f=r?r.length:0;if(f||(t&=~(C|h),r=o=A),g=g===A?g:Nt(_a(g),0),I=I===A?I:_a(I),f-=o?o.length:0,t&h){var m=r,y=o;r=o=A}var w=u?A:di(e),b=[e,t,n,r,o,m,y,s,g,I];if(w&&function(A,e){var t=A[1],n=e[1],r=t|n,i=r<(l|B|Q),o=n==Q&&t==c||n==Q&&t==p&&A[7].length<=e[8]||n==(Q|p)&&e[7].length<=e[8]&&t==c;if(!i&&!o)return A;n&l&&(A[2]=e[2],r|=t&l?0:E);var s=e[3];if(s){var g=A[3];A[3]=g?Yr(g,s,e[4]):s,A[4]=g?Et(A[3],a):e[4]}(s=e[5])&&(g=A[5],A[5]=g?xr(g,s,e[6]):s,A[6]=g?Et(A[5],a):e[6]),(s=e[7])&&(A[7]=s),n&Q&&(A[8]=null==A[8]?e[8]:Pt(A[8],e[8])),null==A[9]&&(A[9]=e[9]),A[0]=e[0],A[1]=r}(b,w),e=b[0],t=b[1],n=b[2],r=b[3],o=b[4],!(I=b[9]=b[9]===A?u?0:e.length:Nt(b[9]-f,0))&&t&(c|d)&&(t&=~(c|d)),t&&t!=l)_=t==c||t==d?function(e,t,n){var r=Vr(e);return function i(){for(var o=arguments.length,a=XA(o),s=o,g=hi(i);s--;)a[s]=arguments[s];var I=o<3&&a[0]!==g&&a[o-1]!==g?[]:Et(a,g);return(o-=I.length)<n?ii(e,t,jr,i.placeholder,A,a,I,A,A,n-o):Ge(this&&this!==me&&this instanceof i?r:e,this,a)}}(e,t,I):t!=C&&t!=(l|C)||o.length?jr.apply(A,b):function(A,e,t,n){var r=e&l,i=Vr(A);return function e(){for(var o=-1,a=arguments.length,s=-1,g=n.length,I=XA(g+a),u=this&&this!==me&&this instanceof e?i:A;++s<g;)I[s]=n[s];for(;a--;)I[s++]=arguments[++o];return Ge(u,r?t:this,I)}}(e,t,n,r);else var _=function(A,e,t){var n=e&l,r=Vr(A);return function e(){return(this&&this!==me&&this instanceof e?r:A).apply(n?t:this,arguments)}}(e,t,n);return Ki((w?lr:Zi)(_,b),e,t)}function Ii(e,t,n,r){return e===A||jo(e,Ae[n])&&!ne.call(r,n)?t:e}function ui(e,t,n,r,i,o){return fa(e)&&fa(t)&&(o.set(t,e),nr(e,t,A,ui,o),o.delete(t)),e}function fi(e){return ca(e)?A:e}function li(e,t,n,r,i,o){var a=n&u,s=e.length,g=t.length;if(s!=g&&!(a&&g>s))return!1;var I=o.get(e),l=o.get(t);if(I&&l)return I==t&&l==e;var B=-1,E=!0,c=n&f?new fn:A;for(o.set(e,t),o.set(t,e);++B<s;){var d=e[B],C=t[B];if(r)var h=a?r(C,d,B,t,e,o):r(d,C,B,e,t,o);if(h!==A){if(h)continue;E=!1;break}if(c){if(!Te(t,function(A,e){if(!ot(c,e)&&(d===A||i(d,A,n,r,o)))return c.push(e)})){E=!1;break}}else if(d!==C&&!i(d,C,n,r,o)){E=!1;break}}return o.delete(e),o.delete(t),E}function Bi(e){return Xi(Ui(e,A,to),e+"")}function Ei(A){return xn(A,Xa,wi)}function ci(A){return xn(A,Ka,bi)}var di=qt?function(A){return qt.get(A)}:Qs;function Ci(A){for(var e=A.name+"",t=Jt[e],n=ne.call(Jt,e)?t.length:0;n--;){var r=t[n],i=r.func;if(null==i||i==A)return r.name}return e}function hi(A){return(ne.call(nn,"placeholder")?nn:A).placeholder}function Qi(){var A=nn.iteratee||cs;return A=A===cs?zn:A,arguments.length?A(arguments[0],arguments[1]):A}function pi(A,e){var t,n,r=A.__data__;return("string"==(n=typeof(t=e))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==t:null===t)?r["string"==typeof e?"string":"hash"]:r.map}function mi(A){for(var e=Xa(A),t=e.length;t--;){var n=e[t],r=A[n];e[t]=[n,r,Pi(r)]}return e}function yi(e,t){var n=function(e,t){return null==e?A:e[t]}(e,t);return On(n)?n:A}var wi=Ft?function(A){return null==A?[]:(A=JA(A),Ue(Ft(A),function(e){return We.call(A,e)}))}:Ds,bi=Ft?function(A){for(var e=[];A;)He(e,wi(A)),A=_e(A);return e}:Ds,_i=Zn;function Di(A,e,t){for(var n=-1,r=(e=Mr(e,A)).length,i=!1;++n<r;){var o=Ji(e[n]);if(!(i=null!=A&&t(A,o)))break;A=A[o]}return i||++n!=r?i:!!(r=null==A?0:A.length)&&ua(r)&&Fi(o,r)&&(ta(A)||ea(A))}function vi(A){return"function"!=typeof A.constructor||Ni(A)?{}:rn(_e(A))}function Ri(A){return ta(A)||ea(A)||!!(pt&&A&&A[pt])}function Fi(A,e){var t=typeof A;return!!(e=null==e?_:e)&&("number"==t||"symbol"!=t&&YA.test(A))&&A>-1&&A%1==0&&A<e}function Mi(A,e,t){if(!fa(t))return!1;var n=typeof e;return!!("number"==n?ra(t)&&Fi(e,t.length):"string"==n&&e in t)&&jo(t[e],A)}function Si(A,e){if(ta(A))return!1;var t=typeof A;return!("number"!=t&&"symbol"!=t&&"boolean"!=t&&null!=A&&!Qa(A))||pA.test(A)||!QA.test(A)||null!=e&&A in JA(e)}function ki(A){var e=Ci(A),t=nn[e];if("function"!=typeof t||!(e in sn.prototype))return!1;if(A===t)return!0;var n=di(t);return!!n&&A===n[0]}(Zt&&_i(new Zt(new ArrayBuffer(1)))!=AA||Ht&&_i(new Ht)!=H||Xt&&"[object Promise]"!=_i(Xt.resolve())||Kt&&_i(new Kt)!=J||Tt&&_i(new Tt)!=j)&&(_i=function(e){var t=Zn(e),n=t==T?e.constructor:A,r=n?Vi(n):"";if(r)switch(r){case Vt:return AA;case Ot:return H;case zt:return"[object Promise]";case jt:return J;case $t:return j}return t});var Gi=ee?ga:vs;function Ni(A){var e=A&&A.constructor;return A===("function"==typeof e&&e.prototype||Ae)}function Pi(A){return A==A&&!fa(A)}function Li(e,t){return function(n){return null!=n&&n[e]===t&&(t!==A||e in JA(n))}}function Ui(e,t,n){return t=Nt(t===A?e.length-1:t,0),function(){for(var A=arguments,r=-1,i=Nt(A.length-t,0),o=XA(i);++r<i;)o[r]=A[t+r];r=-1;for(var a=XA(t+1);++r<t;)a[r]=A[r];return a[t]=n(o),Ge(e,this,a)}}function Yi(A,e){return e.length<2?A:Yn(A,Er(e,0,-1))}function xi(A,e){if(("constructor"!==e||"function"!=typeof A[e])&&"__proto__"!=e)return A[e]}var Zi=Ti(lr),Hi=Dt||function(A,e){return me.setTimeout(A,e)},Xi=Ti(Br);function Ki(A,e,t){var n=e+"";return Xi(A,function(A,e){var t=e.length;if(!t)return A;var n=t-1;return e[n]=(t>1?"& ":"")+e[n],e=e.join(t>2?", ":" "),A.replace(vA,"{\n/* [wrapped with "+e+"] */\n")}(n,function(A,e){return Pe(S,function(t){var n="_."+t[0];e&t[1]&&!Ye(A,n)&&A.push(n)}),A.sort()}(function(A){var e=n.match(RA);return e?e[1].split(FA):[]}(),t)))}function Ti(e){var t=0,n=0;return function(){var r=Lt(),i=w-(r-n);if(n=r,i>0){if(++t>=y)return arguments[0]}else t=0;return e.apply(A,arguments)}}function Wi(e,t){var n=-1,r=e.length,i=r-1;for(t=t===A?r:t;++n<t;){var o=gr(n,i),a=e[o];e[o]=e[n],e[n]=a}return e.length=t,e}var qi=function(A){var e=Wo(function(A){var e=[];return 46===A.charCodeAt(0)&&e.push(""),A.replace(mA,function(A,t,n,r){e.push(n?r.replace(SA,"$1"):t||A)}),e},function(A){return 500===t.size&&t.clear(),A}),t=e.cache;return e}();function Ji(A){if("string"==typeof A||Qa(A))return A;var e=A+"";return"0"==e&&1/A==-b?"-0":e}function Vi(A){if(null!=A){try{return te.call(A)}catch(t){}try{return A+""}catch(t){}}return""}function Oi(A){if(A instanceof sn)return A.clone();var e=new an(A.__wrapped__,A.__chain__);return e.__actions__=Zr(A.__actions__),e.__index__=A.__index__,e.__values__=A.__values__,e}var zi=ur(function(A,e){return ia(A)?Dn(A,kn(e,1,ia,!0)):[]}),ji=ur(function(e,t){var n=ao(t);return ia(n)&&(n=A),ia(e)?Dn(e,kn(t,1,ia,!0),Qi(n,2)):[]}),$i=ur(function(e,t){var n=ao(t);return ia(n)&&(n=A),ia(e)?Dn(e,kn(t,1,ia,!0),A,n):[]});function Ao(A,e,t){var n=null==A?0:A.length;if(!n)return-1;var r=null==t?0:_a(t);return r<0&&(r=Nt(n+r,0)),Je(A,Qi(e,3),r)}function eo(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r-1;return n!==A&&(i=_a(n),i=n<0?Nt(r+i,0):Pt(i,r-1)),Je(e,Qi(t,3),i,!0)}function to(A){return null!=A&&A.length?kn(A,1):[]}function no(e){return e&&e.length?e[0]:A}var ro=ur(function(A){var e=Ze(A,Rr);return e.length&&e[0]===A[0]?Tn(e):[]}),io=ur(function(e){var t=ao(e),n=Ze(e,Rr);return t===ao(n)?t=A:n.pop(),n.length&&n[0]===e[0]?Tn(n,Qi(t,2)):[]}),oo=ur(function(e){var t=ao(e),n=Ze(e,Rr);return(t="function"==typeof t?t:A)&&n.pop(),n.length&&n[0]===e[0]?Tn(n,A,t):[]});function ao(e){var t=null==e?0:e.length;return t?e[t-1]:A}var so=ur(go);function go(A,e){return A&&A.length&&e&&e.length?ar(A,e):A}var Io=Bi(function(A,e){var t=null==A?0:A.length,n=mn(A,e);return sr(A,Ze(e,function(A){return Fi(A,t)?+A:A}).sort(Ur)),n});function uo(A){return null==A?A:xt.call(A)}var fo=ur(function(A){return mr(kn(A,1,ia,!0))}),lo=ur(function(e){var t=ao(e);return ia(t)&&(t=A),mr(kn(e,1,ia,!0),Qi(t,2))}),Bo=ur(function(e){var t=ao(e);return t="function"==typeof t?t:A,mr(kn(e,1,ia,!0),A,t)});function Eo(A){if(!A||!A.length)return[];var e=0;return A=Ue(A,function(A){if(ia(A))return e=Nt(A.length,e),!0}),nt(e,function(e){return Ze(A,$e(e))})}function co(e,t){if(!e||!e.length)return[];var n=Eo(e);return null==t?n:Ze(n,function(e){return Ge(t,A,e)})}var Co=ur(function(A,e){return ia(A)?Dn(A,e):[]}),ho=ur(function(A){return Dr(Ue(A,ia))}),Qo=ur(function(e){var t=ao(e);return ia(t)&&(t=A),Dr(Ue(e,ia),Qi(t,2))}),po=ur(function(e){var t=ao(e);return t="function"==typeof t?t:A,Dr(Ue(e,ia),A,t)}),mo=ur(Eo),yo=ur(function(e){var t=e.length,n=t>1?e[t-1]:A;return n="function"==typeof n?(e.pop(),n):A,co(e,n)});function wo(A){var e=nn(A);return e.__chain__=!0,e}function bo(A,e){return e(A)}var _o=Bi(function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,i=function(A){return mn(A,e)};return!(t>1||this.__actions__.length)&&r instanceof sn&&Fi(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:bo,args:[i],thisArg:A}),new an(r,this.__chain__).thru(function(e){return t&&!e.length&&e.push(A),e})):this.thru(i)}),Do=Xr(function(A,e,t){ne.call(A,t)?++A[t]:pn(A,t,1)}),vo=Or(Ao),Ro=Or(eo);function Fo(A,e){return(ta(A)?Pe:vn)(A,Qi(e,3))}function Mo(A,e){return(ta(A)?function(A,e){for(var t=null==A?0:A.length;t--&&!1!==e(A[t],t,A););return A}:Rn)(A,Qi(e,3))}var So=Xr(function(A,e,t){ne.call(A,t)?A[t].push(e):pn(A,t,[e])}),ko=ur(function(A,e,t){var n=-1,r="function"==typeof e,i=ra(A)?XA(A.length):[];return vn(A,function(A){i[++n]=r?Ge(e,A,t):Wn(A,e,t)}),i}),Go=Xr(function(A,e,t){pn(A,t,e)});function No(A,e){return(ta(A)?Ze:Ar)(A,Qi(e,3))}var Po=Xr(function(A,e,t){A[t?0:1].push(e)},function(){return[[],[]]}),Lo=ur(function(A,e){if(null==A)return[];var t=e.length;return t>1&&Mi(A,e[0],e[1])?e=[]:t>2&&Mi(e[0],e[1],e[2])&&(e=[e[0]]),ir(A,kn(e,1),[])}),Uo=_t||function(){return me.Date.now()};function Yo(e,t,n){return t=n?A:t,t=e&&null==t?e.length:t,gi(e,Q,A,A,A,A,t)}function xo(e,t){var n;if("function"!=typeof t)throw new zA(i);return e=_a(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=A),n}}var Zo=ur(function(A,e,t){var n=l;if(t.length){var r=Et(t,hi(Zo));n|=C}return gi(A,n,e,t,r)}),Ho=ur(function(A,e,t){var n=l|B;if(t.length){var r=Et(t,hi(Ho));n|=C}return gi(e,n,A,t,r)});function Xo(e,t,n){var r,o,a,s,g,I,u=0,f=!1,l=!1,B=!0;if("function"!=typeof e)throw new zA(i);function E(t){var n=r,i=o;return r=o=A,u=t,s=e.apply(i,n)}function c(e){var n=e-I;return I===A||n>=t||n<0||l&&e-u>=a}function d(){var A=Uo();if(c(A))return C(A);g=Hi(d,function(A){var e=t-(A-I);return l?Pt(e,a-(A-u)):e}(A))}function C(e){return g=A,B&&r?E(e):(r=o=A,s)}function h(){var e=Uo(),n=c(e);if(r=arguments,o=this,I=e,n){if(g===A)return function(A){return u=A,g=Hi(d,t),f?E(A):s}(I);if(l)return Gr(g),g=Hi(d,t),E(I)}return g===A&&(g=Hi(d,t)),s}return t=va(t)||0,fa(n)&&(f=!!n.leading,a=(l="maxWait"in n)?Nt(va(n.maxWait)||0,t):a,B="trailing"in n?!!n.trailing:B),h.cancel=function(){g!==A&&Gr(g),u=0,r=I=o=g=A},h.flush=function(){return g===A?s:C(Uo())},h}var Ko=ur(function(A,e){return _n(A,1,e)}),To=ur(function(A,e,t){return _n(A,va(e)||0,t)});function Wo(A,e){if("function"!=typeof A||null!=e&&"function"!=typeof e)throw new zA(i);var t=function(){var n=arguments,r=e?e.apply(this,n):n[0],i=t.cache;if(i.has(r))return i.get(r);var o=A.apply(this,n);return t.cache=i.set(r,o)||i,o};return t.cache=new(Wo.Cache||un),t}function qo(A){if("function"!=typeof A)throw new zA(i);return function(){var e=arguments;switch(e.length){case 0:return!A.call(this);case 1:return!A.call(this,e[0]);case 2:return!A.call(this,e[0],e[1]);case 3:return!A.call(this,e[0],e[1],e[2])}return!A.apply(this,e)}}Wo.Cache=un;var Jo=Sr(function(A,e){var t=(e=1==e.length&&ta(e[0])?Ze(e[0],rt(Qi())):Ze(kn(e,1),rt(Qi()))).length;return ur(function(n){for(var r=-1,i=Pt(n.length,t);++r<i;)n[r]=e[r].call(this,n[r]);return Ge(A,this,n)})}),Vo=ur(function(e,t){var n=Et(t,hi(Vo));return gi(e,C,A,t,n)}),Oo=ur(function(e,t){var n=Et(t,hi(Oo));return gi(e,h,A,t,n)}),zo=Bi(function(e,t){return gi(e,p,A,A,A,t)});function jo(A,e){return A===e||A!=A&&e!=e}var $o=ri(Hn),Aa=ri(function(A,e){return A>=e}),ea=qn(function(){return arguments}())?qn:function(A){return la(A)&&ne.call(A,"callee")&&!We.call(A,"callee")},ta=XA.isArray,na=ve?rt(ve):function(A){return la(A)&&Zn(A)==$};function ra(A){return null!=A&&ua(A.length)&&!ga(A)}function ia(A){return la(A)&&ra(A)}var oa=Mt||vs,aa=Re?rt(Re):function(A){return la(A)&&Zn(A)==L};function sa(A){if(!la(A))return!1;var e=Zn(A);return e==Y||e==U||"string"==typeof A.message&&"string"==typeof A.name&&!ca(A)}function ga(A){if(!fa(A))return!1;var e=Zn(A);return e==x||e==Z||e==N||e==W}function Ia(A){return"number"==typeof A&&A==_a(A)}function ua(A){return"number"==typeof A&&A>-1&&A%1==0&&A<=_}function fa(A){var e=typeof A;return null!=A&&("object"==e||"function"==e)}function la(A){return null!=A&&"object"==typeof A}var Ba=Fe?rt(Fe):function(A){return la(A)&&_i(A)==H};function Ea(A){return"number"==typeof A||la(A)&&Zn(A)==X}function ca(A){if(!la(A)||Zn(A)!=T)return!1;var e=_e(A);if(null===e)return!0;var t=ne.call(e,"constructor")&&e.constructor;return"function"==typeof t&&t instanceof t&&te.call(t)==ge}var da=Me?rt(Me):function(A){return la(A)&&Zn(A)==q},Ca=Se?rt(Se):function(A){return la(A)&&_i(A)==J};function ha(A){return"string"==typeof A||!ta(A)&&la(A)&&Zn(A)==V}function Qa(A){return"symbol"==typeof A||la(A)&&Zn(A)==O}var pa=ke?rt(ke):function(A){return la(A)&&ua(A.length)&&!!Ee[Zn(A)]},ma=ri($n),ya=ri(function(A,e){return A<=e});function wa(A){if(!A)return[];if(ra(A))return ha(A)?Ct(A):Zr(A);if(mt&&A[mt])return function(A){for(var e,t=[];!(e=A.next()).done;)t.push(e.value);return t}(A[mt]());var e=_i(A);return(e==H?lt:e==J?ct:ja)(A)}function ba(A){return A?(A=va(A))===b||A===-b?(A<0?-1:1)*D:A==A?A:0:0===A?A:0}function _a(A){var e=ba(A),t=e%1;return e==e?t?e-t:e:0}function Da(A){return A?yn(_a(A),0,R):0}function va(A){if("number"==typeof A)return A;if(Qa(A))return v;if(fa(A)){var e="function"==typeof A.valueOf?A.valueOf():A;A=fa(e)?e+"":e}if("string"!=typeof A)return 0===A?A:+A;A=A.replace(bA,"");var t=PA.test(A);return t||UA.test(A)?he(A.slice(2),t?2:8):NA.test(A)?v:+A}function Ra(A){return Hr(A,Ka(A))}function Fa(A){return null==A?"":pr(A)}var Ma=Kr(function(A,e){if(Ni(e)||ra(e))Hr(e,Xa(e),A);else for(var t in e)ne.call(e,t)&&dn(A,t,e[t])}),Sa=Kr(function(A,e){Hr(e,Ka(e),A)}),ka=Kr(function(A,e,t,n){Hr(e,Ka(e),A,n)}),Ga=Kr(function(A,e,t,n){Hr(e,Xa(e),A,n)}),Na=Bi(mn),Pa=ur(function(e,t){e=JA(e);var n=-1,r=t.length,i=r>2?t[2]:A;for(i&&Mi(t[0],t[1],i)&&(r=1);++n<r;)for(var o=t[n],a=Ka(o),s=-1,g=a.length;++s<g;){var I=a[s],u=e[I];(u===A||jo(u,Ae[I])&&!ne.call(e,I))&&(e[I]=o[I])}return e}),La=ur(function(e){return e.push(A,ui),Ge(Wa,A,e)});function Ua(e,t,n){var r=null==e?A:Yn(e,t);return r===A?n:r}function Ya(A,e){return null!=A&&Di(A,e,Kn)}var xa=$r(function(A,e,t){null!=e&&"function"!=typeof e.toString&&(e=oe.call(e)),A[e]=t},fs(Es)),Za=$r(function(A,e,t){null!=e&&"function"!=typeof e.toString&&(e=oe.call(e)),ne.call(A,e)?A[e].push(t):A[e]=[t]},Qi),Ha=ur(Wn);function Xa(A){return ra(A)?Bn(A):jn(A)}function Ka(A){return ra(A)?Bn(A,!0):function(A){if(!fa(A))return function(A){var e=[];if(null!=A)for(var t in JA(A))e.push(t);return e}(A);var e=Ni(A),t=[];for(var n in A)("constructor"!=n||!e&&ne.call(A,n))&&t.push(n);return t}(A)}var Ta=Kr(function(A,e,t){nr(A,e,t)}),Wa=Kr(function(A,e,t,n){nr(A,e,t,n)}),qa=Bi(function(A,e){var t={};if(null==A)return t;var n=!1;e=Ze(e,function(e){return e=Mr(e,A),n||(n=e.length>1),e}),Hr(A,ci(A),t),n&&(t=wn(t,s|g|I,fi));for(var r=e.length;r--;)yr(t,e[r]);return t}),Ja=Bi(function(A,e){return null==A?{}:function(A,e){return or(A,e,function(e,t){return Ya(A,t)})}(A,e)});function Va(A,e){if(null==A)return{};var t=Ze(ci(A),function(A){return[A]});return e=Qi(e),or(A,t,function(A,t){return e(A,t[0])})}var Oa=si(Xa),za=si(Ka);function ja(A){return null==A?[]:it(A,Xa(A))}var $a=Jr(function(A,e,t){return e=e.toLowerCase(),A+(t?As(e):e)});function As(A){return ss(Fa(A).toLowerCase())}function es(A){return(A=Fa(A))&&A.replace(xA,gt).replace(se,"")}var ts=Jr(function(A,e,t){return A+(t?"-":"")+e.toLowerCase()}),ns=Jr(function(A,e,t){return A+(t?" ":"")+e.toLowerCase()}),rs=qr("toLowerCase"),is=Jr(function(A,e,t){return A+(t?"_":"")+e.toLowerCase()}),os=Jr(function(A,e,t){return A+(t?" ":"")+ss(e)}),as=Jr(function(A,e,t){return A+(t?" ":"")+e.toUpperCase()}),ss=qr("toUpperCase");function gs(e,t,n){return e=Fa(e),(t=n?A:t)===A?function(A){return fe.test(A)}(e)?function(A){return A.match(Ie)||[]}(e):function(A){return A.match(MA)||[]}(e):e.match(t)||[]}var Is=ur(function(e,t){try{return Ge(e,A,t)}catch(r){return sa(r)?r:new TA(r)}}),us=Bi(function(A,e){return Pe(e,function(e){e=Ji(e),pn(A,e,Zo(A[e],A))}),A});function fs(A){return function(){return A}}var ls=zr(),Bs=zr(!0);function Es(A){return A}function cs(A){return zn("function"==typeof A?A:wn(A,s))}var ds=ur(function(A,e){return function(t){return Wn(t,A,e)}}),Cs=ur(function(A,e){return function(t){return Wn(A,t,e)}});function hs(A,e,t){var n=Xa(e),r=Un(e,n);null!=t||fa(e)&&(r.length||!n.length)||(t=e,e=A,A=this,r=Un(e,Xa(e)));var i=!(fa(t)&&"chain"in t&&!t.chain),o=ga(A);return Pe(r,function(t){var n=e[t];A[t]=n,o&&(A.prototype[t]=function(){var e=this.__chain__;if(i||e){var t=A(this.__wrapped__);return(t.__actions__=Zr(this.__actions__)).push({func:n,args:arguments,thisArg:A}),t.__chain__=e,t}return n.apply(A,He([this.value()],arguments))})}),A}function Qs(){}var ps=ei(Ze),ms=ei(Le),ys=ei(Te);function ws(A){return Si(A)?$e(Ji(A)):function(A){return function(e){return Yn(e,A)}}(A)}var bs=ni(),_s=ni(!0);function Ds(){return[]}function vs(){return!1}var Rs,Fs=Ai(function(A,e){return A+e},0),Ms=oi("ceil"),Ss=Ai(function(A,e){return A/e},1),ks=oi("floor"),Gs=Ai(function(A,e){return A*e},1),Ns=oi("round"),Ps=Ai(function(A,e){return A-e},0);return nn.after=function(A,e){if("function"!=typeof e)throw new zA(i);return A=_a(A),function(){if(--A<1)return e.apply(this,arguments)}},nn.ary=Yo,nn.assign=Ma,nn.assignIn=Sa,nn.assignInWith=ka,nn.assignWith=Ga,nn.at=Na,nn.before=xo,nn.bind=Zo,nn.bindAll=us,nn.bindKey=Ho,nn.castArray=function(){if(!arguments.length)return[];var A=arguments[0];return ta(A)?A:[A]},nn.chain=wo,nn.chunk=function(e,t,n){t=(n?Mi(e,t,n):t===A)?1:Nt(_a(t),0);var r=null==e?0:e.length;if(!r||t<1)return[];for(var i=0,o=0,a=XA(vt(r/t));i<r;)a[o++]=Er(e,i,i+=t);return a},nn.compact=function(A){for(var e=-1,t=null==A?0:A.length,n=0,r=[];++e<t;){var i=A[e];i&&(r[n++]=i)}return r},nn.concat=function(){var A=arguments.length;if(!A)return[];for(var e=XA(A-1),t=arguments[0],n=A;n--;)e[n-1]=arguments[n];return He(ta(t)?Zr(t):[t],kn(e,1))},nn.cond=function(A){var e=null==A?0:A.length,t=Qi();return A=e?Ze(A,function(A){if("function"!=typeof A[1])throw new zA(i);return[t(A[0]),A[1]]}):[],ur(function(t){for(var n=-1;++n<e;){var r=A[n];if(Ge(r[0],this,t))return Ge(r[1],this,t)}})},nn.conforms=function(A){return function(A){var e=Xa(A);return function(t){return bn(t,A,e)}}(wn(A,s))},nn.constant=fs,nn.countBy=Do,nn.create=function(A,e){var t=rn(A);return null==e?t:Qn(t,e)},nn.curry=function e(t,n,r){var i=gi(t,c,A,A,A,A,A,n=r?A:n);return i.placeholder=e.placeholder,i},nn.curryRight=function e(t,n,r){var i=gi(t,d,A,A,A,A,A,n=r?A:n);return i.placeholder=e.placeholder,i},nn.debounce=Xo,nn.defaults=Pa,nn.defaultsDeep=La,nn.defer=Ko,nn.delay=To,nn.difference=zi,nn.differenceBy=ji,nn.differenceWith=$i,nn.drop=function(e,t,n){var r=null==e?0:e.length;return r?Er(e,(t=n||t===A?1:_a(t))<0?0:t,r):[]},nn.dropRight=function(e,t,n){var r=null==e?0:e.length;return r?Er(e,0,(t=r-(t=n||t===A?1:_a(t)))<0?0:t):[]},nn.dropRightWhile=function(A,e){return A&&A.length?br(A,Qi(e,3),!0,!0):[]},nn.dropWhile=function(A,e){return A&&A.length?br(A,Qi(e,3),!0):[]},nn.fill=function(e,t,n,r){var i=null==e?0:e.length;return i?(n&&"number"!=typeof n&&Mi(e,t,n)&&(n=0,r=i),function(e,t,n,r){var i=e.length;for((n=_a(n))<0&&(n=-n>i?0:i+n),(r=r===A||r>i?i:_a(r))<0&&(r+=i),r=n>r?0:Da(r);n<r;)e[n++]=t;return e}(e,t,n,r)):[]},nn.filter=function(A,e){return(ta(A)?Ue:Sn)(A,Qi(e,3))},nn.flatMap=function(A,e){return kn(No(A,e),1)},nn.flatMapDeep=function(A,e){return kn(No(A,e),b)},nn.flatMapDepth=function(e,t,n){return n=n===A?1:_a(n),kn(No(e,t),n)},nn.flatten=to,nn.flattenDeep=function(A){return null!=A&&A.length?kn(A,b):[]},nn.flattenDepth=function(e,t){return null!=e&&e.length?kn(e,t=t===A?1:_a(t)):[]},nn.flip=function(A){return gi(A,m)},nn.flow=ls,nn.flowRight=Bs,nn.fromPairs=function(A){for(var e=-1,t=null==A?0:A.length,n={};++e<t;){var r=A[e];n[r[0]]=r[1]}return n},nn.functions=function(A){return null==A?[]:Un(A,Xa(A))},nn.functionsIn=function(A){return null==A?[]:Un(A,Ka(A))},nn.groupBy=So,nn.initial=function(A){return null!=A&&A.length?Er(A,0,-1):[]},nn.intersection=ro,nn.intersectionBy=io,nn.intersectionWith=oo,nn.invert=xa,nn.invertBy=Za,nn.invokeMap=ko,nn.iteratee=cs,nn.keyBy=Go,nn.keys=Xa,nn.keysIn=Ka,nn.map=No,nn.mapKeys=function(A,e){var t={};return e=Qi(e,3),Pn(A,function(A,n,r){pn(t,e(A,n,r),A)}),t},nn.mapValues=function(A,e){var t={};return e=Qi(e,3),Pn(A,function(A,n,r){pn(t,n,e(A,n,r))}),t},nn.matches=function(A){return er(wn(A,s))},nn.matchesProperty=function(A,e){return tr(A,wn(e,s))},nn.memoize=Wo,nn.merge=Ta,nn.mergeWith=Wa,nn.method=ds,nn.methodOf=Cs,nn.mixin=hs,nn.negate=qo,nn.nthArg=function(A){return A=_a(A),ur(function(e){return rr(e,A)})},nn.omit=qa,nn.omitBy=function(A,e){return Va(A,qo(Qi(e)))},nn.once=function(A){return xo(2,A)},nn.orderBy=function(e,t,n,r){return null==e?[]:(ta(t)||(t=null==t?[]:[t]),ta(n=r?A:n)||(n=null==n?[]:[n]),ir(e,t,n))},nn.over=ps,nn.overArgs=Jo,nn.overEvery=ms,nn.overSome=ys,nn.partial=Vo,nn.partialRight=Oo,nn.partition=Po,nn.pick=Ja,nn.pickBy=Va,nn.property=ws,nn.propertyOf=function(e){return function(t){return null==e?A:Yn(e,t)}},nn.pull=so,nn.pullAll=go,nn.pullAllBy=function(A,e,t){return A&&A.length&&e&&e.length?ar(A,e,Qi(t,2)):A},nn.pullAllWith=function(e,t,n){return e&&e.length&&t&&t.length?ar(e,t,A,n):e},nn.pullAt=Io,nn.range=bs,nn.rangeRight=_s,nn.rearg=zo,nn.reject=function(A,e){return(ta(A)?Ue:Sn)(A,qo(Qi(e,3)))},nn.remove=function(A,e){var t=[];if(!A||!A.length)return t;var n=-1,r=[],i=A.length;for(e=Qi(e,3);++n<i;){var o=A[n];e(o,n,A)&&(t.push(o),r.push(n))}return sr(A,r),t},nn.rest=function(e,t){if("function"!=typeof e)throw new zA(i);return ur(e,t=t===A?t:_a(t))},nn.reverse=uo,nn.sampleSize=function(e,t,n){return t=(n?Mi(e,t,n):t===A)?1:_a(t),(ta(e)?function(A,e){return Wi(Zr(A),yn(e,0,A.length))}:function(A,e){var t=ja(A);return Wi(t,yn(e,0,t.length))})(e,t)},nn.set=function(A,e,t){return null==A?A:fr(A,e,t)},nn.setWith=function(e,t,n,r){return r="function"==typeof r?r:A,null==e?e:fr(e,t,n,r)},nn.shuffle=function(A){return(ta(A)?function(A){return Wi(Zr(A))}:function(A){return Wi(ja(A))})(A)},nn.slice=function(e,t,n){var r=null==e?0:e.length;return r?(n&&"number"!=typeof n&&Mi(e,t,n)?(t=0,n=r):(t=null==t?0:_a(t),n=n===A?r:_a(n)),Er(e,t,n)):[]},nn.sortBy=Lo,nn.sortedUniq=function(A){return A&&A.length?hr(A):[]},nn.sortedUniqBy=function(A,e){return A&&A.length?hr(A,Qi(e,2)):[]},nn.split=function(e,t,n){return n&&"number"!=typeof n&&Mi(e,t,n)&&(t=n=A),(n=n===A?R:n>>>0)?(e=Fa(e))&&("string"==typeof t||null!=t&&!da(t))&&!(t=pr(t))&&ft(e)?kr(Ct(e),0,n):e.split(t,n):[]},nn.spread=function(A,e){if("function"!=typeof A)throw new zA(i);return e=null==e?0:Nt(_a(e),0),ur(function(t){var n=t[e],r=kr(t,0,e);return n&&He(r,n),Ge(A,this,r)})},nn.tail=function(A){var e=null==A?0:A.length;return e?Er(A,1,e):[]},nn.take=function(e,t,n){return e&&e.length?Er(e,0,(t=n||t===A?1:_a(t))<0?0:t):[]},nn.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?Er(e,(t=r-(t=n||t===A?1:_a(t)))<0?0:t,r):[]},nn.takeRightWhile=function(A,e){return A&&A.length?br(A,Qi(e,3),!1,!0):[]},nn.takeWhile=function(A,e){return A&&A.length?br(A,Qi(e,3)):[]},nn.tap=function(A,e){return e(A),A},nn.throttle=function(A,e,t){var n=!0,r=!0;if("function"!=typeof A)throw new zA(i);return fa(t)&&(n="leading"in t?!!t.leading:n,r="trailing"in t?!!t.trailing:r),Xo(A,e,{leading:n,maxWait:e,trailing:r})},nn.thru=bo,nn.toArray=wa,nn.toPairs=Oa,nn.toPairsIn=za,nn.toPath=function(A){return ta(A)?Ze(A,Ji):Qa(A)?[A]:Zr(qi(Fa(A)))},nn.toPlainObject=Ra,nn.transform=function(A,e,t){var n=ta(A),r=n||oa(A)||pa(A);if(e=Qi(e,4),null==t){var i=A&&A.constructor;t=r?n?new i:[]:fa(A)&&ga(i)?rn(_e(A)):{}}return(r?Pe:Pn)(A,function(A,n,r){return e(t,A,n,r)}),t},nn.unary=function(A){return Yo(A,1)},nn.union=fo,nn.unionBy=lo,nn.unionWith=Bo,nn.uniq=function(A){return A&&A.length?mr(A):[]},nn.uniqBy=function(A,e){return A&&A.length?mr(A,Qi(e,2)):[]},nn.uniqWith=function(e,t){return t="function"==typeof t?t:A,e&&e.length?mr(e,A,t):[]},nn.unset=function(A,e){return null==A||yr(A,e)},nn.unzip=Eo,nn.unzipWith=co,nn.update=function(A,e,t){return null==A?A:wr(A,e,Fr(t))},nn.updateWith=function(e,t,n,r){return r="function"==typeof r?r:A,null==e?e:wr(e,t,Fr(n),r)},nn.values=ja,nn.valuesIn=function(A){return null==A?[]:it(A,Ka(A))},nn.without=Co,nn.words=gs,nn.wrap=function(A,e){return Vo(Fr(e),A)},nn.xor=ho,nn.xorBy=Qo,nn.xorWith=po,nn.zip=mo,nn.zipObject=function(A,e){return vr(A||[],e||[],dn)},nn.zipObjectDeep=function(A,e){return vr(A||[],e||[],fr)},nn.zipWith=yo,nn.entries=Oa,nn.entriesIn=za,nn.extend=Sa,nn.extendWith=ka,hs(nn,nn),nn.add=Fs,nn.attempt=Is,nn.camelCase=$a,nn.capitalize=As,nn.ceil=Ms,nn.clamp=function(e,t,n){return n===A&&(n=t,t=A),n!==A&&(n=(n=va(n))==n?n:0),t!==A&&(t=(t=va(t))==t?t:0),yn(va(e),t,n)},nn.clone=function(A){return wn(A,I)},nn.cloneDeep=function(A){return wn(A,s|I)},nn.cloneDeepWith=function(e,t){return wn(e,s|I,t="function"==typeof t?t:A)},nn.cloneWith=function(e,t){return wn(e,I,t="function"==typeof t?t:A)},nn.conformsTo=function(A,e){return null==e||bn(A,e,Xa(e))},nn.deburr=es,nn.defaultTo=function(A,e){return null==A||A!=A?e:A},nn.divide=Ss,nn.endsWith=function(e,t,n){e=Fa(e),t=pr(t);var r=e.length,i=n=n===A?r:yn(_a(n),0,r);return(n-=t.length)>=0&&e.slice(n,i)==t},nn.eq=jo,nn.escape=function(A){return(A=Fa(A))&&cA.test(A)?A.replace(BA,It):A},nn.escapeRegExp=function(A){return(A=Fa(A))&&wA.test(A)?A.replace(yA,"\\$&"):A},nn.every=function(e,t,n){var r=ta(e)?Le:Fn;return n&&Mi(e,t,n)&&(t=A),r(e,Qi(t,3))},nn.find=vo,nn.findIndex=Ao,nn.findKey=function(A,e){return qe(A,Qi(e,3),Pn)},nn.findLast=Ro,nn.findLastIndex=eo,nn.findLastKey=function(A,e){return qe(A,Qi(e,3),Ln)},nn.floor=ks,nn.forEach=Fo,nn.forEachRight=Mo,nn.forIn=function(A,e){return null==A?A:Gn(A,Qi(e,3),Ka)},nn.forInRight=function(A,e){return null==A?A:Nn(A,Qi(e,3),Ka)},nn.forOwn=function(A,e){return A&&Pn(A,Qi(e,3))},nn.forOwnRight=function(A,e){return A&&Ln(A,Qi(e,3))},nn.get=Ua,nn.gt=$o,nn.gte=Aa,nn.has=function(A,e){return null!=A&&Di(A,e,Xn)},nn.hasIn=Ya,nn.head=no,nn.identity=Es,nn.includes=function(A,e,t,n){A=ra(A)?A:ja(A),t=t&&!n?_a(t):0;var r=A.length;return t<0&&(t=Nt(r+t,0)),ha(A)?t<=r&&A.indexOf(e,t)>-1:!!r&&Ve(A,e,t)>-1},nn.indexOf=function(A,e,t){var n=null==A?0:A.length;if(!n)return-1;var r=null==t?0:_a(t);return r<0&&(r=Nt(n+r,0)),Ve(A,e,r)},nn.inRange=function(e,t,n){return t=ba(t),n===A?(n=t,t=0):n=ba(n),function(A,e,t){return A>=Pt(e,t)&&A<Nt(e,t)}(e=va(e),t,n)},nn.invoke=Ha,nn.isArguments=ea,nn.isArray=ta,nn.isArrayBuffer=na,nn.isArrayLike=ra,nn.isArrayLikeObject=ia,nn.isBoolean=function(A){return!0===A||!1===A||la(A)&&Zn(A)==P},nn.isBuffer=oa,nn.isDate=aa,nn.isElement=function(A){return la(A)&&1===A.nodeType&&!ca(A)},nn.isEmpty=function(A){if(null==A)return!0;if(ra(A)&&(ta(A)||"string"==typeof A||"function"==typeof A.splice||oa(A)||pa(A)||ea(A)))return!A.length;var e=_i(A);if(e==H||e==J)return!A.size;if(Ni(A))return!jn(A).length;for(var t in A)if(ne.call(A,t))return!1;return!0},nn.isEqual=function(A,e){return Jn(A,e)},nn.isEqualWith=function(e,t,n){var r=(n="function"==typeof n?n:A)?n(e,t):A;return r===A?Jn(e,t,A,n):!!r},nn.isError=sa,nn.isFinite=function(A){return"number"==typeof A&&St(A)},nn.isFunction=ga,nn.isInteger=Ia,nn.isLength=ua,nn.isMap=Ba,nn.isMatch=function(A,e){return A===e||Vn(A,e,mi(e))},nn.isMatchWith=function(e,t,n){return n="function"==typeof n?n:A,Vn(e,t,mi(t),n)},nn.isNaN=function(A){return Ea(A)&&A!=+A},nn.isNative=function(A){if(Gi(A))throw new TA("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return On(A)},nn.isNil=function(A){return null==A},nn.isNull=function(A){return null===A},nn.isNumber=Ea,nn.isObject=fa,nn.isObjectLike=la,nn.isPlainObject=ca,nn.isRegExp=da,nn.isSafeInteger=function(A){return Ia(A)&&A>=-_&&A<=_},nn.isSet=Ca,nn.isString=ha,nn.isSymbol=Qa,nn.isTypedArray=pa,nn.isUndefined=function(e){return e===A},nn.isWeakMap=function(A){return la(A)&&_i(A)==j},nn.isWeakSet=function(A){return la(A)&&"[object WeakSet]"==Zn(A)},nn.join=function(A,e){return null==A?"":kt.call(A,e)},nn.kebabCase=ts,nn.last=ao,nn.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r;return n!==A&&(i=(i=_a(n))<0?Nt(r+i,0):Pt(i,r-1)),t==t?function(A,e,t){for(var n=i+1;n--;)if(A[n]===e)return n;return n}(e,t):Je(e,ze,i,!0)},nn.lowerCase=ns,nn.lowerFirst=rs,nn.lt=ma,nn.lte=ya,nn.max=function(e){return e&&e.length?Mn(e,Es,Hn):A},nn.maxBy=function(e,t){return e&&e.length?Mn(e,Qi(t,2),Hn):A},nn.mean=function(A){return je(A,Es)},nn.meanBy=function(A,e){return je(A,Qi(e,2))},nn.min=function(e){return e&&e.length?Mn(e,Es,$n):A},nn.minBy=function(e,t){return e&&e.length?Mn(e,Qi(t,2),$n):A},nn.stubArray=Ds,nn.stubFalse=vs,nn.stubObject=function(){return{}},nn.stubString=function(){return""},nn.stubTrue=function(){return!0},nn.multiply=Gs,nn.nth=function(e,t){return e&&e.length?rr(e,_a(t)):A},nn.noConflict=function(){return me._===this&&(me._=ue),this},nn.noop=Qs,nn.now=Uo,nn.pad=function(A,e,t){A=Fa(A);var n=(e=_a(e))?dt(A):0;if(!e||n>=e)return A;var r=(e-n)/2;return ti(Rt(r),t)+A+ti(vt(r),t)},nn.padEnd=function(A,e,t){A=Fa(A);var n=(e=_a(e))?dt(A):0;return e&&n<e?A+ti(e-n,t):A},nn.padStart=function(A,e,t){A=Fa(A);var n=(e=_a(e))?dt(A):0;return e&&n<e?ti(e-n,t)+A:A},nn.parseInt=function(A,e,t){return t||null==e?e=0:e&&(e=+e),Ut(Fa(A).replace(_A,""),e||0)},nn.random=function(e,t,n){if(n&&"boolean"!=typeof n&&Mi(e,t,n)&&(t=n=A),n===A&&("boolean"==typeof t?(n=t,t=A):"boolean"==typeof e&&(n=e,e=A)),e===A&&t===A?(e=0,t=1):(e=ba(e),t===A?(t=e,e=0):t=ba(t)),e>t){var r=e;e=t,t=r}if(n||e%1||t%1){var i=Yt();return Pt(e+i*(t-e+Ce("1e-"+((i+"").length-1))),t)}return gr(e,t)},nn.reduce=function(A,e,t){var n=ta(A)?Xe:et,r=arguments.length<3;return n(A,Qi(e,4),t,r,vn)},nn.reduceRight=function(A,e,t){var n=ta(A)?Ke:et,r=arguments.length<3;return n(A,Qi(e,4),t,r,Rn)},nn.repeat=function(e,t,n){return t=(n?Mi(e,t,n):t===A)?1:_a(t),Ir(Fa(e),t)},nn.replace=function(){var A=arguments,e=Fa(A[0]);return A.length<3?e:e.replace(A[1],A[2])},nn.result=function(e,t,n){var r=-1,i=(t=Mr(t,e)).length;for(i||(i=1,e=A);++r<i;){var o=null==e?A:e[Ji(t[r])];o===A&&(r=i,o=n),e=ga(o)?o.call(e):o}return e},nn.round=Ns,nn.runInContext=e,nn.sample=function(A){return(ta(A)?En:function(A){return En(ja(A))})(A)},nn.size=function(A){if(null==A)return 0;if(ra(A))return ha(A)?dt(A):A.length;var e=_i(A);return e==H||e==J?A.size:jn(A).length},nn.snakeCase=is,nn.some=function(e,t,n){var r=ta(e)?Te:cr;return n&&Mi(e,t,n)&&(t=A),r(e,Qi(t,3))},nn.sortedIndex=function(A,e){return dr(A,e)},nn.sortedIndexBy=function(A,e,t){return Cr(A,e,Qi(t,2))},nn.sortedIndexOf=function(A,e){var t=null==A?0:A.length;if(t){var n=dr(A,e);if(n<t&&jo(A[n],e))return n}return-1},nn.sortedLastIndex=function(A,e){return dr(A,e,!0)},nn.sortedLastIndexBy=function(A,e,t){return Cr(A,e,Qi(t,2),!0)},nn.sortedLastIndexOf=function(A,e){if(null!=A&&A.length){var t=dr(A,e,!0)-1;if(jo(A[t],e))return t}return-1},nn.startCase=os,nn.startsWith=function(A,e,t){return A=Fa(A),t=null==t?0:yn(_a(t),0,A.length),e=pr(e),A.slice(t,t+e.length)==e},nn.subtract=Ps,nn.sum=function(A){return A&&A.length?tt(A,Es):0},nn.sumBy=function(A,e){return A&&A.length?tt(A,Qi(e,2)):0},nn.template=function(e,t,n){var r=nn.templateSettings;n&&Mi(e,t,n)&&(t=A),e=Fa(e),t=ka({},t,r,Ii);var i,o,a=ka({},t.imports,r.imports,Ii),s=Xa(a),g=it(a,s),I=0,u=t.interpolate||ZA,f="__p += '",l=VA((t.escape||ZA).source+"|"+u.source+"|"+(u===hA?kA:ZA).source+"|"+(t.evaluate||ZA).source+"|$","g"),B="//# sourceURL="+(ne.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Be+"]")+"\n";e.replace(l,function(A,t,n,r,a,s){return n||(n=r),f+=e.slice(I,s).replace(HA,ut),t&&(i=!0,f+="' +\n__e("+t+") +\n'"),a&&(o=!0,f+="';\n"+a+";\n__p += '"),n&&(f+="' +\n((__t = ("+n+")) == null ? '' : __t) +\n'"),I=s+A.length,A}),f+="';\n";var E=ne.call(t,"variable")&&t.variable;E||(f="with (obj) {\n"+f+"\n}\n"),f=(o?f.replace(IA,""):f).replace(uA,"$1").replace(fA,"$1;"),f="function("+(E||"obj")+") {\n"+(E?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+f+"return __p\n}";var c=Is(function(){return WA(s,B+"return "+f).apply(A,g)});if(c.source=f,sa(c))throw c;return c},nn.times=function(A,e){if((A=_a(A))<1||A>_)return[];var t=R,n=Pt(A,R);e=Qi(e),A-=R;for(var r=nt(n,e);++t<A;)e(t);return r},nn.toFinite=ba,nn.toInteger=_a,nn.toLength=Da,nn.toLower=function(A){return Fa(A).toLowerCase()},nn.toNumber=va,nn.toSafeInteger=function(A){return A?yn(_a(A),-_,_):0===A?A:0},nn.toString=Fa,nn.toUpper=function(A){return Fa(A).toUpperCase()},nn.trim=function(e,t,n){if((e=Fa(e))&&(n||t===A))return e.replace(bA,"");if(!e||!(t=pr(t)))return e;var r=Ct(e),i=Ct(t);return kr(r,at(r,i),st(r,i)+1).join("")},nn.trimEnd=function(e,t,n){if((e=Fa(e))&&(n||t===A))return e.replace(DA,"");if(!e||!(t=pr(t)))return e;var r=Ct(e);return kr(r,0,st(r,Ct(t))+1).join("")},nn.trimStart=function(e,t,n){if((e=Fa(e))&&(n||t===A))return e.replace(_A,"");if(!e||!(t=pr(t)))return e;var r=Ct(e);return kr(r,at(r,Ct(t))).join("")},nn.truncate=function(e,t){var n=30,r="...";if(fa(t)){var i="separator"in t?t.separator:i;n="length"in t?_a(t.length):n,r="omission"in t?pr(t.omission):r}var o=(e=Fa(e)).length;if(ft(e)){var a=Ct(e);o=a.length}if(n>=o)return e;var s=n-dt(r);if(s<1)return r;var g=a?kr(a,0,s).join(""):e.slice(0,s);if(i===A)return g+r;if(a&&(s+=g.length-s),da(i)){if(e.slice(s).search(i)){var I,u=g;for(i.global||(i=VA(i.source,Fa(GA.exec(i))+"g")),i.lastIndex=0;I=i.exec(u);)var f=I.index;g=g.slice(0,f===A?s:f)}}else if(e.indexOf(pr(i),s)!=s){var l=g.lastIndexOf(i);l>-1&&(g=g.slice(0,l))}return g+r},nn.unescape=function(A){return(A=Fa(A))&&EA.test(A)?A.replace(lA,ht):A},nn.uniqueId=function(A){var e=++re;return Fa(A)+e},nn.upperCase=as,nn.upperFirst=ss,nn.each=Fo,nn.eachRight=Mo,nn.first=no,hs(nn,(Rs={},Pn(nn,function(A,e){ne.call(nn.prototype,e)||(Rs[e]=A)}),Rs),{chain:!1}),nn.VERSION="4.17.20",Pe(["bind","bindKey","curry","curryRight","partial","partialRight"],function(A){nn[A].placeholder=nn}),Pe(["drop","take"],function(e,t){sn.prototype[e]=function(n){n=n===A?1:Nt(_a(n),0);var r=this.__filtered__&&!t?new sn(this):this.clone();return r.__filtered__?r.__takeCount__=Pt(n,r.__takeCount__):r.__views__.push({size:Pt(n,R),type:e+(r.__dir__<0?"Right":"")}),r},sn.prototype[e+"Right"]=function(A){return this.reverse()[e](A).reverse()}}),Pe(["filter","map","takeWhile"],function(A,e){var t=e+1,n=1==t||3==t;sn.prototype[A]=function(A){var e=this.clone();return e.__iteratees__.push({iteratee:Qi(A,3),type:t}),e.__filtered__=e.__filtered__||n,e}}),Pe(["head","last"],function(A,e){var t="take"+(e?"Right":"");sn.prototype[A]=function(){return this[t](1).value()[0]}}),Pe(["initial","tail"],function(A,e){var t="drop"+(e?"":"Right");sn.prototype[A]=function(){return this.__filtered__?new sn(this):this[t](1)}}),sn.prototype.compact=function(){return this.filter(Es)},sn.prototype.find=function(A){return this.filter(A).head()},sn.prototype.findLast=function(A){return this.reverse().find(A)},sn.prototype.invokeMap=ur(function(A,e){return"function"==typeof A?new sn(this):this.map(function(t){return Wn(t,A,e)})}),sn.prototype.reject=function(A){return this.filter(qo(Qi(A)))},sn.prototype.slice=function(e,t){e=_a(e);var n=this;return n.__filtered__&&(e>0||t<0)?new sn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==A&&(n=(t=_a(t))<0?n.dropRight(-t):n.take(t-e)),n)},sn.prototype.takeRightWhile=function(A){return this.reverse().takeWhile(A).reverse()},sn.prototype.toArray=function(){return this.take(R)},Pn(sn.prototype,function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=nn[r?"take"+("last"==t?"Right":""):t],o=r||/^find/.test(t);i&&(nn.prototype[t]=function(){var t=this.__wrapped__,a=r?[1]:arguments,s=t instanceof sn,g=a[0],I=s||ta(t),u=function(A){var e=i.apply(nn,He([A],a));return r&&f?e[0]:e};I&&n&&"function"==typeof g&&1!=g.length&&(s=I=!1);var f=this.__chain__,l=!!this.__actions__.length,B=o&&!f,E=s&&!l;if(!o&&I){t=E?t:new sn(this);var c=e.apply(t,a);return c.__actions__.push({func:bo,args:[u],thisArg:A}),new an(c,f)}return B&&E?e.apply(this,a):(c=this.thru(u),B?r?c.value()[0]:c.value():c)})}),Pe(["pop","push","shift","sort","splice","unshift"],function(A){var e=jA[A],t=/^(?:push|sort|unshift)$/.test(A)?"tap":"thru",n=/^(?:pop|shift)$/.test(A);nn.prototype[A]=function(){var A=arguments;if(n&&!this.__chain__){var r=this.value();return e.apply(ta(r)?r:[],A)}return this[t](function(t){return e.apply(ta(t)?t:[],A)})}}),Pn(sn.prototype,function(A,e){var t=nn[e];if(t){var n=t.name+"";ne.call(Jt,n)||(Jt[n]=[]),Jt[n].push({name:e,func:t})}}),Jt[jr(A,B).name]=[{name:"wrapper",func:A}],sn.prototype.clone=function(){var A=new sn(this.__wrapped__);return A.__actions__=Zr(this.__actions__),A.__dir__=this.__dir__,A.__filtered__=this.__filtered__,A.__iteratees__=Zr(this.__iteratees__),A.__takeCount__=this.__takeCount__,A.__views__=Zr(this.__views__),A},sn.prototype.reverse=function(){if(this.__filtered__){var A=new sn(this);A.__dir__=-1,A.__filtered__=!0}else(A=this.clone()).__dir__*=-1;return A},sn.prototype.value=function(){var A=this.__wrapped__.value(),e=this.__dir__,t=ta(A),n=e<0,r=t?A.length:0,i=function(A,e,t){for(var n=-1,r=t.length;++n<r;){var i=t[n],o=i.size;switch(i.type){case"drop":A+=o;break;case"dropRight":e-=o;break;case"take":e=Pt(e,A+o);break;case"takeRight":A=Nt(A,e-o)}}return{start:A,end:e}}(0,r,this.__views__),o=i.start,a=i.end,s=a-o,g=n?a:o-1,I=this.__iteratees__,u=I.length,f=0,l=Pt(s,this.__takeCount__);if(!t||!n&&r==s&&l==s)return _r(A,this.__actions__);var B=[];A:for(;s--&&f<l;){for(var E=-1,c=A[g+=e];++E<u;){var d=I[E],C=d.iteratee,h=d.type,Q=C(c);if(2==h)c=Q;else if(!Q){if(1==h)continue A;break A}}B[f++]=c}return B},nn.prototype.at=_o,nn.prototype.chain=function(){return wo(this)},nn.prototype.commit=function(){return new an(this.value(),this.__chain__)},nn.prototype.next=function(){this.__values__===A&&(this.__values__=wa(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?A:this.__values__[this.__index__++]}},nn.prototype.plant=function(e){for(var t,n=this;n instanceof on;){var r=Oi(n);r.__index__=0,r.__values__=A,t?i.__wrapped__=r:t=r;var i=r;n=n.__wrapped__}return i.__wrapped__=e,t},nn.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof sn){var t=e;return this.__actions__.length&&(t=new sn(this)),(t=t.reverse()).__actions__.push({func:bo,args:[uo],thisArg:A}),new an(t,this.__chain__)}return this.thru(uo)},nn.prototype.toJSON=nn.prototype.valueOf=nn.prototype.value=function(){return _r(this.__wrapped__,this.__actions__)},nn.prototype.first=nn.prototype.head,mt&&(nn.prototype[mt]=function(){return this}),nn}();we?((we.exports=Qt)._=Qt,ye._=Qt):me._=Qt}).call(this)},{buffer:"dskh"}],wXAf:[function(A,e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MidiEventTypes=void 0,t.MidiEventTypes={NoteOn:9,NoteOff:8,Pc:12,Cc:11,PitchBend:14}},{}],gVPx:[function(A,e,t){"use strict";function n(A){var e;if(A){if(!(A instanceof ArrayBuffer))throw Error("Invalid buffer received.");if(this.datas=new DataView(A,0,n.HEADER_LENGTH),"M"!==String.fromCharCode(this.datas.getUint8(0))||"T"!==String.fromCharCode(this.datas.getUint8(1))||"h"!==String.fromCharCode(this.datas.getUint8(2))||"d"!==String.fromCharCode(this.datas.getUint8(3)))throw new Error("Invalid MIDIFileHeader : MThd prefix not found");if(6!==this.datas.getUint32(4))throw new Error("Invalid MIDIFileHeader : Chunk length must be 6")}else(e=new Uint8Array(n.HEADER_LENGTH))[0]=77,e[1]=84,e[2]=104,e[3]=100,e[4]=0,e[5]=0,e[6]=0,e[7]=6,e[8]=0,e[9]=1,e[10]=0,e[11]=1,e[12]=0,e[13]=192,this.datas=new DataView(e.buffer,0,n.HEADER_LENGTH)}n.HEADER_LENGTH=14,n.FRAMES_PER_SECONDS=1,n.TICKS_PER_BEAT=2,n.prototype.getFormat=function(){var A=this.datas.getUint16(8);if(0!==A&&1!==A&&2!==A)throw new Error("Invalid MIDI file : MIDI format ("+A+"), format can be 0, 1 or 2 only.");return A},n.prototype.setFormat=function(A){if(0!==A&&1!==A&&2!==A)throw new Error("Invalid MIDI format given ("+A+"), format can be 0, 1 or 2 only.");this.datas.setUint16(8,A)},n.prototype.getTracksCount=function(){return this.datas.getUint16(10)},n.prototype.setTracksCount=function(A){return this.datas.setUint16(10,A)},n.prototype.getTickResolution=function(A){return 32768&this.datas.getUint16(12)?1e6/(this.getSMPTEFrames()*this.getTicksPerFrame()):(A=A||5e5)/this.getTicksPerBeat()},n.prototype.getTimeDivision=function(){return 32768&this.datas.getUint16(12)?n.FRAMES_PER_SECONDS:n.TICKS_PER_BEAT},n.prototype.getTicksPerBeat=function(){var A=this.datas.getUint16(12);if(32768&A)throw new Error("Time division is not expressed as ticks per beat.");return A},n.prototype.setTicksPerBeat=function(A){this.datas.setUint16(12,32767&A)},n.prototype.getSMPTEFrames=function(){var A,e=this.datas.getUint16(12);if(!(32768&e))throw new Error("Time division is not expressed as frames per seconds.");if(-1===[24,25,29,30].indexOf(A=32512&e))throw new Error("Invalid SMPTE frames value ("+A+").");return 29===A?29.97:A},n.prototype.getTicksPerFrame=function(){var A=this.datas.getUint16(12);if(!(32768&A))throw new Error("Time division is not expressed as frames per seconds.");return 255&A},n.prototype.setSMTPEDivision=function(A,e){if(29.97===A&&(A=29),-1===[24,25,29,30].indexOf(A))throw new Error("Invalid SMPTE frames value given ("+A+").");if(0>e||255<e)throw new Error("Invalid ticks per frame value given ("+A+").");this.datas.setUint8(12,128|A),this.datas.setUint8(13,e)},e.exports=n},{}],jQRz:[function(A,e,t){"use strict";function n(A,e){var t,r;if(A){if(!(A instanceof ArrayBuffer))throw new Error("Invalid buffer received.");if(12>A.byteLength-e)throw new Error("Invalid MIDIFileTrack (0x"+e.toString(16)+") : Buffer length must size at least 12bytes");if(this.datas=new DataView(A,e,n.HDR_LENGTH),"M"!==String.fromCharCode(this.datas.getUint8(0))||"T"!==String.fromCharCode(this.datas.getUint8(1))||"r"!==String.fromCharCode(this.datas.getUint8(2))||"k"!==String.fromCharCode(this.datas.getUint8(3)))throw new Error("Invalid MIDIFileTrack (0x"+e.toString(16)+") : MTrk prefix not found");if(r=this.getTrackLength(),A.byteLength-e<r)throw new Error("Invalid MIDIFileTrack (0x"+e.toString(16)+") : The track size exceed the buffer length.");if(this.datas=new DataView(A,e,n.HDR_LENGTH+r),255!==this.datas.getUint8(n.HDR_LENGTH+(r-3))||47!==this.datas.getUint8(n.HDR_LENGTH+(r-2))||0!==this.datas.getUint8(n.HDR_LENGTH+(r-1)))throw new Error("Invalid MIDIFileTrack (0x"+e.toString(16)+") : No track end event found at the expected index ("+(n.HDR_LENGTH+(r-1)).toString(16)+").")}else(t=new Uint8Array(12))[0]=77,t[1]=84,t[2]=114,t[3]=107,t[4]=0,t[5]=0,t[6]=0,t[7]=4,t[8]=0,t[9]=255,t[10]=47,t[11]=0,this.datas=new DataView(t.buffer,0,n.HDR_LENGTH+4)}n.HDR_LENGTH=8,n.prototype.getTrackLength=function(){return this.datas.getUint32(4)},n.prototype.setTrackLength=function(A){return this.datas.setUint32(4,A)},n.prototype.getTrackContent=function(){return new DataView(this.datas.buffer,this.datas.byteOffset+n.HDR_LENGTH,this.datas.byteLength-n.HDR_LENGTH)},n.prototype.setTrackContent=function(A){var e,t,r,i,o=A.byteLength-A.byteOffset;if(4>o)throw new Error("Invalid track length, must size at least 4bytes");for(this.datas=new DataView(new Uint8Array(n.HDR_LENGTH+o).buffer),this.datas.setUint8(0,77),this.datas.setUint8(1,84),this.datas.setUint8(2,114),this.datas.setUint8(3,107),this.datas.setUint32(4,o),e=new Uint8Array(A.buffer,A.byteOffset,A.byteLength),t=new Uint8Array(this.datas.buffer,n.HDR_LENGTH,o),r=0,i=e.length;r<i;r++)t[r]=e[r]},e.exports=n},{}],"+m+m":[function(A,e,t){"use strict";function n(){throw new Error("MIDIEvents function not intended to be run.")}n.EVENT_META=255,n.EVENT_SYSEX=240,n.EVENT_DIVSYSEX=247,n.EVENT_MIDI=8,n.EVENT_META_SEQUENCE_NUMBER=0,n.EVENT_META_TEXT=1,n.EVENT_META_COPYRIGHT_NOTICE=2,n.EVENT_META_TRACK_NAME=3,n.EVENT_META_INSTRUMENT_NAME=4,n.EVENT_META_LYRICS=5,n.EVENT_META_MARKER=6,n.EVENT_META_CUE_POINT=7,n.EVENT_META_MIDI_CHANNEL_PREFIX=32,n.EVENT_META_END_OF_TRACK=47,n.EVENT_META_SET_TEMPO=81,n.EVENT_META_SMTPE_OFFSET=84,n.EVENT_META_TIME_SIGNATURE=88,n.EVENT_META_KEY_SIGNATURE=89,n.EVENT_META_SEQUENCER_SPECIFIC=127,n.EVENT_MIDI_NOTE_OFF=8,n.EVENT_MIDI_NOTE_ON=9,n.EVENT_MIDI_NOTE_AFTERTOUCH=10,n.EVENT_MIDI_CONTROLLER=11,n.EVENT_MIDI_PROGRAM_CHANGE=12,n.EVENT_MIDI_CHANNEL_AFTERTOUCH=13,n.EVENT_MIDI_PITCH_BEND=14,n.MIDI_1PARAM_EVENTS=[n.EVENT_MIDI_PROGRAM_CHANGE,n.EVENT_MIDI_CHANNEL_AFTERTOUCH],n.MIDI_2PARAMS_EVENTS=[n.EVENT_MIDI_NOTE_OFF,n.EVENT_MIDI_NOTE_ON,n.EVENT_MIDI_NOTE_AFTERTOUCH,n.EVENT_MIDI_CONTROLLER,n.EVENT_MIDI_PITCH_BEND],n.createParser=function(A,e,t){var r,i,o,a,s;if(A instanceof DataView&&(A={position:e||0,buffer:A,readUint8:function(){return this.buffer.getUint8(this.position++)},readUint16:function(){var A=this.buffer.getUint16(this.position);return this.position=this.position+2,A},readUint32:function(){var A=this.buffer.getUint16(this.position);return this.position=this.position+2,A},readVarInt:function(){for(var A,e=0,t=0;4>t++;){if(!(128&(A=this.readUint8())))return e+A;e+=127&A,e<<=7}throw new Error("0x"+this.position.toString(16)+": Variable integer length cannot exceed 4 bytes")},readBytes:function(A){for(var e=[];0<A;A--)e.push(this.readUint8());return e},pos:function(){return"0x"+(this.buffer.byteOffset+this.position).toString(16)},end:function(){return this.position===this.buffer.byteLength}},e=0),0<e)for(;e--;)A.readUint8();return{next:function(){if(A.end())return null;if(i={index:A.pos(),delta:A.readVarInt()},240==(240&(r=A.readUint8()))){if(r!==n.EVENT_META){if(r===n.EVENT_SYSEX||r===n.EVENT_DIVSYSEX)return i.type=r,i.length=A.readVarInt(),i.data=A.readBytes(i.length),i;if(t)throw new Error(A.pos()+" Unknown event type "+r.toString(16)+", Delta: "+i.delta+".");return i.type=r,i.badsubtype=A.readVarInt(),i.length=A.readUint8(),i.data=A.readBytes(i.length),i}switch(i.type=n.EVENT_META,i.subtype=A.readUint8(),i.length=A.readVarInt(),i.subtype){case n.EVENT_META_SEQUENCE_NUMBER:if(t&&2!==i.length)throw new Error(A.pos()+" Bad metaevent length.");return i.msb=A.readUint8(),i.lsb=A.readUint8(),i;case n.EVENT_META_TEXT:case n.EVENT_META_COPYRIGHT_NOTICE:case n.EVENT_META_TRACK_NAME:case n.EVENT_META_INSTRUMENT_NAME:case n.EVENT_META_LYRICS:case n.EVENT_META_MARKER:case n.EVENT_META_CUE_POINT:return i.data=A.readBytes(i.length),i;case n.EVENT_META_MIDI_CHANNEL_PREFIX:if(t&&1!==i.length)throw new Error(A.pos()+" Bad metaevent length.");return i.prefix=A.readUint8(),i;case n.EVENT_META_END_OF_TRACK:if(t&&0!==i.length)throw new Error(A.pos()+" Bad metaevent length.");return i;case n.EVENT_META_SET_TEMPO:if(t&&3!==i.length)throw new Error(A.pos()+" Tempo meta event length must be 3.");return i.tempo=(A.readUint8()<<16)+(A.readUint8()<<8)+A.readUint8(),i.tempoBPM=6e7/i.tempo,i;case n.EVENT_META_SMTPE_OFFSET:if(t&&5!==i.length)throw new Error(A.pos()+" Bad metaevent length.");if(i.hour=A.readUint8(),t&&23<i.hour)throw new Error(A.pos()+" SMTPE offset hour value must be part of 0-23.");if(i.minutes=A.readUint8(),t&&59<i.minutes)throw new Error(A.pos()+" SMTPE offset minutes value must be part of 0-59.");if(i.seconds=A.readUint8(),t&&59<i.seconds)throw new Error(A.pos()+" SMTPE offset seconds value must be part of 0-59.");if(i.frames=A.readUint8(),t&&30<i.frames)throw new Error(A.pos()+" SMTPE offset frames value must be part of 0-30.");if(i.subframes=A.readUint8(),t&&99<i.subframes)throw new Error(A.pos()+" SMTPE offset subframes value must be part of 0-99.");return i;case n.EVENT_META_KEY_SIGNATURE:if(t&&2!==i.length)throw new Error(A.pos()+" Bad metaevent length.");if(i.key=A.readUint8(),t&&(-7>i.key||7<i.key))throw new Error(A.pos()+" Bad metaevent length.");if(i.scale=A.readUint8(),t&&0!==i.scale&&1!==i.scale)throw new Error(A.pos()+" Key signature scale value must be 0 or 1.");return i;case n.EVENT_META_TIME_SIGNATURE:if(t&&4!==i.length)throw new Error(A.pos()+" Bad metaevent length.");return i.data=A.readBytes(i.length),i.param1=i.data[0],i.param2=i.data[1],i.param3=i.data[2],i.param4=i.data[3],i;case n.EVENT_META_SEQUENCER_SPECIFIC:return i.data=A.readBytes(i.length),i;default:if(t)throw new Error(A.pos()+" Unknown meta event type ("+i.subtype.toString(16)+").");return i.data=A.readBytes(i.length),i}}else{if(0==(128&r)){if(!o)throw new Error(A.pos()+" Running status without previous event");s=r}else o=r>>4,a=15&r,s=A.readUint8();switch(i.type=n.EVENT_MIDI,i.subtype=o,i.channel=a,i.param1=s,o){case n.EVENT_MIDI_NOTE_OFF:return i.param2=A.readUint8(),i;case n.EVENT_MIDI_NOTE_ON:return i.param2=A.readUint8(),i.param2||(i.subtype=n.EVENT_MIDI_NOTE_OFF,i.param2=127),i;case n.EVENT_MIDI_NOTE_AFTERTOUCH:case n.EVENT_MIDI_CONTROLLER:return i.param2=A.readUint8(),i;case n.EVENT_MIDI_PROGRAM_CHANGE:case n.EVENT_MIDI_CHANNEL_AFTERTOUCH:return i;case n.EVENT_MIDI_PITCH_BEND:return i.param2=A.readUint8(),i;default:if(t)throw new Error(A.pos()+" Unknown MIDI event type ("+o.toString(16)+").");return i}}}}},n.writeToTrack=function(A,e,t){var r,i,o,a,s=0;for(r=0,i=A.length;r<i;r++){if(A[r].delta>>>28)throw Error("Event #"+r+": Maximum delta time value reached ("+A[r].delta+"/134217728 max)");if(A[r].delta>>>21&&(e[s++]=A[r].delta>>>21&127|128),A[r].delta>>>14&&(e[s++]=A[r].delta>>>14&127|128),A[r].delta>>>7&&(e[s++]=A[r].delta>>>7&127|128),e[s++]=127&A[r].delta,A[r].type===n.EVENT_MIDI)e[s++]=(A[r].subtype<<4)+A[r].channel,e[s++]=A[r].param1,-1!==n.MIDI_2PARAMS_EVENTS.indexOf(A[r].subtype)&&(e[s++]=A[r].param2);else{if(e[s++]=A[r].type,A[r].type===n.EVENT_META&&(e[s++]=A[r].subtype),A[r].length>>>28)throw Error("Event #"+r+": Maximum length reached ("+A[r].length+"/134217728 max)");if(A[r].length>>>21&&(e[s++]=A[r].length>>>21&127|128),A[r].length>>>14&&(e[s++]=A[r].length>>>14&127|128),A[r].length>>>7&&(e[s++]=A[r].length>>>7&127|128),e[s++]=127&A[r].length,A[r].type===n.EVENT_META)switch(A[r].subtype){case n.EVENT_META_SEQUENCE_NUMBER:e[s++]=A[r].msb,e[s++]=A[r].lsb;break;case n.EVENT_META_TEXT:case n.EVENT_META_COPYRIGHT_NOTICE:case n.EVENT_META_TRACK_NAME:case n.EVENT_META_INSTRUMENT_NAME:case n.EVENT_META_LYRICS:case n.EVENT_META_MARKER:case n.EVENT_META_CUE_POINT:for(o=0,a=A[r].length;o<a;o++)e[s++]=A[r].data[o];break;case n.EVENT_META_MIDI_CHANNEL_PREFIX:e[s++]=A[r].prefix;break;case n.EVENT_META_END_OF_TRACK:break;case n.EVENT_META_SET_TEMPO:e[s++]=A[r].tempo>>16,e[s++]=A[r].tempo>>8&255,e[s++]=255&A[r].tempo;break;case n.EVENT_META_SMTPE_OFFSET:if(t&&23<A[r].hour)throw new Error("Event #"+r+": SMTPE offset hour value must be part of 0-23.");if(e[s++]=A[r].hour,t&&59<A[r].minutes)throw new Error("Event #"+r+": SMTPE offset minutes value must be part of 0-59.");if(e[s++]=A[r].minutes,t&&59<A[r].seconds)throw new Error("Event #"+r+": SMTPE offset seconds value must be part of 0-59.");if(e[s++]=A[r].seconds,t&&30<A[r].frames)throw new Error("Event #"+r+": SMTPE offset frames amount must be part of 0-30.");if(e[s++]=A[r].frames,t&&99<A[r].subframes)throw new Error("Event #"+r+": SMTPE offset subframes amount must be part of 0-99.");e[s++]=A[r].subframes;break;case n.EVENT_META_KEY_SIGNATURE:if("number"!=typeof A[r].key||-7>A[r].key||7<A[r].scale)throw new Error("Event #"+r+":The key signature key must be between -7 and 7");if("number"!=typeof A[r].scale||0>A[r].scale||1<A[r].scale)throw new Error("Event #"+r+":The key signature scale must be 0 or 1");e[s++]=A[r].key,e[s++]=A[r].scale;break;case n.EVENT_META_TIME_SIGNATURE:case n.EVENT_META_SEQUENCER_SPECIFIC:default:for(o=0,a=A[r].length;o<a;o++)e[s++]=A[r].data[o]}else for(o=0,a=A[r].length;o<a;o++)e[s++]=A[r].data[o]}}},n.getRequiredBufferLength=function(A){var e,t=0,r=0;for(r=0,e=A.length;r<e;r++)t+=A[r].delta>>>21?4:A[r].delta>>>14?3:A[r].delta>>>7?2:1,A[r].type===n.EVENT_MIDI?(t++,t++,-1!==n.MIDI_2PARAMS_EVENTS.indexOf(A[r].subtype)&&t++):(t++,A[r].type===n.EVENT_META&&t++,t+=A[r].length>>>21?4:A[r].length>>>14?3:A[r].length>>>7?2:1,t+=A[r].length);return t},e.exports=n},{}],tJNq:[function(A,e,t){function n(A){return 240==(240&A)?4:224==(224&A)?3:192==(192&A)?2:A==(127&A)?1:0}function r(A,e,t){var r=0,i="";if(e=e||0,A.length-e<=0)throw new Error("No more characters remaining in array.");if(0==(t=t||n(A[e])))throw new Error(A[e].toString(2)+" is not a significative byte (offset:"+e+").");if(1===t)return A[e];if(A.length-e<t)throw new Error("Expected at least "+t+" bytes remaining in array.");if(i="00000000".slice(0,t)+1+"00000000".slice(t+1),A[e]&parseInt(i,2))throw Error("Index "+e+": A "+t+" bytes encoded char cannot encode the "+(t+1)+"th rank bit to 1.");for(i="0000".slice(0,t+1)+"11111111".slice(t+1),r+=(A[e]&parseInt(i,2))<<6*--t;t;){if(128!=(128&A[e+1])||64==(64&A[e+1]))throw Error("Index "+(e+1)+': Next bytes of encoded char must begin with a "10" bit sequence.');r+=(63&A[++e])<<6*--t}return r}function i(A,e,t,i){var o,a=[];for(e|=0,t="number"==typeof t?t:A.byteLength||A.length;e<t;e++){if(e+(o=n(A[e]))>t){if(i)throw Error("Index "+e+": Found a "+o+" bytes encoded char declaration but only "+(t-e)+" bytes are available.")}else a.push(String.fromCodePoint(r(A,e,o)));e+=o-1}return a.join("")}function o(A){if(A<128)return 1;if(A<2048)return 2;if(A<65536)return 3;if(A<2097152)return 4;throw new Error("CharCode "+A+" cannot be encoded with UTF8.")}function a(A,e,t,n){if(A|=0,e=e||[],t|=0,1==(n=n||o(A)))e[t]=A;else for(e[t++]=(parseInt("1111".slice(0,n),2)<<8-n)+(A>>>6*--n);n>0;)e[t++]=A>>>6*--n&63|128;return e}e.exports={isNotUTF8:function(A,e,t){try{i(A,e,t,!0)}catch(o){return!0}return!1},getCharLength:n,getCharCode:r,getStringFromBytes:i,getBytesForCharCode:o,setBytesFromCharCode:a,setBytesFromString:function(A,e,t,n,r){A=A||"",e=e||[],t|=0,n="number"==typeof n?n:e.byteLength||1/0;for(var i=0,s=A.length;i<s;i++){var g=o(A[i].codePointAt(0));if(r&&t+g>n)throw new Error('Not enought bytes to encode the char "'+A[i]+'" at the offset "'+t+'".');a(A[i].codePointAt(0),e,t,g),t+=g}return e}}},{}],"8Nlt":[function(A,e,t){"use strict";var n=A("./MIDIFileHeader"),r=A("./MIDIFileTrack"),i=A("midievents"),o=A("utf-8");function a(A,e){var t,i,o,a;if(A){if(25>(A=function(A){if(A){if(A instanceof ArrayBuffer)return A;if(A instanceof Uint8Array)return new Uint8Array(A).buffer}throw new Error("Unsupported buffer type, need ArrayBuffer or Uint8Array")}(A)).byteLength)throw new Error("A buffer of a valid MIDI file must have, at least, a size of 25bytes.");for(this.header=new n(A,e),this.tracks=[],i=n.HEADER_LENGTH,o=0,a=this.header.getTracksCount();o<a;o++){if(e&&i>=A.byteLength-1)throw new Error("Couldn't find datas corresponding to the track #"+o+".");t=new r(A,i,e),this.tracks.push(t),i+=t.getTrackLength()+8}if(e&&i!==A.byteLength)throw new Error("It seems that the buffer contains too much datas.")}else this.header=new n,this.tracks=[new r]}a.prototype.getEvents=function(A,e){var t,n,r,o,a,s,g=0,I=[],u=this.header.getFormat(),f=this.header.getTickResolution();if(1!==u||1===this.tracks.length)for(r=0,o=this.tracks.length;r<o;r++)for(g=2===u&&g?g:0,n=(t=i.createParser(this.tracks[r].getTrackContent(),0,!1)).next();n;)g+=n.delta?n.delta*f/1e3:0,n.type===i.EVENT_META&&n.subtype===i.EVENT_META_SET_TEMPO&&(f=this.header.getTickResolution(n.tempo)),A&&n.type!==A||e&&(!n.subtype||n.subtype!==e)||(n.playTime=g,I.push(n)),n=t.next();else{for(a=[],s=-1,r=0,o=this.tracks.length;r<o;r++)a[r]={},a[r].parser=i.createParser(this.tracks[r].getTrackContent(),0,!1),a[r].curEvent=a[r].parser.next();do{for(s=-1,r=0,o=a.length;r<o;r++)a[r].curEvent&&(-1===s||a[r].curEvent.delta<a[s].curEvent.delta)&&(s=r);if(-1!==s){for(r=0,o=a.length;r<o;r++)r!==s&&a[r].curEvent&&(a[r].curEvent.delta-=a[s].curEvent.delta);g+=(n=a[s].curEvent).delta?n.delta*f/1e3:0,n.type===i.EVENT_META&&n.subtype===i.EVENT_META_SET_TEMPO&&(f=this.header.getTickResolution(n.tempo)),A&&n.type!==A||e&&(!n.subtype||n.subtype!==e)||(n.playTime=g,n.track=s,I.push(n)),a[s].curEvent=a[s].parser.next()}}while(-1!==s)}return I},a.prototype.getMidiEvents=function(){return this.getEvents(i.EVENT_MIDI)},a.prototype.getLyrics=function(){var A,e,t,n=this.getEvents(i.EVENT_META),r=[],a=[];for(e=0,t=n.length;e<t;e++)(A=n[e]).subtype===i.EVENT_META_LYRICS?a.push(A):A.subtype===i.EVENT_META_TEXT&&("@"===String.fromCharCode(A.data[0])?"T"===String.fromCharCode(A.data[1])||"I"===String.fromCharCode(A.data[1])||String.fromCharCode(A.data[1]):0===String.fromCharCode.apply(String,A.data).indexOf("words")?r.length=0:0!==A.playTime&&r.push(A));2<a.length?r=a:r.length||(r=[]);try{r.forEach(function(A){A.text=o.getStringFromBytes(A.data,0,A.length,!0)})}catch(s){r.forEach(function(A){A.text=A.data.map(function(A){return String.fromCharCode(A)}).join("")})}return r},a.prototype.getTrackEvents=function(A){var e,t,n=[];if(A>this.tracks.length||0>A)throw Error("Invalid track index ("+A+")");e=(t=i.createParser(this.tracks[A].getTrackContent(),0,!1)).next();do{n.push(e),e=t.next()}while(e);return n},a.prototype.setTrackEvents=function(A,e){var t,n;if(A>this.tracks.length||0>A)throw Error("Invalid track index ("+A+")");if(!e||!e.length)throw Error("A track must contain at least one event, none given.");t=i.getRequiredBufferLength(e),n=new Uint8Array(t),i.writeToTrack(e,n),this.tracks[A].setTrackContent(n)},a.prototype.deleteTrack=function(A){if(A>this.tracks.length||0>A)throw Error("Invalid track index ("+A+")");this.tracks.splice(A,1),this.header.setTracksCount(this.tracks.length)},a.prototype.addTrack=function(A){var e;if(A>this.tracks.length||0>A)throw Error("Invalid track index ("+A+")");e=new r,A===this.tracks.length?this.tracks.push(e):this.tracks.splice(A,0,e),this.header.setTracksCount(this.tracks.length)},a.prototype.getContent=function(){var A,e,t,r,i,o,a,s,g;for(A=n.HEADER_LENGTH,r=0,i=this.tracks.length;r<i;r++)A+=this.tracks[r].getTrackLength()+8;for(e=new Uint8Array(A),t=new Uint8Array(this.header.datas.buffer,this.header.datas.byteOffset,n.HEADER_LENGTH),r=0,i=n.HEADER_LENGTH;r<i;r++)e[r]=t[r];for(o=0,a=this.tracks.length;o<a;o++)for(t=new Uint8Array(this.tracks[o].datas.buffer,this.tracks[o].datas.byteOffset,this.tracks[o].datas.byteLength),s=0,g=this.tracks[o].datas.byteLength;s<g;s++)e[r++]=t[s];return e.buffer},a.Header=n,a.Track=r,e.exports=a},{"./MIDIFileHeader":"gVPx","./MIDIFileTrack":"jQRz",midievents:"+m+m","utf-8":"tJNq"}],n6dH:[function(A,e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Base64Binary=void 0;var n={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",decodeArrayBuffer:function(A){var e=Math.ceil(3*A.length/4),t=new ArrayBuffer(e);return this.decode(A,t),t},decode:function(A,e){var t,n,r,i,o,a,s,g=this._keyStr.indexOf(A.charAt(A.length-1)),I=this._keyStr.indexOf(A.charAt(A.length-1)),u=Math.ceil(3*A.length/4);64==g&&u--,64==I&&u--;var f=0,l=0;for(t=e?new Uint8Array(e):new Uint8Array(u),A=A.replace(/[^A-Za-z0-9\+\/\=]/g,""),f=0;f<u;f+=3)n=this._keyStr.indexOf(A.charAt(l++))<<2|(o=this._keyStr.indexOf(A.charAt(l++)))>>4,r=(15&o)<<4|(a=this._keyStr.indexOf(A.charAt(l++)))>>2,i=(3&a)<<6|(s=this._keyStr.indexOf(A.charAt(l++))),t[f]=n,64!=a&&(t[f+1]=r),64!=s&&(t[f+2]=i);return t}};t.Base64Binary=n},{}],Xnuv:[function(A,e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Constants=void 0,t.Constants={NOTES:[]};for(var n=[["C"],["C#","Db"],["D"],["D#","Eb"],["E"],["F"],["F#","Gb"],["G"],["G#","Ab"],["A"],["A#","Bb"],["B"]],r=0,i=function(A){n.forEach(function(e){e.forEach(function(e){return t.Constants.NOTES[r]=e+A}),r++})},o=-1;o<=9;o++)i(o)},{}],pBGv:[function(A,e,t){var n,r,i=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(A){if(n===setTimeout)return setTimeout(A,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(A,0);try{return n(A,0)}catch(i){try{return n.call(null,A,0)}catch(i){return n.call(this,A,0)}}}function g(A){if(r===clearTimeout)return clearTimeout(A);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(A);try{return r(A)}catch(i){try{return r.call(null,A)}catch(i){return r.call(this,A)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(i){n=o}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(i){r=a}}();var I,u=[],f=!1,l=-1;function B(){f&&I&&(f=!1,I.length?u=I.concat(u):l=-1,u.length&&E())}function E(){if(!f){var A=s(B);f=!0;for(var e=u.length;e;){for(I=u,u=[];++l<e;)I&&I[l].run();l=-1,e=u.length}I=null,f=!1,g(A)}}function c(A,e){this.fun=A,this.array=e}function d(){}i.nextTick=function(A){var e=new Array(arguments.length-1);if(arguments.length>1)for(var t=1;t<arguments.length;t++)e[t-1]=arguments[t];u.push(new c(A,e)),1!==u.length||f||s(E)},c.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.env={},i.argv=[],i.version="",i.versions={},i.on=d,i.addListener=d,i.once=d,i.off=d,i.removeListener=d,i.removeAllListeners=d,i.emit=d,i.prependListener=d,i.prependOnceListener=d,i.listeners=function(A){return[]},i.binding=function(A){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(A){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},{}],UUq2:[function(A,e,t){A("process");var n=A("process");function r(A,e){for(var t=0,n=A.length-1;n>=0;n--){var r=A[n];"."===r?A.splice(n,1):".."===r?(A.splice(n,1),t++):t&&(A.splice(n,1),t--)}if(e)for(;t--;t)A.unshift("..");return A}function i(A,e){if(A.filter)return A.filter(e);for(var t=[],n=0;n<A.length;n++)e(A[n],n,A)&&t.push(A[n]);return t}t.resolve=function(){for(var A="",e=!1,t=arguments.length-1;t>=-1&&!e;t--){var o=t>=0?arguments[t]:n.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(A=o+"/"+A,e="/"===o.charAt(0))}return(e?"/":"")+(A=r(i(A.split("/"),function(A){return!!A}),!e).join("/"))||"."},t.normalize=function(A){var e=t.isAbsolute(A),n="/"===o(A,-1);return(A=r(i(A.split("/"),function(A){return!!A}),!e).join("/"))||e||(A="."),A&&n&&(A+="/"),(e?"/":"")+A},t.isAbsolute=function(A){return"/"===A.charAt(0)},t.join=function(){var A=Array.prototype.slice.call(arguments,0);return t.normalize(i(A,function(A,e){if("string"!=typeof A)throw new TypeError("Arguments to path.join must be strings");return A}).join("/"))},t.relative=function(A,e){function n(A){for(var e=0;e<A.length&&""===A[e];e++);for(var t=A.length-1;t>=0&&""===A[t];t--);return e>t?[]:A.slice(e,t-e+1)}A=t.resolve(A).substr(1),e=t.resolve(e).substr(1);for(var r=n(A.split("/")),i=n(e.split("/")),o=Math.min(r.length,i.length),a=o,s=0;s<o;s++)if(r[s]!==i[s]){a=s;break}var g=[];for(s=a;s<r.length;s++)g.push("..");return(g=g.concat(i.slice(a))).join("/")},t.sep="/",t.delimiter=":",t.dirname=function(A){if("string"!=typeof A&&(A+=""),0===A.length)return".";for(var e=A.charCodeAt(0),t=47===e,n=-1,r=!0,i=A.length-1;i>=1;--i)if(47===(e=A.charCodeAt(i))){if(!r){n=i;break}}else r=!1;return-1===n?t?"/":".":t&&1===n?"/":A.slice(0,n)},t.basename=function(A,e){var t=function(A){"string"!=typeof A&&(A+="");var e,t=0,n=-1,r=!0;for(e=A.length-1;e>=0;--e)if(47===A.charCodeAt(e)){if(!r){t=e+1;break}}else-1===n&&(r=!1,n=e+1);return-1===n?"":A.slice(t,n)}(A);return e&&t.substr(-1*e.length)===e&&(t=t.substr(0,t.length-e.length)),t},t.extname=function(A){"string"!=typeof A&&(A+="");for(var e=-1,t=0,n=-1,r=!0,i=0,o=A.length-1;o>=0;--o){var a=A.charCodeAt(o);if(47!==a)-1===n&&(r=!1,n=o+1),46===a?-1===e?e=o:1!==i&&(i=1):-1!==e&&(i=-1);else if(!r){t=o+1;break}}return-1===e||-1===n||0===i||1===i&&e===n-1&&e===t+1?"":A.slice(e,n)};var o="b"==="ab".substr(-1)?function(A,e,t){return A.substr(e,t)}:function(A,e,t){return e<0&&(e=A.length+e),A.substr(e,t)}},{process:"pBGv"}],f88W:[function(A,e,t){},{}],"38Wu":[function(A,e,t){var n=A("buffer"),r=n.Buffer;function i(A,e){for(var t in A)e[t]=A[t]}function o(A,e,t){return r(A,e,t)}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=o),i(r,o),o.from=function(A,e,t){if("number"==typeof A)throw new TypeError("Argument must not be a number");return r(A,e,t)},o.alloc=function(A,e,t){if("number"!=typeof A)throw new TypeError("Argument must be a number");var n=r(A);return void 0!==e?"string"==typeof t?n.fill(e,t):n.fill(e):n.fill(0),n},o.allocUnsafe=function(A){if("number"!=typeof A)throw new TypeError("Argument must be a number");return r(A)},o.allocUnsafeSlow=function(A){if("number"!=typeof A)throw new TypeError("Argument must be a number");return n.SlowBuffer(A)}},{buffer:"dskh"}],"/XJN":[function(A,e,t){arguments[3],A("process");var n=arguments[3],r=A("process"),i=65536,o=4294967295;var a=A("safe-buffer").Buffer,s=n.crypto||n.msCrypto;s&&s.getRandomValues?e.exports=function(A,e){if(A>o)throw new RangeError("requested too many random bytes");var t=a.allocUnsafe(A);if(A>0)if(A>i)for(var n=0;n<A;n+=i)s.getRandomValues(t.slice(n,n+i));else s.getRandomValues(t);return"function"==typeof e?r.nextTick(function(){e(null,t)}):t}:e.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}},{"safe-buffer":"38Wu",process:"pBGv"}],"4Bm0":[function(A,e,t){"function"==typeof Object.create?e.exports=function(A,e){A.super_=e,A.prototype=Object.create(e.prototype,{constructor:{value:A,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(A,e){A.super_=e;var t=function(){};t.prototype=e.prototype,A.prototype=new t,A.prototype.constructor=A}},{}],wyv4:[function(A,e,t){var n=A("buffer"),r=n.Buffer;function i(A,e){for(var t in A)e[t]=A[t]}function o(A,e,t){return r(A,e,t)}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=o),o.prototype=Object.create(r.prototype),i(r,o),o.from=function(A,e,t){if("number"==typeof A)throw new TypeError("Argument must not be a number");return r(A,e,t)},o.alloc=function(A,e,t){if("number"!=typeof A)throw new TypeError("Argument must be a number");var n=r(A);return void 0!==e?"string"==typeof t?n.fill(e,t):n.fill(e):n.fill(0),n},o.allocUnsafe=function(A){if("number"!=typeof A)throw new TypeError("Argument must be a number");return r(A)},o.allocUnsafeSlow=function(A){if("number"!=typeof A)throw new TypeError("Argument must be a number");return n.SlowBuffer(A)}},{buffer:"dskh"}],FRpO:[function(A,e,t){"use strict";var n,r="object"==typeof Reflect?Reflect:null,i=r&&"function"==typeof r.apply?r.apply:function(A,e,t){return Function.prototype.apply.call(A,e,t)};n=r&&"function"==typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(A){return Object.getOwnPropertyNames(A).concat(Object.getOwnPropertySymbols(A))}:function(A){return Object.getOwnPropertyNames(A)};var o=Number.isNaN||function(A){return A!=A};function a(){a.init.call(this)}e.exports=a,e.exports.once=function(A,e){return new Promise(function(t,n){function r(t){A.removeListener(e,i),n(t)}function i(){"function"==typeof A.removeListener&&A.removeListener("error",r),t([].slice.call(arguments))}c(A,e,i,{once:!0}),"error"!==e&&function(A,e,t){"function"==typeof A.on&&c(A,"error",e,t)}(A,r,{once:!0})})},a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var s=10;function g(A){if("function"!=typeof A)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof A)}function I(A){return void 0===A._maxListeners?a.defaultMaxListeners:A._maxListeners}function u(A,e,t,n){var r,i,o;if(g(t),void 0===(i=A._events)?(i=A._events=Object.create(null),A._eventsCount=0):(void 0!==i.newListener&&(A.emit("newListener",e,t.listener?t.listener:t),i=A._events),o=i[e]),void 0===o)o=i[e]=t,++A._eventsCount;else if("function"==typeof o?o=i[e]=n?[t,o]:[o,t]:n?o.unshift(t):o.push(t),(r=I(A))>0&&o.length>r&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=A,a.type=e,a.count=o.length,function(A){console&&console.warn&&console.warn(A)}(a)}return A}function f(A,e,t){var n={fired:!1,wrapFn:void 0,target:A,type:e,listener:t},r=function(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}.bind(n);return r.listener=t,n.wrapFn=r,r}function l(A,e,t){var n=A._events;if(void 0===n)return[];var r=n[e];return void 0===r?[]:"function"==typeof r?t?[r.listener||r]:[r]:t?function(A){for(var e=new Array(A.length),t=0;t<e.length;++t)e[t]=A[t].listener||A[t];return e}(r):E(r,r.length)}function B(A){var e=this._events;if(void 0!==e){var t=e[A];if("function"==typeof t)return 1;if(void 0!==t)return t.length}return 0}function E(A,e){for(var t=new Array(e),n=0;n<e;++n)t[n]=A[n];return t}function c(A,e,t,n){if("function"==typeof A.on)n.once?A.once(e,t):A.on(e,t);else{if("function"!=typeof A.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof A);A.addEventListener(e,function r(i){n.once&&A.removeEventListener(e,r),t(i)})}}Object.defineProperty(a,"defaultMaxListeners",{enumerable:!0,get:function(){return s},set:function(A){if("number"!=typeof A||A<0||o(A))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+A+".");s=A}}),a.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},a.prototype.setMaxListeners=function(A){if("number"!=typeof A||A<0||o(A))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+A+".");return this._maxListeners=A,this},a.prototype.getMaxListeners=function(){return I(this)},a.prototype.emit=function(A){for(var e=[],t=1;t<arguments.length;t++)e.push(arguments[t]);var n="error"===A,r=this._events;if(void 0!==r)n=n&&void 0===r.error;else if(!n)return!1;if(n){var o;if(e.length>0&&(o=e[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var s=r[A];if(void 0===s)return!1;if("function"==typeof s)i(s,this,e);else{var g=s.length,I=E(s,g);for(t=0;t<g;++t)i(I[t],this,e)}return!0},a.prototype.addListener=function(A,e){return u(this,A,e,!1)},a.prototype.on=a.prototype.addListener,a.prototype.prependListener=function(A,e){return u(this,A,e,!0)},a.prototype.once=function(A,e){return g(e),this.on(A,f(this,A,e)),this},a.prototype.prependOnceListener=function(A,e){return g(e),this.prependListener(A,f(this,A,e)),this},a.prototype.removeListener=function(A,e){var t,n,r,i,o;if(g(e),void 0===(n=this._events))return this;if(void 0===(t=n[A]))return this;if(t===e||t.listener===e)0==--this._eventsCount?this._events=Object.create(null):(delete n[A],n.removeListener&&this.emit("removeListener",A,t.listener||e));else if("function"!=typeof t){for(r=-1,i=t.length-1;i>=0;i--)if(t[i]===e||t[i].listener===e){o=t[i].listener,r=i;break}if(r<0)return this;0===r?t.shift():function(A,e){for(;e+1<A.length;e++)A[e]=A[e+1];A.pop()}(t,r),1===t.length&&(n[A]=t[0]),void 0!==n.removeListener&&this.emit("removeListener",A,o||e)}return this},a.prototype.off=a.prototype.removeListener,a.prototype.removeAllListeners=function(A){var e,t,n;if(void 0===(t=this._events))return this;if(void 0===t.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==t[A]&&(0==--this._eventsCount?this._events=Object.create(null):delete t[A]),this;if(0===arguments.length){var r,i=Object.keys(t);for(n=0;n<i.length;++n)"removeListener"!==(r=i[n])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(e=t[A]))this.removeListener(A,e);else if(void 0!==e)for(n=e.length-1;n>=0;n--)this.removeListener(A,e[n]);return this},a.prototype.listeners=function(A){return l(this,A,!0)},a.prototype.rawListeners=function(A){return l(this,A,!1)},a.listenerCount=function(A,e){return"function"==typeof A.listenerCount?A.listenerCount(e):B.call(A,e)},a.prototype.listenerCount=B,a.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},{}],"8V4J":[function(A,e,t){e.exports=A("events").EventEmitter},{events:"FRpO"}],bUoY:[function(A,e,t){"use strict";function n(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(A);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(A,e).enumerable})),t.push.apply(t,n)}return t}function r(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?n(Object(t),!0).forEach(function(e){i(A,e,t[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):n(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))})}return A}function i(A,e,t){return e in A?Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):A[e]=t,A}function o(A,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(A,n.key,n)}}var a=A("buffer").Buffer,s=A("util").inspect,g=s&&s.custom||"inspect";function I(A,e,t){a.prototype.copy.call(A,e,t)}e.exports=function(){function A(){(function(A,e){if(!(A instanceof e))throw new TypeError("Cannot call a class as a function")})(this,A),this.head=null,this.tail=null,this.length=0}return function(A,e,t){e&&o(A.prototype,e),t&&o(A,t)}(A,[{key:"push",value:function(A){var e={data:A,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(A){var e={data:A,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var A=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,A}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(A){if(0===this.length)return"";for(var e=this.head,t=""+e.data;e=e.next;)t+=A+e.data;return t}},{key:"concat",value:function(A){if(0===this.length)return a.alloc(0);for(var e=a.allocUnsafe(A>>>0),t=this.head,n=0;t;)I(t.data,e,n),n+=t.data.length,t=t.next;return e}},{key:"consume",value:function(A,e){var t;return A<this.head.data.length?(t=this.head.data.slice(0,A),this.head.data=this.head.data.slice(A)):t=A===this.head.data.length?this.shift():e?this._getString(A):this._getBuffer(A),t}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(A){var e=this.head,t=1,n=e.data;for(A-=n.length;e=e.next;){var r=e.data,i=A>r.length?r.length:A;if(i===r.length?n+=r:n+=r.slice(0,A),0==(A-=i)){i===r.length?(++t,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=r.slice(i));break}++t}return this.length-=t,n}},{key:"_getBuffer",value:function(A){var e=a.allocUnsafe(A),t=this.head,n=1;for(t.data.copy(e),A-=t.data.length;t=t.next;){var r=t.data,i=A>r.length?r.length:A;if(r.copy(e,e.length-A,0,i),0==(A-=i)){i===r.length?(++n,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=r.slice(i));break}++n}return this.length-=n,e}},{key:g,value:function(A,e){return s(this,r({},e,{depth:0,customInspect:!1}))}}]),A}()},{buffer:"dskh",util:"f88W"}],DoEV:[function(A,e,t){A("process");var n=A("process");function r(A,e){o(A,e),i(A)}function i(A){A._writableState&&!A._writableState.emitClose||A._readableState&&!A._readableState.emitClose||A.emit("close")}function o(A,e){A.emit("error",e)}e.exports={destroy:function(A,e){var t=this,a=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return a||s?(e?e(A):A&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,n.nextTick(o,this,A)):n.nextTick(o,this,A)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(A||null,function(A){!e&&A?t._writableState?t._writableState.errorEmitted?n.nextTick(i,t):(t._writableState.errorEmitted=!0,n.nextTick(r,t,A)):n.nextTick(r,t,A):e?(n.nextTick(i,t),e(A)):n.nextTick(i,t)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(A,e){var t=A._readableState,n=A._writableState;t&&t.autoDestroy||n&&n.autoDestroy?A.destroy(e):A.emit("error",e)}}},{process:"pBGv"}],"6eV+":[function(A,e,t){"use strict";function n(A){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&"function"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A})(A)}var r={};function i(A,e,t){t||(t=Error);var n=function(A){function t(t,n,r){return A.call(this,function(A,t,n){return"string"==typeof e?e:e(A,t,r)}(t,n))||this}return function(A,e){A.prototype=Object.create(e.prototype),A.prototype.constructor=A,A.__proto__=e}(t,A),t}(t);n.prototype.name=t.name,n.prototype.code=A,r[A]=n}function o(A,e){if(Array.isArray(A)){var t=A.length;return A=A.map(function(A){return String(A)}),t>2?"one of ".concat(e," ").concat(A.slice(0,t-1).join(", "),", or ")+A[t-1]:2===t?"one of ".concat(e," ").concat(A[0]," or ").concat(A[1]):"of ".concat(e," ").concat(A[0])}return"of ".concat(e," ").concat(String(A))}i("ERR_INVALID_OPT_VALUE",function(A,e){return'The value "'+e+'" is invalid for option "'+A+'"'},TypeError),i("ERR_INVALID_ARG_TYPE",function(A,e,t){var r,i;if("string"==typeof e&&function(A,e,t){return A.substr(!t||t<0?0:+t,e.length)===e}(e,"not ")?(r="must not be",e=e.replace(/^not /,"")):r="must be",function(A,e,t){return(void 0===t||t>A.length)&&(t=A.length),A.substring(t-e.length,t)===e}(A," argument"))i="The ".concat(A," ").concat(r," ").concat(o(e,"type"));else{var a=function(A,e,t){return"number"!=typeof t&&(t=0),!(t+e.length>A.length)&&-1!==A.indexOf(e,t)}(A,".")?"property":"argument";i='The "'.concat(A,'" ').concat(a," ").concat(r," ").concat(o(e,"type"))}return i+". Received type ".concat(n(t))},TypeError),i("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),i("ERR_METHOD_NOT_IMPLEMENTED",function(A){return"The "+A+" method is not implemented"}),i("ERR_STREAM_PREMATURE_CLOSE","Premature close"),i("ERR_STREAM_DESTROYED",function(A){return"Cannot call "+A+" after a stream was destroyed"}),i("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),i("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),i("ERR_STREAM_WRITE_AFTER_END","write after end"),i("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),i("ERR_UNKNOWN_ENCODING",function(A){return"Unknown encoding: "+A},TypeError),i("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.codes=r},{}],nks4:[function(A,e,t){"use strict";var n=A("../../../errors").codes.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(A,e,t,r){var i=function(A,e,t){return null!=A.highWaterMark?A.highWaterMark:e?A[t]:null}(e,r,t);if(null!=i){if(!isFinite(i)||Math.floor(i)!==i||i<0)throw new n(r?t:"highWaterMark",i);return Math.floor(i)}return A.objectMode?16:16384}}},{"../../../errors":"6eV+"}],t8EM:[function(A,e,t){"function"==typeof Object.create?e.exports=function(A,e){e&&(A.super_=e,A.prototype=Object.create(e.prototype,{constructor:{value:A,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(A,e){if(e){A.super_=e;var t=function(){};t.prototype=e.prototype,A.prototype=new t,A.prototype.constructor=A}}},{}],yM1o:[function(A,e,t){arguments[3];var n=arguments[3];function r(A){try{if(!n.localStorage)return!1}catch(t){return!1}var e=n.localStorage[A];return null!=e&&"true"===String(e).toLowerCase()}e.exports=function(A,e){if(r("noDeprecation"))return A;var t=!1;return function(){if(!t){if(r("throwDeprecation"))throw new Error(e);r("traceDeprecation")?console.trace(e):console.warn(e),t=!0}return A.apply(this,arguments)}}},{}],"2zgA":[function(A,e,t){arguments[3],A("process");var n,r=arguments[3],i=A("process");function o(A){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(A,e,t){var n=A.entry;for(A.entry=null;n;){var r=n.callback;e.pendingcb--,r(t),n=n.next}e.corkedRequestsFree.next=A}(e,A)}}e.exports=_,_.WritableState=b;var a={deprecate:A("util-deprecate")},s=A("./internal/streams/stream"),g=A("buffer").Buffer,I=r.Uint8Array||function(){};var u,f=A("./internal/streams/destroy"),l=A("./internal/streams/state").getHighWaterMark,B=A("../errors").codes,E=B.ERR_INVALID_ARG_TYPE,c=B.ERR_METHOD_NOT_IMPLEMENTED,d=B.ERR_MULTIPLE_CALLBACK,C=B.ERR_STREAM_CANNOT_PIPE,h=B.ERR_STREAM_DESTROYED,Q=B.ERR_STREAM_NULL_VALUES,p=B.ERR_STREAM_WRITE_AFTER_END,m=B.ERR_UNKNOWN_ENCODING,y=f.errorOrDestroy;function w(){}function b(e,t,r){n=n||A("./_stream_duplex"),e=e||{},"boolean"!=typeof r&&(r=t instanceof n),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=l(this,e,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=!1===e.decodeStrings;this.decodeStrings=!i,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(A){M(t,A)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function _(e){var t=this instanceof(n=n||A("./_stream_duplex"));if(!t&&!u.call(_,this))return new _(e);this._writableState=new b(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),s.call(this)}function D(A,e){var t=new p;y(A,t),i.nextTick(e,t)}function v(A,e,t,n){var r;return null===t?r=new Q:"string"==typeof t||e.objectMode||(r=new E("chunk",["string","Buffer"],t)),!r||(y(A,r),i.nextTick(n,r),!1)}function R(A,e,t){return A.objectMode||!1===A.decodeStrings||"string"!=typeof e||(e=g.from(e,t)),e}function F(A,e,t,n,r,i,o){e.writelen=n,e.writecb=o,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new h("write")):t?A._writev(r,e.onwrite):A._write(r,i,e.onwrite),e.sync=!1}function M(A,e){var t=A._writableState,n=t.sync,r=t.writecb;if("function"!=typeof r)throw new d;if(function(A){A.writing=!1,A.writecb=null,A.length-=A.writelen,A.writelen=0}(t),e)!function(A,e,t,n,r){--e.pendingcb,t?(i.nextTick(r,n),i.nextTick(L,A,e),A._writableState.errorEmitted=!0,y(A,n)):(r(n),A._writableState.errorEmitted=!0,y(A,n),L(A,e))}(A,t,n,e,r);else{var o=G(t)||A.destroyed;o||t.corked||t.bufferProcessing||!t.bufferedRequest||k(A,t),n?i.nextTick(S,A,t,o,r):S(A,t,o,r)}}function S(A,e,t,n){t||function(A,e){0===e.length&&e.needDrain&&(e.needDrain=!1,A.emit("drain"))}(A,e),e.pendingcb--,n(),L(A,e)}function k(A,e){e.bufferProcessing=!0;var t=e.bufferedRequest;if(A._writev&&t&&t.next){var n=e.bufferedRequestCount,r=new Array(n),i=e.corkedRequestsFree;i.entry=t;for(var a=0,s=!0;t;)r[a]=t,t.isBuf||(s=!1),t=t.next,a+=1;r.allBuffers=s,F(A,e,!0,e.length,r,"",i.finish),e.pendingcb++,e.lastBufferedRequest=null,i.next?(e.corkedRequestsFree=i.next,i.next=null):e.corkedRequestsFree=new o(e),e.bufferedRequestCount=0}else{for(;t;){var g=t.chunk,I=t.encoding,u=t.callback;if(F(A,e,!1,e.objectMode?1:g.length,g,I,u),t=t.next,e.bufferedRequestCount--,e.writing)break}null===t&&(e.lastBufferedRequest=null)}e.bufferedRequest=t,e.bufferProcessing=!1}function G(A){return A.ending&&0===A.length&&null===A.bufferedRequest&&!A.finished&&!A.writing}function N(A,e){A._final(function(t){e.pendingcb--,t&&y(A,t),e.prefinished=!0,A.emit("prefinish"),L(A,e)})}function P(A,e){e.prefinished||e.finalCalled||("function"!=typeof A._final||e.destroyed?(e.prefinished=!0,A.emit("prefinish")):(e.pendingcb++,e.finalCalled=!0,i.nextTick(N,A,e)))}function L(A,e){var t=G(e);if(t&&(P(A,e),0===e.pendingcb&&(e.finished=!0,A.emit("finish"),e.autoDestroy))){var n=A._readableState;(!n||n.autoDestroy&&n.endEmitted)&&A.destroy()}return t}function U(A,e,t){e.ending=!0,L(A,e),t&&(e.finished?i.nextTick(t):A.once("finish",t)),e.ended=!0,A.writable=!1}A("inherits")(_,s),b.prototype.getBuffer=function(){for(var A=this.bufferedRequest,e=[];A;)e.push(A),A=A.next;return e},function(){try{Object.defineProperty(b.prototype,"buffer",{get:a.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(n){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(u=Function.prototype[Symbol.hasInstance],Object.defineProperty(_,Symbol.hasInstance,{value:function(A){return!!u.call(this,A)||this===_&&A&&A._writableState instanceof b}})):u=function(A){return A instanceof this},_.prototype.pipe=function(){y(this,new C)},_.prototype.write=function(A,e,t){var n=this._writableState,r=!1,i=!n.objectMode&&function(A){return g.isBuffer(A)||A instanceof I}(A);return i&&!g.isBuffer(A)&&(A=function(A){return g.from(A)}(A)),"function"==typeof e&&(t=e,e=null),i?e="buffer":e||(e=n.defaultEncoding),"function"!=typeof t&&(t=w),n.ending?D(this,t):(i||v(this,n,A,t))&&(n.pendingcb++,r=function(A,e,t,n,r,i){if(!t){var o=R(e,n,r);n!==o&&(t=!0,r="buffer",n=o)}var a=e.objectMode?1:n.length;e.length+=a;var s=e.length<e.highWaterMark;if(s||(e.needDrain=!0),e.writing||e.corked){var g=e.lastBufferedRequest;e.lastBufferedRequest={chunk:n,encoding:r,isBuf:t,callback:i,next:null},g?g.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else F(A,e,!1,a,n,r,i);return s}(this,n,i,A,e,t)),r},_.prototype.cork=function(){this._writableState.corked++},_.prototype.uncork=function(){var A=this._writableState;A.corked&&(A.corked--,A.writing||A.corked||A.bufferProcessing||!A.bufferedRequest||k(this,A))},_.prototype.setDefaultEncoding=function(A){if("string"==typeof A&&(A=A.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((A+"").toLowerCase())>-1))throw new m(A);return this._writableState.defaultEncoding=A,this},Object.defineProperty(_.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(_.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),_.prototype._write=function(A,e,t){t(new c("_write()"))},_.prototype._writev=null,_.prototype.end=function(A,e,t){var n=this._writableState;return"function"==typeof A?(t=A,A=null,e=null):"function"==typeof e&&(t=e,e=null),null!=A&&this.write(A,e),n.corked&&(n.corked=1,this.uncork()),n.ending||U(this,n,t),this},Object.defineProperty(_.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(_.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(A){this._writableState&&(this._writableState.destroyed=A)}}),_.prototype.destroy=f.destroy,_.prototype._undestroy=f.undestroy,_.prototype._destroy=function(A,e){e(A)}},{"util-deprecate":"yM1o","./internal/streams/stream":"8V4J",buffer:"dskh","./internal/streams/destroy":"DoEV","./internal/streams/state":"nks4","../errors":"6eV+",inherits:"t8EM","./_stream_duplex":"DaSy",process:"pBGv"}],DaSy:[function(A,e,t){A("process");var n=A("process"),r=Object.keys||function(A){var e=[];for(var t in A)e.push(t);return e};e.exports=I;var i=A("./_stream_readable"),o=A("./_stream_writable");A("inherits")(I,i);for(var a=r(o.prototype),s=0;s<a.length;s++){var g=a[s];I.prototype[g]||(I.prototype[g]=o.prototype[g])}function I(A){if(!(this instanceof I))return new I(A);i.call(this,A),o.call(this,A),this.allowHalfOpen=!0,A&&(!1===A.readable&&(this.readable=!1),!1===A.writable&&(this.writable=!1),!1===A.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",u)))}function u(){this._writableState.ended||n.nextTick(f,this)}function f(A){A.end()}Object.defineProperty(I.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(I.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(I.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(I.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&this._readableState.destroyed&&this._writableState.destroyed},set:function(A){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=A,this._writableState.destroyed=A)}})},{"./_stream_readable":"Kc+k","./_stream_writable":"2zgA",inherits:"t8EM",process:"pBGv"}],z0rv:[function(A,e,t){"use strict";var n=A("safe-buffer").Buffer,r=n.isEncoding||function(A){switch((A=""+A)&&A.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(A){var e=function(A){if(!A)return"utf8";for(var e;;)switch(A){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return A;default:if(e)return;A=(""+A).toLowerCase(),e=!0}}(A);if("string"!=typeof e&&(n.isEncoding===r||!r(A)))throw new Error("Unknown encoding: "+A);return e||A}function o(A){var e;switch(this.encoding=i(A),this.encoding){case"utf16le":this.text=g,this.end=I,e=4;break;case"utf8":this.fillLast=s,e=4;break;case"base64":this.text=u,this.end=f,e=3;break;default:return this.write=l,void(this.end=B)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(e)}function a(A){return A<=127?0:A>>5==6?2:A>>4==14?3:A>>3==30?4:A>>6==2?-1:-2}function s(A){var e=this.lastTotal-this.lastNeed,t=function(A,e,t){if(128!=(192&e[0]))return A.lastNeed=0,"�";if(A.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return A.lastNeed=1,"�";if(A.lastNeed>2&&e.length>2&&128!=(192&e[2]))return A.lastNeed=2,"�"}}(this,A);return void 0!==t?t:this.lastNeed<=A.length?(A.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(A.copy(this.lastChar,e,0,A.length),void(this.lastNeed-=A.length))}function g(A,e){if((A.length-e)%2==0){var t=A.toString("utf16le",e);if(t){var n=t.charCodeAt(t.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=A[A.length-2],this.lastChar[1]=A[A.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=A[A.length-1],A.toString("utf16le",e,A.length-1)}function I(A){var e=A&&A.length?this.write(A):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function u(A,e){var t=(A.length-e)%3;return 0===t?A.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,1===t?this.lastChar[0]=A[A.length-1]:(this.lastChar[0]=A[A.length-2],this.lastChar[1]=A[A.length-1]),A.toString("base64",e,A.length-t))}function f(A){var e=A&&A.length?this.write(A):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function l(A){return A.toString(this.encoding)}function B(A){return A&&A.length?this.write(A):""}t.StringDecoder=o,o.prototype.write=function(A){if(0===A.length)return"";var e,t;if(this.lastNeed){if(void 0===(e=this.fillLast(A)))return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t<A.length?e?e+this.text(A,t):this.text(A,t):e||""},o.prototype.end=function(A){var e=A&&A.length?this.write(A):"";return this.lastNeed?e+"�":e},o.prototype.text=function(A,e){var t=function(A,e,t){var n=e.length-1;if(n<t)return 0;var r=a(e[n]);return r>=0?(r>0&&(A.lastNeed=r-1),r):--n<t||-2===r?0:(r=a(e[n]))>=0?(r>0&&(A.lastNeed=r-2),r):--n<t||-2===r?0:(r=a(e[n]))>=0?(r>0&&(2===r?r=0:A.lastNeed=r-3),r):0}(this,A,e);if(!this.lastNeed)return A.toString("utf8",e);this.lastTotal=t;var n=A.length-(t-this.lastNeed);return A.copy(this.lastChar,0,n),A.toString("utf8",e,n)},o.prototype.fillLast=function(A){if(this.lastNeed<=A.length)return A.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);A.copy(this.lastChar,this.lastTotal-this.lastNeed,0,A.length),this.lastNeed-=A.length}},{"safe-buffer":"wyv4"}],P4rJ:[function(A,e,t){"use strict";var n=A("../../../errors").codes.ERR_STREAM_PREMATURE_CLOSE;function r(){}e.exports=function A(e,t,i){if("function"==typeof t)return A(e,null,t);t||(t={}),i=function(A){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];A.apply(this,n)}}}(i||r);var o=t.readable||!1!==t.readable&&e.readable,a=t.writable||!1!==t.writable&&e.writable,s=function(){e.writable||I()},g=e._writableState&&e._writableState.finished,I=function(){a=!1,g=!0,o||i.call(e)},u=e._readableState&&e._readableState.endEmitted,f=function(){o=!1,u=!0,a||i.call(e)},l=function(A){i.call(e,A)},B=function(){var A;return o&&!u?(e._readableState&&e._readableState.ended||(A=new n),i.call(e,A)):a&&!g?(e._writableState&&e._writableState.ended||(A=new n),i.call(e,A)):void 0},E=function(){e.req.on("finish",I)};return function(A){return A.setHeader&&"function"==typeof A.abort}(e)?(e.on("complete",I),e.on("abort",B),e.req?E():e.on("request",E)):a&&!e._writableState&&(e.on("end",s),e.on("close",s)),e.on("end",f),e.on("finish",I),!1!==t.error&&e.on("error",l),e.on("close",B),function(){e.removeListener("complete",I),e.removeListener("abort",B),e.removeListener("request",E),e.req&&e.req.removeListener("finish",I),e.removeListener("end",s),e.removeListener("close",s),e.removeListener("finish",I),e.removeListener("end",f),e.removeListener("error",l),e.removeListener("close",B)}}},{"../../../errors":"6eV+"}],"2WOa":[function(A,e,t){A("process");var n,r=A("process");function i(A,e,t){return e in A?Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):A[e]=t,A}var o=A("./end-of-stream"),a=Symbol("lastResolve"),s=Symbol("lastReject"),g=Symbol("error"),I=Symbol("ended"),u=Symbol("lastPromise"),f=Symbol("handlePromise"),l=Symbol("stream");function B(A,e){return{value:A,done:e}}function E(A){var e=A[a];if(null!==e){var t=A[l].read();null!==t&&(A[u]=null,A[a]=null,A[s]=null,e(B(t,!1)))}}function c(A){r.nextTick(E,A)}var d=Object.getPrototypeOf(function(){}),C=Object.setPrototypeOf((i(n={get stream(){return this[l]},next:function(){var A=this,e=this[g];if(null!==e)return Promise.reject(e);if(this[I])return Promise.resolve(B(void 0,!0));if(this[l].destroyed)return new Promise(function(e,t){r.nextTick(function(){A[g]?t(A[g]):e(B(void 0,!0))})});var t,n=this[u];if(n)t=new Promise(function(A,e){return function(t,n){A.then(function(){e[I]?t(B(void 0,!0)):e[f](t,n)},n)}}(n,this));else{var i=this[l].read();if(null!==i)return Promise.resolve(B(i,!1));t=new Promise(this[f])}return this[u]=t,t}},Symbol.asyncIterator,function(){return this}),i(n,"return",function(){var A=this;return new Promise(function(e,t){A[l].destroy(null,function(A){A?t(A):e(B(void 0,!0))})})}),n),d);e.exports=function(A){var e,t=Object.create(C,(i(e={},l,{value:A,writable:!0}),i(e,a,{value:null,writable:!0}),i(e,s,{value:null,writable:!0}),i(e,g,{value:null,writable:!0}),i(e,I,{value:A._readableState.endEmitted,writable:!0}),i(e,f,{value:function(A,e){var n=t[l].read();n?(t[u]=null,t[a]=null,t[s]=null,A(B(n,!1))):(t[a]=A,t[s]=e)},writable:!0}),e));return t[u]=null,o(A,function(A){if(A&&"ERR_STREAM_PREMATURE_CLOSE"!==A.code){var e=t[s];return null!==e&&(t[u]=null,t[a]=null,t[s]=null,e(A)),void(t[g]=A)}var n=t[a];null!==n&&(t[u]=null,t[a]=null,t[s]=null,n(B(void 0,!0))),t[I]=!0}),A.on("readable",c.bind(null,t)),t}},{"./end-of-stream":"P4rJ",process:"pBGv"}],pIwT:[function(A,e,t){e.exports=function(){throw new Error("Readable.from is not available in the browser")}},{}],"Kc+k":[function(A,e,t){arguments[3],A("process");var n,r=arguments[3],i=A("process");e.exports=_,_.ReadableState=b;A("events").EventEmitter;var o=function(A,e){return A.listeners(e).length},a=A("./internal/streams/stream"),s=A("buffer").Buffer,g=r.Uint8Array||function(){};var I,u=A("util");I=u&&u.debuglog?u.debuglog("stream"):function(){};var f,l,B,E=A("./internal/streams/buffer_list"),c=A("./internal/streams/destroy"),d=A("./internal/streams/state").getHighWaterMark,C=A("../errors").codes,h=C.ERR_INVALID_ARG_TYPE,Q=C.ERR_STREAM_PUSH_AFTER_EOF,p=C.ERR_METHOD_NOT_IMPLEMENTED,m=C.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;A("inherits")(_,a);var y=c.errorOrDestroy,w=["error","close","destroy","pause","resume"];function b(e,t,r){n=n||A("./_stream_duplex"),e=e||{},"boolean"!=typeof r&&(r=t instanceof n),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=d(this,e,"readableHighWaterMark",r),this.buffer=new E,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(f||(f=A("string_decoder/").StringDecoder),this.decoder=new f(e.encoding),this.encoding=e.encoding)}function _(e){if(n=n||A("./_stream_duplex"),!(this instanceof _))return new _(e);var t=this instanceof n;this._readableState=new b(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),a.call(this)}function D(A,e,t,n,r){I("readableAddChunk",e);var i,o=A._readableState;if(null===e)o.reading=!1,function(A,e){if(I("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?M(A):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,S(A)))}}(A,o);else if(r||(i=function(A,e){var t;return function(A){return s.isBuffer(A)||A instanceof o}(e)||"string"==typeof e||void 0===e||A.objectMode||(t=new h("chunk",["string","Buffer","Uint8Array"],e)),t}(o,e)),i)y(A,i);else if(o.objectMode||e&&e.length>0)if("string"==typeof e||o.objectMode||Object.getPrototypeOf(e)===s.prototype||(e=function(A){return s.from(A)}(e)),n)o.endEmitted?y(A,new m):v(A,o,e,!0);else if(o.ended)y(A,new Q);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!t?(e=o.decoder.write(e),o.objectMode||0!==e.length?v(A,o,e,!1):k(A,o)):v(A,o,e,!1)}else n||(o.reading=!1,k(A,o));return!o.ended&&(o.length<o.highWaterMark||0===o.length)}function v(A,e,t,n){e.flowing&&0===e.length&&!e.sync?(e.awaitDrain=0,A.emit("data",t)):(e.length+=e.objectMode?1:t.length,n?e.buffer.unshift(t):e.buffer.push(t),e.needReadable&&M(A)),k(A,e)}Object.defineProperty(_.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(A){this._readableState&&(this._readableState.destroyed=A)}}),_.prototype.destroy=c.destroy,_.prototype._undestroy=c.undestroy,_.prototype._destroy=function(A,e){e(A)},_.prototype.push=function(A,e){var t,n=this._readableState;return n.objectMode?t=!0:"string"==typeof A&&((e=e||n.defaultEncoding)!==n.encoding&&(A=s.from(A,e),e=""),t=!0),D(this,A,e,!1,t)},_.prototype.unshift=function(A){return D(this,A,null,!0,!1)},_.prototype.isPaused=function(){return!1===this._readableState.flowing},_.prototype.setEncoding=function(e){f||(f=A("string_decoder/").StringDecoder);var t=new f(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;for(var n=this._readableState.buffer.head,r="";null!==n;)r+=t.write(n.data),n=n.next;return this._readableState.buffer.clear(),""!==r&&this._readableState.buffer.push(r),this._readableState.length=r.length,this};var R=1073741824;function F(A,e){return A<=0||0===e.length&&e.ended?0:e.objectMode?1:A!=A?e.flowing&&e.length?e.buffer.head.data.length:e.length:(A>e.highWaterMark&&(e.highWaterMark=function(A){return A>=R?A=R:(A--,A|=A>>>1,A|=A>>>2,A|=A>>>4,A|=A>>>8,A|=A>>>16,A++),A}(A)),A<=e.length?A:e.ended?e.length:(e.needReadable=!0,0))}function M(A){var e=A._readableState;I("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(I("emitReadable",e.flowing),e.emittedReadable=!0,i.nextTick(S,A))}function S(A){var e=A._readableState;I("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(A.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,U(A)}function k(A,e){e.readingMore||(e.readingMore=!0,i.nextTick(G,A,e))}function G(A,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&0===e.length);){var t=e.length;if(I("maybeReadMore read 0"),A.read(0),t===e.length)break}e.readingMore=!1}function N(A){var e=A._readableState;e.readableListening=A.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:A.listenerCount("data")>0&&A.resume()}function P(A){I("readable nexttick read 0"),A.read(0)}function L(A,e){I("resume",e.reading),e.reading||A.read(0),e.resumeScheduled=!1,A.emit("resume"),U(A),e.flowing&&!e.reading&&A.read(0)}function U(A){var e=A._readableState;for(I("flow",e.flowing);e.flowing&&null!==A.read(););}function Y(A,e){return 0===e.length?null:(e.objectMode?t=e.buffer.shift():!A||A>=e.length?(t=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(A,e.decoder),t);var t}function x(A){var e=A._readableState;I("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,i.nextTick(Z,e,A))}function Z(A,e){if(I("endReadableNT",A.endEmitted,A.length),!A.endEmitted&&0===A.length&&(A.endEmitted=!0,e.readable=!1,e.emit("end"),A.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}function H(A,e){for(var t=0,n=A.length;t<n;t++)if(A[t]===e)return t;return-1}_.prototype.read=function(A){I("read",A),A=parseInt(A,10);var e=this._readableState,t=A;if(0!==A&&(e.emittedReadable=!1),0===A&&e.needReadable&&((0!==e.highWaterMark?e.length>=e.highWaterMark:e.length>0)||e.ended))return I("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?x(this):M(this),null;if(0===(A=F(A,e))&&e.ended)return 0===e.length&&x(this),null;var n,r=e.needReadable;return I("need readable",r),(0===e.length||e.length-A<e.highWaterMark)&&I("length less than watermark",r=!0),e.ended||e.reading?I("reading or ended",r=!1):r&&(I("do read"),e.reading=!0,e.sync=!0,0===e.length&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(A=F(t,e))),null===(n=A>0?Y(A,e):null)?(e.needReadable=e.length<=e.highWaterMark,A=0):(e.length-=A,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),t!==A&&e.ended&&x(this)),null!==n&&this.emit("data",n),n},_.prototype._read=function(A){y(this,new p("_read()"))},_.prototype.pipe=function(A,e){var t=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=A;break;case 1:n.pipes=[n.pipes,A];break;default:n.pipes.push(A)}n.pipesCount+=1,I("pipe count=%d opts=%j",n.pipesCount,e);var r=e&&!1===e.end||A===i.stdout||A===i.stderr?E:a;function a(){I("onend"),A.end()}n.endEmitted?i.nextTick(r):t.once("end",r),A.on("unpipe",function e(r,i){I("onunpipe"),r===t&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,I("cleanup"),A.removeListener("close",l),A.removeListener("finish",B),A.removeListener("drain",s),A.removeListener("error",f),A.removeListener("unpipe",e),t.removeListener("end",a),t.removeListener("end",E),t.removeListener("data",u),g=!0,!n.awaitDrain||A._writableState&&!A._writableState.needDrain||s())});var s=function(A){return function(){var e=A._readableState;I("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&o(A,"data")&&(e.flowing=!0,U(A))}}(t);A.on("drain",s);var g=!1;function u(e){I("ondata");var r=A.write(e);I("dest.write",r),!1===r&&((1===n.pipesCount&&n.pipes===A||n.pipesCount>1&&-1!==H(n.pipes,A))&&!g&&(I("false write response, pause",n.awaitDrain),n.awaitDrain++),t.pause())}function f(e){I("onerror",e),E(),A.removeListener("error",f),0===o(A,"error")&&y(A,e)}function l(){A.removeListener("finish",B),E()}function B(){I("onfinish"),A.removeListener("close",l),E()}function E(){I("unpipe"),t.unpipe(A)}return t.on("data",u),function(A,e,t){if("function"==typeof A.prependListener)return A.prependListener(e,t);A._events&&A._events[e]?Array.isArray(A._events[e])?A._events[e].unshift(t):A._events[e]=[t,A._events[e]]:A.on(e,t)}(A,"error",f),A.once("close",l),A.once("finish",B),A.emit("pipe",t),n.flowing||(I("pipe resume"),t.resume()),A},_.prototype.unpipe=function(A){var e=this._readableState,t={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return A&&A!==e.pipes?this:(A||(A=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,A&&A.emit("unpipe",this,t),this);if(!A){var n=e.pipes,r=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var i=0;i<r;i++)n[i].emit("unpipe",this,{hasUnpiped:!1});return this}var o=H(e.pipes,A);return-1===o?this:(e.pipes.splice(o,1),e.pipesCount-=1,1===e.pipesCount&&(e.pipes=e.pipes[0]),A.emit("unpipe",this,t),this)},_.prototype.on=function(A,e){var t=a.prototype.on.call(this,A,e),n=this._readableState;return"data"===A?(n.readableListening=this.listenerCount("readable")>0,!1!==n.flowing&&this.resume()):"readable"===A&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,I("on readable",n.length,n.reading),n.length?M(this):n.reading||i.nextTick(P,this))),t},_.prototype.addListener=_.prototype.on,_.prototype.removeListener=function(A,e){var t=a.prototype.removeListener.call(this,A,e);return"readable"===A&&i.nextTick(N,this),t},_.prototype.removeAllListeners=function(A){var e=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==A&&void 0!==A||i.nextTick(N,this),e},_.prototype.resume=function(){var A=this._readableState;return A.flowing||(I("resume"),A.flowing=!A.readableListening,function(A,e){e.resumeScheduled||(e.resumeScheduled=!0,i.nextTick(L,A,e))}(this,A)),A.paused=!1,this},_.prototype.pause=function(){return I("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(I("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},_.prototype.wrap=function(A){var e=this,t=this._readableState,n=!1;for(var r in A.on("end",function(){if(I("wrapped end"),t.decoder&&!t.ended){var A=t.decoder.end();A&&A.length&&e.push(A)}e.push(null)}),A.on("data",function(r){I("wrapped data"),t.decoder&&(r=t.decoder.write(r)),t.objectMode&&null==r||(t.objectMode||r&&r.length)&&(e.push(r)||(n=!0,A.pause()))}),A)void 0===this[r]&&"function"==typeof A[r]&&(this[r]=function(e){return function(){return A[e].apply(A,arguments)}}(r));for(var i=0;i<w.length;i++)A.on(w[i],this.emit.bind(this,w[i]));return this._read=function(e){I("wrapped _read",e),n&&(n=!1,A.resume())},this},"function"==typeof Symbol&&(_.prototype[Symbol.asyncIterator]=function(){return void 0===l&&(l=A("./internal/streams/async_iterator")),l(this)}),Object.defineProperty(_.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(_.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(_.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(A){this._readableState&&(this._readableState.flowing=A)}}),_._fromList=Y,Object.defineProperty(_.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),"function"==typeof Symbol&&(_.from=function(e,t){return void 0===B&&(B=A("./internal/streams/from")),B(_,e,t)})},{events:"FRpO","./internal/streams/stream":"8V4J",buffer:"dskh",util:"f88W","./internal/streams/buffer_list":"bUoY","./internal/streams/destroy":"DoEV","./internal/streams/state":"nks4","../errors":"6eV+",inherits:"t8EM","./_stream_duplex":"DaSy","string_decoder/":"z0rv","./internal/streams/async_iterator":"2WOa","./internal/streams/from":"pIwT",process:"pBGv"}],pm66:[function(A,e,t){"use strict";e.exports=I;var n=A("../errors").codes,r=n.ERR_METHOD_NOT_IMPLEMENTED,i=n.ERR_MULTIPLE_CALLBACK,o=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,a=n.ERR_TRANSFORM_WITH_LENGTH_0,s=A("./_stream_duplex");function g(A,e){var t=this._transformState;t.transforming=!1;var n=t.writecb;if(null===n)return this.emit("error",new i);t.writechunk=null,t.writecb=null,null!=e&&this.push(e),n(A);var r=this._readableState;r.reading=!1,(r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}function I(A){if(!(this instanceof I))return new I(A);s.call(this,A),this._transformState={afterTransform:g.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,A&&("function"==typeof A.transform&&(this._transform=A.transform),"function"==typeof A.flush&&(this._flush=A.flush)),this.on("prefinish",u)}function u(){var A=this;"function"!=typeof this._flush||this._readableState.destroyed?f(this,null,null):this._flush(function(e,t){f(A,e,t)})}function f(A,e,t){if(e)return A.emit("error",e);if(null!=t&&A.push(t),A._writableState.length)throw new a;if(A._transformState.transforming)throw new o;return A.push(null)}A("inherits")(I,s),I.prototype.push=function(A,e){return this._transformState.needTransform=!1,s.prototype.push.call(this,A,e)},I.prototype._transform=function(A,e,t){t(new r("_transform()"))},I.prototype._write=function(A,e,t){var n=this._transformState;if(n.writecb=t,n.writechunk=A,n.writeencoding=e,!n.transforming){var r=this._readableState;(n.needTransform||r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}},I.prototype._read=function(A){var e=this._transformState;null===e.writechunk||e.transforming?e.needTransform=!0:(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform))},I.prototype._destroy=function(A,e){s.prototype._destroy.call(this,A,function(A){e(A)})}},{"../errors":"6eV+","./_stream_duplex":"DaSy",inherits:"t8EM"}],"/0+4":[function(A,e,t){"use strict";e.exports=r;var n=A("./_stream_transform");function r(A){if(!(this instanceof r))return new r(A);n.call(this,A)}A("inherits")(r,n),r.prototype._transform=function(A,e,t){t(null,A)}},{"./_stream_transform":"pm66",inherits:"t8EM"}],"8Qv1":[function(A,e,t){"use strict";var n;var r=A("../../../errors").codes,i=r.ERR_MISSING_ARGS,o=r.ERR_STREAM_DESTROYED;function a(A){if(A)throw A}function s(e,t,r,i){i=function(A){var e=!1;return function(){e||(e=!0,A.apply(void 0,arguments))}}(i);var a=!1;e.on("close",function(){a=!0}),void 0===n&&(n=A("./end-of-stream")),n(e,{readable:t,writable:r},function(A){if(A)return i(A);a=!0,i()});var s=!1;return function(A){if(!a&&!s)return s=!0,function(A){return A.setHeader&&"function"==typeof A.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void i(A||new o("pipe"))}}function g(A){A()}function I(A,e){return A.pipe(e)}function u(A){return A.length?"function"!=typeof A[A.length-1]?a:A.pop():a}e.exports=function(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];var n,r=u(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new i("streams");var o=e.map(function(A,t){var i=t<e.length-1;return s(A,i,t>0,function(A){n||(n=A),A&&o.forEach(g),i||(o.forEach(g),r(n))})});return e.reduce(I)}},{"../../../errors":"6eV+","./end-of-stream":"P4rJ"}],FEG8:[function(A,e,t){(t=e.exports=A("./lib/_stream_readable.js")).Stream=t,t.Readable=t,t.Writable=A("./lib/_stream_writable.js"),t.Duplex=A("./lib/_stream_duplex.js"),t.Transform=A("./lib/_stream_transform.js"),t.PassThrough=A("./lib/_stream_passthrough.js"),t.finished=A("./lib/internal/streams/end-of-stream.js"),t.pipeline=A("./lib/internal/streams/pipeline.js")},{"./lib/_stream_readable.js":"Kc+k","./lib/_stream_writable.js":"2zgA","./lib/_stream_duplex.js":"DaSy","./lib/_stream_transform.js":"pm66","./lib/_stream_passthrough.js":"/0+4","./lib/internal/streams/end-of-stream.js":"P4rJ","./lib/internal/streams/pipeline.js":"8Qv1"}],"7UcQ":[function(A,e,t){"use strict";var n=A("safe-buffer").Buffer,r=A("readable-stream").Transform;function i(A){r.call(this),this._block=n.allocUnsafe(A),this._blockSize=A,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}A("inherits")(i,r),i.prototype._transform=function(A,e,t){var n=null;try{this.update(A,e)}catch(i){n=i}t(n)},i.prototype._flush=function(A){var e=null;try{this.push(this.digest())}catch(t){e=t}A(e)},i.prototype.update=function(A,e){if(function(A,e){if(!n.isBuffer(A)&&"string"!=typeof A)throw new TypeError(e+" must be a string or a buffer")}(A,"Data"),this._finalized)throw new Error("Digest already called");n.isBuffer(A)||(A=n.from(A,e));for(var t=this._block,r=0;this._blockOffset+A.length-r>=this._blockSize;){for(var i=this._blockOffset;i<this._blockSize;)t[i++]=A[r++];this._update(),this._blockOffset=0}for(;r<A.length;)t[this._blockOffset++]=A[r++];for(var o=0,a=8*A.length;a>0;++o)this._length[o]+=a,(a=this._length[o]/4294967296|0)>0&&(this._length[o]-=4294967296*a);return this},i.prototype._update=function(){throw new Error("_update is not implemented")},i.prototype.digest=function(A){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();void 0!==A&&(e=e.toString(A)),this._block.fill(0),this._blockOffset=0;for(var t=0;t<4;++t)this._length[t]=0;return e},i.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=i},{"safe-buffer":"wyv4","readable-stream":"FEG8",inherits:"t8EM"}],OP64:[function(A,e,t){"use strict";var n=A("inherits"),r=A("hash-base"),i=A("safe-buffer").Buffer,o=new Array(16);function a(){r.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function s(A,e){return A<<e|A>>>32-e}function g(A,e,t,n,r,i,o){return s(A+(e&t|~e&n)+r+i|0,o)+e|0}function I(A,e,t,n,r,i,o){return s(A+(e&n|t&~n)+r+i|0,o)+e|0}function u(A,e,t,n,r,i,o){return s(A+(e^t^n)+r+i|0,o)+e|0}function f(A,e,t,n,r,i,o){return s(A+(t^(e|~n))+r+i|0,o)+e|0}n(a,r),a.prototype._update=function(){for(var A=o,e=0;e<16;++e)A[e]=this._block.readInt32LE(4*e);var t=this._a,n=this._b,r=this._c,i=this._d;t=g(t,n,r,i,A[0],3614090360,7),i=g(i,t,n,r,A[1],3905402710,12),r=g(r,i,t,n,A[2],606105819,17),n=g(n,r,i,t,A[3],3250441966,22),t=g(t,n,r,i,A[4],4118548399,7),i=g(i,t,n,r,A[5],1200080426,12),r=g(r,i,t,n,A[6],2821735955,17),n=g(n,r,i,t,A[7],4249261313,22),t=g(t,n,r,i,A[8],1770035416,7),i=g(i,t,n,r,A[9],2336552879,12),r=g(r,i,t,n,A[10],4294925233,17),n=g(n,r,i,t,A[11],2304563134,22),t=g(t,n,r,i,A[12],1804603682,7),i=g(i,t,n,r,A[13],4254626195,12),r=g(r,i,t,n,A[14],2792965006,17),t=I(t,n=g(n,r,i,t,A[15],1236535329,22),r,i,A[1],4129170786,5),i=I(i,t,n,r,A[6],3225465664,9),r=I(r,i,t,n,A[11],643717713,14),n=I(n,r,i,t,A[0],3921069994,20),t=I(t,n,r,i,A[5],3593408605,5),i=I(i,t,n,r,A[10],38016083,9),r=I(r,i,t,n,A[15],3634488961,14),n=I(n,r,i,t,A[4],3889429448,20),t=I(t,n,r,i,A[9],568446438,5),i=I(i,t,n,r,A[14],3275163606,9),r=I(r,i,t,n,A[3],4107603335,14),n=I(n,r,i,t,A[8],1163531501,20),t=I(t,n,r,i,A[13],2850285829,5),i=I(i,t,n,r,A[2],4243563512,9),r=I(r,i,t,n,A[7],1735328473,14),t=u(t,n=I(n,r,i,t,A[12],2368359562,20),r,i,A[5],4294588738,4),i=u(i,t,n,r,A[8],2272392833,11),r=u(r,i,t,n,A[11],1839030562,16),n=u(n,r,i,t,A[14],4259657740,23),t=u(t,n,r,i,A[1],2763975236,4),i=u(i,t,n,r,A[4],1272893353,11),r=u(r,i,t,n,A[7],4139469664,16),n=u(n,r,i,t,A[10],3200236656,23),t=u(t,n,r,i,A[13],681279174,4),i=u(i,t,n,r,A[0],3936430074,11),r=u(r,i,t,n,A[3],3572445317,16),n=u(n,r,i,t,A[6],76029189,23),t=u(t,n,r,i,A[9],3654602809,4),i=u(i,t,n,r,A[12],3873151461,11),r=u(r,i,t,n,A[15],530742520,16),t=f(t,n=u(n,r,i,t,A[2],3299628645,23),r,i,A[0],4096336452,6),i=f(i,t,n,r,A[7],1126891415,10),r=f(r,i,t,n,A[14],2878612391,15),n=f(n,r,i,t,A[5],4237533241,21),t=f(t,n,r,i,A[12],1700485571,6),i=f(i,t,n,r,A[3],2399980690,10),r=f(r,i,t,n,A[10],4293915773,15),n=f(n,r,i,t,A[1],2240044497,21),t=f(t,n,r,i,A[8],1873313359,6),i=f(i,t,n,r,A[15],4264355552,10),r=f(r,i,t,n,A[6],2734768916,15),n=f(n,r,i,t,A[13],1309151649,21),t=f(t,n,r,i,A[4],4149444226,6),i=f(i,t,n,r,A[11],3174756917,10),r=f(r,i,t,n,A[2],718787259,15),n=f(n,r,i,t,A[9],3951481745,21),this._a=this._a+t|0,this._b=this._b+n|0,this._c=this._c+r|0,this._d=this._d+i|0},a.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var A=i.allocUnsafe(16);return A.writeInt32LE(this._a,0),A.writeInt32LE(this._b,4),A.writeInt32LE(this._c,8),A.writeInt32LE(this._d,12),A},e.exports=a},{inherits:"4Bm0","hash-base":"7UcQ","safe-buffer":"38Wu"}],quyi:[function(A,e,t){"use strict";var n=A("buffer").Buffer,r=A("inherits"),i=A("hash-base"),o=new Array(16),a=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],s=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],g=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],I=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],u=[0,1518500249,1859775393,2400959708,2840853838],f=[1352829926,1548603684,1836072691,2053994217,0];function l(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function B(A,e){return A<<e|A>>>32-e}function E(A,e,t,n,r,i,o,a){return B(A+(e^t^n)+i+o|0,a)+r|0}function c(A,e,t,n,r,i,o,a){return B(A+(e&t|~e&n)+i+o|0,a)+r|0}function d(A,e,t,n,r,i,o,a){return B(A+((e|~t)^n)+i+o|0,a)+r|0}function C(A,e,t,n,r,i,o,a){return B(A+(e&n|t&~n)+i+o|0,a)+r|0}function h(A,e,t,n,r,i,o,a){return B(A+(e^(t|~n))+i+o|0,a)+r|0}r(l,i),l.prototype._update=function(){for(var A=o,e=0;e<16;++e)A[e]=this._block.readInt32LE(4*e);for(var t=0|this._a,n=0|this._b,r=0|this._c,i=0|this._d,l=0|this._e,Q=0|this._a,p=0|this._b,m=0|this._c,y=0|this._d,w=0|this._e,b=0;b<80;b+=1){var _,D;b<16?(_=E(t,n,r,i,l,A[a[b]],u[0],g[b]),D=h(Q,p,m,y,w,A[s[b]],f[0],I[b])):b<32?(_=c(t,n,r,i,l,A[a[b]],u[1],g[b]),D=C(Q,p,m,y,w,A[s[b]],f[1],I[b])):b<48?(_=d(t,n,r,i,l,A[a[b]],u[2],g[b]),D=d(Q,p,m,y,w,A[s[b]],f[2],I[b])):b<64?(_=C(t,n,r,i,l,A[a[b]],u[3],g[b]),D=c(Q,p,m,y,w,A[s[b]],f[3],I[b])):(_=h(t,n,r,i,l,A[a[b]],u[4],g[b]),D=E(Q,p,m,y,w,A[s[b]],f[4],I[b])),t=l,l=i,i=B(r,10),r=n,n=_,Q=w,w=y,y=B(m,10),m=p,p=D}var v=this._b+r+y|0;this._b=this._c+i+w|0,this._c=this._d+l+Q|0,this._d=this._e+t+p|0,this._e=this._a+n+m|0,this._a=v},l.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var A=n.alloc?n.alloc(20):new n(20);return A.writeInt32LE(this._a,0),A.writeInt32LE(this._b,4),A.writeInt32LE(this._c,8),A.writeInt32LE(this._d,12),A.writeInt32LE(this._e,16),A},e.exports=l},{buffer:"dskh",inherits:"4Bm0","hash-base":"7UcQ"}],VHby:[function(A,e,t){var n=A("safe-buffer").Buffer;function r(A,e){this._block=n.alloc(A),this._finalSize=e,this._blockSize=A,this._len=0}r.prototype.update=function(A,e){"string"==typeof A&&(e=e||"utf8",A=n.from(A,e));for(var t=this._block,r=this._blockSize,i=A.length,o=this._len,a=0;a<i;){for(var s=o%r,g=Math.min(i-a,r-s),I=0;I<g;I++)t[s+I]=A[a+I];a+=g,(o+=g)%r==0&&this._update(t)}return this._len+=i,this},r.prototype.digest=function(A){var e=this._len%this._blockSize;this._block[e]=128,this._block.fill(0,e+1),e>=this._finalSize&&(this._update(this._block),this._block.fill(0));var t=8*this._len;if(t<=4294967295)this._block.writeUInt32BE(t,this._blockSize-4);else{var n=(4294967295&t)>>>0,r=(t-n)/4294967296;this._block.writeUInt32BE(r,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var i=this._hash();return A?i.toString(A):i},r.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=r},{"safe-buffer":"38Wu"}],j9dE:[function(A,e,t){var n=A("inherits"),r=A("./hash"),i=A("safe-buffer").Buffer,o=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function s(){this.init(),this._w=a,r.call(this,64,56)}function g(A){return A<<5|A>>>27}function I(A){return A<<30|A>>>2}function u(A,e,t,n){return 0===A?e&t|~e&n:2===A?e&t|e&n|t&n:e^t^n}n(s,r),s.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},s.prototype._update=function(A){for(var e=this._w,t=0|this._a,n=0|this._b,r=0|this._c,i=0|this._d,a=0|this._e,s=0;s<16;++s)e[s]=A.readInt32BE(4*s);for(;s<80;++s)e[s]=e[s-3]^e[s-8]^e[s-14]^e[s-16];for(var f=0;f<80;++f){var l=~~(f/20),B=g(t)+u(l,n,r,i)+a+e[f]+o[l]|0;a=i,i=r,r=I(n),n=t,t=B}this._a=t+this._a|0,this._b=n+this._b|0,this._c=r+this._c|0,this._d=i+this._d|0,this._e=a+this._e|0},s.prototype._hash=function(){var A=i.allocUnsafe(20);return A.writeInt32BE(0|this._a,0),A.writeInt32BE(0|this._b,4),A.writeInt32BE(0|this._c,8),A.writeInt32BE(0|this._d,12),A.writeInt32BE(0|this._e,16),A},e.exports=s},{inherits:"4Bm0","./hash":"VHby","safe-buffer":"38Wu"}],oPH4:[function(A,e,t){var n=A("inherits"),r=A("./hash"),i=A("safe-buffer").Buffer,o=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function s(){this.init(),this._w=a,r.call(this,64,56)}function g(A){return A<<1|A>>>31}function I(A){return A<<5|A>>>27}function u(A){return A<<30|A>>>2}function f(A,e,t,n){return 0===A?e&t|~e&n:2===A?e&t|e&n|t&n:e^t^n}n(s,r),s.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},s.prototype._update=function(A){for(var e=this._w,t=0|this._a,n=0|this._b,r=0|this._c,i=0|this._d,a=0|this._e,s=0;s<16;++s)e[s]=A.readInt32BE(4*s);for(;s<80;++s)e[s]=g(e[s-3]^e[s-8]^e[s-14]^e[s-16]);for(var l=0;l<80;++l){var B=~~(l/20),E=I(t)+f(B,n,r,i)+a+e[l]+o[B]|0;a=i,i=r,r=u(n),n=t,t=E}this._a=t+this._a|0,this._b=n+this._b|0,this._c=r+this._c|0,this._d=i+this._d|0,this._e=a+this._e|0},s.prototype._hash=function(){var A=i.allocUnsafe(20);return A.writeInt32BE(0|this._a,0),A.writeInt32BE(0|this._b,4),A.writeInt32BE(0|this._c,8),A.writeInt32BE(0|this._d,12),A.writeInt32BE(0|this._e,16),A},e.exports=s},{inherits:"4Bm0","./hash":"VHby","safe-buffer":"38Wu"}],IUSb:[function(A,e,t){var n=A("inherits"),r=A("./hash"),i=A("safe-buffer").Buffer,o=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],a=new Array(64);function s(){this.init(),this._w=a,r.call(this,64,56)}function g(A,e,t){return t^A&(e^t)}function I(A,e,t){return A&e|t&(A|e)}function u(A){return(A>>>2|A<<30)^(A>>>13|A<<19)^(A>>>22|A<<10)}function f(A){return(A>>>6|A<<26)^(A>>>11|A<<21)^(A>>>25|A<<7)}function l(A){return(A>>>7|A<<25)^(A>>>18|A<<14)^A>>>3}function B(A){return(A>>>17|A<<15)^(A>>>19|A<<13)^A>>>10}n(s,r),s.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},s.prototype._update=function(A){for(var e=this._w,t=0|this._a,n=0|this._b,r=0|this._c,i=0|this._d,a=0|this._e,s=0|this._f,E=0|this._g,c=0|this._h,d=0;d<16;++d)e[d]=A.readInt32BE(4*d);for(;d<64;++d)e[d]=B(e[d-2])+e[d-7]+l(e[d-15])+e[d-16]|0;for(var C=0;C<64;++C){var h=c+f(a)+g(a,s,E)+o[C]+e[C]|0,Q=u(t)+I(t,n,r)|0;c=E,E=s,s=a,a=i+h|0,i=r,r=n,n=t,t=h+Q|0}this._a=t+this._a|0,this._b=n+this._b|0,this._c=r+this._c|0,this._d=i+this._d|0,this._e=a+this._e|0,this._f=s+this._f|0,this._g=E+this._g|0,this._h=c+this._h|0},s.prototype._hash=function(){var A=i.allocUnsafe(32);return A.writeInt32BE(this._a,0),A.writeInt32BE(this._b,4),A.writeInt32BE(this._c,8),A.writeInt32BE(this._d,12),A.writeInt32BE(this._e,16),A.writeInt32BE(this._f,20),A.writeInt32BE(this._g,24),A.writeInt32BE(this._h,28),A},e.exports=s},{inherits:"4Bm0","./hash":"VHby","safe-buffer":"38Wu"}],MeLE:[function(A,e,t){var n=A("inherits"),r=A("./sha256"),i=A("./hash"),o=A("safe-buffer").Buffer,a=new Array(64);function s(){this.init(),this._w=a,i.call(this,64,56)}n(s,r),s.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},s.prototype._hash=function(){var A=o.allocUnsafe(28);return A.writeInt32BE(this._a,0),A.writeInt32BE(this._b,4),A.writeInt32BE(this._c,8),A.writeInt32BE(this._d,12),A.writeInt32BE(this._e,16),A.writeInt32BE(this._f,20),A.writeInt32BE(this._g,24),A},e.exports=s},{inherits:"4Bm0","./sha256":"IUSb","./hash":"VHby","safe-buffer":"38Wu"}],sILY:[function(A,e,t){var n=A("inherits"),r=A("./hash"),i=A("safe-buffer").Buffer,o=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function s(){this.init(),this._w=a,r.call(this,128,112)}function g(A,e,t){return t^A&(e^t)}function I(A,e,t){return A&e|t&(A|e)}function u(A,e){return(A>>>28|e<<4)^(e>>>2|A<<30)^(e>>>7|A<<25)}function f(A,e){return(A>>>14|e<<18)^(A>>>18|e<<14)^(e>>>9|A<<23)}function l(A,e){return(A>>>1|e<<31)^(A>>>8|e<<24)^A>>>7}function B(A,e){return(A>>>1|e<<31)^(A>>>8|e<<24)^(A>>>7|e<<25)}function E(A,e){return(A>>>19|e<<13)^(e>>>29|A<<3)^A>>>6}function c(A,e){return(A>>>19|e<<13)^(e>>>29|A<<3)^(A>>>6|e<<26)}function d(A,e){return A>>>0<e>>>0?1:0}n(s,r),s.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},s.prototype._update=function(A){for(var e=this._w,t=0|this._ah,n=0|this._bh,r=0|this._ch,i=0|this._dh,a=0|this._eh,s=0|this._fh,C=0|this._gh,h=0|this._hh,Q=0|this._al,p=0|this._bl,m=0|this._cl,y=0|this._dl,w=0|this._el,b=0|this._fl,_=0|this._gl,D=0|this._hl,v=0;v<32;v+=2)e[v]=A.readInt32BE(4*v),e[v+1]=A.readInt32BE(4*v+4);for(;v<160;v+=2){var R=e[v-30],F=e[v-30+1],M=l(R,F),S=B(F,R),k=E(R=e[v-4],F=e[v-4+1]),G=c(F,R),N=e[v-14],P=e[v-14+1],L=e[v-32],U=e[v-32+1],Y=S+P|0,x=M+N+d(Y,S)|0;x=(x=x+k+d(Y=Y+G|0,G)|0)+L+d(Y=Y+U|0,U)|0,e[v]=x,e[v+1]=Y}for(var Z=0;Z<160;Z+=2){x=e[Z],Y=e[Z+1];var H=I(t,n,r),X=I(Q,p,m),K=u(t,Q),T=u(Q,t),W=f(a,w),q=f(w,a),J=o[Z],V=o[Z+1],O=g(a,s,C),z=g(w,b,_),j=D+q|0,$=h+W+d(j,D)|0;$=($=($=$+O+d(j=j+z|0,z)|0)+J+d(j=j+V|0,V)|0)+x+d(j=j+Y|0,Y)|0;var AA=T+X|0,eA=K+H+d(AA,T)|0;h=C,D=_,C=s,_=b,s=a,b=w,a=i+$+d(w=y+j|0,y)|0,i=r,y=m,r=n,m=p,n=t,p=Q,t=$+eA+d(Q=j+AA|0,j)|0}this._al=this._al+Q|0,this._bl=this._bl+p|0,this._cl=this._cl+m|0,this._dl=this._dl+y|0,this._el=this._el+w|0,this._fl=this._fl+b|0,this._gl=this._gl+_|0,this._hl=this._hl+D|0,this._ah=this._ah+t+d(this._al,Q)|0,this._bh=this._bh+n+d(this._bl,p)|0,this._ch=this._ch+r+d(this._cl,m)|0,this._dh=this._dh+i+d(this._dl,y)|0,this._eh=this._eh+a+d(this._el,w)|0,this._fh=this._fh+s+d(this._fl,b)|0,this._gh=this._gh+C+d(this._gl,_)|0,this._hh=this._hh+h+d(this._hl,D)|0},s.prototype._hash=function(){var A=i.allocUnsafe(64);function e(e,t,n){A.writeInt32BE(e,n),A.writeInt32BE(t,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),A},e.exports=s},{inherits:"4Bm0","./hash":"VHby","safe-buffer":"38Wu"}],V2o3:[function(A,e,t){var n=A("inherits"),r=A("./sha512"),i=A("./hash"),o=A("safe-buffer").Buffer,a=new Array(160);function s(){this.init(),this._w=a,i.call(this,128,112)}n(s,r),s.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},s.prototype._hash=function(){var A=o.allocUnsafe(48);function e(e,t,n){A.writeInt32BE(e,n),A.writeInt32BE(t,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),A},e.exports=s},{inherits:"4Bm0","./sha512":"sILY","./hash":"VHby","safe-buffer":"38Wu"}],t0b9:[function(A,e,t){var n=e.exports=function(A){A=A.toLowerCase();var e=n[A];if(!e)throw new Error(A+" is not supported (we accept pull requests)");return new e};n.sha=A("./sha"),n.sha1=A("./sha1"),n.sha224=A("./sha224"),n.sha256=A("./sha256"),n.sha384=A("./sha384"),n.sha512=A("./sha512")},{"./sha":"j9dE","./sha1":"oPH4","./sha224":"MeLE","./sha256":"IUSb","./sha384":"V2o3","./sha512":"sILY"}],Yj0v:[function(A,e,t){A("process");var n=A("process");void 0===n||!n.version||0===n.version.indexOf("v0.")||0===n.version.indexOf("v1.")&&0!==n.version.indexOf("v1.8.")?e.exports={nextTick:function(A,e,t,r){if("function"!=typeof A)throw new TypeError('"callback" argument must be a function');var i,o,a=arguments.length;switch(a){case 0:case 1:return n.nextTick(A);case 2:return n.nextTick(function(){A.call(null,e)});case 3:return n.nextTick(function(){A.call(null,e,t)});case 4:return n.nextTick(function(){A.call(null,e,t,r)});default:for(i=new Array(a-1),o=0;o<i.length;)i[o++]=arguments[o];return n.nextTick(function(){A.apply(null,i)})}}}:e.exports=n},{process:"pBGv"}],Q14w:[function(A,e,t){A("buffer").Buffer;var n=A("buffer").Buffer;function r(A){return Object.prototype.toString.call(A)}t.isArray=function(A){return Array.isArray?Array.isArray(A):"[object Array]"===r(A)},t.isBoolean=function(A){return"boolean"==typeof A},t.isNull=function(A){return null===A},t.isNullOrUndefined=function(A){return null==A},t.isNumber=function(A){return"number"==typeof A},t.isString=function(A){return"string"==typeof A},t.isSymbol=function(A){return"symbol"==typeof A},t.isUndefined=function(A){return void 0===A},t.isRegExp=function(A){return"[object RegExp]"===r(A)},t.isObject=function(A){return"object"==typeof A&&null!==A},t.isDate=function(A){return"[object Date]"===r(A)},t.isError=function(A){return"[object Error]"===r(A)||A instanceof Error},t.isFunction=function(A){return"function"==typeof A},t.isPrimitive=function(A){return null===A||"boolean"==typeof A||"number"==typeof A||"string"==typeof A||"symbol"==typeof A||void 0===A},t.isBuffer=n.isBuffer},{buffer:"dskh"}],"wl+m":[function(A,e,t){"use strict";var n=A("safe-buffer").Buffer,r=A("util");function i(A,e,t){A.copy(e,t)}e.exports=function(){function A(){(function(A,e){if(!(A instanceof e))throw new TypeError("Cannot call a class as a function")})(this,A),this.head=null,this.tail=null,this.length=0}return A.prototype.push=function(A){var e={data:A,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},A.prototype.unshift=function(A){var e={data:A,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},A.prototype.shift=function(){if(0!==this.length){var A=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,A}},A.prototype.clear=function(){this.head=this.tail=null,this.length=0},A.prototype.join=function(A){if(0===this.length)return"";for(var e=this.head,t=""+e.data;e=e.next;)t+=A+e.data;return t},A.prototype.concat=function(A){if(0===this.length)return n.alloc(0);if(1===this.length)return this.head.data;for(var e=n.allocUnsafe(A>>>0),t=this.head,r=0;t;)i(t.data,e,r),r+=t.data.length,t=t.next;return e},A}(),r&&r.inspect&&r.inspect.custom&&(e.exports.prototype[r.inspect.custom]=function(){var A=r.inspect({length:this.length});return this.constructor.name+" "+A})},{"safe-buffer":"38Wu",util:"f88W"}],GRUB:[function(A,e,t){"use strict";var n=A("process-nextick-args");function r(A,e){A.emit("error",e)}e.exports={destroy:function(A,e){var t=this,i=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return i||o?(e?e(A):!A||this._writableState&&this._writableState.errorEmitted||n.nextTick(r,this,A),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(A||null,function(A){!e&&A?(n.nextTick(r,t,A),t._writableState&&(t._writableState.errorEmitted=!0)):e&&e(A)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},{"process-nextick-args":"Yj0v"}],WSyY:[function(A,e,t){A("process"),arguments[3],A("process");var n=arguments[3],r=A("process-nextick-args");function i(A){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(A,e,t){var n=A.entry;for(A.entry=null;n;){var r=n.callback;e.pendingcb--,r(t),n=n.next}e.corkedRequestsFree?e.corkedRequestsFree.next=A:e.corkedRequestsFree=A}(e,A)}}e.exports=d;var o,a=r.nextTick;d.WritableState=c;var s=Object.create(A("core-util-is"));s.inherits=A("inherits");var g={deprecate:A("util-deprecate")},I=A("./internal/streams/stream"),u=A("safe-buffer").Buffer,f=n.Uint8Array||function(){};var l,B=A("./internal/streams/destroy");function E(){}function c(e,t){o=o||A("./_stream_duplex"),e=e||{};var n=t instanceof o;this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var r=e.highWaterMark,a=e.writableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:n&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var g=!1===e.decodeStrings;this.decodeStrings=!g,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(A){y(t,A)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}function d(e){if(o=o||A("./_stream_duplex"),!(l.call(d,this)||this instanceof o))return new d(e);this._writableState=new c(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),I.call(this)}function C(A,e){var t=new Error("write after end");A.emit("error",t),r.nextTick(e,t)}function h(A,e,t,n){var i=!0,o=!1;return null===t?o=new TypeError("May not write null values to stream"):"string"==typeof t||void 0===t||e.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(A.emit("error",o),r.nextTick(n,o),i=!1),i}function Q(A,e,t,n,r,i){if(!t){var o=function(A,e,t){return A.objectMode||!1===A.decodeStrings||"string"!=typeof e||(e=u.from(e,t)),e}(e,n,r);n!==o&&(t=!0,r="buffer",n=o)}var a=e.objectMode?1:n.length;e.length+=a;var s=e.length<e.highWaterMark;if(s||(e.needDrain=!0),e.writing||e.corked){var g=e.lastBufferedRequest;e.lastBufferedRequest={chunk:n,encoding:r,isBuf:t,callback:i,next:null},g?g.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else p(A,e,!1,a,n,r,i);return s}function p(A,e,t,n,r,i,o){e.writelen=n,e.writecb=o,e.writing=!0,e.sync=!0,t?A._writev(r,e.onwrite):A._write(r,i,e.onwrite),e.sync=!1}function m(A,e,t,n,i){--e.pendingcb,t?(r.nextTick(i,n),r.nextTick(R,A,e),A._writableState.errorEmitted=!0,A.emit("error",n)):(i(n),A._writableState.errorEmitted=!0,A.emit("error",n),R(A,e))}function y(A,e){var t=A._writableState,n=t.sync,r=t.writecb;if(function(A){A.writing=!1,A.writecb=null,A.length-=A.writelen,A.writelen=0}(t),e)m(A,t,n,e,r);else{var i=_(t);i||t.corked||t.bufferProcessing||!t.bufferedRequest||b(A,t),n?a(w,A,t,i,r):w(A,t,i,r)}}function w(A,e,t,n){t||function(A,e){0===e.length&&e.needDrain&&(e.needDrain=!1,A.emit("drain"))}(A,e),e.pendingcb--,n(),R(A,e)}function b(A,e){e.bufferProcessing=!0;var t=e.bufferedRequest;if(A._writev&&t&&t.next){var n=e.bufferedRequestCount,r=new Array(n),o=e.corkedRequestsFree;o.entry=t;for(var a=0,s=!0;t;)r[a]=t,t.isBuf||(s=!1),t=t.next,a+=1;r.allBuffers=s,p(A,e,!0,e.length,r,"",o.finish),e.pendingcb++,e.lastBufferedRequest=null,o.next?(e.corkedRequestsFree=o.next,o.next=null):e.corkedRequestsFree=new i(e),e.bufferedRequestCount=0}else{for(;t;){var g=t.chunk,I=t.encoding,u=t.callback;if(p(A,e,!1,e.objectMode?1:g.length,g,I,u),t=t.next,e.bufferedRequestCount--,e.writing)break}null===t&&(e.lastBufferedRequest=null)}e.bufferedRequest=t,e.bufferProcessing=!1}function _(A){return A.ending&&0===A.length&&null===A.bufferedRequest&&!A.finished&&!A.writing}function D(A,e){A._final(function(t){e.pendingcb--,t&&A.emit("error",t),e.prefinished=!0,A.emit("prefinish"),R(A,e)})}function v(A,e){e.prefinished||e.finalCalled||("function"==typeof A._final?(e.pendingcb++,e.finalCalled=!0,r.nextTick(D,A,e)):(e.prefinished=!0,A.emit("prefinish")))}function R(A,e){var t=_(e);return t&&(v(A,e),0===e.pendingcb&&(e.finished=!0,A.emit("finish"))),t}function F(A,e,t){e.ending=!0,R(A,e),t&&(e.finished?r.nextTick(t):A.once("finish",t)),e.ended=!0,A.writable=!1}s.inherits(d,I),c.prototype.getBuffer=function(){for(var A=this.bufferedRequest,e=[];A;)e.push(A),A=A.next;return e},function(){try{Object.defineProperty(c.prototype,"buffer",{get:g.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(A){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(l=Function.prototype[Symbol.hasInstance],Object.defineProperty(d,Symbol.hasInstance,{value:function(A){return!!l.call(this,A)||this===d&&A&&A._writableState instanceof c}})):l=function(A){return A instanceof this},d.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},d.prototype.write=function(A,e,t){var n=this._writableState,r=!1,i=!n.objectMode&&function(A){return u.isBuffer(A)||A instanceof f}(A);return i&&!u.isBuffer(A)&&(A=function(A){return u.from(A)}(A)),"function"==typeof e&&(t=e,e=null),i?e="buffer":e||(e=n.defaultEncoding),"function"!=typeof t&&(t=E),n.ended?C(this,t):(i||h(this,n,A,t))&&(n.pendingcb++,r=Q(this,n,i,A,e,t)),r},d.prototype.cork=function(){this._writableState.corked++},d.prototype.uncork=function(){var A=this._writableState;A.corked&&(A.corked--,A.writing||A.corked||A.finished||A.bufferProcessing||!A.bufferedRequest||b(this,A))},d.prototype.setDefaultEncoding=function(A){if("string"==typeof A&&(A=A.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((A+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+A);return this._writableState.defaultEncoding=A,this},Object.defineProperty(d.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),d.prototype._write=function(A,e,t){t(new Error("_write() is not implemented"))},d.prototype._writev=null,d.prototype.end=function(A,e,t){var n=this._writableState;"function"==typeof A?(t=A,A=null,e=null):"function"==typeof e&&(t=e,e=null),null!=A&&this.write(A,e),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||F(this,n,t)},Object.defineProperty(d.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(A){this._writableState&&(this._writableState.destroyed=A)}}),d.prototype.destroy=B.destroy,d.prototype._undestroy=B.undestroy,d.prototype._destroy=function(A,e){this.end(),e(A)}},{"process-nextick-args":"Yj0v","core-util-is":"Q14w",inherits:"4Bm0","util-deprecate":"yM1o","./internal/streams/stream":"8V4J","safe-buffer":"38Wu","./internal/streams/destroy":"GRUB","./_stream_duplex":"Hba+",process:"pBGv"}],"Hba+":[function(A,e,t){"use strict";var n=A("process-nextick-args"),r=Object.keys||function(A){var e=[];for(var t in A)e.push(t);return e};e.exports=u;var i=Object.create(A("core-util-is"));i.inherits=A("inherits");var o=A("./_stream_readable"),a=A("./_stream_writable");i.inherits(u,o);for(var s=r(a.prototype),g=0;g<s.length;g++){var I=s[g];u.prototype[I]||(u.prototype[I]=a.prototype[I])}function u(A){if(!(this instanceof u))return new u(A);o.call(this,A),a.call(this,A),A&&!1===A.readable&&(this.readable=!1),A&&!1===A.writable&&(this.writable=!1),this.allowHalfOpen=!0,A&&!1===A.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",f)}function f(){this.allowHalfOpen||this._writableState.ended||n.nextTick(l,this)}function l(A){A.end()}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&this._readableState.destroyed&&this._writableState.destroyed},set:function(A){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=A,this._writableState.destroyed=A)}}),u.prototype._destroy=function(A,e){this.push(null),this.end(),n.nextTick(e,A)}},{"process-nextick-args":"Yj0v","core-util-is":"Q14w",inherits:"4Bm0","./_stream_readable":"DHrQ","./_stream_writable":"WSyY"}],BUbk:[function(A,e,t){"use strict";var n=A("safe-buffer").Buffer,r=n.isEncoding||function(A){switch((A=""+A)&&A.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(A){var e=function(A){if(!A)return"utf8";for(var e;;)switch(A){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return A;default:if(e)return;A=(""+A).toLowerCase(),e=!0}}(A);if("string"!=typeof e&&(n.isEncoding===r||!r(A)))throw new Error("Unknown encoding: "+A);return e||A}function o(A){var e;switch(this.encoding=i(A),this.encoding){case"utf16le":this.text=g,this.end=I,e=4;break;case"utf8":this.fillLast=s,e=4;break;case"base64":this.text=u,this.end=f,e=3;break;default:return this.write=l,void(this.end=B)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(e)}function a(A){return A<=127?0:A>>5==6?2:A>>4==14?3:A>>3==30?4:A>>6==2?-1:-2}function s(A){var e=this.lastTotal-this.lastNeed,t=function(A,e,t){if(128!=(192&e[0]))return A.lastNeed=0,"�";if(A.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return A.lastNeed=1,"�";if(A.lastNeed>2&&e.length>2&&128!=(192&e[2]))return A.lastNeed=2,"�"}}(this,A);return void 0!==t?t:this.lastNeed<=A.length?(A.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(A.copy(this.lastChar,e,0,A.length),void(this.lastNeed-=A.length))}function g(A,e){if((A.length-e)%2==0){var t=A.toString("utf16le",e);if(t){var n=t.charCodeAt(t.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=A[A.length-2],this.lastChar[1]=A[A.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=A[A.length-1],A.toString("utf16le",e,A.length-1)}function I(A){var e=A&&A.length?this.write(A):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function u(A,e){var t=(A.length-e)%3;return 0===t?A.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,1===t?this.lastChar[0]=A[A.length-1]:(this.lastChar[0]=A[A.length-2],this.lastChar[1]=A[A.length-1]),A.toString("base64",e,A.length-t))}function f(A){var e=A&&A.length?this.write(A):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function l(A){return A.toString(this.encoding)}function B(A){return A&&A.length?this.write(A):""}t.StringDecoder=o,o.prototype.write=function(A){if(0===A.length)return"";var e,t;if(this.lastNeed){if(void 0===(e=this.fillLast(A)))return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t<A.length?e?e+this.text(A,t):this.text(A,t):e||""},o.prototype.end=function(A){var e=A&&A.length?this.write(A):"";return this.lastNeed?e+"�":e},o.prototype.text=function(A,e){var t=function(A,e,t){var n=e.length-1;if(n<t)return 0;var r=a(e[n]);return r>=0?(r>0&&(A.lastNeed=r-1),r):--n<t||-2===r?0:(r=a(e[n]))>=0?(r>0&&(A.lastNeed=r-2),r):--n<t||-2===r?0:(r=a(e[n]))>=0?(r>0&&(2===r?r=0:A.lastNeed=r-3),r):0}(this,A,e);if(!this.lastNeed)return A.toString("utf8",e);this.lastTotal=t;var n=A.length-(t-this.lastNeed);return A.copy(this.lastChar,0,n),A.toString("utf8",e,n)},o.prototype.fillLast=function(A){if(this.lastNeed<=A.length)return A.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);A.copy(this.lastChar,this.lastTotal-this.lastNeed,0,A.length),this.lastNeed-=A.length}},{"safe-buffer":"38Wu"}],DHrQ:[function(A,e,t){arguments[3],A("process");var n=arguments[3],r=A("process"),i=A("process-nextick-args");e.exports=p;var o,a=A("isarray");p.ReadableState=Q;A("events").EventEmitter;var s=function(A,e){return A.listeners(e).length},g=A("./internal/streams/stream"),I=A("safe-buffer").Buffer,u=n.Uint8Array||function(){};var f=Object.create(A("core-util-is"));f.inherits=A("inherits");var l=A("util"),B=void 0;B=l&&l.debuglog?l.debuglog("stream"):function(){};var E,c=A("./internal/streams/BufferList"),d=A("./internal/streams/destroy");f.inherits(p,g);var C=["error","close","destroy","pause","resume"];function h(A,e,t){if("function"==typeof A.prependListener)return A.prependListener(e,t);A._events&&A._events[e]?a(A._events[e])?A._events[e].unshift(t):A._events[e]=[t,A._events[e]]:A.on(e,t)}function Q(e,t){e=e||{};var n=t instanceof(o=o||A("./_stream_duplex"));this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark,i=e.readableHighWaterMark,a=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:n&&(i||0===i)?i:a,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new c,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(E||(E=A("string_decoder/").StringDecoder),this.decoder=new E(e.encoding),this.encoding=e.encoding)}function p(e){if(o=o||A("./_stream_duplex"),!(this instanceof p))return new p(e);this._readableState=new Q(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),g.call(this)}function m(A,e,t,n,r){var i,o=A._readableState;return null===e?(o.reading=!1,function(A,e){if(!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,_(A)}}(A,o)):(r||(i=function(A,e){var t;return function(A){return I.isBuffer(A)||A instanceof u}(e)||"string"==typeof e||void 0===e||A.objectMode||(t=new TypeError("Invalid non-string/buffer chunk")),t}(o,e)),i?A.emit("error",i):o.objectMode||e&&e.length>0?("string"==typeof e||o.objectMode||Object.getPrototypeOf(e)===I.prototype||(e=function(A){return I.from(A)}(e)),n?o.endEmitted?A.emit("error",new Error("stream.unshift() after end event")):y(A,o,e,!0):o.ended?A.emit("error",new Error("stream.push() after EOF")):(o.reading=!1,o.decoder&&!t?(e=o.decoder.write(e),o.objectMode||0!==e.length?y(A,o,e,!1):v(A,o)):y(A,o,e,!1))):n||(o.reading=!1)),function(A){return!A.ended&&(A.needReadable||A.length<A.highWaterMark||0===A.length)}(o)}function y(A,e,t,n){e.flowing&&0===e.length&&!e.sync?(A.emit("data",t),A.read(0)):(e.length+=e.objectMode?1:t.length,n?e.buffer.unshift(t):e.buffer.push(t),e.needReadable&&_(A)),v(A,e)}Object.defineProperty(p.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(A){this._readableState&&(this._readableState.destroyed=A)}}),p.prototype.destroy=d.destroy,p.prototype._undestroy=d.undestroy,p.prototype._destroy=function(A,e){this.push(null),e(A)},p.prototype.push=function(A,e){var t,n=this._readableState;return n.objectMode?t=!0:"string"==typeof A&&((e=e||n.defaultEncoding)!==n.encoding&&(A=I.from(A,e),e=""),t=!0),m(this,A,e,!1,t)},p.prototype.unshift=function(A){return m(this,A,null,!0,!1)},p.prototype.isPaused=function(){return!1===this._readableState.flowing},p.prototype.setEncoding=function(e){return E||(E=A("string_decoder/").StringDecoder),this._readableState.decoder=new E(e),this._readableState.encoding=e,this};var w=8388608;function b(A,e){return A<=0||0===e.length&&e.ended?0:e.objectMode?1:A!=A?e.flowing&&e.length?e.buffer.head.data.length:e.length:(A>e.highWaterMark&&(e.highWaterMark=function(A){return A>=w?A=w:(A--,A|=A>>>1,A|=A>>>2,A|=A>>>4,A|=A>>>8,A|=A>>>16,A++),A}(A)),A<=e.length?A:e.ended?e.length:(e.needReadable=!0,0))}function _(A){var e=A._readableState;e.needReadable=!1,e.emittedReadable||(B("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?i.nextTick(D,A):D(A))}function D(A){B("emit readable"),A.emit("readable"),S(A)}function v(A,e){e.readingMore||(e.readingMore=!0,i.nextTick(R,A,e))}function R(A,e){for(var t=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length<e.highWaterMark&&(B("maybeReadMore read 0"),A.read(0),t!==e.length);)t=e.length;e.readingMore=!1}function F(A){B("readable nexttick read 0"),A.read(0)}function M(A,e){e.reading||(B("resume read 0"),A.read(0)),e.resumeScheduled=!1,e.awaitDrain=0,A.emit("resume"),S(A),e.flowing&&!e.reading&&A.read(0)}function S(A){var e=A._readableState;for(B("flow",e.flowing);e.flowing&&null!==A.read(););}function k(A,e){return 0===e.length?null:(e.objectMode?t=e.buffer.shift():!A||A>=e.length?(t=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):t=function(A,e,t){var n;return A<e.head.data.length?(n=e.head.data.slice(0,A),e.head.data=e.head.data.slice(A)):n=A===e.head.data.length?e.shift():t?function(A,e){var t=e.head,n=1,r=t.data;for(A-=r.length;t=t.next;){var i=t.data,o=A>i.length?i.length:A;if(o===i.length?r+=i:r+=i.slice(0,A),0==(A-=o)){o===i.length?(++n,t.next?e.head=t.next:e.head=e.tail=null):(e.head=t,t.data=i.slice(o));break}++n}return e.length-=n,r}(A,e):function(A,e){var t=I.allocUnsafe(A),n=e.head,r=1;for(n.data.copy(t),A-=n.data.length;n=n.next;){var i=n.data,o=A>i.length?i.length:A;if(i.copy(t,t.length-A,0,o),0==(A-=o)){o===i.length?(++r,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=i.slice(o));break}++r}return e.length-=r,t}(A,e),n}(A,e.buffer,e.decoder),t);var t}function G(A){var e=A._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,i.nextTick(N,e,A))}function N(A,e){A.endEmitted||0!==A.length||(A.endEmitted=!0,e.readable=!1,e.emit("end"))}function P(A,e){for(var t=0,n=A.length;t<n;t++)if(A[t]===e)return t;return-1}p.prototype.read=function(A){B("read",A),A=parseInt(A,10);var e=this._readableState,t=A;if(0!==A&&(e.emittedReadable=!1),0===A&&e.needReadable&&(e.length>=e.highWaterMark||e.ended))return B("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?G(this):_(this),null;if(0===(A=b(A,e))&&e.ended)return 0===e.length&&G(this),null;var n,r=e.needReadable;return B("need readable",r),(0===e.length||e.length-A<e.highWaterMark)&&B("length less than watermark",r=!0),e.ended||e.reading?B("reading or ended",r=!1):r&&(B("do read"),e.reading=!0,e.sync=!0,0===e.length&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(A=b(t,e))),null===(n=A>0?k(A,e):null)?(e.needReadable=!0,A=0):e.length-=A,0===e.length&&(e.ended||(e.needReadable=!0),t!==A&&e.ended&&G(this)),null!==n&&this.emit("data",n),n},p.prototype._read=function(A){this.emit("error",new Error("_read() is not implemented"))},p.prototype.pipe=function(A,e){var t=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=A;break;case 1:n.pipes=[n.pipes,A];break;default:n.pipes.push(A)}n.pipesCount+=1,B("pipe count=%d opts=%j",n.pipesCount,e);var o=e&&!1===e.end||A===r.stdout||A===r.stderr?d:a;function a(){B("onend"),A.end()}n.endEmitted?i.nextTick(o):t.once("end",o),A.on("unpipe",function e(r,i){B("onunpipe"),r===t&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,B("cleanup"),A.removeListener("close",E),A.removeListener("finish",c),A.removeListener("drain",g),A.removeListener("error",l),A.removeListener("unpipe",e),t.removeListener("end",a),t.removeListener("end",d),t.removeListener("data",f),I=!0,!n.awaitDrain||A._writableState&&!A._writableState.needDrain||g())});var g=function(A){return function(){var e=A._readableState;B("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&s(A,"data")&&(e.flowing=!0,S(A))}}(t);A.on("drain",g);var I=!1,u=!1;function f(e){B("ondata"),u=!1,!1!==A.write(e)||u||((1===n.pipesCount&&n.pipes===A||n.pipesCount>1&&-1!==P(n.pipes,A))&&!I&&(B("false write response, pause",t._readableState.awaitDrain),t._readableState.awaitDrain++,u=!0),t.pause())}function l(e){B("onerror",e),d(),A.removeListener("error",l),0===s(A,"error")&&A.emit("error",e)}function E(){A.removeListener("finish",c),d()}function c(){B("onfinish"),A.removeListener("close",E),d()}function d(){B("unpipe"),t.unpipe(A)}return t.on("data",f),h(A,"error",l),A.once("close",E),A.once("finish",c),A.emit("pipe",t),n.flowing||(B("pipe resume"),t.resume()),A},p.prototype.unpipe=function(A){var e=this._readableState,t={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return A&&A!==e.pipes?this:(A||(A=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,A&&A.emit("unpipe",this,t),this);if(!A){var n=e.pipes,r=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var i=0;i<r;i++)n[i].emit("unpipe",this,t);return this}var o=P(e.pipes,A);return-1===o?this:(e.pipes.splice(o,1),e.pipesCount-=1,1===e.pipesCount&&(e.pipes=e.pipes[0]),A.emit("unpipe",this,t),this)},p.prototype.on=function(A,e){var t=g.prototype.on.call(this,A,e);if("data"===A)!1!==this._readableState.flowing&&this.resume();else if("readable"===A){var n=this._readableState;n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.emittedReadable=!1,n.reading?n.length&&_(this):i.nextTick(F,this))}return t},p.prototype.addListener=p.prototype.on,p.prototype.resume=function(){var A=this._readableState;return A.flowing||(B("resume"),A.flowing=!0,function(A,e){e.resumeScheduled||(e.resumeScheduled=!0,i.nextTick(M,A,e))}(this,A)),this},p.prototype.pause=function(){return B("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(B("pause"),this._readableState.flowing=!1,this.emit("pause")),this},p.prototype.wrap=function(A){var e=this,t=this._readableState,n=!1;for(var r in A.on("end",function(){if(B("wrapped end"),t.decoder&&!t.ended){var A=t.decoder.end();A&&A.length&&e.push(A)}e.push(null)}),A.on("data",function(r){B("wrapped data"),t.decoder&&(r=t.decoder.write(r)),t.objectMode&&null==r||(t.objectMode||r&&r.length)&&(e.push(r)||(n=!0,A.pause()))}),A)void 0===this[r]&&"function"==typeof A[r]&&(this[r]=function(e){return function(){return A[e].apply(A,arguments)}}(r));for(var i=0;i<C.length;i++)A.on(C[i],this.emit.bind(this,C[i]));return this._read=function(e){B("wrapped _read",e),n&&(n=!1,A.resume())},this},Object.defineProperty(p.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),p._fromList=k},{"process-nextick-args":"Yj0v",isarray:"REa7",events:"FRpO","./internal/streams/stream":"8V4J","safe-buffer":"38Wu","core-util-is":"Q14w",inherits:"4Bm0",util:"f88W","./internal/streams/BufferList":"wl+m","./internal/streams/destroy":"GRUB","./_stream_duplex":"Hba+","string_decoder/":"BUbk",process:"pBGv"}],"7tlB":[function(A,e,t){"use strict";e.exports=o;var n=A("./_stream_duplex"),r=Object.create(A("core-util-is"));function i(A,e){var t=this._transformState;t.transforming=!1;var n=t.writecb;if(!n)return this.emit("error",new Error("write callback called multiple times"));t.writechunk=null,t.writecb=null,null!=e&&this.push(e),n(A);var r=this._readableState;r.reading=!1,(r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}function o(A){if(!(this instanceof o))return new o(A);n.call(this,A),this._transformState={afterTransform:i.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,A&&("function"==typeof A.transform&&(this._transform=A.transform),"function"==typeof A.flush&&(this._flush=A.flush)),this.on("prefinish",a)}function a(){var A=this;"function"==typeof this._flush?this._flush(function(e,t){s(A,e,t)}):s(this,null,null)}function s(A,e,t){if(e)return A.emit("error",e);if(null!=t&&A.push(t),A._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(A._transformState.transforming)throw new Error("Calling transform done when still transforming");return A.push(null)}r.inherits=A("inherits"),r.inherits(o,n),o.prototype.push=function(A,e){return this._transformState.needTransform=!1,n.prototype.push.call(this,A,e)},o.prototype._transform=function(A,e,t){throw new Error("_transform() is not implemented")},o.prototype._write=function(A,e,t){var n=this._transformState;if(n.writecb=t,n.writechunk=A,n.writeencoding=e,!n.transforming){var r=this._readableState;(n.needTransform||r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}},o.prototype._read=function(A){var e=this._transformState;null!==e.writechunk&&e.writecb&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0},o.prototype._destroy=function(A,e){var t=this;n.prototype._destroy.call(this,A,function(A){e(A),t.emit("close")})}},{"./_stream_duplex":"Hba+","core-util-is":"Q14w",inherits:"4Bm0"}],nwyA:[function(A,e,t){"use strict";e.exports=i;var n=A("./_stream_transform"),r=Object.create(A("core-util-is"));function i(A){if(!(this instanceof i))return new i(A);n.call(this,A)}r.inherits=A("inherits"),r.inherits(i,n),i.prototype._transform=function(A,e,t){t(null,A)}},{"./_stream_transform":"7tlB","core-util-is":"Q14w",inherits:"4Bm0"}],tzeh:[function(A,e,t){(t=e.exports=A("./lib/_stream_readable.js")).Stream=t,t.Readable=t,t.Writable=A("./lib/_stream_writable.js"),t.Duplex=A("./lib/_stream_duplex.js"),t.Transform=A("./lib/_stream_transform.js"),t.PassThrough=A("./lib/_stream_passthrough.js")},{"./lib/_stream_readable.js":"DHrQ","./lib/_stream_writable.js":"WSyY","./lib/_stream_duplex.js":"Hba+","./lib/_stream_transform.js":"7tlB","./lib/_stream_passthrough.js":"nwyA"}],LnjZ:[function(A,e,t){e.exports=A("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":"WSyY"}],kT1X:[function(A,e,t){e.exports=A("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":"Hba+"}],"A9/K":[function(A,e,t){e.exports=A("./readable").Transform},{"./readable":"tzeh"}],C6nS:[function(A,e,t){e.exports=A("./readable").PassThrough},{"./readable":"tzeh"}],fnRj:[function(A,e,t){e.exports=r;var n=A("events").EventEmitter;function r(){n.call(this)}A("inherits")(r,n),r.Readable=A("readable-stream/readable.js"),r.Writable=A("readable-stream/writable.js"),r.Duplex=A("readable-stream/duplex.js"),r.Transform=A("readable-stream/transform.js"),r.PassThrough=A("readable-stream/passthrough.js"),r.Stream=r,r.prototype.pipe=function(A,e){var t=this;function r(e){A.writable&&!1===A.write(e)&&t.pause&&t.pause()}function i(){t.readable&&t.resume&&t.resume()}t.on("data",r),A.on("drain",i),A._isStdio||e&&!1===e.end||(t.on("end",a),t.on("close",s));var o=!1;function a(){o||(o=!0,A.end())}function s(){o||(o=!0,"function"==typeof A.destroy&&A.destroy())}function g(A){if(I(),0===n.listenerCount(this,"error"))throw A}function I(){t.removeListener("data",r),A.removeListener("drain",i),t.removeListener("end",a),t.removeListener("close",s),t.removeListener("error",g),A.removeListener("error",g),t.removeListener("end",I),t.removeListener("close",I),A.removeListener("close",I)}return t.on("error",g),A.on("error",g),t.on("end",I),t.on("close",I),A.on("close",I),A.emit("pipe",t),A}},{events:"FRpO",inherits:"4Bm0","readable-stream/readable.js":"tzeh","readable-stream/writable.js":"LnjZ","readable-stream/duplex.js":"kT1X","readable-stream/transform.js":"A9/K","readable-stream/passthrough.js":"C6nS"}],bjfr:[function(A,e,t){var n=A("safe-buffer").Buffer,r=A("stream").Transform,i=A("string_decoder").StringDecoder;function o(A){r.call(this),this.hashMode="string"==typeof A,this.hashMode?this[A]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}A("inherits")(o,r),o.prototype.update=function(A,e,t){"string"==typeof A&&(A=n.from(A,e));var r=this._update(A);return this.hashMode?this:(t&&(r=this._toString(r,t)),r)},o.prototype.setAutoPadding=function(){},o.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},o.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},o.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},o.prototype._transform=function(A,e,t){var n;try{this.hashMode?this._update(A):this.push(this._update(A))}catch(o){n=o}finally{t(n)}},o.prototype._flush=function(A){var e;try{this.push(this.__final())}catch(i){e=i}A(e)},o.prototype._finalOrDigest=function(A){var e=this.__final()||n.alloc(0);return A&&(e=this._toString(e,A,!0)),e},o.prototype._toString=function(A,e,t){if(this._decoder||(this._decoder=new i(e),this._encoding=e),this._encoding!==e)throw new Error("can't switch encodings");var n=this._decoder.write(A);return t&&(n+=this._decoder.end()),n},e.exports=o},{"safe-buffer":"38Wu",stream:"fnRj",string_decoder:"z0rv",inherits:"4Bm0"}],LF8r:[function(A,e,t){"use strict";var n=A("inherits"),r=A("md5.js"),i=A("ripemd160"),o=A("sha.js"),a=A("cipher-base");function s(A){a.call(this,"digest"),this._hash=A}n(s,a),s.prototype._update=function(A){this._hash.update(A)},s.prototype._final=function(){return this._hash.digest()},e.exports=function(A){return"md5"===(A=A.toLowerCase())?new r:"rmd160"===A||"ripemd160"===A?new i:new s(o(A))}},{inherits:"4Bm0","md5.js":"OP64",ripemd160:"quyi","sha.js":"t0b9","cipher-base":"bjfr"}],aHbo:[function(A,e,t){"use strict";var n=A("inherits"),r=A("safe-buffer").Buffer,i=A("cipher-base"),o=r.alloc(128),a=64;function s(A,e){i.call(this,"digest"),"string"==typeof e&&(e=r.from(e)),this._alg=A,this._key=e,e.length>a?e=A(e):e.length<a&&(e=r.concat([e,o],a));for(var t=this._ipad=r.allocUnsafe(a),n=this._opad=r.allocUnsafe(a),s=0;s<a;s++)t[s]=54^e[s],n[s]=92^e[s];this._hash=[t]}n(s,i),s.prototype._update=function(A){this._hash.push(A)},s.prototype._final=function(){var A=this._alg(r.concat(this._hash));return this._alg(r.concat([this._opad,A]))},e.exports=s},{inherits:"4Bm0","safe-buffer":"38Wu","cipher-base":"bjfr"}],Mobq:[function(A,e,t){var n=A("md5.js");e.exports=function(A){return(new n).update(A).digest()}},{"md5.js":"OP64"}],"4Cx6":[function(A,e,t){"use strict";var n=A("inherits"),r=A("./legacy"),i=A("cipher-base"),o=A("safe-buffer").Buffer,a=A("create-hash/md5"),s=A("ripemd160"),g=A("sha.js"),I=o.alloc(128);function u(A,e){i.call(this,"digest"),"string"==typeof e&&(e=o.from(e));var t="sha512"===A||"sha384"===A?128:64;this._alg=A,this._key=e,e.length>t?e=("rmd160"===A?new s:g(A)).update(e).digest():e.length<t&&(e=o.concat([e,I],t));for(var n=this._ipad=o.allocUnsafe(t),r=this._opad=o.allocUnsafe(t),a=0;a<t;a++)n[a]=54^e[a],r[a]=92^e[a];this._hash="rmd160"===A?new s:g(A),this._hash.update(n)}n(u,i),u.prototype._update=function(A){this._hash.update(A)},u.prototype._final=function(){var A=this._hash.digest();return("rmd160"===this._alg?new s:g(this._alg)).update(this._opad).update(A).digest()},e.exports=function(A,e){return"rmd160"===(A=A.toLowerCase())||"ripemd160"===A?new u("rmd160",e):"md5"===A?new r(a,e):new u(A,e)}},{inherits:"4Bm0","./legacy":"aHbo","cipher-base":"bjfr","safe-buffer":"38Wu","create-hash/md5":"Mobq",ripemd160:"quyi","sha.js":"t0b9"}],WoCp:[function(A,e,t){e.exports={sha224WithRSAEncryption:{sign:"rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},"RSA-SHA224":{sign:"ecdsa/rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},sha256WithRSAEncryption:{sign:"rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},"RSA-SHA256":{sign:"ecdsa/rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},sha384WithRSAEncryption:{sign:"rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},"RSA-SHA384":{sign:"ecdsa/rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},sha512WithRSAEncryption:{sign:"rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA512":{sign:"ecdsa/rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA1":{sign:"rsa",hash:"sha1",id:"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{sign:"ecdsa",hash:"sha1",id:""},sha256:{sign:"ecdsa",hash:"sha256",id:""},sha224:{sign:"ecdsa",hash:"sha224",id:""},sha384:{sign:"ecdsa",hash:"sha384",id:""},sha512:{sign:"ecdsa",hash:"sha512",id:""},"DSA-SHA":{sign:"dsa",hash:"sha1",id:""},"DSA-SHA1":{sign:"dsa",hash:"sha1",id:""},DSA:{sign:"dsa",hash:"sha1",id:""},"DSA-WITH-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-WITH-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-WITH-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-WITH-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-RIPEMD160":{sign:"dsa",hash:"rmd160",id:""},ripemd160WithRSA:{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},"RSA-RIPEMD160":{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},md5WithRSAEncryption:{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"},"RSA-MD5":{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"}}},{}],YKr5:[function(A,e,t){e.exports=A("./browser/algorithms.json")},{"./browser/algorithms.json":"WoCp"}],Zu0X:[function(A,e,t){var n=Math.pow(2,30)-1;e.exports=function(A,e){if("number"!=typeof A)throw new TypeError("Iterations not a number");if(A<0)throw new TypeError("Bad iterations");if("number"!=typeof e)throw new TypeError("Key length not a number");if(e<0||e>n||e!=e)throw new TypeError("Bad key length")}},{}],ATA7:[function(A,e,t){A("process"),A("process");e.exports="utf-8"},{process:"pBGv"}],amCB:[function(A,e,t){var n=A("safe-buffer").Buffer;e.exports=function(A,e,t){if(n.isBuffer(A))return A;if("string"==typeof A)return n.from(A,e);if(ArrayBuffer.isView(A))return n.from(A.buffer);throw new TypeError(t+" must be a string, a Buffer, a typed array or a DataView")}},{"safe-buffer":"38Wu"}],"yOu+":[function(A,e,t){var n=A("create-hash/md5"),r=A("ripemd160"),i=A("sha.js"),o=A("safe-buffer").Buffer,a=A("./precondition"),s=A("./default-encoding"),g=A("./to-buffer"),I=o.alloc(128),u={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function f(A,e,t){var n=l(A),r="sha512"===A||"sha384"===A?128:64;e.length>r?e=n(e):e.length<r&&(e=o.concat([e,I],r));for(var i=o.allocUnsafe(r+u[A]),a=o.allocUnsafe(r+u[A]),s=0;s<r;s++)i[s]=54^e[s],a[s]=92^e[s];var g=o.allocUnsafe(r+t+4);i.copy(g,0,0,r),this.ipad1=g,this.ipad2=i,this.opad=a,this.alg=A,this.blocksize=r,this.hash=n,this.size=u[A]}function l(A){return"rmd160"===A||"ripemd160"===A?function(A){return(new r).update(A).digest()}:"md5"===A?n:function(e){return i(A).update(e).digest()}}f.prototype.run=function(A,e){return A.copy(e,this.blocksize),this.hash(e).copy(this.opad,this.blocksize),this.hash(this.opad)},e.exports=function(A,e,t,n,r){a(t,n);var i=new f(r=r||"sha1",A=g(A,s,"Password"),(e=g(e,s,"Salt")).length),I=o.allocUnsafe(n),l=o.allocUnsafe(e.length+4);e.copy(l,0,0,e.length);for(var B=0,E=u[r],c=Math.ceil(n/E),d=1;d<=c;d++){l.writeUInt32BE(d,e.length);for(var C=i.run(l,i.ipad1),h=C,Q=1;Q<t;Q++){h=i.run(h,i.ipad2);for(var p=0;p<E;p++)C[p]^=h[p]}C.copy(I,B),B+=E}return I}},{"create-hash/md5":"Mobq",ripemd160:"quyi","sha.js":"t0b9","safe-buffer":"38Wu","./precondition":"Zu0X","./default-encoding":"ATA7","./to-buffer":"amCB"}],Q3c6:[function(A,e,t){arguments[3],A("process");var n,r=arguments[3],i=A("process"),o=A("safe-buffer").Buffer,a=A("./precondition"),s=A("./default-encoding"),g=A("./sync"),I=A("./to-buffer"),u=r.crypto&&r.crypto.subtle,f={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},l=[];function B(A){if(r.process&&!r.process.browser)return Promise.resolve(!1);if(!u||!u.importKey||!u.deriveBits)return Promise.resolve(!1);if(void 0!==l[A])return l[A];var e=E(n=n||o.alloc(8),n,10,128,A).then(function(){return!0}).catch(function(){return!1});return l[A]=e,e}function E(A,e,t,n,r){return u.importKey("raw",A,{name:"PBKDF2"},!1,["deriveBits"]).then(function(A){return u.deriveBits({name:"PBKDF2",salt:e,iterations:t,hash:{name:r}},A,n<<3)}).then(function(A){return o.from(A)})}e.exports=function(A,e,t,n,o,u){"function"==typeof o&&(u=o,o=void 0);var l=f[(o=o||"sha1").toLowerCase()];if(!l||"function"!=typeof r.Promise)return i.nextTick(function(){var r;try{r=g(A,e,t,n,o)}catch(i){return u(i)}u(null,r)});if(a(t,n),A=I(A,s,"Password"),e=I(e,s,"Salt"),"function"!=typeof u)throw new Error("No callback provided to pbkdf2");!function(A,e){A.then(function(A){i.nextTick(function(){e(null,A)})},function(A){i.nextTick(function(){e(A)})})}(B(l).then(function(r){return r?E(A,e,t,n,l):g(A,e,t,n,o)}),u)}},{"safe-buffer":"38Wu","./precondition":"Zu0X","./default-encoding":"ATA7","./sync":"yOu+","./to-buffer":"amCB",process:"pBGv"}],BKdu:[function(A,e,t){t.pbkdf2=A("./lib/async"),t.pbkdf2Sync=A("./lib/sync")},{"./lib/async":"Q3c6","./lib/sync":"yOu+"}],"+a95":[function(A,e,t){"use strict";t.readUInt32BE=function(A,e){return(A[0+e]<<24|A[1+e]<<16|A[2+e]<<8|A[3+e])>>>0},t.writeUInt32BE=function(A,e,t){A[0+t]=e>>>24,A[1+t]=e>>>16&255,A[2+t]=e>>>8&255,A[3+t]=255&e},t.ip=function(A,e,t,n){for(var r=0,i=0,o=6;o>=0;o-=2){for(var a=0;a<=24;a+=8)r<<=1,r|=e>>>a+o&1;for(a=0;a<=24;a+=8)r<<=1,r|=A>>>a+o&1}for(o=6;o>=0;o-=2){for(a=1;a<=25;a+=8)i<<=1,i|=e>>>a+o&1;for(a=1;a<=25;a+=8)i<<=1,i|=A>>>a+o&1}t[n+0]=r>>>0,t[n+1]=i>>>0},t.rip=function(A,e,t,n){for(var r=0,i=0,o=0;o<4;o++)for(var a=24;a>=0;a-=8)r<<=1,r|=e>>>a+o&1,r<<=1,r|=A>>>a+o&1;for(o=4;o<8;o++)for(a=24;a>=0;a-=8)i<<=1,i|=e>>>a+o&1,i<<=1,i|=A>>>a+o&1;t[n+0]=r>>>0,t[n+1]=i>>>0},t.pc1=function(A,e,t,n){for(var r=0,i=0,o=7;o>=5;o--){for(var a=0;a<=24;a+=8)r<<=1,r|=e>>a+o&1;for(a=0;a<=24;a+=8)r<<=1,r|=A>>a+o&1}for(a=0;a<=24;a+=8)r<<=1,r|=e>>a+o&1;for(o=1;o<=3;o++){for(a=0;a<=24;a+=8)i<<=1,i|=e>>a+o&1;for(a=0;a<=24;a+=8)i<<=1,i|=A>>a+o&1}for(a=0;a<=24;a+=8)i<<=1,i|=A>>a+o&1;t[n+0]=r>>>0,t[n+1]=i>>>0},t.r28shl=function(A,e){return A<<e&268435455|A>>>28-e};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(A,e,t,r){for(var i=0,o=0,a=n.length>>>1,s=0;s<a;s++)i<<=1,i|=A>>>n[s]&1;for(s=a;s<n.length;s++)o<<=1,o|=e>>>n[s]&1;t[r+0]=i>>>0,t[r+1]=o>>>0},t.expand=function(A,e,t){var n=0,r=0;n=(1&A)<<5|A>>>27;for(var i=23;i>=15;i-=4)n<<=6,n|=A>>>i&63;for(i=11;i>=3;i-=4)r|=A>>>i&63,r<<=6;r|=(31&A)<<1|A>>>31,e[t+0]=n>>>0,e[t+1]=r>>>0};var r=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(A,e){for(var t=0,n=0;n<4;n++)t<<=4,t|=r[64*n+(A>>>18-6*n&63)];for(n=0;n<4;n++)t<<=4,t|=r[256+64*n+(e>>>18-6*n&63)];return t>>>0};var i=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(A){for(var e=0,t=0;t<i.length;t++)e<<=1,e|=A>>>i[t]&1;return e>>>0},t.padSplit=function(A,e,t){for(var n=A.toString(2);n.length<e;)n="0"+n;for(var r=[],i=0;i<e;i+=t)r.push(n.slice(i,i+t));return r.join(" ")}},{}],MpuC:[function(A,e,t){function n(A,e){if(!A)throw new Error(e||"Assertion failed")}e.exports=n,n.equal=function(A,e,t){if(A!=e)throw new Error(t||"Assertion failed: "+A+" != "+e)}},{}],"6eTz":[function(A,e,t){"use strict";var n=A("minimalistic-assert");function r(A){this.options=A,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}e.exports=r,r.prototype._init=function(){},r.prototype.update=function(A){return 0===A.length?[]:"decrypt"===this.type?this._updateDecrypt(A):this._updateEncrypt(A)},r.prototype._buffer=function(A,e){for(var t=Math.min(this.buffer.length-this.bufferOff,A.length-e),n=0;n<t;n++)this.buffer[this.bufferOff+n]=A[e+n];return this.bufferOff+=t,t},r.prototype._flushBuffer=function(A,e){return this._update(this.buffer,0,A,e),this.bufferOff=0,this.blockSize},r.prototype._updateEncrypt=function(A){var e=0,t=0,n=(this.bufferOff+A.length)/this.blockSize|0,r=new Array(n*this.blockSize);0!==this.bufferOff&&(e+=this._buffer(A,e),this.bufferOff===this.buffer.length&&(t+=this._flushBuffer(r,t)));for(var i=A.length-(A.length-e)%this.blockSize;e<i;e+=this.blockSize)this._update(A,e,r,t),t+=this.blockSize;for(;e<A.length;e++,this.bufferOff++)this.buffer[this.bufferOff]=A[e];return r},r.prototype._updateDecrypt=function(A){for(var e=0,t=0,n=Math.ceil((this.bufferOff+A.length)/this.blockSize)-1,r=new Array(n*this.blockSize);n>0;n--)e+=this._buffer(A,e),t+=this._flushBuffer(r,t);return e+=this._buffer(A,e),r},r.prototype.final=function(A){var e,t;return A&&(e=this.update(A)),t="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),e?e.concat(t):t},r.prototype._pad=function(A,e){if(0===e)return!1;for(;e<A.length;)A[e++]=0;return!0},r.prototype._finalEncrypt=function(){if(!this._pad(this.buffer,this.bufferOff))return[];var A=new Array(this.blockSize);return this._update(this.buffer,0,A,0),A},r.prototype._unpad=function(A){return A},r.prototype._finalDecrypt=function(){n.equal(this.bufferOff,this.blockSize,"Not enough data to decrypt");var A=new Array(this.blockSize);return this._flushBuffer(A,0),this._unpad(A)}},{"minimalistic-assert":"MpuC"}],"4UVx":[function(A,e,t){"use strict";var n=A("minimalistic-assert"),r=A("inherits"),i=A("./utils"),o=A("./cipher");function a(){this.tmp=new Array(2),this.keys=null}function s(A){o.call(this,A);var e=new a;this._desState=e,this.deriveKeys(e,A.key)}r(s,o),e.exports=s,s.create=function(A){return new s(A)};var g=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];s.prototype.deriveKeys=function(A,e){A.keys=new Array(32),n.equal(e.length,this.blockSize,"Invalid key length");var t=i.readUInt32BE(e,0),r=i.readUInt32BE(e,4);i.pc1(t,r,A.tmp,0),t=A.tmp[0],r=A.tmp[1];for(var o=0;o<A.keys.length;o+=2){var a=g[o>>>1];t=i.r28shl(t,a),r=i.r28shl(r,a),i.pc2(t,r,A.keys,o)}},s.prototype._update=function(A,e,t,n){var r=this._desState,o=i.readUInt32BE(A,e),a=i.readUInt32BE(A,e+4);i.ip(o,a,r.tmp,0),o=r.tmp[0],a=r.tmp[1],"encrypt"===this.type?this._encrypt(r,o,a,r.tmp,0):this._decrypt(r,o,a,r.tmp,0),o=r.tmp[0],a=r.tmp[1],i.writeUInt32BE(t,o,n),i.writeUInt32BE(t,a,n+4)},s.prototype._pad=function(A,e){for(var t=A.length-e,n=e;n<A.length;n++)A[n]=t;return!0},s.prototype._unpad=function(A){for(var e=A[A.length-1],t=A.length-e;t<A.length;t++)n.equal(A[t],e);return A.slice(0,A.length-e)},s.prototype._encrypt=function(A,e,t,n,r){for(var o=e,a=t,s=0;s<A.keys.length;s+=2){var g=A.keys[s],I=A.keys[s+1];i.expand(a,A.tmp,0),g^=A.tmp[0],I^=A.tmp[1];var u=i.substitute(g,I),f=a;a=(o^i.permute(u))>>>0,o=f}i.rip(a,o,n,r)},s.prototype._decrypt=function(A,e,t,n,r){for(var o=t,a=e,s=A.keys.length-2;s>=0;s-=2){var g=A.keys[s],I=A.keys[s+1];i.expand(o,A.tmp,0),g^=A.tmp[0],I^=A.tmp[1];var u=i.substitute(g,I),f=o;o=(a^i.permute(u))>>>0,a=f}i.rip(o,a,n,r)}},{"minimalistic-assert":"MpuC",inherits:"4Bm0","./utils":"+a95","./cipher":"6eTz"}],NN3V:[function(A,e,t){"use strict";var n=A("minimalistic-assert"),r=A("inherits"),i={};function o(A){n.equal(A.length,8,"Invalid IV length"),this.iv=new Array(8);for(var e=0;e<this.iv.length;e++)this.iv[e]=A[e]}t.instantiate=function(A){function e(e){A.call(this,e),this._cbcInit()}r(e,A);for(var t=Object.keys(i),n=0;n<t.length;n++){var o=t[n];e.prototype[o]=i[o]}return e.create=function(A){return new e(A)},e},i._cbcInit=function(){var A=new o(this.options.iv);this._cbcState=A},i._update=function(A,e,t,n){var r=this._cbcState,i=this.constructor.super_.prototype,o=r.iv;if("encrypt"===this.type){for(var a=0;a<this.blockSize;a++)o[a]^=A[e+a];for(i._update.call(this,o,0,t,n),a=0;a<this.blockSize;a++)o[a]=t[n+a]}else{for(i._update.call(this,A,e,t,n),a=0;a<this.blockSize;a++)t[n+a]^=o[a];for(a=0;a<this.blockSize;a++)o[a]=A[e+a]}}},{"minimalistic-assert":"MpuC",inherits:"4Bm0"}],jkwx:[function(A,e,t){"use strict";var n=A("minimalistic-assert"),r=A("inherits"),i=A("./cipher"),o=A("./des");function a(A,e){n.equal(e.length,24,"Invalid key length");var t=e.slice(0,8),r=e.slice(8,16),i=e.slice(16,24);this.ciphers="encrypt"===A?[o.create({type:"encrypt",key:t}),o.create({type:"decrypt",key:r}),o.create({type:"encrypt",key:i})]:[o.create({type:"decrypt",key:i}),o.create({type:"encrypt",key:r}),o.create({type:"decrypt",key:t})]}function s(A){i.call(this,A);var e=new a(this.type,this.options.key);this._edeState=e}r(s,i),e.exports=s,s.create=function(A){return new s(A)},s.prototype._update=function(A,e,t,n){var r=this._edeState;r.ciphers[0]._update(A,e,t,n),r.ciphers[1]._update(t,n,t,n),r.ciphers[2]._update(t,n,t,n)},s.prototype._pad=o.prototype._pad,s.prototype._unpad=o.prototype._unpad},{"minimalistic-assert":"MpuC",inherits:"4Bm0","./cipher":"6eTz","./des":"4UVx"}],Tikc:[function(A,e,t){"use strict";t.utils=A("./des/utils"),t.Cipher=A("./des/cipher"),t.DES=A("./des/des"),t.CBC=A("./des/cbc"),t.EDE=A("./des/ede")},{"./des/utils":"+a95","./des/cipher":"6eTz","./des/des":"4UVx","./des/cbc":"NN3V","./des/ede":"jkwx"}],sKVA:[function(A,e,t){var n=A("cipher-base"),r=A("des.js"),i=A("inherits"),o=A("safe-buffer").Buffer,a={"des-ede3-cbc":r.CBC.instantiate(r.EDE),"des-ede3":r.EDE,"des-ede-cbc":r.CBC.instantiate(r.EDE),"des-ede":r.EDE,"des-cbc":r.CBC.instantiate(r.DES),"des-ecb":r.DES};function s(A){n.call(this);var e,t=A.mode.toLowerCase(),r=a[t];e=A.decrypt?"decrypt":"encrypt";var i=A.key;o.isBuffer(i)||(i=o.from(i)),"des-ede"!==t&&"des-ede-cbc"!==t||(i=o.concat([i,i.slice(0,8)]));var s=A.iv;o.isBuffer(s)||(s=o.from(s)),this._des=r.create({key:i,iv:s,type:e})}a.des=a["des-cbc"],a.des3=a["des-ede3-cbc"],e.exports=s,i(s,n),s.prototype._update=function(A){return o.from(this._des.update(A))},s.prototype._final=function(){return o.from(this._des.final())}},{"cipher-base":"bjfr","des.js":"Tikc",inherits:"4Bm0","safe-buffer":"38Wu"}],"7deT":[function(A,e,t){t.encrypt=function(A,e){return A._cipher.encryptBlock(e)},t.decrypt=function(A,e){return A._cipher.decryptBlock(e)}},{}],Bi15:[function(A,e,t){A("buffer").Buffer;var n=A("buffer").Buffer;e.exports=function(A,e){for(var t=Math.min(A.length,e.length),r=new n(t),i=0;i<t;++i)r[i]=A[i]^e[i];return r}},{buffer:"dskh"}],n4Db:[function(A,e,t){var n=A("buffer-xor");t.encrypt=function(A,e){var t=n(e,A._prev);return A._prev=A._cipher.encryptBlock(t),A._prev},t.decrypt=function(A,e){var t=A._prev;A._prev=e;var r=A._cipher.decryptBlock(e);return n(r,t)}},{"buffer-xor":"Bi15"}],G0zN:[function(A,e,t){var n=A("safe-buffer").Buffer,r=A("buffer-xor");function i(A,e,t){var i=e.length,o=r(e,A._cache);return A._cache=A._cache.slice(i),A._prev=n.concat([A._prev,t?e:o]),o}t.encrypt=function(A,e,t){for(var r,o=n.allocUnsafe(0);e.length;){if(0===A._cache.length&&(A._cache=A._cipher.encryptBlock(A._prev),A._prev=n.allocUnsafe(0)),!(A._cache.length<=e.length)){o=n.concat([o,i(A,e,t)]);break}r=A._cache.length,o=n.concat([o,i(A,e.slice(0,r),t)]),e=e.slice(r)}return o}},{"safe-buffer":"38Wu","buffer-xor":"Bi15"}],GBMF:[function(A,e,t){var n=A("safe-buffer").Buffer;function r(A,e,t){var r=A._cipher.encryptBlock(A._prev)[0]^e;return A._prev=n.concat([A._prev.slice(1),n.from([t?e:r])]),r}t.encrypt=function(A,e,t){for(var i=e.length,o=n.allocUnsafe(i),a=-1;++a<i;)o[a]=r(A,e[a],t);return o}},{"safe-buffer":"38Wu"}],"7JZn":[function(A,e,t){var n=A("safe-buffer").Buffer;function r(A,e,t){for(var n,r,o=-1,a=0;++o<8;)n=e&1<<7-o?128:0,a+=(128&(r=A._cipher.encryptBlock(A._prev)[0]^n))>>o%8,A._prev=i(A._prev,t?n:r);return a}function i(A,e){var t=A.length,r=-1,i=n.allocUnsafe(A.length);for(A=n.concat([A,n.from([e])]);++r<t;)i[r]=A[r]<<1|A[r+1]>>7;return i}t.encrypt=function(A,e,t){for(var i=e.length,o=n.allocUnsafe(i),a=-1;++a<i;)o[a]=r(A,e[a],t);return o}},{"safe-buffer":"38Wu"}],"5fJ7":[function(A,e,t){A("buffer").Buffer;var n=A("buffer").Buffer,r=A("buffer-xor");function i(A){return A._prev=A._cipher.encryptBlock(A._prev),A._prev}t.encrypt=function(A,e){for(;A._cache.length<e.length;)A._cache=n.concat([A._cache,i(A)]);var t=A._cache.slice(0,e.length);return A._cache=A._cache.slice(e.length),r(e,t)}},{"buffer-xor":"Bi15",buffer:"dskh"}],"E/fO":[function(A,e,t){e.exports=function(A){for(var e,t=A.length;t--;){if(255!==(e=A.readUInt8(t))){e++,A.writeUInt8(e,t);break}A.writeUInt8(0,t)}}},{}],Iyxz:[function(A,e,t){var n=A("buffer-xor"),r=A("safe-buffer").Buffer,i=A("../incr32");function o(A){var e=A._cipher.encryptBlockRaw(A._prev);return i(A._prev),e}t.encrypt=function(A,e){var t=Math.ceil(e.length/16),i=A._cache.length;A._cache=r.concat([A._cache,r.allocUnsafe(16*t)]);for(var a=0;a<t;a++){var s=o(A),g=i+16*a;A._cache.writeUInt32BE(s[0],g+0),A._cache.writeUInt32BE(s[1],g+4),A._cache.writeUInt32BE(s[2],g+8),A._cache.writeUInt32BE(s[3],g+12)}var I=A._cache.slice(0,e.length);return A._cache=A._cache.slice(e.length),n(e,I)}},{"buffer-xor":"Bi15","safe-buffer":"38Wu","../incr32":"E/fO"}],veqz:[function(A,e,t){e.exports={"aes-128-ecb":{cipher:"AES",key:128,iv:0,mode:"ECB",type:"block"},"aes-192-ecb":{cipher:"AES",key:192,iv:0,mode:"ECB",type:"block"},"aes-256-ecb":{cipher:"AES",key:256,iv:0,mode:"ECB",type:"block"},"aes-128-cbc":{cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"},"aes-192-cbc":{cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"},"aes-256-cbc":{cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"},aes128:{cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"},aes192:{cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"},aes256:{cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"},"aes-128-cfb":{cipher:"AES",key:128,iv:16,mode:"CFB",type:"stream"},"aes-192-cfb":{cipher:"AES",key:192,iv:16,mode:"CFB",type:"stream"},"aes-256-cfb":{cipher:"AES",key:256,iv:16,mode:"CFB",type:"stream"},"aes-128-cfb8":{cipher:"AES",key:128,iv:16,mode:"CFB8",type:"stream"},"aes-192-cfb8":{cipher:"AES",key:192,iv:16,mode:"CFB8",type:"stream"},"aes-256-cfb8":{cipher:"AES",key:256,iv:16,mode:"CFB8",type:"stream"},"aes-128-cfb1":{cipher:"AES",key:128,iv:16,mode:"CFB1",type:"stream"},"aes-192-cfb1":{cipher:"AES",key:192,iv:16,mode:"CFB1",type:"stream"},"aes-256-cfb1":{cipher:"AES",key:256,iv:16,mode:"CFB1",type:"stream"},"aes-128-ofb":{cipher:"AES",key:128,iv:16,mode:"OFB",type:"stream"},"aes-192-ofb":{cipher:"AES",key:192,iv:16,mode:"OFB",type:"stream"},"aes-256-ofb":{cipher:"AES",key:256,iv:16,mode:"OFB",type:"stream"},"aes-128-ctr":{cipher:"AES",key:128,iv:16,mode:"CTR",type:"stream"},"aes-192-ctr":{cipher:"AES",key:192,iv:16,mode:"CTR",type:"stream"},"aes-256-ctr":{cipher:"AES",key:256,iv:16,mode:"CTR",type:"stream"},"aes-128-gcm":{cipher:"AES",key:128,iv:12,mode:"GCM",type:"auth"},"aes-192-gcm":{cipher:"AES",key:192,iv:12,mode:"GCM",type:"auth"},"aes-256-gcm":{cipher:"AES",key:256,iv:12,mode:"GCM",type:"auth"}}},{}],zdSg:[function(A,e,t){var n={ECB:A("./ecb"),CBC:A("./cbc"),CFB:A("./cfb"),CFB8:A("./cfb8"),CFB1:A("./cfb1"),OFB:A("./ofb"),CTR:A("./ctr"),GCM:A("./ctr")},r=A("./list.json");for(var i in r)r[i].module=n[r[i].mode];e.exports=r},{"./ecb":"7deT","./cbc":"n4Db","./cfb":"G0zN","./cfb8":"GBMF","./cfb1":"7JZn","./ofb":"5fJ7","./ctr":"Iyxz","./list.json":"veqz"}],dNn4:[function(A,e,t){var n=A("safe-buffer").Buffer;function r(A){n.isBuffer(A)||(A=n.from(A));for(var e=A.length/4|0,t=new Array(e),r=0;r<e;r++)t[r]=A.readUInt32BE(4*r);return t}function i(A){for(;0<A.length;A++)A[0]=0}function o(A,e,t,n,r){for(var i,o,a,s,g=t[0],I=t[1],u=t[2],f=t[3],l=A[0]^e[0],B=A[1]^e[1],E=A[2]^e[2],c=A[3]^e[3],d=4,C=1;C<r;C++)i=g[l>>>24]^I[B>>>16&255]^u[E>>>8&255]^f[255&c]^e[d++],o=g[B>>>24]^I[E>>>16&255]^u[c>>>8&255]^f[255&l]^e[d++],a=g[E>>>24]^I[c>>>16&255]^u[l>>>8&255]^f[255&B]^e[d++],s=g[c>>>24]^I[l>>>16&255]^u[B>>>8&255]^f[255&E]^e[d++],l=i,B=o,E=a,c=s;return i=(n[l>>>24]<<24|n[B>>>16&255]<<16|n[E>>>8&255]<<8|n[255&c])^e[d++],o=(n[B>>>24]<<24|n[E>>>16&255]<<16|n[c>>>8&255]<<8|n[255&l])^e[d++],a=(n[E>>>24]<<24|n[c>>>16&255]<<16|n[l>>>8&255]<<8|n[255&B])^e[d++],s=(n[c>>>24]<<24|n[l>>>16&255]<<16|n[B>>>8&255]<<8|n[255&E])^e[d++],[i>>>=0,o>>>=0,a>>>=0,s>>>=0]}var a=[0,1,2,4,8,16,32,64,128,27,54],s=function(){for(var A=new Array(256),e=0;e<256;e++)A[e]=e<128?e<<1:e<<1^283;for(var t=[],n=[],r=[[],[],[],[]],i=[[],[],[],[]],o=0,a=0,s=0;s<256;++s){var g=a^a<<1^a<<2^a<<3^a<<4;g=g>>>8^255&g^99,t[o]=g,n[g]=o;var I=A[o],u=A[I],f=A[u],l=257*A[g]^16843008*g;r[0][o]=l<<24|l>>>8,r[1][o]=l<<16|l>>>16,r[2][o]=l<<8|l>>>24,r[3][o]=l,l=16843009*f^65537*u^257*I^16843008*o,i[0][g]=l<<24|l>>>8,i[1][g]=l<<16|l>>>16,i[2][g]=l<<8|l>>>24,i[3][g]=l,0===o?o=a=1:(o=I^A[A[A[f^I]]],a^=A[A[a]])}return{SBOX:t,INV_SBOX:n,SUB_MIX:r,INV_SUB_MIX:i}}();function g(A){this._key=r(A),this._reset()}g.blockSize=16,g.keySize=32,g.prototype.blockSize=g.blockSize,g.prototype.keySize=g.keySize,g.prototype._reset=function(){for(var A=this._key,e=A.length,t=e+6,n=4*(t+1),r=[],i=0;i<e;i++)r[i]=A[i];for(i=e;i<n;i++){var o=r[i-1];i%e==0?(o=o<<8|o>>>24,o=s.SBOX[o>>>24]<<24|s.SBOX[o>>>16&255]<<16|s.SBOX[o>>>8&255]<<8|s.SBOX[255&o],o^=a[i/e|0]<<24):e>6&&i%e==4&&(o=s.SBOX[o>>>24]<<24|s.SBOX[o>>>16&255]<<16|s.SBOX[o>>>8&255]<<8|s.SBOX[255&o]),r[i]=r[i-e]^o}for(var g=[],I=0;I<n;I++){var u=n-I,f=r[u-(I%4?0:4)];g[I]=I<4||u<=4?f:s.INV_SUB_MIX[0][s.SBOX[f>>>24]]^s.INV_SUB_MIX[1][s.SBOX[f>>>16&255]]^s.INV_SUB_MIX[2][s.SBOX[f>>>8&255]]^s.INV_SUB_MIX[3][s.SBOX[255&f]]}this._nRounds=t,this._keySchedule=r,this._invKeySchedule=g},g.prototype.encryptBlockRaw=function(A){return o(A=r(A),this._keySchedule,s.SUB_MIX,s.SBOX,this._nRounds)},g.prototype.encryptBlock=function(A){var e=this.encryptBlockRaw(A),t=n.allocUnsafe(16);return t.writeUInt32BE(e[0],0),t.writeUInt32BE(e[1],4),t.writeUInt32BE(e[2],8),t.writeUInt32BE(e[3],12),t},g.prototype.decryptBlock=function(A){var e=(A=r(A))[1];A[1]=A[3],A[3]=e;var t=o(A,this._invKeySchedule,s.INV_SUB_MIX,s.INV_SBOX,this._nRounds),i=n.allocUnsafe(16);return i.writeUInt32BE(t[0],0),i.writeUInt32BE(t[3],4),i.writeUInt32BE(t[2],8),i.writeUInt32BE(t[1],12),i},g.prototype.scrub=function(){i(this._keySchedule),i(this._invKeySchedule),i(this._key)},e.exports.AES=g},{"safe-buffer":"38Wu"}],vgFu:[function(A,e,t){var n=A("safe-buffer").Buffer,r=n.alloc(16,0);function i(A){var e=n.allocUnsafe(16);return e.writeUInt32BE(A[0]>>>0,0),e.writeUInt32BE(A[1]>>>0,4),e.writeUInt32BE(A[2]>>>0,8),e.writeUInt32BE(A[3]>>>0,12),e}function o(A){this.h=A,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}o.prototype.ghash=function(A){for(var e=-1;++e<A.length;)this.state[e]^=A[e];this._multiply()},o.prototype._multiply=function(){for(var A,e,t=function(A){return[A.readUInt32BE(0),A.readUInt32BE(4),A.readUInt32BE(8),A.readUInt32BE(12)]}(this.h),n=[0,0,0,0],r=-1;++r<128;){for(0!=(this.state[~~(r/8)]&1<<7-r%8)&&(n[0]^=t[0],n[1]^=t[1],n[2]^=t[2],n[3]^=t[3]),e=0!=(1&t[3]),A=3;A>0;A--)t[A]=t[A]>>>1|(1&t[A-1])<<31;t[0]=t[0]>>>1,e&&(t[0]=t[0]^225<<24)}this.state=i(n)},o.prototype.update=function(A){var e;for(this.cache=n.concat([this.cache,A]);this.cache.length>=16;)e=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(e)},o.prototype.final=function(A,e){return this.cache.length&&this.ghash(n.concat([this.cache,r],16)),this.ghash(i([0,A,0,e])),this.state},e.exports=o},{"safe-buffer":"38Wu"}],"KD+Z":[function(A,e,t){var n=A("./aes"),r=A("safe-buffer").Buffer,i=A("cipher-base"),o=A("inherits"),a=A("./ghash"),s=A("buffer-xor"),g=A("./incr32");function I(A,e,t){if(12===e.length)return A._finID=r.concat([e,r.from([0,0,0,1])]),r.concat([e,r.from([0,0,0,2])]);var n=new a(t),i=e.length,o=i%16;n.update(e),o&&(o=16-o,n.update(r.alloc(o,0))),n.update(r.alloc(8,0));var s=8*i,I=r.alloc(8);I.writeUIntBE(s,0,8),n.update(I),A._finID=n.state;var u=r.from(A._finID);return g(u),u}function u(A,e,t,o){i.call(this);var s=r.alloc(4,0);this._cipher=new n.AES(e);var g=this._cipher.encryptBlock(s);this._ghash=new a(g),t=I(this,t,g),this._prev=r.from(t),this._cache=r.allocUnsafe(0),this._secCache=r.allocUnsafe(0),this._decrypt=o,this._alen=0,this._len=0,this._mode=A,this._authTag=null,this._called=!1}o(u,i),u.prototype._update=function(A){if(!this._called&&this._alen){var e=16-this._alen%16;e<16&&(e=r.alloc(e,0),this._ghash.update(e))}this._called=!0;var t=this._mode.encrypt(this,A);return this._decrypt?this._ghash.update(A):this._ghash.update(t),this._len+=A.length,t},u.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var A=s(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(A,e){var t=0;A.length!==e.length&&t++;for(var n=Math.min(A.length,e.length),r=0;r<n;++r)t+=A[r]^e[r];return t}(A,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=A,this._cipher.scrub()},u.prototype.getAuthTag=function(){if(this._decrypt||!r.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag},u.prototype.setAuthTag=function(A){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=A},u.prototype.setAAD=function(A){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(A),this._alen+=A.length},e.exports=u},{"./aes":"dNn4","safe-buffer":"38Wu","cipher-base":"bjfr",inherits:"4Bm0","./ghash":"vgFu","buffer-xor":"Bi15","./incr32":"E/fO"}],XmsB:[function(A,e,t){var n=A("./aes"),r=A("safe-buffer").Buffer,i=A("cipher-base");function o(A,e,t,o){i.call(this),this._cipher=new n.AES(e),this._prev=r.from(t),this._cache=r.allocUnsafe(0),this._secCache=r.allocUnsafe(0),this._decrypt=o,this._mode=A}A("inherits")(o,i),o.prototype._update=function(A){return this._mode.encrypt(this,A,this._decrypt)},o.prototype._final=function(){this._cipher.scrub()},e.exports=o},{"./aes":"dNn4","safe-buffer":"38Wu","cipher-base":"bjfr",inherits:"4Bm0"}],exU6:[function(A,e,t){var n=A("safe-buffer").Buffer,r=A("md5.js");e.exports=function(A,e,t,i){if(n.isBuffer(A)||(A=n.from(A,"binary")),e&&(n.isBuffer(e)||(e=n.from(e,"binary")),8!==e.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var o=t/8,a=n.alloc(o),s=n.alloc(i||0),g=n.alloc(0);o>0||i>0;){var I=new r;I.update(g),I.update(A),e&&I.update(e),g=I.digest();var u=0;if(o>0){var f=a.length-o;u=Math.min(o,g.length),g.copy(a,f,0,u),o-=u}if(u<g.length&&i>0){var l=s.length-i,B=Math.min(i,g.length-u);g.copy(s,l,u,u+B),i-=B}}return g.fill(0),{key:a,iv:s}}},{"safe-buffer":"38Wu","md5.js":"OP64"}],zRzx:[function(A,e,t){var n=A("./modes"),r=A("./authCipher"),i=A("safe-buffer").Buffer,o=A("./streamCipher"),a=A("cipher-base"),s=A("./aes"),g=A("evp_bytestokey");function I(A,e,t){a.call(this),this._cache=new f,this._cipher=new s.AES(e),this._prev=i.from(t),this._mode=A,this._autopadding=!0}A("inherits")(I,a),I.prototype._update=function(A){var e,t;this._cache.add(A);for(var n=[];e=this._cache.get();)t=this._mode.encrypt(this,e),n.push(t);return i.concat(n)};var u=i.alloc(16,16);function f(){this.cache=i.allocUnsafe(0)}function l(A,e,t){var a=n[A.toLowerCase()];if(!a)throw new TypeError("invalid suite type");if("string"==typeof e&&(e=i.from(e)),e.length!==a.key/8)throw new TypeError("invalid key length "+e.length);if("string"==typeof t&&(t=i.from(t)),"GCM"!==a.mode&&t.length!==a.iv)throw new TypeError("invalid iv length "+t.length);return"stream"===a.type?new o(a.module,e,t):"auth"===a.type?new r(a.module,e,t):new I(a.module,e,t)}I.prototype._final=function(){var A=this._cache.flush();if(this._autopadding)return A=this._mode.encrypt(this,A),this._cipher.scrub(),A;if(!A.equals(u))throw this._cipher.scrub(),new Error("data not multiple of block length")},I.prototype.setAutoPadding=function(A){return this._autopadding=!!A,this},f.prototype.add=function(A){this.cache=i.concat([this.cache,A])},f.prototype.get=function(){if(this.cache.length>15){var A=this.cache.slice(0,16);return this.cache=this.cache.slice(16),A}return null},f.prototype.flush=function(){for(var A=16-this.cache.length,e=i.allocUnsafe(A),t=-1;++t<A;)e.writeUInt8(A,t);return i.concat([this.cache,e])},t.createCipheriv=l,t.createCipher=function(A,e){var t=n[A.toLowerCase()];if(!t)throw new TypeError("invalid suite type");var r=g(e,!1,t.key,t.iv);return l(A,r.key,r.iv)}},{"./modes":"zdSg","./authCipher":"KD+Z","safe-buffer":"38Wu","./streamCipher":"XmsB","cipher-base":"bjfr","./aes":"dNn4",evp_bytestokey:"exU6",inherits:"4Bm0"}],"qK/8":[function(A,e,t){var n=A("./authCipher"),r=A("safe-buffer").Buffer,i=A("./modes"),o=A("./streamCipher"),a=A("cipher-base"),s=A("./aes"),g=A("evp_bytestokey");function I(A,e,t){a.call(this),this._cache=new u,this._last=void 0,this._cipher=new s.AES(e),this._prev=r.from(t),this._mode=A,this._autopadding=!0}function u(){this.cache=r.allocUnsafe(0)}function f(A,e,t){var a=i[A.toLowerCase()];if(!a)throw new TypeError("invalid suite type");if("string"==typeof t&&(t=r.from(t)),"GCM"!==a.mode&&t.length!==a.iv)throw new TypeError("invalid iv length "+t.length);if("string"==typeof e&&(e=r.from(e)),e.length!==a.key/8)throw new TypeError("invalid key length "+e.length);return"stream"===a.type?new o(a.module,e,t,!0):"auth"===a.type?new n(a.module,e,t,!0):new I(a.module,e,t)}A("inherits")(I,a),I.prototype._update=function(A){var e,t;this._cache.add(A);for(var n=[];e=this._cache.get(this._autopadding);)t=this._mode.decrypt(this,e),n.push(t);return r.concat(n)},I.prototype._final=function(){var A=this._cache.flush();if(this._autopadding)return function(A){var e=A[15];if(e<1||e>16)throw new Error("unable to decrypt data");for(var t=-1;++t<e;)if(A[t+(16-e)]!==e)throw new Error("unable to decrypt data");if(16!==e)return A.slice(0,16-e)}(this._mode.decrypt(this,A));if(A)throw new Error("data not multiple of block length")},I.prototype.setAutoPadding=function(A){return this._autopadding=!!A,this},u.prototype.add=function(A){this.cache=r.concat([this.cache,A])},u.prototype.get=function(A){var e;if(A){if(this.cache.length>16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e}else if(this.cache.length>=16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e;return null},u.prototype.flush=function(){if(this.cache.length)return this.cache},t.createDecipher=function(A,e){var t=i[A.toLowerCase()];if(!t)throw new TypeError("invalid suite type");var n=g(e,!1,t.key,t.iv);return f(A,n.key,n.iv)},t.createDecipheriv=f},{"./authCipher":"KD+Z","safe-buffer":"38Wu","./modes":"zdSg","./streamCipher":"XmsB","cipher-base":"bjfr","./aes":"dNn4",evp_bytestokey:"exU6",inherits:"4Bm0"}],hisC:[function(A,e,t){var n=A("./encrypter"),r=A("./decrypter"),i=A("./modes/list.json");t.createCipher=t.Cipher=n.createCipher,t.createCipheriv=t.Cipheriv=n.createCipheriv,t.createDecipher=t.Decipher=r.createDecipher,t.createDecipheriv=t.Decipheriv=r.createDecipheriv,t.listCiphers=t.getCiphers=function(){return Object.keys(i)}},{"./encrypter":"zRzx","./decrypter":"qK/8","./modes/list.json":"veqz"}],V0IC:[function(A,e,t){t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},{}],"+KTb":[function(A,e,t){var n=A("browserify-des"),r=A("browserify-aes/browser"),i=A("browserify-aes/modes"),o=A("browserify-des/modes"),a=A("evp_bytestokey");function s(A,e,t){if(A=A.toLowerCase(),i[A])return r.createCipheriv(A,e,t);if(o[A])return new n({key:e,iv:t,mode:A});throw new TypeError("invalid suite type")}function g(A,e,t){if(A=A.toLowerCase(),i[A])return r.createDecipheriv(A,e,t);if(o[A])return new n({key:e,iv:t,mode:A,decrypt:!0});throw new TypeError("invalid suite type")}t.createCipher=t.Cipher=function(A,e){var t,n;if(A=A.toLowerCase(),i[A])t=i[A].key,n=i[A].iv;else{if(!o[A])throw new TypeError("invalid suite type");t=8*o[A].key,n=o[A].iv}var r=a(e,!1,t,n);return s(A,r.key,r.iv)},t.createCipheriv=t.Cipheriv=s,t.createDecipher=t.Decipher=function(A,e){var t,n;if(A=A.toLowerCase(),i[A])t=i[A].key,n=i[A].iv;else{if(!o[A])throw new TypeError("invalid suite type");t=8*o[A].key,n=o[A].iv}var r=a(e,!1,t,n);return g(A,r.key,r.iv)},t.createDecipheriv=t.Decipheriv=g,t.listCiphers=t.getCiphers=function(){return Object.keys(o).concat(r.getCiphers())}},{"browserify-des":"sKVA","browserify-aes/browser":"hisC","browserify-aes/modes":"zdSg","browserify-des/modes":"V0IC",evp_bytestokey:"exU6"}],VXic:[function(A,e,t){A("buffer").Buffer,A("buffer").Buffer;!function(e,t){"use strict";function n(A,e){if(!A)throw new Error(e||"Assertion failed")}function r(A,e){A.super_=e;var t=function(){};t.prototype=e.prototype,A.prototype=new t,A.prototype.constructor=A}function i(A,e,t){if(i.isBN(A))return A;this.negative=0,this.words=null,this.length=0,this.red=null,null!==A&&("le"!==e&&"be"!==e||(t=e,e=10),this._init(A||0,e||10,t||"be"))}var o;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:A("buffer").Buffer}catch(b){}function a(A,e){var t=A.charCodeAt(e);return t>=65&&t<=70?t-55:t>=97&&t<=102?t-87:t-48&15}function s(A,e,t){var n=a(A,t);return t-1>=e&&(n|=a(A,t-1)<<4),n}function g(A,e,t,n){for(var r=0,i=Math.min(A.length,t),o=e;o<i;o++){var a=A.charCodeAt(o)-48;r*=n,r+=a>=49?a-49+10:a>=17?a-17+10:a}return r}i.isBN=function(A){return A instanceof i||null!==A&&"object"==typeof A&&A.constructor.wordSize===i.wordSize&&Array.isArray(A.words)},i.max=function(A,e){return A.cmp(e)>0?A:e},i.min=function(A,e){return A.cmp(e)<0?A:e},i.prototype._init=function(A,e,t){if("number"==typeof A)return this._initNumber(A,e,t);if("object"==typeof A)return this._initArray(A,e,t);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var r=0;"-"===(A=A.toString().replace(/\s+/g,""))[0]&&(r++,this.negative=1),r<A.length&&(16===e?this._parseHex(A,r,t):(this._parseBase(A,e,r),"le"===t&&this._initArray(this.toArray(),e,t)))},i.prototype._initNumber=function(A,e,t){A<0&&(this.negative=1,A=-A),A<67108864?(this.words=[67108863&A],this.length=1):A<4503599627370496?(this.words=[67108863&A,A/67108864&67108863],this.length=2):(n(A<9007199254740992),this.words=[67108863&A,A/67108864&67108863,1],this.length=3),"le"===t&&this._initArray(this.toArray(),e,t)},i.prototype._initArray=function(A,e,t){if(n("number"==typeof A.length),A.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(A.length/3),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,o,a=0;if("be"===t)for(r=A.length-1,i=0;r>=0;r-=3)o=A[r]|A[r-1]<<8|A[r-2]<<16,this.words[i]|=o<<a&67108863,this.words[i+1]=o>>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);else if("le"===t)for(r=0,i=0;r<A.length;r+=3)o=A[r]|A[r+1]<<8|A[r+2]<<16,this.words[i]|=o<<a&67108863,this.words[i+1]=o>>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);return this.strip()},i.prototype._parseHex=function(A,e,t){this.length=Math.ceil((A.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var r,i=0,o=0;if("be"===t)for(n=A.length-1;n>=e;n-=2)r=s(A,e,n)<<i,this.words[o]|=67108863&r,i>=18?(i-=18,o+=1,this.words[o]|=r>>>26):i+=8;else for(n=(A.length-e)%2==0?e+1:e;n<A.length;n+=2)r=s(A,e,n)<<i,this.words[o]|=67108863&r,i>=18?(i-=18,o+=1,this.words[o]|=r>>>26):i+=8;this.strip()},i.prototype._parseBase=function(A,e,t){this.words=[0],this.length=1;for(var n=0,r=1;r<=67108863;r*=e)n++;n--,r=r/e|0;for(var i=A.length-t,o=i%n,a=Math.min(i,i-o)+t,s=0,I=t;I<a;I+=n)s=g(A,I,I+n,e),this.imuln(r),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s);if(0!==o){var u=1;for(s=g(A,I,A.length,e),I=0;I<o;I++)u*=e;this.imuln(u),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s)}this.strip()},i.prototype.copy=function(A){A.words=new Array(this.length);for(var e=0;e<this.length;e++)A.words[e]=this.words[e];A.length=this.length,A.negative=this.negative,A.red=this.red},i.prototype.clone=function(){var A=new i(null);return this.copy(A),A},i.prototype._expand=function(A){for(;this.length<A;)this.words[this.length++]=0;return this},i.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var I=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],u=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function l(A,e,t){t.negative=e.negative^A.negative;var n=A.length+e.length|0;t.length=n,n=n-1|0;var r=0|A.words[0],i=0|e.words[0],o=r*i,a=67108863&o,s=o/67108864|0;t.words[0]=a;for(var g=1;g<n;g++){for(var I=s>>>26,u=67108863&s,f=Math.min(g,e.length-1),l=Math.max(0,g-A.length+1);l<=f;l++){var B=g-l|0;I+=(o=(r=0|A.words[B])*(i=0|e.words[l])+u)/67108864|0,u=67108863&o}t.words[g]=0|u,s=0|I}return 0!==s?t.words[g]=0|s:t.length--,t.strip()}i.prototype.toString=function(A,e){var t;if(e=0|e||1,16===(A=A||10)||"hex"===A){t="";for(var r=0,i=0,o=0;o<this.length;o++){var a=this.words[o],s=(16777215&(a<<r|i)).toString(16);t=0!=(i=a>>>24-r&16777215)||o!==this.length-1?I[6-s.length]+s+t:s+t,(r+=2)>=26&&(r-=26,o--)}for(0!==i&&(t=i.toString(16)+t);t.length%e!=0;)t="0"+t;return 0!==this.negative&&(t="-"+t),t}if(A===(0|A)&&A>=2&&A<=36){var g=u[A],l=f[A];t="";var B=this.clone();for(B.negative=0;!B.isZero();){var E=B.modn(l).toString(A);t=(B=B.idivn(l)).isZero()?E+t:I[g-E.length]+E+t}for(this.isZero()&&(t="0"+t);t.length%e!=0;)t="0"+t;return 0!==this.negative&&(t="-"+t),t}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var A=this.words[0];return 2===this.length?A+=67108864*this.words[1]:3===this.length&&1===this.words[2]?A+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-A:A},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(A,e){return n(void 0!==o),this.toArrayLike(o,A,e)},i.prototype.toArray=function(A,e){return this.toArrayLike(Array,A,e)},i.prototype.toArrayLike=function(A,e,t){var r=this.byteLength(),i=t||Math.max(1,r);n(r<=i,"byte array longer than desired length"),n(i>0,"Requested array length <= 0"),this.strip();var o,a,s="le"===e,g=new A(i),I=this.clone();if(s){for(a=0;!I.isZero();a++)o=I.andln(255),I.iushrn(8),g[a]=o;for(;a<i;a++)g[a]=0}else{for(a=0;a<i-r;a++)g[a]=0;for(a=0;!I.isZero();a++)o=I.andln(255),I.iushrn(8),g[i-a-1]=o}return g},Math.clz32?i.prototype._countBits=function(A){return 32-Math.clz32(A)}:i.prototype._countBits=function(A){var e=A,t=0;return e>=4096&&(t+=13,e>>>=13),e>=64&&(t+=7,e>>>=7),e>=8&&(t+=4,e>>>=4),e>=2&&(t+=2,e>>>=2),t+e},i.prototype._zeroBits=function(A){if(0===A)return 26;var e=A,t=0;return 0==(8191&e)&&(t+=13,e>>>=13),0==(127&e)&&(t+=7,e>>>=7),0==(15&e)&&(t+=4,e>>>=4),0==(3&e)&&(t+=2,e>>>=2),0==(1&e)&&t++,t},i.prototype.bitLength=function(){var A=this.words[this.length-1],e=this._countBits(A);return 26*(this.length-1)+e},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var A=0,e=0;e<this.length;e++){var t=this._zeroBits(this.words[e]);if(A+=t,26!==t)break}return A},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(A){return 0!==this.negative?this.abs().inotn(A).iaddn(1):this.clone()},i.prototype.fromTwos=function(A){return this.testn(A-1)?this.notn(A).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(A){for(;this.length<A.length;)this.words[this.length++]=0;for(var e=0;e<A.length;e++)this.words[e]=this.words[e]|A.words[e];return this.strip()},i.prototype.ior=function(A){return n(0==(this.negative|A.negative)),this.iuor(A)},i.prototype.or=function(A){return this.length>A.length?this.clone().ior(A):A.clone().ior(this)},i.prototype.uor=function(A){return this.length>A.length?this.clone().iuor(A):A.clone().iuor(this)},i.prototype.iuand=function(A){var e;e=this.length>A.length?A:this;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]&A.words[t];return this.length=e.length,this.strip()},i.prototype.iand=function(A){return n(0==(this.negative|A.negative)),this.iuand(A)},i.prototype.and=function(A){return this.length>A.length?this.clone().iand(A):A.clone().iand(this)},i.prototype.uand=function(A){return this.length>A.length?this.clone().iuand(A):A.clone().iuand(this)},i.prototype.iuxor=function(A){var e,t;this.length>A.length?(e=this,t=A):(e=A,t=this);for(var n=0;n<t.length;n++)this.words[n]=e.words[n]^t.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this.strip()},i.prototype.ixor=function(A){return n(0==(this.negative|A.negative)),this.iuxor(A)},i.prototype.xor=function(A){return this.length>A.length?this.clone().ixor(A):A.clone().ixor(this)},i.prototype.uxor=function(A){return this.length>A.length?this.clone().iuxor(A):A.clone().iuxor(this)},i.prototype.inotn=function(A){n("number"==typeof A&&A>=0);var e=0|Math.ceil(A/26),t=A%26;this._expand(e),t>0&&e--;for(var r=0;r<e;r++)this.words[r]=67108863&~this.words[r];return t>0&&(this.words[r]=~this.words[r]&67108863>>26-t),this.strip()},i.prototype.notn=function(A){return this.clone().inotn(A)},i.prototype.setn=function(A,e){n("number"==typeof A&&A>=0);var t=A/26|0,r=A%26;return this._expand(t+1),this.words[t]=e?this.words[t]|1<<r:this.words[t]&~(1<<r),this.strip()},i.prototype.iadd=function(A){var e,t,n;if(0!==this.negative&&0===A.negative)return this.negative=0,e=this.isub(A),this.negative^=1,this._normSign();if(0===this.negative&&0!==A.negative)return A.negative=0,e=this.isub(A),A.negative=1,e._normSign();this.length>A.length?(t=this,n=A):(t=A,n=this);for(var r=0,i=0;i<n.length;i++)e=(0|t.words[i])+(0|n.words[i])+r,this.words[i]=67108863&e,r=e>>>26;for(;0!==r&&i<t.length;i++)e=(0|t.words[i])+r,this.words[i]=67108863&e,r=e>>>26;if(this.length=t.length,0!==r)this.words[this.length]=r,this.length++;else if(t!==this)for(;i<t.length;i++)this.words[i]=t.words[i];return this},i.prototype.add=function(A){var e;return 0!==A.negative&&0===this.negative?(A.negative=0,e=this.sub(A),A.negative^=1,e):0===A.negative&&0!==this.negative?(this.negative=0,e=A.sub(this),this.negative=1,e):this.length>A.length?this.clone().iadd(A):A.clone().iadd(this)},i.prototype.isub=function(A){if(0!==A.negative){A.negative=0;var e=this.iadd(A);return A.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(A),this.negative=1,this._normSign();var t,n,r=this.cmp(A);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(t=this,n=A):(t=A,n=this);for(var i=0,o=0;o<n.length;o++)i=(e=(0|t.words[o])-(0|n.words[o])+i)>>26,this.words[o]=67108863&e;for(;0!==i&&o<t.length;o++)i=(e=(0|t.words[o])+i)>>26,this.words[o]=67108863&e;if(0===i&&o<t.length&&t!==this)for(;o<t.length;o++)this.words[o]=t.words[o];return this.length=Math.max(this.length,o),t!==this&&(this.negative=1),this.strip()},i.prototype.sub=function(A){return this.clone().isub(A)};var B=function(A,e,t){var n,r,i,o=A.words,a=e.words,s=t.words,g=0,I=0|o[0],u=8191&I,f=I>>>13,l=0|o[1],B=8191&l,E=l>>>13,c=0|o[2],d=8191&c,C=c>>>13,h=0|o[3],Q=8191&h,p=h>>>13,m=0|o[4],y=8191&m,w=m>>>13,b=0|o[5],_=8191&b,D=b>>>13,v=0|o[6],R=8191&v,F=v>>>13,M=0|o[7],S=8191&M,k=M>>>13,G=0|o[8],N=8191&G,P=G>>>13,L=0|o[9],U=8191&L,Y=L>>>13,x=0|a[0],Z=8191&x,H=x>>>13,X=0|a[1],K=8191&X,T=X>>>13,W=0|a[2],q=8191&W,J=W>>>13,V=0|a[3],O=8191&V,z=V>>>13,j=0|a[4],$=8191&j,AA=j>>>13,eA=0|a[5],tA=8191&eA,nA=eA>>>13,rA=0|a[6],iA=8191&rA,oA=rA>>>13,aA=0|a[7],sA=8191&aA,gA=aA>>>13,IA=0|a[8],uA=8191&IA,fA=IA>>>13,lA=0|a[9],BA=8191&lA,EA=lA>>>13;t.negative=A.negative^e.negative,t.length=19;var cA=(g+(n=Math.imul(u,Z))|0)+((8191&(r=(r=Math.imul(u,H))+Math.imul(f,Z)|0))<<13)|0;g=((i=Math.imul(f,H))+(r>>>13)|0)+(cA>>>26)|0,cA&=67108863,n=Math.imul(B,Z),r=(r=Math.imul(B,H))+Math.imul(E,Z)|0,i=Math.imul(E,H);var dA=(g+(n=n+Math.imul(u,K)|0)|0)+((8191&(r=(r=r+Math.imul(u,T)|0)+Math.imul(f,K)|0))<<13)|0;g=((i=i+Math.imul(f,T)|0)+(r>>>13)|0)+(dA>>>26)|0,dA&=67108863,n=Math.imul(d,Z),r=(r=Math.imul(d,H))+Math.imul(C,Z)|0,i=Math.imul(C,H),n=n+Math.imul(B,K)|0,r=(r=r+Math.imul(B,T)|0)+Math.imul(E,K)|0,i=i+Math.imul(E,T)|0;var CA=(g+(n=n+Math.imul(u,q)|0)|0)+((8191&(r=(r=r+Math.imul(u,J)|0)+Math.imul(f,q)|0))<<13)|0;g=((i=i+Math.imul(f,J)|0)+(r>>>13)|0)+(CA>>>26)|0,CA&=67108863,n=Math.imul(Q,Z),r=(r=Math.imul(Q,H))+Math.imul(p,Z)|0,i=Math.imul(p,H),n=n+Math.imul(d,K)|0,r=(r=r+Math.imul(d,T)|0)+Math.imul(C,K)|0,i=i+Math.imul(C,T)|0,n=n+Math.imul(B,q)|0,r=(r=r+Math.imul(B,J)|0)+Math.imul(E,q)|0,i=i+Math.imul(E,J)|0;var hA=(g+(n=n+Math.imul(u,O)|0)|0)+((8191&(r=(r=r+Math.imul(u,z)|0)+Math.imul(f,O)|0))<<13)|0;g=((i=i+Math.imul(f,z)|0)+(r>>>13)|0)+(hA>>>26)|0,hA&=67108863,n=Math.imul(y,Z),r=(r=Math.imul(y,H))+Math.imul(w,Z)|0,i=Math.imul(w,H),n=n+Math.imul(Q,K)|0,r=(r=r+Math.imul(Q,T)|0)+Math.imul(p,K)|0,i=i+Math.imul(p,T)|0,n=n+Math.imul(d,q)|0,r=(r=r+Math.imul(d,J)|0)+Math.imul(C,q)|0,i=i+Math.imul(C,J)|0,n=n+Math.imul(B,O)|0,r=(r=r+Math.imul(B,z)|0)+Math.imul(E,O)|0,i=i+Math.imul(E,z)|0;var QA=(g+(n=n+Math.imul(u,$)|0)|0)+((8191&(r=(r=r+Math.imul(u,AA)|0)+Math.imul(f,$)|0))<<13)|0;g=((i=i+Math.imul(f,AA)|0)+(r>>>13)|0)+(QA>>>26)|0,QA&=67108863,n=Math.imul(_,Z),r=(r=Math.imul(_,H))+Math.imul(D,Z)|0,i=Math.imul(D,H),n=n+Math.imul(y,K)|0,r=(r=r+Math.imul(y,T)|0)+Math.imul(w,K)|0,i=i+Math.imul(w,T)|0,n=n+Math.imul(Q,q)|0,r=(r=r+Math.imul(Q,J)|0)+Math.imul(p,q)|0,i=i+Math.imul(p,J)|0,n=n+Math.imul(d,O)|0,r=(r=r+Math.imul(d,z)|0)+Math.imul(C,O)|0,i=i+Math.imul(C,z)|0,n=n+Math.imul(B,$)|0,r=(r=r+Math.imul(B,AA)|0)+Math.imul(E,$)|0,i=i+Math.imul(E,AA)|0;var pA=(g+(n=n+Math.imul(u,tA)|0)|0)+((8191&(r=(r=r+Math.imul(u,nA)|0)+Math.imul(f,tA)|0))<<13)|0;g=((i=i+Math.imul(f,nA)|0)+(r>>>13)|0)+(pA>>>26)|0,pA&=67108863,n=Math.imul(R,Z),r=(r=Math.imul(R,H))+Math.imul(F,Z)|0,i=Math.imul(F,H),n=n+Math.imul(_,K)|0,r=(r=r+Math.imul(_,T)|0)+Math.imul(D,K)|0,i=i+Math.imul(D,T)|0,n=n+Math.imul(y,q)|0,r=(r=r+Math.imul(y,J)|0)+Math.imul(w,q)|0,i=i+Math.imul(w,J)|0,n=n+Math.imul(Q,O)|0,r=(r=r+Math.imul(Q,z)|0)+Math.imul(p,O)|0,i=i+Math.imul(p,z)|0,n=n+Math.imul(d,$)|0,r=(r=r+Math.imul(d,AA)|0)+Math.imul(C,$)|0,i=i+Math.imul(C,AA)|0,n=n+Math.imul(B,tA)|0,r=(r=r+Math.imul(B,nA)|0)+Math.imul(E,tA)|0,i=i+Math.imul(E,nA)|0;var mA=(g+(n=n+Math.imul(u,iA)|0)|0)+((8191&(r=(r=r+Math.imul(u,oA)|0)+Math.imul(f,iA)|0))<<13)|0;g=((i=i+Math.imul(f,oA)|0)+(r>>>13)|0)+(mA>>>26)|0,mA&=67108863,n=Math.imul(S,Z),r=(r=Math.imul(S,H))+Math.imul(k,Z)|0,i=Math.imul(k,H),n=n+Math.imul(R,K)|0,r=(r=r+Math.imul(R,T)|0)+Math.imul(F,K)|0,i=i+Math.imul(F,T)|0,n=n+Math.imul(_,q)|0,r=(r=r+Math.imul(_,J)|0)+Math.imul(D,q)|0,i=i+Math.imul(D,J)|0,n=n+Math.imul(y,O)|0,r=(r=r+Math.imul(y,z)|0)+Math.imul(w,O)|0,i=i+Math.imul(w,z)|0,n=n+Math.imul(Q,$)|0,r=(r=r+Math.imul(Q,AA)|0)+Math.imul(p,$)|0,i=i+Math.imul(p,AA)|0,n=n+Math.imul(d,tA)|0,r=(r=r+Math.imul(d,nA)|0)+Math.imul(C,tA)|0,i=i+Math.imul(C,nA)|0,n=n+Math.imul(B,iA)|0,r=(r=r+Math.imul(B,oA)|0)+Math.imul(E,iA)|0,i=i+Math.imul(E,oA)|0;var yA=(g+(n=n+Math.imul(u,sA)|0)|0)+((8191&(r=(r=r+Math.imul(u,gA)|0)+Math.imul(f,sA)|0))<<13)|0;g=((i=i+Math.imul(f,gA)|0)+(r>>>13)|0)+(yA>>>26)|0,yA&=67108863,n=Math.imul(N,Z),r=(r=Math.imul(N,H))+Math.imul(P,Z)|0,i=Math.imul(P,H),n=n+Math.imul(S,K)|0,r=(r=r+Math.imul(S,T)|0)+Math.imul(k,K)|0,i=i+Math.imul(k,T)|0,n=n+Math.imul(R,q)|0,r=(r=r+Math.imul(R,J)|0)+Math.imul(F,q)|0,i=i+Math.imul(F,J)|0,n=n+Math.imul(_,O)|0,r=(r=r+Math.imul(_,z)|0)+Math.imul(D,O)|0,i=i+Math.imul(D,z)|0,n=n+Math.imul(y,$)|0,r=(r=r+Math.imul(y,AA)|0)+Math.imul(w,$)|0,i=i+Math.imul(w,AA)|0,n=n+Math.imul(Q,tA)|0,r=(r=r+Math.imul(Q,nA)|0)+Math.imul(p,tA)|0,i=i+Math.imul(p,nA)|0,n=n+Math.imul(d,iA)|0,r=(r=r+Math.imul(d,oA)|0)+Math.imul(C,iA)|0,i=i+Math.imul(C,oA)|0,n=n+Math.imul(B,sA)|0,r=(r=r+Math.imul(B,gA)|0)+Math.imul(E,sA)|0,i=i+Math.imul(E,gA)|0;var wA=(g+(n=n+Math.imul(u,uA)|0)|0)+((8191&(r=(r=r+Math.imul(u,fA)|0)+Math.imul(f,uA)|0))<<13)|0;g=((i=i+Math.imul(f,fA)|0)+(r>>>13)|0)+(wA>>>26)|0,wA&=67108863,n=Math.imul(U,Z),r=(r=Math.imul(U,H))+Math.imul(Y,Z)|0,i=Math.imul(Y,H),n=n+Math.imul(N,K)|0,r=(r=r+Math.imul(N,T)|0)+Math.imul(P,K)|0,i=i+Math.imul(P,T)|0,n=n+Math.imul(S,q)|0,r=(r=r+Math.imul(S,J)|0)+Math.imul(k,q)|0,i=i+Math.imul(k,J)|0,n=n+Math.imul(R,O)|0,r=(r=r+Math.imul(R,z)|0)+Math.imul(F,O)|0,i=i+Math.imul(F,z)|0,n=n+Math.imul(_,$)|0,r=(r=r+Math.imul(_,AA)|0)+Math.imul(D,$)|0,i=i+Math.imul(D,AA)|0,n=n+Math.imul(y,tA)|0,r=(r=r+Math.imul(y,nA)|0)+Math.imul(w,tA)|0,i=i+Math.imul(w,nA)|0,n=n+Math.imul(Q,iA)|0,r=(r=r+Math.imul(Q,oA)|0)+Math.imul(p,iA)|0,i=i+Math.imul(p,oA)|0,n=n+Math.imul(d,sA)|0,r=(r=r+Math.imul(d,gA)|0)+Math.imul(C,sA)|0,i=i+Math.imul(C,gA)|0,n=n+Math.imul(B,uA)|0,r=(r=r+Math.imul(B,fA)|0)+Math.imul(E,uA)|0,i=i+Math.imul(E,fA)|0;var bA=(g+(n=n+Math.imul(u,BA)|0)|0)+((8191&(r=(r=r+Math.imul(u,EA)|0)+Math.imul(f,BA)|0))<<13)|0;g=((i=i+Math.imul(f,EA)|0)+(r>>>13)|0)+(bA>>>26)|0,bA&=67108863,n=Math.imul(U,K),r=(r=Math.imul(U,T))+Math.imul(Y,K)|0,i=Math.imul(Y,T),n=n+Math.imul(N,q)|0,r=(r=r+Math.imul(N,J)|0)+Math.imul(P,q)|0,i=i+Math.imul(P,J)|0,n=n+Math.imul(S,O)|0,r=(r=r+Math.imul(S,z)|0)+Math.imul(k,O)|0,i=i+Math.imul(k,z)|0,n=n+Math.imul(R,$)|0,r=(r=r+Math.imul(R,AA)|0)+Math.imul(F,$)|0,i=i+Math.imul(F,AA)|0,n=n+Math.imul(_,tA)|0,r=(r=r+Math.imul(_,nA)|0)+Math.imul(D,tA)|0,i=i+Math.imul(D,nA)|0,n=n+Math.imul(y,iA)|0,r=(r=r+Math.imul(y,oA)|0)+Math.imul(w,iA)|0,i=i+Math.imul(w,oA)|0,n=n+Math.imul(Q,sA)|0,r=(r=r+Math.imul(Q,gA)|0)+Math.imul(p,sA)|0,i=i+Math.imul(p,gA)|0,n=n+Math.imul(d,uA)|0,r=(r=r+Math.imul(d,fA)|0)+Math.imul(C,uA)|0,i=i+Math.imul(C,fA)|0;var _A=(g+(n=n+Math.imul(B,BA)|0)|0)+((8191&(r=(r=r+Math.imul(B,EA)|0)+Math.imul(E,BA)|0))<<13)|0;g=((i=i+Math.imul(E,EA)|0)+(r>>>13)|0)+(_A>>>26)|0,_A&=67108863,n=Math.imul(U,q),r=(r=Math.imul(U,J))+Math.imul(Y,q)|0,i=Math.imul(Y,J),n=n+Math.imul(N,O)|0,r=(r=r+Math.imul(N,z)|0)+Math.imul(P,O)|0,i=i+Math.imul(P,z)|0,n=n+Math.imul(S,$)|0,r=(r=r+Math.imul(S,AA)|0)+Math.imul(k,$)|0,i=i+Math.imul(k,AA)|0,n=n+Math.imul(R,tA)|0,r=(r=r+Math.imul(R,nA)|0)+Math.imul(F,tA)|0,i=i+Math.imul(F,nA)|0,n=n+Math.imul(_,iA)|0,r=(r=r+Math.imul(_,oA)|0)+Math.imul(D,iA)|0,i=i+Math.imul(D,oA)|0,n=n+Math.imul(y,sA)|0,r=(r=r+Math.imul(y,gA)|0)+Math.imul(w,sA)|0,i=i+Math.imul(w,gA)|0,n=n+Math.imul(Q,uA)|0,r=(r=r+Math.imul(Q,fA)|0)+Math.imul(p,uA)|0,i=i+Math.imul(p,fA)|0;var DA=(g+(n=n+Math.imul(d,BA)|0)|0)+((8191&(r=(r=r+Math.imul(d,EA)|0)+Math.imul(C,BA)|0))<<13)|0;g=((i=i+Math.imul(C,EA)|0)+(r>>>13)|0)+(DA>>>26)|0,DA&=67108863,n=Math.imul(U,O),r=(r=Math.imul(U,z))+Math.imul(Y,O)|0,i=Math.imul(Y,z),n=n+Math.imul(N,$)|0,r=(r=r+Math.imul(N,AA)|0)+Math.imul(P,$)|0,i=i+Math.imul(P,AA)|0,n=n+Math.imul(S,tA)|0,r=(r=r+Math.imul(S,nA)|0)+Math.imul(k,tA)|0,i=i+Math.imul(k,nA)|0,n=n+Math.imul(R,iA)|0,r=(r=r+Math.imul(R,oA)|0)+Math.imul(F,iA)|0,i=i+Math.imul(F,oA)|0,n=n+Math.imul(_,sA)|0,r=(r=r+Math.imul(_,gA)|0)+Math.imul(D,sA)|0,i=i+Math.imul(D,gA)|0,n=n+Math.imul(y,uA)|0,r=(r=r+Math.imul(y,fA)|0)+Math.imul(w,uA)|0,i=i+Math.imul(w,fA)|0;var vA=(g+(n=n+Math.imul(Q,BA)|0)|0)+((8191&(r=(r=r+Math.imul(Q,EA)|0)+Math.imul(p,BA)|0))<<13)|0;g=((i=i+Math.imul(p,EA)|0)+(r>>>13)|0)+(vA>>>26)|0,vA&=67108863,n=Math.imul(U,$),r=(r=Math.imul(U,AA))+Math.imul(Y,$)|0,i=Math.imul(Y,AA),n=n+Math.imul(N,tA)|0,r=(r=r+Math.imul(N,nA)|0)+Math.imul(P,tA)|0,i=i+Math.imul(P,nA)|0,n=n+Math.imul(S,iA)|0,r=(r=r+Math.imul(S,oA)|0)+Math.imul(k,iA)|0,i=i+Math.imul(k,oA)|0,n=n+Math.imul(R,sA)|0,r=(r=r+Math.imul(R,gA)|0)+Math.imul(F,sA)|0,i=i+Math.imul(F,gA)|0,n=n+Math.imul(_,uA)|0,r=(r=r+Math.imul(_,fA)|0)+Math.imul(D,uA)|0,i=i+Math.imul(D,fA)|0;var RA=(g+(n=n+Math.imul(y,BA)|0)|0)+((8191&(r=(r=r+Math.imul(y,EA)|0)+Math.imul(w,BA)|0))<<13)|0;g=((i=i+Math.imul(w,EA)|0)+(r>>>13)|0)+(RA>>>26)|0,RA&=67108863,n=Math.imul(U,tA),r=(r=Math.imul(U,nA))+Math.imul(Y,tA)|0,i=Math.imul(Y,nA),n=n+Math.imul(N,iA)|0,r=(r=r+Math.imul(N,oA)|0)+Math.imul(P,iA)|0,i=i+Math.imul(P,oA)|0,n=n+Math.imul(S,sA)|0,r=(r=r+Math.imul(S,gA)|0)+Math.imul(k,sA)|0,i=i+Math.imul(k,gA)|0,n=n+Math.imul(R,uA)|0,r=(r=r+Math.imul(R,fA)|0)+Math.imul(F,uA)|0,i=i+Math.imul(F,fA)|0;var FA=(g+(n=n+Math.imul(_,BA)|0)|0)+((8191&(r=(r=r+Math.imul(_,EA)|0)+Math.imul(D,BA)|0))<<13)|0;g=((i=i+Math.imul(D,EA)|0)+(r>>>13)|0)+(FA>>>26)|0,FA&=67108863,n=Math.imul(U,iA),r=(r=Math.imul(U,oA))+Math.imul(Y,iA)|0,i=Math.imul(Y,oA),n=n+Math.imul(N,sA)|0,r=(r=r+Math.imul(N,gA)|0)+Math.imul(P,sA)|0,i=i+Math.imul(P,gA)|0,n=n+Math.imul(S,uA)|0,r=(r=r+Math.imul(S,fA)|0)+Math.imul(k,uA)|0,i=i+Math.imul(k,fA)|0;var MA=(g+(n=n+Math.imul(R,BA)|0)|0)+((8191&(r=(r=r+Math.imul(R,EA)|0)+Math.imul(F,BA)|0))<<13)|0;g=((i=i+Math.imul(F,EA)|0)+(r>>>13)|0)+(MA>>>26)|0,MA&=67108863,n=Math.imul(U,sA),r=(r=Math.imul(U,gA))+Math.imul(Y,sA)|0,i=Math.imul(Y,gA),n=n+Math.imul(N,uA)|0,r=(r=r+Math.imul(N,fA)|0)+Math.imul(P,uA)|0,i=i+Math.imul(P,fA)|0;var SA=(g+(n=n+Math.imul(S,BA)|0)|0)+((8191&(r=(r=r+Math.imul(S,EA)|0)+Math.imul(k,BA)|0))<<13)|0;g=((i=i+Math.imul(k,EA)|0)+(r>>>13)|0)+(SA>>>26)|0,SA&=67108863,n=Math.imul(U,uA),r=(r=Math.imul(U,fA))+Math.imul(Y,uA)|0,i=Math.imul(Y,fA);var kA=(g+(n=n+Math.imul(N,BA)|0)|0)+((8191&(r=(r=r+Math.imul(N,EA)|0)+Math.imul(P,BA)|0))<<13)|0;g=((i=i+Math.imul(P,EA)|0)+(r>>>13)|0)+(kA>>>26)|0,kA&=67108863;var GA=(g+(n=Math.imul(U,BA))|0)+((8191&(r=(r=Math.imul(U,EA))+Math.imul(Y,BA)|0))<<13)|0;return g=((i=Math.imul(Y,EA))+(r>>>13)|0)+(GA>>>26)|0,GA&=67108863,s[0]=cA,s[1]=dA,s[2]=CA,s[3]=hA,s[4]=QA,s[5]=pA,s[6]=mA,s[7]=yA,s[8]=wA,s[9]=bA,s[10]=_A,s[11]=DA,s[12]=vA,s[13]=RA,s[14]=FA,s[15]=MA,s[16]=SA,s[17]=kA,s[18]=GA,0!==g&&(s[19]=g,t.length++),t};function E(A,e,t){return(new c).mulp(A,e,t)}function c(A,e){this.x=A,this.y=e}Math.imul||(B=l),i.prototype.mulTo=function(A,e){var t=this.length+A.length;return 10===this.length&&10===A.length?B(this,A,e):t<63?l(this,A,e):t<1024?function(A,e,t){t.negative=e.negative^A.negative,t.length=A.length+e.length;for(var n=0,r=0,i=0;i<t.length-1;i++){var o=r;r=0;for(var a=67108863&n,s=Math.min(i,e.length-1),g=Math.max(0,i-A.length+1);g<=s;g++){var I=i-g,u=(0|A.words[I])*(0|e.words[g]),f=67108863&u;a=67108863&(f=f+a|0),r+=(o=(o=o+(u/67108864|0)|0)+(f>>>26)|0)>>>26,o&=67108863}t.words[i]=a,n=o,o=r}return 0!==n?t.words[i]=n:t.length--,t.strip()}(this,A,e):E(this,A,e)},c.prototype.makeRBT=function(A){for(var e=new Array(A),t=i.prototype._countBits(A)-1,n=0;n<A;n++)e[n]=this.revBin(n,t,A);return e},c.prototype.revBin=function(A,e,t){if(0===A||A===t-1)return A;for(var n=0,r=0;r<e;r++)n|=(1&A)<<e-r-1,A>>=1;return n},c.prototype.permute=function(A,e,t,n,r,i){for(var o=0;o<i;o++)n[o]=e[A[o]],r[o]=t[A[o]]},c.prototype.transform=function(A,e,t,n,r,i){this.permute(i,A,e,t,n,r);for(var o=1;o<r;o<<=1)for(var a=o<<1,s=Math.cos(2*Math.PI/a),g=Math.sin(2*Math.PI/a),I=0;I<r;I+=a)for(var u=s,f=g,l=0;l<o;l++){var B=t[I+l],E=n[I+l],c=t[I+l+o],d=n[I+l+o],C=u*c-f*d;d=u*d+f*c,c=C,t[I+l]=B+c,n[I+l]=E+d,t[I+l+o]=B-c,n[I+l+o]=E-d,l!==a&&(C=s*u-g*f,f=s*f+g*u,u=C)}},c.prototype.guessLen13b=function(A,e){var t=1|Math.max(e,A),n=1&t,r=0;for(t=t/2|0;t;t>>>=1)r++;return 1<<r+1+n},c.prototype.conjugate=function(A,e,t){if(!(t<=1))for(var n=0;n<t/2;n++){var r=A[n];A[n]=A[t-n-1],A[t-n-1]=r,r=e[n],e[n]=-e[t-n-1],e[t-n-1]=-r}},c.prototype.normalize13b=function(A,e){for(var t=0,n=0;n<e/2;n++){var r=8192*Math.round(A[2*n+1]/e)+Math.round(A[2*n]/e)+t;A[n]=67108863&r,t=r<67108864?0:r/67108864|0}return A},c.prototype.convert13b=function(A,e,t,r){for(var i=0,o=0;o<e;o++)i+=0|A[o],t[2*o]=8191&i,i>>>=13,t[2*o+1]=8191&i,i>>>=13;for(o=2*e;o<r;++o)t[o]=0;n(0===i),n(0==(-8192&i))},c.prototype.stub=function(A){for(var e=new Array(A),t=0;t<A;t++)e[t]=0;return e},c.prototype.mulp=function(A,e,t){var n=2*this.guessLen13b(A.length,e.length),r=this.makeRBT(n),i=this.stub(n),o=new Array(n),a=new Array(n),s=new Array(n),g=new Array(n),I=new Array(n),u=new Array(n),f=t.words;f.length=n,this.convert13b(A.words,A.length,o,n),this.convert13b(e.words,e.length,g,n),this.transform(o,i,a,s,n,r),this.transform(g,i,I,u,n,r);for(var l=0;l<n;l++){var B=a[l]*I[l]-s[l]*u[l];s[l]=a[l]*u[l]+s[l]*I[l],a[l]=B}return this.conjugate(a,s,n),this.transform(a,s,f,i,n,r),this.conjugate(f,i,n),this.normalize13b(f,n),t.negative=A.negative^e.negative,t.length=A.length+e.length,t.strip()},i.prototype.mul=function(A){var e=new i(null);return e.words=new Array(this.length+A.length),this.mulTo(A,e)},i.prototype.mulf=function(A){var e=new i(null);return e.words=new Array(this.length+A.length),E(this,A,e)},i.prototype.imul=function(A){return this.clone().mulTo(A,this)},i.prototype.imuln=function(A){n("number"==typeof A),n(A<67108864);for(var e=0,t=0;t<this.length;t++){var r=(0|this.words[t])*A,i=(67108863&r)+(67108863&e);e>>=26,e+=r/67108864|0,e+=i>>>26,this.words[t]=67108863&i}return 0!==e&&(this.words[t]=e,this.length++),this},i.prototype.muln=function(A){return this.clone().imuln(A)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(A){var e=function(A){for(var e=new Array(A.bitLength()),t=0;t<e.length;t++){var n=t/26|0,r=t%26;e[t]=(A.words[n]&1<<r)>>>r}return e}(A);if(0===e.length)return new i(1);for(var t=this,n=0;n<e.length&&0===e[n];n++,t=t.sqr());if(++n<e.length)for(var r=t.sqr();n<e.length;n++,r=r.sqr())0!==e[n]&&(t=t.mul(r));return t},i.prototype.iushln=function(A){n("number"==typeof A&&A>=0);var e,t=A%26,r=(A-t)/26,i=67108863>>>26-t<<26-t;if(0!==t){var o=0;for(e=0;e<this.length;e++){var a=this.words[e]&i,s=(0|this.words[e])-a<<t;this.words[e]=s|o,o=a>>>26-t}o&&(this.words[e]=o,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e<r;e++)this.words[e]=0;this.length+=r}return this.strip()},i.prototype.ishln=function(A){return n(0===this.negative),this.iushln(A)},i.prototype.iushrn=function(A,e,t){var r;n("number"==typeof A&&A>=0),r=e?(e-e%26)/26:0;var i=A%26,o=Math.min((A-i)/26,this.length),a=67108863^67108863>>>i<<i,s=t;if(r-=o,r=Math.max(0,r),s){for(var g=0;g<o;g++)s.words[g]=this.words[g];s.length=o}if(0===o);else if(this.length>o)for(this.length-=o,g=0;g<this.length;g++)this.words[g]=this.words[g+o];else this.words[0]=0,this.length=1;var I=0;for(g=this.length-1;g>=0&&(0!==I||g>=r);g--){var u=0|this.words[g];this.words[g]=I<<26-i|u>>>i,I=u&a}return s&&0!==I&&(s.words[s.length++]=I),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(A,e,t){return n(0===this.negative),this.iushrn(A,e,t)},i.prototype.shln=function(A){return this.clone().ishln(A)},i.prototype.ushln=function(A){return this.clone().iushln(A)},i.prototype.shrn=function(A){return this.clone().ishrn(A)},i.prototype.ushrn=function(A){return this.clone().iushrn(A)},i.prototype.testn=function(A){n("number"==typeof A&&A>=0);var e=A%26,t=(A-e)/26,r=1<<e;return!(this.length<=t||!(this.words[t]&r))},i.prototype.imaskn=function(A){n("number"==typeof A&&A>=0);var e=A%26,t=(A-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=t)return this;if(0!==e&&t++,this.length=Math.min(t,this.length),0!==e){var r=67108863^67108863>>>e<<e;this.words[this.length-1]&=r}return this.strip()},i.prototype.maskn=function(A){return this.clone().imaskn(A)},i.prototype.iaddn=function(A){return n("number"==typeof A),n(A<67108864),A<0?this.isubn(-A):0!==this.negative?1===this.length&&(0|this.words[0])<A?(this.words[0]=A-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(A),this.negative=1,this):this._iaddn(A)},i.prototype._iaddn=function(A){this.words[0]+=A;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},i.prototype.isubn=function(A){if(n("number"==typeof A),n(A<67108864),A<0)return this.iaddn(-A);if(0!==this.negative)return this.negative=0,this.iaddn(A),this.negative=1,this;if(this.words[0]-=A,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},i.prototype.addn=function(A){return this.clone().iaddn(A)},i.prototype.subn=function(A){return this.clone().isubn(A)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(A,e,t){var r,i,o=A.length+t;this._expand(o);var a=0;for(r=0;r<A.length;r++){i=(0|this.words[r+t])+a;var s=(0|A.words[r])*e;a=((i-=67108863&s)>>26)-(s/67108864|0),this.words[r+t]=67108863&i}for(;r<this.length-t;r++)a=(i=(0|this.words[r+t])+a)>>26,this.words[r+t]=67108863&i;if(0===a)return this.strip();for(n(-1===a),a=0,r=0;r<this.length;r++)a=(i=-(0|this.words[r])+a)>>26,this.words[r]=67108863&i;return this.negative=1,this.strip()},i.prototype._wordDiv=function(A,e){var t=(this.length,A.length),n=this.clone(),r=A,o=0|r.words[r.length-1];0!=(t=26-this._countBits(o))&&(r=r.ushln(t),n.iushln(t),o=0|r.words[r.length-1]);var a,s=n.length-r.length;if("mod"!==e){(a=new i(null)).length=s+1,a.words=new Array(a.length);for(var g=0;g<a.length;g++)a.words[g]=0}var I=n.clone()._ishlnsubmul(r,1,s);0===I.negative&&(n=I,a&&(a.words[s]=1));for(var u=s-1;u>=0;u--){var f=67108864*(0|n.words[r.length+u])+(0|n.words[r.length+u-1]);for(f=Math.min(f/o|0,67108863),n._ishlnsubmul(r,f,u);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(r,1,u),n.isZero()||(n.negative^=1);a&&(a.words[u]=f)}return a&&a.strip(),n.strip(),"div"!==e&&0!==t&&n.iushrn(t),{div:a||null,mod:n}},i.prototype.divmod=function(A,e,t){return n(!A.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===A.negative?(a=this.neg().divmod(A,e),"mod"!==e&&(r=a.div.neg()),"div"!==e&&(o=a.mod.neg(),t&&0!==o.negative&&o.iadd(A)),{div:r,mod:o}):0===this.negative&&0!==A.negative?(a=this.divmod(A.neg(),e),"mod"!==e&&(r=a.div.neg()),{div:r,mod:a.mod}):0!=(this.negative&A.negative)?(a=this.neg().divmod(A.neg(),e),"div"!==e&&(o=a.mod.neg(),t&&0!==o.negative&&o.isub(A)),{div:a.div,mod:o}):A.length>this.length||this.cmp(A)<0?{div:new i(0),mod:this}:1===A.length?"div"===e?{div:this.divn(A.words[0]),mod:null}:"mod"===e?{div:null,mod:new i(this.modn(A.words[0]))}:{div:this.divn(A.words[0]),mod:new i(this.modn(A.words[0]))}:this._wordDiv(A,e);var r,o,a},i.prototype.div=function(A){return this.divmod(A,"div",!1).div},i.prototype.mod=function(A){return this.divmod(A,"mod",!1).mod},i.prototype.umod=function(A){return this.divmod(A,"mod",!0).mod},i.prototype.divRound=function(A){var e=this.divmod(A);if(e.mod.isZero())return e.div;var t=0!==e.div.negative?e.mod.isub(A):e.mod,n=A.ushrn(1),r=A.andln(1),i=t.cmp(n);return i<0||1===r&&0===i?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},i.prototype.modn=function(A){n(A<=67108863);for(var e=(1<<26)%A,t=0,r=this.length-1;r>=0;r--)t=(e*t+(0|this.words[r]))%A;return t},i.prototype.idivn=function(A){n(A<=67108863);for(var e=0,t=this.length-1;t>=0;t--){var r=(0|this.words[t])+67108864*e;this.words[t]=r/A|0,e=r%A}return this.strip()},i.prototype.divn=function(A){return this.clone().idivn(A)},i.prototype.egcd=function(A){n(0===A.negative),n(!A.isZero());var e=this,t=A.clone();e=0!==e.negative?e.umod(A):e.clone();for(var r=new i(1),o=new i(0),a=new i(0),s=new i(1),g=0;e.isEven()&&t.isEven();)e.iushrn(1),t.iushrn(1),++g;for(var I=t.clone(),u=e.clone();!e.isZero();){for(var f=0,l=1;0==(e.words[0]&l)&&f<26;++f,l<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(r.isOdd()||o.isOdd())&&(r.iadd(I),o.isub(u)),r.iushrn(1),o.iushrn(1);for(var B=0,E=1;0==(t.words[0]&E)&&B<26;++B,E<<=1);if(B>0)for(t.iushrn(B);B-- >0;)(a.isOdd()||s.isOdd())&&(a.iadd(I),s.isub(u)),a.iushrn(1),s.iushrn(1);e.cmp(t)>=0?(e.isub(t),r.isub(a),o.isub(s)):(t.isub(e),a.isub(r),s.isub(o))}return{a:a,b:s,gcd:t.iushln(g)}},i.prototype._invmp=function(A){n(0===A.negative),n(!A.isZero());var e=this,t=A.clone();e=0!==e.negative?e.umod(A):e.clone();for(var r,o=new i(1),a=new i(0),s=t.clone();e.cmpn(1)>0&&t.cmpn(1)>0;){for(var g=0,I=1;0==(e.words[0]&I)&&g<26;++g,I<<=1);if(g>0)for(e.iushrn(g);g-- >0;)o.isOdd()&&o.iadd(s),o.iushrn(1);for(var u=0,f=1;0==(t.words[0]&f)&&u<26;++u,f<<=1);if(u>0)for(t.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(s),a.iushrn(1);e.cmp(t)>=0?(e.isub(t),o.isub(a)):(t.isub(e),a.isub(o))}return(r=0===e.cmpn(1)?o:a).cmpn(0)<0&&r.iadd(A),r},i.prototype.gcd=function(A){if(this.isZero())return A.abs();if(A.isZero())return this.abs();var e=this.clone(),t=A.clone();e.negative=0,t.negative=0;for(var n=0;e.isEven()&&t.isEven();n++)e.iushrn(1),t.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;t.isEven();)t.iushrn(1);var r=e.cmp(t);if(r<0){var i=e;e=t,t=i}else if(0===r||0===t.cmpn(1))break;e.isub(t)}return t.iushln(n)},i.prototype.invm=function(A){return this.egcd(A).a.umod(A)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(A){return this.words[0]&A},i.prototype.bincn=function(A){n("number"==typeof A);var e=A%26,t=(A-e)/26,r=1<<e;if(this.length<=t)return this._expand(t+1),this.words[t]|=r,this;for(var i=r,o=t;0!==i&&o<this.length;o++){var a=0|this.words[o];i=(a+=i)>>>26,a&=67108863,this.words[o]=a}return 0!==i&&(this.words[o]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(A){var e,t=A<0;if(0!==this.negative&&!t)return-1;if(0===this.negative&&t)return 1;if(this.strip(),this.length>1)e=1;else{t&&(A=-A),n(A<=67108863,"Number is too big");var r=0|this.words[0];e=r===A?0:r<A?-1:1}return 0!==this.negative?0|-e:e},i.prototype.cmp=function(A){if(0!==this.negative&&0===A.negative)return-1;if(0===this.negative&&0!==A.negative)return 1;var e=this.ucmp(A);return 0!==this.negative?0|-e:e},i.prototype.ucmp=function(A){if(this.length>A.length)return 1;if(this.length<A.length)return-1;for(var e=0,t=this.length-1;t>=0;t--){var n=0|this.words[t],r=0|A.words[t];if(n!==r){n<r?e=-1:n>r&&(e=1);break}}return e},i.prototype.gtn=function(A){return 1===this.cmpn(A)},i.prototype.gt=function(A){return 1===this.cmp(A)},i.prototype.gten=function(A){return this.cmpn(A)>=0},i.prototype.gte=function(A){return this.cmp(A)>=0},i.prototype.ltn=function(A){return-1===this.cmpn(A)},i.prototype.lt=function(A){return-1===this.cmp(A)},i.prototype.lten=function(A){return this.cmpn(A)<=0},i.prototype.lte=function(A){return this.cmp(A)<=0},i.prototype.eqn=function(A){return 0===this.cmpn(A)},i.prototype.eq=function(A){return 0===this.cmp(A)},i.red=function(A){return new y(A)},i.prototype.toRed=function(A){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),A.convertTo(this)._forceRed(A)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(A){return this.red=A,this},i.prototype.forceRed=function(A){return n(!this.red,"Already a number in reduction context"),this._forceRed(A)},i.prototype.redAdd=function(A){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,A)},i.prototype.redIAdd=function(A){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,A)},i.prototype.redSub=function(A){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,A)},i.prototype.redISub=function(A){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,A)},i.prototype.redShl=function(A){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,A)},i.prototype.redMul=function(A){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,A),this.red.mul(this,A)},i.prototype.redIMul=function(A){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,A),this.red.imul(this,A)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(A){return n(this.red&&!A.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,A)};var d={k256:null,p224:null,p192:null,p25519:null};function C(A,e){this.name=A,this.p=new i(e,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function h(){C.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function Q(){C.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function p(){C.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function m(){C.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function y(A){if("string"==typeof A){var e=i._prime(A);this.m=e.p,this.prime=e}else n(A.gtn(1),"modulus must be greater than 1"),this.m=A,this.prime=null}function w(A){y.call(this,A),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}C.prototype._tmp=function(){var A=new i(null);return A.words=new Array(Math.ceil(this.n/13)),A},C.prototype.ireduce=function(A){var e,t=A;do{this.split(t,this.tmp),e=(t=(t=this.imulK(t)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:t.ucmp(this.p);return 0===n?(t.words[0]=0,t.length=1):n>0?t.isub(this.p):void 0!==t.strip?t.strip():t._strip(),t},C.prototype.split=function(A,e){A.iushrn(this.n,0,e)},C.prototype.imulK=function(A){return A.imul(this.k)},r(h,C),h.prototype.split=function(A,e){for(var t=Math.min(A.length,9),n=0;n<t;n++)e.words[n]=A.words[n];if(e.length=t,A.length<=9)return A.words[0]=0,void(A.length=1);var r=A.words[9];for(e.words[e.length++]=4194303&r,n=10;n<A.length;n++){var i=0|A.words[n];A.words[n-10]=(4194303&i)<<4|r>>>22,r=i}r>>>=22,A.words[n-10]=r,0===r&&A.length>10?A.length-=10:A.length-=9},h.prototype.imulK=function(A){A.words[A.length]=0,A.words[A.length+1]=0,A.length+=2;for(var e=0,t=0;t<A.length;t++){var n=0|A.words[t];e+=977*n,A.words[t]=67108863&e,e=64*n+(e/67108864|0)}return 0===A.words[A.length-1]&&(A.length--,0===A.words[A.length-1]&&A.length--),A},r(Q,C),r(p,C),r(m,C),m.prototype.imulK=function(A){for(var e=0,t=0;t<A.length;t++){var n=19*(0|A.words[t])+e,r=67108863&n;n>>>=26,A.words[t]=r,e=n}return 0!==e&&(A.words[A.length++]=e),A},i._prime=function(A){if(d[A])return d[A];var e;if("k256"===A)e=new h;else if("p224"===A)e=new Q;else if("p192"===A)e=new p;else{if("p25519"!==A)throw new Error("Unknown prime "+A);e=new m}return d[A]=e,e},y.prototype._verify1=function(A){n(0===A.negative,"red works only with positives"),n(A.red,"red works only with red numbers")},y.prototype._verify2=function(A,e){n(0==(A.negative|e.negative),"red works only with positives"),n(A.red&&A.red===e.red,"red works only with red numbers")},y.prototype.imod=function(A){return this.prime?this.prime.ireduce(A)._forceRed(this):A.umod(this.m)._forceRed(this)},y.prototype.neg=function(A){return A.isZero()?A.clone():this.m.sub(A)._forceRed(this)},y.prototype.add=function(A,e){this._verify2(A,e);var t=A.add(e);return t.cmp(this.m)>=0&&t.isub(this.m),t._forceRed(this)},y.prototype.iadd=function(A,e){this._verify2(A,e);var t=A.iadd(e);return t.cmp(this.m)>=0&&t.isub(this.m),t},y.prototype.sub=function(A,e){this._verify2(A,e);var t=A.sub(e);return t.cmpn(0)<0&&t.iadd(this.m),t._forceRed(this)},y.prototype.isub=function(A,e){this._verify2(A,e);var t=A.isub(e);return t.cmpn(0)<0&&t.iadd(this.m),t},y.prototype.shl=function(A,e){return this._verify1(A),this.imod(A.ushln(e))},y.prototype.imul=function(A,e){return this._verify2(A,e),this.imod(A.imul(e))},y.prototype.mul=function(A,e){return this._verify2(A,e),this.imod(A.mul(e))},y.prototype.isqr=function(A){return this.imul(A,A.clone())},y.prototype.sqr=function(A){return this.mul(A,A)},y.prototype.sqrt=function(A){if(A.isZero())return A.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var t=this.m.add(new i(1)).iushrn(2);return this.pow(A,t)}for(var r=this.m.subn(1),o=0;!r.isZero()&&0===r.andln(1);)o++,r.iushrn(1);n(!r.isZero());var a=new i(1).toRed(this),s=a.redNeg(),g=this.m.subn(1).iushrn(1),I=this.m.bitLength();for(I=new i(2*I*I).toRed(this);0!==this.pow(I,g).cmp(s);)I.redIAdd(s);for(var u=this.pow(I,r),f=this.pow(A,r.addn(1).iushrn(1)),l=this.pow(A,r),B=o;0!==l.cmp(a);){for(var E=l,c=0;0!==E.cmp(a);c++)E=E.redSqr();n(c<B);var d=this.pow(u,new i(1).iushln(B-c-1));f=f.redMul(d),u=d.redSqr(),l=l.redMul(u),B=c}return f},y.prototype.invm=function(A){var e=A._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},y.prototype.pow=function(A,e){if(e.isZero())return new i(1).toRed(this);if(0===e.cmpn(1))return A.clone();var t=new Array(16);t[0]=new i(1).toRed(this),t[1]=A;for(var n=2;n<t.length;n++)t[n]=this.mul(t[n-1],A);var r=t[0],o=0,a=0,s=e.bitLength()%26;for(0===s&&(s=26),n=e.length-1;n>=0;n--){for(var g=e.words[n],I=s-1;I>=0;I--){var u=g>>I&1;r!==t[0]&&(r=this.sqr(r)),0!==u||0!==o?(o<<=1,o|=u,(4==++a||0===n&&0===I)&&(r=this.mul(r,t[o]),a=0,o=0)):a=0}s=26}return r},y.prototype.convertTo=function(A){var e=A.umod(this.m);return e===A?e.clone():e},y.prototype.convertFrom=function(A){var e=A.clone();return e.red=null,e},i.mont=function(A){return new w(A)},r(w,y),w.prototype.convertTo=function(A){return this.imod(A.ushln(this.shift))},w.prototype.convertFrom=function(A){var e=this.imod(A.mul(this.rinv));return e.red=null,e},w.prototype.imul=function(A,e){if(A.isZero()||e.isZero())return A.words[0]=0,A.length=1,A;var t=A.imul(e),n=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=t.isub(n).iushrn(this.shift),i=r;return r.cmp(this.m)>=0?i=r.isub(this.m):r.cmpn(0)<0&&(i=r.iadd(this.m)),i._forceRed(this)},w.prototype.mul=function(A,e){if(A.isZero()||e.isZero())return new i(0)._forceRed(this);var t=A.mul(e),n=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=t.isub(n).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},w.prototype.invm=function(A){return this.imod(A._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===e||e,this)},{buffer:"f88W"}],e03B:[function(A,e,t){var n;function r(A){this.rand=A}if(e.exports=function(A){return n||(n=new r(null)),n.generate(A)},e.exports.Rand=r,r.prototype.generate=function(A){return this._rand(A)},r.prototype._rand=function(A){if(this.rand.getBytes)return this.rand.getBytes(A);for(var e=new Uint8Array(A),t=0;t<e.length;t++)e[t]=this.rand.getByte();return e},"object"==typeof self)self.crypto&&self.crypto.getRandomValues?r.prototype._rand=function(A){var e=new Uint8Array(A);return self.crypto.getRandomValues(e),e}:self.msCrypto&&self.msCrypto.getRandomValues?r.prototype._rand=function(A){var e=new Uint8Array(A);return self.msCrypto.getRandomValues(e),e}:"object"==typeof window&&(r.prototype._rand=function(){throw new Error("Not implemented yet")});else try{var i=A("crypto");if("function"!=typeof i.randomBytes)throw new Error("Not supported");r.prototype._rand=function(A){return i.randomBytes(A)}}catch(o){}},{crypto:"f88W"}],VQun:[function(A,e,t){var n=A("bn.js"),r=A("brorand");function i(A){this.rand=A||new r.Rand}e.exports=i,i.create=function(A){return new i(A)},i.prototype._randbelow=function(A){var e=A.bitLength(),t=Math.ceil(e/8);do{var r=new n(this.rand.generate(t))}while(r.cmp(A)>=0);return r},i.prototype._randrange=function(A,e){var t=e.sub(A);return A.add(this._randbelow(t))},i.prototype.test=function(A,e,t){var r=A.bitLength(),i=n.mont(A),o=new n(1).toRed(i);e||(e=Math.max(1,r/48|0));for(var a=A.subn(1),s=0;!a.testn(s);s++);for(var g=A.shrn(s),I=a.toRed(i);e>0;e--){var u=this._randrange(new n(2),a);t&&t(u);var f=u.toRed(i).redPow(g);if(0!==f.cmp(o)&&0!==f.cmp(I)){for(var l=1;l<s;l++){if(0===(f=f.redSqr()).cmp(o))return!1;if(0===f.cmp(I))break}if(l===s)return!1}}return!0},i.prototype.getDivisor=function(A,e){var t=A.bitLength(),r=n.mont(A),i=new n(1).toRed(r);e||(e=Math.max(1,t/48|0));for(var o=A.subn(1),a=0;!o.testn(a);a++);for(var s=A.shrn(a),g=o.toRed(r);e>0;e--){var I=this._randrange(new n(2),o),u=A.gcd(I);if(0!==u.cmpn(1))return u;var f=I.toRed(r).redPow(s);if(0!==f.cmp(i)&&0!==f.cmp(g)){for(var l=1;l<a;l++){if(0===(f=f.redSqr()).cmp(i))return f.fromRed().subn(1).gcd(A);if(0===f.cmp(g))break}if(l===a)return(f=f.redSqr()).fromRed().subn(1).gcd(A)}}return!1}},{"bn.js":"VXic",brorand:"e03B"}],Lj8n:[function(A,e,t){var n=A("randombytes");e.exports=d,d.simpleSieve=E,d.fermatTest=c;var r=A("bn.js"),i=new r(24),o=new(A("miller-rabin")),a=new r(1),s=new r(2),g=new r(5),I=(new r(16),new r(8),new r(10)),u=new r(3),f=(new r(7),new r(11)),l=new r(4),B=(new r(12),null);function E(A){for(var e=function(){if(null!==B)return B;var A=[];A[0]=2;for(var e=1,t=3;t<1048576;t+=2){for(var n=Math.ceil(Math.sqrt(t)),r=0;r<e&&A[r]<=n&&t%A[r]!=0;r++);e!==r&&A[r]<=n||(A[e++]=t)}return B=A,A}(),t=0;t<e.length;t++)if(0===A.modn(e[t]))return 0===A.cmpn(e[t]);return!0}function c(A){var e=r.mont(A);return 0===s.toRed(e).redPow(A.subn(1)).fromRed().cmpn(1)}function d(A,e){if(A<16)return new r(2===e||5===e?[140,123]:[140,39]);var t,B;for(e=new r(e);;){for(t=new r(n(Math.ceil(A/8)));t.bitLength()>A;)t.ishrn(1);if(t.isEven()&&t.iadd(a),t.testn(1)||t.iadd(s),e.cmp(s)){if(!e.cmp(g))for(;t.mod(I).cmp(u);)t.iadd(l)}else for(;t.mod(i).cmp(f);)t.iadd(l);if(E(B=t.shrn(1))&&E(t)&&c(B)&&c(t)&&o.test(B)&&o.test(t))return t}}},{randombytes:"/XJN","bn.js":"VXic","miller-rabin":"VQun"}],nq14:[function(A,e,t){e.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}},{}],SXPn:[function(A,e,t){A("buffer").Buffer;var n=A("buffer").Buffer,r=A("bn.js"),i=new(A("miller-rabin")),o=new r(24),a=new r(11),s=new r(10),g=new r(3),I=new r(7),u=A("./generatePrime"),f=A("randombytes");function l(A,e){return e=e||"utf8",n.isBuffer(A)||(A=new n(A,e)),this._pub=new r(A),this}function B(A,e){return e=e||"utf8",n.isBuffer(A)||(A=new n(A,e)),this._priv=new r(A),this}e.exports=c;var E={};function c(A,e,t){this.setGenerator(e),this.__prime=new r(A),this._prime=r.mont(this.__prime),this._primeLen=A.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,t?(this.setPublicKey=l,this.setPrivateKey=B):this._primeCode=8}function d(A,e){var t=new n(A.toArray());return e?t.toString(e):t}Object.defineProperty(c.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(A,e){var t=e.toString("hex"),n=[t,A.toString(16)].join("_");if(n in E)return E[n];var r,f=0;if(A.isEven()||!u.simpleSieve||!u.fermatTest(A)||!i.test(A))return f+=1,f+="02"===t||"05"===t?8:4,E[n]=f,f;switch(i.test(A.shrn(1))||(f+=2),t){case"02":A.mod(o).cmp(a)&&(f+=8);break;case"05":(r=A.mod(s)).cmp(g)&&r.cmp(I)&&(f+=8);break;default:f+=4}return E[n]=f,f}(this.__prime,this.__gen)),this._primeCode}}),c.prototype.generateKeys=function(){return this._priv||(this._priv=new r(f(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},c.prototype.computeSecret=function(A){var e=(A=(A=new r(A)).toRed(this._prime)).redPow(this._priv).fromRed(),t=new n(e.toArray()),i=this.getPrime();if(t.length<i.length){var o=new n(i.length-t.length);o.fill(0),t=n.concat([o,t])}return t},c.prototype.getPublicKey=function(A){return d(this._pub,A)},c.prototype.getPrivateKey=function(A){return d(this._priv,A)},c.prototype.getPrime=function(A){return d(this.__prime,A)},c.prototype.getGenerator=function(A){return d(this._gen,A)},c.prototype.setGenerator=function(A,e){return e=e||"utf8",n.isBuffer(A)||(A=new n(A,e)),this.__gen=A,this._gen=new r(A),this}},{"bn.js":"VXic","miller-rabin":"VQun","./generatePrime":"Lj8n",randombytes:"/XJN",buffer:"dskh"}],"9WFL":[function(A,e,t){A("buffer").Buffer;var n=A("buffer").Buffer,r=A("./lib/generatePrime"),i=A("./lib/primes.json"),o=A("./lib/dh");var a={binary:!0,hex:!0,base64:!0};t.DiffieHellmanGroup=t.createDiffieHellmanGroup=t.getDiffieHellman=function(A){var e=new n(i[A].prime,"hex"),t=new n(i[A].gen,"hex");return new o(e,t)},t.createDiffieHellman=t.DiffieHellman=function A(e,t,i,s){return n.isBuffer(t)||void 0===a[t]?A(e,"binary",t,i):(t=t||"binary",s=s||"binary",i=i||new n([2]),n.isBuffer(i)||(i=new n(i,s)),"number"==typeof e?new o(r(e,i),i,!0):(n.isBuffer(e)||(e=new n(e,t)),new o(e,i,!0)))}},{"./lib/generatePrime":"Lj8n","./lib/primes.json":"nq14","./lib/dh":"SXPn",buffer:"dskh"}],PBOR:[function(A,e,t){"use strict";var n=A("../../../errors").codes.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(A,e,t,r){var i=function(A,e,t){return null!=A.highWaterMark?A.highWaterMark:e?A[t]:null}(e,r,t);if(null!=i){if(!isFinite(i)||Math.floor(i)!==i||i<0)throw new n(r?t:"highWaterMark",i);return Math.floor(i)}return A.objectMode?16:16384}}},{"../../../errors":"6eV+"}],CFrt:[function(A,e,t){arguments[3],A("process");var n,r=arguments[3],i=A("process");function o(A){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(A,e,t){var n=A.entry;for(A.entry=null;n;){var r=n.callback;e.pendingcb--,r(t),n=n.next}e.corkedRequestsFree.next=A}(e,A)}}e.exports=_,_.WritableState=b;var a={deprecate:A("util-deprecate")},s=A("./internal/streams/stream"),g=A("buffer").Buffer,I=r.Uint8Array||function(){};var u,f=A("./internal/streams/destroy"),l=A("./internal/streams/state").getHighWaterMark,B=A("../errors").codes,E=B.ERR_INVALID_ARG_TYPE,c=B.ERR_METHOD_NOT_IMPLEMENTED,d=B.ERR_MULTIPLE_CALLBACK,C=B.ERR_STREAM_CANNOT_PIPE,h=B.ERR_STREAM_DESTROYED,Q=B.ERR_STREAM_NULL_VALUES,p=B.ERR_STREAM_WRITE_AFTER_END,m=B.ERR_UNKNOWN_ENCODING,y=f.errorOrDestroy;function w(){}function b(e,t,r){n=n||A("./_stream_duplex"),e=e||{},"boolean"!=typeof r&&(r=t instanceof n),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=l(this,e,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=!1===e.decodeStrings;this.decodeStrings=!i,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(A){M(t,A)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function _(e){var t=this instanceof(n=n||A("./_stream_duplex"));if(!t&&!u.call(_,this))return new _(e);this._writableState=new b(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),s.call(this)}function D(A,e){var t=new p;y(A,t),i.nextTick(e,t)}function v(A,e,t,n){var r;return null===t?r=new Q:"string"==typeof t||e.objectMode||(r=new E("chunk",["string","Buffer"],t)),!r||(y(A,r),i.nextTick(n,r),!1)}function R(A,e,t){return A.objectMode||!1===A.decodeStrings||"string"!=typeof e||(e=g.from(e,t)),e}function F(A,e,t,n,r,i,o){e.writelen=n,e.writecb=o,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new h("write")):t?A._writev(r,e.onwrite):A._write(r,i,e.onwrite),e.sync=!1}function M(A,e){var t=A._writableState,n=t.sync,r=t.writecb;if("function"!=typeof r)throw new d;if(function(A){A.writing=!1,A.writecb=null,A.length-=A.writelen,A.writelen=0}(t),e)!function(A,e,t,n,r){--e.pendingcb,t?(i.nextTick(r,n),i.nextTick(L,A,e),A._writableState.errorEmitted=!0,y(A,n)):(r(n),A._writableState.errorEmitted=!0,y(A,n),L(A,e))}(A,t,n,e,r);else{var o=G(t)||A.destroyed;o||t.corked||t.bufferProcessing||!t.bufferedRequest||k(A,t),n?i.nextTick(S,A,t,o,r):S(A,t,o,r)}}function S(A,e,t,n){t||function(A,e){0===e.length&&e.needDrain&&(e.needDrain=!1,A.emit("drain"))}(A,e),e.pendingcb--,n(),L(A,e)}function k(A,e){e.bufferProcessing=!0;var t=e.bufferedRequest;if(A._writev&&t&&t.next){var n=e.bufferedRequestCount,r=new Array(n),i=e.corkedRequestsFree;i.entry=t;for(var a=0,s=!0;t;)r[a]=t,t.isBuf||(s=!1),t=t.next,a+=1;r.allBuffers=s,F(A,e,!0,e.length,r,"",i.finish),e.pendingcb++,e.lastBufferedRequest=null,i.next?(e.corkedRequestsFree=i.next,i.next=null):e.corkedRequestsFree=new o(e),e.bufferedRequestCount=0}else{for(;t;){var g=t.chunk,I=t.encoding,u=t.callback;if(F(A,e,!1,e.objectMode?1:g.length,g,I,u),t=t.next,e.bufferedRequestCount--,e.writing)break}null===t&&(e.lastBufferedRequest=null)}e.bufferedRequest=t,e.bufferProcessing=!1}function G(A){return A.ending&&0===A.length&&null===A.bufferedRequest&&!A.finished&&!A.writing}function N(A,e){A._final(function(t){e.pendingcb--,t&&y(A,t),e.prefinished=!0,A.emit("prefinish"),L(A,e)})}function P(A,e){e.prefinished||e.finalCalled||("function"!=typeof A._final||e.destroyed?(e.prefinished=!0,A.emit("prefinish")):(e.pendingcb++,e.finalCalled=!0,i.nextTick(N,A,e)))}function L(A,e){var t=G(e);if(t&&(P(A,e),0===e.pendingcb&&(e.finished=!0,A.emit("finish"),e.autoDestroy))){var n=A._readableState;(!n||n.autoDestroy&&n.endEmitted)&&A.destroy()}return t}function U(A,e,t){e.ending=!0,L(A,e),t&&(e.finished?i.nextTick(t):A.once("finish",t)),e.ended=!0,A.writable=!1}A("inherits")(_,s),b.prototype.getBuffer=function(){for(var A=this.bufferedRequest,e=[];A;)e.push(A),A=A.next;return e},function(){try{Object.defineProperty(b.prototype,"buffer",{get:a.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(n){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(u=Function.prototype[Symbol.hasInstance],Object.defineProperty(_,Symbol.hasInstance,{value:function(A){return!!u.call(this,A)||this===_&&A&&A._writableState instanceof b}})):u=function(A){return A instanceof this},_.prototype.pipe=function(){y(this,new C)},_.prototype.write=function(A,e,t){var n=this._writableState,r=!1,i=!n.objectMode&&function(A){return g.isBuffer(A)||A instanceof I}(A);return i&&!g.isBuffer(A)&&(A=function(A){return g.from(A)}(A)),"function"==typeof e&&(t=e,e=null),i?e="buffer":e||(e=n.defaultEncoding),"function"!=typeof t&&(t=w),n.ending?D(this,t):(i||v(this,n,A,t))&&(n.pendingcb++,r=function(A,e,t,n,r,i){if(!t){var o=R(e,n,r);n!==o&&(t=!0,r="buffer",n=o)}var a=e.objectMode?1:n.length;e.length+=a;var s=e.length<e.highWaterMark;if(s||(e.needDrain=!0),e.writing||e.corked){var g=e.lastBufferedRequest;e.lastBufferedRequest={chunk:n,encoding:r,isBuf:t,callback:i,next:null},g?g.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else F(A,e,!1,a,n,r,i);return s}(this,n,i,A,e,t)),r},_.prototype.cork=function(){this._writableState.corked++},_.prototype.uncork=function(){var A=this._writableState;A.corked&&(A.corked--,A.writing||A.corked||A.bufferProcessing||!A.bufferedRequest||k(this,A))},_.prototype.setDefaultEncoding=function(A){if("string"==typeof A&&(A=A.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((A+"").toLowerCase())>-1))throw new m(A);return this._writableState.defaultEncoding=A,this},Object.defineProperty(_.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(_.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),_.prototype._write=function(A,e,t){t(new c("_write()"))},_.prototype._writev=null,_.prototype.end=function(A,e,t){var n=this._writableState;return"function"==typeof A?(t=A,A=null,e=null):"function"==typeof e&&(t=e,e=null),null!=A&&this.write(A,e),n.corked&&(n.corked=1,this.uncork()),n.ending||U(this,n,t),this},Object.defineProperty(_.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(_.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(A){this._writableState&&(this._writableState.destroyed=A)}}),_.prototype.destroy=f.destroy,_.prototype._undestroy=f.undestroy,_.prototype._destroy=function(A,e){e(A)}},{"util-deprecate":"yM1o","./internal/streams/stream":"8V4J",buffer:"dskh","./internal/streams/destroy":"DoEV","./internal/streams/state":"PBOR","../errors":"6eV+",inherits:"t8EM","./_stream_duplex":"fJIH",process:"pBGv"}],fJIH:[function(A,e,t){A("process");var n=A("process"),r=Object.keys||function(A){var e=[];for(var t in A)e.push(t);return e};e.exports=I;var i=A("./_stream_readable"),o=A("./_stream_writable");A("inherits")(I,i);for(var a=r(o.prototype),s=0;s<a.length;s++){var g=a[s];I.prototype[g]||(I.prototype[g]=o.prototype[g])}function I(A){if(!(this instanceof I))return new I(A);i.call(this,A),o.call(this,A),this.allowHalfOpen=!0,A&&(!1===A.readable&&(this.readable=!1),!1===A.writable&&(this.writable=!1),!1===A.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",u)))}function u(){this._writableState.ended||n.nextTick(f,this)}function f(A){A.end()}Object.defineProperty(I.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(I.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(I.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(I.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&this._readableState.destroyed&&this._writableState.destroyed},set:function(A){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=A,this._writableState.destroyed=A)}})},{"./_stream_readable":"BtJo","./_stream_writable":"CFrt",inherits:"t8EM",process:"pBGv"}],b912:[function(A,e,t){"use strict";var n=A("../../../errors").codes.ERR_STREAM_PREMATURE_CLOSE;function r(){}e.exports=function A(e,t,i){if("function"==typeof t)return A(e,null,t);t||(t={}),i=function(A){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];A.apply(this,n)}}}(i||r);var o=t.readable||!1!==t.readable&&e.readable,a=t.writable||!1!==t.writable&&e.writable,s=function(){e.writable||I()},g=e._writableState&&e._writableState.finished,I=function(){a=!1,g=!0,o||i.call(e)},u=e._readableState&&e._readableState.endEmitted,f=function(){o=!1,u=!0,a||i.call(e)},l=function(A){i.call(e,A)},B=function(){var A;return o&&!u?(e._readableState&&e._readableState.ended||(A=new n),i.call(e,A)):a&&!g?(e._writableState&&e._writableState.ended||(A=new n),i.call(e,A)):void 0},E=function(){e.req.on("finish",I)};return function(A){return A.setHeader&&"function"==typeof A.abort}(e)?(e.on("complete",I),e.on("abort",B),e.req?E():e.on("request",E)):a&&!e._writableState&&(e.on("end",s),e.on("close",s)),e.on("end",f),e.on("finish",I),!1!==t.error&&e.on("error",l),e.on("close",B),function(){e.removeListener("complete",I),e.removeListener("abort",B),e.removeListener("request",E),e.req&&e.req.removeListener("finish",I),e.removeListener("end",s),e.removeListener("close",s),e.removeListener("finish",I),e.removeListener("end",f),e.removeListener("error",l),e.removeListener("close",B)}}},{"../../../errors":"6eV+"}],"aAI+":[function(A,e,t){A("process");var n,r=A("process");function i(A,e,t){return e in A?Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):A[e]=t,A}var o=A("./end-of-stream"),a=Symbol("lastResolve"),s=Symbol("lastReject"),g=Symbol("error"),I=Symbol("ended"),u=Symbol("lastPromise"),f=Symbol("handlePromise"),l=Symbol("stream");function B(A,e){return{value:A,done:e}}function E(A){var e=A[a];if(null!==e){var t=A[l].read();null!==t&&(A[u]=null,A[a]=null,A[s]=null,e(B(t,!1)))}}function c(A){r.nextTick(E,A)}var d=Object.getPrototypeOf(function(){}),C=Object.setPrototypeOf((i(n={get stream(){return this[l]},next:function(){var A=this,e=this[g];if(null!==e)return Promise.reject(e);if(this[I])return Promise.resolve(B(void 0,!0));if(this[l].destroyed)return new Promise(function(e,t){r.nextTick(function(){A[g]?t(A[g]):e(B(void 0,!0))})});var t,n=this[u];if(n)t=new Promise(function(A,e){return function(t,n){A.then(function(){e[I]?t(B(void 0,!0)):e[f](t,n)},n)}}(n,this));else{var i=this[l].read();if(null!==i)return Promise.resolve(B(i,!1));t=new Promise(this[f])}return this[u]=t,t}},Symbol.asyncIterator,function(){return this}),i(n,"return",function(){var A=this;return new Promise(function(e,t){A[l].destroy(null,function(A){A?t(A):e(B(void 0,!0))})})}),n),d);e.exports=function(A){var e,t=Object.create(C,(i(e={},l,{value:A,writable:!0}),i(e,a,{value:null,writable:!0}),i(e,s,{value:null,writable:!0}),i(e,g,{value:null,writable:!0}),i(e,I,{value:A._readableState.endEmitted,writable:!0}),i(e,f,{value:function(A,e){var n=t[l].read();n?(t[u]=null,t[a]=null,t[s]=null,A(B(n,!1))):(t[a]=A,t[s]=e)},writable:!0}),e));return t[u]=null,o(A,function(A){if(A&&"ERR_STREAM_PREMATURE_CLOSE"!==A.code){var e=t[s];return null!==e&&(t[u]=null,t[a]=null,t[s]=null,e(A)),void(t[g]=A)}var n=t[a];null!==n&&(t[u]=null,t[a]=null,t[s]=null,n(B(void 0,!0))),t[I]=!0}),A.on("readable",c.bind(null,t)),t}},{"./end-of-stream":"b912",process:"pBGv"}],BtJo:[function(A,e,t){arguments[3],A("process");var n,r=arguments[3],i=A("process");e.exports=_,_.ReadableState=b;A("events").EventEmitter;var o=function(A,e){return A.listeners(e).length},a=A("./internal/streams/stream"),s=A("buffer").Buffer,g=r.Uint8Array||function(){};var I,u=A("util");I=u&&u.debuglog?u.debuglog("stream"):function(){};var f,l,B,E=A("./internal/streams/buffer_list"),c=A("./internal/streams/destroy"),d=A("./internal/streams/state").getHighWaterMark,C=A("../errors").codes,h=C.ERR_INVALID_ARG_TYPE,Q=C.ERR_STREAM_PUSH_AFTER_EOF,p=C.ERR_METHOD_NOT_IMPLEMENTED,m=C.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;A("inherits")(_,a);var y=c.errorOrDestroy,w=["error","close","destroy","pause","resume"];function b(e,t,r){n=n||A("./_stream_duplex"),e=e||{},"boolean"!=typeof r&&(r=t instanceof n),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=d(this,e,"readableHighWaterMark",r),this.buffer=new E,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(f||(f=A("string_decoder/").StringDecoder),this.decoder=new f(e.encoding),this.encoding=e.encoding)}function _(e){if(n=n||A("./_stream_duplex"),!(this instanceof _))return new _(e);var t=this instanceof n;this._readableState=new b(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),a.call(this)}function D(A,e,t,n,r){I("readableAddChunk",e);var i,o=A._readableState;if(null===e)o.reading=!1,function(A,e){if(I("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?M(A):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,S(A)))}}(A,o);else if(r||(i=function(A,e){var t;return function(A){return s.isBuffer(A)||A instanceof o}(e)||"string"==typeof e||void 0===e||A.objectMode||(t=new h("chunk",["string","Buffer","Uint8Array"],e)),t}(o,e)),i)y(A,i);else if(o.objectMode||e&&e.length>0)if("string"==typeof e||o.objectMode||Object.getPrototypeOf(e)===s.prototype||(e=function(A){return s.from(A)}(e)),n)o.endEmitted?y(A,new m):v(A,o,e,!0);else if(o.ended)y(A,new Q);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!t?(e=o.decoder.write(e),o.objectMode||0!==e.length?v(A,o,e,!1):k(A,o)):v(A,o,e,!1)}else n||(o.reading=!1,k(A,o));return!o.ended&&(o.length<o.highWaterMark||0===o.length)}function v(A,e,t,n){e.flowing&&0===e.length&&!e.sync?(e.awaitDrain=0,A.emit("data",t)):(e.length+=e.objectMode?1:t.length,n?e.buffer.unshift(t):e.buffer.push(t),e.needReadable&&M(A)),k(A,e)}Object.defineProperty(_.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(A){this._readableState&&(this._readableState.destroyed=A)}}),_.prototype.destroy=c.destroy,_.prototype._undestroy=c.undestroy,_.prototype._destroy=function(A,e){e(A)},_.prototype.push=function(A,e){var t,n=this._readableState;return n.objectMode?t=!0:"string"==typeof A&&((e=e||n.defaultEncoding)!==n.encoding&&(A=s.from(A,e),e=""),t=!0),D(this,A,e,!1,t)},_.prototype.unshift=function(A){return D(this,A,null,!0,!1)},_.prototype.isPaused=function(){return!1===this._readableState.flowing},_.prototype.setEncoding=function(e){f||(f=A("string_decoder/").StringDecoder);var t=new f(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;for(var n=this._readableState.buffer.head,r="";null!==n;)r+=t.write(n.data),n=n.next;return this._readableState.buffer.clear(),""!==r&&this._readableState.buffer.push(r),this._readableState.length=r.length,this};var R=1073741824;function F(A,e){return A<=0||0===e.length&&e.ended?0:e.objectMode?1:A!=A?e.flowing&&e.length?e.buffer.head.data.length:e.length:(A>e.highWaterMark&&(e.highWaterMark=function(A){return A>=R?A=R:(A--,A|=A>>>1,A|=A>>>2,A|=A>>>4,A|=A>>>8,A|=A>>>16,A++),A}(A)),A<=e.length?A:e.ended?e.length:(e.needReadable=!0,0))}function M(A){var e=A._readableState;I("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(I("emitReadable",e.flowing),e.emittedReadable=!0,i.nextTick(S,A))}function S(A){var e=A._readableState;I("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(A.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,U(A)}function k(A,e){e.readingMore||(e.readingMore=!0,i.nextTick(G,A,e))}function G(A,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&0===e.length);){var t=e.length;if(I("maybeReadMore read 0"),A.read(0),t===e.length)break}e.readingMore=!1}function N(A){var e=A._readableState;e.readableListening=A.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:A.listenerCount("data")>0&&A.resume()}function P(A){I("readable nexttick read 0"),A.read(0)}function L(A,e){I("resume",e.reading),e.reading||A.read(0),e.resumeScheduled=!1,A.emit("resume"),U(A),e.flowing&&!e.reading&&A.read(0)}function U(A){var e=A._readableState;for(I("flow",e.flowing);e.flowing&&null!==A.read(););}function Y(A,e){return 0===e.length?null:(e.objectMode?t=e.buffer.shift():!A||A>=e.length?(t=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(A,e.decoder),t);var t}function x(A){var e=A._readableState;I("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,i.nextTick(Z,e,A))}function Z(A,e){if(I("endReadableNT",A.endEmitted,A.length),!A.endEmitted&&0===A.length&&(A.endEmitted=!0,e.readable=!1,e.emit("end"),A.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}function H(A,e){for(var t=0,n=A.length;t<n;t++)if(A[t]===e)return t;return-1}_.prototype.read=function(A){I("read",A),A=parseInt(A,10);var e=this._readableState,t=A;if(0!==A&&(e.emittedReadable=!1),0===A&&e.needReadable&&((0!==e.highWaterMark?e.length>=e.highWaterMark:e.length>0)||e.ended))return I("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?x(this):M(this),null;if(0===(A=F(A,e))&&e.ended)return 0===e.length&&x(this),null;var n,r=e.needReadable;return I("need readable",r),(0===e.length||e.length-A<e.highWaterMark)&&I("length less than watermark",r=!0),e.ended||e.reading?I("reading or ended",r=!1):r&&(I("do read"),e.reading=!0,e.sync=!0,0===e.length&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(A=F(t,e))),null===(n=A>0?Y(A,e):null)?(e.needReadable=e.length<=e.highWaterMark,A=0):(e.length-=A,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),t!==A&&e.ended&&x(this)),null!==n&&this.emit("data",n),n},_.prototype._read=function(A){y(this,new p("_read()"))},_.prototype.pipe=function(A,e){var t=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=A;break;case 1:n.pipes=[n.pipes,A];break;default:n.pipes.push(A)}n.pipesCount+=1,I("pipe count=%d opts=%j",n.pipesCount,e);var r=e&&!1===e.end||A===i.stdout||A===i.stderr?E:a;function a(){I("onend"),A.end()}n.endEmitted?i.nextTick(r):t.once("end",r),A.on("unpipe",function e(r,i){I("onunpipe"),r===t&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,I("cleanup"),A.removeListener("close",l),A.removeListener("finish",B),A.removeListener("drain",s),A.removeListener("error",f),A.removeListener("unpipe",e),t.removeListener("end",a),t.removeListener("end",E),t.removeListener("data",u),g=!0,!n.awaitDrain||A._writableState&&!A._writableState.needDrain||s())});var s=function(A){return function(){var e=A._readableState;I("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&o(A,"data")&&(e.flowing=!0,U(A))}}(t);A.on("drain",s);var g=!1;function u(e){I("ondata");var r=A.write(e);I("dest.write",r),!1===r&&((1===n.pipesCount&&n.pipes===A||n.pipesCount>1&&-1!==H(n.pipes,A))&&!g&&(I("false write response, pause",n.awaitDrain),n.awaitDrain++),t.pause())}function f(e){I("onerror",e),E(),A.removeListener("error",f),0===o(A,"error")&&y(A,e)}function l(){A.removeListener("finish",B),E()}function B(){I("onfinish"),A.removeListener("close",l),E()}function E(){I("unpipe"),t.unpipe(A)}return t.on("data",u),function(A,e,t){if("function"==typeof A.prependListener)return A.prependListener(e,t);A._events&&A._events[e]?Array.isArray(A._events[e])?A._events[e].unshift(t):A._events[e]=[t,A._events[e]]:A.on(e,t)}(A,"error",f),A.once("close",l),A.once("finish",B),A.emit("pipe",t),n.flowing||(I("pipe resume"),t.resume()),A},_.prototype.unpipe=function(A){var e=this._readableState,t={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return A&&A!==e.pipes?this:(A||(A=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,A&&A.emit("unpipe",this,t),this);if(!A){var n=e.pipes,r=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var i=0;i<r;i++)n[i].emit("unpipe",this,{hasUnpiped:!1});return this}var o=H(e.pipes,A);return-1===o?this:(e.pipes.splice(o,1),e.pipesCount-=1,1===e.pipesCount&&(e.pipes=e.pipes[0]),A.emit("unpipe",this,t),this)},_.prototype.on=function(A,e){var t=a.prototype.on.call(this,A,e),n=this._readableState;return"data"===A?(n.readableListening=this.listenerCount("readable")>0,!1!==n.flowing&&this.resume()):"readable"===A&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,I("on readable",n.length,n.reading),n.length?M(this):n.reading||i.nextTick(P,this))),t},_.prototype.addListener=_.prototype.on,_.prototype.removeListener=function(A,e){var t=a.prototype.removeListener.call(this,A,e);return"readable"===A&&i.nextTick(N,this),t},_.prototype.removeAllListeners=function(A){var e=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==A&&void 0!==A||i.nextTick(N,this),e},_.prototype.resume=function(){var A=this._readableState;return A.flowing||(I("resume"),A.flowing=!A.readableListening,function(A,e){e.resumeScheduled||(e.resumeScheduled=!0,i.nextTick(L,A,e))}(this,A)),A.paused=!1,this},_.prototype.pause=function(){return I("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(I("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},_.prototype.wrap=function(A){var e=this,t=this._readableState,n=!1;for(var r in A.on("end",function(){if(I("wrapped end"),t.decoder&&!t.ended){var A=t.decoder.end();A&&A.length&&e.push(A)}e.push(null)}),A.on("data",function(r){I("wrapped data"),t.decoder&&(r=t.decoder.write(r)),t.objectMode&&null==r||(t.objectMode||r&&r.length)&&(e.push(r)||(n=!0,A.pause()))}),A)void 0===this[r]&&"function"==typeof A[r]&&(this[r]=function(e){return function(){return A[e].apply(A,arguments)}}(r));for(var i=0;i<w.length;i++)A.on(w[i],this.emit.bind(this,w[i]));return this._read=function(e){I("wrapped _read",e),n&&(n=!1,A.resume())},this},"function"==typeof Symbol&&(_.prototype[Symbol.asyncIterator]=function(){return void 0===l&&(l=A("./internal/streams/async_iterator")),l(this)}),Object.defineProperty(_.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(_.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(_.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(A){this._readableState&&(this._readableState.flowing=A)}}),_._fromList=Y,Object.defineProperty(_.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),"function"==typeof Symbol&&(_.from=function(e,t){return void 0===B&&(B=A("./internal/streams/from")),B(_,e,t)})},{events:"FRpO","./internal/streams/stream":"8V4J",buffer:"dskh",util:"f88W","./internal/streams/buffer_list":"bUoY","./internal/streams/destroy":"DoEV","./internal/streams/state":"PBOR","../errors":"6eV+",inherits:"t8EM","./_stream_duplex":"fJIH","string_decoder/":"z0rv","./internal/streams/async_iterator":"aAI+","./internal/streams/from":"pIwT",process:"pBGv"}],krU2:[function(A,e,t){"use strict";e.exports=I;var n=A("../errors").codes,r=n.ERR_METHOD_NOT_IMPLEMENTED,i=n.ERR_MULTIPLE_CALLBACK,o=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,a=n.ERR_TRANSFORM_WITH_LENGTH_0,s=A("./_stream_duplex");function g(A,e){var t=this._transformState;t.transforming=!1;var n=t.writecb;if(null===n)return this.emit("error",new i);t.writechunk=null,t.writecb=null,null!=e&&this.push(e),n(A);var r=this._readableState;r.reading=!1,(r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}function I(A){if(!(this instanceof I))return new I(A);s.call(this,A),this._transformState={afterTransform:g.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,A&&("function"==typeof A.transform&&(this._transform=A.transform),"function"==typeof A.flush&&(this._flush=A.flush)),this.on("prefinish",u)}function u(){var A=this;"function"!=typeof this._flush||this._readableState.destroyed?f(this,null,null):this._flush(function(e,t){f(A,e,t)})}function f(A,e,t){if(e)return A.emit("error",e);if(null!=t&&A.push(t),A._writableState.length)throw new a;if(A._transformState.transforming)throw new o;return A.push(null)}A("inherits")(I,s),I.prototype.push=function(A,e){return this._transformState.needTransform=!1,s.prototype.push.call(this,A,e)},I.prototype._transform=function(A,e,t){t(new r("_transform()"))},I.prototype._write=function(A,e,t){var n=this._transformState;if(n.writecb=t,n.writechunk=A,n.writeencoding=e,!n.transforming){var r=this._readableState;(n.needTransform||r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}},I.prototype._read=function(A){var e=this._transformState;null===e.writechunk||e.transforming?e.needTransform=!0:(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform))},I.prototype._destroy=function(A,e){s.prototype._destroy.call(this,A,function(A){e(A)})}},{"../errors":"6eV+","./_stream_duplex":"fJIH",inherits:"t8EM"}],"50fq":[function(A,e,t){"use strict";e.exports=r;var n=A("./_stream_transform");function r(A){if(!(this instanceof r))return new r(A);n.call(this,A)}A("inherits")(r,n),r.prototype._transform=function(A,e,t){t(null,A)}},{"./_stream_transform":"krU2",inherits:"t8EM"}],"4CFn":[function(A,e,t){"use strict";var n;var r=A("../../../errors").codes,i=r.ERR_MISSING_ARGS,o=r.ERR_STREAM_DESTROYED;function a(A){if(A)throw A}function s(e,t,r,i){i=function(A){var e=!1;return function(){e||(e=!0,A.apply(void 0,arguments))}}(i);var a=!1;e.on("close",function(){a=!0}),void 0===n&&(n=A("./end-of-stream")),n(e,{readable:t,writable:r},function(A){if(A)return i(A);a=!0,i()});var s=!1;return function(A){if(!a&&!s)return s=!0,function(A){return A.setHeader&&"function"==typeof A.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void i(A||new o("pipe"))}}function g(A){A()}function I(A,e){return A.pipe(e)}function u(A){return A.length?"function"!=typeof A[A.length-1]?a:A.pop():a}e.exports=function(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];var n,r=u(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new i("streams");var o=e.map(function(A,t){var i=t<e.length-1;return s(A,i,t>0,function(A){n||(n=A),A&&o.forEach(g),i||(o.forEach(g),r(n))})});return e.reduce(I)}},{"../../../errors":"6eV+","./end-of-stream":"b912"}],TgzV:[function(A,e,t){(t=e.exports=A("./lib/_stream_readable.js")).Stream=t,t.Readable=t,t.Writable=A("./lib/_stream_writable.js"),t.Duplex=A("./lib/_stream_duplex.js"),t.Transform=A("./lib/_stream_transform.js"),t.PassThrough=A("./lib/_stream_passthrough.js"),t.finished=A("./lib/internal/streams/end-of-stream.js"),t.pipeline=A("./lib/internal/streams/pipeline.js")},{"./lib/_stream_readable.js":"BtJo","./lib/_stream_writable.js":"CFrt","./lib/_stream_duplex.js":"fJIH","./lib/_stream_transform.js":"krU2","./lib/_stream_passthrough.js":"50fq","./lib/internal/streams/end-of-stream.js":"b912","./lib/internal/streams/pipeline.js":"4CFn"}],BOxy:[function(A,e,t){A("buffer").Buffer,A("buffer").Buffer;!function(e,t){"use strict";function n(A,e){if(!A)throw new Error(e||"Assertion failed")}function r(A,e){A.super_=e;var t=function(){};t.prototype=e.prototype,A.prototype=new t,A.prototype.constructor=A}function i(A,e,t){if(i.isBN(A))return A;this.negative=0,this.words=null,this.length=0,this.red=null,null!==A&&("le"!==e&&"be"!==e||(t=e,e=10),this._init(A||0,e||10,t||"be"))}var o;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:A("buffer").Buffer}catch(v){}function a(A,e){var t=A.charCodeAt(e);return t>=48&&t<=57?t-48:t>=65&&t<=70?t-55:t>=97&&t<=102?t-87:void n(!1,"Invalid character in "+A)}function s(A,e,t){var n=a(A,t);return t-1>=e&&(n|=a(A,t-1)<<4),n}function g(A,e,t,r){for(var i=0,o=0,a=Math.min(A.length,t),s=e;s<a;s++){var g=A.charCodeAt(s)-48;i*=r,o=g>=49?g-49+10:g>=17?g-17+10:g,n(g>=0&&o<r,"Invalid character"),i+=o}return i}function I(A,e){A.words=e.words,A.length=e.length,A.negative=e.negative,A.red=e.red}if(i.isBN=function(A){return A instanceof i||null!==A&&"object"==typeof A&&A.constructor.wordSize===i.wordSize&&Array.isArray(A.words)},i.max=function(A,e){return A.cmp(e)>0?A:e},i.min=function(A,e){return A.cmp(e)<0?A:e},i.prototype._init=function(A,e,t){if("number"==typeof A)return this._initNumber(A,e,t);if("object"==typeof A)return this._initArray(A,e,t);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var r=0;"-"===(A=A.toString().replace(/\s+/g,""))[0]&&(r++,this.negative=1),r<A.length&&(16===e?this._parseHex(A,r,t):(this._parseBase(A,e,r),"le"===t&&this._initArray(this.toArray(),e,t)))},i.prototype._initNumber=function(A,e,t){A<0&&(this.negative=1,A=-A),A<67108864?(this.words=[67108863&A],this.length=1):A<4503599627370496?(this.words=[67108863&A,A/67108864&67108863],this.length=2):(n(A<9007199254740992),this.words=[67108863&A,A/67108864&67108863,1],this.length=3),"le"===t&&this._initArray(this.toArray(),e,t)},i.prototype._initArray=function(A,e,t){if(n("number"==typeof A.length),A.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(A.length/3),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,o,a=0;if("be"===t)for(r=A.length-1,i=0;r>=0;r-=3)o=A[r]|A[r-1]<<8|A[r-2]<<16,this.words[i]|=o<<a&67108863,this.words[i+1]=o>>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);else if("le"===t)for(r=0,i=0;r<A.length;r+=3)o=A[r]|A[r+1]<<8|A[r+2]<<16,this.words[i]|=o<<a&67108863,this.words[i+1]=o>>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);return this._strip()},i.prototype._parseHex=function(A,e,t){this.length=Math.ceil((A.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var r,i=0,o=0;if("be"===t)for(n=A.length-1;n>=e;n-=2)r=s(A,e,n)<<i,this.words[o]|=67108863&r,i>=18?(i-=18,o+=1,this.words[o]|=r>>>26):i+=8;else for(n=(A.length-e)%2==0?e+1:e;n<A.length;n+=2)r=s(A,e,n)<<i,this.words[o]|=67108863&r,i>=18?(i-=18,o+=1,this.words[o]|=r>>>26):i+=8;this._strip()},i.prototype._parseBase=function(A,e,t){this.words=[0],this.length=1;for(var n=0,r=1;r<=67108863;r*=e)n++;n--,r=r/e|0;for(var i=A.length-t,o=i%n,a=Math.min(i,i-o)+t,s=0,I=t;I<a;I+=n)s=g(A,I,I+n,e),this.imuln(r),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s);if(0!==o){var u=1;for(s=g(A,I,A.length,e),I=0;I<o;I++)u*=e;this.imuln(u),this.words[0]+s<67108864?this.words[0]+=s:this._iaddn(s)}this._strip()},i.prototype.copy=function(A){A.words=new Array(this.length);for(var e=0;e<this.length;e++)A.words[e]=this.words[e];A.length=this.length,A.negative=this.negative,A.red=this.red},i.prototype._move=function(A){I(A,this)},i.prototype.clone=function(){var A=new i(null);return this.copy(A),A},i.prototype._expand=function(A){for(;this.length<A;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=u}catch(v){i.prototype.inspect=u}else i.prototype.inspect=u;function u(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],B=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function E(A,e,t){t.negative=e.negative^A.negative;var n=A.length+e.length|0;t.length=n,n=n-1|0;var r=0|A.words[0],i=0|e.words[0],o=r*i,a=67108863&o,s=o/67108864|0;t.words[0]=a;for(var g=1;g<n;g++){for(var I=s>>>26,u=67108863&s,f=Math.min(g,e.length-1),l=Math.max(0,g-A.length+1);l<=f;l++){var B=g-l|0;I+=(o=(r=0|A.words[B])*(i=0|e.words[l])+u)/67108864|0,u=67108863&o}t.words[g]=0|u,s=0|I}return 0!==s?t.words[g]=0|s:t.length--,t._strip()}i.prototype.toString=function(A,e){var t;if(e=0|e||1,16===(A=A||10)||"hex"===A){t="";for(var r=0,i=0,o=0;o<this.length;o++){var a=this.words[o],s=(16777215&(a<<r|i)).toString(16);t=0!=(i=a>>>24-r&16777215)||o!==this.length-1?f[6-s.length]+s+t:s+t,(r+=2)>=26&&(r-=26,o--)}for(0!==i&&(t=i.toString(16)+t);t.length%e!=0;)t="0"+t;return 0!==this.negative&&(t="-"+t),t}if(A===(0|A)&&A>=2&&A<=36){var g=l[A],I=B[A];t="";var u=this.clone();for(u.negative=0;!u.isZero();){var E=u.modrn(I).toString(A);t=(u=u.idivn(I)).isZero()?E+t:f[g-E.length]+E+t}for(this.isZero()&&(t="0"+t);t.length%e!=0;)t="0"+t;return 0!==this.negative&&(t="-"+t),t}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var A=this.words[0];return 2===this.length?A+=67108864*this.words[1]:3===this.length&&1===this.words[2]?A+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-A:A},i.prototype.toJSON=function(){return this.toString(16,2)},o&&(i.prototype.toBuffer=function(A,e){return this.toArrayLike(o,A,e)}),i.prototype.toArray=function(A,e){return this.toArrayLike(Array,A,e)},i.prototype.toArrayLike=function(A,e,t){this._strip();var r=this.byteLength(),i=t||Math.max(1,r);n(r<=i,"byte array longer than desired length"),n(i>0,"Requested array length <= 0");var o=function(A,e){return A.allocUnsafe?A.allocUnsafe(e):new A(e)}(A,i);return this["_toArrayLike"+("le"===e?"LE":"BE")](o,r),o},i.prototype._toArrayLikeLE=function(A,e){for(var t=0,n=0,r=0,i=0;r<this.length;r++){var o=this.words[r]<<i|n;A[t++]=255&o,t<A.length&&(A[t++]=o>>8&255),t<A.length&&(A[t++]=o>>16&255),6===i?(t<A.length&&(A[t++]=o>>24&255),n=0,i=0):(n=o>>>24,i+=2)}if(t<A.length)for(A[t++]=n;t<A.length;)A[t++]=0},i.prototype._toArrayLikeBE=function(A,e){for(var t=A.length-1,n=0,r=0,i=0;r<this.length;r++){var o=this.words[r]<<i|n;A[t--]=255&o,t>=0&&(A[t--]=o>>8&255),t>=0&&(A[t--]=o>>16&255),6===i?(t>=0&&(A[t--]=o>>24&255),n=0,i=0):(n=o>>>24,i+=2)}if(t>=0)for(A[t--]=n;t>=0;)A[t--]=0},Math.clz32?i.prototype._countBits=function(A){return 32-Math.clz32(A)}:i.prototype._countBits=function(A){var e=A,t=0;return e>=4096&&(t+=13,e>>>=13),e>=64&&(t+=7,e>>>=7),e>=8&&(t+=4,e>>>=4),e>=2&&(t+=2,e>>>=2),t+e},i.prototype._zeroBits=function(A){if(0===A)return 26;var e=A,t=0;return 0==(8191&e)&&(t+=13,e>>>=13),0==(127&e)&&(t+=7,e>>>=7),0==(15&e)&&(t+=4,e>>>=4),0==(3&e)&&(t+=2,e>>>=2),0==(1&e)&&t++,t},i.prototype.bitLength=function(){var A=this.words[this.length-1],e=this._countBits(A);return 26*(this.length-1)+e},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var A=0,e=0;e<this.length;e++){var t=this._zeroBits(this.words[e]);if(A+=t,26!==t)break}return A},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(A){return 0!==this.negative?this.abs().inotn(A).iaddn(1):this.clone()},i.prototype.fromTwos=function(A){return this.testn(A-1)?this.notn(A).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(A){for(;this.length<A.length;)this.words[this.length++]=0;for(var e=0;e<A.length;e++)this.words[e]=this.words[e]|A.words[e];return this._strip()},i.prototype.ior=function(A){return n(0==(this.negative|A.negative)),this.iuor(A)},i.prototype.or=function(A){return this.length>A.length?this.clone().ior(A):A.clone().ior(this)},i.prototype.uor=function(A){return this.length>A.length?this.clone().iuor(A):A.clone().iuor(this)},i.prototype.iuand=function(A){var e;e=this.length>A.length?A:this;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]&A.words[t];return this.length=e.length,this._strip()},i.prototype.iand=function(A){return n(0==(this.negative|A.negative)),this.iuand(A)},i.prototype.and=function(A){return this.length>A.length?this.clone().iand(A):A.clone().iand(this)},i.prototype.uand=function(A){return this.length>A.length?this.clone().iuand(A):A.clone().iuand(this)},i.prototype.iuxor=function(A){var e,t;this.length>A.length?(e=this,t=A):(e=A,t=this);for(var n=0;n<t.length;n++)this.words[n]=e.words[n]^t.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this._strip()},i.prototype.ixor=function(A){return n(0==(this.negative|A.negative)),this.iuxor(A)},i.prototype.xor=function(A){return this.length>A.length?this.clone().ixor(A):A.clone().ixor(this)},i.prototype.uxor=function(A){return this.length>A.length?this.clone().iuxor(A):A.clone().iuxor(this)},i.prototype.inotn=function(A){n("number"==typeof A&&A>=0);var e=0|Math.ceil(A/26),t=A%26;this._expand(e),t>0&&e--;for(var r=0;r<e;r++)this.words[r]=67108863&~this.words[r];return t>0&&(this.words[r]=~this.words[r]&67108863>>26-t),this._strip()},i.prototype.notn=function(A){return this.clone().inotn(A)},i.prototype.setn=function(A,e){n("number"==typeof A&&A>=0);var t=A/26|0,r=A%26;return this._expand(t+1),this.words[t]=e?this.words[t]|1<<r:this.words[t]&~(1<<r),this._strip()},i.prototype.iadd=function(A){var e,t,n;if(0!==this.negative&&0===A.negative)return this.negative=0,e=this.isub(A),this.negative^=1,this._normSign();if(0===this.negative&&0!==A.negative)return A.negative=0,e=this.isub(A),A.negative=1,e._normSign();this.length>A.length?(t=this,n=A):(t=A,n=this);for(var r=0,i=0;i<n.length;i++)e=(0|t.words[i])+(0|n.words[i])+r,this.words[i]=67108863&e,r=e>>>26;for(;0!==r&&i<t.length;i++)e=(0|t.words[i])+r,this.words[i]=67108863&e,r=e>>>26;if(this.length=t.length,0!==r)this.words[this.length]=r,this.length++;else if(t!==this)for(;i<t.length;i++)this.words[i]=t.words[i];return this},i.prototype.add=function(A){var e;return 0!==A.negative&&0===this.negative?(A.negative=0,e=this.sub(A),A.negative^=1,e):0===A.negative&&0!==this.negative?(this.negative=0,e=A.sub(this),this.negative=1,e):this.length>A.length?this.clone().iadd(A):A.clone().iadd(this)},i.prototype.isub=function(A){if(0!==A.negative){A.negative=0;var e=this.iadd(A);return A.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(A),this.negative=1,this._normSign();var t,n,r=this.cmp(A);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(t=this,n=A):(t=A,n=this);for(var i=0,o=0;o<n.length;o++)i=(e=(0|t.words[o])-(0|n.words[o])+i)>>26,this.words[o]=67108863&e;for(;0!==i&&o<t.length;o++)i=(e=(0|t.words[o])+i)>>26,this.words[o]=67108863&e;if(0===i&&o<t.length&&t!==this)for(;o<t.length;o++)this.words[o]=t.words[o];return this.length=Math.max(this.length,o),t!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(A){return this.clone().isub(A)};var c=function(A,e,t){var n,r,i,o=A.words,a=e.words,s=t.words,g=0,I=0|o[0],u=8191&I,f=I>>>13,l=0|o[1],B=8191&l,E=l>>>13,c=0|o[2],d=8191&c,C=c>>>13,h=0|o[3],Q=8191&h,p=h>>>13,m=0|o[4],y=8191&m,w=m>>>13,b=0|o[5],_=8191&b,D=b>>>13,v=0|o[6],R=8191&v,F=v>>>13,M=0|o[7],S=8191&M,k=M>>>13,G=0|o[8],N=8191&G,P=G>>>13,L=0|o[9],U=8191&L,Y=L>>>13,x=0|a[0],Z=8191&x,H=x>>>13,X=0|a[1],K=8191&X,T=X>>>13,W=0|a[2],q=8191&W,J=W>>>13,V=0|a[3],O=8191&V,z=V>>>13,j=0|a[4],$=8191&j,AA=j>>>13,eA=0|a[5],tA=8191&eA,nA=eA>>>13,rA=0|a[6],iA=8191&rA,oA=rA>>>13,aA=0|a[7],sA=8191&aA,gA=aA>>>13,IA=0|a[8],uA=8191&IA,fA=IA>>>13,lA=0|a[9],BA=8191&lA,EA=lA>>>13;t.negative=A.negative^e.negative,t.length=19;var cA=(g+(n=Math.imul(u,Z))|0)+((8191&(r=(r=Math.imul(u,H))+Math.imul(f,Z)|0))<<13)|0;g=((i=Math.imul(f,H))+(r>>>13)|0)+(cA>>>26)|0,cA&=67108863,n=Math.imul(B,Z),r=(r=Math.imul(B,H))+Math.imul(E,Z)|0,i=Math.imul(E,H);var dA=(g+(n=n+Math.imul(u,K)|0)|0)+((8191&(r=(r=r+Math.imul(u,T)|0)+Math.imul(f,K)|0))<<13)|0;g=((i=i+Math.imul(f,T)|0)+(r>>>13)|0)+(dA>>>26)|0,dA&=67108863,n=Math.imul(d,Z),r=(r=Math.imul(d,H))+Math.imul(C,Z)|0,i=Math.imul(C,H),n=n+Math.imul(B,K)|0,r=(r=r+Math.imul(B,T)|0)+Math.imul(E,K)|0,i=i+Math.imul(E,T)|0;var CA=(g+(n=n+Math.imul(u,q)|0)|0)+((8191&(r=(r=r+Math.imul(u,J)|0)+Math.imul(f,q)|0))<<13)|0;g=((i=i+Math.imul(f,J)|0)+(r>>>13)|0)+(CA>>>26)|0,CA&=67108863,n=Math.imul(Q,Z),r=(r=Math.imul(Q,H))+Math.imul(p,Z)|0,i=Math.imul(p,H),n=n+Math.imul(d,K)|0,r=(r=r+Math.imul(d,T)|0)+Math.imul(C,K)|0,i=i+Math.imul(C,T)|0,n=n+Math.imul(B,q)|0,r=(r=r+Math.imul(B,J)|0)+Math.imul(E,q)|0,i=i+Math.imul(E,J)|0;var hA=(g+(n=n+Math.imul(u,O)|0)|0)+((8191&(r=(r=r+Math.imul(u,z)|0)+Math.imul(f,O)|0))<<13)|0;g=((i=i+Math.imul(f,z)|0)+(r>>>13)|0)+(hA>>>26)|0,hA&=67108863,n=Math.imul(y,Z),r=(r=Math.imul(y,H))+Math.imul(w,Z)|0,i=Math.imul(w,H),n=n+Math.imul(Q,K)|0,r=(r=r+Math.imul(Q,T)|0)+Math.imul(p,K)|0,i=i+Math.imul(p,T)|0,n=n+Math.imul(d,q)|0,r=(r=r+Math.imul(d,J)|0)+Math.imul(C,q)|0,i=i+Math.imul(C,J)|0,n=n+Math.imul(B,O)|0,r=(r=r+Math.imul(B,z)|0)+Math.imul(E,O)|0,i=i+Math.imul(E,z)|0;var QA=(g+(n=n+Math.imul(u,$)|0)|0)+((8191&(r=(r=r+Math.imul(u,AA)|0)+Math.imul(f,$)|0))<<13)|0;g=((i=i+Math.imul(f,AA)|0)+(r>>>13)|0)+(QA>>>26)|0,QA&=67108863,n=Math.imul(_,Z),r=(r=Math.imul(_,H))+Math.imul(D,Z)|0,i=Math.imul(D,H),n=n+Math.imul(y,K)|0,r=(r=r+Math.imul(y,T)|0)+Math.imul(w,K)|0,i=i+Math.imul(w,T)|0,n=n+Math.imul(Q,q)|0,r=(r=r+Math.imul(Q,J)|0)+Math.imul(p,q)|0,i=i+Math.imul(p,J)|0,n=n+Math.imul(d,O)|0,r=(r=r+Math.imul(d,z)|0)+Math.imul(C,O)|0,i=i+Math.imul(C,z)|0,n=n+Math.imul(B,$)|0,r=(r=r+Math.imul(B,AA)|0)+Math.imul(E,$)|0,i=i+Math.imul(E,AA)|0;var pA=(g+(n=n+Math.imul(u,tA)|0)|0)+((8191&(r=(r=r+Math.imul(u,nA)|0)+Math.imul(f,tA)|0))<<13)|0;g=((i=i+Math.imul(f,nA)|0)+(r>>>13)|0)+(pA>>>26)|0,pA&=67108863,n=Math.imul(R,Z),r=(r=Math.imul(R,H))+Math.imul(F,Z)|0,i=Math.imul(F,H),n=n+Math.imul(_,K)|0,r=(r=r+Math.imul(_,T)|0)+Math.imul(D,K)|0,i=i+Math.imul(D,T)|0,n=n+Math.imul(y,q)|0,r=(r=r+Math.imul(y,J)|0)+Math.imul(w,q)|0,i=i+Math.imul(w,J)|0,n=n+Math.imul(Q,O)|0,r=(r=r+Math.imul(Q,z)|0)+Math.imul(p,O)|0,i=i+Math.imul(p,z)|0,n=n+Math.imul(d,$)|0,r=(r=r+Math.imul(d,AA)|0)+Math.imul(C,$)|0,i=i+Math.imul(C,AA)|0,n=n+Math.imul(B,tA)|0,r=(r=r+Math.imul(B,nA)|0)+Math.imul(E,tA)|0,i=i+Math.imul(E,nA)|0;var mA=(g+(n=n+Math.imul(u,iA)|0)|0)+((8191&(r=(r=r+Math.imul(u,oA)|0)+Math.imul(f,iA)|0))<<13)|0;g=((i=i+Math.imul(f,oA)|0)+(r>>>13)|0)+(mA>>>26)|0,mA&=67108863,n=Math.imul(S,Z),r=(r=Math.imul(S,H))+Math.imul(k,Z)|0,i=Math.imul(k,H),n=n+Math.imul(R,K)|0,r=(r=r+Math.imul(R,T)|0)+Math.imul(F,K)|0,i=i+Math.imul(F,T)|0,n=n+Math.imul(_,q)|0,r=(r=r+Math.imul(_,J)|0)+Math.imul(D,q)|0,i=i+Math.imul(D,J)|0,n=n+Math.imul(y,O)|0,r=(r=r+Math.imul(y,z)|0)+Math.imul(w,O)|0,i=i+Math.imul(w,z)|0,n=n+Math.imul(Q,$)|0,r=(r=r+Math.imul(Q,AA)|0)+Math.imul(p,$)|0,i=i+Math.imul(p,AA)|0,n=n+Math.imul(d,tA)|0,r=(r=r+Math.imul(d,nA)|0)+Math.imul(C,tA)|0,i=i+Math.imul(C,nA)|0,n=n+Math.imul(B,iA)|0,r=(r=r+Math.imul(B,oA)|0)+Math.imul(E,iA)|0,i=i+Math.imul(E,oA)|0;var yA=(g+(n=n+Math.imul(u,sA)|0)|0)+((8191&(r=(r=r+Math.imul(u,gA)|0)+Math.imul(f,sA)|0))<<13)|0;g=((i=i+Math.imul(f,gA)|0)+(r>>>13)|0)+(yA>>>26)|0,yA&=67108863,n=Math.imul(N,Z),r=(r=Math.imul(N,H))+Math.imul(P,Z)|0,i=Math.imul(P,H),n=n+Math.imul(S,K)|0,r=(r=r+Math.imul(S,T)|0)+Math.imul(k,K)|0,i=i+Math.imul(k,T)|0,n=n+Math.imul(R,q)|0,r=(r=r+Math.imul(R,J)|0)+Math.imul(F,q)|0,i=i+Math.imul(F,J)|0,n=n+Math.imul(_,O)|0,r=(r=r+Math.imul(_,z)|0)+Math.imul(D,O)|0,i=i+Math.imul(D,z)|0,n=n+Math.imul(y,$)|0,r=(r=r+Math.imul(y,AA)|0)+Math.imul(w,$)|0,i=i+Math.imul(w,AA)|0,n=n+Math.imul(Q,tA)|0,r=(r=r+Math.imul(Q,nA)|0)+Math.imul(p,tA)|0,i=i+Math.imul(p,nA)|0,n=n+Math.imul(d,iA)|0,r=(r=r+Math.imul(d,oA)|0)+Math.imul(C,iA)|0,i=i+Math.imul(C,oA)|0,n=n+Math.imul(B,sA)|0,r=(r=r+Math.imul(B,gA)|0)+Math.imul(E,sA)|0,i=i+Math.imul(E,gA)|0;var wA=(g+(n=n+Math.imul(u,uA)|0)|0)+((8191&(r=(r=r+Math.imul(u,fA)|0)+Math.imul(f,uA)|0))<<13)|0;g=((i=i+Math.imul(f,fA)|0)+(r>>>13)|0)+(wA>>>26)|0,wA&=67108863,n=Math.imul(U,Z),r=(r=Math.imul(U,H))+Math.imul(Y,Z)|0,i=Math.imul(Y,H),n=n+Math.imul(N,K)|0,r=(r=r+Math.imul(N,T)|0)+Math.imul(P,K)|0,i=i+Math.imul(P,T)|0,n=n+Math.imul(S,q)|0,r=(r=r+Math.imul(S,J)|0)+Math.imul(k,q)|0,i=i+Math.imul(k,J)|0,n=n+Math.imul(R,O)|0,r=(r=r+Math.imul(R,z)|0)+Math.imul(F,O)|0,i=i+Math.imul(F,z)|0,n=n+Math.imul(_,$)|0,r=(r=r+Math.imul(_,AA)|0)+Math.imul(D,$)|0,i=i+Math.imul(D,AA)|0,n=n+Math.imul(y,tA)|0,r=(r=r+Math.imul(y,nA)|0)+Math.imul(w,tA)|0,i=i+Math.imul(w,nA)|0,n=n+Math.imul(Q,iA)|0,r=(r=r+Math.imul(Q,oA)|0)+Math.imul(p,iA)|0,i=i+Math.imul(p,oA)|0,n=n+Math.imul(d,sA)|0,r=(r=r+Math.imul(d,gA)|0)+Math.imul(C,sA)|0,i=i+Math.imul(C,gA)|0,n=n+Math.imul(B,uA)|0,r=(r=r+Math.imul(B,fA)|0)+Math.imul(E,uA)|0,i=i+Math.imul(E,fA)|0;var bA=(g+(n=n+Math.imul(u,BA)|0)|0)+((8191&(r=(r=r+Math.imul(u,EA)|0)+Math.imul(f,BA)|0))<<13)|0;g=((i=i+Math.imul(f,EA)|0)+(r>>>13)|0)+(bA>>>26)|0,bA&=67108863,n=Math.imul(U,K),r=(r=Math.imul(U,T))+Math.imul(Y,K)|0,i=Math.imul(Y,T),n=n+Math.imul(N,q)|0,r=(r=r+Math.imul(N,J)|0)+Math.imul(P,q)|0,i=i+Math.imul(P,J)|0,n=n+Math.imul(S,O)|0,r=(r=r+Math.imul(S,z)|0)+Math.imul(k,O)|0,i=i+Math.imul(k,z)|0,n=n+Math.imul(R,$)|0,r=(r=r+Math.imul(R,AA)|0)+Math.imul(F,$)|0,i=i+Math.imul(F,AA)|0,n=n+Math.imul(_,tA)|0,r=(r=r+Math.imul(_,nA)|0)+Math.imul(D,tA)|0,i=i+Math.imul(D,nA)|0,n=n+Math.imul(y,iA)|0,r=(r=r+Math.imul(y,oA)|0)+Math.imul(w,iA)|0,i=i+Math.imul(w,oA)|0,n=n+Math.imul(Q,sA)|0,r=(r=r+Math.imul(Q,gA)|0)+Math.imul(p,sA)|0,i=i+Math.imul(p,gA)|0,n=n+Math.imul(d,uA)|0,r=(r=r+Math.imul(d,fA)|0)+Math.imul(C,uA)|0,i=i+Math.imul(C,fA)|0;var _A=(g+(n=n+Math.imul(B,BA)|0)|0)+((8191&(r=(r=r+Math.imul(B,EA)|0)+Math.imul(E,BA)|0))<<13)|0;g=((i=i+Math.imul(E,EA)|0)+(r>>>13)|0)+(_A>>>26)|0,_A&=67108863,n=Math.imul(U,q),r=(r=Math.imul(U,J))+Math.imul(Y,q)|0,i=Math.imul(Y,J),n=n+Math.imul(N,O)|0,r=(r=r+Math.imul(N,z)|0)+Math.imul(P,O)|0,i=i+Math.imul(P,z)|0,n=n+Math.imul(S,$)|0,r=(r=r+Math.imul(S,AA)|0)+Math.imul(k,$)|0,i=i+Math.imul(k,AA)|0,n=n+Math.imul(R,tA)|0,r=(r=r+Math.imul(R,nA)|0)+Math.imul(F,tA)|0,i=i+Math.imul(F,nA)|0,n=n+Math.imul(_,iA)|0,r=(r=r+Math.imul(_,oA)|0)+Math.imul(D,iA)|0,i=i+Math.imul(D,oA)|0,n=n+Math.imul(y,sA)|0,r=(r=r+Math.imul(y,gA)|0)+Math.imul(w,sA)|0,i=i+Math.imul(w,gA)|0,n=n+Math.imul(Q,uA)|0,r=(r=r+Math.imul(Q,fA)|0)+Math.imul(p,uA)|0,i=i+Math.imul(p,fA)|0;var DA=(g+(n=n+Math.imul(d,BA)|0)|0)+((8191&(r=(r=r+Math.imul(d,EA)|0)+Math.imul(C,BA)|0))<<13)|0;g=((i=i+Math.imul(C,EA)|0)+(r>>>13)|0)+(DA>>>26)|0,DA&=67108863,n=Math.imul(U,O),r=(r=Math.imul(U,z))+Math.imul(Y,O)|0,i=Math.imul(Y,z),n=n+Math.imul(N,$)|0,r=(r=r+Math.imul(N,AA)|0)+Math.imul(P,$)|0,i=i+Math.imul(P,AA)|0,n=n+Math.imul(S,tA)|0,r=(r=r+Math.imul(S,nA)|0)+Math.imul(k,tA)|0,i=i+Math.imul(k,nA)|0,n=n+Math.imul(R,iA)|0,r=(r=r+Math.imul(R,oA)|0)+Math.imul(F,iA)|0,i=i+Math.imul(F,oA)|0,n=n+Math.imul(_,sA)|0,r=(r=r+Math.imul(_,gA)|0)+Math.imul(D,sA)|0,i=i+Math.imul(D,gA)|0,n=n+Math.imul(y,uA)|0,r=(r=r+Math.imul(y,fA)|0)+Math.imul(w,uA)|0,i=i+Math.imul(w,fA)|0;var vA=(g+(n=n+Math.imul(Q,BA)|0)|0)+((8191&(r=(r=r+Math.imul(Q,EA)|0)+Math.imul(p,BA)|0))<<13)|0;g=((i=i+Math.imul(p,EA)|0)+(r>>>13)|0)+(vA>>>26)|0,vA&=67108863,n=Math.imul(U,$),r=(r=Math.imul(U,AA))+Math.imul(Y,$)|0,i=Math.imul(Y,AA),n=n+Math.imul(N,tA)|0,r=(r=r+Math.imul(N,nA)|0)+Math.imul(P,tA)|0,i=i+Math.imul(P,nA)|0,n=n+Math.imul(S,iA)|0,r=(r=r+Math.imul(S,oA)|0)+Math.imul(k,iA)|0,i=i+Math.imul(k,oA)|0,n=n+Math.imul(R,sA)|0,r=(r=r+Math.imul(R,gA)|0)+Math.imul(F,sA)|0,i=i+Math.imul(F,gA)|0,n=n+Math.imul(_,uA)|0,r=(r=r+Math.imul(_,fA)|0)+Math.imul(D,uA)|0,i=i+Math.imul(D,fA)|0;var RA=(g+(n=n+Math.imul(y,BA)|0)|0)+((8191&(r=(r=r+Math.imul(y,EA)|0)+Math.imul(w,BA)|0))<<13)|0;g=((i=i+Math.imul(w,EA)|0)+(r>>>13)|0)+(RA>>>26)|0,RA&=67108863,n=Math.imul(U,tA),r=(r=Math.imul(U,nA))+Math.imul(Y,tA)|0,i=Math.imul(Y,nA),n=n+Math.imul(N,iA)|0,r=(r=r+Math.imul(N,oA)|0)+Math.imul(P,iA)|0,i=i+Math.imul(P,oA)|0,n=n+Math.imul(S,sA)|0,r=(r=r+Math.imul(S,gA)|0)+Math.imul(k,sA)|0,i=i+Math.imul(k,gA)|0,n=n+Math.imul(R,uA)|0,r=(r=r+Math.imul(R,fA)|0)+Math.imul(F,uA)|0,i=i+Math.imul(F,fA)|0;var FA=(g+(n=n+Math.imul(_,BA)|0)|0)+((8191&(r=(r=r+Math.imul(_,EA)|0)+Math.imul(D,BA)|0))<<13)|0;g=((i=i+Math.imul(D,EA)|0)+(r>>>13)|0)+(FA>>>26)|0,FA&=67108863,n=Math.imul(U,iA),r=(r=Math.imul(U,oA))+Math.imul(Y,iA)|0,i=Math.imul(Y,oA),n=n+Math.imul(N,sA)|0,r=(r=r+Math.imul(N,gA)|0)+Math.imul(P,sA)|0,i=i+Math.imul(P,gA)|0,n=n+Math.imul(S,uA)|0,r=(r=r+Math.imul(S,fA)|0)+Math.imul(k,uA)|0,i=i+Math.imul(k,fA)|0;var MA=(g+(n=n+Math.imul(R,BA)|0)|0)+((8191&(r=(r=r+Math.imul(R,EA)|0)+Math.imul(F,BA)|0))<<13)|0;g=((i=i+Math.imul(F,EA)|0)+(r>>>13)|0)+(MA>>>26)|0,MA&=67108863,n=Math.imul(U,sA),r=(r=Math.imul(U,gA))+Math.imul(Y,sA)|0,i=Math.imul(Y,gA),n=n+Math.imul(N,uA)|0,r=(r=r+Math.imul(N,fA)|0)+Math.imul(P,uA)|0,i=i+Math.imul(P,fA)|0;var SA=(g+(n=n+Math.imul(S,BA)|0)|0)+((8191&(r=(r=r+Math.imul(S,EA)|0)+Math.imul(k,BA)|0))<<13)|0;g=((i=i+Math.imul(k,EA)|0)+(r>>>13)|0)+(SA>>>26)|0,SA&=67108863,n=Math.imul(U,uA),r=(r=Math.imul(U,fA))+Math.imul(Y,uA)|0,i=Math.imul(Y,fA);var kA=(g+(n=n+Math.imul(N,BA)|0)|0)+((8191&(r=(r=r+Math.imul(N,EA)|0)+Math.imul(P,BA)|0))<<13)|0;g=((i=i+Math.imul(P,EA)|0)+(r>>>13)|0)+(kA>>>26)|0,kA&=67108863;var GA=(g+(n=Math.imul(U,BA))|0)+((8191&(r=(r=Math.imul(U,EA))+Math.imul(Y,BA)|0))<<13)|0;return g=((i=Math.imul(Y,EA))+(r>>>13)|0)+(GA>>>26)|0,GA&=67108863,s[0]=cA,s[1]=dA,s[2]=CA,s[3]=hA,s[4]=QA,s[5]=pA,s[6]=mA,s[7]=yA,s[8]=wA,s[9]=bA,s[10]=_A,s[11]=DA,s[12]=vA,s[13]=RA,s[14]=FA,s[15]=MA,s[16]=SA,s[17]=kA,s[18]=GA,0!==g&&(s[19]=g,t.length++),t};function d(A,e,t){t.negative=e.negative^A.negative,t.length=A.length+e.length;for(var n=0,r=0,i=0;i<t.length-1;i++){var o=r;r=0;for(var a=67108863&n,s=Math.min(i,e.length-1),g=Math.max(0,i-A.length+1);g<=s;g++){var I=i-g,u=(0|A.words[I])*(0|e.words[g]),f=67108863&u;a=67108863&(f=f+a|0),r+=(o=(o=o+(u/67108864|0)|0)+(f>>>26)|0)>>>26,o&=67108863}t.words[i]=a,n=o,o=r}return 0!==n?t.words[i]=n:t.length--,t._strip()}function C(A,e,t){return d(A,e,t)}function h(A,e){this.x=A,this.y=e}Math.imul||(c=E),i.prototype.mulTo=function(A,e){var t=this.length+A.length;return 10===this.length&&10===A.length?c(this,A,e):t<63?E(this,A,e):t<1024?d(this,A,e):C(this,A,e)},h.prototype.makeRBT=function(A){for(var e=new Array(A),t=i.prototype._countBits(A)-1,n=0;n<A;n++)e[n]=this.revBin(n,t,A);return e},h.prototype.revBin=function(A,e,t){if(0===A||A===t-1)return A;for(var n=0,r=0;r<e;r++)n|=(1&A)<<e-r-1,A>>=1;return n},h.prototype.permute=function(A,e,t,n,r,i){for(var o=0;o<i;o++)n[o]=e[A[o]],r[o]=t[A[o]]},h.prototype.transform=function(A,e,t,n,r,i){this.permute(i,A,e,t,n,r);for(var o=1;o<r;o<<=1)for(var a=o<<1,s=Math.cos(2*Math.PI/a),g=Math.sin(2*Math.PI/a),I=0;I<r;I+=a)for(var u=s,f=g,l=0;l<o;l++){var B=t[I+l],E=n[I+l],c=t[I+l+o],d=n[I+l+o],C=u*c-f*d;d=u*d+f*c,c=C,t[I+l]=B+c,n[I+l]=E+d,t[I+l+o]=B-c,n[I+l+o]=E-d,l!==a&&(C=s*u-g*f,f=s*f+g*u,u=C)}},h.prototype.guessLen13b=function(A,e){var t=1|Math.max(e,A),n=1&t,r=0;for(t=t/2|0;t;t>>>=1)r++;return 1<<r+1+n},h.prototype.conjugate=function(A,e,t){if(!(t<=1))for(var n=0;n<t/2;n++){var r=A[n];A[n]=A[t-n-1],A[t-n-1]=r,r=e[n],e[n]=-e[t-n-1],e[t-n-1]=-r}},h.prototype.normalize13b=function(A,e){for(var t=0,n=0;n<e/2;n++){var r=8192*Math.round(A[2*n+1]/e)+Math.round(A[2*n]/e)+t;A[n]=67108863&r,t=r<67108864?0:r/67108864|0}return A},h.prototype.convert13b=function(A,e,t,r){for(var i=0,o=0;o<e;o++)i+=0|A[o],t[2*o]=8191&i,i>>>=13,t[2*o+1]=8191&i,i>>>=13;for(o=2*e;o<r;++o)t[o]=0;n(0===i),n(0==(-8192&i))},h.prototype.stub=function(A){for(var e=new Array(A),t=0;t<A;t++)e[t]=0;return e},h.prototype.mulp=function(A,e,t){var n=2*this.guessLen13b(A.length,e.length),r=this.makeRBT(n),i=this.stub(n),o=new Array(n),a=new Array(n),s=new Array(n),g=new Array(n),I=new Array(n),u=new Array(n),f=t.words;f.length=n,this.convert13b(A.words,A.length,o,n),this.convert13b(e.words,e.length,g,n),this.transform(o,i,a,s,n,r),this.transform(g,i,I,u,n,r);for(var l=0;l<n;l++){var B=a[l]*I[l]-s[l]*u[l];s[l]=a[l]*u[l]+s[l]*I[l],a[l]=B}return this.conjugate(a,s,n),this.transform(a,s,f,i,n,r),this.conjugate(f,i,n),this.normalize13b(f,n),t.negative=A.negative^e.negative,t.length=A.length+e.length,t._strip()},i.prototype.mul=function(A){var e=new i(null);return e.words=new Array(this.length+A.length),this.mulTo(A,e)},i.prototype.mulf=function(A){var e=new i(null);return e.words=new Array(this.length+A.length),C(this,A,e)},i.prototype.imul=function(A){return this.clone().mulTo(A,this)},i.prototype.imuln=function(A){var e=A<0;e&&(A=-A),n("number"==typeof A),n(A<67108864);for(var t=0,r=0;r<this.length;r++){var i=(0|this.words[r])*A,o=(67108863&i)+(67108863&t);t>>=26,t+=i/67108864|0,t+=o>>>26,this.words[r]=67108863&o}return 0!==t&&(this.words[r]=t,this.length++),e?this.ineg():this},i.prototype.muln=function(A){return this.clone().imuln(A)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(A){var e=function(A){for(var e=new Array(A.bitLength()),t=0;t<e.length;t++){var n=t/26|0,r=t%26;e[t]=A.words[n]>>>r&1}return e}(A);if(0===e.length)return new i(1);for(var t=this,n=0;n<e.length&&0===e[n];n++,t=t.sqr());if(++n<e.length)for(var r=t.sqr();n<e.length;n++,r=r.sqr())0!==e[n]&&(t=t.mul(r));return t},i.prototype.iushln=function(A){n("number"==typeof A&&A>=0);var e,t=A%26,r=(A-t)/26,i=67108863>>>26-t<<26-t;if(0!==t){var o=0;for(e=0;e<this.length;e++){var a=this.words[e]&i,s=(0|this.words[e])-a<<t;this.words[e]=s|o,o=a>>>26-t}o&&(this.words[e]=o,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e<r;e++)this.words[e]=0;this.length+=r}return this._strip()},i.prototype.ishln=function(A){return n(0===this.negative),this.iushln(A)},i.prototype.iushrn=function(A,e,t){var r;n("number"==typeof A&&A>=0),r=e?(e-e%26)/26:0;var i=A%26,o=Math.min((A-i)/26,this.length),a=67108863^67108863>>>i<<i,s=t;if(r-=o,r=Math.max(0,r),s){for(var g=0;g<o;g++)s.words[g]=this.words[g];s.length=o}if(0===o);else if(this.length>o)for(this.length-=o,g=0;g<this.length;g++)this.words[g]=this.words[g+o];else this.words[0]=0,this.length=1;var I=0;for(g=this.length-1;g>=0&&(0!==I||g>=r);g--){var u=0|this.words[g];this.words[g]=I<<26-i|u>>>i,I=u&a}return s&&0!==I&&(s.words[s.length++]=I),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(A,e,t){return n(0===this.negative),this.iushrn(A,e,t)},i.prototype.shln=function(A){return this.clone().ishln(A)},i.prototype.ushln=function(A){return this.clone().iushln(A)},i.prototype.shrn=function(A){return this.clone().ishrn(A)},i.prototype.ushrn=function(A){return this.clone().iushrn(A)},i.prototype.testn=function(A){n("number"==typeof A&&A>=0);var e=A%26,t=(A-e)/26,r=1<<e;return!(this.length<=t||!(this.words[t]&r))},i.prototype.imaskn=function(A){n("number"==typeof A&&A>=0);var e=A%26,t=(A-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=t)return this;if(0!==e&&t++,this.length=Math.min(t,this.length),0!==e){var r=67108863^67108863>>>e<<e;this.words[this.length-1]&=r}return this._strip()},i.prototype.maskn=function(A){return this.clone().imaskn(A)},i.prototype.iaddn=function(A){return n("number"==typeof A),n(A<67108864),A<0?this.isubn(-A):0!==this.negative?1===this.length&&(0|this.words[0])<=A?(this.words[0]=A-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(A),this.negative=1,this):this._iaddn(A)},i.prototype._iaddn=function(A){this.words[0]+=A;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},i.prototype.isubn=function(A){if(n("number"==typeof A),n(A<67108864),A<0)return this.iaddn(-A);if(0!==this.negative)return this.negative=0,this.iaddn(A),this.negative=1,this;if(this.words[0]-=A,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this._strip()},i.prototype.addn=function(A){return this.clone().iaddn(A)},i.prototype.subn=function(A){return this.clone().isubn(A)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(A,e,t){var r,i,o=A.length+t;this._expand(o);var a=0;for(r=0;r<A.length;r++){i=(0|this.words[r+t])+a;var s=(0|A.words[r])*e;a=((i-=67108863&s)>>26)-(s/67108864|0),this.words[r+t]=67108863&i}for(;r<this.length-t;r++)a=(i=(0|this.words[r+t])+a)>>26,this.words[r+t]=67108863&i;if(0===a)return this._strip();for(n(-1===a),a=0,r=0;r<this.length;r++)a=(i=-(0|this.words[r])+a)>>26,this.words[r]=67108863&i;return this.negative=1,this._strip()},i.prototype._wordDiv=function(A,e){var t=(this.length,A.length),n=this.clone(),r=A,o=0|r.words[r.length-1];0!=(t=26-this._countBits(o))&&(r=r.ushln(t),n.iushln(t),o=0|r.words[r.length-1]);var a,s=n.length-r.length;if("mod"!==e){(a=new i(null)).length=s+1,a.words=new Array(a.length);for(var g=0;g<a.length;g++)a.words[g]=0}var I=n.clone()._ishlnsubmul(r,1,s);0===I.negative&&(n=I,a&&(a.words[s]=1));for(var u=s-1;u>=0;u--){var f=67108864*(0|n.words[r.length+u])+(0|n.words[r.length+u-1]);for(f=Math.min(f/o|0,67108863),n._ishlnsubmul(r,f,u);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(r,1,u),n.isZero()||(n.negative^=1);a&&(a.words[u]=f)}return a&&a._strip(),n._strip(),"div"!==e&&0!==t&&n.iushrn(t),{div:a||null,mod:n}},i.prototype.divmod=function(A,e,t){return n(!A.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===A.negative?(a=this.neg().divmod(A,e),"mod"!==e&&(r=a.div.neg()),"div"!==e&&(o=a.mod.neg(),t&&0!==o.negative&&o.iadd(A)),{div:r,mod:o}):0===this.negative&&0!==A.negative?(a=this.divmod(A.neg(),e),"mod"!==e&&(r=a.div.neg()),{div:r,mod:a.mod}):0!=(this.negative&A.negative)?(a=this.neg().divmod(A.neg(),e),"div"!==e&&(o=a.mod.neg(),t&&0!==o.negative&&o.isub(A)),{div:a.div,mod:o}):A.length>this.length||this.cmp(A)<0?{div:new i(0),mod:this}:1===A.length?"div"===e?{div:this.divn(A.words[0]),mod:null}:"mod"===e?{div:null,mod:new i(this.modrn(A.words[0]))}:{div:this.divn(A.words[0]),mod:new i(this.modrn(A.words[0]))}:this._wordDiv(A,e);var r,o,a},i.prototype.div=function(A){return this.divmod(A,"div",!1).div},i.prototype.mod=function(A){return this.divmod(A,"mod",!1).mod},i.prototype.umod=function(A){return this.divmod(A,"mod",!0).mod},i.prototype.divRound=function(A){var e=this.divmod(A);if(e.mod.isZero())return e.div;var t=0!==e.div.negative?e.mod.isub(A):e.mod,n=A.ushrn(1),r=A.andln(1),i=t.cmp(n);return i<0||1===r&&0===i?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},i.prototype.modrn=function(A){var e=A<0;e&&(A=-A),n(A<=67108863);for(var t=(1<<26)%A,r=0,i=this.length-1;i>=0;i--)r=(t*r+(0|this.words[i]))%A;return e?-r:r},i.prototype.modn=function(A){return this.modrn(A)},i.prototype.idivn=function(A){var e=A<0;e&&(A=-A),n(A<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*t;this.words[r]=i/A|0,t=i%A}return this._strip(),e?this.ineg():this},i.prototype.divn=function(A){return this.clone().idivn(A)},i.prototype.egcd=function(A){n(0===A.negative),n(!A.isZero());var e=this,t=A.clone();e=0!==e.negative?e.umod(A):e.clone();for(var r=new i(1),o=new i(0),a=new i(0),s=new i(1),g=0;e.isEven()&&t.isEven();)e.iushrn(1),t.iushrn(1),++g;for(var I=t.clone(),u=e.clone();!e.isZero();){for(var f=0,l=1;0==(e.words[0]&l)&&f<26;++f,l<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(r.isOdd()||o.isOdd())&&(r.iadd(I),o.isub(u)),r.iushrn(1),o.iushrn(1);for(var B=0,E=1;0==(t.words[0]&E)&&B<26;++B,E<<=1);if(B>0)for(t.iushrn(B);B-- >0;)(a.isOdd()||s.isOdd())&&(a.iadd(I),s.isub(u)),a.iushrn(1),s.iushrn(1);e.cmp(t)>=0?(e.isub(t),r.isub(a),o.isub(s)):(t.isub(e),a.isub(r),s.isub(o))}return{a:a,b:s,gcd:t.iushln(g)}},i.prototype._invmp=function(A){n(0===A.negative),n(!A.isZero());var e=this,t=A.clone();e=0!==e.negative?e.umod(A):e.clone();for(var r,o=new i(1),a=new i(0),s=t.clone();e.cmpn(1)>0&&t.cmpn(1)>0;){for(var g=0,I=1;0==(e.words[0]&I)&&g<26;++g,I<<=1);if(g>0)for(e.iushrn(g);g-- >0;)o.isOdd()&&o.iadd(s),o.iushrn(1);for(var u=0,f=1;0==(t.words[0]&f)&&u<26;++u,f<<=1);if(u>0)for(t.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(s),a.iushrn(1);e.cmp(t)>=0?(e.isub(t),o.isub(a)):(t.isub(e),a.isub(o))}return(r=0===e.cmpn(1)?o:a).cmpn(0)<0&&r.iadd(A),r},i.prototype.gcd=function(A){if(this.isZero())return A.abs();if(A.isZero())return this.abs();var e=this.clone(),t=A.clone();e.negative=0,t.negative=0;for(var n=0;e.isEven()&&t.isEven();n++)e.iushrn(1),t.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;t.isEven();)t.iushrn(1);var r=e.cmp(t);if(r<0){var i=e;e=t,t=i}else if(0===r||0===t.cmpn(1))break;e.isub(t)}return t.iushln(n)},i.prototype.invm=function(A){return this.egcd(A).a.umod(A)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(A){return this.words[0]&A},i.prototype.bincn=function(A){n("number"==typeof A);var e=A%26,t=(A-e)/26,r=1<<e;if(this.length<=t)return this._expand(t+1),this.words[t]|=r,this;for(var i=r,o=t;0!==i&&o<this.length;o++){var a=0|this.words[o];i=(a+=i)>>>26,a&=67108863,this.words[o]=a}return 0!==i&&(this.words[o]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(A){var e,t=A<0;if(0!==this.negative&&!t)return-1;if(0===this.negative&&t)return 1;if(this._strip(),this.length>1)e=1;else{t&&(A=-A),n(A<=67108863,"Number is too big");var r=0|this.words[0];e=r===A?0:r<A?-1:1}return 0!==this.negative?0|-e:e},i.prototype.cmp=function(A){if(0!==this.negative&&0===A.negative)return-1;if(0===this.negative&&0!==A.negative)return 1;var e=this.ucmp(A);return 0!==this.negative?0|-e:e},i.prototype.ucmp=function(A){if(this.length>A.length)return 1;if(this.length<A.length)return-1;for(var e=0,t=this.length-1;t>=0;t--){var n=0|this.words[t],r=0|A.words[t];if(n!==r){n<r?e=-1:n>r&&(e=1);break}}return e},i.prototype.gtn=function(A){return 1===this.cmpn(A)},i.prototype.gt=function(A){return 1===this.cmp(A)},i.prototype.gten=function(A){return this.cmpn(A)>=0},i.prototype.gte=function(A){return this.cmp(A)>=0},i.prototype.ltn=function(A){return-1===this.cmpn(A)},i.prototype.lt=function(A){return-1===this.cmp(A)},i.prototype.lten=function(A){return this.cmpn(A)<=0},i.prototype.lte=function(A){return this.cmp(A)<=0},i.prototype.eqn=function(A){return 0===this.cmpn(A)},i.prototype.eq=function(A){return 0===this.cmp(A)},i.red=function(A){return new _(A)},i.prototype.toRed=function(A){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),A.convertTo(this)._forceRed(A)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(A){return this.red=A,this},i.prototype.forceRed=function(A){return n(!this.red,"Already a number in reduction context"),this._forceRed(A)},i.prototype.redAdd=function(A){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,A)},i.prototype.redIAdd=function(A){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,A)},i.prototype.redSub=function(A){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,A)},i.prototype.redISub=function(A){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,A)},i.prototype.redShl=function(A){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,A)},i.prototype.redMul=function(A){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,A),this.red.mul(this,A)},i.prototype.redIMul=function(A){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,A),this.red.imul(this,A)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(A){return n(this.red&&!A.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,A)};var Q={k256:null,p224:null,p192:null,p25519:null};function p(A,e){this.name=A,this.p=new i(e,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function m(){p.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function y(){p.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){p.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function b(){p.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function _(A){if("string"==typeof A){var e=i._prime(A);this.m=e.p,this.prime=e}else n(A.gtn(1),"modulus must be greater than 1"),this.m=A,this.prime=null}function D(A){_.call(this,A),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}p.prototype._tmp=function(){var A=new i(null);return A.words=new Array(Math.ceil(this.n/13)),A},p.prototype.ireduce=function(A){var e,t=A;do{this.split(t,this.tmp),e=(t=(t=this.imulK(t)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:t.ucmp(this.p);return 0===n?(t.words[0]=0,t.length=1):n>0?t.isub(this.p):void 0!==t.strip?t.strip():t._strip(),t},p.prototype.split=function(A,e){A.iushrn(this.n,0,e)},p.prototype.imulK=function(A){return A.imul(this.k)},r(m,p),m.prototype.split=function(A,e){for(var t=Math.min(A.length,9),n=0;n<t;n++)e.words[n]=A.words[n];if(e.length=t,A.length<=9)return A.words[0]=0,void(A.length=1);var r=A.words[9];for(e.words[e.length++]=4194303&r,n=10;n<A.length;n++){var i=0|A.words[n];A.words[n-10]=(4194303&i)<<4|r>>>22,r=i}r>>>=22,A.words[n-10]=r,0===r&&A.length>10?A.length-=10:A.length-=9},m.prototype.imulK=function(A){A.words[A.length]=0,A.words[A.length+1]=0,A.length+=2;for(var e=0,t=0;t<A.length;t++){var n=0|A.words[t];e+=977*n,A.words[t]=67108863&e,e=64*n+(e/67108864|0)}return 0===A.words[A.length-1]&&(A.length--,0===A.words[A.length-1]&&A.length--),A},r(y,p),r(w,p),r(b,p),b.prototype.imulK=function(A){for(var e=0,t=0;t<A.length;t++){var n=19*(0|A.words[t])+e,r=67108863&n;n>>>=26,A.words[t]=r,e=n}return 0!==e&&(A.words[A.length++]=e),A},i._prime=function(A){if(Q[A])return Q[A];var e;if("k256"===A)e=new m;else if("p224"===A)e=new y;else if("p192"===A)e=new w;else{if("p25519"!==A)throw new Error("Unknown prime "+A);e=new b}return Q[A]=e,e},_.prototype._verify1=function(A){n(0===A.negative,"red works only with positives"),n(A.red,"red works only with red numbers")},_.prototype._verify2=function(A,e){n(0==(A.negative|e.negative),"red works only with positives"),n(A.red&&A.red===e.red,"red works only with red numbers")},_.prototype.imod=function(A){return this.prime?this.prime.ireduce(A)._forceRed(this):(I(A,A.umod(this.m)._forceRed(this)),A)},_.prototype.neg=function(A){return A.isZero()?A.clone():this.m.sub(A)._forceRed(this)},_.prototype.add=function(A,e){this._verify2(A,e);var t=A.add(e);return t.cmp(this.m)>=0&&t.isub(this.m),t._forceRed(this)},_.prototype.iadd=function(A,e){this._verify2(A,e);var t=A.iadd(e);return t.cmp(this.m)>=0&&t.isub(this.m),t},_.prototype.sub=function(A,e){this._verify2(A,e);var t=A.sub(e);return t.cmpn(0)<0&&t.iadd(this.m),t._forceRed(this)},_.prototype.isub=function(A,e){this._verify2(A,e);var t=A.isub(e);return t.cmpn(0)<0&&t.iadd(this.m),t},_.prototype.shl=function(A,e){return this._verify1(A),this.imod(A.ushln(e))},_.prototype.imul=function(A,e){return this._verify2(A,e),this.imod(A.imul(e))},_.prototype.mul=function(A,e){return this._verify2(A,e),this.imod(A.mul(e))},_.prototype.isqr=function(A){return this.imul(A,A.clone())},_.prototype.sqr=function(A){return this.mul(A,A)},_.prototype.sqrt=function(A){if(A.isZero())return A.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var t=this.m.add(new i(1)).iushrn(2);return this.pow(A,t)}for(var r=this.m.subn(1),o=0;!r.isZero()&&0===r.andln(1);)o++,r.iushrn(1);n(!r.isZero());var a=new i(1).toRed(this),s=a.redNeg(),g=this.m.subn(1).iushrn(1),I=this.m.bitLength();for(I=new i(2*I*I).toRed(this);0!==this.pow(I,g).cmp(s);)I.redIAdd(s);for(var u=this.pow(I,r),f=this.pow(A,r.addn(1).iushrn(1)),l=this.pow(A,r),B=o;0!==l.cmp(a);){for(var E=l,c=0;0!==E.cmp(a);c++)E=E.redSqr();n(c<B);var d=this.pow(u,new i(1).iushln(B-c-1));f=f.redMul(d),u=d.redSqr(),l=l.redMul(u),B=c}return f},_.prototype.invm=function(A){var e=A._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},_.prototype.pow=function(A,e){if(e.isZero())return new i(1).toRed(this);if(0===e.cmpn(1))return A.clone();var t=new Array(16);t[0]=new i(1).toRed(this),t[1]=A;for(var n=2;n<t.length;n++)t[n]=this.mul(t[n-1],A);var r=t[0],o=0,a=0,s=e.bitLength()%26;for(0===s&&(s=26),n=e.length-1;n>=0;n--){for(var g=e.words[n],I=s-1;I>=0;I--){var u=g>>I&1;r!==t[0]&&(r=this.sqr(r)),0!==u||0!==o?(o<<=1,o|=u,(4==++a||0===n&&0===I)&&(r=this.mul(r,t[o]),a=0,o=0)):a=0}s=26}return r},_.prototype.convertTo=function(A){var e=A.umod(this.m);return e===A?e.clone():e},_.prototype.convertFrom=function(A){var e=A.clone();return e.red=null,e},i.mont=function(A){return new D(A)},r(D,_),D.prototype.convertTo=function(A){return this.imod(A.ushln(this.shift))},D.prototype.convertFrom=function(A){var e=this.imod(A.mul(this.rinv));return e.red=null,e},D.prototype.imul=function(A,e){if(A.isZero()||e.isZero())return A.words[0]=0,A.length=1,A;var t=A.imul(e),n=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=t.isub(n).iushrn(this.shift),i=r;return r.cmp(this.m)>=0?i=r.isub(this.m):r.cmpn(0)<0&&(i=r.iadd(this.m)),i._forceRed(this)},D.prototype.mul=function(A,e){if(A.isZero()||e.isZero())return new i(0)._forceRed(this);var t=A.mul(e),n=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=t.isub(n).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},D.prototype.invm=function(A){return this.imod(A._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===e||e,this)},{buffer:"f88W"}],"1Auk":[function(A,e,t){A("buffer").Buffer;var n=A("buffer").Buffer,r=A("bn.js"),i=A("randombytes");function o(A){var e=a(A);return{blinder:e.toRed(r.mont(A.modulus)).redPow(new r(A.publicExponent)).fromRed(),unblinder:e.invm(A.modulus)}}function a(A){var e,t=A.modulus.byteLength();do{e=new r(i(t))}while(e.cmp(A.modulus)>=0||!e.umod(A.prime1)||!e.umod(A.prime2));return e}function s(A,e){var t=o(e),i=e.modulus.byteLength(),a=new r(A).mul(t.blinder).umod(e.modulus),s=a.toRed(r.mont(e.prime1)),g=a.toRed(r.mont(e.prime2)),I=e.coefficient,u=e.prime1,f=e.prime2,l=s.redPow(e.exponent1).fromRed(),B=g.redPow(e.exponent2).fromRed(),E=l.isub(B).imul(I).umod(u).imul(f);return B.iadd(E).imul(t.unblinder).umod(e.modulus).toArrayLike(n,"be",i)}s.getr=a,e.exports=s},{"bn.js":"BOxy",randombytes:"/XJN",buffer:"dskh"}],bNi7:[function(A,e,t){e.exports={_args:[["elliptic@6.5.4","/home/runner/work/midiplayer/midiplayer"]],_development:!0,_from:"elliptic@6.5.4",_id:"elliptic@6.5.4",_inBundle:!1,_integrity:"sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",_location:"/elliptic",_phantomChildren:{},_requested:{type:"version",registry:!0,raw:"elliptic@6.5.4",name:"elliptic",escapedName:"elliptic",rawSpec:"6.5.4",saveSpec:null,fetchSpec:"6.5.4"},_requiredBy:["/browserify-sign","/create-ecdh"],_resolved:"https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",_spec:"6.5.4",_where:"/home/runner/work/midiplayer/midiplayer",author:{name:"Fedor Indutny",email:"fedor@indutny.com"},bugs:{url:"https://github.com/indutny/elliptic/issues"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},description:"EC cryptography",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},files:["lib"],homepage:"https://github.com/indutny/elliptic",keywords:["EC","Elliptic","curve","Cryptography"],license:"MIT",main:"lib/elliptic.js",name:"elliptic",repository:{type:"git",url:"git+ssh://git@github.com/indutny/elliptic.git"},scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",test:"npm run lint && npm run unit",unit:"istanbul test _mocha --reporter=spec test/index.js",version:"grunt dist && git add dist/"},version:"6.5.4"}},{}],vl2S:[function(A,e,t){"use strict";var n=t;function r(A){return 1===A.length?"0"+A:A}function i(A){for(var e="",t=0;t<A.length;t++)e+=r(A[t].toString(16));return e}n.toArray=function(A,e){if(Array.isArray(A))return A.slice();if(!A)return[];var t=[];if("string"!=typeof A){for(var n=0;n<A.length;n++)t[n]=0|A[n];return t}if("hex"===e)for((A=A.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(A="0"+A),n=0;n<A.length;n+=2)t.push(parseInt(A[n]+A[n+1],16));else for(n=0;n<A.length;n++){var r=A.charCodeAt(n),i=r>>8,o=255&r;i?t.push(i,o):t.push(o)}return t},n.zero2=r,n.toHex=i,n.encode=function(A,e){return"hex"===e?i(A):A}},{}],F8Ez:[function(A,e,t){"use strict";var n=t,r=A("bn.js"),i=A("minimalistic-assert"),o=A("minimalistic-crypto-utils");n.assert=i,n.toArray=o.toArray,n.zero2=o.zero2,n.toHex=o.toHex,n.encode=o.encode,n.getNAF=function(A,e,t){var n=new Array(Math.max(A.bitLength(),t)+1);n.fill(0);for(var r=1<<e+1,i=A.clone(),o=0;o<n.length;o++){var a,s=i.andln(r-1);i.isOdd()?(a=s>(r>>1)-1?(r>>1)-s:s,i.isubn(a)):a=0,n[o]=a,i.iushrn(1)}return n},n.getJSF=function(A,e){var t=[[],[]];A=A.clone(),e=e.clone();for(var n,r=0,i=0;A.cmpn(-r)>0||e.cmpn(-i)>0;){var o,a,s=A.andln(3)+r&3,g=e.andln(3)+i&3;3===s&&(s=-1),3===g&&(g=-1),o=0==(1&s)?0:3!=(n=A.andln(7)+r&7)&&5!==n||2!==g?s:-s,t[0].push(o),a=0==(1&g)?0:3!=(n=e.andln(7)+i&7)&&5!==n||2!==s?g:-g,t[1].push(a),2*r===o+1&&(r=1-r),2*i===a+1&&(i=1-i),A.iushrn(1),e.iushrn(1)}return t},n.cachedProperty=function(A,e,t){var n="_"+e;A.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=t.call(this)}},n.parseBytes=function(A){return"string"==typeof A?n.toArray(A,"hex"):A},n.intFromLE=function(A){return new r(A,"hex","le")}},{"bn.js":"VXic","minimalistic-assert":"MpuC","minimalistic-crypto-utils":"vl2S"}],NX8i:[function(A,e,t){"use strict";var n=A("bn.js"),r=A("../utils"),i=r.getNAF,o=r.getJSF,a=r.assert;function s(A,e){this.type=A,this.p=new n(e.p,16),this.red=e.prime?n.red(e.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=e.n&&new n(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var t=this.n&&this.p.div(this.n);!t||t.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function g(A,e){this.curve=A,this.type=e,this.precomputed=null}e.exports=s,s.prototype.point=function(){throw new Error("Not implemented")},s.prototype.validate=function(){throw new Error("Not implemented")},s.prototype._fixedNafMul=function(A,e){a(A.precomputed);var t=A._getDoubles(),n=i(e,1,this._bitLength),r=(1<<t.step+1)-(t.step%2==0?2:1);r/=3;var o,s,g=[];for(o=0;o<n.length;o+=t.step){s=0;for(var I=o+t.step-1;I>=o;I--)s=(s<<1)+n[I];g.push(s)}for(var u=this.jpoint(null,null,null),f=this.jpoint(null,null,null),l=r;l>0;l--){for(o=0;o<g.length;o++)(s=g[o])===l?f=f.mixedAdd(t.points[o]):s===-l&&(f=f.mixedAdd(t.points[o].neg()));u=u.add(f)}return u.toP()},s.prototype._wnafMul=function(A,e){var t=4,n=A._getNAFPoints(t);t=n.wnd;for(var r=n.points,o=i(e,t,this._bitLength),s=this.jpoint(null,null,null),g=o.length-1;g>=0;g--){for(var I=0;g>=0&&0===o[g];g--)I++;if(g>=0&&I++,s=s.dblp(I),g<0)break;var u=o[g];a(0!==u),s="affine"===A.type?u>0?s.mixedAdd(r[u-1>>1]):s.mixedAdd(r[-u-1>>1].neg()):u>0?s.add(r[u-1>>1]):s.add(r[-u-1>>1].neg())}return"affine"===A.type?s.toP():s},s.prototype._wnafMulAdd=function(A,e,t,n,r){var a,s,g,I=this._wnafT1,u=this._wnafT2,f=this._wnafT3,l=0;for(a=0;a<n;a++){var B=(g=e[a])._getNAFPoints(A);I[a]=B.wnd,u[a]=B.points}for(a=n-1;a>=1;a-=2){var E=a-1,c=a;if(1===I[E]&&1===I[c]){var d=[e[E],null,null,e[c]];0===e[E].y.cmp(e[c].y)?(d[1]=e[E].add(e[c]),d[2]=e[E].toJ().mixedAdd(e[c].neg())):0===e[E].y.cmp(e[c].y.redNeg())?(d[1]=e[E].toJ().mixedAdd(e[c]),d[2]=e[E].add(e[c].neg())):(d[1]=e[E].toJ().mixedAdd(e[c]),d[2]=e[E].toJ().mixedAdd(e[c].neg()));var C=[-3,-1,-5,-7,0,7,5,1,3],h=o(t[E],t[c]);for(l=Math.max(h[0].length,l),f[E]=new Array(l),f[c]=new Array(l),s=0;s<l;s++){var Q=0|h[0][s],p=0|h[1][s];f[E][s]=C[3*(Q+1)+(p+1)],f[c][s]=0,u[E]=d}}else f[E]=i(t[E],I[E],this._bitLength),f[c]=i(t[c],I[c],this._bitLength),l=Math.max(f[E].length,l),l=Math.max(f[c].length,l)}var m=this.jpoint(null,null,null),y=this._wnafT4;for(a=l;a>=0;a--){for(var w=0;a>=0;){var b=!0;for(s=0;s<n;s++)y[s]=0|f[s][a],0!==y[s]&&(b=!1);if(!b)break;w++,a--}if(a>=0&&w++,m=m.dblp(w),a<0)break;for(s=0;s<n;s++){var _=y[s];0!==_&&(_>0?g=u[s][_-1>>1]:_<0&&(g=u[s][-_-1>>1].neg()),m="affine"===g.type?m.mixedAdd(g):m.add(g))}}for(a=0;a<n;a++)u[a]=null;return r?m:m.toP()},s.BasePoint=g,g.prototype.eq=function(){throw new Error("Not implemented")},g.prototype.validate=function(){return this.curve.validate(this)},s.prototype.decodePoint=function(A,e){A=r.toArray(A,e);var t=this.p.byteLength();if((4===A[0]||6===A[0]||7===A[0])&&A.length-1==2*t)return 6===A[0]?a(A[A.length-1]%2==0):7===A[0]&&a(A[A.length-1]%2==1),this.point(A.slice(1,1+t),A.slice(1+t,1+2*t));if((2===A[0]||3===A[0])&&A.length-1===t)return this.pointFromX(A.slice(1,1+t),3===A[0]);throw new Error("Unknown point format")},g.prototype.encodeCompressed=function(A){return this.encode(A,!0)},g.prototype._encode=function(A){var e=this.curve.p.byteLength(),t=this.getX().toArray("be",e);return A?[this.getY().isEven()?2:3].concat(t):[4].concat(t,this.getY().toArray("be",e))},g.prototype.encode=function(A,e){return r.encode(this._encode(e),A)},g.prototype.precompute=function(A){if(this.precomputed)return this;var e={doubles:null,naf:null,beta:null};return e.naf=this._getNAFPoints(8),e.doubles=this._getDoubles(4,A),e.beta=this._getBeta(),this.precomputed=e,this},g.prototype._hasDoubles=function(A){if(!this.precomputed)return!1;var e=this.precomputed.doubles;return!!e&&e.points.length>=Math.ceil((A.bitLength()+1)/e.step)},g.prototype._getDoubles=function(A,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var t=[this],n=this,r=0;r<e;r+=A){for(var i=0;i<A;i++)n=n.dbl();t.push(n)}return{step:A,points:t}},g.prototype._getNAFPoints=function(A){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var e=[this],t=(1<<A)-1,n=1===t?null:this.dbl(),r=1;r<t;r++)e[r]=e[r-1].add(n);return{wnd:A,points:e}},g.prototype._getBeta=function(){return null},g.prototype.dblp=function(A){for(var e=this,t=0;t<A;t++)e=e.dbl();return e}},{"bn.js":"VXic","../utils":"F8Ez"}],CO0D:[function(A,e,t){"use strict";var n=A("../utils"),r=A("bn.js"),i=A("inherits"),o=A("./base"),a=n.assert;function s(A){o.call(this,"short",A),this.a=new r(A.a,16).toRed(this.red),this.b=new r(A.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(A),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function g(A,e,t,n){o.BasePoint.call(this,A,"affine"),null===e&&null===t?(this.x=null,this.y=null,this.inf=!0):(this.x=new r(e,16),this.y=new r(t,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function I(A,e,t,n){o.BasePoint.call(this,A,"jacobian"),null===e&&null===t&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new r(0)):(this.x=new r(e,16),this.y=new r(t,16),this.z=new r(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}i(s,o),e.exports=s,s.prototype._getEndomorphism=function(A){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,t;if(A.beta)e=new r(A.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);e=(e=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(A.lambda)t=new r(A.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(e))?t=i[0]:(t=i[1],a(0===this.g.mul(t).x.cmp(this.g.x.redMul(e))))}return{beta:e,lambda:t,basis:A.basis?A.basis.map(function(A){return{a:new r(A.a,16),b:new r(A.b,16)}}):this._getEndoBasis(t)}}},s.prototype._getEndoRoots=function(A){var e=A===this.p?this.red:r.mont(A),t=new r(2).toRed(e).redInvm(),n=t.redNeg(),i=new r(3).toRed(e).redNeg().redSqrt().redMul(t);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},s.prototype._getEndoBasis=function(A){for(var e,t,n,i,o,a,s,g,I,u=this.n.ushrn(Math.floor(this.n.bitLength()/2)),f=A,l=this.n.clone(),B=new r(1),E=new r(0),c=new r(0),d=new r(1),C=0;0!==f.cmpn(0);){var h=l.div(f);g=l.sub(h.mul(f)),I=c.sub(h.mul(B));var Q=d.sub(h.mul(E));if(!n&&g.cmp(u)<0)e=s.neg(),t=B,n=g.neg(),i=I;else if(n&&2==++C)break;s=g,l=f,f=g,c=B,B=I,d=E,E=Q}o=g.neg(),a=I;var p=n.sqr().add(i.sqr());return o.sqr().add(a.sqr()).cmp(p)>=0&&(o=e,a=t),n.negative&&(n=n.neg(),i=i.neg()),o.negative&&(o=o.neg(),a=a.neg()),[{a:n,b:i},{a:o,b:a}]},s.prototype._endoSplit=function(A){var e=this.endo.basis,t=e[0],n=e[1],r=n.b.mul(A).divRound(this.n),i=t.b.neg().mul(A).divRound(this.n),o=r.mul(t.a),a=i.mul(n.a),s=r.mul(t.b),g=i.mul(n.b);return{k1:A.sub(o).sub(a),k2:s.add(g).neg()}},s.prototype.pointFromX=function(A,e){(A=new r(A,16)).red||(A=A.toRed(this.red));var t=A.redSqr().redMul(A).redIAdd(A.redMul(this.a)).redIAdd(this.b),n=t.redSqrt();if(0!==n.redSqr().redSub(t).cmp(this.zero))throw new Error("invalid point");var i=n.fromRed().isOdd();return(e&&!i||!e&&i)&&(n=n.redNeg()),this.point(A,n)},s.prototype.validate=function(A){if(A.inf)return!0;var e=A.x,t=A.y,n=this.a.redMul(e),r=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===t.redSqr().redISub(r).cmpn(0)},s.prototype._endoWnafMulAdd=function(A,e,t){for(var n=this._endoWnafT1,r=this._endoWnafT2,i=0;i<A.length;i++){var o=this._endoSplit(e[i]),a=A[i],s=a._getBeta();o.k1.negative&&(o.k1.ineg(),a=a.neg(!0)),o.k2.negative&&(o.k2.ineg(),s=s.neg(!0)),n[2*i]=a,n[2*i+1]=s,r[2*i]=o.k1,r[2*i+1]=o.k2}for(var g=this._wnafMulAdd(1,n,r,2*i,t),I=0;I<2*i;I++)n[I]=null,r[I]=null;return g},i(g,o.BasePoint),s.prototype.point=function(A,e,t){return new g(this,A,e,t)},s.prototype.pointFromJSON=function(A,e){return g.fromJSON(this,A,e)},g.prototype._getBeta=function(){if(this.curve.endo){var A=this.precomputed;if(A&&A.beta)return A.beta;var e=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(A){var t=this.curve,n=function(A){return t.point(A.x.redMul(t.endo.beta),A.y)};A.beta=e,e.precomputed={beta:null,naf:A.naf&&{wnd:A.naf.wnd,points:A.naf.points.map(n)},doubles:A.doubles&&{step:A.doubles.step,points:A.doubles.points.map(n)}}}return e}},g.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},g.fromJSON=function(A,e,t){"string"==typeof e&&(e=JSON.parse(e));var n=A.point(e[0],e[1],t);if(!e[2])return n;function r(e){return A.point(e[0],e[1],t)}var i=e[2];return n.precomputed={beta:null,doubles:i.doubles&&{step:i.doubles.step,points:[n].concat(i.doubles.points.map(r))},naf:i.naf&&{wnd:i.naf.wnd,points:[n].concat(i.naf.points.map(r))}},n},g.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},g.prototype.isInfinity=function(){return this.inf},g.prototype.add=function(A){if(this.inf)return A;if(A.inf)return this;if(this.eq(A))return this.dbl();if(this.neg().eq(A))return this.curve.point(null,null);if(0===this.x.cmp(A.x))return this.curve.point(null,null);var e=this.y.redSub(A.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(A.x).redInvm()));var t=e.redSqr().redISub(this.x).redISub(A.x),n=e.redMul(this.x.redSub(t)).redISub(this.y);return this.curve.point(t,n)},g.prototype.dbl=function(){if(this.inf)return this;var A=this.y.redAdd(this.y);if(0===A.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,t=this.x.redSqr(),n=A.redInvm(),r=t.redAdd(t).redIAdd(t).redIAdd(e).redMul(n),i=r.redSqr().redISub(this.x.redAdd(this.x)),o=r.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,o)},g.prototype.getX=function(){return this.x.fromRed()},g.prototype.getY=function(){return this.y.fromRed()},g.prototype.mul=function(A){return A=new r(A,16),this.isInfinity()?this:this._hasDoubles(A)?this.curve._fixedNafMul(this,A):this.curve.endo?this.curve._endoWnafMulAdd([this],[A]):this.curve._wnafMul(this,A)},g.prototype.mulAdd=function(A,e,t){var n=[this,e],r=[A,t];return this.curve.endo?this.curve._endoWnafMulAdd(n,r):this.curve._wnafMulAdd(1,n,r,2)},g.prototype.jmulAdd=function(A,e,t){var n=[this,e],r=[A,t];return this.curve.endo?this.curve._endoWnafMulAdd(n,r,!0):this.curve._wnafMulAdd(1,n,r,2,!0)},g.prototype.eq=function(A){return this===A||this.inf===A.inf&&(this.inf||0===this.x.cmp(A.x)&&0===this.y.cmp(A.y))},g.prototype.neg=function(A){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(A&&this.precomputed){var t=this.precomputed,n=function(A){return A.neg()};e.precomputed={naf:t.naf&&{wnd:t.naf.wnd,points:t.naf.points.map(n)},doubles:t.doubles&&{step:t.doubles.step,points:t.doubles.points.map(n)}}}return e},g.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},i(I,o.BasePoint),s.prototype.jpoint=function(A,e,t){return new I(this,A,e,t)},I.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var A=this.z.redInvm(),e=A.redSqr(),t=this.x.redMul(e),n=this.y.redMul(e).redMul(A);return this.curve.point(t,n)},I.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},I.prototype.add=function(A){if(this.isInfinity())return A;if(A.isInfinity())return this;var e=A.z.redSqr(),t=this.z.redSqr(),n=this.x.redMul(e),r=A.x.redMul(t),i=this.y.redMul(e.redMul(A.z)),o=A.y.redMul(t.redMul(this.z)),a=n.redSub(r),s=i.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var g=a.redSqr(),I=g.redMul(a),u=n.redMul(g),f=s.redSqr().redIAdd(I).redISub(u).redISub(u),l=s.redMul(u.redISub(f)).redISub(i.redMul(I)),B=this.z.redMul(A.z).redMul(a);return this.curve.jpoint(f,l,B)},I.prototype.mixedAdd=function(A){if(this.isInfinity())return A.toJ();if(A.isInfinity())return this;var e=this.z.redSqr(),t=this.x,n=A.x.redMul(e),r=this.y,i=A.y.redMul(e).redMul(this.z),o=t.redSub(n),a=r.redSub(i);if(0===o.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var s=o.redSqr(),g=s.redMul(o),I=t.redMul(s),u=a.redSqr().redIAdd(g).redISub(I).redISub(I),f=a.redMul(I.redISub(u)).redISub(r.redMul(g)),l=this.z.redMul(o);return this.curve.jpoint(u,f,l)},I.prototype.dblp=function(A){if(0===A)return this;if(this.isInfinity())return this;if(!A)return this.dbl();var e;if(this.curve.zeroA||this.curve.threeA){var t=this;for(e=0;e<A;e++)t=t.dbl();return t}var n=this.curve.a,r=this.curve.tinv,i=this.x,o=this.y,a=this.z,s=a.redSqr().redSqr(),g=o.redAdd(o);for(e=0;e<A;e++){var I=i.redSqr(),u=g.redSqr(),f=u.redSqr(),l=I.redAdd(I).redIAdd(I).redIAdd(n.redMul(s)),B=i.redMul(u),E=l.redSqr().redISub(B.redAdd(B)),c=B.redISub(E),d=l.redMul(c);d=d.redIAdd(d).redISub(f);var C=g.redMul(a);e+1<A&&(s=s.redMul(f)),i=E,a=C,g=d}return this.curve.jpoint(i,g.redMul(r),a)},I.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},I.prototype._zeroDbl=function(){var A,e,t;if(this.zOne){var n=this.x.redSqr(),r=this.y.redSqr(),i=r.redSqr(),o=this.x.redAdd(r).redSqr().redISub(n).redISub(i);o=o.redIAdd(o);var a=n.redAdd(n).redIAdd(n),s=a.redSqr().redISub(o).redISub(o),g=i.redIAdd(i);g=(g=g.redIAdd(g)).redIAdd(g),A=s,e=a.redMul(o.redISub(s)).redISub(g),t=this.y.redAdd(this.y)}else{var I=this.x.redSqr(),u=this.y.redSqr(),f=u.redSqr(),l=this.x.redAdd(u).redSqr().redISub(I).redISub(f);l=l.redIAdd(l);var B=I.redAdd(I).redIAdd(I),E=B.redSqr(),c=f.redIAdd(f);c=(c=c.redIAdd(c)).redIAdd(c),A=E.redISub(l).redISub(l),e=B.redMul(l.redISub(A)).redISub(c),t=(t=this.y.redMul(this.z)).redIAdd(t)}return this.curve.jpoint(A,e,t)},I.prototype._threeDbl=function(){var A,e,t;if(this.zOne){var n=this.x.redSqr(),r=this.y.redSqr(),i=r.redSqr(),o=this.x.redAdd(r).redSqr().redISub(n).redISub(i);o=o.redIAdd(o);var a=n.redAdd(n).redIAdd(n).redIAdd(this.curve.a),s=a.redSqr().redISub(o).redISub(o);A=s;var g=i.redIAdd(i);g=(g=g.redIAdd(g)).redIAdd(g),e=a.redMul(o.redISub(s)).redISub(g),t=this.y.redAdd(this.y)}else{var I=this.z.redSqr(),u=this.y.redSqr(),f=this.x.redMul(u),l=this.x.redSub(I).redMul(this.x.redAdd(I));l=l.redAdd(l).redIAdd(l);var B=f.redIAdd(f),E=(B=B.redIAdd(B)).redAdd(B);A=l.redSqr().redISub(E),t=this.y.redAdd(this.z).redSqr().redISub(u).redISub(I);var c=u.redSqr();c=(c=(c=c.redIAdd(c)).redIAdd(c)).redIAdd(c),e=l.redMul(B.redISub(A)).redISub(c)}return this.curve.jpoint(A,e,t)},I.prototype._dbl=function(){var A=this.curve.a,e=this.x,t=this.y,n=this.z,r=n.redSqr().redSqr(),i=e.redSqr(),o=t.redSqr(),a=i.redAdd(i).redIAdd(i).redIAdd(A.redMul(r)),s=e.redAdd(e),g=(s=s.redIAdd(s)).redMul(o),I=a.redSqr().redISub(g.redAdd(g)),u=g.redISub(I),f=o.redSqr();f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var l=a.redMul(u).redISub(f),B=t.redAdd(t).redMul(n);return this.curve.jpoint(I,l,B)},I.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var A=this.x.redSqr(),e=this.y.redSqr(),t=this.z.redSqr(),n=e.redSqr(),r=A.redAdd(A).redIAdd(A),i=r.redSqr(),o=this.x.redAdd(e).redSqr().redISub(A).redISub(n),a=(o=(o=(o=o.redIAdd(o)).redAdd(o).redIAdd(o)).redISub(i)).redSqr(),s=n.redIAdd(n);s=(s=(s=s.redIAdd(s)).redIAdd(s)).redIAdd(s);var g=r.redIAdd(o).redSqr().redISub(i).redISub(a).redISub(s),I=e.redMul(g);I=(I=I.redIAdd(I)).redIAdd(I);var u=this.x.redMul(a).redISub(I);u=(u=u.redIAdd(u)).redIAdd(u);var f=this.y.redMul(g.redMul(s.redISub(g)).redISub(o.redMul(a)));f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var l=this.z.redAdd(o).redSqr().redISub(t).redISub(a);return this.curve.jpoint(u,f,l)},I.prototype.mul=function(A,e){return A=new r(A,e),this.curve._wnafMul(this,A)},I.prototype.eq=function(A){if("affine"===A.type)return this.eq(A.toJ());if(this===A)return!0;var e=this.z.redSqr(),t=A.z.redSqr();if(0!==this.x.redMul(t).redISub(A.x.redMul(e)).cmpn(0))return!1;var n=e.redMul(this.z),r=t.redMul(A.z);return 0===this.y.redMul(r).redISub(A.y.redMul(n)).cmpn(0)},I.prototype.eqXToP=function(A){var e=this.z.redSqr(),t=A.toRed(this.curve.red).redMul(e);if(0===this.x.cmp(t))return!0;for(var n=A.clone(),r=this.curve.redN.redMul(e);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(r),0===this.x.cmp(t))return!0}},I.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},I.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},{"../utils":"F8Ez","bn.js":"VXic",inherits:"t8EM","./base":"NX8i"}],PwwO:[function(A,e,t){"use strict";var n=A("bn.js"),r=A("inherits"),i=A("./base"),o=A("../utils");function a(A){i.call(this,"mont",A),this.a=new n(A.a,16).toRed(this.red),this.b=new n(A.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function s(A,e,t){i.BasePoint.call(this,A,"projective"),null===e&&null===t?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(e,16),this.z=new n(t,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}r(a,i),e.exports=a,a.prototype.validate=function(A){var e=A.normalize().x,t=e.redSqr(),n=t.redMul(e).redAdd(t.redMul(this.a)).redAdd(e);return 0===n.redSqrt().redSqr().cmp(n)},r(s,i.BasePoint),a.prototype.decodePoint=function(A,e){return this.point(o.toArray(A,e),1)},a.prototype.point=function(A,e){return new s(this,A,e)},a.prototype.pointFromJSON=function(A){return s.fromJSON(this,A)},s.prototype.precompute=function(){},s.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},s.fromJSON=function(A,e){return new s(A,e[0],e[1]||A.one)},s.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},s.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},s.prototype.dbl=function(){var A=this.x.redAdd(this.z).redSqr(),e=this.x.redSub(this.z).redSqr(),t=A.redSub(e),n=A.redMul(e),r=t.redMul(e.redAdd(this.curve.a24.redMul(t)));return this.curve.point(n,r)},s.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},s.prototype.diffAdd=function(A,e){var t=this.x.redAdd(this.z),n=this.x.redSub(this.z),r=A.x.redAdd(A.z),i=A.x.redSub(A.z).redMul(t),o=r.redMul(n),a=e.z.redMul(i.redAdd(o).redSqr()),s=e.x.redMul(i.redISub(o).redSqr());return this.curve.point(a,s)},s.prototype.mul=function(A){for(var e=A.clone(),t=this,n=this.curve.point(null,null),r=[];0!==e.cmpn(0);e.iushrn(1))r.push(e.andln(1));for(var i=r.length-1;i>=0;i--)0===r[i]?(t=t.diffAdd(n,this),n=n.dbl()):(n=t.diffAdd(n,this),t=t.dbl());return n},s.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},s.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},s.prototype.eq=function(A){return 0===this.getX().cmp(A.getX())},s.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},s.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},{"bn.js":"VXic",inherits:"t8EM","./base":"NX8i","../utils":"F8Ez"}],tiqw:[function(A,e,t){"use strict";var n=A("../utils"),r=A("bn.js"),i=A("inherits"),o=A("./base"),a=n.assert;function s(A){this.twisted=1!=(0|A.a),this.mOneA=this.twisted&&-1==(0|A.a),this.extended=this.mOneA,o.call(this,"edwards",A),this.a=new r(A.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new r(A.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new r(A.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|A.c)}function g(A,e,t,n,i){o.BasePoint.call(this,A,"projective"),null===e&&null===t&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new r(e,16),this.y=new r(t,16),this.z=n?new r(n,16):this.curve.one,this.t=i&&new r(i,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}i(s,o),e.exports=s,s.prototype._mulA=function(A){return this.mOneA?A.redNeg():this.a.redMul(A)},s.prototype._mulC=function(A){return this.oneC?A:this.c.redMul(A)},s.prototype.jpoint=function(A,e,t,n){return this.point(A,e,t,n)},s.prototype.pointFromX=function(A,e){(A=new r(A,16)).red||(A=A.toRed(this.red));var t=A.redSqr(),n=this.c2.redSub(this.a.redMul(t)),i=this.one.redSub(this.c2.redMul(this.d).redMul(t)),o=n.redMul(i.redInvm()),a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");var s=a.fromRed().isOdd();return(e&&!s||!e&&s)&&(a=a.redNeg()),this.point(A,a)},s.prototype.pointFromY=function(A,e){(A=new r(A,16)).red||(A=A.toRed(this.red));var t=A.redSqr(),n=t.redSub(this.c2),i=t.redMul(this.d).redMul(this.c2).redSub(this.a),o=n.redMul(i.redInvm());if(0===o.cmp(this.zero)){if(e)throw new Error("invalid point");return this.point(this.zero,A)}var a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==e&&(a=a.redNeg()),this.point(a,A)},s.prototype.validate=function(A){if(A.isInfinity())return!0;A.normalize();var e=A.x.redSqr(),t=A.y.redSqr(),n=e.redMul(this.a).redAdd(t),r=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(t)));return 0===n.cmp(r)},i(g,o.BasePoint),s.prototype.pointFromJSON=function(A){return g.fromJSON(this,A)},s.prototype.point=function(A,e,t,n){return new g(this,A,e,t,n)},g.fromJSON=function(A,e){return new g(A,e[0],e[1],e[2])},g.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},g.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},g.prototype._extDbl=function(){var A=this.x.redSqr(),e=this.y.redSqr(),t=this.z.redSqr();t=t.redIAdd(t);var n=this.curve._mulA(A),r=this.x.redAdd(this.y).redSqr().redISub(A).redISub(e),i=n.redAdd(e),o=i.redSub(t),a=n.redSub(e),s=r.redMul(o),g=i.redMul(a),I=r.redMul(a),u=o.redMul(i);return this.curve.point(s,g,u,I)},g.prototype._projDbl=function(){var A,e,t,n,r,i,o=this.x.redAdd(this.y).redSqr(),a=this.x.redSqr(),s=this.y.redSqr();if(this.curve.twisted){var g=(n=this.curve._mulA(a)).redAdd(s);this.zOne?(A=o.redSub(a).redSub(s).redMul(g.redSub(this.curve.two)),e=g.redMul(n.redSub(s)),t=g.redSqr().redSub(g).redSub(g)):(r=this.z.redSqr(),i=g.redSub(r).redISub(r),A=o.redSub(a).redISub(s).redMul(i),e=g.redMul(n.redSub(s)),t=g.redMul(i))}else n=a.redAdd(s),r=this.curve._mulC(this.z).redSqr(),i=n.redSub(r).redSub(r),A=this.curve._mulC(o.redISub(n)).redMul(i),e=this.curve._mulC(n).redMul(a.redISub(s)),t=n.redMul(i);return this.curve.point(A,e,t)},g.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},g.prototype._extAdd=function(A){var e=this.y.redSub(this.x).redMul(A.y.redSub(A.x)),t=this.y.redAdd(this.x).redMul(A.y.redAdd(A.x)),n=this.t.redMul(this.curve.dd).redMul(A.t),r=this.z.redMul(A.z.redAdd(A.z)),i=t.redSub(e),o=r.redSub(n),a=r.redAdd(n),s=t.redAdd(e),g=i.redMul(o),I=a.redMul(s),u=i.redMul(s),f=o.redMul(a);return this.curve.point(g,I,f,u)},g.prototype._projAdd=function(A){var e,t,n=this.z.redMul(A.z),r=n.redSqr(),i=this.x.redMul(A.x),o=this.y.redMul(A.y),a=this.curve.d.redMul(i).redMul(o),s=r.redSub(a),g=r.redAdd(a),I=this.x.redAdd(this.y).redMul(A.x.redAdd(A.y)).redISub(i).redISub(o),u=n.redMul(s).redMul(I);return this.curve.twisted?(e=n.redMul(g).redMul(o.redSub(this.curve._mulA(i))),t=s.redMul(g)):(e=n.redMul(g).redMul(o.redSub(i)),t=this.curve._mulC(s).redMul(g)),this.curve.point(u,e,t)},g.prototype.add=function(A){return this.isInfinity()?A:A.isInfinity()?this:this.curve.extended?this._extAdd(A):this._projAdd(A)},g.prototype.mul=function(A){return this._hasDoubles(A)?this.curve._fixedNafMul(this,A):this.curve._wnafMul(this,A)},g.prototype.mulAdd=function(A,e,t){return this.curve._wnafMulAdd(1,[this,e],[A,t],2,!1)},g.prototype.jmulAdd=function(A,e,t){return this.curve._wnafMulAdd(1,[this,e],[A,t],2,!0)},g.prototype.normalize=function(){if(this.zOne)return this;var A=this.z.redInvm();return this.x=this.x.redMul(A),this.y=this.y.redMul(A),this.t&&(this.t=this.t.redMul(A)),this.z=this.curve.one,this.zOne=!0,this},g.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},g.prototype.getX=function(){return this.normalize(),this.x.fromRed()},g.prototype.getY=function(){return this.normalize(),this.y.fromRed()},g.prototype.eq=function(A){return this===A||0===this.getX().cmp(A.getX())&&0===this.getY().cmp(A.getY())},g.prototype.eqXToP=function(A){var e=A.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var t=A.clone(),n=this.curve.redN.redMul(this.z);;){if(t.iadd(this.curve.n),t.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(n),0===this.x.cmp(e))return!0}},g.prototype.toP=g.prototype.normalize,g.prototype.mixedAdd=g.prototype.add},{"../utils":"F8Ez","bn.js":"VXic",inherits:"t8EM","./base":"NX8i"}],P4Ml:[function(A,e,t){"use strict";var n=t;n.base=A("./base"),n.short=A("./short"),n.mont=A("./mont"),n.edwards=A("./edwards")},{"./base":"NX8i","./short":"CO0D","./mont":"PwwO","./edwards":"tiqw"}],eeOV:[function(A,e,t){"use strict";var n=A("minimalistic-assert"),r=A("inherits");function i(A,e){return 55296==(64512&A.charCodeAt(e))&&!(e<0||e+1>=A.length)&&56320==(64512&A.charCodeAt(e+1))}function o(A){return(A>>>24|A>>>8&65280|A<<8&16711680|(255&A)<<24)>>>0}function a(A){return 1===A.length?"0"+A:A}function s(A){return 7===A.length?"0"+A:6===A.length?"00"+A:5===A.length?"000"+A:4===A.length?"0000"+A:3===A.length?"00000"+A:2===A.length?"000000"+A:1===A.length?"0000000"+A:A}t.inherits=r,t.toArray=function(A,e){if(Array.isArray(A))return A.slice();if(!A)return[];var t=[];if("string"==typeof A)if(e){if("hex"===e)for((A=A.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(A="0"+A),r=0;r<A.length;r+=2)t.push(parseInt(A[r]+A[r+1],16))}else for(var n=0,r=0;r<A.length;r++){var o=A.charCodeAt(r);o<128?t[n++]=o:o<2048?(t[n++]=o>>6|192,t[n++]=63&o|128):i(A,r)?(o=65536+((1023&o)<<10)+(1023&A.charCodeAt(++r)),t[n++]=o>>18|240,t[n++]=o>>12&63|128,t[n++]=o>>6&63|128,t[n++]=63&o|128):(t[n++]=o>>12|224,t[n++]=o>>6&63|128,t[n++]=63&o|128)}else for(r=0;r<A.length;r++)t[r]=0|A[r];return t},t.toHex=function(A){for(var e="",t=0;t<A.length;t++)e+=a(A[t].toString(16));return e},t.htonl=o,t.toHex32=function(A,e){for(var t="",n=0;n<A.length;n++){var r=A[n];"little"===e&&(r=o(r)),t+=s(r.toString(16))}return t},t.zero2=a,t.zero8=s,t.join32=function(A,e,t,r){var i=t-e;n(i%4==0);for(var o=new Array(i/4),a=0,s=e;a<o.length;a++,s+=4){var g;g="big"===r?A[s]<<24|A[s+1]<<16|A[s+2]<<8|A[s+3]:A[s+3]<<24|A[s+2]<<16|A[s+1]<<8|A[s],o[a]=g>>>0}return o},t.split32=function(A,e){for(var t=new Array(4*A.length),n=0,r=0;n<A.length;n++,r+=4){var i=A[n];"big"===e?(t[r]=i>>>24,t[r+1]=i>>>16&255,t[r+2]=i>>>8&255,t[r+3]=255&i):(t[r+3]=i>>>24,t[r+2]=i>>>16&255,t[r+1]=i>>>8&255,t[r]=255&i)}return t},t.rotr32=function(A,e){return A>>>e|A<<32-e},t.rotl32=function(A,e){return A<<e|A>>>32-e},t.sum32=function(A,e){return A+e>>>0},t.sum32_3=function(A,e,t){return A+e+t>>>0},t.sum32_4=function(A,e,t,n){return A+e+t+n>>>0},t.sum32_5=function(A,e,t,n,r){return A+e+t+n+r>>>0},t.sum64=function(A,e,t,n){var r=A[e],i=n+A[e+1]>>>0,o=(i<n?1:0)+t+r;A[e]=o>>>0,A[e+1]=i},t.sum64_hi=function(A,e,t,n){return(e+n>>>0<e?1:0)+A+t>>>0},t.sum64_lo=function(A,e,t,n){return e+n>>>0},t.sum64_4_hi=function(A,e,t,n,r,i,o,a){var s=0,g=e;return s+=(g=g+n>>>0)<e?1:0,s+=(g=g+i>>>0)<i?1:0,A+t+r+o+(s+=(g=g+a>>>0)<a?1:0)>>>0},t.sum64_4_lo=function(A,e,t,n,r,i,o,a){return e+n+i+a>>>0},t.sum64_5_hi=function(A,e,t,n,r,i,o,a,s,g){var I=0,u=e;return I+=(u=u+n>>>0)<e?1:0,I+=(u=u+i>>>0)<i?1:0,I+=(u=u+a>>>0)<a?1:0,A+t+r+o+s+(I+=(u=u+g>>>0)<g?1:0)>>>0},t.sum64_5_lo=function(A,e,t,n,r,i,o,a,s,g){return e+n+i+a+g>>>0},t.rotr64_hi=function(A,e,t){return(e<<32-t|A>>>t)>>>0},t.rotr64_lo=function(A,e,t){return(A<<32-t|e>>>t)>>>0},t.shr64_hi=function(A,e,t){return A>>>t},t.shr64_lo=function(A,e,t){return(A<<32-t|e>>>t)>>>0}},{"minimalistic-assert":"MpuC",inherits:"4Bm0"}],p0gz:[function(A,e,t){"use strict";var n=A("./utils"),r=A("minimalistic-assert");function i(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=i,i.prototype.update=function(A,e){if(A=n.toArray(A,e),this.pending?this.pending=this.pending.concat(A):this.pending=A,this.pendingTotal+=A.length,this.pending.length>=this._delta8){var t=(A=this.pending).length%this._delta8;this.pending=A.slice(A.length-t,A.length),0===this.pending.length&&(this.pending=null),A=n.join32(A,0,A.length-t,this.endian);for(var r=0;r<A.length;r+=this._delta32)this._update(A,r,r+this._delta32)}return this},i.prototype.digest=function(A){return this.update(this._pad()),r(null===this.pending),this._digest(A)},i.prototype._pad=function(){var A=this.pendingTotal,e=this._delta8,t=e-(A+this.padLength)%e,n=new Array(t+this.padLength);n[0]=128;for(var r=1;r<t;r++)n[r]=0;if(A<<=3,"big"===this.endian){for(var i=8;i<this.padLength;i++)n[r++]=0;n[r++]=0,n[r++]=0,n[r++]=0,n[r++]=0,n[r++]=A>>>24&255,n[r++]=A>>>16&255,n[r++]=A>>>8&255,n[r++]=255&A}else for(n[r++]=255&A,n[r++]=A>>>8&255,n[r++]=A>>>16&255,n[r++]=A>>>24&255,n[r++]=0,n[r++]=0,n[r++]=0,n[r++]=0,i=8;i<this.padLength;i++)n[r++]=0;return n}},{"./utils":"eeOV","minimalistic-assert":"MpuC"}],qR4i:[function(A,e,t){"use strict";var n=A("../utils").rotr32;function r(A,e,t){return A&e^~A&t}function i(A,e,t){return A&e^A&t^e&t}function o(A,e,t){return A^e^t}t.ft_1=function(A,e,t,n){return 0===A?r(e,t,n):1===A||3===A?o(e,t,n):2===A?i(e,t,n):void 0},t.ch32=r,t.maj32=i,t.p32=o,t.s0_256=function(A){return n(A,2)^n(A,13)^n(A,22)},t.s1_256=function(A){return n(A,6)^n(A,11)^n(A,25)},t.g0_256=function(A){return n(A,7)^n(A,18)^A>>>3},t.g1_256=function(A){return n(A,17)^n(A,19)^A>>>10}},{"../utils":"eeOV"}],"r+iE":[function(A,e,t){"use strict";var n=A("../utils"),r=A("../common"),i=A("./common"),o=n.rotl32,a=n.sum32,s=n.sum32_5,g=i.ft_1,I=r.BlockHash,u=[1518500249,1859775393,2400959708,3395469782];function f(){if(!(this instanceof f))return new f;I.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}n.inherits(f,I),e.exports=f,f.blockSize=512,f.outSize=160,f.hmacStrength=80,f.padLength=64,f.prototype._update=function(A,e){for(var t=this.W,n=0;n<16;n++)t[n]=A[e+n];for(;n<t.length;n++)t[n]=o(t[n-3]^t[n-8]^t[n-14]^t[n-16],1);var r=this.h[0],i=this.h[1],I=this.h[2],f=this.h[3],l=this.h[4];for(n=0;n<t.length;n++){var B=~~(n/20),E=s(o(r,5),g(B,i,I,f),l,t[n],u[B]);l=f,f=I,I=o(i,30),i=r,r=E}this.h[0]=a(this.h[0],r),this.h[1]=a(this.h[1],i),this.h[2]=a(this.h[2],I),this.h[3]=a(this.h[3],f),this.h[4]=a(this.h[4],l)},f.prototype._digest=function(A){return"hex"===A?n.toHex32(this.h,"big"):n.split32(this.h,"big")}},{"../utils":"eeOV","../common":"p0gz","./common":"qR4i"}],iJWs:[function(A,e,t){"use strict";var n=A("../utils"),r=A("../common"),i=A("./common"),o=A("minimalistic-assert"),a=n.sum32,s=n.sum32_4,g=n.sum32_5,I=i.ch32,u=i.maj32,f=i.s0_256,l=i.s1_256,B=i.g0_256,E=i.g1_256,c=r.BlockHash,d=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function C(){if(!(this instanceof C))return new C;c.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=d,this.W=new Array(64)}n.inherits(C,c),e.exports=C,C.blockSize=512,C.outSize=256,C.hmacStrength=192,C.padLength=64,C.prototype._update=function(A,e){for(var t=this.W,n=0;n<16;n++)t[n]=A[e+n];for(;n<t.length;n++)t[n]=s(E(t[n-2]),t[n-7],B(t[n-15]),t[n-16]);var r=this.h[0],i=this.h[1],c=this.h[2],d=this.h[3],C=this.h[4],h=this.h[5],Q=this.h[6],p=this.h[7];for(o(this.k.length===t.length),n=0;n<t.length;n++){var m=g(p,l(C),I(C,h,Q),this.k[n],t[n]),y=a(f(r),u(r,i,c));p=Q,Q=h,h=C,C=a(d,m),d=c,c=i,i=r,r=a(m,y)}this.h[0]=a(this.h[0],r),this.h[1]=a(this.h[1],i),this.h[2]=a(this.h[2],c),this.h[3]=a(this.h[3],d),this.h[4]=a(this.h[4],C),this.h[5]=a(this.h[5],h),this.h[6]=a(this.h[6],Q),this.h[7]=a(this.h[7],p)},C.prototype._digest=function(A){return"hex"===A?n.toHex32(this.h,"big"):n.split32(this.h,"big")}},{"../utils":"eeOV","../common":"p0gz","./common":"qR4i","minimalistic-assert":"MpuC"}],"3NwV":[function(A,e,t){"use strict";var n=A("../utils"),r=A("./256");function i(){if(!(this instanceof i))return new i;r.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}n.inherits(i,r),e.exports=i,i.blockSize=512,i.outSize=224,i.hmacStrength=192,i.padLength=64,i.prototype._digest=function(A){return"hex"===A?n.toHex32(this.h.slice(0,7),"big"):n.split32(this.h.slice(0,7),"big")}},{"../utils":"eeOV","./256":"iJWs"}],CY40:[function(A,e,t){"use strict";var n=A("../utils"),r=A("../common"),i=A("minimalistic-assert"),o=n.rotr64_hi,a=n.rotr64_lo,s=n.shr64_hi,g=n.shr64_lo,I=n.sum64,u=n.sum64_hi,f=n.sum64_lo,l=n.sum64_4_hi,B=n.sum64_4_lo,E=n.sum64_5_hi,c=n.sum64_5_lo,d=r.BlockHash,C=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function h(){if(!(this instanceof h))return new h;d.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=C,this.W=new Array(160)}function Q(A,e,t,n,r){var i=A&t^~A&r;return i<0&&(i+=4294967296),i}function p(A,e,t,n,r,i){var o=e&n^~e&i;return o<0&&(o+=4294967296),o}function m(A,e,t,n,r){var i=A&t^A&r^t&r;return i<0&&(i+=4294967296),i}function y(A,e,t,n,r,i){var o=e&n^e&i^n&i;return o<0&&(o+=4294967296),o}function w(A,e){var t=o(A,e,28)^o(e,A,2)^o(e,A,7);return t<0&&(t+=4294967296),t}function b(A,e){var t=a(A,e,28)^a(e,A,2)^a(e,A,7);return t<0&&(t+=4294967296),t}function _(A,e){var t=o(A,e,14)^o(A,e,18)^o(e,A,9);return t<0&&(t+=4294967296),t}function D(A,e){var t=a(A,e,14)^a(A,e,18)^a(e,A,9);return t<0&&(t+=4294967296),t}function v(A,e){var t=o(A,e,1)^o(A,e,8)^s(A,e,7);return t<0&&(t+=4294967296),t}function R(A,e){var t=a(A,e,1)^a(A,e,8)^g(A,e,7);return t<0&&(t+=4294967296),t}function F(A,e){var t=o(A,e,19)^o(e,A,29)^s(A,e,6);return t<0&&(t+=4294967296),t}function M(A,e){var t=a(A,e,19)^a(e,A,29)^g(A,e,6);return t<0&&(t+=4294967296),t}n.inherits(h,d),e.exports=h,h.blockSize=1024,h.outSize=512,h.hmacStrength=192,h.padLength=128,h.prototype._prepareBlock=function(A,e){for(var t=this.W,n=0;n<32;n++)t[n]=A[e+n];for(;n<t.length;n+=2){var r=F(t[n-4],t[n-3]),i=M(t[n-4],t[n-3]),o=t[n-14],a=t[n-13],s=v(t[n-30],t[n-29]),g=R(t[n-30],t[n-29]),I=t[n-32],u=t[n-31];t[n]=l(r,i,o,a,s,g,I,u),t[n+1]=B(r,i,o,a,s,g,I,u)}},h.prototype._update=function(A,e){this._prepareBlock(A,e);var t=this.W,n=this.h[0],r=this.h[1],o=this.h[2],a=this.h[3],s=this.h[4],g=this.h[5],l=this.h[6],B=this.h[7],d=this.h[8],C=this.h[9],h=this.h[10],v=this.h[11],R=this.h[12],F=this.h[13],M=this.h[14],S=this.h[15];i(this.k.length===t.length);for(var k=0;k<t.length;k+=2){var G=M,N=S,P=_(d,C),L=D(d,C),U=Q(d,0,h,0,R),Y=p(0,C,0,v,0,F),x=this.k[k],Z=this.k[k+1],H=t[k],X=t[k+1],K=E(G,N,P,L,U,Y,x,Z,H,X),T=c(G,N,P,L,U,Y,x,Z,H,X);G=w(n,r),N=b(n,r),P=m(n,0,o,0,s),L=y(0,r,0,a,0,g);var W=u(G,N,P,L),q=f(G,N,P,L);M=R,S=F,R=h,F=v,h=d,v=C,d=u(l,B,K,T),C=f(B,B,K,T),l=s,B=g,s=o,g=a,o=n,a=r,n=u(K,T,W,q),r=f(K,T,W,q)}I(this.h,0,n,r),I(this.h,2,o,a),I(this.h,4,s,g),I(this.h,6,l,B),I(this.h,8,d,C),I(this.h,10,h,v),I(this.h,12,R,F),I(this.h,14,M,S)},h.prototype._digest=function(A){return"hex"===A?n.toHex32(this.h,"big"):n.split32(this.h,"big")}},{"../utils":"eeOV","../common":"p0gz","minimalistic-assert":"MpuC"}],"5sAV":[function(A,e,t){"use strict";var n=A("../utils"),r=A("./512");function i(){if(!(this instanceof i))return new i;r.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}n.inherits(i,r),e.exports=i,i.blockSize=1024,i.outSize=384,i.hmacStrength=192,i.padLength=128,i.prototype._digest=function(A){return"hex"===A?n.toHex32(this.h.slice(0,12),"big"):n.split32(this.h.slice(0,12),"big")}},{"../utils":"eeOV","./512":"CY40"}],BhcK:[function(A,e,t){"use strict";t.sha1=A("./sha/1"),t.sha224=A("./sha/224"),t.sha256=A("./sha/256"),t.sha384=A("./sha/384"),t.sha512=A("./sha/512")},{"./sha/1":"r+iE","./sha/224":"3NwV","./sha/256":"iJWs","./sha/384":"5sAV","./sha/512":"CY40"}],"2tE3":[function(A,e,t){"use strict";var n=A("./utils"),r=A("./common"),i=n.rotl32,o=n.sum32,a=n.sum32_3,s=n.sum32_4,g=r.BlockHash;function I(){if(!(this instanceof I))return new I;g.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function u(A,e,t,n){return A<=15?e^t^n:A<=31?e&t|~e&n:A<=47?(e|~t)^n:A<=63?e&n|t&~n:e^(t|~n)}function f(A){return A<=15?0:A<=31?1518500249:A<=47?1859775393:A<=63?2400959708:2840853838}function l(A){return A<=15?1352829926:A<=31?1548603684:A<=47?1836072691:A<=63?2053994217:0}n.inherits(I,g),t.ripemd160=I,I.blockSize=512,I.outSize=160,I.hmacStrength=192,I.padLength=64,I.prototype._update=function(A,e){for(var t=this.h[0],n=this.h[1],r=this.h[2],g=this.h[3],I=this.h[4],C=t,h=n,Q=r,p=g,m=I,y=0;y<80;y++){var w=o(i(s(t,u(y,n,r,g),A[B[y]+e],f(y)),c[y]),I);t=I,I=g,g=i(r,10),r=n,n=w,w=o(i(s(C,u(79-y,h,Q,p),A[E[y]+e],l(y)),d[y]),m),C=m,m=p,p=i(Q,10),Q=h,h=w}w=a(this.h[1],r,p),this.h[1]=a(this.h[2],g,m),this.h[2]=a(this.h[3],I,C),this.h[3]=a(this.h[4],t,h),this.h[4]=a(this.h[0],n,Q),this.h[0]=w},I.prototype._digest=function(A){return"hex"===A?n.toHex32(this.h,"little"):n.split32(this.h,"little")};var B=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],E=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],c=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],d=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},{"./utils":"eeOV","./common":"p0gz"}],"A/a3":[function(A,e,t){"use strict";var n=A("./utils"),r=A("minimalistic-assert");function i(A,e,t){if(!(this instanceof i))return new i(A,e,t);this.Hash=A,this.blockSize=A.blockSize/8,this.outSize=A.outSize/8,this.inner=null,this.outer=null,this._init(n.toArray(e,t))}e.exports=i,i.prototype._init=function(A){A.length>this.blockSize&&(A=(new this.Hash).update(A).digest()),r(A.length<=this.blockSize);for(var e=A.length;e<this.blockSize;e++)A.push(0);for(e=0;e<A.length;e++)A[e]^=54;for(this.inner=(new this.Hash).update(A),e=0;e<A.length;e++)A[e]^=106;this.outer=(new this.Hash).update(A)},i.prototype.update=function(A,e){return this.inner.update(A,e),this},i.prototype.digest=function(A){return this.outer.update(this.inner.digest()),this.outer.digest(A)}},{"./utils":"eeOV","minimalistic-assert":"MpuC"}],fVGI:[function(A,e,t){var n=t;n.utils=A("./hash/utils"),n.common=A("./hash/common"),n.sha=A("./hash/sha"),n.ripemd=A("./hash/ripemd"),n.hmac=A("./hash/hmac"),n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160},{"./hash/utils":"eeOV","./hash/common":"p0gz","./hash/sha":"BhcK","./hash/ripemd":"2tE3","./hash/hmac":"A/a3"}],khx4:[function(A,e,t){e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},{}],"1Exa":[function(A,e,t){"use strict";var n,r=t,i=A("hash.js"),o=A("./curve"),a=A("./utils").assert;function s(A){"short"===A.type?this.curve=new o.short(A):"edwards"===A.type?this.curve=new o.edwards(A):this.curve=new o.mont(A),this.g=this.curve.g,this.n=this.curve.n,this.hash=A.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function g(A,e){Object.defineProperty(r,A,{configurable:!0,enumerable:!0,get:function(){var t=new s(e);return Object.defineProperty(r,A,{configurable:!0,enumerable:!0,value:t}),t}})}r.PresetCurve=s,g("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:i.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),g("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:i.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),g("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:i.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),g("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:i.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),g("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:i.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),g("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:i.sha256,gRed:!1,g:["9"]}),g("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:i.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=A("./precomputed/secp256k1")}catch(I){n=void 0}g("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:i.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},{"hash.js":"fVGI","./curve":"P4Ml","./utils":"F8Ez","./precomputed/secp256k1":"khx4"}],vdhc:[function(A,e,t){"use strict";var n=A("hash.js"),r=A("minimalistic-crypto-utils"),i=A("minimalistic-assert");function o(A){if(!(this instanceof o))return new o(A);this.hash=A.hash,this.predResist=!!A.predResist,this.outLen=this.hash.outSize,this.minEntropy=A.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=r.toArray(A.entropy,A.entropyEnc||"hex"),t=r.toArray(A.nonce,A.nonceEnc||"hex"),n=r.toArray(A.pers,A.persEnc||"hex");i(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,t,n)}e.exports=o,o.prototype._init=function(A,e,t){var n=A.concat(e).concat(t);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var r=0;r<this.V.length;r++)this.K[r]=0,this.V[r]=1;this._update(n),this._reseed=1,this.reseedInterval=281474976710656},o.prototype._hmac=function(){return new n.hmac(this.hash,this.K)},o.prototype._update=function(A){var e=this._hmac().update(this.V).update([0]);A&&(e=e.update(A)),this.K=e.digest(),this.V=this._hmac().update(this.V).digest(),A&&(this.K=this._hmac().update(this.V).update([1]).update(A).digest(),this.V=this._hmac().update(this.V).digest())},o.prototype.reseed=function(A,e,t,n){"string"!=typeof e&&(n=t,t=e,e=null),A=r.toArray(A,e),t=r.toArray(t,n),i(A.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(A.concat(t||[])),this._reseed=1},o.prototype.generate=function(A,e,t,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(n=t,t=e,e=null),t&&(t=r.toArray(t,n||"hex"),this._update(t));for(var i=[];i.length<A;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var o=i.slice(0,A);return this._update(t),this._reseed++,r.encode(o,e)}},{"hash.js":"fVGI","minimalistic-crypto-utils":"vl2S","minimalistic-assert":"MpuC"}],"4YPk":[function(A,e,t){"use strict";var n=A("bn.js"),r=A("../utils").assert;function i(A,e){this.ec=A,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}e.exports=i,i.fromPublic=function(A,e,t){return e instanceof i?e:new i(A,{pub:e,pubEnc:t})},i.fromPrivate=function(A,e,t){return e instanceof i?e:new i(A,{priv:e,privEnc:t})},i.prototype.validate=function(){var A=this.getPublic();return A.isInfinity()?{result:!1,reason:"Invalid public key"}:A.validate()?A.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},i.prototype.getPublic=function(A,e){return"string"==typeof A&&(e=A,A=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,A):this.pub},i.prototype.getPrivate=function(A){return"hex"===A?this.priv.toString(16,2):this.priv},i.prototype._importPrivate=function(A,e){this.priv=new n(A,e||16),this.priv=this.priv.umod(this.ec.curve.n)},i.prototype._importPublic=function(A,e){if(A.x||A.y)return"mont"===this.ec.curve.type?r(A.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||r(A.x&&A.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(A.x,A.y));this.pub=this.ec.curve.decodePoint(A,e)},i.prototype.derive=function(A){return A.validate()||r(A.validate(),"public point not validated"),A.mul(this.priv).getX()},i.prototype.sign=function(A,e,t){return this.ec.sign(A,this,e,t)},i.prototype.verify=function(A,e){return this.ec.verify(A,e,this)},i.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"}},{"bn.js":"VXic","../utils":"F8Ez"}],g9QR:[function(A,e,t){"use strict";var n=A("bn.js"),r=A("../utils"),i=r.assert;function o(A,e){if(A instanceof o)return A;this._importDER(A,e)||(i(A.r&&A.s,"Signature without r or s"),this.r=new n(A.r,16),this.s=new n(A.s,16),void 0===A.recoveryParam?this.recoveryParam=null:this.recoveryParam=A.recoveryParam)}function a(){this.place=0}function s(A,e){var t=A[e.place++];if(!(128&t))return t;var n=15&t;if(0===n||n>4)return!1;for(var r=0,i=0,o=e.place;i<n;i++,o++)r<<=8,r|=A[o],r>>>=0;return!(r<=127)&&(e.place=o,r)}function g(A){for(var e=0,t=A.length-1;!A[e]&&!(128&A[e+1])&&e<t;)e++;return 0===e?A:A.slice(e)}function I(A,e){if(e<128)A.push(e);else{var t=1+(Math.log(e)/Math.LN2>>>3);for(A.push(128|t);--t;)A.push(e>>>(t<<3)&255);A.push(e)}}e.exports=o,o.prototype._importDER=function(A,e){A=r.toArray(A,e);var t=new a;if(48!==A[t.place++])return!1;var i=s(A,t);if(!1===i)return!1;if(i+t.place!==A.length)return!1;if(2!==A[t.place++])return!1;var o=s(A,t);if(!1===o)return!1;var g=A.slice(t.place,o+t.place);if(t.place+=o,2!==A[t.place++])return!1;var I=s(A,t);if(!1===I)return!1;if(A.length!==I+t.place)return!1;var u=A.slice(t.place,I+t.place);if(0===g[0]){if(!(128&g[1]))return!1;g=g.slice(1)}if(0===u[0]){if(!(128&u[1]))return!1;u=u.slice(1)}return this.r=new n(g),this.s=new n(u),this.recoveryParam=null,!0},o.prototype.toDER=function(A){var e=this.r.toArray(),t=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&t[0]&&(t=[0].concat(t)),e=g(e),t=g(t);!(t[0]||128&t[1]);)t=t.slice(1);var n=[2];I(n,e.length),(n=n.concat(e)).push(2),I(n,t.length);var i=n.concat(t),o=[48];return I(o,i.length),o=o.concat(i),r.encode(o,A)}},{"bn.js":"VXic","../utils":"F8Ez"}],Ly8t:[function(A,e,t){"use strict";var n=A("bn.js"),r=A("hmac-drbg"),i=A("../utils"),o=A("../curves"),a=A("brorand"),s=i.assert,g=A("./key"),I=A("./signature");function u(A){if(!(this instanceof u))return new u(A);"string"==typeof A&&(s(Object.prototype.hasOwnProperty.call(o,A),"Unknown curve "+A),A=o[A]),A instanceof o.PresetCurve&&(A={curve:A}),this.curve=A.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=A.curve.g,this.g.precompute(A.curve.n.bitLength()+1),this.hash=A.hash||A.curve.hash}e.exports=u,u.prototype.keyPair=function(A){return new g(this,A)},u.prototype.keyFromPrivate=function(A,e){return g.fromPrivate(this,A,e)},u.prototype.keyFromPublic=function(A,e){return g.fromPublic(this,A,e)},u.prototype.genKeyPair=function(A){A||(A={});for(var e=new r({hash:this.hash,pers:A.pers,persEnc:A.persEnc||"utf8",entropy:A.entropy||a(this.hash.hmacStrength),entropyEnc:A.entropy&&A.entropyEnc||"utf8",nonce:this.n.toArray()}),t=this.n.byteLength(),i=this.n.sub(new n(2));;){var o=new n(e.generate(t));if(!(o.cmp(i)>0))return o.iaddn(1),this.keyFromPrivate(o)}},u.prototype._truncateToN=function(A,e){var t=8*A.byteLength()-this.n.bitLength();return t>0&&(A=A.ushrn(t)),!e&&A.cmp(this.n)>=0?A.sub(this.n):A},u.prototype.sign=function(A,e,t,i){"object"==typeof t&&(i=t,t=null),i||(i={}),e=this.keyFromPrivate(e,t),A=this._truncateToN(new n(A,16));for(var o=this.n.byteLength(),a=e.getPrivate().toArray("be",o),s=A.toArray("be",o),g=new r({hash:this.hash,entropy:a,nonce:s,pers:i.pers,persEnc:i.persEnc||"utf8"}),u=this.n.sub(new n(1)),f=0;;f++){var l=i.k?i.k(f):new n(g.generate(this.n.byteLength()));if(!((l=this._truncateToN(l,!0)).cmpn(1)<=0||l.cmp(u)>=0)){var B=this.g.mul(l);if(!B.isInfinity()){var E=B.getX(),c=E.umod(this.n);if(0!==c.cmpn(0)){var d=l.invm(this.n).mul(c.mul(e.getPrivate()).iadd(A));if(0!==(d=d.umod(this.n)).cmpn(0)){var C=(B.getY().isOdd()?1:0)|(0!==E.cmp(c)?2:0);return i.canonical&&d.cmp(this.nh)>0&&(d=this.n.sub(d),C^=1),new I({r:c,s:d,recoveryParam:C})}}}}}},u.prototype.verify=function(A,e,t,r){A=this._truncateToN(new n(A,16)),t=this.keyFromPublic(t,r);var i=(e=new I(e,"hex")).r,o=e.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var a,s=o.invm(this.n),g=s.mul(A).umod(this.n),u=s.mul(i).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(g,t.getPublic(),u)).isInfinity()&&a.eqXToP(i):!(a=this.g.mulAdd(g,t.getPublic(),u)).isInfinity()&&0===a.getX().umod(this.n).cmp(i)},u.prototype.recoverPubKey=function(A,e,t,r){s((3&t)===t,"The recovery param is more than two bits"),e=new I(e,r);var i=this.n,o=new n(A),a=e.r,g=e.s,u=1&t,f=t>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&f)throw new Error("Unable to find sencond key candinate");a=f?this.curve.pointFromX(a.add(this.curve.n),u):this.curve.pointFromX(a,u);var l=e.r.invm(i),B=i.sub(o).mul(l).umod(i),E=g.mul(l).umod(i);return this.g.mulAdd(B,a,E)},u.prototype.getKeyRecoveryParam=function(A,e,t,n){if(null!==(e=new I(e,n)).recoveryParam)return e.recoveryParam;for(var r=0;r<4;r++){var i;try{i=this.recoverPubKey(A,e,r)}catch(A){continue}if(i.eq(t))return r}throw new Error("Unable to find valid recovery factor")}},{"bn.js":"VXic","hmac-drbg":"vdhc","../utils":"F8Ez","../curves":"1Exa",brorand:"e03B","./key":"4YPk","./signature":"g9QR"}],mg26:[function(A,e,t){"use strict";var n=A("../utils"),r=n.assert,i=n.parseBytes,o=n.cachedProperty;function a(A,e){this.eddsa=A,this._secret=i(e.secret),A.isPoint(e.pub)?this._pub=e.pub:this._pubBytes=i(e.pub)}a.fromPublic=function(A,e){return e instanceof a?e:new a(A,{pub:e})},a.fromSecret=function(A,e){return e instanceof a?e:new a(A,{secret:e})},a.prototype.secret=function(){return this._secret},o(a,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),o(a,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),o(a,"privBytes",function(){var A=this.eddsa,e=this.hash(),t=A.encodingLength-1,n=e.slice(0,A.encodingLength);return n[0]&=248,n[t]&=127,n[t]|=64,n}),o(a,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),o(a,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),o(a,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),a.prototype.sign=function(A){return r(this._secret,"KeyPair can only verify"),this.eddsa.sign(A,this)},a.prototype.verify=function(A,e){return this.eddsa.verify(A,e,this)},a.prototype.getSecret=function(A){return r(this._secret,"KeyPair is public only"),n.encode(this.secret(),A)},a.prototype.getPublic=function(A){return n.encode(this.pubBytes(),A)},e.exports=a},{"../utils":"F8Ez"}],p5it:[function(A,e,t){"use strict";var n=A("bn.js"),r=A("../utils"),i=r.assert,o=r.cachedProperty,a=r.parseBytes;function s(A,e){this.eddsa=A,"object"!=typeof e&&(e=a(e)),Array.isArray(e)&&(e={R:e.slice(0,A.encodingLength),S:e.slice(A.encodingLength)}),i(e.R&&e.S,"Signature without R or S"),A.isPoint(e.R)&&(this._R=e.R),e.S instanceof n&&(this._S=e.S),this._Rencoded=Array.isArray(e.R)?e.R:e.Rencoded,this._Sencoded=Array.isArray(e.S)?e.S:e.Sencoded}o(s,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),o(s,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),o(s,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),o(s,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),s.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},s.prototype.toHex=function(){return r.encode(this.toBytes(),"hex").toUpperCase()},e.exports=s},{"bn.js":"VXic","../utils":"F8Ez"}],a3LM:[function(A,e,t){"use strict";var n=A("hash.js"),r=A("../curves"),i=A("../utils"),o=i.assert,a=i.parseBytes,s=A("./key"),g=A("./signature");function I(A){if(o("ed25519"===A,"only tested with ed25519 so far"),!(this instanceof I))return new I(A);A=r[A].curve,this.curve=A,this.g=A.g,this.g.precompute(A.n.bitLength()+1),this.pointClass=A.point().constructor,this.encodingLength=Math.ceil(A.n.bitLength()/8),this.hash=n.sha512}e.exports=I,I.prototype.sign=function(A,e){A=a(A);var t=this.keyFromSecret(e),n=this.hashInt(t.messagePrefix(),A),r=this.g.mul(n),i=this.encodePoint(r),o=this.hashInt(i,t.pubBytes(),A).mul(t.priv()),s=n.add(o).umod(this.curve.n);return this.makeSignature({R:r,S:s,Rencoded:i})},I.prototype.verify=function(A,e,t){A=a(A),e=this.makeSignature(e);var n=this.keyFromPublic(t),r=this.hashInt(e.Rencoded(),n.pubBytes(),A),i=this.g.mul(e.S());return e.R().add(n.pub().mul(r)).eq(i)},I.prototype.hashInt=function(){for(var A=this.hash(),e=0;e<arguments.length;e++)A.update(arguments[e]);return i.intFromLE(A.digest()).umod(this.curve.n)},I.prototype.keyFromPublic=function(A){return s.fromPublic(this,A)},I.prototype.keyFromSecret=function(A){return s.fromSecret(this,A)},I.prototype.makeSignature=function(A){return A instanceof g?A:new g(this,A)},I.prototype.encodePoint=function(A){var e=A.getY().toArray("le",this.encodingLength);return e[this.encodingLength-1]|=A.getX().isOdd()?128:0,e},I.prototype.decodePoint=function(A){var e=(A=i.parseBytes(A)).length-1,t=A.slice(0,e).concat(-129&A[e]),n=0!=(128&A[e]),r=i.intFromLE(t);return this.curve.pointFromY(r,n)},I.prototype.encodeInt=function(A){return A.toArray("le",this.encodingLength)},I.prototype.decodeInt=function(A){return i.intFromLE(A)},I.prototype.isPoint=function(A){return A instanceof this.pointClass}},{"hash.js":"fVGI","../curves":"1Exa","../utils":"F8Ez","./key":"mg26","./signature":"p5it"}],xha3:[function(A,e,t){"use strict";var n=t;n.version=A("../package.json").version,n.utils=A("./elliptic/utils"),n.rand=A("brorand"),n.curve=A("./elliptic/curve"),n.curves=A("./elliptic/curves"),n.ec=A("./elliptic/ec"),n.eddsa=A("./elliptic/eddsa")},{"../package.json":"bNi7","./elliptic/utils":"F8Ez",brorand:"e03B","./elliptic/curve":"P4Ml","./elliptic/curves":"1Exa","./elliptic/ec":"Ly8t","./elliptic/eddsa":"a3LM"}],rE8J:[function(A,e,t){A("process");var n,r=A("process"),i=A("buffer"),o=i.Buffer,a={};for(n in i)i.hasOwnProperty(n)&&"SlowBuffer"!==n&&"Buffer"!==n&&(a[n]=i[n]);var s=a.Buffer={};for(n in o)o.hasOwnProperty(n)&&"allocUnsafe"!==n&&"allocUnsafeSlow"!==n&&(s[n]=o[n]);if(a.Buffer.prototype=o.prototype,s.from&&s.from!==Uint8Array.from||(s.from=function(A,e,t){if("number"==typeof A)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof A);if(A&&void 0===A.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof A);return o(A,e,t)}),s.alloc||(s.alloc=function(A,e,t){if("number"!=typeof A)throw new TypeError('The "size" argument must be of type number. Received type '+typeof A);if(A<0||A>=2*(1<<30))throw new RangeError('The value "'+A+'" is invalid for option "size"');var n=o(A);return e&&0!==e.length?"string"==typeof t?n.fill(e,t):n.fill(e):n.fill(0),n}),!a.kStringMaxLength)try{a.kStringMaxLength=r.binding("buffer").kStringMaxLength}catch(g){}a.constants||(a.constants={MAX_LENGTH:a.kMaxLength},a.kStringMaxLength&&(a.constants.MAX_STRING_LENGTH=a.kStringMaxLength)),e.exports=a},{buffer:"dskh",process:"pBGv"}],BhoU:[function(A,e,t){"use strict";const n=A("inherits");function r(A){this._reporterState={obj:null,path:[],options:A||{},errors:[]}}function i(A,e){this.path=A,this.rethrow(e)}t.Reporter=r,r.prototype.isError=function(A){return A instanceof i},r.prototype.save=function(){const A=this._reporterState;return{obj:A.obj,pathLen:A.path.length}},r.prototype.restore=function(A){const e=this._reporterState;e.obj=A.obj,e.path=e.path.slice(0,A.pathLen)},r.prototype.enterKey=function(A){return this._reporterState.path.push(A)},r.prototype.exitKey=function(A){const e=this._reporterState;e.path=e.path.slice(0,A-1)},r.prototype.leaveKey=function(A,e,t){const n=this._reporterState;this.exitKey(A),null!==n.obj&&(n.obj[e]=t)},r.prototype.path=function(){return this._reporterState.path.join("/")},r.prototype.enterObject=function(){const A=this._reporterState,e=A.obj;return A.obj={},e},r.prototype.leaveObject=function(A){const e=this._reporterState,t=e.obj;return e.obj=A,t},r.prototype.error=function(A){let e;const t=this._reporterState,n=A instanceof i;if(e=n?A:new i(t.path.map(function(A){return"["+JSON.stringify(A)+"]"}).join(""),A.message||A,A.stack),!t.options.partial)throw e;return n||t.errors.push(e),e},r.prototype.wrapResult=function(A){const e=this._reporterState;return e.options.partial?{result:this.isError(A)?null:A,errors:e.errors}:A},n(i,Error),i.prototype.rethrow=function(A){if(this.message=A+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,i),!this.stack)try{throw new Error(this.message)}catch(r){this.stack=r.stack}return this}},{inherits:"4Bm0"}],JJX4:[function(A,e,t){"use strict";const n=A("inherits"),r=A("../base/reporter").Reporter,i=A("safer-buffer").Buffer;function o(A,e){r.call(this,e),i.isBuffer(A)?(this.base=A,this.offset=0,this.length=A.length):this.error("Input not Buffer")}function a(A,e){if(Array.isArray(A))this.length=0,this.value=A.map(function(A){return a.isEncoderBuffer(A)||(A=new a(A,e)),this.length+=A.length,A},this);else if("number"==typeof A){if(!(0<=A&&A<=255))return e.error("non-byte EncoderBuffer value");this.value=A,this.length=1}else if("string"==typeof A)this.value=A,this.length=i.byteLength(A);else{if(!i.isBuffer(A))return e.error("Unsupported type: "+typeof A);this.value=A,this.length=A.length}}n(o,r),t.DecoderBuffer=o,o.isDecoderBuffer=function(A){return A instanceof o||"object"==typeof A&&i.isBuffer(A.base)&&"DecoderBuffer"===A.constructor.name&&"number"==typeof A.offset&&"number"==typeof A.length&&"function"==typeof A.save&&"function"==typeof A.restore&&"function"==typeof A.isEmpty&&"function"==typeof A.readUInt8&&"function"==typeof A.skip&&"function"==typeof A.raw},o.prototype.save=function(){return{offset:this.offset,reporter:r.prototype.save.call(this)}},o.prototype.restore=function(A){const e=new o(this.base);return e.offset=A.offset,e.length=this.offset,this.offset=A.offset,r.prototype.restore.call(this,A.reporter),e},o.prototype.isEmpty=function(){return this.offset===this.length},o.prototype.readUInt8=function(A){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(A||"DecoderBuffer overrun")},o.prototype.skip=function(A,e){if(!(this.offset+A<=this.length))return this.error(e||"DecoderBuffer overrun");const t=new o(this.base);return t._reporterState=this._reporterState,t.offset=this.offset,t.length=this.offset+A,this.offset+=A,t},o.prototype.raw=function(A){return this.base.slice(A?A.offset:this.offset,this.length)},t.EncoderBuffer=a,a.isEncoderBuffer=function(A){return A instanceof a||"object"==typeof A&&"EncoderBuffer"===A.constructor.name&&"number"==typeof A.length&&"function"==typeof A.join},a.prototype.join=function(A,e){return A||(A=i.alloc(this.length)),e||(e=0),0===this.length?A:(Array.isArray(this.value)?this.value.forEach(function(t){t.join(A,e),e+=t.length}):("number"==typeof this.value?A[e]=this.value:"string"==typeof this.value?A.write(this.value,e):i.isBuffer(this.value)&&this.value.copy(A,e),e+=this.length),A)}},{inherits:"4Bm0","../base/reporter":"BhoU","safer-buffer":"rE8J"}],"5k+Z":[function(A,e,t){"use strict";const n=A("../base/reporter").Reporter,r=A("../base/buffer").EncoderBuffer,i=A("../base/buffer").DecoderBuffer,o=A("minimalistic-assert"),a=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],s=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(a);function g(A,e,t){const n={};this._baseState=n,n.name=t,n.enc=A,n.parent=e||null,n.children=null,n.tag=null,n.args=null,n.reverseArgs=null,n.choice=null,n.optional=!1,n.any=!1,n.obj=!1,n.use=null,n.useDecoder=null,n.key=null,n.default=null,n.explicit=null,n.implicit=null,n.contains=null,n.parent||(n.children=[],this._wrap())}e.exports=g;const I=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];g.prototype.clone=function(){const A=this._baseState,e={};I.forEach(function(t){e[t]=A[t]});const t=new this.constructor(e.parent);return t._baseState=e,t},g.prototype._wrap=function(){const A=this._baseState;s.forEach(function(e){this[e]=function(){const t=new this.constructor(this);return A.children.push(t),t[e].apply(t,arguments)}},this)},g.prototype._init=function(A){const e=this._baseState;o(null===e.parent),A.call(this),e.children=e.children.filter(function(A){return A._baseState.parent===this},this),o.equal(e.children.length,1,"Root node can have only one child")},g.prototype._useArgs=function(A){const e=this._baseState,t=A.filter(function(A){return A instanceof this.constructor},this);A=A.filter(function(A){return!(A instanceof this.constructor)},this),0!==t.length&&(o(null===e.children),e.children=t,t.forEach(function(A){A._baseState.parent=this},this)),0!==A.length&&(o(null===e.args),e.args=A,e.reverseArgs=A.map(function(A){if("object"!=typeof A||A.constructor!==Object)return A;const e={};return Object.keys(A).forEach(function(t){t==(0|t)&&(t|=0);const n=A[t];e[n]=t}),e}))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach(function(A){g.prototype[A]=function(){const e=this._baseState;throw new Error(A+" not implemented for encoding: "+e.enc)}}),a.forEach(function(A){g.prototype[A]=function(){const e=this._baseState,t=Array.prototype.slice.call(arguments);return o(null===e.tag),e.tag=A,this._useArgs(t),this}}),g.prototype.use=function(A){o(A);const e=this._baseState;return o(null===e.use),e.use=A,this},g.prototype.optional=function(){return this._baseState.optional=!0,this},g.prototype.def=function(A){const e=this._baseState;return o(null===e.default),e.default=A,e.optional=!0,this},g.prototype.explicit=function(A){const e=this._baseState;return o(null===e.explicit&&null===e.implicit),e.explicit=A,this},g.prototype.implicit=function(A){const e=this._baseState;return o(null===e.explicit&&null===e.implicit),e.implicit=A,this},g.prototype.obj=function(){const A=this._baseState,e=Array.prototype.slice.call(arguments);return A.obj=!0,0!==e.length&&this._useArgs(e),this},g.prototype.key=function(A){const e=this._baseState;return o(null===e.key),e.key=A,this},g.prototype.any=function(){return this._baseState.any=!0,this},g.prototype.choice=function(A){const e=this._baseState;return o(null===e.choice),e.choice=A,this._useArgs(Object.keys(A).map(function(e){return A[e]})),this},g.prototype.contains=function(A){const e=this._baseState;return o(null===e.use),e.contains=A,this},g.prototype._decode=function(A,e){const t=this._baseState;if(null===t.parent)return A.wrapResult(t.children[0]._decode(A,e));let n,r=t.default,o=!0,a=null;if(null!==t.key&&(a=A.enterKey(t.key)),t.optional){let n=null;if(null!==t.explicit?n=t.explicit:null!==t.implicit?n=t.implicit:null!==t.tag&&(n=t.tag),null!==n||t.any){if(o=this._peekTag(A,n,t.any),A.isError(o))return o}else{const n=A.save();try{null===t.choice?this._decodeGeneric(t.tag,A,e):this._decodeChoice(A,e),o=!0}catch(I){o=!1}A.restore(n)}}if(t.obj&&o&&(n=A.enterObject()),o){if(null!==t.explicit){const e=this._decodeTag(A,t.explicit);if(A.isError(e))return e;A=e}const n=A.offset;if(null===t.use&&null===t.choice){let e;t.any&&(e=A.save());const n=this._decodeTag(A,null!==t.implicit?t.implicit:t.tag,t.any);if(A.isError(n))return n;t.any?r=A.raw(e):A=n}if(e&&e.track&&null!==t.tag&&e.track(A.path(),n,A.length,"tagged"),e&&e.track&&null!==t.tag&&e.track(A.path(),A.offset,A.length,"content"),t.any||(r=null===t.choice?this._decodeGeneric(t.tag,A,e):this._decodeChoice(A,e)),A.isError(r))return r;if(t.any||null!==t.choice||null===t.children||t.children.forEach(function(t){t._decode(A,e)}),t.contains&&("octstr"===t.tag||"bitstr"===t.tag)){const n=new i(r);r=this._getUse(t.contains,A._reporterState.obj)._decode(n,e)}}return t.obj&&o&&(r=A.leaveObject(n)),null===t.key||null===r&&!0!==o?null!==a&&A.exitKey(a):A.leaveKey(a,t.key,r),r},g.prototype._decodeGeneric=function(A,e,t){const n=this._baseState;return"seq"===A||"set"===A?null:"seqof"===A||"setof"===A?this._decodeList(e,A,n.args[0],t):/str$/.test(A)?this._decodeStr(e,A,t):"objid"===A&&n.args?this._decodeObjid(e,n.args[0],n.args[1],t):"objid"===A?this._decodeObjid(e,null,null,t):"gentime"===A||"utctime"===A?this._decodeTime(e,A,t):"null_"===A?this._decodeNull(e,t):"bool"===A?this._decodeBool(e,t):"objDesc"===A?this._decodeStr(e,A,t):"int"===A||"enum"===A?this._decodeInt(e,n.args&&n.args[0],t):null!==n.use?this._getUse(n.use,e._reporterState.obj)._decode(e,t):e.error("unknown tag: "+A)},g.prototype._getUse=function(A,e){const t=this._baseState;return t.useDecoder=this._use(A,e),o(null===t.useDecoder._baseState.parent),t.useDecoder=t.useDecoder._baseState.children[0],t.implicit!==t.useDecoder._baseState.implicit&&(t.useDecoder=t.useDecoder.clone(),t.useDecoder._baseState.implicit=t.implicit),t.useDecoder},g.prototype._decodeChoice=function(A,e){const t=this._baseState;let n=null,r=!1;return Object.keys(t.choice).some(function(i){const o=A.save(),a=t.choice[i];try{const t=a._decode(A,e);if(A.isError(t))return!1;n={type:i,value:t},r=!0}catch(I){return A.restore(o),!1}return!0},this),r?n:A.error("Choice not matched")},g.prototype._createEncoderBuffer=function(A){return new r(A,this.reporter)},g.prototype._encode=function(A,e,t){const n=this._baseState;if(null!==n.default&&n.default===A)return;const r=this._encodeValue(A,e,t);return void 0===r||this._skipDefault(r,e,t)?void 0:r},g.prototype._encodeValue=function(A,e,t){const r=this._baseState;if(null===r.parent)return r.children[0]._encode(A,e||new n);let i=null;if(this.reporter=e,r.optional&&void 0===A){if(null===r.default)return;A=r.default}let o=null,a=!1;if(r.any)i=this._createEncoderBuffer(A);else if(r.choice)i=this._encodeChoice(A,e);else if(r.contains)o=this._getUse(r.contains,t)._encode(A,e),a=!0;else if(r.children)o=r.children.map(function(t){if("null_"===t._baseState.tag)return t._encode(null,e,A);if(null===t._baseState.key)return e.error("Child should have a key");const n=e.enterKey(t._baseState.key);if("object"!=typeof A)return e.error("Child expected, but input is not object");const r=t._encode(A[t._baseState.key],e,A);return e.leaveKey(n),r},this).filter(function(A){return A}),o=this._createEncoderBuffer(o);else if("seqof"===r.tag||"setof"===r.tag){if(!r.args||1!==r.args.length)return e.error("Too many args for : "+r.tag);if(!Array.isArray(A))return e.error("seqof/setof, but data is not Array");const t=this.clone();t._baseState.implicit=null,o=this._createEncoderBuffer(A.map(function(t){const n=this._baseState;return this._getUse(n.args[0],A)._encode(t,e)},t))}else null!==r.use?i=this._getUse(r.use,t)._encode(A,e):(o=this._encodePrimitive(r.tag,A),a=!0);if(!r.any&&null===r.choice){const A=null!==r.implicit?r.implicit:r.tag,t=null===r.implicit?"universal":"context";null===A?null===r.use&&e.error("Tag could be omitted only for .use()"):null===r.use&&(i=this._encodeComposite(A,a,t,o))}return null!==r.explicit&&(i=this._encodeComposite(r.explicit,!1,"context",i)),i},g.prototype._encodeChoice=function(A,e){const t=this._baseState,n=t.choice[A.type];return n||o(!1,A.type+" not found in "+JSON.stringify(Object.keys(t.choice))),n._encode(A.value,e)},g.prototype._encodePrimitive=function(A,e){const t=this._baseState;if(/str$/.test(A))return this._encodeStr(e,A);if("objid"===A&&t.args)return this._encodeObjid(e,t.reverseArgs[0],t.args[1]);if("objid"===A)return this._encodeObjid(e,null,null);if("gentime"===A||"utctime"===A)return this._encodeTime(e,A);if("null_"===A)return this._encodeNull();if("int"===A||"enum"===A)return this._encodeInt(e,t.args&&t.reverseArgs[0]);if("bool"===A)return this._encodeBool(e);if("objDesc"===A)return this._encodeStr(e,A);throw new Error("Unsupported tag: "+A)},g.prototype._isNumstr=function(A){return/^[0-9 ]*$/.test(A)},g.prototype._isPrintstr=function(A){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(A)}},{"../base/reporter":"BhoU","../base/buffer":"JJX4","minimalistic-assert":"MpuC"}],psPF:[function(A,e,t){"use strict";function n(A){const e={};return Object.keys(A).forEach(function(t){(0|t)==t&&(t|=0);const n=A[t];e[n]=t}),e}t.tagClass={0:"universal",1:"application",2:"context",3:"private"},t.tagClassByName=n(t.tagClass),t.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},t.tagByName=n(t.tag)},{}],"5adT":[function(A,e,t){"use strict";const n=A("inherits"),r=A("safer-buffer").Buffer,i=A("../base/node"),o=A("../constants/der");function a(A){this.enc="der",this.name=A.name,this.entity=A,this.tree=new s,this.tree._init(A.body)}function s(A){i.call(this,"der",A)}function g(A){return A<10?"0"+A:A}function I(A,e,t,n){let r;if("seqof"===A?A="seq":"setof"===A&&(A="set"),o.tagByName.hasOwnProperty(A))r=o.tagByName[A];else{if("number"!=typeof A||(0|A)!==A)return n.error("Unknown tag: "+A);r=A}return r>=31?n.error("Multi-octet tag encoding unsupported"):(e||(r|=32),r|=o.tagClassByName[t||"universal"]<<6)}e.exports=a,a.prototype.encode=function(A,e){return this.tree._encode(A,e).join()},n(s,i),s.prototype._encodeComposite=function(A,e,t,n){const i=I(A,e,t,this.reporter);if(n.length<128){const A=r.alloc(2);return A[0]=i,A[1]=n.length,this._createEncoderBuffer([A,n])}let o=1;for(let r=n.length;r>=256;r>>=8)o++;const a=r.alloc(2+o);a[0]=i,a[1]=128|o;for(let r=1+o,s=n.length;s>0;r--,s>>=8)a[r]=255&s;return this._createEncoderBuffer([a,n])},s.prototype._encodeStr=function(A,e){if("bitstr"===e)return this._createEncoderBuffer([0|A.unused,A.data]);if("bmpstr"===e){const e=r.alloc(2*A.length);for(let t=0;t<A.length;t++)e.writeUInt16BE(A.charCodeAt(t),2*t);return this._createEncoderBuffer(e)}return"numstr"===e?this._isNumstr(A)?this._createEncoderBuffer(A):this.reporter.error("Encoding of string type: numstr supports only digits and space"):"printstr"===e?this._isPrintstr(A)?this._createEncoderBuffer(A):this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"):/str$/.test(e)?this._createEncoderBuffer(A):"objDesc"===e?this._createEncoderBuffer(A):this.reporter.error("Encoding of string type: "+e+" unsupported")},s.prototype._encodeObjid=function(A,e,t){if("string"==typeof A){if(!e)return this.reporter.error("string objid given, but no values map found");if(!e.hasOwnProperty(A))return this.reporter.error("objid not found in values map");A=e[A].split(/[\s.]+/g);for(let e=0;e<A.length;e++)A[e]|=0}else if(Array.isArray(A)){A=A.slice();for(let e=0;e<A.length;e++)A[e]|=0}if(!Array.isArray(A))return this.reporter.error("objid() should be either array or string, got: "+JSON.stringify(A));if(!t){if(A[1]>=40)return this.reporter.error("Second objid identifier OOB");A.splice(0,2,40*A[0]+A[1])}let n=0;for(let r=0;r<A.length;r++){let e=A[r];for(n++;e>=128;e>>=7)n++}const i=r.alloc(n);let o=i.length-1;for(let r=A.length-1;r>=0;r--){let e=A[r];for(i[o--]=127&e;(e>>=7)>0;)i[o--]=128|127&e}return this._createEncoderBuffer(i)},s.prototype._encodeTime=function(A,e){let t;const n=new Date(A);return"gentime"===e?t=[g(n.getUTCFullYear()),g(n.getUTCMonth()+1),g(n.getUTCDate()),g(n.getUTCHours()),g(n.getUTCMinutes()),g(n.getUTCSeconds()),"Z"].join(""):"utctime"===e?t=[g(n.getUTCFullYear()%100),g(n.getUTCMonth()+1),g(n.getUTCDate()),g(n.getUTCHours()),g(n.getUTCMinutes()),g(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+e+" time is not supported yet"),this._encodeStr(t,"octstr")},s.prototype._encodeNull=function(){return this._createEncoderBuffer("")},s.prototype._encodeInt=function(A,e){if("string"==typeof A){if(!e)return this.reporter.error("String int or enum given, but no values map");if(!e.hasOwnProperty(A))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(A));A=e[A]}if("number"!=typeof A&&!r.isBuffer(A)){const e=A.toArray();!A.sign&&128&e[0]&&e.unshift(0),A=r.from(e)}if(r.isBuffer(A)){let e=A.length;0===A.length&&e++;const t=r.alloc(e);return A.copy(t),0===A.length&&(t[0]=0),this._createEncoderBuffer(t)}if(A<128)return this._createEncoderBuffer(A);if(A<256)return this._createEncoderBuffer([0,A]);let t=1;for(let r=A;r>=256;r>>=8)t++;const n=new Array(t);for(let r=n.length-1;r>=0;r--)n[r]=255&A,A>>=8;return 128&n[0]&&n.unshift(0),this._createEncoderBuffer(r.from(n))},s.prototype._encodeBool=function(A){return this._createEncoderBuffer(A?255:0)},s.prototype._use=function(A,e){return"function"==typeof A&&(A=A(e)),A._getEncoder("der").tree},s.prototype._skipDefault=function(A,e,t){const n=this._baseState;let r;if(null===n.default)return!1;const i=A.join();if(void 0===n.defaultBuffer&&(n.defaultBuffer=this._encodeValue(n.default,e,t).join()),i.length!==n.defaultBuffer.length)return!1;for(r=0;r<i.length;r++)if(i[r]!==n.defaultBuffer[r])return!1;return!0}},{inherits:"4Bm0","safer-buffer":"rE8J","../base/node":"5k+Z","../constants/der":"psPF"}],Yqnf:[function(A,e,t){"use strict";const n=A("inherits"),r=A("./der");function i(A){r.call(this,A),this.enc="pem"}n(i,r),e.exports=i,i.prototype.encode=function(A,e){const t=r.prototype.encode.call(this,A).toString("base64"),n=["-----BEGIN "+e.label+"-----"];for(let r=0;r<t.length;r+=64)n.push(t.slice(r,r+64));return n.push("-----END "+e.label+"-----"),n.join("\n")}},{inherits:"4Bm0","./der":"5adT"}],YGCS:[function(A,e,t){"use strict";const n=t;n.der=A("./der"),n.pem=A("./pem")},{"./der":"5adT","./pem":"Yqnf"}],Hd0I:[function(A,e,t){"use strict";const n=A("inherits"),r=A("bn.js"),i=A("../base/buffer").DecoderBuffer,o=A("../base/node"),a=A("../constants/der");function s(A){this.enc="der",this.name=A.name,this.entity=A,this.tree=new g,this.tree._init(A.body)}function g(A){o.call(this,"der",A)}function I(A,e){let t=A.readUInt8(e);if(A.isError(t))return t;const n=a.tagClass[t>>6],r=0==(32&t);if(31==(31&t)){let n=t;for(t=0;128==(128&n);){if(n=A.readUInt8(e),A.isError(n))return n;t<<=7,t|=127&n}}else t&=31;return{cls:n,primitive:r,tag:t,tagStr:a.tag[t]}}function u(A,e,t){let n=A.readUInt8(t);if(A.isError(n))return n;if(!e&&128===n)return null;if(0==(128&n))return n;const r=127&n;if(r>4)return A.error("length octect is too long");n=0;for(let i=0;i<r;i++){n<<=8;const e=A.readUInt8(t);if(A.isError(e))return e;n|=e}return n}e.exports=s,s.prototype.decode=function(A,e){return i.isDecoderBuffer(A)||(A=new i(A,e)),this.tree._decode(A,e)},n(g,o),g.prototype._peekTag=function(A,e,t){if(A.isEmpty())return!1;const n=A.save(),r=I(A,'Failed to peek tag: "'+e+'"');return A.isError(r)?r:(A.restore(n),r.tag===e||r.tagStr===e||r.tagStr+"of"===e||t)},g.prototype._decodeTag=function(A,e,t){const n=I(A,'Failed to decode tag of "'+e+'"');if(A.isError(n))return n;let r=u(A,n.primitive,'Failed to get length of "'+e+'"');if(A.isError(r))return r;if(!t&&n.tag!==e&&n.tagStr!==e&&n.tagStr+"of"!==e)return A.error('Failed to match tag: "'+e+'"');if(n.primitive||null!==r)return A.skip(r,'Failed to match body of: "'+e+'"');const i=A.save(),o=this._skipUntilEnd(A,'Failed to skip indefinite length body: "'+this.tag+'"');return A.isError(o)?o:(r=A.offset-i.offset,A.restore(i),A.skip(r,'Failed to match body of: "'+e+'"'))},g.prototype._skipUntilEnd=function(A,e){for(;;){const t=I(A,e);if(A.isError(t))return t;const n=u(A,t.primitive,e);if(A.isError(n))return n;let r;if(r=t.primitive||null!==n?A.skip(n):this._skipUntilEnd(A,e),A.isError(r))return r;if("end"===t.tagStr)break}},g.prototype._decodeList=function(A,e,t,n){const r=[];for(;!A.isEmpty();){const e=this._peekTag(A,"end");if(A.isError(e))return e;const i=t.decode(A,"der",n);if(A.isError(i)&&e)break;r.push(i)}return r},g.prototype._decodeStr=function(A,e){if("bitstr"===e){const e=A.readUInt8();return A.isError(e)?e:{unused:e,data:A.raw()}}if("bmpstr"===e){const e=A.raw();if(e.length%2==1)return A.error("Decoding of string type: bmpstr length mismatch");let t="";for(let A=0;A<e.length/2;A++)t+=String.fromCharCode(e.readUInt16BE(2*A));return t}if("numstr"===e){const e=A.raw().toString("ascii");return this._isNumstr(e)?e:A.error("Decoding of string type: numstr unsupported characters")}if("octstr"===e)return A.raw();if("objDesc"===e)return A.raw();if("printstr"===e){const e=A.raw().toString("ascii");return this._isPrintstr(e)?e:A.error("Decoding of string type: printstr unsupported characters")}return/str$/.test(e)?A.raw().toString():A.error("Decoding of string type: "+e+" unsupported")},g.prototype._decodeObjid=function(A,e,t){let n;const r=[];let i=0,o=0;for(;!A.isEmpty();)i<<=7,i|=127&(o=A.readUInt8()),0==(128&o)&&(r.push(i),i=0);128&o&&r.push(i);const a=r[0]/40|0,s=r[0]%40;if(n=t?r:[a,s].concat(r.slice(1)),e){let A=e[n.join(" ")];void 0===A&&(A=e[n.join(".")]),void 0!==A&&(n=A)}return n},g.prototype._decodeTime=function(A,e){const t=A.raw().toString();let n,r,i,o,a,s;if("gentime"===e)n=0|t.slice(0,4),r=0|t.slice(4,6),i=0|t.slice(6,8),o=0|t.slice(8,10),a=0|t.slice(10,12),s=0|t.slice(12,14);else{if("utctime"!==e)return A.error("Decoding "+e+" time is not supported yet");n=0|t.slice(0,2),r=0|t.slice(2,4),i=0|t.slice(4,6),o=0|t.slice(6,8),a=0|t.slice(8,10),s=0|t.slice(10,12),n=n<70?2e3+n:1900+n}return Date.UTC(n,r-1,i,o,a,s,0)},g.prototype._decodeNull=function(){return null},g.prototype._decodeBool=function(A){const e=A.readUInt8();return A.isError(e)?e:0!==e},g.prototype._decodeInt=function(A,e){const t=A.raw();let n=new r(t);return e&&(n=e[n.toString(10)]||n),n},g.prototype._use=function(A,e){return"function"==typeof A&&(A=A(e)),A._getDecoder("der").tree}},{inherits:"4Bm0","bn.js":"VXic","../base/buffer":"JJX4","../base/node":"5k+Z","../constants/der":"psPF"}],byl7:[function(A,e,t){"use strict";const n=A("inherits"),r=A("safer-buffer").Buffer,i=A("./der");function o(A){i.call(this,A),this.enc="pem"}n(o,i),e.exports=o,o.prototype.decode=function(A,e){const t=A.toString().split(/[\r\n]+/g),n=e.label.toUpperCase(),o=/^-----(BEGIN|END) ([^-]+)-----$/;let a=-1,s=-1;for(let r=0;r<t.length;r++){const A=t[r].match(o);if(null!==A&&A[2]===n){if(-1!==a){if("END"!==A[1])break;s=r;break}if("BEGIN"!==A[1])break;a=r}}if(-1===a||-1===s)throw new Error("PEM section not found for: "+n);const g=t.slice(a+1,s).join("");g.replace(/[^a-z0-9+/=]+/gi,"");const I=r.from(g,"base64");return i.prototype.decode.call(this,I,e)}},{inherits:"4Bm0","safer-buffer":"rE8J","./der":"Hd0I"}],Sn5H:[function(A,e,t){"use strict";const n=t;n.der=A("./der"),n.pem=A("./pem")},{"./der":"Hd0I","./pem":"byl7"}],gOko:[function(A,e,t){"use strict";const n=A("./encoders"),r=A("./decoders"),i=A("inherits");function o(A,e){this.name=A,this.body=e,this.decoders={},this.encoders={}}t.define=function(A,e){return new o(A,e)},o.prototype._createNamed=function(A){const e=this.name;function t(A){this._initNamed(A,e)}return i(t,A),t.prototype._initNamed=function(e,t){A.call(this,e,t)},new t(this)},o.prototype._getDecoder=function(A){return A=A||"der",this.decoders.hasOwnProperty(A)||(this.decoders[A]=this._createNamed(r[A])),this.decoders[A]},o.prototype.decode=function(A,e,t){return this._getDecoder(e).decode(A,t)},o.prototype._getEncoder=function(A){return A=A||"der",this.encoders.hasOwnProperty(A)||(this.encoders[A]=this._createNamed(n[A])),this.encoders[A]},o.prototype.encode=function(A,e,t){return this._getEncoder(e).encode(A,t)}},{"./encoders":"YGCS","./decoders":"Sn5H",inherits:"4Bm0"}],G4cX:[function(A,e,t){"use strict";const n=t;n.Reporter=A("./reporter").Reporter,n.DecoderBuffer=A("./buffer").DecoderBuffer,n.EncoderBuffer=A("./buffer").EncoderBuffer,n.Node=A("./node")},{"./reporter":"BhoU","./buffer":"JJX4","./node":"5k+Z"}],yW9S:[function(A,e,t){"use strict";const n=t;n._reverse=function(A){const e={};return Object.keys(A).forEach(function(t){(0|t)==t&&(t|=0);const n=A[t];e[n]=t}),e},n.der=A("./der")},{"./der":"psPF"}],NNmB:[function(A,e,t){"use strict";const n=t;n.bignum=A("bn.js"),n.define=A("./asn1/api").define,n.base=A("./asn1/base"),n.constants=A("./asn1/constants"),n.decoders=A("./asn1/decoders"),n.encoders=A("./asn1/encoders")},{"bn.js":"VXic","./asn1/api":"gOko","./asn1/base":"G4cX","./asn1/constants":"yW9S","./asn1/decoders":"Sn5H","./asn1/encoders":"YGCS"}],XsN6:[function(A,e,t){"use strict";var n=A("asn1.js"),r=n.define("Time",function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})}),i=n.define("AttributeTypeValue",function(){this.seq().obj(this.key("type").objid(),this.key("value").any())}),o=n.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())}),a=n.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(o),this.key("subjectPublicKey").bitstr())}),s=n.define("RelativeDistinguishedName",function(){this.setof(i)}),g=n.define("RDNSequence",function(){this.seqof(s)}),I=n.define("Name",function(){this.choice({rdnSequence:this.use(g)})}),u=n.define("Validity",function(){this.seq().obj(this.key("notBefore").use(r),this.key("notAfter").use(r))}),f=n.define("Extension",function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())}),l=n.define("TBSCertificate",function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(o),this.key("issuer").use(I),this.key("validity").use(u),this.key("subject").use(I),this.key("subjectPublicKeyInfo").use(a),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(f).optional())}),B=n.define("X509Certificate",function(){this.seq().obj(this.key("tbsCertificate").use(l),this.key("signatureAlgorithm").use(o),this.key("signatureValue").bitstr())});e.exports=B},{"asn1.js":"NNmB"}],hfk5:[function(A,e,t){"use strict";var n=A("asn1.js");t.certificate=A("./certificate");var r=n.define("RSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())});t.RSAPrivateKey=r;var i=n.define("RSAPublicKey",function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())});t.RSAPublicKey=i;var o=n.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(a),this.key("subjectPublicKey").bitstr())});t.PublicKey=o;var a=n.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())}),s=n.define("PrivateKeyInfo",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(a),this.key("subjectPrivateKey").octstr())});t.PrivateKey=s;var g=n.define("EncryptedPrivateKeyInfo",function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())});t.EncryptedPrivateKey=g;var I=n.define("DSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())});t.DSAPrivateKey=I,t.DSAparam=n.define("DSAparam",function(){this.int()});var u=n.define("ECPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(f),this.key("publicKey").optional().explicit(1).bitstr())});t.ECPrivateKey=u;var f=n.define("ECParameters",function(){this.choice({namedCurve:this.objid()})});t.signature=n.define("signature",function(){this.seq().obj(this.key("r").int(),this.key("s").int())})},{"asn1.js":"NNmB","./certificate":"XsN6"}],QyaF:[function(A,e,t){e.exports={"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}},{}],"Pyv/":[function(A,e,t){var n=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,r=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,o=A("evp_bytestokey"),a=A("browserify-aes"),s=A("safe-buffer").Buffer;e.exports=function(A,e){var t,g=A.toString(),I=g.match(n);if(I){var u="aes"+I[1],f=s.from(I[2],"hex"),l=s.from(I[3].replace(/[\r\n]/g,""),"base64"),B=o(e,f.slice(0,8),parseInt(I[1],10)).key,E=[],c=a.createDecipheriv(u,B,f);E.push(c.update(l)),E.push(c.final()),t=s.concat(E)}else{var d=g.match(i);t=s.from(d[2].replace(/[\r\n]/g,""),"base64")}return{tag:g.match(r)[1],data:t}}},{evp_bytestokey:"exU6","browserify-aes":"hisC","safe-buffer":"38Wu"}],"02g6":[function(A,e,t){var n=A("./asn1"),r=A("./aesid.json"),i=A("./fixProc"),o=A("browserify-aes"),a=A("pbkdf2"),s=A("safe-buffer").Buffer;function g(A){var e;"object"!=typeof A||s.isBuffer(A)||(e=A.passphrase,A=A.key),"string"==typeof A&&(A=s.from(A));var t,r,o=i(A,e),a=o.tag,g=o.data;switch(a){case"CERTIFICATE":r=n.certificate.decode(g,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(r||(r=n.PublicKey.decode(g,"der")),t=r.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return n.RSAPublicKey.decode(r.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return r.subjectPrivateKey=r.subjectPublicKey,{type:"ec",data:r};case"1.2.840.10040.4.1":return r.algorithm.params.pub_key=n.DSAparam.decode(r.subjectPublicKey.data,"der"),{type:"dsa",data:r.algorithm.params};default:throw new Error("unknown key id "+t)}case"ENCRYPTED PRIVATE KEY":g=I(g=n.EncryptedPrivateKey.decode(g,"der"),e);case"PRIVATE KEY":switch(t=(r=n.PrivateKey.decode(g,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return n.RSAPrivateKey.decode(r.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:r.algorithm.curve,privateKey:n.ECPrivateKey.decode(r.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return r.algorithm.params.priv_key=n.DSAparam.decode(r.subjectPrivateKey,"der"),{type:"dsa",params:r.algorithm.params};default:throw new Error("unknown key id "+t)}case"RSA PUBLIC KEY":return n.RSAPublicKey.decode(g,"der");case"RSA PRIVATE KEY":return n.RSAPrivateKey.decode(g,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:n.DSAPrivateKey.decode(g,"der")};case"EC PRIVATE KEY":return{curve:(g=n.ECPrivateKey.decode(g,"der")).parameters.value,privateKey:g.privateKey};default:throw new Error("unknown key type "+a)}}function I(A,e){var t=A.algorithm.decrypt.kde.kdeparams.salt,n=parseInt(A.algorithm.decrypt.kde.kdeparams.iters.toString(),10),i=r[A.algorithm.decrypt.cipher.algo.join(".")],g=A.algorithm.decrypt.cipher.iv,I=A.subjectPrivateKey,u=parseInt(i.split("-")[1],10)/8,f=a.pbkdf2Sync(e,t,n,u,"sha1"),l=o.createDecipheriv(i,f,g),B=[];return B.push(l.update(I)),B.push(l.final()),s.concat(B)}e.exports=g,g.signature=n.signature},{"./asn1":"hfk5","./aesid.json":"QyaF","./fixProc":"Pyv/","browserify-aes":"hisC",pbkdf2:"BKdu","safe-buffer":"38Wu"}],"1lPV":[function(A,e,t){e.exports={"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}},{}],oj83:[function(A,e,t){var n=A("safe-buffer").Buffer,r=A("create-hmac"),i=A("browserify-rsa"),o=A("elliptic").ec,a=A("bn.js"),s=A("parse-asn1"),g=A("./curves.json");function I(A,e){var t=g[e.curve.join(".")];if(!t)throw new Error("unknown curve "+e.curve.join("."));var r=new o(t).keyFromPrivate(e.privateKey).sign(A);return n.from(r.toDER())}function u(A,e,t){for(var n,r=e.params.priv_key,i=e.params.p,o=e.params.q,s=e.params.g,g=new a(0),I=B(A,o).mod(o),u=!1,d=l(r,o,A,t);!1===u;)g=c(s,n=E(o,d,t),i,o),0===(u=n.invm(o).imul(I.add(r.mul(g))).mod(o)).cmpn(0)&&(u=!1,g=new a(0));return f(g,u)}function f(A,e){A=A.toArray(),e=e.toArray(),128&A[0]&&(A=[0].concat(A)),128&e[0]&&(e=[0].concat(e));var t=[48,A.length+e.length+4,2,A.length];return t=t.concat(A,[2,e.length],e),n.from(t)}function l(A,e,t,i){if((A=n.from(A.toArray())).length<e.byteLength()){var o=n.alloc(e.byteLength()-A.length);A=n.concat([o,A])}var a=t.length,s=function(A,e){A=(A=B(A,e)).mod(e);var t=n.from(A.toArray());if(t.length<e.byteLength()){var r=n.alloc(e.byteLength()-t.length);t=n.concat([r,t])}return t}(t,e),g=n.alloc(a);g.fill(1);var I=n.alloc(a);return I=r(i,I).update(g).update(n.from([0])).update(A).update(s).digest(),g=r(i,I).update(g).digest(),{k:I=r(i,I).update(g).update(n.from([1])).update(A).update(s).digest(),v:g=r(i,I).update(g).digest()}}function B(A,e){var t=new a(A),n=(A.length<<3)-e.bitLength();return n>0&&t.ishrn(n),t}function E(A,e,t){var i,o;do{for(i=n.alloc(0);8*i.length<A.bitLength();)e.v=r(t,e.k).update(e.v).digest(),i=n.concat([i,e.v]);o=B(i,A),e.k=r(t,e.k).update(e.v).update(n.from([0])).digest(),e.v=r(t,e.k).update(e.v).digest()}while(-1!==o.cmp(A));return o}function c(A,e,t,n){return A.toRed(a.mont(t)).redPow(e).fromRed().mod(n)}e.exports=function(A,e,t,r,o){var a=s(e);if(a.curve){if("ecdsa"!==r&&"ecdsa/rsa"!==r)throw new Error("wrong private key type");return I(A,a)}if("dsa"===a.type){if("dsa"!==r)throw new Error("wrong private key type");return u(A,a,t)}if("rsa"!==r&&"ecdsa/rsa"!==r)throw new Error("wrong private key type");A=n.concat([o,A]);for(var g=a.modulus.byteLength(),f=[0,1];A.length+f.length+1<g;)f.push(255);f.push(0);for(var l=-1;++l<A.length;)f.push(A[l]);return i(f,a)},e.exports.getKey=l,e.exports.makeKey=E},{"safe-buffer":"wyv4","create-hmac":"4Cx6","browserify-rsa":"1Auk",elliptic:"xha3","bn.js":"BOxy","parse-asn1":"02g6","./curves.json":"1lPV"}],"pXU/":[function(A,e,t){var n=A("safe-buffer").Buffer,r=A("bn.js"),i=A("elliptic").ec,o=A("parse-asn1"),a=A("./curves.json");function s(A,e,t){var n=a[t.data.algorithm.curve.join(".")];if(!n)throw new Error("unknown curve "+t.data.algorithm.curve.join("."));var r=new i(n),o=t.data.subjectPrivateKey.data;return r.verify(e,A,o)}function g(A,e,t){var n=t.data.p,i=t.data.q,a=t.data.g,s=t.data.pub_key,g=o.signature.decode(A,"der"),u=g.s,f=g.r;I(u,i),I(f,i);var l=r.mont(n),B=u.invm(i);return 0===a.toRed(l).redPow(new r(e).mul(B).mod(i)).fromRed().mul(s.toRed(l).redPow(f.mul(B).mod(i)).fromRed()).mod(n).mod(i).cmp(f)}function I(A,e){if(A.cmpn(0)<=0)throw new Error("invalid sig");if(A.cmp(e)>=e)throw new Error("invalid sig")}e.exports=function(A,e,t,i,a){var I=o(t);if("ec"===I.type){if("ecdsa"!==i&&"ecdsa/rsa"!==i)throw new Error("wrong public key type");return s(A,e,I)}if("dsa"===I.type){if("dsa"!==i)throw new Error("wrong public key type");return g(A,e,I)}if("rsa"!==i&&"ecdsa/rsa"!==i)throw new Error("wrong public key type");e=n.concat([a,e]);for(var u=I.modulus.byteLength(),f=[1],l=0;e.length+f.length+2<u;)f.push(255),l++;f.push(0);for(var B=-1;++B<e.length;)f.push(e[B]);f=n.from(f);var E=r.mont(I.modulus);A=(A=new r(A).toRed(E)).redPow(new r(I.publicExponent)),A=n.from(A.fromRed().toArray());var c=l<8?1:0;for(u=Math.min(A.length,f.length),A.length!==f.length&&(c=1),B=-1;++B<u;)c|=A[B]^f[B];return 0===c}},{"safe-buffer":"wyv4","bn.js":"BOxy",elliptic:"xha3","parse-asn1":"02g6","./curves.json":"1lPV"}],"BAb/":[function(A,e,t){var n=A("safe-buffer").Buffer,r=A("create-hash"),i=A("readable-stream"),o=A("inherits"),a=A("./sign"),s=A("./verify"),g=A("./algorithms.json");function I(A){i.Writable.call(this);var e=g[A];if(!e)throw new Error("Unknown message digest");this._hashType=e.hash,this._hash=r(e.hash),this._tag=e.id,this._signType=e.sign}function u(A){i.Writable.call(this);var e=g[A];if(!e)throw new Error("Unknown message digest");this._hash=r(e.hash),this._tag=e.id,this._signType=e.sign}function f(A){return new I(A)}function l(A){return new u(A)}Object.keys(g).forEach(function(A){g[A].id=n.from(g[A].id,"hex"),g[A.toLowerCase()]=g[A]}),o(I,i.Writable),I.prototype._write=function(A,e,t){this._hash.update(A),t()},I.prototype.update=function(A,e){return"string"==typeof A&&(A=n.from(A,e)),this._hash.update(A),this},I.prototype.sign=function(A,e){this.end();var t=this._hash.digest(),n=a(t,A,this._hashType,this._signType,this._tag);return e?n.toString(e):n},o(u,i.Writable),u.prototype._write=function(A,e,t){this._hash.update(A),t()},u.prototype.update=function(A,e){return"string"==typeof A&&(A=n.from(A,e)),this._hash.update(A),this},u.prototype.verify=function(A,e,t){"string"==typeof e&&(e=n.from(e,t)),this.end();var r=this._hash.digest();return s(e,r,A,this._signType,this._tag)},e.exports={Sign:f,Verify:l,createSign:f,createVerify:l}},{"safe-buffer":"wyv4","create-hash":"LF8r","readable-stream":"TgzV",inherits:"t8EM","./sign":"oj83","./verify":"pXU/","./algorithms.json":"WoCp"}],x3tl:[function(A,e,t){A("buffer").Buffer;var n=A("buffer").Buffer,r=A("elliptic"),i=A("bn.js");e.exports=function(A){return new a(A)};var o={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function a(A){this.curveType=o[A],this.curveType||(this.curveType={name:A}),this.curve=new r.ec(this.curveType.name),this.keys=void 0}function s(A,e,t){Array.isArray(A)||(A=A.toArray());var r=new n(A);if(t&&r.length<t){var i=new n(t-r.length);i.fill(0),r=n.concat([i,r])}return e?r.toString(e):r}o.p224=o.secp224r1,o.p256=o.secp256r1=o.prime256v1,o.p192=o.secp192r1=o.prime192v1,o.p384=o.secp384r1,o.p521=o.secp521r1,a.prototype.generateKeys=function(A,e){return this.keys=this.curve.genKeyPair(),this.getPublicKey(A,e)},a.prototype.computeSecret=function(A,e,t){return e=e||"utf8",n.isBuffer(A)||(A=new n(A,e)),s(this.curve.keyFromPublic(A).getPublic().mul(this.keys.getPrivate()).getX(),t,this.curveType.byteLength)},a.prototype.getPublicKey=function(A,e){var t=this.keys.getPublic("compressed"===e,!0);return"hybrid"===e&&(t[t.length-1]%2?t[0]=7:t[0]=6),s(t,A)},a.prototype.getPrivateKey=function(A){return s(this.keys.getPrivate(),A)},a.prototype.setPublicKey=function(A,e){return e=e||"utf8",n.isBuffer(A)||(A=new n(A,e)),this.keys._importPublic(A),this},a.prototype.setPrivateKey=function(A,e){e=e||"utf8",n.isBuffer(A)||(A=new n(A,e));var t=new i(A);return t=t.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(t),this}},{elliptic:"xha3","bn.js":"VXic",buffer:"dskh"}],QJXH:[function(A,e,t){var n=A("create-hash"),r=A("safe-buffer").Buffer;function i(A){var e=r.allocUnsafe(4);return e.writeUInt32BE(A,0),e}e.exports=function(A,e){for(var t,o=r.alloc(0),a=0;o.length<e;)t=i(a++),o=r.concat([o,n("sha1").update(A).update(t).digest()]);return o.slice(0,e)}},{"create-hash":"LF8r","safe-buffer":"38Wu"}],"C+It":[function(A,e,t){e.exports=function(A,e){for(var t=A.length,n=-1;++n<t;)A[n]^=e[n];return A}},{}],"0kM9":[function(A,e,t){var n=A("bn.js"),r=A("safe-buffer").Buffer;e.exports=function(A,e){return r.from(A.toRed(n.mont(e.modulus)).redPow(new n(e.publicExponent)).fromRed().toArray())}},{"bn.js":"VXic","safe-buffer":"38Wu"}],"47U4":[function(A,e,t){var n=A("parse-asn1"),r=A("randombytes"),i=A("create-hash"),o=A("./mgf"),a=A("./xor"),s=A("bn.js"),g=A("./withPublic"),I=A("browserify-rsa"),u=A("safe-buffer").Buffer;function f(A,e){var t=A.modulus.byteLength(),n=e.length,g=i("sha1").update(u.alloc(0)).digest(),I=g.length,f=2*I;if(n>t-f-2)throw new Error("message too long");var l=u.alloc(t-n-f-2),B=t-I-1,E=r(I),c=a(u.concat([g,l,u.alloc(1,1),e],B),o(E,B)),d=a(E,o(c,I));return new s(u.concat([u.alloc(1),d,c],t))}function l(A,e,t){var n,r=e.length,i=A.modulus.byteLength();if(r>i-11)throw new Error("message too long");return n=t?u.alloc(i-r-3,255):B(i-r-3),new s(u.concat([u.from([0,t?1:2]),n,u.alloc(1),e],i))}function B(A){for(var e,t=u.allocUnsafe(A),n=0,i=r(2*A),o=0;n<A;)o===i.length&&(i=r(2*A),o=0),(e=i[o++])&&(t[n++]=e);return t}e.exports=function(A,e,t){var r;r=A.padding?A.padding:t?1:4;var i,o=n(A);if(4===r)i=f(o,e);else if(1===r)i=l(o,e,t);else{if(3!==r)throw new Error("unknown padding");if((i=new s(e)).cmp(o.modulus)>=0)throw new Error("data too long for modulus")}return t?I(i,o):g(i,o)}},{"parse-asn1":"02g6",randombytes:"/XJN","create-hash":"LF8r","./mgf":"QJXH","./xor":"C+It","bn.js":"VXic","./withPublic":"0kM9","browserify-rsa":"1Auk","safe-buffer":"38Wu"}],mWkL:[function(A,e,t){var n=A("parse-asn1"),r=A("./mgf"),i=A("./xor"),o=A("bn.js"),a=A("browserify-rsa"),s=A("create-hash"),g=A("./withPublic"),I=A("safe-buffer").Buffer;function u(A,e){var t=A.modulus.byteLength(),n=s("sha1").update(I.alloc(0)).digest(),o=n.length;if(0!==e[0])throw new Error("decryption error");var a=e.slice(1,o+1),g=e.slice(o+1),u=i(a,r(g,o)),f=i(g,r(u,t-o-1));if(function(A,e){A=I.from(A),e=I.from(e);var t=0,n=A.length;A.length!==e.length&&(t++,n=Math.min(A.length,e.length));for(var r=-1;++r<n;)t+=A[r]^e[r];return t}(n,f.slice(0,o)))throw new Error("decryption error");for(var l=o;0===f[l];)l++;if(1!==f[l++])throw new Error("decryption error");return f.slice(l)}e.exports=function(A,e,t){var r;r=A.padding?A.padding:t?1:4;var i,s=n(A),f=s.modulus.byteLength();if(e.length>f||new o(e).cmp(s.modulus)>=0)throw new Error("decryption error");i=t?g(new o(e),s):a(e,s);var l=I.alloc(f-i.length);if(i=I.concat([l,i],f),4===r)return u(s,i);if(1===r)return function(A,e,t){for(var n=e.slice(0,2),r=2,i=0;0!==e[r++];)if(r>=e.length){i++;break}var o=e.slice(2,r-1);if(("0002"!==n.toString("hex")&&!t||"0001"!==n.toString("hex")&&t)&&i++,o.length<8&&i++,i)throw new Error("decryption error");return e.slice(r)}(0,i,t);if(3===r)return i;throw new Error("unknown padding")}},{"parse-asn1":"02g6","./mgf":"QJXH","./xor":"C+It","bn.js":"VXic","browserify-rsa":"1Auk","create-hash":"LF8r","./withPublic":"0kM9","safe-buffer":"38Wu"}],"2WjU":[function(A,e,t){t.publicEncrypt=A("./publicEncrypt"),t.privateDecrypt=A("./privateDecrypt"),t.privateEncrypt=function(A,e){return t.publicEncrypt(A,e,!0)},t.publicDecrypt=function(A,e){return t.privateDecrypt(A,e,!0)}},{"./publicEncrypt":"47U4","./privateDecrypt":"mWkL"}],ODza:[function(A,e,t){arguments[3],A("process");var n=arguments[3],r=A("process");function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var o=A("safe-buffer"),a=(A("randombytes"),o.Buffer),s=o.kMaxLength,g=n.crypto||n.msCrypto,I=Math.pow(2,32)-1;function u(A,e){if("number"!=typeof A||A!=A)throw new TypeError("offset must be a number");if(A>I||A<0)throw new TypeError("offset must be a uint32");if(A>s||A>e)throw new RangeError("offset out of range")}function f(A,e,t){if("number"!=typeof A||A!=A)throw new TypeError("size must be a number");if(A>I||A<0)throw new TypeError("size must be a uint32");if(A+e>t||A>s)throw new RangeError("buffer too small")}function l(A,e,t,n){var i=A.buffer,o=new Uint8Array(i,e,t);return g.getRandomValues(o),n?void r.nextTick(function(){n(null,A)}):A}g&&g.getRandomValues?(t.randomFill=function(A,e,t,r){if(!(a.isBuffer(A)||A instanceof n.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof e)r=e,e=0,t=A.length;else if("function"==typeof t)r=t,t=A.length-e;else if("function"!=typeof r)throw new TypeError('"cb" argument must be a function');return u(e,A.length),f(t,e,A.length),l(A,e,t,r)},t.randomFillSync=function(A,e,t){if(void 0===e&&(e=0),!(a.isBuffer(A)||A instanceof n.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return u(e,A.length),void 0===t&&(t=A.length-e),f(t,e,A.length),l(A,e,t)}):(t.randomFill=i,t.randomFillSync=i)},{"safe-buffer":"38Wu",randombytes:"/XJN",process:"pBGv"}],mRF4:[function(A,e,t){"use strict";t.randomBytes=t.rng=t.pseudoRandomBytes=t.prng=A("randombytes"),t.createHash=t.Hash=A("create-hash"),t.createHmac=t.Hmac=A("create-hmac");var n=A("browserify-sign/algos"),r=Object.keys(n),i=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(r);t.getHashes=function(){return i};var o=A("pbkdf2");t.pbkdf2=o.pbkdf2,t.pbkdf2Sync=o.pbkdf2Sync;var a=A("browserify-cipher");t.Cipher=a.Cipher,t.createCipher=a.createCipher,t.Cipheriv=a.Cipheriv,t.createCipheriv=a.createCipheriv,t.Decipher=a.Decipher,t.createDecipher=a.createDecipher,t.Decipheriv=a.Decipheriv,t.createDecipheriv=a.createDecipheriv,t.getCiphers=a.getCiphers,t.listCiphers=a.listCiphers;var s=A("diffie-hellman");t.DiffieHellmanGroup=s.DiffieHellmanGroup,t.createDiffieHellmanGroup=s.createDiffieHellmanGroup,t.getDiffieHellman=s.getDiffieHellman,t.createDiffieHellman=s.createDiffieHellman,t.DiffieHellman=s.DiffieHellman;var g=A("browserify-sign");t.createSign=g.createSign,t.Sign=g.Sign,t.createVerify=g.createVerify,t.Verify=g.Verify,t.createECDH=A("create-ecdh");var I=A("public-encrypt");t.publicEncrypt=I.publicEncrypt,t.privateEncrypt=I.privateEncrypt,t.publicDecrypt=I.publicDecrypt,t.privateDecrypt=I.privateDecrypt;var u=A("randomfill");t.randomFill=u.randomFill,t.randomFillSync=u.randomFillSync,t.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},t.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},{randombytes:"/XJN","create-hash":"LF8r","create-hmac":"4Cx6","browserify-sign/algos":"YKr5",pbkdf2:"BKdu","browserify-cipher":"+KTb","diffie-hellman":"9WFL","browserify-sign":"BAb/","create-ecdh":"x3tl","public-encrypt":"2WjU",randomfill:"ODza"}],"ZV/H":[function(A,e,t){A("process"),A("buffer").Buffer;var n="/home/runner/work/midiplayer/midiplayer/node_modules/@werckmeister/sfcompose/sfcompose.js",r=A("process"),i=A("buffer").Buffer,o=function(){var e="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return e=e||n,function(t){var n,o,a=void 0!==(t=t||{})?t:{};a.ready=new Promise(function(A,e){n=A,o=e});var s,g={};for(s in a)a.hasOwnProperty(s)&&(g[s]=a[s]);var I,u,f=[],l="./this.program",B=function(A,e){throw e},E=!1,c=!1;E="object"==typeof window,c="function"==typeof importScripts,u="object"==typeof r&&"object"==typeof r.versions&&"string"==typeof r.versions.node,I=!E&&!u&&!c;var d,C,h,Q,p,m="";u?(m=c?A("path").dirname(m)+"/":"/home/runner/work/midiplayer/midiplayer/node_modules/@werckmeister/sfcompose/",d=function(e,t){return Q||(Q=A("fs")),p||(p=A("path")),e=p.normalize(e),Q.readFileSync(e,t?null:"utf8")},h=function(A){var e=d(A,!0);return e.buffer||(e=new Uint8Array(e)),M(e.buffer),e},r.argv.length>1&&(l=r.argv[1].replace(/\\/g,"/")),f=r.argv.slice(2),r.on("uncaughtException",function(A){if(!(A instanceof VA))throw A}),r.on("unhandledRejection",tA),B=function(A){r.exit(A)},a.inspect=function(){return"[Emscripten Module object]"}):I?("undefined"!=typeof read&&(d=function(A){return read(A)}),h=function(A){var e;return"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(M("object"==typeof(e=read(A,"binary"))),e)},"undefined"!=typeof scriptArgs?f=scriptArgs:void 0!==arguments&&(f=arguments),"function"==typeof quit&&(B=function(A){quit(A)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(E||c)&&(c?m=self.location.href:"undefined"!=typeof document&&document.currentScript&&(m=document.currentScript.src),e&&(m=e),m=0!==m.indexOf("blob:")?m.substr(0,m.lastIndexOf("/")+1):"",d=function(A){var e=new XMLHttpRequest;return e.open("GET",A,!1),e.send(null),e.responseText},c&&(h=function(A){var e=new XMLHttpRequest;return e.open("GET",A,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),C=function(A,e,t){var n=new XMLHttpRequest;n.open("GET",A,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?e(n.response):t()},n.onerror=t,n.send(null)});var y=a.print||console.log.bind(console),w=a.printErr||console.warn.bind(console);for(s in g)g.hasOwnProperty(s)&&(a[s]=g[s]);g=null,a.arguments&&(f=a.arguments),a.thisProgram&&(l=a.thisProgram),a.quit&&(B=a.quit);var b,_=16,D=0,v=function(A){D=A};a.wasmBinary&&(b=a.wasmBinary);var R=a.noExitRuntime||!0;"object"!=typeof WebAssembly&&tA("no native wasm support detected");var F=!1;function M(A,e){A||tA("Assertion failed: "+e)}function S(A){var e=a["_"+A];return M(e,"Cannot call unknown function "+A+", make sure it is exported"),e}var k,G,N,P,L,U="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function Y(A,e,t){for(var n=e+t,r=e;A[r]&&!(r>=n);)++r;if(r-e>16&&A.subarray&&U)return U.decode(A.subarray(e,r));for(var i="";e<r;){var o=A[e++];if(128&o){var a=63&A[e++];if(192!=(224&o)){var s=63&A[e++];if((o=224==(240&o)?(15&o)<<12|a<<6|s:(7&o)<<18|a<<12|s<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var g=o-65536;i+=String.fromCharCode(55296|g>>10,56320|1023&g)}}else i+=String.fromCharCode((31&o)<<6|a)}else i+=String.fromCharCode(o)}return i}function x(A,e){return A?Y(N,A,e):""}function Z(A,e,t,n){if(!(n>0))return 0;for(var r=t,i=t+n-1,o=0;o<A.length;++o){var a=A.charCodeAt(o);if(a>=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&A.charCodeAt(++o)),a<=127){if(t>=i)break;e[t++]=a}else if(a<=2047){if(t+1>=i)break;e[t++]=192|a>>6,e[t++]=128|63&a}else if(a<=65535){if(t+2>=i)break;e[t++]=224|a>>12,e[t++]=128|a>>6&63,e[t++]=128|63&a}else{if(t+3>=i)break;e[t++]=240|a>>18,e[t++]=128|a>>12&63,e[t++]=128|a>>6&63,e[t++]=128|63&a}}return e[t]=0,t-r}function H(A,e,t){return Z(A,N,e,t)}function X(A){for(var e=0,t=0;t<A.length;++t){var n=A.charCodeAt(t);n>=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&A.charCodeAt(++t)),n<=127?++e:e+=n<=2047?2:n<=65535?3:4}return e}function K(A){var e=X(A)+1,t=KA(e);return Z(A,G,t,e),t}function T(A,e){G.set(A,e)}a.INITIAL_MEMORY;var W,q=[],J=[],V=[],O=[];J.push({func:function(){UA()}});var z=0,j=null,$=null;function AA(A){z++,a.monitorRunDependencies&&a.monitorRunDependencies(z)}function eA(A){if(z--,a.monitorRunDependencies&&a.monitorRunDependencies(z),0==z&&(null!==j&&(clearInterval(j),j=null),$)){var e=$;$=null,e()}}function tA(A){a.onAbort&&a.onAbort(A),w(A+=""),F=!0,A="abort("+A+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(A);throw o(e),e}function nA(A,e){return String.prototype.startsWith?A.startsWith(e):0===A.indexOf(e)}a.preloadedImages={},a.preloadedAudios={};var rA="data:application/octet-stream;base64,";function iA(A){return nA(A,rA)}var oA="file://";function aA(A){return nA(A,oA)}var sA,gA,IA,uA="sfcompose.wasm";function fA(A){try{if(A==uA&&b)return new Uint8Array(b);if(h)return h(A);throw"both async and sync fetching of the wasm failed"}catch(w){tA(w)}}function lA(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var t=e.func;"number"==typeof t?void 0===e.arg?W.get(t)():W.get(t)(e.arg):t(void 0===e.arg?null:e.arg)}else e(a)}}iA(uA)||(sA=uA,uA=a.locateFile?a.locateFile(sA,m):m+sA);var BA={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function EA(A){this.excPtr=A,this.ptr=A-BA.SIZE,this.set_type=function(A){L[this.ptr+BA.TYPE_OFFSET>>2]=A},this.get_type=function(){return L[this.ptr+BA.TYPE_OFFSET>>2]},this.set_destructor=function(A){L[this.ptr+BA.DESTRUCTOR_OFFSET>>2]=A},this.get_destructor=function(){return L[this.ptr+BA.DESTRUCTOR_OFFSET>>2]},this.set_refcount=function(A){L[this.ptr+BA.REFCOUNT_OFFSET>>2]=A},this.set_caught=function(A){A=A?1:0,G[this.ptr+BA.CAUGHT_OFFSET>>0]=A},this.get_caught=function(){return 0!=G[this.ptr+BA.CAUGHT_OFFSET>>0]},this.set_rethrown=function(A){A=A?1:0,G[this.ptr+BA.RETHROWN_OFFSET>>0]=A},this.get_rethrown=function(){return 0!=G[this.ptr+BA.RETHROWN_OFFSET>>0]},this.init=function(A,e){this.set_type(A),this.set_destructor(e),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var A=L[this.ptr+BA.REFCOUNT_OFFSET>>2];L[this.ptr+BA.REFCOUNT_OFFSET>>2]=A+1},this.release_ref=function(){var A=L[this.ptr+BA.REFCOUNT_OFFSET>>2];return L[this.ptr+BA.REFCOUNT_OFFSET>>2]=A-1,1===A}}function cA(A){this.free=function(){YA(this.ptr),this.ptr=0},this.set_base_ptr=function(A){L[this.ptr>>2]=A},this.get_base_ptr=function(){return L[this.ptr>>2]},this.set_adjusted_ptr=function(A){L[this.ptr+4>>2]=A},this.get_adjusted_ptr=function(){return L[this.ptr+4>>2]},this.get_exception_ptr=function(){if(WA(this.get_exception_info().get_type()))return L[this.get_base_ptr()>>2];var A=this.get_adjusted_ptr();return 0!==A?A:this.get_base_ptr()},this.get_exception_info=function(){return new EA(this.get_base_ptr())},void 0===A?(this.ptr=ZA(8),this.set_adjusted_ptr(0)):this.ptr=A}var dA=[],CA=0,hA=0;function QA(A){try{return YA(new EA(A).ptr)}catch(t){}}var pA={splitPath:function(A){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(A).slice(1)},normalizeArray:function(A,e){for(var t=0,n=A.length-1;n>=0;n--){var r=A[n];"."===r?A.splice(n,1):".."===r?(A.splice(n,1),t++):t&&(A.splice(n,1),t--)}if(e)for(;t;t--)A.unshift("..");return A},normalize:function(A){var e="/"===A.charAt(0),t="/"===A.substr(-1);return(A=pA.normalizeArray(A.split("/").filter(function(A){return!!A}),!e).join("/"))||e||(A="."),A&&t&&(A+="/"),(e?"/":"")+A},dirname:function(A){var e=pA.splitPath(A),t=e[0],n=e[1];return t||n?(n&&(n=n.substr(0,n.length-1)),t+n):"."},basename:function(A){if("/"===A)return"/";var e=(A=(A=pA.normalize(A)).replace(/\/$/,"")).lastIndexOf("/");return-1===e?A:A.substr(e+1)},extname:function(A){return pA.splitPath(A)[3]},join:function(){var A=Array.prototype.slice.call(arguments,0);return pA.normalize(A.join("/"))},join2:function(A,e){return pA.normalize(A+"/"+e)}},mA={resolve:function(){for(var A="",e=!1,t=arguments.length-1;t>=-1&&!e;t--){var n=t>=0?arguments[t]:bA.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";A=n+"/"+A,e="/"===n.charAt(0)}return(e?"/":"")+(A=pA.normalizeArray(A.split("/").filter(function(A){return!!A}),!e).join("/"))||"."},relative:function(A,e){function t(A){for(var e=0;e<A.length&&""===A[e];e++);for(var t=A.length-1;t>=0&&""===A[t];t--);return e>t?[]:A.slice(e,t-e+1)}A=mA.resolve(A).substr(1),e=mA.resolve(e).substr(1);for(var n=t(A.split("/")),r=t(e.split("/")),i=Math.min(n.length,r.length),o=i,a=0;a<i;a++)if(n[a]!==r[a]){o=a;break}var s=[];for(a=o;a<n.length;a++)s.push("..");return(s=s.concat(r.slice(o))).join("/")}},yA={ttys:[],init:function(){},shutdown:function(){},register:function(A,e){yA.ttys[A]={input:[],output:[],ops:e},bA.registerDevice(A,yA.stream_ops)},stream_ops:{open:function(A){var e=yA.ttys[A.node.rdev];if(!e)throw new bA.ErrnoError(43);A.tty=e,A.seekable=!1},close:function(A){A.tty.ops.flush(A.tty)},flush:function(A){A.tty.ops.flush(A.tty)},read:function(A,e,t,n,r){if(!A.tty||!A.tty.ops.get_char)throw new bA.ErrnoError(60);for(var i=0,o=0;o<n;o++){var a;try{a=A.tty.ops.get_char(A.tty)}catch(s){throw new bA.ErrnoError(29)}if(void 0===a&&0===i)throw new bA.ErrnoError(6);if(null==a)break;i++,e[t+o]=a}return i&&(A.node.timestamp=Date.now()),i},write:function(A,e,t,n,r){if(!A.tty||!A.tty.ops.put_char)throw new bA.ErrnoError(60);try{for(var i=0;i<n;i++)A.tty.ops.put_char(A.tty,e[t+i])}catch(o){throw new bA.ErrnoError(29)}return n&&(A.node.timestamp=Date.now()),i}},default_tty_ops:{get_char:function(A){if(!A.input.length){var e=null;if(u){var t=i.alloc?i.alloc(256):new i(256),n=0;try{n=Q.readSync(r.stdin.fd,t,0,256,null)}catch(o){if(-1==o.toString().indexOf("EOF"))throw o;n=0}e=n>0?t.slice(0,n).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(e=window.prompt("Input: "))&&(e+="\n"):"function"==typeof readline&&null!==(e=readline())&&(e+="\n");if(!e)return null;A.input=NA(e,!0)}return A.input.shift()},put_char:function(A,e){null===e||10===e?(y(Y(A.output,0)),A.output=[]):0!=e&&A.output.push(e)},flush:function(A){A.output&&A.output.length>0&&(y(Y(A.output,0)),A.output=[])}},default_tty1_ops:{put_char:function(A,e){null===e||10===e?(w(Y(A.output,0)),A.output=[]):0!=e&&A.output.push(e)},flush:function(A){A.output&&A.output.length>0&&(w(Y(A.output,0)),A.output=[])}}};var wA={ops_table:null,mount:function(A){return wA.createNode(null,"/",16895,0)},createNode:function(A,e,t,n){if(bA.isBlkdev(t)||bA.isFIFO(t))throw new bA.ErrnoError(63);wA.ops_table||(wA.ops_table={dir:{node:{getattr:wA.node_ops.getattr,setattr:wA.node_ops.setattr,lookup:wA.node_ops.lookup,mknod:wA.node_ops.mknod,rename:wA.node_ops.rename,unlink:wA.node_ops.unlink,rmdir:wA.node_ops.rmdir,readdir:wA.node_ops.readdir,symlink:wA.node_ops.symlink},stream:{llseek:wA.stream_ops.llseek}},file:{node:{getattr:wA.node_ops.getattr,setattr:wA.node_ops.setattr},stream:{llseek:wA.stream_ops.llseek,read:wA.stream_ops.read,write:wA.stream_ops.write,allocate:wA.stream_ops.allocate,mmap:wA.stream_ops.mmap,msync:wA.stream_ops.msync}},link:{node:{getattr:wA.node_ops.getattr,setattr:wA.node_ops.setattr,readlink:wA.node_ops.readlink},stream:{}},chrdev:{node:{getattr:wA.node_ops.getattr,setattr:wA.node_ops.setattr},stream:bA.chrdev_stream_ops}});var r=bA.createNode(A,e,t,n);return bA.isDir(r.mode)?(r.node_ops=wA.ops_table.dir.node,r.stream_ops=wA.ops_table.dir.stream,r.contents={}):bA.isFile(r.mode)?(r.node_ops=wA.ops_table.file.node,r.stream_ops=wA.ops_table.file.stream,r.usedBytes=0,r.contents=null):bA.isLink(r.mode)?(r.node_ops=wA.ops_table.link.node,r.stream_ops=wA.ops_table.link.stream):bA.isChrdev(r.mode)&&(r.node_ops=wA.ops_table.chrdev.node,r.stream_ops=wA.ops_table.chrdev.stream),r.timestamp=Date.now(),A&&(A.contents[e]=r,A.timestamp=r.timestamp),r},getFileDataAsTypedArray:function(A){return A.contents?A.contents.subarray?A.contents.subarray(0,A.usedBytes):new Uint8Array(A.contents):new Uint8Array(0)},expandFileStorage:function(A,e){var t=A.contents?A.contents.length:0;if(!(t>=e)){e=Math.max(e,t*(t<1048576?2:1.125)>>>0),0!=t&&(e=Math.max(e,256));var n=A.contents;A.contents=new Uint8Array(e),A.usedBytes>0&&A.contents.set(n.subarray(0,A.usedBytes),0)}},resizeFileStorage:function(A,e){if(A.usedBytes!=e)if(0==e)A.contents=null,A.usedBytes=0;else{var t=A.contents;A.contents=new Uint8Array(e),t&&A.contents.set(t.subarray(0,Math.min(e,A.usedBytes))),A.usedBytes=e}},node_ops:{getattr:function(A){var e={};return e.dev=bA.isChrdev(A.mode)?A.id:1,e.ino=A.id,e.mode=A.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=A.rdev,bA.isDir(A.mode)?e.size=4096:bA.isFile(A.mode)?e.size=A.usedBytes:bA.isLink(A.mode)?e.size=A.link.length:e.size=0,e.atime=new Date(A.timestamp),e.mtime=new Date(A.timestamp),e.ctime=new Date(A.timestamp),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr:function(A,e){void 0!==e.mode&&(A.mode=e.mode),void 0!==e.timestamp&&(A.timestamp=e.timestamp),void 0!==e.size&&wA.resizeFileStorage(A,e.size)},lookup:function(A,e){throw bA.genericErrors[44]},mknod:function(A,e,t,n){return wA.createNode(A,e,t,n)},rename:function(A,e,t){if(bA.isDir(A.mode)){var r;try{r=bA.lookupNode(e,t)}catch(n){}if(r)for(var i in r.contents)throw new bA.ErrnoError(55)}delete A.parent.contents[A.name],A.parent.timestamp=Date.now(),A.name=t,e.contents[t]=A,e.timestamp=A.parent.timestamp,A.parent=e},unlink:function(A,e){delete A.contents[e],A.timestamp=Date.now()},rmdir:function(A,e){var t=bA.lookupNode(A,e);for(var n in t.contents)throw new bA.ErrnoError(55);delete A.contents[e],A.timestamp=Date.now()},readdir:function(A){var e=[".",".."];for(var t in A.contents)A.contents.hasOwnProperty(t)&&e.push(t);return e},symlink:function(A,e,t){var n=wA.createNode(A,e,41471,0);return n.link=t,n},readlink:function(A){if(!bA.isLink(A.mode))throw new bA.ErrnoError(28);return A.link}},stream_ops:{read:function(A,e,t,n,r){var i=A.node.contents;if(r>=A.node.usedBytes)return 0;var o=Math.min(A.node.usedBytes-r,n);if(o>8&&i.subarray)e.set(i.subarray(r,r+o),t);else for(var a=0;a<o;a++)e[t+a]=i[r+a];return o},write:function(A,e,t,n,r,i){if(!n)return 0;var o=A.node;if(o.timestamp=Date.now(),e.subarray&&(!o.contents||o.contents.subarray)){if(i)return o.contents=e.subarray(t,t+n),o.usedBytes=n,n;if(0===o.usedBytes&&0===r)return o.contents=e.slice(t,t+n),o.usedBytes=n,n;if(r+n<=o.usedBytes)return o.contents.set(e.subarray(t,t+n),r),n}if(wA.expandFileStorage(o,r+n),o.contents.subarray&&e.subarray)o.contents.set(e.subarray(t,t+n),r);else for(var a=0;a<n;a++)o.contents[r+a]=e[t+a];return o.usedBytes=Math.max(o.usedBytes,r+n),n},llseek:function(A,e,t){var n=e;if(1===t?n+=A.position:2===t&&bA.isFile(A.node.mode)&&(n+=A.node.usedBytes),n<0)throw new bA.ErrnoError(28);return n},allocate:function(A,e,t){wA.expandFileStorage(A.node,e+t),A.node.usedBytes=Math.max(A.node.usedBytes,e+t)},mmap:function(A,e,t,n,r,i){if(0!==e)throw new bA.ErrnoError(28);if(!bA.isFile(A.node.mode))throw new bA.ErrnoError(43);var o,a,s=A.node.contents;if(2&i||s.buffer!==k){if((n>0||n+t<s.length)&&(s=s.subarray?s.subarray(n,n+t):Array.prototype.slice.call(s,n,n+t)),a=!0,!(o=function(A){for(var e=function(A,e){return e||(e=_),Math.ceil(A/e)*e}(A,16384),t=ZA(e);A<e;)G[t+A++]=0;return t}(t)))throw new bA.ErrnoError(48);G.set(s,o)}else a=!1,o=s.byteOffset;return{ptr:o,allocated:a}},msync:function(A,e,t,n,r){if(!bA.isFile(A.node.mode))throw new bA.ErrnoError(43);return 2&r?0:(wA.stream_ops.write(A,e,0,n,t,!1),0)}}},bA={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,lookupPath:function(A,e){if(e=e||{},!(A=mA.resolve(bA.cwd(),A)))return{path:"",node:null};var t={follow_mount:!0,recurse_count:0};for(var n in t)void 0===e[n]&&(e[n]=t[n]);if(e.recurse_count>8)throw new bA.ErrnoError(32);for(var r=pA.normalizeArray(A.split("/").filter(function(A){return!!A}),!1),i=bA.root,o="/",a=0;a<r.length;a++){var s=a===r.length-1;if(s&&e.parent)break;if(i=bA.lookupNode(i,r[a]),o=pA.join2(o,r[a]),bA.isMountpoint(i)&&(!s||s&&e.follow_mount)&&(i=i.mounted.root),!s||e.follow)for(var g=0;bA.isLink(i.mode);){var I=bA.readlink(o);if(o=mA.resolve(pA.dirname(o),I),i=bA.lookupPath(o,{recurse_count:e.recurse_count}).node,g++>40)throw new bA.ErrnoError(32)}}return{path:o,node:i}},getPath:function(A){for(var e;;){if(bA.isRoot(A)){var t=A.mount.mountpoint;return e?"/"!==t[t.length-1]?t+"/"+e:t+e:t}e=e?A.name+"/"+e:A.name,A=A.parent}},hashName:function(A,e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(A+t>>>0)%bA.nameTable.length},hashAddNode:function(A){var e=bA.hashName(A.parent.id,A.name);A.name_next=bA.nameTable[e],bA.nameTable[e]=A},hashRemoveNode:function(A){var e=bA.hashName(A.parent.id,A.name);if(bA.nameTable[e]===A)bA.nameTable[e]=A.name_next;else for(var t=bA.nameTable[e];t;){if(t.name_next===A){t.name_next=A.name_next;break}t=t.name_next}},lookupNode:function(A,e){var t=bA.mayLookup(A);if(t)throw new bA.ErrnoError(t,A);for(var n=bA.hashName(A.id,e),r=bA.nameTable[n];r;r=r.name_next){var i=r.name;if(r.parent.id===A.id&&i===e)return r}return bA.lookup(A,e)},createNode:function(A,e,t,n){var r=new bA.FSNode(A,e,t,n);return bA.hashAddNode(r),r},destroyNode:function(A){bA.hashRemoveNode(A)},isRoot:function(A){return A===A.parent},isMountpoint:function(A){return!!A.mounted},isFile:function(A){return 32768==(61440&A)},isDir:function(A){return 16384==(61440&A)},isLink:function(A){return 40960==(61440&A)},isChrdev:function(A){return 8192==(61440&A)},isBlkdev:function(A){return 24576==(61440&A)},isFIFO:function(A){return 4096==(61440&A)},isSocket:function(A){return 49152==(49152&A)},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(A){var e=bA.flagModes[A];if(void 0===e)throw new Error("Unknown file open mode: "+A);return e},flagsToPermissionString:function(A){var e=["r","w","rw"][3&A];return 512&A&&(e+="w"),e},nodePermissions:function(A,e){return bA.ignorePermissions?0:(-1===e.indexOf("r")||292&A.mode)&&(-1===e.indexOf("w")||146&A.mode)&&(-1===e.indexOf("x")||73&A.mode)?0:2},mayLookup:function(A){return bA.nodePermissions(A,"x")||(A.node_ops.lookup?0:2)},mayCreate:function(A,e){try{return bA.lookupNode(A,e),20}catch(r){}return bA.nodePermissions(A,"wx")},mayDelete:function(A,e,t){var r;try{r=bA.lookupNode(A,e)}catch(n){return n.errno}var i=bA.nodePermissions(A,"wx");if(i)return i;if(t){if(!bA.isDir(r.mode))return 54;if(bA.isRoot(r)||bA.getPath(r)===bA.cwd())return 10}else if(bA.isDir(r.mode))return 31;return 0},mayOpen:function(A,e){return A?bA.isLink(A.mode)?32:bA.isDir(A.mode)&&("r"!==bA.flagsToPermissionString(e)||512&e)?31:bA.nodePermissions(A,bA.flagsToPermissionString(e)):44},MAX_OPEN_FDS:4096,nextfd:function(A,e){A=A||0,e=e||bA.MAX_OPEN_FDS;for(var t=A;t<=e;t++)if(!bA.streams[t])return t;throw new bA.ErrnoError(33)},getStream:function(A){return bA.streams[A]},createStream:function(A,e,t){bA.FSStream||(bA.FSStream=function(){},bA.FSStream.prototype={object:{get:function(){return this.node},set:function(A){this.node=A}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var n=new bA.FSStream;for(var r in A)n[r]=A[r];A=n;var i=bA.nextfd(e,t);return A.fd=i,bA.streams[i]=A,A},closeStream:function(A){bA.streams[A]=null},chrdev_stream_ops:{open:function(A){var e=bA.getDevice(A.node.rdev);A.stream_ops=e.stream_ops,A.stream_ops.open&&A.stream_ops.open(A)},llseek:function(){throw new bA.ErrnoError(70)}},major:function(A){return A>>8},minor:function(A){return 255&A},makedev:function(A,e){return A<<8|e},registerDevice:function(A,e){bA.devices[A]={stream_ops:e}},getDevice:function(A){return bA.devices[A]},getMounts:function(A){for(var e=[],t=[A];t.length;){var n=t.pop();e.push(n),t.push.apply(t,n.mounts)}return e},syncfs:function(A,e){"function"==typeof A&&(e=A,A=!1),bA.syncFSRequests++,bA.syncFSRequests>1&&w("warning: "+bA.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var t=bA.getMounts(bA.root.mount),n=0;function r(A){return bA.syncFSRequests--,e(A)}function i(A){if(A)return i.errored?void 0:(i.errored=!0,r(A));++n>=t.length&&r(null)}t.forEach(function(e){if(!e.type.syncfs)return i(null);e.type.syncfs(e,A,i)})},mount:function(A,e,t){var n,r="/"===t,i=!t;if(r&&bA.root)throw new bA.ErrnoError(10);if(!r&&!i){var o=bA.lookupPath(t,{follow_mount:!1});if(t=o.path,n=o.node,bA.isMountpoint(n))throw new bA.ErrnoError(10);if(!bA.isDir(n.mode))throw new bA.ErrnoError(54)}var a={type:A,opts:e,mountpoint:t,mounts:[]},s=A.mount(a);return s.mount=a,a.root=s,r?bA.root=s:n&&(n.mounted=a,n.mount&&n.mount.mounts.push(a)),s},unmount:function(A){var e=bA.lookupPath(A,{follow_mount:!1});if(!bA.isMountpoint(e.node))throw new bA.ErrnoError(28);var t=e.node,n=t.mounted,r=bA.getMounts(n);Object.keys(bA.nameTable).forEach(function(A){for(var e=bA.nameTable[A];e;){var t=e.name_next;-1!==r.indexOf(e.mount)&&bA.destroyNode(e),e=t}}),t.mounted=null;var i=t.mount.mounts.indexOf(n);t.mount.mounts.splice(i,1)},lookup:function(A,e){return A.node_ops.lookup(A,e)},mknod:function(A,e,t){var n=bA.lookupPath(A,{parent:!0}).node,r=pA.basename(A);if(!r||"."===r||".."===r)throw new bA.ErrnoError(28);var i=bA.mayCreate(n,r);if(i)throw new bA.ErrnoError(i);if(!n.node_ops.mknod)throw new bA.ErrnoError(63);return n.node_ops.mknod(n,r,e,t)},create:function(A,e){return e=void 0!==e?e:438,e&=4095,e|=32768,bA.mknod(A,e,0)},mkdir:function(A,e){return e=void 0!==e?e:511,e&=1023,e|=16384,bA.mknod(A,e,0)},mkdirTree:function(A,e){for(var t=A.split("/"),r="",i=0;i<t.length;++i)if(t[i]){r+="/"+t[i];try{bA.mkdir(r,e)}catch(n){if(20!=n.errno)throw n}}},mkdev:function(A,e,t){return void 0===t&&(t=e,e=438),e|=8192,bA.mknod(A,e,t)},symlink:function(A,e){if(!mA.resolve(A))throw new bA.ErrnoError(44);var t=bA.lookupPath(e,{parent:!0}).node;if(!t)throw new bA.ErrnoError(44);var n=pA.basename(e),r=bA.mayCreate(t,n);if(r)throw new bA.ErrnoError(r);if(!t.node_ops.symlink)throw new bA.ErrnoError(63);return t.node_ops.symlink(t,n,A)},rename:function(A,e){var t,n,r=pA.dirname(A),i=pA.dirname(e),o=pA.basename(A),a=pA.basename(e);if(t=bA.lookupPath(A,{parent:!0}).node,n=bA.lookupPath(e,{parent:!0}).node,!t||!n)throw new bA.ErrnoError(44);if(t.mount!==n.mount)throw new bA.ErrnoError(75);var s,g=bA.lookupNode(t,o),I=mA.relative(A,i);if("."!==I.charAt(0))throw new bA.ErrnoError(28);if("."!==(I=mA.relative(e,r)).charAt(0))throw new bA.ErrnoError(55);try{s=bA.lookupNode(n,a)}catch(B){}if(g!==s){var u=bA.isDir(g.mode),f=bA.mayDelete(t,o,u);if(f)throw new bA.ErrnoError(f);if(f=s?bA.mayDelete(n,a,u):bA.mayCreate(n,a))throw new bA.ErrnoError(f);if(!t.node_ops.rename)throw new bA.ErrnoError(63);if(bA.isMountpoint(g)||s&&bA.isMountpoint(s))throw new bA.ErrnoError(10);if(n!==t&&(f=bA.nodePermissions(t,"w")))throw new bA.ErrnoError(f);try{bA.trackingDelegate.willMovePath&&bA.trackingDelegate.willMovePath(A,e)}catch(B){w("FS.trackingDelegate['willMovePath']('"+A+"', '"+e+"') threw an exception: "+B.message)}bA.hashRemoveNode(g);try{t.node_ops.rename(g,n,a)}catch(B){throw B}finally{bA.hashAddNode(g)}try{bA.trackingDelegate.onMovePath&&bA.trackingDelegate.onMovePath(A,e)}catch(B){w("FS.trackingDelegate['onMovePath']('"+A+"', '"+e+"') threw an exception: "+B.message)}}},rmdir:function(A){var e=bA.lookupPath(A,{parent:!0}).node,t=pA.basename(A),r=bA.lookupNode(e,t),i=bA.mayDelete(e,t,!0);if(i)throw new bA.ErrnoError(i);if(!e.node_ops.rmdir)throw new bA.ErrnoError(63);if(bA.isMountpoint(r))throw new bA.ErrnoError(10);try{bA.trackingDelegate.willDeletePath&&bA.trackingDelegate.willDeletePath(A)}catch(n){w("FS.trackingDelegate['willDeletePath']('"+A+"') threw an exception: "+n.message)}e.node_ops.rmdir(e,t),bA.destroyNode(r);try{bA.trackingDelegate.onDeletePath&&bA.trackingDelegate.onDeletePath(A)}catch(n){w("FS.trackingDelegate['onDeletePath']('"+A+"') threw an exception: "+n.message)}},readdir:function(A){var e=bA.lookupPath(A,{follow:!0}).node;if(!e.node_ops.readdir)throw new bA.ErrnoError(54);return e.node_ops.readdir(e)},unlink:function(A){var e=bA.lookupPath(A,{parent:!0}).node,t=pA.basename(A),r=bA.lookupNode(e,t),i=bA.mayDelete(e,t,!1);if(i)throw new bA.ErrnoError(i);if(!e.node_ops.unlink)throw new bA.ErrnoError(63);if(bA.isMountpoint(r))throw new bA.ErrnoError(10);try{bA.trackingDelegate.willDeletePath&&bA.trackingDelegate.willDeletePath(A)}catch(n){w("FS.trackingDelegate['willDeletePath']('"+A+"') threw an exception: "+n.message)}e.node_ops.unlink(e,t),bA.destroyNode(r);try{bA.trackingDelegate.onDeletePath&&bA.trackingDelegate.onDeletePath(A)}catch(n){w("FS.trackingDelegate['onDeletePath']('"+A+"') threw an exception: "+n.message)}},readlink:function(A){var e=bA.lookupPath(A).node;if(!e)throw new bA.ErrnoError(44);if(!e.node_ops.readlink)throw new bA.ErrnoError(28);return mA.resolve(bA.getPath(e.parent),e.node_ops.readlink(e))},stat:function(A,e){var t=bA.lookupPath(A,{follow:!e}).node;if(!t)throw new bA.ErrnoError(44);if(!t.node_ops.getattr)throw new bA.ErrnoError(63);return t.node_ops.getattr(t)},lstat:function(A){return bA.stat(A,!0)},chmod:function(A,e,t){var n;if(!(n="string"==typeof A?bA.lookupPath(A,{follow:!t}).node:A).node_ops.setattr)throw new bA.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&e|-4096&n.mode,timestamp:Date.now()})},lchmod:function(A,e){bA.chmod(A,e,!0)},fchmod:function(A,e){var t=bA.getStream(A);if(!t)throw new bA.ErrnoError(8);bA.chmod(t.node,e)},chown:function(A,e,t,n){var r;if(!(r="string"==typeof A?bA.lookupPath(A,{follow:!n}).node:A).node_ops.setattr)throw new bA.ErrnoError(63);r.node_ops.setattr(r,{timestamp:Date.now()})},lchown:function(A,e,t){bA.chown(A,e,t,!0)},fchown:function(A,e,t){var n=bA.getStream(A);if(!n)throw new bA.ErrnoError(8);bA.chown(n.node,e,t)},truncate:function(A,e){if(e<0)throw new bA.ErrnoError(28);var t;if(!(t="string"==typeof A?bA.lookupPath(A,{follow:!0}).node:A).node_ops.setattr)throw new bA.ErrnoError(63);if(bA.isDir(t.mode))throw new bA.ErrnoError(31);if(!bA.isFile(t.mode))throw new bA.ErrnoError(28);var n=bA.nodePermissions(t,"w");if(n)throw new bA.ErrnoError(n);t.node_ops.setattr(t,{size:e,timestamp:Date.now()})},ftruncate:function(A,e){var t=bA.getStream(A);if(!t)throw new bA.ErrnoError(8);if(0==(2097155&t.flags))throw new bA.ErrnoError(28);bA.truncate(t.node,e)},utime:function(A,e,t){var n=bA.lookupPath(A,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(e,t)})},open:function(A,e,t,n,r){if(""===A)throw new bA.ErrnoError(44);var i;if(t=void 0===t?438:t,t=64&(e="string"==typeof e?bA.modeStringToFlags(e):e)?4095&t|32768:0,"object"==typeof A)i=A;else{A=pA.normalize(A);try{i=bA.lookupPath(A,{follow:!(131072&e)}).node}catch(f){}}var o=!1;if(64&e)if(i){if(128&e)throw new bA.ErrnoError(20)}else i=bA.mknod(A,t,0),o=!0;if(!i)throw new bA.ErrnoError(44);if(bA.isChrdev(i.mode)&&(e&=-513),65536&e&&!bA.isDir(i.mode))throw new bA.ErrnoError(54);if(!o){var s=bA.mayOpen(i,e);if(s)throw new bA.ErrnoError(s)}512&e&&bA.truncate(i,0),e&=-131713;var g=bA.createStream({node:i,path:bA.getPath(i),flags:e,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1},n,r);g.stream_ops.open&&g.stream_ops.open(g),!a.logReadFiles||1&e||(bA.readFiles||(bA.readFiles={}),A in bA.readFiles||(bA.readFiles[A]=1,w("FS.trackingDelegate error on read file: "+A)));try{if(bA.trackingDelegate.onOpenFile){var I=0;1!=(2097155&e)&&(I|=bA.tracking.openFlags.READ),0!=(2097155&e)&&(I|=bA.tracking.openFlags.WRITE),bA.trackingDelegate.onOpenFile(A,I)}}catch(f){w("FS.trackingDelegate['onOpenFile']('"+A+"', flags) threw an exception: "+f.message)}return g},close:function(A){if(bA.isClosed(A))throw new bA.ErrnoError(8);A.getdents&&(A.getdents=null);try{A.stream_ops.close&&A.stream_ops.close(A)}catch(t){throw t}finally{bA.closeStream(A.fd)}A.fd=null},isClosed:function(A){return null===A.fd},llseek:function(A,e,t){if(bA.isClosed(A))throw new bA.ErrnoError(8);if(!A.seekable||!A.stream_ops.llseek)throw new bA.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new bA.ErrnoError(28);return A.position=A.stream_ops.llseek(A,e,t),A.ungotten=[],A.position},read:function(A,e,t,n,r){if(n<0||r<0)throw new bA.ErrnoError(28);if(bA.isClosed(A))throw new bA.ErrnoError(8);if(1==(2097155&A.flags))throw new bA.ErrnoError(8);if(bA.isDir(A.node.mode))throw new bA.ErrnoError(31);if(!A.stream_ops.read)throw new bA.ErrnoError(28);var i=void 0!==r;if(i){if(!A.seekable)throw new bA.ErrnoError(70)}else r=A.position;var o=A.stream_ops.read(A,e,t,n,r);return i||(A.position+=o),o},write:function(A,e,t,n,r,i){if(n<0||r<0)throw new bA.ErrnoError(28);if(bA.isClosed(A))throw new bA.ErrnoError(8);if(0==(2097155&A.flags))throw new bA.ErrnoError(8);if(bA.isDir(A.node.mode))throw new bA.ErrnoError(31);if(!A.stream_ops.write)throw new bA.ErrnoError(28);A.seekable&&1024&A.flags&&bA.llseek(A,0,2);var o=void 0!==r;if(o){if(!A.seekable)throw new bA.ErrnoError(70)}else r=A.position;var a=A.stream_ops.write(A,e,t,n,r,i);o||(A.position+=a);try{A.path&&bA.trackingDelegate.onWriteToFile&&bA.trackingDelegate.onWriteToFile(A.path)}catch(s){w("FS.trackingDelegate['onWriteToFile']('"+A.path+"') threw an exception: "+s.message)}return a},allocate:function(A,e,t){if(bA.isClosed(A))throw new bA.ErrnoError(8);if(e<0||t<=0)throw new bA.ErrnoError(28);if(0==(2097155&A.flags))throw new bA.ErrnoError(8);if(!bA.isFile(A.node.mode)&&!bA.isDir(A.node.mode))throw new bA.ErrnoError(43);if(!A.stream_ops.allocate)throw new bA.ErrnoError(138);A.stream_ops.allocate(A,e,t)},mmap:function(A,e,t,n,r,i){if(0!=(2&r)&&0==(2&i)&&2!=(2097155&A.flags))throw new bA.ErrnoError(2);if(1==(2097155&A.flags))throw new bA.ErrnoError(2);if(!A.stream_ops.mmap)throw new bA.ErrnoError(43);return A.stream_ops.mmap(A,e,t,n,r,i)},msync:function(A,e,t,n,r){return A&&A.stream_ops.msync?A.stream_ops.msync(A,e,t,n,r):0},munmap:function(A){return 0},ioctl:function(A,e,t){if(!A.stream_ops.ioctl)throw new bA.ErrnoError(59);return A.stream_ops.ioctl(A,e,t)},readFile:function(A,e){if((e=e||{}).flags=e.flags||0,e.encoding=e.encoding||"binary","utf8"!==e.encoding&&"binary"!==e.encoding)throw new Error('Invalid encoding type "'+e.encoding+'"');var t,n=bA.open(A,e.flags),r=bA.stat(A).size,i=new Uint8Array(r);return bA.read(n,i,0,r,0),"utf8"===e.encoding?t=Y(i,0):"binary"===e.encoding&&(t=i),bA.close(n),t},writeFile:function(A,e,t){(t=t||{}).flags=t.flags||577;var n=bA.open(A,t.flags,t.mode);if("string"==typeof e){var r=new Uint8Array(X(e)+1),i=Z(e,r,0,r.length);bA.write(n,r,0,i,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(e))throw new Error("Unsupported data type");bA.write(n,e,0,e.byteLength,void 0,t.canOwn)}bA.close(n)},cwd:function(){return bA.currentPath},chdir:function(A){var e=bA.lookupPath(A,{follow:!0});if(null===e.node)throw new bA.ErrnoError(44);if(!bA.isDir(e.node.mode))throw new bA.ErrnoError(54);var t=bA.nodePermissions(e.node,"x");if(t)throw new bA.ErrnoError(t);bA.currentPath=e.path},createDefaultDirectories:function(){bA.mkdir("/tmp"),bA.mkdir("/home"),bA.mkdir("/home/web_user")},createDefaultDevices:function(){bA.mkdir("/dev"),bA.registerDevice(bA.makedev(1,3),{read:function(){return 0},write:function(A,e,t,n,r){return n}}),bA.mkdev("/dev/null",bA.makedev(1,3)),yA.register(bA.makedev(5,0),yA.default_tty_ops),yA.register(bA.makedev(6,0),yA.default_tty1_ops),bA.mkdev("/dev/tty",bA.makedev(5,0)),bA.mkdev("/dev/tty1",bA.makedev(6,0));var e=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(u)try{var t=A("crypto");return function(){return t.randomBytes(1)[0]}}catch(r){}return function(){tA("randomDevice")}}();bA.createDevice("/dev","random",e),bA.createDevice("/dev","urandom",e),bA.mkdir("/dev/shm"),bA.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){bA.mkdir("/proc");var A=bA.mkdir("/proc/self");bA.mkdir("/proc/self/fd"),bA.mount({mount:function(){var e=bA.createNode(A,"fd",16895,73);return e.node_ops={lookup:function(A,e){var t=+e,n=bA.getStream(t);if(!n)throw new bA.ErrnoError(8);var r={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return n.path}}};return r.parent=r,r}},e}},{},"/proc/self/fd")},createStandardStreams:function(){a.stdin?bA.createDevice("/dev","stdin",a.stdin):bA.symlink("/dev/tty","/dev/stdin"),a.stdout?bA.createDevice("/dev","stdout",null,a.stdout):bA.symlink("/dev/tty","/dev/stdout"),a.stderr?bA.createDevice("/dev","stderr",null,a.stderr):bA.symlink("/dev/tty1","/dev/stderr"),bA.open("/dev/stdin",0),bA.open("/dev/stdout",1),bA.open("/dev/stderr",1)},ensureErrnoError:function(){bA.ErrnoError||(bA.ErrnoError=function(A,e){this.node=e,this.setErrno=function(A){this.errno=A},this.setErrno(A),this.message="FS error"},bA.ErrnoError.prototype=new Error,bA.ErrnoError.prototype.constructor=bA.ErrnoError,[44].forEach(function(A){bA.genericErrors[A]=new bA.ErrnoError(A),bA.genericErrors[A].stack="<generic error, no stack>"}))},staticInit:function(){bA.ensureErrnoError(),bA.nameTable=new Array(4096),bA.mount(wA,{},"/"),bA.createDefaultDirectories(),bA.createDefaultDevices(),bA.createSpecialDirectories(),bA.filesystems={MEMFS:wA}},init:function(A,e,t){bA.init.initialized=!0,bA.ensureErrnoError(),a.stdin=A||a.stdin,a.stdout=e||a.stdout,a.stderr=t||a.stderr,bA.createStandardStreams()},quit:function(){bA.init.initialized=!1;var A=a._fflush;A&&A(0);for(var e=0;e<bA.streams.length;e++){var t=bA.streams[e];t&&bA.close(t)}},getMode:function(A,e){var t=0;return A&&(t|=365),e&&(t|=146),t},findObject:function(A,e){var t=bA.analyzePath(A,e);return t.exists?t.object:null},analyzePath:function(A,e){try{A=(n=bA.lookupPath(A,{follow:!e})).path}catch(i){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=bA.lookupPath(A,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=pA.basename(A),n=bA.lookupPath(A,{follow:!e}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(i){t.error=i.errno}return t},createPath:function(A,e,t,n){A="string"==typeof A?A:bA.getPath(A);for(var r=e.split("/").reverse();r.length;){var i=r.pop();if(i){var o=pA.join2(A,i);try{bA.mkdir(o)}catch(a){}A=o}}return o},createFile:function(A,e,t,n,r){var i=pA.join2("string"==typeof A?A:bA.getPath(A),e),o=bA.getMode(n,r);return bA.create(i,o)},createDataFile:function(A,e,t,n,r,i){var o=e?pA.join2("string"==typeof A?A:bA.getPath(A),e):A,a=bA.getMode(n,r),s=bA.create(o,a);if(t){if("string"==typeof t){for(var g=new Array(t.length),I=0,u=t.length;I<u;++I)g[I]=t.charCodeAt(I);t=g}bA.chmod(s,146|a);var f=bA.open(s,577);bA.write(f,t,0,t.length,0,i),bA.close(f),bA.chmod(s,a)}return s},createDevice:function(A,e,t,n){var r=pA.join2("string"==typeof A?A:bA.getPath(A),e),i=bA.getMode(!!t,!!n);bA.createDevice.major||(bA.createDevice.major=64);var o=bA.makedev(bA.createDevice.major++,0);return bA.registerDevice(o,{open:function(A){A.seekable=!1},close:function(A){n&&n.buffer&&n.buffer.length&&n(10)},read:function(A,e,n,r,i){for(var o=0,a=0;a<r;a++){var s;try{s=t()}catch(g){throw new bA.ErrnoError(29)}if(void 0===s&&0===o)throw new bA.ErrnoError(6);if(null==s)break;o++,e[n+a]=s}return o&&(A.node.timestamp=Date.now()),o},write:function(A,e,t,r,i){for(var o=0;o<r;o++)try{n(e[t+o])}catch(a){throw new bA.ErrnoError(29)}return r&&(A.node.timestamp=Date.now()),o}}),bA.mkdev(r,i,o)},forceLoadFile:function(A){if(A.isDevice||A.isFolder||A.link||A.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new 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)throw new Error("Cannot load without read() or XMLHttpRequest.");try{A.contents=NA(d(A.url),!0),A.usedBytes=A.contents.length}catch(t){throw new bA.ErrnoError(29)}},createLazyFile:function(A,e,t,n,r){function i(){this.lengthKnown=!1,this.chunks=[]}if(i.prototype.get=function(A){if(!(A>this.length-1||A<0)){var e=A%this.chunkSize,t=A/this.chunkSize|0;return this.getter(t)[e]}},i.prototype.setDataGetter=function(A){this.getter=A},i.prototype.cacheLength=function(){var A=new XMLHttpRequest;if(A.open("HEAD",t,!1),A.send(null),!(A.status>=200&&A.status<300||304===A.status))throw new Error("Couldn't load "+t+". Status: "+A.status);var e,n=Number(A.getResponseHeader("Content-length")),r=(e=A.getResponseHeader("Accept-Ranges"))&&"bytes"===e,i=(e=A.getResponseHeader("Content-Encoding"))&&"gzip"===e,o=1048576;r||(o=n);var a=this;a.setDataGetter(function(A){var e=A*o,r=(A+1)*o-1;if(r=Math.min(r,n-1),void 0===a.chunks[A]&&(a.chunks[A]=function(A,e){if(A>e)throw new Error("invalid range ("+A+", "+e+") or no bytes requested!");if(e>n-1)throw new Error("only "+n+" bytes available! programmer error!");var r=new XMLHttpRequest;if(r.open("GET",t,!1),n!==o&&r.setRequestHeader("Range","bytes="+A+"-"+e),"undefined"!=typeof Uint8Array&&(r.responseType="arraybuffer"),r.overrideMimeType&&r.overrideMimeType("text/plain; charset=x-user-defined"),r.send(null),!(r.status>=200&&r.status<300||304===r.status))throw new Error("Couldn't load "+t+". Status: "+r.status);return void 0!==r.response?new Uint8Array(r.response||[]):NA(r.responseText||"",!0)}(e,r)),void 0===a.chunks[A])throw new Error("doXHR failed!");return a.chunks[A]}),!i&&n||(o=n=1,n=this.getter(0).length,o=n,y("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=o,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!c)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var o=new i;Object.defineProperties(o,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var a={isDevice:!1,contents:o}}else a={isDevice:!1,url:t};var s=bA.createFile(A,e,a,n,r);a.contents?s.contents=a.contents:a.url&&(s.contents=null,s.url=a.url),Object.defineProperties(s,{usedBytes:{get:function(){return this.contents.length}}});var g={};return Object.keys(s.stream_ops).forEach(function(A){var e=s.stream_ops[A];g[A]=function(){return bA.forceLoadFile(s),e.apply(null,arguments)}}),g.read=function(A,e,t,n,r){bA.forceLoadFile(s);var i=A.node.contents;if(r>=i.length)return 0;var o=Math.min(i.length-r,n);if(i.slice)for(var a=0;a<o;a++)e[t+a]=i[r+a];else for(a=0;a<o;a++)e[t+a]=i.get(r+a);return o},s.stream_ops=g,s},createPreloadedFile:function(A,e,t,n,r,i,o,s,g,I){Browser.init();var u=e?mA.resolve(pA.join2(A,e)):A;function f(t){function f(t){I&&I(),s||bA.createDataFile(A,e,t,n,r,g),i&&i(),eA()}var l=!1;a.preloadPlugins.forEach(function(A){l||A.canHandle(u)&&(A.handle(t,u,f,function(){o&&o(),eA()}),l=!0)}),l||f(t)}AA(),"string"==typeof t?Browser.asyncLoad(t,function(A){f(A)},o):f(t)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(A,e,t){e=e||function(){},t=t||function(){};var r=bA.indexedDB();try{var i=r.open(bA.DB_NAME(),bA.DB_VERSION)}catch(n){return t(n)}i.onupgradeneeded=function(){y("creating db"),i.result.createObjectStore(bA.DB_STORE_NAME)},i.onsuccess=function(){var n=i.result.transaction([bA.DB_STORE_NAME],"readwrite"),r=n.objectStore(bA.DB_STORE_NAME),o=0,a=0,s=A.length;function g(){0==a?e():t()}A.forEach(function(A){var e=r.put(bA.analyzePath(A).object.contents,A);e.onsuccess=function(){++o+a==s&&g()},e.onerror=function(){o+ ++a==s&&g()}}),n.onerror=t},i.onerror=t},loadFilesFromDB:function(A,e,t){e=e||function(){},t=t||function(){};var r=bA.indexedDB();try{var i=r.open(bA.DB_NAME(),bA.DB_VERSION)}catch(n){return t(n)}i.onupgradeneeded=t,i.onsuccess=function(){var r=i.result;try{var o=r.transaction([bA.DB_STORE_NAME],"readonly")}catch(n){return void t(n)}var a=o.objectStore(bA.DB_STORE_NAME),s=0,g=0,I=A.length;function u(){0==g?e():t()}A.forEach(function(A){var e=a.get(A);e.onsuccess=function(){bA.analyzePath(A).exists&&bA.unlink(A),bA.createDataFile(pA.dirname(A),pA.basename(A),e.result,!0,!0,!0),++s+g==I&&u()},e.onerror=function(){s+ ++g==I&&u()}}),o.onerror=t},i.onerror=t}},_A={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(A,e,t){if("/"===e[0])return e;var n;if(-100===A)n=bA.cwd();else{var r=bA.getStream(A);if(!r)throw new bA.ErrnoError(8);n=r.path}if(0==e.length){if(!t)throw new bA.ErrnoError(44);return n}return pA.join2(n,e)},doStat:function(A,e,t){try{var n=A(e)}catch(i){if(i&&i.node&&pA.normalize(e)!==pA.normalize(bA.getPath(i.node)))return-54;throw i}return L[t>>2]=n.dev,L[t+4>>2]=0,L[t+8>>2]=n.ino,L[t+12>>2]=n.mode,L[t+16>>2]=n.nlink,L[t+20>>2]=n.uid,L[t+24>>2]=n.gid,L[t+28>>2]=n.rdev,L[t+32>>2]=0,IA=[n.size>>>0,(gA=n.size,+Math.abs(gA)>=1?gA>0?(0|Math.min(+Math.floor(gA/4294967296),4294967295))>>>0:~~+Math.ceil((gA-+(~~gA>>>0))/4294967296)>>>0:0)],L[t+40>>2]=IA[0],L[t+44>>2]=IA[1],L[t+48>>2]=4096,L[t+52>>2]=n.blocks,L[t+56>>2]=n.atime.getTime()/1e3|0,L[t+60>>2]=0,L[t+64>>2]=n.mtime.getTime()/1e3|0,L[t+68>>2]=0,L[t+72>>2]=n.ctime.getTime()/1e3|0,L[t+76>>2]=0,IA=[n.ino>>>0,(gA=n.ino,+Math.abs(gA)>=1?gA>0?(0|Math.min(+Math.floor(gA/4294967296),4294967295))>>>0:~~+Math.ceil((gA-+(~~gA>>>0))/4294967296)>>>0:0)],L[t+80>>2]=IA[0],L[t+84>>2]=IA[1],0},doMsync:function(A,e,t,n,r){var i=N.slice(A,A+t);bA.msync(e,i,r,t,n)},doMkdir:function(A,e){return"/"===(A=pA.normalize(A))[A.length-1]&&(A=A.substr(0,A.length-1)),bA.mkdir(A,e,0),0},doMknod:function(A,e,t){switch(61440&e){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return bA.mknod(A,e,t),0},doReadlink:function(A,e,t){if(t<=0)return-28;var n=bA.readlink(A),r=Math.min(t,X(n)),i=G[e+r];return H(n,e,t+1),G[e+r]=i,r},doAccess:function(A,e){if(-8&e)return-28;var t;if(!(t=bA.lookupPath(A,{follow:!0}).node))return-44;var n="";return 4&e&&(n+="r"),2&e&&(n+="w"),1&e&&(n+="x"),n&&bA.nodePermissions(t,n)?-2:0},doDup:function(A,e,t){var n=bA.getStream(t);return n&&bA.close(n),bA.open(A,e,0,t,t).fd},doReadv:function(A,e,t,n){for(var r=0,i=0;i<t;i++){var o=L[e+8*i>>2],a=L[e+(8*i+4)>>2],s=bA.read(A,G,o,a,n);if(s<0)return-1;if(r+=s,s<a)break}return r},doWritev:function(A,e,t,n){for(var r=0,i=0;i<t;i++){var o=L[e+8*i>>2],a=L[e+(8*i+4)>>2],s=bA.write(A,G,o,a,n);if(s<0)return-1;r+=s}return r},varargs:void 0,get:function(){return _A.varargs+=4,L[_A.varargs-4>>2]},getStr:function(A){return x(A)},getStreamFromFD:function(A){var e=bA.getStream(A);if(!e)throw new bA.ErrnoError(8);return e},get64:function(A,e){return A}},DA={};function vA(){if(!vA.strings){var A={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:l||"./this.program"};for(var e in DA)A[e]=DA[e];var t=[];for(var e in A)t.push(e+"="+A[e]);vA.strings=t}return vA.strings}function RA(A){return A%4==0&&(A%100!=0||A%400==0)}function FA(A,e){for(var t=0,n=0;n<=e;t+=A[n++]);return t}var MA=[31,29,31,30,31,30,31,31,30,31,30,31],SA=[31,28,31,30,31,30,31,31,30,31,30,31];function kA(A,e){for(var t=new Date(A.getTime());e>0;){var n=RA(t.getFullYear()),r=t.getMonth(),i=(n?MA:SA)[r];if(!(e>i-t.getDate()))return t.setDate(t.getDate()+e),t;e-=i-t.getDate()+1,t.setDate(1),r<11?t.setMonth(r+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return t}var GA=function(A,e,t,n){A||(A=this),this.parent=A,this.mount=A.mount,this.mounted=null,this.id=bA.nextInode++,this.name=e,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=n};function NA(A,e,t){var n=t>0?t:X(A)+1,r=new Array(n),i=Z(A,r,0,r.length);return e&&(r.length=i),r}Object.defineProperties(GA.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(A){A?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(A){A?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return bA.isDir(this.mode)}},isDevice:{get:function(){return bA.isChrdev(this.mode)}}}),bA.FSNode=GA,bA.staticInit();var PA,LA={k:function(A){return ZA(A+BA.SIZE)+BA.SIZE},p:function(A){var e=new cA(A),t=e.get_exception_info();return t.get_caught()||(t.set_caught(!0),CA--),t.set_rethrown(!1),dA.push(e),t.add_ref(),e.get_exception_ptr()},r:function(){_setThrew(0);var A=dA.pop();!function(A){if(A.release_ref()&&!A.get_rethrown()){var e=A.get_destructor();e&&W.get(e)(A.excPtr),QA(A.excPtr)}}(A.get_exception_info()),A.free(),hA=0},b:function(){var A=hA;if(!A)return v(0),0;var e=new EA(A).get_type(),t=new cA;if(t.set_base_ptr(A),!e)return v(0),0|t.ptr;var n=Array.prototype.slice.call(arguments),r=HA(),i=KA(4);L[i>>2]=A;for(var o=0;o<n.length;o++){var a=n[o];if(0===a||a===e)break;if(TA(a,e,i)){var s=L[i>>2];return A!==s&&t.set_adjusted_ptr(s),v(0|a),0|t.ptr}}return XA(r),v(0|e),0|t.ptr},g:function(){var A=hA;if(!A)return v(0),0;var e=new EA(A).get_type(),t=new cA;if(t.set_base_ptr(A),!e)return v(0),0|t.ptr;var n=Array.prototype.slice.call(arguments),r=HA(),i=KA(4);L[i>>2]=A;for(var o=0;o<n.length;o++){var a=n[o];if(0===a||a===e)break;if(TA(a,e,i)){var s=L[i>>2];return A!==s&&t.set_adjusted_ptr(s),v(0|a),0|t.ptr}}return XA(r),v(0|e),0|t.ptr},w:QA,E:function(){var A=dA.pop();A||tA("no exception to throw");var e=A.get_exception_info(),t=A.get_base_ptr();throw e.get_rethrown()?A.free():(dA.push(A),e.set_rethrown(!0),e.set_caught(!1),CA++),hA=t,t},j:function(A,e,t){throw new EA(A).init(e,t),hA=A,CA++,A},N:function(){return CA},d:function(A){var e=new cA(A),t=e.get_base_ptr();throw hA||(hA=t),e.free(),t},B:function(A,e,t){_A.varargs=t;try{var n=_A.getStreamFromFD(A);switch(e){case 0:return(r=_A.get())<0?-28:bA.open(n.path,n.flags,0,r).fd;case 1:case 2:return 0;case 3:return n.flags;case 4:var r=_A.get();return n.flags|=r,0;case 12:return r=_A.get(),P[r+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return 28,L[xA()>>2]=28,-1;default:return-28}}catch(o){return void 0!==bA&&o instanceof bA.ErrnoError||tA(o),-o.errno}},M:function(A,e,t){_A.varargs=t;try{var r=_A.getStreamFromFD(A);switch(e){case 21509:case 21505:return r.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return r.tty?0:-59;case 21519:if(!r.tty)return-59;var i=_A.get();return L[i>>2]=0,0;case 21520:return r.tty?-28:-59;case 21531:return i=_A.get(),bA.ioctl(r,e,i);case 21523:case 21524:return r.tty?0:-59;default:tA("bad ioctl syscall "+e)}}catch(n){return void 0!==bA&&n instanceof bA.ErrnoError||tA(n),-n.errno}},T:function(A,e,t){_A.varargs=t;try{var r=_A.getStr(A),i=t?_A.get():0;return bA.open(r,e,i).fd}catch(n){return void 0!==bA&&n instanceof bA.ErrnoError||tA(n),-n.errno}},R:function(){tA()},K:function(A,e,t){N.copyWithin(A,e,e+t)},L:function(A){tA("OOM")},P:function(A,e){try{var t=0;return vA().forEach(function(n,r){var i=e+t;L[A+4*r>>2]=i,function(A,e,t){for(var n=0;n<A.length;++n)G[e++>>0]=A.charCodeAt(n);G[e>>0]=0}(n,i),t+=n.length+1}),0}catch(n){return void 0!==bA&&n instanceof bA.ErrnoError||tA(n),n.errno}},Q:function(A,e){try{var t=vA();L[A>>2]=t.length;var n=0;return t.forEach(function(A){n+=A.length+1}),L[e>>2]=n,0}catch(i){return void 0!==bA&&i instanceof bA.ErrnoError||tA(i),i.errno}},z:function(A){try{var e=_A.getStreamFromFD(A);return bA.close(e),0}catch(r){return void 0!==bA&&r instanceof bA.ErrnoError||tA(r),r.errno}},F:function(A,e,t,n){try{var r=_A.getStreamFromFD(A),i=_A.doReadv(r,e,t);return L[n>>2]=i,0}catch(o){return void 0!==bA&&o instanceof bA.ErrnoError||tA(o),o.errno}},I:function(A,e,t,n,r){try{var i=_A.getStreamFromFD(A),o=4294967296*t+(e>>>0);return o<=-9007199254740992||o>=9007199254740992?-61:(bA.llseek(i,o,n),IA=[i.position>>>0,(gA=i.position,+Math.abs(gA)>=1?gA>0?(0|Math.min(+Math.floor(gA/4294967296),4294967295))>>>0:~~+Math.ceil((gA-+(~~gA>>>0))/4294967296)>>>0:0)],L[r>>2]=IA[0],L[r+4>>2]=IA[1],i.getdents&&0===o&&0===n&&(i.getdents=null),0)}catch(a){return void 0!==bA&&a instanceof bA.ErrnoError||tA(a),a.errno}},y:function(A,e,t,n){try{var r=_A.getStreamFromFD(A),i=_A.doWritev(r,e,t);return L[n>>2]=i,0}catch(o){return void 0!==bA&&o instanceof bA.ErrnoError||tA(o),o.errno}},a:function(){return 0|D},A:function(A,e,t,r){var i=HA();try{return W.get(A)(e,t,r)}catch(n){if(XA(i),n!==n+0&&"longjmp"!==n)throw n;_setThrew(1,0)}},C:function(A,e,t,r){var i=HA();try{return W.get(A)(e,t,r)}catch(n){if(XA(i),n!==n+0&&"longjmp"!==n)throw n;_setThrew(1,0)}},l:function(A){var e=HA();try{return W.get(A)()}catch(r){if(XA(e),r!==r+0&&"longjmp"!==r)throw r;_setThrew(1,0)}},c:function(A,e){var t=HA();try{return W.get(A)(e)}catch(n){if(XA(t),n!==n+0&&"longjmp"!==n)throw n;_setThrew(1,0)}},f:function(A,e,t){var n=HA();try{return W.get(A)(e,t)}catch(i){if(XA(n),i!==i+0&&"longjmp"!==i)throw i;_setThrew(1,0)}},m:function(A,e,t,r){var i=HA();try{return W.get(A)(e,t,r)}catch(n){if(XA(i),n!==n+0&&"longjmp"!==n)throw n;_setThrew(1,0)}},i:function(A,e,t,n,r){var i=HA();try{return W.get(A)(e,t,n,r)}catch(o){if(XA(i),o!==o+0&&"longjmp"!==o)throw o;_setThrew(1,0)}},S:function(A,e,t,n,r,i){var o=HA();try{return W.get(A)(e,t,n,r,i)}catch(a){if(XA(o),a!==a+0&&"longjmp"!==a)throw a;_setThrew(1,0)}},q:function(A,e,t,n,r,i,o){var a=HA();try{return W.get(A)(e,t,n,r,i,o)}catch(s){if(XA(a),s!==s+0&&"longjmp"!==s)throw s;_setThrew(1,0)}},D:function(A,e,t,n,r,i,o,a){var s=HA();try{return W.get(A)(e,t,n,r,i,o,a)}catch(g){if(XA(s),g!==g+0&&"longjmp"!==g)throw g;_setThrew(1,0)}},v:function(A,e,t,n,r,i,o,a,s,g,I,u){var f=HA();try{return W.get(A)(e,t,n,r,i,o,a,s,g,I,u)}catch(B){if(XA(f),B!==B+0&&"longjmp"!==B)throw B;_setThrew(1,0)}},G:function(A,e,t,n,r){var i=HA();try{return JA(A,e,t,n,r)}catch(o){if(XA(i),o!==o+0&&"longjmp"!==o)throw o;_setThrew(1,0)}},h:function(A){var e=HA();try{W.get(A)()}catch(r){if(XA(e),r!==r+0&&"longjmp"!==r)throw r;_setThrew(1,0)}},s:function(A,e){var t=HA();try{W.get(A)(e)}catch(n){if(XA(t),n!==n+0&&"longjmp"!==n)throw n;_setThrew(1,0)}},e:function(A,e,t){var n=HA();try{W.get(A)(e,t)}catch(i){if(XA(n),i!==i+0&&"longjmp"!==i)throw i;_setThrew(1,0)}},n:function(A,e,t,r){var i=HA();try{W.get(A)(e,t,r)}catch(n){if(XA(i),n!==n+0&&"longjmp"!==n)throw n;_setThrew(1,0)}},x:function(A,e,t,n,r){var i=HA();try{W.get(A)(e,t,n,r)}catch(o){if(XA(i),o!==o+0&&"longjmp"!==o)throw o;_setThrew(1,0)}},o:function(A,e,t,n,r,i,o,a){var s=HA();try{W.get(A)(e,t,n,r,i,o,a)}catch(g){if(XA(s),g!==g+0&&"longjmp"!==g)throw g;_setThrew(1,0)}},t:function(A,e,t,n,r,i,o,a,s,g,I){var u=HA();try{W.get(A)(e,t,n,r,i,o,a,s,g,I)}catch(l){if(XA(u),l!==l+0&&"longjmp"!==l)throw l;_setThrew(1,0)}},u:function(A,e,t,n,r,i,o,a,s,g,I,u,f,l,B,E){var c=HA();try{W.get(A)(e,t,n,r,i,o,a,s,g,I,u,f,l,B,E)}catch(d){if(XA(c),d!==d+0&&"longjmp"!==d)throw d;_setThrew(1,0)}},H:function(A,e,t,n,r,i,o){var a=HA();try{qA(A,e,t,n,r,i,o)}catch(s){if(XA(a),s!==s+0&&"longjmp"!==s)throw s;_setThrew(1,0)}},J:function(A){v(0|A)},O:function(A,e,t,n){return function(A,e,t,n){var r=L[n+40>>2],i={tm_sec:L[n>>2],tm_min:L[n+4>>2],tm_hour:L[n+8>>2],tm_mday:L[n+12>>2],tm_mon:L[n+16>>2],tm_year:L[n+20>>2],tm_wday:L[n+24>>2],tm_yday:L[n+28>>2],tm_isdst:L[n+32>>2],tm_gmtoff:L[n+36>>2],tm_zone:r?x(r):""},o=x(t),a={"%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","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var s in a)o=o.replace(new RegExp(s,"g"),a[s]);var g=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],I=["January","February","March","April","May","June","July","August","September","October","November","December"];function u(A,e,t){for(var n="number"==typeof A?A.toString():A||"";n.length<e;)n=t[0]+n;return n}function f(A,e){return u(A,e,"0")}function l(A,e){function t(A){return A<0?-1:A>0?1:0}var n;return 0===(n=t(A.getFullYear()-e.getFullYear()))&&0===(n=t(A.getMonth()-e.getMonth()))&&(n=t(A.getDate()-e.getDate())),n}function B(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 E(A){var e=kA(new Date(A.tm_year+1900,0,1),A.tm_yday),t=new Date(e.getFullYear(),0,4),n=new Date(e.getFullYear()+1,0,4),r=B(t),i=B(n);return l(r,e)<=0?l(i,e)<=0?e.getFullYear()+1:e.getFullYear():e.getFullYear()-1}var c={"%a":function(A){return g[A.tm_wday].substring(0,3)},"%A":function(A){return g[A.tm_wday]},"%b":function(A){return I[A.tm_mon].substring(0,3)},"%B":function(A){return I[A.tm_mon]},"%C":function(A){return f((A.tm_year+1900)/100|0,2)},"%d":function(A){return f(A.tm_mday,2)},"%e":function(A){return u(A.tm_mday,2," ")},"%g":function(A){return E(A).toString().substring(2)},"%G":function(A){return E(A)},"%H":function(A){return f(A.tm_hour,2)},"%I":function(A){var e=A.tm_hour;return 0==e?e=12:e>12&&(e-=12),f(e,2)},"%j":function(A){return f(A.tm_mday+FA(RA(A.tm_year+1900)?MA:SA,A.tm_mon-1),3)},"%m":function(A){return f(A.tm_mon+1,2)},"%M":function(A){return f(A.tm_min,2)},"%n":function(){return"\n"},"%p":function(A){return A.tm_hour>=0&&A.tm_hour<12?"AM":"PM"},"%S":function(A){return f(A.tm_sec,2)},"%t":function(){return"\t"},"%u":function(A){return A.tm_wday||7},"%U":function(A){var e=new Date(A.tm_year+1900,0,1),t=0===e.getDay()?e:kA(e,7-e.getDay()),n=new Date(A.tm_year+1900,A.tm_mon,A.tm_mday);if(l(t,n)<0){var r=FA(RA(n.getFullYear())?MA:SA,n.getMonth()-1)-31,i=31-t.getDate()+r+n.getDate();return f(Math.ceil(i/7),2)}return 0===l(t,e)?"01":"00"},"%V":function(A){var e,t=new Date(A.tm_year+1900,0,4),n=new Date(A.tm_year+1901,0,4),r=B(t),i=B(n),o=kA(new Date(A.tm_year+1900,0,1),A.tm_yday);return l(o,r)<0?"53":l(i,o)<=0?"01":(e=r.getFullYear()<A.tm_year+1900?A.tm_yday+32-r.getDate():A.tm_yday+1-r.getDate(),f(Math.ceil(e/7),2))},"%w":function(A){return A.tm_wday},"%W":function(A){var e=new Date(A.tm_year,0,1),t=1===e.getDay()?e:kA(e,0===e.getDay()?1:7-e.getDay()+1),n=new Date(A.tm_year+1900,A.tm_mon,A.tm_mday);if(l(t,n)<0){var r=FA(RA(n.getFullYear())?MA:SA,n.getMonth()-1)-31,i=31-t.getDate()+r+n.getDate();return f(Math.ceil(i/7),2)}return 0===l(t,e)?"01":"00"},"%y":function(A){return(A.tm_year+1900).toString().substring(2)},"%Y":function(A){return A.tm_year+1900},"%z":function(A){var e=A.tm_gmtoff,t=e>=0;return e=(e=Math.abs(e)/60)/60*100+e%60,(t?"+":"-")+String("0000"+e).slice(-4)},"%Z":function(A){return A.tm_zone},"%%":function(){return"%"}};for(var s in c)o.indexOf(s)>=0&&(o=o.replace(new RegExp(s,"g"),c[s](i)));var d=NA(o,!1);return d.length>e?0:(T(d,A),d.length-1)}(A,e,t,n)}},UA=(function(){var A={a:LA};function e(A,e){var t,n=A.exports;a.asm=n,t=a.asm.U.buffer,k=t,a.HEAP8=G=new Int8Array(t),a.HEAP16=P=new Int16Array(t),a.HEAP32=L=new Int32Array(t),a.HEAPU8=N=new Uint8Array(t),a.HEAPU16=new Uint16Array(t),a.HEAPU32=new Uint32Array(t),a.HEAPF32=new Float32Array(t),a.HEAPF64=new Float64Array(t),W=a.asm.Z,eA()}function t(A){e(A.instance)}function n(e){return function(){if(!b&&(E||c)){if("function"==typeof fetch&&!aA(uA))return fetch(uA,{credentials:"same-origin"}).then(function(A){if(!A.ok)throw"failed to load wasm binary file at '"+uA+"'";return A.arrayBuffer()}).catch(function(){return fA(uA)});if(C)return new Promise(function(A,e){C(uA,function(e){A(new Uint8Array(e))},e)})}return Promise.resolve().then(function(){return fA(uA)})}().then(function(e){return WebAssembly.instantiate(e,A)}).then(e,function(A){w("failed to asynchronously prepare wasm: "+A),tA(A)})}if(AA(),a.instantiateWasm)try{return a.instantiateWasm(A,e)}catch(i){return w("Module.instantiateWasm callback failed with error: "+i),!1}(b||"function"!=typeof WebAssembly.instantiateStreaming||iA(uA)||aA(uA)||"function"!=typeof fetch?n(t):fetch(uA,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,A).then(t,function(A){return w("wasm streaming compile failed: "+A),w("falling back to ArrayBuffer instantiation"),n(t)})})).catch(o)}(),a.___wasm_call_ctors=function(){return(UA=a.___wasm_call_ctors=a.asm.V).apply(null,arguments)}),YA=(a._debug_args=function(){return(a._debug_args=a.asm.W).apply(null,arguments)},a._composejs=function(){return(a._composejs=a.asm.X).apply(null,arguments)},a._main=function(){return(a._main=a.asm.Y).apply(null,arguments)},a._free=function(){return(YA=a._free=a.asm._).apply(null,arguments)}),xA=a.___errno_location=function(){return(xA=a.___errno_location=a.asm.$).apply(null,arguments)},ZA=a._malloc=function(){return(ZA=a._malloc=a.asm.aa).apply(null,arguments)},HA=a.stackSave=function(){return(HA=a.stackSave=a.asm.ba).apply(null,arguments)},XA=a.stackRestore=function(){return(XA=a.stackRestore=a.asm.ca).apply(null,arguments)},KA=a.stackAlloc=function(){return(KA=a.stackAlloc=a.asm.da).apply(null,arguments)},TA=a.___cxa_can_catch=function(){return(TA=a.___cxa_can_catch=a.asm.ea).apply(null,arguments)},WA=a.___cxa_is_pointer_type=function(){return(WA=a.___cxa_is_pointer_type=a.asm.fa).apply(null,arguments)},qA=a.dynCall_viijii=function(){return(qA=a.dynCall_viijii=a.asm.ga).apply(null,arguments)},JA=a.dynCall_jiiii=function(){return(JA=a.dynCall_jiiii=a.asm.ha).apply(null,arguments)};function VA(A){this.name="ExitStatus",this.message="Program terminated with exit("+A+")",this.status=A}function OA(A){function e(){PA||(PA=!0,a.calledRun=!0,F||(a.noFSInit||bA.init.initialized||bA.init(),yA.init(),lA(J),bA.ignorePermissions=!1,lA(V),n(a),a.onRuntimeInitialized&&a.onRuntimeInitialized(),zA&&function(A){var e=a._main,t=(A=A||[]).length+1,n=KA(4*(t+1));L[n>>2]=K(l);for(var r=1;r<t;r++)L[(n>>2)+r]=K(A[r-1]);L[(n>>2)+t]=0;try{!function(A,e){R&&0===A||(R||(a.onExit&&a.onExit(A),F=!0),B(A,new VA(A)))}(e(t,n))}catch(o){if(o instanceof VA)return;if("unwind"==o)return void(R=!0);var i=o;o&&"object"==typeof o&&o.stack&&(i=[o,o.stack]),w("exception thrown: "+i),B(1,o)}}(A),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)A=a.postRun.shift(),O.unshift(A);var A;lA(O)}()))}A=A||f,z>0||(function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)A=a.preRun.shift(),q.unshift(A);var A;lA(q)}(),z>0||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),e()},1)):e()))}if(a.cwrap=function(A,e,t,n){var r=(t=t||[]).every(function(A){return"number"===A});return"string"!==e&&r&&!n?S(A):function(){return function(A,e,t,n,r){var i={string:function(A){var e=0;if(null!=A&&0!==A){var t=1+(A.length<<2);H(A,e=KA(t),t)}return e},array:function(A){var e=KA(A.length);return T(A,e),e}},o=S(A),a=[],s=0;if(n)for(var g=0;g<n.length;g++){var I=i[t[g]];I?(0===s&&(s=HA()),a[g]=I(n[g])):a[g]=n[g]}var u=o.apply(null,a);return u=function(A){return"string"===e?x(A):"boolean"===e?Boolean(A):A}(u),0!==s&&XA(s),u}(A,e,t,arguments)}},a.UTF8ToString=x,a.FS=bA,$=function A(){PA||OA(),PA||($=A)},a.run=OA,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();var zA=!0;return a.noInitialRun&&(zA=!1),OA(),t.ready}}();"object"==typeof t&&"object"==typeof e?e.exports=o:"object"==typeof t&&(t.startSfCompose=o)},{path:"UUq2",fs:"f88W",crypto:"mRF4",process:"pBGv",buffer:"dskh"}],LNaI:[function(A,e,t){"use strict";function n(A,e){var t;if("undefined"==typeof Symbol||null==A[Symbol.iterator]){if(Array.isArray(A)||(t=r(A))||e&&A&&"number"==typeof A.length){t&&(A=t);var n=0,i=function(){};return{s:i,n:function(){return n>=A.length?{done:!0}:{done:!1,value:A[n++]}},e:function(A){throw A},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){t=A[Symbol.iterator]()},n:function(){var A=t.next();return a=A.done,A},e:function(A){s=!0,o=A},f:function(){try{a||null==t.return||t.return()}finally{if(s)throw o}}}}function r(A,e){if(A){if("string"==typeof A)return i(A,e);var t=Object.prototype.toString.call(A).slice(8,-1);return"Object"===t&&A.constructor&&(t=A.constructor.name),"Map"===t||"Set"===t?Array.from(A):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?i(A,e):void 0}}function i(A,e){(null==e||e>A.length)&&(e=A.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=A[t];return n}function o(A,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(A,n.key,n)}}var a=this&&this.__awaiter||function(A,e,t,n){return new(t||(t=Promise))(function(r,i){function o(A){try{s(n.next(A))}catch(e){i(e)}}function a(A){try{s(n.throw(A))}catch(e){i(e)}}function s(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t(function(A){A(e)})).then(o,a)}s((n=n.apply(A,e||[])).next())})};Object.defineProperty(t,"__esModule",{value:!0}),t.SfCompose=void 0;var s=A("@werckmeister/sfcompose/sfcompose"),g=(A("fs"),A("lodash"),function(){function A(){var e=this;(function(A,e){if(!(A instanceof e))throw new TypeError("Cannot call a class as a function")})(this,A),this.module=s().then(function(A){return a(e,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.init(A);case 2:return e.abrupt("return",A);case 3:case"end":return e.stop()}},e,this)}))})}return function(A,e,t){e&&o(A.prototype,e),t&&o(A,t)}(A,[{key:"init",value:function(A){return a(this,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.prepareModule(A);case 1:case"end":return e.stop()}},e,this)}))}},{key:"prepareModule",value:function(A){this.performCompose=A.cwrap("composejs","number",["string"]),this.debugArgs=A.cwrap("debug_args","number",["string"])}},{key:"dirExists",value:function(A){return a(this,void 0,void 0,regeneratorRuntime.mark(function e(){var t,n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.module;case 2:return t=e.sent,n=t.FS.analyzePath(A,!1),e.abrupt("return",n.exists);case 5:case"end":return e.stop()}},e,this)}))}},{key:"writeSamples",value:function(A){return a(this,void 0,void 0,regeneratorRuntime.mark(function e(){var t,r,i,o,a,s;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.module;case 2:t=e.sent,r=n(A),e.prev=4,r.s();case 6:if((i=r.n()).done){e.next=15;break}return o=i.value,e.next=10,o.data.arrayBuffer();case 10:a=e.sent,s="".concat(o.sfName,"/_").concat(o.id,".smpl"),t.FS.writeFile(s,new Uint8Array(a));case 13:e.next=6;break;case 15:e.next=20;break;case 17:e.prev=17,e.t0=e.catch(4),r.e(e.t0);case 20:return e.prev=20,r.f(),e.finish(20);case 23:case"end":return e.stop()}},e,this,[[4,17,20,23]])}))}},{key:"filterExistingSamples",value:function(A,e,t){return t.filter(function(t){return n=t,r=e.sfName,!A.FS.analyzePath("".concat(r,"/_").concat(n,".smpl"),!0).exists;var n,r})}},{key:"getRequiredSampleIds",value:function(A,e){return a(this,void 0,void 0,regeneratorRuntime.mark(function t(){var n,r,i,o,a,s,g,I;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.module;case 2:return n=t.sent,t.next=5,this.dirExists(A.sfName);case 5:if(t.t0=t.sent,!1!==t.t0){t.next=10;break}if(!(A.sfName.indexOf("/")>=0)){t.next=9;break}throw new Error('invalid sfName "'.concat(A.sfName,"\": contains '/' "));case 9:n.FS.mkdir(A.sfName);case 10:return r="".concat(A.sfName,"/skeleton"),t.next=13,A.data.arrayBuffer();case 13:i=t.sent,n.FS.writeFile(r,new Uint8Array(i)),a=e.map(function(A){return"".concat(A.bank," ").concat(A.preset)}).join(" "),o=this.performCompose("".concat(r," --getsampleids ").concat(a)),s=n.UTF8ToString(o),n._free(o),g={},t.prev=21,g=JSON.parse(s),t.next=28;break;case 25:throw t.prev=25,t.t1=t.catch(21),new Error("sfcompose: failed to parse result: "+s);case 28:if(!Array.isArray(g)){t.next=31;break}return I=g,t.abrupt("return",this.filterExistingSamples(n,A,I));case 31:if(!g.error){t.next=33;break}throw new Error("sfcompose: "+g.error);case 33:case"end":return t.stop()}},t,this,[[21,25]])}))}},{key:"compose",value:function(A,e){return a(this,void 0,void 0,regeneratorRuntime.mark(function t(){var n,r,i,o,a,s,g,I,u,f,l;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.module;case 2:return n=t.sent,t.next=5,this.dirExists(A);case 5:if(t.t0=t.sent,!1!==t.t0){t.next=8;break}throw new Error("sfcompose: missing data for "+A);case 8:r="".concat(A,"/skeleton"),o=e.map(function(A){return"".concat(A.bank," ").concat(A.preset)}).join(" "),a="".concat(A,".sf2"),s=A,g="".concat(r," ").concat(s," ").concat("_"," ").concat(a," ").concat(o),i=this.performCompose(g),I=n.UTF8ToString(i),n._free(i),u={},t.prev=19,u=JSON.parse(I),t.next=26;break;case 23:throw t.prev=23,t.t1=t.catch(19),new Error("sfcompose: failed to parse result: "+I);case 26:if(!u.error){t.next=28;break}throw new Error("sfcompose: "+u.error);case 28:return t.prev=28,f=n.FS.readFile(a),l=new Blob([f],{type:"application/octet-stream"}),t.abrupt("return",{data:l,instruments:e,sfName:A});case 34:throw t.prev=34,t.t2=t.catch(28),new Error("failed to read result");case 37:case"end":return t.stop()}},t,this,[[19,23],[28,34]])}))}}]),A}());t.SfCompose=g},{"@werckmeister/sfcompose/sfcompose":"ZV/H",fs:"f88W",lodash:"B1iE"}],Gu12:[function(A,e,t){"use strict";function n(A,e){var t;if("undefined"==typeof Symbol||null==A[Symbol.iterator]){if(Array.isArray(A)||(t=r(A))||e&&A&&"number"==typeof A.length){t&&(A=t);var n=0,i=function(){};return{s:i,n:function(){return n>=A.length?{done:!0}:{done:!1,value:A[n++]}},e:function(A){throw A},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){t=A[Symbol.iterator]()},n:function(){var A=t.next();return a=A.done,A},e:function(A){s=!0,o=A},f:function(){try{a||null==t.return||t.return()}finally{if(s)throw o}}}}function r(A,e){if(A){if("string"==typeof A)return i(A,e);var t=Object.prototype.toString.call(A).slice(8,-1);return"Object"===t&&A.constructor&&(t=A.constructor.name),"Map"===t||"Set"===t?Array.from(A):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?i(A,e):void 0}}function i(A,e){(null==e||e>A.length)&&(e=A.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=A[t];return n}function o(A,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(A,n.key,n)}}var a=this&&this.__awaiter||function(A,e,t,n){return new(t||(t=Promise))(function(r,i){function o(A){try{s(n.next(A))}catch(e){i(e)}}function a(A){try{s(n.throw(A))}catch(e){i(e)}}function s(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t(function(A){A(e)})).then(o,a)}s((n=n.apply(A,e||[])).next())})};Object.defineProperty(t,"__esModule",{value:!0}),t.SfRepository=void 0;var s=function(){function A(){(function(A,e){if(!(A instanceof e))throw new TypeError("Cannot call a class as a function")})(this,A),this._repoMetaData=null}return function(A,e,t){e&&o(A.prototype,e),t&&o(A,t)}(A,[{key:"repoMetaData",get:function(){if(!this._repoMetaData)throw new Error("missing repo meta data. Did you forgot to set the repo url?");return this._repoMetaData}},{key:"setRepo",value:function(A){return a(this,void 0,void 0,regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(A);case 2:return e.next=4,e.sent.json();case 4:if((t=e.sent).baseUrl&&t.sampleTemplate&&t.sfName&&t.skeleton){e.next=7;break}throw new Error("invalid repo url");case 7:this._repoMetaData=t;case 8:case"end":return e.stop()}},e,this)}))}},{key:"getUrl",value:function(A){return"".concat(this.repoMetaData.baseUrl,"/").concat(A)}},{key:"getSkeleton",value:function(){return a(this,void 0,void 0,regeneratorRuntime.mark(function A(){var e,t;return regeneratorRuntime.wrap(function(A){for(;;)switch(A.prev=A.next){case 0:if(!this.skeletonFile){A.next=2;break}return A.abrupt("return",this.skeletonFile);case 2:return A.next=4,fetch(this.getUrl(this.repoMetaData.skeleton));case 4:return e=A.sent,A.next=7,e.blob();case 7:return t=A.sent,this.skeletonFile={sfName:this.repoMetaData.sfName,data:t},A.abrupt("return",this.skeletonFile);case 10:case"end":return A.stop()}},A,this)}))}},{key:"getSampleFiles",value:function(A){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){};return a(this,void 0,void 0,regeneratorRuntime.mark(function r(){var i,o,s,g,I,u,f,l=this;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:i=function(A,n){return a(l,void 0,void 0,regeneratorRuntime.mark(function r(){var i,o;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return t(A,n),r.next=3,fetch(n);case 3:return i=r.sent,r.next=6,i.blob();case 6:return o=r.sent,e(A,n),r.abrupt("return",{id:A,blob:o});case 9:case"end":return r.stop()}},r)}))},o=[],s=n(A);try{for(s.s();!(g=s.n()).done;)I=g.value,u="".concat(this.repoMetaData.baseUrl,"/").concat(this.repoMetaData.sampleTemplate.replace("$id",I.toString())),o.push(i(I,u))}catch(B){s.e(B)}finally{s.f()}return r.next=6,Promise.all(o);case 6:return f=r.sent,r.abrupt("return",f.map(function(A){return{sfName:l.repoMetaData.sfName,id:A.id,data:A.blob}}));case 8:case"end":return r.stop()}},r,this)}))}}]),A}();t.SfRepository=s},{}],VUkl:[function(A,e,t){"use strict";function n(A,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(A,n.key,n)}}function r(A,e,t){return e&&n(A.prototype,e),t&&n(A,t),A}var i=this&&this.__createBinding||(Object.create?function(A,e,t,n){void 0===n&&(n=t),Object.defineProperty(A,n,{enumerable:!0,get:function(){return e[t]}})}:function(A,e,t,n){void 0===n&&(n=t),A[n]=e[t]}),o=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:!0,value:e})}:function(A,e){A.default=e}),a=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(null!=A)for(var t in A)"default"!==t&&Object.prototype.hasOwnProperty.call(A,t)&&i(e,A,t);return o(e,A),e},s=this&&this.__awaiter||function(A,e,t,n){return new(t||(t=Promise))(function(r,i){function o(A){try{s(n.next(A))}catch(e){i(e)}}function a(A){try{s(n.throw(A))}catch(e){i(e)}}function s(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t(function(A){A(e)})).then(o,a)}s((n=n.apply(A,e||[])).next())})};Object.defineProperty(t,"__esModule",{value:!0}),t.WerckmeisterMidiPlayer=t.PlayerState=void 0;var g,I=a(A("lodash")),u=A("./IMidiEvent"),f=a(A("midifile")).default,l=a(A("midievents")),B=A("./Base64binary"),E=A("./Constants"),c=A("./SfCompose"),d=A("./SfRepository"),C=(A("fs"),new Blob([['// Copyright 2010 The Emscripten Authors. All rights reserved.\n// Emscripten is available under two separate licenses, the MIT license and the\n// University of Illinois/NCSA Open Source License. Both these licenses can be\n// found in the LICENSE file.\n\n// The Module object: Our interface to the outside world. We import\n// and export values on it. There are various ways Module can be used:\n// 1. Not defined. We create it here\n// 2. A function parameter, function(Module) { ..generated code.. }\n// 3. pre-run appended it, var Module = {}; ..generated code..\n// 4. External script tag defines var Module.\n// We need to check if Module already exists (e.g. case 3 above).\n// Substitution will be replaced with actual code on later stage of the build,\n// this way Closure Compiler will not mangle it (e.g. case 4. above).\n// Note that if you want to run closure, and also to use Module\n// after the generated code, you will need to define var Module = {};\n// before the code. Then that object will be used in the code, and you\n// can continue to use Module afterwards as well.\nvar Module = typeof Module !== \'undefined\' ? Module : {};\n\n// --pre-jses are emitted after the Module integration code, so that they can\n// refer to Module (if they choose; they can also define Module)\n//var Module = typeof Module !== \'undefined\' ? Module : {};\n// (to avoid errors occurred in emscripten\'s code)\nvar document = typeof document !== \'undefined\' ? document : {};\nvar window = typeof window !== \'undefined\' ? window : {};\n// expose wasm API to AudioWorklet\nif (typeof AudioWorkletGlobalScope !== \'undefined\' && AudioWorkletGlobalScope) {\n AudioWorkletGlobalScope.wasmModule = Module;\n AudioWorkletGlobalScope.wasmAddFunction = addFunction;\n AudioWorkletGlobalScope.wasmRemoveFunction = removeFunction;\n}\n\n\n\n// Sometimes an existing Module object exists with properties\n// meant to overwrite the default module functionality. Here\n// we collect those properties and reapply _after_ we configure\n// the current environment\'s defaults to avoid having to be so\n// defensive during initialization.\nvar moduleOverrides = {};\nvar key;\nfor (key in Module) {\n if (Module.hasOwnProperty(key)) {\n moduleOverrides[key] = Module[key];\n }\n}\n\nModule[\'arguments\'] = [];\nModule[\'thisProgram\'] = \'./this.program\';\nModule[\'quit\'] = function(status, toThrow) {\n throw toThrow;\n};\nModule[\'preRun\'] = [];\nModule[\'postRun\'] = [];\n\n// Determine the runtime environment we are in. You can customize this by\n// setting the ENVIRONMENT setting at compile time (see settings.js).\n\nvar ENVIRONMENT_IS_WEB = true;\nvar ENVIRONMENT_IS_WORKER = false;\nvar ENVIRONMENT_IS_NODE = false;\nvar ENVIRONMENT_IS_SHELL = false;\n\n\n// Three configurations we can be running in:\n// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false)\n// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false)\n// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true)\n\n// `/` should be present at the end if `scriptDirectory` is not empty\nvar scriptDirectory = \'\';\nfunction locateFile(path) {\n if (Module[\'locateFile\']) {\n return Module[\'locateFile\'](path, scriptDirectory);\n } else {\n return scriptDirectory + path;\n }\n}\n\nif (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled\n scriptDirectory = self.location.href;\n } else if (document.currentScript) { // web\n scriptDirectory = document.currentScript.src;\n }\n // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them.\n // otherwise, slice off the final part of the url to find the script directory.\n // if scriptDirectory does not contain a slash, lastIndexOf will return -1,\n // and scriptDirectory will correctly be replaced with an empty string.\n if (scriptDirectory.indexOf(\'blob:\') !== 0) {\n scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf(\'/\')+1);\n } else {\n scriptDirectory = \'\';\n }\n\n\n Module[\'read\'] = function shell_read(url) {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open(\'GET\', url, false);\n xhr.send(null);\n return xhr.responseText;\n } catch (err) {\n var data = tryParseAsDataURI(url);\n if (data) {\n return intArrayToString(data);\n }\n throw err;\n }\n };\n\n if (ENVIRONMENT_IS_WORKER) {\n Module[\'readBinary\'] = function readBinary(url) {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open(\'GET\', url, false);\n xhr.responseType = \'arraybuffer\';\n xhr.send(null);\n return new Uint8Array(xhr.response);\n } catch (err) {\n var data = tryParseAsDataURI(url);\n if (data) {\n return data;\n }\n throw err;\n }\n };\n }\n\n Module[\'readAsync\'] = function readAsync(url, onload, onerror) {\n var xhr = new XMLHttpRequest();\n xhr.open(\'GET\', url, true);\n xhr.responseType = \'arraybuffer\';\n xhr.onload = function xhr_onload() {\n if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0\n onload(xhr.response);\n return;\n }\n var data = tryParseAsDataURI(url);\n if (data) {\n onload(data.buffer);\n return;\n }\n onerror();\n };\n xhr.onerror = onerror;\n xhr.send(null);\n };\n\n Module[\'setWindowTitle\'] = function(title) { document.title = title };\n} else\n{\n}\n\n// Set up the out() and err() hooks, which are how we can print to stdout or\n// stderr, respectively.\n// If the user provided Module.print or printErr, use that. Otherwise,\n// console.log is checked first, as \'print\' on the web will open a print dialogue\n// printErr is preferable to console.warn (works better in shells)\n// bind(console) is necessary to fix IE/Edge closed dev tools panel behavior.\nvar out = Module[\'print\'] || (typeof console !== \'undefined\' ? console.log.bind(console) : (typeof print !== \'undefined\' ? print : null));\nvar err = Module[\'printErr\'] || (typeof printErr !== \'undefined\' ? printErr : ((typeof console !== \'undefined\' && console.warn.bind(console)) || out));\n\n// Merge back in the overrides\nfor (key in moduleOverrides) {\n if (moduleOverrides.hasOwnProperty(key)) {\n Module[key] = moduleOverrides[key];\n }\n}\n// Free the object hierarchy contained in the overrides, this lets the GC\n// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array.\nmoduleOverrides = undefined;\n\n// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message\n\n\n\n// Copyright 2017 The Emscripten Authors. All rights reserved.\n// Emscripten is available under two separate licenses, the MIT license and the\n// University of Illinois/NCSA Open Source License. Both these licenses can be\n// found in the LICENSE file.\n\n// {{PREAMBLE_ADDITIONS}}\n\nvar STACK_ALIGN = 16;\n\n\nfunction staticAlloc(size) {\n var ret = STATICTOP;\n STATICTOP = (STATICTOP + size + 15) & -16;\n return ret;\n}\n\nfunction dynamicAlloc(size) {\n var ret = HEAP32[DYNAMICTOP_PTR>>2];\n var end = (ret + size + 15) & -16;\n HEAP32[DYNAMICTOP_PTR>>2] = end;\n if (end >= TOTAL_MEMORY) {\n var success = enlargeMemory();\n if (!success) {\n HEAP32[DYNAMICTOP_PTR>>2] = ret;\n return 0;\n }\n }\n return ret;\n}\n\nfunction alignMemory(size, factor) {\n if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default\n var ret = size = Math.ceil(size / factor) * factor;\n return ret;\n}\n\nfunction getNativeTypeSize(type) {\n switch (type) {\n case \'i1\': case \'i8\': return 1;\n case \'i16\': return 2;\n case \'i32\': return 4;\n case \'i64\': return 8;\n case \'float\': return 4;\n case \'double\': return 8;\n default: {\n if (type[type.length-1] === \'*\') {\n return 4; // A pointer\n } else if (type[0] === \'i\') {\n var bits = parseInt(type.substr(1));\n assert(bits % 8 === 0);\n return bits / 8;\n } else {\n return 0;\n }\n }\n }\n}\n\nfunction warnOnce(text) {\n if (!warnOnce.shown) warnOnce.shown = {};\n if (!warnOnce.shown[text]) {\n warnOnce.shown[text] = 1;\n err(text);\n }\n}\n\nvar asm2wasmImports = { // special asm2wasm imports\n "f64-rem": function(x, y) {\n return x % y;\n },\n "debugger": function() {\n debugger;\n }\n};\n\n\n\nvar jsCallStartIndex = 1;\nvar functionPointers = new Array(10);\n\n// \'sig\' parameter is only used on LLVM wasm backend\nfunction addFunction(func, sig) {\n var base = 0;\n for (var i = base; i < base + 10; i++) {\n if (!functionPointers[i]) {\n functionPointers[i] = func;\n return jsCallStartIndex + i;\n }\n }\n throw \'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.\';\n}\n\nfunction removeFunction(index) {\n functionPointers[index-jsCallStartIndex] = null;\n}\n\nvar funcWrappers = {};\n\nfunction getFuncWrapper(func, sig) {\n if (!func) return; // on null pointer, return undefined\n assert(sig);\n if (!funcWrappers[sig]) {\n funcWrappers[sig] = {};\n }\n var sigCache = funcWrappers[sig];\n if (!sigCache[func]) {\n // optimize away arguments usage in common cases\n if (sig.length === 1) {\n sigCache[func] = function dynCall_wrapper() {\n return dynCall(sig, func);\n };\n } else if (sig.length === 2) {\n sigCache[func] = function dynCall_wrapper(arg) {\n return dynCall(sig, func, [arg]);\n };\n } else {\n // general case\n sigCache[func] = function dynCall_wrapper() {\n return dynCall(sig, func, Array.prototype.slice.call(arguments));\n };\n }\n }\n return sigCache[func];\n}\n\n\nfunction makeBigInt(low, high, unsigned) {\n return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0));\n}\n\nfunction dynCall(sig, ptr, args) {\n if (args && args.length) {\n return Module[\'dynCall_\' + sig].apply(null, [ptr].concat(args));\n } else {\n return Module[\'dynCall_\' + sig].call(null, ptr);\n }\n}\n\n\n\nvar Runtime = {\n // FIXME backwards compatibility layer for ports. Support some Runtime.*\n // for now, fix it there, then remove it from here. That way we\n // can minimize any period of breakage.\n dynCall: dynCall, // for SDL2 port\n};\n\n// The address globals begin at. Very low in memory, for code size and optimization opportunities.\n// Above 0 is static memory, starting with globals.\n// Then the stack.\n// Then \'dynamic\' memory for sbrk.\nvar GLOBAL_BASE = 1024;\n\n\n// === Preamble library stuff ===\n\n// Documentation for the public APIs defined in this file must be updated in:\n// site/source/docs/api_reference/preamble.js.rst\n// A prebuilt local version of the documentation is available at:\n// site/build/text/docs/api_reference/preamble.js.txt\n// You can also build docs locally as HTML or other formats in site/\n// An online HTML version (which may be of a different version of Emscripten)\n// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html\n\n\n\n//========================================\n// Runtime essentials\n//========================================\n\n// whether we are quitting the application. no code should run after this.\n// set in exit() and abort()\nvar ABORT = false;\n\n// set by exit() and abort(). Passed to \'onExit\' handler.\n// NOTE: This is also used as the process return code code in shell environments\n// but only when noExitRuntime is false.\nvar EXITSTATUS = 0;\n\n/** @type {function(*, string=)} */\nfunction assert(condition, text) {\n if (!condition) {\n abort(\'Assertion failed: \' + text);\n }\n}\n\nvar globalScope = this;\n\n// Returns the C function with a specified identifier (for C++, you need to do manual name mangling)\nfunction getCFunc(ident) {\n var func = Module[\'_\' + ident]; // closure exported function\n assert(func, \'Cannot call unknown function \' + ident + \', make sure it is exported\');\n return func;\n}\n\nvar JSfuncs = {\n // Helpers for cwrap -- it can\'t refer to Runtime directly because it might\n // be renamed by closure, instead it calls JSfuncs[\'stackSave\'].body to find\n // out what the minified function name is.\n \'stackSave\': function() {\n stackSave()\n },\n \'stackRestore\': function() {\n stackRestore()\n },\n // type conversion from js to c\n \'arrayToC\' : function(arr) {\n var ret = stackAlloc(arr.length);\n writeArrayToMemory(arr, ret);\n return ret;\n },\n \'stringToC\' : function(str) {\n var ret = 0;\n if (str !== null && str !== undefined && str !== 0) { // null string\n // at most 4 bytes per UTF-8 code point, +1 for the trailing \'\\0\'\n var len = (str.length << 2) + 1;\n ret = stackAlloc(len);\n stringToUTF8(str, ret, len);\n }\n return ret;\n }\n};\n\n// For fast lookup of conversion functions\nvar toC = {\n \'string\': JSfuncs[\'stringToC\'], \'array\': JSfuncs[\'arrayToC\']\n};\n\n\n// C calling interface.\nfunction ccall(ident, returnType, argTypes, args, opts) {\n function convertReturnValue(ret) {\n if (returnType === \'string\') return Pointer_stringify(ret);\n if (returnType === \'boolean\') return Boolean(ret);\n return ret;\n }\n\n var func = getCFunc(ident);\n var cArgs = [];\n var stack = 0;\n if (args) {\n for (var i = 0; i < args.length; i++) {\n var converter = toC[argTypes[i]];\n if (converter) {\n if (stack === 0) stack = stackSave();\n cArgs[i] = converter(args[i]);\n } else {\n cArgs[i] = args[i];\n }\n }\n }\n var ret = func.apply(null, cArgs);\n ret = convertReturnValue(ret);\n if (stack !== 0) stackRestore(stack);\n return ret;\n}\n\nfunction cwrap(ident, returnType, argTypes, opts) {\n argTypes = argTypes || [];\n // When the function takes numbers and returns a number, we can just return\n // the original function\n var numericArgs = argTypes.every(function(type){ return type === \'number\'});\n var numericRet = returnType !== \'string\';\n if (numericRet && numericArgs && !opts) {\n return getCFunc(ident);\n }\n return function() {\n return ccall(ident, returnType, argTypes, arguments, opts);\n }\n}\n\n/** @type {function(number, number, string, boolean=)} */\nfunction setValue(ptr, value, type, noSafe) {\n type = type || \'i8\';\n if (type.charAt(type.length-1) === \'*\') type = \'i32\'; // pointers are 32-bit\n switch(type) {\n case \'i1\': HEAP8[((ptr)>>0)]=value; break;\n case \'i8\': HEAP8[((ptr)>>0)]=value; break;\n case \'i16\': HEAP16[((ptr)>>1)]=value; break;\n case \'i32\': HEAP32[((ptr)>>2)]=value; break;\n case \'i64\': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;\n case \'float\': HEAPF32[((ptr)>>2)]=value; break;\n case \'double\': HEAPF64[((ptr)>>3)]=value; break;\n default: abort(\'invalid type for setValue: \' + type);\n }\n}\n\n/** @type {function(number, string, boolean=)} */\nfunction getValue(ptr, type, noSafe) {\n type = type || \'i8\';\n if (type.charAt(type.length-1) === \'*\') type = \'i32\'; // pointers are 32-bit\n switch(type) {\n case \'i1\': return HEAP8[((ptr)>>0)];\n case \'i8\': return HEAP8[((ptr)>>0)];\n case \'i16\': return HEAP16[((ptr)>>1)];\n case \'i32\': return HEAP32[((ptr)>>2)];\n case \'i64\': return HEAP32[((ptr)>>2)];\n case \'float\': return HEAPF32[((ptr)>>2)];\n case \'double\': return HEAPF64[((ptr)>>3)];\n default: abort(\'invalid type for getValue: \' + type);\n }\n return null;\n}\n\nvar ALLOC_NORMAL = 0; // Tries to use _malloc()\nvar ALLOC_STACK = 1; // Lives for the duration of the current function call\nvar ALLOC_STATIC = 2; // Cannot be freed\nvar ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk\nvar ALLOC_NONE = 4; // Do not allocate\n\n// allocate(): This is for internal use. You can use it yourself as well, but the interface\n// is a little tricky (see docs right below). The reason is that it is optimized\n// for multiple syntaxes to save space in generated code. So you should\n// normally not use allocate(), and instead allocate memory using _malloc(),\n// initialize it with setValue(), and so forth.\n// @slab: An array of data, or a number. If a number, then the size of the block to allocate,\n// in *bytes* (note that this is sometimes confusing: the next parameter does not\n// affect this!)\n// @types: Either an array of types, one for each byte (or 0 if no type at that position),\n// or a single type which is used for the entire block. This only matters if there\n// is initial data - if @slab is a number, then this does not matter at all and is\n// ignored.\n// @allocator: How to allocate memory, see ALLOC_*\n/** @type {function((TypedArray|Array<number>|number), string, number, number=)} */\nfunction allocate(slab, types, allocator, ptr) {\n var zeroinit, size;\n if (typeof slab === \'number\') {\n zeroinit = true;\n size = slab;\n } else {\n zeroinit = false;\n size = slab.length;\n }\n\n var singleType = typeof types === \'string\' ? types : null;\n\n var ret;\n if (allocator == ALLOC_NONE) {\n ret = ptr;\n } else {\n ret = [typeof _malloc === \'function\' ? _malloc : staticAlloc, stackAlloc, staticAlloc, dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));\n }\n\n if (zeroinit) {\n var stop;\n ptr = ret;\n assert((ret & 3) == 0);\n stop = ret + (size & ~3);\n for (; ptr < stop; ptr += 4) {\n HEAP32[((ptr)>>2)]=0;\n }\n stop = ret + size;\n while (ptr < stop) {\n HEAP8[((ptr++)>>0)]=0;\n }\n return ret;\n }\n\n if (singleType === \'i8\') {\n if (slab.subarray || slab.slice) {\n HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret);\n } else {\n HEAPU8.set(new Uint8Array(slab), ret);\n }\n return ret;\n }\n\n var i = 0, type, typeSize, previousType;\n while (i < size) {\n var curr = slab[i];\n\n type = singleType || types[i];\n if (type === 0) {\n i++;\n continue;\n }\n\n if (type == \'i64\') type = \'i32\'; // special case: we have one i32 here, and one i32 later\n\n setValue(ret+i, curr, type);\n\n // no need to look up size unless type changes, so cache it\n if (previousType !== type) {\n typeSize = getNativeTypeSize(type);\n previousType = type;\n }\n i += typeSize;\n }\n\n return ret;\n}\n\n// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready\nfunction getMemory(size) {\n if (!staticSealed) return staticAlloc(size);\n if (!runtimeInitialized) return dynamicAlloc(size);\n return _malloc(size);\n}\n\n/** @type {function(number, number=)} */\nfunction Pointer_stringify(ptr, length) {\n if (length === 0 || !ptr) return \'\';\n // Find the length, and check for UTF while doing so\n var hasUtf = 0;\n var t;\n var i = 0;\n while (1) {\n t = HEAPU8[(((ptr)+(i))>>0)];\n hasUtf |= t;\n if (t == 0 && !length) break;\n i++;\n if (length && i == length) break;\n }\n if (!length) length = i;\n\n var ret = \'\';\n\n if (hasUtf < 128) {\n var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack\n var curr;\n while (length > 0) {\n curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)));\n ret = ret ? ret + curr : curr;\n ptr += MAX_CHUNK;\n length -= MAX_CHUNK;\n }\n return ret;\n }\n return UTF8ToString(ptr);\n}\n\n// Given a pointer \'ptr\' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns\n// a copy of that string as a Javascript String object.\n\nfunction AsciiToString(ptr) {\n var str = \'\';\n while (1) {\n var ch = HEAP8[((ptr++)>>0)];\n if (!ch) return str;\n str += String.fromCharCode(ch);\n }\n}\n\n// Copies the given Javascript String object \'str\' to the emscripten HEAP at address \'outPtr\',\n// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP.\n\nfunction stringToAscii(str, outPtr) {\n return writeAsciiToMemory(str, outPtr, false);\n}\n\n// Given a pointer \'ptr\' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns\n// a copy of that string as a Javascript String object.\n\nvar UTF8Decoder = typeof TextDecoder !== \'undefined\' ? new TextDecoder(\'utf8\') : undefined;\nfunction UTF8ArrayToString(u8Array, idx) {\n var endPtr = idx;\n // TextDecoder needs to know the byte length in advance, it doesn\'t stop on null terminator by itself.\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\n while (u8Array[endPtr]) ++endPtr;\n\n if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {\n return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));\n } else {\n var u0, u1, u2, u3, u4, u5;\n\n var str = \'\';\n while (1) {\n // For UTF8 byte structure, see:\n // http://en.wikipedia.org/wiki/UTF-8#Description\n // https://www.ietf.org/rfc/rfc2279.txt\n // https://tools.ietf.org/html/rfc3629\n u0 = u8Array[idx++];\n if (!u0) return str;\n if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }\n u1 = u8Array[idx++] & 63;\n if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }\n u2 = u8Array[idx++] & 63;\n if ((u0 & 0xF0) == 0xE0) {\n u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;\n } else {\n u3 = u8Array[idx++] & 63;\n if ((u0 & 0xF8) == 0xF0) {\n u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3;\n } else {\n u4 = u8Array[idx++] & 63;\n if ((u0 & 0xFC) == 0xF8) {\n u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4;\n } else {\n u5 = u8Array[idx++] & 63;\n u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5;\n }\n }\n }\n if (u0 < 0x10000) {\n str += String.fromCharCode(u0);\n } else {\n var ch = u0 - 0x10000;\n str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));\n }\n }\n }\n}\n\n// Given a pointer \'ptr\' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns\n// a copy of that string as a Javascript String object.\n\nfunction UTF8ToString(ptr) {\n return UTF8ArrayToString(HEAPU8,ptr);\n}\n\n// Copies the given Javascript String object \'str\' to the given byte array at address \'outIdx\',\n// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP.\n// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\n// Parameters:\n// str: the Javascript string to copy.\n// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element.\n// outIdx: The starting offset in the array to begin the copying.\n// maxBytesToWrite: The maximum number of bytes this function can write to the array.\n// This count should include the null terminator,\n// i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else.\n// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator.\n// Returns the number of bytes written, EXCLUDING the null terminator.\n\nfunction stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {\n if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don\'t write out any bytes.\n return 0;\n\n var startIdx = outIdx;\n var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator.\n for (var i = 0; i < str.length; ++i) {\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\n // See http://unicode.org/faq/utf_bom.html#utf16-3\n // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629\n var u = str.charCodeAt(i); // possibly a lead surrogate\n if (u >= 0xD800 && u <= 0xDFFF) {\n var u1 = str.charCodeAt(++i);\n u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF);\n }\n if (u <= 0x7F) {\n if (outIdx >= endIdx) break;\n outU8Array[outIdx++] = u;\n } else if (u <= 0x7FF) {\n if (outIdx + 1 >= endIdx) break;\n outU8Array[outIdx++] = 0xC0 | (u >> 6);\n outU8Array[outIdx++] = 0x80 | (u & 63);\n } else if (u <= 0xFFFF) {\n if (outIdx + 2 >= endIdx) break;\n outU8Array[outIdx++] = 0xE0 | (u >> 12);\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\n outU8Array[outIdx++] = 0x80 | (u & 63);\n } else if (u <= 0x1FFFFF) {\n if (outIdx + 3 >= endIdx) break;\n outU8Array[outIdx++] = 0xF0 | (u >> 18);\n outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\n outU8Array[outIdx++] = 0x80 | (u & 63);\n } else if (u <= 0x3FFFFFF) {\n if (outIdx + 4 >= endIdx) break;\n outU8Array[outIdx++] = 0xF8 | (u >> 24);\n outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);\n outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\n outU8Array[outIdx++] = 0x80 | (u & 63);\n } else {\n if (outIdx + 5 >= endIdx) break;\n outU8Array[outIdx++] = 0xFC | (u >> 30);\n outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63);\n outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);\n outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\n outU8Array[outIdx++] = 0x80 | (u & 63);\n }\n }\n // Null-terminate the pointer to the buffer.\n outU8Array[outIdx] = 0;\n return outIdx - startIdx;\n}\n\n// Copies the given Javascript String object \'str\' to the emscripten HEAP at address \'outPtr\',\n// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP.\n// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\n// Returns the number of bytes written, EXCLUDING the null terminator.\n\nfunction stringToUTF8(str, outPtr, maxBytesToWrite) {\n return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite);\n}\n\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte.\n\nfunction lengthBytesUTF8(str) {\n var len = 0;\n for (var i = 0; i < str.length; ++i) {\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\n // See http://unicode.org/faq/utf_bom.html#utf16-3\n var u = str.charCodeAt(i); // possibly a lead surrogate\n if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);\n if (u <= 0x7F) {\n ++len;\n } else if (u <= 0x7FF) {\n len += 2;\n } else if (u <= 0xFFFF) {\n len += 3;\n } else if (u <= 0x1FFFFF) {\n len += 4;\n } else if (u <= 0x3FFFFFF) {\n len += 5;\n } else {\n len += 6;\n }\n }\n return len;\n}\n\n// Given a pointer \'ptr\' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns\n// a copy of that string as a Javascript String object.\n\nvar UTF16Decoder = typeof TextDecoder !== \'undefined\' ? new TextDecoder(\'utf-16le\') : undefined;\nfunction UTF16ToString(ptr) {\n var endPtr = ptr;\n // TextDecoder needs to know the byte length in advance, it doesn\'t stop on null terminator by itself.\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\n var idx = endPtr >> 1;\n while (HEAP16[idx]) ++idx;\n endPtr = idx << 1;\n\n if (endPtr - ptr > 32 && UTF16Decoder) {\n return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));\n } else {\n var i = 0;\n\n var str = \'\';\n while (1) {\n var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];\n if (codeUnit == 0) return str;\n ++i;\n // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.\n str += String.fromCharCode(codeUnit);\n }\n }\n}\n\n// Copies the given Javascript String object \'str\' to the emscripten HEAP at address \'outPtr\',\n// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP.\n// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write.\n// Parameters:\n// str: the Javascript string to copy.\n// outPtr: Byte address in Emscripten HEAP where to write the string to.\n// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\n// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else.\n// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator.\n// Returns the number of bytes written, EXCLUDING the null terminator.\n\nfunction stringToUTF16(str, outPtr, maxBytesToWrite) {\n // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\n if (maxBytesToWrite === undefined) {\n maxBytesToWrite = 0x7FFFFFFF;\n }\n if (maxBytesToWrite < 2) return 0;\n maxBytesToWrite -= 2; // Null terminator.\n var startPtr = outPtr;\n var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length;\n for (var i = 0; i < numCharsToWrite; ++i) {\n // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\n HEAP16[((outPtr)>>1)]=codeUnit;\n outPtr += 2;\n }\n // Null-terminate the pointer to the HEAP.\n HEAP16[((outPtr)>>1)]=0;\n return outPtr - startPtr;\n}\n\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\n\nfunction lengthBytesUTF16(str) {\n return str.length*2;\n}\n\nfunction UTF32ToString(ptr) {\n var i = 0;\n\n var str = \'\';\n while (1) {\n var utf32 = HEAP32[(((ptr)+(i*4))>>2)];\n if (utf32 == 0)\n return str;\n ++i;\n // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.\n // See http://unicode.org/faq/utf_bom.html#utf16-3\n if (utf32 >= 0x10000) {\n var ch = utf32 - 0x10000;\n str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));\n } else {\n str += String.fromCharCode(utf32);\n }\n }\n}\n\n// Copies the given Javascript String object \'str\' to the emscripten HEAP at address \'outPtr\',\n// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP.\n// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write.\n// Parameters:\n// str: the Javascript string to copy.\n// outPtr: Byte address in Emscripten HEAP where to write the string to.\n// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\n// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else.\n// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator.\n// Returns the number of bytes written, EXCLUDING the null terminator.\n\nfunction stringToUTF32(str, outPtr, maxBytesToWrite) {\n // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\n if (maxBytesToWrite === undefined) {\n maxBytesToWrite = 0x7FFFFFFF;\n }\n if (maxBytesToWrite < 4) return 0;\n var startPtr = outPtr;\n var endPtr = startPtr + maxBytesToWrite - 4;\n for (var i = 0; i < str.length; ++i) {\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\n // See http://unicode.org/faq/utf_bom.html#utf16-3\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {\n var trailSurrogate = str.charCodeAt(++i);\n codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);\n }\n HEAP32[((outPtr)>>2)]=codeUnit;\n outPtr += 4;\n if (outPtr + 4 > endPtr) break;\n }\n // Null-terminate the pointer to the HEAP.\n HEAP32[((outPtr)>>2)]=0;\n return outPtr - startPtr;\n}\n\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\n\nfunction lengthBytesUTF32(str) {\n var len = 0;\n for (var i = 0; i < str.length; ++i) {\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\n // See http://unicode.org/faq/utf_bom.html#utf16-3\n var codeUnit = str.charCodeAt(i);\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate.\n len += 4;\n }\n\n return len;\n}\n\n// Allocate heap space for a JS string, and write it there.\n// It is the responsibility of the caller to free() that memory.\nfunction allocateUTF8(str) {\n var size = lengthBytesUTF8(str) + 1;\n var ret = _malloc(size);\n if (ret) stringToUTF8Array(str, HEAP8, ret, size);\n return ret;\n}\n\n// Allocate stack space for a JS string, and write it there.\nfunction allocateUTF8OnStack(str) {\n var size = lengthBytesUTF8(str) + 1;\n var ret = stackAlloc(size);\n stringToUTF8Array(str, HEAP8, ret, size);\n return ret;\n}\n\nfunction demangle(func) {\n return func;\n}\n\nfunction demangleAll(text) {\n var regex =\n /__Z[\\w\\d_]+/g;\n return text.replace(regex,\n function(x) {\n var y = demangle(x);\n return x === y ? x : (y + \' [\' + x + \']\');\n });\n}\n\nfunction jsStackTrace() {\n var err = new Error();\n if (!err.stack) {\n // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown,\n // so try that as a special-case.\n try {\n throw new Error(0);\n } catch(e) {\n err = e;\n }\n if (!err.stack) {\n return \'(no stack trace available)\';\n }\n }\n return err.stack.toString();\n}\n\nfunction stackTrace() {\n var js = jsStackTrace();\n if (Module[\'extraStackTrace\']) js += \'\\n\' + Module[\'extraStackTrace\']();\n return demangleAll(js);\n}\n\n// Memory management\n\nvar PAGE_SIZE = 16384;\nvar WASM_PAGE_SIZE = 65536;\nvar ASMJS_PAGE_SIZE = 16777216;\nvar MIN_TOTAL_MEMORY = 16777216;\n\nfunction alignUp(x, multiple) {\n if (x % multiple > 0) {\n x += multiple - (x % multiple);\n }\n return x;\n}\n\nvar HEAP,\n/** @type {ArrayBuffer} */\n buffer,\n/** @type {Int8Array} */\n HEAP8,\n/** @type {Uint8Array} */\n HEAPU8,\n/** @type {Int16Array} */\n HEAP16,\n/** @type {Uint16Array} */\n HEAPU16,\n/** @type {Int32Array} */\n HEAP32,\n/** @type {Uint32Array} */\n HEAPU32,\n/** @type {Float32Array} */\n HEAPF32,\n/** @type {Float64Array} */\n HEAPF64;\n\nfunction updateGlobalBuffer(buf) {\n Module[\'buffer\'] = buffer = buf;\n}\n\nfunction updateGlobalBufferViews() {\n Module[\'HEAP8\'] = HEAP8 = new Int8Array(buffer);\n Module[\'HEAP16\'] = HEAP16 = new Int16Array(buffer);\n Module[\'HEAP32\'] = HEAP32 = new Int32Array(buffer);\n Module[\'HEAPU8\'] = HEAPU8 = new Uint8Array(buffer);\n Module[\'HEAPU16\'] = HEAPU16 = new Uint16Array(buffer);\n Module[\'HEAPU32\'] = HEAPU32 = new Uint32Array(buffer);\n Module[\'HEAPF32\'] = HEAPF32 = new Float32Array(buffer);\n Module[\'HEAPF64\'] = HEAPF64 = new Float64Array(buffer);\n}\n\nvar STATIC_BASE, STATICTOP, staticSealed; // static area\nvar STACK_BASE, STACKTOP, STACK_MAX; // stack area\nvar DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk\n\n STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0;\n staticSealed = false;\n\n\n\n\nfunction abortOnCannotGrowMemory() {\n abort(\'Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value \' + TOTAL_MEMORY + \', (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 \');\n}\n\nif (!Module[\'reallocBuffer\']) Module[\'reallocBuffer\'] = function(size) {\n var ret;\n try {\n var oldHEAP8 = HEAP8;\n ret = new ArrayBuffer(size);\n var temp = new Int8Array(ret);\n temp.set(oldHEAP8);\n } catch(e) {\n return false;\n }\n var success = _emscripten_replace_memory(ret);\n if (!success) return false;\n return ret;\n};\n\nfunction enlargeMemory() {\n // TOTAL_MEMORY is the current size of the actual array, and DYNAMICTOP is the new top.\n\n\n var PAGE_MULTIPLE = Module["usingWasm"] ? WASM_PAGE_SIZE : ASMJS_PAGE_SIZE; // In wasm, heap size must be a multiple of 64KB. In asm.js, they need to be multiples of 16MB.\n var LIMIT = 2147483648 - PAGE_MULTIPLE; // We can do one page short of 2GB as theoretical maximum.\n\n if (HEAP32[DYNAMICTOP_PTR>>2] > LIMIT) {\n return false;\n }\n\n var OLD_TOTAL_MEMORY = TOTAL_MEMORY;\n TOTAL_MEMORY = Math.max(TOTAL_MEMORY, MIN_TOTAL_MEMORY); // So the loop below will not be infinite, and minimum asm.js memory size is 16MB.\n\n while (TOTAL_MEMORY < HEAP32[DYNAMICTOP_PTR>>2]) { // Keep incrementing the heap size as long as it\'s less than what is requested.\n if (TOTAL_MEMORY <= 536870912) {\n TOTAL_MEMORY = alignUp(2 * TOTAL_MEMORY, PAGE_MULTIPLE); // Simple heuristic: double until 1GB...\n } else {\n // ..., but after that, add smaller increments towards 2GB, which we cannot reach\n TOTAL_MEMORY = Math.min(alignUp((3 * TOTAL_MEMORY + 2147483648) / 4, PAGE_MULTIPLE), LIMIT);\n }\n }\n\n\n\n var replacement = Module[\'reallocBuffer\'](TOTAL_MEMORY);\n if (!replacement || replacement.byteLength != TOTAL_MEMORY) {\n // restore the state to before this call, we failed\n TOTAL_MEMORY = OLD_TOTAL_MEMORY;\n return false;\n }\n\n // everything worked\n\n updateGlobalBuffer(replacement);\n updateGlobalBufferViews();\n\n\n\n return true;\n}\n\nvar byteLength;\ntry {\n byteLength = Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, \'byteLength\').get);\n byteLength(new ArrayBuffer(4)); // can fail on older ie\n} catch(e) { // can fail on older node/v8\n byteLength = function(buffer) { return buffer.byteLength; };\n}\n\nvar TOTAL_STACK = Module[\'TOTAL_STACK\'] || 5242880;\nvar TOTAL_MEMORY = Module[\'TOTAL_MEMORY\'] || 16777216;\nif (TOTAL_MEMORY < TOTAL_STACK) err(\'TOTAL_MEMORY should be larger than TOTAL_STACK, was \' + TOTAL_MEMORY + \'! (TOTAL_STACK=\' + TOTAL_STACK + \')\');\n\n// Initialize the runtime\'s memory\n\n\n\n// Use a provided buffer, if there is one, or else allocate a new one\nif (Module[\'buffer\']) {\n buffer = Module[\'buffer\'];\n} else {\n // Use a WebAssembly memory where available\n if (typeof WebAssembly === \'object\' && typeof WebAssembly.Memory === \'function\') {\n Module[\'wasmMemory\'] = new WebAssembly.Memory({ \'initial\': TOTAL_MEMORY / WASM_PAGE_SIZE });\n buffer = Module[\'wasmMemory\'].buffer;\n } else\n {\n buffer = new ArrayBuffer(TOTAL_MEMORY);\n }\n Module[\'buffer\'] = buffer;\n}\nupdateGlobalBufferViews();\n\n\nfunction getTotalMemory() {\n return TOTAL_MEMORY;\n}\n\n// Endianness check (note: assumes compiler arch was little-endian)\n\nfunction callRuntimeCallbacks(callbacks) {\n while(callbacks.length > 0) {\n var callback = callbacks.shift();\n if (typeof callback == \'function\') {\n callback();\n continue;\n }\n var func = callback.func;\n if (typeof func === \'number\') {\n if (callback.arg === undefined) {\n Module[\'dynCall_v\'](func);\n } else {\n Module[\'dynCall_vi\'](func, callback.arg);\n }\n } else {\n func(callback.arg === undefined ? null : callback.arg);\n }\n }\n}\n\nvar __ATPRERUN__ = []; // functions called before the runtime is initialized\nvar __ATINIT__ = []; // functions called during startup\nvar __ATMAIN__ = []; // functions called when main() is to be run\nvar __ATEXIT__ = []; // functions called during shutdown\nvar __ATPOSTRUN__ = []; // functions called after the main() is called\n\nvar runtimeInitialized = false;\nvar runtimeExited = false;\n\n\nfunction preRun() {\n // compatibility - merge in anything from Module[\'preRun\'] at this time\n if (Module[\'preRun\']) {\n if (typeof Module[\'preRun\'] == \'function\') Module[\'preRun\'] = [Module[\'preRun\']];\n while (Module[\'preRun\'].length) {\n addOnPreRun(Module[\'preRun\'].shift());\n }\n }\n callRuntimeCallbacks(__ATPRERUN__);\n}\n\nfunction ensureInitRuntime() {\n if (runtimeInitialized) return;\n runtimeInitialized = true;\n callRuntimeCallbacks(__ATINIT__);\n}\n\nfunction preMain() {\n callRuntimeCallbacks(__ATMAIN__);\n}\n\nfunction exitRuntime() {\n callRuntimeCallbacks(__ATEXIT__);\n runtimeExited = true;\n}\n\nfunction postRun() {\n // compatibility - merge in anything from Module[\'postRun\'] at this time\n if (Module[\'postRun\']) {\n if (typeof Module[\'postRun\'] == \'function\') Module[\'postRun\'] = [Module[\'postRun\']];\n while (Module[\'postRun\'].length) {\n addOnPostRun(Module[\'postRun\'].shift());\n }\n }\n callRuntimeCallbacks(__ATPOSTRUN__);\n}\n\nfunction addOnPreRun(cb) {\n __ATPRERUN__.unshift(cb);\n}\n\nfunction addOnInit(cb) {\n __ATINIT__.unshift(cb);\n}\n\nfunction addOnPreMain(cb) {\n __ATMAIN__.unshift(cb);\n}\n\nfunction addOnExit(cb) {\n __ATEXIT__.unshift(cb);\n}\n\nfunction addOnPostRun(cb) {\n __ATPOSTRUN__.unshift(cb);\n}\n\n// Deprecated: This function should not be called because it is unsafe and does not provide\n// a maximum length limit of how many bytes it is allowed to write. Prefer calling the\n// function stringToUTF8Array() instead, which takes in a maximum length that can be used\n// to be secure from out of bounds writes.\n/** @deprecated */\nfunction writeStringToMemory(string, buffer, dontAddNull) {\n warnOnce(\'writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!\');\n\n var /** @type {number} */ lastChar, /** @type {number} */ end;\n if (dontAddNull) {\n // stringToUTF8Array always appends null. If we don\'t want to do that, remember the\n // character that existed at the location where the null will be placed, and restore\n // that after the write (below).\n end = buffer + lengthBytesUTF8(string);\n lastChar = HEAP8[end];\n }\n stringToUTF8(string, buffer, Infinity);\n if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character.\n}\n\nfunction writeArrayToMemory(array, buffer) {\n HEAP8.set(array, buffer);\n}\n\nfunction writeAsciiToMemory(str, buffer, dontAddNull) {\n for (var i = 0; i < str.length; ++i) {\n HEAP8[((buffer++)>>0)]=str.charCodeAt(i);\n }\n // Null-terminate the pointer to the HEAP.\n if (!dontAddNull) HEAP8[((buffer)>>0)]=0;\n}\n\nfunction unSign(value, bits, ignore) {\n if (value >= 0) {\n return value;\n }\n return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts\n : Math.pow(2, bits) + value;\n}\nfunction reSign(value, bits, ignore) {\n if (value <= 0) {\n return value;\n }\n var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32\n : Math.pow(2, bits-1);\n if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don\'t do that\n // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors\n // TODO: In i64 mode 1, resign the two parts separately and safely\n value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts\n }\n return value;\n}\n\n\nvar Math_abs = Math.abs;\nvar Math_cos = Math.cos;\nvar Math_sin = Math.sin;\nvar Math_tan = Math.tan;\nvar Math_acos = Math.acos;\nvar Math_asin = Math.asin;\nvar Math_atan = Math.atan;\nvar Math_atan2 = Math.atan2;\nvar Math_exp = Math.exp;\nvar Math_log = Math.log;\nvar Math_sqrt = Math.sqrt;\nvar Math_ceil = Math.ceil;\nvar Math_floor = Math.floor;\nvar Math_pow = Math.pow;\nvar Math_imul = Math.imul;\nvar Math_fround = Math.fround;\nvar Math_round = Math.round;\nvar Math_min = Math.min;\nvar Math_max = Math.max;\nvar Math_clz32 = Math.clz32;\nvar Math_trunc = Math.trunc;\n\n// A counter of dependencies for calling run(). If we need to\n// do asynchronous work before running, increment this and\n// decrement it. Incrementing must happen in a place like\n// Module.preRun (used by emcc to add file preloading).\n// Note that you can add dependencies in preRun, even though\n// it happens right before run - run will be postponed until\n// the dependencies are met.\nvar runDependencies = 0;\nvar runDependencyWatcher = null;\nvar dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled\n\nfunction getUniqueRunDependency(id) {\n return id;\n}\n\nfunction addRunDependency(id) {\n runDependencies++;\n if (Module[\'monitorRunDependencies\']) {\n Module[\'monitorRunDependencies\'](runDependencies);\n }\n}\n\nfunction removeRunDependency(id) {\n runDependencies--;\n if (Module[\'monitorRunDependencies\']) {\n Module[\'monitorRunDependencies\'](runDependencies);\n }\n if (runDependencies == 0) {\n if (runDependencyWatcher !== null) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n }\n if (dependenciesFulfilled) {\n var callback = dependenciesFulfilled;\n dependenciesFulfilled = null;\n callback(); // can add another dependenciesFulfilled\n }\n }\n}\n\nModule["preloadedImages"] = {}; // maps url to image data\nModule["preloadedAudios"] = {}; // maps url to audio data\n\n\n\nvar memoryInitializer = null;\n\n\n\n\n\n\n// Copyright 2017 The Emscripten Authors. All rights reserved.\n// Emscripten is available under two separate licenses, the MIT license and the\n// University of Illinois/NCSA Open Source License. Both these licenses can be\n// found in the LICENSE file.\n\n// Prefix of data URIs emitted by SINGLE_FILE and related options.\nvar dataURIPrefix = \'data:application/octet-stream;base64,\';\n\n// Indicates whether filename is a base64 data URI.\nfunction isDataURI(filename) {\n return String.prototype.startsWith ?\n filename.startsWith(dataURIPrefix) :\n filename.indexOf(dataURIPrefix) === 0;\n}\n\n\n\n\nfunction integrateWasmJS() {\n // wasm.js has several methods for creating the compiled code module here:\n // * \'native-wasm\' : use native WebAssembly support in the browser\n // * \'interpret-s-expr\': load s-expression code from a .wast and interpret\n // * \'interpret-binary\': load binary wasm and interpret\n // * \'interpret-asm2wasm\': load asm.js code, translate to wasm, and interpret\n // * \'asmjs\': no wasm, just load the asm.js code and use that (good for testing)\n // The method is set at compile time (BINARYEN_METHOD)\n // The method can be a comma-separated list, in which case, we will try the\n // options one by one. Some of them can fail gracefully, and then we can try\n // the next.\n\n // inputs\n\n var method = \'native-wasm\';\n\n var wasmTextFile = \'\';\n var wasmBinaryFile = \'data:application/octet-stream;base64,AGFzbQEAAAABkgM4YAF/AGABfwF/YAJ/fwF/YAN/f38Bf2ADf39/AGADf398AGACf38AYAR/f39/AGAFf39/f38Bf2AGf39/f39/AX9gAAF/YAR/f39/AX9gB39/f39/f38Bf2AEf39/fABgBX9/f39/AGAAAGABfAF8YAJ8fwF8YAV/f3x8fAF/YAN/f3wBf2AAAXxgAXwBf2AHf39/fHx8fwBgA398fABgBX9/f398AX9gCH9/f39/fH9/AX9gBX9/f3x/AX9gAn98AGAGf398fHx8AGACf38BfGABfwF8YAR/f39/AXxgA3x/fAF8YAJ/fQBgAX8BfWAIf39/f39/f38Bf2AFf3x8fHwBf2ACf3wBf2AGf398fHx/AX9gBH9/f30Bf2ADf39/AX1gCX9/f39/f39/fAF/YAN/f30AYAJ/fwF9YAR/f3x/AX9gBX9/f31/AGADfn9/AX9gAn5/AX9gBn98f39/fwF/YAF8AX5gAnx8AXxgAnx/AX9gA3x8fwF8YAR/f398AX9gBX9/f3x/AGADf39/AXwC1QUnA2VudgVhYm9ydAAAA2Vudg1lbmxhcmdlTWVtb3J5AAoDZW52DmdldFRvdGFsTWVtb3J5AAoDZW52F2Fib3J0T25DYW5ub3RHcm93TWVtb3J5AAoDZW52CWpzQ2FsbF9paQACA2Vudgpqc0NhbGxfaWlpAAMDZW52C2pzQ2FsbF9paWlpAAsDZW52DWpzQ2FsbF9paWlpaWkACQNlbnYOanNDYWxsX2lpaWlpaWkADANlbnYJanNDYWxsX3ZpAAYDZW52CmpzQ2FsbF92aWkABANlbnYLanNDYWxsX3ZpaWQADQNlbnYLanNDYWxsX3ZpaWkABwNlbnYManNDYWxsX3ZpaWlpAA4DZW52B19fX2xvY2sAAANlbnYLX19fc2V0RXJyTm8AAANlbnYNX19fc3lzY2FsbDE0MAACA2Vudg1fX19zeXNjYWxsMTQ1AAIDZW52DV9fX3N5c2NhbGwxNDYAAgNlbnYNX19fc3lzY2FsbDE1MAACA2Vudg1fX19zeXNjYWxsMTUxAAIDZW52DV9fX3N5c2NhbGwxOTUAAgNlbnYNX19fc3lzY2FsbDIyMQACA2VudgtfX19zeXNjYWxsNQACA2VudgxfX19zeXNjYWxsNTQAAgNlbnYLX19fc3lzY2FsbDYAAgNlbnYJX19fdW5sb2NrAAADZW52Bl9hYm9ydAAPA2VudhZfZW1zY3JpcHRlbl9tZW1jcHlfYmlnAAMDZW52DV9nZXR0aW1lb2ZkYXkAAgNlbnYOX2xsdm1fZXhwMl9mNjQAEANlbnYHX3VzbGVlcAABA2Vudgl0YWJsZUJhc2UDfwADZW52DkRZTkFNSUNUT1BfUFRSA38AA2VudghTVEFDS1RPUAN/AANlbnYJU1RBQ0tfTUFYA38ABmdsb2JhbAhJbmZpbml0eQN8AANlbnYGbWVtb3J5AgCAAgNlbnYFdGFibGUBcACgAgO0BrIGAQEKAAYGAAoCAgAQEBAQEBAQEREQEAEAAAAKAgQEBgIBAAACAgICAgIBAwICAAoAAAMDAxIJAgsLAgMCAwsDAwMDEwMDCwMDAwsDBwIDBAMDAwQDAgoBAQ8KFAsACgECAQMAAQEBAwICAwEBAQgAAwAIAQMCAQIAAwEBAQMDAgkAAgEIAQEDAAEBCQEBCgAKAgkDAwICAgEAAQIJDAEGFQAAFgcHBAYABgYXBgYCBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYDAwMDGAsLBhkAAQEGBgYaAAYGBgYGBgYDAwECBhUbAAAABwccGwIAAAACBwYGBwQDBAAEAAYGAAoGBgYGBwQOBgYEBA4GBAQEBAcEBAQEAAQHAAEBAQEBAQEBAQEKAAEGAQIdBgQEBhsBAQEBAR4dHyACCgoDAgAECgMGAQUFBAQFBAUEAgMAAgACISEGBgYBCwQDAgsDBggICwwJDAkCAgELAwsDAwMDAgMDAwIICAgiAQEBAQkCCSMjCAkGAwMAAgICAgECAgICByQlJSUlHh4eHiYCJSUlAgEeHh4BAwEBAQEBHgkDAAMBJycoAgwCAwIDAQMDAwMDAwMCCAsICwMLAwEAAgEGBgUlGwApABsBKiorHgAGBAABAwEEAAABAAAEAQEBAQEBASwlASgECgABAgECAgECCwsLAQQDAAEAAgMBAgECAQICAgEBAQEDAAoBAQMtLS0CAgICAgcCCgECBgAGAQsBAgICBgELBxseAAIBAwABAAMAAAEAJQEBAQMCAgsKAwEAAgIGAQMDAQoDAwEBAgIBCwMIDwQBBC4vLwECDgIwMRERAgoKAgICAwIDAQMRAQICCwICMjMLNB4CAwACAQIBCg8BAQEBAwMDAwICAwMKAgEBCwEBEBAQEAEDAwECAQEBAQEBAQEBAQMCAgICAgICAgICCwMDAwMDAwMDAwMJCAgICAgICAgICAwJCQkJCQkJCQkJBgAAAAAAAAAAAAAEBgYGBgYGBgYGBg0FBQUFBQUFBQUFBwQEBAQEBAQEBAQOBwcHBwcHBwcHBwECAwgJAAYFBAc1NjY2HjcbNRsdBQUGJAd/ASMBC38BIwILfwEjAwt/AUEAC38BQQALfAEjBAt/AUEACweFT+oCEF9fZ3Jvd1dhc21NZW1vcnkAIBFfX19lcnJub19sb2NhdGlvbgD5BBpfZGVsZXRlX2ZsdWlkX2F1ZGlvX2RyaXZlcgDeBBNfZGVsZXRlX2ZsdWlkX2V2ZW50AKABG19kZWxldGVfZmx1aWRfZmlsZV9yZW5kZXJlcgDlBBlfZGVsZXRlX2ZsdWlkX21pZGlfZHJpdmVyAOIEGF9kZWxldGVfZmx1aWRfbWlkaV9ldmVudACZBBlfZGVsZXRlX2ZsdWlkX21pZGlfcm91dGVyALkEHl9kZWxldGVfZmx1aWRfbWlkaV9yb3V0ZXJfcnVsZQCgARFfZGVsZXRlX2ZsdWlkX21vZABCFF9kZWxldGVfZmx1aWRfcGxheWVyAKcEFF9kZWxldGVfZmx1aWRfcHJlc2V0AKABFF9kZWxldGVfZmx1aWRfc2FtcGxlAK4BF19kZWxldGVfZmx1aWRfc2VxdWVuY2VyAMwEFl9kZWxldGVfZmx1aWRfc2V0dGluZ3MAUBZfZGVsZXRlX2ZsdWlkX3NmbG9hZGVyAKABE19kZWxldGVfZmx1aWRfc2ZvbnQAqQETX2RlbGV0ZV9mbHVpZF9zeW50aADxAhxfZmx1aWRfYXVkaW9fZHJpdmVyX3JlZ2lzdGVyAN8EG19mbHVpZF9kZWZhdWx0X2xvZ19mdW5jdGlvbgByGl9mbHVpZF9ldmVudF9hbGxfbm90ZXNfb2ZmAKkCG19mbHVpZF9ldmVudF9hbGxfc291bmRzX29mZgCoAh9fZmx1aWRfZXZlbnRfYW55X2NvbnRyb2xfY2hhbmdlAK0CGF9mbHVpZF9ldmVudF9iYW5rX3NlbGVjdACqAh1fZmx1aWRfZXZlbnRfY2hhbm5lbF9wcmVzc3VyZQC4AhhfZmx1aWRfZXZlbnRfY2hvcnVzX3NlbmQAtgIbX2ZsdWlkX2V2ZW50X2NvbnRyb2xfY2hhbmdlALICFV9mbHVpZF9ldmVudF9nZXRfYmFuawDAAhhfZmx1aWRfZXZlbnRfZ2V0X2NoYW5uZWwAvQIYX2ZsdWlkX2V2ZW50X2dldF9jb250cm9sAMACFV9mbHVpZF9ldmVudF9nZXRfZGF0YQDCAhVfZmx1aWRfZXZlbnRfZ2V0X2Rlc3QAvAIZX2ZsdWlkX2V2ZW50X2dldF9kdXJhdGlvbgDDAhRfZmx1aWRfZXZlbnRfZ2V0X2tleQC+AhZfZmx1aWRfZXZlbnRfZ2V0X3BpdGNoAMQCGF9mbHVpZF9ldmVudF9nZXRfcHJvZ3JhbQDBAhlfZmx1aWRfZXZlbnRfZ2V0X3Nmb250X2lkAMMCF19mbHVpZF9ldmVudF9nZXRfc291cmNlALsCFV9mbHVpZF9ldmVudF9nZXRfdHlwZQCkARZfZmx1aWRfZXZlbnRfZ2V0X3ZhbHVlAMECGV9mbHVpZF9ldmVudF9nZXRfdmVsb2NpdHkAvwIZX2ZsdWlkX2V2ZW50X2tleV9wcmVzc3VyZQC5AhdfZmx1aWRfZXZlbnRfbW9kdWxhdGlvbgCwAhFfZmx1aWRfZXZlbnRfbm90ZQCnAhRfZmx1aWRfZXZlbnRfbm90ZW9mZgCmAhNfZmx1aWRfZXZlbnRfbm90ZW9uAKUCEF9mbHVpZF9ldmVudF9wYW4AswIXX2ZsdWlkX2V2ZW50X3BpdGNoX2JlbmQArgIcX2ZsdWlkX2V2ZW50X3BpdGNoX3doZWVsc2VucwCvAhtfZmx1aWRfZXZlbnRfcHJvZ3JhbV9jaGFuZ2UAqwIbX2ZsdWlkX2V2ZW50X3Byb2dyYW1fc2VsZWN0AKwCGF9mbHVpZF9ldmVudF9yZXZlcmJfc2VuZAC1AhVfZmx1aWRfZXZlbnRfc2V0X2Rlc3QAowIXX2ZsdWlkX2V2ZW50X3NldF9zb3VyY2UAogIUX2ZsdWlkX2V2ZW50X3N1c3RhaW4AsQIZX2ZsdWlkX2V2ZW50X3N5c3RlbV9yZXNldAC6AhJfZmx1aWRfZXZlbnRfdGltZXIApAIaX2ZsdWlkX2V2ZW50X3VucmVnaXN0ZXJpbmcAtwITX2ZsdWlkX2V2ZW50X3ZvbHVtZQC0AiJfZmx1aWRfZmlsZV9yZW5kZXJlcl9wcm9jZXNzX2Jsb2NrAOcEIF9mbHVpZF9maWxlX3NldF9lbmNvZGluZ19xdWFsaXR5AOYEEl9mbHVpZF9pc19taWRpZmlsZQB2E19mbHVpZF9pc19zb3VuZGZvbnQAdxZfZmx1aWRfbGFkc3BhX2FjdGl2YXRlAOkEGF9mbHVpZF9sYWRzcGFfYWRkX2J1ZmZlcgDsBBhfZmx1aWRfbGFkc3BhX2FkZF9lZmZlY3QA7QQbX2ZsdWlkX2xhZHNwYV9idWZmZXJfZXhpc3RzAOsEE19mbHVpZF9sYWRzcGFfY2hlY2sA6gQYX2ZsdWlkX2xhZHNwYV9kZWFjdGl2YXRlAOkEHF9mbHVpZF9sYWRzcGFfZWZmZWN0X2Nhbl9taXgA6wQZX2ZsdWlkX2xhZHNwYV9lZmZlY3RfbGluawDtBCBfZmx1aWRfbGFkc3BhX2VmZmVjdF9wb3J0X2V4aXN0cwDvBCBfZmx1aWRfbGFkc3BhX2VmZmVjdF9zZXRfY29udHJvbADGBhxfZmx1aWRfbGFkc3BhX2VmZmVjdF9zZXRfbWl4AMYGHl9mbHVpZF9sYWRzcGFfaG9zdF9wb3J0X2V4aXN0cwDrBBdfZmx1aWRfbGFkc3BhX2lzX2FjdGl2ZQDoBBNfZmx1aWRfbGFkc3BhX3Jlc2V0AOkECl9mbHVpZF9sb2cAcxtfZmx1aWRfbWlkaV9kdW1wX3Bvc3Ryb3V0ZXIAwwQaX2ZsdWlkX21pZGlfZHVtcF9wcmVyb3V0ZXIAwgQdX2ZsdWlkX21pZGlfZXZlbnRfZ2V0X2NoYW5uZWwAnAQdX2ZsdWlkX21pZGlfZXZlbnRfZ2V0X2NvbnRyb2wAvQIZX2ZsdWlkX21pZGlfZXZlbnRfZ2V0X2tleQC9AhtfZmx1aWRfbWlkaV9ldmVudF9nZXRfcGl0Y2gAvQIdX2ZsdWlkX21pZGlfZXZlbnRfZ2V0X3Byb2dyYW0AvQIaX2ZsdWlkX21pZGlfZXZlbnRfZ2V0X3R5cGUAmgQbX2ZsdWlkX21pZGlfZXZlbnRfZ2V0X3ZhbHVlAJ8EHl9mbHVpZF9taWRpX2V2ZW50X2dldF92ZWxvY2l0eQCfBB1fZmx1aWRfbWlkaV9ldmVudF9zZXRfY2hhbm5lbACdBB1fZmx1aWRfbWlkaV9ldmVudF9zZXRfY29udHJvbACeBBlfZmx1aWRfbWlkaV9ldmVudF9zZXRfa2V5AJ4EHF9mbHVpZF9taWRpX2V2ZW50X3NldF9seXJpY3MAowQbX2ZsdWlkX21pZGlfZXZlbnRfc2V0X3BpdGNoAJ4EHV9mbHVpZF9taWRpX2V2ZW50X3NldF9wcm9ncmFtAJ4EG19mbHVpZF9taWRpX2V2ZW50X3NldF9zeXNleAChBBpfZmx1aWRfbWlkaV9ldmVudF9zZXRfdGV4dACiBBpfZmx1aWRfbWlkaV9ldmVudF9zZXRfdHlwZQCbBBtfZmx1aWRfbWlkaV9ldmVudF9zZXRfdmFsdWUAoAQeX2ZsdWlkX21pZGlfZXZlbnRfc2V0X3ZlbG9jaXR5AKAEG19mbHVpZF9taWRpX3JvdXRlcl9hZGRfcnVsZQC9BB5fZmx1aWRfbWlkaV9yb3V0ZXJfY2xlYXJfcnVsZXMAvAQkX2ZsdWlkX21pZGlfcm91dGVyX2hhbmRsZV9taWRpX2V2ZW50AMEEIF9mbHVpZF9taWRpX3JvdXRlcl9ydWxlX3NldF9jaGFuAMcGIl9mbHVpZF9taWRpX3JvdXRlcl9ydWxlX3NldF9wYXJhbTEAyAYiX2ZsdWlkX21pZGlfcm91dGVyX3J1bGVfc2V0X3BhcmFtMgDJBiRfZmx1aWRfbWlkaV9yb3V0ZXJfc2V0X2RlZmF1bHRfcnVsZXMAuwQQX2ZsdWlkX21vZF9jbG9uZQDMAhVfZmx1aWRfbW9kX2dldF9hbW91bnQA1gITX2ZsdWlkX21vZF9nZXRfZGVzdADVAhVfZmx1aWRfbW9kX2dldF9mbGFnczEA0gIVX2ZsdWlkX21vZF9nZXRfZmxhZ3MyANQCFl9mbHVpZF9tb2RfZ2V0X3NvdXJjZTEA0QIWX2ZsdWlkX21vZF9nZXRfc291cmNlMgDTAhNfZmx1aWRfbW9kX2hhc19kZXN0AN4CFV9mbHVpZF9tb2RfaGFzX3NvdXJjZQDdAhVfZmx1aWRfbW9kX3NldF9hbW91bnQA0AITX2ZsdWlkX21vZF9zZXRfZGVzdADPAhZfZmx1aWRfbW9kX3NldF9zb3VyY2UxAM0CFl9mbHVpZF9tb2Rfc2V0X3NvdXJjZTIAzgIRX2ZsdWlkX21vZF9zaXplb2YA3AIYX2ZsdWlkX21vZF90ZXN0X2lkZW50aXR5ANoCEV9mbHVpZF9wbGF5ZXJfYWRkAKoEFV9mbHVpZF9wbGF5ZXJfYWRkX21lbQCrBBVfZmx1aWRfcGxheWVyX2dldF9icG0AtgQeX2ZsdWlkX3BsYXllcl9nZXRfY3VycmVudF90aWNrALUEHF9mbHVpZF9wbGF5ZXJfZ2V0X21pZGlfdGVtcG8AtwQYX2ZsdWlkX3BsYXllcl9nZXRfc3RhdHVzAO8DHV9mbHVpZF9wbGF5ZXJfZ2V0X3RvdGFsX3RpY2tzALAEEl9mbHVpZF9wbGF5ZXJfam9pbgC0BBJfZmx1aWRfcGxheWVyX3BsYXkArAQSX2ZsdWlkX3BsYXllcl9zZWVrAK8EFV9mbHVpZF9wbGF5ZXJfc2V0X2JwbQCzBBZfZmx1aWRfcGxheWVyX3NldF9sb29wALEEHF9mbHVpZF9wbGF5ZXJfc2V0X21pZGlfdGVtcG8AsgQjX2ZsdWlkX3BsYXllcl9zZXRfcGxheWJhY2tfY2FsbGJhY2sApgQSX2ZsdWlkX3BsYXllcl9zdG9wAKgEGV9mbHVpZF9wcmVzZXRfZ2V0X2JhbmtudW0ArAEWX2ZsdWlkX3ByZXNldF9nZXRfZGF0YQCiARZfZmx1aWRfcHJlc2V0X2dldF9uYW1lAKsBFV9mbHVpZF9wcmVzZXRfZ2V0X251bQClARdfZmx1aWRfcHJlc2V0X2dldF9zZm9udACkARZfZmx1aWRfcHJlc2V0X3NldF9kYXRhAKEBFl9mbHVpZF9zYW1wbGVfc2V0X2xvb3AAsgEWX2ZsdWlkX3NhbXBsZV9zZXRfbmFtZQCwARdfZmx1aWRfc2FtcGxlX3NldF9waXRjaACzARxfZmx1aWRfc2FtcGxlX3NldF9zb3VuZF9kYXRhALEBFF9mbHVpZF9zYW1wbGVfc2l6ZW9mAK8BKV9mbHVpZF9zZXF1ZW5jZXJfYWRkX21pZGlfZXZlbnRfdG9fYnVmZmVyAMcEH19mbHVpZF9zZXF1ZW5jZXJfY2xpZW50X2lzX2Rlc3QA0wQeX2ZsdWlkX3NlcXVlbmNlcl9jb3VudF9jbGllbnRzANAEHl9mbHVpZF9zZXF1ZW5jZXJfZ2V0X2NsaWVudF9pZADRBCBfZmx1aWRfc2VxdWVuY2VyX2dldF9jbGllbnRfbmFtZQDSBBlfZmx1aWRfc2VxdWVuY2VyX2dldF90aWNrANUEH19mbHVpZF9zZXF1ZW5jZXJfZ2V0X3RpbWVfc2NhbGUA2QQlX2ZsdWlkX3NlcXVlbmNlcl9nZXRfdXNlX3N5c3RlbV90aW1lcgDOBBhfZmx1aWRfc2VxdWVuY2VyX3Byb2Nlc3MAywQgX2ZsdWlkX3NlcXVlbmNlcl9yZWdpc3Rlcl9jbGllbnQAzwQkX2ZsdWlkX3NlcXVlbmNlcl9yZWdpc3Rlcl9mbHVpZHN5bnRoAMQEHl9mbHVpZF9zZXF1ZW5jZXJfcmVtb3ZlX2V2ZW50cwDXBBhfZmx1aWRfc2VxdWVuY2VyX3NlbmRfYXQA1gQZX2ZsdWlkX3NlcXVlbmNlcl9zZW5kX25vdwDUBB9fZmx1aWRfc2VxdWVuY2VyX3NldF90aW1lX3NjYWxlANgEIl9mbHVpZF9zZXF1ZW5jZXJfdW5yZWdpc3Rlcl9jbGllbnQAzQQXX2ZsdWlkX3NldF9sb2dfZnVuY3Rpb24AcRdfZmx1aWRfc2V0dGluZ3NfY29weXN0cgBdFl9mbHVpZF9zZXR0aW5nc19kdXBzdHIAXhdfZmx1aWRfc2V0dGluZ3NfZm9yZWFjaABuHl9mbHVpZF9zZXR0aW5nc19mb3JlYWNoX29wdGlvbgBrGV9mbHVpZF9zZXR0aW5nc19nZXRfaGludHMAWhhfZmx1aWRfc2V0dGluZ3NfZ2V0X3R5cGUAWRZfZmx1aWRfc2V0dGluZ3NfZ2V0aW50AGgeX2ZsdWlkX3NldHRpbmdzX2dldGludF9kZWZhdWx0AGocX2ZsdWlkX3NldHRpbmdzX2dldGludF9yYW5nZQBpFl9mbHVpZF9zZXR0aW5nc19nZXRudW0AYx5fZmx1aWRfc2V0dGluZ3NfZ2V0bnVtX2RlZmF1bHQAZhxfZmx1aWRfc2V0dGluZ3NfZ2V0bnVtX3JhbmdlAGUeX2ZsdWlkX3NldHRpbmdzX2dldHN0cl9kZWZhdWx0AGAbX2ZsdWlkX3NldHRpbmdzX2lzX3JlYWx0aW1lAFsdX2ZsdWlkX3NldHRpbmdzX29wdGlvbl9jb25jYXQAbRxfZmx1aWRfc2V0dGluZ3Nfb3B0aW9uX2NvdW50AGwWX2ZsdWlkX3NldHRpbmdzX3NldGludABnFl9mbHVpZF9zZXR0aW5nc19zZXRudW0AYhZfZmx1aWRfc2V0dGluZ3Nfc2V0c3RyAFwZX2ZsdWlkX3NldHRpbmdzX3N0cl9lcXVhbABfGF9mbHVpZF9zZmxvYWRlcl9nZXRfZGF0YQCiAR1fZmx1aWRfc2Zsb2FkZXJfc2V0X2NhbGxiYWNrcwCfARhfZmx1aWRfc2Zsb2FkZXJfc2V0X2RhdGEAoQEVX2ZsdWlkX3Nmb250X2dldF9kYXRhAKIBE19mbHVpZF9zZm9udF9nZXRfaWQApAEVX2ZsdWlkX3Nmb250X2dldF9uYW1lAKUBF19mbHVpZF9zZm9udF9nZXRfcHJlc2V0AKYBG19mbHVpZF9zZm9udF9pdGVyYXRpb25fbmV4dACoARxfZmx1aWRfc2ZvbnRfaXRlcmF0aW9uX3N0YXJ0AKcBFV9mbHVpZF9zZm9udF9zZXRfZGF0YQChASBfZmx1aWRfc3ludGhfYWN0aXZhdGVfa2V5X3R1bmluZwDOAyNfZmx1aWRfc3ludGhfYWN0aXZhdGVfb2N0YXZlX3R1bmluZwCGAxxfZmx1aWRfc3ludGhfYWN0aXZhdGVfdHVuaW5nAIADHF9mbHVpZF9zeW50aF9hZGRfZGVmYXVsdF9tb2QA7gIZX2ZsdWlkX3N5bnRoX2FkZF9zZmxvYWRlcgD1AhZfZmx1aWRfc3ludGhfYWRkX3Nmb250AKsDGl9mbHVpZF9zeW50aF9hbGxfbm90ZXNfb2ZmAIcDG19mbHVpZF9zeW50aF9hbGxfc291bmRzX29mZgCIAxhfZmx1aWRfc3ludGhfYWxsb2Nfdm9pY2UAowMYX2ZsdWlkX3N5bnRoX2Jhbmtfc2VsZWN0AJMDD19mbHVpZF9zeW50aF9jYwD9Ah1fZmx1aWRfc3ludGhfY2hhbm5lbF9wcmVzc3VyZQCLAyFfZmx1aWRfc3ludGhfY291bnRfYXVkaW9fY2hhbm5lbHMAyQMfX2ZsdWlkX3N5bnRoX2NvdW50X2F1ZGlvX2dyb3VwcwDKAyNfZmx1aWRfc3ludGhfY291bnRfZWZmZWN0c19jaGFubmVscwDLAyFfZmx1aWRfc3ludGhfY291bnRfZWZmZWN0c19ncm91cHMAzAMgX2ZsdWlkX3N5bnRoX2NvdW50X21pZGlfY2hhbm5lbHMAyAMeX2ZsdWlkX3N5bnRoX2RlYWN0aXZhdGVfdHVuaW5nAM8DEl9mbHVpZF9zeW50aF9lcnJvcgD4AiNfZmx1aWRfc3ludGhfZ2V0X2FjdGl2ZV92b2ljZV9jb3VudACbAxxfZmx1aWRfc3ludGhfZ2V0X2Jhbmtfb2Zmc2V0ANoDHl9mbHVpZF9zeW50aF9nZXRfYmFzaWNfY2hhbm5lbADlAxxfZmx1aWRfc3ludGhfZ2V0X2JyZWF0aF9tb2RlAOMDE19mbHVpZF9zeW50aF9nZXRfY2MAggMfX2ZsdWlkX3N5bnRoX2dldF9jaGFubmVsX3ByZXNldACxAx1fZmx1aWRfc3ludGhfZ2V0X2Nob3J1c19kZXB0aADFAx1fZmx1aWRfc3ludGhfZ2V0X2Nob3J1c19sZXZlbADDAxpfZmx1aWRfc3ludGhfZ2V0X2Nob3J1c19ucgDCAx1fZmx1aWRfc3ludGhfZ2V0X2Nob3J1c19zcGVlZADEAxxfZmx1aWRfc3ludGhfZ2V0X2Nob3J1c190eXBlAMYDGV9mbHVpZF9zeW50aF9nZXRfY3B1X2xvYWQAzQMVX2ZsdWlkX3N5bnRoX2dldF9nYWluAMoGFF9mbHVpZF9zeW50aF9nZXRfZ2VuAMsGIV9mbHVpZF9zeW50aF9nZXRfaW50ZXJuYWxfYnVmc2l6ZQCcAxpfZmx1aWRfc3ludGhfZ2V0X2xhZHNwYV9meADcAxxfZmx1aWRfc3ludGhfZ2V0X2xlZ2F0b19tb2RlAN8DG19mbHVpZF9zeW50aF9nZXRfcGl0Y2hfYmVuZACOAyFfZmx1aWRfc3ludGhfZ2V0X3BpdGNoX3doZWVsX3NlbnMAkAMaX2ZsdWlkX3N5bnRoX2dldF9wb2x5cGhvbnkAmgMgX2ZsdWlkX3N5bnRoX2dldF9wb3J0YW1lbnRvX21vZGUA4QMYX2ZsdWlkX3N5bnRoX2dldF9wcm9ncmFtAJYDHF9mbHVpZF9zeW50aF9nZXRfcmV2ZXJiX2RhbXAAuQMdX2ZsdWlkX3N5bnRoX2dldF9yZXZlcmJfbGV2ZWwAugMgX2ZsdWlkX3N5bnRoX2dldF9yZXZlcmJfcm9vbXNpemUAuAMdX2ZsdWlkX3N5bnRoX2dldF9yZXZlcmJfd2lkdGgAuwMZX2ZsdWlkX3N5bnRoX2dldF9zZXR0aW5ncwDSAxZfZmx1aWRfc3ludGhfZ2V0X3Nmb250AK4DHF9mbHVpZF9zeW50aF9nZXRfc2ZvbnRfYnlfaWQArwMeX2ZsdWlkX3N5bnRoX2dldF9zZm9udF9ieV9uYW1lALADGl9mbHVpZF9zeW50aF9nZXRfdm9pY2VsaXN0ALIDHl9mbHVpZF9zeW50aF9oYW5kbGVfbWlkaV9ldmVudADWAxlfZmx1aWRfc3ludGhfa2V5X3ByZXNzdXJlAIwDFF9mbHVpZF9zeW50aF9ub3Rlb2ZmAPsCE19mbHVpZF9zeW50aF9ub3Rlb24A+QIZX2ZsdWlkX3N5bnRoX253cml0ZV9mbG9hdACeAxdfZmx1aWRfc3ludGhfcGl0Y2hfYmVuZACNAx1fZmx1aWRfc3ludGhfcGl0Y2hfd2hlZWxfc2VucwCPAxRfZmx1aWRfc3ludGhfcHJvY2VzcwCgAxtfZmx1aWRfc3ludGhfcHJvZ3JhbV9jaGFuZ2UAkgMaX2ZsdWlkX3N5bnRoX3Byb2dyYW1fcmVzZXQAnQMbX2ZsdWlkX3N5bnRoX3Byb2dyYW1fc2VsZWN0AJcDKV9mbHVpZF9zeW50aF9wcm9ncmFtX3NlbGVjdF9ieV9zZm9udF9uYW1lAJgDH19mbHVpZF9zeW50aF9yZW1vdmVfZGVmYXVsdF9tb2QA/AIZX2ZsdWlkX3N5bnRoX3JlbW92ZV9zZm9udACsAyBfZmx1aWRfc3ludGhfcmVzZXRfYmFzaWNfY2hhbm5lbADkAxxfZmx1aWRfc3ludGhfc2V0X2Jhbmtfb2Zmc2V0ANkDHl9mbHVpZF9zeW50aF9zZXRfYmFzaWNfY2hhbm5lbACKAxxfZmx1aWRfc3ludGhfc2V0X2JyZWF0aF9tb2RlAOIDHV9mbHVpZF9zeW50aF9zZXRfY2hhbm5lbF90eXBlANsDF19mbHVpZF9zeW50aF9zZXRfY2hvcnVzALwDHV9mbHVpZF9zeW50aF9zZXRfY2hvcnVzX2RlcHRoAMADHV9mbHVpZF9zeW50aF9zZXRfY2hvcnVzX2xldmVsAL4DGl9mbHVpZF9zeW50aF9zZXRfY2hvcnVzX25yAL0DGl9mbHVpZF9zeW50aF9zZXRfY2hvcnVzX29uAPcCHV9mbHVpZF9zeW50aF9zZXRfY2hvcnVzX3NwZWVkAL8DHF9mbHVpZF9zeW50aF9zZXRfY2hvcnVzX3R5cGUAwQMeX2ZsdWlkX3N5bnRoX3NldF9jdXN0b21fZmlsdGVyAN0DFV9mbHVpZF9zeW50aF9zZXRfZ2FpbgDMBhRfZmx1aWRfc3ludGhfc2V0X2dlbgDNBh5fZmx1aWRfc3ludGhfc2V0X2ludGVycF9tZXRob2QAxwMcX2ZsdWlkX3N5bnRoX3NldF9sZWdhdG9fbW9kZQDeAxpfZmx1aWRfc3ludGhfc2V0X3BvbHlwaG9ueQDyAiBfZmx1aWRfc3ludGhfc2V0X3BvcnRhbWVudG9fbW9kZQDgAxdfZmx1aWRfc3ludGhfc2V0X3JldmVyYgCzAxxfZmx1aWRfc3ludGhfc2V0X3JldmVyYl9kYW1wALUDHV9mbHVpZF9zeW50aF9zZXRfcmV2ZXJiX2xldmVsALcDGl9mbHVpZF9zeW50aF9zZXRfcmV2ZXJiX29uAPYCIF9mbHVpZF9zeW50aF9zZXRfcmV2ZXJiX3Jvb21zaXplALQDHV9mbHVpZF9zeW50aF9zZXRfcmV2ZXJiX3dpZHRoALYDHF9mbHVpZF9zeW50aF9zZXRfc2FtcGxlX3JhdGUAzgYUX2ZsdWlkX3N5bnRoX3NmY291bnQArQMTX2ZsdWlkX3N5bnRoX3NmbG9hZACmAxlfZmx1aWRfc3ludGhfc2ZvbnRfc2VsZWN0AJQDFV9mbHVpZF9zeW50aF9zZnJlbG9hZACqAxVfZmx1aWRfc3ludGhfc2Z1bmxvYWQApwMSX2ZsdWlkX3N5bnRoX3N0YXJ0ANcDGF9mbHVpZF9zeW50aF9zdGFydF92b2ljZQClAxFfZmx1aWRfc3ludGhfc3RvcADYAxJfZmx1aWRfc3ludGhfc3lzZXgAgwMZX2ZsdWlkX3N5bnRoX3N5c3RlbV9yZXNldACJAxdfZmx1aWRfc3ludGhfdHVuZV9ub3RlcwCFAxhfZmx1aWRfc3ludGhfdHVuaW5nX2R1bXAAhAMiX2ZsdWlkX3N5bnRoX3R1bmluZ19pdGVyYXRpb25fbmV4dADRAyNfZmx1aWRfc3ludGhfdHVuaW5nX2l0ZXJhdGlvbl9zdGFydADQAxpfZmx1aWRfc3ludGhfdW5zZXRfcHJvZ3JhbQCVAxhfZmx1aWRfc3ludGhfd3JpdGVfZmxvYXQAoQMWX2ZsdWlkX3N5bnRoX3dyaXRlX3MxNgCiAw5fZmx1aWRfdmVyc2lvbgDgAhJfZmx1aWRfdmVyc2lvbl9zdHIA4QIUX2ZsdWlkX3ZvaWNlX2FkZF9tb2QAiwQUX2ZsdWlkX3ZvaWNlX2dlbl9nZXQAzwYVX2ZsdWlkX3ZvaWNlX2dlbl9pbmNyANAGFF9mbHVpZF92b2ljZV9nZW5fc2V0ANEGG19mbHVpZF92b2ljZV9nZXRfYWN0dWFsX2tleQCCBCBfZmx1aWRfdm9pY2VfZ2V0X2FjdHVhbF92ZWxvY2l0eQCRBBhfZmx1aWRfdm9pY2VfZ2V0X2NoYW5uZWwAjwQTX2ZsdWlkX3ZvaWNlX2dldF9pZADvAxRfZmx1aWRfdm9pY2VfZ2V0X2tleQCQBBlfZmx1aWRfdm9pY2VfZ2V0X3ZlbG9jaXR5AJIEEl9mbHVpZF92b2ljZV9pc19vbgCOBBdfZmx1aWRfdm9pY2VfaXNfcGxheWluZwD5AxlfZmx1aWRfdm9pY2VfaXNfc29zdGVudXRvAI0EGV9mbHVpZF92b2ljZV9pc19zdXN0YWluZWQAjAQcX2ZsdWlkX3ZvaWNlX29wdGltaXplX3NhbXBsZQCVBBlfZmx1aWRfdm9pY2VfdXBkYXRlX3BhcmFtAP8DBV9mcmVlAPEED19sbHZtX2Jzd2FwX2kzMgDKBQdfbWFsbG9jAPAEB19tZW1jcHkAywUHX21lbXNldADMBRdfbmV3X2ZsdWlkX2F1ZGlvX2RyaXZlcgDbBBhfbmV3X2ZsdWlkX2F1ZGlvX2RyaXZlcjIA3QQWX25ld19mbHVpZF9kZWZzZmxvYWRlcgB+EF9uZXdfZmx1aWRfZXZlbnQAoAIYX25ld19mbHVpZF9maWxlX3JlbmRlcmVyAOQEFl9uZXdfZmx1aWRfbWlkaV9kcml2ZXIA4QQVX25ld19mbHVpZF9taWRpX2V2ZW50AJgEFl9uZXdfZmx1aWRfbWlkaV9yb3V0ZXIAuAQbX25ld19mbHVpZF9taWRpX3JvdXRlcl9ydWxlALoEDl9uZXdfZmx1aWRfbW9kANsCEV9uZXdfZmx1aWRfcGxheWVyAKQEEV9uZXdfZmx1aWRfcHJlc2V0AKoBEV9uZXdfZmx1aWRfc2FtcGxl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BCAKEHMaDAQLIAVBCGoiAkEANgIAIAUoAgwgBSgCNCIATARAQQAgAEECdBDyBCEBIABBAEogAUVxRQRAIAIgATYCACAHJAYgBQ8LC0EBQa28BCAJEHMaDAMLC0EBQa28BCALEHMaBUEBQa28BCANEHMaCwsgBRD4ASAHJAZBAAuuAQEEfyAARQRADwsgACgCCBDxBCAAKAIQEPEEIAAoAhwQ8QQgACgCIBDxBCAAKAIkEPEEIAAoAigQ8QQgACgCACEBIABBQGsiBCgCAEEASgRAA0AgASACQQN0aigCACIDBEAgAxCIAiAAKAIAIQELIAEgAkEDdGooAgQiAwRAIAMQwAEgACgCACEBCyACQQFqIgIgBCgCAEgNAAsLIAEQ8QQgACgCMBDxBCAAEPEECwwAIAAgASgCADYCRAsMACAAIAEoAgA2AkgLCQAgACABNgJMC3QCBH8DfCABKAIAIQIgASgCCCEDIAErAxAhBiABKwMYIQcgASsDICEIIAEoAighBCAAQUBrIgUoAgBBAEwEQA8LQQAhAQNAIAAoAgAgAUEDdGooAgQgAiADIAYgByAIIAQQwgEgAUEBaiIBIAUoAgBIDQALC2sCAn8EfCABKAIAIQIgASsDCCEEIAErAxAhBSABKwMYIQYgASsDICEHIABBQGsiAygCAEEATARADwtBACEBA0AgACgCACABQQN0aigCACACIAQgBSAGIAcQjAIgAUEBaiIBIAMoAgBIDQALCzwBAX8gAEFAayICKAIAQQBMBEAPC0EAIQEDQCAAKAIAIAFBA3RqKAIAEIkCIAFBAWoiASACKAIASA0ACws8AQF/IABBQGsiAigCAEEATARADwtBACEBA0AgACgCACABQQN0aigCBBDBASABQQFqIgEgAigCAEgNAAsLMQAgAUEAIAAoAhwiAWtBP3EgAWo2AgAgAkEAIAAoAiAiAWtBP3EgAWo2AgAgACgCFAsxACABQQAgACgCJCIBa0E/cSABajYCACACQQAgACgCKCIBa0E/cSABajYCACAAKAIYCwUAQYABC98HARJ/IAAgATYCPCABQQl0IQQgAEEYaiILKAIAIQdBACAAQRxqIgkoAgAiAmtBP3EgAmohBkEAIABBIGoiAygCACICa0E/cSACaiEFIAAoAhQiCkEASgRAQQAhAgNAIAYgAkENdCIIQQN0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ACADNgKYBSAAIAI2ApwFIARDAGC6RJSoIQIgAEQAAAAAAAAAADkDsAIgAEEANgLQAiACQQN0EPAEIQMgACADNgLIAiAAIAI2AswCIARDAEC9RJSoIQIgAEQAAAAAAAAAADkDsAUgAEEANgLQBSACQQN0EPAEIQMgACADNgLIBSAAIAI2AswFIARDAKDCRJSoIQIgAEQAAAAAAAAAADkD4AIgAEEANgKAAyACQQN0EPAEIQMgACADNgL4AiAAIAI2AvwCIARDAIDFRJSoIQIgAEQAAAAAAAAAADkD4AUgAEEANgKABiACQQN0EPAEIQMgACADNgL4BSAAIAI2AvwFIARDACDKRJSoIQIgAEQAAAAAAAAAADkDkAMgAEEANgKwAyACQQN0EPAEIQMgACADNgKoAyAAIAI2AqwDIARDAADNRJSoIQIgAEQAAAAAAAAAADkDkAYgAEEANgKwBiACQQN0EPAEIQMgACADNgKoBiAAIAI2AqwGIARDAAALRJSoIQIgAEEANgLIBiACQQN0EPAEIQMgACADNgLABiAAIAI2AsQGIARDAMAQRJSoIQIgAEEANgKoByACQQN0EPAEIQMgACADNgKgByAAIAI2AqQHIARDAIDcQ5SoIQIgAEEANgLgBiACQQN0EPAEIQMgACADNgLYBiAAIAI2AtwGIARDAADoQ5SoIQIgAEEANgLAByACQQN0EPAEIQMgACADNgK4ByAAIAI2ArwHIARDAICqQ5SoIQIgAEEANgL4BiACQQN0EPAEIQMgACADNgLwBiAAIAI2AvQGIARDAAC2Q5SoIQIgAEEANgLYByACQQN0EPAEIQMgACADNgLQByAAIAI2AtQHIARDAABhQ5SoIQIgAEEANgKQByACQQN0EPAEIQMgACADNgKIByAAIAI2AowHIARDAAB4Q5SoIQIgAEEANgLwByACQQN0EPAEIQMgACADNgLoByAAIAI2AuwHIAAQhwILtwsBA38gACgCWCECIAAoAlwiA0EASgRAA0AgAiABQQN0akQ6jDDijnlFPjkDACABQQFqIgEgA0cNAAsLIAAoAtgDIQIgACgC3AMiA0EASgRAQQAhAQNAIAIgAUEDdGpEOoww4o55RT45AwAgAUEBaiIBIANHDQALCyAAKAKIASECIAAoAowBIgNBAEoEQEEAIQEDQCACIAFBA3RqRDqM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AgAgCARAIANB/wFxIQMFIAAgACADQf8BcSIDQQNsaiwAFToAEgsgBCAAQRRqIANBA2xqLAAAIgM6AAAgACADQf8BcSIEQQNsaiABOgAVIAAgBEEDbGogAjoAFiAAIAM6ABAgBUEBOgAACyIAIAAoAghBgAFxBEAPCyAALQB9QT9KBEAPCyAAQX86ABILbgECfyAAKAIIIgJBAXEEQA8LIABBE2oiAywAAEUEQA8LIAFBwABIBEAgACAALAAROgAQIANBAToAAA8LIAJBwABxRQRADwsgACwAPgRADwsgACgCACAAKAIEIAAgAC0AEUEDbGotABVBARDqAxoLngEBAX8CQCAAKAIIIgJBwABxBEAgAkEBcUUEQCAALQCAAUE/TA0CCyAALAATBEAgAUEASgRAIAAsADMNAyAAKAIAIAAoAgQgACAALQARIgJBA2xqLQAVIAAgAkEDbGotABYQ6AMaDAMLIAFFBEAgACwAMwRAIAAoAgAgACgCBCAAIAAtABFBA2xqLQAVQQEQ6gMaCwsLCwsgACABOgAzCywAIABCADcCACAAQgA3AgggAEIANwIQIABCADcCGCAAQgA3AiAgAEJ/NwIEC18BA38jBiEBIwZBEGokBiABIQJBKBDwBCIABH8gAEIANwIAIABCADcCCCAAQgA3AhAgAEIANwIYIABCADcCICAAQn83AgQgASQGIAAFQQBBqZgEIAIQcxogASQGQQALCwkAIAAgATYCAAsJACAAIAE7AQgLCQAgACABOwEKCxAAIABBETYCBCAAIAE2AiQLHgAgAEEBNgIEIAAgATYCDCAAIAI7ARAgACADOwESCxcAIABBAjYCBCAAIAE2AgwgACACOwEQCyUAIABBADYCBCAAIAE2AgwgACACOwEQIAAgAzsBEiAAIAQ2AiALEAAgAEEDNgIEIAAgATYCDAsQACAAQQQ2AgQgACABNgIMCxcAIABBBTYCBCAAIAE2AgwgACACOwEUCxcAIABBBjYCBCAAIAE2AgwgACACOwEWCyUAIABBBzYCBCAAIAE2AgwgACACNgIgIAAgBDsBFiAAIAM7ARQLEAAgAEESNgIEIAAgATYCDAs1AQF/IABBCDYCBCAAIAE2AgwgACACQQBKBH8gAgVBAAsiA0H//wBIBH8gAwVB//8ACzYCHAsXACAAQQk2AgQgACABNgIM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AgAiAkECdBDwBCIARQRAQQFBrbwEIAcQcxpBfyEBQQAhAAwCCyABIAAgAhBwIgRBAEoEQEEAIQEDQCAAIAFBAnRqKAIAIgJBAEoEQCACIAUoAgBMBEAgBigCACACQX9qakEBOgAACwsgAUEBaiIBIARHDQALQQAhAQVBACEBCwVBACEBQQAhAAsLIAAQ8QQgAyQGIAEL8QUBA38gAEUgAUVyBEBBfw8LIAAQ7wICQCAAQZACaiIEKAIAIgMEfwNAIAMgARDaAkUEQCADKAIQIgUEQCAFIQMMAgUMBAsACwsCQAJAAkACQCACDgIBAAILIANBCGoiAiABKwMIIAIrAwCgOQMADAILIAMgASsDCDkDCAwBCyAAQQhqIgIoAgBBf2ohASACIAE2AgAgAQRAQX8PCyAAKAKgASIBQQRqIgIoAgAiAEEATARAQX8PCyACQQA2AgAgASgCACIBQQhqIgIoAgAaIAIgAigCACAAajYCACABQQxqIgIoAgAgAGohACACIAA2AgAgACABKAIEIgFIBEBBfw8LIAIgACABazYCAEF/DwsgAEEIaiICKAIAQX9qIQEgAiABNgIAIAEEQEEADwsgACgCoAEiAUEEaiICKAIAIgBBAEwEQEEADwsgAkEANgIAIAEoAgAiAUEIaiICKAIAGiACIAIoAgAgAGo2AgAgAUEMaiICKAIAIABqIQAgAiAANgIAIAAgASgCBCIBSARAQQAPCyACIAAgAWs2AgBBAA8FQQALIQMLENsCIgIEfyACIAEQzAIgAkEANgIQIANBEGohASADBH8gAQUgBAsgAjYCACAAQQhqIgIoAgBBf2ohASACIAE2AgAgAQRAQQAPCyAAKAKgASIBQQRqIgIoAgAiAEEATARAQQAPCyACQQA2AgAgASgCACIBQQhqIgIoAgAaIAIgAigCACAAajYCACABQQxqIgIoAgAgAGohACACIAA2AgAgACABKAIEIgFIBEBBAA8LIAIgACABazYCAEEABSAAQQhqIgIoAgBBf2ohASACIAE2AgAgAQRAQX8PCyAAKAKgASIBQQRqIgIoAgAiAEEATARAQX8PCyACQQA2AgAgASgCACIBQQhqIgIoAgAaIAIgAigCACAAajYCACABQQxqIgIoAgAgAGohACACIAA2AgAgACABKAIEIgFIBEBBfw8LIAIgACABazYC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AgAaIAIgAigCACAAajYCACABQQxqIgIoAgAgAGohACACIAA2AgAgACABKAIEIgFIBEBBAA8LIAIgACABazYCAEEABSAAQQhqIgIoAgBBf2ohASACIAE2AgAgAQRAQX8PCyAAKAKgASIBQQRqIgIoAgAiAEEATARAQX8PCyACQQA2AgAgASgCACIBQQhqIgIoAgAaIAIgAigCACAAajYCACABQQxqIgIoAgAgAGohACACIAA2AgAgACABKAIEIgFIBEBBfw8LIAIgACABazYCAEF/Cwu8AQEEfyAAQQBHIAFBf0pxRQRAQX8PCyAAEO8CIAAoAjAhBSAAQQhqIgMoAgBBf2ohAiADIAI2AgAgAkUEQCAAKAKgASIDQQRqIgQoAgAiAkEASgRAIARBADYCACADKAIAIgNBCGoiBCgCABogBCAEKAIAIAJqNgIAIANBDGoiBCgCACACaiECIAQgAjYCACACIAMoAgQiA04EQCAEIAIgA2s2AgALCwsgBSABTARAQX8PCyAAIAFBgAEQkgMLqQUAIAFBf0ogAEUgAkUgA0VyIARFcnJBAXNxRQRAQX8PCyAAEO8CIAAoAjAgAUwEQCAAQQhqIgIoAgBBf2ohASACIAE2AgAgAQRAQX8PCyAAKAKgASIBQQRqIgIoAgAiAEEATARAQX8PCyACQQA2AgAgASgCACIBQQhqIgIoAgAaIAIgAigCACAAajYCACABQQxqIgIoAgAgAGohACACIAA2AgAgACABKAIEIgFIBEBBfw8LIAIgACABazYCAEF/DwsgACgChAEgAUECdGooAgAiASgCCEEIcUUEQCAAQQhqIgIoAgBBf2ohASACIAE2AgAgAQRAQX8PCyAAKAKgASIBQQRqIgIoAgAiAEEATARAQX8PCyACQQA2AgAgASgCACIBQQhqIgIoAgAaIAIgAigCACAAajYCACABQQxqIgIoAgAgAGohACACIAA2AgAgACABKAIEIgFIBEBBfw8LIAIgACABazYCAEF/DwsgASACIAMgBBCWAiAEKAIAQYABRgR/IARBADYCACAAQQhqIgIoAgBBf2ohASACIAE2AgAgAQRAQQAPCyAAKAKgASIBQQRqIgIoAgAiAEEATARAQQAPCyACQQA2AgAgASgCACIBQQhqIgIoAgAaIAIgAigCACAAajYCACABQQxqIgIoAgAg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IAIoAgAiAkEIaiIDKAIAGiADIAMoAgAgAGo2AgAgAkEMaiIDKAIAIABqIQAgAyAANgIAIAAgAigCBCICSARAIAEPCyADIAAgAms2AgAgAQuqAQEDfyAARQRAQQAPCyAAEO8CIAAoAngQSSEDIABBCGoiASgCAEF/aiECIAEgAjYCACACBEAgAw8LIAAoAqABIgJBBGoiASgCACIAQQBMBEAgAw8LIAFBADYCACACKAIAIgJBCGoiASgCABogASABKAIAIABqNgIAIAJBDGoiASgCACAAaiEAIAEgADYCACAAIAIoAgQiAkgEQCADDwsgASAAIAJrNgIAIAMLxgIBAn8gAEUEQEEADwsgABDvAiAAKAJ4IAEQRSIBBH8gASgCACEBIABBCGoiAygCAEF/aiECIAMgAjYCACACBEAgAQ8LIAAoAqABIgJBBGoiAygCACIAQQBMBEAgAQ8LIANBADYCACACKAIAIgJBCGoiAygCABogAyADKAIAIABqNgIAIAJBDGoiAygCACAAaiEAIAMgADYCACAAIAIoAgQiAkgEQCABDwsgAyAAIAJrNgIAIAEFIABBCGoiAigCAEF/aiEBIAIgATYCACABBEBBAA8LIAAoAqABIgFBBGoiAigCACIAQQBMBEBBAA8LIAJBADYCACABKAIAIgFBCGoiAigCABogAiACKAIAIABqNgIAIAFBDGoiAigCACAAaiEAIAIgADYCACAAIAEoAgQiAUgEQEEADwsgAiAAIAFrNgIAQQALC80BAQN/IABFBEBBAA8LIAAQ7wICQCAAKAJ4IgIEQANAIAIoAgAiAxCkASABRg0CIAIoAgQiAg0AQQAhAwsLCyAAQQhqIgEoAgBBf2ohAiABIAI2AgAgAgRAIAMPCyAAKAKgASIBQQRqIgAoAgAiBEEATARAIAMPCyAAQQA2AgAgASgCACICQQhqIgAoAgAaIAAgACgCACAEajYCACACQQxqIgEoAgAgBGohBCABIAQ2AgAgBCACKAIEIgBIBEAgAw8LIAEgBCAAazYCACADC9QBAQN/IABFIAFFcgRAQQAPCyAAEO8CAkAgACgCeCICBEADQCACKAIAIgMQpQEgARD+BEUNAiACKAIEIgINAEEAIQMLCwsgAEEIaiIBKAIAQX9qIQIgASACNgIAIAIEQCADDwsgACgCoAEiAUEEaiIA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AARAIAMkBiABDwsgAigCACICQQRqIgQoAgAiAEEATARAIAMkBiABDwsgBEEANgIAIAIoAgAiAkEIaiIEKAIAGiAEIAQoAgAgAGo2AgAgAkEMaiIEKAIAIABqIQAgBCAANgIAIAAgAigCBCICSARAIAMkBiABDwsgBCAAIAJrNgIAIAMkBiABC6kBAQN/IABFBEBBAA8LIAAQ7wIgACgCyAEhAyAAQQhqIgEoAgBBf2ohAiABIAI2AgAgAgRAIAMPCyAAKAKgASICQQRqIgEoAgAiAEEATARAIAMPCyABQQA2AgAgAigCACICQQhqIgEoAgAaIAEgASgCACAAajYCACACQQxqIgEoAgAgAGohACABIAA2AgAgACACKAIEIgJIBEAgAw8LIAEgACACazYCACADC7IBAgJ/AXwgAEUEQEQAAAAAAAAAAA8LIAAQ7wIgACsD0AEhAyAAQQhqIgEoAgBBf2ohAiABIAI2AgAgAgRAIAMPCyAAKAKgASICQQRqIgEoAgAiAEEATARAIAMPCyABQQA2AgAgAigCACICQQhqIgEoAgAaIAEgASgCACAAajYCACACQQxqIgEoAgAgAGohACABIAA2AgAgACACKAIEIgJIBEAgAw8LIAEgACACazYCACADC7IBAgJ/AXwgAEUEQEQAAAAAAAAAAA8LIAAQ7wIgACsD2AEhAyAAQQhqIgEoAgBBf2ohAiABIAI2AgAgAgRAIAMPCyAAKAKgASICQQRqIgEoAgAiAEEATARAIAMPCyABQQA2AgAgAigCACICQQhqIgEoAgAaIAEgASgCACAAajYCACACQQxqIgEoAgAgAGohACABIAA2AgAgACACKAIEIgJIBEAgAw8LIAEgACACazYCACADC7IBAgJ/AXwgAEUEQEQAAAAAAAAAAA8LIAAQ7wIgACsD4AEhAyAAQQhqIgEoAgBBf2ohAiABIAI2AgAgAgRAIAMPCyAAKAKgASICQQRqIgEoAgAiAEEATARAIAMPCyABQQA2AgAgAigCACICQQhqIgEoAgAaIAEgASgCACAAajYCACACQQxqIgEoAgAgAGohACABIAA2AgAgACACKAIEIgJIBEAgAw8LIAEgACACazYCACADC6kBAQN/IABFBEBBAA8LIAAQ7wIgACgC6AEhAyAAQQhqIgEoAgBBf2ohAiABIAI2AgAgAgRAIAMPCyAAKAKgASICQQRqIgEoAgAiAEEATARAIAMPCyABQQA2AgAgAigCACICQQhqIgEoAgAaIAEgASgCACAAajYCACACQQxqIgEoAgAgAGohACABIAA2AgAgACACKAIEIgJIBEAgAw8LIAEgACACazYCACADC9gGAQV/IwYhAyMGQRBqJAYgAEUEQCADJAZBfw8LIAMhBSAAEO8CIAFBf0gEQCAAQQhqIgIoAgBBf2ohASACIAE2AgAgAQRAIAMkBkF/DwsgACgCoAEiAUEEaiICKAIAIgBBAEwEQCADJAZBfw8LIAJBADYCACABKAIAIgFBCGoiAigCABogAiACKAIAIABqNgIAIAFBDGoiAigCACAAaiEAIAIgADYCACAAIAEoAgQiAUgEQCADJAZBfw8LIAIgACABazYCACADJAZBfw8LIAAoAjAiBiABTARAIABBCGoiAigCAEF/aiEBIAIgATYCACABBEAgAyQGQX8PCyAAKAKgASIBQQRqIgIoAgAiAEEATARAIAMkBkF/DwsgAkEANgIAIAEoAgAiAUEIaiICKAIAGiACIAIoAgAgAGo2AgAgAUEMaiICKAIAIABqIQAgAiAANgIAIAAgASgCBCIBSARAIAMkBkF/DwsgAiAAIAFrNgIAIAMkBkF/DwsgACgChAEiBygCACIERQRAQQFBzKoEIAUQcxogAEEIaiICKAIAQX9qIQEgAiABNgIAIAEEQCADJAZBfw8LIAAoAqABIgFBBGoiAigCACIAQQBMBEAgAyQGQX8PCyACQQA2AgAgASgCACIBQQhqIgIoAgAaIAIgAigCACAAajYCACABQQxqIgIoAgAgAGohACACIAA2AgAgACABKAIEIgFIBEAgAyQGQX8PCyACIAAgAWs2AgAgAyQGQX8PCwJAIAZBAEoEQCABQQBIBEAgBCACNgLAAiAGQQFGDQJBASEBA0AgByABQQJ0aigCACACNgLAAiABQQFqIgEgBkcNAAsMAgtBACEFA0AgBCgCBCABRgRAIAQgAjYCwAILIAVBAWoiBCAGRg0CIAQhBSAHIARBAnRqKAIAIQQMAAALAAsLIABBCGoiAigCAEF/aiEBIAIgATYCACABBEAgAyQGQQAPCyAAKAKgASIBQQRqIgIoAgAiAEEATARAIAMkBkEADwsgAkEANgIAIAEoAgAiAUEIaiICKAIAGiACIAIoAgAgAGo2AgAgAUEMaiICKAIAIABqIQAgAiAANgIAIAAgASgCBCIBSARAIAMkBkEADwsgAiAAIAFrNgIAIAMkBkEAC6gBAQN/IABFBEBBAA8LIAAQ7wIgACgCMCEDIABBCGoiASgCAEF/aiECIAEgAjYCACACBEAgAw8LIAAoAqABIgJBBGoiASgCACIAQQBMBEAgAw8LIAFBADYCACACKAIAIgJBCGoiASgCABogASABKAIAIABqNgIAIAJBDGoiASgCACAAaiEAIAEgADYCACAAIAIoAgQiAkgEQCADDwsgASAAIAJrNgIAIAMLqAEBA38gAEUEQEEADwsgABDvAiAAKAI4IQMgAEEIaiIBKAIAQX9qIQIgASACNgIAIAIEQCADDwsgACgCoAEiAkEEaiIBKAIAIgBBAEwEQCADDwsgAUEANgIAIAIoAgAiAkEIaiIBKAIAGiABIAEoAgAgAGo2AgAgAkEMaiIBKAIAIABqIQAgASAANgIAIAAgAigCBCICSARAIAMPCyABIAAgAms2AgAgAwuoAQEDfyAARQRAQQAPCyAAEO8CIAAoAjwhAyAAQQhqIgEoAgBBf2ohAiABIAI2AgAgAgRAIAMPCyAAKAKgASICQQRqIgEoAgAiAEEATARAIAMPCyABQQA2AgAgAigCACICQQhqIgEoAgAaIAEgASgCACAAajYCACACQQxqIgEoAgAgAGohACABIAA2AgAgACACKAIEIgJIBEAgAw8LIAEgACACazYCACADC6sBAQN/IABFBEBBAA8LIAAQ7wIgAEFAaygCACEDIABBCGoiASgCAEF/aiECIAEgAjYCACACBEAgAw8LIAAoAqABIgJBBGoiASgCACIAQQBMBEAgAw8LIAFBADYCACACKAIAIgJBCGoiASgCABogASABKAIAIABqNgIAIAJBDGoiASgCACAAaiEAIAEgADYCACAAIAIoAgQiAkgEQCADDwsgASAAIAJrNgIAIAMLqAEBA38gAEUEQEEADwsgABDvAiAAKAJEIQMgAEEIaiIBKAIAQX9qIQIgASACNgIAIAIEQCADDwsgACgCoAEiAkEEaiIBKAIAIgBBAEwEQCADDwsgAUEANgIAIAIoAgAiAkEIaiIBKAIAGiABIAEoAgAgAGo2AgAgAkEMaiIBKAIAIABqIQAgASAANgIAIAAgAigCBCICSARAIAMPCyABIAAgAms2AgAgAwsaACAARQRARAAAAAAAAAAADwsgACgC+AG+uwvtAQAgA0UgAEUgAiABckH/AEtycgRAQX8PCyAAEO8CIAMgASACEOsDIgMEQCAEBEAgAyAEEPEDCyAAIAMgASACIAUQgQMiAUF/RgRAIANBARDuAxpBfyEBCwVBfyEBCyAAQQhqIgMoAgBBf2ohAiADIAI2AgAgAgRAIAEPCyAAKAKgASICQQRqIgMoAgAiAEEATARAIAEPCyADQQA2AgAgAigCACICQQhqIgMoAgAaIAMgAygCACAAajYCACACQQxqIgMoAgAgAGohACADIAA2AgAgACACKAIEIgJIBEAgAQ8LIAMgACACazYCACABC9UDAQR/IABBAEcgAUF/SnFFBEBBfw8LIAAQ7wIgACgCMCABTARAIABBCGoiAigCAEF/aiEBIAIgATYCACABBEBBfw8LIAAoAqABIgFBBGoiAigCACIAQQBMBEBBfw8LIAJBADYCACABKAIAIgFBCGoiAigCABogAiACKAIAIABqNgIAIAFBDGoiAigCACAAaiEAIAIgADYCACAAIAEoAgQiAUgEQEF/DwsgAiAAIAFrNgIAQX8PCyAAKAKEASABQQJ0aigCACIEQdQCaiIBKAIAIQMgAUEANgIAIAIEQCAAQRRqIgUoAgBBAEoEQCAAQYwBaiEGQQAhAQNAIAYoAgAgAUECdGooAgAiAhCOBARAIAIoAgggBEYEQCACEIEEIAJBOxD/AwsLIAFBAWoiASAFKAIASA0ACwsLIAMEQCADQQEQ7gMaCyAAQQhqIgIoAgBBf2ohASACIAE2AgAgAQRAQQAPCyAAKAKgASIBQQRqIgIoAgAiAEEATARAQQAPCyACQQA2AgAgASgCACIBQQhqIgIoAgAaIAIgAigCACAAajYCACABQQxqIgIoAgAgAGohACACIAA2AgAgACABKAIEIgFIBEBBAA8LIAIgACABazYCAEEAC6IBAQJ/IABFBEAPCyAAEO8CIAAoAoACQQA2AgAgAEEIaiIBKAIAQX9qIQIgASACNgIAIAIEQA8LIAAoAqABIgJBBGoiASgCACIAQQBMBEAPCyABQQA2AgAgAigCACICQQhqIgEoAgAaIAEgASgCACAAajYCACACQQxqIgEoAgAgAGohACABIAA2AgAgACACKAIEIgJIBEAPCyABIAAgAms2AgALiQUBBX8gAEUgAUVyIAJFcgRAQQAPCyAAEO8CIAAoAoACIgUoAgAhAyAAKAL8ASIGRQRAIABBCGoiAigCAEF/aiEBIAIgATYCACABBEBBAA8LIAAoAqABIgFBBGoiAigCACIAQQBMBEBBAA8LIAJBADYCACABKAIAIgFBCGoiAigCABogAiACKAIAIABqNgIAIAFBDGoiAigCACAAaiEAIAIgADYCACAAIAEoAgQiAUgEQEEADwsgAiAAIAFrNgIAQQAPCwJAIANBCHZB/wFxIgRBgAFJBEAgA0H/AXEhAwNAAkAgBiAEQQJ0aigCACIHQQBHIANBgAFJcQRAA0AgByADQQJ0aigCAA0CIANBAWoiA0GAAUkNAAsLIARB/wBPDQMgBEEBaiEEQQAhAwwBCwsgASAENgIAIAIgAzYCACAEQQh0IgFBgAJqIQIgA0EBaiABciEBIAUgA0H/AEkEfyABBSACCzYCACAAQQhqIgIoAgBBf2ohASACIAE2AgAgAQRAQQEPCyAAKAKgASIBQQRqIgIoAgAiAEEATARAQQEPCyACQQA2AgAgASgCACIBQQhqIgIoAgAaIAIgAigCACAAajYCACABQQxqIgIoAgAgAGohACACIAA2AgAgACABKAIEIgFIBEBBAQ8LIAIgACABazYCAEEBDwsLIABBCGoiAigCAEF/aiEBIAIgATYCACABBEBBAA8LIAAoAqABIgFBBGoiAigCACIAQQBMBEBBAA8LIAJBADYCACABKAIAIgFBCGoiAigCABogAiACKAIAIABqNgIAIAFBDGoiAigCACAAaiEAIAIgADYCACAAIAEoAgQiAUgEQEEADwsgAiAAIAFrNgIAQQALDwAgAAR/IAAoAgwFQQALCw0AIAAgASACIAMQ1AML1QMCBH8BfCABQX9KIABBAEcgAkE/SXFxRQRAQX8PCyAAEO8CIAAoAjAgAUwEQCAAQQhqIgIoAgBBf2ohASACIAE2AgAgAQRAQX8PCyAAKAKgASIBQQRqIgIoAgAiAEEATARAQX8PCyACQQA2AgAgASgCACIBQQhqIgIoAgAaIAIgAigCACAAajYCACABQQxqIgIoAgAgAGohACACIAA2AgAgACABKAIEIgFIBEBBfw8LIAIgACABazYCAEF/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IAFrNgIAQX8LC+ACACABQX9KIABBAEcgAkEAR3FxRQRAQX8PCyAAEO8CIAAoAjAgAUoEfyACIAAoAoQBIAFBAnRqKAIAKAI0NgIAIABBCGoiAigCAEF/aiEBIAIgATYCACABBEBBAA8LIAAoAqABIgFBBGoiAigCACIAQQBMBEBBAA8LIAJBADYCACABKAIAIgFBCGoiAigCABogAiACKAIAIABqNgIAIAFBDGoiAigCACAAaiEAIAIgADYCACAAIAEoAgQiAUgEQEEADwsgAiAAIAFrNgIAQQAFIABBCGoiAigCAEF/aiEBIAIgATYCACABBEBBfw8LIAAoAqABIgFBBGoiAigCACIAQQBMBEBBfw8LIAJBADYCACABKAIAIgFBCGoiAigCABogAiACKAIAIABqNgIAIAFBDGoiAigCACAAaiEAIAIgADYCACAAIAEoAgQiAUgEQEF/DwsgAiAAIAFrNgIAQX8LC90CACABQX9KIABBAEcgAkEDSXFxRQRAQX8PCyAAEO8CIAAoAjAgAUoEfyAAKAKEASABQQJ0aigCACACNgI4IABBCGoiAigCAEF/aiEBIAIgATYCACABBEBBAA8LIAAoAqABIgFBBGoiAigCACIAQQBMBEBBAA8LIAJBADYCACABKAIAIgFBCGoiAigCABogAiACKAIAIABqNgIAIAFBDGoiAigCACAAaiEAIAIgADYCACAAIAEoAgQiAUgEQEEADwsgAiAAIAFrNgIAQQAFIABBCGoiAigCAEF/aiEBIAIgATYCACABBEBBfw8LIAAoAqABIgFBBGoiAigCACIAQQBMBEBBfw8LIAJBADYCACABKAIAIgFBCGoiAigCABogAiACKAIAIABqNgIAIAFBDGoiAigCACAAaiEAIAIgADYCACAAIAEoAgQiAUgEQEF/DwsgAiAAIAFrNgIAQX8LC+ACACABQX9KIABBAEcgAkEAR3FxRQRAQX8PCyAAEO8CIAAoAjAgAUoEfyACIAAoAoQBIAFBAnRqKAIAKAI4NgIAIABBCGoiAigCAEF/aiEBIAIgATYCACABBEBBAA8LIAAoAqABIgFBBGoiAigCACIAQQBMBEBBAA8LIAJBADYCACABKAIAIgFBCGoiAigCABogAiACKAIAIABqNgIAIAFBDGoiAigCACAAaiEAIAIgADYCACAAIAEo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CyADIAVB/wFxNgIAQQJBkawEIAMQcxogBCQGDwsLAkACfwJAAkACQCACDgIBAAILIABBHGoiAygCACICQQBKBEBBACECA0AgAEEgaiACQRhsaiABENoCRQRAIAJBAWoiAiADKAIAIgVIBEAMAgUgBQwGCwALCyAAIAJBGGxqQShqIgAgASsDCCAAKwMAoDkDACAEJAYPCwwDCyAAQRxqIgMoAgAiAkEASgRAQQAhAgNAIABBIGogAkEYbGogARDaAkUEQCACQQFqIgIgAygCACIFSARADAIFIAUMBQsACwsgACACQRhsaiABKwMIOQMoIAQkBg8LDAILIABBHGoiAiEDIAIoAgALIgJBwABOBEAgBiAAKAIANgIAQQJBxqwEIAYQcxogBCQGDwsLIAMgAkEBajYCACAAQSBqIAJBGGxqIAEQzAIgBCQGCwoAIAAsAARBAkYLCgAgACwABEEDRgsaACAALAAEQQFHBEBBAA8LIABB0hxqLAAARQsHACAALQAFCwcAIAAtAAYLUgEBfCAAQYAYaiwAAEECRgR8IABBmBhqKwMABSAAQYgYaisDACAAQZAYaisDAKAgAEGYGGorAwCgCyIBRAAAAAAAAAAAZAR/IAGqBSAALQAHCwsHACAALQAHCzUAIAAgAUEFdGpBuAxqIAI5AwAgAEGgDGogAUEFdGogAwR/QQIFQQELOgAAIAAgARD/A0EAC48DAgV/BXwjBiEEIwZBMGokBiAEIQIgAEGgHGoiBSABREivvJry13o+YwR8REivvJry13o+IgEFIAELOQMAIABBqBxqIgYrAwBBARAyIQcgAEGwHGoiAysDAEEBEDMhCCAFKwMAIAcgCKKiRAAAAAAAAIA+oiEKIAYrAwBBABAyIQcgAysDAEEAEDMhCCAFKwMAIgkgByAIoqJEAAAAAAAAgD6iIQsgCSAAQbgcaisDAKJEAAAAAAAAgD6iIQcgCSAAQcAcaisDAKJEAAAAAAAAgD6iIQggAiABOQMAIABBDGoiAygCAEEZIABByBxqIgAoAgAgAhDtARogAkEANgIAIAIgCjkDCCADKAIAQSYgACgCAEHgCGogAhDtARogAkEBNgIAIAIgCzkDCCADKAIAQSYgACgCAEHgCGogAhDtARogAkECNgIAIAIgBzkDCCADKAIAQSYgACgCAEHgCGogAhDtARog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IQEgACABEIgDGg8LIAEQvQIhASAAIAEQhwMaDwsgARC9AiECIAEQwAJBEHRBEHUhASAAIAIgARCTAxoPCyABEL0CIQIgARDBAkEQdEEQdSEBIAAgAiABEJIDGg8LIAEQvQIhAiABEMMCIQMgARDAAkEQdEEQdSEEIAEQwQJBEHRBEHUhASAAIAIgAyAEIAEQlwMaDwsgA0EMaiIALgEAIgFBf0cEQCADKAIEIgIEQCACIAEQzQQgAEF/OwEACwsgAygCCCIABEAgAygCACIBBEAgASAAEOMCCwsgAxDxBA8LIAEQvQIhAiABEMQCIQEgACACIAEQjQMaDwsgARC9AiECIAEQwQJBEHRBEHUhASAAIAIgARCPAxoPCyABEL0CIQIgARDAAkEQdEEQdSEDIAEQwQJBEHRBEHUhASAAIAIgAyABEP0CGg8LIAEQvQIhAiABEMECQRB0QRB1IQEgACACQQEgARD9AhoPCyABEL0CIQIgARDBAkEQdEEQdSEBIAAgAkHAACABEP0CGg8LIAEQvQIhAiABEMECQRB0QRB1IQEgACACQQogARD9AhoPCyABEL0CIQIgARDBAkEQdEEQdSEBIAAgAkEHIAEQ/QIaDwsgARC9AiECIAEQwQJBEHRBEHUhASAAIAJB2wAgARD9AhoPCyABEL0CIQIgARDBAkEQdEEQdSEBIAAgAkHdACABEP0CGg8LIAEQvQIhAiABEMECQRB0QRB1IQEgACACIAEQiwMaDwsgARC9AiECIAEQvgJBEHRBEHUhAyABEMECQRB0QRB1IQEgACACIAMgARCMAxoPCyAAEIkDGgsLmgQBB38jBiEGIwZBMGokBiAGIQIgARCcBCEEIAIQnwIgABDVBCEDIAIgAxChAgJAIAAQ0AQiB0EASgRAQQAhAwNAIAAgAxDRBCEFIAAgBRDSBCIIBEAgCEH3twQQ/gRFDQMLIANBAWoiAyAHSA0AC0F/IQUFQX8hBQsLIAIgBRCjAgJAAkACQAJAAkACQAJAAkACQAJAIAEQmgRBgAFrDoABAAgICAgICAgICAgICAgICAEICAgICAgICAgICAgICAgGCAgICAgICAgICAgICAgIAggICAgICAgICAgICAgICAMICAgICAgICAgICAgICAgFCAgICAgICAgICAgICAgIBAgICAgICAgICAgICAgICAgI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IAAgACgCLCAAKAIwaiICNgIIIAAgAjYCBCABQRt0QR91CyIAC1wBAn8gACwAACICRSACIAEsAAAiA0dyBH8gAiEBIAMFA38gAEEBaiIALAAAIgJFIAIgAUEBaiIBLAAAIgNHcgR/IAIhASADBQwBCwsLIQAgAUH/AXEgAEH/AXFrC2wBA39BBCEDAkAgACwAACICBH8gACEEIAIhAANAIABBGHRBGHUgASwAACICRiADQX9qIgNBAEcgAkEAR3FxRQ0CIAFBAWohASAEQQFqIgQsAAAiAA0AC0EABUEACyEACyAAQf8BcSABLQAAawsKACAAQVBqQQpJC40DAQR/IwYhBiMGQYABaiQGIAZB/ABqIQUgBiIEQfjsAykCADcCACAEQYDtAykCADcCCCAEQYjtAykCADcCECAEQZDtAykCADcCGCAEQZjtAykCADcCICAEQaDtAykCADcCKCAEQajtAykCADcCMCAEQbDtAykCADcCOCAEQUBrQbjtAykCADcCACAEQcDtAykCADcCSCAEQcjtAykCADcCUCAEQdDtAykCADcCWCAEQdjtAykCADcCYCAEQeDtAykCADcCaCAEQejtAykCADcCcCAEQfDtAygCADYCeAJAAkAgAUF/akH+////B0sEfyABBH8Q+QRBywA2AgBBfwUgBSEAQQEhBQwCCwUgASEFDAELIQAMAQsgBCAFQX4gAGsiAUsEfyABBSAFIgELNgIwIARBFGoiByAANgIAIAQgADYCLCAEQRBqIgUgACABaiIANgIAIAQgADYCHCAEIAIgAxCCBSEAIAEEQCAHKAIAIgEgASAFKAIARkEfdEEfdWpBADoAAAsLIAYkBiAAC/4CAQx/IwYhBCMGQeABaiQGIAQhBSAEQaABaiIDQgA3AwAgA0IANwMIIANCADcDECADQgA3AxggA0IANwMgIARB0AFqIgYgAigCADYCAEEAIAEgBiAEQdAAaiICIAMQgwVBAEgEQEF/IQEFIAAoAkxBf0oEfxB9BUEACyEMIAAoAgAhByAALABKQQFIBEAgACAHQV9xNgIACyAAQTBqIggoAgAEQCAAIAEgBiACIAMQgwUhAQUgAEEsaiIJKAIAIQogCSAFNgIAIABBHGoiDSAFNgIAIABBFGoiCyAFNgIAIAhB0AA2AgAgAEEQaiIOIAVB0ABqNgIAIAAg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IAZJBH8gBAUgBiIECxDLBRogBSAFKAIAIARqNgIAIAAgBGohACAGIARrBSAGCyEFIAFFBEBBACECCwJAAkAgBUUNACADQSBqIQcgACEEIAUhAANAAkAgAxD9BA0AIAMgBCAAIAcoAgBBH3FBQGsRAwAiBUEBakECSQ0AIAQgBWohBCAAIAVrIgANAQwCCwsgCARAEIQFCyAGIABrIAFuIQIMAQsgCARAEIQFCwsgAgsHACAAEMEFC6cBAQN/A0AgACwAABD8BEUhAiAAQQFqIQEgAkUEQCABIQAMAQsLAn8CQAJAAkACQCAALAAAIgNBK2sOAwECAAILQQEhAAwCC0EAIQAMAQtBACECIAMMAQsgACECIAEiACwAAAsiARCABQRAQQAhAQNAIAFBCmxBMGogACwAAGshASAAQQFqIgAsAAAQgAUNAAsFQQAhAQtBACABayEAIAIEfyABBSAACwvKAQEDfyMGIQIjBkEQaiQGIAIhAQJ8IAC9QiCIp0H/////B3EiA0H8w6T/A0kEfCADQZ7BmvIDSQR8RAAAAAAAAPA/BSAARAAAAAAAAAAAEKUFCwUgACAAoSADQf//v/8HSw0BGgJAAkACQAJAIAAgARCmBUEDcQ4DAAECAwsgASsDACABKwMIEKUFDAQLIAErAwAgASsDCEEBEKgFmgwDCyABKwMAIAErAwgQpQWaDAILIAErAwAgASsDCEEBEKgFCwshACACJAYgAAvRAQEDfyMGIQIjBkEQaiQGIAIhAQJAIAC9QiCIp0H/////B3EiA0H8w6T/A0kEQCADQYCAwPIDTwRAIABEAAAAAAAAAABBABCoBSEACwUgA0H//7//B0sEQCAAIAChIQAMAgsCQAJAAkACQAJAIAAgARCmBUEDcQ4DAAECAwsgASsDACABKwMIQQEQqAUhAAwFCyABKwMAIAErAwgQpQUhAAwECyABKwMAIAErAwhBARCoBZohAAwDCyABKwMAIAErAwgQpQWaIQALCwsgAiQGIAALnwMDAn8BfgV8IAC9IgNCIIinIQECfyADQgBTIgIgAUGAgMAASXIEfyADQv///////////wCDQgBRBEBEAAAAAAAA8L8gACAAoqMPCyACRQRAIABEAAAAAAAAUEOivSIDQiCIpyEBIANC/////w+DIQNBy3cMAgsgACAAoUQAAAAAAAAAAKMPBSABQf//v/8HSwRAIAAPCyADQv////8PgyIDQgBRIAFBgIDA/wNGcQR/RAAAAAAAAAAADwVBgXgLCwshAiABQeK+JWoiAUH//z9xQZ7Bmv8Daq1CIIYgA4S/RAAAAAAAAPC/oCIFIAVEAAAAAAAA4D+ioiEGIAUgBUQAAAAAAAAAQKCjIgcgB6IiCCAIoiEEIAIgAUEUdmq3IgBEAADg/kIu5j+iIAUgAER2PHk17znqPaIgByAGIAQgBCAERJ/GeNAJmsM/okSveI4dxXHMP6CiRAT6l5mZmdk/oKIgCCAEIAQgBEREUj7fEvHCP6JE3gPLlmRGxz+gokRZkyKUJEnSP6CiRJNVVVVVVeU/oKKgoKKgIAahoKALtQoDBn8Bfgh8IAC9IgdCIIinIgNB/////wdxIgIgB6ciBHJFBEBEAAAAAAAA8D8PCyACQYCAwP8HTQRAIARBAEcgAkGAgMD/B0YiBXFFBEACQAJAIARFDQAMAQsgBQRAIANBf0oiAQR8IAAFRAAAAAAAAAAACw8LIAJBgIDA/wNGBEAgA0F/SgR8RAAAAAAAACRABUSamZmZmZm5PwsPCyADQYCAgIAERgRARAAAAAAAAFlADwsgA0GAgID/A0YEQERTW9o6WEwJQA8LCyACQYCAgI8ESwR8IAJBgIDAnwRLBEAgA0EASgR8IwoFRAAAAAAAAAAACw8LIANBAEoEfEQAAAAAAADwfwVEAAAAAAAAAAALDwVBgIDQmwQhAUGAgJCBBCEBQQMhAiABQf//P3EiA0GAgMD/A3IhASADQY+xDkkEQEEAIQMFIAFBgIBAaiEFIANB+uwuSSIEIQMgBEEBc0EBcUEDaiECIARFBEAgBSEBCwsgA0EDdEHw6QNqKwMAIg0gAa1CIIa/IgogA0EDdEHQ6QNqKwMAIgyhIgtEAAAAAAAA8D8gDCAKoKMiDqIiCb1CgICAgHCDvyIIIAggCKIiD0QAAAAAAAAIQKAgCSAIoCAOIAsgAUEBdUGAgICAAnJBgIAgaiADQRJ0aq1CIIa/IgsgCKKhIAogCyAMoaEgCKKhoiIKoiAJIAmiIgggCKIgCCAIIAggCCAIRO9ORUoofso/okRl28mTSobNP6CiRAFBHalgdNE/oKJETSaPUVVV1T+gokT/q2/btm3bP6CiRAMzMzMzM+M/oKKgIgygvUKAgICAcIO/IgiiIgsgCiAIoiAJIAwgCEQAAAAAAAAIwKAgD6GhoqAiCaC9QoCAgIBwg78iCEQAAADgCcfuP6IiCiADQQN0QeDpA2orAwAgCSAIIAuhoUT9AzrcCcfuP6IgCET1AVsU4C8+PqKhoCIIoKAgArciDKC9QoCAgIBwg78iCyEJIAsgDKEgDaEgCqELIQogCCAKoSAAoiAAIAdCgICAgHCDvyIIoSAJoqAhACAJIAiiIgggAKAiCb0iB0IgiKchAiAHpyEBIAJB//+/hARKBEAgAkGAgMD7e2ogAXIEQEQAAAAAAADwfw8LIABE/oIrZUcVlzygIAkgCKFkBEBEAAAAAAAA8H8PCwUgAkGA+P//B3FB/5fDhARLBEAgAkGA6Lz7A2ogAXIEQEQAAAAAAAAAAA8LIAAgCSAIoWUEQEQAAAAAAAAAAA8LCwsgAkH/////B3EiAUGAgID/A0sEQEGAgEBBgIDAACABQRR2QYJ4anYgAmoiAUEUdkH/D3EiA0GBeGp1IAFxrUIghr8hCUEAIAFB//8/cUGAgMAAckGTCCADa3YiA2shASAIIAmhIgkhCCACQQBOBEAgAyEBCyAAIAmgvSEHBUEAIQELRAAAAAAAAPA/IAFBFHREAAAAAAAA8D8gB0KAgICAcIO/IglEAAAAAEMu5j+iIgogACAJIAihoUTvOfr+Qi7mP6IgCUQ5bKgMYVwgPqKhIgmgIgggCCAIIAiiIgAgACAAIAAgAETQpL5yaTdmPqJE8WvSxUG9u76gokQs3iWvalYRP6CiRJO9vhZswWa/oKJEPlVVVVVVxT+goqEiAKIgAEQAAAAAAAAAwKCjIAkgCCAKoaEiACAIIACioKEgCKGhIgi9IgdCIIinaiICQYCAwABIBHwgCCABEJ4FBSACrUIghiAHQv////8Pg4S/C6IPCwtEAAAAAAAAJEAgAKALKwAgAEH/AXFBGHQgAEEIdUH/AXFBEHRyIABBEHVB/wFxQQh0ciAAQRh2cgvDAwEDfyACQYDAAE4EQCAAIAEgAhAcDwsgACEEIAAgAmohAyAAQQNxIAFBA3FGBEADQCAAQQNxBEAgAkUEQCAEDwsgACABLAAAOgAAIABBAWohACABQQFqIQEgAkEBayECDAELCyADQXxxIgJBQGohBQNAIAAgBUwEQCAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCAAIAEoAgw2AgwgACABKAIQNgIQIAAgASgCFDYCFCAAIAEoAhg2AhggACABKAIcNgIcIAAgASgCIDYCICAAIAEoAiQ2AiQgACABKAIoNgIoIAAgASgCLDYCLCAAIAEoAjA2AjAgACABKAI0NgI0IAAgASgCODYCOCAAIAEoAjw2AjwgAEFAayEAIAFBQGshAQwBCwsDQCAAIAJIBEAgACABKAIANgIAIABBBGohACABQQRqIQEMAQsLBSADQQRrIQIDQCAAIAJIBEAgACABLAAAOgAAIAAgASwAAToAASAAIAEsAAI6AAIgACABLAADOgADIABBBGohACABQQRqIQEMAQsLCwNAIAAgA0gEQCAAIAEsAAA6AAAgAEEBaiEAIAFBAWohAQwBCwsgBAuYAgEEfyAAIAJqIQQgAUH/AXEhASACQcMATgRAA0AgAEEDcQRAIAAgAToAACAAQQFqIQAMAQsLIARBfHEiBUFAaiEGIAEgAUEIdHIgAUEQdHIgAUEYdHIhAwNAIAAgBkwEQCAAIAM2AgAgACADNgIEIAAgAzYCCCAAIAM2AgwgACADNgIQIAAgAzYCFCAAIAM2AhggACADNgIcIAAgAzYCICAAIAM2AiQgACADNgIoIAAgAzYCLCAAIAM2AjAgACADNgI0IAAgAzYCOCAAIAM2AjwgAEFAayEADAELCwNAIAAgBUgEQCAAIAM2AgAgAEEEaiEADAELCwsDQCAAIARIBEAgACABOgAAIABBAWohAAwBCwsgBCACawtVAQJ/IABBAEojBSgCACIBIABqIgAgAUhxIABBAEhyBEAQAxpBDBAPQX8PCyMFIAA2AgAQAiECIAAgAkoEQBABRQRAIwUgATYCAEEMEA9Bfw8LCyABCwwAIAEgAEEfcREBAAsIAEEAIAAQBAsIAEEBIAAQBAsIAEECIAAQBAsIAEEDIAAQBAsIAEEEIAAQBAsIAEEFIAAQBAsIAEEGIAAQBAsIAEEHIAAQBAsIAEEIIAAQBAsIAEEJIAAQBAsRACABIAIgAEEfcUEgahECAAsKAEEAIAAgARAFCwoAQQEgACABEAULCgBBAiAAIAEQBQsKAEEDIAAgARAFCwoAQQQgACABEAULCgBBBSAAIAEQBQsKAEEGIAAgARAFCwoAQQcgACABEAULCgBBCCAAIAEQBQsKAEEJIAAgARAFCxMAIAEgAiADIABBH3FBQGsRAwALDABBACAAIAEgAhAGCwwAQQEgACABIAIQBgsMAEECIAAgASACEAYLDABBAyAAIAEgAhAGCwwAQQQgACABIAIQBgsMAEEFIAAgASACEAYLDABBBiAAIAEgAhAGCwwAQQcgACABIAIQBgsMAEEIIAAgASACEAYLDABBCSAAIAEgAhAGCxgAIAEgAiADIAQgBSAAQQ9xQeAAahEIAAsQAEEAIAAgASACIAMgBBAHCxAAQQEgACABIAIgAyAEEAcLEABBAiAAIAEgAiADIAQQBwsQAEEDIAAgASACIAMgBBAHCxAAQQQgACABIAIgAyAEEAcLEABBBSAAIAEgAiADIAQQBwsQAEEGIAAgASACIAMgBBAHCxAAQQcgACABIAIgAyAEEAcLEABBCCAAIAEgAiADIAQQBwsQAEEJIAAgASACIAMgBBAHCxoAIAEgAiADIAQgBSAGIABBD3FB8ABqEQkACxIAQQAgACABIAIgAyAEIAUQCAsSAEEBIAAgASACIAMgBCAFEAgLEgBBAiAAIAEgAiADIAQgBRAICxIAQQMgACABIAIgAyAEIAUQCAsSAEEEIAAgASACIAMgBCAFEAgLEgBBBSAAIAEgAiADIAQgBRAICxIAQQYgACABIAIgAyAEIAUQCAsSAEEHIAAgASACIAMgBCAFEAgLEgBBCCAAIAEgAiADIAQgBRAICxIAQQkgACABIAIgAyAEIAUQCAsQACABIABBH3FBgAFqEQAACwgAQQAgABAJCwgAQQEgABAJCwgAQQIgABAJCwgAQQMgABAJCwgAQQQgABAJCwgAQQUgABAJCwgAQQYgABAJCwgAQQcgABAJCwgAQQggABAJCwgAQQkgABAJCxIAIAEgAiAAQT9xQaABahEGAAsKAEEAIAAgARAKCwoAQQEgACABEAoLCgBBAiAAIAEQCgsKAEEDIAAgARAKCwoAQQQgACABEAoLCgBBBSAAIAEQCgsKAEEGIAAgARAKCwoAQQcgACABEAoLCgBBCCAAIAEQCgsKAEEJIAAgARAKCxQAIAEgAiADIABBD3FB4AFqEQUACwwAQQAgACABIAIQCwsMAEEBIAAgASACEAsLDABBAiAAIAEgAhALCwwAQQMgACABIAIQCwsMAEEEIAAgASACEAsLDABBBSAAIAEgAhALCwwAQQYgACABIAIQCwsMAEEHIAAgASACEAsLDABBCCAAIAEgAhALCwwAQQkgACABIAIQCwsUACABIAIgAyAAQR9xQfABahEEAAsMAEEAIAAgASACEAwLDABBASAAIAEgAhAMCwwAQQIgACABIAIQDAsMAEEDIAAgASACEAwLDABBBCAAIAEgAhAMCwwAQQUgACABIAIQDAsMAEEGIAAgASACEAwLDABBByAAIAEgAhAMCwwAQQggACABIAIQDAsMAEEJIAAgASACEAwLFgAgASACIAMgBCAAQQ9xQZACahEHAAsOAEEAIAAgASACIAMQDQsOAEEBIAAgASACIAMQDQsOAEECIAAgASACIAMQDQsOAEEDIAAgASACIAMQDQsOAEEEIAAgASACIAMQDQsOAEEFIAAgASACIAMQDQsOAEEGIAAgASACIAMQDQsOAEEHIAAgASACIAMQDQsOAEEIIAAgASACIAMQDQsOAEEJIAAgASACIAMQDQsIAEEAEABBAAsIAEEBEABBAAsIAEECEABBAAsIAEEDEABBAAsIAEEEEABBAAsGAEEFEAALBgBBBhAACwYAQQcQAAsGAEEIEAALBgBBCRAACwUAEO4ECxAAIAAgASACIAO2IAQQvgQLEAAgACABIAIgA7YgBBC/BAsQACAAIAEgAiADtiAEEMAECwgAIAAQmQO7CwwAIAAgASACENUDuwsKACAAIAG2EPMCCw4AIAAgASACIAO2ENMDCwoAIAAgAbYQ9AILCgAgACABEPwDuwsMACAAIAEgArYQ+wMLDAAgACABIAK2EPoDCwvRrwQ6AEGGCAuCpQHwP9SNMNtdAvA/m3f+D7wE8D+r/naeGgfwP1pmp4Z5CfA/6fOcyNgL8D+a7mRkOA7wP5qfDFqYEPA/GFKhqfgS8D8yUzBTWRXwPwLyxla6F/A/nX9ytBsa8D8NT0BsfRzwP061PX7fHvA/XAl46kEh8D8xpPywpCPwP7Xg2NEHJvA/1BsaTWso8D9ptM0izyrwP1ILAVMzLfA/aoPB3Zcv8D96gRzD/DHwP1BsHwNiNPA/u6zXncc28D91rVKTLTnwP0TbneOTO/A/36TGjvo98D8Be9qUYUDwP13Q5vXIQvA/qhn5sTBF8D+QzR7JmEfwP8dkZTsBSvA/81naCGpM8D/GKYsx007wP+BShbU8UfA/7lXWlKZT8D+YtYvPEFbwP4X2smV7WPA/Wp9ZV+Za8D+9OI2kUV3wP1pNW029X/A/1WnRUSli8D/WHP2xlWTwPw/3620CZ/A/JourhW9p8D/JbUn53GvwP60108hKbvA/fntW9Lhw8D/+2eB7J3PwP9btf1+WdfA/0VVBnwV48D+msjI7dXrwPyCnYTPlfPA//tfbh1V/8D8Z7K44xoHwPzmM6EU3hPA/PmOWr6iG8D8AHsZ1GonwP15rhZiMi/A/SPzhF/+N8D+vg+nzcZDwP322qSzlkvA/uUswwliV8D9q/Iq0zJfwP5CDxwNBmvA/S57zr7Wc8D+vCx25Kp/wP+iMUR+gofA/HOWe4hWk8D+G2RIDjKbwP2Exu4ACqfA/AbalW3mr8D+tMuCT8K3wP850eClosPA/ykt8HOCy8D8QiflsWLXwPyMA/hrRt/A/jYaXJkq68D/h89OPw7zwP8chwVY9v/A/7utse7fB8D8LMOX9McTwP+3NN96sxvA/aadyHCjJ8D9doKO4o8vwP8Oe2LIfzvA/l4ofC5zQ8D/qTYbBGNPwP9TUGtaV1fA/hg3rSBPY8D8/6AQakdrwP0JXdkkP3fA/9U5N143f8D+7xZfDDOLwPxm0Yw6M5PA/mhS/twvn8D/b47e/i+nwP5MgXCYM7PA/gMu564zu8D95594PDvHwP2J52ZKP8/A/PIi3dBH28D8THYe1k/jwPwdDVlUW+/A/SQczVJn98D8teSuyHADxPwWqTW+gAvE/Ta2niyQF8T+DmEcHqQfxP0eDO+ItCvE/ToeRHLMM8T9gwFe2OA/xP1lMnK++EfE/K0ttCEUU8T/n3tjAyxbxP6sr7dhSGfE/s1e4UNob8T9Wi0goYh7xP/vwq1/qIPE/H7Xw9nIj8T9jBiXu+yXxP3oVV0WFKPE/NhWV/A4r8T93Ou0TmS3xP0O8bYsjMPE/r9MkY64y8T/6uyCbOTXxP3GybzPFN/E/f/YfLFE68T+tyT+F3TzxP5xv3T5qP/E/DS4HWfdB8T/fTMvThETxPwcWOK8SR/E/ndVb66BJ8T/U2USIL0zxP/tyAYa+TvE/f/Of5E1R8T/2ry6k3VPxPwD/u8RtVvE/cTlWRv5Y8T8wugspj1vxP0re6mwgXvE/4gQCErJg8T9Cj18YRGPxP9rgEYDWZfE/MF8nSWlo8T/3ca5z/GrxP/GCtf+PbfE/F/5K7SNw8T98UX08uHLxP03tWu1MdfE/30Py/+F38T+2yVF0d3rxP2X1h0oNffE/sz+jgqN/8T+BI7IcOoLxP90dwxjRhPE/7q3kdmiH8T8JVSU3AIrxP6mWk1mYjPE/afg93jCP8T8KAjPFyZHxP3U9gQ5jlPE/wzY3uvyW8T8cfGPIlpnxP+ydFDkxnPE/sS5ZDMye8T8dwz9CZ6HxP/zx1toCpPE/VVQt1p6m8T9NhVE0O6nxPzUiUvXXq/E/fco9GXWu8T/THyOgErHxP/rFEIqws/E/8GIV10628T/Wnj+H7bjxP/gjnpqMu/E/y54/ESy+8T/5vTLry8DxP04yhihsw/E/xK5IyQzG8T+E6IjNrcjxP+WWVTVPy/E/bXO9APHN8T/FOc8vk9DxP9KnmcI10/E/n30rudjV8T9jfZMTfNjxP4tr4NEf2/E/rw4h9MPd8T+aL2R6aODxP0GZuGQN4/E/yhgts7Ll8T+WfdBlWOjxPyeZsXz+6vE/PD/f96Tt8T/CRWjXS/DxP9KEWxvz8vE/wNbHw5r18T8NGLzQQvjxP3AnR0Lr+vE/0uV3GJT98T9HNl1TPQDyPyr+BfPmAvI/9SSB95AF8j9plN1gOwjyP2c4Ki/mCvI/Gv91YpEN8j/V2M/6PBDyPya4RvjoEvI/z5HpWpUV8j/IXMciQhjyP0ES70/vGvI/oa1v4pwd8j+ILFjaSiDyP8eOtzf5IvI/bdac+qcl8j++BxcjVyjyPz0pNbEGK/I/oUMGpbYt8j/YYZn+ZjDyPwuR/b0XM/I/oOBB48g18j86YnVuejjyP6gpp18sO/I/BU3mtt498j+h5EF0kUDyPwALyZdEQ/I/8dyKIfhF8j9veZYRrEjyP8AB+2dgS/I/XZnHJBVO8j8CZgtIylDyP6CP1dF/U/I/dUA1wjVW8j/vpDkZ7FjyP8Tr8daiW/I/4UVt+1le8j915rqGEWHyP/IC6njJY/I/CNMJ0oFm8j+mkCmSOmnyP/13WLnza/I/fcelR61u8j/WvyA9Z3HyPwSk2JkhdPI/NLncXdx28j/lRjyJl3nyP8qWBhxTfPI/6fRKFg9/8j96rxh4y4HyPwwXf0GIhPI/XX6NckWH8j+BOlMLA4ryP8Si3wvBjPI/wRBCdH+P8j9N4IlEPpLyP41vxnz9lPI/6h4HHb2X8j8HUVslfZryP+Jq0pU9nfI/stN7bv6f8j/49Gavv6LyP3s6o1iBpfI/UxJAakOo8j/R7EzkBavyP6A82cbIrfI/o3b0EYyw8j8VEq7FT7PyP2yIFeITtvI/eFU6Z9i48j9J9ytVnbvyPzju+ativvI/9byzayjB8j9p6GiU7sPyP9n3KCa1xvI/0HQDIXzJ8j8i6weFQ8zyP/ToRVILz/I/uP7MiNPR8j8pv6wonNTyP1q/9DFl1/I/npa0pC7a8j+j3vuA+NzyP1gz2sbC3/I/CzNfdo3i8j9KfpqPWOXyPwS4mxIk6PI/ZIVy/+/q8j/3jS5WvO3yP5B73xaJ8PI/XPqUQVbz8j/JuF7WI/byP6xnTNXx+PI/H7ptPsD78j+SZdIRj/7yP8Ihik9eAfM/zKik9y0E8z8VtzEK/gbzP1sLQYfOCfM/rmbibp8M8z91jCXBcA/zP21CGn5CEvM/oVDQpRQV8z91gVc45xfzP6uhvzW6GvM/S4AYno0d8z/J7nFxYSDzP9zA2681I/M/ncxlWQom8z956h9u3yjzPzP1Ge60K/M/88lj2You8z8nSA0wYTHzP6RRJvI3NPM/jcq+Hw838z9xmea45jnzPyGnrb2+PPM/4N4jLpc/8z83LlkKcELzPxmFXVJJRfM/ztVABiNI8z/2FBMm/UrzP5455LHXTfM/GD3EqbJQ8z8pG8MNjlPzP9/R8N1pVvM/tGFdGkZZ8z9/zRjDIlzzP2kaM9j/XvM/ClC8Wd1h8z9OeMRHu2TzP3+fW6KZZ/M/U9SRaXhq8z/YJ3edV23zP3etGz43cPM/A3uPSxdz8z+tqOLF93XzPwJRJa3YePM/+pBnAbp78z/qh7nCm37zP45XK/F9gfM/+CPNjGCE8z+wE6+VQ4fzP41P4QsnivM/4AJ07wqN8z9NW3dA74/zP+aI+/7TkvM/HL4QK7mV8z/JL8fEnpjzPycVL8yEm/M/5adYQWue8z8DJFQkUqHzP/nHMXU5pPM/n9QBNCGn8z81jdRgCarzP2E3uvvxrPM/NBvDBNuv8z8og/97xLLzPyK8f2GutfM/ZhVUtZi48z+s4Ix3g7vzPxJyOqhuvvM/IiBtR1rB8z/LQzVVRsTzP3A4o9Eyx/M/2lvHvB/K8z9BDrIWDc3zPz2yc9/6z/M/5awcF+nS8z+1Zb2919XzP4xGZtPG2PM/w7snWLbb8z8iNBJMpt7zP9YgNq+W4fM/gvWjgYfk8z80KGzDeOfzP2oxn3Rq6vM/EIxNlVzt8z+KtYclT/DzP54tXiVC8/M/lHbhlDX28z8bFSJ0KfnzP0+QMMMd/PM/y3EdghL/8z+ORfmwBwL0Pxqa1E/9BPQ/TwDAXvMH9D+WC8zd6Qr0P7pRCc3gDfQ/BmuILNgQ9D838ln8zxP0P3OEjjzIFvQ/aME27cAZ9D8qS2MOuhz0P0/GJKCzH/Q/2dmLoq0i9D9JL6kVqCX0P4pyjfmiKPQ/EFJJTp4r9D+3fu0Tmi70P+OrikqWMfQ/Wo8x8pI09D9y4fIKkDf0P+5c35SNOvQ/Cb8HkIs99D99x3z8iUD0P384T9qIQ/Q/tdaPKYhG9D9PaU/qh0n0P+65nhyITPQ/rpSOwIhP9D8syC/WiVL0P34lk12LVfQ/O4DJVo1Y9D90ruPBj1v0P7aI8p6SXvQ/DOoG7pVh9D8GsDGvmWT0P6u6g+KdZ/Q/huwNiKJq9D+bKuGfp230P3RcDiqtcPQ/G2ymJrNz9D8SRrqVuXb0P2jZWnfAefQ/oxeZy8d89D/T9IWSz3/0P4hnMszXgvQ/zGiveOCF9D8z9A2Y6Yj0P9gHXyrzi/Q/TaSzL/2O9D+2zByoB5L0P7GGq5MSlfQ/Ztpw8h2Y9D970n3EKZv0Pyl84wk2nvQ/HeeywkKh9D+aJf3uT6T0P11M045dp/Q/r3JGomuq9D9nsmcpeq30P9cnSCSJsPQ/4/H4kpiz9D/rMYt1qLb0P+gLEMy4ufQ/T6aYlsm89D8pKjbV2r/0P/nC+YfswvQ/4570rv7F9D9+7jdKEcn0P/rk1FkkzPQ/Drjc3TfP9D8EoGDWS9L0P6PXcUNg1fQ/S5whJXXY9D/iLYF7itv0P+HOoUag3vQ/TsSUhrbh9D+2VWs7zeT0PzrNNmXk5/Q/hncIBPzq9D/do/EXFO70PwmkA6Es8fQ/ZMxPn0X09D/fc+cSX/f0P/fz2/t4+vQ/vag+WpP99D/K8CAurgD1P1MtlHfJA/U/HsKpNuUG9T+BFXNrAQr1P2OQARYeDfU/PJ5mNjsQ9T8irbPMWBP1P7wt+th2FvU/OZNLW5UZ9T9rU7lTtBz1P7bmVMLTH/U/Ecgvp/Mi9T8GdVsCFCb1P7dt6dM0KfU/6jTrG1Ys9T/kT3Lady/1P5VGkA+aMvU/gaNWu7w19T+389bd3zj1P+/GIncDPPU/c69Lhyc/9T8sQmMOTEL1P40WewxxRfU/tsakgZZI9T9V7/FtvEv1P70vdNHiTvU/0ik9rAlS9T8bgl7+MFX1P7Lf6cdYWPU/XOzwCIFb9T9xVIXBqV71P+PGuPHSYfU/T/Wcmfxk9T/dk0O5Jmj1P2RZvlBRa/U/U/8eYHxu9T+7QXfnp3H1P0Pf2ObTdPU/QJlVXgB49T+fM/9NLXv1P+t057VafvU/WCYgloiB9T+9E7vutoT1P4ILyr/lh/U/xN5eCRWL9T8+YYvLRI71P0ppYQZ1kfU/4M/yuaWU9T+qcFHm1pf1P+4pj4sIm/U/l9y9qTqe9T81bO9AbaH1P/2+NVGgpPU/zb2i2tOn9T8rVEjdB6v1PzhwOFk8rvU/wwKFTnGx9T9K/z+9prT1P+Zbe6Xct/U/XxFJBxO79T8oG7viSb71P1F34zeBwfU/pybUBrnE9T+HLJ9P8cf1PxOPVhIqy/U/BFcMT2PO9T/Bj9IFndH1P2pHuzbX1PU/u47Y4RHY9T8eeTwHTdv1P7cc+aaI3vU/QZIgwcTh9T879cRVAeX1P79j+GQ+6PU/nv7M7nvr9T9e6VTzue71PyJKonL48fU/yUnHbDf19T/hE9bhdvj1P6fW4NG2+/U/BsP5PPf+9T+eDDMjOAL2P7bpnoR5BfY/VZNPYbsI9j8uRVe5/Qv2P6E9yIxAD/Y/w72024MS9j9oCS+mxxX2PwZnSewLGfY/1R8WrlAc9j+2f6frlR/2P0rVD6XbIvY/33Fh2iEm9j98qa6LaCn2P9rSCbmvLPY/cEeFYvcv9j9mYzOIPzP2P5qFJiqINvY/qQ9xSNE59j/kZSXjGj32P07vVfpkQPY/rhUVjq9D9j9+RXWe+kb2P/DtiCtGSvY/9IBiNZJN9j8zcxS83lD2PxY8sb8rVPY/sVVLQHlX9j/mPPU9x1r2P0txwbgVXvY/NHXCsGRh9j+yzQomtGT2P4wCrRgEaPY/VZ67iFRr9j9SLkl2pW72P4xCaOH2cfY/x20rykh19j+ORaUwm3j2PyFi6BTue/Y/iV4Hd0F/9j+M2BRXlYL2P69wI7XphfY/P8pFkT6J9j8/i47rk4z2P4FcEMTpj/Y/kundGkCT9j/H4Anwlpb2Py/zpkPumfY/qNTHFUad9j/MO39mnqD2PwHi3zX3o/Y/aYP8g1Cn9j/x3udQqqr2P0+2tJwErvY/9s11Z1+x9j8o7T2xurT2P+7dH3oWuPY/EW0uwnK79j8lanyJz772P46nHNAswvY/aPohlorF9j+vOp/b6Mj2PxJDp6BHzPY/GPFM5abP9j8RJaOpBtP2PxPCvO1m1vY//K2sscfZ9j+B0YX1KN32PxwYW7mK4PY/FHA//ezj9j95ykXBT+f2PzEbgQWz6vY/6lgEyhbu9j8efeIOe/H2Px6ELtTf9PY/BG37GUX49j+zOVzgqvv2P+vuYycR//Y/NJQl73cC9z/nM7Q33wX3PzLbIgFHCfc/DZqES68M9z9Jg+wWGBD3P4isbWOBE/c/PC4bMesW9z+tIwiAVRr3P/KqR1DAHfc//eTsoSsh9z+L9Qp1lyT3PzQDtckDKPc/aDf+n3Ar9z9lvvn33S73P0THutFLMvc/8oNULbo19z8zKdoKKTn3P6buXmqYPPc/vw72SwhA9z/HxrKveEP3P99WqJXpRvc/DgLq/VpK9z8oDovozE33P9jDnlU/Ufc/q244RbJU9z8JXWu3JVj3PzHgSqyZW/c/QkzqIw5f9z8r+Fweg2L3P8s9tpv4Zfc/yHkJnG5p9z+2C2of5Wz3PwRW6yVccPc/9L2gr9Nz9z+yq528S3f3P0iK9UzEevc/l8e7YD1+9z9l1AP4toH3P1wk4RIxhfc//i1nsauI9z+2aqnTJoz3P8xWu3mij/c/a3Gwox6T9z+bPJxRm5b3P1Y9koMYmvc/afulOZad9z+FAetzFKH3P1DddDKTpPc/RB9XdRKo9z+9WqU8kqv3PxEmc4gSr/c/YxrUWJOy9z/T09utFLb3P1DxnYeWufc/xRQu5hi99z/34p/Jm8D3P5wDBzIfxPc/RyF3H6PH9z+E6QOSJ8v3P7IMwYmszvc/Mj7CBjLS9z87NBsJuNX3P/yn35A+2fc/g1UjnsXc9z/T+/kwTeD3P91cd0nV4/c/bz2v513n9z9NZbUL5+r3PzCfnbVw7vc/sbh75frx9z9cgmObhfX3P7LPaNcQ+fc/EnefmZz89z/ZURviKAD4P1Q88LC1A/g/shUyBkMH+D8kwPTh0Ar4P8AgTERfDvg/jB9MLe4R+D+MpwidfRX4P62mlZMNGfg/0Q0HEZ4c+D/J0HAVLyD4P13m5qDAI/g/TUh9s1In+D9N80dN5Sr4P/jmWm54Lvg/7CXKFgwy+D+8talGoDX4P+6eDf40Ofg/+uwJPco8+D9crrIDYED4P3r0G1L2Q/g/utNZKI1H+D90Y4CGJEv4PwC+o2y8Tvg/rADY2lRS+D+6SzHR7VX4P3PCw0+HWfg/C4ujViFd+D++zuTlu2D4P8C5m/1WZPg/OXvcnfJn+D9aRbvGjmv4P0VNTHgrb/g/Icujsshy+D8R+tV1Znb4PzQY98EEevg/omYbl6N9+D+GKVf1QoH4P/KnvtzihPg/CyxmTYOI+D/lAmJHJIz4P6J8xsrFj/g/ZOyn12eT+D9GqBpuCpf4P3EJM46tmvg/CGwFOFGe+D8tL6Zr9aH4PxK1KSmapfg/52KkcD+p+D/coCpC5az4Pyva0J2LsPg/EH2rgzK0+D/P+s7z2bf4P7LHT+6Bu/g/C1tCcyq/+D8sL7uC08L4P3PBzhx9xvg/TJKRQSfK+D8fJRjx0c34P2oAdyt90fg/pa3C8CjV+D9buQ9B1dj4PyuzchyC3Pg/pi0Agy/g+D94vsx03eP4P2D+7PGL5/g/F4l1+jrr+D9q/XqO6u74PzT9Ea6a8vg/XS1PWUv2+D/dNUeQ/Pn4P6/BDlOu/fg/8X66oWAB+T+5Hl98EwX5Pz1VEePGCPk/vtnl1XoM+T+IZvFULxD5PwS5SGDkE/k/oJEA+JkX+T/hsy0cUBv5P1/m5MwGH/k/wPI6Cr4i+T/KpUTUdSb5P0fPFisuKvk/IELGDuct+T9I1Gd/oDH5P9BeEH1aNfk/3L3UBxU5+T+m0Mkf0Dz5P355BMWLQPk/y52Z90dE+T8FJp63BEj5P8n9JgXCS/k/wBNJ4H9P+T+1WRlJPlP5P4HErD/9Vvk/JEwYxLxa+T+r63DWfF75P0Why3Y9Yvk/Om49pf5l+T/0VtthwGn5P+piuqyCbfk/uJzvhUVx+T8bEpDtCHX5P+zTsOPMePk/E/ZmaJF8+T+uj8d7VoD5P+S65x0chPk/CZXcTuKH+T+KPrsOqYv5P/famF1wj/k//JCKOziT+T9uiqWoAJf5Pzv0/qTJmvk/e/6rMJOe+T9d3MFLXaL5Pz3EVfYnpvk/me98MPOp+T8Jm0z6vq35P1YG2lOLsfk/aHQ6PVi1+T9KK4O2Jbn5Py90yb/zvPk/dJsiWcLA+T+P8KOCkcT5PzLGYjxhyPk/H3J0hjHM+T9QTe5gAtD5P+uz5cvT0/k/KAVwx6XX+T+Bo6JTeNv5P4r0knBL3/k/DWFWHh/j+T/zVAJd8+b5P1Y/rCzI6vk/fpJpjZ3u+T/bw09/c/L5PwlMdAJK9vk/2KbsFiH6+T89U868+P35P13TLvTQAfo/j6wjvakF+j9YZ8IXgwn6P2iPIARdDfo/prNTgjcR+j8jZnGSEhX6PyE8jzTuGPo/Fc7CaMoc+j+ptyEvpyD6P7mXwYeEJPo/SRC4cmIo+j+gxhrwQCz6Py9j//8fMPo/mpF7ov8z+j++AKXX3zf6P6dikZ/AO/o/o2xW+qE/+j8t1wnog0P6P/FdwWhmR/o/37+SfElL+j8Qv5MjLU/6P+kg2l0RU/o/8q17K/ZW+j/zMY6M21r6P/Z7J4HBXvo/OV5dCahi+j8trkUlj2b6P4hE9tR2avo/Mv2EGF9u+j9etwfwR3L6P2tVlFsxdvo/AL1AWxt6+j/z1iLvBX76P2WPUBfxgfo/tNXf09yF+j93nOYkyYn6P4nZegq2jfo/AoayhKOR+j81nqOTkZX6P74hZDeAmfo/dhMKcG+d+j94eas9X6H6PyNdXqBPpfo/F8s4mECp+j8001AlMq36P5uIvEcksfo/xAGS/xa1+j9PWOdMCrn6PzKp0i/+vPo/rhRqqPLA+j83vsO258T6P5XM9VrdyPo/1GkWldPM+j9FwztlytD6P4IJfMvB1Po/cXDtx7nY+j88L6Zastz6P06AvIOr4Po/dqFGQ6Xk+j+t01qZn+j6P1FbD4aa7Po/9n96CZbw+j+NjLIjkvT6P0zPzdSO+Po/r5niHIz8+j+PQAf8iQD7PwAcUnKIBPs/dIfZf4cI+z+h4bMkhwz7P5KM92CHEPs/nu26NIgU+z9ubRSgiRj7P/t3GqOLHPs/lHzjPY4g+z/L7YVwkST7P5VBGDuVKPs/K/GwnZks+z8teWaYnjD7P3FZTyukNPs/PRWCVqo4+z8gMxUasTz7P/g8H3a4QPs//7+2asBE+z/ITPL3yEj7Pzx36B3STPs/j9av3NtQ+z9VBV805lT7P4ShDCXxWPs/W0zPrvxc+z91qr3RCGH7P8Zj7o0VZfs/pyN44yJp+z/DmHHSMG37Pxh18Vo/cfs/D24OfU51+z9cPN84Xnn7Pyeceo5uffs/2Ez3fX+B+z9HEWwHkYX7P6uv7yqjifs/j/GY6LWN+z/jo35AyZH7P/mWtzLdlfs/d55av/GZ+z9ykX7mBp77P1pKOqgcovs//KakBDOm+z+KiNT7Sar7P6DT4I1hrvs/LHDgunmy+z+RSeqCkrb7P4tOFearuvs/OnF45MW++z8upyp+4ML7P0vpQrP7xvs/7jPYgxfL+z/OhgHwM8/7Pwzl1fdQ0/s/K1Vsm27X+z8f4dvajNv7P0KWO7ar3/s/VIWiLcvj+z99widB6+f7P1pl4vAL7Ps/3IjpPC3w+z99S1QlT/T7PwPPOapx+Ps/uTixy5T8+z9QsdGJuAD8P9VksuTcBPw/3oJq3AEJ/D9YPhFxJw38P63NvaJNEfw/rGqHcXQV/D+aUoXdmxn8PyvGzubDHfw/ggl7jewh/D8zZKHRFSb8P0chWbM/Kvw/LY+5Mmou/D/Z/9lPlTL8P6HI0QrBNvw/W0K4Y+06/D9MyaRaGj/8Pym9ru9HQ/w/KYHtInZH/D/qe3j0pEv8P4QXZ2TUT/w/kcHQcgRU/D8P68wfNVj8P4UIc2tmXPw/6pHaVZhg/D+rAhvfymT8P7nZSwf+aPw/a5mEzjFt/D+qx9w0ZnH8P8/tazqbdfw/ophJ39B5/D+AWI0jB378PyvBTgc+gvw/7WmlinWG/D+O7aitrYr8P1LqcHDmjvw/+QEV0x+T/D/K2azVWZf8P3kaUHiUm/w/T3AWu8+f/D8JixeeC6T8P+gdayFIqPw/s98oRYWs/D+pimgJw7D8P5PcQW4Btfw/v5bMc0C5/D/xfSAagL38P4laVWHAwfw/UPiCSQHG/D+mJsHSQsr8P2y4J/2Ezvw/DITOyMfS/D9qY801C9f8Pwg0PERP2/w/2dYy9JPf/D9nMMlF2eP8P7coFzkf6Pw/a6s0zmXs/D+apzkFrfD8P/QPPt709Pw/rdpZWT35/D+FAaV2hv38P8eBNzbQAf0/UVwpmBoG/T+DlZKcZQr9P1I1i0OxDv0/Q0crjf0S/T9m2op5Shf9P1MBwgiYG/0/PtLoOuYf/T/kZhcQNST9P5TcZYiEKP0/L1Tso9Qs/T8k8sJiJTH9P3reAcV2Nf0/xETBysg5/T8wVBl0Gz79P3w/IsFuQv0/9Tz0scJG/T+HhqdGF0v9P6hZVH9sT/0/cPcSXMJT/T+FpPvcGFj9PyupJgJwXP0/MVGsy8dg/T8E7KQ5IGX9P7bMKEx5af0/30lQA9Nt/T++vTNfLXL9PyWG61+Idv0/gQSQBeR6/T/fnTlQQH/9P+K6AECdg/0/08f91PqH/T+GNEkPWYz9P3p0++63kP0/0v4sdBeV/T85Tvaed5n9PxHhb2/Ynf0/Sjmy5Tmi/T+C3NUBnKb9P+dT88P+qv0/WiwjLGKv/T9O9n06xrP9P+VFHO8quP0/2bIWSpC8/T+U2IVL9sD9PxBWgvNcxf0/AM4kQsTJ/T+05oU3LM79PxlKvtOU0v0/zaXmFv7W/T8TqxcBaNv9P9AOapLS3/0/lon2yj3k/T+W19Wqqej9P7e4IDIW7f0/gvDvYIPx/T8mRlw38fX9P4aEfrVf+v0/Inpv287+/T8z+UepPgP+P5XXIB+vB/4/1u4SPSAM/j8xHDcDkhD+P4ZApnEEFf4/aUB5iHcZ/j8gBMlH6x3+P6B3rq9fIv4/hopCwNQm/j8jMJ55Siv+P35f2tvAL/4/RBMQ5zc0/j/fSVibrzj+P2kFzPgnPf4/qkuE/6BB/j8lJpqvGkb+PwaiJgmVSv4/NtBCDBBP/j9UxQe5i1P+P7WZjg8IWP4/W2nwD4Vc/j8IVEa6AmH+Py59qQ6BZf4/AQwzDQBq/j9qK/y1f27+PwIKHgkAc/4/JNqxBoF3/j/o0dCuAnz+PxYrlAGFgP4/PCMV/weF/j+e+2yni4n+Pz35tPoPjv4/12QG+ZSS/j/minqiGpf+P6e7Kvegm/4/E0sw9yeg/j/YkKSir6T+P3vooPk3qf4/J7E+/MCt/j/YTZeqSrL+P0clxATVtv4/76HeCmC7/j8SMgC967/+P6ZHQht4xP4/eVi+JQXJ/j8M3o3cks3+P6xVyj8h0v4/cECNT7DW/j8rI/ALQNv+P3iGDHXQ3/4/vvb7imHk/j8uBNhN8+j+P7dCur2F7f4/FUq82hjy/j/RtfekrPb+PzMlhhxB+/4/XjuBQdb//j8unwIUbAT/P1f7I5QCCf8/VP7+wZkN/z9sWq2dMRL/P7XFSCfKFv8/EfrqXmMb/z8tta1E/R//P424qtiXJP8/f8n7GjMp/z8gsboLzy3/P2M8AatrMv8//zvp+Ag3/z+MhIz1pjv/P27uBKFFQP8/2FVs++RE/z/WmtwEhUn/P0Chb70lTv8/y1A/JcdS/z8BlWU8aVf/Pzhd/AIMXP8/pZwdea9g/z9MSuOeU2X/PxRhZ3T4af8/sd/D+Z1u/z+wyBIvRHP/P38ibhTrd/8/W/fvqZJ8/z9lVbLvOoH/P5FOz+Xjhf8/r/hgjI2K/z9wbYHjN4//P17KSuvik/8/4zDXo46Y/z85xkANO53/P4uzoSfoof8/2iUU85Wm/z8CTrJvRKv/P8dglp3zr/8/xZbafKO0/z99LJkNVLn/P1li7E8Fvv8/lnzuQ7fC/z9fw7npacf/P72CaEEdzP8/ngoVS9HQ/z/WrtkGhtX/PxfH0HQ72v8/CK8UlfHe/z8lxr9nqOP/P9Vv7Oxf6P8/dBO1JBjt/z8vHDQP0fH/Pyz5g6yK9v8/eR2//ET7/z8AAAAAAADwPxkofRk6ou8/YA0O/oZF7z/PEHGI4+nuPxtOnJxMj+4/uZiiJ7817j8TyJgfON3tP/RRe4O0he0/UTIUWzEv7T+LH+G2q9nsP0sK+q8ghew/D+j3Z40x7D+lx9sI797rP5ku9sRCjes/677O1oU86z8NJAyBtezqP3dGXA7Pneo//cRc0c9P6j8Ls4MktQLqPwubCGp8tuk/NMTNCyNr6T/lukl7piDpP9wacTEE1+g/iZqgrjmO6D+tVod6REboP5pdESQi/+c/UXlSQdC45z/MN3FvTHPnP7EwklKULuc/zIfDlaXq5j+Kq+jqfafmP95OpgobZeY/xp1OtHoj5j/Wq82tmuLlPyIclsN4ouU/zQGOyBJj5T+j+PuVZiTlPyV1dAty5uQ/R0vHDjOp5D9Za+2Lp2zkP3jU9nTNMOQ/2rv4waL14z9z6PtwJbvjP0RC64VTgeM/zJSCCitI4z/1gz0Oqg/jP/6yRqbO1+I/vxxn7Zag4j+znPUDAWriP1aoxg8LNOI/HjgcPLP+4T+s35W598nhP40UIb7WleE/GaPphE5i4T/UUEpOXS/hP+CrvV8B/eA/6AbPAznL4D8YoQuKAprgP4f580ZcaeA/rU3tk0Q54D9SQjPPuQngPxltk7d0td8/f4DdQolY3z9ioxkZrvzeP3APWhzgod4/E0DTNxxI3j9gLsFfX+/dP4jbTJGml90/tyhy0u5A3T+w++UxNevcPyCv/MZ2ltw/5s2QsbBC3D9WGOoZ4O/bP7/SpDACnts/SlyZLhRN2z9QDcRUE/3aP4xcLez8rdo/CUrSRc5f2j9MD426hBLaP8MT/qodxtk/siR1f5Z62T/379qn7C/ZP7vAmpsd5tg/Zn2M2Sad2D8V5t7nBVXYP88SAlS4Ddg/ujCSsjvH1z+jfUKfjYHXPyWByLyrPNc/nILHtJP41j9mO7w3Q7XWP4LE6Py3ctY/I79Awu8w1j9Nt1VM6O/VP/q/Q2afr9U/Dkie4RJw1T9vJ12WQDHVP7zjyWIm89Q/ySttK8K11D9xifzaEXnUPw5JSGITPdQ/8JUpuMQB1D8+y3DZI8fTP7L408gujdM/k5rdjuNT0z8+hNs5QBvTP9j8zd1C49I/bg1XlOmr0j/+/6l8MnXSP/EOe7sbP9I/UUTveqMJ0j9BiIzqx9TRP0TeKT+HoNE/lNDfst9s0T84CfmEzznRPzkY4/lUB9E/amYfW27V0D9cVDT3GaTQP9yEniFWc9A/lFLCMiFD0D9McN2HeRPQP3lm8QW7yM8/LA60FZdrzz9GFu0VhA/PP0uwyeZ+tM4/0dyecYRazj8wl86okQHOP9JPrYejqc0/NLRnErdSzT/Mw+hVyfzMP9MwwGfXp8w/IgwJZt5TzD9bu1B32wDMP104fsrLrss/T5m5lqxdyz9Z4FMbew3LPzcSr580vso//JImc9Zvyj/ux/fsXSLKP/H9KmzI1ck/wZN8VxOKyT/ZZkYdPD/JP7SCaTNA9cg/ZhE4Fx2syD++jF9N0GPIP4Ev02FXHMg/oaW256/Vxz8a+0h514/HP0zIz7fLSsc/mpuCS4oGxz8/n3bjEMPGP8R6ijVdgMY/dG9S/mw+xj8irwQBPv3FP3DsZQfOvMU/KiS24Rp9xT/Xnp1mIj7FPwgqGnPi/8Q/lIhs6ljCxD9LGQa2g4XEP3OzdsVgScQ/VbhaDu4NxD9hWUmMKdPDP1cSw0ARmcM/p1YgM6Nfwz+ucYBw3SbDPx2ZuAu+7sI/4DBDHUO3wj9NQC/DaoDCP30XECEzSsI/2CTtX5oUwj/a+TGunt/BP6d+nj8+q8E/FFQ3TXd3wT9CYzYVSETBP52a+9quEcE/gNf95qnfwD8T/LuGN67AP+UwrgxWfcA/rlE30ANNwD/PhJYtPx3APyv6sQsN3L8/PMqXfbB+vz876NyFZSK/P6JWyAIpx74/vnfO2/dsvj8PKXYBzxO+P20tPm2ru70/DOWCIYpkvT/BUmQpaA69PyhtrJhCubw/Dbu1ixZlvD+DOlIn4RG8PyqRspifv7s/X4VNFU9uuz9Ov8fa7B27PwPR2y52zro/ooRCX+h/uj9GcJvBQDK6P1HOVbN85bk/mpmZmZmZuT/i7DDhlE65P02kcf5rBLk/p0AnbRy7uD9IC32wo3K4Py966FL/Krg/QtMT5izktz9eDskCKp63Pw313Ej0WLc/pH8aX4kUtz+ibi7z5tC2Pw0gk7kKjrY/tp98bfJLtj8V8sTQmwq2P7uY2KsEyrU/C1CjzSqKtT8rBX0LDEu1P/8DF0GmDLU/B1xpUPfOtD8JfKAh/ZG0P1wDC6O1VbQ/t8gHyR4atD98FfSNNt+zPzsVGvL6pLM/iXif+2lrsz/hSnS2gTKzP6n6QTRA+rI/CpNajKPCsj/2JqjbqYuyP6NsnERRVbI/PIkg75cfsj/lC4UIfOqxP9IXcsP7tbE/q7zXVxWCsT/pfN4Cx06xP3AB2AYPHLE/Hfovq+vpsD+EKl08W7iwP6Ci0gtch7A/rSLxb+xWsD/6qfjDCiewP8Jf9M9q768/hQ2TgdWRrz9s0N5vUjWvP3pUN3fe2a4/hTkvfXZ/rj9kHnFwFyauP8n6pEi+za0/hMdVBmh2rT+6c9eyESCtP5cmLWC4yqw/SMzvKFl2rD+w7TQw8SKsP8PRdaF90Ks/uud2sPt+qz9peS+ZaC6rP6eksZ/B3qo/W5sSEASQqj/YKFM+LUKqP0p8SIY69ak/6TaFSympqT+vvUL59l2pPzLNSgKhE6k/g0/h4CTKqD++cq4WgIGoPw8AqSywOag/5fEAs7Lypz86SQpBhaynP5EgKHUlZ6c/jfy39JAipz/lWP1rxd6mP4RxDY7Am6Y/qEa7FIBZpj/O24PAARimPzmwelhD16U/DHE2qkKXpT+k472J/VelPwcIddFxGaU/pXIKYp3bpD+c3GQifp6kPynqkP8RYqQ/YCav7FYmpD/KM+LiSuujPx0xPeHrsKM/qlGy7Dd3oz+mqAEQLT6jP/smqFvJBaM/58rO5QrOoj/qADrK75aiP0k1OSp2YKI/65WWLJwqoj+aA4f9X/WhP4Qyms6/wKE/C/mq1rmMoT/KzM9RTFmhP9ZsS4F1JqE/Jrl9qzP0oD8uttQbhcKgP6C8vSJokaA/WdSWFdtgoD9yOqBO3DCgP44R7ixqAaA/YHi0KAalnz8gwezaSkifP4Uq/Eqf7J4/M22SXACSnj/Bx3z8ajieP7BIiyDc350/Y2Z2x1CInT+35MT4xTGdP+cGssQ43Jw/OA0URKaHnD85/UKYCzScPyG0/+pl4Zs/8EFbbrKPmz8njZ5c7j6bP3Q9MvgW75o/YO2Giymgmj9dof1oI1KaPyGE0OoBBZo/3eb7csK4mT8uhSdrYm2ZP1cLkETfIpk/n97wdzbZmD+jJm6FZZCYPw4Xf/RpSJg/9njYU0EBmD8Mc1c56bqXPyqQ7EFfdZc/CgOHEaEwlz8SJwBTrOyWP+s8B7h+qZY/smIN+RVnlj+xxjHVbyWWP0IULhKK5JU/3hlDfGKklT8vqCXm9mSVP8qo6yhFJpU/vGz5I0volD+OMe+8BquUP5rclt91bpQ/4OvRfZYylD/Gm4ePZveTPx5BkxLkvJM//tayCg2Dkz+Yv3WB30mTP7e3K4ZZEZM/EvzTLXnZkj89oAyTPKKSPxIWAtaha5I/zOVeHKc1kj9qlTuRSgCSP5C/DmWKy5E/61idzWSXkT+NI+sF2GORPyVQK07iMJE/4kux64H+kD89u+EotcyQP3agI1V6m5A/2a3RxM9qkD/DwivRszqQP3eTSNgkC5A/aPUOekK4jz8l6gTOTluPP6WKAIVr/44/toLNgJWkjj+PjlqsyUqOP5m0nvsE8o0/Q81+a0SajT/IWLMBhUONP1qhrszD7Yw/XSmD4/2YjD8/ZMplMEWMP7S5i3tY8os//tEjVXOgiz+VKiwrfk+LP2byYj52/4o/6yyT11iwij8JG31HI2KKPxbpvubSFIo/S6G9FWXIiT+8YY4813yJPwLV38omMok//OzjN1HoiD/o3jkCVJ+IP8tf2K8sV4g/3yD4zdgPiD+9iv7wVcmHPz23aLShg4c/mqi2urk+hz+6vVatm/qGP3BikTxFt4Y/nPt0H7R0hj+1DcIT5jKGP+Cd193Y8YU/PsyfSIqxhT81p3wl+HGFP+g2NUwgM4U/OMDimgD1hD+iPt71lreEP3sUrkfheoQ/tfDzgN0+hD/a6VqYiQOEP1DNhYrjyIM/oKL9WemOgz+/YSAPmVWDPzjcD7jwHIM/SdigaO7kgj+kXUo6kK2CP+kyFUzUdoI/t4uLwrhAgj9u5qjHOwuCP14Zyopb1oE/d46dQBaigT9lrRMjam6BPzlzT3FVO4E/VjeXb9YIgT/MnEVn69aAPwiwuqaSpYA/BTBNgcp0gD+wAjxPkUSAP8bTn23lFIA//ru5fIrLfz+NuylQXm5/P3VaMixDEn8/aBG68DW3fj9098+GM11+P0frkOA4BH4/HgsN+UKsfT+eei3UTlV9Py11mn5Z/3w/payhDWCqfD/m8hyfX1Z8P98tWVlVA3w/qJT9aj6xez+ENfMKGGB7P13DTHjfD3s/bKou+pHAej+ZarffLHJ6P4E36H+tJHo/wNyNORHYeT805ilzVYx5P9EK3Jp3QXk/89lLJnX3eD/3qZKSS654P57HJWT4ZXg/HeXAJnkeeD+kyFBty9d3PzQ53tHskXc/Yil59dpMdz/fHiSAkwh3P6DWvyAUxXY/jyT3jFqCdj80DiuBZEB2P8gfX8Av/3U/uvolFLq+dT9VHY5MAX91P6ziDkADQHU/Rrp1y70BdT+hltPRLsR0P1eSajxUh3Q/8Mqb+itLdD/0cNUBtA90P2kMgU3q1HM/afXx3syacz8KAFS9WWFzPx5bmvWOKHM/+6Bummrwcj8RGiDE6rhyP28wk5ANgnI/6hMxI9FLcj8EjtekMxZyP1cFyUMz4XE/1K+cM86scT9h8y6tAnlxPwv0ke7ORXE/t0/+OjETcT9uBsTaJ+FwP+iOOxuxr3A/4xa3Tst+cD+I7nPMdE5wP7UejPCrHnA/2FLQN97ebz8u6GFoeYFvP+C1g0cmJW8/pdo1s+HJbj/ApKaSqG9uPwyrF9Z3Fm4/qjTDdky+bT/e7sF2I2dtP9nv8OD5EG0/xQXYyMy7bD/TUJBKmWdsPxUoq4pcFGw/pEcZthPCaz+9RxICvHBrP29b/KtSIGs/tVZU+dTQaj+W+pU3QIJqP/SGJLyRNGo/tpAz5MbnaT8XHLAU3ZtpP+v5KbrRUGk/SGe9SKIGaT/R7vw7TL1oP4+K2xbNdGg/OAaXYyItaD+KoKKzSeZnP4DrkZ9AoGc/LOoDxwRbZz/ua47QkxZnPyikqWnr0mY/x/2bRgmQZj+0KWYi601mP/hnr76ODGY/gQqy4/HLZT8pMShgEoxlP+e9OAnuTGU/HIFkuoIOZT/lnHNVztBkPxcfY8LOk2Q/8dBS74FXZD9IPHPQ5RtkP0rl81/44GM/grjxnbemYz8LrGWQIW1jP/iTE0M0NGM/2yh5x+37Yj8fQL00TMRiP6Q1n6dNjWI/qIVmQvBWYj8ll9IsMiFiP1m1CpQR7GE/jjiOqoy3YT8C3SSooYNhP+lHz8lOUGE/vbm3UZIdYT9u7SKHautgP8wjYbbVuWA/2lq/MNKIYD95sHhMXlhgP+Tvp2R4KGA/15Jysj3yXz81aLgdoJRfP5Lx6t0UOF8/Jswiz5jcXj8lWazWKIJeP4jG7OLBKF4/xGZH62DQXT+DVgPwAnldP61vMfqkIl0/qYiSG0TNXD9R/31u3XhcP0GOyBVuJVw/FWyrPPPSWz9us6sWaoFbPwQTgt/PMFs/KcUC2yHhWj+KzQVVXZJaP458T6F/RFo/ozd5G4b3WT+LhdombqtZP+xdci41YFk/UbvQpNgVWT/vbgAEVsxYP1o1cc2qg1g/pgviidQ7WD+uw0vJ0PRXP23XyyKdrlc/NXqPNDdpVz97576jnCRXP+TtaBzL4FY/mbZuUcCdVj/Dx2/8eVtWP5hBtt31GVY/RFUjvDHZVT8j9RtlK5lVP429dazgWVU/oRVkbE8bVT9Fh2WFdd1UP9ZNMd5QoFQ/AhulY99jVD/KELMIHyhUP8nwT8YN7VM/IH9hm6myUz90Ga2M8HhTP66AxqTgP1M/ZNX+83cHUz/LxVOQtM9SP0jtXpWUmFI/kGRFJBZiUj/0gadjNyxSP0nJkH/29lE//ApoqVHCUT+Asd8XR45RP/485gbVWlE/K+yWt/knUT9Tkipws/VQP8aZ6HsAxFA/GzIYK9+SUD/8qfHSTWJQP8Tzj81KMlA/rlTiedQCUD+zezx30qdPP82dYvYOS08/ywJnS1vvTj/z+bJZtJROP9smzg0XO04/BslDXYDiTT91UYhG7YpNP/JF39BaNE0/sXBBDMbeTD/KW0MRLIpMPyUX/ACKNkw/okjsBN3jSz8oheVOIpJLPyPy8RhXQUs/Ey48pXjxSj8NgPc9hKJKP9VMSDV3VEo/GdEs5U4HSj+jH2avCLtJPzFjYf2hb0k/12IhQBglST9dSCjwaNtIP4enYY2Rkkg/98UMn49KSD+fIqezYANIPxg812ACvUc/S5VXQ3J3Rz9X9+H+rTJHP4TwGj6z7kY/Ho99sn+rRj/lV0cUEWlGP+12ZCJlJ0Y/0CpconnmRT8XaT1gTKZFP4q7iy7bZkU/R1Us5iMoRT+ZX1NmJOpEP2Z9cZTarEQ/94QhXERwRD8ObxavXzREPyl7CYUq+UM/+Yeo26K+Qz+yn4S2xoRDP0q3AB+US0M/g6BAJAkTQz/DLRjbI9tCP4KH+l3io0I/TLLpzEJtQj9NRWZNQzdCP3JQXwriAUI/wnEiNB3NQT9tGUwA85hBP8j7t6lhZUE/EbFxcGcyQT8kgqWZAgBBP9JhkW8xzkA/GhJ2QfKcQD8TdYhjQ2xAP8AI4y4jPEA/kI13AZAMQD90rQF8ELs/P6eI6ZcUXj8/3MzsLikCPz/JkZAiS6c+P17OfV13TT4/G5Bm06r0PT+xgOuA4pw9P3e5gWsbRj0/OeNYoVLwPD8lokE5hZs8P4dMlFKwRzw/z+sXFdH0Oz92humw5KI7P76yY17oUTs/sHAGXtkBOz8NS1/4tLI6Pzm+8X14ZDo/DuQfRyEXOj9UZBO0rMo5P62opiwYfzk/WFNOIGE0OT/k9wIGheo4P1EVK1yBoTg/mlCFqFNZOD897xJ4+RE4P4iQAl9wyzc/fyWb+LWFNz9IJifnx0A3P5wE4NOj/DY/QtrZbke5Nj9EU+9usHY2P+rSrZHcNDY//tJBm8nzNT9ZfGNWdbM1P5F4Q5TdczU/q/t3LAA1NT+QBer82vY0PyvawulruTQ/ErBZ3bB8ND+8lCHIp0A0P9OFl6BOBTQ/Db8wY6PKMz+mO0kSpJAzP2BrErZOVzM/CBqCXKEeMz8ziUEZmuYyP1a7nAU3rzI/8u9xQHZ4Mj8gUCHuVUIyPwbLfDjUDDI/XSG4Tu/XMT/6H1llpaMxP2cIKLb0bzE/VCcggNs8MT/sl2AHWAoxPxY0HZVo2DA/t7CPdwunMD+u5egBP3YwP8FAQowBRjA/bWOPc1EWMD9C1R8zWs4vP9DAgsklcS8/36yigAIVLz8nUx847bkuP/jawdjiXy4/MgBiVOAGLj8Cicul4q4tPw0JpNDmVy0/1PFQ4ekBLT/17t3s6KwsP6+N4xDhWCw/Zi5uc88FLD/bP+VCsbMrP8jC8rWDYis/fRVrC0QSKz8TBjWK78IqP/YqMoGDdCo/woAnR/0mKj+hTKY6WtopP0ZC9cGXjik/9+z5SrNDKT/bWiJLqvkoP7gJTz96sCg/HhS9qyBoKD/TnvAbmyAoP2mFnyLn2Sc/NkWcWQKUJz8kJsFh6k4nP4ig2+KcCic/dP+XixfHJj+aPm0RWIQmP0QjiTBcQiY/i4+8qyEBJj86D2hMpsAlP7udaOLngCU/b6QERORBJT9xMNlNmQMlP7Vfx+IExiQ/awTi6ySJJD9XfltY90wkPw3Jcx16ESQ/Jr9mNqvWIz8VkVqkiJwjP7hvTm4QYyM/WGkJoUAqIz8keQlPF/IiPyvIcpCSuiI/lh//grCDIj8di+1Jb00iP60r8g3NFyI/aTkm/cfiIT96NPhKXq4hPzZEHDCOeiE/GcR86lVHIT8L/iq9sxQhP00RUPCl4iA/0QUe0SqxID8RC8GxQIAgP2jiUOnlTyA/1XPC0xggID/cGrOjr+EfPzOYNZJChB8/7Vt7R+cnHz+wmj2hmsweP6CIZIZZch4/qm/s5iAZHj9AFcu77cAdP7Nt1Qa9aR0/uZyl0osTHT8PQoEyV74cP5MRQEIcahw/mrUyJtgWHD8x+wkLiMQbP6tGviUpcxs/hlB3s7giGz89KXT5M9MaP16D80SYhBo/LUMc6+I2Gj/TUuZIEeoZP7C6A8Mgnhk/lvzJxQ5TGT94sRvF2AgZP5xoUjx8vxg/7scorvZ2GD/i66SkRS8YPzgHA7Fm6Bc/K0Gga1eiFz+O0eVzFV0XPy5aNHCeGBc/qHzPDfDUFj8XrMkACJIWPxU68APkTxY/up232IEOFj/p9CdH380VP3W+yR36jRU/18ySMdBOFT+wcNNdXxAVP4HaI4Sl0hQ/47JRjKCVFD/u6E1kTlkUP3m1GgCtHRQ/ftO5WbriEz9s7BpxdKgTP/g3CkzZbhM/5k4f9uY1Ez8ZMKyAm/0SP3V3rAL1xRI/2sW0mPGOEj/+WeJkj1gSP+XYyo7MIhI/UUZsQ6ftET/xKx21HbkRPw3vfBsuhRE/GFRks9ZRET+mL9a+FR8RPzRE8ITp7BA/dkzcUVC7ED8eMcF2SIoQP19qtEnQWRA/C4yrJeYpED9C+NvUEPUPP2WmDflqlw8/Wsxtitc6Dz8I8s1kU98OP/wzNG3bhA4/N0nAkWwrDj/P2JDJA9MNP0YdqRSeew0/SNXWezglDT+3gJgQ0M8MPz/pA+1heww/gvWsM+snDD8ExowPadULP0cb6bPYgws/awM8XDczCz+2zxtMguMKPytQI8+2lAo/61TaONJGCj9tdJ7k0fkJP7sVjDWzrQk/771nlnNiCT9+oId5EBgJP7BwvViHzgg/oXRAtdWFCD9L2JcX+T0IPxZAhQ/v9gc/LZrvM7WwBz8ALs4iSWsHP/ToE4GoJgc/GOia+tDiBj85PRBCwJ8GP9jv3xB0XQY/XzghJ+obBj9l9YJLINsFPydaOEsUmwU/qtXl+cNbBT/NMY4xLR0FP53pf9JN3wQ/pLZCwyOiBD++U4XwrGUEP+J1C03nKQQ/g/mb0dDuAz9BRO98Z7QDPxranVOpegM/0CUPYJRBAz+ac2iyJgkDP/odfGBe0QI/bOu4hTmaAj9LnRlDtmMCP5uuFL/SLQI/nUKMJY34AT9bQr6n48MBP8+oNHzUjwE/EP213l1cAT8I+jUQfikBP+9ixlYz9wA/cwSI/XvFAD++4ZtUVpQAP9uMFLHAYwA/MKrnbLkzAD9Int/mPgQAP1HLGgWfqv8+NCx1UNNN/z4rEreJF/L+PtpcA5Rol/4+uw6cW8M9/j4kksfVJOX9PrZMtgCKjf0+PIBo4+82/T4SeJSNU+H8PiUCjReyjPw+IDMoogg5/D7Zc6ZWVOb7PofYmWaSlPs+4L/NC8BD+z67uS6I2vP6Pl60siXfpPo+gm9BNstW+j5iNJ0TnAn6PkHSSx9Pvfk+z91/wuFx+T7aMwJuUSf5Pn+9G5qb3fg+uHV/xr2U+D4trzR6tUz4PsqZgUOABfg+PgfWtxu/9z6ebbZzhXn3Ptcnpxq7NPc+XfIXV7rw9j6MpE/agK32Ph4lWFwMa/Y+fJnqm1op9j4Mz1teaej1PgTeiG82qPU+0wTEob9o9T7yu8HNAir1PpsAhtL96/Q+59ZRla6u9D7RAZEBE3L0PsbwxwgpNvQ+T+KBou768z4AOz/MYcDzPhIQZImAhvM+cOUm40hN8z7unX/ouBTzPsWdFq7O3PI+gx40Toil8j6gs6/o427yPpD/36LfOPI+fpiKp3kD8j48HNQmsM7xPtByMFaBmvE+XD9TcOtm8T4vfiC17DPxPlhQnWmDAfE+jvPg163P8D4r5gVPap7wPsI2GyO3bfA+sv4VrZI98D47B8NK+w3wPsoxcb3eve8+IuiQoNpg7z7z5eMW5wTvPo2oqAEBqu4+bVtCSyVQ7j4dDR7nUPftPo8ymNGAn+0+InjiD7JI7T523+mv4fLsPqgoPcgMnuw+KYfzdzBK7D5XoJPmSffrPlrT+kNWpes+q8lEyFJU6z7oTrOzPATrPrtvlk4Rteo+fN406c1m6j5nnbTbbxnqPojsA4b0zOk+43vCT1mB6T4p4CqomzbpPopJ/AW57Og+xntk566j6D7tBurRelvoPra/VlIaFOg+YXei/IrN5z5c8d1ryofnPvoWHkLWQuc+DGhnKKz+5j6pp5nOSbvmPoHEW+useOY+LfwHPNM25j6DOJiEuvXlPsumko9gteU+ZIf2LcN15T7lNSk34DblPvFo44i1+OQ+qageB0G75D7A+wKcgH7kPhLK1DdyQuQ+YPTi0BMH5D58IHVjY8zjPow5uvFekuM+GyO3gwRZ4z5gnzUnUiDjPlVns+9F6OI+cnRR9t2w4j5Ye8NZGHriPu2WPz7zQ+I+RiNuzWwO4j4RyFk2g9nhPmKxX600peE+IfcfbH9x4T73MW6xYT7hPnk9QsHZC+E+8yap5OXZ4D5nSLZphKjgPhyPdKOzd+A+i+3X6XFH4D6U966ZvRfgPmNSKSkq0d8+ea3Ege1z3z7BjEMTwhffPqTk/rykvN4+juZ5Z5Ji3j6HJUcEiAnePl0J7o2Csd0+/Y/QB39a3T4JWxF+egTdPhoKegVyr9w+6N9hu2Jb3D6usZTFSQjcPiYgOlIktts+Chm9l+9k2z5ToLPUqBTbPrzgxk9Nxdo+yoGbV9p22j7LQ7pCTSnaPhHgeG+j3Nk+AS3jQ9qQ2T4dhaQt70XZPkdw8aHf+9g+bY5xHamy2D4wwykkSWrYPvqgZkG9Itg+2ROnBwPc1z6fSocQGJbXPtPdq/z5UNc+xTOtc6YM1z7/IAMkG8nWPmnE8MJVhtY+ap5wDFRE1j6f4iDDEwPWPr0CMLCSwtU++HJJo86C1T6JpoJyxUPVPu9DSPp0BdU+V5BLHdvH1D5jEXDE9YrUPr9kud7CTtQ+Mk05YUAT1D7A8/1GbNjTPk5dAJFEntM+cBMTRsdk0z4RANFy8ivTPld7jCnE89I+M4s+gjq80j72U3aaU4XSPqy5SJUNT9I++jBAm2YZ0j7gv0zaXOTRPhkttIXur9E+6l0C1hl80T654fkI3UjRPu+qhGE2FtE+pPSkJyTk0D5+VGaopLLQPoT4zjW2gdA+yw/RJldR0D5NXjzXhSHQPqH1X0+B5M8+NG0Y+wuHzz73XMmFqCrPPk0J5cxTz84+w4UNtwp1zj6RyfkzyhvOPkcSWzyPw80+QpXC0VZszT7FfYf+HRbNPmI3rdXhwMw+xAPKcp9szD7l2u35UxnMPuaUiZf8xss+2VxWgJZ1yz4Yaz3xHiXLPh8HQC+T1co+lM9fh/CGyj7FR4dONDnKPuapcuFb7Mk+Pv2YpGSgyT50bxUETFXJPinwkHMPC8k+iQ4sbqzByD4VF2l2IHnIPi9yFhZpMcg+tkE53oPqxz5fPfhmbqTHPv3Mhk8mX8c+DmAQPqkaxz63AaTf9NbGPucoIOgGlMY+FsMeEt1Rxj4IeuEedRDGPhkzPtbMz8U+y8eLBuKPxT609o6EslDFPmiMZys8EsU+gsN93HzUxD5l229/cpfEPqXk/wEbW8Q+FcMBWHQfxD5lZEl7fOTDPvoqmWsxqsM+JIyQLpFwwz5v4ZrPmTfDPjJs3l9J/8I+5Yor9p3Hwj7dH+yulZDCPksoE6wuWsI+o4MMFWckwj6B6qwWPe/BPmMUIuOuusE+CgzjsbqGwT6dsaC/XlPBPkJqNk6ZIME+wvyapGjuwD4WmtEOy7zAPlIS292+i8A+pTSnZ0JbwD44WgYHVCvAPuQ2Njfk978+Zl6YEzaavz6D5mx1mj2/PuY7PjgO4r4+4y/MQI6Hvj5u/PB8Fy6+PjiXhuOm1b0+mVJMdDl+vT4ZzMw3zCe9PjAnRD9c0rw+lJOGpOZ9vD4ZHueJaCq8PsbLHhrf17s+GP0ziEeGuz4nGmIPnzW7PrCFAfPi5bo+q9ZvfhCXuj6dV/gEJUm6PrbKvOEd/Lk++HGed/ivuT4IWycxsmS5Pujsc4BIGrk+9rcc37jQuD7XhiDOAIi4PoqvztUdQLg+F6SxhQ35tz4Mwnl0zbK3Phtg6D9bbbc+Kxm7jLQotz66U5cG1+S2PrsF9l/AobY+ebMPUm5ftj4Vqcic3h22PiJunQYP3bU+U3KPXP2ctT788hFyp121PmMY9yALH7U+uUpdSSbhtD45vZzR9qO0PukvNaZ6Z7Q+h+a7ua8rtD5v1MkElPCzPp786YUltrM+igWIQWJ8sz7F/95BSEOzPoFf6JbVCrM+fSdLVgjTsj6VRUub3puyPgoguYZWZbI+7VLhPm4vsj40nXzvI/qxPvH8n8l1xbE+AvqsA2KRsT4JH0LZ5l2xPoOfK4sCK7E+HitUX7P4sD6N7bWg98awPiG6S5/NlbA+AGMCsDNlsD5CO6osKDWwPoDD6HOpBbA+xwBV0mutrz6s9Snpl1CvPsXR8QXU9K4+AP+ICx2arj6I2Ovlb0CuPoPtG4rJ560+JpIF9iaQrT5IvmUwhTmtPnA4sEjh46w+5wz2VjiPrD4DT8x7hzusPgElM+DL6Ks+vxx9tQKXqz7CyDY1KUarPrmkDqE89qo+pUC9Qjqnqj7Gse1rH1mqPt9IJnbpC6o+IIyxwpW/qT4cdYe6IXSpPi7xNs6KKak+zaPPdc7fqD4c6ssw6paoPtge+4XbTqg+Bh5sA6AHqD5+B1g+NcGnPv0/DdOYe6c+Oq/aZMg2pz5JO/udwfKmPu1/gS+Cr6Y+WMFD0Qdtpj64GchBUCumPtXgMEZZ6qU+EE0pqiCqpT5kTdI/pGqlPgibr9/hK6U+CQOVaNftpD505pO/grCkPs7w6M/hc6Q+FwTqivI3pD7SWfTnsvyjPlfYWuQgwqM+JpxUgzqIoz77s+vN/U6jPuEP7NJoFqM+GKLSpnneoj52sbxjLqeiPp5cVymFcKI+mU3PHHw6oj4hncBoEQWiPiHlJj1D0KE+GYJNzw+coT4xAsBZdWihPmDCOhxyNaE+bbibWwQDoT6MadNhKtGgPhMN1n3in6A+tdqMAytvoD7Mg8dLAj+gPlvXLbRmD6A+mh9jPq3Anz5JlQDooGOfPkxS6zylB58+TzMbHresnj4lkq1101KePlJ4yjb3+Z0+8R+KXR+inT6uwtruSEudPsO0Zvhw9Zw+mMx6kJSgnD72FO3VsEycPnfJA/DC+Zs+WpxcDsinmz6wRNRovVabPjlUbj+gBps+/VM92m23mj44J0uJI2maPt6ygaS+G5o+FcqTizzPmT4bXualmoOZPvbweWLWOJk+X0rUN+3umD7Xbeqj3KWYPmnRCiyiXZg+dNTHXDsWmD4GdeLJpc+XPjdENQ7fiZc+z5efy+RElz4Z+fCqtACXPs7P1FtMvZY+t0i+lKl6lj4ed9QSyjiWPrCw3pmr95U+eiIx9Eu3lT5Mn5nyqHeVPhCmTGzAOJU+0Z/SPpD6lD64VPVNFr2UPmWXrYNQgJQ+9yUR0DxElD4hwEAp2QiUPgdyVosjzpM+dxJU+BmUkz7z9BF4ulqTPizOLRgDIpM+ssr56/Hpkj4x12sMhbKSPqUZDZi6e5I++ZrpspBFkj64IICGBRCSPqk1skEX25E+oGG0GMSmkT5Hj/5ECnORPtWfPAXoP5E+wSs/nVsNkT5TcOxVY9uQPjVpMX39qZA+6hXzZSh5kD4g6v9n4kiQPt1oAeApGZA+1tPbXvrTjz6QEfV4tXaPPtN5GuSBGo8+fjVef1y/jj7pef0yQmWOPgirRfAvDI4+mcx5sSK0jT53QLh5F12NPp/S4FQLB40+yhB7V/uxjD5s7Zye5F2MPt2s0U/ECow+LhwBmZe4iz5uEFewW2eLPgMuK9QNF4s+ifboSqvHij5RHfhiMXmKPgwhpXKdK4o+8ykK2OzeiT7qK/j4HJOJPoVL4EIrSIk+NoW9KhX+iD5Rlv4s2LSIPksmcM1xbIg+WDAnl98kiD4trGscH96HPkd1o/YtmIc+FHA9xglThz4n7JwysA6HPtxCBeoey4Y+rrGFoVOIhj7Rb+UUTEaGPq39jwYGBYY+hq6BP3/EhT7zajSPtYSFPryrjMumRYU+fqzG0FAHhT5e1WOBscmEPi1bGMbGjIQ+oBW5jY5QhD5TiinNBhWEPsUsSn8t2oM+RtLmpACggz47WaVEfmaDPkaD9GqkLYM+owH7KXH1gj5Js4aZ4r2CPiIU/Nb2hoI+ldxFBaxQgj5i0cRMABuCPsfCP9vx5YE+d7rT436xgT4bWOSepX2BPnZbDEpkSoE+/VsOKLkXgT4crcWAouWAPv5uF6EetIA+lMrj2iuDgD6HWfeEyFKAPmy4/PryIoA+F4fcOlPnfz6W+g+j1Yl/PhA8cwJqLX8+OpkxNg3Sfj40/6YkvHd+PvsLRb1zHn4+VW94+DDGfT6pmY7X8G59PuK3m2SwGH0+hvtgsmzDfD5OLjPcIm98PgSQ4QXQG3w+df6cW3HJez6fZd8RBHh7Pi94U2WFJ3s+SK+8mvLXej41kN/+SIl6PgA4auaFO3o+nCvdrabueT4AbHS5qKJ5PmzNEHWJV3k+VpEhVEYNeT5rQY7R3MN4PgDMoG9Ke3g+beDvt4wzeD7Pikk7oex3PoUOnpGFpnc+oP7qWTdhdz6NkyY6tBx3PoY9K9/52HY+aHKj/AWWdj40t/VM1lN2PszjMJFoEnY+m6D4kLrRdT5hHXIaypF1PoQAMQKVUnU+OI4kIxkUdT4ZB4VeVNZ0PuY8wZtEmXQ+sF1syOdcdD4l9CvYOyF0PqQcpsQ+5nM+fe5vje6rcz6tGPw3SXJzPp6xic9MOXM+MTkTZfcAcz7LzD0PR8lyPi6MSOo5knI+bi/8F85bcj69zJq/ASZyPuDNzw3T8HE+kxSgNEC8cT53TVprR4hxPtlwh+7mVHE+HHHb/xwicT6gFSbm5+9wPgBBmK0BC8g+/IanE9C1WT8r2ZAAzrVpP3V0kOhXSHM/BCM3tMW1eT8+EdmslxGAPzzku+dJSIM/bqD/Bfl+hj9ZXOCCpLWJP33EmtlL7Iw/XRi2QncRkD/mXMkAxqyRP1mnpuQRSJM/EeXtq1rjlD/wgz8UoH6WPx99PNvhGZg/wl+Gvh+1mT+qW797WVCbPwtMitCO65w/P8KKer+Gnj8yiLKb9RCgPxMqX+KI3qA/uUAecBmsoT+LNsMjp3miP8rrIdwxR6M/4rsOeLkUpD/Ggl7WPeKkP06i5tW+r6U/igd9VTx9pj8nMPgztkqnP7kvL1AsGKg/KrX5iJ7lqD8BEDC9DLOpP8Q1q8t2gKo/U8dEk9xNqz85FtfyPRusPxcqPcma6Kw/6cVS9fK1rT9rbfRVRoOuP25q/8mUUK8/HOkoGO8OsD9nReUzkXWwPyyopKcw3LA/QF3XYs1CsT/dIO5UZ6mxP1EiWm3+D7I/rgaNm5J2sj9x6/jOI92yPzJpEPexQ7M/S5ZGAz2qsz+JCQ/jxBC0P9Tc3YVJd7Q/3K8n28rdtD/FqmHSSES1P9GAAVvDqrU/DHN9ZDoRtj/3UkzerXe2PzaF5bcd3rY/NATB4IlEtz/XYldI8qq3PyTPId5WEbg/7BSakbd3uD95oDpSFN64PzSBfg9tRLk/UGzhuMGquT+Bv989EhG6P42D9o1ed7o/BG+jmKbduj8D6WRN6kO7P6kLupspqrs/5KYic2QQvD8sQx/Dmna8P+sjMXvM3Lw/d0raivlCvT96eJ3hIam9P8oy/m5FD74/7MOAImR1vj/cPqrrfdu+P52BALqSQb8/9DcKfaKnvz8LbyeS1gbAP5Zhq0/ZOcA/D4bVbtlswD8g22rn1p/AP+vMMLHR0sA/bDbtw8kFwT/LYmYXvzjBP7IOY6Oxa8E/j2mqX6GewT8GFwREjtHBPyowOEh4BMI/2UQPZF83wj8gXVKPQ2rCP3D6ysEkncI/BhlD8wLQwj8+MYUb3gLDP9M4XDK2NcM/V6STL4towz9ZaPcKXZvDP936U7wrzsM/lFR2O/cAxD9K8iuAvzPEPxzWQoKEZsQ/34iJOUaZxD9mG8+dBMzEP+Mn46a//sQ/JtOVTHcxxT8BzreGK2TFP5FWGk3clsU/izmPl4nJxT+f0+hdM/zFP7kS+pfZLsY/W3eWPXxhxj/wFZJGG5TGPxCYwaq2xsY/6j36YU75xj993xFk4ivHP/3t3qhyXsc/D3U4KP+Qxz8xHPbZh8PHP/kn8LUM9sc/eXv/s40oyD9wmf3LClvIP72lxPWDjcg/n2YvKfm/yD8HRhleavLIP+tSXozXJMk/iELbq0BXyT/TcW20pYnJP6nm8p0GvMk/KVFKYGPuyT8HDVPzuyDKP+Mi7U4QU8o/hkn5amCFyj8751g/rLfKPyoT7sPz6co/jpab8DYcyz8g7kS9dU7LP1FLziGwgMs/opUcFuayyz/vaxWSF+XLP8sln41EF8w/tNSgAG1JzD+CRQLjkHvMP5kBrCywrcw/QlCH1crfzD8JOH7V4BHNP/F/eyTyQ80/y7Bquv51zT+MFjiPBqjNP5bB0JoJ2s0/A4gi1QcMzj/uBhw2AT7OP9GjrLX1b84/wI3ES+Whzj+/vlTwz9POPwj9Tpu1Bc8/bNylRJY3zz+Gv0zkcWnPPw7ZN3JIm88/OS1c5hnNzz/mkq845v7PP4JalLBWGNA/5onfqzcx0D8SgzUKFkrQP2jdksfxYtA/5Zz038p70D/JMlhPoZTQPzd+uxF1rdA/4MwcI0bG0D+p23p/FN/QP0bX1CLg99A/71wqCakQ0T/2ensubynRP3+xyI4yQtE/C/MSJvNa0T85pVvwsHPRP1ShpOlrjNE/CzXwDSSl0T8II0FZ2b3RP5ajmseL1tE/UWUAVTvv0T/AjXb95wfSP/i5Ab2RINI/T/+mjzg50j/t62tx3FHSP32HVl59atI/0lNtUhuD0j+ATbdJtpvSP5DsO0BOtNI/FSUDMuPM0j/bZxUbdeXSPwKje/cD/tI/qEI/w48W0z+QMWp6GC/TP7nZBhmeR9M/CiUgmyBg0z/+fcH8n3jTPzDQ9jkckdM/F4nMTpWp0z+fmE83C8LTP8Fxje992tM/OwuUc+3y0z8p4HG/WQvUP6LwNc/CI9Q/Y8Lvnig81D9zYa8qi1TUP79ghW7qbNQ/vtqCZkaF1D8XcrkOn53UP0NSO2P0tdQ/KzAbYEbO1D/RSmwBlebUP+prQkPg/tQ/heixISgX1T+zoc+YbC/VPxcFsaStR9U/nQ1sQetf1T8JRBdrJXjVP62/yR1ckNU/8iabVY+o1T8LsKMOv8DVP5Yh/ETr2NU/N9O99BPx1T82rgIaOQnWPysu5bBaIdY/lWGAtXg51j+B6u8jk1HWPyz/T/ipadY/mmq9Lr2B1j8/jVXDzJnWP6FdNrLYsdY/8mh+9+DJ1j+400yP5eHWP15awXXm+dY/61H8puMR1z+NqB4f3SnXP0XmSdrSQdc/hy2g1MRZ1z/PO0QKs3HXP05qWXedidc/gK4DGISh1z/QmmfoZrnXPzVfquRF0dc/2MnxCCHp1z+mR2RR+ADYP/zkKLrLGNg/O05nP5sw2D930EfdZkjYPwFa848uYNg/EnuTU/J32D9tZlIkso/YP/PxWv5tp9g/RJfY3SW/2D9qdPe+2dbYP11M5J2J7tg/vofMdjUG2T9kNd5F3R3ZP/oKSAeBNdk/omU5tyBN2T+RSuJRvGTZP65nc9NTfNk/KxQeOOeT2T8kURR8dqvZP0HKiJsBw9k/T9aukoja2T/Yd7pdC/LZP8hd4PiJCdo/DORVYAQh2j8gFFGQejjaP7mlCIXsT9o/Yf+zOlpn2j8LN4utw37aP7USx9kolto/Bgmhu4mt2j/fQVNP5sTaPwyXGJE+3No/xJQsfZLz2j9cessP4grbP9g6MkUtIts/jH2eGXQ52z+onk6JtlDbP+qvgZD0Z9s/LHl3Ky5/2z/6eHBWY5bbPzvlrQ2Urds/watxTcDE2z/ncv4R6NvbPyyal1cL89s/zDqBGioK3D9bKABXRCHcP2LxWQlaONw/8t/ULWtP3D9F+rfAd2bcP1QDS75/fdw/cXvWIoOU3D/goKPqgavcP3hw/BF8wtw/LaYrlXHZ3D+3vXxwYvDcPyfzO6BOB90/fUO2IDYe3T9BbTnuGDXdPyXxEwX3S90/jRKVYdBi3T812AwApXndP8oMzNx0kN0/dT8k9D+n3T99xGdCBr7dP+C16cPH1N0/6vP9dITr3T/DJflRPALePxa6MFfvGN4/ouf6gJ0v3j/Hra7LRkbePzDVozPrXN4/W/AytYpz3j82XLVMJYreP7lAhfa6oN4/d5H9rku33j8yDnpy183eP35DVz1e5N4/TYvyC+D63j+DDaraXBHfP5TA3KXUJ98/GWrqaUc+3z9hnzMjtVTfPwfGGc4da98/jhT/ZoGB3z/skkbq35ffPywbVFQ5rt8/+FmMoY3E3z81z1TO3NrfP5POE9cm8d8/EkAY3LUD4D96cAm31Q7gP8vhkfryGeA/YGjmpA0l4D/rQzy0JTDgP8YfySY7O+A/NBPD+k1G4D+1oWAuXlHgP0a72L9rXOA/sbxirXZn4D/Wbzb1fnLgP/MLjJWEfeA/7jWcjIeI4D+dAKDYh5PgPxTt0HeFnuA/6epoaICp4D+DWKKoeLTgP1sDuDZuv+A/TyjlEGHK4D/ic2U1UdXgP4wCdaI+4OA/AGFQVinr4D9yjDRPEfbgP+XyXov2AOE/cnMNCdkL4T+OXn7GuBbhP1Z28MGVIeE/1u6i+W8s4T9QbtVrRzfhP4kNyBYcQuE/C1i7+O1M4T9yTPAPvVfhP7NcqFqJYuE/YW4l11Jt4T/72qmDGXjhPy5weF7dguE/IXDUZZ6N4T+5kQGYXJjhP+QARPMXo+E/4l7gddCt4T+FwhsehrjhP4C4O+o4w+E/rkOG2OjN4T9T3UHnldjhP2t1tRRA4+E/63IoX+ft4T8MtOLEi/jhP5GOLEQtA+I/DdBO28sN4j8rvpKIZxjiP/UWQkoAI+I/GRGnHpYt4j8xXAwEKTjiPwohvfi4QuI/6QEF+0VN4j/SGjAJ0FfiP9EBiyFXYuI/O8diQtts4j/59QRqXHfiP8qTv5bageI/jiHhxlWM4j+Im7j4zZbiP6N5lSpDoeI/vq/HWrWr4j/qrZ+HJLbiP7Rgbq+QwOI/azGF0PnK4j9kBjbpX9XiPz9D0/fC3+I/LMmv+iLq4j819x7wf/TiP3yqdNbZ/uI/gz4FrDAJ4z91jSVvhBPjP2bwKh7VHeM/lz9rtyIo4z/A0jw5bTLjP1GB9qG0POM/t6Lv7/hG4z+hDoAhOlHjP0UdADV4W+M/pKfIKLNl4z/MBzP76m/jPyEZmaofeuM/nThVNVGE4z8URcKZf47jP32fO9aqmOM/Lysd6dKi4z8pTsPQ96zjP1bxiosZt+M/zoDRFzjB4z8c7PRzU8vjP3+mU55r1eM/MadMlYDf4z+laT9XkunjP9Hti+Kg8+M/a7iSNaz94z8w07ROtAfkPyPNUyy5EeQ/1brRzLob5D+lNpEuuSXkPwFh9U+0L+Q/reBhL6w55D8A4zrLoEPkPy0c5SGSTeQ/gMfFMYBX5D+hp0L5amHkP9oGwnZSa+Q/VbeqqDZ15D9gE2SNF3/kP679VSP1iOQ/m+HoaM+S5D9ps4VcppzkP4fwlfx5puQ/0Z+DR0qw5D/QUbk7F7rkP/sgotfgw+Q//bGpGafN5D/wMzwAatfkP6Ngxokp4eQ/2Hy1tOXq5D+HWHd/nvTkPx1PeuhT/uQ/v0ct7gUI5T+Ltf+OtBHlP9OXYclfG+U/Z3rDmwcl5T/MdZYErC7lP4QvTAJNOOU/SdpWk+pB5T9QNim2hEvlP4iRNmkbVeU/2sfyqq5e5T9qQ9J5PmjlP9X8SdTKceU/dHvPuFN75T+X1dgl2YTlP8iw3BlbjuU/CUJSk9mX5T8WTrGQVKHlP6ApchDMquU/j7kNEUC05T9Ac/2QsL3lP8hcu44dx+U/Kg3CCIfQ5T+grIz97NnlP9P0lmtP4+U/GzFdUa7s5T/APlytCfblPzeNEX5h/+U/Xh77wbUI5j+/hpd3BhLmP8rtZZ1TG+Y/Fg7mMZ0k5j+cNZgz4y3mP/pF/aAlN+Y/qbSWeGRA5j9Di+a4n0nmP7tnb2DXUuY/n3y0bQtc5j9PkTnfO2XmP0ECg7NobuY/PMEV6ZF35j+TVXd+t4DmP2PcLXLZieY/1QjAwveS5j9SJLVuEpzmP8gOlXQppeY/4D7o0jyu5j9AwjeITLfmP8U9DZNYwOY/v+3y8WDJ5j8vpnOjZdLmPwLTGqZm2+Y/THh0+GPk5j+HMg2ZXe3mP8w2coZT9uY/E1Mxv0X/5j9n7thBNAjnPywJ+AwfEec/UT0eHwYa5z+Tvtt26SLnP7BawRLJK+c/rXlg8aQ05z8IHksRfT3nP/bkE3FRRuc/oAZODyJP5z9bVo3q7lfnP+ZCZgG4YOc/oNZtUn1p5z/HtzncPnLnP7EoYJ38euc/BAh4lLaD5z/00BjAbIznP32b2h4flec/mBxWr82d5z98piRweKbnP9Mo4F8fr+c/9DAjfcK35z8i6ojGYcDnP70drTr9yOc/gzMs2JTR5z/GMaOdKNrnP6S9r4m44uc/RBvwmkTr5z8MLgPQzPPnP9x4iCdR/Oc/RB4goNEE6D/B4Go4Tg3oP/EiCu/GFeg/z+efwjse6D/r0s6xrCboP6EoOrsZL+g/U86F3YI36D+fSlYX6D/oP5fFUGdJSOg/AAkbzKZQ6D99gFtEAFnoP9M5uc5VYeg/GuXbaadp6D/11GsU9XHoP8z+Ec0+eug/Avt3koSC6D8sBUhjxoroP0f8LD4Ek+g/9GLSIT6b6D+nX+QMdKPoP+a8D/6lq+g/eekB9NOz6D+m+Gjt/bvoP2Si8+gjxOg/lENR5UXM6D8y3jHhY9ToP5QZRtt93Og/mUI/0pPk6D/gS8/EpezoPwLOqLGz9Og/wwd/l7386D9L3gV1wwTpP1jd8UjFDOk/eTf4EcMU6T8+xs7OvBzpP28KLH6yJOk/QyzHHqQs6T+U+1evkTTpPxPwli57POk/fCk9m2BE6T/ObwT0QUzpP38zpzcfVOk/rY3gZPhb6T9VQGx6zWPpP4m2Bneea+k/ogRtWWtz6T9z6FwgNHvpP4HJlMr4guk/MbnTVrmK6T8Cc9nDdZLpP75cZhAumuk/rIY7O+Kh6T/FqxpDkqnpP+oxxiY+sek/ECoB5eW46T97UI98icDpP+4MNewoyOk/3HK3MsTP6T+eQdxOW9fpP6LkaT/u3uk/onMnA33m6T/UstyYB+7pPxwTUv+N9ek/QLJQNRD96T8YW6I5jgTqP8GFEQsIDOo/0ldpqH0T6j+HpHUQ7xrqP/rsAkJcIuo/UGDeO8Up6j/s29X8KTHqP6Drt4OKOOo/4MlTz+Y/6j/wX3nePkfqPxhG+a+STuo/08OkQuJV6j8B0E2VLV3qPxgRx6Z0ZOo/VN3jdbdr6j/nOngB9nLqPyrgWEgweuo/zTNbSWaB6j8KTVUDmIjqP87zHXXFj+o/8aCMne6W6j9hfnl7E57qP1VnvQ00peo/d+gxU1Cs6j8cQLFKaLPqP2peFvN7uuo/j+U8S4vB6j/sKQFSlsjqP0YyQAadz+o/87fXZp/W6j8MJ6Zynd3qP5aeiiiX5Oo/ufBkh4zr6j/oohWOffLqPw/ufTtq+eo/xr5/jlIA6z98tf2FNgfrP6cm2yAWDus/8Br8XfEU6z9fT0U8yBvrP481nLqaIus/1/Pm12gp6z92ZQyTMjDrP8Ua9Or3Nus/YlmG3rg96z9bHKxsdUTrP2AUT5QtS+s/66dZVOFR6z9v87arkFjrP4XJUpk7X+s/GbMZHOJl6z+U7/gyhGzrPwp13twhc+s/Z/C4GLt56z+axXflT4DrP8EPC0Lghus/VaFjLWyN6z9XBHOm85PrP3l6K6x2mus/Sv1/PfWg6z9nPmRZb6frP5ynzP7kres/GluuLFa06z+ZM//hwrrrP4rEtR0rwes/PFrJ3o7H6z8N+jEk7s3rP41i6OxI1Os/sQvmN5/a6z/0JiUE8eDrP4ufoFA+5+s/iBpUHIft6z8G9ztmy/PrP1NOVS0L+us/HfSdcEYA7D+VdhQvfQbsP54euGevDOw/9u+IGd0S7D9bqYdDBhnsP7nEteQqH+w/UXcV/Eol7D/isamIZivsP9Qgdol9Mew/Wix//Y837D+m+MnjnT3sPwRmXDunQ+w/DhE9A6xJ7D/PUnM6rE/sP+lAB+CnVew/wa0B855b7D+nKGxykWHsP/v9UF1/Z+w/VTe7smht7D+vm7ZxTXPsP4mvT5kteew/FbWTKAl/7D9arJAe4ITsP1pTVXqyiuw/QCbxOoCQ7D99X3RfSZbsP/n37+YNnOw/MKd10M2h7D9g4xcbiafsP6rh6cU/rew/O5b/z/Gy7D9ztG04n7jsPwevSf5Hvuw/LLipIOzD7D+4waSei8nsP0p9Uncmz+w/cVzLqbzU7D/MkCg1TtrsPzYMhBjb3+w/5oD4UmPl7D+YYaHj5ursP63hmsll8Ow/VfUBBOD17D+vUfSRVfvsP/NskHLGAO0/jn71pDIG7T9Rf0MomgvtP40pm/v8EO0/N/kdHlsW7T8TLO6OtBvtP9HBLk0JIe0/M3wDWFkm7T8x35CupCvtPxsx/E/rMO0/vnprOy027T+HhwVwajvtP6Pl8eyiQO0/J+ZYsdZF7T8vnWO8BUvtPwLiOw0wUO0/NE8Mo1VV7T/KQgB9dlrtP1reQ5qSX+0/LgcE+qlk7T9nZm6bvGntPyBpsX3Kbu0/jED8n9Nz7T8b4n4B2HjtP5kHaqHXfe0/Uy/vftKC7T80nECZyIftP+pVke+5jO0/BykVgaaR7T8cpwBNjpbtP+ImiVJxm+0/VsTkkE+g7T/bYEoHKaXtP1ij8bT9qe0/XvgSmc2u7T9BkueymLPtPz1pqQFfuO0/ljuThCC97T+0jeA63cHtP0iqzSOVxu0/ZaKXPkjL7T+nTXyK9s/tP01Kugag1O0/Wf2QskTZ7T+wkkCN5N3tPzv9CZZ/4u0/APcuzBXn7T9HAfIup+vtP7Zklr0z8O0/bTFgd7v07T8pP5RbPvntP18teGm8/e0/W2NSoDUC7j9fEGr/qQbuP70rB4YZC+4/+3RyM4QP7j/pc/UG6hPuP8d42v9KGO4/WpxsHacc7j8PwPde/iDuPxaOyMNQJe4/fnksS54p7j9TvnH05i3uP7th574qMu4/EjLdqWk27j8Hx6O0ozruP7eBjN7YPu4/yYzpJglD7j+O3A2NNEfuPxcvTRBbS+4/VQz8r3xP7j8zxm9rmVPuP7R4/kGxV+4/CQr/MsRb7j+yKsk90l/uP5dVtWHbY+4/IdAcnt9n7j9Yqlny3mvuP/2+xl3Zb+4/pLO/385z7j/N+KB3v3fuPwTKxySre+4/8i2S5pF/7j+C9l68c4PuP/LAjaVQh+4/8vV+oSiL7j+8yZOv+47uPyw8Ls/Jku4/3hix/5KW7j9E939AV5ruP746/5AWnu4/txKU8NCh7j+9eqRehqXuP5Y6l9o2qe4/XebTY+Ks7j+Z3sL5iLDuP1dQzZsqtO4/PzVdSce37j+wU90BX7vuP9Q+ucTxvu4/vVZdkX/C7j94yDZnCMbuPyiOs0WMye4/HG9CLAvN7j/n/1IahdDuP3WiVQ/60+4/KIa7CmrX7j/pp/YL1druP0HSeRI73u4/cJ24HZzh7j+Gbyct+OTuP3R8O0BP6O4/KMZqVqHr7j+fHCxv7u7uP/8d94k28u4/qTZEpnn17j9ToYzDt/juPxlnSuHw++4/mF/4/iT/7j//MBIcVALvPyhQFDh+Be8/qAB8UqMI7z/rVMdqwwvvP0MudYDeDu8/AD0Fk/QR7z+FAPihBRXvP1rHzqwRGO8/Q68Lsxgb7z9SpTG0Gh7vP/9lxK8XIe8/Nn1IpQ8k7z9yRkOUAifvP8vsOnzwKe8/DGu2XNks7z/Hiz01vS/vP2npWAWcMu8/Su6RzHU17z/D1HKKSjjvP0Cnhj4aO+8/VUBZ6OQ97z/NSneHqkDvP75BbhtrQ+8/nXDMoyZG7z9Q8yAg3UjvPz22+4+OS+8/Y3bt8jpO7z9iwYdI4lDvP5j1XJCEU+8/KEIAyiFW7z8UpwX1uVjvP0v1ARFNW+8/uM6KHdtd7z9XpjYaZGDvP0bAnAboYu8/0jFV4mZl7z+L4fis4GfvP1aHIWZVau8/d6xpDcVs7z+rq2yiL2/vPy+xxiSVce8/1boUlPVz7z8VmPTvUHbvPxjqBDineO8/ziPla/h67z/2iTWLRH3vPzczl5WLf+8/JQisis2B7z9YwxZqCoTvP3jxejNChu8/S/F85nSI7z/G88GCoorvPxv87wfLjO8/xd+tde6O7z+bRqPLDJHvP9qqeAkmk+8/N1nXLjqV7z/ncGk7SZfvP7bj2S5Tme8/CnbUCFib7z/7vgXJV53vP1goG29Sn+8/uu7C+keh7z+OIaxrOKPvPyOjhsEjpe8/uCgD/Amn7z+GOtMa66jvP9EzqR3Hqu8/70I4BJ6s7z9caTTOb67vP7x7Uns8sO8/8iFICwSy7z8j18t9xrPvP8jplNKDte8/tntbCTy37z8sgtgh77jvP9zFxRuduu8/++Ld9kW87z9GSdyy6b3vPxE8fU+Iv+8/UdJ9zCHB7z+n9psptsLvP2lnlmZFxO8/sbYsg8/F7z9jSh9/VMfvPzZcL1rUyO8/xfkeFE/K7z+TBLGsxMvvPxYyqSM1ze8/wgvMeKDO7z8S796rBtDvP5INqLxn0e8/52zuqsPS7z/Y5nl2GtTvP1opEx9s1e8/lraDpLjW7z/z5JUGANjvPx/fFEVC2e8/FaTMX3/a7z8pB4pWt9vvPw6wGinq3O8/3xpN1xfe7z8nmPBgQN/vP+dM1cVj4O8/oTLMBYLh7z9eF6cgm+LvP7OdOBav4+8/zTxU5r3k7z92QM6Qx+XvPxrJexXM5u8/0MsydMvn7z9jEsqsxejvP1M7Gb+66e8/4rn4qqrq7z8U1kFwlevvP7uszg577O8/eC96hlvt7z/GJCDXNu7vP/wnnQAN7+8/VKnOAt7v7z/x7ZLdqfDvP+QPyZBw8e8/Mv5QHDLy7z/WfAuA7vLvP8sk2rul8+8/D2Sfz1f07z+lfT67BPXvP56Jm36s9e8/GnWbGU/27z9OAiSM7PbvP4nIG9aE9+8/NjRq9xf47z/hhvfvpfjvPzzXrL8u+e8/IBF0ZrL57z+V9TfkMPrvP88a5Diq+u8/N+xkZB777z9tqqdmjfvvP0drmj/3++8/2Rks71v87z92dkx1u/zvP7IW7NEV/e8/ZWX8BGv97z+rom8Ou/3vP+zjOO4F/u8/2BNMpEv+7z9s8p0wjP7vP/QUJJPH/u8/DObUy/3+7z+fpafaLv/vP+5olL9a/+8/jBqUeoH/7z9jeqALo//vP7MdtHK//+8/Em/Kr9b/7z9vrt/C6P/vPxHx8Kv1/+8/mSH8av3/7z8AAAAAAADwPwBB6OsBC/gHA16Y3uhvVz+VHCBd0IdnP0Tk/wv7t3E/2tTjKGW4dz+UldEZWsV9P5VetVyH74E/k8eXmdwChT/r22KHyByIPylr3J1nPYs/HofdDtdkjj8ADltmmsmQP7ara8hPZJI/C0pkcZsClD9AXbWPjaSVPyIjR8A2Spc/DjFwEqjzmD/P6hkM86CaPzpmFa4pUpw/R2mjeF4Hnj+IXDJwpMCfP1OeKpEHv6A/NWR7VdmfoT9oMObc0YKiP1QmBsz7Z6M/q6g1F2JPpD9e7LIFEDmlPyiT7DQRJaY/Jbj4m3ETpz/iAzmPPQSoP72NLsSB96g/QYOAVUvtqT9KxjjHp+WqP/XuOQul4Ks/i2DyhVHerD86Z1ATvN6tP7qi+wv04a4/6FXYSgnorz/sx2wZhniwP2PDk9qG/rA/gfXPqw+GsT/cN9udKQ+yP/gk3hLembI/yvpKwjYmsz+alvO8PbSzP5/WXnH9Q7Q/UgxisIDVtD9EkgOy0mi1P7YKrBr//bU/NkqsABKVtj+LfB7yFy63P9WrKfsdybc/lnuvrDFmuD+WpWwjYQW5P/eWlQ+7prk/pHP5vE5Kuj9rx7YbLPC6P2lLjsljmLs/nGXhGwdDvD+rbWsqKPC8P7RRxtrZn70/ZvXM7C9Svj/Ymu8HPwe/P/TakMkcv78/ZRZC6u88wD/K5OTwz5vAP1VyU+k6/MA/ImIe4j1ewT9drGKS5sHBP2pHUGVDJ8I/7G6xhmOOwj8Oyo3wVvfCPwQjCHouYsM/01KZ5/vOwz8+jc/80T3EP8Vxvo/ErsQ/009SnughxT9zCsBlVJfFP6UmU3wfD8Y/ewbl7WKJxj9lYVNbOQbHP3j/WB2/hcc/JPs6axIIyD9dx86FU43IP5iBcuekFck/D2OqeSuhyT/7UDTRDjDKP8yuhnF5wso/xgrbGJlYyz+WuxkWn/LLP3Q4O6rAkMw/eZ8BdzczzT9gC0z9QdrNP32cui0khs4/W2DrDig3zz8hU019nu3PPzvltATwVNA/56NR/Sa20D+Jluq+qRrRP9xXiYSzgtE/PRwPAIbu0T+2qyFUal7SPw14Ij+y0tI/EfY0g7lL0z+R8u6a58nTP4LWKc+xTdQ/W6QXyZ3X1D88ygXFRGjVP59QT5dXANY/kkLDx6Og1j8SwR8jGkrXP2Yc6UrX/dc/uhaUCS+92D+yysuQu4nZP4weZGByZdo/5Wh3j8FS2z9YSWzbuVTcPw89SNFMb90/aLUF1Kun3j+ex5WrbwLgP8Ieh85hyOA/3e3czeSs4T/yV8VuKrviPwgBt7HzBeQ/SCf+02iw5T9yOti3dwnoP9xz+b37DOw/AAAAAAAA8D8AQejzAQuJCB1hNBAimL8/ORafICHazz9wsQNYLp/UP/D9kZwY9Nc/G1B1IquJ2j9FJEZkNqbcP3zC8WI8b94/xHDUqCD73z9MJf0VKqzgP3jhW5dZSOE/VNtJEqPV4T+NS0Q4n1biP7rwzc9GzeI/qBqaNyI74z+j9DV7aKHjP8xxi1oUAeQ/dh9w7vJa5D+3Xh4crq/kP7FXWDTU/+Q/4hp9nd1L5T/SLXQbMZTlP78Uaxgn2eU/uIaIMgwb5j/3hGU+I1rmP/nDbuCmluY/JSrv1crQ5j/hcfj/vAjnPxJUuz2mPuc/vLSKIKty5z8MLleB7KTnP2KNpf2H1ec/N6usYJgE6D/pJ0X8NTLoP+FYkfR2Xug/KP2sgG+J6D8hmD8iMrPoP+MxcdXP2+g/G5F5OlgD6T9PPcm52SnpP01UnqNhT+k/wuuyS/xz6T88Z5UhtZfpP5pfI8aWuuk/KU6MHqvc6T83QTFl+/3pPyLAqTiQHuo/picrqXE+6j9ivoZEp13qP1c26yA4fOo/Y/2P5iqa6j8LbGvYhbfqP49jENxO1Oo/sBzMgIvw6j9MqxkGQQzrPz/3fWF0J+s/fY3cQypC6z9FpFMeZ1zrPybuqyYvdus/6VRnW4aP6z93Z3iHcKjrP2ojq0XxwOs/zcbGAwzZ6z9nem8FxPDrP6LkzWYcCOw/pQwCHxgf7D9UYWYCujXsP8k1p8QETOw/S5Ky+vph7D9M04Mcn3fsP5I2zobzjOw/EyeJfPqh7D+M0WAotrbsPyFNDZ4oy+w/TWuS21Pf7D+NEGrKOfPsP4XKmkDcBu0/bzC8AT0a7T+5duq/XS3tP6l+qhxAQO0/uI2/qeVS7T92vvPpT2XtPywl1FGAd+0/LY1hSHiJ7T+noLYnOZvtP2E7pD3ErO0/BJlEzBq+7T9QAYYKPs/tP5SHrSQv4O0/AmfSPO/w7T+ielJrfwHuP9RFQL/gEe4/jPnKPhQi7j/32aDnGjLuPxFhTK/1Qe4/m3OMg6VR7j/M96dKK2HuPyQXveOHcO4/wm8MJ7x/7j9+dEDmyI7uP842seyune4/OtGk/26s7j91pYzeCbvuP5udP0OAye4/+pwx4tLX7j+9SahqAubuPxtW7YYP9O4/HG1+3PoB7z+25DoMxQ/vP85Uj7JuHe8/qjCfZ/gq7z94fmy/YjjvP+fG/UmuRe8/FlWCk9tS7z+w3XQk61/vP6KivIHdbO8/kCfNLLN57z/kicSjbIbvP1OOiGEKk+8/kHTi3Yyf7z/ioJmN9KvvP4YqjeJBuO8/1VzMS3XE7z9WOK41j9DvPzcA6AmQ3O8/49+iL3jo7z/Rs5ALSPTvPwAAAAAAAPA/CwAAAAsAAAALAAAACwAAAAsAQYb8AQsC8D8AQZX8AQv7H+DvPwAAAAAAAHA/AAAAAADA7z8AAAAAAACAPwAAAAAAoO8/AAAAAAAAiD8AAAAAAIDvPwAAAAAAAJA/AAAAAABg7z8AAAAAAACUPwAAAAAAQO8/AAAAAAAAmD8AAAAAACDvPwAAAAAAAJw/AAAAAAAA7z8AAAAAAACgPwAAAAAA4O4/AAAAAAAAoj8AAAAAAMDuPwAAAAAAAKQ/AAAAAACg7j8AAAAAAACmPwAAAAAAgO4/AAAAAAAAqD8AAAAAAGDuPwAAAAAAAKo/AAAAAABA7j8AAAAAAACsPwAAAAAAIO4/AAAAAAAArj8AAAAAAADuPwAAAAAAALA/AAAAAADg7T8AAAAAAACxPwAAAAAAwO0/AAAAAAAAsj8AAAAAAKDtPwAAAAAAALM/AAAAAACA7T8AAAAAAAC0PwAAAAAAYO0/AAAAAAAAtT8AAAAAAEDtPwAAAAAAALY/AAAAAAAg7T8AAAAAAAC3PwAAAAAAAO0/AAAAAAAAuD8AAAAAAODsPwAAAAAAALk/AAAAAADA7D8AAAAAAAC6PwAAAAAAoOw/AAAAAAAAuz8AAAAAAIDsPwAAAAAAALw/AAAAAABg7D8AAAAAAAC9PwAAAAAAQOw/AAAAAAAAvj8AAAAAACDsPwAAAAAAAL8/AAAAAAAA7D8AAAAAAADAPwAAAAAA4Os/AAAAAACAwD8AAAAAAMDrPwAAAAAAAME/AAAAAACg6z8AAAAAAIDBPwAAAAAAgOs/AAAAAAAAwj8AAAAAAGDrPwAAAAAAgMI/AAAAAABA6z8AAAAAAADDPwAAAAAAIOs/AAAAAACAwz8AAAAAAADrPwAAAAAAAMQ/AAAAAADg6j8AAAAAAIDEPwAAAAAAwOo/AAAAAAAAxT8AAAAAAKDqPwAAAAAAgMU/AAAAAACA6j8AAAAAAADGPwAAAAAAYOo/AAAAAACAxj8AAAAAAEDqPwAAAAAAAMc/AAAAAAAg6j8AAAAAAIDHPwAAAAAAAOo/AAAAAAAAyD8AAAAAAODpPwAAAAAAgMg/AAAAAADA6T8AAAAAAADJPwAAAAAAoOk/AAAAAACAyT8AAAAAAIDpPwAAAAAAAMo/AAAAAABg6T8AAAAAAIDKPwAAAAAAQOk/AAAAAAAAyz8AAAAAACDpPwAAAAAAgMs/AAAAAAAA6T8AAAAAAADMPwAAAAAA4Og/AAAAAACAzD8AAAAAAMDoPwAAAAAAAM0/AAAAAACg6D8AAAAAAIDNPwAAAAAAgOg/AAAAAAAAzj8AAAAAAGDoPwAAAAAAgM4/AAAAAABA6D8AAAAAAADPPwAAAAAAIOg/AAAAAACAzz8AAAAAAADoPwAAAAAAANA/AAAAAADg5z8AAAAAAEDQPwAAAAAAwOc/AAAAAACA0D8AAAAAAKDnPwAAAAAAwNA/AAAAAACA5z8AAAAAAADRPwAAAAAAYOc/AAAAAABA0T8AAAAAAEDnPwAAAAAAgNE/AAAAAAAg5z8AAAAAAMDRPwAAAAAAAOc/AAAAAAAA0j8AAAAAAODmPwAAAAAAQNI/AAAAAADA5j8AAAAAAIDSPwAAAAAAoOY/AAAAAADA0j8AAAAAAIDmPwAAAAAAANM/AAAAAABg5j8AAAAAAEDTPwAAAAAAQOY/AAAAAACA0z8AAAAAACDmPwAAAAAAwNM/AAAAAAAA5j8AAAAAAADUPwAAAAAA4OU/AAAAAABA1D8AAAAAAMDlPwAAAAAAgNQ/AAAAAACg5T8AAAAAAMDUPwAAAAAAgOU/AAAAAAAA1T8AAAAAAGDlPwAAAAAAQNU/AAAAAABA5T8AAAAAAIDVPwAAAAAAIOU/AAAAAADA1T8AAAAAAADlPwAAAAAAANY/AAAAAADg5D8AAAAAAEDWPwAAAAAAwOQ/AAAAAACA1j8AAAAAAKDkPwAAAAAAwNY/AAAAAACA5D8AAAAAAADXPwAAAAAAYOQ/AAAAAABA1z8AAAAAAEDkPwAAAAAAgNc/AAAAAAAg5D8AAAAAAMDXPwAAAAAAAOQ/AAAAAAAA2D8AAAAAAODjPwAAAAAAQNg/AAAAAADA4z8AAAAAAIDYPwAAAAAAoOM/AAAAAADA2D8AAAAAAIDjPwAAAAAAANk/AAAAAABg4z8AAAAAAEDZPwAAAAAAQOM/AAAAAACA2T8AAAAAACDjPwAAAAAAwNk/AAAAAAAA4z8AAAAAAADaPwAAAAAA4OI/AAAAAABA2j8AAAAAAMDiPwAAAAAAgNo/AAAAAACg4j8AAAAAAMDaPwAAAAAAgOI/AAAAAAAA2z8AAAAAAGDiPwAAAAAAQNs/AAAAAABA4j8AAAAAAIDbPwAAAAAAIOI/AAAAAADA2z8AAAAAAADiPwAAAAAAANw/AAAAAADg4T8AAAAAAEDcPwAAAAAAwOE/AAAAAACA3D8AAAAAAKDhPwAAAAAAwNw/AAAAAACA4T8AAAAAAADdPwAAAAAAYOE/AAAAAABA3T8AAAAAAEDhPwAAAAAAgN0/AAAAAAAg4T8AAAAAAMDdPwAAAAAAAOE/AAAAAAAA3j8AAAAAAODgPwAAAAAAQN4/AAAAAADA4D8AAAAAAIDePwAAAAAAoOA/AAAAAADA3j8AAAAAAIDgPwAAAAAAAN8/AAAAAABg4D8AAAAAAEDfPwAAAAAAQOA/AAAAAACA3z8AAAAAACDgPwAAAAAAwN8/AAAAAAAA4D8AAAAAAADgPwAAAAAAwN8/AAAAAAAg4D8AAAAAAIDfPwAAAAAAQOA/AAAAAABA3z8AAAAAAGDgPwAAAAAAAN8/AAAAAACA4D8AAAAAAMDePwAAAAAAoOA/AAAAAACA3j8AAAAAAMDgPwAAAAAAQN4/AAAAAADg4D8AAAAAAADePwAAAAAAAOE/AAAAAADA3T8AAAAAACDhPwAAAAAAgN0/AAAAAABA4T8AAAAAAEDdPwAAAAAAYOE/AAAAAAAA3T8AAAAAAIDhPwAAAAAAwNw/AAAAAACg4T8AAAAAAIDcPwAAAAAAwOE/AAAAAABA3D8AAAAAAODhPwAAAAAAANw/AAAAAAAA4j8AAAAAAMDbPwAAAAAAIOI/AAAAAACA2z8AAAAAAEDiPwAAAAAAQNs/AAAAAABg4j8AAAAAAADbPwAAAAAAgOI/AAAAAADA2j8AAAAAAKDiPwAAAAAAgNo/AAAAAADA4j8AAAAAAEDaPwAAAAAA4OI/AAAAAAAA2j8AAAAAAADjPwAAAAAAwNk/AAAAAAAg4z8AAAAAAIDZPwAAAAAAQOM/AAAAAABA2T8AAAAAAGDjPwAAAAAAANk/AAAAAACA4z8AAAAAAMDYPwAAAAAAoOM/AAAAAACA2D8AAAAAAMDjPwAAAAAAQNg/AAAAAADg4z8AAAAAAADYPwAAAAAAAOQ/AAAAAADA1z8AAAAAACDkPwAAAAAAgNc/AAAAAABA5D8AAAAAAEDXPwAAAAAAYOQ/AAAAAAAA1z8AAAAAAIDkPwAAAAAAwNY/AAAAAACg5D8AAAAAAIDWPwAAAAAAwOQ/AAAAAABA1j8AAAAAAODkPwAAAAAAANY/AAAAAAAA5T8AAAAAAMDVPwAAAAAAIOU/AAAAAACA1T8AAAAAAEDlPwAAAAAAQNU/AAAAAABg5T8AAAAAAADVPwAAAAAAgOU/AAAAAADA1D8AAAAAAKDlPwAAAAAAgNQ/AAAAAADA5T8AAAAAAEDUPwAAAAAA4OU/AAAAAAAA1D8AAAAAAADmPwAAAAAAwNM/AAAAAAAg5j8AAAAAAIDTPwAAAAAAQOY/AAAAAABA0z8AAAAAAGDmPwAAAAAAANM/AAAAAACA5j8AAAAAAMDSPwAAAAAAoOY/AAAAAACA0j8AAAAAAMDmPwAAAAAAQNI/AAAAAADg5j8AAAAAAADSPwAAAAAAAOc/AAAAAADA0T8AAAAAACDnPwAAAAAAgNE/AAAAAABA5z8AAAAAAEDRPwAAAAAAYOc/AAAAAAAA0T8AAAAAAIDnPwAAAAAAwNA/AAAAAACg5z8AAAAAAIDQPwAAAAAAwOc/AAAAAABA0D8AAAAAAODnPwAAAAAAANA/AAAAAAAA6D8AAAAAAIDPPwAAAAAAIOg/AAAAAAAAzz8AAAAAAEDoPwAAAAAAgM4/AAAAAABg6D8AAAAAAADOPwAAAAAAgOg/AAAAAACAzT8AAAAAAKDoPwAAAAAAAM0/AAAAAADA6D8AAAAAAIDMPwAAAAAA4Og/AAAAAAAAzD8AAAAAAADpPwAAAAAAgMs/AAAAAAAg6T8AAAAAAADLPwAAAAAAQOk/AAAAAACAyj8AAAAAAGDpPwAAAAAAAMo/AAAAAACA6T8AAAAAAIDJPwAAAAAAoOk/AAAAAAAAyT8AAAAAAMDpPwAAAAAAgMg/AAAAAADg6T8AAAAAAADIPwAAAAAAAOo/AAAAAACAxz8AAAAAACDqPwAAAAAAAMc/AAAAAABA6j8AAAAAAIDGPwAAAAAAYOo/AAAAAAAAxj8AAAAAAIDqPwAAAAAAgMU/AAAAAACg6j8AAAAAAADFPwAAAAAAwOo/AAAAAACAxD8AAAAAAODqPwAAAAAAAMQ/AAAAAAAA6z8AAAAAAIDDPwAAAAAAIOs/AAAAAAAAwz8AAAAAAEDrPwAAAAAAgMI/AAAAAABg6z8AAAAAAADCPwAAAAAAgOs/AAAAAACAwT8AAAAAAKDrPwAAAAAAAME/AAAAAADA6z8AAAAAAIDAPwAAAAAA4Os/AAAAAAAAwD8AAAAAAADsPwAAAAAAAL8/AAAAAAAg7D8AAAAAAAC+PwAAAAAAQOw/AAAAAAAAvT8AAAAAAGDsPwAAAAAAALw/AAAAAACA7D8AAAAAAAC7PwAAAAAAoOw/AAAAAAAAuj8AAAAAAMDsPwAAAAAAALk/AAAAAADg7D8AAAAAAAC4PwAAAAAAAO0/AAAAAAAAtz8AAAAAACDtPwAAAAAAALY/AAAAAABA7T8AAAAAAAC1PwAAAAAAYO0/AAAAAAAAtD8AAAAAAIDtPwAAAAAAALM/AAAAAACg7T8AAAAAAACyPwAAAAAAwO0/AAAAAAAAsT8AAAAAAODtPwAAAAAAALA/AAAAAAAA7j8AAAAAAACuPwAAAAAAIO4/AAAAAAAArD8AAAAAAEDuPwAAAAAAAKo/AAAAAABg7j8AAAAAAACoPwAAAAAAgO4/AAAAAAAApj8AAAAAAKDuPwAAAAAAAKQ/AAAAAADA7j8AAAAAAACiPwAAAAAA4O4/AAAAAAAAoD8AAAAAAADvPwAAAAAAAJw/AAAAAAAg7z8AAAAAAACYPwAAAAAAQO8/AAAAAAAAlD8AAAAAAGDvPwAAAAAAAJA/AAAAAACA7z8AAAAAAACIPwAAAAAAoO8/AAAAAAAAgD8AAAAAAMDvPwAAAAAAAHA/AAAAAADg7z8AAAAAAAAAgAAAAAAAAPA/AEGfnAIL+a8BgAEAAAAgwF+/AAAAMLD/7z8AAAAA0D9gPwAAAAAA4N++AQAAAICAb78AAACAwf7vPwAAAABAf3A/AQAAAADA/74AAAAA2HB3vwAAABA1/e8/AAAAAHgdeT8AAAAAAMoRv///////AX+/AAAAAAz77z8AAAAAAP2APwAAAAAAgB+/AAAAAPQ5g78AAABwR/jvP/7///8jioU/AQAAAACDKL//////X+OGvwAAAIDo9O8//v///981ij8AAAAAAJQxvwAAAABcfYq/AAAAUPDw7z//////6/+OPwAAAACA1De/AAAAAAAIjr8AAAAAYOzvPwAAAAAA9JE/AAAAAAAAP78AAAAAssGQvwAAALA45+8/AAAAAOp2lD8AAAAAwIlDvwEAAADQd5K/AAAAgHvh7z//////jwiXPwAAAAAABki//////2UmlL8AAACQKdvvP//////NqJk/AAAAAEDzTL8BAAAAgM2VvwAAAABE1O8/AQAAAIBXnD/+/////ydRvwEAAAAqbZe/AAAA8MvM7z8AAAAAghSfP/7///9fDVS/AQAAAHAFmb8AAACAwsTvPwAAAADY76A/AAAAAAApV78AAAAAXpaavwAAANAovO8//////3Jcoj//////H3pavwAAAAAAIJy/AAAAAACz7z8AAAAAANCjPwAAAAAAAF6/AQAAAGKinb8AAAAwSanvPwAAAABtSqU/AAAAAPDcYL8AAAAAkB2fvwAAAIAFn+8/AAAAAKjLpj8AAAAAgNNivwAAAADLSKC/AAAAEDaU7z//////nlOoPwAAAABQ42S/AAAAAED/oL8AAAAA3IjvPwAAAABA4qk/AQAAAAAMZ78BAAAALbKhvwAAAHD4fO8/AAAAAHl3qz8BAAAAME1pvwAAAACYYaK/AAAAgIxw7z8AAAAAOBOtP/////9/pmu/AAAAAIcNo78AAABQmWPvPwAAAABrta4/AAAAAJAXbr8AAAAAALajvwAAAAAgVu8/AAAAAAAvsD8AAAAAAFBwvwAAAAAJW6S/AAAAsCFI7z8AAACAcgaxPwAAAAC4n3G/AAAAAKj8pL8AAACAnznvPwAAAAAE4bE/AAAAAMD6cr8AAAAA45qlvwAAAJCaKu8/AAAAgKu+sj8AAAAA6GB0vwAAAADANaa/AAAAABQb7z8AAAAAYJ+zP///////0XW/AAAAAEXNpr8AAADwDAvvPwAAAIAYg7Q/AAAAANhNd78AAAAAeGGnvwAAAICG+u4/AAAAAMxptT8BAAAAQNR4vwAAAABf8qe/AAAA0IHp7j8AAACAcVO2PwAAAAAIZXq/AAAAAACAqL8AAAAAANjuPwAAAAAAQLc/AAAAAAAAfL8BAAAAYQqpvwAAADACxu4/AAAAgG4vuD8BAAAA+KR9vwAAAACIkam/AAAAgImz7j8AAAAAtCG5P/////+/U3+/AQAAAHsVqr8AAAAQl6DuPwEAAIDHFro/AAAAABSGgL8AAAAAQJaqvwAAAAAsje4/AwAAAKAOuz8AAAAAAGeBvwAAAADdE6u/AAAAcEl57j////9/NAm8PwAAAACMTIK/AAAAAFiOq78AAACA8GTuP/3///97Br0/AAAAAKA2g78AAAAAtwWsvwAAAFAiUO4/AAAAgG0Gvj8AAAAAJCWEvwAAAAAAeqy/AAAAAOA67j8AAAAAAAm/PwAAAAAAGIW/AAAAADnrrL8AAACwKiXuPwIAAEAVB8A//////xsPhr8AAAAAaFmtvwAAAIADD+4/AAAAAPKKwD8AAAAAYAqHvwAAAACTxK2/AAAAkGv47T////+/ERDBPwEAAAC0CYi/AAAAAMAsrr8AAAAAZOHtPwAAAABwlsE///////8Mib8BAAAA9ZGuvwAAAPDtye0/AAAAQAgewj/9////KxSKvwAAAAA49K6/AAAAgAqy7T8BAAAA1qbCPwEAAAAgH4u/AAAAAI9Tr78AAADQupntP////7/UMMM/AAAAAMQtjL8AAAAAALCvvwAAAAAAge0/AAAAAAC8wz8AAAAAAECNvwAAAIDIBLC/AAAAMNtn7T8AAABAU0jEP/7///+7VY6/AAAAACQwsL8AAACATU7tPwIAAADK1cQ/AgAAAOBuj78AAACAFVqwvwAAABBYNO0/AAAAwF9kxT8AAAAAqkWQvwAAAACggrC/AAAAAPwZ7T8AAAAAEPTFPwEAAACA1ZC/AAAAgMapsL8AAABwOv/sPwIAAEDWhMY//////+Vmkb8AAAAAjM+wvwAAAIAU5Ow//////60Wxz8BAAAA0PmRvwAAAIDz87C/AAAAUIvI7D8BAADAkqnHP/////8xjpK/AAAAAAAXsb8AAAAAoKzsPwAAAACAPcg/AAAAAAAkk78AAACAtDixvwAAALBTkOw/////P3HSyD//////LbuTvwAAAAAUWbG/AAAAgKdz7D8BAAAAYmjJP/////+vU5S/AAAAgCF4sb8AAACQnFbsPwEAAMBN/8k//////3ntlL8AAAAA4JWxvwAAAAA0Oew//////y+Xyj//////f4iVvwAAAIBSsrG/AAAA8G4b7D8AAABABDDLPwAAAAC2JJa/AAAAAHzNsb8AAACATv3rPwIAAADGycs/AAAAABDClr8AAACAX+exvwAAANDT3us/AgAAwHBkzD8AAAAAgmCXvwAAAAAAALK/AAAAAADA6z8AAAAAAADNPwAAAAAAAJi/AAAAgGAXsr8AAAAw1KDrP////z9vnM0//////32gmL8AAAAAhC2yvwAAAIBRges//v///7k5zj8AAAAA8EGZvwAAAIBtQrK/AAAAEHlh6z8BAADA29fOP/////9J5Jm/AAAAACBWsr8AAAAATEHrPwEAAADQds8/AQAAAICHmr8AAACAnmiyvwAAAHDLIOs/AAAAIEkL0D8AAAAAhiubvwAAAADsebK/AAAAgPj/6j8AAAAAj1vQPwEAAABQ0Ju/AAAAgAuKsr8AAABQ1N7qP////183rNA//////9F1nL8AAAAAAJmyvwAAAABgveo/AAAAAED90D8AAAAAABydvwAAAIDMprK/AAAAsJyb6j8AAACgpk7RP//////Nwp2/AAAAAHSzsr8AAACAi3nqPwEAAABpoNE//////y9qnr8AAACA+b6yvwAAAJAtV+o/AAAA4ITy0T8AAAAAGhKfvwAAAABgybK/AAAAAIQ06j8AAAAA+ETSP/////9/up+/AAAAgKrSsr8AAADwjxHqPwAAACDAl9I/AQAAAKsxoL8AAAAA3NqyvwAAAIBS7uk//////9rq0j//////R4agvwAAAID34bK/AAAA0MzK6T8AAABgRj7TPwAAAAAR26C/AAAAAADosr8AAAAAAKfpPwAAAAAAktM/AAAAAAAwob8AAACA+OyyvwAAADDtguk/////nwXm0z8BAAAAD4WhvwAAAADk8LK/AAAAgJVe6T//////VDrUPwAAAAA42qG/AAAAgMXzsr8AAAAQ+jnpPwAAAODrjtQ/AAAAAHUvor8AAAAAoPWyvwAAAAAcFek/AAAAAMjj1D8AAAAAwISivwAAAIB29rK/AAAAcPzv6D////8f5zjVPwEAAAAT2qK/AAAAAEz2sr8AAACAnMroPwAAAABHjtU/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E9qiv////x/nONU/AAAAcPzv6D8AAACAdvayvwAAAADAhKK/AAAAAMjj1D8AAAAAHBXpPwAAAACg9bK/AAAAAHUvor8AAADg647UPwAAABD6Oek/AAAAgMXzsr8AAAAAONqhv/////9UOtQ/AAAAgJVe6T8AAAAA5PCyvwEAAAAPhaG/////nwXm0z8AAAAw7YLpPwAAAID47LK/AAAAAAAwob8AAAAAAJLTPwAAAAAAp+k/AAAAAADosr8AAAAAEdugvwAAAGBGPtM/AAAA0MzK6T8AAACA9+Gyv/////9HhqC//////9rq0j8AAACAUu7pPwAAAADc2rK/AQAAAKsxoL8AAAAgwJfSPwAAAPCPEeo/AAAAgKrSsr//////f7qfvwAAAAD4RNI/AAAAAIQ06j8AAAAAYMmyvwAAAAAaEp+/AAAA4ITy0T8AAACQLVfqPwAAAID5vrK//////y9qnr8BAAAAaaDRPwAAAICLeeo/AAAAAHSzsr//////zcKdvwAAAKCmTtE/AAAAsJyb6j8AAACAzKayvwAAAAAAHJ2/AAAAAED90D8AAAAAYL3qPwAAAAAAmbK//////9F1nL////9fN6zQPwAAAFDU3uo/AAAAgAuKsr8BAAAAUNCbvwAAAACPW9A/AAAAgPj/6j8AAAAA7HmyvwAAAACGK5u/AAAAIEkL0D8AAABwyyDrPwAAAICeaLK/AQAAAICHmr8BAAAA0HbPPwAAAABMQes/AAAAACBWsr//////SeSZvwEAAMDb184/AAAAEHlh6z8AAACAbUKyvwAAAADwQZm//v///7k5zj8AAACAUYHrPwAAAACELbK//////32gmL////8/b5zNPwAAADDUoOs/AAAAgGAXsr8AAAAAAACYvwAAAAAAAM0/AAAAAADA6z8AAAAAAACyvwAAAACCYJe/AgAAwHBkzD8AAADQ097rPwAAAIBf57G/AAAAABDClr8CAAAAxsnLPwAAAIBO/es/AAAAAHzNsb8AAAAAtiSWvwAAAEAEMMs/AAAA8G4b7D8AAACAUrKxv/////9/iJW//////y+Xyj8AAAAANDnsPwAAAADglbG//////3ntlL8BAADATf/JPwAAAJCcVuw/AAAAgCF4sb//////r1OUvwEAAABiaMk/AAAAgKdz7D8AAAAAFFmxv/////8tu5O/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AEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AAAAAAAADAAAABAAAAAQAAAAGAAAAg/miAERObgD8KRUA0VcnAN009QBi28AAPJmVAEGQQwBjUf4Au96rALdhxQA6biQA0k1CAEkG4AAJ6i4AHJLRAOsd/gApsRwA6D6nAPU1ggBEuy4AnOmEALQmcABBfl8A1pE5AFODOQCc9DkAi1+EACj5vQD4HzsA3v+XAA+YBQARL+8AClqLAG0fbQDPfjYACcsnAEZPtwCeZj8ALepfALondQDl68cAPXvxAPc5BwCSUooA+2vqAB+xXwAIXY0AMANWAHv8RgDwq2sAILzPADb0mgDjqR0AXmGRAAgb5gCFmWUAoBRfAI1AaACA2P8AJ3NNAAYGMQDKVhUAyahzAHviYABrjMAAQZPpAwtNQPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNQAAAAAAAPA/AAAAAAAA+D8AQejpAwsIBtDPQ+v9TD4AQfvpAwt+QAO44j9SSUZGTElTVHNmYmtJTkZPc2R0YXBkdGFpZmlsaXNuZ0lOQU1pcm9taXZlcklDUkRJRU5HSVBSRElDT1BJQ01USVNGVHNuYW1zbXBscGhkcnBiYWdwbW9kcGdlbmluc3RpYmFnaW1vZGlnZW5zaGRyc20yNHj1AAAFAEGE6wMLAQsAQZzrAwsLCwAAAAwAAACOBAcAQbTrAwsBAgBBw+sDCwX//////wBB9OsDCwX49QAABQBBhOwDCwELAEGc7AMLDg0AAAAMAAAACP0GAAAEAEG07AMLAQEAQcPsAwsFCv////8AQfTsAwsC+PUAQZztAwsBDgBBw+0DCwX//////wBBsO8DCwNcBAcAQejvAwv3TUNvdWxkbid0IGNyZWF0ZSB0aGUgYXVkaW8gdGhyZWFkLgBUeXBlIG1pc21hdGNoIG9uIHNldHRpbmcgJyVzJwAnJXMnIGlzIG5vdCBhIG5vZGUuIE5hbWUgb2YgdGhlIHNldHRpbmcgd2FzICclcycAU2V0dGluZyB2YXJpYWJsZSBuYW1lIGV4Y2VlZGVkIG1heCBsZW5ndGggb2YgJWQgY2hhcnMAU2V0dGluZyB2YXJpYWJsZSBuYW1lIGV4Y2VlZGVkIG1heCB0b2tlbiBjb3VudCBvZiAlZABubwB5ZXMAcmVxdWVzdGVkIHNldCB2YWx1ZSBmb3IgJXMgb3V0IG9mIHJhbmdlACwgACwAJXM6IHBhbmljOiAlcwoAJXM6IGVycm9yOiAlcwoAJXM6IHdhcm5pbmc6ICVzCgAlczogJXMKAE51bGwgcG9pbnRlcgBSSUZGAHNmYmsAVGltZXIgdGhyZWFkIGZpbmlzaGVkAENvdWxkbid0IGxvYWQgc291bmRmb250IGZpbGUAQ291bGRuJ3QgcGFyc2UgcHJlc2V0cyBmcm9tIHNvdW5kZm9udCBmaWxlAFVuYWJsZSB0byBsb2FkIGFsbCBzYW1wbGUgZGF0YQBTZWxlY3RlZCBwcmVzZXQgJyVzJyBvbiBjaGFubmVsICVkAFVuYWJsZSB0byBvcGVuIFNvdW5kZm9udCBmaWxlAFVuYWJsZSB0byBsb2FkIHNhbXBsZSAnJXMnLCBkaXNhYmxpbmcARGVzZWxlY3RlZCBwcmVzZXQgJyVzJyBmcm9tIGNoYW5uZWwgJWQAVW5sb2FkaW5nIHNhbXBsZSAnJXMnAFVuYWJsZSB0byB1bmxvYWQgc2FtcGxlICclcycAQmFuayVkLFByZSVkACVzLyVkADx1bnRpdGxlZD4AQXR0ZW1wdGVkIHRvIHJlYWQgJWQgd29yZHMgb2Ygc2FtcGxlIGRhdGEsIGJ1dCBnb3QgJWQgaW5zdGVhZABGYWlsZWQgdG8gbG9hZCBzYW1wbGUgJyVzJwBFT0Ygd2hpbGUgYXR0ZW1waW5nIHRvIHJlYWQgJWQgYnl0ZXMARmlsZSByZWFkIGZhaWxlZABGaWxlIHNlZWsgZmFpbGVkIHdpdGggb2Zmc2V0ID0gJWxkIGFuZCB3aGVuY2UgPSAlZABTYW1wbGUgJyVzJzogUk9NIHNhbXBsZSBpZ25vcmVkAFNhbXBsZSAnJXMnOiBpbnZhbGlkIGJ1ZmZlciBzaXplAFNhbXBsZSAnJXMnOiBpbnZhbGlkIHN0YXJ0L2VuZCBmaWxlIHBvc2l0aW9ucwBTYW1wbGUgJyVzJzogcmV2ZXJzZWQgbG9vcCBwb2ludGVycyAnJWQnIC0gJyVkJywgdHJ5aW5nIHRvIGZpeABTYW1wbGUgJyVzJzogaW52YWxpZCBsb29wIHN0YXJ0ICclZCcsIHNldHRpbmcgdG8gc2FtcGxlIHN0YXJ0ICclZCcAU2FtcGxlICclcyc6IGludmFsaWQgbG9vcCBlbmQgJyVkJywgc2V0dGluZyB0byBzYW1wbGUgZW5kICclZCcAU2FtcGxlICclcyc6IGxvb3AgcmFuZ2UgJyVkIC0gJWQnIGFmdGVyIHNhbXBsZSBlbmQgJyVkJywgdXNpbmcgaXQgYW55d2F5AFVuYWJsZSB0byBvcGVuIGZpbGUgJyVzJwBTZWVrIHRvIGVuZCBvZiBmaWxlIGZhaWxlZABHZXQgZW5kIG9mIGZpbGUgcG9zaXRpb24gZmFpbGVkAFJld2luZCB0byBzdGFydCBvZiBmaWxlIGZhaWxlZABOb3QgYSBSSUZGIGZpbGUATm90IGEgU291bmRGb250IGZpbGUAU291bmRGb250IGZpbGUgc2l6ZSBtaXNtYXRjaABJbnZhbGlkIGNodW5rIGlkIGluIGxldmVsIDAgcGFyc2UASW52YWxpZCBJRCBmb3VuZCB3aGVuIGV4cGVjdGluZyBJTkZPIGNodW5rAFNvdW5kIGZvbnQgdmVyc2lvbiBpbmZvIGNodW5rIGhhcyBpbnZhbGlkIHNpemUAU291bmQgZm9udCB2ZXJzaW9uIGlzICVkLiVkIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQsIGNvbnZlcnQgdG8gdmVyc2lvbiAyLjB4AFNvdW5kIGZvbnQgdmVyc2lvbiBpcyAlZC4lZCBidXQgZmx1aWRzeW50aCB3YXMgY29tcGlsZWQgd2l0aG91dCBzdXBwb3J0IGZvciAodjMueCkAU291bmQgZm9udCB2ZXJzaW9uIGlzICVkLiVkIHdoaWNoIGlzIG5ld2VyIHRoYW4gd2hhdCB0aGlzIHZlcnNpb24gb2YgZmx1aWRzeW50aCB3YXMgZGVzaWduZWQgZm9yICh2Mi4weCkAUk9NIHZlcnNpb24gaW5mbyBjaHVuayBoYXMgaW52YWxpZCBzaXplAElORk8gc3ViIGNodW5rICUuNHMgaGFzIGludmFsaWQgY2h1bmsgc2l6ZSBvZiAlZCBieXRlcwBJbnZhbGlkIGNodW5rIGlkIGluIElORk8gY2h1bmsASU5GTyBjaHVuayBzaXplIG1pc21hdGNoAEludmFsaWQgSUQgZm91bmQgd2hlbiBleHBlY3RpbmcgU0FNUExFIGNodW5rAEV4cGVjdGVkIFNNUEwgY2h1bmsgZm91bmQgaW52YWxpZCBpZCBpbnN0ZWFkAFNEVEEgY2h1bmsgc2l6ZSBtaXNtYXRjaABGb3VuZCBTTTI0IGNodW5rAFNNMjQgZXhlZWRzIFNEVEEgY2h1bmssIGlnbm9yaW5nIFNNMjQAU00yNCBub3QgZXF1YWwgdG8gaGFsZiB0aGUgc2l6ZSBvZiBTTVBMIGNodW5rICgweCVYICE9IDB4JVgpLCBpZ25vcmluZyBTTTI0AEludmFsaWQgSUQgZm91bmQgd2hlbiBleHBlY3RpbmcgSFlEUkEgY2h1bmsARmFpbGVkIHRvIHNlZWsgdG8gSFlEUkEgcG9zaXRpb24ARXhwZWN0ZWQgUERUQSBzdWItY2h1bmsgJyUuNHMnIGZvdW5kIGludmFsaWQgaWQgaW5zdGVhZAAnJS40cycgY2h1bmsgc2l6ZSBpcyBub3QgYSBtdWx0aXBsZSBvZiAlZCBieXRlcwAnJS40cycgY2h1bmsgc2l6ZSBleGNlZWRzIHJlbWFpbmluZyBQRFRBIGNodW5rIHNpemUAUHJlc2V0IGhlYWRlciBjaHVuayBzaXplIGlzIGludmFsaWQAUHJlc2V0IGhlYWRlciBpbmRpY2VzIG5vdCBtb25vdG9uaWMAJWQgcHJlc2V0IHpvbmVzIG5vdCByZWZlcmVuY2VkLCBkaXNjYXJkaW5nAEZpbGUgY29udGFpbnMgbm8gcHJlc2V0cwBQcmVzZXQgYmFnIGNodW5rIHNpemUgaXMgaW52YWxpZABQcmVzZXQgYmFnIGNodW5rIHNpemUgbWlzbWF0Y2gAUHJlc2V0IGJhZyBnZW5lcmF0b3IgaW5kaWNlcyBub3QgbW9ub3RvbmljAFByZXNldCBiYWcgbW9kdWxhdG9yIGluZGljZXMgbm90IG1vbm90b25pYwBObyBwcmVzZXQgZ2VuZXJhdG9ycyBhbmQgdGVybWluYWwgaW5kZXggbm90IDAATm8gcHJlc2V0IG1vZHVsYXRvcnMgYW5kIHRlcm1pbmFsIGluZGV4IG5vdCAwAFByZXNldCBtb2R1bGF0b3IgY2h1bmsgc2l6ZSBtaXNtYXRjaABQcmVzZXQgZ2VuZXJhdG9yIGNodW5rIHNpemUgbWlzbWF0Y2gAUHJlc2V0ICclcyc6IEdsb2JhbCB6b25lIGlzIG5vdCBmaXJzdCB6b25lAFByZXNldCAnJXMnOiBEaXNjYXJkaW5nIGludmFsaWQgZ2xvYmFsIHpvbmUAUHJlc2V0ICclcyc6IFNvbWUgaW52YWxpZCBnZW5lcmF0b3JzIHdlcmUgZGlzY2FyZGVkAEluc3RydW1lbnQgaGVhZGVyIGhhcyBpbnZhbGlkIHNpemUASW5zdHJ1bWVudCBoZWFkZXIgaW5kaWNlcyBub3QgbW9ub3RvbmljACVkIGluc3RydW1lbnQgem9uZXMgbm90IHJlZmVyZW5jZWQsIGRpc2NhcmRpbmcARmlsZSBjb250YWlucyBubyBpbnN0cnVtZW50cwBJbnN0cnVtZW50IGJhZyBjaHVuayBzaXplIGlzIGludmFsaWQASW5zdHJ1bWVudCBiYWcgY2h1bmsgc2l6ZSBtaXNtYXRjaABJbnN0cnVtZW50IGdlbmVyYXRvciBpbmRpY2VzIG5vdCBtb25vdG9uaWMASW5zdHJ1bWVudCBtb2R1bGF0b3IgaW5kaWNlcyBub3QgbW9ub3RvbmljAEluc3RydW1lbnQgY2h1bmsgc2l6ZSBtaXNtYXRjaABObyBpbnN0cnVtZW50IGdlbmVyYXRvcnMgYW5kIHRlcm1pbmFsIGluZGV4IG5vdCAwAE5vIGluc3RydW1lbnQgbW9kdWxhdG9ycyBhbmQgdGVybWluYWwgaW5kZXggbm90IDAASW5zdHJ1bWVudCBtb2R1bGF0b3IgY2h1bmsgc2l6ZSBtaXNtYXRjaABJR0VOIGNodW5rIHNpemUgbWlzbWF0Y2gASW5zdHJ1bWVudCAnJXMnOiBHbG9iYWwgem9uZSBpcyBub3QgZmlyc3Qgem9uZQBJbnN0cnVtZW50ICclcyc6IERpc2NhcmRpbmcgaW52YWxpZCBnbG9iYWwgem9uZQBJbnN0cnVtZW50IGdlbmVyYXRvciBjaHVuayBzaXplIG1pc21hdGNoAEluc3RydW1lbnQgJyVzJzogU29tZSBpbnZhbGlkIGdlbmVyYXRvcnMgd2VyZSBkaXNjYXJkZWQAU2FtcGxlIGhlYWRlciBoYXMgaW52YWxpZCBzaXplAEZpbGUgY29udGFpbnMgbm8gc2FtcGxlcwBQcmVzZXQgJTAzZCAlMDNkOiBJbnZhbGlkIGluc3RydW1lbnQgcmVmZXJlbmNlAEluc3RydW1lbnQgJyVzJzogSW52YWxpZCBzYW1wbGUgcmVmZXJlbmNlAFNhbXBsZSBvZmZzZXRzIGV4Y2VlZCBzYW1wbGUgZGF0YSBjaHVuawBGYWlsZWQgdG8gc2VlayB0byBzYW1wbGUgcG9zaXRpb24ARmFpbGVkIHRvIHJlYWQgc2FtcGxlIGRhdGEAU2FtcGxlIG9mZnNldHMgZXhjZWVkIDI0LWJpdCBzYW1wbGUgZGF0YSBjaHVuawBGYWlsZWQgdG8gc2VlayBwb3NpdGlvbiBmb3IgMjQtYml0IHNhbXBsZSBkYXRhIGluIGRhdGEgZmlsZQBPdXQgb2YgbWVtb3J5IHJlYWRpbmcgMjQtYml0IHNhbXBsZSBkYXRhAEZhaWxlZCB0byByZWFkIDI0LWJpdCBzYW1wbGUgZGF0YQBJZ25vcmluZyAyNC1iaXQgc2FtcGxlIGRhdGEsIHNvdW5kIHF1YWxpdHkgbWlnaHQgc3VmZmVyAFVuYWJsZSB0byByZWFkIG1vZGlmaWNhdG9uIHRpbWUgb2Ygc291bmRmb250IGZpbGUuAEZhaWxlZCB0byBwaW4gdGhlIHNhbXBsZSBkYXRhIHRvIFJBTTsgc3dhcHBpbmcgaXMgcG9zc2libGUuAFRyeWluZyB0byBmcmVlIHNhbXBsZSBkYXRhIG5vdCBmb3VuZCBpbiBjYWNoZS4AY2hvcnVzOiBPdXQgb2YgbWVtb3J5AGNob3J1czogbnVtYmVyIGJsb2NrcyBtdXN0IGJlID49MCEgU2V0dGluZyB2YWx1ZSB0byAwLgBjaG9ydXM6IG51bWJlciBibG9ja3MgbGFyZ2VyIHRoYW4gbWF4LiBhbGxvd2VkISBTZXR0aW5nIHZhbHVlIHRvICVkLgBjaG9ydXM6IHNwZWVkIGlzIHRvbyBsb3cgKG1pbiAlZikhIFNldHRpbmcgdmFsdWUgdG8gbWluLgBjaG9ydXM6IHNwZWVkIG11c3QgYmUgYmVsb3cgJWYgSHohIFNldHRpbmcgdmFsdWUgdG8gbWF4LgBjaG9ydXM6IGRlcHRoIG11c3QgYmUgcG9zaXRpdmUhIFNldHRpbmcgdmFsdWUgdG8gMC4AY2hvcnVzOiBsZXZlbCBtdXN0IGJlIHBvc2l0aXZlISBTZXR0aW5nIHZhbHVlIHRvIDAuAGNob3J1czogbGV2ZWwgbXVzdCBiZSA8IDEwLiBBIHJlYXNvbmFibGUgbGV2ZWwgaXMgPDwgMSEgU2V0dGluZyBpdCB0byAwLjEuAGNob3J1czogVG9vIGhpZ2ggZGVwdGguIFNldHRpbmcgaXQgdG8gbWF4ICglZCkuAGNob3J1czogVW5rbm93biBtb2R1bGF0aW9uIHR5cGUuIFVzaW5nIHNpbmV3YXZlLgBSaW5nYnVmZmVyIGZ1bGwsIHRyeSBpbmNyZWFzaW5nIHBvbHlwaG9ueSEASW50ZXJuYWwgZXJyb3I6IFRyeWluZyB0byByZXBsYWNlIGFuIGV4aXN0aW5nIHJ2b2ljZSBpbiBmbHVpZF9ydm9pY2VfbWl4ZXJfYWRkX3ZvaWNlPyEARXhjZWVkZWQgZmluaXNoZWQgdm9pY2VzIGFycmF5LCB0cnkgaW5jcmVhc2luZyBwb2x5cGhvbnkAVHJ5aW5nIHRvIGV4Y2VlZCBwb2x5cGhvbnkgaW4gZmx1aWRfcnZvaWNlX21peGVyX2FkZF92b2ljZQBldmVudDogT3V0IG9mIG1lbW9yeQoAVW5rbm93biBtb2R1bGF0b3IgdHlwZSAnJWQnLCBkaXNhYmxpbmcgbW9kdWxhdG9yLgBVbmtub3duIG1vZHVsYXRvciBzb3VyY2UgJyVkJywgZGlzYWJsaW5nIG1vZHVsYXRvci4Ac3ludGgudmVyYm9zZQBzeW50aC5yZXZlcmIuYWN0aXZlAHN5bnRoLnJldmVyYi5yb29tLXNpemUAc3ludGgucmV2ZXJiLmRhbXAAc3ludGgucmV2ZXJiLndpZHRoAHN5bnRoLnJldmVyYi5sZXZlbABzeW50aC5jaG9ydXMuYWN0aXZlAHN5bnRoLmNob3J1cy5ucgBzeW50aC5jaG9ydXMubGV2ZWwAc3ludGguY2hvcnVzLnNwZWVkAHN5bnRoLmNob3J1cy5kZXB0aABzeW50aC5sYWRzcGEuYWN0aXZlAHN5bnRoLmxvY2stbWVtb3J5AG1pZGkucG9ydG5hbWUAc3ludGguZGVmYXVsdC1zb3VuZGZvbnQAL3Vzci9sb2NhbC9zaGFyZS9zb3VuZGZvbnRzL2RlZmF1bHQuc2YyAHN5bnRoLnBvbHlwaG9ueQBzeW50aC5nYWluAHN5bnRoLmF1ZGlvLWNoYW5uZWxzAHN5bnRoLmF1ZGlvLWdyb3VwcwBzeW50aC5lZmZlY3RzLWNoYW5uZWxzAHN5bnRoLmVmZmVjdHMtZ3JvdXBzAHN5bnRoLnNhbXBsZS1yYXRlAHN5bnRoLmRldmljZS1pZABzeW50aC5jcHUtY29yZXMAc3ludGgubWluLW5vdGUtbGVuZ3RoAHN5bnRoLnRocmVhZHNhZmUtYXBpAHN5bnRoLm92ZXJmbG93LnBlcmN1c3Npb24Ac3ludGgub3ZlcmZsb3cuc3VzdGFpbmVkAHN5bnRoLm92ZXJmbG93LnJlbGVhc2VkAHN5bnRoLm92ZXJmbG93LmFnZQBzeW50aC5vdmVyZmxvdy52b2x1bWUAc3ludGgub3ZlcmZsb3cuaW1wb3J0YW50AHN5bnRoLm92ZXJmbG93LmltcG9ydGFudC1jaGFubmVscwBzeW50aC5taWRpLWJhbmstc2VsZWN0AGdzAGdtAHhnAG1tYQBzeW50aC5keW5hbWljLXNhbXBsZS1sb2FkaW5nADIuMC4yAFJlcXVlc3RlZCBudW1iZXIgb2YgTUlESSBjaGFubmVscyBpcyBub3QgYSBtdWx0aXBsZSBvZiAxNi4gSSdsbCBpbmNyZWFzZSB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIHRvIHRoZSBuZXh0IG11bHRpcGxlLgBSZXF1ZXN0ZWQgbnVtYmVyIG9mIGF1ZGlvIGNoYW5uZWxzIGlzIHNtYWxsZXIgdGhhbiAxLiBDaGFuZ2luZyB0aGlzIHNldHRpbmcgdG8gMS4AUmVxdWVzdGVkIG51bWJlciBvZiBhdWRpbyBjaGFubmVscyBpcyB0b28gYmlnICglZCkuIExpbWl0aW5nIHRoaXMgc2V0dGluZyB0byAxMjguAFJlcXVlc3RlZCBudW1iZXIgb2YgYXVkaW8gZ3JvdXBzIGlzIHNtYWxsZXIgdGhhbiAxLiBDaGFuZ2luZyB0aGlzIHNldHRpbmcgdG8gMS4AUmVxdWVzdGVkIG51bWJlciBvZiBhdWRpbyBncm91cHMgaXMgdG9vIGJpZyAoJWQpLiBMaW1pdGluZyB0aGlzIHNldHRpbmcgdG8gMTI4LgBJbnZhbGlkIG51bWJlciBvZiBlZmZlY3RzIGNoYW5uZWxzICglZCkuU2V0dGluZyBlZmZlY3RzIGNoYW5uZWxzIHRvIDIuAEZhaWxlZCB0byBzZXQgb3ZlcmZsb3cgaW1wb3J0YW50IGNoYW5uZWxzAEZsdWlkU3ludGggaGFzIG5vdCBiZWVuIGNvbXBpbGVkIHdpdGggTEFEU1BBIHN1cHBvcnQARmFpbGVkIHRvIGNyZWF0ZSB0aGUgZGVmYXVsdCBTb3VuZEZvbnQgbG9hZGVyAG5vdGVvbgklZAklZAklZAklMDVkCSUuM2YJJS4zZgklLjNmCSVkCSVzAGNoYW5uZWwgaGFzIG5vIHByZXNldABjYwklZAklZAklZABVbm5hbWVkAFNZU0VYACVzAGJhc2ljIGNoYW5uZWwgJWQgb3ZlcmxhcHMgYW5vdGhlciBncm91cABjaGFubmVscHJlc3N1cmUJJWQJJWQAa2V5cHJlc3N1cmUJJWQJJWQJJWQAcGl0Y2hiCSVkCSVkAHBpdGNoc2VucwklZAklZABwcm9nCSVkCSVkCSVkAEluc3RydW1lbnQgbm90IGZvdW5kIG9uIGNoYW5uZWwgJWQgW2Jhbms9JWQgcHJvZz0lZF0sIHN1YnN0aXR1dGVkIFtiYW5rPSVkIHByb2c9JWRdAE5vIHByZXNldCBmb3VuZCBvbiBjaGFubmVsICVkIFtiYW5rPSVkIHByb2c9JWRdAFRoZXJlIGlzIG5vIHByZXNldCB3aXRoIGJhbmsgbnVtYmVyICVkIGFuZCBwcmVzZXQgbnVtYmVyICVkIGluIFNvdW5kRm9udCAlZABUaGVyZSBpcyBubyBwcmVzZXQgd2l0aCBiYW5rIG51bWJlciAlZCBhbmQgcHJlc2V0IG51bWJlciAlZCBpbiBTb3VuZEZvbnQgJXMAUG9seXBob255IGV4Y2VlZGVkLCB0cnlpbmcgdG8ga2lsbCBhIHZvaWNlAEtpbGxpbmcgdm9pY2UgJWQsIGluZGV4ICVkLCBjaGFuICVkLCBrZXkgJWQgAEZhaWxlZCB0byBhbGxvY2F0ZSBhIHN5bnRoZXNpcyBwcm9jZXNzLiAoY2hhbj0lZCxrZXk9JWQpAG5vdGVvbgklZAklZAklZAklMDVkCSUuM2YJJS4zZgklLjNmCSVkAEZhaWxlZCB0byBpbml0aWFsaXplIHZvaWNlAEZhaWxlZCB0byBsb2FkIFNvdW5kRm9udCAiJXMiAE5vIFNvdW5kRm9udCB3aXRoIGlkID0gJWQAVW5sb2FkZWQgU291bmRGb250AENoYW5uZWxzIGRvbid0IGV4aXN0ICh5ZXQpIQBGYWlsZWQgdG8gZXhlY3V0ZSBsZWdhdG8gbW9kZTogJWQAbm90ZW9mZgklZAklZAklZAklMDVkCSUuM2YJJWQARGVsZXRpbmcgdm9pY2UgJXUgd2hpY2ggaGFzIGxvY2tlZCBydm9pY2VzIQBJbnRlcm5hbCBlcnJvcjogQ2Fubm90IGFjY2VzcyBhbiBydm9pY2UgaW4gZmx1aWRfdm9pY2VfaW5pdCEASWdub3JpbmcgaW52YWxpZCBjb250cm9sbGVyLCB1c2luZyBub24tQ0Mgc291cmNlICVpLgBWb2ljZSAlaSBoYXMgbW9yZSBtb2R1bGF0b3JzIHRoYW4gc3VwcG9ydGVkLCBpZ25vcmluZy4AcGxheWVyLnRpbWluZy1zb3VyY2UAc3lzdGVtAHBsYXllci5yZXNldC1zeW50aABzYW1wbGUAJXM6ICVkOiBMb2FkaW5nIG1pZGlmaWxlICVzAC9tbnQvbi9FbXNjcmlwdGVuL2ZsdWlkc3ludGgtZW1zY3JpcHRlbi9zcmMvbWlkaS9mbHVpZF9taWRpLmMAcmIAQ291bGRuJ3Qgb3BlbiB0aGUgTUlESSBmaWxlAEZpbGUgbG9hZDogQ291bGQgbm90IHNlZWsgd2l0aGluIGZpbGUARmlsZSBsb2FkOiBBbGxvY2F0aW5nICVkIGJ5dGVzAE9ubHkgcmVhZCAlZCBieXRlczsgZXhwZWN0ZWQgJWQAJXM6ICVkOiBMb2FkaW5nIG1pZGlmaWxlIGZyb20gbWVtb3J5ICglcCkATVRoZABEb2Vzbid0IGxvb2sgbGlrZSBhIE1JREkgZmlsZTogaW52YWxpZCBNVGhkIGhlYWRlcgBGaWxlIHVzZXMgU01QVEUgdGltaW5nIC0tIE5vdCBpbXBsZW1lbnRlZCB5ZXQARGl2aXNpb249JWQAdGVtcG89JWQsIHRpY2sgdGltZT0lZiBtc2VjLCBjdXIgdGltZT0lZCBtc2VjLCBjdXIgdGljaz0lZABBbiBub24tYXNjaWkgdHJhY2sgaGVhZGVyIGZvdW5kLCBjb3JydXB0IGZpbGUATVRyawBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlAFVuZGVmaW5lZCBzdGF0dXMgYW5kIGludmFsaWQgcnVubmluZyBzdGF0dXMAJXM6ICVkOiBhbGxvYyBtZXRhZGF0YSwgbGVuID0gJWQASW52YWxpZCBsZW5ndGggZm9yIEVuZE9mVHJhY2sgZXZlbnQASW52YWxpZCBsZW5ndGggZm9yIFNldFRlbXBvIG1ldGEgZXZlbnQASW52YWxpZCBsZW5ndGggZm9yIFNNUFRFIE9mZnNldCBtZXRhIGV2ZW50AEludmFsaWQgbGVuZ3RoIGZvciBUaW1lU2lnbmF0dXJlIG1ldGEgZXZlbnQAc2lnbmF0dXJlPSVkLyVkLCBtZXRyb25vbWU9JWQsIDMybmQtbm90ZXM9JWQASW52YWxpZCBsZW5ndGggZm9yIEtleVNpZ25hdHVyZSBtZXRhIGV2ZW50ACVzOiAlZDogZnJlZSBtZXRhZGF0YQBVbnJlY29nbml6ZWQgTUlESSBldmVudABGYWlsZWQgdG8gc2VlayBwb3NpdGlvbiBpbiBmaWxlACVzOiAlZDogRHVyYXRpb249JS4zZiBzZWMASW52YWxpZCB2YXJpYWJsZSBsZW5ndGggbnVtYmVyAHN5bnRoLm1pZGktY2hhbm5lbHMAZXZlbnRfcHJlX25vdGVvbiAlaSAlaSAlaQoAZXZlbnRfcHJlX25vdGVvZmYgJWkgJWkgJWkKAGV2ZW50X3ByZV9jYyAlaSAlaSAlaQoAZXZlbnRfcHJlX3Byb2cgJWkgJWkKAGV2ZW50X3ByZV9waXRjaCAlaSAlaQoAZXZlbnRfcHJlX2NwcmVzcyAlaSAlaQoAZXZlbnRfcHJlX2twcmVzcyAlaSAlaSAlaQoAZXZlbnRfcG9zdF9ub3Rlb24gJWkgJWkgJWkKAGV2ZW50X3Bvc3Rfbm90ZW9mZiAlaSAlaSAlaQoAZXZlbnRfcG9zdF9jYyAlaSAlaSAlaQoAZXZlbnRfcG9zdF9wcm9nICVpICVpCgBldmVudF9wb3N0X3BpdGNoICVpICVpCgBldmVudF9wb3N0X2NwcmVzcyAlaSAlaQoAZXZlbnRfcG9zdF9rcHJlc3MgJWkgJWkgJWkKAGZsdWlkc3ludGgAc2VxdWVuY2VyOiBPdXQgb2YgbWVtb3J5CgBzZXF1ZW5jZXI6IG5vIG1vcmUgZnJlZSBldmVudHMKAHNlcXVlbmNlcjogc2NhbGUgPD0gMCA6ICVmCgBhdWRpby5zYW1wbGUtZm9ybWF0ADE2Yml0cwBmbG9hdABhdWRpby5wZXJpb2RzAGF1ZGlvLnJlYWx0aW1lLXByaW8AYXVkaW8uZHJpdmVyAGZpbGUAVXNpbmcgJyVzJyBhdWRpbyBkcml2ZXIATlVMTABDb3VsZG4ndCBmaW5kIHRoZSByZXF1ZXN0ZWQgYXVkaW8gZHJpdmVyICclcycuAE5vIGF1ZGlvIGRyaXZlcnMgYXZhaWxhYmxlLgBDYWxsYmFjayBtb2RlIHVuc3VwcG9ydGVkIG9uICclcycgYXVkaW8gZHJpdmVyAG1pZGkuYXV0b2Nvbm5lY3QAbWlkaS5yZWFsdGltZS1wcmlvAG1pZGkuZHJpdmVyAENvdWxkbid0IGZpbmQgdGhlIHJlcXVlc3RlZCBtaWRpIGRyaXZlci4AVmFsaWQgZHJpdmVycyBhcmU6ICVzAE5vIE1JREkgZHJpdmVycyBhdmFpbGFibGUuAGF1ZGlvLmZpbGUubmFtZQBmbHVpZHN5bnRoLnJhdwBhdWRpby5maWxlLnR5cGUAcmF3AGF1ZGlvLmZpbGUuZm9ybWF0AHMxNgBhdWRpby5maWxlLmVuZGlhbgBjcHUAT3V0IG9mIG1lbW9yeQBhdWRpby5wZXJpb2Qtc2l6ZQBObyBmaWxlIG5hbWUgc3BlY2lmaWVkAHdiAEZhaWxlZCB0byBvcGVuIHRoZSBmaWxlICclcycAQXVkaW8gb3V0cHV0IGZpbGUgd3JpdGUgZXJyb3I6ICVzAC0rICAgMFgweAAobnVsbCkALTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYAbmFuAE5BTgAuAHJ3YQDNnwEEbmFtZQHEnwHSBgAFYWJvcnQBDWVubGFyZ2VNZW1vcnkCDmdldFRvdGFsTWVtb3J5AxdhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeQQJanNDYWxsX2lpBQpqc0NhbGxfaWlpBgtqc0NhbGxfaWlpaQcNanNDYWxsX2lpaWlpaQgOanNDYWxsX2lpaWlpaWkJCWpzQ2FsbF92aQoKanNDYWxsX3ZpaQsLanNDYWxsX3ZpaWQMC2pzQ2FsbF92aWlpDQxqc0NhbGxfdmlpaWkOB19fX2xvY2sPC19fX3NldEVyck5vEA1fX19zeXNjYWxsMTQwEQ1fX19zeXNjYWxsMTQ1Eg1fX19zeXNjYWxsMTQ2Ew1fX19zeXNjYWxsMTUwFA1fX19zeXNjYWxsMTUxFQ1fX19zeXNjYWxsMTk1Fg1fX19zeXNjYWxsMjIxFwtfX19zeXNjYWxsNRgMX19fc3lzY2FsbDU0GQtfX19zeXNjYWxsNhoJX19fdW5sb2NrGwZfYWJvcnQcFl9lbXNjcmlwdGVuX21lbWNweV9iaWcdDV9nZXR0aW1lb2ZkYXkeDl9sbHZtX2V4cDJfZjY0HwdfdXNsZWVwIBBfX2dyb3dXYXNtTWVtb3J5IQpzdGFja0FsbG9jIglzdGFja1NhdmUjDHN0YWNrUmVzdG9yZSQTZXN0YWJsaXNoU3RhY2tTcGFjZSUIc2V0VGhyZXcmC3NldFRlbXBSZXQwJwtnZXRUZW1wUmV0MCgcX25ld19mbHVpZF9maWxlX2F1ZGlvX2RyaXZlcikZX2ZsdWlkX2ZpbGVfYXVkaW9fcnVuX3MxNiofX2RlbGV0ZV9mbHVpZF9maWxlX2F1ZGlvX2RyaXZlcisRX2ZsdWlkX2N0Mmh6X3JlYWwsDF9mbHVpZF9jdDJoei0NX2ZsdWlkX2NiMmFtcC4TX2ZsdWlkX3RjMnNlY19kZWxheS8UX2ZsdWlkX3RjMnNlY19hdHRhY2swDV9mbHVpZF90YzJzZWMxDV9mbHVpZF9hY3QyaHoyCl9mbHVpZF9wYW4zDl9mbHVpZF9iYWxhbmNlNA5fZmx1aWRfY29uY2F2ZTUNX2ZsdWlkX2NvbnZleDYSX2ZsdWlkX2RpcmVjdF9oYXNoNxdfZGVsZXRlX2ZsdWlkX2hhc2h0YWJsZTgdX2ZsdWlkX2hhc2h0YWJsZV9tYXliZV9yZXNpemU5Fl9mbHVpZF9oYXNodGFibGVfdW5yZWY6GV9uZXdfZmx1aWRfaGFzaHRhYmxlX2Z1bGw7F19mbHVpZF9oYXNodGFibGVfbG9va3VwPBdfZmx1aWRfaGFzaHRhYmxlX2luc2VydD0gX2ZsdWlkX2hhc2h0YWJsZV9pbnNlcnRfaW50ZXJuYWw+GF9mbHVpZF9oYXNodGFibGVfZm9yZWFjaD8QX2ZsdWlkX3N0cl9lcXVhbEAPX2ZsdWlkX3N0cl9oYXNoQRJfZGVsZXRlX2ZsdWlkX2xpc3RCE19kZWxldGUxX2ZsdWlkX2xpc3RDEl9mbHVpZF9saXN0X2FwcGVuZEQTX2ZsdWlkX2xpc3RfcHJlcGVuZEUPX2ZsdWlkX2xpc3RfbnRoRhJfZmx1aWRfbGlzdF9yZW1vdmVHF19mbHVpZF9saXN0X3JlbW92ZV9saW5rSBBfZmx1aWRfbGlzdF9zb3J0SRBfZmx1aWRfbGlzdF9zaXplShVfZmx1aWRfbGlzdF9pbnNlcnRfYXRLHF9mbHVpZF9saXN0X3N0cl9jb21wYXJlX2Z1bmNMFV9uZXdfZmx1aWRfcmluZ2J1ZmZlck0YX2RlbGV0ZV9mbHVpZF9yaW5nYnVmZmVyThNfbmV3X2ZsdWlkX3NldHRpbmdzTyJfZmx1aWRfc2V0dGluZ3NfdmFsdWVfZGVzdHJveV9mdW5jUBZfZGVsZXRlX2ZsdWlkX3NldHRpbmdzURxfZmx1aWRfc2V0dGluZ3NfcmVnaXN0ZXJfc3RyUhhfZmx1aWRfc2V0dGluZ3NfdG9rZW5pemVTE19mbHVpZF9zZXR0aW5nc19zZXRUHF9mbHVpZF9zZXR0aW5nc19yZWdpc3Rlcl9udW1VHF9mbHVpZF9zZXR0aW5nc19yZWdpc3Rlcl9pbnRWHF9mbHVpZF9zZXR0aW5nc19jYWxsYmFja19zdHJXHF9mbHVpZF9zZXR0aW5nc19jYWxsYmFja19udW1YHF9mbHVpZF9zZXR0aW5nc19jYWxsYmFja19pbnRZGF9mbHVpZF9zZXR0aW5nc19nZXRfdHlwZVoZX2ZsdWlkX3NldHRpbmdzX2dldF9oaW50c1sbX2ZsdWlkX3NldHRpbmdzX2lzX3JlYWx0aW1lXBZfZmx1aWRfc2V0dGluZ3Nfc2V0c3RyXRdfZmx1aWRfc2V0dGluZ3NfY29weXN0cl4WX2ZsdWlkX3NldHRpbmdzX2R1cHN0cl8ZX2ZsdWlkX3NldHRpbmdzX3N0cl9lcXVhbGAeX2ZsdWlkX3NldHRpbmdzX2dldHN0cl9kZWZhdWx0YRpfZmx1aWRfc2V0dGluZ3NfYWRkX29wdGlvbmIWX2ZsdWlkX3NldHRpbmdzX3NldG51bWMWX2ZsdWlkX3NldHRpbmdzX2dldG51bWQcX2ZsdWlkX3NldHRpbmdzX2dldG51bV9mbG9hdGUcX2ZsdWlkX3NldHRpbmdzX2dldG51bV9yYW5nZWYeX2ZsdWlkX3NldHRpbmdzX2dldG51bV9kZWZhdWx0ZxZfZmx1aWRfc2V0dGluZ3Nfc2V0aW50aBZfZmx1aWRfc2V0dGluZ3NfZ2V0aW50aRxfZmx1aWRfc2V0dGluZ3NfZ2V0aW50X3Jhbmdlah5fZmx1aWRfc2V0dGluZ3NfZ2V0aW50X2RlZmF1bHRrHl9mbHVpZF9zZXR0aW5nc19mb3JlYWNoX29wdGlvbmwcX2ZsdWlkX3NldHRpbmdzX29wdGlvbl9jb3VudG0dX2ZsdWlkX3NldHRpbmdzX29wdGlvbl9jb25jYXRuF19mbHVpZF9zZXR0aW5nc19mb3JlYWNobxxfZmx1aWRfc2V0dGluZ3NfZm9yZWFjaF9pdGVycBlfZmx1aWRfc2V0dGluZ3Nfc3BsaXRfY3N2cRdfZmx1aWRfc2V0X2xvZ19mdW5jdGlvbnIbX2ZsdWlkX2RlZmF1bHRfbG9nX2Z1bmN0aW9ucwpfZmx1aWRfbG9ndA1fZmx1aWRfc3RydG9rdQxfZmx1aWRfZXJyb3J2El9mbHVpZF9pc19taWRpZmlsZXcTX2ZsdWlkX2lzX3NvdW5kZm9udHgNX2ZsdWlkX21zbGVlcHkOX2ZsdWlkX2N1cnRpbWV6DF9mbHVpZF91dGltZXsQX25ld19mbHVpZF90aW1lcnwTX2RlbGV0ZV9mbHVpZF90aW1lcn0RX2ZsdWlkX3RpbWVyX2pvaW5+Fl9uZXdfZmx1aWRfZGVmc2Zsb2FkZXJ/F19mbHVpZF9kZWZzZmxvYWRlcl9sb2FkgAEeX2ZsdWlkX2RlZnNmb250X3Nmb250X2dldF9uYW1lgQEgX2ZsdWlkX2RlZnNmb250X3Nmb250X2dldF9wcmVzZXSCASVfZmx1aWRfZGVmc2ZvbnRfc2ZvbnRfaXRlcmF0aW9uX3N0YXJ0gwEkX2ZsdWlkX2RlZnNmb250X3Nmb250X2l0ZXJhdGlvbl9uZXh0hAEcX2ZsdWlkX2RlZnNmb250X3Nmb250X2RlbGV0ZYUBFl9kZWxldGVfZmx1aWRfZGVmc2ZvbnSGARRfZmx1aWRfZGVmc2ZvbnRfbG9hZIcBHl9keW5hbWljX3NhbXBsZXNfc2FtcGxlX25vdGlmeYgBI19mbHVpZF9kZWZzZm9udF9sb2FkX2FsbF9zYW1wbGVkYXRhiQEdX2ZsdWlkX2RlZnByZXNldF9pbXBvcnRfc2ZvbnSKASBfZmx1aWRfZGVmcHJlc2V0X3ByZXNldF9nZXRfbmFtZYsBI19mbHVpZF9kZWZwcmVzZXRfcHJlc2V0X2dldF9iYW5rbnVtjAEfX2ZsdWlkX2RlZnByZXNldF9wcmVzZXRfZ2V0X251bY0BHl9mbHVpZF9kZWZwcmVzZXRfcHJlc2V0X25vdGVvbo4BHl9mbHVpZF9kZWZwcmVzZXRfcHJlc2V0X2RlbGV0ZY8BHl9keW5hbWljX3NhbXBsZXNfcHJlc2V0X25vdGlmeZABF19kZWxldGVfZmx1aWRfZGVmcHJlc2V0kQEXX2ZsdWlkX2RlZnByZXNldF9ub3Rlb26SARZfbmV3X2ZsdWlkX3ByZXNldF96b25lkwEfX2ZsdWlkX3ByZXNldF96b25lX2ltcG9ydF9zZm9udJQBGF9mbHVpZF9pbnN0X2ltcG9ydF9zZm9udJUBFF9uZXdfZmx1aWRfaW5zdF96b25llgEdX2ZsdWlkX2luc3Rfem9uZV9pbXBvcnRfc2ZvbnSXARJfZGVsZXRlX2ZsdWlkX2luc3SYARhfZmx1aWRfem9uZV9pbnNpZGVfcmFuZ2WZAQ5fZGVmYXVsdF9mb3BlbpoBD19kZWZhdWx0X2ZjbG9zZZsBDl9kZWZhdWx0X2Z0ZWxsnAELX3NhZmVfZnJlYWSdAQtfc2FmZV9mc2Vla54BE19uZXdfZmx1aWRfc2Zsb2FkZXKfAR1fZmx1aWRfc2Zsb2FkZXJfc2V0X2NhbGxiYWNrc6ABFl9kZWxldGVfZmx1aWRfc2Zsb2FkZXKhARhfZmx1aWRfc2Zsb2FkZXJfc2V0X2RhdGGiARhfZmx1aWRfc2Zsb2FkZXJfZ2V0X2RhdGGjARBfbmV3X2ZsdWlkX3Nmb250pAETX2ZsdWlkX3Nmb250X2dldF9pZKUBFV9mbHVpZF9zZm9udF9nZXRfbmFtZaYBF19mbHVpZF9zZm9udF9nZXRfcHJlc2V0pwEcX2ZsdWlkX3Nmb250X2l0ZXJhdGlvbl9zdGFydKgBG19mbHVpZF9zZm9udF9pdGVyYXRpb25fbmV4dKkBE19kZWxldGVfZmx1aWRfc2ZvbnSqARFfbmV3X2ZsdWlkX3ByZXNldKsBFl9mbHVpZF9wcmVzZXRfZ2V0X25hbWWsARlfZmx1aWRfcHJlc2V0X2dldF9iYW5rbnVtrQERX25ld19mbHVpZF9zYW1wbGWuARRfZGVsZXRlX2ZsdWlkX3NhbXBsZa8BFF9mbHVpZF9zYW1wbGVfc2l6ZW9msAEWX2ZsdWlkX3NhbXBsZV9zZXRfbmFtZbEBHF9mbHVpZF9zYW1wbGVfc2V0X3NvdW5kX2RhdGGyARZfZmx1aWRfc2FtcGxlX3NldF9sb29wswEXX2ZsdWlkX3NhbXBsZV9zZXRfcGl0Y2i0ARZfZmx1aWRfc2FtcGxlX3ZhbGlkYXRltQEbX2ZsdWlkX3NhbXBsZV9zYW5pdGl6ZV9sb29wtgESX2ZsdWlkX3NmZmlsZV9vcGVutwEIX2NodW5raWS4ARNfZmx1aWRfc2ZmaWxlX2Nsb3NluQEbX2ZsdWlkX3NmZmlsZV9wYXJzZV9wcmVzZXRzugEUX3ByZXNldF9jb21wYXJlX2Z1bmO7AR5fZmx1aWRfc2ZmaWxlX3JlYWRfc2FtcGxlX2RhdGG8ARdfZmx1aWRfc2FtcGxlY2FjaGVfbG9hZL0BGV9mbHVpZF9zYW1wbGVjYWNoZV91bmxvYWS+ARhfZmx1aWRfYWRzcl9lbnZfc2V0X2RhdGG/ARFfbmV3X2ZsdWlkX2Nob3J1c8ABFF9kZWxldGVfZmx1aWRfY2hvcnVzwQETX2ZsdWlkX2Nob3J1c19yZXNldMIBEV9mbHVpZF9jaG9ydXNfc2V0wwEYX2ZsdWlkX2Nob3J1c19wcm9jZXNzbWl4xAEcX2ZsdWlkX2Nob3J1c19wcm9jZXNzcmVwbGFjZcUBF19mbHVpZF9paXJfZmlsdGVyX2FwcGx5xgEWX2ZsdWlkX2lpcl9maWx0ZXJfaW5pdMcBF19mbHVpZF9paXJfZmlsdGVyX3Jlc2V0yAEaX2ZsdWlkX2lpcl9maWx0ZXJfc2V0X2ZyZXPJARdfZmx1aWRfaWlyX2ZpbHRlcl9zZXRfccoBFl9mbHVpZF9paXJfZmlsdGVyX2NhbGPLARNfZmx1aWRfbGZvX3NldF9pbmNyzAEUX2ZsdWlkX2xmb19zZXRfZGVsYXnNARNfZmx1aWRfcnZvaWNlX3dyaXRlzgEdX2ZsdWlkX3J2b2ljZV9idWZmZXJzX3NldF9hbXDPASFfZmx1aWRfcnZvaWNlX2J1ZmZlcnNfc2V0X21hcHBpbmfQARNfZmx1aWRfcnZvaWNlX3Jlc2V00QEVX2ZsdWlkX3J2b2ljZV9ub3Rlb2Zm0gEkX2ZsdWlkX3J2b2ljZV9tdWx0aV9yZXRyaWdnZXJfYXR0YWNr0wEcX2ZsdWlkX3J2b2ljZV9zZXRfcG9ydGFtZW50b9QBHV9mbHVpZF9ydm9pY2Vfc2V0X291dHB1dF9yYXRl1QEfX2ZsdWlkX3J2b2ljZV9zZXRfaW50ZXJwX21ldGhvZNYBH19mbHVpZF9ydm9pY2Vfc2V0X3Jvb3RfcGl0Y2hfaHrXARdfZmx1aWRfcnZvaWNlX3NldF9waXRjaNgBHV9mbHVpZF9ydm9pY2Vfc2V0X2F0dGVudWF0aW9u2QEkX2ZsdWlkX3J2b2ljZV9zZXRfbWluX2F0dGVudWF0aW9uX2NC2gEhX2ZsdWlkX3J2b2ljZV9zZXRfdmlibGZvX3RvX3BpdGNo2wEhX2ZsdWlkX3J2b2ljZV9zZXRfbW9kbGZvX3RvX3BpdGNo3AEfX2ZsdWlkX3J2b2ljZV9zZXRfbW9kbGZvX3RvX3ZvbN0BHl9mbHVpZF9ydm9pY2Vfc2V0X21vZGxmb190b19mY94BHl9mbHVpZF9ydm9pY2Vfc2V0X21vZGVudl90b19mY98BIV9mbHVpZF9ydm9pY2Vfc2V0X21vZGVudl90b19waXRjaOABHF9mbHVpZF9ydm9pY2Vfc2V0X3N5bnRoX2dhaW7hARdfZmx1aWRfcnZvaWNlX3NldF9zdGFydOIBFV9mbHVpZF9ydm9pY2Vfc2V0X2VuZOMBG19mbHVpZF9ydm9pY2Vfc2V0X2xvb3BzdGFydOQBGV9mbHVpZF9ydm9pY2Vfc2V0X2xvb3BlbmTlARxfZmx1aWRfcnZvaWNlX3NldF9zYW1wbGVtb2Rl5gEYX2ZsdWlkX3J2b2ljZV9zZXRfc2FtcGxl5wEWX2ZsdWlkX3J2b2ljZV92b2ljZW9mZugBIl9mbHVpZF9ydm9pY2VfZHNwX2ludGVycG9sYXRlX25vbmXpASRfZmx1aWRfcnZvaWNlX2RzcF9pbnRlcnBvbGF0ZV9saW5lYXLqASdfZmx1aWRfcnZvaWNlX2RzcF9pbnRlcnBvbGF0ZV80dGhfb3JkZXLrASdfZmx1aWRfcnZvaWNlX2RzcF9pbnRlcnBvbGF0ZV83dGhfb3JkZXLsAShfZmx1aWRfcnZvaWNlX2V2ZW50aGFuZGxlcl9wdXNoX2ludF9yZWFs7QEfX2ZsdWlkX3J2b2ljZV9ldmVudGhhbmRsZXJfcHVzaO4BI19mbHVpZF9ydm9pY2VfZXZlbnRoYW5kbGVyX3B1c2hfcHRy7wEyX2ZsdWlkX3J2b2ljZV9ldmVudGhhbmRsZXJfZmluaXNoZWRfdm9pY2VfY2FsbGJhY2vwAR5fbmV3X2ZsdWlkX3J2b2ljZV9ldmVudGhhbmRsZXLxASFfZGVsZXRlX2ZsdWlkX3J2b2ljZV9ldmVudGhhbmRsZXLyASlfZmx1aWRfcnZvaWNlX2V2ZW50aGFuZGxlcl9kaXNwYXRjaF9jb3VudPMBJ19mbHVpZF9ydm9pY2VfZXZlbnRoYW5kbGVyX2Rpc3BhdGNoX2FsbPQBHV9mbHVpZF9ydm9pY2VfbWl4ZXJfYWRkX3ZvaWNl9QEhX2ZsdWlkX3J2b2ljZV9taXhlcl9zZXRfcG9seXBob2559gEiX2ZsdWlkX3J2b2ljZV9taXhlcl9zZXRfc2FtcGxlcmF0ZfcBF19uZXdfZmx1aWRfcnZvaWNlX21peGVy+AEaX2RlbGV0ZV9mbHVpZF9ydm9pY2VfbWl4ZXL5ASZfZmx1aWRfcnZvaWNlX21peGVyX3NldF9yZXZlcmJfZW5hYmxlZPoBJl9mbHVpZF9ydm9pY2VfbWl4ZXJfc2V0X2Nob3J1c19lbmFibGVk+wEeX2ZsdWlkX3J2b2ljZV9taXhlcl9zZXRfbWl4X2Z4/AElX2ZsdWlkX3J2b2ljZV9taXhlcl9zZXRfY2hvcnVzX3BhcmFtc/0BJV9mbHVpZF9ydm9pY2VfbWl4ZXJfc2V0X3JldmVyYl9wYXJhbXP+ASBfZmx1aWRfcnZvaWNlX21peGVyX3Jlc2V0X3JldmVyYv8BIF9mbHVpZF9ydm9pY2VfbWl4ZXJfcmVzZXRfY2hvcnVzgAIcX2ZsdWlkX3J2b2ljZV9taXhlcl9nZXRfYnVmc4ECH19mbHVpZF9ydm9pY2VfbWl4ZXJfZ2V0X2Z4X2J1ZnOCAiBfZmx1aWRfcnZvaWNlX21peGVyX2dldF9idWZjb3VudIMCGl9mbHVpZF9ydm9pY2VfbWl4ZXJfcmVuZGVyhAIfX2ZsdWlkX3JlbmRlcl9sb29wX3NpbmdsZXRocmVhZIUCE19uZXdfZmx1aWRfcmV2bW9kZWyGAhtfZmx1aWRfc2V0X3Jldm1vZGVsX2J1ZmZlcnOHAhRfZmx1aWRfcmV2bW9kZWxfaW5pdIgCFl9kZWxldGVfZmx1aWRfcmV2bW9kZWyJAhVfZmx1aWRfcmV2bW9kZWxfcmVzZXSKAh5fZmx1aWRfcmV2bW9kZWxfcHJvY2Vzc3JlcGxhY2WLAhpfZmx1aWRfcmV2bW9kZWxfcHJvY2Vzc21peIwCE19mbHVpZF9yZXZtb2RlbF9zZXSNAiFfZmx1aWRfcmV2bW9kZWxfc2FtcGxlcmF0ZV9jaGFuZ2WOAhJfbmV3X2ZsdWlkX2NoYW5uZWyPAhNfZmx1aWRfY2hhbm5lbF9pbml0kAIYX2ZsdWlkX2NoYW5uZWxfaW5pdF9jdHJskQIUX2ZsdWlkX2NoYW5uZWxfcmVzZXSSAhlfZmx1aWRfY2hhbm5lbF9zZXRfcHJlc2V0kwIiX2ZsdWlkX2NoYW5uZWxfc2V0X3Nmb250X2JhbmtfcHJvZ5QCG19mbHVpZF9jaGFubmVsX3NldF9iYW5rX2xzYpUCG19mbHVpZF9jaGFubmVsX3NldF9iYW5rX21zYpYCIl9mbHVpZF9jaGFubmVsX2dldF9zZm9udF9iYW5rX3Byb2eXAhtfZmx1aWRfY2hhbm5lbF9hZGRfbW9ub2xpc3SYAh5fZmx1aWRfY2hhbm5lbF9zZWFyY2hfbW9ub2xpc3SZAh5fZmx1aWRfY2hhbm5lbF9yZW1vdmVfbW9ub2xpc3SaAh1fZmx1aWRfY2hhbm5lbF9jbGVhcl9tb25vbGlzdJsCI19mbHVpZF9jaGFubmVsX3NldF9vbmVub3RlX21vbm9saXN0nAIpX2ZsdWlkX2NoYW5uZWxfaW52YWxpZF9wcmV2X25vdGVfc3RhY2NhdG+dAhhfZmx1aWRfY2hhbm5lbF9jY19sZWdhdG+eAiRfZmx1aWRfY2hhbm5lbF9jY19icmVhdGhfbm90ZV9vbl9vZmafAhJfZmx1aWRfZXZlbnRfY2xlYXKgAhBfbmV3X2ZsdWlkX2V2ZW50oQIVX2ZsdWlkX2V2ZW50X3NldF90aW1logIXX2ZsdWlkX2V2ZW50X3NldF9zb3VyY2WjAhVfZmx1aWRfZXZlbnRfc2V0X2Rlc3SkAhJfZmx1aWRfZXZlbnRfdGltZXKlAhNfZmx1aWRfZXZlbnRfbm90ZW9upgIUX2ZsdWlkX2V2ZW50X25vdGVvZmanAhFfZmx1aWRfZXZlbnRfbm90ZagCG19mbHVpZF9ldmVudF9hbGxfc291bmRzX29mZqkCGl9mbHVpZF9ldmVudF9hbGxfbm90ZXNfb2ZmqgIYX2ZsdWlkX2V2ZW50X2Jhbmtfc2VsZWN0qwIbX2ZsdWlkX2V2ZW50X3Byb2dyYW1fY2hhbmdlrAIbX2ZsdWlkX2V2ZW50X3Byb2dyYW1fc2VsZWN0rQIfX2ZsdWlkX2V2ZW50X2FueV9jb250cm9sX2NoYW5nZa4CF19mbHVpZF9ldmVudF9waXRjaF9iZW5krwIcX2ZsdWlkX2V2ZW50X3BpdGNoX3doZWVsc2Vuc7ACF19mbHVpZF9ldmVudF9tb2R1bGF0aW9usQIUX2ZsdWlkX2V2ZW50X3N1c3RhaW6yAhtfZmx1aWRfZXZlbnRfY29udHJvbF9jaGFuZ2WzAhBfZmx1aWRfZXZlbnRfcGFutAITX2ZsdWlkX2V2ZW50X3ZvbHVtZbUCGF9mbHVpZF9ldmVudF9yZXZlcmJfc2VuZLYCGF9mbHVpZF9ldmVudF9jaG9ydXNfc2VuZLcCGl9mbHVpZF9ldmVudF91bnJlZ2lzdGVyaW5nuAIdX2ZsdWlkX2V2ZW50X2NoYW5uZWxfcHJlc3N1cmW5AhlfZmx1aWRfZXZlbnRfa2V5X3ByZXNzdXJlugIZX2ZsdWlkX2V2ZW50X3N5c3RlbV9yZXNldLsCF19mbHVpZF9ldmVudF9nZXRfc291cmNlvAIVX2ZsdWlkX2V2ZW50X2dldF9kZXN0vQIYX2ZsdWlkX2V2ZW50X2dldF9jaGFubmVsvgIUX2ZsdWlkX2V2ZW50X2dldF9rZXm/AhlfZmx1aWRfZXZlbnRfZ2V0X3ZlbG9jaXR5wAIYX2ZsdWlkX2V2ZW50X2dldF9jb250cm9swQIWX2ZsdWlkX2V2ZW50X2dldF92YWx1ZcICFV9mbHVpZF9ldmVudF9nZXRfZGF0YcMCGV9mbHVpZF9ldmVudF9nZXRfZHVyYXRpb27EAhZfZmx1aWRfZXZlbnRfZ2V0X3BpdGNoxQIVX19mbHVpZF9ldnRfaGVhcF9pbml0xgIVX19mbHVpZF9ldnRfaGVhcF9mcmVlxwIZX19mbHVpZF9zZXFfaGVhcF9nZXRfZnJlZcgCGV9fZmx1aWRfc2VxX2hlYXBfc2V0X2ZyZWXJAh1fZmx1aWRfZ2VuX3NldF9kZWZhdWx0X3ZhbHVlc8oCD19mbHVpZF9nZW5faW5pdMsCFV9mbHVpZF9nZW5fc2NhbGVfbnJwbswCEF9mbHVpZF9tb2RfY2xvbmXNAhZfZmx1aWRfbW9kX3NldF9zb3VyY2UxzgIWX2ZsdWlkX21vZF9zZXRfc291cmNlMs8CE19mbHVpZF9tb2Rfc2V0X2Rlc3TQAhVfZmx1aWRfbW9kX3NldF9hbW91bnTRAhZfZmx1aWRfbW9kX2dldF9zb3VyY2Ux0gIVX2ZsdWlkX21vZF9nZXRfZmxhZ3Mx0wIWX2ZsdWlkX21vZF9nZXRfc291cmNlMtQCFV9mbHVpZF9tb2RfZ2V0X2ZsYWdzMtUCE19mbHVpZF9tb2RfZ2V0X2Rlc3TWAhVfZmx1aWRfbW9kX2dldF9hbW91bnTXAhRfZmx1aWRfbW9kX2dldF92YWx1ZdgCG19mbHVpZF9tb2RfZ2V0X3NvdXJjZV92YWx1ZdkCIV9mbHVpZF9tb2RfdHJhbnNmb3JtX3NvdXJjZV92YWx1ZdoCGF9mbHVpZF9tb2RfdGVzdF9pZGVudGl0edsCDl9uZXdfZmx1aWRfbW9k3AIRX2ZsdWlkX21vZF9zaXplb2bdAhVfZmx1aWRfbW9kX2hhc19zb3VyY2XeAhNfZmx1aWRfbW9kX2hhc19kZXN03wIVX2ZsdWlkX3N5bnRoX3NldHRpbmdz4AIOX2ZsdWlkX3ZlcnNpb27hAhJfZmx1aWRfdmVyc2lvbl9zdHLiAhdfbmV3X2ZsdWlkX3NhbXBsZV90aW1lcuMCGl9kZWxldGVfZmx1aWRfc2FtcGxlX3RpbWVy5AIQX25ld19mbHVpZF9zeW50aOUCH19mbHVpZF9zeW50aF9oYW5kbGVfc2FtcGxlX3JhdGXmAhhfZmx1aWRfc3ludGhfaGFuZGxlX2dhaW7nAh1fZmx1aWRfc3ludGhfaGFuZGxlX3BvbHlwaG9ueegCHV9mbHVpZF9zeW50aF9oYW5kbGVfZGV2aWNlX2lk6QIcX2ZsdWlkX3N5bnRoX2hhbmRsZV9vdmVyZmxvd+oCJl9mbHVpZF9zeW50aF9oYW5kbGVfaW1wb3J0YW50X2NoYW5uZWxz6wIlX2ZsdWlkX3N5bnRoX2hhbmRsZV9yZXZlcmJfY2hvcnVzX251bewCJV9mbHVpZF9zeW50aF9oYW5kbGVfcmV2ZXJiX2Nob3J1c19pbnTtAiNfZmx1aWRfc3ludGhfc2V0X2ltcG9ydGFudF9jaGFubmVsc+4CHF9mbHVpZF9zeW50aF9hZGRfZGVmYXVsdF9tb2TvAhZfZmx1aWRfc3ludGhfYXBpX2VudGVy8AIgX2ZsdWlkX3N5bnRoX2FsbF9ub3Rlc19vZmZfTE9DQUzxAhNfZGVsZXRlX2ZsdWlkX3N5bnRo8gIaX2ZsdWlkX3N5bnRoX3NldF9wb2x5cGhvbnnzAhVfZmx1aWRfc3ludGhfc2V0X2dhaW70AhxfZmx1aWRfc3ludGhfc2V0X3NhbXBsZV9yYXRl9QIZX2ZsdWlkX3N5bnRoX2FkZF9zZmxvYWRlcvYCGl9mbHVpZF9zeW50aF9zZXRfcmV2ZXJiX29u9wIaX2ZsdWlkX3N5bnRoX3NldF9jaG9ydXNfb274AhJfZmx1aWRfc3ludGhfZXJyb3L5AhNfZmx1aWRfc3ludGhfbm90ZW9u+gItX2ZsdWlkX3N5bnRoX3JlbGVhc2Vfdm9pY2Vfb25fc2FtZV9ub3RlX0xPQ0FM+wIUX2ZsdWlkX3N5bnRoX25vdGVvZmb8Ah9fZmx1aWRfc3ludGhfcmVtb3ZlX2RlZmF1bHRfbW9k/QIPX2ZsdWlkX3N5bnRoX2Nj/gIVX2ZsdWlkX3N5bnRoX2NjX0xPQ0FM/wIhX2ZsdWlkX3N5bnRoX2FsbF9zb3VuZHNfb2ZmX0xPQ0FMgAMcX2ZsdWlkX3N5bnRoX2FjdGl2YXRlX3R1bmluZ4EDIF9mbHVpZF9zeW50aF9yZXBsYWNlX3R1bmluZ19MT0NLggMTX2ZsdWlkX3N5bnRoX2dldF9jY4MDEl9mbHVpZF9zeW50aF9zeXNleIQDGF9mbHVpZF9zeW50aF90dW5pbmdfZHVtcIUDF19mbHVpZF9zeW50aF90dW5lX25vdGVzhgMjX2ZsdWlkX3N5bnRoX2FjdGl2YXRlX29jdGF2ZV90dW5pbmeHAxpfZmx1aWRfc3ludGhfYWxsX25vdGVzX29mZogDG19mbHVpZF9zeW50aF9hbGxfc291bmRzX29mZokDGV9mbHVpZF9zeW50aF9zeXN0ZW1fcmVzZXSKAx5fZmx1aWRfc3ludGhfc2V0X2Jhc2ljX2NoYW5uZWyLAx1fZmx1aWRfc3ludGhfY2hhbm5lbF9wcmVzc3VyZYwDGV9mbHVpZF9zeW50aF9rZXlfcHJlc3N1cmWNAxdfZmx1aWRfc3ludGhfcGl0Y2hfYmVuZI4DG19mbHVpZF9zeW50aF9nZXRfcGl0Y2hfYmVuZI8DHV9mbHVpZF9zeW50aF9waXRjaF93aGVlbF9zZW5zkAMhX2ZsdWlkX3N5bnRoX2dldF9waXRjaF93aGVlbF9zZW5zkQMYX2ZsdWlkX3N5bnRoX2ZpbmRfcHJlc2V0kgMbX2ZsdWlkX3N5bnRoX3Byb2dyYW1fY2hhbmdlkwMYX2ZsdWlkX3N5bnRoX2Jhbmtfc2VsZWN0lAMZX2ZsdWlkX3N5bnRoX3Nmb250X3NlbGVjdJUDGl9mbHVpZF9zeW50aF91bnNldF9wcm9ncmFtlgMYX2ZsdWlkX3N5bnRoX2dldF9wcm9ncmFtlwMbX2ZsdWlkX3N5bnRoX3Byb2dyYW1fc2VsZWN0mAMpX2ZsdWlkX3N5bnRoX3Byb2dyYW1fc2VsZWN0X2J5X3Nmb250X25hbWWZAxVfZmx1aWRfc3ludGhfZ2V0X2dhaW6aAxpfZmx1aWRfc3ludGhfZ2V0X3BvbHlwaG9ueZsDI19mbHVpZF9zeW50aF9nZXRfYWN0aXZlX3ZvaWNlX2NvdW50nAMhX2ZsdWlkX3N5bnRoX2dldF9pbnRlcm5hbF9idWZzaXplnQMaX2ZsdWlkX3N5bnRoX3Byb2dyYW1fcmVzZXSeAxlfZmx1aWRfc3ludGhfbndyaXRlX2Zsb2F0nwMaX2ZsdWlkX3N5bnRoX3JlbmRlcl9ibG9ja3OgAxRfZmx1aWRfc3ludGhfcHJvY2Vzc6EDGF9mbHVpZF9zeW50aF93cml0ZV9mbG9hdKIDFl9mbHVpZF9zeW50aF93cml0ZV9zMTajAxhfZmx1aWRfc3ludGhfYWxsb2Nfdm9pY2WkAx5fZmx1aWRfc3ludGhfYWxsb2Nfdm9pY2VfTE9DQUylAxhfZmx1aWRfc3ludGhfc3RhcnRfdm9pY2WmAxNfZmx1aWRfc3ludGhfc2Zsb2FkpwMVX2ZsdWlkX3N5bnRoX3NmdW5sb2FkqAMbX2ZsdWlkX3N5bnRoX3VwZGF0ZV9wcmVzZXRzqQMeX2ZsdWlkX3N5bnRoX3NmdW5sb2FkX2NhbGxiYWNrqgMVX2ZsdWlkX3N5bnRoX3NmcmVsb2FkqwMWX2ZsdWlkX3N5bnRoX2FkZF9zZm9udKwDGV9mbHVpZF9zeW50aF9yZW1vdmVfc2ZvbnStAxRfZmx1aWRfc3ludGhfc2Zjb3VudK4DFl9mbHVpZF9zeW50aF9nZXRfc2ZvbnSvAxxfZmx1aWRfc3ludGhfZ2V0X3Nmb250X2J5X2lksAMeX2ZsdWlkX3N5bnRoX2dldF9zZm9udF9ieV9uYW1lsQMfX2ZsdWlkX3N5bnRoX2dldF9jaGFubmVsX3ByZXNldLIDGl9mbHVpZF9zeW50aF9nZXRfdm9pY2VsaXN0swMXX2ZsdWlkX3N5bnRoX3NldF9yZXZlcmK0AyBfZmx1aWRfc3ludGhfc2V0X3JldmVyYl9yb29tc2l6ZbUDHF9mbHVpZF9zeW50aF9zZXRfcmV2ZXJiX2RhbXC2Ax1fZmx1aWRfc3ludGhfc2V0X3JldmVyYl93aWR0aLcDHV9mbHVpZF9zeW50aF9zZXRfcmV2ZXJiX2xldmVsuAMgX2ZsdWlkX3N5bnRoX2dldF9yZXZlcmJfcm9vbXNpemW5AxxfZmx1aWRfc3ludGhfZ2V0X3JldmVyYl9kYW1wugMdX2ZsdWlkX3N5bnRoX2dldF9yZXZlcmJfbGV2ZWy7Ax1fZmx1aWRfc3ludGhfZ2V0X3JldmVyYl93aWR0aLwDF19mbHVpZF9zeW50aF9zZXRfY2hvcnVzvQMaX2ZsdWlkX3N5bnRoX3NldF9jaG9ydXNfbnK+Ax1fZmx1aWRfc3ludGhfc2V0X2Nob3J1c19sZXZlbL8DHV9mbHVpZF9zeW50aF9zZXRfY2hvcnVzX3NwZWVkwAMdX2ZsdWlkX3N5bnRoX3NldF9jaG9ydXNfZGVwdGjBAxxfZmx1aWRfc3ludGhfc2V0X2Nob3J1c190eXBlwgMaX2ZsdWlkX3N5bnRoX2dldF9jaG9ydXNfbnLDAx1fZmx1aWRfc3ludGhfZ2V0X2Nob3J1c19sZXZlbMQDHV9mbHVpZF9zeW50aF9nZXRfY2hvcnVzX3NwZWVkxQMdX2ZsdWlkX3N5bnRoX2dldF9jaG9ydXNfZGVwdGjGAxxfZmx1aWRfc3ludGhfZ2V0X2Nob3J1c190eXBlxwMeX2ZsdWlkX3N5bnRoX3NldF9pbnRlcnBfbWV0aG9kyAMgX2ZsdWlkX3N5bnRoX2NvdW50X21pZGlfY2hhbm5lbHPJAyFfZmx1aWRfc3ludGhfY291bnRfYXVkaW9fY2hhbm5lbHPKAx9fZmx1aWRfc3ludGhfY291bnRfYXVkaW9fZ3JvdXBzywMjX2ZsdWlkX3N5bnRoX2NvdW50X2VmZmVjdHNfY2hhbm5lbHPMAyFfZmx1aWRfc3ludGhfY291bnRfZWZmZWN0c19ncm91cHPNAxlfZmx1aWRfc3ludGhfZ2V0X2NwdV9sb2FkzgMgX2ZsdWlkX3N5bnRoX2FjdGl2YXRlX2tleV90dW5pbmfPAx5fZmx1aWRfc3ludGhfZGVhY3RpdmF0ZV90dW5pbmfQAyNfZmx1aWRfc3ludGhfdHVuaW5nX2l0ZXJhdGlvbl9zdGFydNEDIl9mbHVpZF9zeW50aF90dW5pbmdfaXRlcmF0aW9uX25leHTSAxlfZmx1aWRfc3ludGhfZ2V0X3NldHRpbmdz0wMUX2ZsdWlkX3N5bnRoX3NldF9nZW7UAxVfZmx1aWRfc3ludGhfc2V0X2dlbjLVAxRfZmx1aWRfc3ludGhfZ2V0X2dlbtYDHl9mbHVpZF9zeW50aF9oYW5kbGVfbWlkaV9ldmVudNcDEl9mbHVpZF9zeW50aF9zdGFydNgDEV9mbHVpZF9zeW50aF9zdG9w2QMcX2ZsdWlkX3N5bnRoX3NldF9iYW5rX29mZnNldNoDHF9mbHVpZF9zeW50aF9nZXRfYmFua19vZmZzZXTbAx1fZmx1aWRfc3ludGhfc2V0X2NoYW5uZWxfdHlwZdwDGl9mbHVpZF9zeW50aF9nZXRfbGFkc3BhX2Z43QMeX2ZsdWlkX3N5bnRoX3NldF9jdXN0b21fZmlsdGVy3gMcX2ZsdWlkX3N5bnRoX3NldF9sZWdhdG9fbW9kZd8DHF9mbHVpZF9zeW50aF9nZXRfbGVnYXRvX21vZGXgAyBfZmx1aWRfc3ludGhfc2V0X3BvcnRhbWVudG9fbW9kZeEDIF9mbHVpZF9zeW50aF9nZXRfcG9ydGFtZW50b19tb2Rl4gMcX2ZsdWlkX3N5bnRoX3NldF9icmVhdGhfbW9kZeMDHF9mbHVpZF9zeW50aF9nZXRfYnJlYXRoX21vZGXkAyBfZmx1aWRfc3ludGhfcmVzZXRfYmFzaWNfY2hhbm5lbOUDHl9mbHVpZF9zeW50aF9nZXRfYmFzaWNfY2hhbm5lbOYDHl9mbHVpZF9zeW50aF9ub3Rlb25fbW9ub19MT0NBTOcDI19mbHVpZF9zeW50aF9ub3Rlb25fbW9ub3BvbHlfbGVnYXRv6AMhX2ZsdWlkX3N5bnRoX25vdGVvbl9tb25vX3N0YWNjYXRv6QMfX2ZsdWlkX3N5bnRoX25vdGVvZmZfbW9ub19MT0NBTOoDHV9mbHVpZF9zeW50aF9ub3Rlb2ZmX21vbm9wb2x56wMRX25ld19mbHVpZF90dW5pbmfsAxdfZmx1aWRfdHVuaW5nX2R1cGxpY2F0Ze0DEV9mbHVpZF90dW5pbmdfcmVm7gMTX2ZsdWlkX3R1bmluZ191bnJlZu8DFl9mbHVpZF90dW5pbmdfZ2V0X25hbWXwAxhfZmx1aWRfdHVuaW5nX3NldF9vY3RhdmXxAxVfZmx1aWRfdHVuaW5nX3NldF9hbGzyAxdfZmx1aWRfdHVuaW5nX3NldF9waXRjaPMDEF9uZXdfZmx1aWRfdm9pY2X0Ax5fZmx1aWRfdm9pY2VfaW5pdGlhbGl6ZV9ydm9pY2X1AxNfZGVsZXRlX2ZsdWlkX3ZvaWNl9gMRX2ZsdWlkX3ZvaWNlX2luaXT3AxBfZmx1aWRfdm9pY2Vfb2Zm+AMcX2ZsdWlkX3ZvaWNlX3NldF9vdXRwdXRfcmF0ZfkDF19mbHVpZF92b2ljZV9pc19wbGF5aW5n+gMUX2ZsdWlkX3ZvaWNlX2dlbl9zZXT7AxVfZmx1aWRfdm9pY2VfZ2VuX2luY3L8AxRfZmx1aWRfdm9pY2VfZ2VuX2dldP0DFl9mbHVpZF92b2ljZV9nZW5fdmFsdWX+AxJfZmx1aWRfdm9pY2Vfc3RhcnT/AxlfZmx1aWRfdm9pY2VfdXBkYXRlX3BhcmFtgAQeX2ZsdWlkX3ZvaWNlX3VwZGF0ZV9wb3J0YW1lbnRvgQQgX2ZsdWlkX3ZvaWNlX2NhbGN1bGF0ZV9nZW5fcGl0Y2iCBBtfZmx1aWRfdm9pY2VfZ2V0X2FjdHVhbF9rZXmDBBVfZmx1aWRfdm9pY2VfbW9kdWxhdGWEBBlfZmx1aWRfdm9pY2VfbW9kdWxhdGVfYWxshQQqX2ZsdWlkX3ZvaWNlX3VwZGF0ZV9tdWx0aV9yZXRyaWdnZXJfYXR0YWNrhgQUX2ZsdWlkX3ZvaWNlX3JlbGVhc2WHBBRfZmx1aWRfdm9pY2Vfbm90ZW9mZogEFl9mbHVpZF92b2ljZV9raWxsX2V4Y2yJBCVfZmx1aWRfdm9pY2Vfb3ZlcmZsb3dfcnZvaWNlX2ZpbmlzaGVkigQRX2ZsdWlkX3ZvaWNlX3N0b3CLBBRfZmx1aWRfdm9pY2VfYWRkX21vZIwEGV9mbHVpZF92b2ljZV9pc19zdXN0YWluZWSNBBlfZmx1aWRfdm9pY2VfaXNfc29zdGVudXRvjgQSX2ZsdWlkX3ZvaWNlX2lzX29ujwQYX2ZsdWlkX3ZvaWNlX2dldF9jaGFubmVskAQUX2ZsdWlkX3ZvaWNlX2dldF9rZXmRBCBfZmx1aWRfdm9pY2VfZ2V0X2FjdHVhbF92ZWxvY2l0eZIEGV9mbHVpZF92b2ljZV9nZXRfdmVsb2NpdHmTBBZfZmx1aWRfdm9pY2Vfc2V0X3BhcmFtlAQVX2ZsdWlkX3ZvaWNlX3NldF9nYWlulQQcX2ZsdWlkX3ZvaWNlX29wdGltaXplX3NhbXBsZZYEHl9mbHVpZF92b2ljZV9nZXRfb3ZlcmZsb3dfcHJpb5cEHl9mbHVpZF92b2ljZV9zZXRfY3VzdG9tX2ZpbHRlcpgEFV9uZXdfZmx1aWRfbWlkaV9ldmVudJkEGF9kZWxldGVfZmx1aWRfbWlkaV9ldmVudJoEGl9mbHVpZF9taWRpX2V2ZW50X2dldF90eXBlmwQaX2ZsdWlkX21pZGlfZXZlbnRfc2V0X3R5cGWcBB1fZmx1aWRfbWlkaV9ldmVudF9nZXRfY2hhbm5lbJ0EHV9mbHVpZF9taWRpX2V2ZW50X3NldF9jaGFubmVsngQZX2ZsdWlkX21pZGlfZXZlbnRfc2V0X2tleZ8EHl9mbHVpZF9taWRpX2V2ZW50X2dldF92ZWxvY2l0eaAEHl9mbHVpZF9taWRpX2V2ZW50X3NldF92ZWxvY2l0eaEEG19mbHVpZF9taWRpX2V2ZW50X3NldF9zeXNleKIEGl9mbHVpZF9taWRpX2V2ZW50X3NldF90ZXh0owQcX2ZsdWlkX21pZGlfZXZlbnRfc2V0X2x5cmljc6QEEV9uZXdfZmx1aWRfcGxheWVypQQgX2ZsdWlkX3BsYXllcl9oYW5kbGVfcmVzZXRfc3ludGimBCNfZmx1aWRfcGxheWVyX3NldF9wbGF5YmFja19jYWxsYmFja6cEFF9kZWxldGVfZmx1aWRfcGxheWVyqAQSX2ZsdWlkX3BsYXllcl9zdG9wqQQWX2ZsdWlkX3BsYXllcl9zZXR0aW5nc6oEEV9mbHVpZF9wbGF5ZXJfYWRkqwQVX2ZsdWlkX3BsYXllcl9hZGRfbWVtrAQSX2ZsdWlkX3BsYXllcl9wbGF5rQQWX2ZsdWlkX3BsYXllcl9jYWxsYmFja64EHF9mbHVpZF9taWRpX2ZpbGVfcmVhZF92YXJsZW6vBBJfZmx1aWRfcGxheWVyX3NlZWuwBB1fZmx1aWRfcGxheWVyX2dldF90b3RhbF90aWNrc7EEFl9mbHVpZF9wbGF5ZXJfc2V0X2xvb3CyBBxfZmx1aWRfcGxheWVyX3NldF9taWRpX3RlbXBvswQVX2ZsdWlkX3BsYXllcl9zZXRfYnBttAQSX2ZsdWlkX3BsYXllcl9qb2lutQQeX2ZsdWlkX3BsYXllcl9nZXRfY3VycmVudF90aWNrtgQVX2ZsdWlkX3BsYXllcl9nZXRfYnBttwQcX2ZsdWlkX3BsYXllcl9nZXRfbWlkaV90ZW1wb7gEFl9uZXdfZmx1aWRfbWlkaV9yb3V0ZXK5BBlfZGVsZXRlX2ZsdWlkX21pZGlfcm91dGVyugQbX25ld19mbHVpZF9taWRpX3JvdXRlcl9ydWxluwQkX2ZsdWlkX21pZGlfcm91dGVyX3NldF9kZWZhdWx0X3J1bGVzvAQeX2ZsdWlkX21pZGlfcm91dGVyX2NsZWFyX3J1bGVzvQQbX2ZsdWlkX21pZGlfcm91dGVyX2FkZF9ydWxlvgQgX2ZsdWlkX21pZGlfcm91dGVyX3J1bGVfc2V0X2NoYW6/BCJfZmx1aWRfbWlkaV9yb3V0ZXJfcnVsZV9zZXRfcGFyYW0xwAQiX2ZsdWlkX21pZGlfcm91dGVyX3J1bGVfc2V0X3BhcmFtMsEEJF9mbHVpZF9taWRpX3JvdXRlcl9oYW5kbGVfbWlkaV9ldmVudMIEGl9mbHVpZF9taWRpX2R1bXBfcHJlcm91dGVywwQbX2ZsdWlkX21pZGlfZHVtcF9wb3N0cm91dGVyxAQkX2ZsdWlkX3NlcXVlbmNlcl9yZWdpc3Rlcl9mbHVpZHN5bnRoxQQdX2ZsdWlkX3NlcWJpbmRfdGltZXJfY2FsbGJhY2vGBB5fZmx1aWRfc2VxX2ZsdWlkc3ludGhfY2FsbGJhY2vHBClfZmx1aWRfc2VxdWVuY2VyX2FkZF9taWRpX2V2ZW50X3RvX2J1ZmZlcsgEFF9uZXdfZmx1aWRfc2VxdWVuY2VyyQQVX25ld19mbHVpZF9zZXF1ZW5jZXIyygQZX19mbHVpZF9zZXFfcXVldWVfcHJvY2Vzc8sEGF9mbHVpZF9zZXF1ZW5jZXJfcHJvY2Vzc8wEF19kZWxldGVfZmx1aWRfc2VxdWVuY2VyzQQiX2ZsdWlkX3NlcXVlbmNlcl91bnJlZ2lzdGVyX2NsaWVudM4EJV9mbHVpZF9zZXF1ZW5jZXJfZ2V0X3VzZV9zeXN0ZW1fdGltZXLPBCBfZmx1aWRfc2VxdWVuY2VyX3JlZ2lzdGVyX2NsaWVudNAEHl9mbHVpZF9zZXF1ZW5jZXJfY291bnRfY2xpZW50c9EEHl9mbHVpZF9zZXF1ZW5jZXJfZ2V0X2NsaWVudF9pZNIEIF9mbHVpZF9zZXF1ZW5jZXJfZ2V0X2NsaWVudF9uYW1l0wQfX2ZsdWlkX3NlcXVlbmNlcl9jbGllbnRfaXNfZGVzdNQEGV9mbHVpZF9zZXF1ZW5jZXJfc2VuZF9ub3fVBBlfZmx1aWRfc2VxdWVuY2VyX2dldF90aWNr1gQYX2ZsdWlkX3NlcXVlbmNlcl9zZW5kX2F01wQeX2ZsdWlkX3NlcXVlbmNlcl9yZW1vdmVfZXZlbnRz2AQfX2ZsdWlkX3NlcXVlbmNlcl9zZXRfdGltZV9zY2FsZdkEH19mbHVpZF9zZXF1ZW5jZXJfZ2V0X3RpbWVfc2NhbGXaBBxfZmx1aWRfYXVkaW9fZHJpdmVyX3NldHRpbmdz2wQXX25ld19mbHVpZF9hdWRpb19kcml2ZXLcBBhfZmluZF9mbHVpZF9hdWRpb19kcml2ZXLdBBhfbmV3X2ZsdWlkX2F1ZGlvX2RyaXZlcjLeBBpfZGVsZXRlX2ZsdWlkX2F1ZGlvX2RyaXZlct8EHF9mbHVpZF9hdWRpb19kcml2ZXJfcmVnaXN0ZXLgBBtfZmx1aWRfbWlkaV9kcml2ZXJfc2V0dGluZ3PhBBZfbmV3X2ZsdWlkX21pZGlfZHJpdmVy4gQZX2RlbGV0ZV9mbHVpZF9taWRpX2RyaXZlcuMEHV9mbHVpZF9maWxlX3JlbmRlcmVyX3NldHRpbmdz5AQYX25ld19mbHVpZF9maWxlX3JlbmRlcmVy5QQbX2RlbGV0ZV9mbHVpZF9maWxlX3JlbmRlcmVy5gQgX2ZsdWlkX2ZpbGVfc2V0X2VuY29kaW5nX3F1YWxpdHnnBCJfZmx1aWRfZmlsZV9yZW5kZXJlcl9wcm9jZXNzX2Jsb2Nr6AQXX2ZsdWlkX2xhZHNwYV9pc19hY3RpdmXpBBZfZmx1aWRfbGFkc3BhX2FjdGl2YXRl6gQTX2ZsdWlkX2xhZHNwYV9jaGVja+sEHl9mbHVpZF9sYWRzcGFfaG9zdF9wb3J0X2V4aXN0c+wEGF9mbHVpZF9sYWRzcGFfYWRkX2J1ZmZlcu0EGF9mbHVpZF9sYWRzcGFfYWRkX2VmZmVjdO4EHF9mbHVpZF9sYWRzcGFfZWZmZWN0X3NldF9taXjvBCBfZmx1aWRfbGFkc3BhX2VmZmVjdF9wb3J0X2V4aXN0c/AEB19tYWxsb2PxBAVfZnJlZfIECF9yZWFsbG9j8wQSX3RyeV9yZWFsbG9jX2NodW5r9AQOX2Rpc3Bvc2VfY2h1bmv1BA5fX19zdGRpb19jbG9zZfYEDl9fX3N0ZGlvX3dyaXRl9wQNX19fc3RkaW9fc2Vla/gEDl9fX3N5c2NhbGxfcmV0+QQRX19fZXJybm9fbG9jYXRpb276BA1fX19zdGRpb19yZWFk+wQPX19fc3Rkb3V0X3dyaXRl/AQIX2lzc3BhY2X9BAlfX190b3JlYWT+BAdfc3RyY21w/wQIX3N0cm5jbXCABQhfaXNkaWdpdIEFCl92c25wcmludGaCBQlfdmZwcmludGaDBQxfcHJpbnRmX2NvcmWEBQ1fX191bmxvY2tmaWxlhQUEX291dIYFB19nZXRpbnSHBQhfcG9wX2FyZ4gFBl9mbXRfeIkFBl9mbXRfb4oFBl9mbXRfdYsFCV9zdHJlcnJvcowFB19tZW1jaHKNBQhfcGFkXzY2OY4FB193Y3RvbWKPBQdfZm10X2ZwkAUSX19fRE9VQkxFX0JJVFNfNjcwkQUHX2ZyZXhwbJIFBl9mcmV4cJMFCF93Y3J0b21ilAUTX19fcHRocmVhZF9zZWxmXzQyM5UFDV9wdGhyZWFkX3NlbGaWBQ1fX19zdHJlcnJvcl9slwUKX19fbGN0cmFuc5gFD19fX2xjdHJhbnNfaW1wbJkFDF9fX21vX2xvb2t1cJoFBl9zd2FwY5sFCl9fX2Z3cml0ZXicBQpfX190b3dyaXRlnQUJX3NuX3dyaXRlngUHX3NjYWxibp8FB19zdHJsZW6gBQdfc3RyY2hyoQUMX19fc3RyY2hybnVsogUJX3NucHJpbnRmowUHX3N0cmNweaQFCV9fX3N0cGNweaUFBl9fX2Nvc6YFC19fX3JlbV9waW8ypwURX19fcmVtX3BpbzJfbGFyZ2WoBQZfX19zaW6pBQZfbGRleHCqBQVfc3RhdKsFB19md3JpdGWsBRVfX191bmxpc3RfbG9ja2VkX2ZpbGWtBQZfZm9wZW6uBQ1fX19mbW9kZWZsYWdzrwUJX19fZmRvcGVusAUKX19fb2ZsX2FkZLEFC19fX29mbF9sb2NrsgUNX19fb2ZsX3VubG9ja7MFB19mY2xvc2W0BQdfZmZsdXNotQUSX19fZmZsdXNoX3VubG9ja2VktgUFX2Zlb2a3BQZfZnNlZWu4BQhfZnByaW50ZrkFCV9fX2ZzZWVrb7oFEl9fX2ZzZWVrb191bmxvY2tlZLsFBl9tbG9ja7wFCF9tdW5sb2NrvQUIX3N0cm5jcHm+BQpfX19zdHBuY3B5vwUFX3JhbmTABQdfc3RyY2F0wQUJX19fZnRlbGxvwgUSX19fZnRlbGxvX3VubG9ja2VkwwUGX2ZyZWFkxAUGX2Z0ZWxsxQUFX2F0b2nGBQRfY29zxwUEX3NpbsgFBF9sb2fJBQRfcG93ygUPX2xsdm1fYnN3YXBfaTMyywUHX21lbWNwecwFB19tZW1zZXTNBQVfc2Jya84FCmR5bkNhbGxfaWnPBQtqc0NhbGxfaWlfMNAFC2pzQ2FsbF9paV8x0QULanNDYWxsX2lpXzLSBQtqc0NhbGxfaWlfM9MFC2pzQ2FsbF9paV801AULanNDYWxsX2lpXzXVBQtqc0NhbGxfaWlfNtYFC2pzQ2FsbF9paV831wULanNDYWxsX2lpXzjYBQtqc0NhbGxfaWlfOdkFC2R5bkNhbGxfaWlp2gUManNDYWxsX2lpaV8w2wUManNDYWxsX2lpaV8x3AUManNDYWxsX2lpaV8y3QUManNDYWxsX2lpaV8z3gUManNDYWxsX2lpaV803wUManNDYWxsX2lpaV814AUManNDYWxsX2lpaV824QUManNDYWxsX2lpaV834gUManNDYWxsX2lpaV844wUManNDYWxsX2lpaV855AUMZHluQ2FsbF9paWlp5QUNanNDYWxsX2lpaWlfMOYFDWpzQ2FsbF9paWlpXzHnBQ1qc0NhbGxfaWlpaV8y6AUNanNDYWxsX2lpaWlfM+kFDWpzQ2FsbF9paWlpXzTqBQ1qc0NhbGxfaWlpaV816wUNanNDYWxsX2lpaWlfNuwFDWpzQ2FsbF9paWlpXzftBQ1qc0NhbGxfaWlpaV847gUNanNDYWxsX2lpaWlfOe8FDmR5bkNhbGxfaWlpaWlp8AUPanNDYWxsX2lpaWlpaV8w8QUPanNDYWxsX2lpaWlpaV8x8gUPanNDYWxsX2lpaWlpaV8y8wUPanNDYWxsX2lpaWlpaV8z9AUPanNDYWxsX2lpaWlpaV809QUPanNDYWxsX2lpaWlpaV819gUPanNDYWxsX2lpaWlpaV829wUPanNDYWxsX2lpaWlpaV83+AUPanNDYWxsX2lpaWlpaV84+QUPanNDYWxsX2lpaWlpaV85+gUPZHluQ2FsbF9paWlpaWlp+wUQanNDYWxsX2lpaWlpaWlfMPwFEGpzQ2FsbF9paWlpaWlpXzH9BRBqc0NhbGxfaWlpaWlpaV8y/gUQanNDYWxsX2lpaWlpaWlfM/8FEGpzQ2FsbF9paWlpaWlpXzSABhBqc0NhbGxfaWlpaWlpaV81gQYQanNDYWxsX2lpaWlpaWlfNoIGEGpzQ2FsbF9paWlpaWlpXzeDBhBqc0NhbGxfaWlpaWlpaV84hAYQanNDYWxsX2lpaWlpaWlfOYUGCmR5bkNhbGxfdmmGBgtqc0NhbGxfdmlfMIcGC2pzQ2FsbF92aV8xiAYLanNDYWxsX3ZpXzKJBgtqc0NhbGxfdmlfM4oGC2pzQ2FsbF92aV80iwYLanNDYWxsX3ZpXzWMBgtqc0NhbGxfdmlfNo0GC2pzQ2FsbF92aV83jgYLanNDYWxsX3ZpXziPBgtqc0NhbGxfdmlfOZAGC2R5bkNhbGxfdmlpkQYManNDYWxsX3ZpaV8wkgYManNDYWxsX3ZpaV8xkwYManNDYWxsX3ZpaV8ylAYManNDYWxsX3ZpaV8zlQYManNDYWxsX3ZpaV80lgYManNDYWxsX3ZpaV81lwYManNDYWxsX3ZpaV82mAYManNDYWxsX3ZpaV83mQYManNDYWxsX3ZpaV84mgYManNDYWxsX3ZpaV85mwYMZHluQ2FsbF92aWlknAYNanNDYWxsX3ZpaWRfMJ0GDWpzQ2FsbF92aWlkXzGeBg1qc0NhbGxfdmlpZF8ynwYNanNDYWxsX3ZpaWRfM6AGDWpzQ2FsbF92aWlkXzShBg1qc0NhbGxfdmlpZF81ogYNanNDYWxsX3ZpaWRfNqMGDWpzQ2FsbF92aWlkXzekBg1qc0NhbGxfdmlpZF84pQYNanNDYWxsX3ZpaWRfOaYGDGR5bkNhbGxfdmlpaacGDWpzQ2FsbF92aWlpXzCoBg1qc0NhbGxfdmlpaV8xqQYNanNDYWxsX3ZpaWlfMqoGDWpzQ2FsbF92aWlpXzOrBg1qc0NhbGxfdmlpaV80rAYNanNDYWxsX3ZpaWlfNa0GDWpzQ2FsbF92aWlpXzauBg1qc0NhbGxfdmlpaV83rwYNanNDYWxsX3ZpaWlfOLAGDWpzQ2FsbF92aWlpXzmxBg1keW5DYWxsX3ZpaWlpsgYOanNDYWxsX3ZpaWlpXzCzBg5qc0NhbGxfdmlpaWlfMbQGDmpzQ2FsbF92aWlpaV8ytQYOanNDYWxsX3ZpaWlpXzO2Bg5qc0NhbGxfdmlpaWlfNLcGDmpzQ2FsbF92aWlpaV81uAYOanNDYWxsX3ZpaWlpXza5Bg5qc0NhbGxfdmlpaWlfN7oGDmpzQ2FsbF92aWlpaV84uwYOanNDYWxsX3ZpaWlpXzm8BgJiML0GAmIxvgYCYjK/BgJiM8AGAmI0wQYCYjXCBgJiNsMGAmI3xAYCYjjFBgJiOcYGKmxlZ2Fsc3R1YiRfZmx1aWRfbGFkc3BhX2VmZmVjdF9zZXRfY29udHJvbMcGKmxlZ2Fsc3R1YiRfZmx1aWRfbWlkaV9yb3V0ZXJfcnVsZV9zZXRfY2hhbsgGLGxlZ2Fsc3R1YiRfZmx1aWRfbWlkaV9yb3V0ZXJfcnVsZV9zZXRfcGFyYW0xyQYsbGVnYWxzdHViJF9mbHVpZF9taWRpX3JvdXRlcl9ydWxlX3NldF9wYXJhbTLKBh9sZWdhbHN0dWIkX2ZsdWlkX3N5bnRoX2dldF9nYWluywYebGVnYWxzdHViJF9mbHVpZF9zeW50aF9nZXRfZ2VuzAYfbGVnYWxzdHViJF9mbHVpZF9zeW50aF9zZXRfZ2Fpbs0GHmxlZ2Fsc3R1YiRfZmx1aWRfc3ludGhfc2V0X2dlbs4GJmxlZ2Fsc3R1YiRfZmx1aWRfc3ludGhfc2V0X3NhbXBsZV9yYXRlzwYebGVnYWxzdHViJF9mbHVpZF92b2ljZV9nZW5fZ2V00AYfbGVnYWxzdHViJF9mbHVpZF92b2ljZV9nZW5faW5jctEGHmxlZ2Fsc3R1YiRfZmx1aWRfdm9pY2VfZ2VuX3NldA==\';\n var asmjsCodeFile = \'\';\n\n if (!isDataURI(wasmTextFile)) {\n wasmTextFile = locateFile(wasmTextFile);\n }\n if (!isDataURI(wasmBinaryFile)) {\n wasmBinaryFile = locateFile(wasmBinaryFile);\n }\n if (!isDataURI(asmjsCodeFile)) {\n asmjsCodeFile = locateFile(asmjsCodeFile);\n }\n\n // utilities\n\n var wasmPageSize = 64*1024;\n\n var info = {\n \'global\': null,\n \'env\': null,\n \'asm2wasm\': asm2wasmImports,\n \'parent\': Module // Module inside wasm-js.cpp refers to wasm-js.cpp; this allows access to the outside program.\n };\n\n var exports = null;\n\n\n function mergeMemory(newBuffer) {\n // The wasm instance creates its memory. But static init code might have written to\n // buffer already, including the mem init file, and we must copy it over in a proper merge.\n // TODO: avoid this copy, by avoiding such static init writes\n // TODO: in shorter term, just copy up to the last static init write\n var oldBuffer = Module[\'buffer\'];\n if (newBuffer.byteLength < oldBuffer.byteLength) {\n err(\'the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here\');\n }\n var oldView = new Int8Array(oldBuffer);\n var newView = new Int8Array(newBuffer);\n\n\n newView.set(oldView);\n updateGlobalBuffer(newBuffer);\n updateGlobalBufferViews();\n }\n\n function fixImports(imports) {\n return imports;\n }\n\n function getBinary() {\n try {\n if (Module[\'wasmBinary\']) {\n return new Uint8Array(Module[\'wasmBinary\']);\n }\n var binary = tryParseAsDataURI(wasmBinaryFile);\n if (binary) {\n return binary;\n }\n if (Module[\'readBinary\']) {\n return Module[\'readBinary\'](wasmBinaryFile);\n } else {\n throw "both async and sync fetching of the wasm failed";\n }\n }\n catch (err) {\n abort(err);\n }\n }\n\n function getBinaryPromise() {\n // if we don\'t have the binary yet, and have the Fetch api, use that\n // in some environments, like Electron\'s render process, Fetch api may be present, but have a different context than expected, let\'s only use it on the Web\n if (!Module[\'wasmBinary\'] && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === \'function\') {\n return fetch(wasmBinaryFile, { credentials: \'same-origin\' }).then(function(response) {\n if (!response[\'ok\']) {\n throw "failed to load wasm binary file at \'" + wasmBinaryFile + "\'";\n }\n return response[\'arrayBuffer\']();\n }).catch(function () {\n return getBinary();\n });\n }\n // Otherwise, getBinary should be able to get it synchronously\n return new Promise(function(resolve, reject) {\n resolve(getBinary());\n });\n }\n\n // do-method functions\n\n\n function doNativeWasm(global, env, providedBuffer) {\n if (typeof WebAssembly !== \'object\') {\n err(\'no native wasm support detected\');\n return false;\n }\n // prepare memory import\n if (!(Module[\'wasmMemory\'] instanceof WebAssembly.Memory)) {\n err(\'no native wasm Memory in use\');\n return false;\n }\n env[\'memory\'] = Module[\'wasmMemory\'];\n // Load the wasm module and create an instance of using native support in the JS engine.\n info[\'global\'] = {\n \'NaN\': NaN,\n \'Infinity\': Infinity\n };\n info[\'global.Math\'] = Math;\n info[\'env\'] = env;\n // handle a generated wasm instance, receiving its exports and\n // performing other necessary setup\n function receiveInstance(instance, module) {\n exports = instance.exports;\n if (exports.memory) mergeMemory(exports.memory);\n Module[\'asm\'] = exports;\n Module["usingWasm"] = true;\n removeRunDependency(\'wasm-instantiate\');\n }\n addRunDependency(\'wasm-instantiate\');\n\n // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback\n // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel\n // to any other async startup actions they are performing.\n if (Module[\'instantiateWasm\']) {\n try {\n return Module[\'instantiateWasm\'](info, receiveInstance);\n } catch(e) {\n err(\'Module.instantiateWasm callback failed with error: \' + e);\n return false;\n }\n }\n\n function receiveInstantiatedSource(output) {\n // \'output\' is a WebAssemblyInstantiatedSource object which has both the module and instance.\n // receiveInstance() will swap in the exports (to Module.asm) so they can be called\n receiveInstance(output[\'instance\'], output[\'module\']);\n }\n function instantiateArrayBuffer(receiver) {\n getBinaryPromise().then(function(binary) {\n return WebAssembly.instantiate(binary, info);\n }).then(receiver, function(reason) {\n err(\'failed to asynchronously prepare wasm: \' + reason);\n abort(reason);\n });\n }\n // Prefer streaming instantiation if available.\n if (!Module[\'wasmBinary\'] &&\n typeof WebAssembly.instantiateStreaming === \'function\' &&\n !isDataURI(wasmBinaryFile) &&\n typeof fetch === \'function\') {\n WebAssembly.instantiateStreaming(fetch(wasmBinaryFile, { credentials: \'same-origin\' }), info)\n .then(receiveInstantiatedSource, function(reason) {\n // We expect the most common failure cause to be a bad MIME type for the binary,\n // in which case falling back to ArrayBuffer instantiation should work.\n err(\'wasm streaming compile failed: \' + reason);\n err(\'falling back to ArrayBuffer instantiation\');\n instantiateArrayBuffer(receiveInstantiatedSource);\n });\n } else {\n instantiateArrayBuffer(receiveInstantiatedSource);\n }\n return {}; // no exports yet; we\'ll fill them in later\n }\n\n\n // We may have a preloaded value in Module.asm, save it\n Module[\'asmPreload\'] = Module[\'asm\'];\n\n // Memory growth integration code\n\n var asmjsReallocBuffer = Module[\'reallocBuffer\'];\n\n var wasmReallocBuffer = function(size) {\n var PAGE_MULTIPLE = Module["usingWasm"] ? WASM_PAGE_SIZE : ASMJS_PAGE_SIZE; // In wasm, heap size must be a multiple of 64KB. In asm.js, they need to be multiples of 16MB.\n size = alignUp(size, PAGE_MULTIPLE); // round up to wasm page size\n var old = Module[\'buffer\'];\n var oldSize = old.byteLength;\n if (Module["usingWasm"]) {\n // native wasm support\n try {\n var result = Module[\'wasmMemory\'].grow((size - oldSize) / wasmPageSize); // .grow() takes a delta compared to the previous size\n if (result !== (-1 | 0)) {\n // success in native wasm memory growth, get the buffer from the memory\n return Module[\'buffer\'] = Module[\'wasmMemory\'].buffer;\n } else {\n return null;\n }\n } catch(e) {\n return null;\n }\n }\n };\n\n Module[\'reallocBuffer\'] = function(size) {\n if (finalMethod === \'asmjs\') {\n return asmjsReallocBuffer(size);\n } else {\n return wasmReallocBuffer(size);\n }\n };\n\n // we may try more than one; this is the final one, that worked and we are using\n var finalMethod = \'\';\n\n // Provide an "asm.js function" for the application, called to "link" the asm.js module. We instantiate\n // the wasm module at that time, and it receives imports and provides exports and so forth, the app\n // doesn\'t need to care that it is wasm or olyfilled wasm or asm.js.\n\n Module[\'asm\'] = function(global, env, providedBuffer) {\n env = fixImports(env);\n\n // import table\n if (!env[\'table\']) {\n var TABLE_SIZE = Module[\'wasmTableSize\'];\n if (TABLE_SIZE === undefined) TABLE_SIZE = 1024; // works in binaryen interpreter at least\n var MAX_TABLE_SIZE = Module[\'wasmMaxTableSize\'];\n if (typeof WebAssembly === \'object\' && typeof WebAssembly.Table === \'function\') {\n if (MAX_TABLE_SIZE !== undefined) {\n env[\'table\'] = new WebAssembly.Table({ \'initial\': TABLE_SIZE, \'maximum\': MAX_TABLE_SIZE, \'element\': \'anyfunc\' });\n } else {\n env[\'table\'] = new WebAssembly.Table({ \'initial\': TABLE_SIZE, element: \'anyfunc\' });\n }\n } else {\n env[\'table\'] = new Array(TABLE_SIZE); // works in binaryen interpreter at least\n }\n Module[\'wasmTable\'] = env[\'table\'];\n }\n\n if (!env[\'memoryBase\']) {\n env[\'memoryBase\'] = Module[\'STATIC_BASE\']; // tell the memory segments where to place themselves\n }\n if (!env[\'tableBase\']) {\n env[\'tableBase\'] = 0; // table starts at 0 by default, in dynamic linking this will change\n }\n\n // try the methods. each should return the exports if it succeeded\n\n var exports;\n exports = doNativeWasm(global, env, providedBuffer);\n\n assert(exports, \'no binaryen method succeeded.\');\n\n\n return exports;\n };\n\n var methodHandler = Module[\'asm\']; // note our method handler, as we may modify Module[\'asm\'] later\n}\n\nintegrateWasmJS();\n\n// === Body ===\n\nvar ASM_CONSTS = [];\n\n\n\n\n\nSTATIC_BASE = GLOBAL_BASE;\n\nSTATICTOP = STATIC_BASE + 459920;\n/* global initializers */ __ATINIT__.push();\n\n\n\n\n\n\n\nvar STATIC_BUMP = 459920;\nModule["STATIC_BASE"] = STATIC_BASE;\nModule["STATIC_BUMP"] = STATIC_BUMP;\n\n/* no memory initializer */\nvar tempDoublePtr = STATICTOP; STATICTOP += 16;\n\nfunction copyTempFloat(ptr) { // functions, because inlining this code increases code size too much\n\n HEAP8[tempDoublePtr] = HEAP8[ptr];\n\n HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];\n\n HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];\n\n HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];\n\n}\n\nfunction copyTempDouble(ptr) {\n\n HEAP8[tempDoublePtr] = HEAP8[ptr];\n\n HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];\n\n HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];\n\n HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];\n\n HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];\n\n HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];\n\n HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];\n\n HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];\n\n}\n\n// {{PRE_LIBRARY}}\n\n\n function ___lock() {}\n\n \n \n \n var ERRNO_CODES={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};\n \n var ERRNO_MESSAGES={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"};\n \n function ___setErrNo(value) {\n if (Module[\'___errno_location\']) HEAP32[((Module[\'___errno_location\']())>>2)]=value;\n return value;\n }\n \n var PATH={splitPath:function (filename) {\n var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n return splitPathRe.exec(filename).slice(1);\n },normalizeArray:function (parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === \'.\') {\n parts.splice(i, 1);\n } else if (last === \'..\') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up; up--) {\n parts.unshift(\'..\');\n }\n }\n return parts;\n },normalize:function (path) {\n var isAbsolute = path.charAt(0) === \'/\',\n trailingSlash = path.substr(-1) === \'/\';\n // Normalize the path\n path = PATH.normalizeArray(path.split(\'/\').filter(function(p) {\n return !!p;\n }), !isAbsolute).join(\'/\');\n if (!path && !isAbsolute) {\n path = \'.\';\n }\n if (path && trailingSlash) {\n path += \'/\';\n }\n return (isAbsolute ? \'/\' : \'\') + path;\n },dirname:function (path) {\n var result = PATH.splitPath(path),\n root = result[0],\n dir = result[1];\n if (!root && !dir) {\n // No dirname whatsoever\n return \'.\';\n }\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.substr(0, dir.length - 1);\n }\n return root + dir;\n },basename:function (path) {\n // EMSCRIPTEN return \'/\'\' for \'/\', not an empty string\n if (path === \'/\') return \'/\';\n var lastSlash = path.lastIndexOf(\'/\');\n if (lastSlash === -1) return path;\n return path.substr(lastSlash+1);\n },extname:function (path) {\n return PATH.splitPath(path)[3];\n },join:function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return PATH.normalize(paths.join(\'/\'));\n },join2:function (l, r) {\n return PATH.normalize(l + \'/\' + r);\n },resolve:function () {\n var resolvedPath = \'\',\n resolvedAbsolute = false;\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : FS.cwd();\n // Skip empty and invalid entries\n if (typeof path !== \'string\') {\n throw new TypeError(\'Arguments to path.resolve must be strings\');\n } else if (!path) {\n return \'\'; // an invalid portion invalidates the whole thing\n }\n resolvedPath = path + \'/\' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === \'/\';\n }\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n resolvedPath = PATH.normalizeArray(resolvedPath.split(\'/\').filter(function(p) {\n return !!p;\n }), !resolvedAbsolute).join(\'/\');\n return ((resolvedAbsolute ? \'/\' : \'\') + resolvedPath) || \'.\';\n },relative:function (from, to) {\n from = PATH.resolve(from).substr(1);\n to = PATH.resolve(to).substr(1);\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== \'\') break;\n }\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== \'\') break;\n }\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n var fromParts = trim(from.split(\'/\'));\n var toParts = trim(to.split(\'/\'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push(\'..\');\n }\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join(\'/\');\n }};\n \n var TTY={ttys:[],init:function () {\n // https://github.com/kripken/emscripten/pull/1555\n // if (ENVIRONMENT_IS_NODE) {\n // // currently, FS.init does not distinguish if process.stdin is a file or TTY\n // // device, it always assumes it\'s a TTY device. because of this, we\'re forcing\n // // process.stdin to UTF8 encoding to at least make stdin reading compatible\n // // with text files until FS.init can be refactored.\n // process[\'stdin\'][\'setEncoding\'](\'utf8\');\n // }\n },shutdown:function () {\n // https://github.com/kripken/emscripten/pull/1555\n // if (ENVIRONMENT_IS_NODE) {\n // // inolen: any idea as to why node -e \'process.stdin.read()\' wouldn\'t exit immediately (with process.stdin being a tty)?\n // // isaacs: because now it\'s reading from the stream, you\'ve expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation\n // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists?\n // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle\n // // isaacs: do process.stdin.pause() and i\'d think it\'d probably close the pending call\n // process[\'stdin\'][\'pause\']();\n // }\n },register:function (dev, ops) {\n TTY.ttys[dev] = { input: [], output: [], ops: ops };\n FS.registerDevice(dev, TTY.stream_ops);\n },stream_ops:{open:function (stream) {\n var tty = TTY.ttys[stream.node.rdev];\n if (!tty) {\n throw new FS.ErrnoError(ERRNO_CODES.ENODEV);\n }\n stream.tty = tty;\n stream.seekable = false;\n },close:function (stream) {\n // flush any pending line data\n stream.tty.ops.flush(stream.tty);\n },flush:function (stream) {\n stream.tty.ops.flush(stream.tty);\n },read:function (stream, buffer, offset, length, pos /* ignored */) {\n if (!stream.tty || !stream.tty.ops.get_char) {\n throw new FS.ErrnoError(ERRNO_CODES.ENXIO);\n }\n var bytesRead = 0;\n for (var i = 0; i < length; i++) {\n var result;\n try {\n result = stream.tty.ops.get_char(stream.tty);\n } catch (e) {\n throw new FS.ErrnoError(ERRNO_CODES.EIO);\n }\n if (result === undefined && bytesRead === 0) {\n throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);\n }\n if (result === null || result === undefined) break;\n bytesRead++;\n buffer[offset+i] = result;\n }\n if (bytesRead) {\n stream.node.timestamp = Date.now();\n }\n return bytesRead;\n },write:function (stream, buffer, offset, length, pos) {\n if (!stream.tty || !stream.tty.ops.put_char) {\n throw new FS.ErrnoError(ERRNO_CODES.ENXIO);\n }\n for (var i = 0; i < length; i++) {\n try {\n stream.tty.ops.put_char(stream.tty, buffer[offset+i]);\n } catch (e) {\n throw new FS.ErrnoError(ERRNO_CODES.EIO);\n }\n }\n if (length) {\n stream.node.timestamp = Date.now();\n }\n return i;\n }},default_tty_ops:{get_char:function (tty) {\n if (!tty.input.length) {\n var result = null;\n if (ENVIRONMENT_IS_NODE) {\n // we will read data by chunks of BUFSIZE\n var BUFSIZE = 256;\n var buf = new Buffer(BUFSIZE);\n var bytesRead = 0;\n \n var isPosixPlatform = (process.platform != \'win32\'); // Node doesn\'t offer a direct check, so test by exclusion\n \n var fd = process.stdin.fd;\n if (isPosixPlatform) {\n // Linux and Mac cannot use process.stdin.fd (which isn\'t set up as sync)\n var usingDevice = false;\n try {\n fd = fs.openSync(\'/dev/stdin\', \'r\');\n usingDevice = true;\n } catch (e) {}\n }\n \n try {\n bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null);\n } catch(e) {\n // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes,\n // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0.\n if (e.toString().indexOf(\'EOF\') != -1) bytesRead = 0;\n else throw e;\n }\n \n if (usingDevice) { fs.closeSync(fd); }\n if (bytesRead > 0) {\n result = buf.slice(0, bytesRead).toString(\'utf-8\');\n } else {\n result = null;\n }\n \n } else if (typeof window != \'undefined\' &&\n typeof window.prompt == \'function\') {\n // Browser.\n result = window.prompt(\'Input: \'); // returns null on cancel\n if (result !== null) {\n result += \'\\n\';\n }\n } else if (typeof readline == \'function\') {\n // Command line.\n result = readline();\n if (result !== null) {\n result += \'\\n\';\n }\n }\n if (!result) {\n return null;\n }\n tty.input = intArrayFromString(result, true);\n }\n return tty.input.shift();\n },put_char:function (tty, val) {\n if (val === null || val === 10) {\n out(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n } else {\n if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle.\n }\n },flush:function (tty) {\n if (tty.output && tty.output.length > 0) {\n out(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n }\n }},default_tty1_ops:{put_char:function (tty, val) {\n if (val === null || val === 10) {\n err(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n } else {\n if (val != 0) tty.output.push(val);\n }\n },flush:function (tty) {\n if (tty.output && tty.output.length > 0) {\n err(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n }\n }}};\n \n var MEMFS={ops_table:null,mount:function (mount) {\n return MEMFS.createNode(null, \'/\', 16384 | 511 /* 0777 */, 0);\n },createNode:function (parent, name, mode, dev) {\n if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {\n // no supported\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n }\n if (!MEMFS.ops_table) {\n MEMFS.ops_table = {\n dir: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr,\n lookup: MEMFS.node_ops.lookup,\n mknod: MEMFS.node_ops.mknod,\n rename: MEMFS.node_ops.rename,\n unlink: MEMFS.node_ops.unlink,\n rmdir: MEMFS.node_ops.rmdir,\n readdir: MEMFS.node_ops.readdir,\n symlink: MEMFS.node_ops.symlink\n },\n stream: {\n llseek: MEMFS.stream_ops.llseek\n }\n },\n file: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr\n },\n stream: {\n llseek: MEMFS.stream_ops.llseek,\n read: MEMFS.stream_ops.read,\n write: MEMFS.stream_ops.write,\n allocate: MEMFS.stream_ops.allocate,\n mmap: MEMFS.stream_ops.mmap,\n msync: MEMFS.stream_ops.msync\n }\n },\n link: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr,\n readlink: MEMFS.node_ops.readlink\n },\n stream: {}\n },\n chrdev: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr\n },\n stream: FS.chrdev_stream_ops\n }\n };\n }\n var node = FS.createNode(parent, name, mode, dev);\n if (FS.isDir(node.mode)) {\n node.node_ops = MEMFS.ops_table.dir.node;\n node.stream_ops = MEMFS.ops_table.dir.stream;\n node.contents = {};\n } else if (FS.isFile(node.mode)) {\n node.node_ops = MEMFS.ops_table.file.node;\n node.stream_ops = MEMFS.ops_table.file.stream;\n node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity.\n // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred\n // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size\n // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme.\n node.contents = null; \n } else if (FS.isLink(node.mode)) {\n node.node_ops = MEMFS.ops_table.link.node;\n node.stream_ops = MEMFS.ops_table.link.stream;\n } else if (FS.isChrdev(node.mode)) {\n node.node_ops = MEMFS.ops_table.chrdev.node;\n node.stream_ops = MEMFS.ops_table.chrdev.stream;\n }\n node.timestamp = Date.now();\n // add the new node to the parent\n if (parent) {\n parent.contents[name] = node;\n }\n return node;\n },getFileDataAsRegularArray:function (node) {\n if (node.contents && node.contents.subarray) {\n var arr = [];\n for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]);\n return arr; // Returns a copy of the original data.\n }\n return node.contents; // No-op, the file contents are already in a JS array. Return as-is.\n },getFileDataAsTypedArray:function (node) {\n if (!node.contents) return new Uint8Array;\n if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes.\n return new Uint8Array(node.contents);\n },expandFileStorage:function (node, newCapacity) {\n // If we are asked to expand the size of a file that already exists, revert to using a standard JS array to store the file\n // instead of a typed array. This makes resizing the array more flexible because we can just .push() elements at the back to\n // increase the size.\n if (node.contents && node.contents.subarray && newCapacity > node.contents.length) {\n node.contents = MEMFS.getFileDataAsRegularArray(node);\n node.usedBytes = node.contents.length; // We might be writing to a lazy-loaded file which had overridden this property, so force-reset it.\n }\n \n if (!node.contents || node.contents.subarray) { // Keep using a typed array if creating a new storage, or if old one was a typed array as well.\n var prevCapacity = node.contents ? node.contents.length : 0;\n if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough.\n // Don\'t expand strictly to the given requested limit if it\'s only a very small increase, but instead geometrically grow capacity.\n // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to\n // avoid overshooting the allocation cap by a very large margin.\n var CAPACITY_DOUBLING_MAX = 1024 * 1024;\n newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) | 0);\n if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding.\n var oldContents = node.contents;\n node.contents = new Uint8Array(newCapacity); // Allocate new storage.\n if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage.\n return;\n }\n // Not using a typed array to back the file storage. Use a standard JS array instead.\n if (!node.contents && newCapacity > 0) node.contents = [];\n while (node.contents.length < newCapacity) node.contents.push(0);\n },resizeFileStorage:function (node, newSize) {\n if (node.usedBytes == newSize) return;\n if (newSize == 0) {\n node.contents = null; // Fully decommit when requesting a resize to zero.\n node.usedBytes = 0;\n return;\n }\n if (!node.contents || node.contents.subarray) { // Resize a typed array if that is being used as the backing store.\n var oldContents = node.contents;\n node.contents = new Uint8Array(new ArrayBuffer(newSize)); // Allocate new storage.\n if (oldContents) {\n node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage.\n }\n node.usedBytes = newSize;\n return;\n }\n // Backing with a JS array.\n if (!node.contents) node.contents = [];\n if (node.contents.length > newSize) node.contents.length = newSize;\n else while (node.contents.length < newSize) node.contents.push(0);\n node.usedBytes = newSize;\n },node_ops:{getattr:function (node) {\n var attr = {};\n // device numbers reuse inode numbers.\n attr.dev = FS.isChrdev(node.mode) ? node.id : 1;\n attr.ino = node.id;\n attr.mode = node.mode;\n attr.nlink = 1;\n attr.uid = 0;\n attr.gid = 0;\n attr.rdev = node.rdev;\n if (FS.isDir(node.mode)) {\n attr.size = 4096;\n } else if (FS.isFile(node.mode)) {\n attr.size = node.usedBytes;\n } else if (FS.isLink(node.mode)) {\n attr.size = node.link.length;\n } else {\n attr.size = 0;\n }\n attr.atime = new Date(node.timestamp);\n attr.mtime = new Date(node.timestamp);\n attr.ctime = new Date(node.timestamp);\n // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize),\n // but this is not required by the standard.\n attr.blksize = 4096;\n attr.blocks = Math.ceil(attr.size / attr.blksize);\n return attr;\n },setattr:function (node, attr) {\n if (attr.mode !== undefined) {\n node.mode = attr.mode;\n }\n if (attr.timestamp !== undefined) {\n node.timestamp = attr.timestamp;\n }\n if (attr.size !== undefined) {\n MEMFS.resizeFileStorage(node, attr.size);\n }\n },lookup:function (parent, name) {\n throw FS.genericErrors[ERRNO_CODES.ENOENT];\n },mknod:function (parent, name, mode, dev) {\n return MEMFS.createNode(parent, name, mode, dev);\n },rename:function (old_node, new_dir, new_name) {\n // if we\'re overwriting a directory at new_name, make sure it\'s empty.\n if (FS.isDir(old_node.mode)) {\n var new_node;\n try {\n new_node = FS.lookupNode(new_dir, new_name);\n } catch (e) {\n }\n if (new_node) {\n for (var i in new_node.contents) {\n throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);\n }\n }\n }\n // do the internal rewiring\n delete old_node.parent.contents[old_node.name];\n old_node.name = new_name;\n new_dir.contents[new_name] = old_node;\n old_node.parent = new_dir;\n },unlink:function (parent, name) {\n delete parent.contents[name];\n },rmdir:function (parent, name) {\n var node = FS.lookupNode(parent, name);\n for (var i in node.contents) {\n throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);\n }\n delete parent.contents[name];\n },readdir:function (node) {\n var entries = [\'.\', \'..\']\n for (var key in node.contents) {\n if (!node.contents.hasOwnProperty(key)) {\n continue;\n }\n entries.push(key);\n }\n return entries;\n },symlink:function (parent, newname, oldpath) {\n var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0);\n node.link = oldpath;\n return node;\n },readlink:function (node) {\n if (!FS.isLink(node.mode)) {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n return node.link;\n }},stream_ops:{read:function (stream, buffer, offset, length, position) {\n var contents = stream.node.contents;\n if (position >= stream.node.usedBytes) return 0;\n var size = Math.min(stream.node.usedBytes - position, length);\n assert(size >= 0);\n if (size > 8 && contents.subarray) { // non-trivial, and typed array\n buffer.set(contents.subarray(position, position + size), offset);\n } else {\n for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i];\n }\n return size;\n },write:function (stream, buffer, offset, length, position, canOwn) {\n // If memory can grow, we don\'t want to hold on to references of\n // the memory Buffer, as they may get invalidated. That means\n // we need to do a copy here.\n canOwn = false;\n \n if (!length) return 0;\n var node = stream.node;\n node.timestamp = Date.now();\n \n if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array?\n if (canOwn) {\n node.contents = buffer.subarray(offset, offset + length);\n node.usedBytes = length;\n return length;\n } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don\'t need to care about old data.\n node.contents = new Uint8Array(buffer.subarray(offset, offset + length));\n node.usedBytes = length;\n return length;\n } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file?\n node.contents.set(buffer.subarray(offset, offset + length), position);\n return length;\n }\n }\n \n // Appending to an existing file and we need to reallocate, or source data did not come as a typed array.\n MEMFS.expandFileStorage(node, position+length);\n if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); // Use typed array write if available.\n else {\n for (var i = 0; i < length; i++) {\n node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not.\n }\n }\n node.usedBytes = Math.max(node.usedBytes, position+length);\n return length;\n },llseek:function (stream, offset, whence) {\n var position = offset;\n if (whence === 1) { // SEEK_CUR.\n position += stream.position;\n } else if (whence === 2) { // SEEK_END.\n if (FS.isFile(stream.node.mode)) {\n position += stream.node.usedBytes;\n }\n }\n if (position < 0) {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n return position;\n },allocate:function (stream, offset, length) {\n MEMFS.expandFileStorage(stream.node, offset + length);\n stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);\n },mmap:function (stream, buffer, offset, length, position, prot, flags) {\n if (!FS.isFile(stream.node.mode)) {\n throw new FS.ErrnoError(ERRNO_CODES.ENODEV);\n }\n var ptr;\n var allocated;\n var contents = stream.node.contents;\n // Only make a new copy when MAP_PRIVATE is specified.\n if ( !(flags & 2) &&\n (contents.buffer === buffer || contents.buffer === buffer.buffer) ) {\n // We can\'t emulate MAP_SHARED when the file is not backed by the buffer\n // we\'re mapping to (e.g. the HEAP buffer).\n allocated = false;\n ptr = contents.byteOffset;\n } else {\n // Try to avoid unnecessary slices.\n if (position > 0 || position + length < stream.node.usedBytes) {\n if (contents.subarray) {\n contents = contents.subarray(position, position + length);\n } else {\n contents = Array.prototype.slice.call(contents, position, position + length);\n }\n }\n allocated = true;\n ptr = _malloc(length);\n if (!ptr) {\n throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);\n }\n buffer.set(contents, ptr);\n }\n return { ptr: ptr, allocated: allocated };\n },msync:function (stream, buffer, offset, length, mmapFlags) {\n if (!FS.isFile(stream.node.mode)) {\n throw new FS.ErrnoError(ERRNO_CODES.ENODEV);\n }\n if (mmapFlags & 2) {\n // MAP_PRIVATE calls need not to be synced back to underlying fs\n return 0;\n }\n \n var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);\n // should we check if bytesWritten and length are the same?\n return 0;\n }}};\n \n var IDBFS={dbs:{},indexedDB:function () {\n if (typeof indexedDB !== \'undefined\') return indexedDB;\n var ret = null;\n if (typeof window === \'object\') ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;\n assert(ret, \'IDBFS used, but indexedDB not supported\');\n return ret;\n },DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) {\n // reuse all of the core MEMFS functionality\n return MEMFS.mount.apply(null, arguments);\n },syncfs:function (mount, populate, callback) {\n IDBFS.getLocalSet(mount, function(err, local) {\n if (err) return callback(err);\n \n IDBFS.getRemoteSet(mount, function(err, remote) {\n if (err) return callback(err);\n \n var src = populate ? remote : local;\n var dst = populate ? local : remote;\n \n IDBFS.reconcile(src, dst, callback);\n });\n });\n },getDB:function (name, callback) {\n // check the cache first\n var db = IDBFS.dbs[name];\n if (db) {\n return callback(null, db);\n }\n \n var req;\n try {\n req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION);\n } catch (e) {\n return callback(e);\n }\n if (!req) {\n return callback("Unable to connect to IndexedDB");\n }\n req.onupgradeneeded = function(e) {\n var db = e.target.result;\n var transaction = e.target.transaction;\n \n var fileStore;\n \n if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) {\n fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME);\n } else {\n fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME);\n }\n \n if (!fileStore.indexNames.contains(\'timestamp\')) {\n fileStore.createIndex(\'timestamp\', \'timestamp\', { unique: false });\n }\n };\n req.onsuccess = function() {\n db = req.result;\n \n // add to the cache\n IDBFS.dbs[name] = db;\n callback(null, db);\n };\n req.onerror = function(e) {\n callback(this.error);\n e.preventDefault();\n };\n },getLocalSet:function (mount, callback) {\n var entries = {};\n \n function isRealDir(p) {\n return p !== \'.\' && p !== \'..\';\n };\n function toAbsolute(root) {\n return function(p) {\n return PATH.join2(root, p);\n }\n };\n \n var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));\n \n while (check.length) {\n var path = check.pop();\n var stat;\n \n try {\n stat = FS.stat(path);\n } catch (e) {\n return callback(e);\n }\n \n if (FS.isDir(stat.mode)) {\n check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path)));\n }\n \n entries[path] = { timestamp: stat.mtime };\n }\n \n return callback(null, { type: \'local\', entries: entries });\n },getRemoteSet:function (mount, callback) {\n var entries = {};\n \n IDBFS.getDB(mount.mountpoint, function(err, db) {\n if (err) return callback(err);\n \n try {\n var transaction = db.transaction([IDBFS.DB_STORE_NAME], \'readonly\');\n transaction.onerror = function(e) {\n callback(this.error);\n e.preventDefault();\n };\n \n var store = transaction.objectStore(IDBFS.DB_STORE_NAME);\n var index = store.index(\'timestamp\');\n \n index.openKeyCursor().onsuccess = function(event) {\n var cursor = event.target.result;\n \n if (!cursor) {\n return callback(null, { type: \'remote\', db: db, entries: entries });\n }\n \n entries[cursor.primaryKey] = { timestamp: cursor.key };\n \n cursor.continue();\n };\n } catch (e) {\n return callback(e);\n }\n });\n },loadLocalEntry:function (path, callback) {\n var stat, node;\n \n try {\n var lookup = FS.lookupPath(path);\n node = lookup.node;\n stat = FS.stat(path);\n } catch (e) {\n return callback(e);\n }\n \n if (FS.isDir(stat.mode)) {\n return callback(null, { timestamp: stat.mtime, mode: stat.mode });\n } else if (FS.isFile(stat.mode)) {\n // Performance consideration: storing a normal JavaScript array to a IndexedDB is much slower than storing a typed array.\n // Therefore always convert the file contents to a typed array first before writing the data to IndexedDB.\n node.contents = MEMFS.getFileDataAsTypedArray(node);\n return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents });\n } else {\n return callback(new Error(\'node type not supported\'));\n }\n },storeLocalEntry:function (path, entry, callback) {\n try {\n if (FS.isDir(entry.mode)) {\n FS.mkdir(path, entry.mode);\n } else if (FS.isFile(entry.mode)) {\n FS.writeFile(path, entry.contents, { canOwn: true });\n } else {\n return callback(new Error(\'node type not supported\'));\n }\n \n FS.chmod(path, entry.mode);\n FS.utime(path, entry.timestamp, entry.timestamp);\n } catch (e) {\n return callback(e);\n }\n \n callback(null);\n },removeLocalEntry:function (path, callback) {\n try {\n var lookup = FS.lookupPath(path);\n var stat = FS.stat(path);\n \n if (FS.isDir(stat.mode)) {\n FS.rmdir(path);\n } else if (FS.isFile(stat.mode)) {\n FS.unlink(path);\n }\n } catch (e) {\n return callback(e);\n }\n \n callback(null);\n },loadRemoteEntry:function (store, path, callback) {\n var req = store.get(path);\n req.onsuccess = function(event) { callback(null, event.target.result); };\n req.onerror = function(e) {\n callback(this.error);\n e.preventDefault();\n };\n },storeRemoteEntry:function (store, path, entry, callback) {\n var req = store.put(entry, path);\n req.onsuccess = function() { callback(null); };\n req.onerror = function(e) {\n callback(this.error);\n e.preventDefault();\n };\n },removeRemoteEntry:function (store, path, callback) {\n var req = store.delete(path);\n req.onsuccess = function() { callback(null); };\n req.onerror = function(e) {\n callback(this.error);\n e.preventDefault();\n };\n },reconcile:function (src, dst, callback) {\n var total = 0;\n \n var create = [];\n Object.keys(src.entries).forEach(function (key) {\n var e = src.entries[key];\n var e2 = dst.entries[key];\n if (!e2 || e.timestamp > e2.timestamp) {\n create.push(key);\n total++;\n }\n });\n \n var remove = [];\n Object.keys(dst.entries).forEach(function (key) {\n var e = dst.entries[key];\n var e2 = src.entries[key];\n if (!e2) {\n remove.push(key);\n total++;\n }\n });\n \n if (!total) {\n return callback(null);\n }\n \n var errored = false;\n var completed = 0;\n var db = src.type === \'remote\' ? src.db : dst.db;\n var transaction = db.transaction([IDBFS.DB_STORE_NAME], \'readwrite\');\n var store = transaction.objectStore(IDBFS.DB_STORE_NAME);\n \n function done(err) {\n if (err) {\n if (!done.errored) {\n done.errored = true;\n return callback(err);\n }\n return;\n }\n if (++completed >= total) {\n return callback(null);\n }\n };\n \n transaction.onerror = function(e) {\n done(this.error);\n e.preventDefault();\n };\n \n // sort paths in ascending order so directory entries are created\n // before the files inside them\n create.sort().forEach(function (path) {\n if (dst.type === \'local\') {\n IDBFS.loadRemoteEntry(store, path, function (err, entry) {\n if (err) return done(err);\n IDBFS.storeLocalEntry(path, entry, done);\n });\n } else {\n IDBFS.loadLocalEntry(path, function (err, entry) {\n if (err) return done(err);\n IDBFS.storeRemoteEntry(store, path, entry, done);\n });\n }\n });\n \n // sort paths in descending order so files are deleted before their\n // parent directories\n remove.sort().reverse().forEach(function(path) {\n if (dst.type === \'local\') {\n IDBFS.removeLocalEntry(path, done);\n } else {\n IDBFS.removeRemoteEntry(store, path, done);\n }\n });\n }};\n \n var NODEFS={isWindows:false,staticInit:function () {\n NODEFS.isWindows = !!process.platform.match(/^win/);\n var flags = process["binding"]("constants");\n // Node.js 4 compatibility: it has no namespaces for constants\n if (flags["fs"]) {\n flags = flags["fs"];\n }\n NODEFS.flagsForNodeMap = {\n "1024": flags["O_APPEND"],\n "64": flags["O_CREAT"],\n "128": flags["O_EXCL"],\n "0": flags["O_RDONLY"],\n "2": flags["O_RDWR"],\n "4096": flags["O_SYNC"],\n "512": flags["O_TRUNC"],\n "1": flags["O_WRONLY"]\n };\n },bufferFrom:function (arrayBuffer) {\n // Node.js < 4.5 compatibility: Buffer.from does not support ArrayBuffer\n // Buffer.from before 4.5 was just a method inherited from Uint8Array\n // Buffer.alloc has been added with Buffer.from together, so check it instead\n return Buffer.alloc ? Buffer.from(arrayBuffer) : new Buffer(arrayBuffer);\n },mount:function (mount) {\n assert(ENVIRONMENT_IS_NODE);\n return NODEFS.createNode(null, \'/\', NODEFS.getMode(mount.opts.root), 0);\n },createNode:function (parent, name, mode, dev) {\n if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n var node = FS.createNode(parent, name, mode);\n node.node_ops = NODEFS.node_ops;\n node.stream_ops = NODEFS.stream_ops;\n return node;\n },getMode:function (path) {\n var stat;\n try {\n stat = fs.lstatSync(path);\n if (NODEFS.isWindows) {\n // Node.js on Windows never represents permission bit \'x\', so\n // propagate read bits to execute bits\n stat.mode = stat.mode | ((stat.mode & 292) >> 2);\n }\n } catch (e) {\n if (!e.code) throw e;\n throw new FS.ErrnoError(ERRNO_CODES[e.code]);\n }\n return stat.mode;\n },realPath:function (node) {\n var parts = [];\n while (node.parent !== node) {\n parts.push(node.name);\n node = node.parent;\n }\n parts.push(node.mount.opts.root);\n parts.reverse();\n return PATH.join.apply(null, parts);\n },flagsForNode:function (flags) {\n flags &= ~0x200000 /*O_PATH*/; // Ignore this flag from musl, otherwise node.js fails to open the file.\n flags &= ~0x800 /*O_NONBLOCK*/; // Ignore this flag from musl, otherwise node.js fails to open the file.\n flags &= ~0x8000 /*O_LARGEFILE*/; // Ignore this flag from musl, otherwise node.js fails to open the file.\n flags &= ~0x80000 /*O_CLOEXEC*/; // Some applications may pass it; it makes no sense for a single process.\n var newFlags = 0;\n for (var k in NODEFS.flagsForNodeMap) {\n if (flags & k) {\n newFlags |= NODEFS.flagsForNodeMap[k];\n flags ^= k;\n }\n }\n \n if (!flags) {\n return newFlags;\n } else {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n },node_ops:{getattr:function (node) {\n var path = NODEFS.realPath(node);\n var stat;\n try {\n stat = fs.lstatSync(path);\n } catch (e) {\n if (!e.code) throw e;\n throw new FS.ErrnoError(ERRNO_CODES[e.code]);\n }\n // node.js v0.10.20 doesn\'t report blksize and blocks on Windows. Fake them with default blksize of 4096.\n // See http://support.microsoft.com/kb/140365\n if (NODEFS.isWindows && !stat.blksize) {\n stat.blksize = 4096;\n }\n if (NODEFS.isWindows && !stat.blocks) {\n stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0;\n }\n return {\n dev: stat.dev,\n ino: stat.ino,\n mode: stat.mode,\n nlink: stat.nlink,\n uid: stat.uid,\n gid: stat.gid,\n rdev: stat.rdev,\n size: stat.size,\n atime: stat.atime,\n mtime: stat.mtime,\n ctime: stat.ctime,\n blksize: stat.blksize,\n blocks: stat.blocks\n };\n },setattr:function (node, attr) {\n var path = NODEFS.realPath(node);\n try {\n if (attr.mode !== undefined) {\n fs.chmodSync(path, attr.mode);\n // update the common node structure mode as well\n node.mode = attr.mode;\n }\n if (attr.timestamp !== undefined) {\n var date = new Date(attr.timestamp);\n fs.utimesSync(path, date, date);\n }\n if (attr.size !== undefined) {\n fs.truncateSync(path, attr.size);\n }\n } catch (e) {\n if (!e.code) throw e;\n throw new FS.ErrnoError(ERRNO_CODES[e.code]);\n }\n },lookup:function (parent, name) {\n var path = PATH.join2(NODEFS.realPath(parent), name);\n var mode = NODEFS.getMode(path);\n return NODEFS.createNode(parent, name, mode);\n },mknod:function (parent, name, mode, dev) {\n var node = NODEFS.createNode(parent, name, mode, dev);\n // create the backing node for this in the fs root as well\n var path = NODEFS.realPath(node);\n try {\n if (FS.isDir(node.mode)) {\n fs.mkdirSync(path, node.mode);\n } else {\n fs.writeFileSync(path, \'\', { mode: node.mode });\n }\n } catch (e) {\n if (!e.code) throw e;\n throw new FS.ErrnoError(ERRNO_CODES[e.code]);\n }\n return node;\n },rename:function (oldNode, newDir, newName) {\n var oldPath = NODEFS.realPath(oldNode);\n var newPath = PATH.join2(NODEFS.realPath(newDir), newName);\n try {\n fs.renameSync(oldPath, newPath);\n } catch (e) {\n if (!e.code) throw e;\n throw new FS.ErrnoError(ERRNO_CODES[e.code]);\n }\n },unlink:function (parent, name) {\n var path = PATH.join2(NODEFS.realPath(parent), name);\n try {\n fs.unlinkSync(path);\n } catch (e) {\n if (!e.code) throw e;\n throw new FS.ErrnoError(ERRNO_CODES[e.code]);\n }\n },rmdir:function (parent, name) {\n var path = PATH.join2(NODEFS.realPath(parent), name);\n try {\n fs.rmdirSync(path);\n } catch (e) {\n if (!e.code) throw e;\n throw new FS.ErrnoError(ERRNO_CODES[e.code]);\n }\n },readdir:function (node) {\n var path = NODEFS.realPath(node);\n try {\n return fs.readdirSync(path);\n } catch (e) {\n if (!e.code) throw e;\n throw new FS.ErrnoError(ERRNO_CODES[e.code]);\n }\n },symlink:function (parent, newName, oldPath) {\n var newPath = PATH.join2(NODEFS.realPath(parent), newName);\n try {\n fs.symlinkSync(oldPath, newPath);\n } catch (e) {\n if (!e.code) throw e;\n throw new FS.ErrnoError(ERRNO_CODES[e.code]);\n }\n },readlink:function (node) {\n var path = NODEFS.realPath(node);\n try {\n path = fs.readlinkSync(path);\n path = NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root), path);\n return path;\n } catch (e) {\n if (!e.code) throw e;\n throw new FS.ErrnoError(ERRNO_CODES[e.code]);\n }\n }},stream_ops:{open:function (stream) {\n var path = NODEFS.realPath(stream.node);\n try {\n if (FS.isFile(stream.node.mode)) {\n stream.nfd = fs.openSync(path, NODEFS.flagsForNode(stream.flags));\n }\n } catch (e) {\n if (!e.code) throw e;\n throw new FS.ErrnoError(ERRNO_CODES[e.code]);\n }\n },close:function (stream) {\n try {\n if (FS.isFile(stream.node.mode) && stream.nfd) {\n fs.closeSync(stream.nfd);\n }\n } catch (e) {\n if (!e.code) throw e;\n throw new FS.ErrnoError(ERRNO_CODES[e.code]);\n }\n },read:function (stream, buffer, offset, length, position) {\n // Node.js < 6 compatibility: node errors on 0 length reads\n if (length === 0) return 0;\n try {\n return fs.readSync(stream.nfd, NODEFS.bufferFrom(buffer.buffer), offset, length, position);\n } catch (e) {\n throw new FS.ErrnoError(ERRNO_CODES[e.code]);\n }\n },write:function (stream, buffer, offset, length, position) {\n try {\n return fs.writeSync(stream.nfd, NODEFS.bufferFrom(buffer.buffer), offset, length, position);\n } catch (e) {\n throw new FS.ErrnoError(ERRNO_CODES[e.code]);\n }\n },llseek:function (stream, offset, whence) {\n var position = offset;\n if (whence === 1) { // SEEK_CUR.\n position += stream.position;\n } else if (whence === 2) { // SEEK_END.\n if (FS.isFile(stream.node.mode)) {\n try {\n var stat = fs.fstatSync(stream.nfd);\n position += stat.size;\n } catch (e) {\n throw new FS.ErrnoError(ERRNO_CODES[e.code]);\n }\n }\n }\n \n if (position < 0) {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n \n return position;\n }}};\n \n var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function (mount) {\n assert(ENVIRONMENT_IS_WORKER);\n if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync();\n var root = WORKERFS.createNode(null, \'/\', WORKERFS.DIR_MODE, 0);\n var createdParents = {};\n function ensureParent(path) {\n // return the parent node, creating subdirs as necessary\n var parts = path.split(\'/\');\n var parent = root;\n for (var i = 0; i < parts.length-1; i++) {\n var curr = parts.slice(0, i+1).join(\'/\');\n // Issue 4254: Using curr as a node name will prevent the node\n // from being found in FS.nameTable when FS.open is called on\n // a path which holds a child of this node,\n // given that all FS functions assume node names\n // are just their corresponding parts within their given path,\n // rather than incremental aggregates which include their parent\'s\n // directories.\n if (!createdParents[curr]) {\n createdParents[curr] = WORKERFS.createNode(parent, parts[i], WORKERFS.DIR_MODE, 0);\n }\n parent = createdParents[curr];\n }\n return parent;\n }\n function base(path) {\n var parts = path.split(\'/\');\n return parts[parts.length-1];\n }\n // We also accept FileList here, by using Array.prototype\n Array.prototype.forEach.call(mount.opts["files"] || [], function(file) {\n WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate);\n });\n (mount.opts["blobs"] || []).forEach(function(obj) {\n WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]);\n });\n (mount.opts["packages"] || []).forEach(function(pack) {\n pack[\'metadata\'].files.forEach(function(file) {\n var name = file.filename.substr(1); // remove initial slash\n WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack[\'blob\'].slice(file.start, file.end));\n });\n });\n return root;\n },createNode:function (parent, name, mode, dev, contents, mtime) {\n var node = FS.createNode(parent, name, mode);\n node.mode = mode;\n node.node_ops = WORKERFS.node_ops;\n node.stream_ops = WORKERFS.stream_ops;\n node.timestamp = (mtime || new Date).getTime();\n assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE);\n if (mode === WORKERFS.FILE_MODE) {\n node.size = contents.size;\n node.contents = contents;\n } else {\n node.size = 4096;\n node.contents = {};\n }\n if (parent) {\n parent.contents[name] = node;\n }\n return node;\n },node_ops:{getattr:function (node) {\n return {\n dev: 1,\n ino: undefined,\n mode: node.mode,\n nlink: 1,\n uid: 0,\n gid: 0,\n rdev: undefined,\n size: node.size,\n atime: new Date(node.timestamp),\n mtime: new Date(node.timestamp),\n ctime: new Date(node.timestamp),\n blksize: 4096,\n blocks: Math.ceil(node.size / 4096),\n };\n },setattr:function (node, attr) {\n if (attr.mode !== undefined) {\n node.mode = attr.mode;\n }\n if (attr.timestamp !== undefined) {\n node.timestamp = attr.timestamp;\n }\n },lookup:function (parent, name) {\n throw new FS.ErrnoError(ERRNO_CODES.ENOENT);\n },mknod:function (parent, name, mode, dev) {\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n },rename:function (oldNode, newDir, newName) {\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n },unlink:function (parent, name) {\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n },rmdir:function (parent, name) {\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n },readdir:function (node) {\n var entries = [\'.\', \'..\'];\n for (var key in node.contents) {\n if (!node.contents.hasOwnProperty(key)) {\n continue;\n }\n entries.push(key);\n }\n return entries;\n },symlink:function (parent, newName, oldPath) {\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n },readlink:function (node) {\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n }},stream_ops:{read:function (stream, buffer, offset, length, position) {\n if (position >= stream.node.size) return 0;\n var chunk = stream.node.contents.slice(position, position + length);\n var ab = WORKERFS.reader.readAsArrayBuffer(chunk);\n buffer.set(new Uint8Array(ab), offset);\n return chunk.size;\n },write:function (stream, buffer, offset, length, position) {\n throw new FS.ErrnoError(ERRNO_CODES.EIO);\n },llseek:function (stream, offset, whence) {\n var position = offset;\n if (whence === 1) { // SEEK_CUR.\n position += stream.position;\n } else if (whence === 2) { // SEEK_END.\n if (FS.isFile(stream.node.mode)) {\n position += stream.node.size;\n }\n }\n if (position < 0) {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n return position;\n }}};\n \n var _stdin=STATICTOP; STATICTOP += 16;;\n \n var _stdout=STATICTOP; STATICTOP += 16;;\n \n var _stderr=STATICTOP; STATICTOP += 16;;var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function (e) {\n if (!(e instanceof FS.ErrnoError)) throw e + \' : \' + stackTrace();\n return ___setErrNo(e.errno);\n },lookupPath:function (path, opts) {\n path = PATH.resolve(FS.cwd(), path);\n opts = opts || {};\n \n if (!path) return { path: \'\', node: null };\n \n var defaults = {\n follow_mount: true,\n recurse_count: 0\n };\n for (var key in defaults) {\n if (opts[key] === undefined) {\n opts[key] = defaults[key];\n }\n }\n \n if (opts.recurse_count > 8) { // max recursive lookup of 8\n throw new FS.ErrnoError(ERRNO_CODES.ELOOP);\n }\n \n // split the path\n var parts = PATH.normalizeArray(path.split(\'/\').filter(function(p) {\n return !!p;\n }), false);\n \n // start at the root\n var current = FS.root;\n var current_path = \'/\';\n \n for (var i = 0; i < parts.length; i++) {\n var islast = (i === parts.length-1);\n if (islast && opts.parent) {\n // stop resolving\n break;\n }\n \n current = FS.lookupNode(current, parts[i]);\n current_path = PATH.join2(current_path, parts[i]);\n \n // jump to the mount\'s root node if this is a mountpoint\n if (FS.isMountpoint(current)) {\n if (!islast || (islast && opts.follow_mount)) {\n current = current.mounted.root;\n }\n }\n \n // by default, lookupPath will not follow a symlink if it is the final path component.\n // setting opts.follow = true will override this behavior.\n if (!islast || opts.follow) {\n var count = 0;\n while (FS.isLink(current.mode)) {\n var link = FS.readlink(current_path);\n current_path = PATH.resolve(PATH.dirname(current_path), link);\n \n var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count });\n current = lookup.node;\n \n if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX).\n throw new FS.ErrnoError(ERRNO_CODES.ELOOP);\n }\n }\n }\n }\n \n return { path: current_path, node: current };\n },getPath:function (node) {\n var path;\n while (true) {\n if (FS.isRoot(node)) {\n var mount = node.mount.mountpoint;\n if (!path) return mount;\n return mount[mount.length-1] !== \'/\' ? mount + \'/\' + path : mount + path;\n }\n path = path ? node.name + \'/\' + path : node.name;\n node = node.parent;\n }\n },hashName:function (parentid, name) {\n var hash = 0;\n \n \n for (var i = 0; i < name.length; i++) {\n hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0;\n }\n return ((parentid + hash) >>> 0) % FS.nameTable.length;\n },hashAddNode:function (node) {\n var hash = FS.hashName(node.parent.id, node.name);\n node.name_next = FS.nameTable[hash];\n FS.nameTable[hash] = node;\n },hashRemoveNode:function (node) {\n var hash = FS.hashName(node.parent.id, node.name);\n if (FS.nameTable[hash] === node) {\n FS.nameTable[hash] = node.name_next;\n } else {\n var current = FS.nameTable[hash];\n while (current) {\n if (current.name_next === node) {\n current.name_next = node.name_next;\n break;\n }\n current = current.name_next;\n }\n }\n },lookupNode:function (parent, name) {\n var err = FS.mayLookup(parent);\n if (err) {\n throw new FS.ErrnoError(err, parent);\n }\n var hash = FS.hashName(parent.id, name);\n for (var node = FS.nameTable[hash]; node; node = node.name_next) {\n var nodeName = node.name;\n if (node.parent.id === parent.id && nodeName === name) {\n return node;\n }\n }\n // if we failed to find it in the cache, call into the VFS\n return FS.lookup(parent, name);\n },createNode:function (parent, name, mode, rdev) {\n if (!FS.FSNode) {\n FS.FSNode = function(parent, name, mode, rdev) {\n if (!parent) {\n parent = this; // root node sets parent to itself\n }\n this.parent = parent;\n this.mount = parent.mount;\n this.mounted = null;\n this.id = FS.nextInode++;\n this.name = name;\n this.mode = mode;\n this.node_ops = {};\n this.stream_ops = {};\n this.rdev = rdev;\n };\n \n FS.FSNode.prototype = {};\n \n // compatibility\n var readMode = 292 | 73;\n var writeMode = 146;\n \n // NOTE we must use Object.defineProperties instead of individual calls to\n // Object.defineProperty in order to make closure compiler happy\n Object.defineProperties(FS.FSNode.prototype, {\n read: {\n get: function() { return (this.mode & readMode) === readMode; },\n set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; }\n },\n write: {\n get: function() { return (this.mode & writeMode) === writeMode; },\n set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; }\n },\n isFolder: {\n get: function() { return FS.isDir(this.mode); }\n },\n isDevice: {\n get: function() { return FS.isChrdev(this.mode); }\n }\n });\n }\n \n var node = new FS.FSNode(parent, name, mode, rdev);\n \n FS.hashAddNode(node);\n \n return node;\n },destroyNode:function (node) {\n FS.hashRemoveNode(node);\n },isRoot:function (node) {\n return node === node.parent;\n },isMountpoint:function (node) {\n return !!node.mounted;\n },isFile:function (mode) {\n return (mode & 61440) === 32768;\n },isDir:function (mode) {\n return (mode & 61440) === 16384;\n },isLink:function (mode) {\n return (mode & 61440) === 40960;\n },isChrdev:function (mode) {\n return (mode & 61440) === 8192;\n },isBlkdev:function (mode) {\n return (mode & 61440) === 24576;\n },isFIFO:function (mode) {\n return (mode & 61440) === 4096;\n },isSocket:function (mode) {\n return (mode & 49152) === 49152;\n },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 (str) {\n var flags = FS.flagModes[str];\n if (typeof flags === \'undefined\') {\n throw new Error(\'Unknown file open mode: \' + str);\n }\n return flags;\n },flagsToPermissionString:function (flag) {\n var perms = [\'r\', \'w\', \'rw\'][flag & 3];\n if ((flag & 512)) {\n perms += \'w\';\n }\n return perms;\n },nodePermissions:function (node, perms) {\n if (FS.ignorePermissions) {\n return 0;\n }\n // return 0 if any user, group or owner bits are set.\n if (perms.indexOf(\'r\') !== -1 && !(node.mode & 292)) {\n return ERRNO_CODES.EACCES;\n } else if (perms.indexOf(\'w\') !== -1 && !(node.mode & 146)) {\n return ERRNO_CODES.EACCES;\n } else if (perms.indexOf(\'x\') !== -1 && !(node.mode & 73)) {\n return ERRNO_CODES.EACCES;\n }\n return 0;\n },mayLookup:function (dir) {\n var err = FS.nodePermissions(dir, \'x\');\n if (err) return err;\n if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES;\n return 0;\n },mayCreate:function (dir, name) {\n try {\n var node = FS.lookupNode(dir, name);\n return ERRNO_CODES.EEXIST;\n } catch (e) {\n }\n return FS.nodePermissions(dir, \'wx\');\n },mayDelete:function (dir, name, isdir) {\n var node;\n try {\n node = FS.lookupNode(dir, name);\n } catch (e) {\n return e.errno;\n }\n var err = FS.nodePermissions(dir, \'wx\');\n if (err) {\n return err;\n }\n if (isdir) {\n if (!FS.isDir(node.mode)) {\n return ERRNO_CODES.ENOTDIR;\n }\n if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {\n return ERRNO_CODES.EBUSY;\n }\n } else {\n if (FS.isDir(node.mode)) {\n return ERRNO_CODES.EISDIR;\n }\n }\n return 0;\n },mayOpen:function (node, flags) {\n if (!node) {\n return ERRNO_CODES.ENOENT;\n }\n if (FS.isLink(node.mode)) {\n return ERRNO_CODES.ELOOP;\n } else if (FS.isDir(node.mode)) {\n if (FS.flagsToPermissionString(flags) !== \'r\' || // opening for write\n (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only)\n return ERRNO_CODES.EISDIR;\n }\n }\n return FS.nodePermissions(node, FS.flagsToPermissionString(flags));\n },MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) {\n fd_start = fd_start || 0;\n fd_end = fd_end || FS.MAX_OPEN_FDS;\n for (var fd = fd_start; fd <= fd_end; fd++) {\n if (!FS.streams[fd]) {\n return fd;\n }\n }\n throw new FS.ErrnoError(ERRNO_CODES.EMFILE);\n },getStream:function (fd) {\n return FS.streams[fd];\n },createStream:function (stream, fd_start, fd_end) {\n if (!FS.FSStream) {\n FS.FSStream = function(){};\n FS.FSStream.prototype = {};\n // compatibility\n Object.defineProperties(FS.FSStream.prototype, {\n object: {\n get: function() { return this.node; },\n set: function(val) { this.node = val; }\n },\n isRead: {\n get: function() { return (this.flags & 2097155) !== 1; }\n },\n isWrite: {\n get: function() { return (this.flags & 2097155) !== 0; }\n },\n isAppend: {\n get: function() { return (this.flags & 1024); }\n }\n });\n }\n // clone it, so we can return an instance of FSStream\n var newStream = new FS.FSStream();\n for (var p in stream) {\n newStream[p] = stream[p];\n }\n stream = newStream;\n var fd = FS.nextfd(fd_start, fd_end);\n stream.fd = fd;\n FS.streams[fd] = stream;\n return stream;\n },closeStream:function (fd) {\n FS.streams[fd] = null;\n },chrdev_stream_ops:{open:function (stream) {\n var device = FS.getDevice(stream.node.rdev);\n // override node\'s stream ops with the device\'s\n stream.stream_ops = device.stream_ops;\n // forward the open call\n if (stream.stream_ops.open) {\n stream.stream_ops.open(stream);\n }\n },llseek:function () {\n throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);\n }},major:function (dev) {\n return ((dev) >> 8);\n },minor:function (dev) {\n return ((dev) & 0xff);\n },makedev:function (ma, mi) {\n return ((ma) << 8 | (mi));\n },registerDevice:function (dev, ops) {\n FS.devices[dev] = { stream_ops: ops };\n },getDevice:function (dev) {\n return FS.devices[dev];\n },getMounts:function (mount) {\n var mounts = [];\n var check = [mount];\n \n while (check.length) {\n var m = check.pop();\n \n mounts.push(m);\n \n check.push.apply(check, m.mounts);\n }\n \n return mounts;\n },syncfs:function (populate, callback) {\n if (typeof(populate) === \'function\') {\n callback = populate;\n populate = false;\n }\n \n FS.syncFSRequests++;\n \n if (FS.syncFSRequests > 1) {\n console.log(\'warning: \' + FS.syncFSRequests + \' FS.syncfs operations in flight at once, probably just doing extra work\');\n }\n \n var mounts = FS.getMounts(FS.root.mount);\n var completed = 0;\n \n function doCallback(err) {\n assert(FS.syncFSRequests > 0);\n FS.syncFSRequests--;\n return callback(err);\n }\n \n function done(err) {\n if (err) {\n if (!done.errored) {\n done.errored = true;\n return doCallback(err);\n }\n return;\n }\n if (++completed >= mounts.length) {\n doCallback(null);\n }\n };\n \n // sync all mounts\n mounts.forEach(function (mount) {\n if (!mount.type.syncfs) {\n return done(null);\n }\n mount.type.syncfs(mount, populate, done);\n });\n },mount:function (type, opts, mountpoint) {\n var root = mountpoint === \'/\';\n var pseudo = !mountpoint;\n var node;\n \n if (root && FS.root) {\n throw new FS.ErrnoError(ERRNO_CODES.EBUSY);\n } else if (!root && !pseudo) {\n var lookup = FS.lookupPath(mountpoint, { follow_mount: false });\n \n mountpoint = lookup.path; // use the absolute path\n node = lookup.node;\n \n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(ERRNO_CODES.EBUSY);\n }\n \n if (!FS.isDir(node.mode)) {\n throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);\n }\n }\n \n var mount = {\n type: type,\n opts: opts,\n mountpoint: mountpoint,\n mounts: []\n };\n \n // create a root node for the fs\n var mountRoot = type.mount(mount);\n mountRoot.mount = mount;\n mount.root = mountRoot;\n \n if (root) {\n FS.root = mountRoot;\n } else if (node) {\n // set as a mountpoint\n node.mounted = mount;\n \n // add the new mount to the current mount\'s children\n if (node.mount) {\n node.mount.mounts.push(mount);\n }\n }\n \n return mountRoot;\n },unmount:function (mountpoint) {\n var lookup = FS.lookupPath(mountpoint, { follow_mount: false });\n \n if (!FS.isMountpoint(lookup.node)) {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n \n // destroy the nodes for this mount, and all its child mounts\n var node = lookup.node;\n var mount = node.mounted;\n var mounts = FS.getMounts(mount);\n \n Object.keys(FS.nameTable).forEach(function (hash) {\n var current = FS.nameTable[hash];\n \n while (current) {\n var next = current.name_next;\n \n if (mounts.indexOf(current.mount) !== -1) {\n FS.destroyNode(current);\n }\n \n current = next;\n }\n });\n \n // no longer a mountpoint\n node.mounted = null;\n \n // remove this mount from the child mounts\n var idx = node.mount.mounts.indexOf(mount);\n assert(idx !== -1);\n node.mount.mounts.splice(idx, 1);\n },lookup:function (parent, name) {\n return parent.node_ops.lookup(parent, name);\n },mknod:function (path, mode, dev) {\n var lookup = FS.lookupPath(path, { parent: true });\n var parent = lookup.node;\n var name = PATH.basename(path);\n if (!name || name === \'.\' || name === \'..\') {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n var err = FS.mayCreate(parent, name);\n if (err) {\n throw new FS.ErrnoError(err);\n }\n if (!parent.node_ops.mknod) {\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n }\n return parent.node_ops.mknod(parent, name, mode, dev);\n },create:function (path, mode) {\n mode = mode !== undefined ? mode : 438 /* 0666 */;\n mode &= 4095;\n mode |= 32768;\n return FS.mknod(path, mode, 0);\n },mkdir:function (path, mode) {\n mode = mode !== undefined ? mode : 511 /* 0777 */;\n mode &= 511 | 512;\n mode |= 16384;\n return FS.mknod(path, mode, 0);\n },mkdirTree:function (path, mode) {\n var dirs = path.split(\'/\');\n var d = \'\';\n for (var i = 0; i < dirs.length; ++i) {\n if (!dirs[i]) continue;\n d += \'/\' + dirs[i];\n try {\n FS.mkdir(d, mode);\n } catch(e) {\n if (e.errno != ERRNO_CODES.EEXIST) throw e;\n }\n }\n },mkdev:function (path, mode, dev) {\n if (typeof(dev) === \'undefined\') {\n dev = mode;\n mode = 438 /* 0666 */;\n }\n mode |= 8192;\n return FS.mknod(path, mode, dev);\n },symlink:function (oldpath, newpath) {\n if (!PATH.resolve(oldpath)) {\n throw new FS.ErrnoError(ERRNO_CODES.ENOENT);\n }\n var lookup = FS.lookupPath(newpath, { parent: true });\n var parent = lookup.node;\n if (!parent) {\n throw new FS.ErrnoError(ERRNO_CODES.ENOENT);\n }\n var newname = PATH.basename(newpath);\n var err = FS.mayCreate(parent, newname);\n if (err) {\n throw new FS.ErrnoError(err);\n }\n if (!parent.node_ops.symlink) {\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n }\n return parent.node_ops.symlink(parent, newname, oldpath);\n },rename:function (old_path, new_path) {\n var old_dirname = PATH.dirname(old_path);\n var new_dirname = PATH.dirname(new_path);\n var old_name = PATH.basename(old_path);\n var new_name = PATH.basename(new_path);\n // parents must exist\n var lookup, old_dir, new_dir;\n try {\n lookup = FS.lookupPath(old_path, { parent: true });\n old_dir = lookup.node;\n lookup = FS.lookupPath(new_path, { parent: true });\n new_dir = lookup.node;\n } catch (e) {\n throw new FS.ErrnoError(ERRNO_CODES.EBUSY);\n }\n if (!old_dir || !new_dir) throw new FS.ErrnoError(ERRNO_CODES.ENOENT);\n // need to be part of the same mount\n if (old_dir.mount !== new_dir.mount) {\n throw new FS.ErrnoError(ERRNO_CODES.EXDEV);\n }\n // source must exist\n var old_node = FS.lookupNode(old_dir, old_name);\n // old path should not be an ancestor of the new path\n var relative = PATH.relative(old_path, new_dirname);\n if (relative.charAt(0) !== \'.\') {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n // new path should not be an ancestor of the old path\n relative = PATH.relative(new_path, old_dirname);\n if (relative.charAt(0) !== \'.\') {\n throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);\n }\n // see if the new path already exists\n var new_node;\n try {\n new_node = FS.lookupNode(new_dir, new_name);\n } catch (e) {\n // not fatal\n }\n // early out if nothing needs to change\n if (old_node === new_node) {\n return;\n }\n // we\'ll need to delete the old entry\n var isdir = FS.isDir(old_node.mode);\n var err = FS.mayDelete(old_dir, old_name, isdir);\n if (err) {\n throw new FS.ErrnoError(err);\n }\n // need delete permissions if we\'ll be overwriting.\n // need create permissions if new doesn\'t already exist.\n err = new_node ?\n FS.mayDelete(new_dir, new_name, isdir) :\n FS.mayCreate(new_dir, new_name);\n if (err) {\n throw new FS.ErrnoError(err);\n }\n if (!old_dir.node_ops.rename) {\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n }\n if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) {\n throw new FS.ErrnoError(ERRNO_CODES.EBUSY);\n }\n // if we are going to change the parent, check write permissions\n if (new_dir !== old_dir) {\n err = FS.nodePermissions(old_dir, \'w\');\n if (err) {\n throw new FS.ErrnoError(err);\n }\n }\n try {\n if (FS.trackingDelegate[\'willMovePath\']) {\n FS.trackingDelegate[\'willMovePath\'](old_path, new_path);\n }\n } catch(e) {\n console.log("FS.trackingDelegate[\'willMovePath\'](\'"+old_path+"\', \'"+new_path+"\') threw an exception: " + e.message);\n }\n // remove the node from the lookup hash\n FS.hashRemoveNode(old_node);\n // do the underlying fs rename\n try {\n old_dir.node_ops.rename(old_node, new_dir, new_name);\n } catch (e) {\n throw e;\n } finally {\n // add the node back to the hash (in case node_ops.rename\n // changed its name)\n FS.hashAddNode(old_node);\n }\n try {\n if (FS.trackingDelegate[\'onMovePath\']) FS.trackingDelegate[\'onMovePath\'](old_path, new_path);\n } catch(e) {\n console.log("FS.trackingDelegate[\'onMovePath\'](\'"+old_path+"\', \'"+new_path+"\') threw an exception: " + e.message);\n }\n },rmdir:function (path) {\n var lookup = FS.lookupPath(path, { parent: true });\n var parent = lookup.node;\n var name = PATH.basename(path);\n var node = FS.lookupNode(parent, name);\n var err = FS.mayDelete(parent, name, true);\n if (err) {\n throw new FS.ErrnoError(err);\n }\n if (!parent.node_ops.rmdir) {\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n }\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(ERRNO_CODES.EBUSY);\n }\n try {\n if (FS.trackingDelegate[\'willDeletePath\']) {\n FS.trackingDelegate[\'willDeletePath\'](path);\n }\n } catch(e) {\n console.log("FS.trackingDelegate[\'willDeletePath\'](\'"+path+"\') threw an exception: " + e.message);\n }\n parent.node_ops.rmdir(parent, name);\n FS.destroyNode(node);\n try {\n if (FS.trackingDelegate[\'onDeletePath\']) FS.trackingDelegate[\'onDeletePath\'](path);\n } catch(e) {\n console.log("FS.trackingDelegate[\'onDeletePath\'](\'"+path+"\') threw an exception: " + e.message);\n }\n },readdir:function (path) {\n var lookup = FS.lookupPath(path, { follow: true });\n var node = lookup.node;\n if (!node.node_ops.readdir) {\n throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);\n }\n return node.node_ops.readdir(node);\n },unlink:function (path) {\n var lookup = FS.lookupPath(path, { parent: true });\n var parent = lookup.node;\n var name = PATH.basename(path);\n var node = FS.lookupNode(parent, name);\n var err = FS.mayDelete(parent, name, false);\n if (err) {\n // According to POSIX, we should map EISDIR to EPERM, but\n // we instead do what Linux does (and we must, as we use\n // the musl linux libc).\n throw new FS.ErrnoError(err);\n }\n if (!parent.node_ops.unlink) {\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n }\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(ERRNO_CODES.EBUSY);\n }\n try {\n if (FS.trackingDelegate[\'willDeletePath\']) {\n FS.trackingDelegate[\'willDeletePath\'](path);\n }\n } catch(e) {\n console.log("FS.trackingDelegate[\'willDeletePath\'](\'"+path+"\') threw an exception: " + e.message);\n }\n parent.node_ops.unlink(parent, name);\n FS.destroyNode(node);\n try {\n if (FS.trackingDelegate[\'onDeletePath\']) FS.trackingDelegate[\'onDeletePath\'](path);\n } catch(e) {\n console.log("FS.trackingDelegate[\'onDeletePath\'](\'"+path+"\') threw an exception: " + e.message);\n }\n },readlink:function (path) {\n var lookup = FS.lookupPath(path);\n var link = lookup.node;\n if (!link) {\n throw new FS.ErrnoError(ERRNO_CODES.ENOENT);\n }\n if (!link.node_ops.readlink) {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n return PATH.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));\n },stat:function (path, dontFollow) {\n var lookup = FS.lookupPath(path, { follow: !dontFollow });\n var node = lookup.node;\n if (!node) {\n throw new FS.ErrnoError(ERRNO_CODES.ENOENT);\n }\n if (!node.node_ops.getattr) {\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n }\n return node.node_ops.getattr(node);\n },lstat:function (path) {\n return FS.stat(path, true);\n },chmod:function (path, mode, dontFollow) {\n var node;\n if (typeof path === \'string\') {\n var lookup = FS.lookupPath(path, { follow: !dontFollow });\n node = lookup.node;\n } else {\n node = path;\n }\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n }\n node.node_ops.setattr(node, {\n mode: (mode & 4095) | (node.mode & ~4095),\n timestamp: Date.now()\n });\n },lchmod:function (path, mode) {\n FS.chmod(path, mode, true);\n },fchmod:function (fd, mode) {\n var stream = FS.getStream(fd);\n if (!stream) {\n throw new FS.ErrnoError(ERRNO_CODES.EBADF);\n }\n FS.chmod(stream.node, mode);\n },chown:function (path, uid, gid, dontFollow) {\n var node;\n if (typeof path === \'string\') {\n var lookup = FS.lookupPath(path, { follow: !dontFollow });\n node = lookup.node;\n } else {\n node = path;\n }\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n }\n node.node_ops.setattr(node, {\n timestamp: Date.now()\n // we ignore the uid / gid for now\n });\n },lchown:function (path, uid, gid) {\n FS.chown(path, uid, gid, true);\n },fchown:function (fd, uid, gid) {\n var stream = FS.getStream(fd);\n if (!stream) {\n throw new FS.ErrnoError(ERRNO_CODES.EBADF);\n }\n FS.chown(stream.node, uid, gid);\n },truncate:function (path, len) {\n if (len < 0) {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n var node;\n if (typeof path === \'string\') {\n var lookup = FS.lookupPath(path, { follow: true });\n node = lookup.node;\n } else {\n node = path;\n }\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(ERRNO_CODES.EPERM);\n }\n if (FS.isDir(node.mode)) {\n throw new FS.ErrnoError(ERRNO_CODES.EISDIR);\n }\n if (!FS.isFile(node.mode)) {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n var err = FS.nodePermissions(node, \'w\');\n if (err) {\n throw new FS.ErrnoError(err);\n }\n node.node_ops.setattr(node, {\n size: len,\n timestamp: Date.now()\n });\n },ftruncate:function (fd, len) {\n var stream = FS.getStream(fd);\n if (!stream) {\n throw new FS.ErrnoError(ERRNO_CODES.EBADF);\n }\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n FS.truncate(stream.node, len);\n },utime:function (path, atime, mtime) {\n var lookup = FS.lookupPath(path, { follow: true });\n var node = lookup.node;\n node.node_ops.setattr(node, {\n timestamp: Math.max(atime, mtime)\n });\n },open:function (path, flags, mode, fd_start, fd_end) {\n if (path === "") {\n throw new FS.ErrnoError(ERRNO_CODES.ENOENT);\n }\n flags = typeof flags === \'string\' ? FS.modeStringToFlags(flags) : flags;\n mode = typeof mode === \'undefined\' ? 438 /* 0666 */ : mode;\n if ((flags & 64)) {\n mode = (mode & 4095) | 32768;\n } else {\n mode = 0;\n }\n var node;\n if (typeof path === \'object\') {\n node = path;\n } else {\n path = PATH.normalize(path);\n try {\n var lookup = FS.lookupPath(path, {\n follow: !(flags & 131072)\n });\n node = lookup.node;\n } catch (e) {\n // ignore\n }\n }\n // perhaps we need to create the node\n var created = false;\n if ((flags & 64)) {\n if (node) {\n // if O_CREAT and O_EXCL are set, error out if the node already exists\n if ((flags & 128)) {\n throw new FS.ErrnoError(ERRNO_CODES.EEXIST);\n }\n } else {\n // node doesn\'t exist, try to create it\n node = FS.mknod(path, mode, 0);\n created = true;\n }\n }\n if (!node) {\n throw new FS.ErrnoError(ERRNO_CODES.ENOENT);\n }\n // can\'t truncate a device\n if (FS.isChrdev(node.mode)) {\n flags &= ~512;\n }\n // if asked only for a directory, then this must be one\n if ((flags & 65536) && !FS.isDir(node.mode)) {\n throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);\n }\n // check permissions, if this is not a file we just created now (it is ok to\n // create and write to a file with read-only permissions; it is read-only\n // for later use)\n if (!created) {\n var err = FS.mayOpen(node, flags);\n if (err) {\n throw new FS.ErrnoError(err);\n }\n }\n // do truncation if necessary\n if ((flags & 512)) {\n FS.truncate(node, 0);\n }\n // we\'ve already handled these, don\'t pass down to the underlying vfs\n flags &= ~(128 | 512);\n \n // register the stream with the filesystem\n var stream = FS.createStream({\n node: node,\n path: FS.getPath(node), // we want the absolute path to the node\n flags: flags,\n seekable: true,\n position: 0,\n stream_ops: node.stream_ops,\n // used by the file family libc calls (fopen, fwrite, ferror, etc.)\n ungotten: [],\n error: false\n }, fd_start, fd_end);\n // call the new stream\'s open function\n if (stream.stream_ops.open) {\n stream.stream_ops.open(stream);\n }\n if (Module[\'logReadFiles\'] && !(flags & 1)) {\n if (!FS.readFiles) FS.readFiles = {};\n if (!(path in FS.readFiles)) {\n FS.readFiles[path] = 1;\n err(\'read file: \' + path);\n }\n }\n try {\n if (FS.trackingDelegate[\'onOpenFile\']) {\n var trackingFlags = 0;\n if ((flags & 2097155) !== 1) {\n trackingFlags |= FS.tracking.openFlags.READ;\n }\n if ((flags & 2097155) !== 0) {\n trackingFlags |= FS.tracking.openFlags.WRITE;\n }\n FS.trackingDelegate[\'onOpenFile\'](path, trackingFlags);\n }\n } catch(e) {\n console.log("FS.trackingDelegate[\'onOpenFile\'](\'"+path+"\', flags) threw an exception: " + e.message);\n }\n return stream;\n },close:function (stream) {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(ERRNO_CODES.EBADF);\n }\n if (stream.getdents) stream.getdents = null; // free readdir state\n try {\n if (stream.stream_ops.close) {\n stream.stream_ops.close(stream);\n }\n } catch (e) {\n throw e;\n } finally {\n FS.closeStream(stream.fd);\n }\n stream.fd = null;\n },isClosed:function (stream) {\n return stream.fd === null;\n },llseek:function (stream, offset, whence) {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(ERRNO_CODES.EBADF);\n }\n if (!stream.seekable || !stream.stream_ops.llseek) {\n throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);\n }\n stream.position = stream.stream_ops.llseek(stream, offset, whence);\n stream.ungotten = [];\n return stream.position;\n },read:function (stream, buffer, offset, length, position) {\n if (length < 0 || position < 0) {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(ERRNO_CODES.EBADF);\n }\n if ((stream.flags & 2097155) === 1) {\n throw new FS.ErrnoError(ERRNO_CODES.EBADF);\n }\n if (FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(ERRNO_CODES.EISDIR);\n }\n if (!stream.stream_ops.read) {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n var seeking = typeof position !== \'undefined\';\n if (!seeking) {\n position = stream.position;\n } else if (!stream.seekable) {\n throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);\n }\n var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);\n if (!seeking) stream.position += bytesRead;\n return bytesRead;\n },write:function (stream, buffer, offset, length, position, canOwn) {\n if (length < 0 || position < 0) {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(ERRNO_CODES.EBADF);\n }\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(ERRNO_CODES.EBADF);\n }\n if (FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(ERRNO_CODES.EISDIR);\n }\n if (!stream.stream_ops.write) {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n if (stream.flags & 1024) {\n // seek to the end before writing in append mode\n FS.llseek(stream, 0, 2);\n }\n var seeking = typeof position !== \'undefined\';\n if (!seeking) {\n position = stream.position;\n } else if (!stream.seekable) {\n throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);\n }\n var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);\n if (!seeking) stream.position += bytesWritten;\n try {\n if (stream.path && FS.trackingDelegate[\'onWriteToFile\']) FS.trackingDelegate[\'onWriteToFile\'](stream.path);\n } catch(e) {\n console.log("FS.trackingDelegate[\'onWriteToFile\'](\'"+path+"\') threw an exception: " + e.message);\n }\n return bytesWritten;\n },allocate:function (stream, offset, length) {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(ERRNO_CODES.EBADF);\n }\n if (offset < 0 || length <= 0) {\n throw new FS.ErrnoError(ERRNO_CODES.EINVAL);\n }\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(ERRNO_CODES.EBADF);\n }\n if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(ERRNO_CODES.ENODEV);\n }\n if (!stream.stream_ops.allocate) {\n throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);\n }\n stream.stream_ops.allocate(stream, offset, length);\n },mmap:function (stream, buffer, offset, length, position, prot, flags) {\n // TODO if PROT is PROT_WRITE, make sure we have write access\n if ((stream.flags & 2097155) === 1) {\n throw new FS.ErrnoError(ERRNO_CODES.EACCES);\n }\n if (!stream.stream_ops.mmap) {\n throw new FS.ErrnoError(ERRNO_CODES.ENODEV);\n }\n return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags);\n },msync:function (stream, buffer, offset, length, mmapFlags) {\n if (!stream || !stream.stream_ops.msync) {\n return 0;\n }\n return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);\n },munmap:function (stream) {\n return 0;\n },ioctl:function (stream, cmd, arg) {\n if (!stream.stream_ops.ioctl) {\n throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);\n }\n return stream.stream_ops.ioctl(stream, cmd, arg);\n },readFile:function (path, opts) {\n opts = opts || {};\n opts.flags = opts.flags || \'r\';\n opts.encoding = opts.encoding || \'binary\';\n if (opts.encoding !== \'utf8\' && opts.encoding !== \'binary\') {\n throw new Error(\'Invalid encoding type "\' + opts.encoding + \'"\');\n }\n var ret;\n var stream = FS.open(path, opts.flags);\n var stat = FS.stat(path);\n var length = stat.size;\n var buf = new Uint8Array(length);\n FS.read(stream, buf, 0, length, 0);\n if (opts.encoding === \'utf8\') {\n ret = UTF8ArrayToString(buf, 0);\n } else if (opts.encoding === \'binary\') {\n ret = buf;\n }\n FS.close(stream);\n return ret;\n },writeFile:function (path, data, opts) {\n opts = opts || {};\n opts.flags = opts.flags || \'w\';\n var stream = FS.open(path, opts.flags, opts.mode);\n if (typeof data === \'string\') {\n var buf = new Uint8Array(lengthBytesUTF8(data)+1);\n var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);\n FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn);\n } else if (ArrayBuffer.isView(data)) {\n FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn);\n } else {\n throw new Error(\'Unsupported data type\');\n }\n FS.close(stream);\n },cwd:function () {\n return FS.currentPath;\n },chdir:function (path) {\n var lookup = FS.lookupPath(path, { follow: true });\n if (lookup.node === null) {\n throw new FS.ErrnoError(ERRNO_CODES.ENOENT);\n }\n if (!FS.isDir(lookup.node.mode)) {\n throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);\n }\n var err = FS.nodePermissions(lookup.node, \'x\');\n if (err) {\n throw new FS.ErrnoError(err);\n }\n FS.currentPath = lookup.path;\n },createDefaultDirectories:function () {\n FS.mkdir(\'/tmp\');\n FS.mkdir(\'/home\');\n FS.mkdir(\'/home/web_user\');\n },createDefaultDevices:function () {\n // create /dev\n FS.mkdir(\'/dev\');\n // setup /dev/null\n FS.registerDevice(FS.makedev(1, 3), {\n read: function() { return 0; },\n write: function(stream, buffer, offset, length, pos) { return length; }\n });\n FS.mkdev(\'/dev/null\', FS.makedev(1, 3));\n // setup /dev/tty and /dev/tty1\n // stderr needs to print output using Module[\'printErr\']\n // so we register a second tty just for it.\n TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);\n TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);\n FS.mkdev(\'/dev/tty\', FS.makedev(5, 0));\n FS.mkdev(\'/dev/tty1\', FS.makedev(6, 0));\n // setup /dev/[u]random\n var random_device;\n if (typeof crypto !== \'undefined\') {\n // for modern web browsers\n var randomBuffer = new Uint8Array(1);\n random_device = function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; };\n } else if (ENVIRONMENT_IS_NODE) {\n } else {\n // default for ES5 platforms\n random_device = function() { abort("random_device"); /*Math.random() is not safe for random number generation, so this fallback random_device implementation aborts... see kripken/emscripten/pull/7096 */ };\n }\n FS.createDevice(\'/dev\', \'random\', random_device);\n FS.createDevice(\'/dev\', \'urandom\', random_device);\n // we\'re not going to emulate the actual shm device,\n // just create the tmp dirs that reside in it commonly\n FS.mkdir(\'/dev/shm\');\n FS.mkdir(\'/dev/shm/tmp\');\n },createSpecialDirectories:function () {\n // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the name of the stream for fd 6 (see test_unistd_ttyname)\n FS.mkdir(\'/proc\');\n FS.mkdir(\'/proc/self\');\n FS.mkdir(\'/proc/self/fd\');\n FS.mount({\n mount: function() {\n var node = FS.createNode(\'/proc/self\', \'fd\', 16384 | 511 /* 0777 */, 73);\n node.node_ops = {\n lookup: function(parent, name) {\n var fd = +name;\n var stream = FS.getStream(fd);\n if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF);\n var ret = {\n parent: null,\n mount: { mountpoint: \'fake\' },\n node_ops: { readlink: function() { return stream.path } }\n };\n ret.parent = ret; // make it look like a simple root node\n return ret;\n }\n };\n return node;\n }\n }, {}, \'/proc/self/fd\');\n },createStandardStreams:function () {\n // TODO deprecate the old functionality of a single\n // input / output callback and that utilizes FS.createDevice\n // and instead require a unique set of stream ops\n \n // by default, we symlink the standard streams to the\n // default tty devices. however, if the standard streams\n // have been overwritten we create a unique device for\n // them instead.\n if (Module[\'stdin\']) {\n FS.createDevice(\'/dev\', \'stdin\', Module[\'stdin\']);\n } else {\n FS.symlink(\'/dev/tty\', \'/dev/stdin\');\n }\n if (Module[\'stdout\']) {\n FS.createDevice(\'/dev\', \'stdout\', null, Module[\'stdout\']);\n } else {\n FS.symlink(\'/dev/tty\', \'/dev/stdout\');\n }\n if (Module[\'stderr\']) {\n FS.createDevice(\'/dev\', \'stderr\', null, Module[\'stderr\']);\n } else {\n FS.symlink(\'/dev/tty1\', \'/dev/stderr\');\n }\n \n // open default streams for the stdin, stdout and stderr devices\n var stdin = FS.open(\'/dev/stdin\', \'r\');\n assert(stdin.fd === 0, \'invalid handle for stdin (\' + stdin.fd + \')\');\n \n var stdout = FS.open(\'/dev/stdout\', \'w\');\n assert(stdout.fd === 1, \'invalid handle for stdout (\' + stdout.fd + \')\');\n \n var stderr = FS.open(\'/dev/stderr\', \'w\');\n assert(stderr.fd === 2, \'invalid handle for stderr (\' + stderr.fd + \')\');\n },ensureErrnoError:function () {\n if (FS.ErrnoError) return;\n FS.ErrnoError = function ErrnoError(errno, node) {\n //err(stackTrace()); // useful for debugging\n this.node = node;\n this.setErrno = function(errno) {\n this.errno = errno;\n for (var key in ERRNO_CODES) {\n if (ERRNO_CODES[key] === errno) {\n this.code = key;\n break;\n }\n }\n };\n this.setErrno(errno);\n this.message = ERRNO_MESSAGES[errno];\n // Node.js compatibility: assigning on this.stack fails on Node 4 (but fixed on Node 8)\n if (this.stack) Object.defineProperty(this, "stack", { value: (new Error).stack, writable: true });\n };\n FS.ErrnoError.prototype = new Error();\n FS.ErrnoError.prototype.constructor = FS.ErrnoError;\n // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info)\n [ERRNO_CODES.ENOENT].forEach(function(code) {\n FS.genericErrors[code] = new FS.ErrnoError(code);\n FS.genericErrors[code].stack = \'<generic error, no stack>\';\n });\n },staticInit:function () {\n FS.ensureErrnoError();\n \n FS.nameTable = new Array(4096);\n \n FS.mount(MEMFS, {}, \'/\');\n \n FS.createDefaultDirectories();\n FS.createDefaultDevices();\n FS.createSpecialDirectories();\n \n FS.filesystems = {\n \'MEMFS\': MEMFS,\n \'IDBFS\': IDBFS,\n \'NODEFS\': NODEFS,\n \'WORKERFS\': WORKERFS,\n };\n },init:function (input, output, error) {\n assert(!FS.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)\');\n FS.init.initialized = true;\n \n FS.ensureErrnoError();\n \n // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here\n Module[\'stdin\'] = input || Module[\'stdin\'];\n Module[\'stdout\'] = output || Module[\'stdout\'];\n Module[\'stderr\'] = error || Module[\'stderr\'];\n \n FS.createStandardStreams();\n },quit:function () {\n FS.init.initialized = false;\n // force-flush all streams, so we get musl std streams printed out\n var fflush = Module[\'_fflush\'];\n if (fflush) fflush(0);\n // close all of our streams\n for (var i = 0; i < FS.streams.length; i++) {\n var stream = FS.streams[i];\n if (!stream) {\n continue;\n }\n FS.close(stream);\n }\n },getMode:function (canRead, canWrite) {\n var mode = 0;\n if (canRead) mode |= 292 | 73;\n if (canWrite) mode |= 146;\n return mode;\n },joinPath:function (parts, forceRelative) {\n var path = PATH.join.apply(null, parts);\n if (forceRelative && path[0] == \'/\') path = path.substr(1);\n return path;\n },absolutePath:function (relative, base) {\n return PATH.resolve(base, relative);\n },standardizePath:function (path) {\n return PATH.normalize(path);\n },findObject:function (path, dontResolveLastLink) {\n var ret = FS.analyzePath(path, dontResolveLastLink);\n if (ret.exists) {\n return ret.object;\n } else {\n ___setErrNo(ret.error);\n return null;\n }\n },analyzePath:function (path, dontResolveLastLink) {\n // operate from within the context of the symlink\'s target\n try {\n var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });\n path = lookup.path;\n } catch (e) {\n }\n var ret = {\n isRoot: false, exists: false, error: 0, name: null, path: null, object: null,\n parentExists: false, parentPath: null, parentObject: null\n };\n try {\n var lookup = FS.lookupPath(path, { parent: true });\n ret.parentExists = true;\n ret.parentPath = lookup.path;\n ret.parentObject = lookup.node;\n ret.name = PATH.basename(path);\n lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });\n ret.exists = true;\n ret.path = lookup.path;\n ret.object = lookup.node;\n ret.name = lookup.node.name;\n ret.isRoot = lookup.path === \'/\';\n } catch (e) {\n ret.error = e.errno;\n };\n return ret;\n },createFolder:function (parent, name, canRead, canWrite) {\n var path = PATH.join2(typeof parent === \'string\' ? parent : FS.getPath(parent), name);\n var mode = FS.getMode(canRead, canWrite);\n return FS.mkdir(path, mode);\n },createPath:function (parent, path, canRead, canWrite) {\n parent = typeof parent === \'string\' ? parent : FS.getPath(parent);\n var parts = path.split(\'/\').reverse();\n while (parts.length) {\n var part = parts.pop();\n if (!part) continue;\n var current = PATH.join2(parent, part);\n try {\n FS.mkdir(current);\n } catch (e) {\n // ignore EEXIST\n }\n parent = current;\n }\n return current;\n },createFile:function (parent, name, properties, canRead, canWrite) {\n var path = PATH.join2(typeof parent === \'string\' ? parent : FS.getPath(parent), name);\n var mode = FS.getMode(canRead, canWrite);\n return FS.create(path, mode);\n },createDataFile:function (parent, name, data, canRead, canWrite, canOwn) {\n var path = name ? PATH.join2(typeof parent === \'string\' ? parent : FS.getPath(parent), name) : parent;\n var mode = FS.getMode(canRead, canWrite);\n var node = FS.create(path, mode);\n if (data) {\n if (typeof data === \'string\') {\n var arr = new Array(data.length);\n for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i);\n data = arr;\n }\n // make sure we can write to the file\n FS.chmod(node, mode | 146);\n var stream = FS.open(node, \'w\');\n FS.write(stream, data, 0, data.length, 0, canOwn);\n FS.close(stream);\n FS.chmod(node, mode);\n }\n return node;\n },createDevice:function (parent, name, input, output) {\n var path = PATH.join2(typeof parent === \'string\' ? parent : FS.getPath(parent), name);\n var mode = FS.getMode(!!input, !!output);\n if (!FS.createDevice.major) FS.createDevice.major = 64;\n var dev = FS.makedev(FS.createDevice.major++, 0);\n // Create a fake device that a set of stream ops to emulate\n // the old behavior.\n FS.registerDevice(dev, {\n open: function(stream) {\n stream.seekable = false;\n },\n close: function(stream) {\n // flush any pending line data\n if (output && output.buffer && output.buffer.length) {\n output(10);\n }\n },\n read: function(stream, buffer, offset, length, pos /* ignored */) {\n var bytesRead = 0;\n for (var i = 0; i < length; i++) {\n var result;\n try {\n result = input();\n } catch (e) {\n throw new FS.ErrnoError(ERRNO_CODES.EIO);\n }\n if (result === undefined && bytesRead === 0) {\n throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);\n }\n if (result === null || result === undefined) break;\n bytesRead++;\n buffer[offset+i] = result;\n }\n if (bytesRead) {\n stream.node.timestamp = Date.now();\n }\n return bytesRead;\n },\n write: function(stream, buffer, offset, length, pos) {\n for (var i = 0; i < length; i++) {\n try {\n output(buffer[offset+i]);\n } catch (e) {\n throw new FS.ErrnoError(ERRNO_CODES.EIO);\n }\n }\n if (length) {\n stream.node.timestamp = Date.now();\n }\n return i;\n }\n });\n return FS.mkdev(path, mode, dev);\n },createLink:function (parent, name, target, canRead, canWrite) {\n var path = PATH.join2(typeof parent === \'string\' ? parent : FS.getPath(parent), name);\n return FS.symlink(target, path);\n },forceLoadFile:function (obj) {\n if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;\n var success = true;\n if (typeof XMLHttpRequest !== \'undefined\') {\n throw new 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.");\n } else if (Module[\'read\']) {\n // Command-line.\n try {\n // WARNING: Can\'t read binary files in V8\'s d8 or tracemonkey\'s js, as\n // read() will try to parse UTF8.\n obj.contents = intArrayFromString(Module[\'read\'](obj.url), true);\n obj.usedBytes = obj.contents.length;\n } catch (e) {\n success = false;\n }\n } else {\n throw new Error(\'Cannot load without read() or XMLHttpRequest.\');\n }\n if (!success) ___setErrNo(ERRNO_CODES.EIO);\n return success;\n },createLazyFile:function (parent, name, url, canRead, canWrite) {\n // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse.\n function LazyUint8Array() {\n this.lengthKnown = false;\n this.chunks = []; // Loaded chunks. Index is the chunk number\n }\n LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {\n if (idx > this.length-1 || idx < 0) {\n return undefined;\n }\n var chunkOffset = idx % this.chunkSize;\n var chunkNum = (idx / this.chunkSize)|0;\n return this.getter(chunkNum)[chunkOffset];\n }\n LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {\n this.getter = getter;\n }\n LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {\n // Find length\n var xhr = new XMLHttpRequest();\n xhr.open(\'HEAD\', url, false);\n xhr.send(null);\n if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn\'t load " + url + ". Status: " + xhr.status);\n var datalength = Number(xhr.getResponseHeader("Content-length"));\n var header;\n var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";\n var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip";\n \n var chunkSize = 1024*1024; // Chunk size in bytes\n \n if (!hasByteServing) chunkSize = datalength;\n \n // Function to get a range from the remote URL.\n var doXHR = (function(from, to) {\n if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");\n if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!");\n \n // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.\n var xhr = new XMLHttpRequest();\n xhr.open(\'GET\', url, false);\n if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);\n \n // Some hints to the browser that we want binary data.\n if (typeof Uint8Array != \'undefined\') xhr.responseType = \'arraybuffer\';\n if (xhr.overrideMimeType) {\n xhr.overrideMimeType(\'text/plain; charset=x-user-defined\');\n }\n \n xhr.send(null);\n if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn\'t load " + url + ". Status: " + xhr.status);\n if (xhr.response !== undefined) {\n return new Uint8Array(xhr.response || []);\n } else {\n return intArrayFromString(xhr.responseText || \'\', true);\n }\n });\n var lazyArray = this;\n lazyArray.setDataGetter(function(chunkNum) {\n var start = chunkNum * chunkSize;\n var end = (chunkNum+1) * chunkSize - 1; // including this byte\n end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block\n if (typeof(lazyArray.chunks[chunkNum]) === "undefined") {\n lazyArray.chunks[chunkNum] = doXHR(start, end);\n }\n if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!");\n return lazyArray.chunks[chunkNum];\n });\n \n if (usesGzip || !datalength) {\n // if the server uses gzip or doesn\'t supply the length, we have to download the whole file to get the (uncompressed) length\n chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file\n datalength = this.getter(0).length;\n chunkSize = datalength;\n console.log("LazyFiles on gzip forces download of the whole file when length is accessed");\n }\n \n this._length = datalength;\n this._chunkSize = chunkSize;\n this.lengthKnown = true;\n }\n if (typeof XMLHttpRequest !== \'undefined\') {\n if (!ENVIRONMENT_IS_WORKER) throw \'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\';\n var lazyArray = new LazyUint8Array();\n Object.defineProperties(lazyArray, {\n length: {\n get: function() {\n if(!this.lengthKnown) {\n this.cacheLength();\n }\n return this._length;\n }\n },\n chunkSize: {\n get: function() {\n if(!this.lengthKnown) {\n this.cacheLength();\n }\n return this._chunkSize;\n }\n }\n });\n \n var properties = { isDevice: false, contents: lazyArray };\n } else {\n var properties = { isDevice: false, url: url };\n }\n \n var node = FS.createFile(parent, name, properties, canRead, canWrite);\n // This is a total hack, but I want to get this lazy file code out of the\n // core of MEMFS. If we want to keep this lazy file concept I feel it should\n // be its own thin LAZYFS proxying calls to MEMFS.\n if (properties.contents) {\n node.contents = properties.contents;\n } else if (properties.url) {\n node.contents = null;\n node.url = properties.url;\n }\n // Add a function that defers querying the file size until it is asked the first time.\n Object.defineProperties(node, {\n usedBytes: {\n get: function() { return this.contents.length; }\n }\n });\n // override each stream op with one that tries to force load the lazy file first\n var stream_ops = {};\n var keys = Object.keys(node.stream_ops);\n keys.forEach(function(key) {\n var fn = node.stream_ops[key];\n stream_ops[key] = function forceLoadLazyFile() {\n if (!FS.forceLoadFile(node)) {\n throw new FS.ErrnoError(ERRNO_CODES.EIO);\n }\n return fn.apply(null, arguments);\n };\n });\n // use a custom read function\n stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) {\n if (!FS.forceLoadFile(node)) {\n throw new FS.ErrnoError(ERRNO_CODES.EIO);\n }\n var contents = stream.node.contents;\n if (position >= contents.length)\n return 0;\n var size = Math.min(contents.length - position, length);\n assert(size >= 0);\n if (contents.slice) { // normal array\n for (var i = 0; i < size; i++) {\n buffer[offset + i] = contents[position + i];\n }\n } else {\n for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR\n buffer[offset + i] = contents.get(position + i);\n }\n }\n return size;\n };\n node.stream_ops = stream_ops;\n return node;\n },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {\n Browser.init(); // XXX perhaps this method should move onto Browser?\n // TODO we should allow people to just pass in a complete filename instead\n // of parent and name being that we just join them anyways\n var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent;\n var dep = getUniqueRunDependency(\'cp \' + fullname); // might have several active requests for the same fullname\n function processData(byteArray) {\n function finish(byteArray) {\n if (preFinish) preFinish();\n if (!dontCreateFile) {\n FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);\n }\n if (onload) onload();\n removeRunDependency(dep);\n }\n var handled = false;\n Module[\'preloadPlugins\'].forEach(function(plugin) {\n if (handled) return;\n if (plugin[\'canHandle\'](fullname)) {\n plugin[\'handle\'](byteArray, fullname, finish, function() {\n if (onerror) onerror();\n removeRunDependency(dep);\n });\n handled = true;\n }\n });\n if (!handled) finish(byteArray);\n }\n addRunDependency(dep);\n if (typeof url == \'string\') {\n Browser.asyncLoad(url, function(byteArray) {\n processData(byteArray);\n }, onerror);\n } else {\n processData(url);\n }\n },indexedDB:function () {\n return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;\n },DB_NAME:function () {\n return \'EM_FS_\' + window.location.pathname;\n },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) {\n onload = onload || function(){};\n onerror = onerror || function(){};\n var indexedDB = FS.indexedDB();\n try {\n var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);\n } catch (e) {\n return onerror(e);\n }\n openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {\n console.log(\'creating db\');\n var db = openRequest.result;\n db.createObjectStore(FS.DB_STORE_NAME);\n };\n openRequest.onsuccess = function openRequest_onsuccess() {\n var db = openRequest.result;\n var transaction = db.transaction([FS.DB_STORE_NAME], \'readwrite\');\n var files = transaction.objectStore(FS.DB_STORE_NAME);\n var ok = 0, fail = 0, total = paths.length;\n function finish() {\n if (fail == 0) onload(); else onerror();\n }\n paths.forEach(function(path) {\n var putRequest = files.put(FS.analyzePath(path).object.contents, path);\n putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() };\n putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() };\n });\n transaction.onerror = onerror;\n };\n openRequest.onerror = onerror;\n },loadFilesFromDB:function (paths, onload, onerror) {\n onload = onload || function(){};\n onerror = onerror || function(){};\n var indexedDB = FS.indexedDB();\n try {\n var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);\n } catch (e) {\n return onerror(e);\n }\n openRequest.onupgradeneeded = onerror; // no database to load from\n openRequest.onsuccess = function openRequest_onsuccess() {\n var db = openRequest.result;\n try {\n var transaction = db.transaction([FS.DB_STORE_NAME], \'readonly\');\n } catch(e) {\n onerror(e);\n return;\n }\n var files = transaction.objectStore(FS.DB_STORE_NAME);\n var ok = 0, fail = 0, total = paths.length;\n function finish() {\n if (fail == 0) onload(); else onerror();\n }\n paths.forEach(function(path) {\n var getRequest = files.get(path);\n getRequest.onsuccess = function getRequest_onsuccess() {\n if (FS.analyzePath(path).exists) {\n FS.unlink(path);\n }\n FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);\n ok++;\n if (ok + fail == total) finish();\n };\n getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() };\n });\n transaction.onerror = onerror;\n };\n openRequest.onerror = onerror;\n }};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function (dirfd, path) {\n if (path[0] !== \'/\') {\n // relative path\n var dir;\n if (dirfd === -100) {\n dir = FS.cwd();\n } else {\n var dirstream = FS.getStream(dirfd);\n if (!dirstream) throw new FS.ErrnoError(ERRNO_CODES.EBADF);\n dir = dirstream.path;\n }\n path = PATH.join2(dir, path);\n }\n return path;\n },doStat:function (func, path, buf) {\n try {\n var stat = func(path);\n } catch (e) {\n if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {\n // an error occurred while trying to look up the path; we should just report ENOTDIR\n return -ERRNO_CODES.ENOTDIR;\n }\n throw e;\n }\n HEAP32[((buf)>>2)]=stat.dev;\n HEAP32[(((buf)+(4))>>2)]=0;\n HEAP32[(((buf)+(8))>>2)]=stat.ino;\n HEAP32[(((buf)+(12))>>2)]=stat.mode;\n HEAP32[(((buf)+(16))>>2)]=stat.nlink;\n HEAP32[(((buf)+(20))>>2)]=stat.uid;\n HEAP32[(((buf)+(24))>>2)]=stat.gid;\n HEAP32[(((buf)+(28))>>2)]=stat.rdev;\n HEAP32[(((buf)+(32))>>2)]=0;\n HEAP32[(((buf)+(36))>>2)]=stat.size;\n HEAP32[(((buf)+(40))>>2)]=4096;\n HEAP32[(((buf)+(44))>>2)]=stat.blocks;\n HEAP32[(((buf)+(48))>>2)]=(stat.atime.getTime() / 1000)|0;\n HEAP32[(((buf)+(52))>>2)]=0;\n HEAP32[(((buf)+(56))>>2)]=(stat.mtime.getTime() / 1000)|0;\n HEAP32[(((buf)+(60))>>2)]=0;\n HEAP32[(((buf)+(64))>>2)]=(stat.ctime.getTime() / 1000)|0;\n HEAP32[(((buf)+(68))>>2)]=0;\n HEAP32[(((buf)+(72))>>2)]=stat.ino;\n return 0;\n },doMsync:function (addr, stream, len, flags) {\n var buffer = new Uint8Array(HEAPU8.subarray(addr, addr + len));\n FS.msync(stream, buffer, 0, len, flags);\n },doMkdir:function (path, mode) {\n // remove a trailing slash, if one - /a/b/ has basename of \'\', but\n // we want to create b in the context of this function\n path = PATH.normalize(path);\n if (path[path.length-1] === \'/\') path = path.substr(0, path.length-1);\n FS.mkdir(path, mode, 0);\n return 0;\n },doMknod:function (path, mode, dev) {\n // we don\'t want this in the JS API as it uses mknod to create all nodes.\n switch (mode & 61440) {\n case 32768:\n case 8192:\n case 24576:\n case 4096:\n case 49152:\n break;\n default: return -ERRNO_CODES.EINVAL;\n }\n FS.mknod(path, mode, dev);\n return 0;\n },doReadlink:function (path, buf, bufsize) {\n if (bufsize <= 0) return -ERRNO_CODES.EINVAL;\n var ret = FS.readlink(path);\n \n var len = Math.min(bufsize, lengthBytesUTF8(ret));\n var endChar = HEAP8[buf+len];\n stringToUTF8(ret, buf, bufsize+1);\n // readlink is one of the rare functions that write out a C string, but does never append a null to the output buffer(!)\n // stringToUTF8() always appends a null byte, so restore the character under the null byte after the write.\n HEAP8[buf+len] = endChar;\n \n return len;\n },doAccess:function (path, amode) {\n if (amode & ~7) {\n // need a valid mode\n return -ERRNO_CODES.EINVAL;\n }\n var node;\n var lookup = FS.lookupPath(path, { follow: true });\n node = lookup.node;\n var perms = \'\';\n if (amode & 4) perms += \'r\';\n if (amode & 2) perms += \'w\';\n if (amode & 1) perms += \'x\';\n if (perms /* otherwise, they\'ve just passed F_OK */ && FS.nodePermissions(node, perms)) {\n return -ERRNO_CODES.EACCES;\n }\n return 0;\n },doDup:function (path, flags, suggestFD) {\n var suggest = FS.getStream(suggestFD);\n if (suggest) FS.close(suggest);\n return FS.open(path, flags, 0, suggestFD, suggestFD).fd;\n },doReadv:function (stream, iov, iovcnt, offset) {\n var ret = 0;\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAP32[(((iov)+(i*8))>>2)];\n var len = HEAP32[(((iov)+(i*8 + 4))>>2)];\n var curr = FS.read(stream, HEAP8,ptr, len, offset);\n if (curr < 0) return -1;\n ret += curr;\n if (curr < len) break; // nothing more to read\n }\n return ret;\n },doWritev:function (stream, iov, iovcnt, offset) {\n var ret = 0;\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAP32[(((iov)+(i*8))>>2)];\n var len = HEAP32[(((iov)+(i*8 + 4))>>2)];\n var curr = FS.write(stream, HEAP8,ptr, len, offset);\n if (curr < 0) return -1;\n ret += curr;\n }\n return ret;\n },varargs:0,get:function (varargs) {\n SYSCALLS.varargs += 4;\n var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];\n return ret;\n },getStr:function () {\n var ret = Pointer_stringify(SYSCALLS.get());\n return ret;\n },getStreamFromFD:function () {\n var stream = FS.getStream(SYSCALLS.get());\n if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF);\n return stream;\n },getSocketFromFD:function () {\n var socket = SOCKFS.getSocket(SYSCALLS.get());\n if (!socket) throw new FS.ErrnoError(ERRNO_CODES.EBADF);\n return socket;\n },getSocketAddress:function (allowNull) {\n var addrp = SYSCALLS.get(), addrlen = SYSCALLS.get();\n if (allowNull && addrp === 0) return null;\n var info = __read_sockaddr(addrp, addrlen);\n if (info.errno) throw new FS.ErrnoError(info.errno);\n info.addr = DNS.lookup_addr(info.addr) || info.addr;\n return info;\n },get64:function () {\n var low = SYSCALLS.get(), high = SYSCALLS.get();\n if (low >= 0) assert(high === 0);\n else assert(high === -1);\n return low;\n },getZero:function () {\n assert(SYSCALLS.get() === 0);\n }};function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs;\n try {\n // llseek\n var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get();\n // NOTE: offset_high is unused - Emscripten\'s off_t is 32-bit\n var offset = offset_low;\n FS.llseek(stream, offset, whence);\n HEAP32[((result)>>2)]=stream.position;\n if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state\n return 0;\n } catch (e) {\n if (typeof FS === \'undefined\' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n\n function ___syscall145(which, varargs) {SYSCALLS.varargs = varargs;\n try {\n // readv\n var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get();\n return SYSCALLS.doReadv(stream, iov, iovcnt);\n } catch (e) {\n if (typeof FS === \'undefined\' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n\n function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs;\n try {\n // writev\n var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get();\n return SYSCALLS.doWritev(stream, iov, iovcnt);\n } catch (e) {\n if (typeof FS === \'undefined\' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n\n \n function ___syscall153(which, varargs) {SYSCALLS.varargs = varargs;\n try {\n // munlockall\n return 0;\n } catch (e) {\n if (typeof FS === \'undefined\' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }function ___syscall150() {\n return ___syscall153.apply(null, arguments)\n }\n\n function ___syscall151() {\n return ___syscall153.apply(null, arguments)\n }\n\n function ___syscall195(which, varargs) {SYSCALLS.varargs = varargs;\n try {\n // SYS_stat64\n var path = SYSCALLS.getStr(), buf = SYSCALLS.get();\n return SYSCALLS.doStat(FS.stat, path, buf);\n } catch (e) {\n if (typeof FS === \'undefined\' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n\n function ___syscall221(which, varargs) {SYSCALLS.varargs = varargs;\n try {\n // fcntl64\n var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get();\n switch (cmd) {\n case 0: {\n var arg = SYSCALLS.get();\n if (arg < 0) {\n return -ERRNO_CODES.EINVAL;\n }\n var newStream;\n newStream = FS.open(stream.path, stream.flags, 0, arg);\n return newStream.fd;\n }\n case 1:\n case 2:\n return 0; // FD_CLOEXEC makes no sense for a single process.\n case 3:\n return stream.flags;\n case 4: {\n var arg = SYSCALLS.get();\n stream.flags |= arg;\n return 0;\n }\n case 12:\n case 12: {\n var arg = SYSCALLS.get();\n var offset = 0;\n // We\'re always unlocked.\n HEAP16[(((arg)+(offset))>>1)]=2;\n return 0;\n }\n case 13:\n case 14:\n case 13:\n case 14:\n return 0; // Pretend that the locking is successful.\n case 16:\n case 8:\n return -ERRNO_CODES.EINVAL; // These are for sockets. We don\'t have them fully implemented yet.\n case 9:\n // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves.\n ___setErrNo(ERRNO_CODES.EINVAL);\n return -1;\n default: {\n return -ERRNO_CODES.EINVAL;\n }\n }\n } catch (e) {\n if (typeof FS === \'undefined\' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n\n function ___syscall5(which, varargs) {SYSCALLS.varargs = varargs;\n try {\n // open\n var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get() // optional TODO\n var stream = FS.open(pathname, flags, mode);\n return stream.fd;\n } catch (e) {\n if (typeof FS === \'undefined\' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n\n function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;\n try {\n // ioctl\n var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get();\n switch (op) {\n case 21509:\n case 21505: {\n if (!stream.tty) return -ERRNO_CODES.ENOTTY;\n return 0;\n }\n case 21510:\n case 21511:\n case 21512:\n case 21506:\n case 21507:\n case 21508: {\n if (!stream.tty) return -ERRNO_CODES.ENOTTY;\n return 0; // no-op, not actually adjusting terminal settings\n }\n case 21519: {\n if (!stream.tty) return -ERRNO_CODES.ENOTTY;\n var argp = SYSCALLS.get();\n HEAP32[((argp)>>2)]=0;\n return 0;\n }\n case 21520: {\n if (!stream.tty) return -ERRNO_CODES.ENOTTY;\n return -ERRNO_CODES.EINVAL; // not supported\n }\n case 21531: {\n var argp = SYSCALLS.get();\n return FS.ioctl(stream, op, argp);\n }\n case 21523: {\n // TODO: in theory we should write to the winsize struct that gets\n // passed in, but for now musl doesn\'t read anything on it\n if (!stream.tty) return -ERRNO_CODES.ENOTTY;\n return 0;\n }\n case 21524: {\n // TODO: technically, this ioctl call should change the window size.\n // but, since emscripten doesn\'t have any concept of a terminal window\n // yet, we\'ll just silently throw it away as we do TIOCGWINSZ\n if (!stream.tty) return -ERRNO_CODES.ENOTTY;\n return 0;\n }\n default: abort(\'bad ioctl syscall \' + op);\n }\n } catch (e) {\n if (typeof FS === \'undefined\' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n\n function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs;\n try {\n // close\n var stream = SYSCALLS.getStreamFromFD();\n FS.close(stream);\n return 0;\n } catch (e) {\n if (typeof FS === \'undefined\' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n\n function ___unlock() {}\n\n function _abort() {\n Module[\'abort\']();\n }\n\n function _gettimeofday(ptr) {\n var now = Date.now();\n HEAP32[((ptr)>>2)]=(now/1000)|0; // seconds\n HEAP32[(((ptr)+(4))>>2)]=((now % 1000)*1000)|0; // microseconds\n return 0;\n }\n\n \n\n \n function _llvm_exp2_f32(x) {\n return Math.pow(2, x);\n }function _llvm_exp2_f64() {\n return _llvm_exp2_f32.apply(null, arguments)\n }\n\n var _llvm_fabs_f64=Math_abs;\n\n \n function _emscripten_memcpy_big(dest, src, num) {\n HEAPU8.set(HEAPU8.subarray(src, src+num), dest);\n return dest;\n } \n\n \n\n \n\n function _usleep(useconds) {\n // int usleep(useconds_t useconds);\n // http://pubs.opengroup.org/onlinepubs/000095399/functions/usleep.html\n // We\'re single-threaded, so use a busy loop. Super-ugly.\n var msec = useconds / 1000;\n if ((ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && self[\'performance\'] && self[\'performance\'][\'now\']) {\n var start = self[\'performance\'][\'now\']();\n while (self[\'performance\'][\'now\']() - start < msec) {\n // Do nothing.\n }\n } else {\n var start = Date.now();\n while (Date.now() - start < msec) {\n // Do nothing.\n }\n }\n return 0;\n }\nFS.staticInit();__ATINIT__.unshift(function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() });__ATMAIN__.push(function() { FS.ignorePermissions = false });__ATEXIT__.push(function() { FS.quit() });;\n__ATINIT__.unshift(function() { TTY.init() });__ATEXIT__.push(function() { TTY.shutdown() });;\nif (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); };\nDYNAMICTOP_PTR = staticAlloc(4);\n\nSTACK_BASE = STACKTOP = alignMemory(STATICTOP);\n\nSTACK_MAX = STACK_BASE + TOTAL_STACK;\n\nDYNAMIC_BASE = alignMemory(STACK_MAX);\n\nHEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE;\n\nstaticSealed = true; // seal the static portion of memory\n\nvar ASSERTIONS = false;\n\n// Copyright 2017 The Emscripten Authors. All rights reserved.\n// Emscripten is available under two separate licenses, the MIT license and the\n// University of Illinois/NCSA Open Source License. Both these licenses can be\n// found in the LICENSE file.\n\n/** @type {function(string, boolean=, number=)} */\nfunction intArrayFromString(stringy, dontAddNull, length) {\n var len = length > 0 ? length : lengthBytesUTF8(stringy)+1;\n var u8array = new Array(len);\n var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\n if (dontAddNull) u8array.length = numBytesWritten;\n return u8array;\n}\n\nfunction intArrayToString(array) {\n var ret = [];\n for (var i = 0; i < array.length; i++) {\n var chr = array[i];\n if (chr > 0xFF) {\n if (ASSERTIONS) {\n assert(false, \'Character code \' + chr + \' (\' + String.fromCharCode(chr) + \') at offset \' + i + \' not in 0x00-0xFF.\');\n }\n chr &= 0xFF;\n }\n ret.push(String.fromCharCode(chr));\n }\n return ret.join(\'\');\n}\n\n\n// Copied from https://github.com/strophe/strophejs/blob/e06d027/src/polyfills.js#L149\n\n// This code was written by Tyler Akins and has been placed in the\n// public domain. It would be nice if you left this header intact.\n// Base64 code from Tyler Akins -- http://rumkin.com\n\n/**\n * Decodes a base64 string.\n * @param {String} input The string to decode.\n */\nvar decodeBase64 = typeof atob === \'function\' ? atob : function (input) {\n var keyStr = \'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\';\n\n var output = \'\';\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0;\n // remove all characters that are not A-Z, a-z, 0-9, +, /, or =\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \'\');\n do {\n enc1 = keyStr.indexOf(input.charAt(i++));\n enc2 = keyStr.indexOf(input.charAt(i++));\n enc3 = keyStr.indexOf(input.charAt(i++));\n enc4 = keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output = output + String.fromCharCode(chr1);\n\n if (enc3 !== 64) {\n output = output + String.fromCharCode(chr2);\n }\n if (enc4 !== 64) {\n output = output + String.fromCharCode(chr3);\n }\n } while (i < input.length);\n return output;\n};\n\n// Converts a string of base64 into a byte array.\n// Throws error on invalid input.\nfunction intArrayFromBase64(s) {\n if (typeof ENVIRONMENT_IS_NODE === \'boolean\' && ENVIRONMENT_IS_NODE) {\n var buf;\n try {\n buf = Buffer.from(s, \'base64\');\n } catch (_) {\n buf = new Buffer(s, \'base64\');\n }\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n\n try {\n var decoded = decodeBase64(s);\n var bytes = new Uint8Array(decoded.length);\n for (var i = 0 ; i < decoded.length ; ++i) {\n bytes[i] = decoded.charCodeAt(i);\n }\n return bytes;\n } catch (_) {\n throw new Error(\'Converting base64 string to bytes failed.\');\n }\n}\n\n// If filename is a base64 data URI, parses and returns data (Buffer on node,\n// Uint8Array otherwise). If filename is not a base64 data URI, returns undefined.\nfunction tryParseAsDataURI(filename) {\n if (!isDataURI(filename)) {\n return;\n }\n\n return intArrayFromBase64(filename.slice(dataURIPrefix.length));\n}\n\n\n\nModule[\'wasmTableSize\'] = 288;\n\nModule[\'wasmMaxTableSize\'] = 288;\n\nfunction invoke_ii(index,a1) {\n var sp = stackSave();\n try {\n return Module["dynCall_ii"](index,a1);\n } catch(e) {\n stackRestore(sp);\n if (typeof e !== \'number\' && e !== \'longjmp\') throw e;\n Module["setThrew"](1, 0);\n }\n}\n\nfunction jsCall_ii(index,a1) {\n return functionPointers[index](a1);\n}\n\nfunction invoke_iii(index,a1,a2) {\n var sp = stackSave();\n try {\n return Module["dynCall_iii"](index,a1,a2);\n } catch(e) {\n stackRestore(sp);\n if (typeof e !== \'number\' && e !== \'longjmp\') throw e;\n Module["setThrew"](1, 0);\n }\n}\n\nfunction jsCall_iii(index,a1,a2) {\n return functionPointers[index](a1,a2);\n}\n\nfunction invoke_iiii(index,a1,a2,a3) {\n var sp = stackSave();\n try {\n return Module["dynCall_iiii"](index,a1,a2,a3);\n } catch(e) {\n stackRestore(sp);\n if (typeof e !== \'number\' && e !== \'longjmp\') throw e;\n Module["setThrew"](1, 0);\n }\n}\n\nfunction jsCall_iiii(index,a1,a2,a3) {\n return functionPointers[index](a1,a2,a3);\n}\n\nfunction invoke_iiiiii(index,a1,a2,a3,a4,a5) {\n var sp = stackSave();\n try {\n return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5);\n } catch(e) {\n stackRestore(sp);\n if (typeof e !== \'number\' && e !== \'longjmp\') throw e;\n Module["setThrew"](1, 0);\n }\n}\n\nfunction jsCall_iiiiii(index,a1,a2,a3,a4,a5) {\n return functionPointers[index](a1,a2,a3,a4,a5);\n}\n\nfunction invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6) {\n var sp = stackSave();\n try {\n return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6);\n } catch(e) {\n stackRestore(sp);\n if (typeof e !== \'number\' && e !== \'longjmp\') throw e;\n Module["setThrew"](1, 0);\n }\n}\n\nfunction jsCall_iiiiiii(index,a1,a2,a3,a4,a5,a6) {\n return functionPointers[index](a1,a2,a3,a4,a5,a6);\n}\n\nfunction invoke_vi(index,a1) {\n var sp = stackSave();\n try {\n Module["dynCall_vi"](index,a1);\n } catch(e) {\n stackRestore(sp);\n if (typeof e !== \'number\' && e !== \'longjmp\') throw e;\n Module["setThrew"](1, 0);\n }\n}\n\nfunction jsCall_vi(index,a1) {\n functionPointers[index](a1);\n}\n\nfunction invoke_vii(index,a1,a2) {\n var sp = stackSave();\n try {\n Module["dynCall_vii"](index,a1,a2);\n } catch(e) {\n stackRestore(sp);\n if (typeof e !== \'number\' && e !== \'longjmp\') throw e;\n Module["setThrew"](1, 0);\n }\n}\n\nfunction jsCall_vii(index,a1,a2) {\n functionPointers[index](a1,a2);\n}\n\nfunction invoke_viid(index,a1,a2,a3) {\n var sp = stackSave();\n try {\n Module["dynCall_viid"](index,a1,a2,a3);\n } catch(e) {\n stackRestore(sp);\n if (typeof e !== \'number\' && e !== \'longjmp\') throw e;\n Module["setThrew"](1, 0);\n }\n}\n\nfunction jsCall_viid(index,a1,a2,a3) {\n functionPointers[index](a1,a2,a3);\n}\n\nfunction invoke_viii(index,a1,a2,a3) {\n var sp = stackSave();\n try {\n Module["dynCall_viii"](index,a1,a2,a3);\n } catch(e) {\n stackRestore(sp);\n if (typeof e !== \'number\' && e !== \'longjmp\') throw e;\n Module["setThrew"](1, 0);\n }\n}\n\nfunction jsCall_viii(index,a1,a2,a3) {\n functionPointers[index](a1,a2,a3);\n}\n\nfunction invoke_viiii(index,a1,a2,a3,a4) {\n var sp = stackSave();\n try {\n Module["dynCall_viiii"](index,a1,a2,a3,a4);\n } catch(e) {\n stackRestore(sp);\n if (typeof e !== \'number\' && e !== \'longjmp\') throw e;\n Module["setThrew"](1, 0);\n }\n}\n\nfunction jsCall_viiii(index,a1,a2,a3,a4) {\n functionPointers[index](a1,a2,a3,a4);\n}\n\nModule.asmGlobalArg = {};\n\nModule.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "invoke_ii": invoke_ii, "jsCall_ii": jsCall_ii, "invoke_iii": invoke_iii, "jsCall_iii": jsCall_iii, "invoke_iiii": invoke_iiii, "jsCall_iiii": jsCall_iiii, "invoke_iiiiii": invoke_iiiiii, "jsCall_iiiiii": jsCall_iiiiii, "invoke_iiiiiii": invoke_iiiiiii, "jsCall_iiiiiii": jsCall_iiiiiii, "invoke_vi": invoke_vi, "jsCall_vi": jsCall_vi, "invoke_vii": invoke_vii, "jsCall_vii": jsCall_vii, "invoke_viid": invoke_viid, "jsCall_viid": jsCall_viid, "invoke_viii": invoke_viii, "jsCall_viii": jsCall_viii, "invoke_viiii": invoke_viiii, "jsCall_viiii": jsCall_viiii, "___lock": ___lock, "___setErrNo": ___setErrNo, "___syscall140": ___syscall140, "___syscall145": ___syscall145, "___syscall146": ___syscall146, "___syscall150": ___syscall150, "___syscall151": ___syscall151, "___syscall153": ___syscall153, "___syscall195": ___syscall195, "___syscall221": ___syscall221, "___syscall5": ___syscall5, "___syscall54": ___syscall54, "___syscall6": ___syscall6, "___unlock": ___unlock, "_abort": _abort, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_gettimeofday": _gettimeofday, "_llvm_exp2_f32": _llvm_exp2_f32, "_llvm_exp2_f64": _llvm_exp2_f64, "_llvm_fabs_f64": _llvm_fabs_f64, "_usleep": _usleep, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX };\n// EMSCRIPTEN_START_ASM\nvar asm =Module["asm"]// EMSCRIPTEN_END_ASM\n(Module.asmGlobalArg, Module.asmLibraryArg, buffer);\n\nModule["asm"] = asm;\nvar ___errno_location = Module["___errno_location"] = function() { return Module["asm"]["___errno_location"].apply(null, arguments) };\nvar _delete_fluid_audio_driver = Module["_delete_fluid_audio_driver"] = function() { return Module["asm"]["_delete_fluid_audio_driver"].apply(null, arguments) };\nvar _delete_fluid_event = Module["_delete_fluid_event"] = function() { return Module["asm"]["_delete_fluid_event"].apply(null, arguments) };\nvar _delete_fluid_file_renderer = Module["_delete_fluid_file_renderer"] = function() { return Module["asm"]["_delete_fluid_file_renderer"].apply(null, arguments) };\nvar _delete_fluid_midi_driver = Module["_delete_fluid_midi_driver"] = function() { return Module["asm"]["_delete_fluid_midi_driver"].apply(null, arguments) };\nvar _delete_fluid_midi_event = Module["_delete_fluid_midi_event"] = function() { return Module["asm"]["_delete_fluid_midi_event"].apply(null, arguments) };\nvar _delete_fluid_midi_router = Module["_delete_fluid_midi_router"] = function() { return Module["asm"]["_delete_fluid_midi_router"].apply(null, arguments) };\nvar _delete_fluid_midi_router_rule = Module["_delete_fluid_midi_router_rule"] = function() { return Module["asm"]["_delete_fluid_midi_router_rule"].apply(null, arguments) };\nvar _delete_fluid_mod = Module["_delete_fluid_mod"] = function() { return Module["asm"]["_delete_fluid_mod"].apply(null, arguments) };\nvar _delete_fluid_player = Module["_delete_fluid_player"] = function() { return Module["asm"]["_delete_fluid_player"].apply(null, arguments) };\nvar _delete_fluid_preset = Module["_delete_fluid_preset"] = function() { return Module["asm"]["_delete_fluid_preset"].apply(null, arguments) };\nvar _delete_fluid_sample = Module["_delete_fluid_sample"] = function() { return Module["asm"]["_delete_fluid_sample"].apply(null, arguments) };\nvar _delete_fluid_sequencer = Module["_delete_fluid_sequencer"] = function() { return Module["asm"]["_delete_fluid_sequencer"].apply(null, arguments) };\nvar _delete_fluid_settings = Module["_delete_fluid_settings"] = function() { return Module["asm"]["_delete_fluid_settings"].apply(null, arguments) };\nvar _delete_fluid_sfloader = Module["_delete_fluid_sfloader"] = function() { return Module["asm"]["_delete_fluid_sfloader"].apply(null, arguments) };\nvar _delete_fluid_sfont = Module["_delete_fluid_sfont"] = function() { return Module["asm"]["_delete_fluid_sfont"].apply(null, arguments) };\nvar _delete_fluid_synth = Module["_delete_fluid_synth"] = function() { return Module["asm"]["_delete_fluid_synth"].apply(null, arguments) };\nvar _emscripten_replace_memory = Module["_emscripten_replace_memory"] = function() { return Module["asm"]["_emscripten_replace_memory"].apply(null, arguments) };\nvar _fluid_audio_driver_register = Module["_fluid_audio_driver_register"] = function() { return Module["asm"]["_fluid_audio_driver_register"].apply(null, arguments) };\nvar _fluid_default_log_function = Module["_fluid_default_log_function"] = function() { return Module["asm"]["_fluid_default_log_function"].apply(null, arguments) };\nvar _fluid_event_all_notes_off = Module["_fluid_event_all_notes_off"] = function() { return Module["asm"]["_fluid_event_all_notes_off"].apply(null, arguments) };\nvar _fluid_event_all_sounds_off = Module["_fluid_event_all_sounds_off"] = function() { return Module["asm"]["_fluid_event_all_sounds_off"].apply(null, arguments) };\nvar _fluid_event_any_control_change = Module["_fluid_event_any_control_change"] = function() { return Module["asm"]["_fluid_event_any_control_change"].apply(null, arguments) };\nvar _fluid_event_bank_select = Module["_fluid_event_bank_select"] = function() { return Module["asm"]["_fluid_event_bank_select"].apply(null, arguments) };\nvar _fluid_event_channel_pressure = Module["_fluid_event_channel_pressure"] = function() { return Module["asm"]["_fluid_event_channel_pressure"].apply(null, arguments) };\nvar _fluid_event_chorus_send = Module["_fluid_event_chorus_send"] = function() { return Module["asm"]["_fluid_event_chorus_send"].apply(null, arguments) };\nvar _fluid_event_control_change = Module["_fluid_event_control_change"] = function() { return Module["asm"]["_fluid_event_control_change"].apply(null, arguments) };\nvar _fluid_event_get_bank = Module["_fluid_event_get_bank"] = function() { return Module["asm"]["_fluid_event_get_bank"].apply(null, arguments) };\nvar _fluid_event_get_channel = Module["_fluid_event_get_channel"] = function() { return Module["asm"]["_fluid_event_get_channel"].apply(null, arguments) };\nvar _fluid_event_get_control = Module["_fluid_event_get_control"] = function() { return Module["asm"]["_fluid_event_get_control"].apply(null, arguments) };\nvar _fluid_event_get_data = Module["_fluid_event_get_data"] = function() { return Module["asm"]["_fluid_event_get_data"].apply(null, arguments) };\nvar _fluid_event_get_dest = Module["_fluid_event_get_dest"] = function() { return Module["asm"]["_fluid_event_get_dest"].apply(null, arguments) };\nvar _fluid_event_get_duration = Module["_fluid_event_get_duration"] = function() { return Module["asm"]["_fluid_event_get_duration"].apply(null, arguments) };\nvar _fluid_event_get_key = Module["_fluid_event_get_key"] = function() { return Module["asm"]["_fluid_event_get_key"].apply(null, arguments) };\nvar _fluid_event_get_pitch = Module["_fluid_event_get_pitch"] = function() { return Module["asm"]["_fluid_event_get_pitch"].apply(null, arguments) };\nvar _fluid_event_get_program = Module["_fluid_event_get_program"] = function() { return Module["asm"]["_fluid_event_get_program"].apply(null, arguments) };\nvar _fluid_event_get_sfont_id = Module["_fluid_event_get_sfont_id"] = function() { return Module["asm"]["_fluid_event_get_sfont_id"].apply(null, arguments) };\nvar _fluid_event_get_source = Module["_fluid_event_get_source"] = function() { return Module["asm"]["_fluid_event_get_source"].apply(null, arguments) };\nvar _fluid_event_get_type = Module["_fluid_event_get_type"] = function() { return Module["asm"]["_fluid_event_get_type"].apply(null, arguments) };\nvar _fluid_event_get_value = Module["_fluid_event_get_value"] = function() { return Module["asm"]["_fluid_event_get_value"].apply(null, arguments) };\nvar _fluid_event_get_velocity = Module["_fluid_event_get_velocity"] = function() { return Module["asm"]["_fluid_event_get_velocity"].apply(null, arguments) };\nvar _fluid_event_key_pressure = Module["_fluid_event_key_pressure"] = function() { return Module["asm"]["_fluid_event_key_pressure"].apply(null, arguments) };\nvar _fluid_event_modulation = Module["_fluid_event_modulation"] = function() { return Module["asm"]["_fluid_event_modulation"].apply(null, arguments) };\nvar _fluid_event_note = Module["_fluid_event_note"] = function() { return Module["asm"]["_fluid_event_note"].apply(null, arguments) };\nvar _fluid_event_noteoff = Module["_fluid_event_noteoff"] = function() { return Module["asm"]["_fluid_event_noteoff"].apply(null, arguments) };\nvar _fluid_event_noteon = Module["_fluid_event_noteon"] = function() { return Module["asm"]["_fluid_event_noteon"].apply(null, arguments) };\nvar _fluid_event_pan = Module["_fluid_event_pan"] = function() { return Module["asm"]["_fluid_event_pan"].apply(null, arguments) };\nvar _fluid_event_pitch_bend = Module["_fluid_event_pitch_bend"] = function() { return Module["asm"]["_fluid_event_pitch_bend"].apply(null, arguments) };\nvar _fluid_event_pitch_wheelsens = Module["_fluid_event_pitch_wheelsens"] = function() { return Module["asm"]["_fluid_event_pitch_wheelsens"].apply(null, arguments) };\nvar _fluid_event_program_change = Module["_fluid_event_program_change"] = function() { return Module["asm"]["_fluid_event_program_change"].apply(null, arguments) };\nvar _fluid_event_program_select = Module["_fluid_event_program_select"] = function() { return Module["asm"]["_fluid_event_program_select"].apply(null, arguments) };\nvar _fluid_event_reverb_send = Module["_fluid_event_reverb_send"] = function() { return Module["asm"]["_fluid_event_reverb_send"].apply(null, arguments) };\nvar _fluid_event_set_dest = Module["_fluid_event_set_dest"] = function() { return Module["asm"]["_fluid_event_set_dest"].apply(null, arguments) };\nvar _fluid_event_set_source = Module["_fluid_event_set_source"] = function() { return Module["asm"]["_fluid_event_set_source"].apply(null, arguments) };\nvar _fluid_event_sustain = Module["_fluid_event_sustain"] = function() { return Module["asm"]["_fluid_event_sustain"].apply(null, arguments) };\nvar _fluid_event_system_reset = Module["_fluid_event_system_reset"] = function() { return Module["asm"]["_fluid_event_system_reset"].apply(null, arguments) };\nvar _fluid_event_timer = Module["_fluid_event_timer"] = function() { return Module["asm"]["_fluid_event_timer"].apply(null, arguments) };\nvar _fluid_event_unregistering = Module["_fluid_event_unregistering"] = function() { return Module["asm"]["_fluid_event_unregistering"].apply(null, arguments) };\nvar _fluid_event_volume = Module["_fluid_event_volume"] = function() { return Module["asm"]["_fluid_event_volume"].apply(null, arguments) };\nvar _fluid_file_renderer_process_block = Module["_fluid_file_renderer_process_block"] = function() { return Module["asm"]["_fluid_file_renderer_process_block"].apply(null, arguments) };\nvar _fluid_file_set_encoding_quality = Module["_fluid_file_set_encoding_quality"] = function() { return Module["asm"]["_fluid_file_set_encoding_quality"].apply(null, arguments) };\nvar _fluid_is_midifile = Module["_fluid_is_midifile"] = function() { return Module["asm"]["_fluid_is_midifile"].apply(null, arguments) };\nvar _fluid_is_soundfont = Module["_fluid_is_soundfont"] = function() { return Module["asm"]["_fluid_is_soundfont"].apply(null, arguments) };\nvar _fluid_ladspa_activate = Module["_fluid_ladspa_activate"] = function() { return Module["asm"]["_fluid_ladspa_activate"].apply(null, arguments) };\nvar _fluid_ladspa_add_buffer = Module["_fluid_ladspa_add_buffer"] = function() { return Module["asm"]["_fluid_ladspa_add_buffer"].apply(null, arguments) };\nvar _fluid_ladspa_add_effect = Module["_fluid_ladspa_add_effect"] = function() { return Module["asm"]["_fluid_ladspa_add_effect"].apply(null, arguments) };\nvar _fluid_ladspa_buffer_exists = Module["_fluid_ladspa_buffer_exists"] = function() { return Module["asm"]["_fluid_ladspa_buffer_exists"].apply(null, arguments) };\nvar _fluid_ladspa_check = Module["_fluid_ladspa_check"] = function() { return Module["asm"]["_fluid_ladspa_check"].apply(null, arguments) };\nvar _fluid_ladspa_deactivate = Module["_fluid_ladspa_deactivate"] = function() { return Module["asm"]["_fluid_ladspa_deactivate"].apply(null, arguments) };\nvar _fluid_ladspa_effect_can_mix = Module["_fluid_ladspa_effect_can_mix"] = function() { return Module["asm"]["_fluid_ladspa_effect_can_mix"].apply(null, arguments) };\nvar _fluid_ladspa_effect_link = Module["_fluid_ladspa_effect_link"] = function() { return Module["asm"]["_fluid_ladspa_effect_link"].apply(null, arguments) };\nvar _fluid_ladspa_effect_port_exists = Module["_fluid_ladspa_effect_port_exists"] = function() { return Module["asm"]["_fluid_ladspa_effect_port_exists"].apply(null, arguments) };\nvar _fluid_ladspa_effect_set_control = Module["_fluid_ladspa_effect_set_control"] = function() { return Module["asm"]["_fluid_ladspa_effect_set_control"].apply(null, arguments) };\nvar _fluid_ladspa_effect_set_mix = Module["_fluid_ladspa_effect_set_mix"] = function() { return Module["asm"]["_fluid_ladspa_effect_set_mix"].apply(null, arguments) };\nvar _fluid_ladspa_host_port_exists = Module["_fluid_ladspa_host_port_exists"] = function() { return Module["asm"]["_fluid_ladspa_host_port_exists"].apply(null, arguments) };\nvar _fluid_ladspa_is_active = Module["_fluid_ladspa_is_active"] = function() { return Module["asm"]["_fluid_ladspa_is_active"].apply(null, arguments) };\nvar _fluid_ladspa_reset = Module["_fluid_ladspa_reset"] = function() { return Module["asm"]["_fluid_ladspa_reset"].apply(null, arguments) };\nvar _fluid_log = Module["_fluid_log"] = function() { return Module["asm"]["_fluid_log"].apply(null, arguments) };\nvar _fluid_midi_dump_postrouter = Module["_fluid_midi_dump_postrouter"] = function() { return Module["asm"]["_fluid_midi_dump_postrouter"].apply(null, arguments) };\nvar _fluid_midi_dump_prerouter = Module["_fluid_midi_dump_prerouter"] = function() { return Module["asm"]["_fluid_midi_dump_prerouter"].apply(null, arguments) };\nvar _fluid_midi_event_get_channel = Module["_fluid_midi_event_get_channel"] = function() { return Module["asm"]["_fluid_midi_event_get_channel"].apply(null, arguments) };\nvar _fluid_midi_event_get_control = Module["_fluid_midi_event_get_control"] = function() { return Module["asm"]["_fluid_midi_event_get_control"].apply(null, arguments) };\nvar _fluid_midi_event_get_key = Module["_fluid_midi_event_get_key"] = function() { return Module["asm"]["_fluid_midi_event_get_key"].apply(null, arguments) };\nvar _fluid_midi_event_get_pitch = Module["_fluid_midi_event_get_pitch"] = function() { return Module["asm"]["_fluid_midi_event_get_pitch"].apply(null, arguments) };\nvar _fluid_midi_event_get_program = Module["_fluid_midi_event_get_program"] = function() { return Module["asm"]["_fluid_midi_event_get_program"].apply(null, arguments) };\nvar _fluid_midi_event_get_type = Module["_fluid_midi_event_get_type"] = function() { return Module["asm"]["_fluid_midi_event_get_type"].apply(null, arguments) };\nvar _fluid_midi_event_get_value = Module["_fluid_midi_event_get_value"] = function() { return Module["asm"]["_fluid_midi_event_get_value"].apply(null, arguments) };\nvar _fluid_midi_event_get_velocity = Module["_fluid_midi_event_get_velocity"] = function() { return Module["asm"]["_fluid_midi_event_get_velocity"].apply(null, arguments) };\nvar _fluid_midi_event_set_channel = Module["_fluid_midi_event_set_channel"] = function() { return Module["asm"]["_fluid_midi_event_set_channel"].apply(null, arguments) };\nvar _fluid_midi_event_set_control = Module["_fluid_midi_event_set_control"] = function() { return Module["asm"]["_fluid_midi_event_set_control"].apply(null, arguments) };\nvar _fluid_midi_event_set_key = Module["_fluid_midi_event_set_key"] = function() { return Module["asm"]["_fluid_midi_event_set_key"].apply(null, arguments) };\nvar _fluid_midi_event_set_lyrics = Module["_fluid_midi_event_set_lyrics"] = function() { return Module["asm"]["_fluid_midi_event_set_lyrics"].apply(null, arguments) };\nvar _fluid_midi_event_set_pitch = Module["_fluid_midi_event_set_pitch"] = function() { return Module["asm"]["_fluid_midi_event_set_pitch"].apply(null, arguments) };\nvar _fluid_midi_event_set_program = Module["_fluid_midi_event_set_program"] = function() { return Module["asm"]["_fluid_midi_event_set_program"].apply(null, arguments) };\nvar _fluid_midi_event_set_sysex = Module["_fluid_midi_event_set_sysex"] = function() { return Module["asm"]["_fluid_midi_event_set_sysex"].apply(null, arguments) };\nvar _fluid_midi_event_set_text = Module["_fluid_midi_event_set_text"] = function() { return Module["asm"]["_fluid_midi_event_set_text"].apply(null, arguments) };\nvar _fluid_midi_event_set_type = Module["_fluid_midi_event_set_type"] = function() { return Module["asm"]["_fluid_midi_event_set_type"].apply(null, arguments) };\nvar _fluid_midi_event_set_value = Module["_fluid_midi_event_set_value"] = function() { return Module["asm"]["_fluid_midi_event_set_value"].apply(null, arguments) };\nvar _fluid_midi_event_set_velocity = Module["_fluid_midi_event_set_velocity"] = function() { return Module["asm"]["_fluid_midi_event_set_velocity"].apply(null, arguments) };\nvar _fluid_midi_router_add_rule = Module["_fluid_midi_router_add_rule"] = function() { return Module["asm"]["_fluid_midi_router_add_rule"].apply(null, arguments) };\nvar _fluid_midi_router_clear_rules = Module["_fluid_midi_router_clear_rules"] = function() { return Module["asm"]["_fluid_midi_router_clear_rules"].apply(null, arguments) };\nvar _fluid_midi_router_handle_midi_event = Module["_fluid_midi_router_handle_midi_event"] = function() { return Module["asm"]["_fluid_midi_router_handle_midi_event"].apply(null, arguments) };\nvar _fluid_midi_router_rule_set_chan = Module["_fluid_midi_router_rule_set_chan"] = function() { return Module["asm"]["_fluid_midi_router_rule_set_chan"].apply(null, arguments) };\nvar _fluid_midi_router_rule_set_param1 = Module["_fluid_midi_router_rule_set_param1"] = function() { return Module["asm"]["_fluid_midi_router_rule_set_param1"].apply(null, arguments) };\nvar _fluid_midi_router_rule_set_param2 = Module["_fluid_midi_router_rule_set_param2"] = function() { return Module["asm"]["_fluid_midi_router_rule_set_param2"].apply(null, arguments) };\nvar _fluid_midi_router_set_default_rules = Module["_fluid_midi_router_set_default_rules"] = function() { return Module["asm"]["_fluid_midi_router_set_default_rules"].apply(null, arguments) };\nvar _fluid_mod_clone = Module["_fluid_mod_clone"] = function() { return Module["asm"]["_fluid_mod_clone"].apply(null, arguments) };\nvar _fluid_mod_get_amount = Module["_fluid_mod_get_amount"] = function() { return Module["asm"]["_fluid_mod_get_amount"].apply(null, arguments) };\nvar _fluid_mod_get_dest = Module["_fluid_mod_get_dest"] = function() { return Module["asm"]["_fluid_mod_get_dest"].apply(null, arguments) };\nvar _fluid_mod_get_flags1 = Module["_fluid_mod_get_flags1"] = function() { return Module["asm"]["_fluid_mod_get_flags1"].apply(null, arguments) };\nvar _fluid_mod_get_flags2 = Module["_fluid_mod_get_flags2"] = function() { return Module["asm"]["_fluid_mod_get_flags2"].apply(null, arguments) };\nvar _fluid_mod_get_source1 = Module["_fluid_mod_get_source1"] = function() { return Module["asm"]["_fluid_mod_get_source1"].apply(null, arguments) };\nvar _fluid_mod_get_source2 = Module["_fluid_mod_get_source2"] = function() { return Module["asm"]["_fluid_mod_get_source2"].apply(null, arguments) };\nvar _fluid_mod_has_dest = Module["_fluid_mod_has_dest"] = function() { return Module["asm"]["_fluid_mod_has_dest"].apply(null, arguments) };\nvar _fluid_mod_has_source = Module["_fluid_mod_has_source"] = function() { return Module["asm"]["_fluid_mod_has_source"].apply(null, arguments) };\nvar _fluid_mod_set_amount = Module["_fluid_mod_set_amount"] = function() { return Module["asm"]["_fluid_mod_set_amount"].apply(null, arguments) };\nvar _fluid_mod_set_dest = Module["_fluid_mod_set_dest"] = function() { return Module["asm"]["_fluid_mod_set_dest"].apply(null, arguments) };\nvar _fluid_mod_set_source1 = Module["_fluid_mod_set_source1"] = function() { return Module["asm"]["_fluid_mod_set_source1"].apply(null, arguments) };\nvar _fluid_mod_set_source2 = Module["_fluid_mod_set_source2"] = function() { return Module["asm"]["_fluid_mod_set_source2"].apply(null, arguments) };\nvar _fluid_mod_sizeof = Module["_fluid_mod_sizeof"] = function() { return Module["asm"]["_fluid_mod_sizeof"].apply(null, arguments) };\nvar _fluid_mod_test_identity = Module["_fluid_mod_test_identity"] = function() { return Module["asm"]["_fluid_mod_test_identity"].apply(null, arguments) };\nvar _fluid_player_add = Module["_fluid_player_add"] = function() { return Module["asm"]["_fluid_player_add"].apply(null, arguments) };\nvar _fluid_player_add_mem = Module["_fluid_player_add_mem"] = function() { return Module["asm"]["_fluid_player_add_mem"].apply(null, arguments) };\nvar _fluid_player_get_bpm = Module["_fluid_player_get_bpm"] = function() { return Module["asm"]["_fluid_player_get_bpm"].apply(null, arguments) };\nvar _fluid_player_get_current_tick = Module["_fluid_player_get_current_tick"] = function() { return Module["asm"]["_fluid_player_get_current_tick"].apply(null, arguments) };\nvar _fluid_player_get_midi_tempo = Module["_fluid_player_get_midi_tempo"] = function() { return Module["asm"]["_fluid_player_get_midi_tempo"].apply(null, arguments) };\nvar _fluid_player_get_status = Module["_fluid_player_get_status"] = function() { return Module["asm"]["_fluid_player_get_status"].apply(null, arguments) };\nvar _fluid_player_get_total_ticks = Module["_fluid_player_get_total_ticks"] = function() { return Module["asm"]["_fluid_player_get_total_ticks"].apply(null, arguments) };\nvar _fluid_player_join = Module["_fluid_player_join"] = function() { return Module["asm"]["_fluid_player_join"].apply(null, arguments) };\nvar _fluid_player_play = Module["_fluid_player_play"] = function() { return Module["asm"]["_fluid_player_play"].apply(null, arguments) };\nvar _fluid_player_seek = Module["_fluid_player_seek"] = function() { return Module["asm"]["_fluid_player_seek"].apply(null, arguments) };\nvar _fluid_player_set_bpm = Module["_fluid_player_set_bpm"] = function() { return Module["asm"]["_fluid_player_set_bpm"].apply(null, arguments) };\nvar _fluid_player_set_loop = Module["_fluid_player_set_loop"] = function() { return Module["asm"]["_fluid_player_set_loop"].apply(null, arguments) };\nvar _fluid_player_set_midi_tempo = Module["_fluid_player_set_midi_tempo"] = function() { return Module["asm"]["_fluid_player_set_midi_tempo"].apply(null, arguments) };\nvar _fluid_player_set_playback_callback = Module["_fluid_player_set_playback_callback"] = function() { return Module["asm"]["_fluid_player_set_playback_callback"].apply(null, arguments) };\nvar _fluid_player_stop = Module["_fluid_player_stop"] = function() { return Module["asm"]["_fluid_player_stop"].apply(null, arguments) };\nvar _fluid_preset_get_banknum = Module["_fluid_preset_get_banknum"] = function() { return Module["asm"]["_fluid_preset_get_banknum"].apply(null, arguments) };\nvar _fluid_preset_get_data = Module["_fluid_preset_get_data"] = function() { return Module["asm"]["_fluid_preset_get_data"].apply(null, arguments) };\nvar _fluid_preset_get_name = Module["_fluid_preset_get_name"] = function() { return Module["asm"]["_fluid_preset_get_name"].apply(null, arguments) };\nvar _fluid_preset_get_num = Module["_fluid_preset_get_num"] = function() { return Module["asm"]["_fluid_preset_get_num"].apply(null, arguments) };\nvar _fluid_preset_get_sfont = Module["_fluid_preset_get_sfont"] = function() { return Module["asm"]["_fluid_preset_get_sfont"].apply(null, arguments) };\nvar _fluid_preset_set_data = Module["_fluid_preset_set_data"] = function() { return Module["asm"]["_fluid_preset_set_data"].apply(null, arguments) };\nvar _fluid_sample_set_loop = Module["_fluid_sample_set_loop"] = function() { return Module["asm"]["_fluid_sample_set_loop"].apply(null, arguments) };\nvar _fluid_sample_set_name = Module["_fluid_sample_set_name"] = function() { return Module["asm"]["_fluid_sample_set_name"].apply(null, arguments) };\nvar _fluid_sample_set_pitch = Module["_fluid_sample_set_pitch"] = function() { return Module["asm"]["_fluid_sample_set_pitch"].apply(null, arguments) };\nvar _fluid_sample_set_sound_data = Module["_fluid_sample_set_sound_data"] = function() { return Module["asm"]["_fluid_sample_set_sound_data"].apply(null, arguments) };\nvar _fluid_sample_sizeof = Module["_fluid_sample_sizeof"] = function() { return Module["asm"]["_fluid_sample_sizeof"].apply(null, arguments) };\nvar _fluid_sequencer_add_midi_event_to_buffer = Module["_fluid_sequencer_add_midi_event_to_buffer"] = function() { return Module["asm"]["_fluid_sequencer_add_midi_event_to_buffer"].apply(null, arguments) };\nvar _fluid_sequencer_client_is_dest = Module["_fluid_sequencer_client_is_dest"] = function() { return Module["asm"]["_fluid_sequencer_client_is_dest"].apply(null, arguments) };\nvar _fluid_sequencer_count_clients = Module["_fluid_sequencer_count_clients"] = function() { return Module["asm"]["_fluid_sequencer_count_clients"].apply(null, arguments) };\nvar _fluid_sequencer_get_client_id = Module["_fluid_sequencer_get_client_id"] = function() { return Module["asm"]["_fluid_sequencer_get_client_id"].apply(null, arguments) };\nvar _fluid_sequencer_get_client_name = Module["_fluid_sequencer_get_client_name"] = function() { return Module["asm"]["_fluid_sequencer_get_client_name"].apply(null, arguments) };\nvar _fluid_sequencer_get_tick = Module["_fluid_sequencer_get_tick"] = function() { return Module["asm"]["_fluid_sequencer_get_tick"].apply(null, arguments) };\nvar _fluid_sequencer_get_time_scale = Module["_fluid_sequencer_get_time_scale"] = function() { return Module["asm"]["_fluid_sequencer_get_time_scale"].apply(null, arguments) };\nvar _fluid_sequencer_get_use_system_timer = Module["_fluid_sequencer_get_use_system_timer"] = function() { return Module["asm"]["_fluid_sequencer_get_use_system_timer"].apply(null, arguments) };\nvar _fluid_sequencer_process = Module["_fluid_sequencer_process"] = function() { return Module["asm"]["_fluid_sequencer_process"].apply(null, arguments) };\nvar _fluid_sequencer_register_client = Module["_fluid_sequencer_register_client"] = function() { return Module["asm"]["_fluid_sequencer_register_client"].apply(null, arguments) };\nvar _fluid_sequencer_register_fluidsynth = Module["_fluid_sequencer_register_fluidsynth"] = function() { return Module["asm"]["_fluid_sequencer_register_fluidsynth"].apply(null, arguments) };\nvar _fluid_sequencer_remove_events = Module["_fluid_sequencer_remove_events"] = function() { return Module["asm"]["_fluid_sequencer_remove_events"].apply(null, arguments) };\nvar _fluid_sequencer_send_at = Module["_fluid_sequencer_send_at"] = function() { return Module["asm"]["_fluid_sequencer_send_at"].apply(null, arguments) };\nvar _fluid_sequencer_send_now = Module["_fluid_sequencer_send_now"] = function() { return Module["asm"]["_fluid_sequencer_send_now"].apply(null, arguments) };\nvar _fluid_sequencer_set_time_scale = Module["_fluid_sequencer_set_time_scale"] = function() { return Module["asm"]["_fluid_sequencer_set_time_scale"].apply(null, arguments) };\nvar _fluid_sequencer_unregister_client = Module["_fluid_sequencer_unregister_client"] = function() { return Module["asm"]["_fluid_sequencer_unregister_client"].apply(null, arguments) };\nvar _fluid_set_log_function = Module["_fluid_set_log_function"] = function() { return Module["asm"]["_fluid_set_log_function"].apply(null, arguments) };\nvar _fluid_settings_copystr = Module["_fluid_settings_copystr"] = function() { return Module["asm"]["_fluid_settings_copystr"].apply(null, arguments) };\nvar _fluid_settings_dupstr = Module["_fluid_settings_dupstr"] = function() { return Module["asm"]["_fluid_settings_dupstr"].apply(null, arguments) };\nvar _fluid_settings_foreach = Module["_fluid_settings_foreach"] = function() { return Module["asm"]["_fluid_settings_foreach"].apply(null, arguments) };\nvar _fluid_settings_foreach_option = Module["_fluid_settings_foreach_option"] = function() { return Module["asm"]["_fluid_settings_foreach_option"].apply(null, arguments) };\nvar _fluid_settings_get_hints = Module["_fluid_settings_get_hints"] = function() { return Module["asm"]["_fluid_settings_get_hints"].apply(null, arguments) };\nvar _fluid_settings_get_type = Module["_fluid_settings_get_type"] = function() { return Module["asm"]["_fluid_settings_get_type"].apply(null, arguments) };\nvar _fluid_settings_getint = Module["_fluid_settings_getint"] = function() { return Module["asm"]["_fluid_settings_getint"].apply(null, arguments) };\nvar _fluid_settings_getint_default = Module["_fluid_settings_getint_default"] = function() { return Module["asm"]["_fluid_settings_getint_default"].apply(null, arguments) };\nvar _fluid_settings_getint_range = Module["_fluid_settings_getint_range"] = function() { return Module["asm"]["_fluid_settings_getint_range"].apply(null, arguments) };\nvar _fluid_settings_getnum = Module["_fluid_settings_getnum"] = function() { return Module["asm"]["_fluid_settings_getnum"].apply(null, arguments) };\nvar _fluid_settings_getnum_default = Module["_fluid_settings_getnum_default"] = function() { return Module["asm"]["_fluid_settings_getnum_default"].apply(null, arguments) };\nvar _fluid_settings_getnum_range = Module["_fluid_settings_getnum_range"] = function() { return Module["asm"]["_fluid_settings_getnum_range"].apply(null, arguments) };\nvar _fluid_settings_getstr_default = Module["_fluid_settings_getstr_default"] = function() { return Module["asm"]["_fluid_settings_getstr_default"].apply(null, arguments) };\nvar _fluid_settings_is_realtime = Module["_fluid_settings_is_realtime"] = function() { return Module["asm"]["_fluid_settings_is_realtime"].apply(null, arguments) };\nvar _fluid_settings_option_concat = Module["_fluid_settings_option_concat"] = function() { return Module["asm"]["_fluid_settings_option_concat"].apply(null, arguments) };\nvar _fluid_settings_option_count = Module["_fluid_settings_option_count"] = function() { return Module["asm"]["_fluid_settings_option_count"].apply(null, arguments) };\nvar _fluid_settings_setint = Module["_fluid_settings_setint"] = function() { return Module["asm"]["_fluid_settings_setint"].apply(null, arguments) };\nvar _fluid_settings_setnum = Module["_fluid_settings_setnum"] = function() { return Module["asm"]["_fluid_settings_setnum"].apply(null, arguments) };\nvar _fluid_settings_setstr = Module["_fluid_settings_setstr"] = function() { return Module["asm"]["_fluid_settings_setstr"].apply(null, arguments) };\nvar _fluid_settings_str_equal = Module["_fluid_settings_str_equal"] = function() { return Module["asm"]["_fluid_settings_str_equal"].apply(null, arguments) };\nvar _fluid_sfloader_get_data = Module["_fluid_sfloader_get_data"] = function() { return Module["asm"]["_fluid_sfloader_get_data"].apply(null, arguments) };\nvar _fluid_sfloader_set_callbacks = Module["_fluid_sfloader_set_callbacks"] = function() { return Module["asm"]["_fluid_sfloader_set_callbacks"].apply(null, arguments) };\nvar _fluid_sfloader_set_data = Module["_fluid_sfloader_set_data"] = function() { return Module["asm"]["_fluid_sfloader_set_data"].apply(null, arguments) };\nvar _fluid_sfont_get_data = Module["_fluid_sfont_get_data"] = function() { return Module["asm"]["_fluid_sfont_get_data"].apply(null, arguments) };\nvar _fluid_sfont_get_id = Module["_fluid_sfont_get_id"] = function() { return Module["asm"]["_fluid_sfont_get_id"].apply(null, arguments) };\nvar _fluid_sfont_get_name = Module["_fluid_sfont_get_name"] = function() { return Module["asm"]["_fluid_sfont_get_name"].apply(null, arguments) };\nvar _fluid_sfont_get_preset = Module["_fluid_sfont_get_preset"] = function() { return Module["asm"]["_fluid_sfont_get_preset"].apply(null, arguments) };\nvar _fluid_sfont_iteration_next = Module["_fluid_sfont_iteration_next"] = function() { return Module["asm"]["_fluid_sfont_iteration_next"].apply(null, arguments) };\nvar _fluid_sfont_iteration_start = Module["_fluid_sfont_iteration_start"] = function() { return Module["asm"]["_fluid_sfont_iteration_start"].apply(null, arguments) };\nvar _fluid_sfont_set_data = Module["_fluid_sfont_set_data"] = function() { return Module["asm"]["_fluid_sfont_set_data"].apply(null, arguments) };\nvar _fluid_synth_activate_key_tuning = Module["_fluid_synth_activate_key_tuning"] = function() { return Module["asm"]["_fluid_synth_activate_key_tuning"].apply(null, arguments) };\nvar _fluid_synth_activate_octave_tuning = Module["_fluid_synth_activate_octave_tuning"] = function() { return Module["asm"]["_fluid_synth_activate_octave_tuning"].apply(null, arguments) };\nvar _fluid_synth_activate_tuning = Module["_fluid_synth_activate_tuning"] = function() { return Module["asm"]["_fluid_synth_activate_tuning"].apply(null, arguments) };\nvar _fluid_synth_add_default_mod = Module["_fluid_synth_add_default_mod"] = function() { return Module["asm"]["_fluid_synth_add_default_mod"].apply(null, arguments) };\nvar _fluid_synth_add_sfloader = Module["_fluid_synth_add_sfloader"] = function() { return Module["asm"]["_fluid_synth_add_sfloader"].apply(null, arguments) };\nvar _fluid_synth_add_sfont = Module["_fluid_synth_add_sfont"] = function() { return Module["asm"]["_fluid_synth_add_sfont"].apply(null, arguments) };\nvar _fluid_synth_all_notes_off = Module["_fluid_synth_all_notes_off"] = function() { return Module["asm"]["_fluid_synth_all_notes_off"].apply(null, arguments) };\nvar _fluid_synth_all_sounds_off = Module["_fluid_synth_all_sounds_off"] = function() { return Module["asm"]["_fluid_synth_all_sounds_off"].apply(null, arguments) };\nvar _fluid_synth_alloc_voice = Module["_fluid_synth_alloc_voice"] = function() { return Module["asm"]["_fluid_synth_alloc_voice"].apply(null, arguments) };\nvar _fluid_synth_bank_select = Module["_fluid_synth_bank_select"] = function() { return Module["asm"]["_fluid_synth_bank_select"].apply(null, arguments) };\nvar _fluid_synth_cc = Module["_fluid_synth_cc"] = function() { return Module["asm"]["_fluid_synth_cc"].apply(null, arguments) };\nvar _fluid_synth_channel_pressure = Module["_fluid_synth_channel_pressure"] = function() { return Module["asm"]["_fluid_synth_channel_pressure"].apply(null, arguments) };\nvar _fluid_synth_count_audio_channels = Module["_fluid_synth_count_audio_channels"] = function() { return Module["asm"]["_fluid_synth_count_audio_channels"].apply(null, arguments) };\nvar _fluid_synth_count_audio_groups = Module["_fluid_synth_count_audio_groups"] = function() { return Module["asm"]["_fluid_synth_count_audio_groups"].apply(null, arguments) };\nvar _fluid_synth_count_effects_channels = Module["_fluid_synth_count_effects_channels"] = function() { return Module["asm"]["_fluid_synth_count_effects_channels"].apply(null, arguments) };\nvar _fluid_synth_count_effects_groups = Module["_fluid_synth_count_effects_groups"] = function() { return Module["asm"]["_fluid_synth_count_effects_groups"].apply(null, arguments) };\nvar _fluid_synth_count_midi_channels = Module["_fluid_synth_count_midi_channels"] = function() { return Module["asm"]["_fluid_synth_count_midi_channels"].apply(null, arguments) };\nvar _fluid_synth_deactivate_tuning = Module["_fluid_synth_deactivate_tuning"] = function() { return Module["asm"]["_fluid_synth_deactivate_tuning"].apply(null, arguments) };\nvar _fluid_synth_error = Module["_fluid_synth_error"] = function() { return Module["asm"]["_fluid_synth_error"].apply(null, arguments) };\nvar _fluid_synth_get_active_voice_count = Module["_fluid_synth_get_active_voice_count"] = function() { return Module["asm"]["_fluid_synth_get_active_voice_count"].apply(null, arguments) };\nvar _fluid_synth_get_bank_offset = Module["_fluid_synth_get_bank_offset"] = function() { return Module["asm"]["_fluid_synth_get_bank_offset"].apply(null, arguments) };\nvar _fluid_synth_get_basic_channel = Module["_fluid_synth_get_basic_channel"] = function() { return Module["asm"]["_fluid_synth_get_basic_channel"].apply(null, arguments) };\nvar _fluid_synth_get_breath_mode = Module["_fluid_synth_get_breath_mode"] = function() { return Module["asm"]["_fluid_synth_get_breath_mode"].apply(null, arguments) };\nvar _fluid_synth_get_cc = Module["_fluid_synth_get_cc"] = function() { return Module["asm"]["_fluid_synth_get_cc"].apply(null, arguments) };\nvar _fluid_synth_get_channel_preset = Module["_fluid_synth_get_channel_preset"] = function() { return Module["asm"]["_fluid_synth_get_channel_preset"].apply(null, arguments) };\nvar _fluid_synth_get_chorus_depth = Module["_fluid_synth_get_chorus_depth"] = function() { return Module["asm"]["_fluid_synth_get_chorus_depth"].apply(null, arguments) };\nvar _fluid_synth_get_chorus_level = Module["_fluid_synth_get_chorus_level"] = function() { return Module["asm"]["_fluid_synth_get_chorus_level"].apply(null, arguments) };\nvar _fluid_synth_get_chorus_nr = Module["_fluid_synth_get_chorus_nr"] = function() { return Module["asm"]["_fluid_synth_get_chorus_nr"].apply(null, arguments) };\nvar _fluid_synth_get_chorus_speed = Module["_fluid_synth_get_chorus_speed"] = function() { return Module["asm"]["_fluid_synth_get_chorus_speed"].apply(null, arguments) };\nvar _fluid_synth_get_chorus_type = Module["_fluid_synth_get_chorus_type"] = function() { return Module["asm"]["_fluid_synth_get_chorus_type"].apply(null, arguments) };\nvar _fluid_synth_get_cpu_load = Module["_fluid_synth_get_cpu_load"] = function() { return Module["asm"]["_fluid_synth_get_cpu_load"].apply(null, arguments) };\nvar _fluid_synth_get_gain = Module["_fluid_synth_get_gain"] = function() { return Module["asm"]["_fluid_synth_get_gain"].apply(null, arguments) };\nvar _fluid_synth_get_gen = Module["_fluid_synth_get_gen"] = function() { return Module["asm"]["_fluid_synth_get_gen"].apply(null, arguments) };\nvar _fluid_synth_get_internal_bufsize = Module["_fluid_synth_get_internal_bufsize"] = function() { return Module["asm"]["_fluid_synth_get_internal_bufsize"].apply(null, arguments) };\nvar _fluid_synth_get_ladspa_fx = Module["_fluid_synth_get_ladspa_fx"] = function() { return Module["asm"]["_fluid_synth_get_ladspa_fx"].apply(null, arguments) };\nvar _fluid_synth_get_legato_mode = Module["_fluid_synth_get_legato_mode"] = function() { return Module["asm"]["_fluid_synth_get_legato_mode"].apply(null, arguments) };\nvar _fluid_synth_get_pitch_bend = Module["_fluid_synth_get_pitch_bend"] = function() { return Module["asm"]["_fluid_synth_get_pitch_bend"].apply(null, arguments) };\nvar _fluid_synth_get_pitch_wheel_sens = Module["_fluid_synth_get_pitch_wheel_sens"] = function() { return Module["asm"]["_fluid_synth_get_pitch_wheel_sens"].apply(null, arguments) };\nvar _fluid_synth_get_polyphony = Module["_fluid_synth_get_polyphony"] = function() { return Module["asm"]["_fluid_synth_get_polyphony"].apply(null, arguments) };\nvar _fluid_synth_get_portamento_mode = Module["_fluid_synth_get_portamento_mode"] = function() { return Module["asm"]["_fluid_synth_get_portamento_mode"].apply(null, arguments) };\nvar _fluid_synth_get_program = Module["_fluid_synth_get_program"] = function() { return Module["asm"]["_fluid_synth_get_program"].apply(null, arguments) };\nvar _fluid_synth_get_reverb_damp = Module["_fluid_synth_get_reverb_damp"] = function() { return Module["asm"]["_fluid_synth_get_reverb_damp"].apply(null, arguments) };\nvar _fluid_synth_get_reverb_level = Module["_fluid_synth_get_reverb_level"] = function() { return Module["asm"]["_fluid_synth_get_reverb_level"].apply(null, arguments) };\nvar _fluid_synth_get_reverb_roomsize = Module["_fluid_synth_get_reverb_roomsize"] = function() { return Module["asm"]["_fluid_synth_get_reverb_roomsize"].apply(null, arguments) };\nvar _fluid_synth_get_reverb_width = Module["_fluid_synth_get_reverb_width"] = function() { return Module["asm"]["_fluid_synth_get_reverb_width"].apply(null, arguments) };\nvar _fluid_synth_get_settings = Module["_fluid_synth_get_settings"] = function() { return Module["asm"]["_fluid_synth_get_settings"].apply(null, arguments) };\nvar _fluid_synth_get_sfont = Module["_fluid_synth_get_sfont"] = function() { return Module["asm"]["_fluid_synth_get_sfont"].apply(null, arguments) };\nvar _fluid_synth_get_sfont_by_id = Module["_fluid_synth_get_sfont_by_id"] = function() { return Module["asm"]["_fluid_synth_get_sfont_by_id"].apply(null, arguments) };\nvar _fluid_synth_get_sfont_by_name = Module["_fluid_synth_get_sfont_by_name"] = function() { return Module["asm"]["_fluid_synth_get_sfont_by_name"].apply(null, arguments) };\nvar _fluid_synth_get_voicelist = Module["_fluid_synth_get_voicelist"] = function() { return Module["asm"]["_fluid_synth_get_voicelist"].apply(null, arguments) };\nvar _fluid_synth_handle_midi_event = Module["_fluid_synth_handle_midi_event"] = function() { return Module["asm"]["_fluid_synth_handle_midi_event"].apply(null, arguments) };\nvar _fluid_synth_key_pressure = Module["_fluid_synth_key_pressure"] = function() { return Module["asm"]["_fluid_synth_key_pressure"].apply(null, arguments) };\nvar _fluid_synth_noteoff = Module["_fluid_synth_noteoff"] = function() { return Module["asm"]["_fluid_synth_noteoff"].apply(null, arguments) };\nvar _fluid_synth_noteon = Module["_fluid_synth_noteon"] = function() { return Module["asm"]["_fluid_synth_noteon"].apply(null, arguments) };\nvar _fluid_synth_nwrite_float = Module["_fluid_synth_nwrite_float"] = function() { return Module["asm"]["_fluid_synth_nwrite_float"].apply(null, arguments) };\nvar _fluid_synth_pitch_bend = Module["_fluid_synth_pitch_bend"] = function() { return Module["asm"]["_fluid_synth_pitch_bend"].apply(null, arguments) };\nvar _fluid_synth_pitch_wheel_sens = Module["_fluid_synth_pitch_wheel_sens"] = function() { return Module["asm"]["_fluid_synth_pitch_wheel_sens"].apply(null, arguments) };\nvar _fluid_synth_process = Module["_fluid_synth_process"] = function() { return Module["asm"]["_fluid_synth_process"].apply(null, arguments) };\nvar _fluid_synth_program_change = Module["_fluid_synth_program_change"] = function() { return Module["asm"]["_fluid_synth_program_change"].apply(null, arguments) };\nvar _fluid_synth_program_reset = Module["_fluid_synth_program_reset"] = function() { return Module["asm"]["_fluid_synth_program_reset"].apply(null, arguments) };\nvar _fluid_synth_program_select = Module["_fluid_synth_program_select"] = function() { return Module["asm"]["_fluid_synth_program_select"].apply(null, arguments) };\nvar _fluid_synth_program_select_by_sfont_name = Module["_fluid_synth_program_select_by_sfont_name"] = function() { return Module["asm"]["_fluid_synth_program_select_by_sfont_name"].apply(null, arguments) };\nvar _fluid_synth_remove_default_mod = Module["_fluid_synth_remove_default_mod"] = function() { return Module["asm"]["_fluid_synth_remove_default_mod"].apply(null, arguments) };\nvar _fluid_synth_remove_sfont = Module["_fluid_synth_remove_sfont"] = function() { return Module["asm"]["_fluid_synth_remove_sfont"].apply(null, arguments) };\nvar _fluid_synth_reset_basic_channel = Module["_fluid_synth_reset_basic_channel"] = function() { return Module["asm"]["_fluid_synth_reset_basic_channel"].apply(null, arguments) };\nvar _fluid_synth_set_bank_offset = Module["_fluid_synth_set_bank_offset"] = function() { return Module["asm"]["_fluid_synth_set_bank_offset"].apply(null, arguments) };\nvar _fluid_synth_set_basic_channel = Module["_fluid_synth_set_basic_channel"] = function() { return Module["asm"]["_fluid_synth_set_basic_channel"].apply(null, arguments) };\nvar _fluid_synth_set_breath_mode = Module["_fluid_synth_set_breath_mode"] = function() { return Module["asm"]["_fluid_synth_set_breath_mode"].apply(null, arguments) };\nvar _fluid_synth_set_channel_type = Module["_fluid_synth_set_channel_type"] = function() { return Module["asm"]["_fluid_synth_set_channel_type"].apply(null, arguments) };\nvar _fluid_synth_set_chorus = Module["_fluid_synth_set_chorus"] = function() { return Module["asm"]["_fluid_synth_set_chorus"].apply(null, arguments) };\nvar _fluid_synth_set_chorus_depth = Module["_fluid_synth_set_chorus_depth"] = function() { return Module["asm"]["_fluid_synth_set_chorus_depth"].apply(null, arguments) };\nvar _fluid_synth_set_chorus_level = Module["_fluid_synth_set_chorus_level"] = function() { return Module["asm"]["_fluid_synth_set_chorus_level"].apply(null, arguments) };\nvar _fluid_synth_set_chorus_nr = Module["_fluid_synth_set_chorus_nr"] = function() { return Module["asm"]["_fluid_synth_set_chorus_nr"].apply(null, arguments) };\nvar _fluid_synth_set_chorus_on = Module["_fluid_synth_set_chorus_on"] = function() { return Module["asm"]["_fluid_synth_set_chorus_on"].apply(null, arguments) };\nvar _fluid_synth_set_chorus_speed = Module["_fluid_synth_set_chorus_speed"] = function() { return Module["asm"]["_fluid_synth_set_chorus_speed"].apply(null, arguments) };\nvar _fluid_synth_set_chorus_type = Module["_fluid_synth_set_chorus_type"] = function() { return Module["asm"]["_fluid_synth_set_chorus_type"].apply(null, arguments) };\nvar _fluid_synth_set_custom_filter = Module["_fluid_synth_set_custom_filter"] = function() { return Module["asm"]["_fluid_synth_set_custom_filter"].apply(null, arguments) };\nvar _fluid_synth_set_gain = Module["_fluid_synth_set_gain"] = function() { return Module["asm"]["_fluid_synth_set_gain"].apply(null, arguments) };\nvar _fluid_synth_set_gen = Module["_fluid_synth_set_gen"] = function() { return Module["asm"]["_fluid_synth_set_gen"].apply(null, arguments) };\nvar _fluid_synth_set_interp_method = Module["_fluid_synth_set_interp_method"] = function() { return Module["asm"]["_fluid_synth_set_interp_method"].apply(null, arguments) };\nvar _fluid_synth_set_legato_mode = Module["_fluid_synth_set_legato_mode"] = function() { return Module["asm"]["_fluid_synth_set_legato_mode"].apply(null, arguments) };\nvar _fluid_synth_set_polyphony = Module["_fluid_synth_set_polyphony"] = function() { return Module["asm"]["_fluid_synth_set_polyphony"].apply(null, arguments) };\nvar _fluid_synth_set_portamento_mode = Module["_fluid_synth_set_portamento_mode"] = function() { return Module["asm"]["_fluid_synth_set_portamento_mode"].apply(null, arguments) };\nvar _fluid_synth_set_reverb = Module["_fluid_synth_set_reverb"] = function() { return Module["asm"]["_fluid_synth_set_reverb"].apply(null, arguments) };\nvar _fluid_synth_set_reverb_damp = Module["_fluid_synth_set_reverb_damp"] = function() { return Module["asm"]["_fluid_synth_set_reverb_damp"].apply(null, arguments) };\nvar _fluid_synth_set_reverb_level = Module["_fluid_synth_set_reverb_level"] = function() { return Module["asm"]["_fluid_synth_set_reverb_level"].apply(null, arguments) };\nvar _fluid_synth_set_reverb_on = Module["_fluid_synth_set_reverb_on"] = function() { return Module["asm"]["_fluid_synth_set_reverb_on"].apply(null, arguments) };\nvar _fluid_synth_set_reverb_roomsize = Module["_fluid_synth_set_reverb_roomsize"] = function() { return Module["asm"]["_fluid_synth_set_reverb_roomsize"].apply(null, arguments) };\nvar _fluid_synth_set_reverb_width = Module["_fluid_synth_set_reverb_width"] = function() { return Module["asm"]["_fluid_synth_set_reverb_width"].apply(null, arguments) };\nvar _fluid_synth_set_sample_rate = Module["_fluid_synth_set_sample_rate"] = function() { return Module["asm"]["_fluid_synth_set_sample_rate"].apply(null, arguments) };\nvar _fluid_synth_sfcount = Module["_fluid_synth_sfcount"] = function() { return Module["asm"]["_fluid_synth_sfcount"].apply(null, arguments) };\nvar _fluid_synth_sfload = Module["_fluid_synth_sfload"] = function() { return Module["asm"]["_fluid_synth_sfload"].apply(null, arguments) };\nvar _fluid_synth_sfont_select = Module["_fluid_synth_sfont_select"] = function() { return Module["asm"]["_fluid_synth_sfont_select"].apply(null, arguments) };\nvar _fluid_synth_sfreload = Module["_fluid_synth_sfreload"] = function() { return Module["asm"]["_fluid_synth_sfreload"].apply(null, arguments) };\nvar _fluid_synth_sfunload = Module["_fluid_synth_sfunload"] = function() { return Module["asm"]["_fluid_synth_sfunload"].apply(null, arguments) };\nvar _fluid_synth_start = Module["_fluid_synth_start"] = function() { return Module["asm"]["_fluid_synth_start"].apply(null, arguments) };\nvar _fluid_synth_start_voice = Module["_fluid_synth_start_voice"] = function() { return Module["asm"]["_fluid_synth_start_voice"].apply(null, arguments) };\nvar _fluid_synth_stop = Module["_fluid_synth_stop"] = function() { return Module["asm"]["_fluid_synth_stop"].apply(null, arguments) };\nvar _fluid_synth_sysex = Module["_fluid_synth_sysex"] = function() { return Module["asm"]["_fluid_synth_sysex"].apply(null, arguments) };\nvar _fluid_synth_system_reset = Module["_fluid_synth_system_reset"] = function() { return Module["asm"]["_fluid_synth_system_reset"].apply(null, arguments) };\nvar _fluid_synth_tune_notes = Module["_fluid_synth_tune_notes"] = function() { return Module["asm"]["_fluid_synth_tune_notes"].apply(null, arguments) };\nvar _fluid_synth_tuning_dump = Module["_fluid_synth_tuning_dump"] = function() { return Module["asm"]["_fluid_synth_tuning_dump"].apply(null, arguments) };\nvar _fluid_synth_tuning_iteration_next = Module["_fluid_synth_tuning_iteration_next"] = function() { return Module["asm"]["_fluid_synth_tuning_iteration_next"].apply(null, arguments) };\nvar _fluid_synth_tuning_iteration_start = Module["_fluid_synth_tuning_iteration_start"] = function() { return Module["asm"]["_fluid_synth_tuning_iteration_start"].apply(null, arguments) };\nvar _fluid_synth_unset_program = Module["_fluid_synth_unset_program"] = function() { return Module["asm"]["_fluid_synth_unset_program"].apply(null, arguments) };\nvar _fluid_synth_write_float = Module["_fluid_synth_write_float"] = function() { return Module["asm"]["_fluid_synth_write_float"].apply(null, arguments) };\nvar _fluid_synth_write_s16 = Module["_fluid_synth_write_s16"] = function() { return Module["asm"]["_fluid_synth_write_s16"].apply(null, arguments) };\nvar _fluid_version = Module["_fluid_version"] = function() { return Module["asm"]["_fluid_version"].apply(null, arguments) };\nvar _fluid_version_str = Module["_fluid_version_str"] = function() { return Module["asm"]["_fluid_version_str"].apply(null, arguments) };\nvar _fluid_voice_add_mod = Module["_fluid_voice_add_mod"] = function() { return Module["asm"]["_fluid_voice_add_mod"].apply(null, arguments) };\nvar _fluid_voice_gen_get = Module["_fluid_voice_gen_get"] = function() { return Module["asm"]["_fluid_voice_gen_get"].apply(null, arguments) };\nvar _fluid_voice_gen_incr = Module["_fluid_voice_gen_incr"] = function() { return Module["asm"]["_fluid_voice_gen_incr"].apply(null, arguments) };\nvar _fluid_voice_gen_set = Module["_fluid_voice_gen_set"] = function() { return Module["asm"]["_fluid_voice_gen_set"].apply(null, arguments) };\nvar _fluid_voice_get_actual_key = Module["_fluid_voice_get_actual_key"] = function() { return Module["asm"]["_fluid_voice_get_actual_key"].apply(null, arguments) };\nvar _fluid_voice_get_actual_velocity = Module["_fluid_voice_get_actual_velocity"] = function() { return Module["asm"]["_fluid_voice_get_actual_velocity"].apply(null, arguments) };\nvar _fluid_voice_get_channel = Module["_fluid_voice_get_channel"] = function() { return Module["asm"]["_fluid_voice_get_channel"].apply(null, arguments) };\nvar _fluid_voice_get_id = Module["_fluid_voice_get_id"] = function() { return Module["asm"]["_fluid_voice_get_id"].apply(null, arguments) };\nvar _fluid_voice_get_key = Module["_fluid_voice_get_key"] = function() { return Module["asm"]["_fluid_voice_get_key"].apply(null, arguments) };\nvar _fluid_voice_get_velocity = Module["_fluid_voice_get_velocity"] = function() { return Module["asm"]["_fluid_voice_get_velocity"].apply(null, arguments) };\nvar _fluid_voice_is_on = Module["_fluid_voice_is_on"] = function() { return Module["asm"]["_fluid_voice_is_on"].apply(null, arguments) };\nvar _fluid_voice_is_playing = Module["_fluid_voice_is_playing"] = function() { return Module["asm"]["_fluid_voice_is_playing"].apply(null, arguments) };\nvar _fluid_voice_is_sostenuto = Module["_fluid_voice_is_sostenuto"] = function() { return Module["asm"]["_fluid_voice_is_sostenuto"].apply(null, arguments) };\nvar _fluid_voice_is_sustained = Module["_fluid_voice_is_sustained"] = function() { return Module["asm"]["_fluid_voice_is_sustained"].apply(null, arguments) };\nvar _fluid_voice_optimize_sample = Module["_fluid_voice_optimize_sample"] = function() { return Module["asm"]["_fluid_voice_optimize_sample"].apply(null, arguments) };\nvar _fluid_voice_update_param = Module["_fluid_voice_update_param"] = function() { return Module["asm"]["_fluid_voice_update_param"].apply(null, arguments) };\nvar _free = Module["_free"] = function() { return Module["asm"]["_free"].apply(null, arguments) };\nvar _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = function() { return Module["asm"]["_llvm_bswap_i32"].apply(null, arguments) };\nvar _malloc = Module["_malloc"] = function() { return Module["asm"]["_malloc"].apply(null, arguments) };\nvar _memcpy = Module["_memcpy"] = function() { return Module["asm"]["_memcpy"].apply(null, arguments) };\nvar _memset = Module["_memset"] = function() { return Module["asm"]["_memset"].apply(null, arguments) };\nvar _new_fluid_audio_driver = Module["_new_fluid_audio_driver"] = function() { return Module["asm"]["_new_fluid_audio_driver"].apply(null, arguments) };\nvar _new_fluid_audio_driver2 = Module["_new_fluid_audio_driver2"] = function() { return Module["asm"]["_new_fluid_audio_driver2"].apply(null, arguments) };\nvar _new_fluid_defsfloader = Module["_new_fluid_defsfloader"] = function() { return Module["asm"]["_new_fluid_defsfloader"].apply(null, arguments) };\nvar _new_fluid_event = Module["_new_fluid_event"] = function() { return Module["asm"]["_new_fluid_event"].apply(null, arguments) };\nvar _new_fluid_file_renderer = Module["_new_fluid_file_renderer"] = function() { return Module["asm"]["_new_fluid_file_renderer"].apply(null, arguments) };\nvar _new_fluid_midi_driver = Module["_new_fluid_midi_driver"] = function() { return Module["asm"]["_new_fluid_midi_driver"].apply(null, arguments) };\nvar _new_fluid_midi_event = Module["_new_fluid_midi_event"] = function() { return Module["asm"]["_new_fluid_midi_event"].apply(null, arguments) };\nvar _new_fluid_midi_router = Module["_new_fluid_midi_router"] = function() { return Module["asm"]["_new_fluid_midi_router"].apply(null, arguments) };\nvar _new_fluid_midi_router_rule = Module["_new_fluid_midi_router_rule"] = function() { return Module["asm"]["_new_fluid_midi_router_rule"].apply(null, arguments) };\nvar _new_fluid_mod = Module["_new_fluid_mod"] = function() { return Module["asm"]["_new_fluid_mod"].apply(null, arguments) };\nvar _new_fluid_player = Module["_new_fluid_player"] = function() { return Module["asm"]["_new_fluid_player"].apply(null, arguments) };\nvar _new_fluid_preset = Module["_new_fluid_preset"] = function() { return Module["asm"]["_new_fluid_preset"].apply(null, arguments) };\nvar _new_fluid_sample = Module["_new_fluid_sample"] = function() { return Module["asm"]["_new_fluid_sample"].apply(null, arguments) };\nvar _new_fluid_sequencer = Module["_new_fluid_sequencer"] = function() { return Module["asm"]["_new_fluid_sequencer"].apply(null, arguments) };\nvar _new_fluid_sequencer2 = Module["_new_fluid_sequencer2"] = function() { return Module["asm"]["_new_fluid_sequencer2"].apply(null, arguments) };\nvar _new_fluid_settings = Module["_new_fluid_settings"] = function() { return Module["asm"]["_new_fluid_settings"].apply(null, arguments) };\nvar _new_fluid_sfloader = Module["_new_fluid_sfloader"] = function() { return Module["asm"]["_new_fluid_sfloader"].apply(null, arguments) };\nvar _new_fluid_sfont = Module["_new_fluid_sfont"] = function() { return Module["asm"]["_new_fluid_sfont"].apply(null, arguments) };\nvar _new_fluid_synth = Module["_new_fluid_synth"] = function() { return Module["asm"]["_new_fluid_synth"].apply(null, arguments) };\nvar _sbrk = Module["_sbrk"] = function() { return Module["asm"]["_sbrk"].apply(null, arguments) };\nvar establishStackSpace = Module["establishStackSpace"] = function() { return Module["asm"]["establishStackSpace"].apply(null, arguments) };\nvar getTempRet0 = Module["getTempRet0"] = function() { return Module["asm"]["getTempRet0"].apply(null, arguments) };\nvar runPostSets = Module["runPostSets"] = function() { return Module["asm"]["runPostSets"].apply(null, arguments) };\nvar setTempRet0 = Module["setTempRet0"] = function() { return Module["asm"]["setTempRet0"].apply(null, arguments) };\nvar setThrew = Module["setThrew"] = function() { return Module["asm"]["setThrew"].apply(null, arguments) };\nvar stackAlloc = Module["stackAlloc"] = function() { return Module["asm"]["stackAlloc"].apply(null, arguments) };\nvar stackRestore = Module["stackRestore"] = function() { return Module["asm"]["stackRestore"].apply(null, arguments) };\nvar stackSave = Module["stackSave"] = function() { return Module["asm"]["stackSave"].apply(null, arguments) };\nvar dynCall_ii = Module["dynCall_ii"] = function() { return Module["asm"]["dynCall_ii"].apply(null, arguments) };\nvar dynCall_iii = Module["dynCall_iii"] = function() { return Module["asm"]["dynCall_iii"].apply(null, arguments) };\nvar dynCall_iiii = Module["dynCall_iiii"] = function() { return Module["asm"]["dynCall_iiii"].apply(null, arguments) };\nvar dynCall_iiiiii = Module["dynCall_iiiiii"] = function() { return Module["asm"]["dynCall_iiiiii"].apply(null, arguments) };\nvar dynCall_iiiiiii = Module["dynCall_iiiiiii"] = function() { return Module["asm"]["dynCall_iiiiiii"].apply(null, arguments) };\nvar dynCall_vi = Module["dynCall_vi"] = function() { return Module["asm"]["dynCall_vi"].apply(null, arguments) };\nvar dynCall_vii = Module["dynCall_vii"] = function() { return Module["asm"]["dynCall_vii"].apply(null, arguments) };\nvar dynCall_viid = Module["dynCall_viid"] = function() { return Module["asm"]["dynCall_viid"].apply(null, arguments) };\nvar dynCall_viii = Module["dynCall_viii"] = function() { return Module["asm"]["dynCall_viii"].apply(null, arguments) };\nvar dynCall_viiii = Module["dynCall_viiii"] = function() { return Module["asm"]["dynCall_viiii"].apply(null, arguments) };\n;\n\n\n\n// === Auto-generated postamble setup entry stuff ===\n\nModule[\'asm\'] = asm;\n\n\n\nModule["ccall"] = ccall;\nModule["cwrap"] = cwrap;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nModule["FS"] = FS;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * @constructor\n * @extends {Error}\n * @this {ExitStatus}\n */\nfunction ExitStatus(status) {\n this.name = "ExitStatus";\n this.message = "Program terminated with exit(" + status + ")";\n this.status = status;\n};\nExitStatus.prototype = new Error();\nExitStatus.prototype.constructor = ExitStatus;\n\nvar initialStackTop;\nvar calledMain = false;\n\ndependenciesFulfilled = function runCaller() {\n // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)\n if (!Module[\'calledRun\']) run();\n if (!Module[\'calledRun\']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled\n}\n\n\n\n\n\n/** @type {function(Array=)} */\nfunction run(args) {\n args = args || Module[\'arguments\'];\n\n if (runDependencies > 0) {\n return;\n }\n\n\n preRun();\n\n if (runDependencies > 0) return; // a preRun added a dependency, run will be called later\n if (Module[\'calledRun\']) return; // run may have just been called through dependencies being fulfilled just in this very frame\n\n function doRun() {\n if (Module[\'calledRun\']) return; // run may have just been called while the async setStatus time below was happening\n Module[\'calledRun\'] = true;\n\n if (ABORT) return;\n\n ensureInitRuntime();\n\n preMain();\n\n if (Module[\'onRuntimeInitialized\']) Module[\'onRuntimeInitialized\']();\n\n\n postRun();\n }\n\n if (Module[\'setStatus\']) {\n Module[\'setStatus\'](\'Running...\');\n setTimeout(function() {\n setTimeout(function() {\n Module[\'setStatus\'](\'\');\n }, 1);\n doRun();\n }, 1);\n } else {\n doRun();\n }\n}\nModule[\'run\'] = run;\n\n\nfunction exit(status, implicit) {\n\n // if this is just main exit-ing implicitly, and the status is 0, then we\n // don\'t need to do anything here and can just leave. if the status is\n // non-zero, though, then we need to report it.\n // (we may have warned about this earlier, if a situation justifies doing so)\n if (implicit && Module[\'noExitRuntime\'] && status === 0) {\n return;\n }\n\n if (Module[\'noExitRuntime\']) {\n } else {\n\n ABORT = true;\n EXITSTATUS = status;\n STACKTOP = initialStackTop;\n\n exitRuntime();\n\n if (Module[\'onExit\']) Module[\'onExit\'](status);\n }\n\n Module[\'quit\'](status, new ExitStatus(status));\n}\n\nvar abortDecorators = [];\n\nfunction abort(what) {\n if (Module[\'onAbort\']) {\n Module[\'onAbort\'](what);\n }\n\n if (what !== undefined) {\n out(what);\n err(what);\n what = JSON.stringify(what)\n } else {\n what = \'\';\n }\n\n ABORT = true;\n EXITSTATUS = 1;\n\n throw \'abort(\' + what + \'). Build with -s ASSERTIONS=1 for more info.\';\n}\nModule[\'abort\'] = abort;\n\nif (Module[\'preInit\']) {\n if (typeof Module[\'preInit\'] == \'function\') Module[\'preInit\'] = [Module[\'preInit\']];\n while (Module[\'preInit\'].length > 0) {\n Module[\'preInit\'].pop()();\n }\n}\n\n\nModule["noExitRuntime"] = true;\n\nrun();\n\n\n\n\n\n// {{MODULE_ADDITIONS}}\n\n\n\n',"/*!\njs-synthesizer version 1.7.0\r\n\r\n@license\r\n\r\nCopyright (C) 2020 jet\r\nAll rights reserved.\r\n\r\nRedistribution and use in source and binary forms, with or without modification,\r\nare permitted provided that the following conditions are met:\r\n\r\n 1. Redistributions of source code must retain the above copyright notice,\r\n this list of conditions and the following disclaimer.\r\n 2. Redistributions in binary form must reproduce the above copyright notice,\r\n this list of conditions and the following disclaimer in the documentation\r\n and/or other materials provided with the distribution.\r\n 3. The name of the author may not be used to endorse or promote products derived\r\n from this software without specific prior written permission.\r\n\r\nTHIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,\r\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\r\nBUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\r\nOR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r\nWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\nARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY\r\nOF SUCH DAMAGE.\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"js-synthesizer\"] = factory();\n\telse\n\t\troot[\"JSSynth\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 2);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!*******************************!*\\\n !*** ./src/main/Constants.ts ***!\n \\*******************************/\n/*! no static exports found */\n/*! ModuleConcatenation bailout: Module is not an ECMAScript module */\n/***/ (function(module, exports) {\n\n\n\n/***/ }),\n/* 1 */\n/*!************************************!*\\\n !*** ./src/main/SequencerEvent.ts ***!\n \\************************************/\n/*! no static exports found */\n/*! ModuleConcatenation bailout: Module is not an ECMAScript module */\n/***/ (function(module, exports) {\n\n\n\n/***/ }),\n/* 2 */\n/*!****************************************!*\\\n !*** ./src/main/index.ts + 11 modules ***!\n \\****************************************/\n/*! exports provided: Constants, MessageError, rewriteEventData, SequencerEventTypes, Synthesizer, waitForReady, AudioWorkletNodeSynthesizer */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"Constants\", function() { return /* reexport */ Constants; });\n__webpack_require__.d(__webpack_exports__, \"MessageError\", function() { return /* reexport */ MessageError; });\n__webpack_require__.d(__webpack_exports__, \"rewriteEventData\", function() { return /* reexport */ rewriteEventData; });\n__webpack_require__.d(__webpack_exports__, \"SequencerEventTypes\", function() { return /* reexport */ SequencerEvent; });\n__webpack_require__.d(__webpack_exports__, \"Synthesizer\", function() { return /* reexport */ Synthesizer_Synthesizer; });\n__webpack_require__.d(__webpack_exports__, \"waitForReady\", function() { return /* reexport */ waitForReady; });\n__webpack_require__.d(__webpack_exports__, \"AudioWorkletNodeSynthesizer\", function() { return /* reexport */ AudioWorkletNodeSynthesizer_AudioWorkletNodeSynthesizer; });\n\n// EXTERNAL MODULE: ./src/main/Constants.ts\nvar Constants = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./src/main/PointerType.ts\nconst INVALID_POINTER = 0;\r\n\n// CONCATENATED MODULE: ./src/main/SequencerEventData.ts\n\r\n/** @internal */\r\nclass SequencerEventData_SequencerEventData {\r\n /** @internal */\r\n constructor(_ptr, _module) {\r\n this._ptr = _ptr;\r\n this._module = _module;\r\n }\r\n /** @internal */\r\n getRaw() {\r\n return this._ptr;\r\n }\r\n /** @internal */\r\n dispose() {\r\n this._ptr = INVALID_POINTER;\r\n }\r\n getType() {\r\n if (this._ptr === INVALID_POINTER)\r\n return -1;\r\n return this._module._fluid_event_get_type(this._ptr);\r\n }\r\n getSource() {\r\n if (this._ptr === INVALID_POINTER)\r\n return -1;\r\n return this._module._fluid_event_get_source(this._ptr);\r\n }\r\n getDest() {\r\n if (this._ptr === INVALID_POINTER)\r\n return -1;\r\n return this._module._fluid_event_get_dest(this._ptr);\r\n }\r\n getChannel() {\r\n if (this._ptr === INVALID_POINTER)\r\n return -1;\r\n return this._module._fluid_event_get_channel(this._ptr);\r\n }\r\n getKey() {\r\n if (this._ptr === INVALID_POINTER)\r\n return -1;\r\n return this._module._fluid_event_get_key(this._ptr);\r\n }\r\n getVelocity() {\r\n if (this._ptr === INVALID_POINTER)\r\n return -1;\r\n return this._module._fluid_event_get_velocity(this._ptr);\r\n }\r\n getControl() {\r\n if (this._ptr === INVALID_POINTER)\r\n return -1;\r\n return this._module._fluid_event_get_control(this._ptr);\r\n }\r\n getValue() {\r\n if (this._ptr === INVALID_POINTER)\r\n return -1;\r\n return this._module._fluid_event_get_value(this._ptr);\r\n }\r\n getProgram() {\r\n if (this._ptr === INVALID_POINTER)\r\n return -1;\r\n return this._module._fluid_event_get_program(this._ptr);\r\n }\r\n getData() {\r\n if (this._ptr === INVALID_POINTER)\r\n return -1;\r\n return this._module._fluid_event_get_data(this._ptr);\r\n }\r\n getDuration() {\r\n if (this._ptr === INVALID_POINTER)\r\n return -1;\r\n return this._module._fluid_event_get_duration(this._ptr);\r\n }\r\n getBank() {\r\n if (this._ptr === INVALID_POINTER)\r\n return -1;\r\n return this._module._fluid_event_get_bank(this._ptr);\r\n }\r\n getPitch() {\r\n if (this._ptr === INVALID_POINTER)\r\n return -1;\r\n return this._module._fluid_event_get_pitch(this._ptr);\r\n }\r\n getSFontId() {\r\n if (this._ptr === INVALID_POINTER)\r\n return -1;\r\n return this._module._fluid_event_get_sfont_id(this._ptr);\r\n }\r\n}\r\n\n// CONCATENATED MODULE: ./src/main/ISequencerEventData.ts\n/** @internal */\r\n\r\n/** @internal */\r\n\r\nconst _module = typeof AudioWorkletGlobalScope !== 'undefined' ?\r\n AudioWorkletGlobalScope.wasmModule : Module;\r\n/** @internal */\r\nfunction rewriteEventDataImpl(ev, event) {\r\n switch (event.type) {\r\n case 0 /* Note */:\r\n case 'note':\r\n _module._fluid_event_note(ev, event.channel, event.key, event.vel, event.duration);\r\n break;\r\n case 1 /* NoteOn */:\r\n case 'noteon':\r\n case 'note-on':\r\n _module._fluid_event_noteon(ev, event.channel, event.key, event.vel);\r\n break;\r\n case 2 /* NoteOff */:\r\n case 'noteoff':\r\n case 'note-off':\r\n _module._fluid_event_noteoff(ev, event.channel, event.key);\r\n break;\r\n case 3 /* AllSoundsOff */:\r\n case 'allsoundsoff':\r\n case 'all-sounds-off':\r\n _module._fluid_event_all_sounds_off(ev, event.channel);\r\n break;\r\n case 4 /* AllNotesOff */:\r\n case 'allnotesoff':\r\n case 'all-notes-off':\r\n _module._fluid_event_all_notes_off(ev, event.channel);\r\n break;\r\n case 5 /* BankSelect */:\r\n case 'bankselect':\r\n case 'bank-select':\r\n _module._fluid_event_bank_select(ev, event.channel, event.bank);\r\n break;\r\n case 6 /* ProgramChange */:\r\n case 'programchange':\r\n case 'program-change':\r\n _module._fluid_event_program_change(ev, event.channel, event.preset);\r\n break;\r\n case 7 /* ProgramSelect */:\r\n case 'programselect':\r\n case 'program-select':\r\n _module._fluid_event_program_select(ev, event.channel, event.sfontId, event.bank, event.preset);\r\n break;\r\n case 12 /* ControlChange */:\r\n case 'controlchange':\r\n case 'control-change':\r\n _module._fluid_event_control_change(ev, event.channel, event.control, event.value);\r\n break;\r\n case 8 /* PitchBend */:\r\n case 'pitchbend':\r\n case 'pitch-bend':\r\n _module._fluid_event_pitch_bend(ev, event.channel, event.value);\r\n break;\r\n case 9 /* PitchWheelSensitivity */:\r\n case 'pitchwheelsens':\r\n case 'pitchwheelsensitivity':\r\n case 'pitch-wheel-sens':\r\n case 'pitch-wheel-sensitivity':\r\n _module._fluid_event_pitch_wheelsens(ev, event.channel, event.value);\r\n break;\r\n case 10 /* Modulation */:\r\n case 'modulation':\r\n _module._fluid_event_modulation(ev, event.channel, event.value);\r\n break;\r\n case 11 /* Sustain */:\r\n case 'sustain':\r\n _module._fluid_event_sustain(ev, event.channel, event.value);\r\n break;\r\n case 13 /* Pan */:\r\n case 'pan':\r\n _module._fluid_event_pan(ev, event.channel, event.value);\r\n break;\r\n case 14 /* Volume */:\r\n case 'volume':\r\n _module._fluid_event_volume(ev, event.channel, event.value);\r\n break;\r\n case 15 /* ReverbSend */:\r\n case 'reverb':\r\n case 'reverbsend':\r\n case 'reverb-send':\r\n _module._fluid_event_reverb_send(ev, event.channel, event.value);\r\n break;\r\n case 16 /* ChorusSend */:\r\n case 'chorus':\r\n case 'chorussend':\r\n case 'chorus-send':\r\n _module._fluid_event_chorus_send(ev, event.channel, event.value);\r\n break;\r\n case 20 /* KeyPressure */:\r\n case 'keypressure':\r\n case 'key-pressure':\r\n case 'aftertouch':\r\n _module._fluid_event_key_pressure(ev, event.channel, event.key, event.value);\r\n break;\r\n case 19 /* ChannelPressure */:\r\n case 'channelpressure':\r\n case 'channel-pressure':\r\n case 'channel-aftertouch':\r\n _module._fluid_event_channel_pressure(ev, event.channel, event.value);\r\n break;\r\n case 21 /* SystemReset */:\r\n case 'systemreset':\r\n case 'system-reset':\r\n _module._fluid_event_system_reset(ev);\r\n break;\r\n case 17 /* Timer */:\r\n case 'timer':\r\n _module._fluid_event_timer(ev, event.data);\r\n break;\r\n default:\r\n // 'typeof event' must be 'never' here\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Rewrites event data with specified SequencerEvent object.\r\n * @param data destination instance\r\n * @param event source data\r\n * @return true if succeeded\r\n */\r\nfunction rewriteEventData(data, event) {\r\n if (!data || !(data instanceof SequencerEventData_SequencerEventData)) {\r\n return false;\r\n }\r\n const ev = data.getRaw();\r\n if (ev === INVALID_POINTER) {\r\n return false;\r\n }\r\n return rewriteEventDataImpl(ev, event);\r\n}\r\n\n// CONCATENATED MODULE: ./src/main/MessageError.ts\n/** Error object used for errors occurred in the message receiver (e.g. Worklet) */\r\nclass MessageError extends Error {\r\n constructor(baseName, message, detail) {\r\n super(message);\r\n this.baseName = baseName;\r\n this.detail = detail;\r\n if (detail && detail.stack) {\r\n this.stack = detail.stack;\r\n }\r\n }\r\n}\r\n\n// EXTERNAL MODULE: ./src/main/SequencerEvent.ts\nvar SequencerEvent = __webpack_require__(1);\n\n// CONCATENATED MODULE: ./src/main/MIDIEvent.ts\n/** @internal */\r\nclass MIDIEvent {\r\n /** @internal */\r\n constructor(_ptr, _module) {\r\n this._ptr = _ptr;\r\n this._module = _module;\r\n }\r\n getType() {\r\n return this._module._fluid_midi_event_get_type(this._ptr);\r\n }\r\n setType(value) {\r\n this._module._fluid_midi_event_set_type(this._ptr, value);\r\n }\r\n getChannel() {\r\n return this._module._fluid_midi_event_get_channel(this._ptr);\r\n }\r\n setChannel(value) {\r\n this._module._fluid_midi_event_set_channel(this._ptr, value);\r\n }\r\n getKey() {\r\n return this._module._fluid_midi_event_get_key(this._ptr);\r\n }\r\n setKey(value) {\r\n this._module._fluid_midi_event_set_key(this._ptr, value);\r\n }\r\n getVelocity() {\r\n return this._module._fluid_midi_event_get_velocity(this._ptr);\r\n }\r\n setVelocity(value) {\r\n this._module._fluid_midi_event_set_velocity(this._ptr, value);\r\n }\r\n getControl() {\r\n return this._module._fluid_midi_event_get_control(this._ptr);\r\n }\r\n setControl(value) {\r\n this._module._fluid_midi_event_set_control(this._ptr, value);\r\n }\r\n getValue() {\r\n return this._module._fluid_midi_event_get_value(this._ptr);\r\n }\r\n setValue(value) {\r\n this._module._fluid_midi_event_set_value(this._ptr, value);\r\n }\r\n getProgram() {\r\n return this._module._fluid_midi_event_get_program(this._ptr);\r\n }\r\n setProgram(value) {\r\n this._module._fluid_midi_event_set_program(this._ptr, value);\r\n }\r\n getPitch() {\r\n return this._module._fluid_midi_event_get_pitch(this._ptr);\r\n }\r\n setPitch(value) {\r\n this._module._fluid_midi_event_set_pitch(this._ptr, value);\r\n }\r\n setSysEx(data) {\r\n const size = data.byteLength;\r\n const ptr = this._module._malloc(size);\r\n const ptrView = new Uint8Array(this._module.HEAPU8.buffer, ptr, size);\r\n ptrView.set(data);\r\n this._module._fluid_midi_event_set_sysex(this._ptr, ptr, size, 1);\r\n }\r\n setText(data) {\r\n const size = data.byteLength;\r\n const ptr = this._module._malloc(size);\r\n const ptrView = new Uint8Array(this._module.HEAPU8.buffer, ptr, size);\r\n ptrView.set(data);\r\n this._module._fluid_midi_event_set_text(this._ptr, ptr, size, 1);\r\n }\r\n setLyrics(data) {\r\n const size = data.byteLength;\r\n const ptr = this._module._malloc(size);\r\n const ptrView = new Uint8Array(this._module.HEAPU8.buffer, ptr, size);\r\n ptrView.set(data);\r\n this._module._fluid_midi_event_set_lyrics(this._ptr, ptr, size, 1);\r\n }\r\n}\r\n\n// CONCATENATED MODULE: ./src/main/Sequencer.ts\n\r\n\r\n\r\n\r\nlet Sequencer_module;\r\nlet _removeFunction;\r\nlet fluid_sequencer_get_client_name;\r\nfunction bindFunctions() {\r\n if (Sequencer_module) {\r\n return;\r\n }\r\n if (typeof AudioWorkletGlobalScope !== 'undefined') {\r\n Sequencer_module = AudioWorkletGlobalScope.wasmModule;\r\n _removeFunction = AudioWorkletGlobalScope.wasmRemoveFunction;\r\n }\r\n else {\r\n Sequencer_module = Module;\r\n _removeFunction = removeFunction;\r\n }\r\n fluid_sequencer_get_client_name =\r\n Sequencer_module.cwrap('fluid_sequencer_get_client_name', 'string', ['number', 'number']);\r\n}\r\nfunction makeEvent(event) {\r\n const ev = Sequencer_module._new_fluid_event();\r\n if (!rewriteEventDataImpl(ev, event)) {\r\n Sequencer_module._delete_fluid_event(ev);\r\n return null;\r\n }\r\n return ev;\r\n}\r\n/** @internal */\r\nclass Sequencer_Sequencer {\r\n constructor() {\r\n bindFunctions();\r\n this._seq = INVALID_POINTER;\r\n this._seqId = -1;\r\n this._clientFuncMap = {};\r\n }\r\n /** @internal */\r\n _initialize() {\r\n this.close();\r\n this._seq = Sequencer_module._new_fluid_sequencer2(0);\r\n this._seqId = -1;\r\n return Promise.resolve();\r\n }\r\n /** @internal */\r\n getRaw() {\r\n return this._seq;\r\n }\r\n close() {\r\n if (this._seq !== INVALID_POINTER) {\r\n Object.keys(this._clientFuncMap).forEach((clientIdStr) => {\r\n this.unregisterClient(Number(clientIdStr));\r\n });\r\n this.unregisterClient(-1);\r\n Sequencer_module._delete_fluid_sequencer(this._seq);\r\n this._seq = INVALID_POINTER;\r\n }\r\n }\r\n registerSynthesizer(synth) {\r\n if (this._seqId !== -1) {\r\n Sequencer_module._fluid_sequencer_unregister_client(this._seq, this._seqId);\r\n this._seqId = -1;\r\n }\r\n let val;\r\n if (typeof synth === 'number') {\r\n val = synth;\r\n }\r\n else if (synth instanceof Synthesizer_Synthesizer) {\r\n val = synth.getRawSynthesizer();\r\n }\r\n else {\r\n return Promise.reject(new TypeError('\\'synth\\' is not a compatible type instance'));\r\n }\r\n this._seqId = Sequencer_module._fluid_sequencer_register_fluidsynth(this._seq, val);\r\n return Promise.resolve(this._seqId);\r\n }\r\n unregisterClient(clientId) {\r\n if (clientId === -1) {\r\n clientId = this._seqId;\r\n if (clientId === -1) {\r\n return;\r\n }\r\n }\r\n // send 'unregistering' event\r\n const ev = Sequencer_module._new_fluid_event();\r\n Sequencer_module._fluid_event_set_source(ev, -1);\r\n Sequencer_module._fluid_event_set_dest(ev, clientId);\r\n Sequencer_module._fluid_event_unregistering(ev);\r\n Sequencer_module._fluid_sequencer_send_now(this._seq, ev);\r\n Sequencer_module._delete_fluid_event(ev);\r\n Sequencer_module._fluid_sequencer_unregister_client(this._seq, clientId);\r\n if (this._seqId === clientId) {\r\n this._seqId = -1;\r\n }\r\n else {\r\n const map = this._clientFuncMap;\r\n if (map[clientId]) {\r\n _removeFunction(map[clientId]);\r\n delete map[clientId];\r\n }\r\n }\r\n }\r\n getAllRegisteredClients() {\r\n const c = Sequencer_module._fluid_sequencer_count_clients(this._seq);\r\n const r = [];\r\n for (let i = 0; i < c; ++i) {\r\n const id = Sequencer_module._fluid_sequencer_get_client_id(this._seq, i);\r\n const name = fluid_sequencer_get_client_name(this._seq, id);\r\n r.push({ clientId: id, name: name });\r\n }\r\n return Promise.resolve(r);\r\n }\r\n getClientCount() {\r\n return Promise.resolve(Sequencer_module._fluid_sequencer_count_clients(this._seq));\r\n }\r\n getClientInfo(index) {\r\n const id = Sequencer_module._fluid_sequencer_get_client_id(this._seq, index);\r\n const name = fluid_sequencer_get_client_name(this._seq, id);\r\n return Promise.resolve({ clientId: id, name: name });\r\n }\r\n setTimeScale(scale) {\r\n Sequencer_module._fluid_sequencer_set_time_scale(this._seq, scale);\r\n }\r\n getTimeScale() {\r\n return Promise.resolve(Sequencer_module._fluid_sequencer_get_time_scale(this._seq));\r\n }\r\n getTick() {\r\n return Promise.resolve(Sequencer_module._fluid_sequencer_get_tick(this._seq));\r\n }\r\n sendEventAt(event, tick, isAbsolute) {\r\n const ev = makeEvent(event);\r\n if (ev !== null) {\r\n // send to all clients\r\n const count = Sequencer_module._fluid_sequencer_count_clients(this._seq);\r\n for (let i = 0; i < count; ++i) {\r\n const id = Sequencer_module._fluid_sequencer_get_client_id(this._seq, i);\r\n Sequencer_module._fluid_event_set_dest(ev, id);\r\n Sequencer_module._fluid_sequencer_send_at(this._seq, ev, tick, isAbsolute ? 1 : 0);\r\n }\r\n Sequencer_module._delete_fluid_event(ev);\r\n }\r\n }\r\n sendEventToClientAt(clientId, event, tick, isAbsolute) {\r\n const ev = makeEvent(event);\r\n if (ev !== null) {\r\n Sequencer_module._fluid_event_set_dest(ev, clientId === -1 ? this._seqId : clientId);\r\n Sequencer_module._fluid_sequencer_send_at(this._seq, ev, tick, isAbsolute ? 1 : 0);\r\n Sequencer_module._delete_fluid_event(ev);\r\n }\r\n }\r\n /** @internal */\r\n sendEventToClientNow(clientId, event) {\r\n const ev = makeEvent(event);\r\n if (ev !== null) {\r\n Sequencer_module._fluid_event_set_dest(ev, clientId === -1 ? this._seqId : clientId);\r\n Sequencer_module._fluid_sequencer_send_now(this._seq, ev);\r\n Sequencer_module._delete_fluid_event(ev);\r\n }\r\n }\r\n /** @internal */\r\n sendEventNow(clientId, eventData) {\r\n if (!(eventData instanceof SequencerEventData_SequencerEventData)) {\r\n return;\r\n }\r\n const ev = eventData.getRaw();\r\n if (ev !== INVALID_POINTER) {\r\n Sequencer_module._fluid_event_set_dest(ev, clientId === -1 ? this._seqId : clientId);\r\n Sequencer_module._fluid_sequencer_send_now(this._seq, ev);\r\n }\r\n }\r\n removeAllEvents() {\r\n Sequencer_module._fluid_sequencer_remove_events(this._seq, -1, -1, -1);\r\n }\r\n removeAllEventsFromClient(clientId) {\r\n Sequencer_module._fluid_sequencer_remove_events(this._seq, -1, clientId === -1 ? this._seqId : clientId, -1);\r\n }\r\n processSequencer(msecToProcess) {\r\n if (this._seq !== INVALID_POINTER) {\r\n Sequencer_module._fluid_sequencer_process(this._seq, msecToProcess);\r\n }\r\n }\r\n /** @internal */\r\n setIntervalForSequencer(msec) {\r\n return setInterval(() => this.processSequencer(msec), msec);\r\n }\r\n}\r\n\n// CONCATENATED MODULE: ./src/main/Synthesizer.ts\n\r\n\r\n\r\n\r\nlet Synthesizer_module;\r\nlet _addFunction;\r\nlet Synthesizer_removeFunction;\r\nlet _fs;\r\n// wrapper to use String type\r\nlet fluid_settings_setint;\r\nlet fluid_settings_setnum;\r\nlet fluid_settings_setstr;\r\nlet fluid_synth_error;\r\nlet fluid_synth_sfload;\r\nlet fluid_sequencer_register_client;\r\nlet malloc;\r\nlet free;\r\nlet defaultMIDIEventCallback;\r\nfunction Synthesizer_bindFunctions() {\r\n if (fluid_synth_error) {\r\n // (already bound)\r\n return;\r\n }\r\n if (typeof AudioWorkletGlobalScope !== 'undefined') {\r\n Synthesizer_module = AudioWorkletGlobalScope.wasmModule;\r\n _addFunction = AudioWorkletGlobalScope.wasmAddFunction;\r\n Synthesizer_removeFunction = AudioWorkletGlobalScope.wasmRemoveFunction;\r\n }\r\n else {\r\n Synthesizer_module = Module;\r\n _addFunction = addFunction;\r\n Synthesizer_removeFunction = removeFunction;\r\n }\r\n _fs = Synthesizer_module.FS;\r\n // wrapper to use String type\r\n fluid_settings_setint =\r\n Synthesizer_module.cwrap('fluid_settings_setint', 'number', ['number', 'string', 'number']);\r\n fluid_settings_setnum =\r\n Synthesizer_module.cwrap('fluid_settings_setnum', 'number', ['number', 'string', 'number']);\r\n fluid_settings_setstr =\r\n Synthesizer_module.cwrap('fluid_settings_setstr', 'number', ['number', 'string', 'string']);\r\n fluid_synth_error =\r\n Synthesizer_module.cwrap('fluid_synth_error', 'string', ['number']);\r\n fluid_synth_sfload =\r\n Synthesizer_module.cwrap('fluid_synth_sfload', 'number', ['number', 'string', 'number']);\r\n fluid_sequencer_register_client =\r\n Synthesizer_module.cwrap('fluid_sequencer_register_client', 'number', ['number', 'string', 'number', 'number']);\r\n malloc = Synthesizer_module._malloc.bind(Synthesizer_module);\r\n free = Synthesizer_module._free.bind(Synthesizer_module);\r\n defaultMIDIEventCallback = Synthesizer_module._fluid_synth_handle_midi_event.bind(Synthesizer_module);\r\n}\r\nfunction setBoolValueForSettings(settings, name, value) {\r\n if (typeof value !== 'undefined') {\r\n fluid_settings_setint(settings, name, value ? 1 : 0);\r\n }\r\n}\r\nfunction setIntValueForSettings(settings, name, value) {\r\n if (typeof value !== 'undefined') {\r\n fluid_settings_setint(settings, name, value);\r\n }\r\n}\r\nfunction setNumValueForSettings(settings, name, value) {\r\n if (typeof value !== 'undefined') {\r\n fluid_settings_setnum(settings, name, value);\r\n }\r\n}\r\nfunction setStrValueForSettings(settings, name, value) {\r\n if (typeof value !== 'undefined') {\r\n fluid_settings_setstr(settings, name, value);\r\n }\r\n}\r\nfunction getActiveVoiceCount(synth) {\r\n const actualCount = Synthesizer_module._fluid_synth_get_active_voice_count(synth);\r\n if (!actualCount) {\r\n return 0;\r\n }\r\n // FluidSynth may return incorrect value for active voice count,\r\n // so check internal data and correct it\r\n // check if the structure is not changed\r\n // 144 === offset [synth->active_voice_count]\r\n const offsetOfActiveVoiceCount = (synth + 144) >> 2;\r\n const structActiveVoiceCount = Synthesizer_module.HEAPU32[offsetOfActiveVoiceCount];\r\n if (structActiveVoiceCount !== actualCount) {\r\n // unknown structure\r\n const c = console;\r\n c.warn('js-synthesizer: cannot check synthesizer internal data (may be changed)');\r\n return actualCount;\r\n }\r\n // 140 === offset [synth->voice]\r\n const voiceList = Synthesizer_module.HEAPU32[(synth + 140) >> 2];\r\n // (voice should not be NULL)\r\n if (!voiceList || voiceList >= Synthesizer_module.HEAPU32.byteLength) {\r\n // unknown structure\r\n const c = console;\r\n c.warn('js-synthesizer: cannot check synthesizer internal data (may be changed)');\r\n return actualCount;\r\n }\r\n // count of internal voice data is restricted to polyphony value\r\n const voiceCount = Synthesizer_module._fluid_synth_get_polyphony(synth);\r\n let isRunning = false;\r\n for (let i = 0; i < voiceCount; ++i) {\r\n // auto voice = voiceList[i]\r\n const voice = Synthesizer_module.HEAPU32[(voiceList >> 2) + i];\r\n if (!voice) {\r\n continue;\r\n }\r\n // offset [voice->status]\r\n const status = Synthesizer_module.HEAPU8[voice + 4];\r\n // 4: FLUID_VOICE_OFF\r\n if (status !== 4) {\r\n isRunning = true;\r\n break;\r\n }\r\n }\r\n if (!isRunning) {\r\n if (structActiveVoiceCount !== 0) {\r\n const c = console;\r\n c.warn('js-synthesizer: Active voice count is not zero, but all voices are off:', structActiveVoiceCount);\r\n }\r\n Synthesizer_module.HEAPU32[offsetOfActiveVoiceCount] = 0;\r\n return 0;\r\n }\r\n return actualCount;\r\n}\r\nfunction makeRandomFileName(type, ext) {\r\n return `/${type}-r${Math.random() * 65535}-${Math.random() * 65535}${ext}`;\r\n}\r\nfunction makeMIDIEventCallback(synth, cb, param) {\r\n return (data, event) => {\r\n const t = Synthesizer_module._fluid_midi_event_get_type(event);\r\n if (cb(synth, t, new MIDIEvent(event, Synthesizer_module), param)) {\r\n return 0;\r\n }\r\n return Synthesizer_module._fluid_synth_handle_midi_event(data, event);\r\n };\r\n}\r\n/** Default implementation of ISynthesizer */\r\nclass Synthesizer_Synthesizer {\r\n constructor() {\r\n Synthesizer_bindFunctions();\r\n this._settings = INVALID_POINTER;\r\n this._synth = INVALID_POINTER;\r\n this._player = INVALID_POINTER;\r\n this._playerPlaying = false;\r\n this._playerCallbackPtr = null;\r\n this._fluidSynthCallback = null;\r\n this._buffer = INVALID_POINTER;\r\n this._bufferSize = 0;\r\n this._numPtr = INVALID_POINTER;\r\n this._gain = 0.5 /* Gain */;\r\n }\r\n isInitialized() {\r\n return this._synth !== INVALID_POINTER;\r\n }\r\n /** Return the raw synthesizer instance value (pointer for libfluidsynth). */\r\n getRawSynthesizer() {\r\n return this._synth;\r\n }\r\n createAudioNode(context, frameSize) {\r\n const node = context.createScriptProcessor(frameSize, 0, 2);\r\n node.addEventListener('audioprocess', (ev) => {\r\n this.render(ev.outputBuffer);\r\n });\r\n return node;\r\n }\r\n init(sampleRate, settings) {\r\n this.close();\r\n const set = this._settings = Synthesizer_module._new_fluid_settings();\r\n fluid_settings_setnum(set, 'synth.sample-rate', sampleRate);\r\n if (settings) {\r\n if (typeof settings.initialGain !== 'undefined') {\r\n this._gain = settings.initialGain;\r\n }\r\n setBoolValueForSettings(set, 'synth.chorus.active', settings.chorusActive);\r\n setNumValueForSettings(set, 'synth.chorus.depth', settings.chorusDepth);\r\n setNumValueForSettings(set, 'synth.chorus.level', settings.chorusLevel);\r\n setIntValueForSettings(set, 'synth.chorus.nr', settings.chorusNr);\r\n setNumValueForSettings(set, 'synth.chorus.speed', settings.chorusSpeed);\r\n setIntValueForSettings(set, 'synth.midi-channels', settings.midiChannelCount);\r\n setStrValueForSettings(set, 'synth.midi-bank-select', settings.midiBankSelect);\r\n setIntValueForSettings(set, 'synth.min-note-length', settings.minNoteLength);\r\n setNumValueForSettings(set, 'synth.overflow.age', settings.overflowAge);\r\n setNumValueForSettings(set, 'synth.overflow.important', settings.overflowImportantValue);\r\n if (typeof settings.overflowImportantChannels !== 'undefined') {\r\n fluid_settings_setstr(set, 'synth.overflow.important-channels', settings.overflowImportantChannels.join(','));\r\n }\r\n setNumValueForSettings(set, 'synth.overflow.percussion', settings.overflowPercussion);\r\n setNumValueForSettings(set, 'synth.overflow.released', settings.overflowReleased);\r\n setNumValueForSettings(set, 'synth.overflow.sustained', settings.overflowSustained);\r\n setNumValueForSettings(set, 'synth.overflow.volume', settings.overflowVolume);\r\n setIntValueForSettings(set, 'synth.polyphony', settings.polyphony);\r\n setBoolValueForSettings(set, 'synth.reverb.active', settings.reverbActive);\r\n setNumValueForSettings(set, 'synth.reverb.damp', settings.reverbDamp);\r\n setNumValueForSettings(set, 'synth.reverb.level', settings.reverbLevel);\r\n setNumValueForSettings(set, 'synth.reverb.room-size', settings.reverbRoomSize);\r\n setNumValueForSettings(set, 'synth.reverb.width', settings.reverbWidth);\r\n }\r\n fluid_settings_setnum(set, 'synth.gain', this._gain);\r\n this._synth = Synthesizer_module._new_fluid_synth(this._settings);\r\n this._numPtr = malloc(8);\r\n this._initPlayer();\r\n }\r\n close() {\r\n if (this._synth === INVALID_POINTER) {\r\n return;\r\n }\r\n this._closePlayer();\r\n Synthesizer_module._delete_fluid_synth(this._synth);\r\n this._synth = INVALID_POINTER;\r\n Synthesizer_module._delete_fluid_settings(this._settings);\r\n this._settings = INVALID_POINTER;\r\n free(this._numPtr);\r\n this._numPtr = INVALID_POINTER;\r\n }\r\n isPlaying() {\r\n return this._synth !== INVALID_POINTER &&\r\n getActiveVoiceCount(this._synth) > 0;\r\n }\r\n setInterpolation(value, channel) {\r\n this.ensureInitialized();\r\n if (typeof channel === 'undefined') {\r\n channel = -1;\r\n }\r\n Synthesizer_module._fluid_synth_set_interp_method(this._synth, channel, value);\r\n }\r\n getGain() {\r\n return this._gain;\r\n }\r\n setGain(gain) {\r\n this.ensureInitialized();\r\n Synthesizer_module._fluid_synth_set_gain(this._synth, gain);\r\n this._gain = Synthesizer_module._fluid_synth_get_gain(this._synth);\r\n }\r\n setChannelType(channel, isDrum) {\r\n this.ensureInitialized();\r\n // CHANNEL_TYPE_MELODIC = 0, CHANNEL_TYPE_DRUM = 1\r\n Synthesizer_module._fluid_synth_set_channel_type(this._synth, channel, isDrum ? 1 : 0);\r\n }\r\n waitForVoicesStopped() {\r\n return this.flushFramesAsync();\r\n }\r\n loadSFont(bin) {\r\n this.ensureInitialized();\r\n const name = makeRandomFileName('sfont', '.sf2');\r\n const ub = new Uint8Array(bin);\r\n _fs.writeFile(name, ub);\r\n const sfont = fluid_synth_sfload(this._synth, name, 1);\r\n _fs.unlink(name);\r\n return sfont === -1 ?\r\n Promise.reject(new Error(fluid_synth_error(this._synth))) :\r\n Promise.resolve(sfont);\r\n }\r\n unloadSFont(id) {\r\n this.ensureInitialized();\r\n this.stopPlayer();\r\n this.flushFramesSync();\r\n Synthesizer_module._fluid_synth_sfunload(this._synth, id, 1);\r\n }\r\n unloadSFontAsync(id) {\r\n // not throw with Promise.reject\r\n this.ensureInitialized();\r\n this.stopPlayer();\r\n return this.flushFramesAsync().then(() => {\r\n Synthesizer_module._fluid_synth_sfunload(this._synth, id, 1);\r\n });\r\n }\r\n getSFontBankOffset(id) {\r\n this.ensureInitialized();\r\n return Promise.resolve(Synthesizer_module._fluid_synth_get_bank_offset(this._synth, id));\r\n }\r\n setSFontBankOffset(id, offset) {\r\n this.ensureInitialized();\r\n Synthesizer_module._fluid_synth_set_bank_offset(this._synth, id, offset);\r\n }\r\n render(outBuffer) {\r\n const frameCount = 'numberOfChannels' in outBuffer ? outBuffer.length : outBuffer[0].length;\r\n const channels = 'numberOfChannels' in outBuffer ? outBuffer.numberOfChannels : outBuffer.length;\r\n const sizePerChannel = 4 * frameCount;\r\n const totalSize = sizePerChannel * 2;\r\n if (this._bufferSize < totalSize) {\r\n if (this._buffer !== INVALID_POINTER) {\r\n free(this._buffer);\r\n }\r\n this._buffer = malloc(totalSize);\r\n this._bufferSize = totalSize;\r\n }\r\n const memLeft = this._buffer;\r\n const memRight = (this._buffer + sizePerChannel);\r\n this.renderRaw(memLeft, memRight, frameCount);\r\n const aLeft = new Float32Array(Synthesizer_module.HEAPU8.buffer, memLeft, frameCount);\r\n const aRight = channels >= 2 ? new Float32Array(Synthesizer_module.HEAPU8.buffer, memRight, frameCount) : null;\r\n if ('numberOfChannels' in outBuffer) {\r\n if (outBuffer.copyToChannel) {\r\n outBuffer.copyToChannel(aLeft, 0, 0);\r\n if (aRight) {\r\n outBuffer.copyToChannel(aRight, 1, 0);\r\n }\r\n }\r\n else { // copyToChannel API not exist in Safari AudioBuffer\r\n const leftData = outBuffer.getChannelData(0);\r\n aLeft.forEach((val, i) => leftData[i] = val);\r\n if (aRight) {\r\n const rightData = outBuffer.getChannelData(1);\r\n aRight.forEach((val, i) => rightData[i] = val);\r\n }\r\n }\r\n }\r\n else {\r\n outBuffer[0].set(aLeft);\r\n if (aRight) {\r\n outBuffer[1].set(aRight);\r\n }\r\n }\r\n // check and update player status\r\n this.isPlayerPlaying();\r\n }\r\n midiNoteOn(chan, key, vel) {\r\n Synthesizer_module._fluid_synth_noteon(this._synth, chan, key, vel);\r\n }\r\n midiNoteOff(chan, key) {\r\n Synthesizer_module._fluid_synth_noteoff(this._synth, chan, key);\r\n }\r\n midiKeyPressure(chan, key, val) {\r\n Synthesizer_module._fluid_synth_key_pressure(this._synth, chan, key, val);\r\n }\r\n midiControl(chan, ctrl, val) {\r\n Synthesizer_module._fluid_synth_cc(this._synth, chan, ctrl, val);\r\n }\r\n midiProgramChange(chan, prognum) {\r\n Synthesizer_module._fluid_synth_program_change(this._synth, chan, prognum);\r\n }\r\n midiChannelPressure(chan, val) {\r\n Synthesizer_module._fluid_synth_channel_pressure(this._synth, chan, val);\r\n }\r\n midiPitchBend(chan, val) {\r\n Synthesizer_module._fluid_synth_pitch_bend(this._synth, chan, val);\r\n }\r\n midiSysEx(data) {\r\n const len = data.byteLength;\r\n const mem = malloc(len);\r\n Synthesizer_module.HEAPU8.set(data, mem);\r\n Synthesizer_module._fluid_synth_sysex(this._synth, mem, len, INVALID_POINTER, INVALID_POINTER, INVALID_POINTER, 0);\r\n free(mem);\r\n }\r\n midiPitchWheelSensitivity(chan, val) {\r\n Synthesizer_module._fluid_synth_pitch_wheel_sens(this._synth, chan, val);\r\n }\r\n midiBankSelect(chan, bank) {\r\n Synthesizer_module._fluid_synth_bank_select(this._synth, chan, bank);\r\n }\r\n midiSFontSelect(chan, sfontId) {\r\n Synthesizer_module._fluid_synth_sfont_select(this._synth, chan, sfontId);\r\n }\r\n midiProgramSelect(chan, sfontId, bank, presetNum) {\r\n Synthesizer_module._fluid_synth_program_select(this._synth, chan, sfontId, bank, presetNum);\r\n }\r\n midiUnsetProgram(chan) {\r\n Synthesizer_module._fluid_synth_unset_program(this._synth, chan);\r\n }\r\n midiProgramReset() {\r\n Synthesizer_module._fluid_synth_program_reset(this._synth);\r\n }\r\n midiSystemReset() {\r\n Synthesizer_module._fluid_synth_system_reset(this._synth);\r\n }\r\n midiAllNotesOff(chan) {\r\n Synthesizer_module._fluid_synth_all_notes_off(this._synth, typeof chan === 'undefined' ? -1 : chan);\r\n }\r\n midiAllSoundsOff(chan) {\r\n Synthesizer_module._fluid_synth_all_sounds_off(this._synth, typeof chan === 'undefined' ? -1 : chan);\r\n }\r\n midiSetChannelType(chan, isDrum) {\r\n // CHANNEL_TYPE_MELODIC = 0\r\n // CHANNEL_TYPE_DRUM = 1\r\n Synthesizer_module._fluid_synth_set_channel_type(this._synth, chan, isDrum ? 1 : 0);\r\n }\r\n /**\r\n * Set reverb parameters to the synthesizer.\r\n */\r\n setReverb(roomsize, damping, width, level) {\r\n Synthesizer_module._fluid_synth_set_reverb(this._synth, roomsize, damping, width, level);\r\n }\r\n /**\r\n * Set reverb roomsize parameter to the synthesizer.\r\n */\r\n setReverbRoomsize(roomsize) {\r\n Synthesizer_module._fluid_synth_set_reverb_roomsize(this._synth, roomsize);\r\n }\r\n /**\r\n * Set reverb damping parameter to the synthesizer.\r\n */\r\n setReverbDamp(damping) {\r\n Synthesizer_module._fluid_synth_set_reverb_damp(this._synth, damping);\r\n }\r\n /**\r\n * Set reverb width parameter to the synthesizer.\r\n */\r\n setReverbWidth(width) {\r\n Synthesizer_module._fluid_synth_set_reverb_width(this._synth, width);\r\n }\r\n /**\r\n * Set reverb level to the synthesizer.\r\n */\r\n setReverbLevel(level) {\r\n Synthesizer_module._fluid_synth_set_reverb_level(this._synth, level);\r\n }\r\n /**\r\n * Enable or disable reverb effect of the synthesizer.\r\n */\r\n setReverbOn(on) {\r\n Synthesizer_module._fluid_synth_set_reverb_on(this._synth, on ? 1 : 0);\r\n }\r\n /**\r\n * Get reverb roomsize parameter of the synthesizer.\r\n */\r\n getReverbRoomsize() {\r\n return Synthesizer_module._fluid_synth_get_reverb_roomsize(this._synth);\r\n }\r\n /**\r\n * Get reverb damping parameter of the synthesizer.\r\n */\r\n getReverbDamp() {\r\n return Synthesizer_module._fluid_synth_get_reverb_damp(this._synth);\r\n }\r\n /**\r\n * Get reverb level of the synthesizer.\r\n */\r\n getReverbLevel() {\r\n return Synthesizer_module._fluid_synth_get_reverb_level(this._synth);\r\n }\r\n /**\r\n * Get reverb width parameter of the synthesizer.\r\n */\r\n getReverbWidth() {\r\n return Synthesizer_module._fluid_synth_get_reverb_width(this._synth);\r\n }\r\n /**\r\n * Set chorus parameters to the synthesizer.\r\n */\r\n setChorus(voiceCount, level, speed, depthMillisec, type) {\r\n Synthesizer_module._fluid_synth_set_chorus(this._synth, voiceCount, level, speed, depthMillisec, type);\r\n }\r\n /**\r\n * Set chorus voice count parameter to the synthesizer.\r\n */\r\n setChorusVoiceCount(voiceCount) {\r\n Synthesizer_module._fluid_synth_set_chorus_nr(this._synth, voiceCount);\r\n }\r\n /**\r\n * Set chorus level parameter to the synthesizer.\r\n */\r\n setChorusLevel(level) {\r\n Synthesizer_module._fluid_synth_set_chorus_level(this._synth, level);\r\n }\r\n /**\r\n * Set chorus speed parameter to the synthesizer.\r\n */\r\n setChorusSpeed(speed) {\r\n Synthesizer_module._fluid_synth_set_chorus_speed(this._synth, speed);\r\n }\r\n /**\r\n * Set chorus depth parameter to the synthesizer.\r\n */\r\n setChorusDepth(depthMillisec) {\r\n Synthesizer_module._fluid_synth_set_chorus_depth(this._synth, depthMillisec);\r\n }\r\n /**\r\n * Set chorus modulation type to the synthesizer.\r\n */\r\n setChorusType(type) {\r\n Synthesizer_module._fluid_synth_set_chorus_type(this._synth, type);\r\n }\r\n /**\r\n * Enable or disable chorus effect of the synthesizer.\r\n */\r\n setChorusOn(on) {\r\n Synthesizer_module._fluid_synth_set_chorus_on(this._synth, on ? 1 : 0);\r\n }\r\n /**\r\n * Get chorus voice count of the synthesizer.\r\n */\r\n getChorusVoiceCount() {\r\n return Synthesizer_module._fluid_synth_get_chorus_nr(this._synth);\r\n }\r\n /**\r\n * Get chorus level of the synthesizer.\r\n */\r\n getChorusLevel() {\r\n return Synthesizer_module._fluid_synth_get_chorus_level(this._synth);\r\n }\r\n /**\r\n * Get chorus speed of the synthesizer.\r\n */\r\n getChorusSpeed() {\r\n return Synthesizer_module._fluid_synth_get_chorus_speed(this._synth);\r\n }\r\n /**\r\n * Get chorus depth (in milliseconds) of the synthesizer.\r\n */\r\n getChorusDepth() {\r\n return Synthesizer_module._fluid_synth_get_chorus_depth(this._synth);\r\n }\r\n /**\r\n * Get chorus modulation type of the synthesizer.\r\n */\r\n getChorusType() {\r\n return Synthesizer_module._fluid_synth_get_chorus_type(this._synth);\r\n }\r\n /**\r\n * Get generator value assigned to the MIDI channel.\r\n * @param channel MIDI channel number\r\n * @param param generator ID\r\n * @return a value related to the generator\r\n */\r\n getGenerator(channel, param) {\r\n return Synthesizer_module._fluid_synth_get_gen(this._synth, channel, param);\r\n }\r\n /**\r\n * Set generator value assigned to the MIDI channel.\r\n * @param channel MIDI channel number\r\n * @param param generator ID\r\n * @param value a value related to the generator\r\n */\r\n setGenerator(channel, param, value) {\r\n Synthesizer_module._fluid_synth_set_gen(this._synth, channel, param, value);\r\n }\r\n /**\r\n * Return the current legato mode of the channel.\r\n * @param channel MIDI channel number\r\n * @return legato mode\r\n */\r\n getLegatoMode(channel) {\r\n Synthesizer_module._fluid_synth_get_legato_mode(this._synth, channel, this._numPtr);\r\n return Synthesizer_module.HEAP32[this._numPtr >> 2];\r\n }\r\n /**\r\n * Set the current legato mode of the channel.\r\n * @param channel MIDI channel number\r\n * @param mode legato mode\r\n */\r\n setLegatoMode(channel, mode) {\r\n Synthesizer_module._fluid_synth_set_legato_mode(this._synth, channel, mode);\r\n }\r\n /**\r\n * Return the current portamento mode of the channel.\r\n * @param channel MIDI channel number\r\n * @return portamento mode\r\n */\r\n getPortamentoMode(channel) {\r\n Synthesizer_module._fluid_synth_get_portamento_mode(this._synth, channel, this._numPtr);\r\n return Synthesizer_module.HEAP32[this._numPtr >> 2];\r\n }\r\n /**\r\n * Set the current portamento mode of the channel.\r\n * @param channel MIDI channel number\r\n * @param mode portamento mode\r\n */\r\n setPortamentoMode(channel, mode) {\r\n Synthesizer_module._fluid_synth_set_portamento_mode(this._synth, channel, mode);\r\n }\r\n /**\r\n * Return the current breath mode of the channel.\r\n * @param channel MIDI channel number\r\n * @return breath mode (BreathFlags)\r\n */\r\n getBreathMode(channel) {\r\n Synthesizer_module._fluid_synth_get_breath_mode(this._synth, channel, this._numPtr);\r\n return Synthesizer_module.HEAP32[this._numPtr >> 2];\r\n }\r\n /**\r\n * Set the current breath mode of the channel.\r\n * @param channel MIDI channel number\r\n * @param flags breath mode flags (BreathFlags)\r\n */\r\n setBreathMode(channel, flags) {\r\n Synthesizer_module._fluid_synth_set_breath_mode(this._synth, channel, flags);\r\n }\r\n ////////////////////////////////////////////////////////////////////////////\r\n resetPlayer() {\r\n return this._initPlayer();\r\n }\r\n /** @internal */\r\n _initPlayer() {\r\n this._closePlayer();\r\n const player = Synthesizer_module._new_fluid_player(this._synth);\r\n this._player = player;\r\n if (player !== INVALID_POINTER) {\r\n if (this._fluidSynthCallback === null) {\r\n // hacky retrieve 'fluid_synth_handle_midi_event' callback pointer\r\n // * 'playback_callback' is filled with 'fluid_synth_handle_midi_event' by default.\r\n // * 'playback_userdata' is filled with the synthesizer pointer by default\r\n const funcPtr = Synthesizer_module.HEAPU32[(player + 588) >> 2]; // _fluid_player_t::playback_callback\r\n const synthPtr = Synthesizer_module.HEAPU32[(player + 592) >> 2]; // _fluid_player_t::playback_userdata\r\n if (synthPtr === this._synth) {\r\n this._fluidSynthCallback = funcPtr;\r\n }\r\n }\r\n }\r\n return player !== INVALID_POINTER ? Promise.resolve() :\r\n Promise.reject(new Error('Out of memory'));\r\n }\r\n /** @internal */\r\n _closePlayer() {\r\n const p = this._player;\r\n if (p === INVALID_POINTER) {\r\n return;\r\n }\r\n this.stopPlayer();\r\n Synthesizer_module._delete_fluid_player(p);\r\n this._player = INVALID_POINTER;\r\n this._playerCallbackPtr = null;\r\n }\r\n isPlayerPlaying() {\r\n if (this._playerPlaying) {\r\n const status = Synthesizer_module._fluid_player_get_status(this._player);\r\n if (status === 1 /*FLUID_PLAYER_PLAYING*/) {\r\n return true;\r\n }\r\n this.stopPlayer();\r\n }\r\n return false;\r\n }\r\n addSMFDataToPlayer(bin) {\r\n this.ensurePlayerInitialized();\r\n const len = bin.byteLength;\r\n const mem = malloc(len);\r\n Synthesizer_module.HEAPU8.set(new Uint8Array(bin), mem);\r\n const r = Synthesizer_module._fluid_player_add_mem(this._player, mem, len);\r\n free(mem);\r\n return r !== -1 ? Promise.resolve() : Promise.reject(new Error(fluid_synth_error(this._synth)));\r\n }\r\n playPlayer() {\r\n this.ensurePlayerInitialized();\r\n if (this._playerPlaying) {\r\n this.stopPlayer();\r\n }\r\n if (Synthesizer_module._fluid_player_play(this._player) === -1) {\r\n return Promise.reject(new Error(fluid_synth_error(this._synth)));\r\n }\r\n this._playerPlaying = true;\r\n let resolver = () => { };\r\n const p = new Promise((resolve) => {\r\n resolver = resolve;\r\n });\r\n this._playerDefer = {\r\n promise: p,\r\n resolve: resolver\r\n };\r\n return Promise.resolve();\r\n }\r\n stopPlayer() {\r\n const p = this._player;\r\n if (p === INVALID_POINTER || !this._playerPlaying) {\r\n return;\r\n }\r\n Synthesizer_module._fluid_player_stop(p);\r\n Synthesizer_module._fluid_player_join(p);\r\n Synthesizer_module._fluid_synth_all_sounds_off(this._synth, -1);\r\n if (this._playerDefer) {\r\n this._playerDefer.resolve();\r\n this._playerDefer = void (0);\r\n }\r\n this._playerPlaying = false;\r\n }\r\n retrievePlayerCurrentTick() {\r\n this.ensurePlayerInitialized();\r\n return Promise.resolve(Synthesizer_module._fluid_player_get_current_tick(this._player));\r\n }\r\n retrievePlayerTotalTicks() {\r\n this.ensurePlayerInitialized();\r\n return Promise.resolve(Synthesizer_module._fluid_player_get_total_ticks(this._player));\r\n }\r\n retrievePlayerBpm() {\r\n this.ensurePlayerInitialized();\r\n return Promise.resolve(Synthesizer_module._fluid_player_get_bpm(this._player));\r\n }\r\n retrievePlayerMIDITempo() {\r\n this.ensurePlayerInitialized();\r\n return Promise.resolve(Synthesizer_module._fluid_player_get_midi_tempo(this._player));\r\n }\r\n seekPlayer(ticks) {\r\n this.ensurePlayerInitialized();\r\n Synthesizer_module._fluid_player_seek(this._player, ticks);\r\n }\r\n /**\r\n * Hooks MIDI events sent by the player.\r\n * initPlayer() must be called before calling this method.\r\n * @param callback hook callback function, or null to unhook\r\n * @param param any additional data passed to the callback\r\n */\r\n hookPlayerMIDIEvents(callback, param) {\r\n this.ensurePlayerInitialized();\r\n const oldPtr = this._playerCallbackPtr;\r\n if (oldPtr === null && callback === null) {\r\n return;\r\n }\r\n const newPtr = (\r\n // if callback is specified, add function\r\n callback !== null ? _addFunction(makeMIDIEventCallback(this, callback, param), 'iii') : (\r\n // if _fluidSynthCallback is filled, set null to use it for reset callback\r\n // if not, add function defaultMIDIEventCallback for reset\r\n this._fluidSynthCallback !== null ? null : _addFunction(defaultMIDIEventCallback, 'iii')));\r\n // the third parameter of 'fluid_player_set_playback_callback' should be 'fluid_synth_t*'\r\n if (oldPtr !== null && newPtr !== null) {\r\n // (using defaultMIDIEventCallback also comes here)\r\n Synthesizer_module._fluid_player_set_playback_callback(this._player, newPtr, this._synth);\r\n Synthesizer_removeFunction(oldPtr);\r\n }\r\n else {\r\n if (newPtr === null) {\r\n // newPtr === null --\x3e use _fluidSynthCallback\r\n Synthesizer_module._fluid_player_set_playback_callback(this._player, this._fluidSynthCallback, this._synth);\r\n Synthesizer_removeFunction(oldPtr);\r\n }\r\n else {\r\n Synthesizer_module._fluid_player_set_playback_callback(this._player, newPtr, this._synth);\r\n }\r\n }\r\n this._playerCallbackPtr = newPtr;\r\n }\r\n /** @internal */\r\n ensureInitialized() {\r\n if (this._synth === INVALID_POINTER) {\r\n throw new Error('Synthesizer is not initialized');\r\n }\r\n }\r\n /** @internal */\r\n ensurePlayerInitialized() {\r\n this.ensureInitialized();\r\n if (this._player === INVALID_POINTER) {\r\n throw new Error('Player is not initialized');\r\n }\r\n }\r\n /** @internal */\r\n renderRaw(memLeft, memRight, frameCount) {\r\n Synthesizer_module._fluid_synth_write_float(this._synth, frameCount, memLeft, 0, 1, memRight, 0, 1);\r\n }\r\n /** @internal */\r\n flushFramesSync() {\r\n const frameCount = 65536;\r\n const size = 4 * frameCount;\r\n const mem = malloc(size * 2);\r\n const memLeft = mem;\r\n const memRight = (mem + size);\r\n while (this.isPlaying()) {\r\n this.renderRaw(memLeft, memRight, frameCount);\r\n }\r\n free(mem);\r\n }\r\n /** @internal */\r\n flushFramesAsync() {\r\n if (!this.isPlaying()) {\r\n return Promise.resolve();\r\n }\r\n const frameCount = 65536;\r\n const size = 4 * frameCount;\r\n const mem = malloc(size * 2);\r\n const memLeft = mem;\r\n const memRight = (mem + size);\r\n const nextFrame = (typeof setTimeout !== 'undefined' ?\r\n () => {\r\n return new Promise((resolve) => setTimeout(resolve, 0));\r\n } :\r\n () => {\r\n return Promise.resolve();\r\n });\r\n function head() {\r\n return nextFrame().then(tail);\r\n }\r\n const self = this;\r\n function tail() {\r\n if (!self.isPlaying()) {\r\n free(mem);\r\n return Promise.resolve();\r\n }\r\n self.renderRaw(memLeft, memRight, frameCount);\r\n return head();\r\n }\r\n return head();\r\n }\r\n waitForPlayerStopped() {\r\n return this._playerDefer ? this._playerDefer.promise : Promise.resolve();\r\n }\r\n /**\r\n * Create the sequencer object for this class.\r\n */\r\n static createSequencer() {\r\n Synthesizer_bindFunctions();\r\n const seq = new Sequencer_Sequencer();\r\n return seq._initialize().then(() => seq);\r\n }\r\n /**\r\n * Registers the user-defined client to the sequencer.\r\n * The client can receive events in the time from sequencer process.\r\n * @param seq the sequencer instance created by Synthesizer.createSequencer\r\n * @param name the client name\r\n * @param callback the client callback function that processes event data\r\n * @param param additional parameter passed to the callback\r\n * @return registered sequencer client id (can be passed to seq.unregisterClient())\r\n */\r\n static registerSequencerClient(seq, name, callback, param) {\r\n if (!(seq instanceof Sequencer_Sequencer)) {\r\n throw new TypeError('Invalid sequencer instance');\r\n }\r\n const ptr = _addFunction((time, ev, _seq, data) => {\r\n const e = new SequencerEventData_SequencerEventData(ev, Synthesizer_module);\r\n const type = Synthesizer_module._fluid_event_get_type(ev);\r\n callback(time, type, e, seq, data);\r\n }, 'viiii');\r\n const r = fluid_sequencer_register_client(seq.getRaw(), name, ptr, param);\r\n if (r !== -1) {\r\n seq._clientFuncMap[r] = ptr;\r\n }\r\n return r;\r\n }\r\n /**\r\n * Send sequencer event immediately to the specific client.\r\n * @param seq the sequencer instance created by Synthesizer.createSequencer\r\n * @param clientId registered client id (-1 for registered synthesizer)\r\n * @param event event data\r\n */\r\n static sendEventToClientNow(seq, clientId, event) {\r\n if (!(seq instanceof Sequencer_Sequencer)) {\r\n throw new TypeError('Invalid sequencer instance');\r\n }\r\n seq.sendEventToClientNow(clientId, event);\r\n }\r\n /**\r\n * (Re-)send event data immediately.\r\n * @param seq the sequencer instance created by Synthesizer.createSequencer\r\n * @param clientId registered client id (-1 for registered synthesizer)\r\n * @param eventData event data which can be retrieved in SequencerClientCallback\r\n */\r\n static sendEventNow(seq, clientId, eventData) {\r\n if (!(seq instanceof Sequencer_Sequencer)) {\r\n throw new TypeError('Invalid sequencer instance');\r\n }\r\n seq.sendEventNow(clientId, eventData);\r\n }\r\n /**\r\n * Set interval timer process to call processSequencer for this sequencer.\r\n * This method uses 'setInterval' global method to register timer.\r\n * @param seq the sequencer instance created by Synthesizer.createSequencer\r\n * @param msec time in milliseconds passed to both setInterval and processSequencer\r\n * @return return value of 'setInterval' (usually passing to 'clearInterval' will reset event)\r\n */\r\n static setIntervalForSequencer(seq, msec) {\r\n if (!(seq instanceof Sequencer_Sequencer)) {\r\n throw new TypeError('Invalid sequencer instance');\r\n }\r\n return seq.setIntervalForSequencer(msec);\r\n }\r\n}\r\n\n// CONCATENATED MODULE: ./src/main/waitForReady.ts\nlet promiseWasmInitialized;\r\n/**\r\n * Returns the Promise object which resolves when the synthesizer engine is ready.\r\n */\r\nfunction waitForReady() {\r\n if (!promiseWasmInitialized) {\r\n const _module = typeof AudioWorkletGlobalScope !== 'undefined' ?\r\n AudioWorkletGlobalScope.wasmModule : Module;\r\n promiseWasmInitialized = new Promise((resolve) => {\r\n if (_module.calledRun) {\r\n resolve();\r\n }\r\n else {\r\n const fn = _module.onRuntimeInitialized;\r\n _module.onRuntimeInitialized = () => {\r\n resolve();\r\n if (fn) {\r\n fn();\r\n }\r\n };\r\n }\r\n });\r\n }\r\n return promiseWasmInitialized;\r\n}\r\n\n// CONCATENATED MODULE: ./src/main/MethodMessaging.ts\n\r\n/** @internal */\r\nfunction initializeCallPort(port, hookMessage) {\r\n const instance = {\r\n port: port,\r\n defers: {},\r\n deferId: 0\r\n };\r\n port.addEventListener('message', (e) => processReturnMessage(instance.defers, hookMessage, e));\r\n port.start();\r\n return instance;\r\n}\r\nfunction convertErrorTransferable(err) {\r\n const result = {};\r\n const objList = [];\r\n let obj = err;\r\n while (obj && obj !== Object.prototype) {\r\n objList.unshift(obj);\r\n obj = Object.getPrototypeOf(obj);\r\n }\r\n objList.forEach((o) => {\r\n Object.getOwnPropertyNames(o).forEach((key) => {\r\n try {\r\n const data = err[key];\r\n if (typeof data !== 'function' && typeof data !== 'symbol') {\r\n result[key] = data;\r\n }\r\n }\r\n catch (_e) { }\r\n });\r\n });\r\n return {\r\n baseName: err.name,\r\n message: err.message,\r\n detail: result\r\n };\r\n}\r\nfunction convertAnyErrorTransferable(err) {\r\n return convertErrorTransferable((err && err instanceof Error) ? err : new Error(`${err}`));\r\n}\r\nfunction makeMessageError(error) {\r\n return new MessageError(error.baseName, error.message, error.detail);\r\n}\r\nfunction processReturnMessage(defers, hook, e) {\r\n const data = e.data;\r\n if (!data) {\r\n return;\r\n }\r\n if (hook && hook(data)) {\r\n return;\r\n }\r\n const defer = defers[data.id];\r\n if (defer) {\r\n delete defers[data.id];\r\n if (data.error) {\r\n defer.reject(makeMessageError(data.error));\r\n }\r\n else {\r\n defer.resolve(data.val);\r\n }\r\n }\r\n else {\r\n if (data.error) {\r\n throw makeMessageError(data.error);\r\n }\r\n }\r\n}\r\n/** @internal */\r\nfunction postCall({ port }, method, args) {\r\n port.postMessage({\r\n id: -1, method, args\r\n });\r\n}\r\n/** @internal */\r\nfunction postCallWithPromise(instance, method, args) {\r\n const id = instance.deferId++;\r\n if (instance.deferId === Infinity || instance.deferId < 0) {\r\n instance.deferId = 0;\r\n }\r\n const promise = new Promise((resolve, reject) => {\r\n instance.defers[id] = { resolve, reject };\r\n });\r\n instance.port.postMessage({\r\n id, method, args\r\n });\r\n return promise;\r\n}\r\n/** @internal */\r\nfunction initializeReturnPort(port, promiseInitialized, targetObjectHolder, hookMessage) {\r\n const instance = {\r\n port: port\r\n };\r\n if (promiseInitialized) {\r\n port.addEventListener('message', (e) => {\r\n const data = e.data;\r\n if (!data) {\r\n return;\r\n }\r\n promiseInitialized.then(() => processCallMessage(instance.port, data, targetObjectHolder, hookMessage));\r\n });\r\n }\r\n else {\r\n port.addEventListener('message', (e) => {\r\n const data = e.data;\r\n if (!data) {\r\n return;\r\n }\r\n processCallMessage(instance.port, data, targetObjectHolder, hookMessage);\r\n });\r\n }\r\n port.start();\r\n return instance;\r\n}\r\nfunction processCallMessage(port, data, targetObjectHolder, hook) {\r\n if (hook && hook(data)) {\r\n return;\r\n }\r\n const target = targetObjectHolder();\r\n if (!target[data.method]) {\r\n postReturnErrorImpl(port, data.id, data.method, new Error('Not implemented'));\r\n }\r\n else {\r\n try {\r\n postReturnImpl(port, data.id, data.method, target[data.method].apply(target, data.args));\r\n }\r\n catch (e) {\r\n postReturnErrorImpl(port, data.id, data.method, e);\r\n }\r\n }\r\n}\r\n/** @internal */\r\nfunction postReturn(instance, id, method, value) {\r\n postReturnImpl(instance.port, id, method, value);\r\n}\r\nfunction postReturnImpl(port, id, method, value) {\r\n if (value instanceof Promise) {\r\n value.then((v) => {\r\n if (id >= 0) {\r\n port.postMessage({\r\n id,\r\n method,\r\n val: v\r\n });\r\n }\r\n }, (error) => {\r\n port.postMessage({\r\n id,\r\n method,\r\n error: convertAnyErrorTransferable(error)\r\n });\r\n });\r\n }\r\n else {\r\n port.postMessage({\r\n id,\r\n method,\r\n val: value\r\n });\r\n }\r\n}\r\n/** @internal */\r\nfunction postReturnError(instance, id, method, error) {\r\n postReturnErrorImpl(instance.port, id, method, error);\r\n}\r\nfunction postReturnErrorImpl(port, id, method, error) {\r\n port.postMessage({\r\n id,\r\n method,\r\n error: convertAnyErrorTransferable(error)\r\n });\r\n}\r\n\n// CONCATENATED MODULE: ./src/main/WorkletSequencer.ts\n\r\n\r\n/** @internal */\r\nclass WorkletSequencer_WorkletSequencer {\r\n constructor(port) {\r\n this._messaging = initializeCallPort(port);\r\n }\r\n /** @internal */\r\n getRaw() {\r\n return postCallWithPromise(this._messaging, 'getRaw', []);\r\n }\r\n /** @internal */\r\n registerSequencerClientByName(clientName, callbackName, param) {\r\n return this.getRaw().then((seqPtr) => postCallWithPromise(this._messaging, 'registerSequencerClientByName', [seqPtr, clientName, callbackName, param]));\r\n }\r\n close() {\r\n postCall(this._messaging, 'close', []);\r\n }\r\n registerSynthesizer(synth) {\r\n let val;\r\n if (synth instanceof AudioWorkletNodeSynthesizer_AudioWorkletNodeSynthesizer) {\r\n val = synth._getRawSynthesizer();\r\n }\r\n else {\r\n return Promise.reject(new TypeError('\\'synth\\' is not a compatible type instance'));\r\n }\r\n return val.then((v) => postCallWithPromise(this._messaging, 'registerSynthesizer', [v]));\r\n }\r\n unregisterClient(clientId) {\r\n postCall(this._messaging, 'unregisterClient', [clientId]);\r\n }\r\n getAllRegisteredClients() {\r\n return postCallWithPromise(this._messaging, 'getAllRegisteredClients', []);\r\n }\r\n getClientCount() {\r\n return postCallWithPromise(this._messaging, 'getClientCount', []);\r\n }\r\n getClientInfo(index) {\r\n return postCallWithPromise(this._messaging, 'getClientInfo', [index]);\r\n }\r\n setTimeScale(scale) {\r\n postCall(this._messaging, 'setTimeScale', [scale]);\r\n }\r\n getTimeScale() {\r\n return postCallWithPromise(this._messaging, 'getTimeScale', []);\r\n }\r\n getTick() {\r\n return postCallWithPromise(this._messaging, 'getTick', []);\r\n }\r\n sendEventAt(event, tick, isAbsolute) {\r\n postCall(this._messaging, 'sendEventAt', [event, tick, isAbsolute]);\r\n }\r\n sendEventToClientAt(clientId, event, tick, isAbsolute) {\r\n postCall(this._messaging, 'sendEventToClientAt', [clientId, event, tick, isAbsolute]);\r\n }\r\n removeAllEvents() {\r\n postCall(this._messaging, 'removeAllEvents', []);\r\n }\r\n removeAllEventsFromClient(clientId) {\r\n postCall(this._messaging, 'removeAllEventsFromClient', [clientId]);\r\n }\r\n processSequencer(msecToProcess) {\r\n postCall(this._messaging, 'processSequencer', [msecToProcess]);\r\n }\r\n}\r\n\n// CONCATENATED MODULE: ./src/main/AudioWorkletNodeSynthesizer.ts\n\r\n\r\n/** An synthesizer object with AudioWorkletNode */\r\nclass AudioWorkletNodeSynthesizer_AudioWorkletNodeSynthesizer {\r\n constructor() {\r\n this._status = {\r\n playing: false,\r\n playerPlaying: false\r\n };\r\n this._messaging = null;\r\n this._node = null;\r\n this._gain = 0.5 /* Gain */;\r\n }\r\n /** Audio node for this synthesizer */\r\n get node() {\r\n return this._node;\r\n }\r\n /**\r\n * Create AudiWorkletNode instance\r\n */\r\n createAudioNode(context, settings) {\r\n const node = new AudioWorkletNode(context, \"fluid-js\" /* ProcessorName */, {\r\n numberOfInputs: 0,\r\n numberOfOutputs: 1,\r\n channelCount: 2,\r\n outputChannelCount: [2],\r\n processorOptions: {\r\n settings: settings\r\n }\r\n });\r\n this._node = node;\r\n this._messaging = initializeCallPort(node.port, (data) => {\r\n if (data.method === \"updateStatus\" /* UpdateStatus */) {\r\n this._status = data.val;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return node;\r\n }\r\n isInitialized() {\r\n return this._messaging !== null;\r\n }\r\n init(_sampleRate, _settings) {\r\n }\r\n close() {\r\n // call init instead of close\r\n postCall(this._messaging, 'init', [0]);\r\n }\r\n isPlaying() {\r\n return this._status.playing;\r\n }\r\n setInterpolation(value, channel) {\r\n postCall(this._messaging, 'setInterpolation', [value, channel]);\r\n }\r\n getGain() {\r\n return this._gain;\r\n }\r\n setGain(gain) {\r\n this._gain = gain;\r\n postCallWithPromise(this._messaging, 'setGain', [gain]).then(() => {\r\n return postCallWithPromise(this._messaging, 'getGain', []);\r\n }).then((value) => {\r\n this._gain = value;\r\n });\r\n }\r\n setChannelType(channel, isDrum) {\r\n postCall(this._messaging, 'setChannelType', [channel, isDrum]);\r\n }\r\n waitForVoicesStopped() {\r\n return postCallWithPromise(this._messaging, 'waitForVoicesStopped', []);\r\n }\r\n loadSFont(bin) {\r\n return postCallWithPromise(this._messaging, 'loadSFont', [bin]);\r\n }\r\n unloadSFont(id) {\r\n postCall(this._messaging, 'unloadSFont', [id]);\r\n }\r\n unloadSFontAsync(id) {\r\n return postCallWithPromise(this._messaging, 'unloadSFont', [id]);\r\n }\r\n getSFontBankOffset(id) {\r\n return postCallWithPromise(this._messaging, 'getSFontBankOffset', [id]);\r\n }\r\n setSFontBankOffset(id, offset) {\r\n postCall(this._messaging, 'setSFontBankOffset', [id, offset]);\r\n }\r\n render() {\r\n throw new Error('Unexpected call');\r\n }\r\n midiNoteOn(chan, key, vel) {\r\n postCall(this._messaging, 'midiNoteOn', [chan, key, vel]);\r\n }\r\n midiNoteOff(chan, key) {\r\n postCall(this._messaging, 'midiNoteOff', [chan, key]);\r\n }\r\n midiKeyPressure(chan, key, val) {\r\n postCall(this._messaging, 'midiKeyPressure', [chan, key, val]);\r\n }\r\n midiControl(chan, ctrl, val) {\r\n postCall(this._messaging, 'midiControl', [chan, ctrl, val]);\r\n }\r\n midiProgramChange(chan, prognum) {\r\n postCall(this._messaging, 'midiProgramChange', [chan, prognum]);\r\n }\r\n midiChannelPressure(chan, val) {\r\n postCall(this._messaging, 'midiChannelPressure', [chan, val]);\r\n }\r\n midiPitchBend(chan, val) {\r\n postCall(this._messaging, 'midiPitchBend', [chan, val]);\r\n }\r\n midiSysEx(data) {\r\n postCall(this._messaging, 'midiSysEx', [data]);\r\n }\r\n midiPitchWheelSensitivity(chan, val) {\r\n postCall(this._messaging, 'midiPitchWheelSensitivity', [chan, val]);\r\n }\r\n midiBankSelect(chan, bank) {\r\n postCall(this._messaging, 'midiBankSelect', [chan, bank]);\r\n }\r\n midiSFontSelect(chan, sfontId) {\r\n postCall(this._messaging, 'midiSFontSelect', [chan, sfontId]);\r\n }\r\n midiProgramSelect(chan, sfontId, bank, presetNum) {\r\n postCall(this._messaging, 'midiProgramSelect', [chan, sfontId, bank, presetNum]);\r\n }\r\n midiUnsetProgram(chan) {\r\n postCall(this._messaging, 'midiUnsetProgram', [chan]);\r\n }\r\n midiProgramReset() {\r\n postCall(this._messaging, 'midiProgramReset', []);\r\n }\r\n midiSystemReset() {\r\n postCall(this._messaging, 'midiSystemReset', []);\r\n }\r\n midiAllNotesOff(chan) {\r\n postCall(this._messaging, 'midiAllNotesOff', [chan]);\r\n }\r\n midiAllSoundsOff(chan) {\r\n postCall(this._messaging, 'midiAllSoundsOff', [chan]);\r\n }\r\n midiSetChannelType(chan, isDrum) {\r\n postCall(this._messaging, 'midiSetChannelType', [chan, isDrum]);\r\n }\r\n resetPlayer() {\r\n return postCallWithPromise(this._messaging, 'resetPlayer', []);\r\n }\r\n isPlayerPlaying() {\r\n return this._status.playerPlaying;\r\n }\r\n addSMFDataToPlayer(bin) {\r\n return postCallWithPromise(this._messaging, 'addSMFDataToPlayer', [bin]);\r\n }\r\n playPlayer() {\r\n return postCallWithPromise(this._messaging, 'playPlayer', []);\r\n }\r\n stopPlayer() {\r\n postCall(this._messaging, 'stopPlayer', []);\r\n }\r\n retrievePlayerCurrentTick() {\r\n return postCallWithPromise(this._messaging, 'retrievePlayerCurrentTick', []);\r\n }\r\n retrievePlayerTotalTicks() {\r\n return postCallWithPromise(this._messaging, 'retrievePlayerTotalTicks', []);\r\n }\r\n retrievePlayerBpm() {\r\n return postCallWithPromise(this._messaging, 'retrievePlayerBpm', []);\r\n }\r\n retrievePlayerMIDITempo() {\r\n return postCallWithPromise(this._messaging, 'retrievePlayerMIDITempo', []);\r\n }\r\n seekPlayer(ticks) {\r\n postCall(this._messaging, 'seekPlayer', [ticks]);\r\n }\r\n waitForPlayerStopped() {\r\n return postCallWithPromise(this._messaging, 'waitForPlayerStopped', []);\r\n }\r\n /**\r\n * Creates a sequencer instance associated with this worklet node.\r\n */\r\n createSequencer() {\r\n const channel = new MessageChannel();\r\n return postCallWithPromise(this._messaging, 'createSequencer', [channel.port2]).then(() => {\r\n return new WorkletSequencer_WorkletSequencer(channel.port1);\r\n });\r\n }\r\n /**\r\n * Hooks MIDI events sent by the player. The hook callback function defined on\r\n * AudioWorkletGlobalScope object available in the worklet is used.\r\n * @param callbackName hook callback function name available as 'AudioWorkletGlobalScope[callbackName]',\r\n * or falsy value ('', null, or undefined) to unhook.\r\n * The type of 'AudioWorkletGlobalScope[callbackName]' must be HookMIDIEventCallback.\r\n * @param param any additional data passed to the callback.\r\n * This data must be 'Transferable' data.\r\n * @return Promise object that resolves when succeeded, or rejects when failed\r\n */\r\n hookPlayerMIDIEventsByName(callbackName, param) {\r\n return postCallWithPromise(this._messaging, 'hookPlayerMIDIEventsByName', [callbackName, param]);\r\n }\r\n /**\r\n * Registers the user-defined client to the sequencer.\r\n * The client callback function defined on AudioWorkletGlobalScope\r\n * object available in the worklet is used.\r\n * The client can receive events in the time from sequencer process.\r\n * @param seq the sequencer instance created by AudioWorkletNodeSynthesizer.createSequencer\r\n * @param clientName the client name\r\n * @param callbackName callback function name available as 'AudioWorkletGlobalScope[callbackName]',\r\n * or falsy value ('', null, or undefined) to unhook.\r\n * The type of 'AudioWorkletGlobalScope[callbackName]' must be SequencerClientCallback.\r\n * @param param additional parameter passed to the callback\r\n * @return Promise object that resolves with registered client id when succeeded, or rejects when failed\r\n */\r\n registerSequencerClientByName(seq, clientName, callbackName, param) {\r\n if (!(seq instanceof WorkletSequencer_WorkletSequencer)) {\r\n return Promise.reject(new TypeError('Invalid sequencer object'));\r\n }\r\n return seq.registerSequencerClientByName(clientName, callbackName, param);\r\n }\r\n /**\r\n * Call a function defined in the AudioWorklet.\r\n *\r\n * The function will receive two parameters; the first parameter is a Synthesizer instance\r\n * (not AudioWorkletNodeSynthesizer instance), and the second is the data passed to 'param'.\r\n * This method is useful when the script loaded in AudioWorklet wants to\r\n * retrieve Synthesizer instance.\r\n *\r\n * @param name a function name (must be retrieved from AudioWorkletGlobalScope[name])\r\n * @param param any parameter (must be Transferable)\r\n * @return Promise object that resolves when the function process has done, or rejects when failed\r\n */\r\n callFunction(name, param) {\r\n return postCallWithPromise(this._messaging, 'callFunction', [name, param]);\r\n }\r\n /** @internal */\r\n _getRawSynthesizer() {\r\n return postCallWithPromise(this._messaging, 'getRawSynthesizer', []);\r\n }\r\n}\r\n\n// CONCATENATED MODULE: ./src/main/index.ts\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=js-synthesizer.js.map","function getSynth() {\n const _synth = new JSSynth.Synthesizer();\n _synth.init(_sampleRate);\n return _synth;\n}\n\nconst State = {\n stopped: 0,\n playing: 1,\n stopping: 2\n}\n\nconst session = {\n state: State.stopped\n}\n\nfunction render(sessionId, soundFontBff, midiBuffer, audioBufferLength, inBlockSize, gain) {\n session.state = State.playing;\n session.sesisonId = sessionId;\n const synth = getSynth();\n if (!!gain) {\n synth.setGain(gain);\n }\n synth.loadSFont(soundFontBff).then(() => {\n synth.addSMFDataToPlayer(midiBuffer).then(() => {\n synth.playPlayer().then(()=> {\n let samplesLeft = audioBufferLength;\n function renderBlock() {\n if (samplesLeft <= 0 || session.state !== State.playing) {\n session.state = State.stopped;\n self.postMessage({sessionId, done: true});\n synth.close();\n return;\n }\n const blockSize = Math.min(inBlockSize, samplesLeft);\n const audioBuffer = [\n new Float32Array(blockSize),\n new Float32Array(blockSize)\n ];\n synth.render(audioBuffer);\n const bffL = audioBuffer[0].buffer;\n const bffR = audioBuffer[1].buffer;\n const samplePos = audioBufferLength - samplesLeft;\n const lastBlock = (samplesLeft - blockSize) <= 0;\n self.postMessage({bffL, bffR, blockSize, samplePos, lastBlock, sessionId}, [bffL, bffR]);\n samplesLeft -= blockSize;\n setTimeout(renderBlock, 100); // aka. sleep\n }\n renderBlock(); \n });\n });\n });\n}\n\nself.onmessage = function (msg) {\n if(msg.data.stop && session.state === State.playing) {\n session.state = State.stopping;\n return;\n }\n if (session.state !== State.stopped) {\n return;\n }\n const {soundFont, midiBuffer, audioBufferLength, blockSize, sampleRate, sessionId, gain} = msg.data;\n _sampleRate = sampleRate;\n render(sessionId, soundFont, midiBuffer, audioBufferLength, blockSize, gain);\n}\n\n"].join("\n")],{type:"application/javascript"})),h=new Worker(URL.createObjectURL(C)),Q="https://raw.githubusercontent.com/werckme/soundfont-server/v1.2/soundfonts/FluidR3_GM_EX/FluidR3_GM_EX.sf2.json",p=10;!function(A){A[A.Stopped=0]="Stopped",A[A.Preparing=1]="Preparing",A[A.Playing=2]="Playing",A[A.Stopping=3]="Stopping"}(g=t.PlayerState||(t.PlayerState={}));var m,y={bank:0,preset:0};window.__wmmididownloadlastsoundfont=function(){if(m){var A=m,e=window.URL.createObjectURL(A.data),t=document.createElement("a");t.href=e,t.download=A.sfName+".sf2",document.body.appendChild(t),t.click(),t.remove()}else console.warn("wm midi no last soundfont")};var w=function(){function A(){(function(A,e){if(!(A instanceof e))throw new TypeError("Cannot call a class as a function")})(this,A),this._playerState=g.Stopped,this.playedTime=0,this.onPlayerStateChanged=function(){},this.onMidiEvent=function(){},this.sfComposer=new c.SfCompose,this._sfRepository=null,this.repoUrl=Q,this.audioNodes=new Map,this.rendererBufferSeconds=p,this.gain=1.25,this.currentTaskVisitor=void 0,this.instanceId=++A.instaces}return r(A,[{key:"ppq",get:function(){return this.midifile.header.getTicksPerBeat()}},{key:"getSfRepository",value:function(){return s(this,void 0,void 0,regeneratorRuntime.mark(function A(){return regeneratorRuntime.wrap(function(A){for(;;)switch(A.prev=A.next){case 0:if(this._sfRepository){A.next=4;break}return this._sfRepository=new d.SfRepository,A.next=4,this._sfRepository.setRepo(this.repoUrl);case 4:return A.abrupt("return",this._sfRepository);case 5:case"end":return A.stop()}},A,this)}))}},{key:"playerState",get:function(){return this._playerState},set:function(A){var e=this._playerState;this._playerState=A,A!==e&&this.onPlayerStateChanged(e,A)}},{key:"initAudioEnvironment",value:function(A){return s(this,void 0,void 0,regeneratorRuntime.mark(function A(){return regeneratorRuntime.wrap(function(A){for(;;)switch(A.prev=A.next){case 0:if(this.audioContext){A.next=4;break}return this.audioContext=new AudioContext({sampleRate:44100}),A.next=4,this.audioContext.resume();case 4:case"end":return A.stop()}},A,this)}))}},{key:"convertEvent",value:function(A){var e;if(A.type===l.EVENT_MIDI)switch(A.subtype){case l.EVENT_MIDI_PROGRAM_CHANGE:return e=A,{type:u.MidiEventTypes.Pc,channel:e.channel,track:e.track,param1:e.param1,absPositionTicks:e.absPositionTicks,playTime:e.playTime};case l.EVENT_MIDI_CONTROLLER:return function(A){return{type:u.MidiEventTypes.Cc,channel:A.channel,track:A.track,param1:A.param1,param2:A.param2,absPositionTicks:A.absPositionTicks,playTime:A.playTime}}(A);case l.EVENT_MIDI_NOTE_ON:return function(A){return{type:u.MidiEventTypes.NoteOn,noteName:E.Constants.NOTES[A.param1],channel:A.channel,track:A.track,param1:A.param1,param2:A.param2,absPositionTicks:A.absPositionTicks,playTime:A.playTime}}(A);case l.EVENT_MIDI_NOTE_OFF:return function(A){return{type:u.MidiEventTypes.NoteOff,noteName:E.Constants.NOTES[A.param1],channel:A.channel,track:A.track,param1:A.param1,param2:A.param2,absPositionTicks:A.absPositionTicks,playTime:A.playTime}}(A);case l.EVENT_MIDI_PITCH_BEND:return function(A){return{type:u.MidiEventTypes.PitchBend,channel:A.channel,track:A.track,param1:A.param1,param2:A.param2,absPositionTicks:A.absPositionTicks,pitchbendValue:128*A.param2+A.param1,playTime:A.playTime}}(A)}return null}},{key:"preprocessEvents",value:function(A){return s(this,void 0,void 0,regeneratorRuntime.mark(function e(){var t,n,r=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=[],n=function(A){var e=A.track||0,n=t[e]||0,i=r.midifile.getTrackEvents(e).find(function(e){return e.index===A.index}).delta||0;return A.absPositionTicks=n+i,t[e]=A.absPositionTicks,A},this.neededInstruments=I.chain(A).filter(function(A){return A.type===l.EVENT_MIDI&&A.subtype===l.EVENT_MIDI_PROGRAM_CHANGE}).map(function(A){var e=0;return 9===A.channel&&(e=128),{bank:e,preset:A.param1}}).filter(function(A){return!!A}).uniqBy(function(A){return"".concat(A.bank,"-").concat(A.preset)}).value(),0===this.neededInstruments.length&&this.neededInstruments.push(y),this.events=I.chain(A).map(function(A){return r.convertEvent(n(A))}).filter(function(A){return!!A}).value();case 5:case"end":return e.stop()}},e,this)}))}},{key:"instrumentHash",value:function(A){return"".concat(A.bank,"-").concat(A.preset)}},{key:"instrumentsHash",value:function(A){var e=this;return A.map(function(A){return e.instrumentHash(A)}).sort().join(",")}},{key:"getSoundfont",value:function(A){return s(this,void 0,void 0,regeneratorRuntime.mark(function e(){var t,n,r,i,o,a,s,g=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getSfRepository();case 2:return t=e.sent,e.next=5,t.getSkeleton();case 5:return n=e.sent,e.next=8,this.sfComposer.getRequiredSampleIds(n,A);case 8:return r=e.sent,i=function(A,e){},this.currentTaskVisitor&&(o=r.map(function(A){return{name:"fetching sample ".concat(A),id:"fetching-".concat(A)}}),this.currentTaskVisitor.newTasks(o),i=function(A,e){var t=I.find(o,function(e){return e.id==="fetching-".concat(A)});t&&g.currentTaskVisitor.done(t)}),e.next=13,t.getSampleFiles(r,i);case 13:return a=e.sent,e.next=16,this.sfComposer.writeSamples(a);case 16:return e.next=18,this.sfComposer.compose(n.sfName,A);case 18:return s=e.sent,e.abrupt("return",s);case 20:case"end":return e.stop()}},e,this)}))}},{key:"load",value:function(A){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return s(this,void 0,void 0,regeneratorRuntime.mark(function t(){var n;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return this.currentTaskVisitor=e,this.midiBuffer=B.Base64Binary.decodeArrayBuffer(A),this.midifile=new f(this.midiBuffer),t.next=5,this.preprocessEvents(this.midifile.getEvents());case 5:if((n=this.instrumentsHash(this.neededInstruments))!==this.soundFontHash){t.next=8;break}return t.abrupt("return");case 8:return t.next=10,this.getSoundfont(this.neededInstruments);case 10:this.soundFont=t.sent,m=this.soundFont,this.soundFontHash=n;case 13:case"end":return t.stop()}},t,this)}))}},{key:"sleepAsync",value:function(A){return new Promise(function(e){return setTimeout(e,A)})}},{key:"play",value:function(){return s(this,void 0,void 0,regeneratorRuntime.mark(function A(){var e=this;return regeneratorRuntime.wrap(function(A){for(;;)switch(A.prev=A.next){case 0:if(this.midifile&&!(this.playerState>g.Stopped)){A.next=2;break}return A.abrupt("return");case 2:this.playedTime=0,this.playerState=g.Preparing,this.audioContext.sampleRate,this.startPlayback().then(function(){e.playerState=g.Stopped});case 6:case"end":return A.stop()}},A,this)}))}},{key:"stop",value:function(){if(this.midifile&&this.playerState!==g.Stopped&&this.playerState!==g.Stopping){console.log("A"),this.playerState=g.Stopping;for(var A=0,e=Array.from(this.audioNodes.keys());A<e.length;A++){var t=e[A];this.audioNodes.get(t).stop(),this.audioNodes.delete(t)}}}},{key:"postWebworker",value:function(A){A.sessionId=this.instanceId,h.postMessage(A)}},{key:"startPlayback",value:function(){return s(this,void 0,void 0,regeneratorRuntime.mark(function A(){var e,t,n=this;return regeneratorRuntime.wrap(function(A){for(;;)switch(A.prev=A.next){case 0:return e=null,t=new Promise(function(A){e=A}),A.abrupt("return",new Promise(function(A){return s(n,void 0,void 0,regeneratorRuntime.mark(function n(){var r,i,o,a,u,f,l,B,E=this;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this.soundFont.data.arrayBuffer();case 2:r=n.sent,i=I.last(this.events).playTime/1e3+1.5,o=void 0,a=this.audioContext.sampleRate,u=0,this.audioNodes=new Map,f=function(e,n){var r=new AudioBufferSourceNode(E.audioContext,{buffer:e});E.audioNodes.set(u++,r),r.connect(E.audioContext.destination),n&&(r.onended=function(){return s(E,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t;case 2:A();case 3:case"end":return e.stop()}},e)}))}),r.start()},l=function(){return s(E,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.postWebworker({stop:!0}),e.next=3,t;case 3:A();case 4:case"end":return e.stop()}},e,this)}))},B=function A(t){if(void 0===t.data.sessionId&&console.error("session id expected"),t.data.sessionId===E.instanceId){if(t.data.done)return h.removeEventListener("message",A),void e();if(void 0===o&&(E.playerState=g.Playing,o=E.audioContext.currentTime,E.startEventNotification()),E.playerState!==g.Stopping){if(E.playerState===g.Playing){t.data.bffL,t.data.bffR;var n=t.data.samplePos,r=E.audioContext.currentTime-o,i=E.audioContext.sampleRate*r,s=Math.floor(n-i),I=new AudioBuffer({length:t.data.blockSize+s,sampleRate:a,numberOfChannels:2});I.copyToChannel(new Float32Array(t.data.bffL),0,s),I.copyToChannel(new Float32Array(t.data.bffR),1,s),f(I,t.data.lastBlock)}}else l()}},h.addEventListener("message",B),this.postWebworker({soundFont:r,midiBuffer:this.midiBuffer,audioBufferLength:i*a,blockSize:a*this.rendererBufferSeconds,sampleRate:this.audioContext.sampleRate,sessionId:this.instanceId,gain:this.gain});case 13:case"end":return n.stop()}},n,this)}))}));case 3:case"end":return A.stop()}},A)}))}},{key:"setRepoUrl",value:function(A){this.repoUrl=A,this._sfRepository=null}},{key:"startEventNotification",value:function(){var A=this,e=0,t=performance.now(),n=setInterval(function(){var r=performance.now()-t;for(A.playedTime=r/1e3,A.playerState!==g.Playing&&clearInterval(n);;){var i=A.events[e];if(i.playTime>r)break;if(A.onMidiEvent(i),++e>=A.events.length){clearInterval(n);break}}},10)}}]),A}();t.WerckmeisterMidiPlayer=w,w.instaces=0},{lodash:"B1iE","./IMidiEvent":"wXAf",midifile:"8Nlt",midievents:"+m+m","./Base64binary":"n6dH","./Constants":"Xnuv","./SfCompose":"LNaI","./SfRepository":"Gu12",fs:"f88W"}]},{},["VUkl"]);
@@ -498,7 +498,7 @@ var A;parcelRequire=function(e,t,n,r){var i,o="function"==typeof parcelRequire&&
498
498
  },{}],"FYcy":[function(require,module,exports) {
499
499
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PlayerState=void 0;var e,t=require("@werckmeister/midiplayer");!function(e){e[e.Stopped=t.PlayerState.Stopped]="Stopped",e[e.Preparing=t.PlayerState.Preparing]="Preparing",e[e.Playing=t.PlayerState.Playing]="Playing",e[e.Stopping=t.PlayerState.Stopping]="Stopping"}(e=exports.PlayerState||(exports.PlayerState={}));
500
500
  },{"@werckmeister/midiplayer":"X3ym"}],"WYYH":[function(require,module,exports) {
501
- "use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function n(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(a,i){function o(e){try{s(r.next(e))}catch(t){i(t)}}function l(e){try{s(r.throw(e))}catch(t){i(t)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,l)}s((r=r.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Player=void 0;var a=require("@werckmeister/midiplayer"),i=require("../shared/midiEvent"),o=require("../shared/player"),l=function(){function t(){e(this,t),this.tempo=120,this.onMidiEvent=null,this.onPlayerStateChangedCallback=null,this.state=o.PlayerState.Stopped,this.repoUrl=null}return n(t,[{key:"getPlayer",value:function(e){return this._player||(this._player=new a.WerckmeisterMidiPlayer,this._player.initAudioEnvironment(e),this._player.onMidiEvent=this.onEvent.bind(this),this._player.onPlayerStateChanged=this._onPlayerStateChanged.bind(this),this.repoUrl&&this._player.setRepoUrl(this.repoUrl)),this._player}},{key:"_onPlayerStateChanged",value:function(e,t){t===a.PlayerState.Stopped&&this.onStop()}},{key:"onEvent",value:function(e){var t=e.absPositionTicks,n=new i.MidiEvent;n.eventType=e.type,n.parameter1=e.param1,n.parameter2=e.param2,n.channel=e.channel,this.onMidiEvent&&this.onMidiEvent({position:t/this._player.ppq,midiEvent:n})}},{key:"loadFile",value:function(e,t){return r(this,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.load(e,this.playerTaskVisitor);case 2:case"end":return n.stop()}},n,this)}))}},{key:"play",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return r(this,void 0,void 0,regeneratorRuntime.mark(function r(){var i;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,this.getPlayer(t);case 2:return i=r.sent,r.prev=3,r.next=6,this.loadFile(e,i);case 6:r.next=12;break;case 8:r.prev=8,r.t0=r.catch(3),this._currentMidifile=null,console.error(r.t0);case 12:return this.onPlayerStateChangedCallback&&this.onStop(),this.onMidiEvent=n,this.onPlayerStateChangedCallback=a,this.onPlay(),r.next=18,i.play();case 18:case"end":return r.stop()}},r,this,[[3,8]])}))}},{key:"onStop",value:function(){this.onPlayerStateChangedCallback&&this.onPlayerStateChangedCallback(this.state,o.PlayerState.Stopped),this.state=o.PlayerState.Stopped,this.onMidiEvent=null,this.onPlayerStateChangedCallback=null}},{key:"onPlay",value:function(){this.onPlayerStateChangedCallback(this.state,o.PlayerState.Playing),this.state=o.PlayerState.Playing}},{key:"setSoundfontRepoUrl",value:function(e){this._player&&this._player.setRepoUrl(e),this.repoUrl=e}},{key:"stop",value:function(){return r(this,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.state!==o.PlayerState.Stopped){e.next=2;break}return e.abrupt("return");case 2:return this.onStop(),e.next=5,this.getPlayer(null);case 5:e.sent.stop();case 7:case"end":return e.stop()}},e,this)}))}}]),t}();exports.Player=l;
501
+ "use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function n(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(a,i){function o(e){try{l(r.next(e))}catch(t){i(t)}}function s(e){try{l(r.throw(e))}catch(t){i(t)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Player=void 0;var a=require("@werckmeister/midiplayer"),i=require("../shared/midiEvent"),o=require("../shared/player"),s=function(){function t(){e(this,t),this.tempo=120,this.onMidiEvent=null,this.onPlayerStateChangedCallback=null,this.state=o.PlayerState.Stopped,this.repoUrl=null}return n(t,[{key:"getPlayer",value:function(e){return r(this,void 0,void 0,regeneratorRuntime.mark(function t(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(this._player){t.next=7;break}return this._player=new a.WerckmeisterMidiPlayer,t.next=4,this._player.initAudioEnvironment(e);case 4:this._player.onMidiEvent=this.onEvent.bind(this),this._player.onPlayerStateChanged=this._onPlayerStateChanged.bind(this),this.repoUrl&&this._player.setRepoUrl(this.repoUrl);case 7:return t.abrupt("return",this._player);case 8:case"end":return t.stop()}},t,this)}))}},{key:"prepare",value:function(e){return r(this,void 0,void 0,regeneratorRuntime.mark(function t(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getPlayer(e);case 2:case"end":return t.stop()}},t,this)}))}},{key:"_onPlayerStateChanged",value:function(e,t){t===a.PlayerState.Stopped&&this.onStop()}},{key:"onEvent",value:function(e){var t=e.absPositionTicks,n=new i.MidiEvent;n.eventType=e.type,n.parameter1=e.param1,n.parameter2=e.param2,n.channel=e.channel,this.onMidiEvent&&this.onMidiEvent({position:t/this._player.ppq,midiEvent:n})}},{key:"loadFile",value:function(e,t){return r(this,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.load(e,this.playerTaskVisitor);case 2:case"end":return n.stop()}},n,this)}))}},{key:"play",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return r(this,void 0,void 0,regeneratorRuntime.mark(function r(){var i;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,this.getPlayer(t);case 2:return i=r.sent,r.prev=3,r.next=6,this.loadFile(e,i);case 6:r.next=12;break;case 8:r.prev=8,r.t0=r.catch(3),this._currentMidifile=null,console.error(r.t0);case 12:return this.onPlayerStateChangedCallback&&this.onStop(),this.onMidiEvent=n,this.onPlayerStateChangedCallback=a,this.onPlay(),r.next=18,i.play();case 18:case"end":return r.stop()}},r,this,[[3,8]])}))}},{key:"onStop",value:function(){this.onPlayerStateChangedCallback&&this.onPlayerStateChangedCallback(this.state,o.PlayerState.Stopped),this.state=o.PlayerState.Stopped,this.onMidiEvent=null,this.onPlayerStateChangedCallback=null}},{key:"onPlay",value:function(){this.onPlayerStateChangedCallback(this.state,o.PlayerState.Playing),this.state=o.PlayerState.Playing}},{key:"setSoundfontRepoUrl",value:function(e){this._player&&this._player.setRepoUrl(e),this.repoUrl=e}},{key:"stop",value:function(){return r(this,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.state!==o.PlayerState.Stopped){e.next=2;break}return e.abrupt("return");case 2:return this.onStop(),e.next=5,this.getPlayer(null);case 5:e.sent.stop();case 7:case"end":return e.stop()}},e,this)}))}}]),t}();exports.Player=s;
502
502
  },{"@werckmeister/midiplayer":"X3ym","../shared/midiEvent":"vkzS","../shared/player":"FYcy"}],"ooUX":[function(require,module,exports) {
503
503
  "use strict";var e=this&&this.__awaiter||function(e,r,t,n){return new(t||(t=Promise))(function(o,i){function s(e){try{p(n.next(e))}catch(r){i(r)}}function a(e){try{p(n.throw(e))}catch(r){i(r)}}function p(e){var r;e.done?o(e.value):(r=e.value,r instanceof t?r:new t(function(e){e(r)})).then(s,a)}p((n=n.apply(e,r||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.resetCompiler=exports.WM_Player=exports.WM_Compiler=void 0;var r=require("./compiler/Compiler"),t=require("./player/Player");function n(){return e(this,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:exports.WM_Compiler=new r.WerckmeisterCompiler;case 1:case"end":return e.stop()}},e)}))}exports.WM_Compiler=new r.WerckmeisterCompiler,exports.WM_Player=new t.Player,exports.resetCompiler=n;
504
504
  },{"./compiler/Compiler":"RSuL","./player/Player":"WYYH"}],"bSo5":[function(require,module,exports) {
@@ -506,9 +506,9 @@ var A;parcelRequire=function(e,t,n,r){var i,o="function"==typeof parcelRequire&&
506
506
  },{"../../editor/Editor":"BzA4","@werckmeister/language-features":"LghJ","../../shared/http":"vSbS","../../Global":"ooUX","lodash":"B1iE","fs":"rDCW"}],"F8Qk":[function(require,module,exports) {
507
507
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.snippetTemplate=exports.singleSnippetTemplate=void 0;var e="\ntempo: $tempo;\ndevice: MyDevice midi 1;\n$defLines\n[\ninstrument: ex1;\n{\n$code\n}\n]",n="\n$defLines\n$code";exports.singleSnippetTemplate=function(n,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;i=i||"instrumentDef:ex1 MyDevice 0 0 0;";var r=e.replace("$tempo",t.toString()).replace("$defLines",i),p=r.indexOf("$code");return{script:r=r.replace("$code",n),charOffset:p}},exports.snippetTemplate=function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;i=i||"instrumentDef:ex1 MyDevice 0 0 0;";var r=n.replace("$tempo",t.toString()).replace("$defLines",i),p=r.indexOf("$code");return{script:r=r.replace("$code",e),charOffset:p}};
508
508
  },{}],"Ii2z":[function(require,module,exports) {
509
- "use strict";function e(n){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(n)}function n(e){return o(e)||t(e)||a(e)||r()}function r(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function t(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}function o(e){if(Array.isArray(e))return s(e)}function i(e,n){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=a(e))||n&&e&&"number"==typeof e.length){r&&(e=r);var t=0,o=function(){};return{s:o,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,c=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){c=!0,i=e},f:function(){try{s||null==r.return||r.return()}finally{if(c)throw i}}}}function a(e,n){if(e){if("string"==typeof e)return s(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,n):void 0}}function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var r=0,t=new Array(n);r<n;r++)t[r]=e[r];return t}function c(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function l(e,n){for(var r=0;r<n.length;r++){var t=n[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}function d(e,n,r){return n&&l(e.prototype,n),r&&l(e,r),e}function u(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&y(e,n)}function p(e){var n=b();return function(){var r,t=w(e);if(n){var o=w(this).constructor;r=Reflect.construct(t,arguments,o)}else r=t.apply(this,arguments);return m(this,r)}}function m(n,r){return!r||"object"!==e(r)&&"function"!=typeof r?f(n):r}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e){var n="function"==typeof Map?new Map:void 0;return(h=function(e){if(null===e||!v(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,r)}function r(){return g(e,arguments,w(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),y(r,e)})(e)}function g(e,n,r){return(g=b()?Reflect.construct:function(e,n,r){var t=[null];t.push.apply(t,n);var o=new(Function.bind.apply(e,t));return r&&y(o,r.prototype),o}).apply(null,arguments)}function b(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}function v(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function y(e,n){return(y=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e})(e,n)}function w(e){return(w=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var k=this&&this.__awaiter||function(e,n,r,t){return new(r||(r=Promise))(function(o,i){function a(e){try{c(t.next(e))}catch(n){i(n)}}function s(e){try{c(t.throw(e))}catch(n){i(n)}}function c(e){var n;e.done?o(e.value):(n=e.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}c((t=t.apply(e,n||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Snippet=void 0;var M=require("../../editor/Editor"),C=require("../../Global"),x=require("../../shared/midiEvent"),S=require("../../shared/player"),E=require("./templates"),z=require("../../shared/http"),R=require("lodash"),P="dracula",I="main.sheet",T=require("fs"),A="/* BASICS */\n\n.CodeMirror {\n /* Set height, width, borders, and global font properties here */\n font-family: monospace;\n height: 300px;\n color: black;\n direction: ltr;\n}\n\n/* PADDING */\n\n.CodeMirror-lines {\n padding: 4px 0; /* Vertical padding around content */\n}\n.CodeMirror pre.CodeMirror-line,\n.CodeMirror pre.CodeMirror-line-like {\n padding: 0 4px; /* Horizontal padding of content */\n}\n\n.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n background-color: white; /* The little square between H and V scrollbars */\n}\n\n/* GUTTER */\n\n.CodeMirror-gutters {\n border-right: 1px solid #ddd;\n background-color: #f7f7f7;\n white-space: nowrap;\n}\n.CodeMirror-linenumbers {}\n.CodeMirror-linenumber {\n padding: 0 3px 0 5px;\n min-width: 20px;\n text-align: right;\n color: #999;\n white-space: nowrap;\n}\n\n.CodeMirror-guttermarker { color: black; }\n.CodeMirror-guttermarker-subtle { color: #999; }\n\n/* CURSOR */\n\n.CodeMirror-cursor {\n border-left: 1px solid black;\n border-right: none;\n width: 0;\n}\n/* Shown when moving in bi-directional text */\n.CodeMirror div.CodeMirror-secondarycursor {\n border-left: 1px solid silver;\n}\n.cm-fat-cursor .CodeMirror-cursor {\n width: auto;\n border: 0 !important;\n background: #7e7;\n}\n.cm-fat-cursor div.CodeMirror-cursors {\n z-index: 1;\n}\n.cm-fat-cursor-mark {\n background-color: rgba(20, 255, 20, 0.5);\n -webkit-animation: blink 1.06s steps(1) infinite;\n -moz-animation: blink 1.06s steps(1) infinite;\n animation: blink 1.06s steps(1) infinite;\n}\n.cm-animate-fat-cursor {\n width: auto;\n border: 0;\n -webkit-animation: blink 1.06s steps(1) infinite;\n -moz-animation: blink 1.06s steps(1) infinite;\n animation: blink 1.06s steps(1) infinite;\n background-color: #7e7;\n}\n@-moz-keyframes blink {\n 0% {}\n 50% { background-color: transparent; }\n 100% {}\n}\n@-webkit-keyframes blink {\n 0% {}\n 50% { background-color: transparent; }\n 100% {}\n}\n@keyframes blink {\n 0% {}\n 50% { background-color: transparent; }\n 100% {}\n}\n\n/* Can style cursor different in overwrite (non-insert) mode */\n.CodeMirror-overwrite .CodeMirror-cursor {}\n\n.cm-tab { display: inline-block; text-decoration: inherit; }\n\n.CodeMirror-rulers {\n position: absolute;\n left: 0; right: 0; top: -50px; bottom: 0;\n overflow: hidden;\n}\n.CodeMirror-ruler {\n border-left: 1px solid #ccc;\n top: 0; bottom: 0;\n position: absolute;\n}\n\n/* DEFAULT THEME */\n\n.cm-s-default .cm-header {color: blue;}\n.cm-s-default .cm-quote {color: #090;}\n.cm-negative {color: #d44;}\n.cm-positive {color: #292;}\n.cm-header, .cm-strong {font-weight: bold;}\n.cm-em {font-style: italic;}\n.cm-link {text-decoration: underline;}\n.cm-strikethrough {text-decoration: line-through;}\n\n.cm-s-default .cm-keyword {color: #708;}\n.cm-s-default .cm-atom {color: #219;}\n.cm-s-default .cm-number {color: #164;}\n.cm-s-default .cm-def {color: #00f;}\n.cm-s-default .cm-variable,\n.cm-s-default .cm-punctuation,\n.cm-s-default .cm-property,\n.cm-s-default .cm-operator {}\n.cm-s-default .cm-variable-2 {color: #05a;}\n.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}\n.cm-s-default .cm-comment {color: #a50;}\n.cm-s-default .cm-string {color: #a11;}\n.cm-s-default .cm-string-2 {color: #f50;}\n.cm-s-default .cm-meta {color: #555;}\n.cm-s-default .cm-qualifier {color: #555;}\n.cm-s-default .cm-builtin {color: #30a;}\n.cm-s-default .cm-bracket {color: #997;}\n.cm-s-default .cm-tag {color: #170;}\n.cm-s-default .cm-attribute {color: #00c;}\n.cm-s-default .cm-hr {color: #999;}\n.cm-s-default .cm-link {color: #00c;}\n\n.cm-s-default .cm-error {color: #f00;}\n.cm-invalidchar {color: #f00;}\n\n.CodeMirror-composing { border-bottom: 2px solid; }\n\n/* Default styles for common addons */\n\ndiv.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}\ndiv.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}\n.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }\n.CodeMirror-activeline-background {background: #e8f2ff;}\n\n/* STOP */\n\n/* The rest of this file contains styles related to the mechanics of\n the editor. You probably shouldn't touch them. */\n\n.CodeMirror {\n position: relative;\n overflow: hidden;\n background: white;\n}\n\n.CodeMirror-scroll {\n overflow: scroll !important; /* Things will break if this is overridden */\n /* 50px is the magic margin used to hide the element's real scrollbars */\n /* See overflow: hidden in .CodeMirror */\n margin-bottom: -50px; margin-right: -50px;\n padding-bottom: 50px;\n height: 100%;\n outline: none; /* Prevent dragging from highlighting the element */\n position: relative;\n}\n.CodeMirror-sizer {\n position: relative;\n border-right: 50px solid transparent;\n}\n\n/* The fake, visible scrollbars. Used to force redraw during scrolling\n before actual scrolling happens, thus preventing shaking and\n flickering artifacts. */\n.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n position: absolute;\n z-index: 6;\n display: none;\n}\n.CodeMirror-vscrollbar {\n right: 0; top: 0;\n overflow-x: hidden;\n overflow-y: scroll;\n}\n.CodeMirror-hscrollbar {\n bottom: 0; left: 0;\n overflow-y: hidden;\n overflow-x: scroll;\n}\n.CodeMirror-scrollbar-filler {\n right: 0; bottom: 0;\n}\n.CodeMirror-gutter-filler {\n left: 0; bottom: 0;\n}\n\n.CodeMirror-gutters {\n position: absolute; left: 0; top: 0;\n min-height: 100%;\n z-index: 3;\n}\n.CodeMirror-gutter {\n white-space: normal;\n height: 100%;\n display: inline-block;\n vertical-align: top;\n margin-bottom: -50px;\n}\n.CodeMirror-gutter-wrapper {\n position: absolute;\n z-index: 4;\n background: none !important;\n border: none !important;\n}\n.CodeMirror-gutter-background {\n position: absolute;\n top: 0; bottom: 0;\n z-index: 4;\n}\n.CodeMirror-gutter-elt {\n position: absolute;\n cursor: default;\n z-index: 4;\n}\n.CodeMirror-gutter-wrapper ::selection { background-color: transparent }\n.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }\n\n.CodeMirror-lines {\n cursor: text;\n min-height: 1px; /* prevents collapsing before first draw */\n}\n.CodeMirror pre.CodeMirror-line,\n.CodeMirror pre.CodeMirror-line-like {\n /* Reset some styles that the rest of the page might have set */\n -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;\n border-width: 0;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n white-space: pre;\n word-wrap: normal;\n line-height: inherit;\n color: inherit;\n z-index: 2;\n position: relative;\n overflow: visible;\n -webkit-tap-highlight-color: transparent;\n -webkit-font-variant-ligatures: contextual;\n font-variant-ligatures: contextual;\n}\n.CodeMirror-wrap pre.CodeMirror-line,\n.CodeMirror-wrap pre.CodeMirror-line-like {\n word-wrap: break-word;\n white-space: pre-wrap;\n word-break: normal;\n}\n\n.CodeMirror-linebackground {\n position: absolute;\n left: 0; right: 0; top: 0; bottom: 0;\n z-index: 0;\n}\n\n.CodeMirror-linewidget {\n position: relative;\n z-index: 2;\n padding: 0.1px; /* Force widget margins to stay inside of the container */\n}\n\n.CodeMirror-widget {}\n\n.CodeMirror-rtl pre { direction: rtl; }\n\n.CodeMirror-code {\n outline: none;\n}\n\n/* Force content-box sizing for the elements where we expect it */\n.CodeMirror-scroll,\n.CodeMirror-sizer,\n.CodeMirror-gutter,\n.CodeMirror-gutters,\n.CodeMirror-linenumber {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n}\n\n.CodeMirror-measure {\n position: absolute;\n width: 100%;\n height: 0;\n overflow: hidden;\n visibility: hidden;\n}\n\n.CodeMirror-cursor {\n position: absolute;\n pointer-events: none;\n}\n.CodeMirror-measure pre { position: static; }\n\ndiv.CodeMirror-cursors {\n visibility: hidden;\n position: relative;\n z-index: 3;\n}\ndiv.CodeMirror-dragcursors {\n visibility: visible;\n}\n\n.CodeMirror-focused div.CodeMirror-cursors {\n visibility: visible;\n}\n\n.CodeMirror-selected { background: #d9d9d9; }\n.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }\n.CodeMirror-crosshair { cursor: crosshair; }\n.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }\n.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }\n\n.cm-searching {\n background-color: #ffa;\n background-color: rgba(255, 255, 0, .4);\n}\n\n/* Used to force a border model for a node */\n.cm-force-border { padding-right: .1px; }\n\n@media print {\n /* Hide the cursor when printing */\n .CodeMirror div.CodeMirror-cursors {\n visibility: hidden;\n }\n}\n\n/* See issue #2901 */\n.cm-tab-wrap-hack:after { content: ''; }\n\n/* Help users use markselection to safely style text background */\nspan.CodeMirror-selectedtext { background: none; }\n";A+="/*\n\n Name: dracula\n Author: Michael Kaminsky (http://github.com/mkaminsky11)\n\n Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)\n\n*/\n\n\n.cm-s-dracula.CodeMirror, .cm-s-dracula .CodeMirror-gutters {\n background-color: #282a36 !important;\n color: #f8f8f2 !important;\n border: none;\n}\n.cm-s-dracula .CodeMirror-gutters { color: #282a36; }\n.cm-s-dracula .CodeMirror-cursor { border-left: solid thin #f8f8f0; }\n.cm-s-dracula .CodeMirror-linenumber { color: #6D8A88; }\n.cm-s-dracula .CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }\n.cm-s-dracula .CodeMirror-line::selection, .cm-s-dracula .CodeMirror-line > span::selection, .cm-s-dracula .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }\n.cm-s-dracula .CodeMirror-line::-moz-selection, .cm-s-dracula .CodeMirror-line > span::-moz-selection, .cm-s-dracula .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }\n.cm-s-dracula span.cm-comment { color: #6272a4; }\n.cm-s-dracula span.cm-string, .cm-s-dracula span.cm-string-2 { color: #f1fa8c; }\n.cm-s-dracula span.cm-number { color: #bd93f9; }\n.cm-s-dracula span.cm-variable { color: #50fa7b; }\n.cm-s-dracula span.cm-variable-2 { color: white; }\n.cm-s-dracula span.cm-def { color: #50fa7b; }\n.cm-s-dracula span.cm-operator { color: #ff79c6; }\n.cm-s-dracula span.cm-keyword { color: #ff79c6; }\n.cm-s-dracula span.cm-atom { color: #bd93f9; }\n.cm-s-dracula span.cm-meta { color: #f8f8f2; }\n.cm-s-dracula span.cm-tag { color: #ff79c6; }\n.cm-s-dracula span.cm-attribute { color: #50fa7b; }\n.cm-s-dracula span.cm-qualifier { color: #50fa7b; }\n.cm-s-dracula span.cm-property { color: #66d9ef; }\n.cm-s-dracula span.cm-builtin { color: #50fa7b; }\n.cm-s-dracula span.cm-variable-3, .cm-s-dracula span.cm-type { color: #ffb86c; }\n\n.cm-s-dracula .CodeMirror-activeline-background { background: rgba(255,255,255,0.1); }\n.cm-s-dracula .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n";var O,_='#editor {\n border: 1px solid black;\n width: 100%;\n height: 100%;\n}\n\n.CodeMirror {\n width: 100%;\n height: 100%;\n font-size: 14px;\n}\n\n#messages span {\n margin: 0.5em 0;\n padding: 8px 15px 8px 15px;\n color: black;\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5;\n list-style: none;\n font-feature-settings: \'tnum\';\n display: block;\n position: relative;\n right: -2px;\n}\n\n#messages .error {\n background-color: #fff1f0;\n}\n\n#messages .error::before {\n --size: 20px;\n content: "!";\n margin-right: 1em;\n color: white;\n background: red;\n border-radius: var(--size);\n width: var(--size);\n display: inline-block;\n height: var(--size);\n text-align: center;\n}\n\n#wm-snippet {\n margin-bottom: 1.5em;\n font-family: Helvetica, Arial, sans-serif;\n}\n\n.wm-marked::before {\n content: " ";\n position: absolute;\n border-top: 4px solid #ff0;\n border-left: 4px solid #ff0;\n border-radius: 0;\n height: 8px;\n width: 8px;\n transform: rotate(-135deg);\n margin-top: -11px;\n margin-left: 8px;\n}\n\n\n.wm-error::before {\n content: " ";\n position: absolute;\n border-top: 4px solid red;\n border-left: 4px solid red;\n border-radius: 0;\n height: 8px;\n width: 8px;\n transform: rotate(-135deg);\n margin-top: -11px;\n margin-left: 8px;\n}\n\n#btnPlay, #btnStop {\n cursor: pointer;\n user-select: none;\n}\n\n.wm-state-playing #btnPlay {\n display: none;\n}\n\n.wm-state-stopped #btnStop {\n display: none;\n}\n\n.wm-player-fetching #btnStop\n, .wm-player-fetching #btnPlay\n{\n display: none;\n}\n\n#fetching {\n display: none;\n}\n\n@keyframes spin { 100% { transform:rotate(360deg); } }\n#fetching svg {\n animation:spin 2s linear infinite;\n}\n\n.wm-player-fetching #fetching {\n display: block;\n}\n\n.icon {\n vertical-align: top;\n}\n\n.whomai {\n display: block;\n width: 100%;\n text-align: right;\n font-size: 13px;\n font-style: italic;\n}',N='<div id="wm-snippet">\n <div id="wm-controls">\n <a id="btnPlay">\n <svg class="icon" width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-play-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg">\n <path d="M11.596 8.697l-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z"/>\n </svg>\n Play\n </a>\n <a id="btnStop">\n <svg class="icon" width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-stop-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg">\n <path d="M5 3.5h6A1.5 1.5 0 0 1 12.5 5v6a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 11V5A1.5 1.5 0 0 1 5 3.5z"/>\n </svg>\n Stop\n </a>\n <span id="fetching">\n <svg class="icon" width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-gear" fill="currentColor" xmlns="http://www.w3.org/2000/svg">\n <path fill-rule="evenodd" d="M8.837 1.626c-.246-.835-1.428-.835-1.674 0l-.094.319A1.873 1.873 0 0 1 4.377 3.06l-.292-.16c-.764-.415-1.6.42-1.184 1.185l.159.292a1.873 1.873 0 0 1-1.115 2.692l-.319.094c-.835.246-.835 1.428 0 1.674l.319.094a1.873 1.873 0 0 1 1.115 2.693l-.16.291c-.415.764.42 1.6 1.185 1.184l.292-.159a1.873 1.873 0 0 1 2.692 1.116l.094.318c.246.835 1.428.835 1.674 0l.094-.319a1.873 1.873 0 0 1 2.693-1.115l.291.16c.764.415 1.6-.42 1.184-1.185l-.159-.291a1.873 1.873 0 0 1 1.116-2.693l.318-.094c.835-.246.835-1.428 0-1.674l-.319-.094a1.873 1.873 0 0 1-1.115-2.692l.16-.292c.415-.764-.42-1.6-1.185-1.184l-.291.159A1.873 1.873 0 0 1 8.93 1.945l-.094-.319zm-2.633-.283c.527-1.79 3.065-1.79 3.592 0l.094.319a.873.873 0 0 0 1.255.52l.292-.16c1.64-.892 3.434.901 2.54 2.541l-.159.292a.873.873 0 0 0 .52 1.255l.319.094c1.79.527 1.79 3.065 0 3.592l-.319.094a.873.873 0 0 0-.52 1.255l.16.292c.893 1.64-.902 3.434-2.541 2.54l-.292-.159a.873.873 0 0 0-1.255.52l-.094.319c-.527 1.79-3.065 1.79-3.592 0l-.094-.319a.873.873 0 0 0-1.255-.52l-.292.16c-1.64.893-3.433-.902-2.54-2.541l.159-.292a.873.873 0 0 0-.52-1.255l-.319-.094c-1.79-.527-1.79-3.065 0-3.592l.319-.094a.873.873 0 0 0 .52-1.255l-.16-.292c-.892-1.64.902-3.433 2.541-2.54l.292.159a.873.873 0 0 0 1.255-.52l.094-.319z"/>\n <path fill-rule="evenodd" d="M8 5.754a2.246 2.246 0 1 0 0 4.492 2.246 2.246 0 0 0 0-4.492zM4.754 8a3.246 3.246 0 1 1 6.492 0 3.246 3.246 0 0 1-6.492 0z"/>\n </svg>\n Play\n </span>\n </div>\n <div id="messages">\n\n </div>\n <div id="editor">\n </div>\n <span class="whomai">\n powered by <a href="https://github.com/werckme/werckmeister-component">werckmeister snippet</a>\n </span>\n</div>';!function(e){e[e.single=0]="single",e[e.default=1]="default"}(O||(O={}));var L=0,B=new Map,H=document.createElement("template");H.innerHTML="\n<style>\n ".concat(A,"\n ").concat(_,"\n</style>\n").concat(N,"\n");var j=function(e){u(t,h(HTMLElement));var r=p(t);function t(){var e;return c(this,t),(e=r.call(this)).snippetId=L++,e.bpm=120,e.type=O.default,e.eventMarkers=[],e.playingStateName="wm-state-playing",e.stoppedStateName="wm-state-stopped",e.snippetName="noname.sheet",e.scriptToSnippetCharOffset=0,e.createElement(),e}return d(t,[{key:"playerIsFetching",get:function(){return this._playerIsFetching},set:function(e){this._playerIsFetching=e;var n=this.snippetElement;e?n.classList.add("wm-player-fetching"):n.classList.remove("wm-player-fetching")}},{key:"snippetElement",get:function(){return this.shadowRoot.getElementById("wm-snippet")}},{key:"messagesElement",get:function(){return this.shadowRoot.getElementById("messages")}},{key:"playButtonElement",get:function(){return this.shadowRoot.getElementById("btnPlay")}},{key:"stopButtonElement",get:function(){return this.shadowRoot.getElementById("btnStop")}},{key:"createElement",value:function(){return k(this,void 0,void 0,regeneratorRuntime.mark(function e(){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.attachShadow({mode:"open"}),n=H.content.cloneNode(!0),this.shadowRoot.appendChild(n),setTimeout(this.init.bind(this));case 4:case"end":return e.stop()}},e,this)}))}},{key:"initListener",value:function(){this.playButtonElement.addEventListener("click",this.onPlayClicked.bind(this)),this.stopButtonElement.addEventListener("click",this.onStopClicked.bind(this))}},{key:"onMidiEvent",value:function(e){e.midiEvent.eventType===x.EventType.NoteOn&&this.updateMarkers(e.position)}},{key:"stopAllSippets",value:function(){return k(this,void 0,void 0,regeneratorRuntime.mark(function e(){var n,r,t,o;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n=Array.from(B.values()),r=0,t=n;case 2:if(!(r<t.length)){e.next=9;break}return o=t[r],e.next=6,o.stop();case 6:r++,e.next=2;break;case 9:return e.abrupt("return",new Promise(function(e){setTimeout(e,100)}));case 10:case"end":return e.stop()}},e)}))}},{key:"onPlayerState",value:function(e,n){n===S.PlayerState.Playing&&(B.set(this.snippetId,this),this.setControlsStatePlaying()),n===S.PlayerState.Stopped&&(B.delete(this.snippetId),this.clearEventMarkers(),this.setControlsStateStopped()),this.onPlayerStateChanged&&this.onPlayerStateChanged(e,n)}},{key:"setControlsStateStopped",value:function(){var e=this.snippetElement;e.classList.remove(this.playingStateName),e.classList.add(this.stoppedStateName)}},{key:"setControlsStatePlaying",value:function(){var e=this.snippetElement;e.classList.remove(this.stoppedStateName),e.classList.add(this.playingStateName)}},{key:"clearEventMarkers",value:function(){var e,n=i(this.eventMarkers);try{for(n.s();!(e=n.n()).done;){e.value.clear()}}catch(r){n.e(r)}finally{n.f()}}},{key:"updateMarkers",value:function(e){this.clearEventMarkers();var n=R(this.document.eventInfos).map(function(n){return{diff:Math.abs(e-n.sheetTime),sheetEvents:n.sheetEventInfos}}).minBy(function(e){return e.diff});if(n){var r,t=this.scriptToSnippetCharOffset,o=i(n.sheetEvents);try{for(o.s();!(r=o.n()).done;){var a=r.value;if(a.sourceId===this.snippetDocumentId){var s=this.editor.setEventMarker(a.beginPosition-t,a.beginPosition-t+1);this.eventMarkers.push(s)}}}catch(c){o.e(c)}finally{o.f()}}}},{key:"getPlayerImpl",value:function(){return C.WM_Player}},{key:"getScriptText",value:function(){var e=this.editor.getValue();if(!e.trim())return"";this.scriptToSnippetCharOffset=0;var n=void 0;if(this._defLines&&(n=atob(this._defLines)),this.type===O.single){var r=E.singleSnippetTemplate(e,this.bpm,n);return this.scriptToSnippetCharOffset=r.charOffset,r.script.trim()}if(n){var t=E.snippetTemplate(e,this.bpm,n);return this.scriptToSnippetCharOffset=t.charOffset,t.script.trim()}return e.trim()}},{key:"onPlayClicked",value:function(e){return k(this,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,this.stopAllSippets();case 3:return n.next=5,this.startPlayer(e);case 5:n.next=11;break;case 7:return n.prev=7,n.t0=n.catch(0),n.t0.error?this.onError(n.t0.error):console.log(n.t0),n.abrupt("return");case 11:case"end":return n.stop()}},n,this,[[0,7]])}))}},{key:"getWorkspaceFormUrl",value:function(e){return k(this,void 0,void 0,regeneratorRuntime.mark(function n(){var r,t,o;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,fetch(e);case 2:return r=n.sent,n.next=5,r.json();case 5:return t=n.sent,o=t.files,n.abrupt("return",o);case 8:case"end":return n.stop()}},n)}))}},{key:"getAdditionalSources",value:function(){if(this._addSources)return this._addSources;if(!this._addSourcesBase64String)return[];var e=atob(this._addSourcesBase64String),n=JSON.parse(e);return Array.isArray(n)?n:[]}},{key:"startPlayer",value:function(e){return k(this,void 0,void 0,regeneratorRuntime.mark(function r(){var t,o,i=this;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,C.resetCompiler();case 2:if(this.editor.clearEventMarkers(),this.clearMessages(),t=this.getScriptText()){r.next=7;break}return r.abrupt("return");case 7:return this.snippetDocumentId=null,this.playerIsFetching=!0,r.prev=9,o=[{path:this.snippetName,data:t}].concat(n(this.getAdditionalSources())),r.next=13,C.WM_Compiler.compile(o);case 13:this.document=r.sent,r.next=21;break;case 16:return r.prev=16,r.t0=r.catch(9),r.t0.error?this.onError(r.t0.error):console.log(r.t0),this.playerIsFetching=!1,r.abrupt("return");case 21:return this.snippetDocumentId=R(this.document.midi.sources).find(function(e){return e.path==="/".concat(i.snippetName)}).sourceId,this.snippetDocumentId||console.error("werckmeister compiler could not assign main document"),C.WM_Player.tempo=this.document.midi.bpm,r.prev=24,r.next=27,C.WM_Player.play(this.document.midi.midiData,e,this.onMidiEvent.bind(this),this.onPlayerState.bind(this));case 27:return r.prev=27,this.playerIsFetching=!1,r.finish(27);case 30:case"end":return r.stop()}},r,this,[[9,16],[24,,27,30]])}))}},{key:"onStopClicked",value:function(e){return k(this,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.stop();case 1:case"end":return e.stop()}},e,this)}))}},{key:"stop",value:function(){return k(this,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,C.WM_Player.stop();case 2:case"end":return e.stop()}},e)}))}},{key:"editorOverlappingWorkaround",value:function(e){this.snippetElement.style.marginBottom=e?"".concat(e,"px"):""}},{key:"setMessage",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info",r=this.messagesElement;r.innerHTML='<span class="'.concat(n,'">').concat(e,"</span>"),this.editorOverlappingWorkaround(2*r.clientHeight)}},{key:"clearMessages",value:function(){this.messagesElement.innerHTML="",this.editorOverlappingWorkaround(0)}},{key:"onError",value:function(e){var n=this.scriptToSnippetCharOffset;this.editor.setErrorMarker(e.positionBegin-n,e.positionBegin-n+1),console.error("werckmeister compiler error: ".concat(e.errorMessage)),this.setMessage("".concat(e.errorMessage),"error")}},{key:"getScriptContent",value:function(e){return k(this,void 0,void 0,regeneratorRuntime.mark(function n(){var r,t,o,i,a;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(!(r=this.attributes.getNamedItem("wm-workspace-url"))){n.next=8;break}return n.next=4,this.getWorkspaceFormUrl(r.value);case 4:return t=n.sent,o=t.find(function(e){return e.path===I}),this._addSources=t.filter(function(e){return e.path!==I}),n.abrupt("return",o.data);case 8:if(!(i=this.attributes.getNamedItem("wm-data"))){n.next=11;break}return n.abrupt("return",atob(i.value));case 11:if(!(a=e.match(/\[CDATA\[([\s\S]*)\]\]/))){n.next=14;break}return n.abrupt("return",a[1]);case 14:return n.abrupt("return",e);case 15:case"end":return n.stop()}},n,this)}))}},{key:"init",value:function(){return k(this,void 0,void 0,regeneratorRuntime.mark(function e(){var n,r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.shadowRoot.getElementById("editor"),e.next=3,this.getScriptContent(this.innerHTML);case 3:r=e.sent,this.editor=new M.Editor(n,r,{theme:P}),this.setControlsStateStopped(),this.initListener(),this.readAttributes(),this.applyHiddenLineHack();case 9:case"end":return e.stop()}},e,this)}))}},{key:"applyHiddenLineHack",value:function(){for(var e=this.shadowRoot.querySelectorAll(".cm-wm-hidden-line"),n=0,r=Array.from(e);n<r.length;n++){r[n].parentElement.parentElement.classList.add("wm-hidden-line")}}},{key:"loadExternalCss",value:function(e){return k(this,void 0,void 0,regeneratorRuntime.mark(function n(){var r,t;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,z.fetchText(e);case 2:r=n.sent,(t=document.createElement("style")).innerText=r,this.shadowRoot.appendChild(t);case 6:case"end":return n.stop()}},n,this)}))}},{key:"readAttributes",value:function(){return k(this,void 0,void 0,regeneratorRuntime.mark(function e(){var n,r,t,o,i,a,s;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:(n=this.attributes.getNamedItem("wm-type"))&&"single"===n.value&&(this.type=O.single),(r=this.attributes.getNamedItem("wm-tempo"))&&(this.bpm=Number.parseFloat(r.value)),(t=this.attributes.getNamedItem("wm-style"))&&this.snippetElement.setAttribute("style",t.value),(o=this.attributes.getNamedItem("wm-css-url"))&&this.loadExternalCss(o.value),(i=this.attributes.getNamedItem("wm-def"))&&(this._defLines=i.value),(a=this.attributes.getNamedItem("wm-add-sources"))&&(this._addSourcesBase64String=a.value),(s=this.attributes.getNamedItem("wm-soundfont-url"))&&C.WM_Player.setSoundfontRepoUrl(s.value);case 14:case"end":return e.stop()}},e,this)}))}}]),t}();exports.Snippet=j;
509
+ "use strict";function e(n){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(n)}function n(e){return o(e)||t(e)||a(e)||r()}function r(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function t(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}function o(e){if(Array.isArray(e))return s(e)}function i(e,n){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=a(e))||n&&e&&"number"==typeof e.length){r&&(e=r);var t=0,o=function(){};return{s:o,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,c=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){c=!0,i=e},f:function(){try{s||null==r.return||r.return()}finally{if(c)throw i}}}}function a(e,n){if(e){if("string"==typeof e)return s(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,n):void 0}}function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var r=0,t=new Array(n);r<n;r++)t[r]=e[r];return t}function c(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function l(e,n){for(var r=0;r<n.length;r++){var t=n[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}function d(e,n,r){return n&&l(e.prototype,n),r&&l(e,r),e}function u(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&y(e,n)}function p(e){var n=b();return function(){var r,t=w(e);if(n){var o=w(this).constructor;r=Reflect.construct(t,arguments,o)}else r=t.apply(this,arguments);return m(this,r)}}function m(n,r){return!r||"object"!==e(r)&&"function"!=typeof r?f(n):r}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e){var n="function"==typeof Map?new Map:void 0;return(h=function(e){if(null===e||!v(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,r)}function r(){return g(e,arguments,w(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),y(r,e)})(e)}function g(e,n,r){return(g=b()?Reflect.construct:function(e,n,r){var t=[null];t.push.apply(t,n);var o=new(Function.bind.apply(e,t));return r&&y(o,r.prototype),o}).apply(null,arguments)}function b(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}function v(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function y(e,n){return(y=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e})(e,n)}function w(e){return(w=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var k=this&&this.__awaiter||function(e,n,r,t){return new(r||(r=Promise))(function(o,i){function a(e){try{c(t.next(e))}catch(n){i(n)}}function s(e){try{c(t.throw(e))}catch(n){i(n)}}function c(e){var n;e.done?o(e.value):(n=e.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}c((t=t.apply(e,n||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Snippet=void 0;var M=require("../../editor/Editor"),C=require("../../Global"),x=require("../../shared/midiEvent"),S=require("../../shared/player"),E=require("./templates"),z=require("../../shared/http"),R=require("lodash"),P="dracula",I="main.sheet",T=require("fs"),A="/* BASICS */\n\n.CodeMirror {\n /* Set height, width, borders, and global font properties here */\n font-family: monospace;\n height: 300px;\n color: black;\n direction: ltr;\n}\n\n/* PADDING */\n\n.CodeMirror-lines {\n padding: 4px 0; /* Vertical padding around content */\n}\n.CodeMirror pre.CodeMirror-line,\n.CodeMirror pre.CodeMirror-line-like {\n padding: 0 4px; /* Horizontal padding of content */\n}\n\n.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n background-color: white; /* The little square between H and V scrollbars */\n}\n\n/* GUTTER */\n\n.CodeMirror-gutters {\n border-right: 1px solid #ddd;\n background-color: #f7f7f7;\n white-space: nowrap;\n}\n.CodeMirror-linenumbers {}\n.CodeMirror-linenumber {\n padding: 0 3px 0 5px;\n min-width: 20px;\n text-align: right;\n color: #999;\n white-space: nowrap;\n}\n\n.CodeMirror-guttermarker { color: black; }\n.CodeMirror-guttermarker-subtle { color: #999; }\n\n/* CURSOR */\n\n.CodeMirror-cursor {\n border-left: 1px solid black;\n border-right: none;\n width: 0;\n}\n/* Shown when moving in bi-directional text */\n.CodeMirror div.CodeMirror-secondarycursor {\n border-left: 1px solid silver;\n}\n.cm-fat-cursor .CodeMirror-cursor {\n width: auto;\n border: 0 !important;\n background: #7e7;\n}\n.cm-fat-cursor div.CodeMirror-cursors {\n z-index: 1;\n}\n.cm-fat-cursor-mark {\n background-color: rgba(20, 255, 20, 0.5);\n -webkit-animation: blink 1.06s steps(1) infinite;\n -moz-animation: blink 1.06s steps(1) infinite;\n animation: blink 1.06s steps(1) infinite;\n}\n.cm-animate-fat-cursor {\n width: auto;\n border: 0;\n -webkit-animation: blink 1.06s steps(1) infinite;\n -moz-animation: blink 1.06s steps(1) infinite;\n animation: blink 1.06s steps(1) infinite;\n background-color: #7e7;\n}\n@-moz-keyframes blink {\n 0% {}\n 50% { background-color: transparent; }\n 100% {}\n}\n@-webkit-keyframes blink {\n 0% {}\n 50% { background-color: transparent; }\n 100% {}\n}\n@keyframes blink {\n 0% {}\n 50% { background-color: transparent; }\n 100% {}\n}\n\n/* Can style cursor different in overwrite (non-insert) mode */\n.CodeMirror-overwrite .CodeMirror-cursor {}\n\n.cm-tab { display: inline-block; text-decoration: inherit; }\n\n.CodeMirror-rulers {\n position: absolute;\n left: 0; right: 0; top: -50px; bottom: 0;\n overflow: hidden;\n}\n.CodeMirror-ruler {\n border-left: 1px solid #ccc;\n top: 0; bottom: 0;\n position: absolute;\n}\n\n/* DEFAULT THEME */\n\n.cm-s-default .cm-header {color: blue;}\n.cm-s-default .cm-quote {color: #090;}\n.cm-negative {color: #d44;}\n.cm-positive {color: #292;}\n.cm-header, .cm-strong {font-weight: bold;}\n.cm-em {font-style: italic;}\n.cm-link {text-decoration: underline;}\n.cm-strikethrough {text-decoration: line-through;}\n\n.cm-s-default .cm-keyword {color: #708;}\n.cm-s-default .cm-atom {color: #219;}\n.cm-s-default .cm-number {color: #164;}\n.cm-s-default .cm-def {color: #00f;}\n.cm-s-default .cm-variable,\n.cm-s-default .cm-punctuation,\n.cm-s-default .cm-property,\n.cm-s-default .cm-operator {}\n.cm-s-default .cm-variable-2 {color: #05a;}\n.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}\n.cm-s-default .cm-comment {color: #a50;}\n.cm-s-default .cm-string {color: #a11;}\n.cm-s-default .cm-string-2 {color: #f50;}\n.cm-s-default .cm-meta {color: #555;}\n.cm-s-default .cm-qualifier {color: #555;}\n.cm-s-default .cm-builtin {color: #30a;}\n.cm-s-default .cm-bracket {color: #997;}\n.cm-s-default .cm-tag {color: #170;}\n.cm-s-default .cm-attribute {color: #00c;}\n.cm-s-default .cm-hr {color: #999;}\n.cm-s-default .cm-link {color: #00c;}\n\n.cm-s-default .cm-error {color: #f00;}\n.cm-invalidchar {color: #f00;}\n\n.CodeMirror-composing { border-bottom: 2px solid; }\n\n/* Default styles for common addons */\n\ndiv.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}\ndiv.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}\n.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }\n.CodeMirror-activeline-background {background: #e8f2ff;}\n\n/* STOP */\n\n/* The rest of this file contains styles related to the mechanics of\n the editor. You probably shouldn't touch them. */\n\n.CodeMirror {\n position: relative;\n overflow: hidden;\n background: white;\n}\n\n.CodeMirror-scroll {\n overflow: scroll !important; /* Things will break if this is overridden */\n /* 50px is the magic margin used to hide the element's real scrollbars */\n /* See overflow: hidden in .CodeMirror */\n margin-bottom: -50px; margin-right: -50px;\n padding-bottom: 50px;\n height: 100%;\n outline: none; /* Prevent dragging from highlighting the element */\n position: relative;\n}\n.CodeMirror-sizer {\n position: relative;\n border-right: 50px solid transparent;\n}\n\n/* The fake, visible scrollbars. Used to force redraw during scrolling\n before actual scrolling happens, thus preventing shaking and\n flickering artifacts. */\n.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n position: absolute;\n z-index: 6;\n display: none;\n}\n.CodeMirror-vscrollbar {\n right: 0; top: 0;\n overflow-x: hidden;\n overflow-y: scroll;\n}\n.CodeMirror-hscrollbar {\n bottom: 0; left: 0;\n overflow-y: hidden;\n overflow-x: scroll;\n}\n.CodeMirror-scrollbar-filler {\n right: 0; bottom: 0;\n}\n.CodeMirror-gutter-filler {\n left: 0; bottom: 0;\n}\n\n.CodeMirror-gutters {\n position: absolute; left: 0; top: 0;\n min-height: 100%;\n z-index: 3;\n}\n.CodeMirror-gutter {\n white-space: normal;\n height: 100%;\n display: inline-block;\n vertical-align: top;\n margin-bottom: -50px;\n}\n.CodeMirror-gutter-wrapper {\n position: absolute;\n z-index: 4;\n background: none !important;\n border: none !important;\n}\n.CodeMirror-gutter-background {\n position: absolute;\n top: 0; bottom: 0;\n z-index: 4;\n}\n.CodeMirror-gutter-elt {\n position: absolute;\n cursor: default;\n z-index: 4;\n}\n.CodeMirror-gutter-wrapper ::selection { background-color: transparent }\n.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }\n\n.CodeMirror-lines {\n cursor: text;\n min-height: 1px; /* prevents collapsing before first draw */\n}\n.CodeMirror pre.CodeMirror-line,\n.CodeMirror pre.CodeMirror-line-like {\n /* Reset some styles that the rest of the page might have set */\n -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;\n border-width: 0;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n white-space: pre;\n word-wrap: normal;\n line-height: inherit;\n color: inherit;\n z-index: 2;\n position: relative;\n overflow: visible;\n -webkit-tap-highlight-color: transparent;\n -webkit-font-variant-ligatures: contextual;\n font-variant-ligatures: contextual;\n}\n.CodeMirror-wrap pre.CodeMirror-line,\n.CodeMirror-wrap pre.CodeMirror-line-like {\n word-wrap: break-word;\n white-space: pre-wrap;\n word-break: normal;\n}\n\n.CodeMirror-linebackground {\n position: absolute;\n left: 0; right: 0; top: 0; bottom: 0;\n z-index: 0;\n}\n\n.CodeMirror-linewidget {\n position: relative;\n z-index: 2;\n padding: 0.1px; /* Force widget margins to stay inside of the container */\n}\n\n.CodeMirror-widget {}\n\n.CodeMirror-rtl pre { direction: rtl; }\n\n.CodeMirror-code {\n outline: none;\n}\n\n/* Force content-box sizing for the elements where we expect it */\n.CodeMirror-scroll,\n.CodeMirror-sizer,\n.CodeMirror-gutter,\n.CodeMirror-gutters,\n.CodeMirror-linenumber {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n}\n\n.CodeMirror-measure {\n position: absolute;\n width: 100%;\n height: 0;\n overflow: hidden;\n visibility: hidden;\n}\n\n.CodeMirror-cursor {\n position: absolute;\n pointer-events: none;\n}\n.CodeMirror-measure pre { position: static; }\n\ndiv.CodeMirror-cursors {\n visibility: hidden;\n position: relative;\n z-index: 3;\n}\ndiv.CodeMirror-dragcursors {\n visibility: visible;\n}\n\n.CodeMirror-focused div.CodeMirror-cursors {\n visibility: visible;\n}\n\n.CodeMirror-selected { background: #d9d9d9; }\n.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }\n.CodeMirror-crosshair { cursor: crosshair; }\n.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }\n.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }\n\n.cm-searching {\n background-color: #ffa;\n background-color: rgba(255, 255, 0, .4);\n}\n\n/* Used to force a border model for a node */\n.cm-force-border { padding-right: .1px; }\n\n@media print {\n /* Hide the cursor when printing */\n .CodeMirror div.CodeMirror-cursors {\n visibility: hidden;\n }\n}\n\n/* See issue #2901 */\n.cm-tab-wrap-hack:after { content: ''; }\n\n/* Help users use markselection to safely style text background */\nspan.CodeMirror-selectedtext { background: none; }\n";A+="/*\n\n Name: dracula\n Author: Michael Kaminsky (http://github.com/mkaminsky11)\n\n Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)\n\n*/\n\n\n.cm-s-dracula.CodeMirror, .cm-s-dracula .CodeMirror-gutters {\n background-color: #282a36 !important;\n color: #f8f8f2 !important;\n border: none;\n}\n.cm-s-dracula .CodeMirror-gutters { color: #282a36; }\n.cm-s-dracula .CodeMirror-cursor { border-left: solid thin #f8f8f0; }\n.cm-s-dracula .CodeMirror-linenumber { color: #6D8A88; }\n.cm-s-dracula .CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }\n.cm-s-dracula .CodeMirror-line::selection, .cm-s-dracula .CodeMirror-line > span::selection, .cm-s-dracula .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }\n.cm-s-dracula .CodeMirror-line::-moz-selection, .cm-s-dracula .CodeMirror-line > span::-moz-selection, .cm-s-dracula .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }\n.cm-s-dracula span.cm-comment { color: #6272a4; }\n.cm-s-dracula span.cm-string, .cm-s-dracula span.cm-string-2 { color: #f1fa8c; }\n.cm-s-dracula span.cm-number { color: #bd93f9; }\n.cm-s-dracula span.cm-variable { color: #50fa7b; }\n.cm-s-dracula span.cm-variable-2 { color: white; }\n.cm-s-dracula span.cm-def { color: #50fa7b; }\n.cm-s-dracula span.cm-operator { color: #ff79c6; }\n.cm-s-dracula span.cm-keyword { color: #ff79c6; }\n.cm-s-dracula span.cm-atom { color: #bd93f9; }\n.cm-s-dracula span.cm-meta { color: #f8f8f2; }\n.cm-s-dracula span.cm-tag { color: #ff79c6; }\n.cm-s-dracula span.cm-attribute { color: #50fa7b; }\n.cm-s-dracula span.cm-qualifier { color: #50fa7b; }\n.cm-s-dracula span.cm-property { color: #66d9ef; }\n.cm-s-dracula span.cm-builtin { color: #50fa7b; }\n.cm-s-dracula span.cm-variable-3, .cm-s-dracula span.cm-type { color: #ffb86c; }\n\n.cm-s-dracula .CodeMirror-activeline-background { background: rgba(255,255,255,0.1); }\n.cm-s-dracula .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n";var O,_='#editor {\n border: 1px solid black;\n width: 100%;\n height: 100%;\n}\n\n.CodeMirror {\n width: 100%;\n height: 100%;\n font-size: 14px;\n}\n\n#messages span {\n margin: 0.5em 0;\n padding: 8px 15px 8px 15px;\n color: black;\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5;\n list-style: none;\n font-feature-settings: \'tnum\';\n display: block;\n position: relative;\n right: -2px;\n}\n\n#messages .error {\n background-color: #fff1f0;\n}\n\n#messages .error::before {\n --size: 20px;\n content: "!";\n margin-right: 1em;\n color: white;\n background: red;\n border-radius: var(--size);\n width: var(--size);\n display: inline-block;\n height: var(--size);\n text-align: center;\n}\n\n#wm-snippet {\n margin-bottom: 1.5em;\n font-family: Helvetica, Arial, sans-serif;\n}\n\n.wm-marked::before {\n content: " ";\n position: absolute;\n border-top: 4px solid #ff0;\n border-left: 4px solid #ff0;\n border-radius: 0;\n height: 8px;\n width: 8px;\n transform: rotate(-135deg);\n margin-top: -11px;\n margin-left: 8px;\n}\n\n\n.wm-error::before {\n content: " ";\n position: absolute;\n border-top: 4px solid red;\n border-left: 4px solid red;\n border-radius: 0;\n height: 8px;\n width: 8px;\n transform: rotate(-135deg);\n margin-top: -11px;\n margin-left: 8px;\n}\n\n#btnPlay, #btnStop {\n cursor: pointer;\n user-select: none;\n}\n\n.wm-state-playing #btnPlay {\n display: none;\n}\n\n.wm-state-stopped #btnStop {\n display: none;\n}\n\n.wm-player-fetching #btnStop\n, .wm-player-fetching #btnPlay\n{\n display: none;\n}\n\n#fetching {\n display: none;\n}\n\n@keyframes spin { 100% { transform:rotate(360deg); } }\n#fetching svg {\n animation:spin 2s linear infinite;\n}\n\n.wm-player-fetching #fetching {\n display: block;\n}\n\n.icon {\n vertical-align: top;\n}\n\n.whomai {\n display: block;\n width: 100%;\n text-align: right;\n font-size: 13px;\n font-style: italic;\n}',N='<div id="wm-snippet">\n <div id="wm-controls">\n <a id="btnPlay">\n <svg class="icon" width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-play-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg">\n <path d="M11.596 8.697l-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z"/>\n </svg>\n Play\n </a>\n <a id="btnStop">\n <svg class="icon" width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-stop-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg">\n <path d="M5 3.5h6A1.5 1.5 0 0 1 12.5 5v6a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 11V5A1.5 1.5 0 0 1 5 3.5z"/>\n </svg>\n Stop\n </a>\n <span id="fetching">\n <svg class="icon" width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-gear" fill="currentColor" xmlns="http://www.w3.org/2000/svg">\n <path fill-rule="evenodd" d="M8.837 1.626c-.246-.835-1.428-.835-1.674 0l-.094.319A1.873 1.873 0 0 1 4.377 3.06l-.292-.16c-.764-.415-1.6.42-1.184 1.185l.159.292a1.873 1.873 0 0 1-1.115 2.692l-.319.094c-.835.246-.835 1.428 0 1.674l.319.094a1.873 1.873 0 0 1 1.115 2.693l-.16.291c-.415.764.42 1.6 1.185 1.184l.292-.159a1.873 1.873 0 0 1 2.692 1.116l.094.318c.246.835 1.428.835 1.674 0l.094-.319a1.873 1.873 0 0 1 2.693-1.115l.291.16c.764.415 1.6-.42 1.184-1.185l-.159-.291a1.873 1.873 0 0 1 1.116-2.693l.318-.094c.835-.246.835-1.428 0-1.674l-.319-.094a1.873 1.873 0 0 1-1.115-2.692l.16-.292c.415-.764-.42-1.6-1.185-1.184l-.291.159A1.873 1.873 0 0 1 8.93 1.945l-.094-.319zm-2.633-.283c.527-1.79 3.065-1.79 3.592 0l.094.319a.873.873 0 0 0 1.255.52l.292-.16c1.64-.892 3.434.901 2.54 2.541l-.159.292a.873.873 0 0 0 .52 1.255l.319.094c1.79.527 1.79 3.065 0 3.592l-.319.094a.873.873 0 0 0-.52 1.255l.16.292c.893 1.64-.902 3.434-2.541 2.54l-.292-.159a.873.873 0 0 0-1.255.52l-.094.319c-.527 1.79-3.065 1.79-3.592 0l-.094-.319a.873.873 0 0 0-1.255-.52l-.292.16c-1.64.893-3.433-.902-2.54-2.541l.159-.292a.873.873 0 0 0-.52-1.255l-.319-.094c-1.79-.527-1.79-3.065 0-3.592l.319-.094a.873.873 0 0 0 .52-1.255l-.16-.292c-.892-1.64.902-3.433 2.541-2.54l.292.159a.873.873 0 0 0 1.255-.52l.094-.319z"/>\n <path fill-rule="evenodd" d="M8 5.754a2.246 2.246 0 1 0 0 4.492 2.246 2.246 0 0 0 0-4.492zM4.754 8a3.246 3.246 0 1 1 6.492 0 3.246 3.246 0 0 1-6.492 0z"/>\n </svg>\n Play\n </span>\n </div>\n <div id="messages">\n\n </div>\n <div id="editor">\n </div>\n <span class="whomai">\n powered by <a href="https://github.com/werckme/werckmeister-component">werckmeister snippet</a>\n </span>\n</div>';!function(e){e[e.single=0]="single",e[e.default=1]="default"}(O||(O={}));var L=0,B=new Map,H=document.createElement("template");H.innerHTML="\n<style>\n ".concat(A,"\n ").concat(_,"\n</style>\n").concat(N,"\n");var j=function(e){u(t,h(HTMLElement));var r=p(t);function t(){var e;return c(this,t),(e=r.call(this)).snippetId=L++,e.bpm=120,e.type=O.default,e.eventMarkers=[],e.playingStateName="wm-state-playing",e.stoppedStateName="wm-state-stopped",e.snippetName="noname.sheet",e.scriptToSnippetCharOffset=0,e.createElement(),e}return d(t,[{key:"playerIsFetching",get:function(){return this._playerIsFetching},set:function(e){this._playerIsFetching=e;var n=this.snippetElement;e?n.classList.add("wm-player-fetching"):n.classList.remove("wm-player-fetching")}},{key:"snippetElement",get:function(){return this.shadowRoot.getElementById("wm-snippet")}},{key:"messagesElement",get:function(){return this.shadowRoot.getElementById("messages")}},{key:"playButtonElement",get:function(){return this.shadowRoot.getElementById("btnPlay")}},{key:"stopButtonElement",get:function(){return this.shadowRoot.getElementById("btnStop")}},{key:"createElement",value:function(){return k(this,void 0,void 0,regeneratorRuntime.mark(function e(){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.attachShadow({mode:"open"}),n=H.content.cloneNode(!0),this.shadowRoot.appendChild(n),setTimeout(this.init.bind(this));case 4:case"end":return e.stop()}},e,this)}))}},{key:"initListener",value:function(){this.playButtonElement.addEventListener("click",this.onPlayClicked.bind(this)),this.stopButtonElement.addEventListener("click",this.onStopClicked.bind(this))}},{key:"onMidiEvent",value:function(e){e.midiEvent.eventType===x.EventType.NoteOn&&this.updateMarkers(e.position)}},{key:"stopAllSippets",value:function(){return k(this,void 0,void 0,regeneratorRuntime.mark(function e(){var n,r,t,o;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n=Array.from(B.values()),r=0,t=n;case 2:if(!(r<t.length)){e.next=9;break}return o=t[r],e.next=6,o.stop();case 6:r++,e.next=2;break;case 9:return e.abrupt("return",new Promise(function(e){setTimeout(e,100)}));case 10:case"end":return e.stop()}},e)}))}},{key:"onPlayerState",value:function(e,n){n===S.PlayerState.Playing&&(B.set(this.snippetId,this),this.setControlsStatePlaying()),n===S.PlayerState.Stopped&&(B.delete(this.snippetId),this.clearEventMarkers(),this.setControlsStateStopped()),this.onPlayerStateChanged&&this.onPlayerStateChanged(e,n)}},{key:"setControlsStateStopped",value:function(){var e=this.snippetElement;e.classList.remove(this.playingStateName),e.classList.add(this.stoppedStateName)}},{key:"setControlsStatePlaying",value:function(){var e=this.snippetElement;e.classList.remove(this.stoppedStateName),e.classList.add(this.playingStateName)}},{key:"clearEventMarkers",value:function(){var e,n=i(this.eventMarkers);try{for(n.s();!(e=n.n()).done;){e.value.clear()}}catch(r){n.e(r)}finally{n.f()}}},{key:"updateMarkers",value:function(e){this.clearEventMarkers();var n=R(this.document.eventInfos).map(function(n){return{diff:Math.abs(e-n.sheetTime),sheetEvents:n.sheetEventInfos}}).minBy(function(e){return e.diff});if(n){var r,t=this.scriptToSnippetCharOffset,o=i(n.sheetEvents);try{for(o.s();!(r=o.n()).done;){var a=r.value;if(a.sourceId===this.snippetDocumentId){var s=this.editor.setEventMarker(a.beginPosition-t,a.beginPosition-t+1);this.eventMarkers.push(s)}}}catch(c){o.e(c)}finally{o.f()}}}},{key:"getPlayerImpl",value:function(){return C.WM_Player}},{key:"getScriptText",value:function(){var e=this.editor.getValue();if(!e.trim())return"";this.scriptToSnippetCharOffset=0;var n=void 0;if(this._defLines&&(n=atob(this._defLines)),this.type===O.single){var r=E.singleSnippetTemplate(e,this.bpm,n);return this.scriptToSnippetCharOffset=r.charOffset,r.script.trim()}if(n){var t=E.snippetTemplate(e,this.bpm,n);return this.scriptToSnippetCharOffset=t.charOffset,t.script.trim()}return e.trim()}},{key:"onPlayClicked",value:function(e){return k(this,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,this.stopAllSippets();case 3:return n.next=5,this.startPlayer(e);case 5:n.next=11;break;case 7:return n.prev=7,n.t0=n.catch(0),n.t0.error?this.onError(n.t0.error):console.log(n.t0),n.abrupt("return");case 11:case"end":return n.stop()}},n,this,[[0,7]])}))}},{key:"getWorkspaceFormUrl",value:function(e){return k(this,void 0,void 0,regeneratorRuntime.mark(function n(){var r,t,o;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,fetch(e);case 2:return r=n.sent,n.next=5,r.json();case 5:return t=n.sent,o=t.files,n.abrupt("return",o);case 8:case"end":return n.stop()}},n)}))}},{key:"getAdditionalSources",value:function(){if(this._addSources)return this._addSources;if(!this._addSourcesBase64String)return[];var e=atob(this._addSourcesBase64String),n=JSON.parse(e);return Array.isArray(n)?n:[]}},{key:"startPlayer",value:function(e){return k(this,void 0,void 0,regeneratorRuntime.mark(function r(){var t,o,i=this;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,C.WM_Player.prepare(e);case 2:return r.next=4,C.resetCompiler();case 4:if(this.editor.clearEventMarkers(),this.clearMessages(),t=this.getScriptText()){r.next=9;break}return r.abrupt("return");case 9:return this.snippetDocumentId=null,this.playerIsFetching=!0,r.prev=11,o=[{path:this.snippetName,data:t}].concat(n(this.getAdditionalSources())),r.next=15,C.WM_Compiler.compile(o);case 15:this.document=r.sent,r.next=23;break;case 18:return r.prev=18,r.t0=r.catch(11),r.t0.error?this.onError(r.t0.error):console.log(r.t0),this.playerIsFetching=!1,r.abrupt("return");case 23:return this.snippetDocumentId=R(this.document.midi.sources).find(function(e){return e.path==="/".concat(i.snippetName)}).sourceId,this.snippetDocumentId||console.error("werckmeister compiler could not assign main document"),C.WM_Player.tempo=this.document.midi.bpm,r.prev=26,r.next=29,C.WM_Player.play(this.document.midi.midiData,e,this.onMidiEvent.bind(this),this.onPlayerState.bind(this));case 29:return r.prev=29,this.playerIsFetching=!1,r.finish(29);case 32:case"end":return r.stop()}},r,this,[[11,18],[26,,29,32]])}))}},{key:"onStopClicked",value:function(e){return k(this,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.stop();case 1:case"end":return e.stop()}},e,this)}))}},{key:"stop",value:function(){return k(this,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,C.WM_Player.stop();case 2:case"end":return e.stop()}},e)}))}},{key:"editorOverlappingWorkaround",value:function(e){this.snippetElement.style.marginBottom=e?"".concat(e,"px"):""}},{key:"setMessage",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info",r=this.messagesElement;r.innerHTML='<span class="'.concat(n,'">').concat(e,"</span>"),this.editorOverlappingWorkaround(2*r.clientHeight)}},{key:"clearMessages",value:function(){this.messagesElement.innerHTML="",this.editorOverlappingWorkaround(0)}},{key:"onError",value:function(e){var n=this.scriptToSnippetCharOffset;this.editor.setErrorMarker(e.positionBegin-n,e.positionBegin-n+1),console.error("werckmeister compiler error: ".concat(e.errorMessage)),this.setMessage("".concat(e.errorMessage),"error")}},{key:"getScriptContent",value:function(e){return k(this,void 0,void 0,regeneratorRuntime.mark(function n(){var r,t,o,i,a;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(!(r=this.attributes.getNamedItem("wm-workspace-url"))){n.next=8;break}return n.next=4,this.getWorkspaceFormUrl(r.value);case 4:return t=n.sent,o=t.find(function(e){return e.path===I}),this._addSources=t.filter(function(e){return e.path!==I}),n.abrupt("return",o.data);case 8:if(!(i=this.attributes.getNamedItem("wm-data"))){n.next=11;break}return n.abrupt("return",atob(i.value));case 11:if(!(a=e.match(/\[CDATA\[([\s\S]*)\]\]/))){n.next=14;break}return n.abrupt("return",a[1]);case 14:return n.abrupt("return",e);case 15:case"end":return n.stop()}},n,this)}))}},{key:"init",value:function(){return k(this,void 0,void 0,regeneratorRuntime.mark(function e(){var n,r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.shadowRoot.getElementById("editor"),e.next=3,this.getScriptContent(this.innerHTML);case 3:r=e.sent,this.editor=new M.Editor(n,r,{theme:P}),this.setControlsStateStopped(),this.initListener(),this.readAttributes(),this.applyHiddenLineHack();case 9:case"end":return e.stop()}},e,this)}))}},{key:"applyHiddenLineHack",value:function(){for(var e=this.shadowRoot.querySelectorAll(".cm-wm-hidden-line"),n=0,r=Array.from(e);n<r.length;n++){r[n].parentElement.parentElement.classList.add("wm-hidden-line")}}},{key:"loadExternalCss",value:function(e){return k(this,void 0,void 0,regeneratorRuntime.mark(function n(){var r,t;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,z.fetchText(e);case 2:r=n.sent,(t=document.createElement("style")).innerText=r,this.shadowRoot.appendChild(t);case 6:case"end":return n.stop()}},n,this)}))}},{key:"readAttributes",value:function(){return k(this,void 0,void 0,regeneratorRuntime.mark(function e(){var n,r,t,o,i,a,s;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:(n=this.attributes.getNamedItem("wm-type"))&&"single"===n.value&&(this.type=O.single),(r=this.attributes.getNamedItem("wm-tempo"))&&(this.bpm=Number.parseFloat(r.value)),(t=this.attributes.getNamedItem("wm-style"))&&this.snippetElement.setAttribute("style",t.value),(o=this.attributes.getNamedItem("wm-css-url"))&&this.loadExternalCss(o.value),(i=this.attributes.getNamedItem("wm-def"))&&(this._defLines=i.value),(a=this.attributes.getNamedItem("wm-add-sources"))&&(this._addSourcesBase64String=a.value),(s=this.attributes.getNamedItem("wm-soundfont-url"))&&C.WM_Player.setSoundfontRepoUrl(s.value);case 14:case"end":return e.stop()}},e,this)}))}}]),t}();exports.Snippet=j;
510
510
  },{"../../editor/Editor":"BzA4","../../Global":"ooUX","../../shared/midiEvent":"vkzS","../../shared/player":"FYcy","./templates":"F8Qk","../../shared/http":"vSbS","lodash":"B1iE","fs":"rDCW"}],"DsX5":[function(require,module,exports) {
511
- "use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=n(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var i=0,o=function(){};return{s:o,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,c=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){c=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(c)throw a}}}}function n(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}function c(e){var t=d();return function(){var n,r=y(e);if(t){var i=y(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return u(this,n)}}function u(t,n){return!n||"object"!==e(n)&&"function"!=typeof n?l(t):n}function l(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(e){var t="function"==typeof Map?new Map:void 0;return(f=function(e){if(null===e||!h(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return p(e,arguments,y(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),m(n,e)})(e)}function p(e,t,n){return(p=d()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&m(i,n.prototype),i}).apply(null,arguments)}function d(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}function h(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var v=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,o){function a(e){try{c(r.next(e))}catch(t){o(t)}}function s(e){try{c(r.throw(e))}catch(t){o(t)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}c((r=r.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Workspace=void 0;var g=require("../../Global"),w=require("../../shared/midiEvent"),b=require("../../shared/player"),k=require("../../shared/http"),E=require("lodash"),M=require("fs"),S="#wm-controls a {\n cursor: pointer;\n user-select: none;\n}\n\n.wm-state-playing #btnPlay {\n display: none;\n}\n \n.wm-state-stopped #btnStop {\n display: none;\n}\n \n.wm-player-fetching #btnStop\n, .wm-player-fetching #btnPlay\n{\n display: none;\n}\n \n#fetching {\n display: none;\n}\n\n@keyframes spin { 100% { transform:rotate(360deg); } }\n#fetching svg {\n animation:spin 2s linear infinite;\n}\n\n.wm-player-fetching #fetching {\n display: block;\n}\n",x='<div id="wm-controls" class="wm-state-stopped">\n <a id="btnPlay">\n <svg class="icon" width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-play-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg">\n <path d="M11.596 8.697l-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z"/>\n </svg>\n Play\n </a>\n <a id="btnStop">\n <svg class="icon" width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-stop-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg">\n <path d="M5 3.5h6A1.5 1.5 0 0 1 12.5 5v6a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 11V5A1.5 1.5 0 0 1 5 3.5z"/>\n </svg>\n Stop\n </a>\n <span id="fetching">\n <svg class="icon" width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-gear" fill="currentColor" xmlns="http://www.w3.org/2000/svg">\n <path fill-rule="evenodd" d="M8.837 1.626c-.246-.835-1.428-.835-1.674 0l-.094.319A1.873 1.873 0 0 1 4.377 3.06l-.292-.16c-.764-.415-1.6.42-1.184 1.185l.159.292a1.873 1.873 0 0 1-1.115 2.692l-.319.094c-.835.246-.835 1.428 0 1.674l.319.094a1.873 1.873 0 0 1 1.115 2.693l-.16.291c-.415.764.42 1.6 1.185 1.184l.292-.159a1.873 1.873 0 0 1 2.692 1.116l.094.318c.246.835 1.428.835 1.674 0l.094-.319a1.873 1.873 0 0 1 2.693-1.115l.291.16c.764.415 1.6-.42 1.184-1.185l-.159-.291a1.873 1.873 0 0 1 1.116-2.693l.318-.094c.835-.246.835-1.428 0-1.674l-.319-.094a1.873 1.873 0 0 1-1.115-2.692l.16-.292c.415-.764-.42-1.6-1.185-1.184l-.291.159A1.873 1.873 0 0 1 8.93 1.945l-.094-.319zm-2.633-.283c.527-1.79 3.065-1.79 3.592 0l.094.319a.873.873 0 0 0 1.255.52l.292-.16c1.64-.892 3.434.901 2.54 2.541l-.159.292a.873.873 0 0 0 .52 1.255l.319.094c1.79.527 1.79 3.065 0 3.592l-.319.094a.873.873 0 0 0-.52 1.255l.16.292c.893 1.64-.902 3.434-2.541 2.54l-.292-.159a.873.873 0 0 0-1.255.52l-.094.319c-.527 1.79-3.065 1.79-3.592 0l-.094-.319a.873.873 0 0 0-1.255-.52l-.292.16c-1.64.893-3.433-.902-2.54-2.541l.159-.292a.873.873 0 0 0-.52-1.255l-.319-.094c-1.79-.527-1.79-3.065 0-3.592l.319-.094a.873.873 0 0 0 .52-1.255l-.16-.292c-.892-1.64.902-3.433 2.541-2.54l.292.159a.873.873 0 0 0 1.255-.52l.094-.319z"/>\n <path fill-rule="evenodd" d="M8 5.754a2.246 2.246 0 1 0 0 4.492 2.246 2.246 0 0 0 0-4.492zM4.754 8a3.246 3.246 0 1 1 6.492 0 3.246 3.246 0 0 1-6.492 0z"/>\n </svg>\n Play\n </span> \n</div>',P=document.createElement("template");P.innerHTML="\n<style>\n".concat(S,"\n</style>\n").concat(x,"\n");var C=function(e){s(r,f(HTMLElement));var n=c(r);function r(){var e;return i(this,r),(e=n.call(this)).bpm=120,e.onError=function(e){},e.onWarnings=function(e){},e.onCompiled=function(e){},e.onStateChanged=function(e,t){},e.updateMarkersDebounceMillis=50,e.editors=[],e.sourceIdEditorMap=new Map,e.lastEventTimeQuarters=0,e.updateMarkersDebounced=E.debounce(e.updateMarkersImpl.bind(l(e)),e.updateMarkersDebounceMillis),e._beginQuarters=0,e.playerState=b.PlayerState.Stopped,e.createElement(),e}return a(r,[{key:"beginQuarters",get:function(){return this._beginQuarters},set:function(e){this._beginQuarters=Math.max(0,e)}},{key:"getEditorByFileName",value:function(e){var t=this.editors.map(function(e){return"/".concat(e.filename)}).indexOf(e);if(!(t<0))return this.editors[t]}},{key:"playerIsFetching",get:function(){return this._playerIsFetching},set:function(e){this._playerIsFetching=e;var t=this.workspaceControlsElement;e?t.classList.add("wm-player-fetching"):t.classList.remove("wm-player-fetching")}},{key:"workspaceControlsElement",get:function(){return this.shadowRoot.getElementById("wm-controls")}},{key:"playButtonElement",get:function(){return this.shadowRoot.getElementById("btnPlay")}},{key:"stopButtonElement",get:function(){return this.shadowRoot.getElementById("btnStop")}},{key:"createElement",value:function(){return v(this,void 0,void 0,regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.attachShadow({mode:"open"}),t=P.content.cloneNode(!0),this.shadowRoot.appendChild(t),setTimeout(this.init.bind(this));case 4:case"end":return e.stop()}},e,this)}))}},{key:"initListener",value:function(){this.playButtonElement.addEventListener("click",this.onPlayClicked.bind(this)),this.stopButtonElement.addEventListener("click",this.onStopClicked.bind(this))}},{key:"updateMarkers",value:function(e){this.lastEventTimeQuarters=e,this.updateMarkersDebounced()}},{key:"updateMarkersImpl",value:function(){var e=this.lastEventTimeQuarters;this.clearAllEventMarkers();var n=E(this.document.eventInfos).map(function(t){return{diff:Math.abs(e-t.sheetTime),sheetEvents:t.sheetEventInfos}}).minBy(function(e){return e.diff});if(n){var r,i=t(n.sheetEvents);try{for(i.s();!(r=i.n()).done;){var o=r.value,a=this.sourceIdEditorMap.get(o.sourceId);a&&a.addMarkers([o])}}catch(s){i.e(s)}finally{i.f()}}}},{key:"onMidiEvent",value:function(e){e.midiEvent.eventType===w.EventType.NoteOn&&this.updateMarkers(e.position+this.beginQuarters)}},{key:"onPlayerState",value:function(e,t){t===b.PlayerState.Stopped&&(this.clearAllEventMarkers(),this.workspaceControlsElement.classList.remove("wm-state-playing"),this.workspaceControlsElement.classList.add("wm-state-stopped")),t===b.PlayerState.Playing&&(this.workspaceControlsElement.classList.remove("wm-state-stopped"),this.workspaceControlsElement.classList.add("wm-state-playing")),this.playerState=t,this.onStateChanged(e,t)}},{key:"updateSourceIdMap",value:function(e){var n=this;this.sourceIdEditorMap.clear();var r,i=t(e.midi.sources);try{var o=function(){var e=r.value,t=n.editors.find(function(t){return"/"+t.filename===e.path});if(!t)return"continue";n.sourceIdEditorMap.set(e.sourceId,t)};for(i.s();!(r=i.n()).done;)o()}catch(a){i.e(a)}finally{i.f()}}},{key:"onPlayClicked",value:function(e){this.play(e)}},{key:"play",value:function(e){return v(this,void 0,void 0,regeneratorRuntime.mark(function t(){var n=this;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,g.resetCompiler();case 2:this.playerIsFetching=!0,this.onPlayerState(this.playerState,b.PlayerState.Preparing),setTimeout(function(){return v(n,void 0,void 0,regeneratorRuntime.mark(function t(){var n;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,n=this.editors.map(function(e){return{path:e.filename,data:e.getScriptText()}}),this.clearAllEditorMarkers(),t.next=5,g.WM_Compiler.compile(n,this.beginQuarters);case 5:this.document=t.sent,this.onCompiled(this.document),this.updateSourceIdMap(this.document),this.document.midi.warnings&&this.document.midi.warnings.length>0&&this._onWarnings(this.document.midi.warnings),t.next=17;break;case 11:return t.prev=11,t.t0=t.catch(0),this._onError(t.t0.error||t.t0),this.playerIsFetching=!1,this.onPlayerState(this.playerState,b.PlayerState.Stopped),t.abrupt("return");case 17:return g.WM_Player.tempo=this.document.midi.bpm,t.next=20,g.WM_Player.play(this.document.midi.midiData,e,this.onMidiEvent.bind(this),this.onPlayerState.bind(this));case 20:this.playerIsFetching=!1;case 21:case"end":return t.stop()}},t,this,[[0,11]])}))});case 5:case"end":return t.stop()}},t,this)}))}},{key:"download",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"WerckmeisterMidi.mid";return v(this,void 0,void 0,regeneratorRuntime.mark(function t(){var n,r,i;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,g.resetCompiler();case 2:return t.prev=2,n=this.editors.map(function(e){return{path:e.filename,data:e.getScriptText()}}),t.next=6,g.WM_Compiler.compile(n);case 6:this.document=t.sent,t.next=13;break;case 9:return t.prev=9,t.t0=t.catch(2),this._onError(t.t0.error||t.t0),t.abrupt("return");case 13:r="data:midi;base64,".concat(this.document.midi.midiData),(i=document.createElement("a")).href=r,i.download=e,i.click();case 18:case"end":return t.stop()}},t,this,[[2,9]])}))}},{key:"onStopClicked",value:function(e){this.stop()}},{key:"stop",value:function(){return v(this,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,g.WM_Player.stop();case 2:case"end":return e.stop()}},e)}))}},{key:"clearAllEditorMarkers",value:function(){var e,n=t(this.editors);try{for(n.s();!(e=n.n()).done;){e.value.clearAllMarkers()}}catch(r){n.e(r)}finally{n.f()}}},{key:"clearAllEventMarkers",value:function(){var e,n=t(this.editors);try{for(n.s();!(e=n.n()).done;){e.value.clearEventMarkers()}}catch(r){n.e(r)}finally{n.f()}}},{key:"_onError",value:function(e){if(e instanceof Error)console.error("".concat(e));else{this.onError(e),console.error("".concat(e.sourceFile,'": ').concat(e.errorMessage));var t=this.getEditorByFileName(e.sourceFile);t&&t.setError(e)}}},{key:"_onWarnings",value:function(e){var n,r=t(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;console.warn(i.message),this.getEditorByFileName(i.sourceFile).addWarning(i)}}catch(o){r.e(o)}finally{r.f()}this.onWarnings(e)}},{key:"init",value:function(){this.initListener(),this.readAttributes()}},{key:"loadExternalCss",value:function(e){return v(this,void 0,void 0,regeneratorRuntime.mark(function t(){var n,r;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,k.fetchText(e);case 2:n=t.sent,(r=document.createElement("style")).innerText=n,this.shadowRoot.appendChild(r);case 6:case"end":return t.stop()}},t,this)}))}},{key:"readAttributes",value:function(){return v(this,void 0,void 0,regeneratorRuntime.mark(function e(){var t,n,r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:(t=this.attributes.getNamedItem("wm-onerror"))&&console.error(t),(n=this.attributes.getNamedItem("wm-css-url"))&&this.loadExternalCss(n.value),(r=this.attributes.getNamedItem("wm-soundfont-url"))&&g.WM_Player.setSoundfontRepoUrl(r.value);case 6:case"end":return e.stop()}},e,this)}))}},{key:"registerEditor",value:function(e){this.editors.push(e),e.initiated.then(function(){var t=e.filename,n=e.getScriptText();g.WM_Compiler.writeFileToFS(t,n)})}},{key:"unregisterEditor",value:function(e){var t=this.editors.indexOf(e);t<0||this.editors.splice(t,1)}},{key:"getPlayerImpl",value:function(){return g.WM_Player}},{key:"isClean",value:function(){return E.every(this.editors,function(e){return e.isClean()})}},{key:"markClean",value:function(){var e,n=t(this.editors);try{for(n.s();!(e=n.n()).done;){e.value.markClean()}}catch(r){n.e(r)}finally{n.f()}}}]),r}();exports.Workspace=C;
511
+ "use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=n(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var i=0,o=function(){};return{s:o,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,c=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){c=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(c)throw a}}}}function n(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}function c(e){var t=d();return function(){var n,r=y(e);if(t){var i=y(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return u(this,n)}}function u(t,n){return!n||"object"!==e(n)&&"function"!=typeof n?l(t):n}function l(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(e){var t="function"==typeof Map?new Map:void 0;return(f=function(e){if(null===e||!h(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return p(e,arguments,y(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),m(n,e)})(e)}function p(e,t,n){return(p=d()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&m(i,n.prototype),i}).apply(null,arguments)}function d(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}function h(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var v=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,o){function a(e){try{c(r.next(e))}catch(t){o(t)}}function s(e){try{c(r.throw(e))}catch(t){o(t)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}c((r=r.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Workspace=void 0;var g=require("../../Global"),w=require("../../shared/midiEvent"),b=require("../../shared/player"),k=require("../../shared/http"),E=require("lodash"),M=require("fs"),S="#wm-controls a {\n cursor: pointer;\n user-select: none;\n}\n\n.wm-state-playing #btnPlay {\n display: none;\n}\n \n.wm-state-stopped #btnStop {\n display: none;\n}\n \n.wm-player-fetching #btnStop\n, .wm-player-fetching #btnPlay\n{\n display: none;\n}\n \n#fetching {\n display: none;\n}\n\n@keyframes spin { 100% { transform:rotate(360deg); } }\n#fetching svg {\n animation:spin 2s linear infinite;\n}\n\n.wm-player-fetching #fetching {\n display: block;\n}\n",x='<div id="wm-controls" class="wm-state-stopped">\n <a id="btnPlay">\n <svg class="icon" width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-play-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg">\n <path d="M11.596 8.697l-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z"/>\n </svg>\n Play\n </a>\n <a id="btnStop">\n <svg class="icon" width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-stop-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg">\n <path d="M5 3.5h6A1.5 1.5 0 0 1 12.5 5v6a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 11V5A1.5 1.5 0 0 1 5 3.5z"/>\n </svg>\n Stop\n </a>\n <span id="fetching">\n <svg class="icon" width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-gear" fill="currentColor" xmlns="http://www.w3.org/2000/svg">\n <path fill-rule="evenodd" d="M8.837 1.626c-.246-.835-1.428-.835-1.674 0l-.094.319A1.873 1.873 0 0 1 4.377 3.06l-.292-.16c-.764-.415-1.6.42-1.184 1.185l.159.292a1.873 1.873 0 0 1-1.115 2.692l-.319.094c-.835.246-.835 1.428 0 1.674l.319.094a1.873 1.873 0 0 1 1.115 2.693l-.16.291c-.415.764.42 1.6 1.185 1.184l.292-.159a1.873 1.873 0 0 1 2.692 1.116l.094.318c.246.835 1.428.835 1.674 0l.094-.319a1.873 1.873 0 0 1 2.693-1.115l.291.16c.764.415 1.6-.42 1.184-1.185l-.159-.291a1.873 1.873 0 0 1 1.116-2.693l.318-.094c.835-.246.835-1.428 0-1.674l-.319-.094a1.873 1.873 0 0 1-1.115-2.692l.16-.292c.415-.764-.42-1.6-1.185-1.184l-.291.159A1.873 1.873 0 0 1 8.93 1.945l-.094-.319zm-2.633-.283c.527-1.79 3.065-1.79 3.592 0l.094.319a.873.873 0 0 0 1.255.52l.292-.16c1.64-.892 3.434.901 2.54 2.541l-.159.292a.873.873 0 0 0 .52 1.255l.319.094c1.79.527 1.79 3.065 0 3.592l-.319.094a.873.873 0 0 0-.52 1.255l.16.292c.893 1.64-.902 3.434-2.541 2.54l-.292-.159a.873.873 0 0 0-1.255.52l-.094.319c-.527 1.79-3.065 1.79-3.592 0l-.094-.319a.873.873 0 0 0-1.255-.52l-.292.16c-1.64.893-3.433-.902-2.54-2.541l.159-.292a.873.873 0 0 0-.52-1.255l-.319-.094c-1.79-.527-1.79-3.065 0-3.592l.319-.094a.873.873 0 0 0 .52-1.255l-.16-.292c-.892-1.64.902-3.433 2.541-2.54l.292.159a.873.873 0 0 0 1.255-.52l.094-.319z"/>\n <path fill-rule="evenodd" d="M8 5.754a2.246 2.246 0 1 0 0 4.492 2.246 2.246 0 0 0 0-4.492zM4.754 8a3.246 3.246 0 1 1 6.492 0 3.246 3.246 0 0 1-6.492 0z"/>\n </svg>\n Play\n </span> \n</div>',P=document.createElement("template");P.innerHTML="\n<style>\n".concat(S,"\n</style>\n").concat(x,"\n");var C=function(e){s(r,f(HTMLElement));var n=c(r);function r(){var e;return i(this,r),(e=n.call(this)).bpm=120,e.onError=function(e){},e.onWarnings=function(e){},e.onCompiled=function(e){},e.onStateChanged=function(e,t){},e.updateMarkersDebounceMillis=50,e.editors=[],e.sourceIdEditorMap=new Map,e.lastEventTimeQuarters=0,e.updateMarkersDebounced=E.debounce(e.updateMarkersImpl.bind(l(e)),e.updateMarkersDebounceMillis),e._beginQuarters=0,e.playerState=b.PlayerState.Stopped,e.createElement(),e}return a(r,[{key:"beginQuarters",get:function(){return this._beginQuarters},set:function(e){this._beginQuarters=Math.max(0,e)}},{key:"getEditorByFileName",value:function(e){var t=this.editors.map(function(e){return"/".concat(e.filename)}).indexOf(e);if(!(t<0))return this.editors[t]}},{key:"playerIsFetching",get:function(){return this._playerIsFetching},set:function(e){this._playerIsFetching=e;var t=this.workspaceControlsElement;e?t.classList.add("wm-player-fetching"):t.classList.remove("wm-player-fetching")}},{key:"workspaceControlsElement",get:function(){return this.shadowRoot.getElementById("wm-controls")}},{key:"playButtonElement",get:function(){return this.shadowRoot.getElementById("btnPlay")}},{key:"stopButtonElement",get:function(){return this.shadowRoot.getElementById("btnStop")}},{key:"createElement",value:function(){return v(this,void 0,void 0,regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.attachShadow({mode:"open"}),t=P.content.cloneNode(!0),this.shadowRoot.appendChild(t),setTimeout(this.init.bind(this));case 4:case"end":return e.stop()}},e,this)}))}},{key:"initListener",value:function(){this.playButtonElement.addEventListener("click",this.onPlayClicked.bind(this)),this.stopButtonElement.addEventListener("click",this.onStopClicked.bind(this))}},{key:"updateMarkers",value:function(e){this.lastEventTimeQuarters=e,this.updateMarkersDebounced()}},{key:"updateMarkersImpl",value:function(){var e=this.lastEventTimeQuarters;this.clearAllEventMarkers();var n=E(this.document.eventInfos).map(function(t){return{diff:Math.abs(e-t.sheetTime),sheetEvents:t.sheetEventInfos}}).minBy(function(e){return e.diff});if(n){var r,i=t(n.sheetEvents);try{for(i.s();!(r=i.n()).done;){var o=r.value,a=this.sourceIdEditorMap.get(o.sourceId);a&&a.addMarkers([o])}}catch(s){i.e(s)}finally{i.f()}}}},{key:"onMidiEvent",value:function(e){e.midiEvent.eventType===w.EventType.NoteOn&&this.updateMarkers(e.position+this.beginQuarters)}},{key:"onPlayerState",value:function(e,t){t===b.PlayerState.Stopped&&(this.clearAllEventMarkers(),this.workspaceControlsElement.classList.remove("wm-state-playing"),this.workspaceControlsElement.classList.add("wm-state-stopped")),t===b.PlayerState.Playing&&(this.workspaceControlsElement.classList.remove("wm-state-stopped"),this.workspaceControlsElement.classList.add("wm-state-playing")),this.playerState=t,this.onStateChanged(e,t)}},{key:"updateSourceIdMap",value:function(e){var n=this;this.sourceIdEditorMap.clear();var r,i=t(e.midi.sources);try{var o=function(){var e=r.value,t=n.editors.find(function(t){return"/"+t.filename===e.path});if(!t)return"continue";n.sourceIdEditorMap.set(e.sourceId,t)};for(i.s();!(r=i.n()).done;)o()}catch(a){i.e(a)}finally{i.f()}}},{key:"onPlayClicked",value:function(e){this.play(e)}},{key:"play",value:function(e){return v(this,void 0,void 0,regeneratorRuntime.mark(function t(){var n=this;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,g.WM_Player.prepare(e);case 2:return t.next=4,g.resetCompiler();case 4:this.playerIsFetching=!0,this.onPlayerState(this.playerState,b.PlayerState.Preparing),setTimeout(function(){return v(n,void 0,void 0,regeneratorRuntime.mark(function t(){var n;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,n=this.editors.map(function(e){return{path:e.filename,data:e.getScriptText()}}),this.clearAllEditorMarkers(),t.next=5,g.WM_Compiler.compile(n,this.beginQuarters);case 5:this.document=t.sent,this.onCompiled(this.document),this.updateSourceIdMap(this.document),this.document.midi.warnings&&this.document.midi.warnings.length>0&&this._onWarnings(this.document.midi.warnings),t.next=17;break;case 11:return t.prev=11,t.t0=t.catch(0),this._onError(t.t0.error||t.t0),this.playerIsFetching=!1,this.onPlayerState(this.playerState,b.PlayerState.Stopped),t.abrupt("return");case 17:return g.WM_Player.tempo=this.document.midi.bpm,t.next=20,g.WM_Player.play(this.document.midi.midiData,e,this.onMidiEvent.bind(this),this.onPlayerState.bind(this));case 20:this.playerIsFetching=!1;case 21:case"end":return t.stop()}},t,this,[[0,11]])}))});case 7:case"end":return t.stop()}},t,this)}))}},{key:"download",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"WerckmeisterMidi.mid";return v(this,void 0,void 0,regeneratorRuntime.mark(function t(){var n,r,i;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,g.resetCompiler();case 2:return t.prev=2,n=this.editors.map(function(e){return{path:e.filename,data:e.getScriptText()}}),t.next=6,g.WM_Compiler.compile(n);case 6:this.document=t.sent,t.next=13;break;case 9:return t.prev=9,t.t0=t.catch(2),this._onError(t.t0.error||t.t0),t.abrupt("return");case 13:r="data:midi;base64,".concat(this.document.midi.midiData),(i=document.createElement("a")).href=r,i.download=e,i.click();case 18:case"end":return t.stop()}},t,this,[[2,9]])}))}},{key:"onStopClicked",value:function(e){this.stop()}},{key:"stop",value:function(){return v(this,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,g.WM_Player.stop();case 2:case"end":return e.stop()}},e)}))}},{key:"clearAllEditorMarkers",value:function(){var e,n=t(this.editors);try{for(n.s();!(e=n.n()).done;){e.value.clearAllMarkers()}}catch(r){n.e(r)}finally{n.f()}}},{key:"clearAllEventMarkers",value:function(){var e,n=t(this.editors);try{for(n.s();!(e=n.n()).done;){e.value.clearEventMarkers()}}catch(r){n.e(r)}finally{n.f()}}},{key:"_onError",value:function(e){if(e instanceof Error)console.error("".concat(e));else{this.onError(e),console.error("".concat(e.sourceFile,'": ').concat(e.errorMessage));var t=this.getEditorByFileName(e.sourceFile);t&&t.setError(e)}}},{key:"_onWarnings",value:function(e){var n,r=t(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;console.warn(i.message),this.getEditorByFileName(i.sourceFile).addWarning(i)}}catch(o){r.e(o)}finally{r.f()}this.onWarnings(e)}},{key:"init",value:function(){this.initListener(),this.readAttributes()}},{key:"loadExternalCss",value:function(e){return v(this,void 0,void 0,regeneratorRuntime.mark(function t(){var n,r;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,k.fetchText(e);case 2:n=t.sent,(r=document.createElement("style")).innerText=n,this.shadowRoot.appendChild(r);case 6:case"end":return t.stop()}},t,this)}))}},{key:"readAttributes",value:function(){return v(this,void 0,void 0,regeneratorRuntime.mark(function e(){var t,n,r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:(t=this.attributes.getNamedItem("wm-onerror"))&&console.error(t),(n=this.attributes.getNamedItem("wm-css-url"))&&this.loadExternalCss(n.value),(r=this.attributes.getNamedItem("wm-soundfont-url"))&&g.WM_Player.setSoundfontRepoUrl(r.value);case 6:case"end":return e.stop()}},e,this)}))}},{key:"registerEditor",value:function(e){this.editors.push(e),e.initiated.then(function(){var t=e.filename,n=e.getScriptText();g.WM_Compiler.writeFileToFS(t,n)})}},{key:"unregisterEditor",value:function(e){var t=this.editors.indexOf(e);t<0||this.editors.splice(t,1)}},{key:"getPlayerImpl",value:function(){return g.WM_Player}},{key:"isClean",value:function(){return E.every(this.editors,function(e){return e.isClean()})}},{key:"markClean",value:function(){var e,n=t(this.editors);try{for(n.s();!(e=n.n()).done;){e.value.markClean()}}catch(r){n.e(r)}finally{n.f()}}}]),r}();exports.Workspace=C;
512
512
  },{"../../Global":"ooUX","../../shared/midiEvent":"vkzS","../../shared/player":"FYcy","../../shared/http":"vSbS","lodash":"B1iE","fs":"rDCW"}],"Rngn":[function(require,module,exports) {
513
513
  "use strict";exports.__esModule=!0,exports.default=function(){},module.exports=exports.default;
514
514
  },{}],"rbXO":[function(require,module,exports) {