@dheuv/xgboost-wasm 1.0.0
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.
- package/README.md +95 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- package/dist/xgboost.d.ts +81 -0
- package/dist/xgboost_wasm.wasm +0 -0
- package/package.json +30 -0
package/README.md
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# @dheuv/xgboost-wasm
|
|
2
|
+
|
|
3
|
+
XGBoost WebAssembly library for Node.js and the Browser.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
- **Full XGBoost Support**: Train and predict using the state-of-the-art Gradient Boosting framework.
|
|
7
|
+
- **Cross-Platform**: Runs in modern browsers and Node.js environments.
|
|
8
|
+
- **High Performance**: Compiled with Emscripten with `-O3` optimizations.
|
|
9
|
+
- **TypeScript First**: Full Type definitions included.
|
|
10
|
+
|
|
11
|
+
## Installation
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @dheuv/xgboost-wasm
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Quick Start (XOR Example)
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
import { XGBoost } from '@dheuv/xgboost-wasm';
|
|
21
|
+
|
|
22
|
+
async function run() {
|
|
23
|
+
// Initialize the WASM module
|
|
24
|
+
const xgboost = await XGBoost.create();
|
|
25
|
+
|
|
26
|
+
// Prepare data (Input features and target labels)
|
|
27
|
+
const data = new Float32Array([0, 0, 0, 1, 1, 0, 1, 1]);
|
|
28
|
+
const labels = new Float32Array([0, 1, 1, 0]);
|
|
29
|
+
|
|
30
|
+
// Create a DMatrix
|
|
31
|
+
const dtrain = xgboost.createDMatrix(data, 4, 2, NaN, labels);
|
|
32
|
+
|
|
33
|
+
// Set training parameters
|
|
34
|
+
const params = {
|
|
35
|
+
'objective': 'binary:logistic',
|
|
36
|
+
'eval_metric': 'logloss',
|
|
37
|
+
'max_depth': '3',
|
|
38
|
+
'eta': '0.1',
|
|
39
|
+
'min_child_weight': '0',
|
|
40
|
+
'num_feature': '2' // Required in WASM raw interface
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
// Train the model
|
|
44
|
+
const booster = await xgboost.train(dtrain, params, 50);
|
|
45
|
+
|
|
46
|
+
// Make predictions
|
|
47
|
+
const dtest = xgboost.createDMatrix(data, 4, 2);
|
|
48
|
+
const predictions = JSON.parse(booster.predict(dtest));
|
|
49
|
+
|
|
50
|
+
console.log('Predictions:', predictions);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
run();
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## API Reference
|
|
57
|
+
|
|
58
|
+
### `XGBoost`
|
|
59
|
+
The main entry point for the library.
|
|
60
|
+
|
|
61
|
+
- `static async create(overrides?: any): Promise<XGBoost>`: Initializes and returns an instance of the XGBoost class.
|
|
62
|
+
- `createDMatrix(data: Float32Array, nrow: number, ncol: number, missing?: number, labels?: Float32Array): DMatrix`: Creates a DMatrix from a Float32Array.
|
|
63
|
+
- `async train(dtrain: DMatrix, params: Record<string, string>, nround: number): Promise<Booster>`: Trains a booster with the given parameters.
|
|
64
|
+
- `version(): string`: Returns the XGBoost version.
|
|
65
|
+
|
|
66
|
+
### `Booster`
|
|
67
|
+
A trained XGBoost model.
|
|
68
|
+
|
|
69
|
+
- `predict(dmat: DMatrix, option?: number, ntree_limit?: number): string`: Makes predictions on a DMatrix. Returns a JSON string of results.
|
|
70
|
+
- `saveModel(path: string): void`: Saves the model to a path (Node.js only or virtual FS).
|
|
71
|
+
- `loadModel(path: string): void`: Loads a model from a path.
|
|
72
|
+
|
|
73
|
+
### `DMatrix`
|
|
74
|
+
Data matrix used by XGBoost.
|
|
75
|
+
|
|
76
|
+
- `getNumRow(): number`: Returns the number of rows.
|
|
77
|
+
- `getNumCol(): number`: Returns the number of columns.
|
|
78
|
+
|
|
79
|
+
## Build Instructions
|
|
80
|
+
|
|
81
|
+
If you want to build the library from source:
|
|
82
|
+
|
|
83
|
+
1. Install [Emscripten](https://emscripten.org/).
|
|
84
|
+
2. Run the build script:
|
|
85
|
+
```bash
|
|
86
|
+
npm run build
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Limitations
|
|
90
|
+
- **Memory**: Default initial memory is 64MB, grows automatically. Max memory is constrained by WASM limits.
|
|
91
|
+
- **Single Threaded**: This WASM build currently runs in single-threaded mode (no OpenMP).
|
|
92
|
+
- **Stack Size**: Increased to 5MB to accommodate deep trees and complex training.
|
|
93
|
+
|
|
94
|
+
## License
|
|
95
|
+
Apache-2.0
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './xgboost.js';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var r=require("node:fs"),e=require("node:crypto"),t=require("ws");function n(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var o={exports:{}};!function(n){var o,a=(o=globalThis.document?.currentScript?.src,async function(n={}){var a=n,s=!!globalThis.window,i=!!globalThis.WorkerGlobalScope,u=globalThis.process?.versions?.node&&"renderer"!=globalThis.process?.type,c="./this.program",l=(r,e)=>{throw e};"undefined"!=typeof __filename?o=__filename:i&&(o=self.location.href);var d,f,h="";if(u){var p=r;h=__dirname+"/",f=r=>(r=x(r)?new URL(r):r,p.readFileSync(r)),d=async(r,e=!0)=>(r=x(r)?new URL(r):r,p.readFileSync(r,e?void 0:"utf8")),process.argv.length>1&&(c=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),l=(r,e)=>{throw process.exitCode=r,e}}else if(s||i){try{h=new URL(".",o).href}catch{}i&&(f=r=>{var e=new XMLHttpRequest;return e.open("GET",r,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),d=async r=>{if(x(r))return new Promise((e,t)=>{var n=new XMLHttpRequest;n.open("GET",r,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?e(n.response):t(n.status)},n.onerror=t,n.send(null)});var e=await fetch(r,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)}}var m,v,w,y,g,E,k,b,_,$,P,S,C,T,A=console.log.bind(console),D=console.error.bind(console),F=!1,x=r=>r.startsWith("file://"),N=!1;function O(){var r=qe.buffer;y=new Int8Array(r),E=new Int16Array(r),a.HEAPU8=g=new Uint8Array(r),k=new Uint16Array(r),a.HEAP32=b=new Int32Array(r),_=new Uint32Array(r),a.HEAPF32=$=new Float32Array(r),a.HEAPF64=P=new Float64Array(r),S=new BigInt64Array(r),C=new BigUint64Array(r)}function M(r){a.onAbort?.(r),D(r="Aborted("+r+")"),F=!0,r+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(r);throw w?.(e),e}function R(){return r="xgboost_wasm.wasm",a.locateFile?a.locateFile(r,h):h+r;var r}async function B(r){if(!m)try{var e=await d(r);return new Uint8Array(e)}catch{}return function(r){if(r==T&&m)return new Uint8Array(m);if(f)return f(r);throw"both async and sync fetching of the wasm failed"}(r)}async function j(r,e,t){if(!r&&!x(e)&&!u)try{var n=fetch(e,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(n,t)}catch(r){D(`wasm streaming compile failed: ${r}`),D("falling back to ArrayBuffer instantiation")}return async function(r,e){try{var t=await B(r);return await WebAssembly.instantiate(t,e)}catch(r){D(`failed to asynchronously prepare wasm: ${r}`),M(r)}}(e,t)}class I{name="ExitStatus";constructor(r){this.message=`Program terminated with exit(${r})`,this.status=r}}var W=r=>{for(;r.length>0;)r.shift()(a)},z=[],L=r=>z.push(r),U=[],q=r=>U.push(r),H=!0,V=r=>Be(r),G=()=>Ie(),X=[],Y=0,K=0;class Z{constructor(r){this.excPtr=r,this.ptr=r-24}set_type(r){_[this.ptr+4>>2]=r}get_type(){return _[this.ptr+4>>2]}set_destructor(r){_[this.ptr+8>>2]=r}get_destructor(){return _[this.ptr+8>>2]}set_caught(r){r=r?1:0,y[this.ptr+12]=r}get_caught(){return 0!=y[this.ptr+12]}set_rethrown(r){r=r?1:0,y[this.ptr+13]=r}get_rethrown(){return 0!=y[this.ptr+13]}init(r,e){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(e)}set_adjusted_ptr(r){_[this.ptr+16>>2]=r}get_adjusted_ptr(){return _[this.ptr+16>>2]}}var J=r=>Re(r),Q=r=>{var e=K;if(!e)return J(0),0;var t=new Z(e);t.set_adjusted_ptr(e);var n=t.get_type();if(!n)return J(0),e;for(var o of r){if(0===o||o===n)break;var a=t.ptr+16;if(Le(o,n,a))return J(o),e}return J(n),e},rr=()=>{var r=X.pop();r||M("no exception to throw");var e=r.excPtr;throw r.get_rethrown()||(X.push(r),r.set_rethrown(!0),r.set_caught(!1),Y++),ze(e),K=e},er=r=>{(er=(()=>{if(u){var r=e;return e=>r.randomFillSync(e)}return r=>crypto.getRandomValues(r)})())(r)},tr={isAbs:r=>"/"===r.charAt(0),splitPath:r=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(r).slice(1),normalizeArray:(r,e)=>{for(var t=0,n=r.length-1;n>=0;n--){var o=r[n];"."===o?r.splice(n,1):".."===o?(r.splice(n,1),t++):t&&(r.splice(n,1),t--)}if(e)for(;t;t--)r.unshift("..");return r},normalize:r=>{var e=tr.isAbs(r),t="/"===r.slice(-1);return(r=tr.normalizeArray(r.split("/").filter(r=>!!r),!e).join("/"))||e||(r="."),r&&t&&(r+="/"),(e?"/":"")+r},dirname:r=>{var e=tr.splitPath(r),t=e[0],n=e[1];return t||n?(n&&(n=n.slice(0,-1)),t+n):"."},basename:r=>r&&r.match(/([^\/]+|\/)\/*$/)[1],join:(...r)=>tr.normalize(r.join("/")),join2:(r,e)=>tr.normalize(r+"/"+e)},nr={resolve:(...r)=>{for(var e="",t=!1,n=r.length-1;n>=-1&&!t;n--){var o=n>=0?r[n]:kr.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");if(!o)return"";e=o+"/"+e,t=tr.isAbs(o)}return(t?"/":"")+(e=tr.normalizeArray(e.split("/").filter(r=>!!r),!t).join("/"))||"."},relative:(r,e)=>{function t(r){for(var e=0;e<r.length&&""===r[e];e++);for(var t=r.length-1;t>=0&&""===r[t];t--);return e>t?[]:r.slice(e,t-e+1)}r=nr.resolve(r).slice(1),e=nr.resolve(e).slice(1);for(var n=t(r.split("/")),o=t(e.split("/")),a=Math.min(n.length,o.length),s=a,i=0;i<a;i++)if(n[i]!==o[i]){s=i;break}var u=[];for(i=s;i<n.length;i++)u.push("..");return(u=u.concat(o.slice(s))).join("/")}},or=globalThis.TextDecoder&&new TextDecoder,ar=(r,e,t,n)=>{var o=e+t;if(n)return o;for(;r[e]&&!(e>=o);)++e;return e},sr=(r,e=0,t,n)=>{var o=ar(r,e,t,n);if(o-e>16&&r.buffer&&or)return or.decode(r.subarray(e,o));for(var a="";e<o;){var s=r[e++];if(128&s){var i=63&r[e++];if(192!=(224&s)){var u=63&r[e++];if((s=224==(240&s)?(15&s)<<12|i<<6|u:(7&s)<<18|i<<12|u<<6|63&r[e++])<65536)a+=String.fromCharCode(s);else{var c=s-65536;a+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else a+=String.fromCharCode((31&s)<<6|i)}else a+=String.fromCharCode(s)}return a},ir=[],ur=r=>{for(var e=0,t=0;t<r.length;++t){var n=r.charCodeAt(t);n<=127?e++:n<=2047?e+=2:n>=55296&&n<=57343?(e+=4,++t):e+=3}return e},cr=(r,e,t,n)=>{if(!(n>0))return 0;for(var o=t,a=t+n-1,s=0;s<r.length;++s){var i=r.codePointAt(s);if(i<=127){if(t>=a)break;e[t++]=i}else if(i<=2047){if(t+1>=a)break;e[t++]=192|i>>6,e[t++]=128|63&i}else if(i<=65535){if(t+2>=a)break;e[t++]=224|i>>12,e[t++]=128|i>>6&63,e[t++]=128|63&i}else{if(t+3>=a)break;e[t++]=240|i>>18,e[t++]=128|i>>12&63,e[t++]=128|i>>6&63,e[t++]=128|63&i,s++}}return e[t]=0,t-o},lr=(r,e,t)=>{var n=ur(r)+1,o=new Array(n),a=cr(r,o,0,o.length);return o.length=a,o},dr={ttys:[],init(){},shutdown(){},register(r,e){dr.ttys[r]={input:[],output:[],ops:e},kr.registerDevice(r,dr.stream_ops)},stream_ops:{open(r){var e=dr.ttys[r.node.rdev];if(!e)throw new kr.ErrnoError(43);r.tty=e,r.seekable=!1},close(r){r.tty.ops.fsync(r.tty)},fsync(r){r.tty.ops.fsync(r.tty)},read(r,e,t,n,o){if(!r.tty||!r.tty.ops.get_char)throw new kr.ErrnoError(60);for(var a=0,s=0;s<n;s++){var i;try{i=r.tty.ops.get_char(r.tty)}catch(r){throw new kr.ErrnoError(29)}if(void 0===i&&0===a)throw new kr.ErrnoError(6);if(null==i)break;a++,e[t+s]=i}return a&&(r.node.atime=Date.now()),a},write(r,e,t,n,o){if(!r.tty||!r.tty.ops.put_char)throw new kr.ErrnoError(60);try{for(var a=0;a<n;a++)r.tty.ops.put_char(r.tty,e[t+a])}catch(r){throw new kr.ErrnoError(29)}return n&&(r.node.mtime=r.node.ctime=Date.now()),a}},default_tty_ops:{get_char:r=>(()=>{if(!ir.length){var r=null;if(u){var e=Buffer.alloc(256),t=0,n=process.stdin.fd;try{t=p.readSync(n,e,0,256)}catch(r){if(!r.toString().includes("EOF"))throw r;t=0}t>0&&(r=e.slice(0,t).toString("utf-8"))}else globalThis.window?.prompt&&null!==(r=window.prompt("Input: "))&&(r+="\n");if(!r)return null;ir=lr(r)}return ir.shift()})(),put_char(r,e){null===e||10===e?(A(sr(r.output)),r.output=[]):0!=e&&r.output.push(e)},fsync(r){r.output?.length>0&&(A(sr(r.output)),r.output=[])},ioctl_tcgets:r=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(r,e,t)=>0,ioctl_tiocgwinsz:r=>[24,80]},default_tty1_ops:{put_char(r,e){null===e||10===e?(D(sr(r.output)),r.output=[]):0!=e&&r.output.push(e)},fsync(r){r.output?.length>0&&(D(sr(r.output)),r.output=[])}}},fr=(r,e)=>g.fill(0,r,r+e),hr=(r,e)=>Math.ceil(r/e)*e,pr=r=>{r=hr(r,65536);var e=Oe(65536,r);return e&&fr(e,r),e},mr={ops_table:null,mount:r=>mr.createNode(null,"/",16895,0),createNode(r,e,t,n){if(kr.isBlkdev(t)||kr.isFIFO(t))throw new kr.ErrnoError(63);mr.ops_table||={dir:{node:{getattr:mr.node_ops.getattr,setattr:mr.node_ops.setattr,lookup:mr.node_ops.lookup,mknod:mr.node_ops.mknod,rename:mr.node_ops.rename,unlink:mr.node_ops.unlink,rmdir:mr.node_ops.rmdir,readdir:mr.node_ops.readdir,symlink:mr.node_ops.symlink},stream:{llseek:mr.stream_ops.llseek}},file:{node:{getattr:mr.node_ops.getattr,setattr:mr.node_ops.setattr},stream:{llseek:mr.stream_ops.llseek,read:mr.stream_ops.read,write:mr.stream_ops.write,mmap:mr.stream_ops.mmap,msync:mr.stream_ops.msync}},link:{node:{getattr:mr.node_ops.getattr,setattr:mr.node_ops.setattr,readlink:mr.node_ops.readlink},stream:{}},chrdev:{node:{getattr:mr.node_ops.getattr,setattr:mr.node_ops.setattr},stream:kr.chrdev_stream_ops}};var o=kr.createNode(r,e,t,n);return kr.isDir(o.mode)?(o.node_ops=mr.ops_table.dir.node,o.stream_ops=mr.ops_table.dir.stream,o.contents={}):kr.isFile(o.mode)?(o.node_ops=mr.ops_table.file.node,o.stream_ops=mr.ops_table.file.stream,o.usedBytes=0,o.contents=null):kr.isLink(o.mode)?(o.node_ops=mr.ops_table.link.node,o.stream_ops=mr.ops_table.link.stream):kr.isChrdev(o.mode)&&(o.node_ops=mr.ops_table.chrdev.node,o.stream_ops=mr.ops_table.chrdev.stream),o.atime=o.mtime=o.ctime=Date.now(),r&&(r.contents[e]=o,r.atime=r.mtime=r.ctime=o.atime),o},getFileDataAsTypedArray:r=>r.contents?r.contents.subarray?r.contents.subarray(0,r.usedBytes):new Uint8Array(r.contents):new Uint8Array(0),expandFileStorage(r,e){var t=r.contents?r.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=r.contents;r.contents=new Uint8Array(e),r.usedBytes>0&&r.contents.set(n.subarray(0,r.usedBytes),0)}},resizeFileStorage(r,e){if(r.usedBytes!=e)if(0==e)r.contents=null,r.usedBytes=0;else{var t=r.contents;r.contents=new Uint8Array(e),t&&r.contents.set(t.subarray(0,Math.min(e,r.usedBytes))),r.usedBytes=e}},node_ops:{getattr(r){var e={};return e.dev=kr.isChrdev(r.mode)?r.id:1,e.ino=r.id,e.mode=r.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=r.rdev,kr.isDir(r.mode)?e.size=4096:kr.isFile(r.mode)?e.size=r.usedBytes:kr.isLink(r.mode)?e.size=r.link.length:e.size=0,e.atime=new Date(r.atime),e.mtime=new Date(r.mtime),e.ctime=new Date(r.ctime),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr(r,e){for(const t of["mode","atime","mtime","ctime"])null!=e[t]&&(r[t]=e[t]);void 0!==e.size&&mr.resizeFileStorage(r,e.size)},lookup(r,e){throw mr.doesNotExistError||(mr.doesNotExistError=new kr.ErrnoError(44),mr.doesNotExistError.stack="<generic error, no stack>"),mr.doesNotExistError},mknod:(r,e,t,n)=>mr.createNode(r,e,t,n),rename(r,e,t){var n;try{n=kr.lookupNode(e,t)}catch(r){}if(n){if(kr.isDir(r.mode))for(var o in n.contents)throw new kr.ErrnoError(55);kr.hashRemoveNode(n)}delete r.parent.contents[r.name],e.contents[t]=r,r.name=t,e.ctime=e.mtime=r.parent.ctime=r.parent.mtime=Date.now()},unlink(r,e){delete r.contents[e],r.ctime=r.mtime=Date.now()},rmdir(r,e){var t=kr.lookupNode(r,e);for(var n in t.contents)throw new kr.ErrnoError(55);delete r.contents[e],r.ctime=r.mtime=Date.now()},readdir:r=>[".","..",...Object.keys(r.contents)],symlink(r,e,t){var n=mr.createNode(r,e,41471,0);return n.link=t,n},readlink(r){if(!kr.isLink(r.mode))throw new kr.ErrnoError(28);return r.link}},stream_ops:{read(r,e,t,n,o){var a=r.node.contents;if(o>=r.node.usedBytes)return 0;var s=Math.min(r.node.usedBytes-o,n);if(s>8&&a.subarray)e.set(a.subarray(o,o+s),t);else for(var i=0;i<s;i++)e[t+i]=a[o+i];return s},write(r,e,t,n,o,a){if(e.buffer===y.buffer&&(a=!1),!n)return 0;var s=r.node;if(s.mtime=s.ctime=Date.now(),e.subarray&&(!s.contents||s.contents.subarray)){if(a)return s.contents=e.subarray(t,t+n),s.usedBytes=n,n;if(0===s.usedBytes&&0===o)return s.contents=e.slice(t,t+n),s.usedBytes=n,n;if(o+n<=s.usedBytes)return s.contents.set(e.subarray(t,t+n),o),n}if(mr.expandFileStorage(s,o+n),s.contents.subarray&&e.subarray)s.contents.set(e.subarray(t,t+n),o);else for(var i=0;i<n;i++)s.contents[o+i]=e[t+i];return s.usedBytes=Math.max(s.usedBytes,o+n),n},llseek(r,e,t){var n=e;if(1===t?n+=r.position:2===t&&kr.isFile(r.node.mode)&&(n+=r.node.usedBytes),n<0)throw new kr.ErrnoError(28);return n},mmap(r,e,t,n,o){if(!kr.isFile(r.node.mode))throw new kr.ErrnoError(43);var a,s,i=r.node.contents;if(2&o||!i||i.buffer!==y.buffer){if(s=!0,!(a=pr(e)))throw new kr.ErrnoError(48);i&&((t>0||t+e<i.length)&&(i=i.subarray?i.subarray(t,t+e):Array.prototype.slice.call(i,t,t+e)),y.set(i,a))}else s=!1,a=i.byteOffset;return{ptr:a,allocated:s}},msync:(r,e,t,n,o)=>(mr.stream_ops.write(r,e,0,n,t,!1),0)}},vr=(r,e)=>{var t=0;return r&&(t|=365),e&&(t|=146),t},wr=0,yr=null,gr=[],Er=async(r,e,t,n,o,s,i,u)=>{var c=e?nr.resolve(tr.join2(r,e)):r;wr++,a.monitorRunDependencies?.(wr);try{var l=t;"string"==typeof t&&(l=await(async r=>{var e=await d(r);return new Uint8Array(e)})(t)),l=await(async(r,e)=>{for(var t of("undefined"!=typeof Browser&&Browser.init(),gr))if(t.canHandle(e))return t.handle(r,e);return r})(l,c),u?.(),s||((...r)=>{kr.createDataFile(...r)})(r,e,l,n,o,i)}finally{(()=>{if(wr--,a.monitorRunDependencies?.(wr),0==wr&&yr){var r=yr;yr=null,r()}})()}},kr={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,ErrnoError:class{name="ErrnoError";constructor(r){this.errno=r}},FSStream:class{shared={};get object(){return this.node}set object(r){this.node=r}get isRead(){return 1!=(2097155&this.flags)}get isWrite(){return!!(2097155&this.flags)}get isAppend(){return 1024&this.flags}get flags(){return this.shared.flags}set flags(r){this.shared.flags=r}get position(){return this.shared.position}set position(r){this.shared.position=r}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(r,e,t,n){r||(r=this),this.parent=r,this.mount=r.mount,this.id=kr.nextInode++,this.name=e,this.mode=t,this.rdev=n,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(r){r?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(r){r?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return kr.isDir(this.mode)}get isDevice(){return kr.isChrdev(this.mode)}},lookupPath(r,e={}){if(!r)throw new kr.ErrnoError(44);e.follow_mount??=!0,tr.isAbs(r)||(r=kr.cwd()+"/"+r);r:for(var t=0;t<40;t++){for(var n=r.split("/").filter(r=>!!r),o=kr.root,a="/",s=0;s<n.length;s++){var i=s===n.length-1;if(i&&e.parent)break;if("."!==n[s])if(".."!==n[s]){a=tr.join2(a,n[s]);try{o=kr.lookupNode(o,n[s])}catch(r){if(44===r?.errno&&i&&e.noent_okay)return{path:a};throw r}if(!kr.isMountpoint(o)||i&&!e.follow_mount||(o=o.mounted.root),kr.isLink(o.mode)&&(!i||e.follow)){if(!o.node_ops.readlink)throw new kr.ErrnoError(52);var u=o.node_ops.readlink(o);tr.isAbs(u)||(u=tr.dirname(a)+"/"+u),r=u+"/"+n.slice(s+1).join("/");continue r}}else{if(a=tr.dirname(a),kr.isRoot(o)){r=a+"/"+n.slice(s+1).join("/"),t--;continue r}o=o.parent}}return{path:a,node:o}}throw new kr.ErrnoError(32)},getPath(r){for(var e;;){if(kr.isRoot(r)){var t=r.mount.mountpoint;return e?"/"!==t[t.length-1]?`${t}/${e}`:t+e:t}e=e?`${r.name}/${e}`:r.name,r=r.parent}},hashName(r,e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(r+t>>>0)%kr.nameTable.length},hashAddNode(r){var e=kr.hashName(r.parent.id,r.name);r.name_next=kr.nameTable[e],kr.nameTable[e]=r},hashRemoveNode(r){var e=kr.hashName(r.parent.id,r.name);if(kr.nameTable[e]===r)kr.nameTable[e]=r.name_next;else for(var t=kr.nameTable[e];t;){if(t.name_next===r){t.name_next=r.name_next;break}t=t.name_next}},lookupNode(r,e){var t=kr.mayLookup(r);if(t)throw new kr.ErrnoError(t);for(var n=kr.hashName(r.id,e),o=kr.nameTable[n];o;o=o.name_next){var a=o.name;if(o.parent.id===r.id&&a===e)return o}return kr.lookup(r,e)},createNode(r,e,t,n){var o=new kr.FSNode(r,e,t,n);return kr.hashAddNode(o),o},destroyNode(r){kr.hashRemoveNode(r)},isRoot:r=>r===r.parent,isMountpoint:r=>!!r.mounted,isFile:r=>32768==(61440&r),isDir:r=>16384==(61440&r),isLink:r=>40960==(61440&r),isChrdev:r=>8192==(61440&r),isBlkdev:r=>24576==(61440&r),isFIFO:r=>4096==(61440&r),isSocket:r=>!(49152&~r),flagsToPermissionString(r){var e=["r","w","rw"][3&r];return 512&r&&(e+="w"),e},nodePermissions:(r,e)=>kr.ignorePermissions||(!e.includes("r")||292&r.mode)&&(!e.includes("w")||146&r.mode)&&(!e.includes("x")||73&r.mode)?0:2,mayLookup(r){if(!kr.isDir(r.mode))return 54;var e=kr.nodePermissions(r,"x");return e||(r.node_ops.lookup?0:2)},mayCreate(r,e){if(!kr.isDir(r.mode))return 54;try{return kr.lookupNode(r,e),20}catch(r){}return kr.nodePermissions(r,"wx")},mayDelete(r,e,t){var n;try{n=kr.lookupNode(r,e)}catch(r){return r.errno}var o=kr.nodePermissions(r,"wx");if(o)return o;if(t){if(!kr.isDir(n.mode))return 54;if(kr.isRoot(n)||kr.getPath(n)===kr.cwd())return 10}else if(kr.isDir(n.mode))return 31;return 0},mayOpen(r,e){if(!r)return 44;if(kr.isLink(r.mode))return 32;var t=kr.flagsToPermissionString(e);return kr.isDir(r.mode)&&("r"!==t||576&e)?31:kr.nodePermissions(r,t)},checkOpExists(r,e){if(!r)throw new kr.ErrnoError(e);return r},MAX_OPEN_FDS:4096,nextfd(){for(var r=0;r<=kr.MAX_OPEN_FDS;r++)if(!kr.streams[r])return r;throw new kr.ErrnoError(33)},getStreamChecked(r){var e=kr.getStream(r);if(!e)throw new kr.ErrnoError(8);return e},getStream:r=>kr.streams[r],createStream:(r,e=-1)=>(r=Object.assign(new kr.FSStream,r),-1==e&&(e=kr.nextfd()),r.fd=e,kr.streams[e]=r,r),closeStream(r){kr.streams[r]=null},dupStream(r,e=-1){var t=kr.createStream(r,e);return t.stream_ops?.dup?.(t),t},doSetAttr(r,e,t){var n=r?.stream_ops.setattr,o=n?r:e;n??=e.node_ops.setattr,kr.checkOpExists(n,63),n(o,t)},chrdev_stream_ops:{open(r){var e=kr.getDevice(r.node.rdev);r.stream_ops=e.stream_ops,r.stream_ops.open?.(r)},llseek(){throw new kr.ErrnoError(70)}},major:r=>r>>8,minor:r=>255&r,makedev:(r,e)=>r<<8|e,registerDevice(r,e){kr.devices[r]={stream_ops:e}},getDevice:r=>kr.devices[r],getMounts(r){for(var e=[],t=[r];t.length;){var n=t.pop();e.push(n),t.push(...n.mounts)}return e},syncfs(r,e){"function"==typeof r&&(e=r,r=!1),kr.syncFSRequests++,kr.syncFSRequests>1&&D(`warning: ${kr.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=kr.getMounts(kr.root.mount),n=0;function o(r){return kr.syncFSRequests--,e(r)}function a(r){if(r)return a.errored?void 0:(a.errored=!0,o(r));++n>=t.length&&o(null)}for(var s of t)s.type.syncfs?s.type.syncfs(s,r,a):a(null)},mount(r,e,t){var n,o="/"===t,a=!t;if(o&&kr.root)throw new kr.ErrnoError(10);if(!o&&!a){var s=kr.lookupPath(t,{follow_mount:!1});if(t=s.path,n=s.node,kr.isMountpoint(n))throw new kr.ErrnoError(10);if(!kr.isDir(n.mode))throw new kr.ErrnoError(54)}var i={type:r,opts:e,mountpoint:t,mounts:[]},u=r.mount(i);return u.mount=i,i.root=u,o?kr.root=u:n&&(n.mounted=i,n.mount&&n.mount.mounts.push(i)),u},unmount(r){var e=kr.lookupPath(r,{follow_mount:!1});if(!kr.isMountpoint(e.node))throw new kr.ErrnoError(28);var t=e.node,n=t.mounted,o=kr.getMounts(n);for(var[a,s]of Object.entries(kr.nameTable))for(;s;){var i=s.name_next;o.includes(s.mount)&&kr.destroyNode(s),s=i}t.mounted=null;var u=t.mount.mounts.indexOf(n);t.mount.mounts.splice(u,1)},lookup:(r,e)=>r.node_ops.lookup(r,e),mknod(r,e,t){var n=kr.lookupPath(r,{parent:!0}).node,o=tr.basename(r);if(!o)throw new kr.ErrnoError(28);if("."===o||".."===o)throw new kr.ErrnoError(20);var a=kr.mayCreate(n,o);if(a)throw new kr.ErrnoError(a);if(!n.node_ops.mknod)throw new kr.ErrnoError(63);return n.node_ops.mknod(n,o,e,t)},statfs:r=>kr.statfsNode(kr.lookupPath(r,{follow:!0}).node),statfsStream:r=>kr.statfsNode(r.node),statfsNode(r){var e={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:kr.nextInode,ffree:kr.nextInode-1,fsid:42,flags:2,namelen:255};return r.node_ops.statfs&&Object.assign(e,r.node_ops.statfs(r.mount.opts.root)),e},create:(r,e=438)=>(e&=4095,e|=32768,kr.mknod(r,e,0)),mkdir:(r,e=511)=>(e&=1023,e|=16384,kr.mknod(r,e,0)),mkdirTree(r,e){var t=r.split("/"),n="";for(var o of t)if(o){(n||tr.isAbs(r))&&(n+="/"),n+=o;try{kr.mkdir(n,e)}catch(r){if(20!=r.errno)throw r}}},mkdev:(r,e,t)=>(void 0===t&&(t=e,e=438),e|=8192,kr.mknod(r,e,t)),symlink(r,e){if(!nr.resolve(r))throw new kr.ErrnoError(44);var t=kr.lookupPath(e,{parent:!0}).node;if(!t)throw new kr.ErrnoError(44);var n=tr.basename(e),o=kr.mayCreate(t,n);if(o)throw new kr.ErrnoError(o);if(!t.node_ops.symlink)throw new kr.ErrnoError(63);return t.node_ops.symlink(t,n,r)},rename(r,e){var t,n,o=tr.dirname(r),a=tr.dirname(e),s=tr.basename(r),i=tr.basename(e);if(t=kr.lookupPath(r,{parent:!0}).node,n=kr.lookupPath(e,{parent:!0}).node,!t||!n)throw new kr.ErrnoError(44);if(t.mount!==n.mount)throw new kr.ErrnoError(75);var u,c=kr.lookupNode(t,s),l=nr.relative(r,a);if("."!==l.charAt(0))throw new kr.ErrnoError(28);if("."!==(l=nr.relative(e,o)).charAt(0))throw new kr.ErrnoError(55);try{u=kr.lookupNode(n,i)}catch(r){}if(c!==u){var d=kr.isDir(c.mode),f=kr.mayDelete(t,s,d);if(f)throw new kr.ErrnoError(f);if(f=u?kr.mayDelete(n,i,d):kr.mayCreate(n,i))throw new kr.ErrnoError(f);if(!t.node_ops.rename)throw new kr.ErrnoError(63);if(kr.isMountpoint(c)||u&&kr.isMountpoint(u))throw new kr.ErrnoError(10);if(n!==t&&(f=kr.nodePermissions(t,"w")))throw new kr.ErrnoError(f);kr.hashRemoveNode(c);try{t.node_ops.rename(c,n,i),c.parent=n}catch(r){throw r}finally{kr.hashAddNode(c)}}},rmdir(r){var e=kr.lookupPath(r,{parent:!0}).node,t=tr.basename(r),n=kr.lookupNode(e,t),o=kr.mayDelete(e,t,!0);if(o)throw new kr.ErrnoError(o);if(!e.node_ops.rmdir)throw new kr.ErrnoError(63);if(kr.isMountpoint(n))throw new kr.ErrnoError(10);e.node_ops.rmdir(e,t),kr.destroyNode(n)},readdir(r){var e=kr.lookupPath(r,{follow:!0}).node;return kr.checkOpExists(e.node_ops.readdir,54)(e)},unlink(r){var e=kr.lookupPath(r,{parent:!0}).node;if(!e)throw new kr.ErrnoError(44);var t=tr.basename(r),n=kr.lookupNode(e,t),o=kr.mayDelete(e,t,!1);if(o)throw new kr.ErrnoError(o);if(!e.node_ops.unlink)throw new kr.ErrnoError(63);if(kr.isMountpoint(n))throw new kr.ErrnoError(10);e.node_ops.unlink(e,t),kr.destroyNode(n)},readlink(r){var e=kr.lookupPath(r).node;if(!e)throw new kr.ErrnoError(44);if(!e.node_ops.readlink)throw new kr.ErrnoError(28);return e.node_ops.readlink(e)},stat(r,e){var t=kr.lookupPath(r,{follow:!e}).node;return kr.checkOpExists(t.node_ops.getattr,63)(t)},fstat(r){var e=kr.getStreamChecked(r),t=e.node,n=e.stream_ops.getattr,o=n?e:t;return n??=t.node_ops.getattr,kr.checkOpExists(n,63),n(o)},lstat:r=>kr.stat(r,!0),doChmod(r,e,t,n){kr.doSetAttr(r,e,{mode:4095&t|-4096&e.mode,ctime:Date.now(),dontFollow:n})},chmod(r,e,t){var n;n="string"==typeof r?kr.lookupPath(r,{follow:!t}).node:r,kr.doChmod(null,n,e,t)},lchmod(r,e){kr.chmod(r,e,!0)},fchmod(r,e){var t=kr.getStreamChecked(r);kr.doChmod(t,t.node,e,!1)},doChown(r,e,t){kr.doSetAttr(r,e,{timestamp:Date.now(),dontFollow:t})},chown(r,e,t,n){var o;o="string"==typeof r?kr.lookupPath(r,{follow:!n}).node:r,kr.doChown(null,o,n)},lchown(r,e,t){kr.chown(r,e,t,!0)},fchown(r,e,t){var n=kr.getStreamChecked(r);kr.doChown(n,n.node,!1)},doTruncate(r,e,t){if(kr.isDir(e.mode))throw new kr.ErrnoError(31);if(!kr.isFile(e.mode))throw new kr.ErrnoError(28);var n=kr.nodePermissions(e,"w");if(n)throw new kr.ErrnoError(n);kr.doSetAttr(r,e,{size:t,timestamp:Date.now()})},truncate(r,e){if(e<0)throw new kr.ErrnoError(28);var t;t="string"==typeof r?kr.lookupPath(r,{follow:!0}).node:r,kr.doTruncate(null,t,e)},ftruncate(r,e){var t=kr.getStreamChecked(r);if(e<0||!(2097155&t.flags))throw new kr.ErrnoError(28);kr.doTruncate(t,t.node,e)},utime(r,e,t){var n=kr.lookupPath(r,{follow:!0}).node;kr.checkOpExists(n.node_ops.setattr,63)(n,{atime:e,mtime:t})},open(r,e,t=438){if(""===r)throw new kr.ErrnoError(44);var n,o;if(t=64&(e="string"==typeof e?(r=>{var e={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[r];if(void 0===e)throw new Error(`Unknown file open mode: ${r}`);return e})(e):e)?4095&t|32768:0,"object"==typeof r)n=r;else{o=r.endsWith("/");var a=kr.lookupPath(r,{follow:!(131072&e),noent_okay:!0});n=a.node,r=a.path}var s=!1;if(64&e)if(n){if(128&e)throw new kr.ErrnoError(20)}else{if(o)throw new kr.ErrnoError(31);n=kr.mknod(r,511|t,0),s=!0}if(!n)throw new kr.ErrnoError(44);if(kr.isChrdev(n.mode)&&(e&=-513),65536&e&&!kr.isDir(n.mode))throw new kr.ErrnoError(54);if(!s){var i=kr.mayOpen(n,e);if(i)throw new kr.ErrnoError(i)}512&e&&!s&&kr.truncate(n,0),e&=-131713;var u=kr.createStream({node:n,path:kr.getPath(n),flags:e,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return u.stream_ops.open&&u.stream_ops.open(u),s&&kr.chmod(n,511&t),u},close(r){if(kr.isClosed(r))throw new kr.ErrnoError(8);r.getdents&&(r.getdents=null);try{r.stream_ops.close&&r.stream_ops.close(r)}catch(r){throw r}finally{kr.closeStream(r.fd)}r.fd=null},isClosed:r=>null===r.fd,llseek(r,e,t){if(kr.isClosed(r))throw new kr.ErrnoError(8);if(!r.seekable||!r.stream_ops.llseek)throw new kr.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new kr.ErrnoError(28);return r.position=r.stream_ops.llseek(r,e,t),r.ungotten=[],r.position},read(r,e,t,n,o){if(n<0||o<0)throw new kr.ErrnoError(28);if(kr.isClosed(r))throw new kr.ErrnoError(8);if(1==(2097155&r.flags))throw new kr.ErrnoError(8);if(kr.isDir(r.node.mode))throw new kr.ErrnoError(31);if(!r.stream_ops.read)throw new kr.ErrnoError(28);var a=void 0!==o;if(a){if(!r.seekable)throw new kr.ErrnoError(70)}else o=r.position;var s=r.stream_ops.read(r,e,t,n,o);return a||(r.position+=s),s},write(r,e,t,n,o,a){if(n<0||o<0)throw new kr.ErrnoError(28);if(kr.isClosed(r))throw new kr.ErrnoError(8);if(!(2097155&r.flags))throw new kr.ErrnoError(8);if(kr.isDir(r.node.mode))throw new kr.ErrnoError(31);if(!r.stream_ops.write)throw new kr.ErrnoError(28);r.seekable&&1024&r.flags&&kr.llseek(r,0,2);var s=void 0!==o;if(s){if(!r.seekable)throw new kr.ErrnoError(70)}else o=r.position;var i=r.stream_ops.write(r,e,t,n,o,a);return s||(r.position+=i),i},mmap(r,e,t,n,o){if(2&n&&!(2&o)&&2!=(2097155&r.flags))throw new kr.ErrnoError(2);if(1==(2097155&r.flags))throw new kr.ErrnoError(2);if(!r.stream_ops.mmap)throw new kr.ErrnoError(43);if(!e)throw new kr.ErrnoError(28);return r.stream_ops.mmap(r,e,t,n,o)},msync:(r,e,t,n,o)=>r.stream_ops.msync?r.stream_ops.msync(r,e,t,n,o):0,ioctl(r,e,t){if(!r.stream_ops.ioctl)throw new kr.ErrnoError(59);return r.stream_ops.ioctl(r,e,t)},readFile(r,e={}){e.flags=e.flags||0,e.encoding=e.encoding||"binary","utf8"!==e.encoding&&"binary"!==e.encoding&&M(`Invalid encoding type "${e.encoding}"`);var t=kr.open(r,e.flags),n=kr.stat(r).size,o=new Uint8Array(n);return kr.read(t,o,0,n,0),"utf8"===e.encoding&&(o=sr(o)),kr.close(t),o},writeFile(r,e,t={}){t.flags=t.flags||577;var n=kr.open(r,t.flags,t.mode);"string"==typeof e&&(e=new Uint8Array(lr(e))),ArrayBuffer.isView(e)?kr.write(n,e,0,e.byteLength,void 0,t.canOwn):M("Unsupported data type"),kr.close(n)},cwd:()=>kr.currentPath,chdir(r){var e=kr.lookupPath(r,{follow:!0});if(null===e.node)throw new kr.ErrnoError(44);if(!kr.isDir(e.node.mode))throw new kr.ErrnoError(54);var t=kr.nodePermissions(e.node,"x");if(t)throw new kr.ErrnoError(t);kr.currentPath=e.path},createDefaultDirectories(){kr.mkdir("/tmp"),kr.mkdir("/home"),kr.mkdir("/home/web_user")},createDefaultDevices(){kr.mkdir("/dev"),kr.registerDevice(kr.makedev(1,3),{read:()=>0,write:(r,e,t,n,o)=>n,llseek:()=>0}),kr.mkdev("/dev/null",kr.makedev(1,3)),dr.register(kr.makedev(5,0),dr.default_tty_ops),dr.register(kr.makedev(6,0),dr.default_tty1_ops),kr.mkdev("/dev/tty",kr.makedev(5,0)),kr.mkdev("/dev/tty1",kr.makedev(6,0));var r=new Uint8Array(1024),e=0,t=()=>(0===e&&(er(r),e=r.byteLength),r[--e]);kr.createDevice("/dev","random",t),kr.createDevice("/dev","urandom",t),kr.mkdir("/dev/shm"),kr.mkdir("/dev/shm/tmp")},createSpecialDirectories(){kr.mkdir("/proc");var r=kr.mkdir("/proc/self");kr.mkdir("/proc/self/fd"),kr.mount({mount(){var e=kr.createNode(r,"fd",16895,73);return e.stream_ops={llseek:mr.stream_ops.llseek},e.node_ops={lookup(r,e){var t=+e,n=kr.getStreamChecked(t),o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path},id:t+1};return o.parent=o,o},readdir:()=>Array.from(kr.streams.entries()).filter(([r,e])=>e).map(([r,e])=>r.toString())},e}},{},"/proc/self/fd")},createStandardStreams(r,e,t){r?kr.createDevice("/dev","stdin",r):kr.symlink("/dev/tty","/dev/stdin"),e?kr.createDevice("/dev","stdout",null,e):kr.symlink("/dev/tty","/dev/stdout"),t?kr.createDevice("/dev","stderr",null,t):kr.symlink("/dev/tty1","/dev/stderr"),kr.open("/dev/stdin",0),kr.open("/dev/stdout",1),kr.open("/dev/stderr",1)},staticInit(){kr.nameTable=new Array(4096),kr.mount(mr,{},"/"),kr.createDefaultDirectories(),kr.createDefaultDevices(),kr.createSpecialDirectories(),kr.filesystems={MEMFS:mr}},init(r,e,t){kr.initialized=!0,r??=a.stdin,e??=a.stdout,t??=a.stderr,kr.createStandardStreams(r,e,t)},quit(){for(var r of(kr.initialized=!1,kr.streams))r&&kr.close(r)},findObject(r,e){var t=kr.analyzePath(r,e);return t.exists?t.object:null},analyzePath(r,e){try{r=(n=kr.lookupPath(r,{follow:!e})).path}catch(r){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=kr.lookupPath(r,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=tr.basename(r),n=kr.lookupPath(r,{follow:!e}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(r){t.error=r.errno}return t},createPath(r,e,t,n){r="string"==typeof r?r:kr.getPath(r);for(var o=e.split("/").reverse();o.length;){var a=o.pop();if(a){var s=tr.join2(r,a);try{kr.mkdir(s)}catch(r){if(20!=r.errno)throw r}r=s}}return s},createFile(r,e,t,n,o){var a=tr.join2("string"==typeof r?r:kr.getPath(r),e),s=vr(n,o);return kr.create(a,s)},createDataFile(r,e,t,n,o,a){var s=e;r&&(r="string"==typeof r?r:kr.getPath(r),s=e?tr.join2(r,e):r);var i=vr(n,o),u=kr.create(s,i);if(t){if("string"==typeof t){for(var c=new Array(t.length),l=0,d=t.length;l<d;++l)c[l]=t.charCodeAt(l);t=c}kr.chmod(u,146|i);var f=kr.open(u,577);kr.write(f,t,0,t.length,0,a),kr.close(f),kr.chmod(u,i)}},createDevice(r,e,t,n){var o=tr.join2("string"==typeof r?r:kr.getPath(r),e),a=vr(!!t,!!n);kr.createDevice.major??=64;var s=kr.makedev(kr.createDevice.major++,0);return kr.registerDevice(s,{open(r){r.seekable=!1},close(r){n?.buffer?.length&&n(10)},read(r,e,n,o,a){for(var s=0,i=0;i<o;i++){var u;try{u=t()}catch(r){throw new kr.ErrnoError(29)}if(void 0===u&&0===s)throw new kr.ErrnoError(6);if(null==u)break;s++,e[n+i]=u}return s&&(r.node.atime=Date.now()),s},write(r,e,t,o,a){for(var s=0;s<o;s++)try{n(e[t+s])}catch(r){throw new kr.ErrnoError(29)}return o&&(r.node.mtime=r.node.ctime=Date.now()),s}}),kr.mkdev(o,a,s)},forceLoadFile(r){if(r.isDevice||r.isFolder||r.link||r.contents)return!0;if(globalThis.XMLHttpRequest)M("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.");else try{r.contents=f(r.url)}catch(r){throw new kr.ErrnoError(29)}},createLazyFile(r,e,t,n,o){class a{lengthKnown=!1;chunks=[];get(r){if(!(r>this.length-1||r<0)){var e=r%this.chunkSize,t=r/this.chunkSize|0;return this.getter(t)[e]}}setDataGetter(r){this.getter=r}cacheLength(){var r=new XMLHttpRequest;r.open("HEAD",t,!1),r.send(null),r.status>=200&&r.status<300||304===r.status||M("Couldn't load "+t+". Status: "+r.status);var e,n=Number(r.getResponseHeader("Content-length")),o=(e=r.getResponseHeader("Accept-Ranges"))&&"bytes"===e,a=(e=r.getResponseHeader("Content-Encoding"))&&"gzip"===e,s=1048576;o||(s=n);var i=this;i.setDataGetter(r=>{var e=r*s,o=(r+1)*s-1;return o=Math.min(o,n-1),void 0===i.chunks[r]&&(i.chunks[r]=((r,e)=>{r>e&&M("invalid range ("+r+", "+e+") or no bytes requested!"),e>n-1&&M("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;return o.open("GET",t,!1),n!==s&&o.setRequestHeader("Range","bytes="+r+"-"+e),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||M("Couldn't load "+t+". Status: "+o.status),void 0!==o.response?new Uint8Array(o.response||[]):lr(o.responseText||"")})(e,o)),void 0===i.chunks[r]&&M("doXHR failed!"),i.chunks[r]}),!a&&n||(s=n=1,n=this.getter(0).length,s=n,A("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=s,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(globalThis.XMLHttpRequest){i||M("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var s={isDevice:!1,contents:new a}}else s={isDevice:!1,url:t};var u=kr.createFile(r,e,s,n,o);s.contents?u.contents=s.contents:s.url&&(u.contents=null,u.url=s.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var c={};for(const[r,e]of Object.entries(u.stream_ops))c[r]=(...r)=>(kr.forceLoadFile(u),e(...r));function l(r,e,t,n,o){var a=r.node.contents;if(o>=a.length)return 0;var s=Math.min(a.length-o,n);if(a.slice)for(var i=0;i<s;i++)e[t+i]=a[o+i];else for(i=0;i<s;i++)e[t+i]=a.get(o+i);return s}return c.read=(r,e,t,n,o)=>(kr.forceLoadFile(u),l(r,e,t,n,o)),c.mmap=(r,e,t,n,o)=>{kr.forceLoadFile(u);var a=pr(e);if(!a)throw new kr.ErrnoError(48);return l(r,y,a,e,t),{ptr:a,allocated:!0}},u.stream_ops=c,u}},br={websocketArgs:{},callbacks:{},on(r,e){br.callbacks[r]=e},emit(r,e){br.callbacks[r]?.(e)},mount:r=>(br.websocketArgs=a.websocket||{},(a.websocket??={}).on=br.on,kr.createNode(null,"/",16895,0)),createSocket(r,e,t){if(2!=r)throw new kr.ErrnoError(5);if(1!=(e&=-526337)&&2!=e)throw new kr.ErrnoError(28);if(1==e&&t&&6!=t)throw new kr.ErrnoError(66);var n={family:r,type:e,protocol:t,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:br.websocket_sock_ops},o=br.nextname(),a=kr.createNode(br.root,o,49152,0);a.sock=n;var s=kr.createStream({path:o,node:a,flags:2,seekable:!1,stream_ops:br.stream_ops});return n.stream=s,n},getSocket(r){var e=kr.getStream(r);return e&&kr.isSocket(e.node.mode)?e.node.sock:null},stream_ops:{poll(r){var e=r.node.sock;return e.sock_ops.poll(e)},ioctl(r,e,t){var n=r.node.sock;return n.sock_ops.ioctl(n,e,t)},read(r,e,t,n,o){var a=r.node.sock,s=a.sock_ops.recvmsg(a,n);return s?(e.set(s.buffer,t),s.buffer.length):0},write(r,e,t,n,o){var a=r.node.sock;return a.sock_ops.sendmsg(a,e,t,n)},close(r){var e=r.node.sock;e.sock_ops.close(e)}},nextname:()=>(br.nextname.current||(br.nextname.current=0),`socket[${br.nextname.current++}]`),websocket_sock_ops:{createPeer(r,e,t){var n;if("object"==typeof e&&(n=e,e=null,t=null),n)if(n._socket)e=n._socket.remoteAddress,t=n._socket.remotePort;else{var o=/ws[s]?:\/\/([^:]+):(\d+)/.exec(n.url);if(!o)throw new Error("WebSocket URL must be in the format ws(s)://address:port");e=o[1],t=parseInt(o[2],10)}else try{var a="ws://".replace("#","//"),s="binary",i=void 0;if(br.websocketArgs.url&&(a=br.websocketArgs.url),br.websocketArgs.subprotocol?s=br.websocketArgs.subprotocol:null===br.websocketArgs.subprotocol&&(s="null"),"ws://"===a||"wss://"===a){var c=e.split("/");a=a+c[0]+":"+t+"/"+c.slice(1).join("/")}"null"!==s&&(i=s=s.replace(/^ +| +$/g,"").split(/ *, */)),(n=new(u?require("ws"):WebSocket)(a,i)).binaryType="arraybuffer"}catch(r){throw new kr.ErrnoError(23)}var l={addr:e,port:t,socket:n,msg_send_queue:[]};return br.websocket_sock_ops.addPeer(r,l),br.websocket_sock_ops.handlePeerEvents(r,l),2===r.type&&void 0!==r.sport&&l.msg_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(65280&r.sport)>>8,255&r.sport])),l},getPeer:(r,e,t)=>r.peers[e+":"+t],addPeer(r,e){r.peers[e.addr+":"+e.port]=e},removePeer(r,e){delete r.peers[e.addr+":"+e.port]},handlePeerEvents(r,e){var t=!0,n=function(){r.connecting=!1,br.emit("open",r.stream.fd);try{for(var t=e.msg_send_queue.shift();t;)e.socket.send(t),t=e.msg_send_queue.shift()}catch(r){e.socket.close()}};function o(n){if("string"==typeof n)n=(new TextEncoder).encode(n);else{if(0==n.byteLength)return;n=new Uint8Array(n)}var o=t;if(t=!1,o&&10===n.length&&255===n[0]&&255===n[1]&&255===n[2]&&255===n[3]&&n[4]==="p".charCodeAt(0)&&n[5]==="o".charCodeAt(0)&&n[6]==="r".charCodeAt(0)&&n[7]==="t".charCodeAt(0)){var a=n[8]<<8|n[9];return br.websocket_sock_ops.removePeer(r,e),e.port=a,void br.websocket_sock_ops.addPeer(r,e)}r.recv_queue.push({addr:e.addr,port:e.port,data:n}),br.emit("message",r.stream.fd)}u?(e.socket.on("open",n),e.socket.on("message",function(r,e){e&&o(new Uint8Array(r).buffer)}),e.socket.on("close",function(){br.emit("close",r.stream.fd)}),e.socket.on("error",function(e){r.error=14,br.emit("error",[r.stream.fd,r.error,"ECONNREFUSED: Connection refused"])})):(e.socket.onopen=n,e.socket.onclose=function(){br.emit("close",r.stream.fd)},e.socket.onmessage=function(r){o(r.data)},e.socket.onerror=function(e){r.error=14,br.emit("error",[r.stream.fd,r.error,"ECONNREFUSED: Connection refused"])})},poll(r){if(1===r.type&&r.server)return r.pending.length?65:0;var e=0,t=1===r.type?br.websocket_sock_ops.getPeer(r,r.daddr,r.dport):null;return(r.recv_queue.length||!t||t&&t.socket.readyState===t.socket.CLOSING||t&&t.socket.readyState===t.socket.CLOSED)&&(e|=65),(!t||t&&t.socket.readyState===t.socket.OPEN)&&(e|=4),(t&&t.socket.readyState===t.socket.CLOSING||t&&t.socket.readyState===t.socket.CLOSED)&&(r.connecting?e|=4:e|=16),e},ioctl(r,e,t){switch(e){case 21531:var n=0;return r.recv_queue.length&&(n=r.recv_queue[0].data.length),b[t>>2]=n,0;case 21537:return b[t>>2]?r.stream.flags|=2048:r.stream.flags&=-2049,0;default:return 28}},close(r){if(r.server){try{r.server.close()}catch(r){}r.server=null}for(var e of Object.values(r.peers)){try{e.socket.close()}catch(r){}br.websocket_sock_ops.removePeer(r,e)}return 0},bind(r,e,t){if(void 0!==r.saddr||void 0!==r.sport)throw new kr.ErrnoError(28);if(r.saddr=e,r.sport=t,2===r.type){r.server&&(r.server.close(),r.server=null);try{r.sock_ops.listen(r,0)}catch(r){if("ErrnoError"!==r.name)throw r;if(138!==r.errno)throw r}}},connect(r,e,t){if(r.server)throw new kr.ErrnoError(138);if(void 0!==r.daddr&&void 0!==r.dport){var n=br.websocket_sock_ops.getPeer(r,r.daddr,r.dport);if(n)throw n.socket.readyState===n.socket.CONNECTING?new kr.ErrnoError(7):new kr.ErrnoError(30)}var o=br.websocket_sock_ops.createPeer(r,e,t);r.daddr=o.addr,r.dport=o.port,r.connecting=!0},listen(r,e){if(!u)throw new kr.ErrnoError(138);if(r.server)throw new kr.ErrnoError(28);var n=t.Server,o=r.saddr;r.server=new n({host:o,port:r.sport}),br.emit("listen",r.stream.fd),r.server.on("connection",function(e){if(1===r.type){var t=br.createSocket(r.family,r.type,r.protocol),n=br.websocket_sock_ops.createPeer(t,e);t.daddr=n.addr,t.dport=n.port,r.pending.push(t),br.emit("connection",t.stream.fd)}else br.websocket_sock_ops.createPeer(r,e),br.emit("connection",r.stream.fd)}),r.server.on("close",function(){br.emit("close",r.stream.fd),r.server=null}),r.server.on("error",function(e){r.error=23,br.emit("error",[r.stream.fd,r.error,"EHOSTUNREACH: Host is unreachable"])})},accept(r){if(!r.server||!r.pending.length)throw new kr.ErrnoError(28);var e=r.pending.shift();return e.stream.flags=r.stream.flags,e},getname(r,e){var t,n;if(e){if(void 0===r.daddr||void 0===r.dport)throw new kr.ErrnoError(53);t=r.daddr,n=r.dport}else t=r.saddr||0,n=r.sport||0;return{addr:t,port:n}},sendmsg(r,e,t,n,o,a){if(2===r.type){if(void 0!==o&&void 0!==a||(o=r.daddr,a=r.dport),void 0===o||void 0===a)throw new kr.ErrnoError(17)}else o=r.daddr,a=r.dport;var s=br.websocket_sock_ops.getPeer(r,o,a);if(1===r.type&&(!s||s.socket.readyState===s.socket.CLOSING||s.socket.readyState===s.socket.CLOSED))throw new kr.ErrnoError(53);ArrayBuffer.isView(e)&&(t+=e.byteOffset,e=e.buffer);var i=e.slice(t,t+n);if(!s||s.socket.readyState!==s.socket.OPEN)return 2===r.type&&(s&&s.socket.readyState!==s.socket.CLOSING&&s.socket.readyState!==s.socket.CLOSED||(s=br.websocket_sock_ops.createPeer(r,o,a))),s.msg_send_queue.push(i),n;try{return s.socket.send(i),n}catch(r){throw new kr.ErrnoError(28)}},recvmsg(r,e){if(1===r.type&&r.server)throw new kr.ErrnoError(53);var t=r.recv_queue.shift();if(!t){if(1===r.type){var n=br.websocket_sock_ops.getPeer(r,r.daddr,r.dport);if(!n)throw new kr.ErrnoError(53);if(n.socket.readyState===n.socket.CLOSING||n.socket.readyState===n.socket.CLOSED)return null;throw new kr.ErrnoError(6)}throw new kr.ErrnoError(6)}var o=t.data.byteLength||t.data.length,a=t.data.byteOffset||0,s=t.data.buffer||t.data,i=Math.min(e,o),u={buffer:new Uint8Array(s,a,i),addr:t.addr,port:t.port};if(1===r.type&&i<o){var c=o-i;t.data=new Uint8Array(s,a+i,c),r.recv_queue.unshift(t)}return u}}},_r=r=>{var e=br.getSocket(r);if(!e)throw new kr.ErrnoError(8);return e},$r=r=>{for(var e=r.split("."),t=0;t<4;t++){var n=Number(e[t]);if(isNaN(n))return null;e[t]=n}return(e[0]|e[1]<<8|e[2]<<16|e[3]<<24)>>>0},Pr=r=>{var e,t,n,o,a=[];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.test(r))return null;if("::"===r)return[0,0,0,0,0,0,0,0];for((r=r.startsWith("::")?r.replace("::","Z:"):r.replace("::",":Z:")).indexOf(".")>0?((e=(r=r.replace(new RegExp("[.]","g"),":")).split(":"))[e.length-4]=Number(e[e.length-4])+256*Number(e[e.length-3]),e[e.length-3]=Number(e[e.length-2])+256*Number(e[e.length-1]),e=e.slice(0,e.length-2)):e=r.split(":"),n=0,o=0,t=0;t<e.length;t++)if("string"==typeof e[t])if("Z"===e[t]){for(o=0;o<8-e.length+1;o++)a[t+o]=0;n=o-1}else a[t+n]=Ae(parseInt(e[t],16));else a[t+n]=e[t];return[a[1]<<16|a[0],a[3]<<16|a[2],a[5]<<16|a[4],a[7]<<16|a[6]]},Sr=(r,e,t,n,o)=>{switch(e){case 2:t=$r(t),fr(r,16),o&&(b[o>>2]=16),E[r>>1]=e,b[r+4>>2]=t,E[r+2>>1]=Ae(n);break;case 10:t=Pr(t),fr(r,28),o&&(b[o>>2]=28),b[r>>2]=e,b[r+8>>2]=t[0],b[r+12>>2]=t[1],b[r+16>>2]=t[2],b[r+20>>2]=t[3],E[r+2>>1]=Ae(n);break;default:return 5}return 0},Cr={address_map:{id:1,addrs:{},names:{}},lookup_name(r){var e,t=$r(r);if(null!==t)return r;if(null!==(t=Pr(r)))return r;if(Cr.address_map.addrs[r])e=Cr.address_map.addrs[r];else{var n=Cr.address_map.id++;e="172.29."+(255&n)+"."+(65280&n),Cr.address_map.names[e]=r,Cr.address_map.addrs[r]=e}return e},lookup_addr:r=>Cr.address_map.names[r]?Cr.address_map.names[r]:null},Tr=r=>(255&r)+"."+(r>>8&255)+"."+(r>>16&255)+"."+(r>>24&255),Ar=r=>{var e="",t=0,n=0,o=0,a=0,s=0,i=0,u=[65535&r[0],r[0]>>16,65535&r[1],r[1]>>16,65535&r[2],r[2]>>16,65535&r[3],r[3]>>16],c=!0,l="";for(i=0;i<5;i++)if(0!==u[i]){c=!1;break}if(c){if(l=Tr(u[6]|u[7]<<16),-1===u[5])return e="::ffff:",e+=l;if(0===u[5])return e="::","0.0.0.0"===l&&(l=""),"0.0.0.1"===l&&(l="1"),e+=l}for(t=0;t<8;t++)0===u[t]&&(t-o>1&&(s=0),o=t,s++),s>n&&(a=t-(n=s)+1);for(t=0;t<8;t++)n>1&&0===u[t]&&t>=a&&t<a+n?t===a&&(e+=":",0===a&&(e+=":")):(e+=Number(De(65535&u[t])).toString(16),e+=t<7?":":"");return e},Dr=(r,e)=>{var t=((r,e)=>{var t,n=E[r>>1],o=De(k[r+2>>1]);switch(n){case 2:if(16!==e)return{errno:28};t=b[r+4>>2],t=Tr(t);break;case 10:if(28!==e)return{errno:28};t=[b[r+8>>2],b[r+12>>2],b[r+16>>2],b[r+20>>2]],t=Ar(t);break;default:return{errno:5}}return{family:n,addr:t,port:o}})(r,e);if(t.errno)throw new kr.ErrnoError(t.errno);return t.addr=Cr.lookup_addr(t.addr)||t.addr,t},Fr=()=>{var r=b[+Or.varargs>>2];return Or.varargs+=4,r},xr=Fr,Nr=(r,e,t)=>r?sr(g,r,e,t):"",Or={calculateAt(r,e,t){if(tr.isAbs(e))return e;var n;if(n=-100===r?kr.cwd():Or.getStreamFromFD(r).path,0==e.length){if(!t)throw new kr.ErrnoError(44);return n}return n+"/"+e},writeStat(r,e){_[r>>2]=e.dev,_[r+4>>2]=e.mode,_[r+8>>2]=e.nlink,_[r+12>>2]=e.uid,_[r+16>>2]=e.gid,_[r+20>>2]=e.rdev,S[r+24>>3]=BigInt(e.size),b[r+32>>2]=4096,b[r+36>>2]=e.blocks;var t=e.atime.getTime(),n=e.mtime.getTime(),o=e.ctime.getTime();return S[r+40>>3]=BigInt(Math.floor(t/1e3)),_[r+48>>2]=t%1e3*1e3*1e3,S[r+56>>3]=BigInt(Math.floor(n/1e3)),_[r+64>>2]=n%1e3*1e3*1e3,S[r+72>>3]=BigInt(Math.floor(o/1e3)),_[r+80>>2]=o%1e3*1e3*1e3,S[r+88>>3]=BigInt(e.ino),0},writeStatFs(r,e){_[r+4>>2]=e.bsize,_[r+60>>2]=e.bsize,S[r+8>>3]=BigInt(e.blocks),S[r+16>>3]=BigInt(e.bfree),S[r+24>>3]=BigInt(e.bavail),S[r+32>>3]=BigInt(e.files),S[r+40>>3]=BigInt(e.ffree),_[r+48>>2]=e.fsid,_[r+64>>2]=e.flags,_[r+56>>2]=e.namelen},doMsync(r,e,t,n,o){if(!kr.isFile(e.node.mode))throw new kr.ErrnoError(43);if(2&n)return 0;var a=g.slice(r,r+t);kr.msync(e,a,o,t,n)},getStreamFromFD:r=>kr.getStreamChecked(r),varargs:void 0,getStr:r=>Nr(r)},Mr=(r,e,t)=>cr(r,g,e,t),Rr=r=>{for(var e="";;){var t=g[r++];if(!t)return e;e+=String.fromCharCode(t)}},Br={},jr={},Ir={},Wr=class extends Error{constructor(r){super(r),this.name="BindingError"}},zr=r=>{throw new Wr(r)};function Lr(r,e,t={}){return function(r,e,t={}){var n=e.name;if(r||zr(`type "${n}" must have a positive integer typeid pointer`),jr.hasOwnProperty(r)){if(t.ignoreDuplicateRegistrations)return;zr(`Cannot register type '${n}' twice`)}if(jr[r]=e,delete Ir[r],Br.hasOwnProperty(r)){var o=Br[r];delete Br[r],o.forEach(r=>r())}}(r,e,t)}var Ur=(r,e,t)=>{switch(e){case 1:return t?r=>y[r]:r=>g[r];case 2:return t?r=>E[r>>1]:r=>k[r>>1];case 4:return t?r=>b[r>>2]:r=>_[r>>2];case 8:return t?r=>S[r>>3]:r=>C[r>>3];default:throw new TypeError(`invalid integer width (${e}): ${r}`)}},qr=r=>{zr(r.$$.ptrType.registeredClass.name+" instance already deleted")},Hr=!1,Vr=r=>{},Gr=r=>{r.count.value-=1,0===r.count.value&&(r=>{r.smartPtr?r.smartPtrType.rawDestructor(r.smartPtr):r.ptrType.registeredClass.rawDestructor(r.ptr)})(r)},Xr=r=>globalThis.FinalizationRegistry?(Hr=new FinalizationRegistry(r=>{Gr(r.$$)}),Xr=r=>{var e=r.$$;if(e.smartPtr){var t={$$:e};Hr.register(r,t,r)}return r},Vr=r=>Hr.unregister(r),Xr(r)):(Xr=r=>r,r);function Yr(){}var Kr=(r,e)=>Object.defineProperty(e,"name",{value:r}),Zr={},Jr=(r,e,t)=>{if(void 0===r[e].overloadTable){var n=r[e];r[e]=function(...n){return r[e].overloadTable.hasOwnProperty(n.length)||zr(`Function '${t}' called with an invalid number of arguments (${n.length}) - expects one of (${r[e].overloadTable})!`),r[e].overloadTable[n.length].apply(this,n)},r[e].overloadTable=[],r[e].overloadTable[n.argCount]=n}},Qr=(r,e,t)=>{a.hasOwnProperty(r)?((void 0===t||void 0!==a[r].overloadTable&&void 0!==a[r].overloadTable[t])&&zr(`Cannot register public name '${r}' twice`),Jr(a,r,r),a[r].overloadTable.hasOwnProperty(t)&&zr(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),a[r].overloadTable[t]=e):(a[r]=e,a[r].argCount=t)};function re(r,e,t,n,o,a,s,i){this.name=r,this.constructor=e,this.instancePrototype=t,this.rawDestructor=n,this.baseClass=o,this.getActualType=a,this.upcast=s,this.downcast=i,this.pureVirtualFunctions=[]}var ee=(r,e,t)=>{for(;e!==t;)e.upcast||zr(`Expected null or instance of ${t.name}, got an instance of ${e.name}`),r=e.upcast(r),e=e.baseClass;return r},te=r=>{if(null===r)return"null";var e=typeof r;return"object"===e||"array"===e||"function"===e?r.toString():""+r};function ne(r,e){if(null===e)return this.isReference&&zr(`null is not a valid ${this.name}`),0;e.$$||zr(`Cannot pass "${te(e)}" as a ${this.name}`),e.$$.ptr||zr(`Cannot pass deleted object as a pointer of type ${this.name}`);var t=e.$$.ptrType.registeredClass;return ee(e.$$.ptr,t,this.registeredClass)}function oe(r,e){var t;if(null===e)return this.isReference&&zr(`null is not a valid ${this.name}`),this.isSmartPointer?(t=this.rawConstructor(),null!==r&&r.push(this.rawDestructor,t),t):0;e&&e.$$||zr(`Cannot pass "${te(e)}" as a ${this.name}`),e.$$.ptr||zr(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&e.$$.ptrType.isConst&&zr(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);var n=e.$$.ptrType.registeredClass;if(t=ee(e.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===e.$$.smartPtr&&zr("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:e.$$.smartPtrType===this?t=e.$$.smartPtr:zr(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:t=e.$$.smartPtr;break;case 2:if(e.$$.smartPtrType===this)t=e.$$.smartPtr;else{var o=e.clone();t=this.rawShare(t,Ye.toHandle(()=>o.delete())),null!==r&&r.push(this.rawDestructor,t)}break;default:zr("Unsupported sharing policy")}return t}function ae(r,e){if(null===e)return this.isReference&&zr(`null is not a valid ${this.name}`),0;e.$$||zr(`Cannot pass "${te(e)}" as a ${this.name}`),e.$$.ptr||zr(`Cannot pass deleted object as a pointer of type ${this.name}`),e.$$.ptrType.isConst&&zr(`Cannot convert argument of type ${e.$$.ptrType.name} to parameter type ${this.name}`);var t=e.$$.ptrType.registeredClass;return ee(e.$$.ptr,t,this.registeredClass)}function se(r){return this.fromWireType(_[r>>2])}var ie=(r,e,t)=>{if(e===t)return r;if(void 0===t.baseClass)return null;var n=ie(r,e,t.baseClass);return null===n?null:t.downcast(n)},ue={},ce=(r,e)=>(e=((r,e)=>{for(void 0===e&&zr("ptr should not be undefined");r.baseClass;)e=r.upcast(e),r=r.baseClass;return e})(r,e),ue[e]),le=class extends Error{constructor(r){super(r),this.name="InternalError"}},de=r=>{throw new le(r)},fe=(r,e)=>(e.ptrType&&e.ptr||de("makeClassHandle requires ptr and ptrType"),!!e.smartPtrType!=!!e.smartPtr&&de("Both smartPtrType and smartPtr must be specified"),e.count={value:1},Xr(Object.create(r,{$$:{value:e,writable:!0}})));function he(r){var e=this.getPointee(r);if(!e)return this.destructor(r),null;var t=ce(this.registeredClass,e);if(void 0!==t){if(0===t.$$.count.value)return t.$$.ptr=e,t.$$.smartPtr=r,t.clone();var n=t.clone();return this.destructor(r),n}function o(){return this.isSmartPointer?fe(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:e,smartPtrType:this,smartPtr:r}):fe(this.registeredClass.instancePrototype,{ptrType:this,ptr:r})}var a,s=this.registeredClass.getActualType(e),i=Zr[s];if(!i)return o.call(this);a=this.isConst?i.constPointerType:i.pointerType;var u=ie(e,this.registeredClass,a.registeredClass);return null===u?o.call(this):this.isSmartPointer?fe(a.registeredClass.instancePrototype,{ptrType:a,ptr:u,smartPtrType:this,smartPtr:r}):fe(a.registeredClass.instancePrototype,{ptrType:a,ptr:u})}function pe(r,e,t,n,o,a,s,i,u,c,l){this.name=r,this.registeredClass=e,this.isReference=t,this.isConst=n,this.isSmartPointer=o,this.pointeeType=a,this.sharingPolicy=s,this.rawGetPointee=i,this.rawConstructor=u,this.rawShare=c,this.rawDestructor=l,o||void 0!==e.baseClass?this.toWireType=oe:n?(this.toWireType=ne,this.destructorFunction=null):(this.toWireType=ae,this.destructorFunction=null)}var me=(r,e,t)=>{a.hasOwnProperty(r)||de("Replacing nonexistent public symbol"),void 0!==a[r].overloadTable&&void 0!==t?a[r].overloadTable[t]=e:(a[r]=e,a[r].argCount=t)},ve=[],we=r=>{var e=ve[r];return e||(ve[r]=e=He.get(r)),e},ye=(r,e,t=!1)=>{r=Rr(r);var n=we(e);return"function"!=typeof n&&zr(`unknown function pointer with signature ${r}: ${e}`),n};class ge extends Error{}var Ee=r=>{var e=xe(r),t=Rr(e);return Fe(e),t},ke=(r,e)=>{var t=[],n={};throw e.forEach(function r(e){n[e]||jr[e]||(Ir[e]?Ir[e].forEach(r):(t.push(e),n[e]=!0))}),new ge(`${r}: `+t.map(Ee).join([", "]))},be=(r,e,t)=>{function n(e){var n=t(e);n.length!==r.length&&de("Mismatched type converter count");for(var o=0;o<r.length;++o)Lr(r[o],n[o])}r.forEach(r=>Ir[r]=e);var o=new Array(e.length),a=[],s=0;for(let[r,t]of e.entries())jr.hasOwnProperty(t)?o[r]=jr[t]:(a.push(t),Br.hasOwnProperty(t)||(Br[t]=[]),Br[t].push(()=>{o[r]=jr[t],++s===a.length&&n(o)}));0===a.length&&n(o)},_e=(r,e)=>{for(var t=[],n=0;n<r;n++)t.push(_[e+4*n>>2]);return t},$e=r=>{for(;r.length;){var e=r.pop();r.pop()(e)}};function Pe(r){for(var e=1;e<r.length;++e)if(null!==r[e]&&void 0===r[e].destructorFunction)return!0;return!1}function Se(r,e,t,n,o,a){var s=e.length;s<2&&zr("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var i=null!==e[1]&&null!==t,u=Pe(e),c=!e[0].isVoid,l=e[0],d=e[1],f=[r,zr,n,o,$e,l.fromWireType.bind(l),d?.toWireType.bind(d)],h=2;h<s;++h){var p=e[h];f.push(p.toWireType.bind(p))}if(!u)for(h=i?1:2;h<e.length;++h)null!==e[h].destructorFunction&&f.push(e[h].destructorFunction);let m=function(r,e,t,n){var o=Pe(r),a=r.length-2,s=[],i=["fn"];e&&i.push("thisWired");for(var u=0;u<a;++u)s.push(`arg${u}`),i.push(`arg${u}Wired`);s=s.join(","),i=i.join(",");var c=`return function (${s}) {\n`;o&&(c+="var destructors = [];\n");var l=o?"destructors":"null",d=["humanName","throwBindingError","invoker","fn","runDestructors","fromRetWire","toClassParamWire"];for(e&&(c+=`var thisWired = toClassParamWire(${l}, this);\n`),u=0;u<a;++u){var f=`toArg${u}Wire`;c+=`var arg${u}Wired = ${f}(${l}, arg${u});\n`,d.push(f)}if(c+=(t||n?"var rv = ":"")+`invoker(${i});\n`,o)c+="runDestructors(destructors);\n";else for(u=e?1:2;u<r.length;++u){var h=1===u?"thisWired":"arg"+(u-2)+"Wired";null!==r[u].destructorFunction&&(c+=`${h}_dtor(${h});\n`,d.push(`${h}_dtor`))}return t&&(c+="var ret = fromRetWire(rv);\nreturn ret;\n"),c+="}\n",new Function(d,c)}(e,i,c,a);var v=m(...f);return Kr(r,v)}var Ce,Te,Ae,De,Fe,xe,Ne,Oe,Me,Re,Be,je,Ie,We,ze,Le,Ue,qe,He,Ve=r=>{const e=(r=r.trim()).indexOf("(");return-1===e?r:r.slice(0,e)},Ge=[],Xe=[0,1,,1,null,1,!0,1,!1,1],Ye={toValue:r=>(r||zr(`Cannot use deleted val. handle = ${r}`),Xe[r]),toHandle:r=>{switch(r){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{const e=Ge.pop()||Xe.length;return Xe[e]=r,Xe[e+1]=1,e}}}},Ke={name:"emscripten::val",fromWireType:r=>{var e=Ye.toValue(r);return(r=>{r>9&&0===--Xe[r+1]&&(Xe[r]=void 0,Ge.push(r))})(r),e},toWireType:(r,e)=>Ye.toHandle(e),readValueFromPointer:se,destructorFunction:null},Ze=(r,e)=>{switch(e){case 4:return function(r){return this.fromWireType($[r>>2])};case 8:return function(r){return this.fromWireType(P[r>>3])};default:throw new TypeError(`invalid float width (${e}): ${r}`)}},Je=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,Qe=(r,e,t)=>{var n=r>>1,o=ar(k,n,e/2,t);if(o-n>16&&Je)return Je.decode(k.subarray(n,o));for(var a="",s=n;s<o;++s){var i=k[s];a+=String.fromCharCode(i)}return a},rt=(r,e,t)=>{if(t??=2147483647,t<2)return 0;for(var n=e,o=(t-=2)<2*r.length?t/2:r.length,a=0;a<o;++a){var s=r.charCodeAt(a);E[e>>1]=s,e+=2}return E[e>>1]=0,e-n},et=r=>2*r.length,tt=(r,e,t)=>{for(var n="",o=r>>2,a=0;!(a>=e/4);a++){var s=_[o+a];if(!s&&!t)break;n+=String.fromCodePoint(s)}return n},nt=(r,e,t)=>{if(t??=2147483647,t<4)return 0;for(var n=e,o=n+t-4,a=0;a<r.length;++a){var s=r.codePointAt(a);if(s>65535&&a++,b[e>>2]=s,(e+=4)+4>o)break}return b[e>>2]=0,e-n},ot=r=>{for(var e=0,t=0;t<r.length;++t)r.codePointAt(t)>65535&&t++,e+=4;return e},at=[0,31,60,91,121,152,182,213,244,274,305,335],st=[0,31,59,90,120,151,181,212,243,273,304,334],it=r=>r<-9007199254740992||r>9007199254740992?NaN:Number(r),ut=()=>performance.now(),ct=()=>Date.now(),lt=r=>{var e=(r-qe.buffer.byteLength+65535)/65536|0;try{return qe.grow(e),O(),1}catch(r){}},dt={},ft=()=>{if(!ft.strings){var r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:c||"./this.program"};for(var e in dt)void 0===dt[e]?delete r[e]:r[e]=dt[e];var t=[];for(var e in r)t.push(`${e}=${r[e]}`);ft.strings=t}return ft.strings},ht=r=>{H||(a.onExit?.(r),F=!0),l(r,new I(r))},pt=(r,e)=>{ht(r)},mt=r=>a["_"+r],vt=r=>je(r),wt=(r,e,t,n,o)=>{var a={string:r=>{var e=0;return null!=r&&0!==r&&(e=(r=>{var e=ur(r)+1,t=vt(e);return Mr(r,t,e),t})(r)),e},array:r=>{var e,t,n=vt(r.length);return e=r,t=n,y.set(e,t),n}},s=mt(r),i=[],u=0;if(n)for(var c=0;c<n.length;c++){var l=a[t[c]];l?(0===u&&(u=G()),i[c]=l(n[c])):i[c]=n[c]}var d=s(...i);return d=function(r){return 0!==u&&V(u),function(r){return"string"===e?Nr(r):"boolean"===e?Boolean(r):r}(r)}(d)},yt=r=>(Ce||(Ce=new WeakMap,((r,e)=>{if(Ce)for(var t=r;t<r+e;t++){var n=we(t);n&&Ce.set(n,t)}})(0,He.length)),Ce.get(r)||0),gt=[],Et=(r,e)=>{He.set(r,e),ve[r]=He.get(r)},kt=r=>{const e=r.length;return[e%128|128,e>>7,...r]},bt={i:127,p:127,j:126,f:125,d:124,e:111},_t=r=>kt(Array.from(r,r=>bt[r]));if(kr.createPreloadedFile=(r,e,t,n,o,a,s,i,u,c)=>{Er(r,e,t,n,o,i,u,c).then(a).catch(s)},kr.preloadFile=Er,kr.staticInit(),(()=>{let r=Yr.prototype;Object.assign(r,{isAliasOf(r){if(!(this instanceof Yr))return!1;if(!(r instanceof Yr))return!1;var e=this.$$.ptrType.registeredClass,t=this.$$.ptr;r.$$=r.$$;for(var n=r.$$.ptrType.registeredClass,o=r.$$.ptr;e.baseClass;)t=e.upcast(t),e=e.baseClass;for(;n.baseClass;)o=n.upcast(o),n=n.baseClass;return e===n&&t===o},clone(){if(this.$$.ptr||qr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var r,e=Xr(Object.create(Object.getPrototypeOf(this),{$$:{value:(r=this.$$,{count:r.count,deleteScheduled:r.deleteScheduled,preservePointerOnDelete:r.preservePointerOnDelete,ptr:r.ptr,ptrType:r.ptrType,smartPtr:r.smartPtr,smartPtrType:r.smartPtrType})}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e},delete(){this.$$.ptr||qr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&zr("Object already scheduled for deletion"),Vr(this),Gr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||qr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&zr("Object already scheduled for deletion"),this.$$.deleteScheduled=!0,this}});const e=Symbol.dispose;e&&(r[e]=r.delete)})(),Object.assign(pe.prototype,{getPointee(r){return this.rawGetPointee&&(r=this.rawGetPointee(r)),r},destructor(r){this.rawDestructor?.(r)},readValueFromPointer:se,fromWireType:he}),a.noExitRuntime&&(H=a.noExitRuntime),a.preloadPlugins&&(gr=a.preloadPlugins),a.print&&(A=a.print),a.printErr&&(D=a.printErr),a.wasmBinary&&(m=a.wasmBinary),a.arguments&&a.arguments,a.thisProgram&&(c=a.thisProgram),a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.shift()();a.ccall=wt,a.cwrap=(r,e,t,n)=>{var o=!t||t.every(r=>"number"===r||"boolean"===r);return"string"!==e&&o&&!n?mt(r):(...n)=>wt(r,e,t,n)},a.addFunction=(r,e)=>{var t=yt(r);if(t)return t;var n=gt.length?gt.pop():He.grow(1);try{Et(n,r)}catch(t){if(!(t instanceof TypeError))throw t;var o=((r,e)=>{var t=Uint8Array.of(0,97,115,109,1,0,0,0,1,...kt([1,96,..._t(e.slice(1)),..._t("v"===e[0]?"":e[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),n=new WebAssembly.Module(t);return new WebAssembly.Instance(n,{e:{f:r}}).exports.f})(r,e);Et(n,o)}return Ce.set(r,n),n},a.setValue=function(r,e,t="i8"){switch(t.endsWith("*")&&(t="*"),t){case"i1":case"i8":y[r]=e;break;case"i16":E[r>>1]=e;break;case"i32":b[r>>2]=e;break;case"i64":S[r>>3]=BigInt(e);break;case"float":$[r>>2]=e;break;case"double":P[r>>3]=e;break;case"*":_[r>>2]=e;break;default:M(`invalid type for setValue: ${t}`)}},a.getValue=function(r,e="i8"){switch(e.endsWith("*")&&(e="*"),e){case"i1":case"i8":return y[r];case"i16":return E[r>>1];case"i32":return b[r>>2];case"i64":return S[r>>3];case"float":return $[r>>2];case"double":return P[r>>3];case"*":return _[r>>2];default:M(`invalid type for getValue: ${e}`)}},a.UTF8ToString=Nr;var $t,Pt={l:r=>{var e=new Z(r);return e.get_caught()||(e.set_caught(!0),Y--),e.set_rethrown(!1),X.push(e),Ue(r)},o:()=>{Me(0,0);var r=X.pop();We(r.excPtr),K=0},a:()=>Q([]),f:r=>Q([r]),K:rr,ca:r=>{if(r){var e=new Z(r);X.push(e),e.set_rethrown(!0),rr()}},g:(r,e,t)=>{throw new Z(r).init(e,t),ze(r),Y++,K=r},da:()=>Y,b:r=>{throw K||(K=r),K},W:function(r,e,t,n,o,a){try{var s=_r(r),i=s.sock_ops.accept(s);return e&&Sr(e,i.family,Cr.lookup_name(i.daddr),i.dport,t),i.stream.fd}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},V:function(r,e,t,n,o,a){try{var s=_r(r),i=Dr(e,t);return s.sock_ops.connect(s,i.addr,i.port),0}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},s:function(r,e,t){Or.varargs=t;try{var n=Or.getStreamFromFD(r);switch(e){case 0:if((o=Fr())<0)return-28;for(;kr.streams[o];)o++;return kr.dupStream(n,o).fd;case 1:case 2:case 13:case 14:return 0;case 3:return n.flags;case 4:var o=Fr();return n.flags|=o,0;case 12:return o=xr(),E[o+0>>1]=2,0}return-28}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},oa:function(r,e){try{return Or.writeStat(e,kr.fstat(r))}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},_:function(r,e){try{if(0===e)return-28;var t=kr.cwd(),n=ur(t)+1;return e<n?-68:(Mr(t,r,e),n)}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},ga:function(r,e,t){try{var n=Or.getStreamFromFD(r);n.getdents||=kr.readdir(n.path);for(var o=280,a=0,s=kr.llseek(n,0,1),i=Math.floor(s/o),u=Math.min(n.getdents.length,i+Math.floor(t/o)),c=i;c<u;c++){var l,d,f=n.getdents[c];if("."===f)l=n.node.id,d=4;else if(".."===f)l=kr.lookupPath(n.path,{parent:!0}).node.id,d=4;else{var h;try{h=kr.lookupNode(n.node,f)}catch(r){if(28===r?.errno)continue;throw r}l=h.id,d=kr.isChrdev(h.mode)?2:kr.isDir(h.mode)?4:kr.isLink(h.mode)?10:8}S[e+a>>3]=BigInt(l),S[e+a+8>>3]=BigInt((c+1)*o),E[e+a+16>>1]=280,y[e+a+18]=d,Mr(f,e+a+19,256),a+=o}return kr.llseek(n,c*o,0),a}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},C:function(r,e,t,n,o,a){try{var s=_r(r);return 1===e&&4===t?(b[n>>2]=s.error,b[o>>2]=4,s.error=null,0):-50}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},qa:function(r,e,t){Or.varargs=t;try{var n=Or.getStreamFromFD(r);switch(e){case 21509:case 21510:case 21511:case 21512:case 21524:case 21515:return n.tty?0:-59;case 21505:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcgets){var o=n.tty.ops.ioctl_tcgets(n),a=xr();b[a>>2]=o.c_iflag||0,b[a+4>>2]=o.c_oflag||0,b[a+8>>2]=o.c_cflag||0,b[a+12>>2]=o.c_lflag||0;for(var s=0;s<32;s++)y[a+s+17]=o.c_cc[s]||0;return 0}return 0;case 21506:case 21507:case 21508:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcsets){a=xr();var i=b[a>>2],u=b[a+4>>2],c=b[a+8>>2],l=b[a+12>>2],d=[];for(s=0;s<32;s++)d.push(y[a+s+17]);return n.tty.ops.ioctl_tcsets(n.tty,e,{c_iflag:i,c_oflag:u,c_cflag:c,c_lflag:l,c_cc:d})}return 0;case 21519:return n.tty?(a=xr(),b[a>>2]=0,0):-59;case 21520:return n.tty?-28:-59;case 21537:case 21531:return a=xr(),kr.ioctl(n,e,a);case 21523:if(!n.tty)return-59;if(n.tty.ops.ioctl_tiocgwinsz){var f=n.tty.ops.ioctl_tiocgwinsz(n.tty);a=xr(),E[a>>1]=f[0],E[a+2>>1]=f[1]}return 0;default:return-28}}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},la:function(r,e){try{return r=Or.getStr(r),Or.writeStat(e,kr.lstat(r))}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},ma:function(r,e,t,n){try{e=Or.getStr(e);var o=256&n,a=4096&n;return n&=-6401,e=Or.calculateAt(r,e,a),Or.writeStat(t,o?kr.lstat(e):kr.stat(e))}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},O:function(r,e,t,n){Or.varargs=n;try{e=Or.getStr(e),e=Or.calculateAt(r,e);var o=n?Fr():0;return kr.open(e,t,o).fd}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},ha:function(r,e,t){try{for(var n=0,o=0;o<e;o++){var a=r+8*o,s=b[a>>2],i=E[a+4>>1],u=32,c=kr.getStream(s);c&&(u=c.stream_ops.poll?c.stream_ops.poll(c,-1):5),(u&=24|i)&&n++,E[a+6>>1]=u}return n}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},Z:function(r,e,t,n){try{if(e=Or.getStr(e),e=Or.calculateAt(r,e),n<=0)return-28;var o=kr.readlink(e),a=Math.min(n,ur(o)),s=y[t+a];return Mr(o,t,n+1),y[t+a]=s,a}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},U:function(r,e,t,n,o,a){try{var s=_r(r),i=s.sock_ops.recvmsg(s,t);return i?(o&&Sr(o,s.family,Cr.lookup_name(i.addr),i.port,a),g.set(i.buffer,e),i.buffer.byteLength):0}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},T:function(r,e,t,n,o,a){try{var s=_r(r);if(!o)return kr.write(s.stream,y,e,t);var i=Dr(o,a);return s.sock_ops.sendmsg(s,y,e,t,i.addr,i.port)}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},S:function(r,e,t){try{return br.createSocket(r,e,t).stream.fd}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},na:function(r,e){try{return r=Or.getStr(r),Or.writeStat(e,kr.stat(r))}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},X:()=>M(""),Q:(r,e,t,n,o)=>{e=Rr(e);const a=0n===n;let s=r=>r;if(a){const r=8*t;s=e=>BigInt.asUintN(r,e),o=s(o)}Lr(r,{name:e,fromWireType:s,toWireType:(r,e)=>("number"==typeof e&&(e=BigInt(e)),e),readValueFromPointer:Ur(e,t,!a),destructorFunction:null})},ua:(r,e,t,n)=>{Lr(r,{name:e=Rr(e),fromWireType:function(r){return!!r},toWireType:function(r,e){return e?t:n},readValueFromPointer:function(r){return this.fromWireType(g[r])},destructorFunction:null})},L:(r,e,t,n,o,a,s,i,u,c,l,d,f)=>{l=Rr(l),a=ye(o,a),i&&=ye(s,i),c&&=ye(u,c),f=ye(d,f);var h=(r=>{var e=(r=r.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return e>=48&&e<=57?`_${r}`:r})(l);Qr(h,function(){ke(`Cannot construct ${l} due to unbound types`,[n])}),be([r,e,t],n?[n]:[],e=>{var t,o;e=e[0],o=n?(t=e.registeredClass).instancePrototype:Yr.prototype;var s=Kr(l,function(...r){if(Object.getPrototypeOf(this)!==u)throw new Wr(`Use 'new' to construct ${l}`);if(void 0===d.constructor_body)throw new Wr(`${l} has no accessible constructor`);var e=d.constructor_body[r.length];if(void 0===e)throw new Wr(`Tried to invoke ctor of ${l} with invalid number of parameters (${r.length}) - expected (${Object.keys(d.constructor_body).toString()}) parameters instead!`);return e.apply(this,r)}),u=Object.create(o,{constructor:{value:s}});s.prototype=u;var d=new re(l,s,u,f,t,a,i,c);d.baseClass&&(d.baseClass.__derivedClasses??=[],d.baseClass.__derivedClasses.push(d));var p=new pe(l,d,!0,!1,!1),m=new pe(l+"*",d,!1,!1,!1),v=new pe(l+" const*",d,!1,!0,!1);return Zr[r]={pointerType:m,constPointerType:v},me(h,s),[p,m,v]})},H:(r,e,t,n,o,a)=>{var s=_e(e,t);o=ye(n,o),be([],[r],r=>{var t=`constructor ${(r=r[0]).name}`;if(void 0===r.registeredClass.constructor_body&&(r.registeredClass.constructor_body=[]),void 0!==r.registeredClass.constructor_body[e-1])throw new Wr(`Cannot register multiple constructors with identical number of parameters (${e-1}) for class '${r.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return r.registeredClass.constructor_body[e-1]=()=>{ke(`Cannot construct ${r.name} due to unbound types`,s)},be([],s,n=>(n.splice(1,0,null),r.registeredClass.constructor_body[e-1]=Se(t,n,null,o,a),[])),[]})},v:(r,e,t,n,o,a,s,i,u,c)=>{var l=_e(t,n);e=Rr(e),e=Ve(e),a=ye(o,a,u),be([],[r],r=>{var n=`${(r=r[0]).name}.${e}`;function o(){ke(`Cannot call ${n} due to unbound types`,l)}e.startsWith("@@")&&(e=Symbol[e.substring(2)]),i&&r.registeredClass.pureVirtualFunctions.push(e);var c=r.registeredClass.instancePrototype,d=c[e];return void 0===d||void 0===d.overloadTable&&d.className!==r.name&&d.argCount===t-2?(o.argCount=t-2,o.className=r.name,c[e]=o):(Jr(c,e,n),c[e].overloadTable[t-2]=o),be([],l,o=>{var i=Se(n,o,r,a,s,u);return void 0===c[e].overloadTable?(i.argCount=t-2,c[e]=i):c[e].overloadTable[t-2]=i,[]}),[]})},sa:r=>Lr(r,Ke),P:(r,e,t)=>{Lr(r,{name:e=Rr(e),fromWireType:r=>r,toWireType:(r,e)=>e,readValueFromPointer:Ze(e,t),destructorFunction:null})},E:(r,e,t,n,o,a,s,i)=>{var u=_e(e,t);r=Rr(r),r=Ve(r),o=ye(n,o,s),Qr(r,function(){ke(`Cannot call ${r} due to unbound types`,u)},e-1),be([],u,t=>{var n=[t[0],null].concat(t.slice(1));return me(r,Se(r,n,null,o,a,s),e-1),[]})},t:(r,e,t,n,o)=>{e=Rr(e);let a=r=>r;if(0===n){var s=32-8*t;a=r=>r<<s>>>s,o=a(o)}Lr(r,{name:e,fromWireType:a,toWireType:(r,e)=>e,readValueFromPointer:Ur(e,t,0!==n),destructorFunction:null})},p:(r,e,t)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][e];function o(r){var e=_[r>>2],t=_[r+4>>2];return new n(y.buffer,t,e)}Lr(r,{name:t=Rr(t),fromWireType:o,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},ta:(r,e)=>{Lr(r,{name:e=Rr(e),fromWireType(r){var e,t=_[r>>2];return e=Nr(r+4,t,!0),Fe(r),e},toWireType(r,e){var t;e instanceof ArrayBuffer&&(e=new Uint8Array(e));var n="string"==typeof e;n||ArrayBuffer.isView(e)&&1==e.BYTES_PER_ELEMENT||zr("Cannot pass non-string to std::string"),t=n?ur(e):e.length;var o=Te(4+t+1),a=o+4;return _[o>>2]=t,n?Mr(e,a,t+1):g.set(e,a),null!==r&&r.push(Fe,o),o},readValueFromPointer:se,destructorFunction(r){Fe(r)}})},D:(r,e,t)=>{var n,o,a;t=Rr(t),2===e?(n=Qe,o=rt,a=et):(n=tt,o=nt,a=ot),Lr(r,{name:t,fromWireType:r=>{var t=_[r>>2],o=n(r+4,t*e,!0);return Fe(r),o},toWireType:(r,n)=>{"string"!=typeof n&&zr(`Cannot pass non-string to C++ string type ${t}`);var s=a(n),i=Te(4+s+e);return _[i>>2]=s/e,o(n,i+4,s+e),null!==r&&r.push(Fe,i),i},readValueFromPointer:se,destructorFunction(r){Fe(r)}})},va:(r,e)=>{Lr(r,{isVoid:!0,name:e=Rr(e),fromWireType:()=>{},toWireType:(r,e)=>{}})},ia:function(r,e){r=it(r);var t=new Date(1e3*r);b[e>>2]=t.getSeconds(),b[e+4>>2]=t.getMinutes(),b[e+8>>2]=t.getHours(),b[e+12>>2]=t.getDate(),b[e+16>>2]=t.getMonth(),b[e+20>>2]=t.getFullYear()-1900,b[e+24>>2]=t.getDay();var n=0|(r=>{var e;return((e=r.getFullYear())%4!=0||e%100==0&&e%400!=0?st:at)[r.getMonth()]+r.getDate()-1})(t);b[e+28>>2]=n,b[e+36>>2]=-60*t.getTimezoneOffset();var o=new Date(t.getFullYear(),0,1),a=new Date(t.getFullYear(),6,1).getTimezoneOffset(),s=o.getTimezoneOffset(),i=0|(a!=s&&t.getTimezoneOffset()==Math.min(s,a));b[e+32>>2]=i},ja:(r,e,t,n)=>{var o=(new Date).getFullYear(),a=new Date(o,0,1),s=new Date(o,6,1),i=a.getTimezoneOffset(),u=s.getTimezoneOffset(),c=Math.max(i,u);_[r>>2]=60*c,b[e>>2]=Number(i!=u);var l=r=>{var e=r>=0?"-":"+",t=Math.abs(r);return`UTC${e}${String(Math.floor(t/60)).padStart(2,"0")}${String(t%60).padStart(2,"0")}`},d=l(i),f=l(u);u<i?(Mr(d,t,17),Mr(f,n,17)):(Mr(d,n,17),Mr(f,t,17))},ea:function(r,e,t){if(!((n=r)>=0&&n<=3))return 28;var n,o;o=0===r?ct():ut();var a=Math.round(1e3*o*1e3);return S[t>>3]=BigInt(a),0},ra:ct,M:ut,fa:r=>{var e=g.length,t=2147483648;if((r>>>=0)>t)return!1;for(var n=1;n<=4;n*=2){var o=e*(1+.2/n);o=Math.min(o,r+100663296);var a=Math.min(t,hr(Math.max(r,o),65536));if(lt(a))return!0}return!1},$:(r,e)=>{var t=0,n=0;for(var o of ft()){var a=e+t;_[r+n>>2]=a,t+=Mr(o,a,1/0)+1,n+=4}return 0},aa:(r,e)=>{var t=ft();_[r>>2]=t.length;var n=0;for(var o of t)n+=ur(o)+1;return _[e>>2]=n,0},wa:pt,y:function(r){try{var e=Or.getStreamFromFD(r);return kr.close(e),0}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return r.errno}},pa:function(r,e,t,n){try{var o=((r,e,t,n)=>{for(var o=0,a=0;a<t;a++){var s=_[e>>2],i=_[e+4>>2];e+=8;var u=kr.read(r,y,s,i,n);if(u<0)return-1;if(o+=u,u<i)break}return o})(Or.getStreamFromFD(r),e,t);return _[n>>2]=o,0}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return r.errno}},ka:function(r,e,t,n){e=it(e);try{if(isNaN(e))return 61;var o=Or.getStreamFromFD(r);return kr.llseek(o,e,t),S[n>>3]=BigInt(o.position),o.getdents&&0===e&&0===t&&(o.getdents=null),0}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return r.errno}},N:function(r,e,t,n){try{var o=((r,e,t,n)=>{for(var o=0,a=0;a<t;a++){var s=_[e>>2],i=_[e+4>>2];e+=8;var u=kr.write(r,y,s,i,n);if(u<0)return-1;if(o+=u,u<i)break}return o})(Or.getStreamFromFD(r),e,t);return _[n>>2]=o,0}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return r.errno}},xa:(r,e,t,n)=>{var o,a=0,s=0,i=0,u=0,c=0,l=0;function d(r,e,t,n,o,a){var s,i,u;return i=10===r?28:16,o=10===r?Ar(o):Tr(o),s=Te(i),Sr(s,r,o,a),u=Te(32),b[u+4>>2]=r,b[u+8>>2]=e,b[u+12>>2]=t,_[u+24>>2]=n,_[u+20>>2]=s,b[u+16>>2]=10===r?28:16,b[u+28>>2]=0,u}if(t&&(i=b[t>>2],u=b[t+4>>2],c=b[t+8>>2],l=b[t+12>>2]),c&&!l&&(l=2===c?17:6),!c&&l&&(c=17===l?2:1),0===l&&(l=6),0===c&&(c=1),!r&&!e)return-2;if(-1088&i)return-1;if(0!==t&&2&b[t>>2]&&!r)return-1;if(32&i)return-2;if(0!==c&&1!==c&&2!==c)return-7;if(0!==u&&2!==u&&10!==u)return-6;if(e&&(e=Nr(e),s=parseInt(e,10),isNaN(s)))return 1024&i?-2:-8;if(!r)return 0===u&&(u=2),1&i||(a=2===u?Ne(2130706433):[0,0,0,Ne(1)]),o=d(u,c,l,null,a,s),_[n>>2]=o,0;if(r=Nr(r),null!==(a=$r(r)))if(0===u||2===u)u=2;else{if(!(10===u&&8&i))return-2;a=[0,0,Ne(65535),a],u=10}else if(null!==(a=Pr(r))){if(0!==u&&10!==u)return-2;u=10}return null!=a?(o=d(u,c,l,r,a,s),_[n>>2]=o,0):4&i?-2:(r=Cr.lookup_name(r),a=$r(r),0===u?u=2:10===u&&(a=[0,0,Ne(65535),a]),o=d(u,c,l,null,a,s),_[n>>2]=o,0)},F:function(r,e,t,n){var o=G();try{return we(r)(e,t,n)}catch(r){if(V(o),r!==r+0)throw r;Me(1,0)}},G:function(r,e,t,n){var o=G();try{return we(r)(e,t,n)}catch(r){if(V(o),r!==r+0)throw r;Me(1,0)}},m:function(r){var e=G();try{return we(r)()}catch(r){if(V(e),r!==r+0)throw r;Me(1,0)}},c:function(r,e){var t=G();try{return we(r)(e)}catch(r){if(V(t),r!==r+0)throw r;Me(1,0)}},e:function(r,e,t){var n=G();try{return we(r)(e,t)}catch(r){if(V(n),r!==r+0)throw r;Me(1,0)}},k:function(r,e,t,n){var o=G();try{return we(r)(e,t,n)}catch(r){if(V(o),r!==r+0)throw r;Me(1,0)}},i:function(r,e,t,n,o){var a=G();try{return we(r)(e,t,n,o)}catch(r){if(V(a),r!==r+0)throw r;Me(1,0)}},ba:function(r,e,t,n,o,a){var s=G();try{return we(r)(e,t,n,o,a)}catch(r){if(V(s),r!==r+0)throw r;Me(1,0)}},x:function(r,e,t,n,o,a){var s=G();try{return we(r)(e,t,n,o,a)}catch(r){if(V(s),r!==r+0)throw r;Me(1,0)}},r:function(r,e,t,n,o,a,s){var i=G();try{return we(r)(e,t,n,o,a,s)}catch(r){if(V(i),r!==r+0)throw r;Me(1,0)}},I:function(r,e,t,n,o,a,s,i){var u=G();try{return we(r)(e,t,n,o,a,s,i)}catch(r){if(V(u),r!==r+0)throw r;Me(1,0)}},A:function(r,e,t,n,o,a,s,i,u,c,l,d){var f=G();try{return we(r)(e,t,n,o,a,s,i,u,c,l,d)}catch(r){if(V(f),r!==r+0)throw r;Me(1,0)}},J:function(r,e,t,n,o,a){var s=G();try{return we(r)(e,t,n,o,a)}catch(r){if(V(s),r!==r+0)throw r;Me(1,0)}},za:function(r,e,t,n){var o=G();try{return we(r)(e,t,n)}catch(r){if(V(o),r!==r+0)throw r;Me(1,0)}},ya:function(r,e,t,n,o,a){var s=G();try{return we(r)(e,t,n,o,a)}catch(r){if(V(s),r!==r+0)throw r;Me(1,0)}},B:function(r,e,t,n,o){var a=G();try{return we(r)(e,t,n,o)}catch(r){if(V(a),r!==r+0)throw r;return Me(1,0),0n}},h:function(r){var e=G();try{we(r)()}catch(r){if(V(e),r!==r+0)throw r;Me(1,0)}},n:function(r,e){var t=G();try{we(r)(e)}catch(r){if(V(t),r!==r+0)throw r;Me(1,0)}},R:function(r,e,t){var n=G();try{we(r)(e,t)}catch(r){if(V(n),r!==r+0)throw r;Me(1,0)}},d:function(r,e,t){var n=G();try{we(r)(e,t)}catch(r){if(V(n),r!==r+0)throw r;Me(1,0)}},j:function(r,e,t,n){var o=G();try{we(r)(e,t,n)}catch(r){if(V(o),r!==r+0)throw r;Me(1,0)}},u:function(r,e,t,n,o){var a=G();try{we(r)(e,t,n,o)}catch(r){if(V(a),r!==r+0)throw r;Me(1,0)}},Y:function(r,e,t,n,o,a){var s=G();try{we(r)(e,t,n,o,a)}catch(r){if(V(s),r!==r+0)throw r;Me(1,0)}},q:function(r,e,t,n,o,a,s,i){var u=G();try{we(r)(e,t,n,o,a,s,i)}catch(r){if(V(u),r!==r+0)throw r;Me(1,0)}},w:function(r,e,t,n,o,a,s,i,u,c,l){var d=G();try{we(r)(e,t,n,o,a,s,i,u,c,l)}catch(r){if(V(d),r!==r+0)throw r;Me(1,0)}},z:function(r,e,t,n,o,a,s,i,u,c,l,d,f,h,p,m){var v=G();try{we(r)(e,t,n,o,a,s,i,u,c,l,d,f,h,p,m)}catch(r){if(V(v),r!==r+0)throw r;Me(1,0)}}};return $t=await async function(){function r(r,e){return function(r){Te=a._malloc=r.Da,Ae=r.Ea,De=r.Fa,Fe=a._free=r.Ga,xe=r.Ha,Ne=r.Ia,Oe=r.Ja,Me=r.Ka,Re=r.La,Be=r.Ma,je=r.Na,Ie=r.Oa,We=r.Pa,ze=r.Qa,Le=r.Ra,Ue=r.Sa,qe=r.Aa,He=r.Ca}($t=r.exports),O(),$t}var e={a:Pt};if(a.instantiateWasm)return new Promise((t,n)=>{a.instantiateWasm(e,(e,n)=>{t(r(e))})});T??=R();var t=function(e){return r(e.instance)}(await j(m,T,e));return t}(),function r(){function e(){a.calledRun=!0,F||(N=!0,br.root=kr.mount(br,{},null),a.noFSInit||kr.initialized||kr.init(),$t.Ba(),kr.ignorePermissions=!1,v?.(a),a.onRuntimeInitialized?.(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)L(a.postRun.shift());W(z)}())}wr>0?yr=r:(function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)q(a.preRun.shift());W(U)}(),wr>0?yr=r:a.setStatus?(a.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>a.setStatus(""),1),e()},1)):e())}(),N?a:new Promise((r,e)=>{v=r,w=e})});n.exports=a,n.exports.default=a}(o);var a=n(o.exports);let s;async function i(){return s||(s=await a()),s}class u{module;constructor(r){this.module=r}static async create(){const r=await i();return new u(r)}version(){return this.module.XGBoostVersion()}createBooster(){return new this.module.Booster}createDMatrix(r,e,t,n=NaN,o){const a=4*r.length,s=this.module._malloc(a);let i;try{this.module.HEAPF32.set(r,s>>2),i=new this.module.DMatrix(s,e,t,n)}finally{this.module._free(s)}if(o){const r=this.module._malloc(4*o.length);try{this.module.HEAPF32.set(o,r>>2),i.setFloatInfo("label",r,o.length)}finally{this.module._free(r)}}return i}async train(r,e,t){const n=this.createBooster();for(const[r,t]of Object.entries(e))n.setParam(r,t);for(let e=0;e<t;e++)n.updateOneIter(e,r);return n}}exports.XGBoost=u,exports.init=i;
|
|
2
|
+
//# sourceMappingURL=index.js.map
|