@nutrient-sdk/node
Version:
Convert documents in your Node.js apps.
13 lines • 124 kB
JavaScript
/*!
* Nutrient for Node.js 1.1.0 (https://www.nutrient.io/nodejs)
*
* Copyright © 2024-2025 PSPDFKit GmbH. All rights reserved.
*
* THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
* AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE PSPDFKIT LICENSE AGREEMENT.
* UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
* This notice may not be removed from this file.
*
* Nutrient uses several open source third-party components: https://www.nutrient.io/legal/acknowledgements/nodejs-acknowledgements/
*/
var e,t=(e=import.meta.url,async function(t={}){var o,_,a,i,s,m,u,l,c,f,d,p,h,y,g,w,v,E,b,k,S,j,P,D,F,T=void 0!==t?t:{};if(T.ready=new Promise(function(e,t){_=e,a=t}),n)throw Error("Native module already loaded");n=!0,t=T=t(T),T.getWasmIndirectFunctionTable=function(){return k},T.getMemory=function(){return l};var x=Object.assign({},T),N="./this.program",A=(e,t)=>{throw t},M="object"==typeof window,C="function"==typeof importScripts,O="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,R="";if(O){let{createRequire:e}=await import("module");var z=e(import.meta.url),I=z("fs"),G=z("path");R=C?G.dirname(R)+"/":z("url").fileURLToPath(new URL("./",import.meta.url)),i=(e,t)=>(e=es(e)?new URL(e):G.normalize(e),I.readFileSync(e,t?void 0:"utf8")),m=e=>{var t=i(e,!0);return t.buffer||(t=new Uint8Array(t)),t},s=(e,t,r)=>{e=es(e)?new URL(e):G.normalize(e),I.readFile(e,function(e,n){e?r(e):t(n.buffer)})},process.argv.length>1&&(N=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),A=(e,t)=>{throw process.exitCode=e,t},T.inspect=function(){return"[Emscripten Module object]"}}else M||O||C?(M||C)&&(C?R=self.location.href:"undefined"!=typeof document&&document.currentScript&&(R=document.currentScript.src),e&&(R=e),R=0!==R.indexOf("blob:")?R.substr(0,R.replace(/[?#].*/,"").lastIndexOf("/")+1):"",i=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},C&&(m=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),s=(e,t,r)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{if(200==n.status||0==n.status&&n.response)return void t(n.response);r()},n.onerror=r,n.send(null)}):("undefined"!=typeof read&&(i=function(e){return read(e)}),m=function(e){var t;let r;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):("object"==typeof(r=read(e,"binary"))||ea(void 0),r)},s=function(e,t,r){setTimeout(()=>t(m(e)),0)},"undefined"==typeof clearTimeout&&(globalThis.clearTimeout=e=>{}),"undefined"!=typeof scriptArgs?scriptArgs:"undefined"!=typeof arguments&&arguments,"function"==typeof quit&&(A=(e,t)=>{throw setTimeout(()=>{if(!(t instanceof el)){let e=t;t&&"object"==typeof t&&t.stack&&(e=[t,t.stack]),B("exiting due to exception: "+e)}quit(e)}),t}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print));var L=T.print||console.log.bind(console),B=T.printErr||console.warn.bind(console);Object.assign(T,x),x=null,T.arguments&&T.arguments,T.thisProgram&&(N=T.thisProgram),T.quit&&(A=T.quit),T.wasmBinary&&(u=T.wasmBinary);var U=T.noExitRuntime||!0;"object"!=typeof WebAssembly&&ea("no native wasm support detected");var W=!1,q="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function H(e,t,r){for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.buffer&&q)return q.decode(e.subarray(t,o));for(var _="";t<o;){var a=e[t++];if(!(128&a)){_+=String.fromCharCode(a);continue}var i=63&e[t++];if((224&a)==192){_+=String.fromCharCode((31&a)<<6|i);continue}var s=63&e[t++];if((a=(240&a)==224?(15&a)<<12|i<<6|s:(7&a)<<18|i<<12|s<<6|63&e[t++])<65536)_+=String.fromCharCode(a);else{var m=a-65536;_+=String.fromCharCode(55296|m>>10,56320|1023&m)}}return _}function X(e,t){return e?H(d,e,t):""}function V(e,t,r,n){if(!(n>0))return 0;for(var o=r,_=r+n-1,a=0;a<e.length;++a){var i=e.charCodeAt(a);if(i>=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&e.charCodeAt(++a)),i<=127){if(r>=_)break;t[r++]=i}else if(i<=2047){if(r+1>=_)break;t[r++]=192|i>>6,t[r++]=128|63&i}else if(i<=65535){if(r+2>=_)break;t[r++]=224|i>>12,t[r++]=128|i>>6&63,t[r++]=128|63&i}else{if(r+3>=_)break;t[r++]=240|i>>18,t[r++]=128|i>>12&63,t[r++]=128|i>>6&63,t[r++]=128|63&i}}return t[r]=0,r-o}function Y(e){for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);n<=127?t++:n<=2047?t+=2:n>=55296&&n<=57343?(t+=4,++r):t+=3}return t}function J(){var e=l.buffer;T.HEAP8=f=new Int8Array(e),T.HEAP16=p=new Int16Array(e),T.HEAP32=y=new Int32Array(e),T.HEAPU8=d=new Uint8Array(e),T.HEAPU16=h=new Uint16Array(e),T.HEAPU32=g=new Uint32Array(e),T.HEAPF32=w=new Float32Array(e),T.HEAPF64=b=new Float64Array(e),T.HEAP64=v=new BigInt64Array(e),T.HEAPU64=E=new BigUint64Array(e)}var K=[],Z=[],$=[],Q=!1,ee=0,et=0,er=null,en=null;function eo(e){et++,T.monitorRunDependencies&&T.monitorRunDependencies(et)}function e_(e){if(et--,T.monitorRunDependencies&&T.monitorRunDependencies(et),0==et&&(null!==er&&(clearInterval(er),er=null),en)){var t=en;en=null,t()}}function ea(e){T.onAbort&&T.onAbort(e),B(e="Aborted("+e+")"),W=!0,c=1,e+=". Build with -sASSERTIONS for more info.",Q&&tD();var t=new WebAssembly.RuntimeError(e);throw a(t),t}function ei(e){return e.startsWith("data:application/octet-stream;base64,")}function es(e){return e.startsWith("file://")}function em(e){try{if(e==S&&u)return new Uint8Array(u);if(m)return m(e);throw"both async and sync fetching of the wasm failed"}catch(e){ea(e)}}function eu(e,t,n){return(function(e){if(!u&&(M||C)){if("function"==typeof r&&!es(e))return r(e,{credentials:"same-origin"}).then(function(t){if(!t.ok)throw"failed to load wasm binary file at '"+e+"'";return t.arrayBuffer()}).catch(function(){return em(e)});else if(s)return new Promise(function(t,r){s(e,function(e){t(new Uint8Array(e))},r)})}return Promise.resolve().then(function(){return em(e)})})(e).then(function(e){return WebAssembly.instantiate(e,t)}).then(function(e){return e}).then(n,function(e){B("failed to asynchronously prepare wasm: "+e),ea(e)})}function el(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function ec(e){for(;e.length>0;)e.shift()(T)}T.locateFile?ei(S="dotnet.native.wasm")||(o=S,S=T.locateFile?T.locateFile(o,R):R+o):S=new URL("dotnet.native.wasm",import.meta.url).href;var ef=[];function ed(e){var t=ef[e];return t||(e>=ef.length&&(ef.length=e+1),ef[e]=t=k.get(e)),t}var ep={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var r=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:e=>{var t=ep.isAbs(e),r="/"===e.substr(-1);return(e=ep.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=ep.splitPath(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=ep.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return -1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments);return ep.normalize(e.join("/"))},join2:(e,t)=>ep.normalize(e+"/"+t)},eh={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:eb.cwd();if("string"!=typeof n)throw TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t=ep.isAbs(n)}return e=ep.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/"),(t?"/":"")+e||"."},relative:(e,t)=>{function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=eh.resolve(e).substr(1),t=eh.resolve(t).substr(1);for(var n=r(e.split("/")),o=r(t.split("/")),_=Math.min(n.length,o.length),a=_,i=0;i<_;i++)if(n[i]!==o[i]){a=i;break}for(var s=[],i=a;i<n.length;i++)s.push("..");return(s=s.concat(o.slice(a))).join("/")}};function ey(e,t,r){var n=Array(r>0?r:Y(e)+1),o=V(e,n,0,n.length);return t&&(n.length=o),n}var eg={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){eg.ttys[e]={input:[],output:[],ops:t},eb.registerDevice(e,eg.stream_ops)},stream_ops:{open:function(e){var t=eg.ttys[e.node.rdev];if(!t)throw new eb.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.fsync(e.tty)},fsync:function(e){e.tty.ops.fsync(e.tty)},read:function(e,t,r,n,o){if(!e.tty||!e.tty.ops.get_char)throw new eb.ErrnoError(60);for(var _,a=0,i=0;i<n;i++){try{_=e.tty.ops.get_char(e.tty)}catch(e){throw new eb.ErrnoError(29)}if(void 0===_&&0===a)throw new eb.ErrnoError(6);if(null==_)break;a++,t[r+i]=_}return a&&(e.node.timestamp=Date.now()),a},write:function(e,t,r,n,o){if(!e.tty||!e.tty.ops.put_char)throw new eb.ErrnoError(60);try{for(var _=0;_<n;_++)e.tty.ops.put_char(e.tty,t[r+_])}catch(e){throw new eb.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),_}},default_tty_ops:{get_char:function(e){if(!e.input.length){var t=null;if(O){var r=Buffer.alloc(256),n=0;try{n=I.readSync(process.stdin.fd,r,0,256,-1)}catch(e){if(e.toString().includes("EOF"))n=0;else throw e}t=n>0?r.slice(0,n).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;e.input=ey(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(L(H(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(L(H(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(B(H(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(B(H(e.output,0)),e.output=[])}}};function ew(e){var t,r=tS(65536,e=65536*Math.ceil(e/65536));return r?(t=e,d.fill(0,r,r+t),r):0}var ev={ops_table:null,mount:function(e){return ev.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(eb.isBlkdev(r)||eb.isFIFO(r))throw new eb.ErrnoError(63);ev.ops_table||(ev.ops_table={dir:{node:{getattr:ev.node_ops.getattr,setattr:ev.node_ops.setattr,lookup:ev.node_ops.lookup,mknod:ev.node_ops.mknod,rename:ev.node_ops.rename,unlink:ev.node_ops.unlink,rmdir:ev.node_ops.rmdir,readdir:ev.node_ops.readdir,symlink:ev.node_ops.symlink},stream:{llseek:ev.stream_ops.llseek}},file:{node:{getattr:ev.node_ops.getattr,setattr:ev.node_ops.setattr},stream:{llseek:ev.stream_ops.llseek,read:ev.stream_ops.read,write:ev.stream_ops.write,allocate:ev.stream_ops.allocate,mmap:ev.stream_ops.mmap,msync:ev.stream_ops.msync}},link:{node:{getattr:ev.node_ops.getattr,setattr:ev.node_ops.setattr,readlink:ev.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ev.node_ops.getattr,setattr:ev.node_ops.setattr},stream:eb.chrdev_stream_ops}});var o=eb.createNode(e,t,r,n);return eb.isDir(o.mode)?(o.node_ops=ev.ops_table.dir.node,o.stream_ops=ev.ops_table.dir.stream,o.contents={}):eb.isFile(o.mode)?(o.node_ops=ev.ops_table.file.node,o.stream_ops=ev.ops_table.file.stream,o.usedBytes=0,o.contents=null):eb.isLink(o.mode)?(o.node_ops=ev.ops_table.link.node,o.stream_ops=ev.ops_table.link.stream):eb.isChrdev(o.mode)&&(o.node_ops=ev.ops_table.chrdev.node,o.stream_ops=ev.ops_table.chrdev.stream),o.timestamp=Date.now(),e&&(e.contents[t]=o,e.timestamp=o.timestamp),o},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,t){var r=e.contents?e.contents.length:0;if(!(r>=t)){t=Math.max(t,r*(r<1048576?2:1.125)>>>0),0!=r&&(t=Math.max(t,256));var n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{var r=e.contents;e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=eb.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,eb.isDir(e.mode)?t.size=4096:eb.isFile(e.mode)?t.size=e.usedBytes:eb.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&ev.resizeFileStorage(e,t.size)},lookup:function(e,t){throw eb.genericErrors[44]},mknod:function(e,t,r,n){return ev.createNode(e,t,r,n)},rename:function(e,t,r){if(eb.isDir(e.mode)){var n;try{n=eb.lookupNode(t,r)}catch(e){}if(n)for(var o in n.contents)throw new eb.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=r,t.contents[r]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink:function(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir:function(e,t){var r=eb.lookupNode(e,t);for(var n in r.contents)throw new eb.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir:function(e){var t=[".",".."];for(var r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink:function(e,t,r){var n=ev.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!eb.isLink(e.mode))throw new eb.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,r,n,o){var _=e.node.contents;if(o>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-o,n);if(a>8&&_.subarray)t.set(_.subarray(o,o+a),r);else for(var i=0;i<a;i++)t[r+i]=_[o+i];return a},write:function(e,t,r,n,o,_){if(t.buffer===f.buffer&&(_=!1),!n)return 0;var a=e.node;if(a.timestamp=Date.now(),t.subarray&&(!a.contents||a.contents.subarray)){if(_)return a.contents=t.subarray(r,r+n),a.usedBytes=n,n;else if(0===a.usedBytes&&0===o)return a.contents=t.slice(r,r+n),a.usedBytes=n,n;else if(o+n<=a.usedBytes)return a.contents.set(t.subarray(r,r+n),o),n}if(ev.expandFileStorage(a,o+n),a.contents.subarray&&t.subarray)a.contents.set(t.subarray(r,r+n),o);else for(var i=0;i<n;i++)a.contents[o+i]=t[r+i];return a.usedBytes=Math.max(a.usedBytes,o+n),n},llseek:function(e,t,r){var n=t;if(1===r?n+=e.position:2===r&&eb.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new eb.ErrnoError(28);return n},allocate:function(e,t,r){ev.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap:function(e,t,r,n,o){if(!eb.isFile(e.node.mode))throw new eb.ErrnoError(43);var _,a,i=e.node.contents;if(2&o||i.buffer!==f.buffer){if((r>0||r+t<i.length)&&(i=i.subarray?i.subarray(r,r+t):Array.prototype.slice.call(i,r,r+t)),a=!0,!(_=ew(t)))throw new eb.ErrnoError(48);f.set(i,_)}else a=!1,_=i.byteOffset;return{ptr:_,allocated:a}},msync:function(e,t,r,n,o){return ev.stream_ops.write(e,t,0,n,r,!1),0}}},eE={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function(e){C||ea(void 0),eE.reader||(eE.reader=new FileReaderSync);var t=eE.createNode(null,"/",eE.DIR_MODE,0),r={};function n(e){for(var n=e.split("/"),o=t,_=0;_<n.length-1;_++){var a=n.slice(0,_+1).join("/");r[a]||(r[a]=eE.createNode(o,n[_],eE.DIR_MODE,0)),o=r[a]}return o}function o(e){var t=e.split("/");return t[t.length-1]}return Array.prototype.forEach.call(e.opts.files||[],function(e){eE.createNode(n(e.name),o(e.name),eE.FILE_MODE,0,e,e.lastModifiedDate)}),(e.opts.blobs||[]).forEach(function(e){eE.createNode(n(e.name),o(e.name),eE.FILE_MODE,0,e.data)}),(e.opts.packages||[]).forEach(function(e){e.metadata.files.forEach(function(t){var r=t.filename.substr(1);eE.createNode(n(r),o(r),eE.FILE_MODE,0,e.blob.slice(t.start,t.end))})}),t},createNode:function(e,t,r,n,o,_){var a=eb.createNode(e,t,r);return a.mode=r,a.node_ops=eE.node_ops,a.stream_ops=eE.stream_ops,a.timestamp=(_||new Date).getTime(),eE.FILE_MODE===eE.DIR_MODE&&ea(void 0),r===eE.FILE_MODE?(a.size=o.size,a.contents=o):(a.size=4096,a.contents={}),e&&(e.contents[t]=a),a},node_ops:{getattr:function(e){return{dev:1,ino:e.id,mode:e.mode,nlink:1,uid:0,gid:0,rdev:void 0,size:e.size,atime:new Date(e.timestamp),mtime:new Date(e.timestamp),ctime:new Date(e.timestamp),blksize:4096,blocks:Math.ceil(e.size/4096)}},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp)},lookup:function(e,t){throw new eb.ErrnoError(44)},mknod:function(e,t,r,n){throw new eb.ErrnoError(63)},rename:function(e,t,r){throw new eb.ErrnoError(63)},unlink:function(e,t){throw new eb.ErrnoError(63)},rmdir:function(e,t){throw new eb.ErrnoError(63)},readdir:function(e){var t=[".",".."];for(var r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink:function(e,t,r){throw new eb.ErrnoError(63)}},stream_ops:{read:function(e,t,r,n,o){if(o>=e.node.size)return 0;var _=e.node.contents.slice(o,o+n),a=eE.reader.readAsArrayBuffer(_);return t.set(new Uint8Array(a),r),_.size},write:function(e,t,r,n,o){throw new eb.ErrnoError(29)},llseek:function(e,t,r){var n=t;if(1===r?n+=e.position:2===r&&eb.isFile(e.node.mode)&&(n+=e.node.size),n<0)throw new eb.ErrnoError(28);return n}}},eb={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(e,t={})=>{if(!(e=eh.resolve(e)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new eb.ErrnoError(32);for(var r=e.split("/").filter(e=>!!e),n=eb.root,o="/",_=0;_<r.length;_++){var a=_===r.length-1;if(a&&t.parent)break;if(n=eb.lookupNode(n,r[_]),o=ep.join2(o,r[_]),eb.isMountpoint(n)&&(!a||a&&t.follow_mount)&&(n=n.mounted.root),!a||t.follow)for(var i=0;eb.isLink(n.mode);){var s=eb.readlink(o);if(o=eh.resolve(ep.dirname(o),s),n=eb.lookupPath(o,{recurse_count:t.recurse_count+1}).node,i++>40)throw new eb.ErrnoError(32)}}return{path:o,node:n}},getPath:e=>{for(var t;;){if(eb.isRoot(e)){var r=e.mount.mountpoint;if(!t)return r;return"/"!==r[r.length-1]?r+"/"+t:r+t}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:(e,t)=>{for(var r=0,n=0;n<t.length;n++)r=(r<<5)-r+t.charCodeAt(n)|0;return(e+r>>>0)%eb.nameTable.length},hashAddNode:e=>{var t=eb.hashName(e.parent.id,e.name);e.name_next=eb.nameTable[t],eb.nameTable[t]=e},hashRemoveNode:e=>{var t=eb.hashName(e.parent.id,e.name);if(eb.nameTable[t]===e)eb.nameTable[t]=e.name_next;else for(var r=eb.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:(e,t)=>{var r=eb.mayLookup(e);if(r)throw new eb.ErrnoError(r,e);for(var n=eb.hashName(e.id,t),o=eb.nameTable[n];o;o=o.name_next){var _=o.name;if(o.parent.id===e.id&&_===t)return o}return eb.lookup(e,t)},createNode:(e,t,r,n)=>{var o=new eb.FSNode(e,t,r,n);return eb.hashAddNode(o),o},destroyNode:e=>{eb.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>(61440&e)==32768,isDir:e=>(61440&e)==16384,isLink:e=>(61440&e)==40960,isChrdev:e=>(61440&e)==8192,isBlkdev:e=>(61440&e)==24576,isFIFO:e=>(61440&e)==4096,isSocket:e=>(49152&e)==49152,flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var t=eb.flagModes[e];if(void 0===t)throw Error("Unknown file open mode: "+e);return t},flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>eb.ignorePermissions?0:t.includes("r")&&!(292&e.mode)||t.includes("w")&&!(146&e.mode)||t.includes("x")&&!(73&e.mode)?2:0,mayLookup:e=>{var t=eb.nodePermissions(e,"x");return t||2*!e.node_ops.lookup},mayCreate:(e,t)=>{try{return eb.lookupNode(e,t),20}catch(e){}return eb.nodePermissions(e,"wx")},mayDelete:(e,t,r)=>{try{n=eb.lookupNode(e,t)}catch(e){return e.errno}var n,o=eb.nodePermissions(e,"wx");if(o)return o;if(r){if(!eb.isDir(n.mode))return 54;if(eb.isRoot(n)||eb.getPath(n)===eb.cwd())return 10}else if(eb.isDir(n.mode))return 31;return 0},mayOpen:(e,t)=>e?eb.isLink(e.mode)?32:eb.isDir(e.mode)&&("r"!==eb.flagsToPermissionString(t)||512&t)?31:eb.nodePermissions(e,eb.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:(e=0,t=eb.MAX_OPEN_FDS)=>{for(var r=e;r<=t;r++)if(!eb.streams[r])return r;throw new eb.ErrnoError(33)},getStream:e=>eb.streams[e],createStream:(e,t,r)=>{eb.FSStream||(eb.FSStream=function(){this.shared={}},eb.FSStream.prototype={},Object.defineProperties(eb.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return(2097155&this.flags)!=1}},isWrite:{get:function(){return(2097155&this.flags)!=0}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(e){this.shared.flags=e}},position:{get:function(){return this.shared.position},set:function(e){this.shared.position=e}}})),e=Object.assign(new eb.FSStream,e);var n=eb.nextfd(t,r);return e.fd=n,eb.streams[n]=e,e},closeStream:e=>{eb.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=eb.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new eb.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{eb.devices[e]={stream_ops:t}},getDevice:e=>eb.devices[e],getMounts:e=>{for(var t=[],r=[e];r.length;){var n=r.pop();t.push(n),r.push.apply(r,n.mounts)}return t},syncfs:(e,t)=>{"function"==typeof e&&(t=e,e=!1),eb.syncFSRequests++,eb.syncFSRequests>1&&B("warning: "+eb.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=eb.getMounts(eb.root.mount),n=0;function o(e){return eb.syncFSRequests--,t(e)}function _(e){if(e)return _.errored?void 0:(_.errored=!0,o(e));++n>=r.length&&o(null)}r.forEach(t=>{if(!t.type.syncfs)return _(null);t.type.syncfs(t,e,_)})},mount:(e,t,r)=>{var n,o="/"===r,_=!r;if(o&&eb.root)throw new eb.ErrnoError(10);if(!o&&!_){var a=eb.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,eb.isMountpoint(n))throw new eb.ErrnoError(10);if(!eb.isDir(n.mode))throw new eb.ErrnoError(54)}var i={type:e,opts:t,mountpoint:r,mounts:[]},s=e.mount(i);return s.mount=i,i.root=s,o?eb.root=s:n&&(n.mounted=i,n.mount&&n.mount.mounts.push(i)),s},unmount:e=>{var t=eb.lookupPath(e,{follow_mount:!1});if(!eb.isMountpoint(t.node))throw new eb.ErrnoError(28);var r=t.node,n=r.mounted,o=eb.getMounts(n);Object.keys(eb.nameTable).forEach(e=>{for(var t=eb.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&eb.destroyNode(t),t=r}}),r.mounted=null;var _=r.mount.mounts.indexOf(n);r.mount.mounts.splice(_,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,r)=>{var n=eb.lookupPath(e,{parent:!0}).node,o=ep.basename(e);if(!o||"."===o||".."===o)throw new eb.ErrnoError(28);var _=eb.mayCreate(n,o);if(_)throw new eb.ErrnoError(_);if(!n.node_ops.mknod)throw new eb.ErrnoError(63);return n.node_ops.mknod(n,o,t,r)},create:(e,t)=>(t=(void 0!==t?t:438)&4095|32768,eb.mknod(e,t,0)),mkdir:(e,t)=>(t=(void 0!==t?t:511)&1023|16384,eb.mknod(e,t,0)),mkdirTree:(e,t)=>{for(var r=e.split("/"),n="",o=0;o<r.length;++o)if(r[o]){n+="/"+r[o];try{eb.mkdir(n,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:(e,t,r)=>(void 0===r&&(r=t,t=438),t|=8192,eb.mknod(e,t,r)),symlink:(e,t)=>{if(!eh.resolve(e))throw new eb.ErrnoError(44);var r=eb.lookupPath(t,{parent:!0}).node;if(!r)throw new eb.ErrnoError(44);var n=ep.basename(t),o=eb.mayCreate(r,n);if(o)throw new eb.ErrnoError(o);if(!r.node_ops.symlink)throw new eb.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename:(e,t)=>{var r,n,o,_,a=ep.dirname(e),i=ep.dirname(t),s=ep.basename(e),m=ep.basename(t);if(n=eb.lookupPath(e,{parent:!0}).node,o=eb.lookupPath(t,{parent:!0}).node,!n||!o)throw new eb.ErrnoError(44);if(n.mount!==o.mount)throw new eb.ErrnoError(75);var u=eb.lookupNode(n,s),l=eh.relative(e,i);if("."!==l.charAt(0))throw new eb.ErrnoError(28);if("."!==(l=eh.relative(t,a)).charAt(0))throw new eb.ErrnoError(55);try{_=eb.lookupNode(o,m)}catch(e){}if(u!==_){var c=eb.isDir(u.mode),f=eb.mayDelete(n,s,c);if(f||(f=_?eb.mayDelete(o,m,c):eb.mayCreate(o,m)))throw new eb.ErrnoError(f);if(!n.node_ops.rename)throw new eb.ErrnoError(63);if(eb.isMountpoint(u)||_&&eb.isMountpoint(_))throw new eb.ErrnoError(10);if(o!==n&&(f=eb.nodePermissions(n,"w")))throw new eb.ErrnoError(f);eb.hashRemoveNode(u);try{n.node_ops.rename(u,o,m)}catch(e){throw e}finally{eb.hashAddNode(u)}}},rmdir:e=>{var t=eb.lookupPath(e,{parent:!0}).node,r=ep.basename(e),n=eb.lookupNode(t,r),o=eb.mayDelete(t,r,!0);if(o)throw new eb.ErrnoError(o);if(!t.node_ops.rmdir)throw new eb.ErrnoError(63);if(eb.isMountpoint(n))throw new eb.ErrnoError(10);t.node_ops.rmdir(t,r),eb.destroyNode(n)},readdir:e=>{var t=eb.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new eb.ErrnoError(54);return t.node_ops.readdir(t)},unlink:e=>{var t=eb.lookupPath(e,{parent:!0}).node;if(!t)throw new eb.ErrnoError(44);var r=ep.basename(e),n=eb.lookupNode(t,r),o=eb.mayDelete(t,r,!1);if(o)throw new eb.ErrnoError(o);if(!t.node_ops.unlink)throw new eb.ErrnoError(63);if(eb.isMountpoint(n))throw new eb.ErrnoError(10);t.node_ops.unlink(t,r),eb.destroyNode(n)},readlink:e=>{var t=eb.lookupPath(e).node;if(!t)throw new eb.ErrnoError(44);if(!t.node_ops.readlink)throw new eb.ErrnoError(28);return eh.resolve(eb.getPath(t.parent),t.node_ops.readlink(t))},stat:(e,t)=>{var r=eb.lookupPath(e,{follow:!t}).node;if(!r)throw new eb.ErrnoError(44);if(!r.node_ops.getattr)throw new eb.ErrnoError(63);return r.node_ops.getattr(r)},lstat:e=>eb.stat(e,!0),chmod:(e,t,r)=>{var n;if(!(n="string"==typeof e?eb.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new eb.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:(e,t)=>{eb.chmod(e,t,!0)},fchmod:(e,t)=>{var r=eb.getStream(e);if(!r)throw new eb.ErrnoError(8);eb.chmod(r.node,t)},chown:(e,t,r,n)=>{var o;if(!(o="string"==typeof e?eb.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new eb.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:(e,t,r)=>{eb.chown(e,t,r,!0)},fchown:(e,t,r)=>{var n=eb.getStream(e);if(!n)throw new eb.ErrnoError(8);eb.chown(n.node,t,r)},truncate:(e,t)=>{if(t<0)throw new eb.ErrnoError(28);if("string"==typeof e){var r;r=eb.lookupPath(e,{follow:!0}).node}else r=e;if(!r.node_ops.setattr)throw new eb.ErrnoError(63);if(eb.isDir(r.mode))throw new eb.ErrnoError(31);if(!eb.isFile(r.mode))throw new eb.ErrnoError(28);var n=eb.nodePermissions(r,"w");if(n)throw new eb.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{var r=eb.getStream(e);if(!r)throw new eb.ErrnoError(8);if((2097155&r.flags)==0)throw new eb.ErrnoError(28);eb.truncate(r.node,t)},utime:(e,t,r)=>{var n=eb.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,r)})},open:(e,t,r)=>{if(""===e)throw new eb.ErrnoError(44);if(t="string"==typeof t?eb.modeStringToFlags(t):t,r=void 0===r?438:r,r=64&t?4095&r|32768:0,"object"==typeof e)n=e;else{e=ep.normalize(e);try{var n;n=eb.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var o=!1;if(64&t)if(n){if(128&t)throw new eb.ErrnoError(20)}else n=eb.mknod(e,r,0),o=!0;if(!n)throw new eb.ErrnoError(44);if(eb.isChrdev(n.mode)&&(t&=-513),65536&t&&!eb.isDir(n.mode))throw new eb.ErrnoError(54);if(!o){var _=eb.mayOpen(n,t);if(_)throw new eb.ErrnoError(_)}512&t&&!o&&eb.truncate(n,0),t&=-131713;var a=eb.createStream({node:n,path:eb.getPath(n),flags:t,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return a.stream_ops.open&&a.stream_ops.open(a),T.logReadFiles&&!(1&t)&&(eb.readFiles||(eb.readFiles={}),e in eb.readFiles||(eb.readFiles[e]=1)),a},close:e=>{if(eb.isClosed(e))throw new eb.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{eb.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,r)=>{if(eb.isClosed(e))throw new eb.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new eb.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new eb.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:(e,t,r,n,o)=>{if(n<0||o<0)throw new eb.ErrnoError(28);if(eb.isClosed(e)||(2097155&e.flags)==1)throw new eb.ErrnoError(8);if(eb.isDir(e.node.mode))throw new eb.ErrnoError(31);if(!e.stream_ops.read)throw new eb.ErrnoError(28);var _=void 0!==o;if(_){if(!e.seekable)throw new eb.ErrnoError(70)}else o=e.position;var a=e.stream_ops.read(e,t,r,n,o);return _||(e.position+=a),a},write:(e,t,r,n,o,_)=>{if(n<0||o<0)throw new eb.ErrnoError(28);if(eb.isClosed(e)||(2097155&e.flags)==0)throw new eb.ErrnoError(8);if(eb.isDir(e.node.mode))throw new eb.ErrnoError(31);if(!e.stream_ops.write)throw new eb.ErrnoError(28);e.seekable&&1024&e.flags&&eb.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new eb.ErrnoError(70)}else o=e.position;var i=e.stream_ops.write(e,t,r,n,o,_);return a||(e.position+=i),i},allocate:(e,t,r)=>{if(eb.isClosed(e))throw new eb.ErrnoError(8);if(t<0||r<=0)throw new eb.ErrnoError(28);if((2097155&e.flags)==0)throw new eb.ErrnoError(8);if(!eb.isFile(e.node.mode)&&!eb.isDir(e.node.mode))throw new eb.ErrnoError(43);if(!e.stream_ops.allocate)throw new eb.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:(e,t,r,n,o)=>{if((2&n)!=0&&(2&o)==0&&(2097155&e.flags)!=2||(2097155&e.flags)==1)throw new eb.ErrnoError(2);if(!e.stream_ops.mmap)throw new eb.ErrnoError(43);return e.stream_ops.mmap(e,t,r,n,o)},msync:(e,t,r,n,o)=>e.stream_ops.msync?e.stream_ops.msync(e,t,r,n,o):0,munmap:e=>0,ioctl:(e,t,r)=>{if(!e.stream_ops.ioctl)throw new eb.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile:(e,t={})=>{if(t.flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw Error('Invalid encoding type "'+t.encoding+'"');var r,n=eb.open(e,t.flags),o=eb.stat(e).size,_=new Uint8Array(o);return eb.read(n,_,0,o,0),"utf8"===t.encoding?r=H(_,0):"binary"===t.encoding&&(r=_),eb.close(n),r},writeFile:(e,t,r={})=>{r.flags=r.flags||577;var n=eb.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(Y(t)+1),_=V(t,o,0,o.length);eb.write(n,o,0,_,void 0,r.canOwn)}else if(ArrayBuffer.isView(t))eb.write(n,t,0,t.byteLength,void 0,r.canOwn);else throw Error("Unsupported data type");eb.close(n)},cwd:()=>eb.currentPath,chdir:e=>{var t=eb.lookupPath(e,{follow:!0});if(null===t.node)throw new eb.ErrnoError(44);if(!eb.isDir(t.node.mode))throw new eb.ErrnoError(54);var r=eb.nodePermissions(t.node,"x");if(r)throw new eb.ErrnoError(r);eb.currentPath=t.path},createDefaultDirectories:()=>{eb.mkdir("/tmp"),eb.mkdir("/home"),eb.mkdir("/home/web_user")},createDefaultDevices:()=>{eb.mkdir("/dev"),eb.registerDevice(eb.makedev(1,3),{read:()=>0,write:(e,t,r,n,o)=>n}),eb.mkdev("/dev/null",eb.makedev(1,3)),eg.register(eb.makedev(5,0),eg.default_tty_ops),eg.register(eb.makedev(6,0),eg.default_tty1_ops),eb.mkdev("/dev/tty",eb.makedev(5,0)),eb.mkdev("/dev/tty1",eb.makedev(6,0));var e=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return()=>(crypto.getRandomValues(e),e[0])}if(O)try{var t=z("crypto");return()=>t.randomBytes(1)[0]}catch(e){}return()=>ea("randomDevice")}();eb.createDevice("/dev","random",e),eb.createDevice("/dev","urandom",e),eb.mkdir("/dev/shm"),eb.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{eb.mkdir("/proc");var e=eb.mkdir("/proc/self");eb.mkdir("/proc/self/fd"),eb.mount({mount:()=>{var t=eb.createNode(e,"fd",16895,73);return t.node_ops={lookup:(e,t)=>{var r=eb.getStream(+t);if(!r)throw new eb.ErrnoError(8);var n={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>r.path}};return n.parent=n,n}},t}},{},"/proc/self/fd")},createStandardStreams:()=>{T.stdin?eb.createDevice("/dev","stdin",T.stdin):eb.symlink("/dev/tty","/dev/stdin"),T.stdout?eb.createDevice("/dev","stdout",null,T.stdout):eb.symlink("/dev/tty","/dev/stdout"),T.stderr?eb.createDevice("/dev","stderr",null,T.stderr):eb.symlink("/dev/tty1","/dev/stderr"),eb.open("/dev/stdin",0),eb.open("/dev/stdout",1),eb.open("/dev/stderr",1)},ensureErrnoError:()=>{eb.ErrnoError||(eb.ErrnoError=function(e,t){this.name="ErrnoError",this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},eb.ErrnoError.prototype=Error(),eb.ErrnoError.prototype.constructor=eb.ErrnoError,[44].forEach(e=>{eb.genericErrors[e]=new eb.ErrnoError(e),eb.genericErrors[e].stack="<generic error, no stack>"}))},staticInit:()=>{eb.ensureErrnoError(),eb.nameTable=Array(4096),eb.mount(ev,{},"/"),eb.createDefaultDirectories(),eb.createDefaultDevices(),eb.createSpecialDirectories(),eb.filesystems={MEMFS:ev,WORKERFS:eE}},init:(e,t,r)=>{eb.init.initialized=!0,eb.ensureErrnoError(),T.stdin=e||T.stdin,T.stdout=t||T.stdout,T.stderr=r||T.stderr,eb.createStandardStreams()},quit:()=>{eb.init.initialized=!1;for(var e=0;e<eb.streams.length;e++){var t=eb.streams[e];t&&eb.close(t)}},getMode:(e,t)=>{var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:(e,t)=>{var r=eb.analyzePath(e,t);return r.exists?r.object:null},analyzePath:(e,t)=>{try{var r=eb.lookupPath(e,{follow:!t});e=r.path}catch(e){}var n={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var r=eb.lookupPath(e,{parent:!0});n.parentExists=!0,n.parentPath=r.path,n.parentObject=r.node,n.name=ep.basename(e),r=eb.lookupPath(e,{follow:!t}),n.exists=!0,n.path=r.path,n.object=r.node,n.name=r.node.name,n.isRoot="/"===r.path}catch(e){n.error=e.errno}return n},createPath:(e,t,r,n)=>{e="string"==typeof e?e:eb.getPath(e);for(var o=t.split("/").reverse();o.length;){var _=o.pop();if(_){var a=ep.join2(e,_);try{eb.mkdir(a)}catch(e){}e=a}}return a},createFile:(e,t,r,n,o)=>{var _=ep.join2("string"==typeof e?e:eb.getPath(e),t),a=eb.getMode(n,o);return eb.create(_,a)},createDataFile:(e,t,r,n,o,_)=>{var a=t;e&&(e="string"==typeof e?e:eb.getPath(e),a=t?ep.join2(e,t):e);var i=eb.getMode(n,o),s=eb.create(a,i);if(r){if("string"==typeof r){for(var m=Array(r.length),u=0,l=r.length;u<l;++u)m[u]=r.charCodeAt(u);r=m}eb.chmod(s,146|i);var c=eb.open(s,577);eb.write(c,r,0,r.length,0,_),eb.close(c),eb.chmod(s,i)}return s},createDevice:(e,t,r,n)=>{var o=ep.join2("string"==typeof e?e:eb.getPath(e),t),_=eb.getMode(!!r,!!n);eb.createDevice.major||(eb.createDevice.major=64);var a=eb.makedev(eb.createDevice.major++,0);return eb.registerDevice(a,{open:e=>{e.seekable=!1},close:e=>{n&&n.buffer&&n.buffer.length&&n(10)},read:(e,t,n,o,_)=>{for(var a,i=0,s=0;s<o;s++){try{a=r()}catch(e){throw new eb.ErrnoError(29)}if(void 0===a&&0===i)throw new eb.ErrnoError(6);if(null==a)break;i++,t[n+s]=a}return i&&(e.node.timestamp=Date.now()),i},write:(e,t,r,o,_)=>{for(var a=0;a<o;a++)try{n(t[r+a])}catch(e){throw new eb.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),eb.mkdev(o,_,a)},forceLoadFile:e=>{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(i)try{e.contents=ey(i(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new eb.ErrnoError(29)}else throw Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:(e,t,r,n,o)=>{function _(){this.lengthKnown=!1,this.chunks=[]}if(_.prototype.get=function(e){if(!(e>this.length-1)&&!(e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},_.prototype.setDataGetter=function(e){this.getter=e},_.prototype.cacheLength=function(){var e,t=new XMLHttpRequest;if(t.open("HEAD",r,!1),t.send(null),!(t.status>=200&&t.status<300||304===t.status))throw Error("Couldn't load "+r+". Status: "+t.status);var n=Number(t.getResponseHeader("Content-length")),o=(e=t.getResponseHeader("Accept-Ranges"))&&"bytes"===e,_=(e=t.getResponseHeader("Content-Encoding"))&&"gzip"===e,a=1048576;o||(a=n);var i=(e,t)=>{if(e>t)throw Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>n-1)throw Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",r,!1),n!==a&&o.setRequestHeader("Range","bytes="+e+"-"+t),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 Error("Couldn't load "+r+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):ey(o.responseText||"",!0)},s=this;s.setDataGetter(e=>{var t=e*a,r=(e+1)*a-1;if(r=Math.min(r,n-1),void 0===s.chunks[e]&&(s.chunks[e]=i(t,r)),void 0===s.chunks[e])throw Error("doXHR failed!");return s.chunks[e]}),(_||!n)&&(a=n=1,a=n=this.getter(0).length,L("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(!C)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new _;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var i={isDevice:!1,contents:a}}else var i={isDevice:!1,url:r};var s=eb.createFile(e,t,i,n,o);i.contents?s.contents=i.contents:i.url&&(s.contents=null,s.url=i.url),Object.defineProperties(s,{usedBytes:{get:function(){return this.contents.length}}});var m={};function u(e,t,r,n,o){var _=e.node.contents;if(o>=_.length)return 0;var a=Math.min(_.length-o,n);if(_.slice)for(var i=0;i<a;i++)t[r+i]=_[o+i];else for(var i=0;i<a;i++)t[r+i]=_.get(o+i);return a}return Object.keys(s.stream_ops).forEach(e=>{var t=s.stream_ops[e];m[e]=function(){return eb.forceLoadFile(s),t.apply(null,arguments)}}),m.read=(e,t,r,n,o)=>(eb.forceLoadFile(s),u(e,t,r,n,o)),m.mmap=(e,t,r,n,o)=>{eb.forceLoadFile(s);var _=ew(t);if(!_)throw new eb.ErrnoError(48);return u(e,f,_,t,r),{ptr:_,allocated:!0}},s.stream_ops=m,s},createPreloadedFile:(e,t,r,n,o,_,a,i,m,u)=>{var l,c,f,d,p,h=t?eh.resolve(ep.join2(e,t)):e,y="cp "+h;function g(r){function s(r){u&&u(),i||eb.createDataFile(e,t,r,n,o,m),_&&_(),e_(y)}Browser.handledByPreloadPlugin(r,h,s,()=>{a&&a(),e_(y)})||s(r)}eo(y),"string"==typeof r?(l=r,c=e=>g(e),f=a,p="al "+l,s(l,e=>{e||ea('Loading data file "'+l+'" failed (no arrayBuffer).'),c(new Uint8Array(e)),p&&e_(p)},e=>{if(f)f();else throw'Loading data file "'+l+'" failed.'}),p&&eo(p)):g(r)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(e,t=()=>{},r=()=>{})=>{var n=eb.indexedDB();try{var o=n.open(eb.DB_NAME(),eb.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=()=>{L("creating db"),o.result.createObjectStore(eb.DB_STORE_NAME)},o.onsuccess=()=>{var n=o.result.transaction([eb.DB_STORE_NAME],"readwrite"),_=n.objectStore(eb.DB_STORE_NAME),a=0,i=0,s=e.length;function m(){0==i?t():r()}e.forEach(e=>{var t=_.put(eb.analyzePath(e).object.contents,e);t.onsuccess=()=>{++a+i==s&&m()},t.onerror=()=>{i++,a+i==s&&m()}}),n.onerror=r},o.onerror=r},loadFilesFromDB:(e,t=()=>{},r=()=>{})=>{var n=eb.indexedDB();try{var o=n.open(eb.DB_NAME(),eb.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=()=>{var n=o.result;try{var _=n.transaction([eb.DB_STORE_NAME],"readonly")}catch(e){r(e);return}var a=_.objectStore(eb.DB_STORE_NAME),i=0,s=0,m=e.length;function u(){0==s?t():r()}e.forEach(e=>{var t=a.get(e);t.onsuccess=()=>{eb.analyzePath(e).exists&&eb.unlink(e),eb.createDataFile(ep.dirname(e),ep.basename(e),t.result,!0,!0,!0),++i+s==m&&u()},t.onerror=()=>{s++,i+s==m&&u()}}),_.onerror=r},o.onerror=r}},ek={DEFAULT_POLLMASK:5,calculateAt:function(e,t,r){if(ep.isAbs(t))return t;if(-100===e)n=eb.cwd();else{var n;n=ek.getStreamFromFD(e).path}if(0==t.length){if(!r)throw new eb.ErrnoError(44);return n}return ep.join2(n,t)},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&ep.normalize(t)!==ep.normalize(eb.getPath(e.node)))return -54;throw e}y[r>>2]=n.dev,y[r+8>>2]=n.ino,y[r+12>>2]=n.mode,g[r+16>>2]=n.nlink,y[r+20>>2]=n.uid,y[r+24>>2]=n.gid,y[r+28>>2]=n.rdev,P=[n.size>>>0,+Math.abs(j=n.size)>=1?j>0?(0|Math.min(+Math.floor(j/0x100000000),0xffffffff))>>>0:~~Math.ceil((j-(~~j>>>0))/0x100000000)>>>0:0],y[r+40>>2]=P[0],y[r+44>>2]=P[1],y[r+48>>2]=4096,y[r+52>>2]=n.blocks;var o=n.atime.getTime(),_=n.mtime.getTime(),a=n.ctime.getTime();return P=[Math.floor(o/1e3)>>>0,+Math.abs(j=Math.floor(o/1e3))>=1?j>0?(0|Math.min(+Math.floor(j/0x100000000),0xffffffff))>>>0:~~Math.ceil((j-(~~j>>>0))/0x100000000)>>>0:0],y[r+56>>2]=P[0],y[r+60>>2]=P[1],g[r+64>>2]=o%1e3*1e3,P=[Math.floor(_/1e3)>>>0,+Math.abs(j=Math.floor(_/1e3))>=1?j>0?(0|Math.min(+Math.floor(j/0x100000000),0xffffffff))>>>0:~~Math.ceil((j-(~~j>>>0))/0x100000000)>>>0:0],y[r+72>>2]=P[0],y[r+76>>2]=P[1],g[r+80>>2]=_%1e3*1e3,P=[Math.floor(a/1e3)>>>0,+Math.abs(j=Math.floor(a/1e3))>=1?j>0?(0|Math.min(+Math.floor(j/0x100000000),0xffffffff))>>>0:~~Math.ceil((j-(~~j>>>0))/0x100000000)>>>0:0],y[r+88>>2]=P[0],y[r+92>>2]=P[1],g[r+96>>2]=a%1e3*1e3,P=[n.ino>>>0,+Math.abs(j=n.ino)>=1?j>0?(0|Math.min(+Math.floor(j/0x100000000),0xffffffff))>>>0:~~Math.ceil((j-(~~j>>>0))/0x100000000)>>>0:0],y[r+104>>2]=P[0],y[r+108>>2]=P[1],0},doMsync:function(e,t,r,n,o){if(!eb.isFile(t.node.mode))throw new eb.ErrnoError(43);if(2&n)return 0;var _=d.slice(e,e+r);eb.msync(t,_,o,r,n)},varargs:void 0,get:function(){return ek.varargs+=4,y[ek.varargs-4>>2]},getStr:function(e){return X(e)},getStreamFromFD:function(e){var t=eb.getStream(e);if(!t)throw new eb.ErrnoError(8);return t}},eS={mount:function(e){return T.websocket=T.websocket&&"object"==typeof T.websocket?T.websocket:{},T.websocket._callbacks={},T.websocket.on=function(e,t){return"function"==typeof t&&(this._callbacks[e]=t),this},T.websocket.emit=function(e,t){"function"==typeof this._callbacks[e]&&this._callbacks[e].call(this,t)},eb.createNode(null,"/",16895,0)},createSocket:function(e,t,r){if(1==(t&=-526337)&&r&&6!=r)throw new eb.ErrnoError(66);var n={family:e,type:t,protocol:r,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:eS.websocket_sock_ops},o=eS.nextname(),_=eb.createNode(eS.root,o,49152,0);return _.sock=n,n.stream=eb.createStream({path:o,node:_,flags:2,seekable:!1,stream_ops:eS.stream_ops}),n},getSocket:function(e){var t=eb.getStream(e);return t&&eb.isSocket(t.node.mode)?t.node.sock:null},stream_ops:{poll:function(e){var t=e.node.sock;return t.sock_ops.poll(t)},ioctl:function(e,t,r){var n=e.node.sock;return n.sock_ops.ioctl(n,t,r)},read:function(e,t,r,n,o){var _=e.node.sock,a=_.sock_ops.recvmsg(_,n);return a?(t.set(a.buffer,r),a.buffer.length):0},write:function(e,t,r,n,o){var _=e.node.sock;return _.sock_ops.sendmsg(_,t,r,n)},close:function(e){var t=e.node.sock;t.sock_ops.close(t)}},nextname:function(){return eS.nextname.current||(eS.nextname.current=0),"socket["+eS.nextname.current+++"]"},websocket_sock_ops:{createPeer:function(e,t,r){if("object"==typeof t&&(o=t,t=null,r=null),o)if(o._socket)t=o._socket.remoteAddress,r=o._socket.remotePort;else{var n=/ws[s]?:\/\/([^:]+):(\d+)/.exec(o.url);if(!n)throw Error("WebSocket URL must be in the format ws(s)://address:port");t=n[1],r=parseInt(n[2],10)}else try{var o,_,a=T.websocket&&"object"==typeof T.websocket,i="ws:#".replace("#","//");if(a&&"string"==typeof T.websocket.url&&(i=T.websocket.url),"ws://"===i||"wss://"===i){var s=t.split("/");i=i+s[0]+":"+r+"/"+s.slice(1).join("/")}var m="binary";a&&"string"==typeof T.websocket.subprotocol&&(m=T.websocket.subprotocol);var u=void 0;"null"!==m&&(u=m=m.replace(/^ +| +$/g,"").split(/ *, */)),a&&null===T.websocket.subprotocol&&(m="null",u=void 0),(o=new(O?z("ws"):WebSocket)(i,u)).binaryType="arraybuffer"}catch(e){throw new eb.ErrnoError(23)}var l={addr:t,port:r,socket:o,dgram_send_queue:[]};return eS.websocket_sock_ops.addPeer(e,l),eS.websocket_sock_ops.handlePeerEvents(e,l),2===e.type&&void 0!==e.sport&&l.dgram_send_queue.push(new Uint8Array([255,255,255,255,112,111,114,116,(65280&e.sport)>>8,255&e.sport])),l},getPeer:function(e,t,r){return e.peers[t+":"+r]},addPeer:function(e,t){e.peers[t.addr+":"+t.port]=t},removePeer:function(e,t){delete e.peers[t.addr+":"+t.port]},handlePeerEvents:function(e,t){var r=!0,n=function(){T.websocket.emit("open",e.stream.fd);try{for(var r=t.dgram_send_queue.shift();r;)t.socket.send(r),r=t.dgram_send_queue.shift()}catch(e){t.socket.close()}};function o(n){if("string"==typeof n)n=(new TextEncoder).encode(n);else{if(void 0===n.byteLength&&ea(void 0),0==n.byteLength)return;n=new Uint8Array(n)}var o=r;if(r=!1,o&&10===n.length&&255===n[0]&&255===n[1]&&255===n[2]&&255===n[3]&&112===n[4]&&111===n[5]&&114===n[6]&&116===n[7]){var _=n[8]<<8|n[9];eS.websocket_sock_ops.removePeer(e,t),t.port=_,eS.websocket_sock_ops.addPeer(e,t);return}e.recv_queue.push({addr:t.addr,port:t.port,data:n}),T.websocket.emit("message",e.stream.fd)}O?(t.socket.on("open",n),t.socket.on("message",function(e,t){t&&o(new Uint8Array(e).buffer)}),t.socket.on("close",function(){T.websocket.emit("close",e.stream.fd)}),t.socket.on("error",function(t){e.error=14,T.websocket.emit("error",[e.stream.fd,e.error,"ECONNREFUSED: Connection refused"])})):(t.socket.onopen=n,t.socket.onclose=function(){T.websocket.emit("close",e.stream.fd)},t.socket.onmessage=function(e){o(e.data)},t.socket.onerror=function(t){e.error=14,T.websocket.emit("error",[e.stream.fd,e.error,"ECONNREFUSED: Connection refused"])})},poll:function(e){if(1===e.type&&e.server)return 65*!!e.pending.length;var t=0,r=1===e.type?eS.websocket_sock_ops.getPeer(e,e.daddr,e.dport):null;return(e.recv_queue.length||!r||r&&r.socket.readyState===r.socket.CLOSING||r&&r.socket.readyState===r.socket.CLOSED)&&(t|=65),(!r||r&&r.socket.readyState===r.socket.OPEN)&&(t|=4),(r&&r.socket.readyState===r.socket.CLOSING||r&&r.socket.readyState===r.socket.CLOSED)&&(t|=16),t},ioctl:function(e,t,r){if(21531!==t)return 28;var n=0;return e.recv_queue.length&&(n=e.recv_queue[0].data.length),y[r>>2]=n,0},close:function(e){if(e.server){try{e.server.close()}catch(e){}e.server=null}for(var t=Object.keys(e.peers),r=0;r<t.length;r++){var n=e.peers[t[r]];try{n.socket.close()}catch(e){}eS.websocket_sock_ops.removePeer(e,n)}return 0},bind:function(e,t,r){if(void 0!==e.saddr||void 0!==e.sport)throw new eb.ErrnoError(28);if(e.saddr=t,e.sport=r,2===e.type){e.server&&(e.server.close(),e.server=null);try{e.sock_ops.listen(e,0)}catch(e){if("ErrnoError"!==e.name||138!==e.errno)throw e}}},connect:function(e,t,r){if(e.server)throw new eb.ErrnoError(138);if(void 0!==e.daddr&&void 0!==e.dport){var n=eS.websocket_sock_ops.getPeer(e,e.daddr,e.dport);if(n)if(n.socket.readyState===n.socket.CONNECTING)throw new eb.ErrnoError(7);else throw new eb.ErrnoError(30)}var o=eS.websocket_sock_ops.createPeer(e,t,r);throw e.daddr=o.addr,e.dport=o.port,new eb.ErrnoError(26)},listen:function(e,t){if(!O)throw new eb.ErrnoError(138);if(e.server)throw new eb.ErrnoError(28);var r=z("ws").Server,n=e.saddr;e.server=new r({host:n,port:e.sport}),T.websocket.emit("listen",e.stream.fd),e.server.on("connection",function(t){if(1===e.type){var r=eS.createSocket(e.family,e.type,e.protocol),n=eS.websocket_sock_ops.createPeer(r,t);r.daddr=n.addr,r.dport=n.port,e.pending.push(r),T.websocket.emit("connection",r.stream.fd)}else eS.websocket_sock_ops.createPeer(e,t),T.websocket.emit("connection",e.stream.fd)}),e.server.on("close",function(){T.websocket.emit("close",e.stream.fd),e.server=null}),e.server.on("error",function(t){e.error=23,T.websocket.emit("error",[e.stream.fd,e.error,"EHOSTUNREACH: Host is unreachable"])})},accept:function(e){if(!e.server||!e.pending.length)throw new eb.ErrnoError(28);var t=e.pending.shift();return t.stream.flags=e.stream.flags,t},getname:function(e,t){var r,n;if(t){if(void 0===e.daddr||void 0===e.dport)throw new eb.ErrnoError(53);r=e.daddr,n=e.dport}else r=e.saddr||0,n=e.sport||0;return{addr:r,port:n}},sendmsg:function(e,t,r,n,o,_){if(2===e.type){if((void 0===o||void 0===_)&&(o=e.daddr,_=e.dport),void 0===o||void 0===_)throw new eb.ErrnoError(17)}else o=e.daddr,_=e.dport;var a,i=eS.websocket_sock_ops.getPeer(e,o,_);if(1===e.type)if(i&&i.socket.readyState!==i.socket.CLOSING&&i.socket.readyState!==i.socket.CLOSED){if(i.socket.readyState===i.socket.CONNECTING)throw new eb.ErrnoError(6)}else throw new eb.ErrnoError(53);if(ArrayBuffer.isView(t)&&(r+=t.byteOffset,t=t.buffer),a=t.slice(r,r+n),2===e.type&&(!i||i.socket.readyState!==i.socket.OPEN))return i&&i.socket.readyState!==i.socket.CLOSING&&i.socket.readyState!==i.socket.CLOSED||(i=eS.websocket_sock_ops.createPeer(e,o,_)),i.dgram_send_queue.push(a),n;try{return i.socket.send(a),n}catch(e){throw new eb.ErrnoError(28)}},recvmsg:function(e,t){if(1===e.type&&e.server)throw new eb.ErrnoError(53);var r=e.recv_queue.shift();if(!r){if(1===e.type){var n=eS.websocket_sock_ops.getPeer(e,e.daddr,e.dport);if(!n)throw new eb.ErrnoError(53);if(n.socket.readyState===n.socket.CLOSING||n.socket.readyState===n.socket.CLOSED)return null}throw new eb.ErrnoError(6)}var o=r.data.byteLength||r.data.length,_=r.data.byteOffset||0,a=r.data.buffer||r.data,i=Math.min(t,o),s={buffer:new Uint8Array(a,_,i),addr:r.addr,port:r.port};return 1===e.type&&i<o&&(r.data=new Uint8Array(a,_+i,o-i),e.recv_queue.unshift(r)),s}}};function ej(e){var t=eS.getSocket(e);if(!t)throw new eb.ErrnoError(8);return t}function eP(e){return(255&e)+"."+(e>>8&255)+"."+(e>>16&255)+"."+(e>>24&255)}function eD(e){return parseInt(e)}var eF={address_map:{id:1,addrs:{},names:{}},lookup_name:function(e){var t,r=function(e){for(var t=e.split("."),r=0;r<4;r++){var n=Number(t[r]);if(isNaN(n))return null;t[r]=n}return(t[0]|t[1]<<8|t[2]<<16|t[3]<<24)>>>0}(e);if(null!==r||null!==(r=function(e){var t,r,n,o,_=[];if(!/^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i.