Files
sproutclaw/util_cmd-T00NCR0H.js
root 62e2866228
Some checks failed
CI / build-check-test (push) Has been cancelled
npm audit / audit (push) Has been cancelled
chore: commit pending changes before gitea push
2026-06-13 19:47:30 +08:00

7 lines
59 KiB
JavaScript

(function(){"use strict";var O={exports:{}},ee=O.exports,F;function te(){return F||(F=1,(function(v,e){(function(t,s){s(e)})(ee,(function(t){class s{kept_object;room_id;id;bc;constructor(_,f){this.kept_object=_,this.room_id=`shared-object-${f}`,this.id="parent",this.bc=new globalThis.BroadcastChannel(this.room_id),this.register()}register(){const _=this.bc;_.onmessage=f=>{const r=f.data;if(r.msg===void 0)throw new Error("Invalid message");this.is_my_msg(r)||r.to===this.id&&(r.msg==="func_call::call"&&this.func_call(r),r.msg==="get::get"&&this.get(r))}}is_my_msg(_){return _.from===this.id}func_call(_){const f=this.bc,{names:r,args:i,id:n}=_;try{if(r.length===1&&r[0]===".self"){const l=this.kept_object(...i);f.postMessage({msg:"func_call::return",ret:l,id:n,from:this.id,to:_.from});return}let a=this.kept_object;for(const l of r)a=a[l];const d=a(...i);f.postMessage({msg:"func_call::return",ret:d,id:n,from:this.id,to:_.from})}catch(a){f.postMessage({msg:"func_call::error",error:a,id:n,from:this.id,to:_.from})}}get(_){const f=this.bc,{names:r,id:i}=_;try{let n=this.kept_object;for(const a of r)n=n[a];f.postMessage({msg:"get::return",ret:n,id:i,from:this.id,to:_.from,can_post:!0})}catch(n){if(n.name==="DataCloneError"){f.postMessage({msg:"get::data_clone_error",error:n,id:i,from:this.id,to:_.from,can_post:!1});return}f.postMessage({msg:"get::error",error:n,id:i,from:this.id,to:_.from,can_post:!1})}}}class o{room_id;id;map=new Map;bc;callbacks=[];constructor(_){this.room_id=`shared-object-${_}`,this.id=this.get_id(),this.bc=new globalThis.BroadcastChannel(this.room_id),this.register()}is_my_msg(_){return _.from===this.id}proxy(){return new Proxy(()=>{},{get:(_,f)=>this.get([f]),apply:(_,f,r)=>this.call([".self"],r)})}addCallback(_){this.callbacks.push(_)}removeCallback(_){const f=this.callbacks.indexOf(_);f!==-1&&this.callbacks.splice(f,1)}register(){const _=this.bc;_.onmessage=f=>{const r=f.data;if(r.msg===void 0)throw new Error("Invalid message");if(!this.is_my_msg(r)&&r.to===this.id){if(r.msg.startsWith("func_call::")){const i=this.map.get(r.id);if(i!==void 0)i(r),this.map.delete(r.id);else throw new Error("what happened? unreachable code")}if(r.msg.startsWith("get::")){const i=this.map.get(r.id);if(i!==void 0)i(r),this.map.delete(r.id);else throw new Error("what happened? unreachable code")}}}}get_id(){return Math.random().toString(36).slice(2)}check_msg_error(_){if(_.msg.endsWith("::error"))throw _.error}get(_){const{promise:f,resolve:r}=Promise.withResolvers(),i=this.get_id();this.map.set(i,r),this.postMessage({msg:"get::get",names:_,id:i,from:this.id,to:"parent"});let n=!1;const d=(async()=>{const u=await f;if(this.check_msg_error(u),u.msg==="get::return"||u.msg==="get::data_clone_error"){n&&console.warn(`Warning!
Objects that cannot be transferred are being retrieved.`);const m=u;return m.can_post?m.ret:new Proxy(()=>{},{get:(w,y)=>y==="then"?(n=!0,Promise.resolve(d)):this.get([..._,y]),apply:(w,y,g)=>this.call(_,g)})}throw new Error("what happened? unreachable code")})();return new Proxy(()=>{},{get:(u,m)=>m==="then"?(n=!0,d.then.bind(d)):this.get([..._,m]),apply:(u,m,w)=>this.call(_,w)})}async call(_,f){const{promise:r,resolve:i}=Promise.withResolvers(),n=this.get_id();this.map.set(n,i),this.postMessage({msg:"func_call::call",names:_,args:f,id:n});const a=await r;if(this.check_msg_error(a),a.msg==="func_call::return")return a.ret;throw new Error("what happened? unreachable code")}async call_callback(_){const{name:f,args:r,id:i}=_;try{if(_.msg==="callback::call"){const n=this.callbacks.find(d=>d.name===f);if(n===void 0)throw new Error("function not found");const a=n(...r);if(a instanceof Promise){this.postMessage({msg:"callback::promise",id:i});const d=await a;this.postMessage({msg:"callback::promise_return",ret:d,id:i})}else this.postMessage({msg:"callback::return",ret:a,id:i})}}catch(n){this.postMessage({msg:"callback::error",error:n,id:i})}}postMessage(_){this.bc.postMessage({..._,from:this.id,to:"parent"})}}t.SharedObject=s,t.SharedObjectRef=o,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})}))})(O,O.exports)),O.exports}var S=te();const N=0,V=1,B=0,h=8,K=28,Y=37,re=52,G=58;class R{static read_bytes(e,t){const s=new R;return s.buf=e.getUint32(t,!0),s.buf_len=e.getUint32(t+4,!0),s}static read_bytes_array(e,t,s){const o=[];for(let c=0;c<s;c++)o.push(R.read_bytes(e,t+8*c));return o}}class D{static read_bytes(e,t){const s=new D;return s.buf=e.getUint32(t,!0),s.buf_len=e.getUint32(t+4,!0),s}static read_bytes_array(e,t,s){const o=[];for(let c=0;c<s;c++)o.push(D.read_bytes(e,t+8*c));return o}}class se{write_bytes(e,t){e.setUint8(t,this.fs_filetype),e.setUint16(t+2,this.fs_flags,!0),e.setBigUint64(t+8,this.fs_rights_base,!0),e.setBigUint64(t+16,this.fs_rights_inherited,!0)}constructor(e,t){this.fs_rights_base=0n,this.fs_rights_inherited=0n,this.fs_filetype=e,this.fs_flags=t}}class oe{write_bytes(e,t){e.setBigUint64(t,this.dev,!0),e.setBigUint64(t+8,this.ino,!0),e.setUint8(t+16,this.filetype),e.setBigUint64(t+24,this.nlink,!0),e.setBigUint64(t+32,this.size,!0),e.setBigUint64(t+38,this.atim,!0),e.setBigUint64(t+46,this.mtim,!0),e.setBigUint64(t+52,this.ctim,!0)}constructor(e,t,s){this.dev=0n,this.nlink=0n,this.atim=0n,this.mtim=0n,this.ctim=0n,this.ino=e,this.filetype=t,this.size=s}}const ie=0,ne=1;class C{static read_bytes(e,t){return new C(e.getBigUint64(t,!0),e.getUint8(t+8),e.getUint32(t+16,!0),e.getBigUint64(t+24,!0),e.getUint16(t+36,!0))}constructor(e,t,s,o,c){this.userdata=e,this.eventtype=t,this.clockid=s,this.timeout=o,this.flags=c}}class ae{write_bytes(e,t){e.setBigUint64(t,this.userdata,!0),e.setUint16(t+8,this.error,!0),e.setUint8(t+10,this.eventtype)}constructor(e,t,s){this.userdata=e,this.error=t,this.eventtype=s}}let _e=class{enable(e){this.log=ce(e===void 0?!0:e,this.prefix)}get enabled(){return this.isEnabled}constructor(e){this.isEnabled=e,this.prefix="wasi:",this.enable(e)}};function ce(v,e){return v?console.log.bind(console,"%c%s","color: #265BA0",e):()=>{}}new _e(!1);class q extends Error{constructor(e){super("exit with exit code "+e),this.code=e}}class z{share_arrays_memory;constructor(e=new SharedArrayBuffer(10*1024*1024)){this.share_arrays_memory=e;const t=new Int32Array(this.share_arrays_memory);Atomics.store(t,0,0),Atomics.store(t,1,0),Atomics.store(t,2,12)}static init_self(e){return new z(e.share_arrays_memory)}async async_write(e,t,s){const o=new Int32Array(this.share_arrays_memory);for(;;){let c;const{value:_}=Atomics.waitAsync(o,0,1);if(_ instanceof Promise?c=await _:c=_,c==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(o,0,0,1)!==0)continue;const r=this.write_inner(e,t,s);return Atomics.store(o,0,0),Atomics.notify(o,0,1),r}}block_write(e,t,s){for(;;){const o=new Int32Array(this.share_arrays_memory);if(Atomics.wait(o,0,1)==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(o,0,0,1)!==0)continue;const f=this.write_inner(e,t,s);return Atomics.store(o,0,0),Atomics.notify(o,0,1),f}}write_inner(e,t,s){const o=new Int32Array(this.share_arrays_memory),c=new Uint8Array(this.share_arrays_memory),_=Atomics.add(o,1,1);let f;_===0?f=Atomics.store(o,2,12):f=Atomics.load(o,2);const r=this.share_arrays_memory.byteLength,i=e.byteLength,n=f+i;if(r<n)throw new Error(`size is bigger than memory.
TODO! fix memory limit. support big size another way.`);let a;if(e instanceof Uint8Array)a=e;else if(e instanceof Uint32Array){const l=new ArrayBuffer(e.byteLength);new Uint32Array(l).set(e),a=new Uint8Array(l)}c.set(new Uint8Array(a),f),Atomics.store(o,2,n);const d=new Int32Array(t);return Atomics.store(d,s,f),Atomics.store(d,s+1,i),[f,i]}free(e,t){Atomics.sub(new Int32Array(this.share_arrays_memory),1,1)}get_memory(e,t){const s=new ArrayBuffer(t);return new Uint8Array(s).set(new Uint8Array(this.share_arrays_memory).slice(e,e+t)),s}use_defined_memory(e,t,s){new Uint8Array(this.share_arrays_memory).set(new Uint8Array(s).slice(0,t),e)}get_object(){return{share_arrays_memory:this.share_arrays_memory}}}class H{share_arrays_memory;data_size;constructor(e,t=100*1024,s){this.data_size=e,s?this.share_arrays_memory=s:this.share_arrays_memory=new SharedArrayBuffer(t);const o=new Int32Array(this.share_arrays_memory);Atomics.store(o,0,0),Atomics.store(o,1,0),Atomics.store(o,2,12)}static init_self_inner(e){return{data_size:e.data_size,max_share_arrays_memory:e.share_arrays_memory.byteLength,share_arrays_memory:e.share_arrays_memory}}async async_lock(){const e=new Int32Array(this.share_arrays_memory);for(;;){let t;const{value:s}=Atomics.waitAsync(e,0,1);if(s instanceof Promise?t=await s:t=s,t==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(e,0,0,1)===0)break}}block_lock(){for(;;){const e=new Int32Array(this.share_arrays_memory);if(Atomics.wait(e,0,1)==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(e,0,0,1)===0)break}}release_lock(){const e=new Int32Array(this.share_arrays_memory);Atomics.store(e,0,0),Atomics.notify(e,0,1)}async async_send(e,t){await this.async_lock();const s=new Int32Array(this.share_arrays_memory),o=Atomics.load(s,2),c=t.byteLength;if(c!==this.data_size)throw new Error(`invalid data size: ${c} !== ${this.data_size}`);const _=o+c+8+e.length*4;if(_>this.share_arrays_memory.byteLength)throw new Error("over memory");Atomics.store(s,2,_);const f=new Int32Array(this.share_arrays_memory,o);f[0]=e.length,f[1]=e.length,f.set(e,2),new Uint32Array(this.share_arrays_memory,o+8+e.length*4).set(t),Atomics.add(s,1,1),this.release_lock()}get_data(e){const t=new Int32Array(this.share_arrays_memory);if(Atomics.load(t,1)===0)return;this.block_lock();const o=Atomics.load(t,1),c=[];let _=12;for(let f=0;f<o;f++){const r=new Int32Array(this.share_arrays_memory,_),i=r[1],n=new Int32Array(this.share_arrays_memory,_+8,i),a=this.data_size;if(n.includes(e)){const d=new Uint32Array(this.share_arrays_memory,_+8+i*4,a/4);c.push(new Uint32Array([...d]));const l=n.indexOf(e);if(Atomics.store(n,l,-1),Atomics.sub(r,0,1)===1){Atomics.sub(t,1,1);const w=Atomics.load(t,2)-a-8-i*4;Atomics.store(t,2,w);const y=_+a+8+i*4,g=new Int32Array(this.share_arrays_memory,y);new Int32Array(this.share_arrays_memory,_).set(g)}else _+=a+8+i*4}else _+=a+8+i*4}if(_!==Atomics.load(t,2))throw new Error(`invalid offset: ${_} !== ${Atomics.load(t,2)}`);return this.release_lock(),c}}class P extends H{constructor(e,t){super(4,e,t)}async send(e,t){if(e===void 0||e.length===0)throw new Error("targets is empty");await this.async_send(e,new Uint32Array([t]))}get(e){const t=this.get_data(e);if(t===void 0)return;const s=[];for(const o of t)s.push(o[0]);return s}static init_self(e){const t=H.init_self_inner(e);return new P(t.max_share_arrays_memory,t.share_arrays_memory)}}const E=18,A=E*4;function Q(v,e,t,s,o,c,_,f){const r=new oe(e,t,o);return r.dev=v,r.ino=e,r.filetype=t,r.nlink=s,r.size=o,r.atim=c,r.mtim=_,r.ctim=f,r}class fe{stdin;stdout;stderr;id;fd_close_receiver;default_fds=[];async send(e,t){await this.fd_close_receiver.send(e,t)}get(e){return this.fd_close_receiver.get(e)}constructor(e,t,s,o,c){this.stdin=e,this.stdout=t,this.stderr=s,this.fd_close_receiver=o,c!==void 0&&(this.default_fds=c)}get_stdin(){return this.stdin}get_stdout(){return this.stdout}get_stderr(){return this.stderr}}class $ extends fe{allocator;lock_fds;fds_len_and_num;fd_func_sig;base_func_util;constructor(e,t,s,o,c,_,f,r,i,n){super(f,r,i,P.init_self(_),n),this.allocator=z.init_self(e),this.lock_fds=t,this.fd_func_sig=o,this.base_func_util=c,this.fds_len_and_num=s}get_fds_len(){const e=new Int32Array(this.fds_len_and_num);return Atomics.load(e,0)}static init_self(e){return new $(e.allocator,e.lock_fds,e.fds_len_and_num,e.fd_func_sig,e.base_func_util,e.fd_close_receiver,e.stdin,e.stdout,e.stderr,e.default_fds)}set_id(){const e=new Int32Array(this.fds_len_and_num),t=Atomics.add(e,1,1);return this.id=t,t}base_func_locker(){return new Int32Array(this.base_func_util)}base_func_park_locker(){return new Int32Array(this.base_func_util,12)}lock_base_func(){const e=this.base_func_locker();for(;;){if(Atomics.wait(e,0,1)==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(e,0,0,1)===0)break}}call_base_func(){const e=this.base_func_locker();Atomics.store(e,2,1),Atomics.store(e,1,0),Atomics.notify(e,1,1)}wait_base_func(){const e=this.base_func_locker();if(Atomics.wait(e,2,1)==="timed-out")throw new Error("timed-out lock")}release_base_func(){const e=this.base_func_locker();Atomics.store(e,0,0),Atomics.notify(e,0,1)}set_park_fds_map(e){this.lock_base_func();const t=this.base_func_park_locker();Atomics.store(t,0,0);const s=new Uint32Array(e);this.allocator.block_write(s,this.base_func_util,4),Atomics.store(t,3,this.id),this.call_base_func(),this.wait_base_func(),this.release_base_func()}key=Math.round(Math.random()*100);lock_fd(e){const t=new Int32Array(this.lock_fds,e*12);for(;;){const s=Atomics.load(t,0);if(s!==0&&Atomics.wait(t,0,s)==="timed-out"){console.error("lock_fd timed-out");continue}if(Atomics.compareExchange(t,0,0,1)===0)return}}release_fd(e){const t=new Int32Array(this.lock_fds,e*12),s=Atomics.exchange(t,0,0);s!==1&&console.error("what happened? before",s),Atomics.notify(t,0,1)}lock_double_fd(e,t){if(e===t){this.lock_fd(e);return}const s=new Int32Array(this.lock_fds);for(;;){const o=Atomics.load(s,e*3);if(Atomics.wait(s,e*3,o)==="timed-out"){console.error("lock_double_fd timed-out");continue}if(Atomics.exchange(s,e*3,2)===0){const f=Atomics.load(s,t*3);if(f===2&&e<t){Atomics.store(s,e*3,0),Atomics.notify(s,e*3,1);continue}if(Atomics.wait(s,t*3,f)==="timed-out"){console.error("lock_double_fd timed-out");continue}if(Atomics.exchange(s,t*3,2)===0)return;Atomics.store(s,e*3,0),Atomics.notify(s,e*3,1)}}}release_double_fd(e,t){if(e===t){this.release_fd(e);return}const s=new Int32Array(this.lock_fds);Atomics.store(s,e*3,0),Atomics.notify(s,e*3,1),Atomics.store(s,t*3,0),Atomics.notify(s,t*3,1)}invoke_fd_func(e){if(e===void 0)return!1;const t=new Int32Array(this.lock_fds,e*12);Atomics.store(t,2,1),Atomics.store(t,1,0);const s=Atomics.notify(t,1);return s===1?!0:s===0?this.get_fds_len()<=e?(console.error("invoke_fd_func notify len failed:",s),Atomics.store(t,2,0),Atomics.store(t,1,1),!1):(console.warn("invoke_func_loop is late"),!0):(console.error("invoke_fd_func notify too:",s),!1)}wait_fd_func(e){const t=new Int32Array(this.lock_fds,e*12);Atomics.wait(t,2,1)==="timed-out"&&console.error("wait call park_fd_func timed-out")}call_fd_func(e){return this.invoke_fd_func(e)?(this.wait_fd_func(e),!0):!1}get_error(e){const t=new Int32Array(this.fd_func_sig,e*A),s=E-1;return Atomics.load(t,s)}fd_advise(e){this.lock_fd(e);const t=new Uint32Array(this.fd_func_sig,e*A);if(Atomics.store(t,0,7),Atomics.store(t,1,e),!this.call_fd_func(e))return this.release_fd(e),h;const s=this.get_error(e);return this.release_fd(e),s}fd_allocate(e,t,s){this.lock_fd(e);const o=e*A,c=new Uint32Array(this.fd_func_sig,o),_=new BigUint64Array(this.fd_func_sig,o);if(Atomics.store(c,0,8),Atomics.store(c,1,e),Atomics.store(_,1,t),Atomics.store(_,2,s),!this.call_fd_func(e))return this.release_fd(e),h;const f=this.get_error(e);return this.release_fd(e),f}fd_close(e){this.lock_fd(e);const t=e*A,s=new Uint32Array(this.fd_func_sig,t);if(Atomics.store(s,0,9),Atomics.store(s,1,e),!this.call_fd_func(e))return this.release_fd(e),h;const o=this.get_error(e);return this.release_fd(e),o}fd_datasync(e){this.lock_fd(e);const t=e*A,s=new Uint32Array(this.fd_func_sig,t);if(Atomics.store(s,0,10),Atomics.store(s,1,e),!this.call_fd_func(e))return this.release_fd(e),h;const o=this.get_error(e);return this.release_fd(e),o}fd_fdstat_get(e){this.lock_fd(e);const t=e*A,s=new Uint8Array(this.fd_func_sig,t),o=new Uint16Array(this.fd_func_sig,t),c=new Uint32Array(this.fd_func_sig,t),_=new BigUint64Array(this.fd_func_sig,t);if(Atomics.store(c,0,11),Atomics.store(c,1,e),!this.call_fd_func(e))return this.release_fd(e),[void 0,h];const f=this.get_error(e);if(f!==B)return this.release_fd(e),[void 0,f];const r=Atomics.load(s,0),i=Atomics.load(o,2),n=Atomics.load(_,1),a=Atomics.load(_,2);this.release_fd(e);const d=new se(r,i);return d.fs_rights_base=n,d.fs_rights_inherited=a,[d,f]}fd_fdstat_set_flags(e,t){this.lock_fd(e);const s=e*A,o=new Uint16Array(this.fd_func_sig,s),c=new Uint32Array(this.fd_func_sig,s);if(Atomics.store(c,0,12),Atomics.store(c,1,e),Atomics.store(o,4,t),!this.call_fd_func(e))return this.release_fd(e),h;const _=this.get_error(e);return this.release_fd(e),_}fd_fdstat_set_rights(e,t,s){this.lock_fd(e);const o=e*A,c=new Uint32Array(this.fd_func_sig,o),_=new BigUint64Array(this.fd_func_sig,o);if(Atomics.store(c,0,13),Atomics.store(c,1,e),Atomics.store(_,1,t),Atomics.store(_,2,s),!this.call_fd_func(e))return this.release_fd(e),h;const f=this.get_error(e);return this.release_fd(e),f}fd_filestat_get(e){this.lock_fd(e);const t=e*A,s=new Uint8Array(this.fd_func_sig,t),o=new Uint32Array(this.fd_func_sig,t),c=new BigUint64Array(this.fd_func_sig,t);if(Atomics.store(o,0,14),Atomics.store(o,1,e),!this.call_fd_func(e))return this.release_fd(e),[void 0,h];const _=this.get_error(e);if(_!==B)return this.release_fd(e),[void 0,_];const f=Atomics.load(c,0),r=Atomics.load(c,1),i=Atomics.load(s,16),n=Atomics.load(c,3),a=Atomics.load(c,4),d=Atomics.load(c,5),l=Atomics.load(c,6),u=Atomics.load(c,7);return this.release_fd(e),[Q(f,r,i,n,a,d,l,u),_]}fd_filestat_set_size(e,t){this.lock_fd(e);const s=e*A,o=new Uint32Array(this.fd_func_sig,s),c=new BigUint64Array(this.fd_func_sig,s);if(Atomics.store(o,0,15),Atomics.store(o,1,e),Atomics.store(c,1,t),!this.call_fd_func(e))return this.release_fd(e),h;const _=this.get_error(e);return this.release_fd(e),_}fd_filestat_set_times(e,t,s,o){this.lock_fd(e);const c=e*A,_=new Uint16Array(this.fd_func_sig,c),f=new Uint32Array(this.fd_func_sig,c),r=new BigUint64Array(this.fd_func_sig,c);if(Atomics.store(f,0,16),Atomics.store(f,1,e),Atomics.store(r,1,t),Atomics.store(r,2,s),Atomics.store(_,12,o),!this.call_fd_func(e))return this.release_fd(e),h;const i=this.get_error(e);return this.release_fd(e),i}fd_pread(e,t,s){this.lock_fd(e);const o=e*A,c=new Uint32Array(this.fd_func_sig,o),_=new BigUint64Array(this.fd_func_sig,o);Atomics.store(c,0,17),Atomics.store(c,1,e);const[f,r]=this.allocator.block_write(t,this.fd_func_sig,e*E+2);if(Atomics.store(_,2,s),!this.call_fd_func(e))return this.allocator.free(f,r),this.release_fd(e),[void 0,h];const i=this.get_error(e),n=Atomics.load(c,0),a=Atomics.load(c,1),d=Atomics.load(c,2);if(this.release_fd(e),i===h)return this.allocator.free(a,d),[void 0,i];const l=new Uint8Array(this.allocator.get_memory(a,d));return n!==d&&console.error("pread nread !== buf_len"),this.allocator.free(a,d),[[n,l],i]}fd_prestat_get(e){this.lock_fd(e);const t=e*A,s=new Uint32Array(this.fd_func_sig,t);if(Atomics.store(s,0,18),Atomics.store(s,1,e),!this.call_fd_func(e))return this.release_fd(e),[void 0,h];const o=this.get_error(e);if(o!==B)return this.release_fd(e),[void 0,o];const c=Atomics.load(s,0),_=Atomics.load(s,1);return this.release_fd(e),[[c,_],o]}fd_prestat_dir_name(e,t){this.lock_fd(e);const s=e*A,o=new Uint32Array(this.fd_func_sig,s);if(Atomics.store(o,0,19),Atomics.store(o,1,e),Atomics.store(o,2,t),!this.call_fd_func(e))return this.release_fd(e),[void 0,h];const c=this.get_error(e),_=Atomics.load(o,0),f=Atomics.load(o,1);if(this.release_fd(e),c!==B&&c!==Y)return this.allocator.free(_,f),[void 0,c];const r=new Uint8Array(this.allocator.get_memory(_,f));return this.allocator.free(_,f),[r,c]}fd_pwrite(e,t,s){this.lock_fd(e);const o=e*A,c=new Uint32Array(this.fd_func_sig,o),_=new BigUint64Array(this.fd_func_sig,o);Atomics.store(c,0,20),Atomics.store(c,1,e);const[f,r]=this.allocator.block_write(t,this.fd_func_sig,e*E+2);if(Atomics.store(_,2,s),!this.call_fd_func(e))return this.allocator.free(f,r),this.release_fd(e),[void 0,h];const i=this.get_error(e);if(i===h)return this.release_fd(e),[void 0,i];const n=Atomics.load(c,0);return this.release_fd(e),[n,i]}fd_read(e,t){this.lock_fd(e);const s=e*A,o=new Uint32Array(this.fd_func_sig,s);Atomics.store(o,0,21),Atomics.store(o,1,e);const[c,_]=this.allocator.block_write(t,this.fd_func_sig,e*E+2);if(!this.call_fd_func(e))return this.allocator.free(c,_),this.release_fd(e),[void 0,h];const f=this.get_error(e),r=Atomics.load(o,0),i=Atomics.load(o,1),n=Atomics.load(o,2);if(this.release_fd(e),f===h)return this.allocator.free(i,n),[void 0,f];const a=new Uint8Array(this.allocator.get_memory(i,n));return r!==n&&console.error("read nread !== buf_len"),this.allocator.free(i,n),[[r,a],f]}fd_readdir(e,t,s){this.lock_fd(e);const o=e*A,c=new Uint32Array(this.fd_func_sig,o),_=new BigUint64Array(this.fd_func_sig,o);if(Atomics.store(c,0,22),Atomics.store(c,1,e),Atomics.store(c,2,t),Atomics.store(_,2,s),!this.call_fd_func(e))return this.release_fd(e),[void 0,h];const f=this.get_error(e),r=Atomics.load(c,0),i=Atomics.load(c,1),n=Atomics.load(c,2);if(this.release_fd(e),f===h)return this.allocator.free(r,i),[void 0,f];const a=new Uint8Array(this.allocator.get_memory(r,i));return this.allocator.free(r,i),[[a,n],f]}fd_seek(e,t,s){this.lock_fd(e);const o=e*A,c=new Uint8Array(this.fd_func_sig,o),_=new Uint32Array(this.fd_func_sig,o),f=new BigUint64Array(this.fd_func_sig,o);if(Atomics.store(_,0,24),Atomics.store(_,1,e),Atomics.store(f,1,t),Atomics.store(c,16,s),!this.call_fd_func(e))return this.release_fd(e),[void 0,h];const r=this.get_error(e);if(r===h)return this.release_fd(e),[void 0,r];const i=Atomics.load(f,0);return this.release_fd(e),[i,r]}fd_sync(e){this.lock_fd(e);const t=e*A,s=new Uint32Array(this.fd_func_sig,t);if(Atomics.store(s,0,25),Atomics.store(s,1,e),!this.call_fd_func(e))return this.release_fd(e),h;const o=this.get_error(e);return this.release_fd(e),o}fd_tell(e){this.lock_fd(e);const t=e*A,s=new Uint32Array(this.fd_func_sig,t),o=new BigUint64Array(this.fd_func_sig,t);if(Atomics.store(s,0,26),Atomics.store(s,1,e),!this.call_fd_func(e))return this.release_fd(e),[void 0,h];const c=this.get_error(e);if(c===h)return this.release_fd(e),[void 0,c];const _=Atomics.load(o,0);return this.release_fd(e),[_,c]}fd_write(e,t){this.lock_fd(e);const s=e*A,o=new Uint32Array(this.fd_func_sig,s);Atomics.store(o,0,27),Atomics.store(o,1,e);const[c,_]=this.allocator.block_write(t,this.fd_func_sig,e*E+2);if(!this.call_fd_func(e))return this.allocator.free(c,_),this.release_fd(e),[void 0,h];const f=this.get_error(e);if(f===h)return this.release_fd(e),[void 0,f];const r=Atomics.load(o,0);return this.release_fd(e),[r,f]}path_create_directory(e,t){this.lock_fd(e);const s=e*A,o=new Uint32Array(this.fd_func_sig,s);Atomics.store(o,0,28),Atomics.store(o,1,e);const[c,_]=this.allocator.block_write(t,this.fd_func_sig,e*E+2);if(!this.call_fd_func(e))return this.allocator.free(c,_),this.release_fd(e),h;const f=this.get_error(e);return this.release_fd(e),f}path_filestat_get(e,t,s){this.lock_fd(e);const o=e*A,c=new Uint8Array(this.fd_func_sig,o),_=new Uint32Array(this.fd_func_sig,o),f=new BigUint64Array(this.fd_func_sig,o);Atomics.store(_,0,29),Atomics.store(_,1,e),Atomics.store(_,2,t);const[r,i]=this.allocator.block_write(s,this.fd_func_sig,e*E+3);if(!this.call_fd_func(e))return this.allocator.free(r,i),this.release_fd(e),[void 0,h];const n=this.get_error(e);if(n!==B)return this.release_fd(e),[void 0,n];const a=Atomics.load(f,0),d=Atomics.load(f,1),l=Atomics.load(c,16),u=Atomics.load(f,3),m=Atomics.load(f,4),w=Atomics.load(f,5),y=Atomics.load(f,6),g=Atomics.load(f,7);return this.release_fd(e),[Q(a,d,l,u,m,w,y,g),n]}path_filestat_set_times(e,t,s,o,c,_){this.lock_fd(e);const f=e*A,r=new Uint16Array(this.fd_func_sig,f),i=new Uint32Array(this.fd_func_sig,f),n=new BigUint64Array(this.fd_func_sig,f);Atomics.store(i,0,30),Atomics.store(i,1,e),Atomics.store(i,2,t);const[a,d]=this.allocator.block_write(s,this.fd_func_sig,e*E+3);if(Atomics.store(n,3,o),Atomics.store(n,4,c),Atomics.store(r,12,_),!this.call_fd_func(e))return this.allocator.free(a,d),this.release_fd(e),h;const l=this.get_error(e);return this.release_fd(e),l}path_link(e,t,s,o,c){this.lock_double_fd(e,o);const _=e*A,f=new Uint32Array(this.fd_func_sig,_);Atomics.store(f,0,31),Atomics.store(f,1,e),Atomics.store(f,2,t);const[r,i]=this.allocator.block_write(s,this.fd_func_sig,e*E+3);Atomics.store(f,5,o);const[n,a]=this.allocator.block_write(c,this.fd_func_sig,e*E+6);if(!this.call_fd_func(e))return this.allocator.free(r,i),this.allocator.free(n,a),this.release_double_fd(e,o),h;const d=this.get_error(e);return this.release_double_fd(e,o),d}path_open(e,t,s,o,c,_,f){this.lock_fd(e);const r=e*A,i=new Uint16Array(this.fd_func_sig,r),n=new Uint32Array(this.fd_func_sig,r),a=new BigUint64Array(this.fd_func_sig,r);Atomics.store(n,0,32),Atomics.store(n,1,e),Atomics.store(n,2,t);const[d,l]=this.allocator.block_write(s,this.fd_func_sig,e*E+3);if(Atomics.store(n,5,o),Atomics.store(a,3,c),Atomics.store(a,4,_),Atomics.store(i,20,f),!this.call_fd_func(e))return this.allocator.free(d,l),this.release_fd(e),[void 0,h];const u=this.get_error(e);if(u===B){const m=Atomics.load(n,0);return this.release_fd(e),[m,u]}return this.release_fd(e),[void 0,u]}path_readlink(e,t,s){this.lock_fd(e);const o=e*A,c=new Uint32Array(this.fd_func_sig,o);Atomics.store(c,0,33),Atomics.store(c,1,e);const[_,f]=this.allocator.block_write(t,this.fd_func_sig,e*E+2);if(Atomics.store(c,4,s),!this.call_fd_func(e))return this.allocator.free(_,f),this.release_fd(e),[void 0,h];const r=this.get_error(e),i=Atomics.load(c,0),n=Atomics.load(c,1),a=Atomics.load(c,2);return this.release_fd(e),r!==B&&r!==Y?(this.allocator.free(n,a),[void 0,r]):[new Uint8Array(this.allocator.get_memory(n,a)).slice(0,i),r]}path_remove_directory(e,t){this.lock_fd(e);const s=e*A,o=new Uint32Array(this.fd_func_sig,s);Atomics.store(o,0,34),Atomics.store(o,1,e);const[c,_]=this.allocator.block_write(t,this.fd_func_sig,e*E+2);if(!this.call_fd_func(e))return this.allocator.free(c,_),this.release_fd(e),h;const f=this.get_error(e);return this.release_fd(e),f}path_rename(e,t,s,o){this.lock_double_fd(e,s);const c=e*A,_=new Uint32Array(this.fd_func_sig,c);Atomics.store(_,0,35),Atomics.store(_,1,e);const[f,r]=this.allocator.block_write(t,this.fd_func_sig,e*E+2);Atomics.store(_,4,s);const[i,n]=this.allocator.block_write(o,this.fd_func_sig,e*E+5);if(!this.call_fd_func(e))return this.allocator.free(f,r),this.allocator.free(i,n),this.release_double_fd(e,s),h;const a=this.get_error(e);return this.release_double_fd(e,s),a}path_symlink(e,t,s){this.lock_fd(t);const o=t*A,c=new Uint32Array(this.fd_func_sig,o);Atomics.store(c,0,36);const[_,f]=this.allocator.block_write(e,this.fd_func_sig,t*E+1);Atomics.store(c,3,t);const[r,i]=this.allocator.block_write(s,this.fd_func_sig,t*E+4);if(!this.call_fd_func(t))return this.allocator.free(_,f),this.allocator.free(r,i),this.release_fd(t),h;const n=this.get_error(t);return this.release_fd(t),n}path_unlink_file(e,t){this.lock_fd(e);const s=e*A,o=new Uint32Array(this.fd_func_sig,s);Atomics.store(o,0,37),Atomics.store(o,1,e);const[c,_]=this.allocator.block_write(t,this.fd_func_sig,e*E+2);if(!this.call_fd_func(e))return this.allocator.free(c,_),this.release_fd(e),h;const f=this.get_error(e);return this.release_fd(e),f}}const X=v=>{const e=new Error(v.message);return e.name=v.name,e.stack=v.stack?.replace(/.wasm:/g,`.wasm
`),e.cause=v.cause,e};class W{allocator;lock;signature_input;constructor(e,t,s){this.allocator=e,this.lock=t,this.signature_input=s}block_lock_base_func(){const e=new Int32Array(this.lock);for(;;){if(Atomics.wait(e,0,1)==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(e,0,0,1)===0)return}}async async_lock_base_func(){const e=new Int32Array(this.lock);for(;;){const{value:t}=Atomics.waitAsync(e,0,1);if(await t==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(e,0,0,1)===0)return}}call_base_func(){const e=new Int32Array(this.lock);Atomics.store(e,2,1),Atomics.store(e,1,0),Atomics.notify(e,1,1)}block_wait_base_func(){const e=new Int32Array(this.lock);if(Atomics.wait(e,2,1)==="timed-out")throw new Error("timed-out lock")}async async_wait_base_func(){const e=new Int32Array(this.lock),{value:t}=Atomics.waitAsync(e,2,1);if(await t==="timed-out")throw new Error("timed-out lock")}release_base_func(){const e=new Int32Array(this.lock);Atomics.store(e,0,0),Atomics.notify(e,0,1)}new_worker(e,t,s){console.log("new_worker",e,t,s),this.block_lock_base_func();const o=new Int32Array(this.signature_input);Atomics.store(o,0,1);const c=new TextEncoder().encode(e);this.allocator.block_write(c,this.signature_input,1),Atomics.store(o,3,t?.type==="module"?1:0);const _=JSON.stringify(s),f=new TextEncoder().encode(_);this.allocator.block_write(f,this.signature_input,4),this.call_base_func(),this.block_wait_base_func();const r=Atomics.load(o,0);return this.release_base_func(),new de(r)}async async_start_on_thread(e,t,s){await this.async_lock_base_func();const o=new Int32Array(this.signature_input);Atomics.store(o,0,2);const c=new TextEncoder().encode(e);await this.allocator.async_write(c,this.signature_input,1),Atomics.store(o,3,t?.type==="module"?1:0);const _=JSON.stringify(s),f=new TextEncoder().encode(_);await this.allocator.async_write(f,this.signature_input,4),this.call_base_func(),await this.async_wait_base_func(),this.release_base_func()}block_start_on_thread(e,t,s){this.block_lock_base_func();const o=new Int32Array(this.signature_input);Atomics.store(o,0,2);const c=new TextEncoder().encode(e);this.allocator.block_write(c,this.signature_input,1),Atomics.store(o,3,t?.type==="module"?1:0);const _=JSON.stringify(s),f=new TextEncoder().encode(_);this.allocator.block_write(f,this.signature_input,4),this.call_base_func(),this.block_wait_base_func(),this.release_base_func()}static init_self(e){return new W(z.init_self(e.allocator),e.lock,e.signature_input)}done_notify(e){const t=new Int32Array(this.lock,12);if(Atomics.compareExchange(t,0,0,2)!==0){console.error("what happened?");return}Atomics.store(t,1,e),Atomics.notify(t,0)===0&&Atomics.store(t,0,0)}async async_wait_done_or_error(){const e=new Int32Array(this.lock,12);Atomics.store(e,0,0);let t;const{value:s}=Atomics.waitAsync(e,0,0);if(s instanceof Promise?t=await s:t=s,t==="timed-out")throw new Error("timed-out");const o=Atomics.load(e,0);if(o===3)return Atomics.compareExchange(e,0,3,0)!==3&&console.error("what happened?"),0;if(o===2){const d=Atomics.compareExchange(e,0,2,0),l=Atomics.load(e,1);return d!==2&&console.error("what happened?"),l}if(o!==1)throw new Error("unknown code");const c=Atomics.load(e,1),_=Atomics.load(e,2),f=this.allocator.get_memory(c,_),r=new TextDecoder().decode(f),i=JSON.parse(r),n=X(i);throw Atomics.compareExchange(e,0,1,0)!==1&&console.error("what happened?"),n}block_wait_done_or_error(){const e=new Int32Array(this.lock,12);if(Atomics.store(e,0,0),Atomics.wait(e,0,0)==="timed-out")throw new Error("timed-out");const s=Atomics.load(e,0);if(s===3)return Atomics.compareExchange(e,0,3,0)!==3&&console.error("what happened?"),0;if(s===2){const a=Atomics.compareExchange(e,0,2,0),d=Atomics.load(e,1);return a!==2&&console.error("what happened?"),d}if(s!==1)throw new Error("unknown code");const o=Atomics.load(e,1),c=Atomics.load(e,2),_=this.allocator.get_memory(o,c),f=new TextDecoder().decode(_),r=JSON.parse(f),i=X(r);throw Atomics.compareExchange(e,0,1,0)!==1&&console.error("what happened?"),i}}class de{id;constructor(e){this.id=e}get_id(){return this.id}}const le=()=>{const v='let worker_background;class AllocatorUseArrayBuffer{share_arrays_memory;constructor(r=new SharedArrayBuffer(0xa00000)){this.share_arrays_memory=r;let e=new Int32Array(this.share_arrays_memory);Atomics.store(e,0,0),Atomics.store(e,1,0),Atomics.store(e,2,12)}static init_self(r){return new AllocatorUseArrayBuffer(r.share_arrays_memory)}async async_write(r,e,t){let o=new Int32Array(this.share_arrays_memory);for(;;){let{value:s}=Atomics.waitAsync(o,0,1);if("timed-out"===(s instanceof Promise?await s:s))throw Error("timed-out lock");if(0!==Atomics.compareExchange(o,0,0,1))continue;let i=this.write_inner(r,e,t);return Atomics.store(o,0,0),Atomics.notify(o,0,1),i}}block_write(r,e,t){for(;;){let o=new Int32Array(this.share_arrays_memory);if("timed-out"===Atomics.wait(o,0,1))throw Error("timed-out lock");if(0!==Atomics.compareExchange(o,0,0,1))continue;let s=this.write_inner(r,e,t);return Atomics.store(o,0,0),Atomics.notify(o,0,1),s}}write_inner(r,e,t){let o,s,i=new Int32Array(this.share_arrays_memory),a=new Uint8Array(this.share_arrays_memory);o=0===Atomics.add(i,1,1)?Atomics.store(i,2,12):Atomics.load(i,2);let n=this.share_arrays_memory.byteLength,c=r.byteLength,l=o+c;if(n<l)throw Error("size is bigger than memory. \\nTODO! fix memory limit. support big size another way.");if(r instanceof Uint8Array)s=r;else if(r instanceof Uint32Array){let e=new ArrayBuffer(r.byteLength);new Uint32Array(e).set(r),s=new Uint8Array(e)}a.set(new Uint8Array(s),o),Atomics.store(i,2,l);let m=new Int32Array(e);return Atomics.store(m,t,o),Atomics.store(m,t+1,c),[o,c]}free(r,e){Atomics.sub(new Int32Array(this.share_arrays_memory),1,1)}get_memory(r,e){let t=new ArrayBuffer(e);return new Uint8Array(t).set(new Uint8Array(this.share_arrays_memory).slice(r,r+e)),t}use_defined_memory(r,e,t){new Uint8Array(this.share_arrays_memory).set(new Uint8Array(t).slice(0,e),r)}get_object(){return{share_arrays_memory:this.share_arrays_memory}}}let serialize=r=>({message:r.message,name:r.name,stack:r.stack,cause:r.cause}),WorkerBackground=class r{override_object;allocator;lock;signature_input;workers=[void 0];start_worker;listen_holder;constructor(r,e,t,o){this.override_object=r,this.lock=e??new SharedArrayBuffer(24),this.allocator=t??new AllocatorUseArrayBuffer(new SharedArrayBuffer(10240)),this.signature_input=o??new SharedArrayBuffer(24),this.listen_holder=this.listen()}static init_self(e,t){return new r(e,t.lock,AllocatorUseArrayBuffer.init_self(t.allocator),t.signature_input)}assign_worker_id(){for(let r=1;r<this.workers.length;r++)if(void 0===this.workers[r])return r;return this.workers.push(void 0),this.workers.length-1}ref(){return{allocator:this.allocator.get_object(),lock:this.lock,signature_input:this.signature_input}}async listen(){let r=new Int32Array(this.lock);Atomics.store(r,0,0),Atomics.store(r,1,1);let e=new Int32Array(this.signature_input);for(;;){let{value:t}=Atomics.waitAsync(r,1,1);if(await t==="timed-out")throw Error("timed-out");let o=()=>{let r=Atomics.load(e,1),t=Atomics.load(e,2),o=this.allocator.get_memory(r,t);return this.allocator.free(r,t),new Worker(new TextDecoder().decode(o),{type:1===Atomics.load(e,3)?"module":"classic"})},s=()=>{let r=Atomics.load(e,4),t=Atomics.load(e,5),o=this.allocator.get_memory(r,t);return this.allocator.free(r,t),JSON.parse(new TextDecoder().decode(o))};switch(Atomics.load(e,0)){case 1:{let r=o(),t=s(),i=this.assign_worker_id();console.debug("new worker "+i),this.workers[i]=r;let{promise:a,resolve:n}=Promise.withResolvers();r.onmessage=async r=>{let{msg:e}=r.data;if("ready"===e&&n(),"done"===e&&(this.workers[i].terminate(),this.workers[i]=void 0,console.debug(`worker ${i} done so terminate`)),"error"===e||"exit"===e){this.workers[i].terminate(),this.workers[i]=void 0;let t=0;for(let r of this.workers)void 0!==r&&(r.terminate(),"error"===e?console.warn("wasi throw error but child process exists, terminate "+t):console.debug("wasi exit but child process exists, terminate "+t)),t++;void 0!==this.start_worker&&(this.start_worker.terminate(),"error"===e?console.warn("wasi throw error but wasi exists, terminate wasi"):console.debug("wasi exit but wasi exists, terminate wasi")),this.workers=[void 0],this.start_worker=void 0;let o=new Int32Array(this.lock,12);if("error"===e){let e=r.data.error,t=serialize(e),[s,i]=await this.allocator.async_write(new TextEncoder().encode(JSON.stringify(t)),this.lock,4);if(0!==Atomics.compareExchange(o,0,0,1)){console.error("what happened?"),this.allocator.free(s,i);return}1!==Atomics.notify(o,0)&&(console.error(e),this.allocator.free(s,i),Atomics.store(o,0,0))}else{let e=r.data.code;if(0!==Atomics.compareExchange(o,0,0,2))return void console.error("what happened?");Atomics.store(o,1,e),0===Atomics.notify(o,0)&&Atomics.store(o,0,0)}}},r.postMessage({...this.override_object,...t,worker_id:i,worker_background_ref:this.ref()}),await a,Atomics.store(e,0,i);break}case 2:{console.debug("start worker create"),this.start_worker=o();let r=s();this.start_worker.onmessage=async r=>{let{msg:e}=r.data;if("done"===e){let r=0;for(let e of this.workers)void 0!==e&&(e.terminate(),console.warn("wasi done but worker exists, terminate "+r)),r++;this.start_worker.terminate(),this.start_worker=void 0;let e=new Int32Array(this.lock,12);Atomics.store(e,0,3),0===Atomics.notify(e,0)&&Atomics.store(e,0,0),console.debug("start worker done so terminate")}if("error"===e||"exit"===e){let t=0;for(let r of this.workers)void 0!==r&&(r.terminate(),"error"===e?console.warn("wasi throw error but worker exists, terminate "+t):console.debug("wasi exit but worker exists, terminate "+t)),t++;void 0!==this.start_worker&&(this.start_worker.terminate(),"error"===e?console.warn("wasi throw error but wasi exists, terminate start worker"):console.debug("wasi exit but wasi exists, terminate start worker")),this.workers=[void 0],this.start_worker=void 0;let o=new Int32Array(this.lock,12);if("error"===e){let e=r.data.error,t=serialize(e),[s,i]=await this.allocator.async_write(new TextEncoder().encode(JSON.stringify(t)),this.lock,4);if(0!==Atomics.compareExchange(o,0,0,1)){console.error("what happened?"),this.allocator.free(s,i);return}if(0===Atomics.notify(o,0))throw this.allocator.free(s,i),Atomics.store(o,0,0),e}else{let e=r.data.code;if(0!==Atomics.compareExchange(o,0,0,2))return void console.error("what happened?");Atomics.store(o,1,e),0===Atomics.notify(o,0)&&Atomics.store(o,0,0)}}},this.start_worker.postMessage({...this.override_object,...r,worker_background_ref:this.ref()})}}Atomics.store(r,1,1),Atomics.store(r,2,0),0===Atomics.notify(r,2,1)&&console.warn("notify failed, waiter is late")}}};globalThis.onmessage=r=>{let{override_object:e,worker_background_ref_object:t}=r.data;worker_background=WorkerBackground.init_self(e,t),postMessage("ready")};',e=new Blob([v],{type:"application/javascript"});return URL.createObjectURL(e)},ue=()=>({allocator:{share_arrays_memory:new SharedArrayBuffer(10*1024)},lock:new SharedArrayBuffer(24),signature_input:new SharedArrayBuffer(24)});class T{share_memory;wasi_farm_refs_object;worker_url;worker_background_ref;worker_background_ref_object;worker_background_worker;worker_background_worker_promise;constructor(e,t,s,o=16777216,c,_,f){if(this.worker_url=e,this.wasi_farm_refs_object=t,s===void 0){const i=o/65536;if(i<16)throw new Error("The stack size must be at least 16 bytes.");const n=1073741824/65536;this.share_memory={memory:new WebAssembly.Memory({initial:i,maximum:n,shared:!0})}}else this.share_memory=s;if(c===void 0){let r;f?r=f:r=le(),this.worker_background_worker=new Worker(r,{type:"module"}),f||URL.revokeObjectURL(r);const{promise:i,resolve:n}=Promise.withResolvers();this.worker_background_worker_promise=i,this.worker_background_worker.onmessage=()=>{this.worker_background_worker_promise=void 0,n()},this.worker_background_ref_object=ue(),this.worker_background_ref=W.init_self(this.worker_background_ref_object),this.worker_background_worker.postMessage({override_object:{sl_object:this.get_object(),thread_spawn_wasm:_},worker_background_ref_object:structuredClone(this.worker_background_ref_object)})}else this.worker_background_ref_object=c,this.worker_background_ref=W.init_self(this.worker_background_ref_object)}async wait_worker_background_worker(){if(this.worker_background_worker_promise){await this.worker_background_worker_promise;return}}check_worker_background_worker(){if(this.worker_background_worker_promise)throw new Error("worker_background_worker is not ready.")}thread_spawn(e,t,s,o){return this.worker_background_ref.new_worker(this.worker_url,{type:"module"},{this_is_thread_spawn:!0,start_arg:e,args:t,env:s,fd_map:o}).get_id()}async async_start_on_thread(e,t,s){if(!self.Worker.toString().includes("[native code]"))if(self.Worker.toString().includes("function"))console.warn("SubWorker(new Worker on Worker) is polyfilled maybe.");else throw new Error("SubWorker(new Worker on Worker) is not supported.");await this.worker_background_ref.async_start_on_thread(this.worker_url,{type:"module"},{this_is_thread_spawn:!0,this_is_start:!0,args:e,env:t,fd_map:s})}block_start_on_thread(e,t,s){if(!self.Worker.toString().includes("[native code]"))if(self.Worker.toString().includes("function"))console.warn("SubWorker(new Worker on Worker) is polyfilled maybe.");else throw new Error("SubWorker(new Worker on Worker) is not supported.");this.worker_background_ref.block_start_on_thread(this.worker_url,{type:"module"},{this_is_thread_spawn:!0,this_is_start:!0,args:e,env:t,fd_map:s})}static init_self(e){return new T(e.worker_url,e.wasi_farm_refs_object,e.share_memory,void 0,e.worker_background_ref_object)}static init_self_with_worker_background_ref(e,t){return new T(e.worker_url,e.wasi_farm_refs_object,e.share_memory,void 0,t)}get_share_memory(){return this.share_memory}get_object(){return{share_memory:this.share_memory,wasi_farm_refs_object:this.wasi_farm_refs_object,worker_url:this.worker_url,worker_background_ref_object:this.worker_background_ref_object}}done_notify(e){this.worker_background_ref.done_notify(e)}async async_wait_done_or_error(){if(this.worker_background_worker===void 0)throw new Error("worker_background_worker is undefined.");return await this.worker_background_ref.async_wait_done_or_error()}block_wait_done_or_error(){if(this.worker_background_worker===void 0)throw new Error("worker_background_worker is undefined.");return this.worker_background_ref.block_wait_done_or_error()}}class J{args;env;wasi_farm_refs;id_in_wasi_farm_ref;inst;wasiImport;wasiThreadImport;can_array_buffer;can_thread_spawn;thread_spawner;async wait_worker_background_worker(){await this.thread_spawner?.wait_worker_background_worker()}check_worker_background_worker(){this.thread_spawner?.check_worker_background_worker()}fd_map=[];get_fd_and_wasi_ref(e){const t=this.fd_map[e];if(!t)return[void 0,void 0];const[s,o]=t;return[s,this.wasi_farm_refs[o]]}get_fd_and_wasi_ref_n(e){const t=this.fd_map[e];if(!t)return[void 0,void 0];const[s,o]=t;return[s,o]}start(e){this.inst=e;try{if(e.exports._start(),this.can_thread_spawn){if(!this.thread_spawner)throw new Error("thread_spawner is not defined");this.thread_spawner.done_notify(0)}return 0}catch(t){if(t instanceof q)return this.can_thread_spawn&&this.thread_spawner.done_notify(t.code),t.code;throw t}}start_only(e){this.inst=e,e.exports._start()}async async_start_on_thread(){if(!this.can_thread_spawn||!this.thread_spawner)throw new Error("thread_spawn is not supported");if(await this.wait_worker_background_worker(),this.inst)throw new Error("what happened?");const e=this.thread_spawner.get_share_memory();for(const o in e)new Uint8Array(e[o].buffer).fill(0);const t=this.thread_spawner.async_wait_done_or_error();return await this.thread_spawner.async_start_on_thread(this.args,this.env,this.fd_map),await t}block_start_on_thread(){if(!this.can_thread_spawn||!this.thread_spawner)throw new Error("thread_spawn is not supported");if(console.log("block_start_on_thread"),this.check_worker_background_worker(),console.log("block_start_on_thread"),this.inst)throw new Error("what happened?");const e=this.thread_spawner.get_share_memory();for(const s in e)new Uint8Array(e[s].buffer).fill(0);console.log("block_start_on_thread: start"),this.thread_spawner.block_start_on_thread(this.args,this.env,this.fd_map),console.log("block_start_on_thread: wait");const t=this.thread_spawner.block_wait_done_or_error();return console.log("block_start_on_thread: done"),t}wasi_thread_start(e,t,s){this.inst=e,e.exports.wasi_thread_start(t,s)}initialize(e){this.inst=e,e.exports._initialize&&e.exports._initialize()}mapping_fds(e,t){this.fd_map=[void 0,void 0,void 0];for(let s=0;s<e.length;s++){const o=e[s],c=t?t[s]:o.default_fds,_=o.get_stdin(),f=o.get_stdout(),r=o.get_stderr();_!==void 0&&this.fd_map[0]===void 0&&c.includes(_)&&(this.fd_map[0]=[_,s]),f!==void 0&&this.fd_map[1]===void 0&&c.includes(f)&&(this.fd_map[1]=[f,s]),r!==void 0&&this.fd_map[2]===void 0&&c.includes(r)&&(this.fd_map[2]=[r,s]);for(const i of c)i===_||i===f||i===r||this.map_new_fd(i,s);o.set_park_fds_map(c)}if(this.fd_map[0]===void 0)throw new Error("stdin is not found");if(this.fd_map[1]===void 0)throw new Error("stdout is not found");if(this.fd_map[2]===void 0)throw new Error("stderr is not found")}map_new_fd(e,t){let s=-1;for(let o=3;o<this.fd_map.length;o++)if(this.fd_map[o]===void 0){s=o;break}return s===-1&&(s=this.fd_map.push(void 0)-1),this.fd_map[s]=[e,t],s}map_new_fd_and_notify(e,t){const s=this.map_new_fd(e,t);return this.wasi_farm_refs[t].set_park_fds_map([e]),s}map_set_fd_and_notify(e,t,s){if(this.fd_map[s]!==void 0)throw new Error("fd is already mapped");this.fd_map[s]=[e,t],this.wasi_farm_refs[t].set_park_fds_map([e])}check_fds(){const e=[];for(let t=0;t<this.id_in_wasi_farm_ref.length;t++){const s=this.id_in_wasi_farm_ref[t],o=this.wasi_farm_refs[t].get(s);if(o)for(const c of o)e.push([c,t])}if(e.length>0)for(let t=0;t<this.fd_map.length;t++){const s=this.fd_map[t];if(!s)continue;const[o,c]=s;for(const[_,f]of e)if(o===_&&c===f){this.fd_map[t]=void 0;break}}}get_share_memory(){if(!this.thread_spawner)throw new Error("thread_spawner is not defined");return this.thread_spawner.get_share_memory()}constructor(e,t,s,o={},c,_){let f;Array.isArray(e)?f=e:f=[e];try{new SharedArrayBuffer(4),this.can_array_buffer=!0}catch{this.can_array_buffer=!1}this.id_in_wasi_farm_ref=[],this.wasi_farm_refs=[];for(let i=0;i<f.length;i++){if(this.can_array_buffer)this.wasi_farm_refs.push($.init_self(f[i]));else throw new Error("Non SharedArrayBuffer is not supported yet");this.id_in_wasi_farm_ref.push(this.wasi_farm_refs[i].set_id())}if(o.can_thread_spawn)if(this.can_thread_spawn=o.can_thread_spawn,_){if(!(_ instanceof T))throw new Error("thread_spawner is not ThreadSpawner");this.thread_spawner=_}else{if(o.thread_spawn_worker_url===void 0)throw new Error("thread_spawn_worker_url is not defined");if(o.thread_spawn_wasm===void 0)throw new Error("thread_spawn_wasm is not defined");this.thread_spawner=new T(o.thread_spawn_worker_url,f,o.share_memory,void 0,void 0,o.thread_spawn_wasm,o.worker_background_worker_url)}this.mapping_fds(this.wasi_farm_refs,c),o.hand_override_fd_map&&(this.fd_map=o.hand_override_fd_map),this.args=t,this.env=s;const r=this;this.wasiImport={args_sizes_get(i,n){r.check_fds();const a=new DataView(r.inst.exports.memory.buffer);a.setUint32(i,r.args.length,!0);let d=0;for(const l of r.args)d+=l.length+1;return a.setUint32(n,d,!0),0},args_get(i,n){r.check_fds();const a=new DataView(r.inst.exports.memory.buffer),d=new Uint8Array(r.inst.exports.memory.buffer);for(let l=0;l<r.args.length;l++){a.setUint32(i,n,!0),i+=4;const u=new TextEncoder().encode(r.args[l]);d.set(u,n),a.setUint8(n+u.length,0),n+=u.length+1}return 0},environ_sizes_get(i,n){r.check_fds();const a=new DataView(r.inst.exports.memory.buffer);a.setUint32(i,r.env.length,!0);let d=0;for(const l of r.env)d+=l.length+1;return a.setUint32(n,d,!0),0},environ_get(i,n){r.check_fds();const a=new DataView(r.inst.exports.memory.buffer),d=new Uint8Array(r.inst.exports.memory.buffer);for(let l=0;l<r.env.length;l++){a.setUint32(i,n,!0),i+=4;const u=new TextEncoder().encode(r.env[l]);d.set(u,n),a.setUint8(n+u.length,0),n+=u.length+1}return 0},clock_res_get(i,n){r.check_fds();let a;switch(i){case V:{a=5000n;break}case N:{a=1000000n;break}default:return re}return new DataView(r.inst.exports.memory.buffer).setBigUint64(n,a,!0),B},clock_time_get(i,n,a){r.check_fds();const d=new DataView(r.inst.exports.memory.buffer);if(i===N)d.setBigUint64(a,BigInt(new Date().getTime())*1000000n,!0);else if(i===V){let l;try{l=BigInt(Math.round(performance.now()*1e6))}catch{l=0n}d.setBigUint64(a,l,!0)}else d.setBigUint64(a,0n,!0);return 0},fd_advise(i,n,a,d){r.check_fds();const[l,u]=r.get_fd_and_wasi_ref(i);return l===void 0||u===void 0?h:u.fd_advise(l)},fd_allocate(i,n,a){r.check_fds();const[d,l]=r.get_fd_and_wasi_ref(i);return d===void 0||l===void 0?h:l.fd_allocate(d,n,a)},fd_close(i){r.check_fds();const[n,a]=r.get_fd_and_wasi_ref(i);if(n===void 0||a===void 0)return h;const d=a.fd_close(n);return r.check_fds(),d},fd_datasync(i){r.check_fds();const[n,a]=r.get_fd_and_wasi_ref(i);return n===void 0||a===void 0?h:a.fd_datasync(n)},fd_fdstat_get(i,n){r.check_fds();const[a,d]=r.get_fd_and_wasi_ref(i);if(a===void 0||d===void 0)return h;const[l,u]=d.fd_fdstat_get(a);return l&&l.write_bytes(new DataView(r.inst.exports.memory.buffer),n),u},fd_fdstat_set_flags(i,n){r.check_fds();const[a,d]=r.get_fd_and_wasi_ref(i);return a===void 0||d===void 0?h:d.fd_fdstat_set_flags(a,n)},fd_fdstat_set_rights(i,n,a){r.check_fds();const[d,l]=r.get_fd_and_wasi_ref(i);return d===void 0||l===void 0?h:l.fd_fdstat_set_rights(d,n,a)},fd_filestat_get(i,n){r.check_fds();const[a,d]=r.get_fd_and_wasi_ref(i);if(a===void 0||d===void 0)return h;const[l,u]=d.fd_filestat_get(a);return l&&l.write_bytes(new DataView(r.inst.exports.memory.buffer),n),u},fd_filestat_set_size(i,n){r.check_fds();const[a,d]=r.get_fd_and_wasi_ref(i);return a===void 0||d===void 0?h:d.fd_filestat_set_size(a,n)},fd_filestat_set_times(i,n,a,d){r.check_fds();const[l,u]=r.get_fd_and_wasi_ref(i);return l===void 0||u===void 0?h:u.fd_filestat_set_times(l,n,a,d)},fd_pread(i,n,a,d,l){r.check_fds();const[u,m]=r.get_fd_and_wasi_ref(i);if(u===void 0||m===void 0)return h;const w=new DataView(r.inst.exports.memory.buffer),y=new Uint8Array(r.inst.exports.memory.buffer),g=new Uint32Array(w.buffer,n,a*2),[p,b]=m.fd_pread(u,g,d);if(p){const k=R.read_bytes_array(w,n,a),[x,U]=p;w.setUint32(l,x,!0);let I=0;for(const j of k){if(I+j.buf_len>=U.length){y.set(U,j.buf);break}y.set(U.slice(I,I+j.buf_len),j.buf),I+=j.buf_len}}return b},fd_prestat_get(i,n){r.check_fds();const[a,d]=r.get_fd_and_wasi_ref(i);if(a===void 0||d===void 0)return h;const[l,u]=d.fd_prestat_get(a);if(l){const[m,w]=l,y=new DataView(r.inst.exports.memory.buffer);y.setUint32(n,m,!0),y.setUint32(n+4,w,!0)}return u},fd_prestat_dir_name(i,n,a){r.check_fds();const[d,l]=r.get_fd_and_wasi_ref(i);if(d===void 0||l===void 0)return[void 0,h];const[u,m]=l.fd_prestat_dir_name(d,a);return u&&new Uint8Array(r.inst.exports.memory.buffer).set(u,n),m},fd_pwrite(i,n,a,d,l){r.check_fds();const[u,m]=r.get_fd_and_wasi_ref(i);if(u===void 0||m===void 0)return h;const w=new DataView(r.inst.exports.memory.buffer),y=new Uint8Array(r.inst.exports.memory.buffer),g=D.read_bytes_array(w,n,a),p=new Uint8Array(g.reduce((U,I)=>U+I.buf_len,0));let b=0;for(const U of g)p.set(y.slice(U.buf,U.buf+U.buf_len),b),b+=U.buf_len;const[k,x]=m.fd_pwrite(u,p,d);return k&&w.setUint32(l,k,!0),x},fd_read(i,n,a,d){r.check_fds();const[l,u]=r.get_fd_and_wasi_ref(i);if(l===void 0||u===void 0)return h;const m=new DataView(r.inst.exports.memory.buffer),w=new Uint8Array(r.inst.exports.memory.buffer),y=new Uint32Array(m.buffer,n,a*2),[g,p]=u.fd_read(l,y);if(g){const b=R.read_bytes_array(m,n,a),[k,x]=g;m.setUint32(d,k,!0);let U=0;for(const I of b){if(U+I.buf_len>=x.length){w.set(x,I.buf);break}w.set(x.slice(U,U+I.buf_len),I.buf),U+=I.buf_len}}return p},fd_readdir(i,n,a,d,l){r.check_fds();const[u,m]=r.get_fd_and_wasi_ref(i);if(u===void 0||m===void 0)return[void 0,h];const w=new DataView(r.inst.exports.memory.buffer),y=new Uint8Array(r.inst.exports.memory.buffer),[g,p]=m.fd_readdir(u,a,d);if(g){const[b,k]=g;w.setUint32(l,k,!0),y.set(b,n)}return p},fd_renumber(i,n){r.check_fds();const[a,d]=r.get_fd_and_wasi_ref(n);if(a!==void 0&&d!==void 0){const l=d.fd_close(a);if(r.check_fds(),l!==B)return l}if(r.fd_map[n])throw new Error("fd is already mapped");return r.fd_map[n]=r.fd_map[i],r.fd_map[i]=void 0,B},fd_seek(i,n,a,d){r.check_fds();const[l,u]=r.get_fd_and_wasi_ref(i);if(l===void 0||u===void 0)return[void 0,h];const[m,w]=u.fd_seek(l,n,a);return m&&new DataView(r.inst.exports.memory.buffer).setBigUint64(d,m,!0),w},fd_sync(i){r.check_fds();const[n,a]=r.get_fd_and_wasi_ref(i);return n===void 0||a===void 0?h:a.fd_sync(n)},fd_tell(i,n){r.check_fds();const[a,d]=r.get_fd_and_wasi_ref(i);if(a===void 0||d===void 0)return[void 0,h];const[l,u]=d.fd_tell(a);return l&&new DataView(r.inst.exports.memory.buffer).setBigUint64(n,l,!0),u},fd_write(i,n,a,d){r.check_fds();const[l,u]=r.get_fd_and_wasi_ref(i);if(l===void 0||u===void 0)return h;const m=new DataView(r.inst.exports.memory.buffer),w=new Uint8Array(r.inst.exports.memory.buffer),y=D.read_bytes_array(m,n,a),g=new Uint8Array(y.reduce((x,U)=>x+U.buf_len,0));let p=0;for(const x of y)g.set(w.slice(x.buf,x.buf+x.buf_len),p),p+=x.buf_len;const[b,k]=u.fd_write(l,g);return b&&m.setUint32(d,b,!0),k},path_create_directory(i,n,a){r.check_fds();const[d,l]=r.get_fd_and_wasi_ref(i);if(d===void 0||l===void 0)return h;const m=new Uint8Array(r.inst.exports.memory.buffer).slice(n,n+a);return l.path_create_directory(d,m)},path_filestat_get(i,n,a,d,l){r.check_fds();const[u,m]=r.get_fd_and_wasi_ref(i);if(u===void 0||m===void 0)return[void 0,h];const w=new DataView(r.inst.exports.memory.buffer),g=new Uint8Array(r.inst.exports.memory.buffer).slice(a,a+d),[p,b]=m.path_filestat_get(u,n,g);return p&&p.write_bytes(w,l),b},path_filestat_set_times(i,n,a,d,l,u,m){r.check_fds();const[w,y]=r.get_fd_and_wasi_ref(i);if(w===void 0||y===void 0)return[void 0,h];const p=new Uint8Array(r.inst.exports.memory.buffer).slice(a,a+d);return y.path_filestat_set_times(w,n,p,l,u,m)},path_link(i,n,a,d,l,u,m){r.check_fds();const[w,y]=r.get_fd_and_wasi_ref(i),[g,p]=r.get_fd_and_wasi_ref(l);if(w===void 0||y===void 0||g===void 0||p===void 0||y!==p)return h;const b=new Uint8Array(r.inst.exports.memory.buffer),k=b.slice(a,a+d),x=b.slice(u,u+m);return y.path_link(w,n,k,g,x)},path_open(i,n,a,d,l,u,m,w,y){r.check_fds();const[g,p]=r.get_fd_and_wasi_ref_n(i);if(g===void 0||p===void 0)return h;const b=r.wasi_farm_refs[p],x=new Uint8Array(r.inst.exports.memory.buffer).slice(a,a+d),[U,I]=b.path_open(g,n,x,l,u,m,w);if(U){if(r.fd_map.includes([U,p]))throw new Error("opened_fd already exists");const j=r.map_new_fd_and_notify(U,p);new DataView(r.inst.exports.memory.buffer).setUint32(y,j,!0)}return I},path_readlink(i,n,a,d,l,u){r.check_fds();const[m,w]=r.get_fd_and_wasi_ref(i);if(m===void 0||w===void 0)return[void 0,h];const y=new Uint8Array(r.inst.exports.memory.buffer),g=y.slice(n,n+a),[p,b]=w.path_readlink(m,g,l);return p&&(new DataView(r.inst.exports.memory.buffer).setUint32(u,p.length,!0),y.set(p,d)),b},path_remove_directory(i,n,a){r.check_fds();const[d,l]=r.get_fd_and_wasi_ref(i);if(d===void 0||l===void 0)return h;const m=new Uint8Array(r.inst.exports.memory.buffer).slice(n,n+a);return l.path_remove_directory(d,m)},path_rename(i,n,a,d,l,u){if(i===d)return B;r.check_fds();const[m,w]=r.get_fd_and_wasi_ref(i),[y,g]=r.get_fd_and_wasi_ref(d);if(m===void 0||w===void 0||y===void 0||g===void 0||w!==g)return h;const p=new Uint8Array(r.inst.exports.memory.buffer),b=p.slice(n,n+a),k=p.slice(l,l+u);return w.path_rename(m,b,y,k)},path_symlink(i,n,a,d,l){r.check_fds();const[u,m]=r.get_fd_and_wasi_ref(a);if(u===void 0||m===void 0)return h;const w=new Uint8Array(r.inst.exports.memory.buffer),y=w.slice(i,i+n),g=w.slice(d,d+l);return m.path_symlink(y,u,g)},path_unlink_file(i,n,a){r.check_fds();const[d,l]=r.get_fd_and_wasi_ref(i);if(d===void 0||l===void 0)return h;const m=new Uint8Array(r.inst.exports.memory.buffer).slice(n,n+a);return l.path_unlink_file(d,m)},poll_oneoff(i,n,a,d){if(a===0)return K;if(a>1)return console.error("poll_oneoff: only a single subscription is supported"),G;const l=new DataView(r.inst.exports.memory.buffer),u=C.read_bytes(l,i),m=u.eventtype,w=u.clockid,y=u.timeout;if(m!==ie)return console.error("poll_oneoff: only clock subscriptions are supported"),G;let g;if(w===V)g=()=>BigInt(Math.round(performance.now()*1e6));else if(w===N)g=()=>BigInt(new Date().getTime())*1000000n;else return K;const p=((u.flags&ne)!==0?y:g()+y)-u.precision;for(;p>g(););return new ae(u.userdata,B,m).write_bytes(l,n),l.setUint32(d,1,!0),B},proc_exit(i){throw r.check_fds(),new q(i)},proc_raise(i){throw r.check_fds(),`raised signal ${i}`},sched_yield(){r.check_fds()},random_get(i,n){r.check_fds();const a=new Uint8Array(r.inst.exports.memory.buffer).subarray(i,i+n);if("crypto"in globalThis&&!(r.inst.exports.memory.buffer instanceof SharedArrayBuffer))for(let d=0;d<n;d+=65536)crypto.getRandomValues(a.subarray(d,d+65536));else for(let d=0;d<n;d++)a[d]=Math.random()*256|0},sock_recv(i,n,a){throw r.check_fds(),"sockets not supported"},sock_send(i,n,a){throw r.check_fds(),"sockets not supported"},sock_shutdown(i,n){throw r.check_fds(),"sockets not supported"},sock_accept(i,n){throw r.check_fds(),"sockets not supported"}},this.wasiThreadImport={"thread-spawn":i=>{if(r.check_fds(),!r.can_thread_spawn||!r.thread_spawner)throw new Error("thread_spawn is not allowed");return r.thread_spawner.thread_spawn(i,r.args,r.env,r.fd_map)}}}}var he=""+new URL("lsr-Dbxw99Em.wasm",self.location.href).href,me=""+new URL("tre-CYGRhTVw.wasm",self.location.href).href;const M=0,we=0;let ye=class{enable(e){this.log=ge(e===void 0?!0:e,this.prefix)}get enabled(){return this.isEnabled}constructor(e){this.isEnabled=e,this.prefix="wasi:",this.enable(e)}};function ge(v,e){return v?console.log.bind(console,"%c%s","color: #265BA0",e):()=>{}}new ye(!1);const Z=(v,e)=>{const t=e;let s=v;s.startsWith("/")||(s=`/${s}`);let o;const c=new Map;for(let w=0;w<t.fd_map.length;w++){const[y,g]=t.get_fd_and_wasi_ref(w);if(y===void 0||g===void 0)continue;const[p,b]=g.fd_prestat_get(y);if(b===M&&p){const[k,x]=p;if(k===we){const[U,I]=g.fd_prestat_dir_name(y,x);if(I!==M)continue;if(U){const j=new TextDecoder().decode(U);c.set(w,j),j==="/"&&(o=w)}}}}console.log("dir_names",c);let _=o,f=1;const r=s.split("/");for(const[w,y]of c){const g=y.split("/");let p=0;for(let b=0;b<g.length&&g[b]===r[b];b++)p++;p>f&&(_=w,f=p)}if(console.log("matched_fd",_),f===0)throw new Error("no matched dir");console.log("matched_dir_name",c.get(_));const i=r.slice(f).join("/");console.log("rest_path",i);const[n,a]=t.get_fd_and_wasi_ref_n(_),[d,l]=t.wasi_farm_refs[a].path_open(n,0,new TextEncoder().encode(i),0,0n,0n,0);if(t.map_new_fd_and_notify(d,a),l!==M)throw new Error("failed to open file");let u=new Uint8Array,m=0n;for(;;){console.log("offset",m);const w=new Uint32Array(2);w[0]=0,w[1]=1024;const[y,g]=t.wasi_farm_refs[a].fd_pread(d,w,m);if(g!==M)throw new Error("failed to read file");if(!y)throw new Error("failed to read file");const[p,b]=y;if(p===0)break;const k=new Uint8Array(u.length+p);if(k.set(u),k.set(b,u.length),u=k,m+=BigInt(p),p<1024)break}return t.wasi_farm_refs[a].fd_close(d),u},L=[];globalThis.addEventListener("message",async v=>{const{wasi_refs:e,ctx:t}=v.data;console.log("loading lsr and tre");const s=new S.SharedObjectRef(t.terminal_id).proxy(),o=new S.SharedObjectRef(t.waiter_id).proxy(),c=new S.SharedObjectRef(t.download_by_url_id).proxy(),_=await WebAssembly.compile(await(await fetch(he)).arrayBuffer()),f=new J(e,[],[]),r=await WebAssembly.instantiate(_,{wasi_snapshot_preview1:f.wasiImport}),i=r.exports.memory.buffer,n=new Uint8Array(i).slice();L.push(new S.SharedObject((...y)=>{new Uint8Array(r.exports.memory.buffer).set(n),f.args=["lsr",...y],f.start(r)},t.ls_id));const a=await WebAssembly.compile(await(await fetch(me)).arrayBuffer()),d=new J(e,[],[]),l=await WebAssembly.instantiate(a,{wasi_snapshot_preview1:d.wasiImport});console.log("tree_inst",l);const u=l.exports.memory.buffer,m=new Uint8Array(u).slice();L.push(new S.SharedObject((...y)=>{d.args=["tre",...y],new Uint8Array(l.exports.memory.buffer).set(m),d.start(l)},t.tree_id)),console.log("lsr_inst",r),console.log("lsr and tre loaded");const w=new J(e,[],[]);L.push(new S.SharedObject((...y)=>{(async g=>{const p=g[0],b=g.slice(1);try{const k=Z(p,w),x=await WebAssembly.compile(k),U=await WebAssembly.instantiate(x,{wasi_snapshot_preview1:w.wasiImport});w.args=[p,...b],w.start(U)}catch(k){s(`Error: ${k}\r
`)}o.set_end_of_exec(!0)})(y)},t.exec_file_id)),L.push(new S.SharedObject(y=>{(async g=>{console.log("exec_file",g);try{const p=Z(g,w),b=new Blob([p]),k=URL.createObjectURL(b);await c(k,g.split("/").pop()),URL.revokeObjectURL(k)}catch(p){s(`Error: ${p}\r
`)}o.set_end_of_exec(!0)})(y)},t.download_id))})})();