@microtronics/studio-cli 1.1.0 → 1.1.1
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 +5 -0
- package/dist/main.js +33 -33
- package/dist/studio-cli.d.ts +7 -5
- package/out/api.js +28 -28
- package/out/studio-cli.d.ts +7 -5
- package/package.json +1 -1
package/dist/main.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var So=Object.create;var rt=Object.defineProperty;var Po=Object.getOwnPropertyDescriptor;var To=Object.getOwnPropertyNames;var No=Object.getPrototypeOf,Io=Object.prototype.hasOwnProperty;var Mo=(A,x)=>()=>(x||A((x={exports:{}}).exports,x),x.exports),Lo=(A,x)=>{for(var r in x)rt(A,r,{get:x[r],enumerable:!0})},Wn=(A,x,r,e)=>{if(x&&typeof x=="object"||typeof x=="function")for(let i of To(x))!Io.call(A,i)&&i!==r&&rt(A,i,{get:()=>x[i],enumerable:!(e=Po(x,i))||e.enumerable});return A};var cx=(A,x,r)=>(r=A!=null?So(No(A)):{},Wn(x||!A||!A.__esModule?rt(r,"default",{value:A,enumerable:!0}):r,A)),Ro=A=>Wn(rt({},"__esModule",{value:!0}),A);var Ji=Mo((jf,zi)=>{"use strict";var WF=Object.create,Se=Object.defineProperty,XF=Object.getOwnPropertyDescriptor,Oi=Object.getOwnPropertyNames,YF=Object.getPrototypeOf,QF=Object.prototype.hasOwnProperty,ZF=(A,x,r)=>x in A?Se(A,x,{enumerable:!0,configurable:!0,writable:!0,value:r}):A[x]=r,Gi=(A,x)=>function(){return x||(0,A[Oi(A)[0]])((x={exports:{}}).exports,x),x.exports},x8=(A,x)=>{for(var r in x)Se(A,r,{get:x[r],enumerable:!0})},Ui=(A,x,r,e)=>{if(x&&typeof x=="object"||typeof x=="function")for(let i of Oi(x))!QF.call(A,i)&&i!==r&&Se(A,i,{get:()=>x[i],enumerable:!(e=XF(x,i))||e.enumerable});return A},Hi=(A,x,r)=>(r=A!=null?WF(YF(A)):{},Ui(x||!A||!A.__esModule?Se(r,"default",{value:A,enumerable:!0}):r,A)),A8=A=>Ui(Se({},"__esModule",{value:!0}),A),Fx=(A,x,r)=>ZF(A,typeof x!="symbol"?x+"":x,r),r8=Gi({"wasm/bin/pawncc.js"(A,x){"use strict";var r=(()=>{var e=globalThis.document?.currentScript?.src;return async function(i={}){var o,t=i,B=!!globalThis.window,l=!!globalThis.WorkerGlobalScope,D=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer",j=[],b="./this.program",k=(n,F)=>{throw F};typeof __filename<"u"?e=__filename:l&&(e=self.location.href);var q="",y,S;if(D){var T=require("fs");q=__dirname+"/",S=n=>{n=g(n)?new URL(n):n;var F=T.readFileSync(n);return F},y=async(n,F=!0)=>{n=g(n)?new URL(n):n;var f=T.readFileSync(n,F?void 0:"utf8");return f},process.argv.length>1&&(b=process.argv[1].replace(/\\/g,"/")),j=process.argv.slice(2),k=(n,F)=>{throw process.exitCode=n,F}}else if(B||l){try{q=new URL(".",e).href}catch{}l&&(S=n=>{var F=new XMLHttpRequest;return F.open("GET",n,!1),F.responseType="arraybuffer",F.send(null),new Uint8Array(F.response)}),y=async n=>{if(g(n))return new Promise((f,d)=>{var p=new XMLHttpRequest;p.open("GET",n,!0),p.responseType="arraybuffer",p.onload=()=>{if(p.status==200||p.status==0&&p.response){f(p.response);return}d(p.status)},p.onerror=d,p.send(null)});var F=await fetch(n,{credentials:"same-origin"});if(F.ok)return F.arrayBuffer();throw new Error(F.status+" : "+F.url)}}var I=console.log.bind(console),L=console.error.bind(console),R,e0=!1,w,g=n=>n.startsWith("file://");class O{}class Y extends O{}function x0(n){for(var F=0,f=n.length,d=new Uint8Array(f),p;F<f;++F)p=n.charCodeAt(F),d[F]=~p>>8&p;return d}var H,Z,r0=!1,n0=!1;function K(){var n=T0.buffer;Ax=new Int8Array(n),O0=new Int16Array(n),Hx=new Uint8Array(n),Ee=new Uint16Array(n),M0=new Int32Array(n),F0=new Uint32Array(n),Fe=new Float32Array(n),ve=new Float64Array(n),G0=new BigInt64Array(n),Be=new BigUint64Array(n)}function U(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)Nr(t.preRun.shift());cA(Ix)}function a0(){r0=!0,!t.noFSInit&&!a.initialized&&a.init(),W0.init(),jr.__wasm_call_ctors(),a.ignorePermissions=!1}function v0(){}function D0(){h(),a.quit(),W0.shutdown(),n0=!0}function u0(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Tr(t.postRun.shift());cA(DA)}function _0(n){t.onAbort?.(n),n=`Aborted(${n})`,L(n),e0=!0,n+=". Build with -sASSERTIONS for more info.";var F=new WebAssembly.RuntimeError(n);throw Z?.(F),F}var q0;function V0(){return x0(`\0asm\0\0\0\x897\`\x7F\x7F\`\x7F\0\`\x7F\x7F\x7F\`\0\0\`\x7F\x7F\x7F\x7F\`\x7F\x7F\0\`\x7F\x7F~~~\`\x7F\x7F\x7F\0\`\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\x7F\0\`\0\x7F\`~\0\`\x7F~~~~\0\`\x7F\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F~\`\x7F~\x7F~\`\x7F\x7F\x7F\x7F\x7F\0\`\x7F~\`\x7F~\0\`\x7F|\`\x7F~~\x7F\0\`\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F~\x7F\x7F\x7F\`\x7F~\x7F\x7F\`\x07\x7F\x7F\x7F~\x7F\x7F\x7F~\`\x07\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`~\x7F\`~\x7F\x7F\0\`\x7F\x7F~\0\`\x7F|\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F~\x7F\x7F\x7F\`\x7F\x7F\x7F|\x7F\`\x7F\x7F|\x7F\`\x7F\x7F~\x7F\x7F\`\x07\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F~\`\x7F\x7F\x7F\x7F\x7F\x7F~\`\v\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F~\`\x7F~\x7F\x7F\x7F\x7F\x7F\` \x7F~\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`~~\x7F~\`\x7F~~\0\`~\x7F\0\`\x7F~\x7F\`\x7F||\`||\`|\x7F\`\x7F~~~\0\`|\x7F|\`~\x7F\x7F\`~~~~\x7F\`~~~\x7F\`\x7F|\0\`~~|\xD0env\binvoke_v\0env
|
|
2
2
|
invoke_vii\0\x07env invoke_ii\0env
|
|
3
3
|
invoke_iii\0env\binvoke_i\0\0env\vinvoke_iiii\0\benv\r__assert_fail\0 env\finvoke_viiii\0env\finvoke_iiiii\0\renv\rinvoke_viiiii\0env\finvoke_iijii\0env invoke_vi\0env\vinvoke_viii\0 env\vinvoke_iiid\0 env\rinvoke_iiiiii\0env__syscall_faccessat\0\benv__syscall_openat\0\benv__syscall_fcntl64\0env__syscall_ioctl\0wasi_snapshot_preview1\bfd_write\0\bwasi_snapshot_preview1\x07fd_read\0\bwasi_snapshot_preview1\bfd_close\0\0env__syscall_getcwd\0wasi_snapshot_preview1\x07fd_seek\0env__syscall_unlinkat\0env__syscall_rmdir\0\0env__syscall_renameat\0\bwasi_snapshot_preview1clock_time_get\0env__syscall_readlinkat\0\benvemscripten_resize_heap\0\0env_emscripten_throw_longjmp\0\xAA\xA8\x07!
|
|
4
4
|
|
|
@@ -1159,7 +1159,7 @@ S\0\0\xCD\0\0Q\0\0\xCD*\0\0\x97*\0\0>S\0\0A!\0\0\f\0\0\x90\0\0\xC6\0\0l\0\
|
|
|
1159
1159
|
\0\0\xC3\v\0\0\xC3\f\0\0\xC3\r\0\0\xD3\0\0\xC3\0\0\xC3\0\0\f\xBB\0\f\xC3\0\f\xC3\0\f\xC3\0\f\xDB\0A\xC0\xF9\v\xE1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0D\0\0\xFAC\0\0 D\0\0\0D\0\0\xFDC\0\0\xF6C\0\0\xEEC\0\0\xEFC\0\0D\0\0\xEBC\0\0\xE8C\0\0z\0\0\x87Y\0\0\xF3C\0\0\fD\0\0\xF7C\0\0\xF0C\0\0D\0\0\xBCC\0\0\xBDC\0\0MO\0\0\xFDN\0\0\xBCN\0\0\xBDN\0\0,D\0\0\xE3\0\0h&\0\0d-\0\0)\0\0\xA2,\0\0d\0\01\0\0>!\0\0G-\0\0_\0\0y\0\0K0\0\0\v!\0\0*\0\0\x84,\0\0\x81\0\0+\0\02\0\0g!\0\0\xF7)\0\0; \0\0-\0\0\xF01\0\0&\0\0\xAD(\0\0\xF1)\0\0\x97.\0\0\xE2\0\0\xB9-\0\0F-\0\0*\0\0
|
|
1160
1160
|
*\0\0\xDC\0\x004\0\0\xE7.\0\0*\0\x006*\0\0.*\0\0\x9D/\0\0\xB3-\0\0\x8A3\0\0\x87/\0\0'*\0\x009)\0\0!D\0\0\0O\0\0!D\0\0\xB63\0\0\xC63\0\0\x983\0\0\xA53\0\0\xD73\0\0\xAD3\0\0\xAD3\0\0\0\0\0\0/\0A\xA0\xFE\vy\0\0\0\\\\\0\0\xF4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\xA0\x97\0\0\xA0\x9C\0\0\0\0\0\0\0\0\0 \x9C\0\0 \x9D\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA0\x9D\0\0\0\0\0\0\0\0\0\x07\0\0\0\0 \0\0\0\0\0\0\0A\xA4\xFF\v\x9F\0A\xBC\xFF\v\v\x9D\0\0\0\x9C\0\0\0("\0A\xD4\xFF\v\0A\xE4\xFF\v\b\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0A\xA8\x80\v \x98\xBF\0\0\0\0\0\0\0A\xBC\x80\v\xA0\0A\xD4\x80\v\x9D\0\0\0\xA1\0\0\x008"\0\0\0A\xEC\x80\v\0A\xFC\x80\v\xFF\xFF\xFF\xFF
|
|
1161
1161
|
\0A\xC0\x81\v\v0\xC0\0\0\x80!\0\`(`)}function Ex(n){return n}async function fA(n){return n}async function CA(n,F){try{var f=await fA(n),d=await WebAssembly.instantiate(f,F);return d}catch(p){L(`failed to asynchronously prepare wasm: ${p}`),_0(p)}}async function PA(n,F,f){return CA(F,f)}function R0(){var n={env:X0,wasi_snapshot_preview1:X0};return n}async function Dx(){function n(_,M){return jr=_.exports,p0(jr),K(),jr}function F(_){return n(_.instance)}var f=R0();if(t.instantiateWasm)return new Promise((_,M)=>{t.instantiateWasm(f,(z,o0)=>{_(n(z,o0))})});q0??(q0=V0());var d=await PA(R,q0,f),p=F(d);return p}class lA{constructor(F){Fx(this,"name","ExitStatus"),this.message=`Program terminated with exit(${F})`,this.status=F}}var O0,M0,G0,Ax,Fe,ve,Ee,F0,Be,Hx,cA=n=>{for(;n.length>0;)n.shift()(t)},DA=[],Tr=n=>DA.push(n),Ix=[],Nr=n=>Ix.push(n),xr=!1,Z0=n=>G(n),h0=()=>s0(),Kx=globalThis.TextDecoder&&new TextDecoder,Bx=(n,F,f,d)=>{var p=F+f;if(d)return p;for(;n[F]&&!(F>=p);)++F;return F},AA=(n,F=0,f,d)=>{var p=Bx(n,F,f,d);if(p-F>16&&n.buffer&&Kx)return Kx.decode(n.subarray(F,p));for(var _="";F<p;){var M=n[F++];if(!(M&128)){_+=String.fromCharCode(M);continue}var z=n[F++]&63;if((M&224)==192){_+=String.fromCharCode((M&31)<<6|z);continue}var o0=n[F++]&63;if((M&240)==224?M=(M&15)<<12|z<<6|o0:M=(M&7)<<18|z<<12|o0<<6|n[F++]&63,M<65536)_+=String.fromCharCode(M);else{var k0=M-65536;_+=String.fromCharCode(55296|k0>>10,56320|k0&1023)}}return _},zx=(n,F,f)=>n?AA(Hx,n,F,f):"",dA=(n,F,f,d)=>_0(`Assertion failed: ${zx(n)}, at: `+[F?zx(F):"unknown filename",f,d?zx(d):"unknown function"]),E0={isAbs:n=>n.charAt(0)==="/",splitPath:n=>{var F=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return F.exec(n).slice(1)},normalizeArray:(n,F)=>{for(var f=0,d=n.length-1;d>=0;d--){var p=n[d];p==="."?n.splice(d,1):p===".."?(n.splice(d,1),f++):f&&(n.splice(d,1),f--)}if(F)for(;f;f--)n.unshift("..");return n},normalize:n=>{var F=E0.isAbs(n),f=n.slice(-1)==="/";return n=E0.normalizeArray(n.split("/").filter(d=>!!d),!F).join("/"),!n&&!F&&(n="."),n&&f&&(n+="/"),(F?"/":"")+n},dirname:n=>{var F=E0.splitPath(n),f=F[0],d=F[1];return!f&&!d?".":(d&&(d=d.slice(0,-1)),f+d)},basename:n=>n&&n.match(/([^\/]+|\/)\/*$/)[1],join:(...n)=>E0.normalize(n.join("/")),join2:(n,F)=>E0.normalize(n+"/"+F)},fe=()=>{if(D){var n=require("crypto");return F=>n.randomFillSync(F)}return F=>(crypto.getRandomValues(F),0)},Cr=n=>(Cr=fe())(n),sx={resolve:(...n)=>{for(var F="",f=!1,d=n.length-1;d>=-1&&!f;d--){var p=d>=0?n[d]:a.cwd();if(typeof p!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!p)return"";F=p+"/"+F,f=E0.isAbs(p)}return F=E0.normalizeArray(F.split("/").filter(_=>!!_),!f).join("/"),(f?"/":"")+F||"."},relative:(n,F)=>{n=sx.resolve(n).slice(1),F=sx.resolve(F).slice(1);function f(k0){for(var z0=0;z0<k0.length&&k0[z0]==="";z0++);for(var I0=k0.length-1;I0>=0&&k0[I0]==="";I0--);return z0>I0?[]:k0.slice(z0,I0-z0+1)}for(var d=f(n.split("/")),p=f(F.split("/")),_=Math.min(d.length,p.length),M=_,z=0;z<_;z++)if(d[z]!==p[z]){M=z;break}for(var o0=[],z=M;z<d.length;z++)o0.push("..");return o0=o0.concat(p.slice(M)),o0.join("/")}},Px=[],TA=n=>{for(var F=0,f=0;f<n.length;++f){var d=n.charCodeAt(f);d<=127?F++:d<=2047?F+=2:d>=55296&&d<=57343?(F+=4,++f):F+=3}return F},lr=(n,F,f,d)=>{if(!(d>0))return 0;for(var p=f,_=f+d-1,M=0;M<n.length;++M){var z=n.codePointAt(M);if(z<=127){if(f>=_)break;F[f++]=z}else if(z<=2047){if(f+1>=_)break;F[f++]=192|z>>6,F[f++]=128|z&63}else if(z<=65535){if(f+2>=_)break;F[f++]=224|z>>12,F[f++]=128|z>>6&63,F[f++]=128|z&63}else{if(f+3>=_)break;F[f++]=240|z>>18,F[f++]=128|z>>12&63,F[f++]=128|z>>6&63,F[f++]=128|z&63,M++}}return F[f]=0,f-p},NA=(n,F,f)=>{var d=f>0?f:TA(n)+1,p=new Array(d),_=lr(n,p,0,p.length);return F&&(p.length=_),p},Ce=()=>{if(!Px.length){var n=null;if(D){var F=256,f=Buffer.alloc(F),d=0,p=process.stdin.fd;try{d=T.readSync(p,f,0,F)}catch(_){if(_.toString().includes("EOF"))d=0;else throw _}d>0&&(n=f.slice(0,d).toString("utf-8"))}else globalThis.window?.prompt&&(n=window.prompt("Input: "),n!==null&&(n+=`
|
|
1162
|
-
`));if(!n)return null;Px=NA(n,!0)}return Px.shift()},W0={ttys:[],init(){},shutdown(){},register(n,F){W0.ttys[n]={input:[],output:[],ops:F},a.registerDevice(n,W0.stream_ops)},stream_ops:{open(n){var F=W0.ttys[n.node.rdev];if(!F)throw new a.ErrnoError(43);n.tty=F,n.seekable=!1},close(n){n.tty.ops.fsync(n.tty)},fsync(n){n.tty.ops.fsync(n.tty)},read(n,F,f,d,p){if(!n.tty||!n.tty.ops.get_char)throw new a.ErrnoError(60);for(var _=0,M=0;M<d;M++){var z;try{z=n.tty.ops.get_char(n.tty)}catch{throw new a.ErrnoError(29)}if(z===void 0&&_===0)throw new a.ErrnoError(6);if(z==null)break;_++,F[f+M]=z}return _&&(n.node.atime=Date.now()),_},write(n,F,f,d,p){if(!n.tty||!n.tty.ops.put_char)throw new a.ErrnoError(60);try{for(var _=0;_<d;_++)n.tty.ops.put_char(n.tty,F[f+_])}catch{throw new a.ErrnoError(29)}return d&&(n.node.mtime=n.node.ctime=Date.now()),_}},default_tty_ops:{get_char(n){return Ce()},put_char(n,F){F===null||F===10?(I(AA(n.output)),n.output=[]):F!=0&&n.output.push(F)},fsync(n){n.output?.length>0&&(I(AA(n.output)),n.output=[])},ioctl_tcgets(n){return{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(n,F,f){return 0},ioctl_tiocgwinsz(n){return[24,80]}},default_tty1_ops:{put_char(n,F){F===null||F===10?(L(AA(n.output)),n.output=[]):F!=0&&n.output.push(F)},fsync(n){n.output?.length>0&&(L(AA(n.output)),n.output=[])}}},uA=n=>{_0()},t0={ops_table:null,mount(n){return t0.createNode(null,"/",16895,0)},createNode(n,F,f,d){if(a.isBlkdev(f)||a.isFIFO(f))throw new a.ErrnoError(63);t0.ops_table||(t0.ops_table={dir:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr,lookup:t0.node_ops.lookup,mknod:t0.node_ops.mknod,rename:t0.node_ops.rename,unlink:t0.node_ops.unlink,rmdir:t0.node_ops.rmdir,readdir:t0.node_ops.readdir,symlink:t0.node_ops.symlink},stream:{llseek:t0.stream_ops.llseek}},file:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr},stream:{llseek:t0.stream_ops.llseek,read:t0.stream_ops.read,write:t0.stream_ops.write,mmap:t0.stream_ops.mmap,msync:t0.stream_ops.msync}},link:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr,readlink:t0.node_ops.readlink},stream:{}},chrdev:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr},stream:a.chrdev_stream_ops}});var p=a.createNode(n,F,f,d);return a.isDir(p.mode)?(p.node_ops=t0.ops_table.dir.node,p.stream_ops=t0.ops_table.dir.stream,p.contents={}):a.isFile(p.mode)?(p.node_ops=t0.ops_table.file.node,p.stream_ops=t0.ops_table.file.stream,p.usedBytes=0,p.contents=t0.emptyFileContents??(t0.emptyFileContents=new Uint8Array(0))):a.isLink(p.mode)?(p.node_ops=t0.ops_table.link.node,p.stream_ops=t0.ops_table.link.stream):a.isChrdev(p.mode)&&(p.node_ops=t0.ops_table.chrdev.node,p.stream_ops=t0.ops_table.chrdev.stream),p.atime=p.mtime=p.ctime=Date.now(),n&&(n.contents[F]=p,n.atime=n.mtime=n.ctime=p.atime),p},getFileDataAsTypedArray(n){return n.contents.subarray(0,n.usedBytes)},expandFileStorage(n,F){var f=n.contents.length;if(!(f>=F)){var d=1024*1024;F=Math.max(F,f*(f<d?2:1.125)>>>0),f&&(F=Math.max(F,256));var p=t0.getFileDataAsTypedArray(n);n.contents=new Uint8Array(F),n.contents.set(p)}},resizeFileStorage(n,F){if(n.usedBytes!=F){var f=n.contents;n.contents=new Uint8Array(F),n.contents.set(f.subarray(0,Math.min(F,n.usedBytes))),n.usedBytes=F}},node_ops:{getattr(n){var F={};return F.dev=a.isChrdev(n.mode)?n.id:1,F.ino=n.id,F.mode=n.mode,F.nlink=1,F.uid=0,F.gid=0,F.rdev=n.rdev,a.isDir(n.mode)?F.size=4096:a.isFile(n.mode)?F.size=n.usedBytes:a.isLink(n.mode)?F.size=n.link.length:F.size=0,F.atime=new Date(n.atime),F.mtime=new Date(n.mtime),F.ctime=new Date(n.ctime),F.blksize=4096,F.blocks=Math.ceil(F.size/F.blksize),F},setattr(n,F){for(let f of["mode","atime","mtime","ctime"])F[f]!=null&&(n[f]=F[f]);F.size!==void 0&&t0.resizeFileStorage(n,F.size)},lookup(n,F){throw t0.doesNotExistError||(t0.doesNotExistError=new a.ErrnoError(44),t0.doesNotExistError.stack="<generic error, no stack>"),t0.doesNotExistError},mknod(n,F,f,d){return t0.createNode(n,F,f,d)},rename(n,F,f){var d;try{d=a.lookupNode(F,f)}catch{}if(d){if(a.isDir(n.mode))for(var p in d.contents)throw new a.ErrnoError(55);a.hashRemoveNode(d)}delete n.parent.contents[n.name],F.contents[f]=n,n.name=f,F.ctime=F.mtime=n.parent.ctime=n.parent.mtime=Date.now()},unlink(n,F){delete n.contents[F],n.ctime=n.mtime=Date.now()},rmdir(n,F){var f=a.lookupNode(n,F);for(var d in f.contents)throw new a.ErrnoError(55);delete n.contents[F],n.ctime=n.mtime=Date.now()},readdir(n){return[".","..",...Object.keys(n.contents)]},symlink(n,F,f){var d=t0.createNode(n,F,41471,0);return d.link=f,d},readlink(n){if(!a.isLink(n.mode))throw new a.ErrnoError(28);return n.link}},stream_ops:{read(n,F,f,d,p){var _=n.node.contents;if(p>=n.node.usedBytes)return 0;var M=Math.min(n.node.usedBytes-p,d);return F.set(_.subarray(p,p+M),f),M},write(n,F,f,d,p,_){if(F.buffer===Ax.buffer&&(_=!1),!d)return 0;var M=n.node;return M.mtime=M.ctime=Date.now(),_?(M.contents=F.subarray(f,f+d),M.usedBytes=d):M.usedBytes===0&&p===0?(M.contents=F.slice(f,f+d),M.usedBytes=d):(t0.expandFileStorage(M,p+d),M.contents.set(F.subarray(f,f+d),p),M.usedBytes=Math.max(M.usedBytes,p+d)),d},llseek(n,F,f){var d=F;if(f===1?d+=n.position:f===2&&a.isFile(n.node.mode)&&(d+=n.node.usedBytes),d<0)throw new a.ErrnoError(28);return d},mmap(n,F,f,d,p){if(!a.isFile(n.node.mode))throw new a.ErrnoError(43);var _,M,z=n.node.contents;if(!(p&2)&&z.buffer===Ax.buffer)M=!1,_=z.byteOffset;else{if(M=!0,_=uA(F),!_)throw new a.ErrnoError(48);z&&((f>0||f+F<z.length)&&(z.subarray?z=z.subarray(f,f+F):z=Array.prototype.slice.call(z,f,f+F)),Ax.set(z,_))}return{ptr:_,allocated:M}},msync(n,F,f,d,p){return t0.stream_ops.write(n,F,0,d,f,!1),0}}},bA=n=>{if(typeof n!="string")return n;var F={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},f=F[n];if(typeof f>"u")throw new Error(`Unknown file open mode: ${n}`);return f},Mx=n=>(typeof n=="string"&&(n=NA(n,!0)),n.subarray||(n=new Uint8Array(n)),n),Jx=(n,F)=>{var f=0;return n&&(f|=365),F&&(f|=146),f},S0={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},g0={mount(n){return g0.createNode(null,"/",n.opts.fs.lstat(n.opts.root).mode,0)},createNode(n,F,f,d){if(!a.isDir(f)&&!a.isFile(f)&&!a.isLink(f))throw new a.ErrnoError(S0.EINVAL);var p=a.createNode(n,F,f);return p.node_ops=g0.node_ops,p.stream_ops=g0.stream_ops,p},realPath(n){for(var F=[];n.parent!==n;)F.push(n.name),n=n.parent;return F.push(n.mount.opts.root),F.reverse(),E0.join(...F)},node_ops:{getattr(n){var F=g0.realPath(n),f;try{f=n.mount.opts.fs.lstat(F)}catch(d){throw d.code?new a.ErrnoError(S0[d.code]):d}return{dev:f.dev,ino:f.ino,mode:f.mode,nlink:f.nlink,uid:f.uid,gid:f.gid,rdev:f.rdev,size:f.size,atime:f.atime,mtime:f.mtime,ctime:f.ctime,blksize:f.blksize,blocks:f.blocks}},setattr(n,F){var f=g0.realPath(n);try{if(F.mode!==void 0&&(n.mount.opts.fs.chmod(f,F.mode),n.mode=F.mode),F.atime||F.mtime){var d=new Date(F.atime||F.mtime),p=new Date(F.mtime||F.atime);n.mount.opts.fs.utime(f,d,p)}F.size!==void 0&&n.mount.opts.fs.truncate(f,F.size)}catch(_){throw _.code?new a.ErrnoError(S0[_.code]):_}},lookup(n,F){try{var f=E0.join2(g0.realPath(n),F),d=n.mount.opts.fs.lstat(f).mode,p=g0.createNode(n,F,d);return p}catch(_){throw _.code?new a.ErrnoError(S0[_.code]):_}},mknod(n,F,f,d){var p=g0.createNode(n,F,f,d),_=g0.realPath(p);try{a.isDir(p.mode)?p.mount.opts.fs.mkdir(_,p.mode):p.mount.opts.fs.writeFile(_,"",{mode:p.mode})}catch(M){throw M.code?new a.ErrnoError(S0[M.code]):M}return p},rename(n,F,f){var d=g0.realPath(n),p=E0.join2(g0.realPath(F),f);try{n.mount.opts.fs.rename(d,p),n.name=f}catch(_){throw _.code?new a.ErrnoError(S0[_.code]):_}},unlink(n,F){var f=E0.join2(g0.realPath(n),F);try{n.mount.opts.fs.unlink(f)}catch(d){throw d.code?new a.ErrnoError(S0[d.code]):d}},rmdir(n,F){var f=E0.join2(g0.realPath(n),F);try{n.mount.opts.fs.rmdir(f)}catch(d){throw d.code?new a.ErrnoError(S0[d.code]):d}},readdir(n){var F=g0.realPath(n);try{return n.mount.opts.fs.readdir(F)}catch(f){throw f.code?new a.ErrnoError(S0[f.code]):f}},symlink(n,F,f){var d=E0.join2(g0.realPath(n),F);try{n.mount.opts.fs.symlink(f,d)}catch(p){throw p.code?new a.ErrnoError(S0[p.code]):p}},readlink(n){var F=g0.realPath(n);try{return n.mount.opts.fs.readlink(F)}catch(f){throw f.code?new a.ErrnoError(S0[f.code]):f}}},stream_ops:{open(n){var F=g0.realPath(n.node);try{n.nfd=n.node.mount.opts.fs.open(F,n.flags)}catch(f){throw f.code?new a.ErrnoError(S0[f.code]):f}},close(n){try{n.node.mount.opts.fs.close(n.nfd)}catch(F){throw F.code?new a.ErrnoError(S0[F.code]):F}},read(n,F,f,d,p){try{return n.node.mount.opts.fs.read(n.nfd,F,f,d,p)}catch(_){throw _.code?new a.ErrnoError(S0[_.code]):_}},write(n,F,f,d,p){try{return n.node.mount.opts.fs.write(n.nfd,F,f,d,p)}catch(_){throw _.code?new a.ErrnoError(S0[_.code]):_}},llseek(n,F,f){var d=F;if(f===1)d+=n.position;else if(f===2&&a.isFile(n.node.mode))try{var p=n.node.node_ops.getattr(n.node);d+=p.size}catch(_){throw new a.ErrnoError(S0[_.code])}if(d<0)throw new a.ErrnoError(S0.EINVAL);return d}}},rA=async n=>{var F=await y(n);return new Uint8Array(F)},cr=(...n)=>a.createDataFile(...n),ax=n=>n,tx=0,b0=null,Dr=n=>{if(tx--,t.monitorRunDependencies?.(tx),tx==0&&b0){var F=b0;b0=null,F()}},hx=n=>{tx++,t.monitorRunDependencies?.(tx)},Ar=[],eA=async(n,F)=>{typeof Browser<"u"&&Browser.init();for(var f of Ar)if(f.canHandle(F))return f.handle(n,F);return n},pA=async(n,F,f,d,p,_,M,z)=>{var o0=F?sx.resolve(E0.join2(n,F)):n,k0=ax(`cp ${o0}`);hx(k0);try{var z0=f;typeof f=="string"&&(z0=await rA(f)),z0=await eA(z0,o0),z?.(),_||cr(n,F,z0,d,p,M)}finally{Dr(k0)}},le=(n,F,f,d,p,_,M,z,o0,k0)=>{pA(n,F,f,d,p,z,o0,k0).then(_).catch(M)},a={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,ErrnoError:class{constructor(n){Fx(this,"name","ErrnoError"),this.errno=n}},FSStream:class{constructor(){Fx(this,"shared",{})}get object(){return this.node}set object(n){this.node=n}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(n){this.shared.flags=n}get position(){return this.shared.position}set position(n){this.shared.position=n}},FSNode:class{constructor(n,F,f,d){Fx(this,"node_ops",{}),Fx(this,"stream_ops",{}),Fx(this,"readMode",365),Fx(this,"writeMode",146),Fx(this,"mounted",null),n||(n=this),this.parent=n,this.mount=n.mount,this.id=a.nextInode++,this.name=F,this.mode=f,this.rdev=d,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(n){n?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(n){n?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return a.isDir(this.mode)}get isDevice(){return a.isChrdev(this.mode)}},lookupPath(n,F={}){if(!n)throw new a.ErrnoError(44);F.follow_mount??(F.follow_mount=!0),E0.isAbs(n)||(n=a.cwd()+"/"+n);x:for(var f=0;f<40;f++){for(var d=n.split("/").filter(k0=>!!k0),p=a.root,_="/",M=0;M<d.length;M++){var z=M===d.length-1;if(z&&F.parent)break;if(d[M]!=="."){if(d[M]===".."){if(_=E0.dirname(_),a.isRoot(p)){n=_+"/"+d.slice(M+1).join("/"),f--;continue x}else p=p.parent;continue}_=E0.join2(_,d[M]);try{p=a.lookupNode(p,d[M])}catch(k0){if(k0?.errno===44&&z&&F.noent_okay)return{path:_};throw k0}if(a.isMountpoint(p)&&(!z||F.follow_mount)&&(p=p.mounted.root),a.isLink(p.mode)&&(!z||F.follow)){if(!p.node_ops.readlink)throw new a.ErrnoError(52);var o0=p.node_ops.readlink(p);E0.isAbs(o0)||(o0=E0.dirname(_)+"/"+o0),n=o0+"/"+d.slice(M+1).join("/");continue x}}}return{path:_,node:p}}throw new a.ErrnoError(32)},getPath(n){for(var F;;){if(a.isRoot(n)){var f=n.mount.mountpoint;return F?f[f.length-1]!=="/"?`${f}/${F}`:f+F:f}F=F?`${n.name}/${F}`:n.name,n=n.parent}},hashName(n,F){for(var f=0,d=0;d<F.length;d++)f=(f<<5)-f+F.charCodeAt(d)|0;return(n+f>>>0)%a.nameTable.length},hashAddNode(n){var F=a.hashName(n.parent.id,n.name);n.name_next=a.nameTable[F],a.nameTable[F]=n},hashRemoveNode(n){var F=a.hashName(n.parent.id,n.name);if(a.nameTable[F]===n)a.nameTable[F]=n.name_next;else for(var f=a.nameTable[F];f;){if(f.name_next===n){f.name_next=n.name_next;break}f=f.name_next}},lookupNode(n,F){var f=a.mayLookup(n);if(f)throw new a.ErrnoError(f);for(var d=a.hashName(n.id,F),p=a.nameTable[d];p;p=p.name_next){var _=p.name;if(p.parent.id===n.id&&_===F)return p}return a.lookup(n,F)},createNode(n,F,f,d){var p=new a.FSNode(n,F,f,d);return a.hashAddNode(p),p},destroyNode(n){a.hashRemoveNode(n)},isRoot(n){return n===n.parent},isMountpoint(n){return!!n.mounted},isFile(n){return(n&61440)===32768},isDir(n){return(n&61440)===16384},isLink(n){return(n&61440)===40960},isChrdev(n){return(n&61440)===8192},isBlkdev(n){return(n&61440)===24576},isFIFO(n){return(n&61440)===4096},isSocket(n){return(n&49152)===49152},flagsToPermissionString(n){var F=["r","w","rw"][n&3];return n&512&&(F+="w"),F},nodePermissions(n,F){return a.ignorePermissions?0:F.includes("r")&&!(n.mode&292)||F.includes("w")&&!(n.mode&146)||F.includes("x")&&!(n.mode&73)?2:0},mayLookup(n){if(!a.isDir(n.mode))return 54;var F=a.nodePermissions(n,"x");return F||(n.node_ops.lookup?0:2)},mayCreate(n,F){if(!a.isDir(n.mode))return 54;try{var f=a.lookupNode(n,F);return 20}catch{}return a.nodePermissions(n,"wx")},mayDelete(n,F,f){var d;try{d=a.lookupNode(n,F)}catch(_){return _.errno}var p=a.nodePermissions(n,"wx");if(p)return p;if(f){if(!a.isDir(d.mode))return 54;if(a.isRoot(d)||a.getPath(d)===a.cwd())return 10}else if(a.isDir(d.mode))return 31;return 0},mayOpen(n,F){if(!n)return 44;if(a.isLink(n.mode))return 32;var f=a.flagsToPermissionString(F);return a.isDir(n.mode)&&(f!=="r"||F&576)?31:a.nodePermissions(n,f)},checkOpExists(n,F){if(!n)throw new a.ErrnoError(F);return n},MAX_OPEN_FDS:4096,nextfd(){for(var n=0;n<=a.MAX_OPEN_FDS;n++)if(!a.streams[n])return n;throw new a.ErrnoError(33)},getStreamChecked(n){var F=a.getStream(n);if(!F)throw new a.ErrnoError(8);return F},getStream:n=>a.streams[n],createStream(n,F=-1){return n=Object.assign(new a.FSStream,n),F==-1&&(F=a.nextfd()),n.fd=F,a.streams[F]=n,n},closeStream(n){a.streams[n]=null},dupStream(n,F=-1){var f=a.createStream(n,F);return f.stream_ops?.dup?.(f),f},doSetAttr(n,F,f){var d=n?.stream_ops.setattr,p=d?n:F;d??(d=F.node_ops.setattr),a.checkOpExists(d,63);try{d(p,f)}catch(_){throw _ instanceof RangeError?new a.ErrnoError(22):_}},chrdev_stream_ops:{open(n){var F=a.getDevice(n.node.rdev);n.stream_ops=F.stream_ops,n.stream_ops.open?.(n)},llseek(){throw new a.ErrnoError(70)}},major:n=>n>>8,minor:n=>n&255,makedev:(n,F)=>n<<8|F,registerDevice(n,F){a.devices[n]={stream_ops:F}},getDevice:n=>a.devices[n],getMounts(n){for(var F=[],f=[n];f.length;){var d=f.pop();F.push(d),f.push(...d.mounts)}return F},syncfs(n,F){typeof n=="function"&&(F=n,n=!1),a.syncFSRequests++,a.syncFSRequests>1&&L(`warning: ${a.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var f=a.getMounts(a.root.mount),d=0;function p(z){return a.syncFSRequests--,F(z)}function _(z){if(z)return _.errored?void 0:(_.errored=!0,p(z));++d>=f.length&&p(null)}for(var M of f)M.type.syncfs?M.type.syncfs(M,n,_):_(null)},mount(n,F,f){var d=f==="/",p=!f,_;if(d&&a.root)throw new a.ErrnoError(10);if(!d&&!p){var M=a.lookupPath(f,{follow_mount:!1});if(f=M.path,_=M.node,a.isMountpoint(_))throw new a.ErrnoError(10);if(!a.isDir(_.mode))throw new a.ErrnoError(54)}var z={type:n,opts:F,mountpoint:f,mounts:[]},o0=n.mount(z);return o0.mount=z,z.root=o0,d?a.root=o0:_&&(_.mounted=z,_.mount&&_.mount.mounts.push(z)),o0},unmount(n){var F=a.lookupPath(n,{follow_mount:!1});if(!a.isMountpoint(F.node))throw new a.ErrnoError(28);var f=F.node,d=f.mounted,p=a.getMounts(d);for(var[_,M]of Object.entries(a.nameTable))for(;M;){var z=M.name_next;p.includes(M.mount)&&a.destroyNode(M),M=z}f.mounted=null;var o0=f.mount.mounts.indexOf(d);f.mount.mounts.splice(o0,1)},lookup(n,F){return n.node_ops.lookup(n,F)},mknod(n,F,f){var d=a.lookupPath(n,{parent:!0}),p=d.node,_=E0.basename(n);if(!_)throw new a.ErrnoError(28);if(_==="."||_==="..")throw new a.ErrnoError(20);var M=a.mayCreate(p,_);if(M)throw new a.ErrnoError(M);if(!p.node_ops.mknod)throw new a.ErrnoError(63);return p.node_ops.mknod(p,_,F,f)},statfs(n){return a.statfsNode(a.lookupPath(n,{follow:!0}).node)},statfsStream(n){return a.statfsNode(n.node)},statfsNode(n){var F={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:a.nextInode,ffree:a.nextInode-1,fsid:42,flags:2,namelen:255};return n.node_ops.statfs&&Object.assign(F,n.node_ops.statfs(n.mount.opts.root)),F},create(n,F=438){return F&=4095,F|=32768,a.mknod(n,F,0)},mkdir(n,F=511){return F&=1023,F|=16384,a.mknod(n,F,0)},mkdirTree(n,F){var f=n.split("/"),d="";for(var p of f)if(p){(d||E0.isAbs(n))&&(d+="/"),d+=p;try{a.mkdir(d,F)}catch(_){if(_.errno!=20)throw _}}},mkdev(n,F,f){return typeof f>"u"&&(f=F,F=438),F|=8192,a.mknod(n,F,f)},symlink(n,F){if(!sx.resolve(n))throw new a.ErrnoError(44);var f=a.lookupPath(F,{parent:!0}),d=f.node;if(!d)throw new a.ErrnoError(44);var p=E0.basename(F),_=a.mayCreate(d,p);if(_)throw new a.ErrnoError(_);if(!d.node_ops.symlink)throw new a.ErrnoError(63);return d.node_ops.symlink(d,p,n)},rename(n,F){var f=E0.dirname(n),d=E0.dirname(F),p=E0.basename(n),_=E0.basename(F),M,z,o0;if(M=a.lookupPath(n,{parent:!0}),z=M.node,M=a.lookupPath(F,{parent:!0}),o0=M.node,!z||!o0)throw new a.ErrnoError(44);if(z.mount!==o0.mount)throw new a.ErrnoError(75);var k0=a.lookupNode(z,p),z0=sx.relative(n,d);if(z0.charAt(0)!==".")throw new a.ErrnoError(28);if(z0=sx.relative(F,f),z0.charAt(0)!==".")throw new a.ErrnoError(55);var I0;try{I0=a.lookupNode(o0,_)}catch{}if(k0!==I0){var P0=a.isDir(k0.mode),j0=a.mayDelete(z,p,P0);if(j0)throw new a.ErrnoError(j0);if(j0=I0?a.mayDelete(o0,_,P0):a.mayCreate(o0,_),j0)throw new a.ErrnoError(j0);if(!z.node_ops.rename)throw new a.ErrnoError(63);if(a.isMountpoint(k0)||I0&&a.isMountpoint(I0))throw new a.ErrnoError(10);if(o0!==z&&(j0=a.nodePermissions(z,"w"),j0))throw new a.ErrnoError(j0);a.hashRemoveNode(k0);try{z.node_ops.rename(k0,o0,_),k0.parent=o0}catch(nx){throw nx}finally{a.hashAddNode(k0)}}},rmdir(n){var F=a.lookupPath(n,{parent:!0}),f=F.node,d=E0.basename(n),p=a.lookupNode(f,d),_=a.mayDelete(f,d,!0);if(_)throw new a.ErrnoError(_);if(!f.node_ops.rmdir)throw new a.ErrnoError(63);if(a.isMountpoint(p))throw new a.ErrnoError(10);f.node_ops.rmdir(f,d),a.destroyNode(p)},readdir(n){var F=a.lookupPath(n,{follow:!0}),f=F.node,d=a.checkOpExists(f.node_ops.readdir,54);return d(f)},unlink(n){var F=a.lookupPath(n,{parent:!0}),f=F.node;if(!f)throw new a.ErrnoError(44);var d=E0.basename(n),p=a.lookupNode(f,d),_=a.mayDelete(f,d,!1);if(_)throw new a.ErrnoError(_);if(!f.node_ops.unlink)throw new a.ErrnoError(63);if(a.isMountpoint(p))throw new a.ErrnoError(10);f.node_ops.unlink(f,d),a.destroyNode(p)},readlink(n){var F=a.lookupPath(n),f=F.node;if(!f)throw new a.ErrnoError(44);if(!f.node_ops.readlink)throw new a.ErrnoError(28);return f.node_ops.readlink(f)},stat(n,F){var f=a.lookupPath(n,{follow:!F}),d=f.node,p=a.checkOpExists(d.node_ops.getattr,63);return p(d)},fstat(n){var F=a.getStreamChecked(n),f=F.node,d=F.stream_ops.getattr,p=d?F:f;return d??(d=f.node_ops.getattr),a.checkOpExists(d,63),d(p)},lstat(n){return a.stat(n,!0)},doChmod(n,F,f,d){a.doSetAttr(n,F,{mode:f&4095|F.mode&-4096,ctime:Date.now(),dontFollow:d})},chmod(n,F,f){var d;if(typeof n=="string"){var p=a.lookupPath(n,{follow:!f});d=p.node}else d=n;a.doChmod(null,d,F,f)},lchmod(n,F){a.chmod(n,F,!0)},fchmod(n,F){var f=a.getStreamChecked(n);a.doChmod(f,f.node,F,!1)},doChown(n,F,f){a.doSetAttr(n,F,{timestamp:Date.now(),dontFollow:f})},chown(n,F,f,d){var p;if(typeof n=="string"){var _=a.lookupPath(n,{follow:!d});p=_.node}else p=n;a.doChown(null,p,d)},lchown(n,F,f){a.chown(n,F,f,!0)},fchown(n,F,f){var d=a.getStreamChecked(n);a.doChown(d,d.node,!1)},doTruncate(n,F,f){if(a.isDir(F.mode))throw new a.ErrnoError(31);if(!a.isFile(F.mode))throw new a.ErrnoError(28);var d=a.nodePermissions(F,"w");if(d)throw new a.ErrnoError(d);a.doSetAttr(n,F,{size:f,timestamp:Date.now()})},truncate(n,F){if(F<0)throw new a.ErrnoError(28);var f;if(typeof n=="string"){var d=a.lookupPath(n,{follow:!0});f=d.node}else f=n;a.doTruncate(null,f,F)},ftruncate(n,F){var f=a.getStreamChecked(n);if(F<0||(f.flags&2097155)===0)throw new a.ErrnoError(28);a.doTruncate(f,f.node,F)},utime(n,F,f){var d=a.lookupPath(n,{follow:!0}),p=d.node,_=a.checkOpExists(p.node_ops.setattr,63);_(p,{atime:F,mtime:f})},open(n,F,f=438){if(n==="")throw new a.ErrnoError(44);F=bA(F),F&64?f=f&4095|32768:f=0;var d,p;if(typeof n=="object")d=n;else{p=n.endsWith("/");var _=a.lookupPath(n,{follow:!(F&131072),noent_okay:!0});d=_.node,n=_.path}var M=!1;if(F&64)if(d){if(F&128)throw new a.ErrnoError(20)}else{if(p)throw new a.ErrnoError(31);d=a.mknod(n,f|511,0),M=!0}if(!d)throw new a.ErrnoError(44);if(a.isChrdev(d.mode)&&(F&=-513),F&65536&&!a.isDir(d.mode))throw new a.ErrnoError(54);if(!M){var z=a.mayOpen(d,F);if(z)throw new a.ErrnoError(z)}F&512&&!M&&a.truncate(d,0),F&=-131713;var o0=a.createStream({node:d,path:a.getPath(d),flags:F,seekable:!0,position:0,stream_ops:d.stream_ops,ungotten:[],error:!1});return o0.stream_ops.open&&o0.stream_ops.open(o0),M&&a.chmod(d,f&511),o0},close(n){if(a.isClosed(n))throw new a.ErrnoError(8);n.getdents&&(n.getdents=null);try{n.stream_ops.close&&n.stream_ops.close(n)}catch(F){throw F}finally{a.closeStream(n.fd)}n.fd=null},isClosed(n){return n.fd===null},llseek(n,F,f){if(a.isClosed(n))throw new a.ErrnoError(8);if(!n.seekable||!n.stream_ops.llseek)throw new a.ErrnoError(70);if(f!=0&&f!=1&&f!=2)throw new a.ErrnoError(28);return n.position=n.stream_ops.llseek(n,F,f),n.ungotten=[],n.position},read(n,F,f,d,p){if(d<0||p<0)throw new a.ErrnoError(28);if(a.isClosed(n))throw new a.ErrnoError(8);if((n.flags&2097155)===1)throw new a.ErrnoError(8);if(a.isDir(n.node.mode))throw new a.ErrnoError(31);if(!n.stream_ops.read)throw new a.ErrnoError(28);var _=typeof p<"u";if(!_)p=n.position;else if(!n.seekable)throw new a.ErrnoError(70);var M=n.stream_ops.read(n,F,f,d,p);return _||(n.position+=M),M},write(n,F,f,d,p,_){if(d<0||p<0)throw new a.ErrnoError(28);if(a.isClosed(n))throw new a.ErrnoError(8);if((n.flags&2097155)===0)throw new a.ErrnoError(8);if(a.isDir(n.node.mode))throw new a.ErrnoError(31);if(!n.stream_ops.write)throw new a.ErrnoError(28);n.seekable&&n.flags&1024&&a.llseek(n,0,2);var M=typeof p<"u";if(!M)p=n.position;else if(!n.seekable)throw new a.ErrnoError(70);var z=n.stream_ops.write(n,F,f,d,p,_);return M||(n.position+=z),z},mmap(n,F,f,d,p){if((d&2)!==0&&(p&2)===0&&(n.flags&2097155)!==2)throw new a.ErrnoError(2);if((n.flags&2097155)===1)throw new a.ErrnoError(2);if(!n.stream_ops.mmap)throw new a.ErrnoError(43);if(!F)throw new a.ErrnoError(28);return n.stream_ops.mmap(n,F,f,d,p)},msync(n,F,f,d,p){return n.stream_ops.msync?n.stream_ops.msync(n,F,f,d,p):0},ioctl(n,F,f){if(!n.stream_ops.ioctl)throw new a.ErrnoError(59);return n.stream_ops.ioctl(n,F,f)},readFile(n,F={}){F.flags=F.flags||0,F.encoding=F.encoding||"binary",F.encoding!=="utf8"&&F.encoding!=="binary"&&_0(`Invalid encoding type "${F.encoding}"`);var f=a.open(n,F.flags),d=a.stat(n),p=d.size,_=new Uint8Array(p);return a.read(f,_,0,p,0),F.encoding==="utf8"&&(_=AA(_)),a.close(f),_},writeFile(n,F,f={}){f.flags=f.flags||577;var d=a.open(n,f.flags,f.mode);F=Mx(F),a.write(d,F,0,F.byteLength,void 0,f.canOwn),a.close(d)},cwd:()=>a.currentPath,chdir(n){var F=a.lookupPath(n,{follow:!0});if(F.node===null)throw new a.ErrnoError(44);if(!a.isDir(F.node.mode))throw new a.ErrnoError(54);var f=a.nodePermissions(F.node,"x");if(f)throw new a.ErrnoError(f);a.currentPath=F.path},createDefaultDirectories(){a.mkdir("/tmp"),a.mkdir("/home"),a.mkdir("/home/web_user")},createDefaultDevices(){a.mkdir("/dev"),a.registerDevice(a.makedev(1,3),{read:()=>0,write:(d,p,_,M,z)=>M,llseek:()=>0}),a.mkdev("/dev/null",a.makedev(1,3)),W0.register(a.makedev(5,0),W0.default_tty_ops),W0.register(a.makedev(6,0),W0.default_tty1_ops),a.mkdev("/dev/tty",a.makedev(5,0)),a.mkdev("/dev/tty1",a.makedev(6,0));var n=new Uint8Array(1024),F=0,f=()=>(F===0&&(Cr(n),F=n.byteLength),n[--F]);a.createDevice("/dev","random",f),a.createDevice("/dev","urandom",f),a.mkdir("/dev/shm"),a.mkdir("/dev/shm/tmp")},createSpecialDirectories(){a.mkdir("/proc");var n=a.mkdir("/proc/self");a.mkdir("/proc/self/fd"),a.mount({mount(){var F=a.createNode(n,"fd",16895,73);return F.stream_ops={llseek:t0.stream_ops.llseek},F.node_ops={lookup(f,d){var p=+d,_=a.getStreamChecked(p),M={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>_.path},id:p+1};return M.parent=M,M},readdir(){return Array.from(a.streams.entries()).filter(([f,d])=>d).map(([f,d])=>f.toString())}},F}},{},"/proc/self/fd")},createStandardStreams(n,F,f){n?a.createDevice("/dev","stdin",n):a.symlink("/dev/tty","/dev/stdin"),F?a.createDevice("/dev","stdout",null,F):a.symlink("/dev/tty","/dev/stdout"),f?a.createDevice("/dev","stderr",null,f):a.symlink("/dev/tty1","/dev/stderr");var d=a.open("/dev/stdin",0),p=a.open("/dev/stdout",1),_=a.open("/dev/stderr",1)},staticInit(){a.nameTable=new Array(4096),a.mount(t0,{},"/"),a.createDefaultDirectories(),a.createDefaultDevices(),a.createSpecialDirectories(),a.filesystems={MEMFS:t0,PROXYFS:g0}},init(n,F,f){a.initialized=!0,n??(n=t.stdin),F??(F=t.stdout),f??(f=t.stderr),a.createStandardStreams(n,F,f)},quit(){a.initialized=!1,u(0);for(var n of a.streams)n&&a.close(n)},findObject(n,F){var f=a.analyzePath(n,F);return f.exists?f.object:null},analyzePath(n,F){try{var f=a.lookupPath(n,{follow:!F});n=f.path}catch{}var d={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var f=a.lookupPath(n,{parent:!0});d.parentExists=!0,d.parentPath=f.path,d.parentObject=f.node,d.name=E0.basename(n),f=a.lookupPath(n,{follow:!F}),d.exists=!0,d.path=f.path,d.object=f.node,d.name=f.node.name,d.isRoot=f.path==="/"}catch(p){d.error=p.errno}return d},createPath(n,F,f,d){n=typeof n=="string"?n:a.getPath(n);for(var p=F.split("/").reverse();p.length;){var _=p.pop();if(_){var M=E0.join2(n,_);try{a.mkdir(M)}catch(z){if(z.errno!=20)throw z}n=M}}return M},createFile(n,F,f,d,p){var _=E0.join2(typeof n=="string"?n:a.getPath(n),F),M=Jx(d,p);return a.create(_,M)},createDataFile(n,F,f,d,p,_){var M=F;n&&(n=typeof n=="string"?n:a.getPath(n),M=F?E0.join2(n,F):n);var z=Jx(d,p),o0=a.create(M,z);if(f){f=Mx(f),a.chmod(o0,z|146);var k0=a.open(o0,577);a.write(k0,f,0,f.length,0,_),a.close(k0),a.chmod(o0,z)}},createDevice(n,F,f,d){var p,_=E0.join2(typeof n=="string"?n:a.getPath(n),F),M=Jx(!!f,!!d);(p=a.createDevice).major??(p.major=64);var z=a.makedev(a.createDevice.major++,0);return a.registerDevice(z,{open(o0){o0.seekable=!1},close(o0){d?.buffer?.length&&d(10)},read(o0,k0,z0,I0,P0){for(var j0=0,nx=0;nx<I0;nx++){var bx;try{bx=f()}catch{throw new a.ErrnoError(29)}if(bx===void 0&&j0===0)throw new a.ErrnoError(6);if(bx==null)break;j0++,k0[z0+nx]=bx}return j0&&(o0.node.atime=Date.now()),j0},write(o0,k0,z0,I0,P0){for(var j0=0;j0<I0;j0++)try{d(k0[z0+j0])}catch{throw new a.ErrnoError(29)}return I0&&(o0.node.mtime=o0.node.ctime=Date.now()),j0}}),a.mkdev(_,M,z)},forceLoadFile(n){if(n.isDevice||n.isFolder||n.link||n.contents)return!0;if(globalThis.XMLHttpRequest)_0("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{n.contents=S(n.url)}catch{throw new a.ErrnoError(29)}},createLazyFile(n,F,f,d,p){class _{constructor(){Fx(this,"lengthKnown",!1),Fx(this,"chunks",[])}get(P0){if(!(P0>this.length-1||P0<0)){var j0=P0%this.chunkSize,nx=P0/this.chunkSize|0;return this.getter(nx)[j0]}}setDataGetter(P0){this.getter=P0}cacheLength(){var P0=new XMLHttpRequest;P0.open("HEAD",f,!1),P0.send(null),P0.status>=200&&P0.status<300||P0.status===304||_0("Couldn't load "+f+". Status: "+P0.status);var j0=Number(P0.getResponseHeader("Content-length")),nx,bx=(nx=P0.getResponseHeader("Accept-Ranges"))&&nx==="bytes",Nx=(nx=P0.getResponseHeader("Content-Encoding"))&&nx==="gzip",Lx=1024*1024;bx||(Lx=j0);var Rx=(Vx,sr)=>{Vx>sr&&_0("invalid range ("+Vx+", "+sr+") or no bytes requested!"),sr>j0-1&&_0("only "+j0+" bytes available! programmer error!");var Cx=new XMLHttpRequest;return Cx.open("GET",f,!1),j0!==Lx&&Cx.setRequestHeader("Range","bytes="+Vx+"-"+sr),Cx.responseType="arraybuffer",Cx.overrideMimeType&&Cx.overrideMimeType("text/plain; charset=x-user-defined"),Cx.send(null),Cx.status>=200&&Cx.status<300||Cx.status===304||_0("Couldn't load "+f+". Status: "+Cx.status),Cx.response!==void 0?new Uint8Array(Cx.response||[]):NA(Cx.responseText||"",!0)},mr=this;mr.setDataGetter(Vx=>{var sr=Vx*Lx,Cx=(Vx+1)*Lx-1;return Cx=Math.min(Cx,j0-1),typeof mr.chunks[Vx]>"u"&&(mr.chunks[Vx]=Rx(sr,Cx)),typeof mr.chunks[Vx]>"u"&&_0("doXHR failed!"),mr.chunks[Vx]}),(Nx||!j0)&&(Lx=j0=1,j0=this.getter(0).length,Lx=j0,I("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=j0,this._chunkSize=Lx,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(globalThis.XMLHttpRequest){l||_0("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var M=new _,z={isDevice:!1,contents:M}}else var z={isDevice:!1,url:f};var o0=a.createFile(n,F,z,d,p);z.contents?o0.contents=z.contents:z.url&&(o0.contents=null,o0.url=z.url),Object.defineProperties(o0,{usedBytes:{get:function(){return this.contents.length}}});var k0={};for(let[I0,P0]of Object.entries(o0.stream_ops))k0[I0]=(...j0)=>(a.forceLoadFile(o0),P0(...j0));function z0(I0,P0,j0,nx,bx){var Nx=I0.node.contents;if(bx>=Nx.length)return 0;var Lx=Math.min(Nx.length-bx,nx);if(Nx.slice)for(var Rx=0;Rx<Lx;Rx++)P0[j0+Rx]=Nx[bx+Rx];else for(var Rx=0;Rx<Lx;Rx++)P0[j0+Rx]=Nx.get(bx+Rx);return Lx}return k0.read=(I0,P0,j0,nx,bx)=>(a.forceLoadFile(o0),z0(I0,P0,j0,nx,bx)),k0.mmap=(I0,P0,j0,nx,bx)=>{a.forceLoadFile(o0);var Nx=uA(P0);if(!Nx)throw new a.ErrnoError(48);return z0(I0,Ax,Nx,P0,j0),{ptr:Nx,allocated:!0}},o0.stream_ops=k0,o0}},y0={currentUmask:18,calculateAt(n,F,f){if(E0.isAbs(F))return F;var d;if(n===-100)d=a.cwd();else{var p=y0.getStreamFromFD(n);d=p.path}if(F.length==0){if(!f)throw new a.ErrnoError(44);return d}return d+"/"+F},writeStat(n,F){F0[n>>2]=F.dev,F0[n+4>>2]=F.mode,F0[n+8>>2]=F.nlink,F0[n+12>>2]=F.uid,F0[n+16>>2]=F.gid,F0[n+20>>2]=F.rdev,G0[n+24>>3]=BigInt(F.size),M0[n+32>>2]=4096,M0[n+36>>2]=F.blocks;var f=F.atime.getTime(),d=F.mtime.getTime(),p=F.ctime.getTime();return G0[n+40>>3]=BigInt(Math.floor(f/1e3)),F0[n+48>>2]=f%1e3*1e3*1e3,G0[n+56>>3]=BigInt(Math.floor(d/1e3)),F0[n+64>>2]=d%1e3*1e3*1e3,G0[n+72>>3]=BigInt(Math.floor(p/1e3)),F0[n+80>>2]=p%1e3*1e3*1e3,G0[n+88>>3]=BigInt(F.ino),0},writeStatFs(n,F){F0[n+4>>2]=F.bsize,F0[n+60>>2]=F.bsize,G0[n+8>>3]=BigInt(F.blocks),G0[n+16>>3]=BigInt(F.bfree),G0[n+24>>3]=BigInt(F.bavail),G0[n+32>>3]=BigInt(F.files),G0[n+40>>3]=BigInt(F.ffree),F0[n+48>>2]=F.fsid,F0[n+64>>2]=F.flags,F0[n+56>>2]=F.namelen},doMsync(n,F,f,d,p){if(!a.isFile(F.node.mode))throw new a.ErrnoError(43);if(d&2)return 0;var _=Hx.slice(n,n+f);a.msync(F,_,p,f,d)},getStreamFromFD(n){var F=a.getStreamChecked(n);return F},varargs:void 0,getStr(n){var F=zx(n);return F}};function dr(n,F,f,d){try{if(F=y0.getStr(F),F=y0.calculateAt(n,F),f&-8)return-28;var p=a.lookupPath(F,{follow:!0}),_=p.node;if(!_)return-44;var M="";return f&4&&(M+="r"),f&2&&(M+="w"),f&1&&(M+="x"),M&&a.nodePermissions(_,M)?-2:0}catch(z){if(typeof a>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}var jA=()=>{var n=M0[+y0.varargs>>2];return y0.varargs+=4,n},tA=jA;function ce(n,F,f){y0.varargs=f;try{var d=y0.getStreamFromFD(n);switch(F){case 0:{var p=jA();if(p<0)return-28;for(;a.streams[p];)p++;var _;return _=a.dupStream(d,p),_.fd}case 1:case 2:return 0;case 3:return d.flags;case 4:{var p=jA(),M=289792;return d.flags=d.flags&~M|p&M,0}case 12:{var p=tA(),z=0;return O0[p+z>>1]=2,0}case 13:case 14:return 0}return-28}catch(o0){if(typeof a>"u"||o0.name!=="ErrnoError")throw o0;return-o0.errno}}var rr=(n,F,f)=>lr(n,Hx,F,f);function Ir(n,F){try{if(F===0)return-28;var f=a.cwd(),d=TA(f)+1;return F<d?-68:(rr(f,n,F),d)}catch(p){if(typeof a>"u"||p.name!=="ErrnoError")throw p;return-p.errno}}function Mr(n,F,f){y0.varargs=f;try{var d=y0.getStreamFromFD(n);switch(F){case 21509:return d.tty?0:-59;case 21505:{if(!d.tty)return-59;if(d.tty.ops.ioctl_tcgets){var p=d.tty.ops.ioctl_tcgets(d),_=tA();M0[_>>2]=p.c_iflag||0,M0[_+4>>2]=p.c_oflag||0,M0[_+8>>2]=p.c_cflag||0,M0[_+12>>2]=p.c_lflag||0;for(var M=0;M<32;M++)Ax[_+M+17]=p.c_cc[M]||0;return 0}return 0}case 21510:case 21511:case 21512:return d.tty?0:-59;case 21506:case 21507:case 21508:{if(!d.tty)return-59;if(d.tty.ops.ioctl_tcsets){for(var _=tA(),z=M0[_>>2],o0=M0[_+4>>2],k0=M0[_+8>>2],z0=M0[_+12>>2],I0=[],M=0;M<32;M++)I0.push(Ax[_+M+17]);return d.tty.ops.ioctl_tcsets(d.tty,F,{c_iflag:z,c_oflag:o0,c_cflag:k0,c_lflag:z0,c_cc:I0})}return 0}case 21519:{if(!d.tty)return-59;var _=tA();return M0[_>>2]=0,0}case 21520:return d.tty?-28:-59;case 21537:case 21531:{var _=tA();return a.ioctl(d,F,_)}case 21523:{if(!d.tty)return-59;if(d.tty.ops.ioctl_tiocgwinsz){var P0=d.tty.ops.ioctl_tiocgwinsz(d.tty),_=tA();O0[_>>1]=P0[0],O0[_+2>>1]=P0[1]}return 0}case 21524:return d.tty?0:-59;case 21515:return d.tty?0:-59;default:return-28}}catch(j0){if(typeof a>"u"||j0.name!=="ErrnoError")throw j0;return-j0.errno}}function De(n,F,f,d){y0.varargs=d;try{F=y0.getStr(F),F=y0.calculateAt(n,F);var p=d?jA():0;return f&64&&(p&=~y0.currentUmask),a.open(F,f,p).fd}catch(_){if(typeof a>"u"||_.name!=="ErrnoError")throw _;return-_.errno}}function de(n,F,f,d){try{if(F=y0.getStr(F),F=y0.calculateAt(n,F),d<=0)return-28;var p=a.readlink(F),_=Math.min(d,TA(p)),M=Ax[f+_];return rr(p,f,d+1),Ax[f+_]=M,_}catch(z){if(typeof a>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}function ue(n,F,f,d){try{return F=y0.getStr(F),d=y0.getStr(d),F=y0.calculateAt(n,F),d=y0.calculateAt(f,d),a.rename(F,d),0}catch(p){if(typeof a>"u"||p.name!=="ErrnoError")throw p;return-p.errno}}function er(n){try{return n=y0.getStr(n),a.rmdir(n),0}catch(F){if(typeof a>"u"||F.name!=="ErrnoError")throw F;return-F.errno}}function Lr(n,F,f){try{if(F=y0.getStr(F),F=y0.calculateAt(n,F),!f)a.unlink(F);else if(f===512)a.rmdir(F);else return-28;return 0}catch(d){if(typeof a>"u"||d.name!=="ErrnoError")throw d;return-d.errno}}var IA=()=>{throw new Y},tr=()=>performance.now(),be=()=>Date.now(),Rr=1,pe=n=>n>=0&&n<=3,MA=9007199254740992,ur=-9007199254740992,Or=n=>n<ur||n>MA?NaN:Number(n);function Gr(n,F,f){if(F=Or(F),!pe(n))return 28;var d;if(n===0)d=be();else if(Rr)d=tr();else return 52;var p=Math.round(d*1e3*1e3);return G0[f>>3]=BigInt(p),0}var je=()=>2147483648,Ur=(n,F)=>Math.ceil(n/F)*F,me=n=>{var F=T0.buffer.byteLength,f=(n-F+65535)/65536|0;try{return T0.grow(f),K(),1}catch{}},he=n=>{var F=Hx.length;n>>>=0;var f=je();if(n>f)return!1;for(var d=1;d<=4;d*=2){var p=F*(1+.2/d);p=Math.min(p,n+100663296);var _=Math.min(f,Ur(Math.max(n,p),65536)),M=me(_);if(M)return!0}return!1};function nr(n){try{var F=y0.getStreamFromFD(n);return a.close(F),0}catch(f){if(typeof a>"u"||f.name!=="ErrnoError")throw f;return f.errno}}var ge=(n,F,f,d)=>{for(var p=0,_=0;_<f;_++){var M=F0[F>>2],z=F0[F+4>>2];F+=8;var o0=a.read(n,Ax,M,z,d);if(o0<0)return-1;if(p+=o0,o0<z)break;typeof d<"u"&&(d+=o0)}return p};function ye(n,F,f,d){try{var p=y0.getStreamFromFD(n),_=ge(p,F,f);return F0[d>>2]=_,0}catch(M){if(typeof a>"u"||M.name!=="ErrnoError")throw M;return M.errno}}function Hr(n,F,f,d){F=Or(F);try{if(isNaN(F))return 22;var p=y0.getStreamFromFD(n);return a.llseek(p,F,f),G0[d>>3]=BigInt(p.position),p.getdents&&F===0&&f===0&&(p.getdents=null),0}catch(_){if(typeof a>"u"||_.name!=="ErrnoError")throw _;return _.errno}}var Kr=(n,F,f,d)=>{for(var p=0,_=0;_<f;_++){var M=F0[F>>2],z=F0[F+4>>2];F+=8;var o0=a.write(n,Ax,M,z,d);if(o0<0)return-1;if(p+=o0,o0<z)break;typeof d<"u"&&(d+=o0)}return p};function LA(n,F,f,d){try{var p=y0.getStreamFromFD(n),_=Kr(p,F,f);return F0[d>>2]=_,0}catch(M){if(typeof a>"u"||M.name!=="ErrnoError")throw M;return M.errno}}var zr=0,RA=()=>xr||zr>0,br=n=>{w=n,RA()||(t.onExit?.(n),e0=!0),k(n,new lA(n))},gx=(n,F)=>{w=n,RA()||D0(),br(n)},ke=n=>{if(n instanceof lA||n=="unwind")return w;k(1,n)},mA=n=>J(n),OA=n=>{var F=TA(n)+1,f=mA(F);return rr(n,f,F),f},pr=[],ox=n=>{var F=pr[n];return F||(pr[n]=F=w0.get(n)),F},ir=(...n)=>a.createPath(...n),GA=(...n)=>a.unlink(...n),s=(...n)=>a.createLazyFile(...n),v=(...n)=>a.createDevice(...n);if(a.createPreloadedFile=le,a.preloadFile=pA,a.staticInit(),t.noExitRuntime&&(xr=t.noExitRuntime),t.preloadPlugins&&(Ar=t.preloadPlugins),t.print&&(I=t.print),t.printErr&&(L=t.printErr),t.wasmBinary&&(R=t.wasmBinary),t.arguments&&(j=t.arguments),t.thisProgram&&(b=t.thisProgram),t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()();t.callMain=xt,t.addRunDependency=hx,t.removeRunDependency=Dr,t.FS_preloadFile=pA,t.FS_unlink=GA,t.FS_createPath=ir,t.FS_createDevice=v,t.FS=a,t.FS_createDataFile=cr,t.FS_createLazyFile=s,t.PROXYFS=g0;var c,u,h,$,G,J,s0,l0,U0,T0,w0;function p0(n){c=t._main=n.__main_argc_argv,u=n.fflush,h=n.__funcs_on_exit,$=n.setThrew,G=n._emscripten_stack_restore,J=n._emscripten_stack_alloc,s0=n.emscripten_stack_get_current,l0=T0=n.memory,U0=w0=n.__indirect_function_table}var X0={__assert_fail:dA,__syscall_faccessat:dr,__syscall_fcntl64:ce,__syscall_getcwd:Ir,__syscall_ioctl:Mr,__syscall_openat:De,__syscall_readlinkat:de,__syscall_renameat:ue,__syscall_rmdir:er,__syscall_unlinkat:Lr,_emscripten_throw_longjmp:IA,clock_time_get:Gr,emscripten_resize_heap:he,fd_close:nr,fd_read:ye,fd_seek:Hr,fd_write:LA,invoke_i:UA,invoke_ii:$x,invoke_iii:qx,invoke_iiid:Lt,invoke_iiii:Tx,invoke_iiiii:rx,invoke_iiiiii:Rt,invoke_iijii:It,invoke_v:fx,invoke_vi:Mt,invoke_vii:yx,invoke_viii:Ze,invoke_viiii:nA,invoke_viiiii:Qe};function fx(n){var F=h0();try{ox(n)()}catch(f){if(Z0(F),!(f instanceof O))throw f;$(1,0)}}function yx(n,F,f){var d=h0();try{ox(n)(F,f)}catch(p){if(Z0(d),!(p instanceof O))throw p;$(1,0)}}function $x(n,F){var f=h0();try{return ox(n)(F)}catch(d){if(Z0(f),!(d instanceof O))throw d;$(1,0)}}function qx(n,F,f){var d=h0();try{return ox(n)(F,f)}catch(p){if(Z0(d),!(p instanceof O))throw p;$(1,0)}}function UA(n){var F=h0();try{return ox(n)()}catch(f){if(Z0(F),!(f instanceof O))throw f;$(1,0)}}function Tx(n,F,f,d){var p=h0();try{return ox(n)(F,f,d)}catch(_){if(Z0(p),!(_ instanceof O))throw _;$(1,0)}}function nA(n,F,f,d,p){var _=h0();try{ox(n)(F,f,d,p)}catch(M){if(Z0(_),!(M instanceof O))throw M;$(1,0)}}function rx(n,F,f,d,p){var _=h0();try{return ox(n)(F,f,d,p)}catch(M){if(Z0(_),!(M instanceof O))throw M;$(1,0)}}function Qe(n,F,f,d,p,_){var M=h0();try{ox(n)(F,f,d,p,_)}catch(z){if(Z0(M),!(z instanceof O))throw z;$(1,0)}}function It(n,F,f,d,p){var _=h0();try{return ox(n)(F,f,d,p)}catch(M){if(Z0(_),!(M instanceof O))throw M;$(1,0)}}function Mt(n,F){var f=h0();try{ox(n)(F)}catch(d){if(Z0(f),!(d instanceof O))throw d;$(1,0)}}function Ze(n,F,f,d){var p=h0();try{ox(n)(F,f,d)}catch(_){if(Z0(p),!(_ instanceof O))throw _;$(1,0)}}function Lt(n,F,f,d){var p=h0();try{return ox(n)(F,f,d)}catch(_){if(Z0(p),!(_ instanceof O))throw _;$(1,0)}}function Rt(n,F,f,d,p,_){var M=h0();try{return ox(n)(F,f,d,p,_)}catch(z){if(Z0(M),!(z instanceof O))throw z;$(1,0)}}function xt(n=[]){var F=c;n.unshift(b);var f=n.length,d=mA((f+1)*4),p=d;for(var _ of n)F0[p>>2]=OA(_),p+=4;F0[p>>2]=0;try{var M=F(f,d);return gx(M,!0),M}catch(z){return ke(z)}}function _e(n=j){if(tx>0){b0=_e;return}if(U(),tx>0){b0=_e;return}function F(){if(t.calledRun=!0,!e0){a0(),H?.(t),t.onRuntimeInitialized?.();var f=t.noInitialRun||!0;f||xt(n),u0()}}t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),F()},1)):F()}var jr;return jr=await Dx(),_e(),r0?o=t:o=new Promise((n,F)=>{H=n,Z=F}),o}})();typeof A=="object"&&typeof x=="object"?(x.exports=r,x.exports.default=r):typeof define=="function"&&define.amd&&define([],()=>r)}}),e8=Ui({"wasm/bin/pawndbg.js"(A,x){"use strict";var r=(()=>{var e=globalThis.document?.currentScript?.src;return async function(i={}){var o,t=i,B=!!globalThis.window,l=!!globalThis.WorkerGlobalScope,D=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer",j=[],b="./this.program",k=(s,v)=>{throw v};typeof __filename<"u"?e=__filename:l&&(e=self.location.href);var q="",y,S;if(D){var T=require("fs");q=__dirname+"/",S=s=>{s=g(s)?new URL(s):s;var v=T.readFileSync(s);return v},y=async(s,v=!0)=>{s=g(s)?new URL(s):s;var c=T.readFileSync(s,v?void 0:"utf8");return c},process.argv.length>1&&(b=process.argv[1].replace(/\\/g,"/")),j=process.argv.slice(2),k=(s,v)=>{throw process.exitCode=s,v}}else if(B||l){try{q=new URL(".",e).href}catch{}l&&(S=s=>{var v=new XMLHttpRequest;return v.open("GET",s,!1),v.responseType="arraybuffer",v.send(null),new Uint8Array(v.response)}),y=async s=>{if(g(s))return new Promise((c,u)=>{var h=new XMLHttpRequest;h.open("GET",s,!0),h.responseType="arraybuffer",h.onload=()=>{if(h.status==200||h.status==0&&h.response){c(h.response);return}u(h.status)},h.onerror=u,h.send(null)});var v=await fetch(s,{credentials:"same-origin"});if(v.ok)return v.arrayBuffer();throw new Error(v.status+" : "+v.url)}}var I=console.log.bind(console),L=console.error.bind(console),R,e0=!1,w,g=s=>s.startsWith("file://");class O{}class Y extends O{}function x0(s){for(var v=0,c=s.length,u=new Uint8Array(c),h;v<c;++v)h=s.charCodeAt(v),u[v]=~h>>8&h;return u}var H,Z,r0=!1,n0=!1;function K(){var s=mA.buffer;Ax=new Int8Array(s),O0=new Int16Array(s),Hx=new Uint8Array(s),Ee=new Uint16Array(s),M0=new Int32Array(s),F0=new Uint32Array(s),Fe=new Float32Array(s),ve=new Float64Array(s),G0=new BigInt64Array(s),Be=new BigUint64Array(s)}function U(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)Nr(t.preRun.shift());cA(Ix)}function a0(){r0=!0,!t.noFSInit&&!a.initialized&&a.init(),W0.init(),GA.__wasm_call_ctors(),a.ignorePermissions=!1}function v0(){}function D0(){Kr(),a.quit(),W0.shutdown(),n0=!0}function u0(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Tr(t.postRun.shift());cA(DA)}function _0(s){t.onAbort?.(s),s=`Aborted(${s})`,L(s),e0=!0,s+=". Build with -sASSERTIONS for more info.";var v=new WebAssembly.RuntimeError(s);throw Z?.(v),v}var q0;function V0(){return x0(`\0asm\0\0\0\xB4\`\x7F\x7F\`\x7F\0\`\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\`\x7F\x7F\x7F\0\`\x7F~~~~\0\`\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\0\`\x7F~\x7F~\`\x7F\x7F\x7F\x7F\0\`\0\0\`\0\x7F\`\x7F~~\x7F\0\`\x7F|\x7F\x7F\x7F\x7F\x7F\`\x7F~\x7F\x7F\x7F\`\x7F\x7F|\0\`\x7F~\0\`\x7F|\`\x7F~~~\0\`\x7F~\`|\x7F|\`\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`~\x7F\x7F\`\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F~\0\`~~~~\x7F\`~~~\x7F\`\x7F|\0\xFD env\r__assert_fail\0 env__syscall_openat\0env__syscall_fcntl64\0env__syscall_ioctl\0wasi_snapshot_preview1\bfd_write\0wasi_snapshot_preview1\x07fd_read\0wasi_snapshot_preview1\bfd_close\0\0wasi_snapshot_preview1\x07fd_seek\0envemscripten_resize_heap\0\0VU
|
|
1162
|
+
`));if(!n)return null;Px=NA(n,!0)}return Px.shift()},W0={ttys:[],init(){},shutdown(){},register(n,F){W0.ttys[n]={input:[],output:[],ops:F},a.registerDevice(n,W0.stream_ops)},stream_ops:{open(n){var F=W0.ttys[n.node.rdev];if(!F)throw new a.ErrnoError(43);n.tty=F,n.seekable=!1},close(n){n.tty.ops.fsync(n.tty)},fsync(n){n.tty.ops.fsync(n.tty)},read(n,F,f,d,p){if(!n.tty||!n.tty.ops.get_char)throw new a.ErrnoError(60);for(var _=0,M=0;M<d;M++){var z;try{z=n.tty.ops.get_char(n.tty)}catch{throw new a.ErrnoError(29)}if(z===void 0&&_===0)throw new a.ErrnoError(6);if(z==null)break;_++,F[f+M]=z}return _&&(n.node.atime=Date.now()),_},write(n,F,f,d,p){if(!n.tty||!n.tty.ops.put_char)throw new a.ErrnoError(60);try{for(var _=0;_<d;_++)n.tty.ops.put_char(n.tty,F[f+_])}catch{throw new a.ErrnoError(29)}return d&&(n.node.mtime=n.node.ctime=Date.now()),_}},default_tty_ops:{get_char(n){return Ce()},put_char(n,F){F===null||F===10?(I(AA(n.output)),n.output=[]):F!=0&&n.output.push(F)},fsync(n){n.output?.length>0&&(I(AA(n.output)),n.output=[])},ioctl_tcgets(n){return{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(n,F,f){return 0},ioctl_tiocgwinsz(n){return[24,80]}},default_tty1_ops:{put_char(n,F){F===null||F===10?(L(AA(n.output)),n.output=[]):F!=0&&n.output.push(F)},fsync(n){n.output?.length>0&&(L(AA(n.output)),n.output=[])}}},uA=n=>{_0()},t0={ops_table:null,mount(n){return t0.createNode(null,"/",16895,0)},createNode(n,F,f,d){if(a.isBlkdev(f)||a.isFIFO(f))throw new a.ErrnoError(63);t0.ops_table||(t0.ops_table={dir:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr,lookup:t0.node_ops.lookup,mknod:t0.node_ops.mknod,rename:t0.node_ops.rename,unlink:t0.node_ops.unlink,rmdir:t0.node_ops.rmdir,readdir:t0.node_ops.readdir,symlink:t0.node_ops.symlink},stream:{llseek:t0.stream_ops.llseek}},file:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr},stream:{llseek:t0.stream_ops.llseek,read:t0.stream_ops.read,write:t0.stream_ops.write,mmap:t0.stream_ops.mmap,msync:t0.stream_ops.msync}},link:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr,readlink:t0.node_ops.readlink},stream:{}},chrdev:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr},stream:a.chrdev_stream_ops}});var p=a.createNode(n,F,f,d);return a.isDir(p.mode)?(p.node_ops=t0.ops_table.dir.node,p.stream_ops=t0.ops_table.dir.stream,p.contents={}):a.isFile(p.mode)?(p.node_ops=t0.ops_table.file.node,p.stream_ops=t0.ops_table.file.stream,p.usedBytes=0,p.contents=t0.emptyFileContents??(t0.emptyFileContents=new Uint8Array(0))):a.isLink(p.mode)?(p.node_ops=t0.ops_table.link.node,p.stream_ops=t0.ops_table.link.stream):a.isChrdev(p.mode)&&(p.node_ops=t0.ops_table.chrdev.node,p.stream_ops=t0.ops_table.chrdev.stream),p.atime=p.mtime=p.ctime=Date.now(),n&&(n.contents[F]=p,n.atime=n.mtime=n.ctime=p.atime),p},getFileDataAsTypedArray(n){return n.contents.subarray(0,n.usedBytes)},expandFileStorage(n,F){var f=n.contents.length;if(!(f>=F)){var d=1024*1024;F=Math.max(F,f*(f<d?2:1.125)>>>0),f&&(F=Math.max(F,256));var p=t0.getFileDataAsTypedArray(n);n.contents=new Uint8Array(F),n.contents.set(p)}},resizeFileStorage(n,F){if(n.usedBytes!=F){var f=n.contents;n.contents=new Uint8Array(F),n.contents.set(f.subarray(0,Math.min(F,n.usedBytes))),n.usedBytes=F}},node_ops:{getattr(n){var F={};return F.dev=a.isChrdev(n.mode)?n.id:1,F.ino=n.id,F.mode=n.mode,F.nlink=1,F.uid=0,F.gid=0,F.rdev=n.rdev,a.isDir(n.mode)?F.size=4096:a.isFile(n.mode)?F.size=n.usedBytes:a.isLink(n.mode)?F.size=n.link.length:F.size=0,F.atime=new Date(n.atime),F.mtime=new Date(n.mtime),F.ctime=new Date(n.ctime),F.blksize=4096,F.blocks=Math.ceil(F.size/F.blksize),F},setattr(n,F){for(let f of["mode","atime","mtime","ctime"])F[f]!=null&&(n[f]=F[f]);F.size!==void 0&&t0.resizeFileStorage(n,F.size)},lookup(n,F){throw t0.doesNotExistError||(t0.doesNotExistError=new a.ErrnoError(44),t0.doesNotExistError.stack="<generic error, no stack>"),t0.doesNotExistError},mknod(n,F,f,d){return t0.createNode(n,F,f,d)},rename(n,F,f){var d;try{d=a.lookupNode(F,f)}catch{}if(d){if(a.isDir(n.mode))for(var p in d.contents)throw new a.ErrnoError(55);a.hashRemoveNode(d)}delete n.parent.contents[n.name],F.contents[f]=n,n.name=f,F.ctime=F.mtime=n.parent.ctime=n.parent.mtime=Date.now()},unlink(n,F){delete n.contents[F],n.ctime=n.mtime=Date.now()},rmdir(n,F){var f=a.lookupNode(n,F);for(var d in f.contents)throw new a.ErrnoError(55);delete n.contents[F],n.ctime=n.mtime=Date.now()},readdir(n){return[".","..",...Object.keys(n.contents)]},symlink(n,F,f){var d=t0.createNode(n,F,41471,0);return d.link=f,d},readlink(n){if(!a.isLink(n.mode))throw new a.ErrnoError(28);return n.link}},stream_ops:{read(n,F,f,d,p){var _=n.node.contents;if(p>=n.node.usedBytes)return 0;var M=Math.min(n.node.usedBytes-p,d);return F.set(_.subarray(p,p+M),f),M},write(n,F,f,d,p,_){if(F.buffer===Ax.buffer&&(_=!1),!d)return 0;var M=n.node;return M.mtime=M.ctime=Date.now(),_?(M.contents=F.subarray(f,f+d),M.usedBytes=d):M.usedBytes===0&&p===0?(M.contents=F.slice(f,f+d),M.usedBytes=d):(t0.expandFileStorage(M,p+d),M.contents.set(F.subarray(f,f+d),p),M.usedBytes=Math.max(M.usedBytes,p+d)),d},llseek(n,F,f){var d=F;if(f===1?d+=n.position:f===2&&a.isFile(n.node.mode)&&(d+=n.node.usedBytes),d<0)throw new a.ErrnoError(28);return d},mmap(n,F,f,d,p){if(!a.isFile(n.node.mode))throw new a.ErrnoError(43);var _,M,z=n.node.contents;if(!(p&2)&&z.buffer===Ax.buffer)M=!1,_=z.byteOffset;else{if(M=!0,_=uA(F),!_)throw new a.ErrnoError(48);z&&((f>0||f+F<z.length)&&(z.subarray?z=z.subarray(f,f+F):z=Array.prototype.slice.call(z,f,f+F)),Ax.set(z,_))}return{ptr:_,allocated:M}},msync(n,F,f,d,p){return t0.stream_ops.write(n,F,0,d,f,!1),0}}},bA=n=>{if(typeof n!="string")return n;var F={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},f=F[n];if(typeof f>"u")throw new Error(`Unknown file open mode: ${n}`);return f},Mx=n=>(typeof n=="string"&&(n=NA(n,!0)),n.subarray||(n=new Uint8Array(n)),n),Jx=(n,F)=>{var f=0;return n&&(f|=365),F&&(f|=146),f},S0={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},g0={mount(n){return g0.createNode(null,"/",n.opts.fs.lstat(n.opts.root).mode,0)},createNode(n,F,f,d){if(!a.isDir(f)&&!a.isFile(f)&&!a.isLink(f))throw new a.ErrnoError(S0.EINVAL);var p=a.createNode(n,F,f);return p.node_ops=g0.node_ops,p.stream_ops=g0.stream_ops,p},realPath(n){for(var F=[];n.parent!==n;)F.push(n.name),n=n.parent;return F.push(n.mount.opts.root),F.reverse(),E0.join(...F)},node_ops:{getattr(n){var F=g0.realPath(n),f;try{f=n.mount.opts.fs.lstat(F)}catch(d){throw d.code?new a.ErrnoError(S0[d.code]):d}return{dev:f.dev,ino:f.ino,mode:f.mode,nlink:f.nlink,uid:f.uid,gid:f.gid,rdev:f.rdev,size:f.size,atime:f.atime,mtime:f.mtime,ctime:f.ctime,blksize:f.blksize,blocks:f.blocks}},setattr(n,F){var f=g0.realPath(n);try{if(F.mode!==void 0&&(n.mount.opts.fs.chmod(f,F.mode),n.mode=F.mode),F.atime||F.mtime){var d=new Date(F.atime||F.mtime),p=new Date(F.mtime||F.atime);n.mount.opts.fs.utime(f,d,p)}F.size!==void 0&&n.mount.opts.fs.truncate(f,F.size)}catch(_){throw _.code?new a.ErrnoError(S0[_.code]):_}},lookup(n,F){try{var f=E0.join2(g0.realPath(n),F),d=n.mount.opts.fs.lstat(f).mode,p=g0.createNode(n,F,d);return p}catch(_){throw _.code?new a.ErrnoError(S0[_.code]):_}},mknod(n,F,f,d){var p=g0.createNode(n,F,f,d),_=g0.realPath(p);try{a.isDir(p.mode)?p.mount.opts.fs.mkdir(_,p.mode):p.mount.opts.fs.writeFile(_,"",{mode:p.mode})}catch(M){throw M.code?new a.ErrnoError(S0[M.code]):M}return p},rename(n,F,f){var d=g0.realPath(n),p=E0.join2(g0.realPath(F),f);try{n.mount.opts.fs.rename(d,p),n.name=f}catch(_){throw _.code?new a.ErrnoError(S0[_.code]):_}},unlink(n,F){var f=E0.join2(g0.realPath(n),F);try{n.mount.opts.fs.unlink(f)}catch(d){throw d.code?new a.ErrnoError(S0[d.code]):d}},rmdir(n,F){var f=E0.join2(g0.realPath(n),F);try{n.mount.opts.fs.rmdir(f)}catch(d){throw d.code?new a.ErrnoError(S0[d.code]):d}},readdir(n){var F=g0.realPath(n);try{return n.mount.opts.fs.readdir(F)}catch(f){throw f.code?new a.ErrnoError(S0[f.code]):f}},symlink(n,F,f){var d=E0.join2(g0.realPath(n),F);try{n.mount.opts.fs.symlink(f,d)}catch(p){throw p.code?new a.ErrnoError(S0[p.code]):p}},readlink(n){var F=g0.realPath(n);try{return n.mount.opts.fs.readlink(F)}catch(f){throw f.code?new a.ErrnoError(S0[f.code]):f}}},stream_ops:{open(n){var F=g0.realPath(n.node);try{n.nfd=n.node.mount.opts.fs.open(F,n.flags)}catch(f){throw f.code?new a.ErrnoError(S0[f.code]):f}},close(n){try{n.node.mount.opts.fs.close(n.nfd)}catch(F){throw F.code?new a.ErrnoError(S0[F.code]):F}},read(n,F,f,d,p){try{return n.node.mount.opts.fs.read(n.nfd,F,f,d,p)}catch(_){throw _.code?new a.ErrnoError(S0[_.code]):_}},write(n,F,f,d,p){try{return n.node.mount.opts.fs.write(n.nfd,F,f,d,p)}catch(_){throw _.code?new a.ErrnoError(S0[_.code]):_}},llseek(n,F,f){var d=F;if(f===1)d+=n.position;else if(f===2&&a.isFile(n.node.mode))try{var p=n.node.node_ops.getattr(n.node);d+=p.size}catch(_){throw new a.ErrnoError(S0[_.code])}if(d<0)throw new a.ErrnoError(S0.EINVAL);return d}}},rA=async n=>{var F=await y(n);return new Uint8Array(F)},cr=(...n)=>a.createDataFile(...n),ax=n=>n,tx=0,b0=null,Dr=n=>{if(tx--,t.monitorRunDependencies?.(tx),tx==0&&b0){var F=b0;b0=null,F()}},hx=n=>{tx++,t.monitorRunDependencies?.(tx)},Ar=[],eA=async(n,F)=>{typeof Browser<"u"&&Browser.init();for(var f of Ar)if(f.canHandle(F))return f.handle(n,F);return n},pA=async(n,F,f,d,p,_,M,z)=>{var o0=F?sx.resolve(E0.join2(n,F)):n,k0=ax(`cp ${o0}`);hx(k0);try{var z0=f;typeof f=="string"&&(z0=await rA(f)),z0=await eA(z0,o0),z?.(),_||cr(n,F,z0,d,p,M)}finally{Dr(k0)}},le=(n,F,f,d,p,_,M,z,o0,k0)=>{pA(n,F,f,d,p,z,o0,k0).then(_).catch(M)},a={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,ErrnoError:class{constructor(n){Fx(this,"name","ErrnoError"),this.errno=n}},FSStream:class{constructor(){Fx(this,"shared",{})}get object(){return this.node}set object(n){this.node=n}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(n){this.shared.flags=n}get position(){return this.shared.position}set position(n){this.shared.position=n}},FSNode:class{constructor(n,F,f,d){Fx(this,"node_ops",{}),Fx(this,"stream_ops",{}),Fx(this,"readMode",365),Fx(this,"writeMode",146),Fx(this,"mounted",null),n||(n=this),this.parent=n,this.mount=n.mount,this.id=a.nextInode++,this.name=F,this.mode=f,this.rdev=d,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(n){n?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(n){n?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return a.isDir(this.mode)}get isDevice(){return a.isChrdev(this.mode)}},lookupPath(n,F={}){if(!n)throw new a.ErrnoError(44);F.follow_mount??(F.follow_mount=!0),E0.isAbs(n)||(n=a.cwd()+"/"+n);x:for(var f=0;f<40;f++){for(var d=n.split("/").filter(k0=>!!k0),p=a.root,_="/",M=0;M<d.length;M++){var z=M===d.length-1;if(z&&F.parent)break;if(d[M]!=="."){if(d[M]===".."){if(_=E0.dirname(_),a.isRoot(p)){n=_+"/"+d.slice(M+1).join("/"),f--;continue x}else p=p.parent;continue}_=E0.join2(_,d[M]);try{p=a.lookupNode(p,d[M])}catch(k0){if(k0?.errno===44&&z&&F.noent_okay)return{path:_};throw k0}if(a.isMountpoint(p)&&(!z||F.follow_mount)&&(p=p.mounted.root),a.isLink(p.mode)&&(!z||F.follow)){if(!p.node_ops.readlink)throw new a.ErrnoError(52);var o0=p.node_ops.readlink(p);E0.isAbs(o0)||(o0=E0.dirname(_)+"/"+o0),n=o0+"/"+d.slice(M+1).join("/");continue x}}}return{path:_,node:p}}throw new a.ErrnoError(32)},getPath(n){for(var F;;){if(a.isRoot(n)){var f=n.mount.mountpoint;return F?f[f.length-1]!=="/"?`${f}/${F}`:f+F:f}F=F?`${n.name}/${F}`:n.name,n=n.parent}},hashName(n,F){for(var f=0,d=0;d<F.length;d++)f=(f<<5)-f+F.charCodeAt(d)|0;return(n+f>>>0)%a.nameTable.length},hashAddNode(n){var F=a.hashName(n.parent.id,n.name);n.name_next=a.nameTable[F],a.nameTable[F]=n},hashRemoveNode(n){var F=a.hashName(n.parent.id,n.name);if(a.nameTable[F]===n)a.nameTable[F]=n.name_next;else for(var f=a.nameTable[F];f;){if(f.name_next===n){f.name_next=n.name_next;break}f=f.name_next}},lookupNode(n,F){var f=a.mayLookup(n);if(f)throw new a.ErrnoError(f);for(var d=a.hashName(n.id,F),p=a.nameTable[d];p;p=p.name_next){var _=p.name;if(p.parent.id===n.id&&_===F)return p}return a.lookup(n,F)},createNode(n,F,f,d){var p=new a.FSNode(n,F,f,d);return a.hashAddNode(p),p},destroyNode(n){a.hashRemoveNode(n)},isRoot(n){return n===n.parent},isMountpoint(n){return!!n.mounted},isFile(n){return(n&61440)===32768},isDir(n){return(n&61440)===16384},isLink(n){return(n&61440)===40960},isChrdev(n){return(n&61440)===8192},isBlkdev(n){return(n&61440)===24576},isFIFO(n){return(n&61440)===4096},isSocket(n){return(n&49152)===49152},flagsToPermissionString(n){var F=["r","w","rw"][n&3];return n&512&&(F+="w"),F},nodePermissions(n,F){return a.ignorePermissions?0:F.includes("r")&&!(n.mode&292)||F.includes("w")&&!(n.mode&146)||F.includes("x")&&!(n.mode&73)?2:0},mayLookup(n){if(!a.isDir(n.mode))return 54;var F=a.nodePermissions(n,"x");return F||(n.node_ops.lookup?0:2)},mayCreate(n,F){if(!a.isDir(n.mode))return 54;try{var f=a.lookupNode(n,F);return 20}catch{}return a.nodePermissions(n,"wx")},mayDelete(n,F,f){var d;try{d=a.lookupNode(n,F)}catch(_){return _.errno}var p=a.nodePermissions(n,"wx");if(p)return p;if(f){if(!a.isDir(d.mode))return 54;if(a.isRoot(d)||a.getPath(d)===a.cwd())return 10}else if(a.isDir(d.mode))return 31;return 0},mayOpen(n,F){if(!n)return 44;if(a.isLink(n.mode))return 32;var f=a.flagsToPermissionString(F);return a.isDir(n.mode)&&(f!=="r"||F&576)?31:a.nodePermissions(n,f)},checkOpExists(n,F){if(!n)throw new a.ErrnoError(F);return n},MAX_OPEN_FDS:4096,nextfd(){for(var n=0;n<=a.MAX_OPEN_FDS;n++)if(!a.streams[n])return n;throw new a.ErrnoError(33)},getStreamChecked(n){var F=a.getStream(n);if(!F)throw new a.ErrnoError(8);return F},getStream:n=>a.streams[n],createStream(n,F=-1){return n=Object.assign(new a.FSStream,n),F==-1&&(F=a.nextfd()),n.fd=F,a.streams[F]=n,n},closeStream(n){a.streams[n]=null},dupStream(n,F=-1){var f=a.createStream(n,F);return f.stream_ops?.dup?.(f),f},doSetAttr(n,F,f){var d=n?.stream_ops.setattr,p=d?n:F;d??(d=F.node_ops.setattr),a.checkOpExists(d,63);try{d(p,f)}catch(_){throw _ instanceof RangeError?new a.ErrnoError(22):_}},chrdev_stream_ops:{open(n){var F=a.getDevice(n.node.rdev);n.stream_ops=F.stream_ops,n.stream_ops.open?.(n)},llseek(){throw new a.ErrnoError(70)}},major:n=>n>>8,minor:n=>n&255,makedev:(n,F)=>n<<8|F,registerDevice(n,F){a.devices[n]={stream_ops:F}},getDevice:n=>a.devices[n],getMounts(n){for(var F=[],f=[n];f.length;){var d=f.pop();F.push(d),f.push(...d.mounts)}return F},syncfs(n,F){typeof n=="function"&&(F=n,n=!1),a.syncFSRequests++,a.syncFSRequests>1&&L(`warning: ${a.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var f=a.getMounts(a.root.mount),d=0;function p(z){return a.syncFSRequests--,F(z)}function _(z){if(z)return _.errored?void 0:(_.errored=!0,p(z));++d>=f.length&&p(null)}for(var M of f)M.type.syncfs?M.type.syncfs(M,n,_):_(null)},mount(n,F,f){var d=f==="/",p=!f,_;if(d&&a.root)throw new a.ErrnoError(10);if(!d&&!p){var M=a.lookupPath(f,{follow_mount:!1});if(f=M.path,_=M.node,a.isMountpoint(_))throw new a.ErrnoError(10);if(!a.isDir(_.mode))throw new a.ErrnoError(54)}var z={type:n,opts:F,mountpoint:f,mounts:[]},o0=n.mount(z);return o0.mount=z,z.root=o0,d?a.root=o0:_&&(_.mounted=z,_.mount&&_.mount.mounts.push(z)),o0},unmount(n){var F=a.lookupPath(n,{follow_mount:!1});if(!a.isMountpoint(F.node))throw new a.ErrnoError(28);var f=F.node,d=f.mounted,p=a.getMounts(d);for(var[_,M]of Object.entries(a.nameTable))for(;M;){var z=M.name_next;p.includes(M.mount)&&a.destroyNode(M),M=z}f.mounted=null;var o0=f.mount.mounts.indexOf(d);f.mount.mounts.splice(o0,1)},lookup(n,F){return n.node_ops.lookup(n,F)},mknod(n,F,f){var d=a.lookupPath(n,{parent:!0}),p=d.node,_=E0.basename(n);if(!_)throw new a.ErrnoError(28);if(_==="."||_==="..")throw new a.ErrnoError(20);var M=a.mayCreate(p,_);if(M)throw new a.ErrnoError(M);if(!p.node_ops.mknod)throw new a.ErrnoError(63);return p.node_ops.mknod(p,_,F,f)},statfs(n){return a.statfsNode(a.lookupPath(n,{follow:!0}).node)},statfsStream(n){return a.statfsNode(n.node)},statfsNode(n){var F={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:a.nextInode,ffree:a.nextInode-1,fsid:42,flags:2,namelen:255};return n.node_ops.statfs&&Object.assign(F,n.node_ops.statfs(n.mount.opts.root)),F},create(n,F=438){return F&=4095,F|=32768,a.mknod(n,F,0)},mkdir(n,F=511){return F&=1023,F|=16384,a.mknod(n,F,0)},mkdirTree(n,F){var f=n.split("/"),d="";for(var p of f)if(p){(d||E0.isAbs(n))&&(d+="/"),d+=p;try{a.mkdir(d,F)}catch(_){if(_.errno!=20)throw _}}},mkdev(n,F,f){return typeof f>"u"&&(f=F,F=438),F|=8192,a.mknod(n,F,f)},symlink(n,F){if(!sx.resolve(n))throw new a.ErrnoError(44);var f=a.lookupPath(F,{parent:!0}),d=f.node;if(!d)throw new a.ErrnoError(44);var p=E0.basename(F),_=a.mayCreate(d,p);if(_)throw new a.ErrnoError(_);if(!d.node_ops.symlink)throw new a.ErrnoError(63);return d.node_ops.symlink(d,p,n)},rename(n,F){var f=E0.dirname(n),d=E0.dirname(F),p=E0.basename(n),_=E0.basename(F),M,z,o0;if(M=a.lookupPath(n,{parent:!0}),z=M.node,M=a.lookupPath(F,{parent:!0}),o0=M.node,!z||!o0)throw new a.ErrnoError(44);if(z.mount!==o0.mount)throw new a.ErrnoError(75);var k0=a.lookupNode(z,p),z0=sx.relative(n,d);if(z0.charAt(0)!==".")throw new a.ErrnoError(28);if(z0=sx.relative(F,f),z0.charAt(0)!==".")throw new a.ErrnoError(55);var I0;try{I0=a.lookupNode(o0,_)}catch{}if(k0!==I0){var P0=a.isDir(k0.mode),j0=a.mayDelete(z,p,P0);if(j0)throw new a.ErrnoError(j0);if(j0=I0?a.mayDelete(o0,_,P0):a.mayCreate(o0,_),j0)throw new a.ErrnoError(j0);if(!z.node_ops.rename)throw new a.ErrnoError(63);if(a.isMountpoint(k0)||I0&&a.isMountpoint(I0))throw new a.ErrnoError(10);if(o0!==z&&(j0=a.nodePermissions(z,"w"),j0))throw new a.ErrnoError(j0);a.hashRemoveNode(k0);try{z.node_ops.rename(k0,o0,_),k0.parent=o0}catch(nx){throw nx}finally{a.hashAddNode(k0)}}},rmdir(n){var F=a.lookupPath(n,{parent:!0}),f=F.node,d=E0.basename(n),p=a.lookupNode(f,d),_=a.mayDelete(f,d,!0);if(_)throw new a.ErrnoError(_);if(!f.node_ops.rmdir)throw new a.ErrnoError(63);if(a.isMountpoint(p))throw new a.ErrnoError(10);f.node_ops.rmdir(f,d),a.destroyNode(p)},readdir(n){var F=a.lookupPath(n,{follow:!0}),f=F.node,d=a.checkOpExists(f.node_ops.readdir,54);return d(f)},unlink(n){var F=a.lookupPath(n,{parent:!0}),f=F.node;if(!f)throw new a.ErrnoError(44);var d=E0.basename(n),p=a.lookupNode(f,d),_=a.mayDelete(f,d,!1);if(_)throw new a.ErrnoError(_);if(!f.node_ops.unlink)throw new a.ErrnoError(63);if(a.isMountpoint(p))throw new a.ErrnoError(10);f.node_ops.unlink(f,d),a.destroyNode(p)},readlink(n){var F=a.lookupPath(n),f=F.node;if(!f)throw new a.ErrnoError(44);if(!f.node_ops.readlink)throw new a.ErrnoError(28);return f.node_ops.readlink(f)},stat(n,F){var f=a.lookupPath(n,{follow:!F}),d=f.node,p=a.checkOpExists(d.node_ops.getattr,63);return p(d)},fstat(n){var F=a.getStreamChecked(n),f=F.node,d=F.stream_ops.getattr,p=d?F:f;return d??(d=f.node_ops.getattr),a.checkOpExists(d,63),d(p)},lstat(n){return a.stat(n,!0)},doChmod(n,F,f,d){a.doSetAttr(n,F,{mode:f&4095|F.mode&-4096,ctime:Date.now(),dontFollow:d})},chmod(n,F,f){var d;if(typeof n=="string"){var p=a.lookupPath(n,{follow:!f});d=p.node}else d=n;a.doChmod(null,d,F,f)},lchmod(n,F){a.chmod(n,F,!0)},fchmod(n,F){var f=a.getStreamChecked(n);a.doChmod(f,f.node,F,!1)},doChown(n,F,f){a.doSetAttr(n,F,{timestamp:Date.now(),dontFollow:f})},chown(n,F,f,d){var p;if(typeof n=="string"){var _=a.lookupPath(n,{follow:!d});p=_.node}else p=n;a.doChown(null,p,d)},lchown(n,F,f){a.chown(n,F,f,!0)},fchown(n,F,f){var d=a.getStreamChecked(n);a.doChown(d,d.node,!1)},doTruncate(n,F,f){if(a.isDir(F.mode))throw new a.ErrnoError(31);if(!a.isFile(F.mode))throw new a.ErrnoError(28);var d=a.nodePermissions(F,"w");if(d)throw new a.ErrnoError(d);a.doSetAttr(n,F,{size:f,timestamp:Date.now()})},truncate(n,F){if(F<0)throw new a.ErrnoError(28);var f;if(typeof n=="string"){var d=a.lookupPath(n,{follow:!0});f=d.node}else f=n;a.doTruncate(null,f,F)},ftruncate(n,F){var f=a.getStreamChecked(n);if(F<0||(f.flags&2097155)===0)throw new a.ErrnoError(28);a.doTruncate(f,f.node,F)},utime(n,F,f){var d=a.lookupPath(n,{follow:!0}),p=d.node,_=a.checkOpExists(p.node_ops.setattr,63);_(p,{atime:F,mtime:f})},open(n,F,f=438){if(n==="")throw new a.ErrnoError(44);F=bA(F),F&64?f=f&4095|32768:f=0;var d,p;if(typeof n=="object")d=n;else{p=n.endsWith("/");var _=a.lookupPath(n,{follow:!(F&131072),noent_okay:!0});d=_.node,n=_.path}var M=!1;if(F&64)if(d){if(F&128)throw new a.ErrnoError(20)}else{if(p)throw new a.ErrnoError(31);d=a.mknod(n,f|511,0),M=!0}if(!d)throw new a.ErrnoError(44);if(a.isChrdev(d.mode)&&(F&=-513),F&65536&&!a.isDir(d.mode))throw new a.ErrnoError(54);if(!M){var z=a.mayOpen(d,F);if(z)throw new a.ErrnoError(z)}F&512&&!M&&a.truncate(d,0),F&=-131713;var o0=a.createStream({node:d,path:a.getPath(d),flags:F,seekable:!0,position:0,stream_ops:d.stream_ops,ungotten:[],error:!1});return o0.stream_ops.open&&o0.stream_ops.open(o0),M&&a.chmod(d,f&511),o0},close(n){if(a.isClosed(n))throw new a.ErrnoError(8);n.getdents&&(n.getdents=null);try{n.stream_ops.close&&n.stream_ops.close(n)}catch(F){throw F}finally{a.closeStream(n.fd)}n.fd=null},isClosed(n){return n.fd===null},llseek(n,F,f){if(a.isClosed(n))throw new a.ErrnoError(8);if(!n.seekable||!n.stream_ops.llseek)throw new a.ErrnoError(70);if(f!=0&&f!=1&&f!=2)throw new a.ErrnoError(28);return n.position=n.stream_ops.llseek(n,F,f),n.ungotten=[],n.position},read(n,F,f,d,p){if(d<0||p<0)throw new a.ErrnoError(28);if(a.isClosed(n))throw new a.ErrnoError(8);if((n.flags&2097155)===1)throw new a.ErrnoError(8);if(a.isDir(n.node.mode))throw new a.ErrnoError(31);if(!n.stream_ops.read)throw new a.ErrnoError(28);var _=typeof p<"u";if(!_)p=n.position;else if(!n.seekable)throw new a.ErrnoError(70);var M=n.stream_ops.read(n,F,f,d,p);return _||(n.position+=M),M},write(n,F,f,d,p,_){if(d<0||p<0)throw new a.ErrnoError(28);if(a.isClosed(n))throw new a.ErrnoError(8);if((n.flags&2097155)===0)throw new a.ErrnoError(8);if(a.isDir(n.node.mode))throw new a.ErrnoError(31);if(!n.stream_ops.write)throw new a.ErrnoError(28);n.seekable&&n.flags&1024&&a.llseek(n,0,2);var M=typeof p<"u";if(!M)p=n.position;else if(!n.seekable)throw new a.ErrnoError(70);var z=n.stream_ops.write(n,F,f,d,p,_);return M||(n.position+=z),z},mmap(n,F,f,d,p){if((d&2)!==0&&(p&2)===0&&(n.flags&2097155)!==2)throw new a.ErrnoError(2);if((n.flags&2097155)===1)throw new a.ErrnoError(2);if(!n.stream_ops.mmap)throw new a.ErrnoError(43);if(!F)throw new a.ErrnoError(28);return n.stream_ops.mmap(n,F,f,d,p)},msync(n,F,f,d,p){return n.stream_ops.msync?n.stream_ops.msync(n,F,f,d,p):0},ioctl(n,F,f){if(!n.stream_ops.ioctl)throw new a.ErrnoError(59);return n.stream_ops.ioctl(n,F,f)},readFile(n,F={}){F.flags=F.flags||0,F.encoding=F.encoding||"binary",F.encoding!=="utf8"&&F.encoding!=="binary"&&_0(`Invalid encoding type "${F.encoding}"`);var f=a.open(n,F.flags),d=a.stat(n),p=d.size,_=new Uint8Array(p);return a.read(f,_,0,p,0),F.encoding==="utf8"&&(_=AA(_)),a.close(f),_},writeFile(n,F,f={}){f.flags=f.flags||577;var d=a.open(n,f.flags,f.mode);F=Mx(F),a.write(d,F,0,F.byteLength,void 0,f.canOwn),a.close(d)},cwd:()=>a.currentPath,chdir(n){var F=a.lookupPath(n,{follow:!0});if(F.node===null)throw new a.ErrnoError(44);if(!a.isDir(F.node.mode))throw new a.ErrnoError(54);var f=a.nodePermissions(F.node,"x");if(f)throw new a.ErrnoError(f);a.currentPath=F.path},createDefaultDirectories(){a.mkdir("/tmp"),a.mkdir("/home"),a.mkdir("/home/web_user")},createDefaultDevices(){a.mkdir("/dev"),a.registerDevice(a.makedev(1,3),{read:()=>0,write:(d,p,_,M,z)=>M,llseek:()=>0}),a.mkdev("/dev/null",a.makedev(1,3)),W0.register(a.makedev(5,0),W0.default_tty_ops),W0.register(a.makedev(6,0),W0.default_tty1_ops),a.mkdev("/dev/tty",a.makedev(5,0)),a.mkdev("/dev/tty1",a.makedev(6,0));var n=new Uint8Array(1024),F=0,f=()=>(F===0&&(Cr(n),F=n.byteLength),n[--F]);a.createDevice("/dev","random",f),a.createDevice("/dev","urandom",f),a.mkdir("/dev/shm"),a.mkdir("/dev/shm/tmp")},createSpecialDirectories(){a.mkdir("/proc");var n=a.mkdir("/proc/self");a.mkdir("/proc/self/fd"),a.mount({mount(){var F=a.createNode(n,"fd",16895,73);return F.stream_ops={llseek:t0.stream_ops.llseek},F.node_ops={lookup(f,d){var p=+d,_=a.getStreamChecked(p),M={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>_.path},id:p+1};return M.parent=M,M},readdir(){return Array.from(a.streams.entries()).filter(([f,d])=>d).map(([f,d])=>f.toString())}},F}},{},"/proc/self/fd")},createStandardStreams(n,F,f){n?a.createDevice("/dev","stdin",n):a.symlink("/dev/tty","/dev/stdin"),F?a.createDevice("/dev","stdout",null,F):a.symlink("/dev/tty","/dev/stdout"),f?a.createDevice("/dev","stderr",null,f):a.symlink("/dev/tty1","/dev/stderr");var d=a.open("/dev/stdin",0),p=a.open("/dev/stdout",1),_=a.open("/dev/stderr",1)},staticInit(){a.nameTable=new Array(4096),a.mount(t0,{},"/"),a.createDefaultDirectories(),a.createDefaultDevices(),a.createSpecialDirectories(),a.filesystems={MEMFS:t0,PROXYFS:g0}},init(n,F,f){a.initialized=!0,n??(n=t.stdin),F??(F=t.stdout),f??(f=t.stderr),a.createStandardStreams(n,F,f)},quit(){a.initialized=!1,u(0);for(var n of a.streams)n&&a.close(n)},findObject(n,F){var f=a.analyzePath(n,F);return f.exists?f.object:null},analyzePath(n,F){try{var f=a.lookupPath(n,{follow:!F});n=f.path}catch{}var d={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var f=a.lookupPath(n,{parent:!0});d.parentExists=!0,d.parentPath=f.path,d.parentObject=f.node,d.name=E0.basename(n),f=a.lookupPath(n,{follow:!F}),d.exists=!0,d.path=f.path,d.object=f.node,d.name=f.node.name,d.isRoot=f.path==="/"}catch(p){d.error=p.errno}return d},createPath(n,F,f,d){n=typeof n=="string"?n:a.getPath(n);for(var p=F.split("/").reverse();p.length;){var _=p.pop();if(_){var M=E0.join2(n,_);try{a.mkdir(M)}catch(z){if(z.errno!=20)throw z}n=M}}return M},createFile(n,F,f,d,p){var _=E0.join2(typeof n=="string"?n:a.getPath(n),F),M=Jx(d,p);return a.create(_,M)},createDataFile(n,F,f,d,p,_){var M=F;n&&(n=typeof n=="string"?n:a.getPath(n),M=F?E0.join2(n,F):n);var z=Jx(d,p),o0=a.create(M,z);if(f){f=Mx(f),a.chmod(o0,z|146);var k0=a.open(o0,577);a.write(k0,f,0,f.length,0,_),a.close(k0),a.chmod(o0,z)}},createDevice(n,F,f,d){var p,_=E0.join2(typeof n=="string"?n:a.getPath(n),F),M=Jx(!!f,!!d);(p=a.createDevice).major??(p.major=64);var z=a.makedev(a.createDevice.major++,0);return a.registerDevice(z,{open(o0){o0.seekable=!1},close(o0){d?.buffer?.length&&d(10)},read(o0,k0,z0,I0,P0){for(var j0=0,nx=0;nx<I0;nx++){var bx;try{bx=f()}catch{throw new a.ErrnoError(29)}if(bx===void 0&&j0===0)throw new a.ErrnoError(6);if(bx==null)break;j0++,k0[z0+nx]=bx}return j0&&(o0.node.atime=Date.now()),j0},write(o0,k0,z0,I0,P0){for(var j0=0;j0<I0;j0++)try{d(k0[z0+j0])}catch{throw new a.ErrnoError(29)}return I0&&(o0.node.mtime=o0.node.ctime=Date.now()),j0}}),a.mkdev(_,M,z)},forceLoadFile(n){if(n.isDevice||n.isFolder||n.link||n.contents)return!0;if(globalThis.XMLHttpRequest)_0("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{n.contents=S(n.url)}catch{throw new a.ErrnoError(29)}},createLazyFile(n,F,f,d,p){class _{constructor(){Fx(this,"lengthKnown",!1),Fx(this,"chunks",[])}get(P0){if(!(P0>this.length-1||P0<0)){var j0=P0%this.chunkSize,nx=P0/this.chunkSize|0;return this.getter(nx)[j0]}}setDataGetter(P0){this.getter=P0}cacheLength(){var P0=new XMLHttpRequest;P0.open("HEAD",f,!1),P0.send(null),P0.status>=200&&P0.status<300||P0.status===304||_0("Couldn't load "+f+". Status: "+P0.status);var j0=Number(P0.getResponseHeader("Content-length")),nx,bx=(nx=P0.getResponseHeader("Accept-Ranges"))&&nx==="bytes",Nx=(nx=P0.getResponseHeader("Content-Encoding"))&&nx==="gzip",Lx=1024*1024;bx||(Lx=j0);var Rx=(Vx,sr)=>{Vx>sr&&_0("invalid range ("+Vx+", "+sr+") or no bytes requested!"),sr>j0-1&&_0("only "+j0+" bytes available! programmer error!");var Cx=new XMLHttpRequest;return Cx.open("GET",f,!1),j0!==Lx&&Cx.setRequestHeader("Range","bytes="+Vx+"-"+sr),Cx.responseType="arraybuffer",Cx.overrideMimeType&&Cx.overrideMimeType("text/plain; charset=x-user-defined"),Cx.send(null),Cx.status>=200&&Cx.status<300||Cx.status===304||_0("Couldn't load "+f+". Status: "+Cx.status),Cx.response!==void 0?new Uint8Array(Cx.response||[]):NA(Cx.responseText||"",!0)},mr=this;mr.setDataGetter(Vx=>{var sr=Vx*Lx,Cx=(Vx+1)*Lx-1;return Cx=Math.min(Cx,j0-1),typeof mr.chunks[Vx]>"u"&&(mr.chunks[Vx]=Rx(sr,Cx)),typeof mr.chunks[Vx]>"u"&&_0("doXHR failed!"),mr.chunks[Vx]}),(Nx||!j0)&&(Lx=j0=1,j0=this.getter(0).length,Lx=j0,I("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=j0,this._chunkSize=Lx,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(globalThis.XMLHttpRequest){l||_0("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var M=new _,z={isDevice:!1,contents:M}}else var z={isDevice:!1,url:f};var o0=a.createFile(n,F,z,d,p);z.contents?o0.contents=z.contents:z.url&&(o0.contents=null,o0.url=z.url),Object.defineProperties(o0,{usedBytes:{get:function(){return this.contents.length}}});var k0={};for(let[I0,P0]of Object.entries(o0.stream_ops))k0[I0]=(...j0)=>(a.forceLoadFile(o0),P0(...j0));function z0(I0,P0,j0,nx,bx){var Nx=I0.node.contents;if(bx>=Nx.length)return 0;var Lx=Math.min(Nx.length-bx,nx);if(Nx.slice)for(var Rx=0;Rx<Lx;Rx++)P0[j0+Rx]=Nx[bx+Rx];else for(var Rx=0;Rx<Lx;Rx++)P0[j0+Rx]=Nx.get(bx+Rx);return Lx}return k0.read=(I0,P0,j0,nx,bx)=>(a.forceLoadFile(o0),z0(I0,P0,j0,nx,bx)),k0.mmap=(I0,P0,j0,nx,bx)=>{a.forceLoadFile(o0);var Nx=uA(P0);if(!Nx)throw new a.ErrnoError(48);return z0(I0,Ax,Nx,P0,j0),{ptr:Nx,allocated:!0}},o0.stream_ops=k0,o0}},y0={currentUmask:18,calculateAt(n,F,f){if(E0.isAbs(F))return F;var d;if(n===-100)d=a.cwd();else{var p=y0.getStreamFromFD(n);d=p.path}if(F.length==0){if(!f)throw new a.ErrnoError(44);return d}return d+"/"+F},writeStat(n,F){F0[n>>2]=F.dev,F0[n+4>>2]=F.mode,F0[n+8>>2]=F.nlink,F0[n+12>>2]=F.uid,F0[n+16>>2]=F.gid,F0[n+20>>2]=F.rdev,G0[n+24>>3]=BigInt(F.size),M0[n+32>>2]=4096,M0[n+36>>2]=F.blocks;var f=F.atime.getTime(),d=F.mtime.getTime(),p=F.ctime.getTime();return G0[n+40>>3]=BigInt(Math.floor(f/1e3)),F0[n+48>>2]=f%1e3*1e3*1e3,G0[n+56>>3]=BigInt(Math.floor(d/1e3)),F0[n+64>>2]=d%1e3*1e3*1e3,G0[n+72>>3]=BigInt(Math.floor(p/1e3)),F0[n+80>>2]=p%1e3*1e3*1e3,G0[n+88>>3]=BigInt(F.ino),0},writeStatFs(n,F){F0[n+4>>2]=F.bsize,F0[n+60>>2]=F.bsize,G0[n+8>>3]=BigInt(F.blocks),G0[n+16>>3]=BigInt(F.bfree),G0[n+24>>3]=BigInt(F.bavail),G0[n+32>>3]=BigInt(F.files),G0[n+40>>3]=BigInt(F.ffree),F0[n+48>>2]=F.fsid,F0[n+64>>2]=F.flags,F0[n+56>>2]=F.namelen},doMsync(n,F,f,d,p){if(!a.isFile(F.node.mode))throw new a.ErrnoError(43);if(d&2)return 0;var _=Hx.slice(n,n+f);a.msync(F,_,p,f,d)},getStreamFromFD(n){var F=a.getStreamChecked(n);return F},varargs:void 0,getStr(n){var F=zx(n);return F}};function dr(n,F,f,d){try{if(F=y0.getStr(F),F=y0.calculateAt(n,F),f&-8)return-28;var p=a.lookupPath(F,{follow:!0}),_=p.node;if(!_)return-44;var M="";return f&4&&(M+="r"),f&2&&(M+="w"),f&1&&(M+="x"),M&&a.nodePermissions(_,M)?-2:0}catch(z){if(typeof a>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}var jA=()=>{var n=M0[+y0.varargs>>2];return y0.varargs+=4,n},tA=jA;function ce(n,F,f){y0.varargs=f;try{var d=y0.getStreamFromFD(n);switch(F){case 0:{var p=jA();if(p<0)return-28;for(;a.streams[p];)p++;var _;return _=a.dupStream(d,p),_.fd}case 1:case 2:return 0;case 3:return d.flags;case 4:{var p=jA(),M=289792;return d.flags=d.flags&~M|p&M,0}case 12:{var p=tA(),z=0;return O0[p+z>>1]=2,0}case 13:case 14:return 0}return-28}catch(o0){if(typeof a>"u"||o0.name!=="ErrnoError")throw o0;return-o0.errno}}var rr=(n,F,f)=>lr(n,Hx,F,f);function Ir(n,F){try{if(F===0)return-28;var f=a.cwd(),d=TA(f)+1;return F<d?-68:(rr(f,n,F),d)}catch(p){if(typeof a>"u"||p.name!=="ErrnoError")throw p;return-p.errno}}function Mr(n,F,f){y0.varargs=f;try{var d=y0.getStreamFromFD(n);switch(F){case 21509:return d.tty?0:-59;case 21505:{if(!d.tty)return-59;if(d.tty.ops.ioctl_tcgets){var p=d.tty.ops.ioctl_tcgets(d),_=tA();M0[_>>2]=p.c_iflag||0,M0[_+4>>2]=p.c_oflag||0,M0[_+8>>2]=p.c_cflag||0,M0[_+12>>2]=p.c_lflag||0;for(var M=0;M<32;M++)Ax[_+M+17]=p.c_cc[M]||0;return 0}return 0}case 21510:case 21511:case 21512:return d.tty?0:-59;case 21506:case 21507:case 21508:{if(!d.tty)return-59;if(d.tty.ops.ioctl_tcsets){for(var _=tA(),z=M0[_>>2],o0=M0[_+4>>2],k0=M0[_+8>>2],z0=M0[_+12>>2],I0=[],M=0;M<32;M++)I0.push(Ax[_+M+17]);return d.tty.ops.ioctl_tcsets(d.tty,F,{c_iflag:z,c_oflag:o0,c_cflag:k0,c_lflag:z0,c_cc:I0})}return 0}case 21519:{if(!d.tty)return-59;var _=tA();return M0[_>>2]=0,0}case 21520:return d.tty?-28:-59;case 21537:case 21531:{var _=tA();return a.ioctl(d,F,_)}case 21523:{if(!d.tty)return-59;if(d.tty.ops.ioctl_tiocgwinsz){var P0=d.tty.ops.ioctl_tiocgwinsz(d.tty),_=tA();O0[_>>1]=P0[0],O0[_+2>>1]=P0[1]}return 0}case 21524:return d.tty?0:-59;case 21515:return d.tty?0:-59;default:return-28}}catch(j0){if(typeof a>"u"||j0.name!=="ErrnoError")throw j0;return-j0.errno}}function De(n,F,f,d){y0.varargs=d;try{F=y0.getStr(F),F=y0.calculateAt(n,F);var p=d?jA():0;return f&64&&(p&=~y0.currentUmask),a.open(F,f,p).fd}catch(_){if(typeof a>"u"||_.name!=="ErrnoError")throw _;return-_.errno}}function de(n,F,f,d){try{if(F=y0.getStr(F),F=y0.calculateAt(n,F),d<=0)return-28;var p=a.readlink(F),_=Math.min(d,TA(p)),M=Ax[f+_];return rr(p,f,d+1),Ax[f+_]=M,_}catch(z){if(typeof a>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}function ue(n,F,f,d){try{return F=y0.getStr(F),d=y0.getStr(d),F=y0.calculateAt(n,F),d=y0.calculateAt(f,d),a.rename(F,d),0}catch(p){if(typeof a>"u"||p.name!=="ErrnoError")throw p;return-p.errno}}function er(n){try{return n=y0.getStr(n),a.rmdir(n),0}catch(F){if(typeof a>"u"||F.name!=="ErrnoError")throw F;return-F.errno}}function Lr(n,F,f){try{if(F=y0.getStr(F),F=y0.calculateAt(n,F),!f)a.unlink(F);else if(f===512)a.rmdir(F);else return-28;return 0}catch(d){if(typeof a>"u"||d.name!=="ErrnoError")throw d;return-d.errno}}var IA=()=>{throw new Y},tr=()=>performance.now(),be=()=>Date.now(),Rr=1,pe=n=>n>=0&&n<=3,MA=9007199254740992,ur=-9007199254740992,Or=n=>n<ur||n>MA?NaN:Number(n);function Gr(n,F,f){if(F=Or(F),!pe(n))return 28;var d;if(n===0)d=be();else if(Rr)d=tr();else return 52;var p=Math.round(d*1e3*1e3);return G0[f>>3]=BigInt(p),0}var je=()=>2147483648,Ur=(n,F)=>Math.ceil(n/F)*F,me=n=>{var F=T0.buffer.byteLength,f=(n-F+65535)/65536|0;try{return T0.grow(f),K(),1}catch{}},he=n=>{var F=Hx.length;n>>>=0;var f=je();if(n>f)return!1;for(var d=1;d<=4;d*=2){var p=F*(1+.2/d);p=Math.min(p,n+100663296);var _=Math.min(f,Ur(Math.max(n,p),65536)),M=me(_);if(M)return!0}return!1};function nr(n){try{var F=y0.getStreamFromFD(n);return a.close(F),0}catch(f){if(typeof a>"u"||f.name!=="ErrnoError")throw f;return f.errno}}var ge=(n,F,f,d)=>{for(var p=0,_=0;_<f;_++){var M=F0[F>>2],z=F0[F+4>>2];F+=8;var o0=a.read(n,Ax,M,z,d);if(o0<0)return-1;if(p+=o0,o0<z)break;typeof d<"u"&&(d+=o0)}return p};function ye(n,F,f,d){try{var p=y0.getStreamFromFD(n),_=ge(p,F,f);return F0[d>>2]=_,0}catch(M){if(typeof a>"u"||M.name!=="ErrnoError")throw M;return M.errno}}function Hr(n,F,f,d){F=Or(F);try{if(isNaN(F))return 22;var p=y0.getStreamFromFD(n);return a.llseek(p,F,f),G0[d>>3]=BigInt(p.position),p.getdents&&F===0&&f===0&&(p.getdents=null),0}catch(_){if(typeof a>"u"||_.name!=="ErrnoError")throw _;return _.errno}}var Kr=(n,F,f,d)=>{for(var p=0,_=0;_<f;_++){var M=F0[F>>2],z=F0[F+4>>2];F+=8;var o0=a.write(n,Ax,M,z,d);if(o0<0)return-1;if(p+=o0,o0<z)break;typeof d<"u"&&(d+=o0)}return p};function LA(n,F,f,d){try{var p=y0.getStreamFromFD(n),_=Kr(p,F,f);return F0[d>>2]=_,0}catch(M){if(typeof a>"u"||M.name!=="ErrnoError")throw M;return M.errno}}var zr=0,RA=()=>xr||zr>0,br=n=>{w=n,RA()||(t.onExit?.(n),e0=!0),k(n,new lA(n))},gx=(n,F)=>{w=n,RA()||D0(),br(n)},ke=n=>{if(n instanceof lA||n=="unwind")return w;k(1,n)},mA=n=>J(n),OA=n=>{var F=TA(n)+1,f=mA(F);return rr(n,f,F),f},pr=[],ox=n=>{var F=pr[n];return F||(pr[n]=F=w0.get(n)),F},ir=(...n)=>a.createPath(...n),GA=(...n)=>a.unlink(...n),s=(...n)=>a.createLazyFile(...n),v=(...n)=>a.createDevice(...n);if(a.createPreloadedFile=le,a.preloadFile=pA,a.staticInit(),t.noExitRuntime&&(xr=t.noExitRuntime),t.preloadPlugins&&(Ar=t.preloadPlugins),t.print&&(I=t.print),t.printErr&&(L=t.printErr),t.wasmBinary&&(R=t.wasmBinary),t.arguments&&(j=t.arguments),t.thisProgram&&(b=t.thisProgram),t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()();t.callMain=xt,t.addRunDependency=hx,t.removeRunDependency=Dr,t.FS_preloadFile=pA,t.FS_unlink=GA,t.FS_createPath=ir,t.FS_createDevice=v,t.FS=a,t.FS_createDataFile=cr,t.FS_createLazyFile=s,t.PROXYFS=g0;var c,u,h,$,G,J,s0,l0,U0,T0,w0;function p0(n){c=t._main=n.__main_argc_argv,u=n.fflush,h=n.__funcs_on_exit,$=n.setThrew,G=n._emscripten_stack_restore,J=n._emscripten_stack_alloc,s0=n.emscripten_stack_get_current,l0=T0=n.memory,U0=w0=n.__indirect_function_table}var X0={__assert_fail:dA,__syscall_faccessat:dr,__syscall_fcntl64:ce,__syscall_getcwd:Ir,__syscall_ioctl:Mr,__syscall_openat:De,__syscall_readlinkat:de,__syscall_renameat:ue,__syscall_rmdir:er,__syscall_unlinkat:Lr,_emscripten_throw_longjmp:IA,clock_time_get:Gr,emscripten_resize_heap:he,fd_close:nr,fd_read:ye,fd_seek:Hr,fd_write:LA,invoke_i:UA,invoke_ii:$x,invoke_iii:qx,invoke_iiid:Rt,invoke_iiii:Tx,invoke_iiiii:rx,invoke_iiiiii:Ot,invoke_iijii:Mt,invoke_v:fx,invoke_vi:Lt,invoke_vii:yx,invoke_viii:Ze,invoke_viiii:nA,invoke_viiiii:Qe};function fx(n){var F=h0();try{ox(n)()}catch(f){if(Z0(F),!(f instanceof O))throw f;$(1,0)}}function yx(n,F,f){var d=h0();try{ox(n)(F,f)}catch(p){if(Z0(d),!(p instanceof O))throw p;$(1,0)}}function $x(n,F){var f=h0();try{return ox(n)(F)}catch(d){if(Z0(f),!(d instanceof O))throw d;$(1,0)}}function qx(n,F,f){var d=h0();try{return ox(n)(F,f)}catch(p){if(Z0(d),!(p instanceof O))throw p;$(1,0)}}function UA(n){var F=h0();try{return ox(n)()}catch(f){if(Z0(F),!(f instanceof O))throw f;$(1,0)}}function Tx(n,F,f,d){var p=h0();try{return ox(n)(F,f,d)}catch(_){if(Z0(p),!(_ instanceof O))throw _;$(1,0)}}function nA(n,F,f,d,p){var _=h0();try{ox(n)(F,f,d,p)}catch(M){if(Z0(_),!(M instanceof O))throw M;$(1,0)}}function rx(n,F,f,d,p){var _=h0();try{return ox(n)(F,f,d,p)}catch(M){if(Z0(_),!(M instanceof O))throw M;$(1,0)}}function Qe(n,F,f,d,p,_){var M=h0();try{ox(n)(F,f,d,p,_)}catch(z){if(Z0(M),!(z instanceof O))throw z;$(1,0)}}function Mt(n,F,f,d,p){var _=h0();try{return ox(n)(F,f,d,p)}catch(M){if(Z0(_),!(M instanceof O))throw M;$(1,0)}}function Lt(n,F){var f=h0();try{ox(n)(F)}catch(d){if(Z0(f),!(d instanceof O))throw d;$(1,0)}}function Ze(n,F,f,d){var p=h0();try{ox(n)(F,f,d)}catch(_){if(Z0(p),!(_ instanceof O))throw _;$(1,0)}}function Rt(n,F,f,d){var p=h0();try{return ox(n)(F,f,d)}catch(_){if(Z0(p),!(_ instanceof O))throw _;$(1,0)}}function Ot(n,F,f,d,p,_){var M=h0();try{return ox(n)(F,f,d,p,_)}catch(z){if(Z0(M),!(z instanceof O))throw z;$(1,0)}}function xt(n=[]){var F=c;n.unshift(b);var f=n.length,d=mA((f+1)*4),p=d;for(var _ of n)F0[p>>2]=OA(_),p+=4;F0[p>>2]=0;try{var M=F(f,d);return gx(M,!0),M}catch(z){return ke(z)}}function _e(n=j){if(tx>0){b0=_e;return}if(U(),tx>0){b0=_e;return}function F(){if(t.calledRun=!0,!e0){a0(),H?.(t),t.onRuntimeInitialized?.();var f=t.noInitialRun||!0;f||xt(n),u0()}}t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),F()},1)):F()}var jr;return jr=await Dx(),_e(),r0?o=t:o=new Promise((n,F)=>{H=n,Z=F}),o}})();typeof A=="object"&&typeof x=="object"?(x.exports=r,x.exports.default=r):typeof define=="function"&&define.amd&&define([],()=>r)}}),e8=Gi({"wasm/bin/pawndbg.js"(A,x){"use strict";var r=(()=>{var e=globalThis.document?.currentScript?.src;return async function(i={}){var o,t=i,B=!!globalThis.window,l=!!globalThis.WorkerGlobalScope,D=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer",j=[],b="./this.program",k=(s,v)=>{throw v};typeof __filename<"u"?e=__filename:l&&(e=self.location.href);var q="",y,S;if(D){var T=require("fs");q=__dirname+"/",S=s=>{s=g(s)?new URL(s):s;var v=T.readFileSync(s);return v},y=async(s,v=!0)=>{s=g(s)?new URL(s):s;var c=T.readFileSync(s,v?void 0:"utf8");return c},process.argv.length>1&&(b=process.argv[1].replace(/\\/g,"/")),j=process.argv.slice(2),k=(s,v)=>{throw process.exitCode=s,v}}else if(B||l){try{q=new URL(".",e).href}catch{}l&&(S=s=>{var v=new XMLHttpRequest;return v.open("GET",s,!1),v.responseType="arraybuffer",v.send(null),new Uint8Array(v.response)}),y=async s=>{if(g(s))return new Promise((c,u)=>{var h=new XMLHttpRequest;h.open("GET",s,!0),h.responseType="arraybuffer",h.onload=()=>{if(h.status==200||h.status==0&&h.response){c(h.response);return}u(h.status)},h.onerror=u,h.send(null)});var v=await fetch(s,{credentials:"same-origin"});if(v.ok)return v.arrayBuffer();throw new Error(v.status+" : "+v.url)}}var I=console.log.bind(console),L=console.error.bind(console),R,e0=!1,w,g=s=>s.startsWith("file://");class O{}class Y extends O{}function x0(s){for(var v=0,c=s.length,u=new Uint8Array(c),h;v<c;++v)h=s.charCodeAt(v),u[v]=~h>>8&h;return u}var H,Z,r0=!1,n0=!1;function K(){var s=mA.buffer;Ax=new Int8Array(s),O0=new Int16Array(s),Hx=new Uint8Array(s),Ee=new Uint16Array(s),M0=new Int32Array(s),F0=new Uint32Array(s),Fe=new Float32Array(s),ve=new Float64Array(s),G0=new BigInt64Array(s),Be=new BigUint64Array(s)}function U(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)Nr(t.preRun.shift());cA(Ix)}function a0(){r0=!0,!t.noFSInit&&!a.initialized&&a.init(),W0.init(),GA.__wasm_call_ctors(),a.ignorePermissions=!1}function v0(){}function D0(){Kr(),a.quit(),W0.shutdown(),n0=!0}function u0(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Tr(t.postRun.shift());cA(DA)}function _0(s){t.onAbort?.(s),s=`Aborted(${s})`,L(s),e0=!0,s+=". Build with -sASSERTIONS for more info.";var v=new WebAssembly.RuntimeError(s);throw Z?.(v),v}var q0;function V0(){return x0(`\0asm\0\0\0\xB4\`\x7F\x7F\`\x7F\0\`\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\`\x7F\x7F\x7F\0\`\x7F~~~~\0\`\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\0\`\x7F~\x7F~\`\x7F\x7F\x7F\x7F\0\`\0\0\`\0\x7F\`\x7F~~\x7F\0\`\x7F|\x7F\x7F\x7F\x7F\x7F\`\x7F~\x7F\x7F\x7F\`\x7F\x7F|\0\`\x7F~\0\`\x7F|\`\x7F~~~\0\`\x7F~\`|\x7F|\`\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`~\x7F\x7F\`\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F~\0\`~~~~\x7F\`~~~\x7F\`\x7F|\0\xFD env\r__assert_fail\0 env__syscall_openat\0env__syscall_fcntl64\0env__syscall_ioctl\0wasi_snapshot_preview1\bfd_write\0wasi_snapshot_preview1\x07fd_read\0wasi_snapshot_preview1\bfd_close\0\0wasi_snapshot_preview1\x07fd_seek\0envemscripten_resize_heap\0\0VU
|
|
1163
1163
|
|
|
1164
1164
|
\0\x07\v\v\0\b\0\0 \x07\0 \0\b\0\0\f\0\0\r\0\0\x07\0\f\x1B\x07\x07\f\0\v
|
|
1165
1165
|
p\r\r\x07\x82\x80\x80\b\x7FA\x80\xAC\v\x07\xBD memory\0__wasm_call_ctors\0 __main_argc_argv\0
|
|
@@ -1524,28 +1524,28 @@ Usage: pawndbg -f <mapfile> [options]
|
|
|
1524
1524
|
\v\f\r\x1B !"#\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x07\0A\xC0\x1B\v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0A\xE4\x1B\v\x07\0A\xFC\x1B\v
|
|
1525
1525
|
\0\0\0\0\0\0\xEC\0A\x94\v\0A\xA4\v\b\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0A\xE8\v \xD8\r\0\0\0\0\0\0\0A\xFC\v\b\0A\x94\v\0\0\0 \0\0\0\xF8\0\0\0\0A\xAC\v\0A\xBC\v\xFF\xFF\xFF\xFF
|
|
1526
1526
|
\0A\x80\v\vp\0\0D\0\0\0`)}function Ex(s){return s}async function fA(s){return s}async function CA(s,v){try{var c=await fA(s),u=await WebAssembly.instantiate(c,v);return u}catch(h){L(`failed to asynchronously prepare wasm: ${h}`),_0(h)}}async function PA(s,v,c){return CA(v,c)}function R0(){var s={env:pr,wasi_snapshot_preview1:pr};return s}async function Dx(){function s($,G){return GA=$.exports,OA(GA),K(),GA}function v($){return s($.instance)}var c=R0();if(t.instantiateWasm)return new Promise(($,G)=>{t.instantiateWasm(c,(J,s0)=>{$(s(J,s0))})});q0??(q0=V0());var u=await PA(R,q0,c),h=v(u);return h}class lA{constructor(v){Fx(this,"name","ExitStatus"),this.message=`Program terminated with exit(${v})`,this.status=v}}var O0,M0,G0,Ax,Fe,ve,Ee,F0,Be,Hx,cA=s=>{for(;s.length>0;)s.shift()(t)},DA=[],Tr=s=>DA.push(s),Ix=[],Nr=s=>Ix.push(s),xr=!1,Z0=globalThis.TextDecoder&&new TextDecoder,h0=(s,v,c,u)=>{var h=v+c;if(u)return h;for(;s[v]&&!(v>=h);)++v;return v},Kx=(s,v=0,c,u)=>{var h=h0(s,v,c,u);if(h-v>16&&s.buffer&&Z0)return Z0.decode(s.subarray(v,h));for(var $="";v<h;){var G=s[v++];if(!(G&128)){$+=String.fromCharCode(G);continue}var J=s[v++]&63;if((G&224)==192){$+=String.fromCharCode((G&31)<<6|J);continue}var s0=s[v++]&63;if((G&240)==224?G=(G&15)<<12|J<<6|s0:G=(G&7)<<18|J<<12|s0<<6|s[v++]&63,G<65536)$+=String.fromCharCode(G);else{var l0=G-65536;$+=String.fromCharCode(55296|l0>>10,56320|l0&1023)}}return $},Bx=(s,v,c)=>s?Kx(Hx,s,v,c):"",AA=(s,v,c,u)=>_0(`Assertion failed: ${Bx(s)}, at: `+[v?Bx(v):"unknown filename",c,u?Bx(u):"unknown function"]),zx=()=>{var s=M0[+y0.varargs>>2];return y0.varargs+=4,s},dA=zx,E0={isAbs:s=>s.charAt(0)==="/",splitPath:s=>{var v=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return v.exec(s).slice(1)},normalizeArray:(s,v)=>{for(var c=0,u=s.length-1;u>=0;u--){var h=s[u];h==="."?s.splice(u,1):h===".."?(s.splice(u,1),c++):c&&(s.splice(u,1),c--)}if(v)for(;c;c--)s.unshift("..");return s},normalize:s=>{var v=E0.isAbs(s),c=s.slice(-1)==="/";return s=E0.normalizeArray(s.split("/").filter(u=>!!u),!v).join("/"),!s&&!v&&(s="."),s&&c&&(s+="/"),(v?"/":"")+s},dirname:s=>{var v=E0.splitPath(s),c=v[0],u=v[1];return!c&&!u?".":(u&&(u=u.slice(0,-1)),c+u)},basename:s=>s&&s.match(/([^\/]+|\/)\/*$/)[1],join:(...s)=>E0.normalize(s.join("/")),join2:(s,v)=>E0.normalize(s+"/"+v)},fe=()=>{if(D){var s=require("crypto");return v=>s.randomFillSync(v)}return v=>(crypto.getRandomValues(v),0)},Cr=s=>(Cr=fe())(s),sx={resolve:(...s)=>{for(var v="",c=!1,u=s.length-1;u>=-1&&!c;u--){var h=u>=0?s[u]:a.cwd();if(typeof h!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!h)return"";v=h+"/"+v,c=E0.isAbs(h)}return v=E0.normalizeArray(v.split("/").filter($=>!!$),!c).join("/"),(c?"/":"")+v||"."},relative:(s,v)=>{s=sx.resolve(s).slice(1),v=sx.resolve(v).slice(1);function c(l0){for(var U0=0;U0<l0.length&&l0[U0]==="";U0++);for(var T0=l0.length-1;T0>=0&&l0[T0]==="";T0--);return U0>T0?[]:l0.slice(U0,T0-U0+1)}for(var u=c(s.split("/")),h=c(v.split("/")),$=Math.min(u.length,h.length),G=$,J=0;J<$;J++)if(u[J]!==h[J]){G=J;break}for(var s0=[],J=G;J<u.length;J++)s0.push("..");return s0=s0.concat(h.slice(G)),s0.join("/")}},Px=[],TA=s=>{for(var v=0,c=0;c<s.length;++c){var u=s.charCodeAt(c);u<=127?v++:u<=2047?v+=2:u>=55296&&u<=57343?(v+=4,++c):v+=3}return v},lr=(s,v,c,u)=>{if(!(u>0))return 0;for(var h=c,$=c+u-1,G=0;G<s.length;++G){var J=s.codePointAt(G);if(J<=127){if(c>=$)break;v[c++]=J}else if(J<=2047){if(c+1>=$)break;v[c++]=192|J>>6,v[c++]=128|J&63}else if(J<=65535){if(c+2>=$)break;v[c++]=224|J>>12,v[c++]=128|J>>6&63,v[c++]=128|J&63}else{if(c+3>=$)break;v[c++]=240|J>>18,v[c++]=128|J>>12&63,v[c++]=128|J>>6&63,v[c++]=128|J&63,G++}}return v[c]=0,c-h},NA=(s,v,c)=>{var u=c>0?c:TA(s)+1,h=new Array(u),$=lr(s,h,0,h.length);return v&&(h.length=$),h},Ce=()=>{if(!Px.length){var s=null;if(D){var v=256,c=Buffer.alloc(v),u=0,h=process.stdin.fd;try{u=T.readSync(h,c,0,v)}catch($){if($.toString().includes("EOF"))u=0;else throw $}u>0&&(s=c.slice(0,u).toString("utf-8"))}else globalThis.window?.prompt&&(s=window.prompt("Input: "),s!==null&&(s+=`
|
|
1527
|
-
`));if(!s)return null;Px=NA(s,!0)}return Px.shift()},W0={ttys:[],init(){},shutdown(){},register(s,v){W0.ttys[s]={input:[],output:[],ops:v},a.registerDevice(s,W0.stream_ops)},stream_ops:{open(s){var v=W0.ttys[s.node.rdev];if(!v)throw new a.ErrnoError(43);s.tty=v,s.seekable=!1},close(s){s.tty.ops.fsync(s.tty)},fsync(s){s.tty.ops.fsync(s.tty)},read(s,v,c,u,h){if(!s.tty||!s.tty.ops.get_char)throw new a.ErrnoError(60);for(var $=0,G=0;G<u;G++){var J;try{J=s.tty.ops.get_char(s.tty)}catch{throw new a.ErrnoError(29)}if(J===void 0&&$===0)throw new a.ErrnoError(6);if(J==null)break;$++,v[c+G]=J}return $&&(s.node.atime=Date.now()),$},write(s,v,c,u,h){if(!s.tty||!s.tty.ops.put_char)throw new a.ErrnoError(60);try{for(var $=0;$<u;$++)s.tty.ops.put_char(s.tty,v[c+$])}catch{throw new a.ErrnoError(29)}return u&&(s.node.mtime=s.node.ctime=Date.now()),$}},default_tty_ops:{get_char(s){return Ce()},put_char(s,v){v===null||v===10?(I(Kx(s.output)),s.output=[]):v!=0&&s.output.push(v)},fsync(s){s.output?.length>0&&(I(Kx(s.output)),s.output=[])},ioctl_tcgets(s){return{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(s,v,c){return 0},ioctl_tiocgwinsz(s){return[24,80]}},default_tty1_ops:{put_char(s,v){v===null||v===10?(L(Kx(s.output)),s.output=[]):v!=0&&s.output.push(v)},fsync(s){s.output?.length>0&&(L(Kx(s.output)),s.output=[])}}},uA=s=>{_0()},t0={ops_table:null,mount(s){return t0.createNode(null,"/",16895,0)},createNode(s,v,c,u){if(a.isBlkdev(c)||a.isFIFO(c))throw new a.ErrnoError(63);t0.ops_table||(t0.ops_table={dir:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr,lookup:t0.node_ops.lookup,mknod:t0.node_ops.mknod,rename:t0.node_ops.rename,unlink:t0.node_ops.unlink,rmdir:t0.node_ops.rmdir,readdir:t0.node_ops.readdir,symlink:t0.node_ops.symlink},stream:{llseek:t0.stream_ops.llseek}},file:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr},stream:{llseek:t0.stream_ops.llseek,read:t0.stream_ops.read,write:t0.stream_ops.write,mmap:t0.stream_ops.mmap,msync:t0.stream_ops.msync}},link:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr,readlink:t0.node_ops.readlink},stream:{}},chrdev:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr},stream:a.chrdev_stream_ops}});var h=a.createNode(s,v,c,u);return a.isDir(h.mode)?(h.node_ops=t0.ops_table.dir.node,h.stream_ops=t0.ops_table.dir.stream,h.contents={}):a.isFile(h.mode)?(h.node_ops=t0.ops_table.file.node,h.stream_ops=t0.ops_table.file.stream,h.usedBytes=0,h.contents=t0.emptyFileContents??(t0.emptyFileContents=new Uint8Array(0))):a.isLink(h.mode)?(h.node_ops=t0.ops_table.link.node,h.stream_ops=t0.ops_table.link.stream):a.isChrdev(h.mode)&&(h.node_ops=t0.ops_table.chrdev.node,h.stream_ops=t0.ops_table.chrdev.stream),h.atime=h.mtime=h.ctime=Date.now(),s&&(s.contents[v]=h,s.atime=s.mtime=s.ctime=h.atime),h},getFileDataAsTypedArray(s){return s.contents.subarray(0,s.usedBytes)},expandFileStorage(s,v){var c=s.contents.length;if(!(c>=v)){var u=1024*1024;v=Math.max(v,c*(c<u?2:1.125)>>>0),c&&(v=Math.max(v,256));var h=t0.getFileDataAsTypedArray(s);s.contents=new Uint8Array(v),s.contents.set(h)}},resizeFileStorage(s,v){if(s.usedBytes!=v){var c=s.contents;s.contents=new Uint8Array(v),s.contents.set(c.subarray(0,Math.min(v,s.usedBytes))),s.usedBytes=v}},node_ops:{getattr(s){var v={};return v.dev=a.isChrdev(s.mode)?s.id:1,v.ino=s.id,v.mode=s.mode,v.nlink=1,v.uid=0,v.gid=0,v.rdev=s.rdev,a.isDir(s.mode)?v.size=4096:a.isFile(s.mode)?v.size=s.usedBytes:a.isLink(s.mode)?v.size=s.link.length:v.size=0,v.atime=new Date(s.atime),v.mtime=new Date(s.mtime),v.ctime=new Date(s.ctime),v.blksize=4096,v.blocks=Math.ceil(v.size/v.blksize),v},setattr(s,v){for(let c of["mode","atime","mtime","ctime"])v[c]!=null&&(s[c]=v[c]);v.size!==void 0&&t0.resizeFileStorage(s,v.size)},lookup(s,v){throw t0.doesNotExistError||(t0.doesNotExistError=new a.ErrnoError(44),t0.doesNotExistError.stack="<generic error, no stack>"),t0.doesNotExistError},mknod(s,v,c,u){return t0.createNode(s,v,c,u)},rename(s,v,c){var u;try{u=a.lookupNode(v,c)}catch{}if(u){if(a.isDir(s.mode))for(var h in u.contents)throw new a.ErrnoError(55);a.hashRemoveNode(u)}delete s.parent.contents[s.name],v.contents[c]=s,s.name=c,v.ctime=v.mtime=s.parent.ctime=s.parent.mtime=Date.now()},unlink(s,v){delete s.contents[v],s.ctime=s.mtime=Date.now()},rmdir(s,v){var c=a.lookupNode(s,v);for(var u in c.contents)throw new a.ErrnoError(55);delete s.contents[v],s.ctime=s.mtime=Date.now()},readdir(s){return[".","..",...Object.keys(s.contents)]},symlink(s,v,c){var u=t0.createNode(s,v,41471,0);return u.link=c,u},readlink(s){if(!a.isLink(s.mode))throw new a.ErrnoError(28);return s.link}},stream_ops:{read(s,v,c,u,h){var $=s.node.contents;if(h>=s.node.usedBytes)return 0;var G=Math.min(s.node.usedBytes-h,u);return v.set($.subarray(h,h+G),c),G},write(s,v,c,u,h,$){if(v.buffer===Ax.buffer&&($=!1),!u)return 0;var G=s.node;return G.mtime=G.ctime=Date.now(),$?(G.contents=v.subarray(c,c+u),G.usedBytes=u):G.usedBytes===0&&h===0?(G.contents=v.slice(c,c+u),G.usedBytes=u):(t0.expandFileStorage(G,h+u),G.contents.set(v.subarray(c,c+u),h),G.usedBytes=Math.max(G.usedBytes,h+u)),u},llseek(s,v,c){var u=v;if(c===1?u+=s.position:c===2&&a.isFile(s.node.mode)&&(u+=s.node.usedBytes),u<0)throw new a.ErrnoError(28);return u},mmap(s,v,c,u,h){if(!a.isFile(s.node.mode))throw new a.ErrnoError(43);var $,G,J=s.node.contents;if(!(h&2)&&J.buffer===Ax.buffer)G=!1,$=J.byteOffset;else{if(G=!0,$=uA(v),!$)throw new a.ErrnoError(48);J&&((c>0||c+v<J.length)&&(J.subarray?J=J.subarray(c,c+v):J=Array.prototype.slice.call(J,c,c+v)),Ax.set(J,$))}return{ptr:$,allocated:G}},msync(s,v,c,u,h){return t0.stream_ops.write(s,v,0,u,c,!1),0}}},bA=s=>{if(typeof s!="string")return s;var v={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},c=v[s];if(typeof c>"u")throw new Error(`Unknown file open mode: ${s}`);return c},Mx=s=>(typeof s=="string"&&(s=NA(s,!0)),s.subarray||(s=new Uint8Array(s)),s),Jx=(s,v)=>{var c=0;return s&&(c|=365),v&&(c|=146),c},S0={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},g0={mount(s){return g0.createNode(null,"/",s.opts.fs.lstat(s.opts.root).mode,0)},createNode(s,v,c,u){if(!a.isDir(c)&&!a.isFile(c)&&!a.isLink(c))throw new a.ErrnoError(S0.EINVAL);var h=a.createNode(s,v,c);return h.node_ops=g0.node_ops,h.stream_ops=g0.stream_ops,h},realPath(s){for(var v=[];s.parent!==s;)v.push(s.name),s=s.parent;return v.push(s.mount.opts.root),v.reverse(),E0.join(...v)},node_ops:{getattr(s){var v=g0.realPath(s),c;try{c=s.mount.opts.fs.lstat(v)}catch(u){throw u.code?new a.ErrnoError(S0[u.code]):u}return{dev:c.dev,ino:c.ino,mode:c.mode,nlink:c.nlink,uid:c.uid,gid:c.gid,rdev:c.rdev,size:c.size,atime:c.atime,mtime:c.mtime,ctime:c.ctime,blksize:c.blksize,blocks:c.blocks}},setattr(s,v){var c=g0.realPath(s);try{if(v.mode!==void 0&&(s.mount.opts.fs.chmod(c,v.mode),s.mode=v.mode),v.atime||v.mtime){var u=new Date(v.atime||v.mtime),h=new Date(v.mtime||v.atime);s.mount.opts.fs.utime(c,u,h)}v.size!==void 0&&s.mount.opts.fs.truncate(c,v.size)}catch($){throw $.code?new a.ErrnoError(S0[$.code]):$}},lookup(s,v){try{var c=E0.join2(g0.realPath(s),v),u=s.mount.opts.fs.lstat(c).mode,h=g0.createNode(s,v,u);return h}catch($){throw $.code?new a.ErrnoError(S0[$.code]):$}},mknod(s,v,c,u){var h=g0.createNode(s,v,c,u),$=g0.realPath(h);try{a.isDir(h.mode)?h.mount.opts.fs.mkdir($,h.mode):h.mount.opts.fs.writeFile($,"",{mode:h.mode})}catch(G){throw G.code?new a.ErrnoError(S0[G.code]):G}return h},rename(s,v,c){var u=g0.realPath(s),h=E0.join2(g0.realPath(v),c);try{s.mount.opts.fs.rename(u,h),s.name=c}catch($){throw $.code?new a.ErrnoError(S0[$.code]):$}},unlink(s,v){var c=E0.join2(g0.realPath(s),v);try{s.mount.opts.fs.unlink(c)}catch(u){throw u.code?new a.ErrnoError(S0[u.code]):u}},rmdir(s,v){var c=E0.join2(g0.realPath(s),v);try{s.mount.opts.fs.rmdir(c)}catch(u){throw u.code?new a.ErrnoError(S0[u.code]):u}},readdir(s){var v=g0.realPath(s);try{return s.mount.opts.fs.readdir(v)}catch(c){throw c.code?new a.ErrnoError(S0[c.code]):c}},symlink(s,v,c){var u=E0.join2(g0.realPath(s),v);try{s.mount.opts.fs.symlink(c,u)}catch(h){throw h.code?new a.ErrnoError(S0[h.code]):h}},readlink(s){var v=g0.realPath(s);try{return s.mount.opts.fs.readlink(v)}catch(c){throw c.code?new a.ErrnoError(S0[c.code]):c}}},stream_ops:{open(s){var v=g0.realPath(s.node);try{s.nfd=s.node.mount.opts.fs.open(v,s.flags)}catch(c){throw c.code?new a.ErrnoError(S0[c.code]):c}},close(s){try{s.node.mount.opts.fs.close(s.nfd)}catch(v){throw v.code?new a.ErrnoError(S0[v.code]):v}},read(s,v,c,u,h){try{return s.node.mount.opts.fs.read(s.nfd,v,c,u,h)}catch($){throw $.code?new a.ErrnoError(S0[$.code]):$}},write(s,v,c,u,h){try{return s.node.mount.opts.fs.write(s.nfd,v,c,u,h)}catch($){throw $.code?new a.ErrnoError(S0[$.code]):$}},llseek(s,v,c){var u=v;if(c===1)u+=s.position;else if(c===2&&a.isFile(s.node.mode))try{var h=s.node.node_ops.getattr(s.node);u+=h.size}catch($){throw new a.ErrnoError(S0[$.code])}if(u<0)throw new a.ErrnoError(S0.EINVAL);return u}}},rA=async s=>{var v=await y(s);return new Uint8Array(v)},cr=(...s)=>a.createDataFile(...s),ax=s=>s,tx=0,b0=null,Dr=s=>{if(tx--,t.monitorRunDependencies?.(tx),tx==0&&b0){var v=b0;b0=null,v()}},hx=s=>{tx++,t.monitorRunDependencies?.(tx)},Ar=[],eA=async(s,v)=>{typeof Browser<"u"&&Browser.init();for(var c of Ar)if(c.canHandle(v))return c.handle(s,v);return s},pA=async(s,v,c,u,h,$,G,J)=>{var s0=v?sx.resolve(E0.join2(s,v)):s,l0=ax(`cp ${s0}`);hx(l0);try{var U0=c;typeof c=="string"&&(U0=await rA(c)),U0=await eA(U0,s0),J?.(),$||cr(s,v,U0,u,h,G)}finally{Dr(l0)}},le=(s,v,c,u,h,$,G,J,s0,l0)=>{pA(s,v,c,u,h,J,s0,l0).then($).catch(G)},a={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,ErrnoError:class{constructor(s){Fx(this,"name","ErrnoError"),this.errno=s}},FSStream:class{constructor(){Fx(this,"shared",{})}get object(){return this.node}set object(s){this.node=s}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(s){this.shared.flags=s}get position(){return this.shared.position}set position(s){this.shared.position=s}},FSNode:class{constructor(s,v,c,u){Fx(this,"node_ops",{}),Fx(this,"stream_ops",{}),Fx(this,"readMode",365),Fx(this,"writeMode",146),Fx(this,"mounted",null),s||(s=this),this.parent=s,this.mount=s.mount,this.id=a.nextInode++,this.name=v,this.mode=c,this.rdev=u,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(s){s?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(s){s?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return a.isDir(this.mode)}get isDevice(){return a.isChrdev(this.mode)}},lookupPath(s,v={}){if(!s)throw new a.ErrnoError(44);v.follow_mount??(v.follow_mount=!0),E0.isAbs(s)||(s=a.cwd()+"/"+s);x:for(var c=0;c<40;c++){for(var u=s.split("/").filter(l0=>!!l0),h=a.root,$="/",G=0;G<u.length;G++){var J=G===u.length-1;if(J&&v.parent)break;if(u[G]!=="."){if(u[G]===".."){if($=E0.dirname($),a.isRoot(h)){s=$+"/"+u.slice(G+1).join("/"),c--;continue x}else h=h.parent;continue}$=E0.join2($,u[G]);try{h=a.lookupNode(h,u[G])}catch(l0){if(l0?.errno===44&&J&&v.noent_okay)return{path:$};throw l0}if(a.isMountpoint(h)&&(!J||v.follow_mount)&&(h=h.mounted.root),a.isLink(h.mode)&&(!J||v.follow)){if(!h.node_ops.readlink)throw new a.ErrnoError(52);var s0=h.node_ops.readlink(h);E0.isAbs(s0)||(s0=E0.dirname($)+"/"+s0),s=s0+"/"+u.slice(G+1).join("/");continue x}}}return{path:$,node:h}}throw new a.ErrnoError(32)},getPath(s){for(var v;;){if(a.isRoot(s)){var c=s.mount.mountpoint;return v?c[c.length-1]!=="/"?`${c}/${v}`:c+v:c}v=v?`${s.name}/${v}`:s.name,s=s.parent}},hashName(s,v){for(var c=0,u=0;u<v.length;u++)c=(c<<5)-c+v.charCodeAt(u)|0;return(s+c>>>0)%a.nameTable.length},hashAddNode(s){var v=a.hashName(s.parent.id,s.name);s.name_next=a.nameTable[v],a.nameTable[v]=s},hashRemoveNode(s){var v=a.hashName(s.parent.id,s.name);if(a.nameTable[v]===s)a.nameTable[v]=s.name_next;else for(var c=a.nameTable[v];c;){if(c.name_next===s){c.name_next=s.name_next;break}c=c.name_next}},lookupNode(s,v){var c=a.mayLookup(s);if(c)throw new a.ErrnoError(c);for(var u=a.hashName(s.id,v),h=a.nameTable[u];h;h=h.name_next){var $=h.name;if(h.parent.id===s.id&&$===v)return h}return a.lookup(s,v)},createNode(s,v,c,u){var h=new a.FSNode(s,v,c,u);return a.hashAddNode(h),h},destroyNode(s){a.hashRemoveNode(s)},isRoot(s){return s===s.parent},isMountpoint(s){return!!s.mounted},isFile(s){return(s&61440)===32768},isDir(s){return(s&61440)===16384},isLink(s){return(s&61440)===40960},isChrdev(s){return(s&61440)===8192},isBlkdev(s){return(s&61440)===24576},isFIFO(s){return(s&61440)===4096},isSocket(s){return(s&49152)===49152},flagsToPermissionString(s){var v=["r","w","rw"][s&3];return s&512&&(v+="w"),v},nodePermissions(s,v){return a.ignorePermissions?0:v.includes("r")&&!(s.mode&292)||v.includes("w")&&!(s.mode&146)||v.includes("x")&&!(s.mode&73)?2:0},mayLookup(s){if(!a.isDir(s.mode))return 54;var v=a.nodePermissions(s,"x");return v||(s.node_ops.lookup?0:2)},mayCreate(s,v){if(!a.isDir(s.mode))return 54;try{var c=a.lookupNode(s,v);return 20}catch{}return a.nodePermissions(s,"wx")},mayDelete(s,v,c){var u;try{u=a.lookupNode(s,v)}catch($){return $.errno}var h=a.nodePermissions(s,"wx");if(h)return h;if(c){if(!a.isDir(u.mode))return 54;if(a.isRoot(u)||a.getPath(u)===a.cwd())return 10}else if(a.isDir(u.mode))return 31;return 0},mayOpen(s,v){if(!s)return 44;if(a.isLink(s.mode))return 32;var c=a.flagsToPermissionString(v);return a.isDir(s.mode)&&(c!=="r"||v&576)?31:a.nodePermissions(s,c)},checkOpExists(s,v){if(!s)throw new a.ErrnoError(v);return s},MAX_OPEN_FDS:4096,nextfd(){for(var s=0;s<=a.MAX_OPEN_FDS;s++)if(!a.streams[s])return s;throw new a.ErrnoError(33)},getStreamChecked(s){var v=a.getStream(s);if(!v)throw new a.ErrnoError(8);return v},getStream:s=>a.streams[s],createStream(s,v=-1){return s=Object.assign(new a.FSStream,s),v==-1&&(v=a.nextfd()),s.fd=v,a.streams[v]=s,s},closeStream(s){a.streams[s]=null},dupStream(s,v=-1){var c=a.createStream(s,v);return c.stream_ops?.dup?.(c),c},doSetAttr(s,v,c){var u=s?.stream_ops.setattr,h=u?s:v;u??(u=v.node_ops.setattr),a.checkOpExists(u,63);try{u(h,c)}catch($){throw $ instanceof RangeError?new a.ErrnoError(22):$}},chrdev_stream_ops:{open(s){var v=a.getDevice(s.node.rdev);s.stream_ops=v.stream_ops,s.stream_ops.open?.(s)},llseek(){throw new a.ErrnoError(70)}},major:s=>s>>8,minor:s=>s&255,makedev:(s,v)=>s<<8|v,registerDevice(s,v){a.devices[s]={stream_ops:v}},getDevice:s=>a.devices[s],getMounts(s){for(var v=[],c=[s];c.length;){var u=c.pop();v.push(u),c.push(...u.mounts)}return v},syncfs(s,v){typeof s=="function"&&(v=s,s=!1),a.syncFSRequests++,a.syncFSRequests>1&&L(`warning: ${a.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var c=a.getMounts(a.root.mount),u=0;function h(J){return a.syncFSRequests--,v(J)}function $(J){if(J)return $.errored?void 0:($.errored=!0,h(J));++u>=c.length&&h(null)}for(var G of c)G.type.syncfs?G.type.syncfs(G,s,$):$(null)},mount(s,v,c){var u=c==="/",h=!c,$;if(u&&a.root)throw new a.ErrnoError(10);if(!u&&!h){var G=a.lookupPath(c,{follow_mount:!1});if(c=G.path,$=G.node,a.isMountpoint($))throw new a.ErrnoError(10);if(!a.isDir($.mode))throw new a.ErrnoError(54)}var J={type:s,opts:v,mountpoint:c,mounts:[]},s0=s.mount(J);return s0.mount=J,J.root=s0,u?a.root=s0:$&&($.mounted=J,$.mount&&$.mount.mounts.push(J)),s0},unmount(s){var v=a.lookupPath(s,{follow_mount:!1});if(!a.isMountpoint(v.node))throw new a.ErrnoError(28);var c=v.node,u=c.mounted,h=a.getMounts(u);for(var[$,G]of Object.entries(a.nameTable))for(;G;){var J=G.name_next;h.includes(G.mount)&&a.destroyNode(G),G=J}c.mounted=null;var s0=c.mount.mounts.indexOf(u);c.mount.mounts.splice(s0,1)},lookup(s,v){return s.node_ops.lookup(s,v)},mknod(s,v,c){var u=a.lookupPath(s,{parent:!0}),h=u.node,$=E0.basename(s);if(!$)throw new a.ErrnoError(28);if($==="."||$==="..")throw new a.ErrnoError(20);var G=a.mayCreate(h,$);if(G)throw new a.ErrnoError(G);if(!h.node_ops.mknod)throw new a.ErrnoError(63);return h.node_ops.mknod(h,$,v,c)},statfs(s){return a.statfsNode(a.lookupPath(s,{follow:!0}).node)},statfsStream(s){return a.statfsNode(s.node)},statfsNode(s){var v={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:a.nextInode,ffree:a.nextInode-1,fsid:42,flags:2,namelen:255};return s.node_ops.statfs&&Object.assign(v,s.node_ops.statfs(s.mount.opts.root)),v},create(s,v=438){return v&=4095,v|=32768,a.mknod(s,v,0)},mkdir(s,v=511){return v&=1023,v|=16384,a.mknod(s,v,0)},mkdirTree(s,v){var c=s.split("/"),u="";for(var h of c)if(h){(u||E0.isAbs(s))&&(u+="/"),u+=h;try{a.mkdir(u,v)}catch($){if($.errno!=20)throw $}}},mkdev(s,v,c){return typeof c>"u"&&(c=v,v=438),v|=8192,a.mknod(s,v,c)},symlink(s,v){if(!sx.resolve(s))throw new a.ErrnoError(44);var c=a.lookupPath(v,{parent:!0}),u=c.node;if(!u)throw new a.ErrnoError(44);var h=E0.basename(v),$=a.mayCreate(u,h);if($)throw new a.ErrnoError($);if(!u.node_ops.symlink)throw new a.ErrnoError(63);return u.node_ops.symlink(u,h,s)},rename(s,v){var c=E0.dirname(s),u=E0.dirname(v),h=E0.basename(s),$=E0.basename(v),G,J,s0;if(G=a.lookupPath(s,{parent:!0}),J=G.node,G=a.lookupPath(v,{parent:!0}),s0=G.node,!J||!s0)throw new a.ErrnoError(44);if(J.mount!==s0.mount)throw new a.ErrnoError(75);var l0=a.lookupNode(J,h),U0=sx.relative(s,u);if(U0.charAt(0)!==".")throw new a.ErrnoError(28);if(U0=sx.relative(v,c),U0.charAt(0)!==".")throw new a.ErrnoError(55);var T0;try{T0=a.lookupNode(s0,$)}catch{}if(l0!==T0){var w0=a.isDir(l0.mode),p0=a.mayDelete(J,h,w0);if(p0)throw new a.ErrnoError(p0);if(p0=T0?a.mayDelete(s0,$,w0):a.mayCreate(s0,$),p0)throw new a.ErrnoError(p0);if(!J.node_ops.rename)throw new a.ErrnoError(63);if(a.isMountpoint(l0)||T0&&a.isMountpoint(T0))throw new a.ErrnoError(10);if(s0!==J&&(p0=a.nodePermissions(J,"w"),p0))throw new a.ErrnoError(p0);a.hashRemoveNode(l0);try{J.node_ops.rename(l0,s0,$),l0.parent=s0}catch(X0){throw X0}finally{a.hashAddNode(l0)}}},rmdir(s){var v=a.lookupPath(s,{parent:!0}),c=v.node,u=E0.basename(s),h=a.lookupNode(c,u),$=a.mayDelete(c,u,!0);if($)throw new a.ErrnoError($);if(!c.node_ops.rmdir)throw new a.ErrnoError(63);if(a.isMountpoint(h))throw new a.ErrnoError(10);c.node_ops.rmdir(c,u),a.destroyNode(h)},readdir(s){var v=a.lookupPath(s,{follow:!0}),c=v.node,u=a.checkOpExists(c.node_ops.readdir,54);return u(c)},unlink(s){var v=a.lookupPath(s,{parent:!0}),c=v.node;if(!c)throw new a.ErrnoError(44);var u=E0.basename(s),h=a.lookupNode(c,u),$=a.mayDelete(c,u,!1);if($)throw new a.ErrnoError($);if(!c.node_ops.unlink)throw new a.ErrnoError(63);if(a.isMountpoint(h))throw new a.ErrnoError(10);c.node_ops.unlink(c,u),a.destroyNode(h)},readlink(s){var v=a.lookupPath(s),c=v.node;if(!c)throw new a.ErrnoError(44);if(!c.node_ops.readlink)throw new a.ErrnoError(28);return c.node_ops.readlink(c)},stat(s,v){var c=a.lookupPath(s,{follow:!v}),u=c.node,h=a.checkOpExists(u.node_ops.getattr,63);return h(u)},fstat(s){var v=a.getStreamChecked(s),c=v.node,u=v.stream_ops.getattr,h=u?v:c;return u??(u=c.node_ops.getattr),a.checkOpExists(u,63),u(h)},lstat(s){return a.stat(s,!0)},doChmod(s,v,c,u){a.doSetAttr(s,v,{mode:c&4095|v.mode&-4096,ctime:Date.now(),dontFollow:u})},chmod(s,v,c){var u;if(typeof s=="string"){var h=a.lookupPath(s,{follow:!c});u=h.node}else u=s;a.doChmod(null,u,v,c)},lchmod(s,v){a.chmod(s,v,!0)},fchmod(s,v){var c=a.getStreamChecked(s);a.doChmod(c,c.node,v,!1)},doChown(s,v,c){a.doSetAttr(s,v,{timestamp:Date.now(),dontFollow:c})},chown(s,v,c,u){var h;if(typeof s=="string"){var $=a.lookupPath(s,{follow:!u});h=$.node}else h=s;a.doChown(null,h,u)},lchown(s,v,c){a.chown(s,v,c,!0)},fchown(s,v,c){var u=a.getStreamChecked(s);a.doChown(u,u.node,!1)},doTruncate(s,v,c){if(a.isDir(v.mode))throw new a.ErrnoError(31);if(!a.isFile(v.mode))throw new a.ErrnoError(28);var u=a.nodePermissions(v,"w");if(u)throw new a.ErrnoError(u);a.doSetAttr(s,v,{size:c,timestamp:Date.now()})},truncate(s,v){if(v<0)throw new a.ErrnoError(28);var c;if(typeof s=="string"){var u=a.lookupPath(s,{follow:!0});c=u.node}else c=s;a.doTruncate(null,c,v)},ftruncate(s,v){var c=a.getStreamChecked(s);if(v<0||(c.flags&2097155)===0)throw new a.ErrnoError(28);a.doTruncate(c,c.node,v)},utime(s,v,c){var u=a.lookupPath(s,{follow:!0}),h=u.node,$=a.checkOpExists(h.node_ops.setattr,63);$(h,{atime:v,mtime:c})},open(s,v,c=438){if(s==="")throw new a.ErrnoError(44);v=bA(v),v&64?c=c&4095|32768:c=0;var u,h;if(typeof s=="object")u=s;else{h=s.endsWith("/");var $=a.lookupPath(s,{follow:!(v&131072),noent_okay:!0});u=$.node,s=$.path}var G=!1;if(v&64)if(u){if(v&128)throw new a.ErrnoError(20)}else{if(h)throw new a.ErrnoError(31);u=a.mknod(s,c|511,0),G=!0}if(!u)throw new a.ErrnoError(44);if(a.isChrdev(u.mode)&&(v&=-513),v&65536&&!a.isDir(u.mode))throw new a.ErrnoError(54);if(!G){var J=a.mayOpen(u,v);if(J)throw new a.ErrnoError(J)}v&512&&!G&&a.truncate(u,0),v&=-131713;var s0=a.createStream({node:u,path:a.getPath(u),flags:v,seekable:!0,position:0,stream_ops:u.stream_ops,ungotten:[],error:!1});return s0.stream_ops.open&&s0.stream_ops.open(s0),G&&a.chmod(u,c&511),s0},close(s){if(a.isClosed(s))throw new a.ErrnoError(8);s.getdents&&(s.getdents=null);try{s.stream_ops.close&&s.stream_ops.close(s)}catch(v){throw v}finally{a.closeStream(s.fd)}s.fd=null},isClosed(s){return s.fd===null},llseek(s,v,c){if(a.isClosed(s))throw new a.ErrnoError(8);if(!s.seekable||!s.stream_ops.llseek)throw new a.ErrnoError(70);if(c!=0&&c!=1&&c!=2)throw new a.ErrnoError(28);return s.position=s.stream_ops.llseek(s,v,c),s.ungotten=[],s.position},read(s,v,c,u,h){if(u<0||h<0)throw new a.ErrnoError(28);if(a.isClosed(s))throw new a.ErrnoError(8);if((s.flags&2097155)===1)throw new a.ErrnoError(8);if(a.isDir(s.node.mode))throw new a.ErrnoError(31);if(!s.stream_ops.read)throw new a.ErrnoError(28);var $=typeof h<"u";if(!$)h=s.position;else if(!s.seekable)throw new a.ErrnoError(70);var G=s.stream_ops.read(s,v,c,u,h);return $||(s.position+=G),G},write(s,v,c,u,h,$){if(u<0||h<0)throw new a.ErrnoError(28);if(a.isClosed(s))throw new a.ErrnoError(8);if((s.flags&2097155)===0)throw new a.ErrnoError(8);if(a.isDir(s.node.mode))throw new a.ErrnoError(31);if(!s.stream_ops.write)throw new a.ErrnoError(28);s.seekable&&s.flags&1024&&a.llseek(s,0,2);var G=typeof h<"u";if(!G)h=s.position;else if(!s.seekable)throw new a.ErrnoError(70);var J=s.stream_ops.write(s,v,c,u,h,$);return G||(s.position+=J),J},mmap(s,v,c,u,h){if((u&2)!==0&&(h&2)===0&&(s.flags&2097155)!==2)throw new a.ErrnoError(2);if((s.flags&2097155)===1)throw new a.ErrnoError(2);if(!s.stream_ops.mmap)throw new a.ErrnoError(43);if(!v)throw new a.ErrnoError(28);return s.stream_ops.mmap(s,v,c,u,h)},msync(s,v,c,u,h){return s.stream_ops.msync?s.stream_ops.msync(s,v,c,u,h):0},ioctl(s,v,c){if(!s.stream_ops.ioctl)throw new a.ErrnoError(59);return s.stream_ops.ioctl(s,v,c)},readFile(s,v={}){v.flags=v.flags||0,v.encoding=v.encoding||"binary",v.encoding!=="utf8"&&v.encoding!=="binary"&&_0(`Invalid encoding type "${v.encoding}"`);var c=a.open(s,v.flags),u=a.stat(s),h=u.size,$=new Uint8Array(h);return a.read(c,$,0,h,0),v.encoding==="utf8"&&($=Kx($)),a.close(c),$},writeFile(s,v,c={}){c.flags=c.flags||577;var u=a.open(s,c.flags,c.mode);v=Mx(v),a.write(u,v,0,v.byteLength,void 0,c.canOwn),a.close(u)},cwd:()=>a.currentPath,chdir(s){var v=a.lookupPath(s,{follow:!0});if(v.node===null)throw new a.ErrnoError(44);if(!a.isDir(v.node.mode))throw new a.ErrnoError(54);var c=a.nodePermissions(v.node,"x");if(c)throw new a.ErrnoError(c);a.currentPath=v.path},createDefaultDirectories(){a.mkdir("/tmp"),a.mkdir("/home"),a.mkdir("/home/web_user")},createDefaultDevices(){a.mkdir("/dev"),a.registerDevice(a.makedev(1,3),{read:()=>0,write:(u,h,$,G,J)=>G,llseek:()=>0}),a.mkdev("/dev/null",a.makedev(1,3)),W0.register(a.makedev(5,0),W0.default_tty_ops),W0.register(a.makedev(6,0),W0.default_tty1_ops),a.mkdev("/dev/tty",a.makedev(5,0)),a.mkdev("/dev/tty1",a.makedev(6,0));var s=new Uint8Array(1024),v=0,c=()=>(v===0&&(Cr(s),v=s.byteLength),s[--v]);a.createDevice("/dev","random",c),a.createDevice("/dev","urandom",c),a.mkdir("/dev/shm"),a.mkdir("/dev/shm/tmp")},createSpecialDirectories(){a.mkdir("/proc");var s=a.mkdir("/proc/self");a.mkdir("/proc/self/fd"),a.mount({mount(){var v=a.createNode(s,"fd",16895,73);return v.stream_ops={llseek:t0.stream_ops.llseek},v.node_ops={lookup(c,u){var h=+u,$=a.getStreamChecked(h),G={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>$.path},id:h+1};return G.parent=G,G},readdir(){return Array.from(a.streams.entries()).filter(([c,u])=>u).map(([c,u])=>c.toString())}},v}},{},"/proc/self/fd")},createStandardStreams(s,v,c){s?a.createDevice("/dev","stdin",s):a.symlink("/dev/tty","/dev/stdin"),v?a.createDevice("/dev","stdout",null,v):a.symlink("/dev/tty","/dev/stdout"),c?a.createDevice("/dev","stderr",null,c):a.symlink("/dev/tty1","/dev/stderr");var u=a.open("/dev/stdin",0),h=a.open("/dev/stdout",1),$=a.open("/dev/stderr",1)},staticInit(){a.nameTable=new Array(4096),a.mount(t0,{},"/"),a.createDefaultDirectories(),a.createDefaultDevices(),a.createSpecialDirectories(),a.filesystems={MEMFS:t0,PROXYFS:g0}},init(s,v,c){a.initialized=!0,s??(s=t.stdin),v??(v=t.stdout),c??(c=t.stderr),a.createStandardStreams(s,v,c)},quit(){a.initialized=!1,LA(0);for(var s of a.streams)s&&a.close(s)},findObject(s,v){var c=a.analyzePath(s,v);return c.exists?c.object:null},analyzePath(s,v){try{var c=a.lookupPath(s,{follow:!v});s=c.path}catch{}var u={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var c=a.lookupPath(s,{parent:!0});u.parentExists=!0,u.parentPath=c.path,u.parentObject=c.node,u.name=E0.basename(s),c=a.lookupPath(s,{follow:!v}),u.exists=!0,u.path=c.path,u.object=c.node,u.name=c.node.name,u.isRoot=c.path==="/"}catch(h){u.error=h.errno}return u},createPath(s,v,c,u){s=typeof s=="string"?s:a.getPath(s);for(var h=v.split("/").reverse();h.length;){var $=h.pop();if($){var G=E0.join2(s,$);try{a.mkdir(G)}catch(J){if(J.errno!=20)throw J}s=G}}return G},createFile(s,v,c,u,h){var $=E0.join2(typeof s=="string"?s:a.getPath(s),v),G=Jx(u,h);return a.create($,G)},createDataFile(s,v,c,u,h,$){var G=v;s&&(s=typeof s=="string"?s:a.getPath(s),G=v?E0.join2(s,v):s);var J=Jx(u,h),s0=a.create(G,J);if(c){c=Mx(c),a.chmod(s0,J|146);var l0=a.open(s0,577);a.write(l0,c,0,c.length,0,$),a.close(l0),a.chmod(s0,J)}},createDevice(s,v,c,u){var h,$=E0.join2(typeof s=="string"?s:a.getPath(s),v),G=Jx(!!c,!!u);(h=a.createDevice).major??(h.major=64);var J=a.makedev(a.createDevice.major++,0);return a.registerDevice(J,{open(s0){s0.seekable=!1},close(s0){u?.buffer?.length&&u(10)},read(s0,l0,U0,T0,w0){for(var p0=0,X0=0;X0<T0;X0++){var fx;try{fx=c()}catch{throw new a.ErrnoError(29)}if(fx===void 0&&p0===0)throw new a.ErrnoError(6);if(fx==null)break;p0++,l0[U0+X0]=fx}return p0&&(s0.node.atime=Date.now()),p0},write(s0,l0,U0,T0,w0){for(var p0=0;p0<T0;p0++)try{u(l0[U0+p0])}catch{throw new a.ErrnoError(29)}return T0&&(s0.node.mtime=s0.node.ctime=Date.now()),p0}}),a.mkdev($,G,J)},forceLoadFile(s){if(s.isDevice||s.isFolder||s.link||s.contents)return!0;if(globalThis.XMLHttpRequest)_0("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{s.contents=S(s.url)}catch{throw new a.ErrnoError(29)}},createLazyFile(s,v,c,u,h){class ${constructor(){Fx(this,"lengthKnown",!1),Fx(this,"chunks",[])}get(w0){if(!(w0>this.length-1||w0<0)){var p0=w0%this.chunkSize,X0=w0/this.chunkSize|0;return this.getter(X0)[p0]}}setDataGetter(w0){this.getter=w0}cacheLength(){var w0=new XMLHttpRequest;w0.open("HEAD",c,!1),w0.send(null),w0.status>=200&&w0.status<300||w0.status===304||_0("Couldn't load "+c+". Status: "+w0.status);var p0=Number(w0.getResponseHeader("Content-length")),X0,fx=(X0=w0.getResponseHeader("Accept-Ranges"))&&X0==="bytes",yx=(X0=w0.getResponseHeader("Content-Encoding"))&&X0==="gzip",$x=1024*1024;fx||($x=p0);var qx=(Tx,nA)=>{Tx>nA&&_0("invalid range ("+Tx+", "+nA+") or no bytes requested!"),nA>p0-1&&_0("only "+p0+" bytes available! programmer error!");var rx=new XMLHttpRequest;return rx.open("GET",c,!1),p0!==$x&&rx.setRequestHeader("Range","bytes="+Tx+"-"+nA),rx.responseType="arraybuffer",rx.overrideMimeType&&rx.overrideMimeType("text/plain; charset=x-user-defined"),rx.send(null),rx.status>=200&&rx.status<300||rx.status===304||_0("Couldn't load "+c+". Status: "+rx.status),rx.response!==void 0?new Uint8Array(rx.response||[]):NA(rx.responseText||"",!0)},UA=this;UA.setDataGetter(Tx=>{var nA=Tx*$x,rx=(Tx+1)*$x-1;return rx=Math.min(rx,p0-1),typeof UA.chunks[Tx]>"u"&&(UA.chunks[Tx]=qx(nA,rx)),typeof UA.chunks[Tx]>"u"&&_0("doXHR failed!"),UA.chunks[Tx]}),(yx||!p0)&&($x=p0=1,p0=this.getter(0).length,$x=p0,I("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=p0,this._chunkSize=$x,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(globalThis.XMLHttpRequest){l||_0("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var G=new $,J={isDevice:!1,contents:G}}else var J={isDevice:!1,url:c};var s0=a.createFile(s,v,J,u,h);J.contents?s0.contents=J.contents:J.url&&(s0.contents=null,s0.url=J.url),Object.defineProperties(s0,{usedBytes:{get:function(){return this.contents.length}}});var l0={};for(let[T0,w0]of Object.entries(s0.stream_ops))l0[T0]=(...p0)=>(a.forceLoadFile(s0),w0(...p0));function U0(T0,w0,p0,X0,fx){var yx=T0.node.contents;if(fx>=yx.length)return 0;var $x=Math.min(yx.length-fx,X0);if(yx.slice)for(var qx=0;qx<$x;qx++)w0[p0+qx]=yx[fx+qx];else for(var qx=0;qx<$x;qx++)w0[p0+qx]=yx.get(fx+qx);return $x}return l0.read=(T0,w0,p0,X0,fx)=>(a.forceLoadFile(s0),U0(T0,w0,p0,X0,fx)),l0.mmap=(T0,w0,p0,X0,fx)=>{a.forceLoadFile(s0);var yx=uA(w0);if(!yx)throw new a.ErrnoError(48);return U0(T0,Ax,yx,w0,p0),{ptr:yx,allocated:!0}},s0.stream_ops=l0,s0}},y0={currentUmask:18,calculateAt(s,v,c){if(E0.isAbs(v))return v;var u;if(s===-100)u=a.cwd();else{var h=y0.getStreamFromFD(s);u=h.path}if(v.length==0){if(!c)throw new a.ErrnoError(44);return u}return u+"/"+v},writeStat(s,v){F0[s>>2]=v.dev,F0[s+4>>2]=v.mode,F0[s+8>>2]=v.nlink,F0[s+12>>2]=v.uid,F0[s+16>>2]=v.gid,F0[s+20>>2]=v.rdev,G0[s+24>>3]=BigInt(v.size),M0[s+32>>2]=4096,M0[s+36>>2]=v.blocks;var c=v.atime.getTime(),u=v.mtime.getTime(),h=v.ctime.getTime();return G0[s+40>>3]=BigInt(Math.floor(c/1e3)),F0[s+48>>2]=c%1e3*1e3*1e3,G0[s+56>>3]=BigInt(Math.floor(u/1e3)),F0[s+64>>2]=u%1e3*1e3*1e3,G0[s+72>>3]=BigInt(Math.floor(h/1e3)),F0[s+80>>2]=h%1e3*1e3*1e3,G0[s+88>>3]=BigInt(v.ino),0},writeStatFs(s,v){F0[s+4>>2]=v.bsize,F0[s+60>>2]=v.bsize,G0[s+8>>3]=BigInt(v.blocks),G0[s+16>>3]=BigInt(v.bfree),G0[s+24>>3]=BigInt(v.bavail),G0[s+32>>3]=BigInt(v.files),G0[s+40>>3]=BigInt(v.ffree),F0[s+48>>2]=v.fsid,F0[s+64>>2]=v.flags,F0[s+56>>2]=v.namelen},doMsync(s,v,c,u,h){if(!a.isFile(v.node.mode))throw new a.ErrnoError(43);if(u&2)return 0;var $=Hx.slice(s,s+c);a.msync(v,$,h,c,u)},getStreamFromFD(s){var v=a.getStreamChecked(s);return v},varargs:void 0,getStr(s){var v=Bx(s);return v}};function dr(s,v,c){y0.varargs=c;try{var u=y0.getStreamFromFD(s);switch(v){case 0:{var h=zx();if(h<0)return-28;for(;a.streams[h];)h++;var $;return $=a.dupStream(u,h),$.fd}case 1:case 2:return 0;case 3:return u.flags;case 4:{var h=zx(),G=289792;return u.flags=u.flags&~G|h&G,0}case 12:{var h=dA(),J=0;return O0[h+J>>1]=2,0}case 13:case 14:return 0}return-28}catch(s0){if(typeof a>"u"||s0.name!=="ErrnoError")throw s0;return-s0.errno}}function jA(s,v,c){y0.varargs=c;try{var u=y0.getStreamFromFD(s);switch(v){case 21509:return u.tty?0:-59;case 21505:{if(!u.tty)return-59;if(u.tty.ops.ioctl_tcgets){var h=u.tty.ops.ioctl_tcgets(u),$=dA();M0[$>>2]=h.c_iflag||0,M0[$+4>>2]=h.c_oflag||0,M0[$+8>>2]=h.c_cflag||0,M0[$+12>>2]=h.c_lflag||0;for(var G=0;G<32;G++)Ax[$+G+17]=h.c_cc[G]||0;return 0}return 0}case 21510:case 21511:case 21512:return u.tty?0:-59;case 21506:case 21507:case 21508:{if(!u.tty)return-59;if(u.tty.ops.ioctl_tcsets){for(var $=dA(),J=M0[$>>2],s0=M0[$+4>>2],l0=M0[$+8>>2],U0=M0[$+12>>2],T0=[],G=0;G<32;G++)T0.push(Ax[$+G+17]);return u.tty.ops.ioctl_tcsets(u.tty,v,{c_iflag:J,c_oflag:s0,c_cflag:l0,c_lflag:U0,c_cc:T0})}return 0}case 21519:{if(!u.tty)return-59;var $=dA();return M0[$>>2]=0,0}case 21520:return u.tty?-28:-59;case 21537:case 21531:{var $=dA();return a.ioctl(u,v,$)}case 21523:{if(!u.tty)return-59;if(u.tty.ops.ioctl_tiocgwinsz){var w0=u.tty.ops.ioctl_tiocgwinsz(u.tty),$=dA();O0[$>>1]=w0[0],O0[$+2>>1]=w0[1]}return 0}case 21524:return u.tty?0:-59;case 21515:return u.tty?0:-59;default:return-28}}catch(p0){if(typeof a>"u"||p0.name!=="ErrnoError")throw p0;return-p0.errno}}function tA(s,v,c,u){y0.varargs=u;try{v=y0.getStr(v),v=y0.calculateAt(s,v);var h=u?zx():0;return c&64&&(h&=~y0.currentUmask),a.open(v,c,h).fd}catch($){if(typeof a>"u"||$.name!=="ErrnoError")throw $;return-$.errno}}var ce=()=>2147483648,rr=(s,v)=>Math.ceil(s/v)*v,Ir=s=>{var v=mA.buffer.byteLength,c=(s-v+65535)/65536|0;try{return mA.grow(c),K(),1}catch{}},Mr=s=>{var v=Hx.length;s>>>=0;var c=ce();if(s>c)return!1;for(var u=1;u<=4;u*=2){var h=v*(1+.2/u);h=Math.min(h,s+100663296);var $=Math.min(c,rr(Math.max(s,h),65536)),G=Ir($);if(G)return!0}return!1};function De(s){try{var v=y0.getStreamFromFD(s);return a.close(v),0}catch(c){if(typeof a>"u"||c.name!=="ErrnoError")throw c;return c.errno}}var de=(s,v,c,u)=>{for(var h=0,$=0;$<c;$++){var G=F0[v>>2],J=F0[v+4>>2];v+=8;var s0=a.read(s,Ax,G,J,u);if(s0<0)return-1;if(h+=s0,s0<J)break;typeof u<"u"&&(u+=s0)}return h};function ue(s,v,c,u){try{var h=y0.getStreamFromFD(s),$=de(h,v,c);return F0[u>>2]=$,0}catch(G){if(typeof a>"u"||G.name!=="ErrnoError")throw G;return G.errno}}var er=9007199254740992,Lr=-9007199254740992,IA=s=>s<Lr||s>er?NaN:Number(s);function tr(s,v,c,u){v=IA(v);try{if(isNaN(v))return 22;var h=y0.getStreamFromFD(s);return a.llseek(h,v,c),G0[u>>3]=BigInt(h.position),h.getdents&&v===0&&c===0&&(h.getdents=null),0}catch($){if(typeof a>"u"||$.name!=="ErrnoError")throw $;return $.errno}}var be=(s,v,c,u)=>{for(var h=0,$=0;$<c;$++){var G=F0[v>>2],J=F0[v+4>>2];v+=8;var s0=a.write(s,Ax,G,J,u);if(s0<0)return-1;if(h+=s0,s0<J)break;typeof u<"u"&&(u+=s0)}return h};function Rr(s,v,c,u){try{var h=y0.getStreamFromFD(s),$=be(h,v,c);return F0[u>>2]=$,0}catch(G){if(typeof a>"u"||G.name!=="ErrnoError")throw G;return G.errno}}var pe=0,MA=()=>xr||pe>0,ur=s=>{w=s,MA()||(t.onExit?.(s),e0=!0),k(s,new lA(s))},Or=(s,v)=>{w=s,MA()||D0(),ur(s)},Gr=s=>{if(s instanceof lA||s=="unwind")return w;k(1,s)},je=(s,v,c)=>lr(s,Hx,v,c),Ur=s=>RA(s),me=s=>{var v=TA(s)+1,c=Ur(v);return je(s,c,v),c},he=(...s)=>a.createPath(...s),nr=(...s)=>a.unlink(...s),ge=(...s)=>a.createLazyFile(...s),ye=(...s)=>a.createDevice(...s);if(a.createPreloadedFile=le,a.preloadFile=pA,a.staticInit(),t.noExitRuntime&&(xr=t.noExitRuntime),t.preloadPlugins&&(Ar=t.preloadPlugins),t.print&&(I=t.print),t.printErr&&(L=t.printErr),t.wasmBinary&&(R=t.wasmBinary),t.arguments&&(j=t.arguments),t.thisProgram&&(b=t.thisProgram),t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()();t.callMain=ox,t.addRunDependency=hx,t.removeRunDependency=Dr,t.FS_preloadFile=pA,t.FS_unlink=nr,t.FS_createPath=he,t.FS_createDevice=ye,t.FS=a,t.FS_createDataFile=cr,t.FS_createLazyFile=ge,t.PROXYFS=g0;var Hr,Kr,LA,zr,RA,br,gx,ke,mA;function OA(s){Hr=t._main=s.__main_argc_argv,Kr=s.__funcs_on_exit,LA=s.fflush,zr=s._emscripten_stack_restore,RA=s._emscripten_stack_alloc,br=s.emscripten_stack_get_current,gx=mA=s.memory,ke=s.__indirect_function_table}var pr={__assert_fail:AA,__syscall_fcntl64:dr,__syscall_ioctl:jA,__syscall_openat:tA,emscripten_resize_heap:Mr,fd_close:De,fd_read:ue,fd_seek:tr,fd_write:Rr};function ox(s=[]){var v=Hr;s.unshift(b);var c=s.length,u=Ur((c+1)*4),h=u;for(var $ of s)F0[h>>2]=me($),h+=4;F0[h>>2]=0;try{var G=v(c,u);return Or(G,!0),G}catch(J){return Gr(J)}}function ir(s=j){if(tx>0){b0=ir;return}if(U(),tx>0){b0=ir;return}function v(){if(t.calledRun=!0,!e0){a0(),H?.(t),t.onRuntimeInitialized?.();var c=t.noInitialRun||!0;c||ox(s),u0()}}t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),v()},1)):v()}var GA;return GA=await Dx(),ir(),r0?o=t:o=new Promise((s,v)=>{H=s,Z=v}),o}})();typeof A=="object"&&typeof x=="object"?(x.exports=r,x.exports.default=r):typeof define=="function"&&define.amd&&define([],()=>r)}}),zi={};x8(zi,{createPawnCC:()=>i8,createPawnDbg:()=>s8});Ji.exports=A8(zi);var t8=Ki(r8(),1),n8=Ki(e8(),1),i8=t8.default,s8=n8.default});var cB={};Ro(cB,{default:()=>Ua});module.exports=Oo(cB);var wx=require("commander");var Vt={name:"@microtronics/studio-cli",version:"1.1.0",description:"Microtronics Studio CLI Tool",main:"./out/api.js",typings:"./out/studio-cli.d.ts",bin:{"studio-cli":"studio-cli"},publishConfig:{access:"public"},scripts:{compile:"npm run build:registryApiTypings && tsc","build:cli":"node build.mjs","build:exe":"node build-exe.mjs",api:"api-extractor run --local --verbose",build:"npm run compile && npm run api && npm run build:cli","watch:build":"npm run compile -- --watch",test:"cross-env STUDIO_ENV=lucky mocha","test-ci":"cross-env STUDIO_ENV=lucky mocha --reporter mocha-junit-reporter","watch:test":"npm run test -- --watch",prepublishOnly:"npm run build","build:registryApiTypings":"npx openapi-typescript https://api.registry.lucky.ci.microtronics.com/v1/openapi.yaml -o ./src/typings/registry.ts"},author:"Microtronics",license:"ISC",dependencies:{"@gera2ld/tarjs":"^0.3.1",ajv:"^8.17.1","ajv-formats":"^3.0.1","ajv-keywords":"^5.1.0",chalk:"^5.4.1",commander:"^12.1.0","cross-fetch":"^4.0.0","deepmerge-ts":"^7.1.5",dotenv:"^16.4.7","file-type-checker":"^1.1.2",glob:"^11.0.1","iconv-lite":"^0.6.3","image-dimensions":"^2.3.0",ini:"^5.0.0",minimatch:"^10.0.1","openapi-fetch":"^0.13.0",pako:"^2.1.0",semver:"^7.7.2","tinytar-fix":"^0.1.1","update-notifier":"^7.3.1",usb:"^2.14.0",uuid:"^9.0.1","vscode-uri":"^3.0.8",yaml:"^2.6.1"},engines:{node:">= 22"},devDependencies:{"@microsoft/api-extractor":"^7.47.11","@microtronics/device-master":"bitbucket:microtronics-core/device-master#v3.0.0","@types/chai":"^4.3.6","@types/chai-as-promised":"^7.1.5","@types/ini":"^4.1.1","@types/mocha":"^10.0.9","@types/node":"^22.9.1","@types/semver":"^7.5.6","@types/update-notifier":"^6.0.8","@types/vscode":"^1.86.2","@yao-pkg/pkg":"^6.22.0",chai:"^4.3.8","chai-as-promised":"^7.1.2","cross-env":"^7.0.3",esbuild:"^0.27.3","extract-zip":"^2.0.1",mocha:"^10.8.2","mocha-junit-reporter":"^2.2.1","openapi-typescript":"^7.6.0","pawncc-wasm":"bitbucket:microtronics-core/pawncc-wasm#v1.1.1",resedit:"^3.0.2",tar:"^7.5.7","ts-node":"^10.9.2",typescript:"^5.6.3"},mocha:{require:["ts-node/register"],"watch-files":"src/**",spec:"./test/**/*.spec.ts",recursive:!0},files:["out/api.js","out/studio-cli.d.ts","dist/main.js","dist/studio-cli.d.ts","studio-cli","CHANGELOG.md"]};var sA=cx(require("node:fs/promises"));var we=require("vscode-uri"),Xn=require("glob"),yr={readFile(A){return sA.default.readFile(A.fsPath)},async rm(A){if(await this.stat(A))return sA.default.rm(A.fsPath,{recursive:!0})},async stat(A){try{let x=await sA.default.stat(A.fsPath),r=(x.isDirectory()?2:0)|(x.isFile()?1:0)|(x.isSymbolicLink()?64:0);return{ctime:x.ctimeMs,mtime:x.mtimeMs,permissions:void 0,size:x.size,type:r}}catch{return null}},async writeFile(A,x){typeof x=="string"&&(x=new TextEncoder().encode(x));let r=we.Utils.dirname(A);return await sA.default.mkdir(r.fsPath,{recursive:!0}),sA.default.writeFile(A.fsPath,x,{flag:"w"})},async findFiles(A,x,r){let e={ignore:r,nodir:!0,absolute:!0,dot:!0,cwd:A.fsPath};return(await(0,Xn.glob)(x,e)).map(o=>{let t=o.replace(/\\/g,"/");return we.URI.parse(`file:///${t}`)})},async copy(A,x){let r=await sA.default.stat(A.fsPath);return await sA.default.mkdir(we.Utils.dirname(x).fsPath,{recursive:!0}),r.isDirectory()?sA.default.cp(A.fsPath,x.fsPath,{force:!0,recursive:!0}):sA.default.copyFile(A.fsPath,x.fsPath)},async mkdir(A){await sA.default.mkdir(A.fsPath,{recursive:!0})}};var Ve=require("vscode-uri");var JA=require("vscode-uri");var Yr=require("vscode-uri");var Uo=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function et(A,x=0){let r=~~x^-1;for(let e=0;e<A.length;e++)r=r>>>8^Uo[(r^A[e])&255];return(r^-1)>>>0}var _B=new Uint8Array([0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64]),wB=new Uint8Array([0,192,193,1,195,3,2,194,198,6,7,199,5,197,196,4,204,12,13,205,15,207,206,14,10,202,203,11,201,9,8,200,216,24,25,217,27,219,218,26,30,222,223,31,221,29,28,220,20,212,213,21,215,23,22,214,210,18,19,211,17,209,208,16,240,48,49,241,51,243,242,50,54,246,247,55,245,53,52,244,60,252,253,61,255,63,62,254,250,58,59,251,57,249,248,56,40,232,233,41,235,43,42,234,238,46,47,239,45,237,236,44,228,36,37,229,39,231,230,38,34,226,227,35,225,33,32,224,160,96,97,161,99,163,162,98,102,166,167,103,165,101,100,164,108,172,173,109,175,111,110,174,170,106,107,171,105,169,168,104,120,184,185,121,187,123,122,186,190,126,127,191,125,189,188,124,180,116,117,181,119,183,182,118,114,178,179,115,177,113,112,176,80,144,145,81,147,83,82,146,150,86,87,151,85,149,148,84,156,92,93,157,95,159,158,94,90,154,155,91,153,89,88,152,136,72,73,137,75,139,138,74,78,142,143,79,141,77,76,140,68,132,133,69,135,71,70,134,130,66,67,131,65,129,128,64]);var m0;(q=>{function A(y,S){let[T,I]=S,{line:L,col:R}=y.linePos(T);return{line:Number(L)-1,startCharacter:R-1,endCharacter:R+(I-T)}}q.yamlRangeToLineInformation=A;let x=new TextEncoder;function r(y){return et(x.encode(y)).toString(16)}q.generateHashForLibraryName=r;function e(y){return et(x.encode(y)).toString(16)}q.generateHashForFilePath=e;function i(y){return et(y).toString(16).toUpperCase().padStart(8,"0")}q.generateCRC32ForFileContent=i;function o(y){try{let S=null;return y?.type==="Buffer"?S=Uint8Array.from(y.data):S=y,new TextDecoder("utf8").decode(S)}catch{return""}}q.convertBlobToString=o;function t(y=""){return y.replace(/\r\n|\n\r|\r/g,`
|
|
1527
|
+
`));if(!s)return null;Px=NA(s,!0)}return Px.shift()},W0={ttys:[],init(){},shutdown(){},register(s,v){W0.ttys[s]={input:[],output:[],ops:v},a.registerDevice(s,W0.stream_ops)},stream_ops:{open(s){var v=W0.ttys[s.node.rdev];if(!v)throw new a.ErrnoError(43);s.tty=v,s.seekable=!1},close(s){s.tty.ops.fsync(s.tty)},fsync(s){s.tty.ops.fsync(s.tty)},read(s,v,c,u,h){if(!s.tty||!s.tty.ops.get_char)throw new a.ErrnoError(60);for(var $=0,G=0;G<u;G++){var J;try{J=s.tty.ops.get_char(s.tty)}catch{throw new a.ErrnoError(29)}if(J===void 0&&$===0)throw new a.ErrnoError(6);if(J==null)break;$++,v[c+G]=J}return $&&(s.node.atime=Date.now()),$},write(s,v,c,u,h){if(!s.tty||!s.tty.ops.put_char)throw new a.ErrnoError(60);try{for(var $=0;$<u;$++)s.tty.ops.put_char(s.tty,v[c+$])}catch{throw new a.ErrnoError(29)}return u&&(s.node.mtime=s.node.ctime=Date.now()),$}},default_tty_ops:{get_char(s){return Ce()},put_char(s,v){v===null||v===10?(I(Kx(s.output)),s.output=[]):v!=0&&s.output.push(v)},fsync(s){s.output?.length>0&&(I(Kx(s.output)),s.output=[])},ioctl_tcgets(s){return{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(s,v,c){return 0},ioctl_tiocgwinsz(s){return[24,80]}},default_tty1_ops:{put_char(s,v){v===null||v===10?(L(Kx(s.output)),s.output=[]):v!=0&&s.output.push(v)},fsync(s){s.output?.length>0&&(L(Kx(s.output)),s.output=[])}}},uA=s=>{_0()},t0={ops_table:null,mount(s){return t0.createNode(null,"/",16895,0)},createNode(s,v,c,u){if(a.isBlkdev(c)||a.isFIFO(c))throw new a.ErrnoError(63);t0.ops_table||(t0.ops_table={dir:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr,lookup:t0.node_ops.lookup,mknod:t0.node_ops.mknod,rename:t0.node_ops.rename,unlink:t0.node_ops.unlink,rmdir:t0.node_ops.rmdir,readdir:t0.node_ops.readdir,symlink:t0.node_ops.symlink},stream:{llseek:t0.stream_ops.llseek}},file:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr},stream:{llseek:t0.stream_ops.llseek,read:t0.stream_ops.read,write:t0.stream_ops.write,mmap:t0.stream_ops.mmap,msync:t0.stream_ops.msync}},link:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr,readlink:t0.node_ops.readlink},stream:{}},chrdev:{node:{getattr:t0.node_ops.getattr,setattr:t0.node_ops.setattr},stream:a.chrdev_stream_ops}});var h=a.createNode(s,v,c,u);return a.isDir(h.mode)?(h.node_ops=t0.ops_table.dir.node,h.stream_ops=t0.ops_table.dir.stream,h.contents={}):a.isFile(h.mode)?(h.node_ops=t0.ops_table.file.node,h.stream_ops=t0.ops_table.file.stream,h.usedBytes=0,h.contents=t0.emptyFileContents??(t0.emptyFileContents=new Uint8Array(0))):a.isLink(h.mode)?(h.node_ops=t0.ops_table.link.node,h.stream_ops=t0.ops_table.link.stream):a.isChrdev(h.mode)&&(h.node_ops=t0.ops_table.chrdev.node,h.stream_ops=t0.ops_table.chrdev.stream),h.atime=h.mtime=h.ctime=Date.now(),s&&(s.contents[v]=h,s.atime=s.mtime=s.ctime=h.atime),h},getFileDataAsTypedArray(s){return s.contents.subarray(0,s.usedBytes)},expandFileStorage(s,v){var c=s.contents.length;if(!(c>=v)){var u=1024*1024;v=Math.max(v,c*(c<u?2:1.125)>>>0),c&&(v=Math.max(v,256));var h=t0.getFileDataAsTypedArray(s);s.contents=new Uint8Array(v),s.contents.set(h)}},resizeFileStorage(s,v){if(s.usedBytes!=v){var c=s.contents;s.contents=new Uint8Array(v),s.contents.set(c.subarray(0,Math.min(v,s.usedBytes))),s.usedBytes=v}},node_ops:{getattr(s){var v={};return v.dev=a.isChrdev(s.mode)?s.id:1,v.ino=s.id,v.mode=s.mode,v.nlink=1,v.uid=0,v.gid=0,v.rdev=s.rdev,a.isDir(s.mode)?v.size=4096:a.isFile(s.mode)?v.size=s.usedBytes:a.isLink(s.mode)?v.size=s.link.length:v.size=0,v.atime=new Date(s.atime),v.mtime=new Date(s.mtime),v.ctime=new Date(s.ctime),v.blksize=4096,v.blocks=Math.ceil(v.size/v.blksize),v},setattr(s,v){for(let c of["mode","atime","mtime","ctime"])v[c]!=null&&(s[c]=v[c]);v.size!==void 0&&t0.resizeFileStorage(s,v.size)},lookup(s,v){throw t0.doesNotExistError||(t0.doesNotExistError=new a.ErrnoError(44),t0.doesNotExistError.stack="<generic error, no stack>"),t0.doesNotExistError},mknod(s,v,c,u){return t0.createNode(s,v,c,u)},rename(s,v,c){var u;try{u=a.lookupNode(v,c)}catch{}if(u){if(a.isDir(s.mode))for(var h in u.contents)throw new a.ErrnoError(55);a.hashRemoveNode(u)}delete s.parent.contents[s.name],v.contents[c]=s,s.name=c,v.ctime=v.mtime=s.parent.ctime=s.parent.mtime=Date.now()},unlink(s,v){delete s.contents[v],s.ctime=s.mtime=Date.now()},rmdir(s,v){var c=a.lookupNode(s,v);for(var u in c.contents)throw new a.ErrnoError(55);delete s.contents[v],s.ctime=s.mtime=Date.now()},readdir(s){return[".","..",...Object.keys(s.contents)]},symlink(s,v,c){var u=t0.createNode(s,v,41471,0);return u.link=c,u},readlink(s){if(!a.isLink(s.mode))throw new a.ErrnoError(28);return s.link}},stream_ops:{read(s,v,c,u,h){var $=s.node.contents;if(h>=s.node.usedBytes)return 0;var G=Math.min(s.node.usedBytes-h,u);return v.set($.subarray(h,h+G),c),G},write(s,v,c,u,h,$){if(v.buffer===Ax.buffer&&($=!1),!u)return 0;var G=s.node;return G.mtime=G.ctime=Date.now(),$?(G.contents=v.subarray(c,c+u),G.usedBytes=u):G.usedBytes===0&&h===0?(G.contents=v.slice(c,c+u),G.usedBytes=u):(t0.expandFileStorage(G,h+u),G.contents.set(v.subarray(c,c+u),h),G.usedBytes=Math.max(G.usedBytes,h+u)),u},llseek(s,v,c){var u=v;if(c===1?u+=s.position:c===2&&a.isFile(s.node.mode)&&(u+=s.node.usedBytes),u<0)throw new a.ErrnoError(28);return u},mmap(s,v,c,u,h){if(!a.isFile(s.node.mode))throw new a.ErrnoError(43);var $,G,J=s.node.contents;if(!(h&2)&&J.buffer===Ax.buffer)G=!1,$=J.byteOffset;else{if(G=!0,$=uA(v),!$)throw new a.ErrnoError(48);J&&((c>0||c+v<J.length)&&(J.subarray?J=J.subarray(c,c+v):J=Array.prototype.slice.call(J,c,c+v)),Ax.set(J,$))}return{ptr:$,allocated:G}},msync(s,v,c,u,h){return t0.stream_ops.write(s,v,0,u,c,!1),0}}},bA=s=>{if(typeof s!="string")return s;var v={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},c=v[s];if(typeof c>"u")throw new Error(`Unknown file open mode: ${s}`);return c},Mx=s=>(typeof s=="string"&&(s=NA(s,!0)),s.subarray||(s=new Uint8Array(s)),s),Jx=(s,v)=>{var c=0;return s&&(c|=365),v&&(c|=146),c},S0={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},g0={mount(s){return g0.createNode(null,"/",s.opts.fs.lstat(s.opts.root).mode,0)},createNode(s,v,c,u){if(!a.isDir(c)&&!a.isFile(c)&&!a.isLink(c))throw new a.ErrnoError(S0.EINVAL);var h=a.createNode(s,v,c);return h.node_ops=g0.node_ops,h.stream_ops=g0.stream_ops,h},realPath(s){for(var v=[];s.parent!==s;)v.push(s.name),s=s.parent;return v.push(s.mount.opts.root),v.reverse(),E0.join(...v)},node_ops:{getattr(s){var v=g0.realPath(s),c;try{c=s.mount.opts.fs.lstat(v)}catch(u){throw u.code?new a.ErrnoError(S0[u.code]):u}return{dev:c.dev,ino:c.ino,mode:c.mode,nlink:c.nlink,uid:c.uid,gid:c.gid,rdev:c.rdev,size:c.size,atime:c.atime,mtime:c.mtime,ctime:c.ctime,blksize:c.blksize,blocks:c.blocks}},setattr(s,v){var c=g0.realPath(s);try{if(v.mode!==void 0&&(s.mount.opts.fs.chmod(c,v.mode),s.mode=v.mode),v.atime||v.mtime){var u=new Date(v.atime||v.mtime),h=new Date(v.mtime||v.atime);s.mount.opts.fs.utime(c,u,h)}v.size!==void 0&&s.mount.opts.fs.truncate(c,v.size)}catch($){throw $.code?new a.ErrnoError(S0[$.code]):$}},lookup(s,v){try{var c=E0.join2(g0.realPath(s),v),u=s.mount.opts.fs.lstat(c).mode,h=g0.createNode(s,v,u);return h}catch($){throw $.code?new a.ErrnoError(S0[$.code]):$}},mknod(s,v,c,u){var h=g0.createNode(s,v,c,u),$=g0.realPath(h);try{a.isDir(h.mode)?h.mount.opts.fs.mkdir($,h.mode):h.mount.opts.fs.writeFile($,"",{mode:h.mode})}catch(G){throw G.code?new a.ErrnoError(S0[G.code]):G}return h},rename(s,v,c){var u=g0.realPath(s),h=E0.join2(g0.realPath(v),c);try{s.mount.opts.fs.rename(u,h),s.name=c}catch($){throw $.code?new a.ErrnoError(S0[$.code]):$}},unlink(s,v){var c=E0.join2(g0.realPath(s),v);try{s.mount.opts.fs.unlink(c)}catch(u){throw u.code?new a.ErrnoError(S0[u.code]):u}},rmdir(s,v){var c=E0.join2(g0.realPath(s),v);try{s.mount.opts.fs.rmdir(c)}catch(u){throw u.code?new a.ErrnoError(S0[u.code]):u}},readdir(s){var v=g0.realPath(s);try{return s.mount.opts.fs.readdir(v)}catch(c){throw c.code?new a.ErrnoError(S0[c.code]):c}},symlink(s,v,c){var u=E0.join2(g0.realPath(s),v);try{s.mount.opts.fs.symlink(c,u)}catch(h){throw h.code?new a.ErrnoError(S0[h.code]):h}},readlink(s){var v=g0.realPath(s);try{return s.mount.opts.fs.readlink(v)}catch(c){throw c.code?new a.ErrnoError(S0[c.code]):c}}},stream_ops:{open(s){var v=g0.realPath(s.node);try{s.nfd=s.node.mount.opts.fs.open(v,s.flags)}catch(c){throw c.code?new a.ErrnoError(S0[c.code]):c}},close(s){try{s.node.mount.opts.fs.close(s.nfd)}catch(v){throw v.code?new a.ErrnoError(S0[v.code]):v}},read(s,v,c,u,h){try{return s.node.mount.opts.fs.read(s.nfd,v,c,u,h)}catch($){throw $.code?new a.ErrnoError(S0[$.code]):$}},write(s,v,c,u,h){try{return s.node.mount.opts.fs.write(s.nfd,v,c,u,h)}catch($){throw $.code?new a.ErrnoError(S0[$.code]):$}},llseek(s,v,c){var u=v;if(c===1)u+=s.position;else if(c===2&&a.isFile(s.node.mode))try{var h=s.node.node_ops.getattr(s.node);u+=h.size}catch($){throw new a.ErrnoError(S0[$.code])}if(u<0)throw new a.ErrnoError(S0.EINVAL);return u}}},rA=async s=>{var v=await y(s);return new Uint8Array(v)},cr=(...s)=>a.createDataFile(...s),ax=s=>s,tx=0,b0=null,Dr=s=>{if(tx--,t.monitorRunDependencies?.(tx),tx==0&&b0){var v=b0;b0=null,v()}},hx=s=>{tx++,t.monitorRunDependencies?.(tx)},Ar=[],eA=async(s,v)=>{typeof Browser<"u"&&Browser.init();for(var c of Ar)if(c.canHandle(v))return c.handle(s,v);return s},pA=async(s,v,c,u,h,$,G,J)=>{var s0=v?sx.resolve(E0.join2(s,v)):s,l0=ax(`cp ${s0}`);hx(l0);try{var U0=c;typeof c=="string"&&(U0=await rA(c)),U0=await eA(U0,s0),J?.(),$||cr(s,v,U0,u,h,G)}finally{Dr(l0)}},le=(s,v,c,u,h,$,G,J,s0,l0)=>{pA(s,v,c,u,h,J,s0,l0).then($).catch(G)},a={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,ErrnoError:class{constructor(s){Fx(this,"name","ErrnoError"),this.errno=s}},FSStream:class{constructor(){Fx(this,"shared",{})}get object(){return this.node}set object(s){this.node=s}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(s){this.shared.flags=s}get position(){return this.shared.position}set position(s){this.shared.position=s}},FSNode:class{constructor(s,v,c,u){Fx(this,"node_ops",{}),Fx(this,"stream_ops",{}),Fx(this,"readMode",365),Fx(this,"writeMode",146),Fx(this,"mounted",null),s||(s=this),this.parent=s,this.mount=s.mount,this.id=a.nextInode++,this.name=v,this.mode=c,this.rdev=u,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(s){s?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(s){s?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return a.isDir(this.mode)}get isDevice(){return a.isChrdev(this.mode)}},lookupPath(s,v={}){if(!s)throw new a.ErrnoError(44);v.follow_mount??(v.follow_mount=!0),E0.isAbs(s)||(s=a.cwd()+"/"+s);x:for(var c=0;c<40;c++){for(var u=s.split("/").filter(l0=>!!l0),h=a.root,$="/",G=0;G<u.length;G++){var J=G===u.length-1;if(J&&v.parent)break;if(u[G]!=="."){if(u[G]===".."){if($=E0.dirname($),a.isRoot(h)){s=$+"/"+u.slice(G+1).join("/"),c--;continue x}else h=h.parent;continue}$=E0.join2($,u[G]);try{h=a.lookupNode(h,u[G])}catch(l0){if(l0?.errno===44&&J&&v.noent_okay)return{path:$};throw l0}if(a.isMountpoint(h)&&(!J||v.follow_mount)&&(h=h.mounted.root),a.isLink(h.mode)&&(!J||v.follow)){if(!h.node_ops.readlink)throw new a.ErrnoError(52);var s0=h.node_ops.readlink(h);E0.isAbs(s0)||(s0=E0.dirname($)+"/"+s0),s=s0+"/"+u.slice(G+1).join("/");continue x}}}return{path:$,node:h}}throw new a.ErrnoError(32)},getPath(s){for(var v;;){if(a.isRoot(s)){var c=s.mount.mountpoint;return v?c[c.length-1]!=="/"?`${c}/${v}`:c+v:c}v=v?`${s.name}/${v}`:s.name,s=s.parent}},hashName(s,v){for(var c=0,u=0;u<v.length;u++)c=(c<<5)-c+v.charCodeAt(u)|0;return(s+c>>>0)%a.nameTable.length},hashAddNode(s){var v=a.hashName(s.parent.id,s.name);s.name_next=a.nameTable[v],a.nameTable[v]=s},hashRemoveNode(s){var v=a.hashName(s.parent.id,s.name);if(a.nameTable[v]===s)a.nameTable[v]=s.name_next;else for(var c=a.nameTable[v];c;){if(c.name_next===s){c.name_next=s.name_next;break}c=c.name_next}},lookupNode(s,v){var c=a.mayLookup(s);if(c)throw new a.ErrnoError(c);for(var u=a.hashName(s.id,v),h=a.nameTable[u];h;h=h.name_next){var $=h.name;if(h.parent.id===s.id&&$===v)return h}return a.lookup(s,v)},createNode(s,v,c,u){var h=new a.FSNode(s,v,c,u);return a.hashAddNode(h),h},destroyNode(s){a.hashRemoveNode(s)},isRoot(s){return s===s.parent},isMountpoint(s){return!!s.mounted},isFile(s){return(s&61440)===32768},isDir(s){return(s&61440)===16384},isLink(s){return(s&61440)===40960},isChrdev(s){return(s&61440)===8192},isBlkdev(s){return(s&61440)===24576},isFIFO(s){return(s&61440)===4096},isSocket(s){return(s&49152)===49152},flagsToPermissionString(s){var v=["r","w","rw"][s&3];return s&512&&(v+="w"),v},nodePermissions(s,v){return a.ignorePermissions?0:v.includes("r")&&!(s.mode&292)||v.includes("w")&&!(s.mode&146)||v.includes("x")&&!(s.mode&73)?2:0},mayLookup(s){if(!a.isDir(s.mode))return 54;var v=a.nodePermissions(s,"x");return v||(s.node_ops.lookup?0:2)},mayCreate(s,v){if(!a.isDir(s.mode))return 54;try{var c=a.lookupNode(s,v);return 20}catch{}return a.nodePermissions(s,"wx")},mayDelete(s,v,c){var u;try{u=a.lookupNode(s,v)}catch($){return $.errno}var h=a.nodePermissions(s,"wx");if(h)return h;if(c){if(!a.isDir(u.mode))return 54;if(a.isRoot(u)||a.getPath(u)===a.cwd())return 10}else if(a.isDir(u.mode))return 31;return 0},mayOpen(s,v){if(!s)return 44;if(a.isLink(s.mode))return 32;var c=a.flagsToPermissionString(v);return a.isDir(s.mode)&&(c!=="r"||v&576)?31:a.nodePermissions(s,c)},checkOpExists(s,v){if(!s)throw new a.ErrnoError(v);return s},MAX_OPEN_FDS:4096,nextfd(){for(var s=0;s<=a.MAX_OPEN_FDS;s++)if(!a.streams[s])return s;throw new a.ErrnoError(33)},getStreamChecked(s){var v=a.getStream(s);if(!v)throw new a.ErrnoError(8);return v},getStream:s=>a.streams[s],createStream(s,v=-1){return s=Object.assign(new a.FSStream,s),v==-1&&(v=a.nextfd()),s.fd=v,a.streams[v]=s,s},closeStream(s){a.streams[s]=null},dupStream(s,v=-1){var c=a.createStream(s,v);return c.stream_ops?.dup?.(c),c},doSetAttr(s,v,c){var u=s?.stream_ops.setattr,h=u?s:v;u??(u=v.node_ops.setattr),a.checkOpExists(u,63);try{u(h,c)}catch($){throw $ instanceof RangeError?new a.ErrnoError(22):$}},chrdev_stream_ops:{open(s){var v=a.getDevice(s.node.rdev);s.stream_ops=v.stream_ops,s.stream_ops.open?.(s)},llseek(){throw new a.ErrnoError(70)}},major:s=>s>>8,minor:s=>s&255,makedev:(s,v)=>s<<8|v,registerDevice(s,v){a.devices[s]={stream_ops:v}},getDevice:s=>a.devices[s],getMounts(s){for(var v=[],c=[s];c.length;){var u=c.pop();v.push(u),c.push(...u.mounts)}return v},syncfs(s,v){typeof s=="function"&&(v=s,s=!1),a.syncFSRequests++,a.syncFSRequests>1&&L(`warning: ${a.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var c=a.getMounts(a.root.mount),u=0;function h(J){return a.syncFSRequests--,v(J)}function $(J){if(J)return $.errored?void 0:($.errored=!0,h(J));++u>=c.length&&h(null)}for(var G of c)G.type.syncfs?G.type.syncfs(G,s,$):$(null)},mount(s,v,c){var u=c==="/",h=!c,$;if(u&&a.root)throw new a.ErrnoError(10);if(!u&&!h){var G=a.lookupPath(c,{follow_mount:!1});if(c=G.path,$=G.node,a.isMountpoint($))throw new a.ErrnoError(10);if(!a.isDir($.mode))throw new a.ErrnoError(54)}var J={type:s,opts:v,mountpoint:c,mounts:[]},s0=s.mount(J);return s0.mount=J,J.root=s0,u?a.root=s0:$&&($.mounted=J,$.mount&&$.mount.mounts.push(J)),s0},unmount(s){var v=a.lookupPath(s,{follow_mount:!1});if(!a.isMountpoint(v.node))throw new a.ErrnoError(28);var c=v.node,u=c.mounted,h=a.getMounts(u);for(var[$,G]of Object.entries(a.nameTable))for(;G;){var J=G.name_next;h.includes(G.mount)&&a.destroyNode(G),G=J}c.mounted=null;var s0=c.mount.mounts.indexOf(u);c.mount.mounts.splice(s0,1)},lookup(s,v){return s.node_ops.lookup(s,v)},mknod(s,v,c){var u=a.lookupPath(s,{parent:!0}),h=u.node,$=E0.basename(s);if(!$)throw new a.ErrnoError(28);if($==="."||$==="..")throw new a.ErrnoError(20);var G=a.mayCreate(h,$);if(G)throw new a.ErrnoError(G);if(!h.node_ops.mknod)throw new a.ErrnoError(63);return h.node_ops.mknod(h,$,v,c)},statfs(s){return a.statfsNode(a.lookupPath(s,{follow:!0}).node)},statfsStream(s){return a.statfsNode(s.node)},statfsNode(s){var v={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:a.nextInode,ffree:a.nextInode-1,fsid:42,flags:2,namelen:255};return s.node_ops.statfs&&Object.assign(v,s.node_ops.statfs(s.mount.opts.root)),v},create(s,v=438){return v&=4095,v|=32768,a.mknod(s,v,0)},mkdir(s,v=511){return v&=1023,v|=16384,a.mknod(s,v,0)},mkdirTree(s,v){var c=s.split("/"),u="";for(var h of c)if(h){(u||E0.isAbs(s))&&(u+="/"),u+=h;try{a.mkdir(u,v)}catch($){if($.errno!=20)throw $}}},mkdev(s,v,c){return typeof c>"u"&&(c=v,v=438),v|=8192,a.mknod(s,v,c)},symlink(s,v){if(!sx.resolve(s))throw new a.ErrnoError(44);var c=a.lookupPath(v,{parent:!0}),u=c.node;if(!u)throw new a.ErrnoError(44);var h=E0.basename(v),$=a.mayCreate(u,h);if($)throw new a.ErrnoError($);if(!u.node_ops.symlink)throw new a.ErrnoError(63);return u.node_ops.symlink(u,h,s)},rename(s,v){var c=E0.dirname(s),u=E0.dirname(v),h=E0.basename(s),$=E0.basename(v),G,J,s0;if(G=a.lookupPath(s,{parent:!0}),J=G.node,G=a.lookupPath(v,{parent:!0}),s0=G.node,!J||!s0)throw new a.ErrnoError(44);if(J.mount!==s0.mount)throw new a.ErrnoError(75);var l0=a.lookupNode(J,h),U0=sx.relative(s,u);if(U0.charAt(0)!==".")throw new a.ErrnoError(28);if(U0=sx.relative(v,c),U0.charAt(0)!==".")throw new a.ErrnoError(55);var T0;try{T0=a.lookupNode(s0,$)}catch{}if(l0!==T0){var w0=a.isDir(l0.mode),p0=a.mayDelete(J,h,w0);if(p0)throw new a.ErrnoError(p0);if(p0=T0?a.mayDelete(s0,$,w0):a.mayCreate(s0,$),p0)throw new a.ErrnoError(p0);if(!J.node_ops.rename)throw new a.ErrnoError(63);if(a.isMountpoint(l0)||T0&&a.isMountpoint(T0))throw new a.ErrnoError(10);if(s0!==J&&(p0=a.nodePermissions(J,"w"),p0))throw new a.ErrnoError(p0);a.hashRemoveNode(l0);try{J.node_ops.rename(l0,s0,$),l0.parent=s0}catch(X0){throw X0}finally{a.hashAddNode(l0)}}},rmdir(s){var v=a.lookupPath(s,{parent:!0}),c=v.node,u=E0.basename(s),h=a.lookupNode(c,u),$=a.mayDelete(c,u,!0);if($)throw new a.ErrnoError($);if(!c.node_ops.rmdir)throw new a.ErrnoError(63);if(a.isMountpoint(h))throw new a.ErrnoError(10);c.node_ops.rmdir(c,u),a.destroyNode(h)},readdir(s){var v=a.lookupPath(s,{follow:!0}),c=v.node,u=a.checkOpExists(c.node_ops.readdir,54);return u(c)},unlink(s){var v=a.lookupPath(s,{parent:!0}),c=v.node;if(!c)throw new a.ErrnoError(44);var u=E0.basename(s),h=a.lookupNode(c,u),$=a.mayDelete(c,u,!1);if($)throw new a.ErrnoError($);if(!c.node_ops.unlink)throw new a.ErrnoError(63);if(a.isMountpoint(h))throw new a.ErrnoError(10);c.node_ops.unlink(c,u),a.destroyNode(h)},readlink(s){var v=a.lookupPath(s),c=v.node;if(!c)throw new a.ErrnoError(44);if(!c.node_ops.readlink)throw new a.ErrnoError(28);return c.node_ops.readlink(c)},stat(s,v){var c=a.lookupPath(s,{follow:!v}),u=c.node,h=a.checkOpExists(u.node_ops.getattr,63);return h(u)},fstat(s){var v=a.getStreamChecked(s),c=v.node,u=v.stream_ops.getattr,h=u?v:c;return u??(u=c.node_ops.getattr),a.checkOpExists(u,63),u(h)},lstat(s){return a.stat(s,!0)},doChmod(s,v,c,u){a.doSetAttr(s,v,{mode:c&4095|v.mode&-4096,ctime:Date.now(),dontFollow:u})},chmod(s,v,c){var u;if(typeof s=="string"){var h=a.lookupPath(s,{follow:!c});u=h.node}else u=s;a.doChmod(null,u,v,c)},lchmod(s,v){a.chmod(s,v,!0)},fchmod(s,v){var c=a.getStreamChecked(s);a.doChmod(c,c.node,v,!1)},doChown(s,v,c){a.doSetAttr(s,v,{timestamp:Date.now(),dontFollow:c})},chown(s,v,c,u){var h;if(typeof s=="string"){var $=a.lookupPath(s,{follow:!u});h=$.node}else h=s;a.doChown(null,h,u)},lchown(s,v,c){a.chown(s,v,c,!0)},fchown(s,v,c){var u=a.getStreamChecked(s);a.doChown(u,u.node,!1)},doTruncate(s,v,c){if(a.isDir(v.mode))throw new a.ErrnoError(31);if(!a.isFile(v.mode))throw new a.ErrnoError(28);var u=a.nodePermissions(v,"w");if(u)throw new a.ErrnoError(u);a.doSetAttr(s,v,{size:c,timestamp:Date.now()})},truncate(s,v){if(v<0)throw new a.ErrnoError(28);var c;if(typeof s=="string"){var u=a.lookupPath(s,{follow:!0});c=u.node}else c=s;a.doTruncate(null,c,v)},ftruncate(s,v){var c=a.getStreamChecked(s);if(v<0||(c.flags&2097155)===0)throw new a.ErrnoError(28);a.doTruncate(c,c.node,v)},utime(s,v,c){var u=a.lookupPath(s,{follow:!0}),h=u.node,$=a.checkOpExists(h.node_ops.setattr,63);$(h,{atime:v,mtime:c})},open(s,v,c=438){if(s==="")throw new a.ErrnoError(44);v=bA(v),v&64?c=c&4095|32768:c=0;var u,h;if(typeof s=="object")u=s;else{h=s.endsWith("/");var $=a.lookupPath(s,{follow:!(v&131072),noent_okay:!0});u=$.node,s=$.path}var G=!1;if(v&64)if(u){if(v&128)throw new a.ErrnoError(20)}else{if(h)throw new a.ErrnoError(31);u=a.mknod(s,c|511,0),G=!0}if(!u)throw new a.ErrnoError(44);if(a.isChrdev(u.mode)&&(v&=-513),v&65536&&!a.isDir(u.mode))throw new a.ErrnoError(54);if(!G){var J=a.mayOpen(u,v);if(J)throw new a.ErrnoError(J)}v&512&&!G&&a.truncate(u,0),v&=-131713;var s0=a.createStream({node:u,path:a.getPath(u),flags:v,seekable:!0,position:0,stream_ops:u.stream_ops,ungotten:[],error:!1});return s0.stream_ops.open&&s0.stream_ops.open(s0),G&&a.chmod(u,c&511),s0},close(s){if(a.isClosed(s))throw new a.ErrnoError(8);s.getdents&&(s.getdents=null);try{s.stream_ops.close&&s.stream_ops.close(s)}catch(v){throw v}finally{a.closeStream(s.fd)}s.fd=null},isClosed(s){return s.fd===null},llseek(s,v,c){if(a.isClosed(s))throw new a.ErrnoError(8);if(!s.seekable||!s.stream_ops.llseek)throw new a.ErrnoError(70);if(c!=0&&c!=1&&c!=2)throw new a.ErrnoError(28);return s.position=s.stream_ops.llseek(s,v,c),s.ungotten=[],s.position},read(s,v,c,u,h){if(u<0||h<0)throw new a.ErrnoError(28);if(a.isClosed(s))throw new a.ErrnoError(8);if((s.flags&2097155)===1)throw new a.ErrnoError(8);if(a.isDir(s.node.mode))throw new a.ErrnoError(31);if(!s.stream_ops.read)throw new a.ErrnoError(28);var $=typeof h<"u";if(!$)h=s.position;else if(!s.seekable)throw new a.ErrnoError(70);var G=s.stream_ops.read(s,v,c,u,h);return $||(s.position+=G),G},write(s,v,c,u,h,$){if(u<0||h<0)throw new a.ErrnoError(28);if(a.isClosed(s))throw new a.ErrnoError(8);if((s.flags&2097155)===0)throw new a.ErrnoError(8);if(a.isDir(s.node.mode))throw new a.ErrnoError(31);if(!s.stream_ops.write)throw new a.ErrnoError(28);s.seekable&&s.flags&1024&&a.llseek(s,0,2);var G=typeof h<"u";if(!G)h=s.position;else if(!s.seekable)throw new a.ErrnoError(70);var J=s.stream_ops.write(s,v,c,u,h,$);return G||(s.position+=J),J},mmap(s,v,c,u,h){if((u&2)!==0&&(h&2)===0&&(s.flags&2097155)!==2)throw new a.ErrnoError(2);if((s.flags&2097155)===1)throw new a.ErrnoError(2);if(!s.stream_ops.mmap)throw new a.ErrnoError(43);if(!v)throw new a.ErrnoError(28);return s.stream_ops.mmap(s,v,c,u,h)},msync(s,v,c,u,h){return s.stream_ops.msync?s.stream_ops.msync(s,v,c,u,h):0},ioctl(s,v,c){if(!s.stream_ops.ioctl)throw new a.ErrnoError(59);return s.stream_ops.ioctl(s,v,c)},readFile(s,v={}){v.flags=v.flags||0,v.encoding=v.encoding||"binary",v.encoding!=="utf8"&&v.encoding!=="binary"&&_0(`Invalid encoding type "${v.encoding}"`);var c=a.open(s,v.flags),u=a.stat(s),h=u.size,$=new Uint8Array(h);return a.read(c,$,0,h,0),v.encoding==="utf8"&&($=Kx($)),a.close(c),$},writeFile(s,v,c={}){c.flags=c.flags||577;var u=a.open(s,c.flags,c.mode);v=Mx(v),a.write(u,v,0,v.byteLength,void 0,c.canOwn),a.close(u)},cwd:()=>a.currentPath,chdir(s){var v=a.lookupPath(s,{follow:!0});if(v.node===null)throw new a.ErrnoError(44);if(!a.isDir(v.node.mode))throw new a.ErrnoError(54);var c=a.nodePermissions(v.node,"x");if(c)throw new a.ErrnoError(c);a.currentPath=v.path},createDefaultDirectories(){a.mkdir("/tmp"),a.mkdir("/home"),a.mkdir("/home/web_user")},createDefaultDevices(){a.mkdir("/dev"),a.registerDevice(a.makedev(1,3),{read:()=>0,write:(u,h,$,G,J)=>G,llseek:()=>0}),a.mkdev("/dev/null",a.makedev(1,3)),W0.register(a.makedev(5,0),W0.default_tty_ops),W0.register(a.makedev(6,0),W0.default_tty1_ops),a.mkdev("/dev/tty",a.makedev(5,0)),a.mkdev("/dev/tty1",a.makedev(6,0));var s=new Uint8Array(1024),v=0,c=()=>(v===0&&(Cr(s),v=s.byteLength),s[--v]);a.createDevice("/dev","random",c),a.createDevice("/dev","urandom",c),a.mkdir("/dev/shm"),a.mkdir("/dev/shm/tmp")},createSpecialDirectories(){a.mkdir("/proc");var s=a.mkdir("/proc/self");a.mkdir("/proc/self/fd"),a.mount({mount(){var v=a.createNode(s,"fd",16895,73);return v.stream_ops={llseek:t0.stream_ops.llseek},v.node_ops={lookup(c,u){var h=+u,$=a.getStreamChecked(h),G={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>$.path},id:h+1};return G.parent=G,G},readdir(){return Array.from(a.streams.entries()).filter(([c,u])=>u).map(([c,u])=>c.toString())}},v}},{},"/proc/self/fd")},createStandardStreams(s,v,c){s?a.createDevice("/dev","stdin",s):a.symlink("/dev/tty","/dev/stdin"),v?a.createDevice("/dev","stdout",null,v):a.symlink("/dev/tty","/dev/stdout"),c?a.createDevice("/dev","stderr",null,c):a.symlink("/dev/tty1","/dev/stderr");var u=a.open("/dev/stdin",0),h=a.open("/dev/stdout",1),$=a.open("/dev/stderr",1)},staticInit(){a.nameTable=new Array(4096),a.mount(t0,{},"/"),a.createDefaultDirectories(),a.createDefaultDevices(),a.createSpecialDirectories(),a.filesystems={MEMFS:t0,PROXYFS:g0}},init(s,v,c){a.initialized=!0,s??(s=t.stdin),v??(v=t.stdout),c??(c=t.stderr),a.createStandardStreams(s,v,c)},quit(){a.initialized=!1,LA(0);for(var s of a.streams)s&&a.close(s)},findObject(s,v){var c=a.analyzePath(s,v);return c.exists?c.object:null},analyzePath(s,v){try{var c=a.lookupPath(s,{follow:!v});s=c.path}catch{}var u={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var c=a.lookupPath(s,{parent:!0});u.parentExists=!0,u.parentPath=c.path,u.parentObject=c.node,u.name=E0.basename(s),c=a.lookupPath(s,{follow:!v}),u.exists=!0,u.path=c.path,u.object=c.node,u.name=c.node.name,u.isRoot=c.path==="/"}catch(h){u.error=h.errno}return u},createPath(s,v,c,u){s=typeof s=="string"?s:a.getPath(s);for(var h=v.split("/").reverse();h.length;){var $=h.pop();if($){var G=E0.join2(s,$);try{a.mkdir(G)}catch(J){if(J.errno!=20)throw J}s=G}}return G},createFile(s,v,c,u,h){var $=E0.join2(typeof s=="string"?s:a.getPath(s),v),G=Jx(u,h);return a.create($,G)},createDataFile(s,v,c,u,h,$){var G=v;s&&(s=typeof s=="string"?s:a.getPath(s),G=v?E0.join2(s,v):s);var J=Jx(u,h),s0=a.create(G,J);if(c){c=Mx(c),a.chmod(s0,J|146);var l0=a.open(s0,577);a.write(l0,c,0,c.length,0,$),a.close(l0),a.chmod(s0,J)}},createDevice(s,v,c,u){var h,$=E0.join2(typeof s=="string"?s:a.getPath(s),v),G=Jx(!!c,!!u);(h=a.createDevice).major??(h.major=64);var J=a.makedev(a.createDevice.major++,0);return a.registerDevice(J,{open(s0){s0.seekable=!1},close(s0){u?.buffer?.length&&u(10)},read(s0,l0,U0,T0,w0){for(var p0=0,X0=0;X0<T0;X0++){var fx;try{fx=c()}catch{throw new a.ErrnoError(29)}if(fx===void 0&&p0===0)throw new a.ErrnoError(6);if(fx==null)break;p0++,l0[U0+X0]=fx}return p0&&(s0.node.atime=Date.now()),p0},write(s0,l0,U0,T0,w0){for(var p0=0;p0<T0;p0++)try{u(l0[U0+p0])}catch{throw new a.ErrnoError(29)}return T0&&(s0.node.mtime=s0.node.ctime=Date.now()),p0}}),a.mkdev($,G,J)},forceLoadFile(s){if(s.isDevice||s.isFolder||s.link||s.contents)return!0;if(globalThis.XMLHttpRequest)_0("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{s.contents=S(s.url)}catch{throw new a.ErrnoError(29)}},createLazyFile(s,v,c,u,h){class ${constructor(){Fx(this,"lengthKnown",!1),Fx(this,"chunks",[])}get(w0){if(!(w0>this.length-1||w0<0)){var p0=w0%this.chunkSize,X0=w0/this.chunkSize|0;return this.getter(X0)[p0]}}setDataGetter(w0){this.getter=w0}cacheLength(){var w0=new XMLHttpRequest;w0.open("HEAD",c,!1),w0.send(null),w0.status>=200&&w0.status<300||w0.status===304||_0("Couldn't load "+c+". Status: "+w0.status);var p0=Number(w0.getResponseHeader("Content-length")),X0,fx=(X0=w0.getResponseHeader("Accept-Ranges"))&&X0==="bytes",yx=(X0=w0.getResponseHeader("Content-Encoding"))&&X0==="gzip",$x=1024*1024;fx||($x=p0);var qx=(Tx,nA)=>{Tx>nA&&_0("invalid range ("+Tx+", "+nA+") or no bytes requested!"),nA>p0-1&&_0("only "+p0+" bytes available! programmer error!");var rx=new XMLHttpRequest;return rx.open("GET",c,!1),p0!==$x&&rx.setRequestHeader("Range","bytes="+Tx+"-"+nA),rx.responseType="arraybuffer",rx.overrideMimeType&&rx.overrideMimeType("text/plain; charset=x-user-defined"),rx.send(null),rx.status>=200&&rx.status<300||rx.status===304||_0("Couldn't load "+c+". Status: "+rx.status),rx.response!==void 0?new Uint8Array(rx.response||[]):NA(rx.responseText||"",!0)},UA=this;UA.setDataGetter(Tx=>{var nA=Tx*$x,rx=(Tx+1)*$x-1;return rx=Math.min(rx,p0-1),typeof UA.chunks[Tx]>"u"&&(UA.chunks[Tx]=qx(nA,rx)),typeof UA.chunks[Tx]>"u"&&_0("doXHR failed!"),UA.chunks[Tx]}),(yx||!p0)&&($x=p0=1,p0=this.getter(0).length,$x=p0,I("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=p0,this._chunkSize=$x,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(globalThis.XMLHttpRequest){l||_0("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var G=new $,J={isDevice:!1,contents:G}}else var J={isDevice:!1,url:c};var s0=a.createFile(s,v,J,u,h);J.contents?s0.contents=J.contents:J.url&&(s0.contents=null,s0.url=J.url),Object.defineProperties(s0,{usedBytes:{get:function(){return this.contents.length}}});var l0={};for(let[T0,w0]of Object.entries(s0.stream_ops))l0[T0]=(...p0)=>(a.forceLoadFile(s0),w0(...p0));function U0(T0,w0,p0,X0,fx){var yx=T0.node.contents;if(fx>=yx.length)return 0;var $x=Math.min(yx.length-fx,X0);if(yx.slice)for(var qx=0;qx<$x;qx++)w0[p0+qx]=yx[fx+qx];else for(var qx=0;qx<$x;qx++)w0[p0+qx]=yx.get(fx+qx);return $x}return l0.read=(T0,w0,p0,X0,fx)=>(a.forceLoadFile(s0),U0(T0,w0,p0,X0,fx)),l0.mmap=(T0,w0,p0,X0,fx)=>{a.forceLoadFile(s0);var yx=uA(w0);if(!yx)throw new a.ErrnoError(48);return U0(T0,Ax,yx,w0,p0),{ptr:yx,allocated:!0}},s0.stream_ops=l0,s0}},y0={currentUmask:18,calculateAt(s,v,c){if(E0.isAbs(v))return v;var u;if(s===-100)u=a.cwd();else{var h=y0.getStreamFromFD(s);u=h.path}if(v.length==0){if(!c)throw new a.ErrnoError(44);return u}return u+"/"+v},writeStat(s,v){F0[s>>2]=v.dev,F0[s+4>>2]=v.mode,F0[s+8>>2]=v.nlink,F0[s+12>>2]=v.uid,F0[s+16>>2]=v.gid,F0[s+20>>2]=v.rdev,G0[s+24>>3]=BigInt(v.size),M0[s+32>>2]=4096,M0[s+36>>2]=v.blocks;var c=v.atime.getTime(),u=v.mtime.getTime(),h=v.ctime.getTime();return G0[s+40>>3]=BigInt(Math.floor(c/1e3)),F0[s+48>>2]=c%1e3*1e3*1e3,G0[s+56>>3]=BigInt(Math.floor(u/1e3)),F0[s+64>>2]=u%1e3*1e3*1e3,G0[s+72>>3]=BigInt(Math.floor(h/1e3)),F0[s+80>>2]=h%1e3*1e3*1e3,G0[s+88>>3]=BigInt(v.ino),0},writeStatFs(s,v){F0[s+4>>2]=v.bsize,F0[s+60>>2]=v.bsize,G0[s+8>>3]=BigInt(v.blocks),G0[s+16>>3]=BigInt(v.bfree),G0[s+24>>3]=BigInt(v.bavail),G0[s+32>>3]=BigInt(v.files),G0[s+40>>3]=BigInt(v.ffree),F0[s+48>>2]=v.fsid,F0[s+64>>2]=v.flags,F0[s+56>>2]=v.namelen},doMsync(s,v,c,u,h){if(!a.isFile(v.node.mode))throw new a.ErrnoError(43);if(u&2)return 0;var $=Hx.slice(s,s+c);a.msync(v,$,h,c,u)},getStreamFromFD(s){var v=a.getStreamChecked(s);return v},varargs:void 0,getStr(s){var v=Bx(s);return v}};function dr(s,v,c){y0.varargs=c;try{var u=y0.getStreamFromFD(s);switch(v){case 0:{var h=zx();if(h<0)return-28;for(;a.streams[h];)h++;var $;return $=a.dupStream(u,h),$.fd}case 1:case 2:return 0;case 3:return u.flags;case 4:{var h=zx(),G=289792;return u.flags=u.flags&~G|h&G,0}case 12:{var h=dA(),J=0;return O0[h+J>>1]=2,0}case 13:case 14:return 0}return-28}catch(s0){if(typeof a>"u"||s0.name!=="ErrnoError")throw s0;return-s0.errno}}function jA(s,v,c){y0.varargs=c;try{var u=y0.getStreamFromFD(s);switch(v){case 21509:return u.tty?0:-59;case 21505:{if(!u.tty)return-59;if(u.tty.ops.ioctl_tcgets){var h=u.tty.ops.ioctl_tcgets(u),$=dA();M0[$>>2]=h.c_iflag||0,M0[$+4>>2]=h.c_oflag||0,M0[$+8>>2]=h.c_cflag||0,M0[$+12>>2]=h.c_lflag||0;for(var G=0;G<32;G++)Ax[$+G+17]=h.c_cc[G]||0;return 0}return 0}case 21510:case 21511:case 21512:return u.tty?0:-59;case 21506:case 21507:case 21508:{if(!u.tty)return-59;if(u.tty.ops.ioctl_tcsets){for(var $=dA(),J=M0[$>>2],s0=M0[$+4>>2],l0=M0[$+8>>2],U0=M0[$+12>>2],T0=[],G=0;G<32;G++)T0.push(Ax[$+G+17]);return u.tty.ops.ioctl_tcsets(u.tty,v,{c_iflag:J,c_oflag:s0,c_cflag:l0,c_lflag:U0,c_cc:T0})}return 0}case 21519:{if(!u.tty)return-59;var $=dA();return M0[$>>2]=0,0}case 21520:return u.tty?-28:-59;case 21537:case 21531:{var $=dA();return a.ioctl(u,v,$)}case 21523:{if(!u.tty)return-59;if(u.tty.ops.ioctl_tiocgwinsz){var w0=u.tty.ops.ioctl_tiocgwinsz(u.tty),$=dA();O0[$>>1]=w0[0],O0[$+2>>1]=w0[1]}return 0}case 21524:return u.tty?0:-59;case 21515:return u.tty?0:-59;default:return-28}}catch(p0){if(typeof a>"u"||p0.name!=="ErrnoError")throw p0;return-p0.errno}}function tA(s,v,c,u){y0.varargs=u;try{v=y0.getStr(v),v=y0.calculateAt(s,v);var h=u?zx():0;return c&64&&(h&=~y0.currentUmask),a.open(v,c,h).fd}catch($){if(typeof a>"u"||$.name!=="ErrnoError")throw $;return-$.errno}}var ce=()=>2147483648,rr=(s,v)=>Math.ceil(s/v)*v,Ir=s=>{var v=mA.buffer.byteLength,c=(s-v+65535)/65536|0;try{return mA.grow(c),K(),1}catch{}},Mr=s=>{var v=Hx.length;s>>>=0;var c=ce();if(s>c)return!1;for(var u=1;u<=4;u*=2){var h=v*(1+.2/u);h=Math.min(h,s+100663296);var $=Math.min(c,rr(Math.max(s,h),65536)),G=Ir($);if(G)return!0}return!1};function De(s){try{var v=y0.getStreamFromFD(s);return a.close(v),0}catch(c){if(typeof a>"u"||c.name!=="ErrnoError")throw c;return c.errno}}var de=(s,v,c,u)=>{for(var h=0,$=0;$<c;$++){var G=F0[v>>2],J=F0[v+4>>2];v+=8;var s0=a.read(s,Ax,G,J,u);if(s0<0)return-1;if(h+=s0,s0<J)break;typeof u<"u"&&(u+=s0)}return h};function ue(s,v,c,u){try{var h=y0.getStreamFromFD(s),$=de(h,v,c);return F0[u>>2]=$,0}catch(G){if(typeof a>"u"||G.name!=="ErrnoError")throw G;return G.errno}}var er=9007199254740992,Lr=-9007199254740992,IA=s=>s<Lr||s>er?NaN:Number(s);function tr(s,v,c,u){v=IA(v);try{if(isNaN(v))return 22;var h=y0.getStreamFromFD(s);return a.llseek(h,v,c),G0[u>>3]=BigInt(h.position),h.getdents&&v===0&&c===0&&(h.getdents=null),0}catch($){if(typeof a>"u"||$.name!=="ErrnoError")throw $;return $.errno}}var be=(s,v,c,u)=>{for(var h=0,$=0;$<c;$++){var G=F0[v>>2],J=F0[v+4>>2];v+=8;var s0=a.write(s,Ax,G,J,u);if(s0<0)return-1;if(h+=s0,s0<J)break;typeof u<"u"&&(u+=s0)}return h};function Rr(s,v,c,u){try{var h=y0.getStreamFromFD(s),$=be(h,v,c);return F0[u>>2]=$,0}catch(G){if(typeof a>"u"||G.name!=="ErrnoError")throw G;return G.errno}}var pe=0,MA=()=>xr||pe>0,ur=s=>{w=s,MA()||(t.onExit?.(s),e0=!0),k(s,new lA(s))},Or=(s,v)=>{w=s,MA()||D0(),ur(s)},Gr=s=>{if(s instanceof lA||s=="unwind")return w;k(1,s)},je=(s,v,c)=>lr(s,Hx,v,c),Ur=s=>RA(s),me=s=>{var v=TA(s)+1,c=Ur(v);return je(s,c,v),c},he=(...s)=>a.createPath(...s),nr=(...s)=>a.unlink(...s),ge=(...s)=>a.createLazyFile(...s),ye=(...s)=>a.createDevice(...s);if(a.createPreloadedFile=le,a.preloadFile=pA,a.staticInit(),t.noExitRuntime&&(xr=t.noExitRuntime),t.preloadPlugins&&(Ar=t.preloadPlugins),t.print&&(I=t.print),t.printErr&&(L=t.printErr),t.wasmBinary&&(R=t.wasmBinary),t.arguments&&(j=t.arguments),t.thisProgram&&(b=t.thisProgram),t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()();t.callMain=ox,t.addRunDependency=hx,t.removeRunDependency=Dr,t.FS_preloadFile=pA,t.FS_unlink=nr,t.FS_createPath=he,t.FS_createDevice=ye,t.FS=a,t.FS_createDataFile=cr,t.FS_createLazyFile=ge,t.PROXYFS=g0;var Hr,Kr,LA,zr,RA,br,gx,ke,mA;function OA(s){Hr=t._main=s.__main_argc_argv,Kr=s.__funcs_on_exit,LA=s.fflush,zr=s._emscripten_stack_restore,RA=s._emscripten_stack_alloc,br=s.emscripten_stack_get_current,gx=mA=s.memory,ke=s.__indirect_function_table}var pr={__assert_fail:AA,__syscall_fcntl64:dr,__syscall_ioctl:jA,__syscall_openat:tA,emscripten_resize_heap:Mr,fd_close:De,fd_read:ue,fd_seek:tr,fd_write:Rr};function ox(s=[]){var v=Hr;s.unshift(b);var c=s.length,u=Ur((c+1)*4),h=u;for(var $ of s)F0[h>>2]=me($),h+=4;F0[h>>2]=0;try{var G=v(c,u);return Or(G,!0),G}catch(J){return Gr(J)}}function ir(s=j){if(tx>0){b0=ir;return}if(U(),tx>0){b0=ir;return}function v(){if(t.calledRun=!0,!e0){a0(),H?.(t),t.onRuntimeInitialized?.();var c=t.noInitialRun||!0;c||ox(s),u0()}}t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),v()},1)):v()}var GA;return GA=await Dx(),ir(),r0?o=t:o=new Promise((s,v)=>{H=s,Z=v}),o}})();typeof A=="object"&&typeof x=="object"?(x.exports=r,x.exports.default=r):typeof define=="function"&&define.amd&&define([],()=>r)}}),Ki={};x8(Ki,{createPawnCC:()=>i8,createPawnDbg:()=>s8});zi.exports=A8(Ki);var t8=Hi(r8(),1),n8=Hi(e8(),1),i8=t8.default,s8=n8.default});var cB={};Lo(cB,{default:()=>Ga});module.exports=Ro(cB);var wx=require("commander");var Wt={name:"@microtronics/studio-cli",version:"1.1.1",description:"Microtronics Studio CLI Tool",main:"./out/api.js",typings:"./out/studio-cli.d.ts",bin:{"studio-cli":"studio-cli"},publishConfig:{access:"public"},scripts:{compile:"npm run build:registryApiTypings && tsc","build:cli":"node build.mjs","build:exe":"node build-exe.mjs",api:"api-extractor run --local --verbose",build:"npm run compile && npm run api && npm run build:cli","watch:build":"npm run compile -- --watch",test:"cross-env STUDIO_ENV=lucky mocha","test-ci":"cross-env STUDIO_ENV=lucky mocha --reporter mocha-junit-reporter","watch:test":"npm run test -- --watch",prepublishOnly:"npm run build","build:registryApiTypings":"npx openapi-typescript https://api.registry.lucky.ci.microtronics.com/v1/openapi.yaml -o ./src/typings/registry.ts"},author:"Microtronics",license:"ISC",dependencies:{"@gera2ld/tarjs":"^0.3.1",ajv:"^8.17.1","ajv-formats":"^3.0.1","ajv-keywords":"^5.1.0",chalk:"^5.4.1",commander:"^12.1.0","cross-fetch":"^4.0.0","deepmerge-ts":"^7.1.5",dotenv:"^16.4.7","file-type-checker":"^1.1.2",glob:"^11.0.1","iconv-lite":"^0.6.3","image-dimensions":"^2.3.0",ini:"^5.0.0",minimatch:"^10.0.1","openapi-fetch":"^0.13.0",pako:"^2.1.0",semver:"^7.7.2","tinytar-fix":"^0.1.1","update-notifier":"^7.3.1",usb:"^2.14.0",uuid:"^9.0.1","vscode-uri":"^3.0.8",yaml:"^2.6.1"},engines:{node:">= 22"},devDependencies:{"@microsoft/api-extractor":"^7.47.11","@microtronics/device-master":"bitbucket:microtronics-core/device-master#v3.0.0","@types/chai":"^4.3.6","@types/chai-as-promised":"^7.1.5","@types/ini":"^4.1.1","@types/mocha":"^10.0.9","@types/node":"^22.9.1","@types/semver":"^7.5.6","@types/update-notifier":"^6.0.8","@types/vscode":"^1.86.2","@yao-pkg/pkg":"^6.22.0",chai:"^4.3.8","chai-as-promised":"^7.1.2","cross-env":"^7.0.3",esbuild:"^0.27.3","extract-zip":"^2.0.1",mocha:"^10.8.2","mocha-junit-reporter":"^2.2.1","openapi-typescript":"^7.6.0","pawncc-wasm":"bitbucket:microtronics-core/pawncc-wasm#v1.1.1",resedit:"^3.0.2",tar:"^7.5.7","ts-node":"^10.9.2",typescript:"^5.6.3"},mocha:{require:["ts-node/register"],"watch-files":"src/**",spec:"./test/**/*.spec.ts",recursive:!0},files:["out/api.js","out/studio-cli.d.ts","dist/main.js","dist/studio-cli.d.ts","studio-cli","CHANGELOG.md"]};var sA=cx(require("node:fs/promises"));var we=require("vscode-uri"),Xn=require("glob"),yr={readFile(A){return sA.default.readFile(A.fsPath)},async rm(A){if(await this.stat(A))return sA.default.rm(A.fsPath,{recursive:!0})},async stat(A){try{let x=await sA.default.stat(A.fsPath),r=(x.isDirectory()?2:0)|(x.isFile()?1:0)|(x.isSymbolicLink()?64:0);return{ctime:x.ctimeMs,mtime:x.mtimeMs,permissions:void 0,size:x.size,type:r}}catch{return null}},async writeFile(A,x){typeof x=="string"&&(x=new TextEncoder().encode(x));let r=we.Utils.dirname(A);return await sA.default.mkdir(r.fsPath,{recursive:!0}),sA.default.writeFile(A.fsPath,x,{flag:"w"})},async findFiles(A,x,r){let e={ignore:r,nodir:!0,absolute:!0,dot:!0,cwd:A.fsPath};return(await(0,Xn.glob)(x,e)).map(o=>{let t=o.replace(/\\/g,"/");return we.URI.parse(`file:///${t}`)})},async copy(A,x){let r=await sA.default.stat(A.fsPath);return await sA.default.mkdir(we.Utils.dirname(x).fsPath,{recursive:!0}),r.isDirectory()?sA.default.cp(A.fsPath,x.fsPath,{force:!0,recursive:!0}):sA.default.copyFile(A.fsPath,x.fsPath)},async mkdir(A){await sA.default.mkdir(A.fsPath,{recursive:!0})}};var Ve=require("vscode-uri");var JA=require("vscode-uri");var Yr=require("vscode-uri");var Go=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function et(A,x=0){let r=~~x^-1;for(let e=0;e<A.length;e++)r=r>>>8^Go[(r^A[e])&255];return(r^-1)>>>0}var _B=new Uint8Array([0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64]),wB=new Uint8Array([0,192,193,1,195,3,2,194,198,6,7,199,5,197,196,4,204,12,13,205,15,207,206,14,10,202,203,11,201,9,8,200,216,24,25,217,27,219,218,26,30,222,223,31,221,29,28,220,20,212,213,21,215,23,22,214,210,18,19,211,17,209,208,16,240,48,49,241,51,243,242,50,54,246,247,55,245,53,52,244,60,252,253,61,255,63,62,254,250,58,59,251,57,249,248,56,40,232,233,41,235,43,42,234,238,46,47,239,45,237,236,44,228,36,37,229,39,231,230,38,34,226,227,35,225,33,32,224,160,96,97,161,99,163,162,98,102,166,167,103,165,101,100,164,108,172,173,109,175,111,110,174,170,106,107,171,105,169,168,104,120,184,185,121,187,123,122,186,190,126,127,191,125,189,188,124,180,116,117,181,119,183,182,118,114,178,179,115,177,113,112,176,80,144,145,81,147,83,82,146,150,86,87,151,85,149,148,84,156,92,93,157,95,159,158,94,90,154,155,91,153,89,88,152,136,72,73,137,75,139,138,74,78,142,143,79,141,77,76,140,68,132,133,69,135,71,70,134,130,66,67,131,65,129,128,64]);var m0;(q=>{function A(y,S){let[T,I]=S,{line:L,col:R}=y.linePos(T);return{line:Number(L)-1,startCharacter:R-1,endCharacter:R+(I-T)}}q.yamlRangeToLineInformation=A;let x=new TextEncoder;function r(y){return et(x.encode(y)).toString(16)}q.generateHashForLibraryName=r;function e(y){return et(x.encode(y)).toString(16)}q.generateHashForFilePath=e;function i(y){return et(y).toString(16).toUpperCase().padStart(8,"0")}q.generateCRC32ForFileContent=i;function o(y){try{let S=null;return y?.type==="Buffer"?S=Uint8Array.from(y.data):S=y,new TextDecoder("utf8").decode(S)}catch{return""}}q.convertBlobToString=o;function t(y=""){return y.replace(/\r\n|\n\r|\r/g,`
|
|
1528
1528
|
`)}q.normalizeLF=t;function B(y){try{let S=o(y);return t(S).split(`
|
|
1529
|
-
`)}catch{return[]}}q.convertBlobToStringArray=B,q.isNumeric=y=>!Array.isArray(y)&&y-parseFloat(y)+1>=0;function D(y){let S="",T=y.byteLength;for(let I=0;I<T;I++)S+=String.fromCharCode(y[I]);return btoa(S)}q.bufferToBase64=D;function j(y,S){let T=`${y}`.match(/\{\d*(index)(\+\d*)?}/g);if(T){let I=y;return T.forEach(L=>{let R=L.replace(/\+0$/,""),e0=R.match(/index/)?.[0];if(e0){let w=R.slice(1,-1).split(e0)[1],g=parseInt(w)||0;I=I.replace(L,`${S+g}`)}}),I}else return y}q.patchValueWithArrayInfo=j;let b={};function k(y,S,T){let I=b[y];I&&clearTimeout(I.timer),b[y]={timer:setTimeout(()=>{delete b[y],T()},S),handler:T}}q.defer=k})(m0||={});var
|
|
1529
|
+
`)}catch{return[]}}q.convertBlobToStringArray=B,q.isNumeric=y=>!Array.isArray(y)&&y-parseFloat(y)+1>=0;function D(y){let S="",T=y.byteLength;for(let I=0;I<T;I++)S+=String.fromCharCode(y[I]);return btoa(S)}q.bufferToBase64=D;function j(y,S){let T=`${y}`.match(/\{\d*(index)(\+\d*)?}/g);if(T){let I=y;return T.forEach(L=>{let R=L.replace(/\+0$/,""),e0=R.match(/index/)?.[0];if(e0){let w=R.slice(1,-1).split(e0)[1],g=parseInt(w)||0;I=I.replace(L,`${S+g}`)}}),I}else return y}q.patchValueWithArrayInfo=j;let b={};function k(y,S,T){let I=b[y];I&&clearTimeout(I.timer),b[y]={timer:setTimeout(()=>{delete b[y],T()},S),handler:T}}q.defer=k})(m0||={});var Ci=require("image-dimensions"),li=require("file-type-checker");var ZB=require("cross-fetch/polyfill"),Ei=cx(require("openapi-fetch"));var or=require("vscode-uri");var dx=require("vscode-uri");var yA=cx(require("semver"));var _x="dist/",Yn="dde/",Xt="dlo/",Qn=".studio/",Zn="dfiles/",i0;(B=>{B.fileNames={projectSettings:"studio.json",mainAmx:"main.amx",mainAmxReport:"main.xml",ddeXml:"dde.xml",ddeOpenApi:"main.yaml",historyJson:"history.json",mainDDE:"main.dde",autoInc:"auto.inc",defaultInc:"default.inc",autoUplinkInc:"app-uplink.inc",autoDdeInc:"X-dde.inc",mainDdeInc:"main-dde.inc",autoLocalDataInc:"auto-local-data.inc",legacyAutoInc:"legacy-auto.inc",legacyAutoDdeInc:"legacy-auto-dde.inc",legacyAutoUplinkInc:"legacy-auto-uplink.inc",reportTemplate:"mdn_report_template.json",dloCfg:"dlo.cfg"};let x=`${Qn}auto/`,r=`${x}dlo/`,e=`${x}dde/`;B.filePaths={studio:{initFile:`${x}.init`,auto:{path:x,dlo:{path:r,autoInc:`${r}${B.fileNames.autoInc}`,defaultInc:`${r}${B.fileNames.defaultInc}`,autoUplinkInc:`${r}${B.fileNames.autoUplinkInc}`,autoLocalDataInc:`${r}${B.fileNames.autoLocalDataInc}`,autoDdeInc:`${r}${B.fileNames.autoDdeInc}`,mainDdeInc:`${r}${B.fileNames.mainDdeInc}`,legacyAutoInc:`${r}${B.fileNames.legacyAutoInc}`,legacyAutoDdeInc:`${r}${B.fileNames.legacyAutoDdeInc}`,legacyAutoUplinkInc:`${r}${B.fileNames.legacyAutoUplinkInc}`,cfg:`${r}${B.fileNames.dloCfg}`},dde:{path:e,historyJson:`${e}${B.fileNames.historyJson}`}},libdeps:`${Qn}libdeps/`},dist:{path:_x,dloPath:`${_x}dlo/`,mainAmxPath:`${_x}dlo/${B.fileNames.mainAmx}`,mainAmxReportPath:`${_x}dlo/${B.fileNames.mainAmxReport}`,ddeXmlPath:`${_x}dde/${B.fileNames.ddeXml}`,ddeApiPath:`${_x}api/`,ddeApi:`${_x}api/${B.fileNames.ddeOpenApi}`,historyJson:`${_x}dde/${B.fileNames.historyJson}`,povPath:`${_x}pov`,povDetailsPath:`${_x}pov/details`,dfilesPath:`${_x}dfiles`,dfilesProperties:`${_x}dfiles/properties.json`,bloPath:`${_x}blo`,reportTemplate:`${_x}/${B.fileNames.reportTemplate}`,definesTs:`${_x}defines.ts`,definesAppTs:`${_x}defines.app.ts`},dlo:{path:Xt,mainDLO:`${Xt}main.dlo`,mainINI:`${Xt}main.ini`},dde:{path:Yn,mainDDE:`${Yn}main.dde`},dfiles:{path:Zn,mainDFILES:`${Zn}/main.dfiles`},appIni:"app.ini",defaultsIni:"defaults.ini"},B.readme=l=>`# ${l} README
|
|
1530
1530
|
|
|
1531
1531
|
This is the README for your project "${l}". Write a brief description what this project is about.`,B.changelog=`# Changelog
|
|
1532
1532
|
|
|
1533
1533
|
All notable changes to this project will be documented in this file.
|
|
1534
1534
|
|
|
1535
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).`})(i0||={});var
|
|
1535
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).`})(i0||={});var ei=cx(require("node:child_process")),ti=require("minimatch");var Yt=require("vscode-uri");var xi=cx(require("semver")),Uo="package.json",Ho=["peerDependencies","dependencies","optionalDependencies"],Ko=" ",Wr;(e=>{e.PART_DIST_PATHS=[i0.filePaths.dist.bloPath,i0.filePaths.dist.povDetailsPath];async function x(i,o,t,B){let l=Yt.Utils.joinPath(i,Uo),D=`${t.name}/${Yo(i)}`;if(!await o.stat(l))return!1;let b=await zo(o,l,D,B);if(!b)return!1;let k=b.pkg;if(typeof k!="object"||k===null||Array.isArray(k))return B.warn(`"${D}/package.json" does not contain a JSON object - skipped normalizing it.`),!1;if(!xi.valid(t.version))return B.warn(`Library manifest version "${t.version}" is not a valid semantic version - skipped normalizing "${D}/package.json".`),!1;Jo(k,t,D,B);let q=Vo(k,t.version);k=q.pkg;let y=q.changed;y&&B.warn(`Patched version "${q.oldVersion??"<none>"}" -> "${t.version}" in "${D}/package.json" (studio.json is the source of truth).`);let S=Xo(t);if(Wo(k,S,D,B)&&(y=!0),!y)return!1;let T=Qo(b.raw),I=b.raw.endsWith(`
|
|
1536
1536
|
`),L=JSON.stringify(k,null,T)+(I?`
|
|
1537
|
-
`:"");try{await o.writeFile(l,L)}catch(R){return B.warn(`Could not write "${D}/package.json": ${R}`),!1}return!0}e.normalizePartPackageJson=x;async function r(i,o,t,B){for(let l of e.PART_DIST_PATHS){let D=
|
|
1538
|
-
`;await x.writeFile(i,o)}async function
|
|
1537
|
+
`:"");try{await o.writeFile(l,L)}catch(R){return B.warn(`Could not write "${D}/package.json": ${R}`),!1}return!0}e.normalizePartPackageJson=x;async function r(i,o,t,B){for(let l of e.PART_DIST_PATHS){let D=Yt.Utils.joinPath(i,l);await x(D,o,t,B)}}e.normalizeLibraryParts=r})(Wr||={});async function zo(A,x,r,e){try{let i=await A.readFile(x),o=m0.convertBlobToString(i),t=JSON.parse(o);return{raw:o,pkg:t}}catch(i){return e.warn(`Could not read/parse "${r}/package.json": ${i}`),null}}function Jo(A,x,r,e){A.name!==void 0&&A.name!==x.name&&e.warn(`"${r}/package.json" name "${A.name}" does not match library name "${x.name}".`)}function Vo(A,x){if(A.version===x)return{pkg:A,changed:!1,oldVersion:A.version};let r=A.version;if(A.version===void 0&&Object.hasOwn(A,"name")){let{name:e,...i}=A;A={name:e,version:x,...i}}else A.version=x;return{pkg:A,changed:!0,oldVersion:r}}function Wo(A,x,r,e){let i=!1;for(let o of Ho){let t=A[o];if(!t)continue;let B=!1;for(let l of Object.keys(t)){if(!x.has(l))continue;let D=t[l];if(typeof D!="string"||D.startsWith("npm:")||D.includes("://")){e.warn(`Left "${l}" in ${o} of ${r}/package.json untouched - its value "${D}" does not look like a Studio library reference.`);continue}delete t[l],B=!0,i=!0,e.warn(`Removed "${l}" from ${o} of ${r}/package.json - Studio libraries must be declared in studio.json "libraryDependencies" (npm ranges never match prereleases across minor versions).`)}B&&Object.keys(t).length===0&&delete A[o]}return i}function Xo(A){let x=[...Object.keys(A.libraryDependencies||{}),...Object.keys(A.libraryDevDependencies||{})];return new Set(x.map(r=>r.split("/")[1]))}function Yo(A){let x=A.path.replace(/\\/g,"/");for(let r of Wr.PART_DIST_PATHS)if(x===r||x.endsWith(`/${r}`))return r;return x}function Qo(A){let x=A.match(/^\{\r?\n([ \t]+)/);return x?x[1].startsWith(" ")?" ":x[1]:Ko}var Zo=require("tinytar-fix"),xF=require("pako"),ar=".studio/libdeps",$e="package.json",AF="package-lock.json",ex;(e0=>{async function A(w,g=!1){let O=w.libraryDependencies||{};return g||Object.assign(O,w.libraryDevDependencies||{}),O}e0.getAll=A;function x(w){return w.split("/")[1]}e0.dependencyIdToName=x;function r(w,g){let O=x(g);return dx.Utils.joinPath(w,ar,O)}e0.dependencyToPath=r;function e(w){return isNaN(w.split("")[0])?w.substring(1):w}e0.rangeToVersion=e;function i(w,g,O){if(!yA.satisfies(g,O,{includePrerelease:!0}))throw new Error(`${w}, version ${g} does not satisfy required constraint ${O}`)}e0.satisfiesSemverRange=i;async function o(w,g,O={},Y=!1){let x0=await W.read(w,g),H=x0.libraryDependencies||{};Y&&Object.assign(H,x0.libraryDevDependencies);let Z=Object.keys(O);for(let r0 of Z)if(Object.hasOwn(H,r0)){let n0=O[r0],K=H[r0],U=e(n0),a0=e(K),v0=yA.compare(U,a0);v0===1?(H[r0]=n0,i(r0,U,K)):v0===-1&&(H[r0]=K,i(r0,a0,n0))}else H[r0]=O[r0];return H}e0.validateDependencyTree=o;async function t(w,g,O,Y,x0){let H=e(x0),Z=dx.Utils.joinPath(w,ar,Y);try{let r0=await W.read(Z,g);return yA.gte(r0.version,H)&&r0.publisher.toLowerCase()===O.toLowerCase()}catch{return!1}}e0.isDependencyInstalled=t;async function B(w,g,O,Y){let x0=dx.Utils.joinPath(w,ar,Y);await g.rm(x0).catch(H=>{O.error("removeExisting",H)})}e0.removeExisting=B;async function l(w,g,O,Y,x0){let H=Zo.untar(xF.ungzip(x0));await B(w,g,O,Y);for(let Z of H.values())try{let r0=dx.Utils.joinPath(w,ar,Y,Z.name);await g.writeFile(r0,Z.data)}catch(r0){O.error("Extracting lib",r0)}}e0.extractLibraryContent=l;async function D(w,g,O,Y,x0,H,Z,r0=!1){let[n0,K]=H.split("/");if(Z&&await t(w,g,n0,K,Z))return;await B(w,g,O,K);let U=await xx.getLibraryProfile(x0,n0,K,Y),a0=Z?U.versions?.find(R0=>yA.eq(R0.name,e0.rangeToVersion(Z))):U.versions[0];if(!a0)throw new Error(`Library ${H} with version ${Z} does not exist!`);let v0=a0.files.find(R0=>R0.name==="studio.json"),u0=(await rF(x0,v0.downloadUrl)).libraryDependencies||{},_0={...u0};_0[H]=`^${a0.name}`,await o(w,g,_0,r0);for(let[R0,Dx]of Object.entries(u0))await D(w,g,O,Y,x0,R0,Dx,r0);let q0=a0.files.find(R0=>R0.name==="library.tar.gz");if(!q0)throw new Error(`Library ${H} has no content!`);let V0=await xx.fetchCustomContent(x0,q0.downloadUrl);await l(w,g,O,K,V0),await L(w,g,O,K,r0);let Ex=await W.read(w,g),fA=Ex.libraryDependencies||{},CA=Ex.libraryDevDependencies||{},PA=r0?CA:fA;PA[H]=`^${a0.name}`,Ex.libraryDependencies=fA,Ex.libraryDevDependencies=CA,await W.write(w,g,Ex)}e0.installDependency=D;async function j(w,g,O,Y,x0){let H=await W.read(w,g),Z=H.libraryDependencies||{},r0=H.libraryDevDependencies||{},n0=Object.assign(Z,r0);for(let[K,U]of Object.entries(n0)){let a0=Object.hasOwn(r0,K);await D(w,g,O,Y,x0,K,U,a0)}for(let[K]of Object.entries(n0)){let U=x(K),a0=Object.hasOwn(r0,K);await L(w,g,O,U,a0)}O.done(`Installed ${Object.entries(n0).length} dependencies`)}e0.installDependencies=j;async function b(w,g,O,Y,x0){let H=await W.read(w,g),Z=H.libraryDependencies||{},r0=H.libraryDevDependencies||{},n0=Object.assign(Z,r0),K=`${Y}/${x0}`;delete n0[K];let U=await eF(w,g,n0);if(!Object.hasOwn(U,K))await R(w,g,O,x0),await B(w,g,O,x0),delete r0[K],delete Z[K],await W.write(w,g,H);else throw new Error(`Library '${x0}' not removed. This library is a dependency of other libraries.`)}e0.uninstallDependency=b;async function k(w,g){try{let Y=(await ni(dx.Utils.joinPath(w,$e),g)).workspaces;if(Array.isArray(Y)&&Y.every(H=>typeof H=="string")&&Y.length>0)return Y;let x0=Y?.packages;return Array.isArray(x0)&&x0.every(H=>typeof H=="string")&&x0.length>0?x0:null}catch{return null}}e0.readNpmWorkspacePatterns=k;function q(w,g){let O=x0=>x0.replace(/\\/g,"/").replace(/^\.\//,"").replace(/\/$/,""),Y=O(w);return g.some(x0=>{let H=O(x0);return H===Y||(0,ti.minimatch)(Y,H)})}e0.isPathInWorkspaces=q;function y(w,g){if(!g)return{rootInstall:!1,partInstalls:w.map(x0=>x0.workingPath)};let O=[],Y=!1;for(let x0 of w)q(x0.workingPath,g)?Y=!0:O.push(x0.workingPath);return{rootInstall:Y,partInstalls:O}}e0.planNpmInstalls=y;async function S(w,g,O){let Y=await W.read(w,g),x0=new Set([...Object.keys(Y.libraryDependencies||{}),...Object.keys(Y.libraryDevDependencies||{})].map(x)),H=new Set,Z=[...x0];for(;Z.length>0;){let r0=Z.shift();if(H.has(r0))continue;H.add(r0);let n0=dx.Utils.joinPath(w,ar,r0);try{let K=dx.Utils.joinPath(n0,W.fileName);if(!await g.stat(K))continue;let U=await W.readRaw(n0,g);await Wr.normalizeLibraryParts(n0,g,U,O),Z.push(...[...Object.keys(U.libraryDependencies||{}),...Object.keys(U.libraryDevDependencies||{})].map(x))}catch(K){O.warn(`Could not normalize library parts for "${r0}": ${K}`)}}}e0.normalizeInstalledLibraryParts=S;async function T(w,g,O){await S(w,g,O);let Y=await W.read(w,g),x0=[];Y.pov?.details?.workingPath&&x0.push({name:"pov",workingPath:Y.pov.details.workingPath}),Y.blo?.workingPath&&x0.push({name:"blo",workingPath:Y.blo.workingPath});let H=[];for(let K of x0){let U=dx.Utils.joinPath(w,K.workingPath),a0=dx.Utils.joinPath(U,$e);await g.stat(a0)&&H.push(K)}if(H.length===0)return;let Z=await k(w,g),{rootInstall:r0,partInstalls:n0}=y(H,Z);if(r0){let K=H.filter(U=>!n0.includes(U.workingPath)).map(U=>U.workingPath).join(", ");O.info(`npm workspaces detected in root package.json - installing dependencies once at the project root (${K}) using 'npm install' (an in-sync package-lock.json is installed as-is and left unchanged)`),await tt(w,"npm install --no-audit --no-fund",O)}for(let K of H){if(!n0.includes(K.workingPath))continue;Z?O.warn(`${K.workingPath} (${K.name}) is not covered by any workspace pattern in the root package.json - installing it separately.`):O.info(`Installing npm dependencies for ${K.name} (${K.workingPath})...`);let U=dx.Utils.joinPath(w,K.workingPath);await iF(U,g,O)}}e0.installNpmInApmParts=T;async function I(w,g,O){let Y=await W.read(w,g),x0=await A(Y),H=[],Z=i0.filePaths[O].path,r0=O===d0.Part.dlo?"inc":"dfiles";for(let n0 in x0){let K=e0.dependencyToPath(w,n0),U=e0.dependencyIdToName(n0),a0=dx.Utils.joinPath(K,Z,`${U}.${r0}`);await g.stat(a0)&&H.push({name:U,path:a0})}if(W.isLibrary(Y)){let n0=dx.Utils.joinPath(w,Z,`${Y.name}.${r0}`);await g.stat(n0)&&H.push({name:Y.name,path:n0})}return H}e0.getApmPartDependencies=I;async function L(w,g,O,Y,x0){let H=await W.read(w,g),Z=[{partName:"blo",partDistPath:"blo",workingPath:H.blo?.workingPath},{partName:"pov",partDistPath:"pov/details",workingPath:H.pov?.details?.workingPath}];for(let{partName:r0,partDistPath:n0,workingPath:K}of Z){if(!K)continue;let U=dx.Utils.joinPath(w,ar,Y,"dist",...n0.split("/"),$e);if(await g.stat(U))try{let v0=await Ai(w,g,K),D0=x0?"devDependencies":"dependencies";v0[D0]=v0[D0]||{};let u0=K.split("/").length,_0=Array(u0).fill("..").join("/");v0[D0][Y]=`file:${_0}/${ar}/${Y}/dist/${n0}`,await ri(w,g,K,v0),O.info(`Linked ${Y} to ${r0} (${K})`)}catch(v0){O.warn(`Could not link ${Y} to ${r0}: ${v0}`)}}}e0.linkLibraryApmParts=L;async function R(w,g,O,Y){let x0=await W.read(w,g),H=[{partName:"blo",workingPath:x0.blo?.workingPath},{partName:"pov",workingPath:x0.pov?.details?.workingPath}];for(let{partName:Z,workingPath:r0}of H)if(r0)try{let n0=await Ai(w,g,r0),K=!1;n0.dependencies?.[Y]?.startsWith("file:")&&(delete n0.dependencies[Y],K=!0),n0.devDependencies?.[Y]?.startsWith("file:")&&(delete n0.devDependencies[Y],K=!0),K&&(await ri(w,g,r0,n0),O.info(`Unlinked ${Y} from ${Z}`))}catch(n0){O.warn(`Could not unlink ${Y} from ${Z}: ${n0}`)}}e0.unlinkLibraryApmParts=R})(ex||={});async function ni(A,x){let r=await x.readFile(A);return JSON.parse(m0.convertBlobToString(r))}function Ai(A,x,r){return ni(dx.Utils.joinPath(A,r,$e),x)}async function ri(A,x,r,e){let i=dx.Utils.joinPath(A,r,$e),o=JSON.stringify(e,null," ")+`
|
|
1538
|
+
`;await x.writeFile(i,o)}async function rF(A,x){return await xx.fetchCustomContent(A,x,!0)}async function eF(A,x,r){let e={};function i(D,j,b,k=!1){let q=e[D],y=ex.rangeToVersion(b),S=ex.rangeToVersion(b);(!q||yA.gt(y,S))&&(e[D]={publisherId:j,version:b,installed:k})}let o=Object.entries(r).map(([D,j])=>{let[b,k]=D.split("/");return i(k,b,j,!0),k}),t={};for(let D of o)try{let j=await tF(A,x,D);t[D]=Object.entries(j).map(([b,k])=>{let[q,y]=b.split("/");return i(y,q,k),y}),o.push(...t[D])}catch{let b=e[D];throw new Error(`Please import "${b.publisherId}/${D}" first.`)}let B=[];for(;;){let D=o.filter(j=>B.includes(j)?!1:(t[j]||[]).every(k=>B.includes(k)));if(B.push(...D),o.length===B.length||!D.length)break}let l={};return[...new Set(B)].forEach(D=>{let{version:j,publisherId:b}=e[D],k=nF(b,D,j);l[k.libraryId]=k.libraryVersion}),l}async function tF(A,x,r){let e=dx.Utils.joinPath(A,ar,r);return(await W.read(e,x))?.libraryDependencies||{}}function nF(A,x,r){return{libraryName:x,publisherId:A,libraryVersion:r[0]==="^"?r:"^"+r,libraryId:`${A}/${x}`}}function tt(A,x,r){return new Promise((e,i)=>{ei.exec(x,{cwd:A.fsPath,env:process.env},(o,t,B)=>{if(t&&r.log(t),B&&r.error(B),o){i(new Error(`${o.message}
|
|
1539
1539
|
${t}
|
|
1540
|
-
${B}`));return}e()})})}async function
|
|
1541
|
-
`))j.push(` ${L}`)}let T=
|
|
1540
|
+
${B}`));return}e()})})}async function iF(A,x,r){let e=dx.Utils.joinPath(A,AF);if(!await x.stat(e)){r.warn(`No package-lock.json found in ${A.fsPath} - running 'npm install' instead of 'npm ci'.`),await tt(A,"npm install",r);return}try{await tt(A,"npm ci",r)}catch{r.warn(`'npm ci' failed in ${A.fsPath} - falling back to 'npm install'. If package-lock.json changed afterwards, commit it.`),await tt(A,"npm install",r)}}var ai=cx(require("ini"));var sF=m0.convertBlobToString,aF=i0.filePaths.dlo.path,ix;(i=>{let A;(l=>(l.lucky="lucky",l.wynni="wynni",l.production="production"))(A=i.ENV||={});async function x(o,t,B){let l=await W.read(o,t),D=await ex.getAll(l),j={},b={},k={};for(let L in D){let R=ex.dependencyToPath(o,L),e0=ex.dependencyIdToName(L),w=or.Utils.joinPath(R,aF,`${e0}.ini`);await Xr(t,w,j,b,k,e0);let g=or.Utils.joinPath(R,i0.filePaths.defaultsIni);await Xr(t,g,j,b,k,e0)}if(W.isLibrary(l)){let L=or.Utils.joinPath(o,i0.filePaths.dlo.path,`${l.name}.ini`);B&&await t.stat(L)&&B.warn(`dlo/${l.name}.ini is deprecated. Please migrate your defines to defaults.ini in the project root.`),await Xr(t,L,j,b,k,l.name)}let q=l.dlo?.iniFile||i0.filePaths.dlo.mainINI,y=or.Utils.joinPath(o,q);B&&await t.stat(y)&&B.warn(`${q} is deprecated. Please migrate your defines to app.ini in the project root.`);let S=EF(q);if(await Xr(t,y,j,b,k,S),W.isLibrary(l)){let L=or.Utils.joinPath(o,i0.filePaths.defaultsIni);await Xr(t,L,j,b,k,"defaults")}let T=oF(l,j,b,k),I=or.Utils.joinPath(o,i0.filePaths.appIni);return await Xr(t,I,j,b,k,"app"),{flat:j,sections:b,definesWithSource:k,defaultsOnly:T}}i.read=x;async function r(o,t,B,l){let D=Object.entries(B.flat),j=[];for(let[q,y]of D){let S=B.definesWithSource[q];if(S?.comment){let I=ii(S.comment);for(let L of I.split(`
|
|
1541
|
+
`))j.push(` ${L}`)}let T=si(y)?"number":"string";j.push(` ${q}: ${T};`)}let b=["// Auto-generated by @microtronics/studio-cli \u2014 DO NOT EDIT","declare global {"," interface StudioDefines {",...j," }"," var STUDIO_DEFINES: StudioDefines;","}","","globalThis.STUDIO_DEFINES ??= {} as StudioDefines;",""];for(let[q,y]of D){let S=B.definesWithSource[q];if(S?.comment&&b.push(ii(S.comment)),si(y))b.push(`globalThis.STUDIO_DEFINES['${q}'] = ${Number(y)};`);else{let T=y.replace(/\\/g,"\\\\").replace(/'/g,"\\'");b.push(`globalThis.STUDIO_DEFINES['${q}'] = '${T}';`)}}b.push(""),b.push("export {};"),b.push("");let k=or.Utils.joinPath(o,l??i0.filePaths.dist.definesTs);await t.writeFile(k,b.join(`
|
|
1542
1542
|
`))}i.exportDefinesTs=r;function e(o,t){let B=[];return{result:o.replace(/\{\{([^}]+)\}\}/g,(D,j)=>{let b=j.trim();return Object.hasOwn(t,b)?t[b]:(B.push(b),D)}),unresolvedKeys:B}}i.replaceDefineTemplates=e})(ix||={});function oF(A,x,r,e){if(W.isLibrary(A))return{flat:{...x},sections:structuredClone(r),definesWithSource:{...e}}}function FF(A){if(A==="")return{kind:"empty"};if(A.startsWith("#")||A.startsWith(";"))return{kind:"comment",text:A.replace(/^[#;]\s?/,"")};if(A.startsWith("[")&&A.endsWith("]"))return{kind:"section",name:A.slice(1,-1)};let x=A.indexOf("=");return x>0?{kind:"keyValue",key:A.slice(0,x).trim()}:{kind:"other"}}function vF(A){let x={},r=A.split(/\r?\n/),e=[],i=null;for(let o of r){let t=FF(o.trim());if(t.kind==="empty"||t.kind==="other"){e=[];continue}if(t.kind==="comment"){e.push(t.text);continue}if(t.kind==="section"){i=t.name;continue}let B=i?`${i}_${t.key}`:t.key;e.length>0&&(x[B]=e.join(`
|
|
1543
|
-
`)),e=[]}return x}function
|
|
1543
|
+
`)),e=[]}return x}function ii(A){let x=A.split(`
|
|
1544
1544
|
`);return x.length===1?`/** ${x[0]} */`:`/**
|
|
1545
1545
|
${x.map(e=>` * ${e}`).join(`
|
|
1546
1546
|
`)}
|
|
1547
|
-
*/`}function
|
|
1548
|
-
${e}`:e||A}function vi(A,x,r,e,i,o,t){let B=i?`${i}_${e}`:e,l={value:A,sourceUri:x,sourceLine:fF(r,e,i)};return o[B]&&(l.comment=`${t}: ${o[B]}`),l}function BF(A,x,r,e,i,o,t,B,l){e[A]||(e[A]={});for(let[D,j]of Object.entries(x)){let b=`${A}_${D}`,k=B[b],q=`${j}`;r[b]=q,e[A][D]=q;let y=vi(q,o,t,D,A,B,l);y.comment=Fi(i[b]?.comment,k,l),i[b]=y}}async function Xr(A,x,r,e,i,o){if(!await A.stat(x))return;let t=await A.readFile(x),B=sF(t),l=oi.parse(B),D=x.toString(),j=B.split(/\r?\n/),b=vF(B);for(let[k,q]of Object.entries(l))if(typeof q=="object"&&q!==null)BF(k,q,r,e,i,D,j,b,o);else{let y=b[k],S=`${q}`;r[k]=S;let T=vi(S,D,j,k,null,b,o);T.comment=Fi(i[k]?.comment,y,o),i[k]=T}}function fF(A,x,r){let e=r===null,i=r?`[${r}]`:null,o=new RegExp(`^\\s*${CF(x)}\\s*=`);for(let t=0;t<A.length;t++){let B=A[t].trim();if(i&&B===i){e=!0;continue}if(e&&B.startsWith("[")&&B.endsWith("]")&&r!==null){e=!1;continue}if(e&&o.test(A[t]))return t}return 0}function CF(A){return A.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var nt=cx(require("semver/preload")),{GET:Qt,POST:tt,PUT:Ei}=(0,Bi.default)();function Xx(A){if(A)return{authorization:`Bearer ${A}`}}var xx;(q=>{q.getAPIUrl=y=>{let S="https://api.registry.microtronics.com";return y===ix.ENV.lucky?S="https://api.registry.lucky.ci.microtronics.com":y===ix.ENV.wynni&&(S="https://api.registry.wynni.ci.microtronics.com"),{baseUrl:S+"/v1"}};async function x(y,S,T,I){let{data:L,error:R}=await Qt("/publisher/{publisherId}/libraries/{libraryId}",{...(0,q.getAPIUrl)(I),headers:{...Xx(y)},params:{path:{publisherId:S,libraryId:T}}});if(R)throw new Error(R.reason);return L}q.getLibraryProfile=x;async function r(y,S,T=!1){let I=await fetch(S,{headers:{...Xx(y),...k(!0)}});if(I.status===200)return T?await I.json():await I.arrayBuffer();throw new Error("Failed to fetch the library content")}q.fetchCustomContent=r;async function e(y,S,T){try{let{data:I,error:L}=await Qt("/publisher/{publisherId}",{...(0,q.getAPIUrl)(T),headers:{...Xx(y)},params:{path:{publisherId:S}}});return L?(console.error(L),null):I}catch(I){return console.error(I),null}}q.getPublisher=e;async function i(y,S,T,I){try{let{data:L,error:R}=await tt("/packages/{publisherId}/applications",{...(0,q.getAPIUrl)(I),headers:{...Xx(y),...k(!0)},params:{path:{publisherId:S}},body:{...T}});if(R)throw new Error(R.reason);return L.id}catch{return null}}q.createNewApplication=i;async function o(y,S,T,I){let{data:L,error:R}=await Qt("/publisher/{publisherId}/applications/{applicationId}",{...(0,q.getAPIUrl)(I),headers:{...Xx(y),...k(!0)},params:{path:{publisherId:S,applicationId:T}}});if(R)throw new Error(R.reason);return L}q.getExistingApplication=o;async function t(y,S,T,I,L){try{let{error:R}=await Ei("/packages/{publisherId}/applications/{applicationId}",{...(0,q.getAPIUrl)(L),headers:{...Xx(y),...k(!0)},params:{path:{publisherId:S,applicationId:T}},body:{...I}});if(R)throw new Error(R.reason);return}catch{return null}}q.updateExistingApplication=t;async function B(y,S,T,I,L,R){let e0=!!nt.default.valid(I);try{let{error:w}=await Ei("/packages/{publisherId}/applications/{applicationId}/versions/{applicationVersion}",{...(0,q.getAPIUrl)(R),headers:{...Xx(y),...k(e0)},params:{path:{publisherId:S,applicationId:T,applicationVersion:I}},body:{...L}});if(w)throw new Error(w.reason);return}catch{return null}}q.updateExistingApplicationVersion=B;async function l(y,S,T,I,L,R){let e0=!!nt.default.valid(I),{data:w,error:g}=await tt("/packages/{publisherId}/applications/{applicationId}/versions/{applicationVersion}",{...(0,q.getAPIUrl)(R),headers:{...Xx(y),...k(e0)},params:{path:{publisherId:S,applicationId:T,applicationVersion:I}},body:{},bodySerializer(){return L}});if(g)throw new Error(g.reason||g.err||g);return w}q.publishApplicationVersion=l;let D={"README.md":"text/markdown","CHANGELOG.md":"text/markdown","library.tar.gz":"application/gzip","studio.json":"application/json"};async function j(y,S,T,I,L,R){try{let{error:e0}=await tt("/packages/{publisherId}/libraries/{libraryId}/versions/{libraryVersion}",{...(0,q.getAPIUrl)(R),headers:{...Xx(y),...k(!0)},params:{path:{publisherId:S,libraryId:T,libraryVersion:I}},body:{...L},bodySerializer(w){let g=new FormData;for(let[O,Y]of Object.entries(w))Y!==void 0&&g.append(O,new Blob([Y],{type:D[O]}),O);return g}});if(e0)throw new Error(e0.reason)}catch(e0){throw console.error(e0),e0}}q.publishLibraryVersion=j;async function b(y,S,T,I,L,R,e0){let w=!!nt.default.valid(I),{error:g}=await tt("/packages/{publisherId}/applications/{applicationId}/versions/{applicationVersion}/files/{applicationFileName}",{...(0,q.getAPIUrl)(e0),headers:{...Xx(y),...k(w),"Content-Type":"application/octet-stream"},params:{path:{publisherId:S,applicationId:T,applicationVersion:I,applicationFileName:L}},body:{},bodySerializer(){return R}});if(g)throw new Error(g.reason)}q.updateApplicationFile=b;function k(y=!1){return y?{"X-Semver":"true"}:{}}q.injectSemverHeader=k})(xx||={});var Di=cx(require("semver/preload"));var di=require("deepmerge-ts"),lF=m0.isNumeric,fi="52v007",Ci="53v001",cF="54v001",DF="56v001",Yx={_manifest:null,_stat:null,_overwrites:null,get manifest(){return(0,di.deepmerge)(structuredClone(this._manifest),Yx._overwrites||{})},set manifest(A){this._manifest=A},set overwrites(A){this._overwrites=A},get stat(){return this._stat},set stat(A){this._stat=A},clear(){this._stat=null,this._manifest=null}},W;(K=>{let A=m0.convertBlobToString;K.fileName="studio.json";let r;(q0=>(q0.m22x="m22x",q0.m23x="m23x",q0.nrf91="nrf91",q0.m2blegw="m2blegw",q0.m2easyv3="m2easyv3",q0.m2easyiot="m2easyiot"))(r=K.DeviceProfiles||={});let e;(u0=>(u0.app="app",u0.library="library",u0.addon="addon",u0.analytics="analytics"))(e=K.ProjectTypes||={});let i;(v0=>(v0.restricted="restricted",v0.global="global"))(i=K.BloAccessLevel||={});let o;(v0=>(v0.embedded="$embedded",v0.pure="$pure"))(o=K.PovLocation||={});function t(U){Yx.overwrites=U}K.setOverwrites=t;function B(){Yx.overwrites=null}K.clearOverwrites=B;async function l(U,a0){let v0=Yr.Utils.joinPath(U,K.fileName),D0=await a0.stat(v0);if(Yx.manifest===null||v0?.fsPath!==Yx.stat?.path.fsPath||D0?.ctime!==Yx.stat?.ctime||D0?.mtime!==Yx.stat?.mtime||D0?.size!==Yx.stat?.size){let u0=await a0.readFile(v0),_0=A(u0);Yx.manifest=JSON.parse(_0),Yx.stat={...D0,path:v0}}return Yx.manifest}K.read=l;async function D(U,a0){return await a0.readFile(Yr.Utils.joinPath(U,K.fileName))}K.readAsBlob=D;async function j(U,a0){let v0=Yr.Utils.joinPath(U,K.fileName),D0=await a0.readFile(v0),u0=A(D0);return JSON.parse(u0)}K.readRaw=j;async function b(U,a0,v0){return Yx.clear(),hF(v0),a0.writeFile(Yr.Utils.joinPath(U,K.fileName),JSON.stringify(v0,null," "))}K.write=b;function k(U){return U.library!==void 0?U.library:U.type==="library"}K.isLibrary=k;function q(U){return U.type==="addon"}K.isAddon=q;function y(U){return U.type===void 0&&!k(U)?!0:U.type==="app"}K.isApp=y;function S(U){return U.type===void 0?!0:U.type==="app"}K.isIotApp=S;function T(U){return U.type==="analytics"}K.isAnalytics=T;async function I(U,a0,v0){v0||(v0=await l(U,a0)),mF(v0),dF(v0),uF(v0),jF(v0)}K.validateBasicManifest=I;function L(U){let a0="Library name can only contain 'a' through 'z', '0' through '9', '_' and '-'. The Library name must start with an alphabetic or numeric character.";if(U.match(/^[a-z0-9-_]+$/)){let D0=["-","_"];if(D0.includes(U[0])||D0.includes(U[U.length-1]))return a0}else return a0;return U.length<3||U.length>20?"The library name is beyond permissible length of 20 characters.":null}K.validateLibraryName=L;function R(U,a0){if(a0)return L(U);{let v0="Project name can only contain 'A' through 'Z', 'a' through 'z', '0' through '9', ' ', '_' and '-'. The Project name must start with an alphabetic or numeric character.";if(!U.match(/^([a-zA-Z0-9 _-]+)$/))return v0;if(U.length<3||U.length>40)return"The project name is beyond permissible length of 40 characters.";let u0=["-","_"," "];return u0.includes(U[0])||u0.includes(U[U.length-1])?v0:null}}K.validateProjectName=R;function e0(U){return U.length<5?"The description must have at least 5 characters.":null}K.validateDescription=e0;function w(U){if(!U)return"No publisher set yet";let a0="Publisher can only contain 'A' through 'Z', 'a' through 'z', '0' through '9' and '-'. The Publisher start with an alphabetic or numeric character.";if(U.match(/^[a-zA-Z0-9-]+$/)){let D0=["_"];if(D0.includes(U[0])||D0.includes(U[U.length-1]))return a0}else return a0;return null}K.validatePublisherId=w;async function g(U,a0,v0){return await xx.getPublisher(U,a0,v0)?null:`Publisher '${a0}' does not exist.`}K.validatePublisherOnline=g;let O=/^(((?!-))(xn--)?[a-z0-9\-_]{0,61}[a-z0-9]{1,1}\.)*(xn--)?([a-z0-9-]{1,61}|[a-z0-9-]{1,30})\.[a-z]{2,}$/;async function Y(U){if(U===void 0)return"Allowed backends not specified yet";if(U===null)return null;if(Array.isArray(U)||U?.includes(";")){let a0=U?.includes(";")?U.split(";"):U;for(let v0 of a0)if(!v0.match(O))return`Domain "${v0}" is invalid`}else if(!U?.match(O)&&U!=="*")return'Invalid value for "allowedBackends"';return null}K.validateRegistryAllowedBackends=Y;let x0=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;async function H(U){if(U===void 0)return"Allowed applications not specified yet";if(U===null)return null;if(Array.isArray(U)||U?.includes(";")){let a0=U?.includes(";")?U.split(";"):U;for(let v0 of a0)if(!v0.match(x0))return`Application id "${v0}" is invalid`}else if(!U?.match(x0)&&U!=="*")return'Invalid value for "allowedApplications"';return null}K.validateRegistryAllowedApplications=H;async function Z(U,a0,v0){let D0=v0.icon;if(!D0)throw new Error("App icon is required for publishing an application!");let u0=Yr.Utils.joinPath(U,D0);if(!await a0.stat(u0))throw new Error(`Could not load icon "${D0}"`);let q0=await a0.readFile(u0),V0=(0,li.imageDimensionsFromData)(q0);if(!V0)throw new Error("App icon could not be validated!");if(V0?.width!==V0?.height)throw new Error("App icon has to be a square!");if(V0.width>512||V0.width<75)throw new Error("App icon size should be between 75px and 512px!");if(!(0,ci.isPNG)(q0))throw new Error("App icon has to be of type PNG!")}K.validateApplicationIcon=Z;function r0(U){let{engines:a0}=U;if(a0?.backend&&!a0.backend.match(/(^[5-9][2-9]|[6-9]\d+|\d{3,})v(0(0[0-9]|[1-9]\d)|[1-9]\d{2}|[1-9]\d{3,})$/))throw new Error('Setting "engines.backend" is invalid');bF(U),pF(U)}K.validateEngineSettings=r0;async function n0(U,a0,v0,D0){D0||(D0=await K.read(U,a0));let u0=K.isAddon(D0),_0=K.isAnalytics(D0);switch(v0){case d0.Part.dlo:return!!D0?.dlo?.mainFile&&!u0&&!_0;case d0.Part.blo:return!!(D0.blo?.buildCommand&&D0.blo?.workingPath);case d0.Part.pov:return!!(D0.pov?.details?.buildCommand&&D0.pov.details.workingPath);case d0.Part.dde:case d0.Part.dfiles:return!0;default:return!1}}K.isApmPartEnabled=n0})(W||={});function dF(A){let{pov:x}=A;if(x&&x.details){if(!Object.hasOwn(x.details,"buildCommand"))throw new Error('Setting "pov.details.buildCommand" missing!');if(!Object.hasOwn(x.details,"workingPath"))throw new Error('Setting "pov.details.workingPath" missing!')}}function uF(A){let{blo:x}=A;if(x){if(!Object.hasOwn(x,"buildCommand"))throw new Error('Setting "blo.buildCommand" missing!');if(!Object.hasOwn(x,"workingPath"))throw new Error('Setting "blo.workingPath" missing!');if(x.accessLevel&&!["restricted","global"].includes(x.accessLevel))throw new Error('Only "restricted" or "global" are allowed as value for "blo.accessLevel"!')}}function bF(A){let{backend:x,productId:r,hwfw:e}=A.engines;if(W.isAddon(A)&&(r||e))throw new Error('For project type "addon", "engines.hwfw" or "engines.productId" is not allowed!"');if(x&&x>=fi){if(e&&r)throw new Error('Only "engines.hwfw" or "engines.productId" is allowed!"')}else if(r)throw new Error(`"engines.productId" requires "engines.backend" to be "${fi}"`)}function pF(A){if(!W.isAddon(A)&&!W.isAnalytics(A))return;let{backend:x}=A.engines,r=W.isAddon(A)?cF:DF;if(!x||x<r)throw new Error(`Project type "${A.type}" requires "engines.backend" to be ">=${r}"`);if(A.dlo)throw new Error(`For project type "${A.type}", "dlo" is not supported!"`);if(A.dpid)throw new Error(`For project type "${A.type}", "dpid" is not supported!"`)}function jF(A){let{maxInstancesPerSite:x}=A;if(x===void 0){if(W.isAddon(A))throw new Error('Property "maxInstancesPerSite" is required for addon projects!');return}if(!W.isAddon(A))throw new Error('Property "maxInstancesPerSite" is only allowed for addon projects!');if(!Number.isInteger(x))throw new Error('Property "maxInstancesPerSite" must be an integer!');if(x<1||x>100)throw new Error('Property "maxInstancesPerSite" must be between 1 and 100!')}function mF(A){if((A.engines?.backend||"00v000")>=Ci||W.isLibrary(A)){if(!Di.default.valid(A.version))throw new Error(`From "engines.backend" version >= ${Ci} onwards "version" has to be a semantic version string!"`)}else if(!lF(A.version))throw new Error('"version" has to be a number!')}function hF(A){A.registry&&(delete A.registry.allowedBackends,delete A.registry.target)}var kr=require("vscode-uri");var vx=require("vscode-uri");var Ps=cx(require("ajv")),Ts=cx(require("ajv-formats"));var ui={$schema:"http://json-schema.org/draft-07/schema#",title:"Dynamic DDE Schema",description:"Describe your data structure for Microtronics IoT devices",type:"object",additionalProperties:!1,properties:{dde:{type:"string",default:"1.0.0",readOnly:!0,description:"Version of the DDE schema. Do not modify this value.",markdownDescription:`Version of the DDE schema.
|
|
1547
|
+
*/`}function si(A){return A!==""&&!isNaN(Number(A))}function EF(A){return(A.split("/").pop()||A).replace(/\.ini$/i,"")}function oi(A,x,r){let e=x?`${r}: ${x}`:void 0;return A&&e?`${A}
|
|
1548
|
+
${e}`:e||A}function Fi(A,x,r,e,i,o,t){let B=i?`${i}_${e}`:e,l={value:A,sourceUri:x,sourceLine:fF(r,e,i)};return o[B]&&(l.comment=`${t}: ${o[B]}`),l}function BF(A,x,r,e,i,o,t,B,l){e[A]||(e[A]={});for(let[D,j]of Object.entries(x)){let b=`${A}_${D}`,k=B[b],q=`${j}`;r[b]=q,e[A][D]=q;let y=Fi(q,o,t,D,A,B,l);y.comment=oi(i[b]?.comment,k,l),i[b]=y}}async function Xr(A,x,r,e,i,o){if(!await A.stat(x))return;let t=await A.readFile(x),B=sF(t),l=ai.parse(B),D=x.toString(),j=B.split(/\r?\n/),b=vF(B);for(let[k,q]of Object.entries(l))if(typeof q=="object"&&q!==null)BF(k,q,r,e,i,D,j,b,o);else{let y=b[k],S=`${q}`;r[k]=S;let T=Fi(S,D,j,k,null,b,o);T.comment=oi(i[k]?.comment,y,o),i[k]=T}}function fF(A,x,r){let e=r===null,i=r?`[${r}]`:null,o=new RegExp(`^\\s*${CF(x)}\\s*=`);for(let t=0;t<A.length;t++){let B=A[t].trim();if(i&&B===i){e=!0;continue}if(e&&B.startsWith("[")&&B.endsWith("]")&&r!==null){e=!1;continue}if(e&&o.test(A[t]))return t}return 0}function CF(A){return A.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var it=cx(require("semver/preload")),{GET:Qt,POST:nt,PUT:vi}=(0,Ei.default)();function Xx(A){if(A)return{authorization:`Bearer ${A}`}}var xx;(q=>{q.getAPIUrl=y=>{let S="https://api.registry.microtronics.com";return y===ix.ENV.lucky?S="https://api.registry.lucky.ci.microtronics.com":y===ix.ENV.wynni&&(S="https://api.registry.wynni.ci.microtronics.com"),{baseUrl:S+"/v1"}};async function x(y,S,T,I){let{data:L,error:R}=await Qt("/publisher/{publisherId}/libraries/{libraryId}",{...(0,q.getAPIUrl)(I),headers:{...Xx(y)},params:{path:{publisherId:S,libraryId:T}}});if(R)throw new Error(R.reason);return L}q.getLibraryProfile=x;async function r(y,S,T=!1){let I=await fetch(S,{headers:{...Xx(y),...k(!0)}});if(I.status===200)return T?await I.json():await I.arrayBuffer();throw new Error("Failed to fetch the library content")}q.fetchCustomContent=r;async function e(y,S,T){try{let{data:I,error:L}=await Qt("/publisher/{publisherId}",{...(0,q.getAPIUrl)(T),headers:{...Xx(y)},params:{path:{publisherId:S}}});return L?(console.error(L),null):I}catch(I){return console.error(I),null}}q.getPublisher=e;async function i(y,S,T,I){try{let{data:L,error:R}=await nt("/packages/{publisherId}/applications",{...(0,q.getAPIUrl)(I),headers:{...Xx(y),...k(!0)},params:{path:{publisherId:S}},body:{...T}});if(R)throw new Error(R.reason);return L.id}catch{return null}}q.createNewApplication=i;async function o(y,S,T,I){let{data:L,error:R}=await Qt("/publisher/{publisherId}/applications/{applicationId}",{...(0,q.getAPIUrl)(I),headers:{...Xx(y),...k(!0)},params:{path:{publisherId:S,applicationId:T}}});if(R)throw new Error(R.reason);return L}q.getExistingApplication=o;async function t(y,S,T,I,L){try{let{error:R}=await vi("/packages/{publisherId}/applications/{applicationId}",{...(0,q.getAPIUrl)(L),headers:{...Xx(y),...k(!0)},params:{path:{publisherId:S,applicationId:T}},body:{...I}});if(R)throw new Error(R.reason);return}catch{return null}}q.updateExistingApplication=t;async function B(y,S,T,I,L,R){let e0=!!it.default.valid(I);try{let{error:w}=await vi("/packages/{publisherId}/applications/{applicationId}/versions/{applicationVersion}",{...(0,q.getAPIUrl)(R),headers:{...Xx(y),...k(e0)},params:{path:{publisherId:S,applicationId:T,applicationVersion:I}},body:{...L}});if(w)throw new Error(w.reason);return}catch{return null}}q.updateExistingApplicationVersion=B;async function l(y,S,T,I,L,R){let e0=!!it.default.valid(I),{data:w,error:g}=await nt("/packages/{publisherId}/applications/{applicationId}/versions/{applicationVersion}",{...(0,q.getAPIUrl)(R),headers:{...Xx(y),...k(e0)},params:{path:{publisherId:S,applicationId:T,applicationVersion:I}},body:{},bodySerializer(){return L}});if(g)throw new Error(g.reason||g.err||g);return w}q.publishApplicationVersion=l;let D={"README.md":"text/markdown","CHANGELOG.md":"text/markdown","library.tar.gz":"application/gzip","studio.json":"application/json"};async function j(y,S,T,I,L,R){try{let{error:e0}=await nt("/packages/{publisherId}/libraries/{libraryId}/versions/{libraryVersion}",{...(0,q.getAPIUrl)(R),headers:{...Xx(y),...k(!0)},params:{path:{publisherId:S,libraryId:T,libraryVersion:I}},body:{...L},bodySerializer(w){let g=new FormData;for(let[O,Y]of Object.entries(w))Y!==void 0&&g.append(O,new Blob([Y],{type:D[O]}),O);return g}});if(e0)throw new Error(e0.reason)}catch(e0){throw console.error(e0),e0}}q.publishLibraryVersion=j;async function b(y,S,T,I,L,R,e0){let w=!!it.default.valid(I),{error:g}=await nt("/packages/{publisherId}/applications/{applicationId}/versions/{applicationVersion}/files/{applicationFileName}",{...(0,q.getAPIUrl)(e0),headers:{...Xx(y),...k(w),"Content-Type":"application/octet-stream"},params:{path:{publisherId:S,applicationId:T,applicationVersion:I,applicationFileName:L}},body:{},bodySerializer(){return R}});if(g)throw new Error(g.reason)}q.updateApplicationFile=b;function k(y=!1){return y?{"X-Semver":"true"}:{}}q.injectSemverHeader=k})(xx||={});var ci=cx(require("semver/preload"));var Di=require("deepmerge-ts"),lF=m0.isNumeric,Bi="52v007",fi="53v001",cF="54v001",DF="56v001",Yx={_manifest:null,_stat:null,_overwrites:null,get manifest(){return(0,Di.deepmerge)(structuredClone(this._manifest),Yx._overwrites||{})},set manifest(A){this._manifest=A},set overwrites(A){this._overwrites=A},get stat(){return this._stat},set stat(A){this._stat=A},clear(){this._stat=null,this._manifest=null}},W;(K=>{let A=m0.convertBlobToString;K.fileName="studio.json";let r;(q0=>(q0.m22x="m22x",q0.m23x="m23x",q0.nrf91="nrf91",q0.m2blegw="m2blegw",q0.m2easyv3="m2easyv3",q0.m2easyiot="m2easyiot"))(r=K.DeviceProfiles||={});let e;(u0=>(u0.app="app",u0.library="library",u0.addon="addon",u0.analytics="analytics"))(e=K.ProjectTypes||={});let i;(v0=>(v0.restricted="restricted",v0.global="global"))(i=K.BloAccessLevel||={});let o;(v0=>(v0.embedded="$embedded",v0.pure="$pure"))(o=K.PovLocation||={});function t(U){Yx.overwrites=U}K.setOverwrites=t;function B(){Yx.overwrites=null}K.clearOverwrites=B;async function l(U,a0){let v0=Yr.Utils.joinPath(U,K.fileName),D0=await a0.stat(v0);if(Yx.manifest===null||v0?.fsPath!==Yx.stat?.path.fsPath||D0?.ctime!==Yx.stat?.ctime||D0?.mtime!==Yx.stat?.mtime||D0?.size!==Yx.stat?.size){let u0=await a0.readFile(v0),_0=A(u0);Yx.manifest=JSON.parse(_0),Yx.stat={...D0,path:v0}}return Yx.manifest}K.read=l;async function D(U,a0){return await a0.readFile(Yr.Utils.joinPath(U,K.fileName))}K.readAsBlob=D;async function j(U,a0){let v0=Yr.Utils.joinPath(U,K.fileName),D0=await a0.readFile(v0),u0=A(D0);return JSON.parse(u0)}K.readRaw=j;async function b(U,a0,v0){return Yx.clear(),hF(v0),a0.writeFile(Yr.Utils.joinPath(U,K.fileName),JSON.stringify(v0,null," "))}K.write=b;function k(U){return U.library!==void 0?U.library:U.type==="library"}K.isLibrary=k;function q(U){return U.type==="addon"}K.isAddon=q;function y(U){return U.type===void 0&&!k(U)?!0:U.type==="app"}K.isApp=y;function S(U){return U.type===void 0?!0:U.type==="app"}K.isIotApp=S;function T(U){return U.type==="analytics"}K.isAnalytics=T;async function I(U,a0,v0){v0||(v0=await l(U,a0)),mF(v0),dF(v0),uF(v0),jF(v0)}K.validateBasicManifest=I;function L(U){let a0="Library name can only contain 'a' through 'z', '0' through '9', '_' and '-'. The Library name must start with an alphabetic or numeric character.";if(U.match(/^[a-z0-9-_]+$/)){let D0=["-","_"];if(D0.includes(U[0])||D0.includes(U[U.length-1]))return a0}else return a0;return U.length<3||U.length>20?"The library name is beyond permissible length of 20 characters.":null}K.validateLibraryName=L;function R(U,a0){if(a0)return L(U);{let v0="Project name can only contain 'A' through 'Z', 'a' through 'z', '0' through '9', ' ', '_' and '-'. The Project name must start with an alphabetic or numeric character.";if(!U.match(/^([a-zA-Z0-9 _-]+)$/))return v0;if(U.length<3||U.length>40)return"The project name is beyond permissible length of 40 characters.";let u0=["-","_"," "];return u0.includes(U[0])||u0.includes(U[U.length-1])?v0:null}}K.validateProjectName=R;function e0(U){return U.length<5?"The description must have at least 5 characters.":null}K.validateDescription=e0;function w(U){if(!U)return"No publisher set yet";let a0="Publisher can only contain 'A' through 'Z', 'a' through 'z', '0' through '9' and '-'. The Publisher start with an alphabetic or numeric character.";if(U.match(/^[a-zA-Z0-9-]+$/)){let D0=["_"];if(D0.includes(U[0])||D0.includes(U[U.length-1]))return a0}else return a0;return null}K.validatePublisherId=w;async function g(U,a0,v0){return await xx.getPublisher(U,a0,v0)?null:`Publisher '${a0}' does not exist.`}K.validatePublisherOnline=g;let O=/^(((?!-))(xn--)?[a-z0-9\-_]{0,61}[a-z0-9]{1,1}\.)*(xn--)?([a-z0-9-]{1,61}|[a-z0-9-]{1,30})\.[a-z]{2,}$/;async function Y(U){if(U===void 0)return"Allowed backends not specified yet";if(U===null)return null;if(Array.isArray(U)||U?.includes(";")){let a0=U?.includes(";")?U.split(";"):U;for(let v0 of a0)if(!v0.match(O))return`Domain "${v0}" is invalid`}else if(!U?.match(O)&&U!=="*")return'Invalid value for "allowedBackends"';return null}K.validateRegistryAllowedBackends=Y;let x0=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;async function H(U){if(U===void 0)return"Allowed applications not specified yet";if(U===null)return null;if(Array.isArray(U)||U?.includes(";")){let a0=U?.includes(";")?U.split(";"):U;for(let v0 of a0)if(!v0.match(x0))return`Application id "${v0}" is invalid`}else if(!U?.match(x0)&&U!=="*")return'Invalid value for "allowedApplications"';return null}K.validateRegistryAllowedApplications=H;async function Z(U,a0,v0){let D0=v0.icon;if(!D0)throw new Error("App icon is required for publishing an application!");let u0=Yr.Utils.joinPath(U,D0);if(!await a0.stat(u0))throw new Error(`Could not load icon "${D0}"`);let q0=await a0.readFile(u0),V0=(0,Ci.imageDimensionsFromData)(q0);if(!V0)throw new Error("App icon could not be validated!");if(V0?.width!==V0?.height)throw new Error("App icon has to be a square!");if(V0.width>512||V0.width<75)throw new Error("App icon size should be between 75px and 512px!");if(!(0,li.isPNG)(q0))throw new Error("App icon has to be of type PNG!")}K.validateApplicationIcon=Z;function r0(U){let{engines:a0}=U;if(a0?.backend&&!a0.backend.match(/(^[5-9][2-9]|[6-9]\d+|\d{3,})v(0(0[0-9]|[1-9]\d)|[1-9]\d{2}|[1-9]\d{3,})$/))throw new Error('Setting "engines.backend" is invalid');bF(U),pF(U)}K.validateEngineSettings=r0;async function n0(U,a0,v0,D0){D0||(D0=await K.read(U,a0));let u0=K.isAddon(D0),_0=K.isAnalytics(D0);switch(v0){case d0.Part.dlo:return!!D0?.dlo?.mainFile&&!u0&&!_0;case d0.Part.blo:return!!(D0.blo?.buildCommand&&D0.blo?.workingPath);case d0.Part.pov:return!!(D0.pov?.details?.buildCommand&&D0.pov.details.workingPath);case d0.Part.dde:case d0.Part.dfiles:return!0;default:return!1}}K.isApmPartEnabled=n0})(W||={});function dF(A){let{pov:x}=A;if(x&&x.details){if(!Object.hasOwn(x.details,"buildCommand"))throw new Error('Setting "pov.details.buildCommand" missing!');if(!Object.hasOwn(x.details,"workingPath"))throw new Error('Setting "pov.details.workingPath" missing!')}}function uF(A){let{blo:x}=A;if(x){if(!Object.hasOwn(x,"buildCommand"))throw new Error('Setting "blo.buildCommand" missing!');if(!Object.hasOwn(x,"workingPath"))throw new Error('Setting "blo.workingPath" missing!');if(x.accessLevel&&!["restricted","global"].includes(x.accessLevel))throw new Error('Only "restricted" or "global" are allowed as value for "blo.accessLevel"!')}}function bF(A){let{backend:x,productId:r,hwfw:e}=A.engines;if(W.isAddon(A)&&(r||e))throw new Error('For project type "addon", "engines.hwfw" or "engines.productId" is not allowed!"');if(x&&x>=Bi){if(e&&r)throw new Error('Only "engines.hwfw" or "engines.productId" is allowed!"')}else if(r)throw new Error(`"engines.productId" requires "engines.backend" to be "${Bi}"`)}function pF(A){if(!W.isAddon(A)&&!W.isAnalytics(A))return;let{backend:x}=A.engines,r=W.isAddon(A)?cF:DF;if(!x||x<r)throw new Error(`Project type "${A.type}" requires "engines.backend" to be ">=${r}"`);if(A.dlo)throw new Error(`For project type "${A.type}", "dlo" is not supported!"`);if(A.dpid)throw new Error(`For project type "${A.type}", "dpid" is not supported!"`)}function jF(A){let{maxInstancesPerSite:x}=A;if(x===void 0){if(W.isAddon(A))throw new Error('Property "maxInstancesPerSite" is required for addon projects!');return}if(!W.isAddon(A))throw new Error('Property "maxInstancesPerSite" is only allowed for addon projects!');if(!Number.isInteger(x))throw new Error('Property "maxInstancesPerSite" must be an integer!');if(x<1||x>100)throw new Error('Property "maxInstancesPerSite" must be between 1 and 100!')}function mF(A){if((A.engines?.backend||"00v000")>=fi||W.isLibrary(A)){if(!ci.default.valid(A.version))throw new Error(`From "engines.backend" version >= ${fi} onwards "version" has to be a semantic version string!"`)}else if(!lF(A.version))throw new Error('"version" has to be a number!')}function hF(A){A.registry&&(delete A.registry.allowedBackends,delete A.registry.target)}var kr=require("vscode-uri");var vx=require("vscode-uri");var Ss=cx(require("ajv")),Ps=cx(require("ajv-formats"));var di={$schema:"http://json-schema.org/draft-07/schema#",title:"Dynamic DDE Schema",description:"Describe your data structure for Microtronics IoT devices",type:"object",additionalProperties:!1,properties:{dde:{type:"string",default:"1.0.0",readOnly:!0,description:"Version of the DDE schema. Do not modify this value.",markdownDescription:`Version of the DDE schema.
|
|
1549
1549
|
|
|
1550
1550
|
\u26A0\uFE0F **Do not modify this value.**`},cloudProject:{type:"boolean",description:"Indicates whether this is a cloud project.",markdownDescription:"Indicates whether this is a cloud project.\n\nWhen set to `false`, certain containers and top-level custom containers are restricted."},constants:{type:"object",description:"Declare constants that can be used across the YAML file.",markdownDescription:"Declare constants that can be referenced and used across the YAML file."},state:{$ref:"#/$defs/stateContainer"},result:{$ref:"#/$defs/resultContainer"},volatile:{$ref:"#/$defs/volatileContainer"},timeseries:{type:"object",description:"Define time-series data channels for recording measurements.",markdownDescription:"Define time-series data channels for recording measurements.\n\n**Limits:** Maximum 9 fields.\n\n**Naming rules:**\n- Must start with a letter or `_`\n- May contain letters, digits, and `_`\n- Names like `field0`, `ch0`, etc. are **not allowed**\n- Reserved names (`_id`, `id`, `_stamp`, `stamp`, `tag`, `_uid`, `customer_id`, `site_id`, `_rec_flags__`, `applog`) are **not allowed**",additionalProperties:!1,maxProperties:9,errorMessage:{maxProperties:"The timeseries container supports a maximum of 9 fields."},properties:{_id:{not:{},errorMessage:"'_id' is a reserved name and cannot be used as a timeseries field."},id:{not:{},errorMessage:"'id' is a reserved name and cannot be used as a timeseries field."},_stamp:{not:{},errorMessage:"'_stamp' is a reserved name and cannot be used as a timeseries field."},stamp:{not:{},errorMessage:"'stamp' is a reserved name and cannot be used as a timeseries field."},tag:{not:{},errorMessage:"'tag' is a reserved name and cannot be used as a timeseries field."},_uid:{not:{},errorMessage:"'_uid' is a reserved name and cannot be used as a timeseries field."},customer_id:{not:{},errorMessage:"'customer_id' is a reserved name and cannot be used as a timeseries field."},site_id:{not:{},errorMessage:"'site_id' is a reserved name and cannot be used as a timeseries field."},_rec_flags__:{not:{},errorMessage:"'_rec_flags__' is a reserved name and cannot be used as a timeseries field."},applog:{not:{},errorMessage:"'applog' is a reserved name and cannot be used as a timeseries field."}},patternProperties:{"^(?!.*^field\\d+$)(?!.*^ch\\d+$)[a-zA-Z_][0-9a-zA-Z_]*$":{$ref:"#/$defs/timeseriesFields"}}},aloha:{type:"object",description:"Special container to transport live data during put-into-operation procedures.",markdownDescription:`Special container to transport **live data** during put-into-operation procedures.
|
|
1551
1551
|
|
|
@@ -1643,27 +1643,27 @@ Accepts a number (\u2265 0) or a relation link (\`@container.field\`).`,minimum:
|
|
|
1643
1643
|
|
|
1644
1644
|
\u26A0\uFE0F **Important:** This does not activate any alarming. Alarming must be implemented in the DLO.
|
|
1645
1645
|
|
|
1646
|
-
Accepts a number or a relation link (\`@container.field\`).`,$ref:"#/$defs/relationLinkPattern"}}};var bt=require("yaml");var vr=require("yaml");var it;(x=>x.CODE={ddeFieldLength:"field_name_length"})(it||={});var L0;(H=>{let A;(u0=>(u0.state="state",u0.result="result",u0.aloha="aloha",u0.volatile="volatile",u0.setting="setting",u0.command="command",u0.storage="storage",u0.relations="relations"))(A=H.DDEContainerName||={});let x;(F0=>(F0.configA="configA",F0.configB="configB",F0.configC="configC",F0.config0="config0",F0.config1="config1",F0.config2="config2",F0.config3="config3",F0.config4="config4",F0.config5="config5",F0.config6="config6",F0.config7="config7",F0.config8="config8",F0.config9="config9",F0.histdata0="histdata0",F0.histdata1="histdata1",F0.histdata2="histdata2",F0.histdata3="histdata3",F0.histdata4="histdata4",F0.histdata5="histdata5",F0.histdata6="histdata6",F0.histdata7="histdata7",F0.histdata8="histdata8",F0.histdata9="histdata9",F0.aloha="aloha",F0.alerts="alerts",F0.applog="applog"))(x=H.ContainerName||={});let r;(a0=>(a0.cx="cx",a0.hx="hx",a0.cb="cb",a0.aloha="aloha",a0.applog="applog"))(r=H.ContainerType||={});let e;(q0=>(q0.up="up",q0.down="down",q0.upPlus="up+",q0.downPlus="down+",q0.none="none",q0.backendOnly="backend-only",q0.deviceOnly="device-only",q0.both="both",q0.bothPlus="both+",q0.noneBackend="none-be"))(e=H.TransferDirection||={});function i(Z,r0){return Z==="cx"&&!["backend-only"].includes(r0)?"DDE_CID_CONFIG":Z==="hx"?"DDE_CID_HISTDATA":Z==="aloha"?"DDE_CID_ALOHA":null}H.CONTAINER_DEF_DLO_CID_BASE=i;let o=["up","up+","down","down+","both","none","both+","backend-only","device-only"],t=["up","up+","backend-only"];H.CONTAINER_DEFS={configA:{ctype:"cb",cnum:"a",alias:"",flds:"field",xmits:["backend-only"]},configB:{ctype:"cb",cnum:"b",alias:"",flds:"field",xmits:["backend-only"]},configC:{ctype:"cb",cnum:"c",alias:"",flds:"field",xmits:["backend-only"]},config0:{ctype:"cx",cnum:0,alias:"",flds:"field",xmits:o},config1:{ctype:"cx",cnum:1,alias:"",flds:"field",xmits:o},config2:{ctype:"cx",cnum:2,alias:"",flds:"field",xmits:o},config3:{ctype:"cx",cnum:3,alias:"",flds:"field",xmits:o},config4:{ctype:"cx",cnum:4,alias:"",flds:"field",xmits:o},config5:{ctype:"cx",cnum:5,alias:"",flds:"field",xmits:o},config6:{ctype:"cx",cnum:6,alias:"",flds:"field",xmits:o},config7:{ctype:"cx",cnum:7,alias:"",flds:"field",xmits:o},config8:{ctype:"cx",cnum:8,alias:"",flds:"field",xmits:o},config9:{ctype:"cx",cnum:9,alias:"",flds:"field",xmits:o},histdata0:{ctype:"hx",cnum:0,alias:"",flds:"ch",xmits:t},histdata1:{ctype:"hx",cnum:1,alias:"",flds:"ch",xmits:t},histdata2:{ctype:"hx",cnum:2,alias:"",flds:"ch",xmits:t},histdata3:{ctype:"hx",cnum:3,alias:"",flds:"ch",xmits:t},histdata4:{ctype:"hx",cnum:4,alias:"",flds:"ch",xmits:t},histdata5:{ctype:"hx",cnum:5,alias:"",flds:"ch",xmits:t},histdata6:{ctype:"hx",cnum:6,alias:"",flds:"ch",xmits:t},histdata7:{ctype:"hx",cnum:7,alias:"",flds:"ch",xmits:t},histdata8:{ctype:"hx",cnum:8,alias:"",flds:"ch",xmits:t},histdata9:{ctype:"hx",cnum:9,alias:"",flds:"ch",xmits:t},aloha:{ctype:"aloha",cnum:void 0,alias:"aloha",flds:null,xmits:["up","up+"]},alerts:{ctype:void 0,cnum:void 0,alias:"alerts",flds:null,xmits:["up"]},applog:{ctype:"applog",cnum:void 0,alias:"applog",flds:null,xmits:["up+"]}},H.HISTDATA_CONTAINER=["histdata0","histdata1","histdata2","histdata3","histdata4","histdata5","histdata6","histdata7","histdata8","histdata9"],H.CONFIG_CONTAINER=["config0","config1","config2","config3","config4","config5","config6","config7","config8","config9"],H.SERVER_CONTAINER=["configA","configB","configC"],H.regexRelation=/^(@[a-zA-Z_][a-zA-Z0-9_]*\.[a-zA-Z_][a-zA-Z0-9_]*(\[[^\]]+\])?(\.[a-zA-Z_][a-zA-Z0-9_]*)*|lib:[a-zA-Z0-9_-]+@[a-zA-Z_][a-zA-Z0-9_]*\.[a-zA-Z_][a-zA-Z0-9_]*(\[[^\]]+\])?(\.[a-zA-Z_][a-zA-Z0-9_]*)*)$/;let k=["astring","nstring","cstring","wstring","ustring"],q=["int8","int16","int32","int64","uint8","uint16","uint32","float16","float32","float64"];H.allowedRelationTypes={title:k,unit:k,chartMinimum:q,chartMaximum:q,scale:q,offset:q,decimalPlaces:["uint8","uint16","uint32","int8","int16","int32","int64"],channelMode:["uint8","uint16","uint32"],chartAlarmLow:q,chartAlarmHigh:q,chartWarningLow:q,chartWarningHigh:q,chartHysteresis:q,chartTriggerThreshold:q,chartTriggerRelation:q,chartSetPoint:q};function S(Z,r0,n0){let K=r0[Z];if(K!==void 0)if(H.regexRelation.exec(`${K}`)){let U=Z==="chartSetPoint",[a0,...v0]=K.split("."),[,D0]=a0.split("@"),u0=Object.values(n0.containers).find(Ex=>Ex.title===D0),_0=v0.join("."),q0=U?";":"%",V0=(U?"":"%")+(u0?.name||D0)+q0;if(V0=V0+`${_0}`,U){let Ex=n0.setPointList[r0.name];V0=V0+`;actual_output_value_${Ex}`}return V0}else return K}H.parseXMLValueWithRelation=S;function T(Z){let{bitmask:r0}=Z;if(!r0)return;let n0="$",K=r0.replaceAll(" ","");if(r0.startsWith("0x"))n0+=K.substring(2);else if(K.startsWith("0b")){let U=K.substring(2).replaceAll(" ","");n0+=parseInt(U,2).toString(16).toUpperCase()}return n0}H.parseXMLBitmask=T;function I(Z){return Z.type==="binary"?Z.defaultValue.substring(2):Z.defaultValue==="NaN"?"NAN":Z.defaultValue}H.parseXMLDefaultValue=I,H.TDEF_NUMBER={xmlOut(Z,r0,n0){Z.decpl=S("decimalPlaces",r0,n0),Z.decpl===void 0&&(Z.decpl=0),Z.vscale=S("scale",r0,n0),Z.vofs=S("offset",r0,n0),Z.min=S("chartMinimum",r0,n0),Z.max=S("chartMaximum",r0,n0)}};let R={isBlob:1,xmlOut(Z,r0){Z.max=r0.byteSize}},e0={xmlOut(Z){Z.decpl=-1,Z.param0="local",Z.units="UTC"}};H.TYPE_DEFS={u8:{dde:"uint8",dim:1,len:1,...H.TDEF_NUMBER,rdef:1,xml:{type:"u8"},pwn:{rwfunc:"u8",htype:"s32",printf:"%d"},openApi:{type:"number",minimum:0}},u16:{dde:"uint16",dim:1,len:2,...H.TDEF_NUMBER,rdef:1,xml:{type:"u16"},pwn:{rwfunc:"u16",htype:"s32",printf:"%d"},openApi:{type:"number",minimum:0}},u32:{dde:"uint32",dim:1,len:4,...H.TDEF_NUMBER,rdef:1,xml:{type:"u32"},pwn:{rwfunc:"u32",htype:"s32",printf:"%d"},openApi:{type:"number",minimum:0}},s8:{dde:"int8",dim:1,len:1,...H.TDEF_NUMBER,rdef:1,xml:{type:"s8"},pwn:{rwfunc:"s8",htype:"s32",printf:"%d"},openApi:{type:"number"}},s16:{dde:"int16",dim:1,len:2,...H.TDEF_NUMBER,rdef:1,xml:{type:"s16"},pwn:{rwfunc:"s16",htype:"s32",printf:"%d"},openApi:{type:"number"}},s32:{dde:"int32",dim:1,len:4,...H.TDEF_NUMBER,rdef:1,xml:{type:"s32"},pwn:{rwfunc:"s32",printf:"%d"},openApi:{type:"number"}},s64:{dde:"int64",dim:0,len:8,...H.TDEF_NUMBER,rdef:1,xml:{type:"s64"},pwn:{rwfunc:"s64",rwp:"%n{%l}",htype:"{%l}",printf:"%d"},openApi:{type:"number"}},f16:{dde:"float16",dim:1,len:2,...H.TDEF_NUMBER,rdef:1,xml:{type:"floatm16"},pwn:{rwfunc:"f16",rwp:"Float:%n",htype:"f32",printf:"%f"},openApi:{type:"number"}},f32:{dde:"float32",dim:1,len:4,...H.TDEF_NUMBER,rdef:1,xml:{type:"f32"},pwn:{rwfunc:"f32",rwp:"Float:%n",printf:"%f"},openApi:{type:"number"}},f64:{dde:"float64",dim:0,len:8,...H.TDEF_NUMBER,rdef:0,xml:{type:"f64"},pwn:{rwfunc:"f64",rwp:"%n{%l}",htype:"{%l}",printf:"%f"},openApi:{type:"number"}},stamp32:{dde:"stamp32",dim:1,len:4,...e0,rdef:0,xml:{type:"stamp4"},pwn:{rwfunc:"stamp32",printf:"%s",printfFormat:"stampToISOString"},openApi:{type:"string",format:"YYYYMMDDhhmmssSSS",description:"UTC"}},stamp40:{dde:"stamp40",dim:0,len:5,...e0,rdef:0,xml:{type:"stamp"},pwn:{rwfunc:"stamp40",rwp:"%n{%l}",htype:"{%l}",printf:"%s",printfFormat:"stampToISOString"},openApi:{type:"string",format:"YYYYMMDDhhmmssSSS",description:"UTC"}},bin:{dde:"binary",dim:0,...R,rdef:0,lenUnits:"byte",xml:{type:"string",editmask:"%HEX%"},pwn:{rwfunc:"bin",rwlen:1,rwp:"%n{%l}",htype:"{%l}",printf:null,printfFormat:"memtostr"},openApi:{type:"string",description:"HEX string"}},astr:{dde:"astring",dim:0,...R,rdef:1,lenUnits:"char",xml:{type:"string",param1:"nocodepage"},pwn:{rwfunc:"astr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},nstr:{dde:"nstring",dim:0,...R,rdef:1,lenUnits:"byte",xml:{type:"string"},pwn:{rwfunc:"nstr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},wstr:{dde:"wstring",dim:0,...R,rdef:1,lenUnits:"byte",xml:{type:"string"},pwn:{rwfunc:"wstr",rwlen:1,rwp:"%n[%l+1]",htype:"[%l+1]",printf:"%s"},openApi:{type:"string"}},ustr:{dde:"ustring",dim:0,...R,rdef:0,lenUnits:"byte",xml:{type:"string"},pwn:{rwfunc:"ustr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},cstr:{dde:"cstring",dim:0,...R,rdef:1,lenUnits:"char",xml:{type:"string",editmask:"%HEX%"},pwn:{rwfunc:"cstr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},_siteref:{dim:0,len:80,rdef:0,xml:{type:"string",max:"80",editmask:"%QUERY%all_sites;-name;!id;class;name;%EMPTY%"},pwn:{rwfunc:"astr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}"},js:{rwfunc:"String"}}},H.fieldTypeDefinitions={uint8:H.TYPE_DEFS.u8,uint16:H.TYPE_DEFS.u16,uint32:H.TYPE_DEFS.u32,int8:H.TYPE_DEFS.s8,int16:H.TYPE_DEFS.s16,int32:H.TYPE_DEFS.s32,int64:H.TYPE_DEFS.s64,float16:H.TYPE_DEFS.f16,float32:H.TYPE_DEFS.f32,float64:H.TYPE_DEFS.f64,stamp32:H.TYPE_DEFS.stamp32,stamp40:H.TYPE_DEFS.stamp40,binary:H.TYPE_DEFS.bin,astring:H.TYPE_DEFS.astr,nstring:H.TYPE_DEFS.nstr,wstring:H.TYPE_DEFS.wstr,ustring:H.TYPE_DEFS.ustr,cstring:H.TYPE_DEFS.cstr};let O=["_id","id","_stamp","stamp","tag","_uid","customer_id","site_id","_rec_flags__","applog"];function Y(Z){let r0=Z.toLowerCase();return O.includes(r0)||/^field\d+$/.test(r0)||/^ch\d+$/.test(r0)}H.checkForReservedFieldName=Y;function x0(Z){return!!Z.fields.find(r0=>r0.library===null&&r0.type!=="shadow")}H.hasContainerAppFields=x0})(L0||={});var Qr={DP_registry_sz:1024,DP_config_sz:4e3,DP_histdata_sz:1024,DP_DISPLAY_CNT:0,DP_LED_CNT:0,DP_BUTTON_CNT:0,DP_GPIO_CNT:0,DP_IRQ_CNT:0,DP_DIGOUT_CNT:0,DP_UIN_CNT:0,DP_TEMP_CNT:0,DP_I2C_CNT:0,DP_SPI_CNT:0,DP_UART_CNT:0,DP_RS485_CNT:0,DP_RS232_CNT:0,DP_WIFI_CNT:0,DP_BLE_CNT:0,DP_LORA_CNT:0,DP_NBIOT_CNT:0},Zt={max_size:1e5,max_fields:1e3},kA={max_size:4e3,max_fields:1e3},aA={max_size:1024,max_fields:1e3},Zr={configA:Zt,configB:Zt,configC:Zt,config0:kA,config1:kA,config2:kA,config3:kA,config4:kA,config5:kA,config6:kA,config7:kA,config8:kA,config9:kA,histdata0:aA,histdata1:aA,histdata2:aA,histdata3:aA,histdata4:aA,histdata5:aA,histdata6:aA,histdata7:aA,histdata8:aA,histdata9:aA,aloha:{...aA,warn_fields:10},alerts:{max_size:13,max_fields:0,exact_match:!0},applog:{max_size:125,max_fields:0,exact_match:!1}},xn={m22x:{name:"M22x",dpid:"m22x",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M M2 HW1.0"],alt_ids:[],generation:"M2",prog_mem:256*1024,data_mem:64*1024,total_mem:256*1024,hw_reqd:!1,dde:Zr,auto_inc:{...Qr,DP_LED_CNT:1,DP_GPIO_CNT:6,DP_IRQ_CNT:2,DP_I2C_CNT:1,DP_SPI_CNT:1,DP_UART_CNT:2,DP_WIFI_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}},m23x:{name:"M23x",dpid:"m23x",interface:{type:"usb",filter:{vendorId:1155},fileChunk:4096},usb_ids:["rapidM2M M23 HW2.0","rapidM2M M23 HW1.0"],alt_ids:[],generation:"M23",prog_mem:8*1024*1024,data_mem:8*1024*1024,total_mem:8*1024*1024,hw_reqd:!1,dde:Zr,auto_inc:{...Qr,DP_LED_CNT:1,DP_GPIO_CNT:6,DP_IRQ_CNT:2,DP_I2C_CNT:1,DP_SPI_CNT:1,DP_UART_CNT:1,DP_WIFI_CNT:1},usbcaps:{dbgItfMayHangFixed:"99v999"},dlo:{compileRestrictions:{}}},nrf91:{name:"NRF91",dpid:"nrf91",interface:{type:"usb",filter:{vendorId:9540},fileChunk:2048},usb_ids:["rapidM2M NRF91 HW1.0","ONE NRF91 HW1.0","rapidM2M Evolve HW1.0"],alt_ids:[],generation:"NRF91",prog_mem:256*1024,data_mem:64*1024,total_mem:256*1024,hw_reqd:!1,dde:Zr,auto_inc:{...Qr,DP_LED_CNT:1,DP_GPIO_CNT:32,DP_IRQ_CNT:6,DP_I2C_CNT:2,DP_SPI_CNT:2,DP_UART_CNT:2,DP_AIN_CNT:8,DP_PWM_CNT:3},usbcaps:{}},m2blegw:{name:"BLE Gateway",dpid:"m2blegw",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M BLEGW HW1.0"],alt_ids:[],generation:"M2",prog_mem:256*1024,data_mem:256*1024,total_mem:256*1024,hw_reqd:!1,dde:Zr,auto_inc:{...Qr,DP_DISPLAY_CNT:1,DP_DISPLAY_TYPE:"xc",DP_BUTTON_CNT:1,DP_BLE_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}},m2easyv3:{name:"myDatalogEasy V3",dpid:"m2easyv3",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M Easy HW3.0"],alt_ids:["rapidM2M EasyIoT HW1.0","rapidM2M M220 HW1.0"],generation:"M2",prog_mem:256*1024,data_mem:256*1024,total_mem:256*1024,hw_reqd:!1,dde:Zr,auto_inc:{...Qr,DP_LED_CNT:1,DP_BUTTON_CNT:1,DP_DIGOUT_CNT:1,DP_UIN_CNT:4,DP_TEMP_CNT:1,DP_RS485_CNT:1,DP_RS232_CNT:1,DP_BLE_CNT:1,DP_LORA_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}},m2easyiot:{name:"myDatalogEasy IoT",dpid:"m2easyiot",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M EasyIoT HW1.0"],alt_ids:[],generation:"M2",prog_mem:256*1024,data_mem:256*1024,total_mem:256*1024,hw_reqd:!1,dde:Zr,auto_inc:{...Qr,DP_LED_CNT:1,DP_BUTTON_CNT:1,DP_DIGOUT_CNT:1,DP_UIN_CNT:4,DP_TEMP_CNT:1,DP_RS485_CNT:1,DP_RS232_CNT:1,DP_BLE_CNT:1,DP_LORA_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}}};var An=require("vscode-uri");var xe=class{dloFileMap={};rootUri=An.URI.parse("");constructor(){}set workspacePath(x){this.rootUri=x}getSequenceForFile(x){let r=x.substring(this.rootUri.path.length||0);if(this.rootUri.scheme!=="file"){let i=this.rootUri.toString();r=x.substring(i.length+1)}if(Object.hasOwn(this.dloFileMap,r))return this.dloFileMap[r];let e=m0.generateHashForFilePath(r);return this.dloFileMap[r]=e,e}getFilePathForSequence(x){let r=Object.entries(this.dloFileMap).find(([,e])=>e===x);return r?An.URI.parse(`${this.rootUri.path}${r[0]}`).path:null}};var ji=require("vscode-uri");var yF=/^(?:\s*#options\s+)(.*)(?:\s*)$/,kF=/^(?:\s*#preinclude\s+)(.*)(?:\s*)$/,_F=/^(?:\s*#ifdef\s+)(.*)$/,wF=/^(?:\s*#ifndef\s+)(.*)$/,$F=/^(?:\s*#elseifdef\s+)(.*)$/,qF=/^(?:\s*#elseifndef\s+)(.*)$/,mi=/^(\s*)(?:#callback\s+)(\w*)(?:\s*\(\s*)(.*?)(?:\s*\)\s*)(\{*){1}(?:\s*)$/,hi=/^(.*)(^|\s+)(?:assert\s*\(\s*)(.*?)(?:\s*,\s*)(.*?)(?:\s*\)\s*;*\s*)$/,gi=/^(.*)(^|\s+)(?:assert\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/,yi=/^(.*)(^|\s+)(?:assert\s*\(\s*\);*\s*)$/,ki=/^(.*)(^|\s+)(?:catch\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/,SF=/^\s*#include\s*</,PF=/^\s*#endinput\s*/,TF=/^\s*#pragma\s+dynamic\s+(\S+)\s*(\/\/.*|\/\*.*|)$/,_i=/^(.*)(^|\s+)(?:applog(|_ok|_warning|_alarm|_debug|_fatal)\s*\(\s*)(.*?)(?:\s*,\s*)(.*?)(?:\s*\)\s*;*\s*)$/,wi=/^(.*)(^|\s*)(?:applog(|_ok|_warning|_alarm|_debug|_fatal)\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/;function bi(A,x=""){let r=" ",e=A;return x.length?r={fatal:"\xA7",alarm:"!",warning:"?",debug:"~",ok:"$"}[x]||null:["!","?","~","$","\xA7"].includes(A.substring(1,1))&&(r=A.substring(1,1),e=`"${A.substring(2,A.length-1)}"`),{priority:`'${r}'`,code:e}}var $i=/^(.*)(^|\s+)(?:log(|_debug|_info|_warn|_error)\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/,qi=(i=>(i[i.debug=0]="debug",i[i.info=1]="info",i[i.warn=2]="warn",i[i.error=3]="error",i))(qi||{}),NF=/^(.*)(^|\s*)DDE_(state|result|aloha|volatile|setting|command)_/,IF=/^(.*)(^|\s*)onUplink(Restore|Apply)_(state|result|aloha|volatile|setting|command)/,MF=/^(.*)(^|\s*)onUplinkEvent/,LF=/(?:^|\s)(?:assert|catch|applog(?:_ok|_warning|_alarm|_debug|_fatal)?|log(?:_debug|_info|_warn|_error)?)\s*\(/,RF=/^\s*#callback\s+\w+\s*\(/;function pi(A){let x=0,r=!1,e="";for(let i=0;i<A.length;i++){let o=A[i];if(r){if(o==="\\"){i++;continue}o===e&&(r=!1);continue}if(o==='"'||o==="'"){r=!0,e=o;continue}o==="("?x++:o===")"&&x--}return x}function Si(A){return mi.test(A)||yi.test(A)||hi.test(A)||gi.test(A)||ki.test(A)||_i.test(A)||wi.test(A)||$i.test(A)}function OF(A,x,r){if(!(LF.test(r)||RF.test(r)))return null;let i=pi(r);if(i<=0)return null;let o=i,t=[A[x]],B=[r],l=x+1,D=100;for(;o>0&&l<A.length&&l-x<D;){let k=A[l],q=k.split("//",1)[0];t.push(k),B.push(q),o+=pi(q),l++}if(t.length<=1||o>0)return null;let j=t.map((k,q)=>q===0?k:k.trim()).join(" "),b=B.map((k,q)=>q===0?k:k.trim()).join(" ");return Si(b)?{joinedOriginal:j,joinedStripped:b,extraLineCount:t.length-1}:null}var Ae=class{pragmaDynamic=null;dloFileSequencer=new xe;constructor(){}get pragmaDynamicFlag(){return this.pragmaDynamic?`-S${this.pragmaDynamic}`:null}preCompileDloFile(x,r,e,i,o){this.dloFileSequencer.workspacePath=x;let t=[],B=i.path,l=!1,D=ji.Utils.basename(i);if(B.includes(i0.filePaths.studio.auto.dlo.path)){let y=D.substring(0,D.length-8);!["app","main"].includes(y)&&D.endsWith("-dde.inc")&&(l=m0.generateHashForLibraryName(y))}else if(B.includes(i0.filePaths.studio.libdeps)){let y=B.split("libdeps/")[1],[S]=y.split("/");["dlo-core"].includes(S)||(l=m0.generateHashForLibraryName(S))}else W.isLibrary(e)&&(D.endsWith(".dlo")||B.includes("/dlo/examples/")||B.includes("/dlo/test/")?r.log("Skipping dde mangling for project file",D):l=m0.generateHashForLibraryName(e.name));if(B.endsWith(".auto/default.inc"))return{data:o.join(`
|
|
1647
|
-
`),diagnostics:t};let j=[],b=this.dloFileSequencer.getSequenceForFile(B);j.push(`stock static __file{} = "${b}";`),j.push(`stock static __refid{} = "${b}";`),j.push('stock static __applog_src_id{} = "A\\0\\0\\0\\0\\0\\0\\0";'),j.push("#line 0");let q=0;for(let y=0;y<o.length;y++){let S=o[y],T=S.split("//",1)[0],I=null,L=0;if(!
|
|
1646
|
+
Accepts a number or a relation link (\`@container.field\`).`,$ref:"#/$defs/relationLinkPattern"}}};var pt=require("yaml");var vr=require("yaml");var st;(x=>x.CODE={ddeFieldLength:"field_name_length"})(st||={});var L0;(H=>{let A;(u0=>(u0.state="state",u0.result="result",u0.aloha="aloha",u0.volatile="volatile",u0.setting="setting",u0.command="command",u0.storage="storage",u0.relations="relations"))(A=H.DDEContainerName||={});let x;(F0=>(F0.configA="configA",F0.configB="configB",F0.configC="configC",F0.config0="config0",F0.config1="config1",F0.config2="config2",F0.config3="config3",F0.config4="config4",F0.config5="config5",F0.config6="config6",F0.config7="config7",F0.config8="config8",F0.config9="config9",F0.histdata0="histdata0",F0.histdata1="histdata1",F0.histdata2="histdata2",F0.histdata3="histdata3",F0.histdata4="histdata4",F0.histdata5="histdata5",F0.histdata6="histdata6",F0.histdata7="histdata7",F0.histdata8="histdata8",F0.histdata9="histdata9",F0.aloha="aloha",F0.alerts="alerts",F0.applog="applog"))(x=H.ContainerName||={});let r;(a0=>(a0.cx="cx",a0.hx="hx",a0.cb="cb",a0.aloha="aloha",a0.applog="applog"))(r=H.ContainerType||={});let e;(q0=>(q0.up="up",q0.down="down",q0.upPlus="up+",q0.downPlus="down+",q0.none="none",q0.backendOnly="backend-only",q0.deviceOnly="device-only",q0.both="both",q0.bothPlus="both+",q0.noneBackend="none-be"))(e=H.TransferDirection||={});function i(Z,r0){return Z==="cx"&&!["backend-only"].includes(r0)?"DDE_CID_CONFIG":Z==="hx"?"DDE_CID_HISTDATA":Z==="aloha"?"DDE_CID_ALOHA":null}H.CONTAINER_DEF_DLO_CID_BASE=i;let o=["up","up+","down","down+","both","none","both+","backend-only","device-only"],t=["up","up+","backend-only"];H.CONTAINER_DEFS={configA:{ctype:"cb",cnum:"a",alias:"",flds:"field",xmits:["backend-only"]},configB:{ctype:"cb",cnum:"b",alias:"",flds:"field",xmits:["backend-only"]},configC:{ctype:"cb",cnum:"c",alias:"",flds:"field",xmits:["backend-only"]},config0:{ctype:"cx",cnum:0,alias:"",flds:"field",xmits:o},config1:{ctype:"cx",cnum:1,alias:"",flds:"field",xmits:o},config2:{ctype:"cx",cnum:2,alias:"",flds:"field",xmits:o},config3:{ctype:"cx",cnum:3,alias:"",flds:"field",xmits:o},config4:{ctype:"cx",cnum:4,alias:"",flds:"field",xmits:o},config5:{ctype:"cx",cnum:5,alias:"",flds:"field",xmits:o},config6:{ctype:"cx",cnum:6,alias:"",flds:"field",xmits:o},config7:{ctype:"cx",cnum:7,alias:"",flds:"field",xmits:o},config8:{ctype:"cx",cnum:8,alias:"",flds:"field",xmits:o},config9:{ctype:"cx",cnum:9,alias:"",flds:"field",xmits:o},histdata0:{ctype:"hx",cnum:0,alias:"",flds:"ch",xmits:t},histdata1:{ctype:"hx",cnum:1,alias:"",flds:"ch",xmits:t},histdata2:{ctype:"hx",cnum:2,alias:"",flds:"ch",xmits:t},histdata3:{ctype:"hx",cnum:3,alias:"",flds:"ch",xmits:t},histdata4:{ctype:"hx",cnum:4,alias:"",flds:"ch",xmits:t},histdata5:{ctype:"hx",cnum:5,alias:"",flds:"ch",xmits:t},histdata6:{ctype:"hx",cnum:6,alias:"",flds:"ch",xmits:t},histdata7:{ctype:"hx",cnum:7,alias:"",flds:"ch",xmits:t},histdata8:{ctype:"hx",cnum:8,alias:"",flds:"ch",xmits:t},histdata9:{ctype:"hx",cnum:9,alias:"",flds:"ch",xmits:t},aloha:{ctype:"aloha",cnum:void 0,alias:"aloha",flds:null,xmits:["up","up+"]},alerts:{ctype:void 0,cnum:void 0,alias:"alerts",flds:null,xmits:["up"]},applog:{ctype:"applog",cnum:void 0,alias:"applog",flds:null,xmits:["up+"]}},H.HISTDATA_CONTAINER=["histdata0","histdata1","histdata2","histdata3","histdata4","histdata5","histdata6","histdata7","histdata8","histdata9"],H.CONFIG_CONTAINER=["config0","config1","config2","config3","config4","config5","config6","config7","config8","config9"],H.SERVER_CONTAINER=["configA","configB","configC"],H.regexRelation=/^(@[a-zA-Z_][a-zA-Z0-9_]*\.[a-zA-Z_][a-zA-Z0-9_]*(\[[^\]]+\])?(\.[a-zA-Z_][a-zA-Z0-9_]*)*|lib:[a-zA-Z0-9_-]+@[a-zA-Z_][a-zA-Z0-9_]*\.[a-zA-Z_][a-zA-Z0-9_]*(\[[^\]]+\])?(\.[a-zA-Z_][a-zA-Z0-9_]*)*)$/;let k=["astring","nstring","cstring","wstring","ustring"],q=["int8","int16","int32","int64","uint8","uint16","uint32","float16","float32","float64"];H.allowedRelationTypes={title:k,unit:k,chartMinimum:q,chartMaximum:q,scale:q,offset:q,decimalPlaces:["uint8","uint16","uint32","int8","int16","int32","int64"],channelMode:["uint8","uint16","uint32"],chartAlarmLow:q,chartAlarmHigh:q,chartWarningLow:q,chartWarningHigh:q,chartHysteresis:q,chartTriggerThreshold:q,chartTriggerRelation:q,chartSetPoint:q};function S(Z,r0,n0){let K=r0[Z];if(K!==void 0)if(H.regexRelation.exec(`${K}`)){let U=Z==="chartSetPoint",[a0,...v0]=K.split("."),[,D0]=a0.split("@"),u0=Object.values(n0.containers).find(Ex=>Ex.title===D0),_0=v0.join("."),q0=U?";":"%",V0=(U?"":"%")+(u0?.name||D0)+q0;if(V0=V0+`${_0}`,U){let Ex=n0.setPointList[r0.name];V0=V0+`;actual_output_value_${Ex}`}return V0}else return K}H.parseXMLValueWithRelation=S;function T(Z){let{bitmask:r0}=Z;if(!r0)return;let n0="$",K=r0.replaceAll(" ","");if(r0.startsWith("0x"))n0+=K.substring(2);else if(K.startsWith("0b")){let U=K.substring(2).replaceAll(" ","");n0+=parseInt(U,2).toString(16).toUpperCase()}return n0}H.parseXMLBitmask=T;function I(Z){return Z.type==="binary"?Z.defaultValue.substring(2):Z.defaultValue==="NaN"?"NAN":Z.defaultValue}H.parseXMLDefaultValue=I,H.TDEF_NUMBER={xmlOut(Z,r0,n0){Z.decpl=S("decimalPlaces",r0,n0),Z.decpl===void 0&&(Z.decpl=0),Z.vscale=S("scale",r0,n0),Z.vofs=S("offset",r0,n0),Z.min=S("chartMinimum",r0,n0),Z.max=S("chartMaximum",r0,n0)}};let R={isBlob:1,xmlOut(Z,r0){Z.max=r0.byteSize}},e0={xmlOut(Z){Z.decpl=-1,Z.param0="local",Z.units="UTC"}};H.TYPE_DEFS={u8:{dde:"uint8",dim:1,len:1,...H.TDEF_NUMBER,rdef:1,xml:{type:"u8"},pwn:{rwfunc:"u8",htype:"s32",printf:"%d"},openApi:{type:"number",minimum:0}},u16:{dde:"uint16",dim:1,len:2,...H.TDEF_NUMBER,rdef:1,xml:{type:"u16"},pwn:{rwfunc:"u16",htype:"s32",printf:"%d"},openApi:{type:"number",minimum:0}},u32:{dde:"uint32",dim:1,len:4,...H.TDEF_NUMBER,rdef:1,xml:{type:"u32"},pwn:{rwfunc:"u32",htype:"s32",printf:"%d"},openApi:{type:"number",minimum:0}},s8:{dde:"int8",dim:1,len:1,...H.TDEF_NUMBER,rdef:1,xml:{type:"s8"},pwn:{rwfunc:"s8",htype:"s32",printf:"%d"},openApi:{type:"number"}},s16:{dde:"int16",dim:1,len:2,...H.TDEF_NUMBER,rdef:1,xml:{type:"s16"},pwn:{rwfunc:"s16",htype:"s32",printf:"%d"},openApi:{type:"number"}},s32:{dde:"int32",dim:1,len:4,...H.TDEF_NUMBER,rdef:1,xml:{type:"s32"},pwn:{rwfunc:"s32",printf:"%d"},openApi:{type:"number"}},s64:{dde:"int64",dim:0,len:8,...H.TDEF_NUMBER,rdef:1,xml:{type:"s64"},pwn:{rwfunc:"s64",rwp:"%n{%l}",htype:"{%l}",printf:"%d"},openApi:{type:"number"}},f16:{dde:"float16",dim:1,len:2,...H.TDEF_NUMBER,rdef:1,xml:{type:"floatm16"},pwn:{rwfunc:"f16",rwp:"Float:%n",htype:"f32",printf:"%f"},openApi:{type:"number"}},f32:{dde:"float32",dim:1,len:4,...H.TDEF_NUMBER,rdef:1,xml:{type:"f32"},pwn:{rwfunc:"f32",rwp:"Float:%n",printf:"%f"},openApi:{type:"number"}},f64:{dde:"float64",dim:0,len:8,...H.TDEF_NUMBER,rdef:0,xml:{type:"f64"},pwn:{rwfunc:"f64",rwp:"%n{%l}",htype:"{%l}",printf:"%f"},openApi:{type:"number"}},stamp32:{dde:"stamp32",dim:1,len:4,...e0,rdef:0,xml:{type:"stamp4"},pwn:{rwfunc:"stamp32",printf:"%s",printfFormat:"stampToISOString"},openApi:{type:"string",format:"YYYYMMDDhhmmssSSS",description:"UTC"}},stamp40:{dde:"stamp40",dim:0,len:5,...e0,rdef:0,xml:{type:"stamp"},pwn:{rwfunc:"stamp40",rwp:"%n{%l}",htype:"{%l}",printf:"%s",printfFormat:"stampToISOString"},openApi:{type:"string",format:"YYYYMMDDhhmmssSSS",description:"UTC"}},bin:{dde:"binary",dim:0,...R,rdef:0,lenUnits:"byte",xml:{type:"string",editmask:"%HEX%"},pwn:{rwfunc:"bin",rwlen:1,rwp:"%n{%l}",htype:"{%l}",printf:null,printfFormat:"memtostr"},openApi:{type:"string",description:"HEX string"}},astr:{dde:"astring",dim:0,...R,rdef:1,lenUnits:"char",xml:{type:"string",param1:"nocodepage"},pwn:{rwfunc:"astr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},nstr:{dde:"nstring",dim:0,...R,rdef:1,lenUnits:"byte",xml:{type:"string"},pwn:{rwfunc:"nstr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},wstr:{dde:"wstring",dim:0,...R,rdef:1,lenUnits:"byte",xml:{type:"string"},pwn:{rwfunc:"wstr",rwlen:1,rwp:"%n[%l+1]",htype:"[%l+1]",printf:"%s"},openApi:{type:"string"}},ustr:{dde:"ustring",dim:0,...R,rdef:0,lenUnits:"byte",xml:{type:"string"},pwn:{rwfunc:"ustr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},cstr:{dde:"cstring",dim:0,...R,rdef:1,lenUnits:"char",xml:{type:"string",editmask:"%HEX%"},pwn:{rwfunc:"cstr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}",printf:"%s"},openApi:{type:"string"}},_siteref:{dim:0,len:80,rdef:0,xml:{type:"string",max:"80",editmask:"%QUERY%all_sites;-name;!id;class;name;%EMPTY%"},pwn:{rwfunc:"astr",rwlen:1,rwp:"%n{%l+1}",htype:"{%l+1}"},js:{rwfunc:"String"}}},H.fieldTypeDefinitions={uint8:H.TYPE_DEFS.u8,uint16:H.TYPE_DEFS.u16,uint32:H.TYPE_DEFS.u32,int8:H.TYPE_DEFS.s8,int16:H.TYPE_DEFS.s16,int32:H.TYPE_DEFS.s32,int64:H.TYPE_DEFS.s64,float16:H.TYPE_DEFS.f16,float32:H.TYPE_DEFS.f32,float64:H.TYPE_DEFS.f64,stamp32:H.TYPE_DEFS.stamp32,stamp40:H.TYPE_DEFS.stamp40,binary:H.TYPE_DEFS.bin,astring:H.TYPE_DEFS.astr,nstring:H.TYPE_DEFS.nstr,wstring:H.TYPE_DEFS.wstr,ustring:H.TYPE_DEFS.ustr,cstring:H.TYPE_DEFS.cstr};let O=["_id","id","_stamp","stamp","tag","_uid","customer_id","site_id","_rec_flags__","applog"];function Y(Z){let r0=Z.toLowerCase();return O.includes(r0)||/^field\d+$/.test(r0)||/^ch\d+$/.test(r0)}H.checkForReservedFieldName=Y;function x0(Z){return!!Z.fields.find(r0=>r0.library===null&&r0.type!=="shadow")}H.hasContainerAppFields=x0})(L0||={});var Qr={DP_registry_sz:1024,DP_config_sz:4e3,DP_histdata_sz:1024,DP_DISPLAY_CNT:0,DP_LED_CNT:0,DP_BUTTON_CNT:0,DP_GPIO_CNT:0,DP_IRQ_CNT:0,DP_DIGOUT_CNT:0,DP_UIN_CNT:0,DP_TEMP_CNT:0,DP_I2C_CNT:0,DP_SPI_CNT:0,DP_UART_CNT:0,DP_RS485_CNT:0,DP_RS232_CNT:0,DP_WIFI_CNT:0,DP_BLE_CNT:0,DP_LORA_CNT:0,DP_NBIOT_CNT:0},Zt={max_size:1e5,max_fields:1e3},kA={max_size:4e3,max_fields:1e3},aA={max_size:1024,max_fields:1e3},Zr={configA:Zt,configB:Zt,configC:Zt,config0:kA,config1:kA,config2:kA,config3:kA,config4:kA,config5:kA,config6:kA,config7:kA,config8:kA,config9:kA,histdata0:aA,histdata1:aA,histdata2:aA,histdata3:aA,histdata4:aA,histdata5:aA,histdata6:aA,histdata7:aA,histdata8:aA,histdata9:aA,aloha:{...aA,warn_fields:10},alerts:{max_size:13,max_fields:0,exact_match:!0},applog:{max_size:125,max_fields:0,exact_match:!1}},xn={m22x:{name:"M22x",dpid:"m22x",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M M2 HW1.0"],alt_ids:[],generation:"M2",prog_mem:256*1024,data_mem:64*1024,total_mem:256*1024,hw_reqd:!1,dde:Zr,auto_inc:{...Qr,DP_LED_CNT:1,DP_GPIO_CNT:6,DP_IRQ_CNT:2,DP_I2C_CNT:1,DP_SPI_CNT:1,DP_UART_CNT:2,DP_WIFI_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}},m23x:{name:"M23x",dpid:"m23x",interface:{type:"usb",filter:{vendorId:1155},fileChunk:4096},usb_ids:["rapidM2M M23 HW2.0","rapidM2M M23 HW1.0"],alt_ids:[],generation:"M23",prog_mem:8*1024*1024,data_mem:8*1024*1024,total_mem:8*1024*1024,hw_reqd:!1,dde:Zr,auto_inc:{...Qr,DP_LED_CNT:1,DP_GPIO_CNT:6,DP_IRQ_CNT:2,DP_I2C_CNT:1,DP_SPI_CNT:1,DP_UART_CNT:1,DP_WIFI_CNT:1},usbcaps:{dbgItfMayHangFixed:"99v999"},dlo:{compileRestrictions:{}}},nrf91:{name:"NRF91",dpid:"nrf91",interface:{type:"usb",filter:{vendorId:9540},fileChunk:2048},usb_ids:["rapidM2M NRF91 HW1.0","ONE NRF91 HW1.0","rapidM2M Evolve HW1.0"],alt_ids:[],generation:"NRF91",prog_mem:256*1024,data_mem:64*1024,total_mem:256*1024,hw_reqd:!1,dde:Zr,auto_inc:{...Qr,DP_LED_CNT:1,DP_GPIO_CNT:32,DP_IRQ_CNT:6,DP_I2C_CNT:2,DP_SPI_CNT:2,DP_UART_CNT:2,DP_AIN_CNT:8,DP_PWM_CNT:3},usbcaps:{}},m2blegw:{name:"BLE Gateway",dpid:"m2blegw",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M BLEGW HW1.0"],alt_ids:[],generation:"M2",prog_mem:256*1024,data_mem:256*1024,total_mem:256*1024,hw_reqd:!1,dde:Zr,auto_inc:{...Qr,DP_DISPLAY_CNT:1,DP_DISPLAY_TYPE:"xc",DP_BUTTON_CNT:1,DP_BLE_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}},m2easyv3:{name:"myDatalogEasy V3",dpid:"m2easyv3",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M Easy HW3.0"],alt_ids:["rapidM2M EasyIoT HW1.0","rapidM2M M220 HW1.0"],generation:"M2",prog_mem:256*1024,data_mem:256*1024,total_mem:256*1024,hw_reqd:!1,dde:Zr,auto_inc:{...Qr,DP_LED_CNT:1,DP_BUTTON_CNT:1,DP_DIGOUT_CNT:1,DP_UIN_CNT:4,DP_TEMP_CNT:1,DP_RS485_CNT:1,DP_RS232_CNT:1,DP_BLE_CNT:1,DP_LORA_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}},m2easyiot:{name:"myDatalogEasy IoT",dpid:"m2easyiot",interface:{type:"usb",filter:{vendorId:9540},fileChunk:4096},usb_ids:["rapidM2M EasyIoT HW1.0"],alt_ids:[],generation:"M2",prog_mem:256*1024,data_mem:256*1024,total_mem:256*1024,hw_reqd:!1,dde:Zr,auto_inc:{...Qr,DP_LED_CNT:1,DP_BUTTON_CNT:1,DP_DIGOUT_CNT:1,DP_UIN_CNT:4,DP_TEMP_CNT:1,DP_RS485_CNT:1,DP_RS232_CNT:1,DP_BLE_CNT:1,DP_LORA_CNT:1},usbcaps:{},dlo:{compileRestrictions:{"-z":0}}}};var An=require("vscode-uri");var xe=class{dloFileMap={};rootUri=An.URI.parse("");constructor(){}set workspacePath(x){this.rootUri=x}getSequenceForFile(x){let r=x.substring(this.rootUri.path.length||0);if(this.rootUri.scheme!=="file"){let i=this.rootUri.toString();r=x.substring(i.length+1)}if(Object.hasOwn(this.dloFileMap,r))return this.dloFileMap[r];let e=m0.generateHashForFilePath(r);return this.dloFileMap[r]=e,e}getFilePathForSequence(x){let r=Object.entries(this.dloFileMap).find(([,e])=>e===x);return r?An.URI.parse(`${this.rootUri.path}${r[0]}`).path:null}};var pi=require("vscode-uri");var yF=/^(?:\s*#options\s+)(.*)(?:\s*)$/,kF=/^(?:\s*#preinclude\s+)(.*)(?:\s*)$/,_F=/^(?:\s*#ifdef\s+)(.*)$/,wF=/^(?:\s*#ifndef\s+)(.*)$/,$F=/^(?:\s*#elseifdef\s+)(.*)$/,qF=/^(?:\s*#elseifndef\s+)(.*)$/,ji=/^(\s*)(?:#callback\s+)(\w*)(?:\s*\(\s*)(.*?)(?:\s*\)\s*)(\{*){1}(?:\s*)$/,mi=/^(.*)(^|\s+)(?:assert\s*\(\s*)(.*?)(?:\s*,\s*)(.*?)(?:\s*\)\s*;*\s*)$/,hi=/^(.*)(^|\s+)(?:assert\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/,gi=/^(.*)(^|\s+)(?:assert\s*\(\s*\);*\s*)$/,yi=/^(.*)(^|\s+)(?:catch\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/,SF=/^\s*#include\s*</,PF=/^\s*#endinput\s*/,TF=/^\s*#pragma\s+dynamic\s+(\S+)\s*(\/\/.*|\/\*.*|)$/,ki=/^(.*)(^|\s+)(?:applog(|_ok|_warning|_alarm|_debug|_fatal)\s*\(\s*)(.*?)(?:\s*,\s*)(.*?)(?:\s*\)\s*;*\s*)$/,_i=/^(.*)(^|\s*)(?:applog(|_ok|_warning|_alarm|_debug|_fatal)\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/;function ui(A,x=""){let r=" ",e=A;return x.length?r={fatal:"\xA7",alarm:"!",warning:"?",debug:"~",ok:"$"}[x]||null:["!","?","~","$","\xA7"].includes(A.substring(1,1))&&(r=A.substring(1,1),e=`"${A.substring(2,A.length-1)}"`),{priority:`'${r}'`,code:e}}var wi=/^(.*)(^|\s+)(?:log(|_debug|_info|_warn|_error)\s*\(\s*)(.*?)(?:\s*\)\s*;*\s*)$/,$i=(i=>(i[i.debug=0]="debug",i[i.info=1]="info",i[i.warn=2]="warn",i[i.error=3]="error",i))($i||{}),NF=/^(.*)(^|\s*)DDE_(state|result|aloha|volatile|setting|command)_/,IF=/^(.*)(^|\s*)onUplink(Restore|Apply)_(state|result|aloha|volatile|setting|command)/,MF=/^(.*)(^|\s*)onUplinkEvent/,LF=/(?:^|\s)(?:assert|catch|applog(?:_ok|_warning|_alarm|_debug|_fatal)?|log(?:_debug|_info|_warn|_error)?)\s*\(/,RF=/^\s*#callback\s+\w+\s*\(/;function bi(A){let x=0,r=!1,e="";for(let i=0;i<A.length;i++){let o=A[i];if(r){if(o==="\\"){i++;continue}o===e&&(r=!1);continue}if(o==='"'||o==="'"){r=!0,e=o;continue}o==="("?x++:o===")"&&x--}return x}function qi(A){return ji.test(A)||gi.test(A)||mi.test(A)||hi.test(A)||yi.test(A)||ki.test(A)||_i.test(A)||wi.test(A)}function OF(A,x,r){if(!(LF.test(r)||RF.test(r)))return null;let i=bi(r);if(i<=0)return null;let o=i,t=[A[x]],B=[r],l=x+1,D=100;for(;o>0&&l<A.length&&l-x<D;){let k=A[l],q=k.split("//",1)[0];t.push(k),B.push(q),o+=bi(q),l++}if(t.length<=1||o>0)return null;let j=t.map((k,q)=>q===0?k:k.trim()).join(" "),b=B.map((k,q)=>q===0?k:k.trim()).join(" ");return qi(b)?{joinedOriginal:j,joinedStripped:b,extraLineCount:t.length-1}:null}var Ae=class{pragmaDynamic=null;dloFileSequencer=new xe;constructor(){}get pragmaDynamicFlag(){return this.pragmaDynamic?`-S${this.pragmaDynamic}`:null}preCompileDloFile(x,r,e,i,o){this.dloFileSequencer.workspacePath=x;let t=[],B=i.path,l=!1,D=pi.Utils.basename(i);if(B.includes(i0.filePaths.studio.auto.dlo.path)){let y=D.substring(0,D.length-8);!["app","main"].includes(y)&&D.endsWith("-dde.inc")&&(l=m0.generateHashForLibraryName(y))}else if(B.includes(i0.filePaths.studio.libdeps)){let y=B.split("libdeps/")[1],[S]=y.split("/");["dlo-core"].includes(S)||(l=m0.generateHashForLibraryName(S))}else W.isLibrary(e)&&(D.endsWith(".dlo")||B.includes("/dlo/examples/")||B.includes("/dlo/test/")?r.log("Skipping dde mangling for project file",D):l=m0.generateHashForLibraryName(e.name));if(B.endsWith(".auto/default.inc"))return{data:o.join(`
|
|
1647
|
+
`),diagnostics:t};let j=[],b=this.dloFileSequencer.getSequenceForFile(B);j.push(`stock static __file{} = "${b}";`),j.push(`stock static __refid{} = "${b}";`),j.push('stock static __applog_src_id{} = "A\\0\\0\\0\\0\\0\\0\\0";'),j.push("#line 0");let q=0;for(let y=0;y<o.length;y++){let S=o[y],T=S.split("//",1)[0],I=null,L=0;if(!qi(T)){let R=OF(o,y,T);R&&(S=R.joinedOriginal,T=R.joinedStripped,L=R.extraLineCount)}if(I=yF.exec(T))S="// "+S,t.push({file:i,level:"error",line:y,message:"#options is not supported here. Use the DLO settings instead."});else if(I=kF.exec(T))S="// "+S,t.push({file:i,level:"error",line:y,message:"#preinclude is not supported here. Use the DLO settings instead."});else if(I=TF.exec(T)){let R=Number(I[1].startsWith("(")?I[1].substring(1,I[1].length-1):I[1]);!Number.isInteger(R)||R<64?t.push({file:i,level:"error",line:y,message:"#pragma dynamic only supports integer values and must be greater than 63"}):(!this.pragmaDynamic||R>this.pragmaDynamic)&&(this.pragmaDynamic=R)}else if(I=_F.exec(T))S=S.replace("#ifdef ","#if defined ");else if(I=wF.exec(T))S=S.replace("#ifndef ","#if !defined ");else if(I=$F.exec(T))S=S.replace("#elseifdef ","#elseif defined ");else if(I=qF.exec(T))S=S.replace("#elseifndef ","#elseif !defined ");else if(I=ji.exec(T)){let[,R,e0,w,g]=I;S=`${R}#define ${e0} _catch_funcidx( "___${e0}")
|
|
1648
1648
|
forward ___${e0}( ${w});
|
|
1649
1649
|
#line
|
|
1650
1650
|
${q}
|
|
1651
|
-
public ___${e0}( ${w})${g}`}else if(I=
|
|
1652
|
-
`),diagnostics:t}}};var _A=require("vscode-uri");var $0=cx(require("fs")),Y0=require("vscode-uri");var
|
|
1653
|
-
`)}}var at;(l=>{l.createPawnCC=Pe,l.createPawnDbg=Xi,l.FileSequencer=xe,l.PreCompiler=Ae,l.Compiler=ee,l.uriToMemFs=zA,l.parseCompilerWarningsAndErrors=nn;async function B(D,j,b){let k=await W.read(D,j),q=await Yi(D,j,k);await j.writeFile(q.path,q.data),b.log("Generated",i0.filePaths.studio.auto.dlo.cfg)}l.exportDloConfig=B})(at||={});var Zi=require("vscode-uri");var an=require("minimatch");var xs=require("@gera2ld/tarjs"),o8=m0.convertBlobToString,F8=require("pako"),As=".studioignore",rs=[".vscodeignore","package-lock.json","npm-debug.log","yarn.lock","yarn-error.log","npm-shrinkwrap.json",".editorconfig",".npmrc",".yarnrc",".gitattributes","*.todo","tslint.yaml",".eslintrc*",".babelrc*",".prettierrc*",".cz-config.js",".commitlintrc*","webpack.config.js","ISSUE_TEMPLATE.md","CONTRIBUTING.md","PULL_REQUEST_TEMPLATE.md","CODE_OF_CONDUCT.md",".github",".travis.yml","appveyor.yml","**/.git","**/.git/**","**/*.vsix","**/.DS_Store","**/*.vsixmanifest","**/.vscode-test/**","**/.vscode-test-web/**"];rs.push("**/.studio/**","**/node_modules/**",As,"dist/defines.app.ts");var Qi={dot:!0},te;(e=>{async function A(i,o){let t=new xs.TarWriter;(await x(i,o)).forEach(D=>{t.addFile(D.name,D.data)});let l=await t.write();return F8.gzip(await l.arrayBuffer())}e.createArchive=A;async function x(i,o){let t=[],{ignore:B,negate:l}=await v8(i,o),j=(await o.findFiles(i,"**/*")).filter(({path:b})=>{let k=b.slice(i.path.length+1);return!B.some(q=>(0,an.minimatch)(k,q,Qi))||l.some(q=>(0,an.minimatch)(k,q.slice(1),Qi))});for(let b of j){let k=b.path.slice(i.path.length+1),[q,y]=await Promise.all([o.stat(b),o.readFile(b)]);q&&t.push({name:k,data:y,modifyTime:new Date(q.mtime)})}return t}e.getFilesForArchive=x;async function r(i,o,t,B=ix.ENV.production){let{publisher:l,name:D,version:j}=o,b=await px.readFilesFromTarGz(t,["CHANGELOG.md","README.md","studio.json"]),k={"CHANGELOG.md":await sn(b["CHANGELOG.md"]),"README.md":await sn(b["README.md"]),"studio.json":await sn(b["studio.json"]),"library.tar.gz":t};return await xx.publishLibraryVersion(i,l,D,j,k,B)}e.publishPackage=r})(te||={});async function v8(A,x){let r=["!studio.json","!README.md"],i=(await E8(A,x)).split(/[\n\r]/).map(D=>D.trim()).filter(D=>!!D).filter(D=>!/^\s*#/.test(D)),o=[...i,...i.filter(D=>!/(^|\/)[^/]*\*[^/]*$/.test(D)).map(D=>/\/$/.test(D)?`${D}**`:`${D}/**`)],t=[...rs,...o,...r],[B,l]=t.reduce((D,j)=>/^\s*!/.test(j)?[D[0],[...D[1],j]]:[[...D[0],j],D[1]],[[],[]]);return{ignore:B,negate:l}}async function E8(A,x){let r=Zi.Utils.joinPath(A,As);if(await x.stat(r)){let i=await x.readFile(r);return o8(i)}else return""}async function sn(A){return new Uint8Array(await A.arrayBuffer())}var wA=require("vscode-uri");var Fr=require("yaml");var B8=m0.convertBlobToString,ot=m0.yamlRangeToLineInformation,Ft;(t=>{let A;(j=>(j.static="static",j.dynamic="dynamic",j.appDynamic="app-dynamic"))(A=t.Type||={});let x;(b=>(b.crcStamp="crc_stamp",b.stampOnly="stamp_only",b.onlyDown="only_down",b.onlyUp="only_up"))(x=t.SyncLogic||={});let r;(j=>(j.down="down",j.up="up",j.off="off"))(r=t.Force||={});async function e(B,l,D){let{properties:j,diagnostics:b,libraryFiles:k}=await i(B,l),q=wA.Utils.joinPath(B,i0.filePaths.dist.dfilesPath);await l.stat(q)&&await l.rm(q);for(let[y,S]of Object.entries(j))await C8(B,l,y,S,k);return Object.keys(j).length&&(D.done(`${Object.keys(j).length} dfiles processed.`),await l.writeFile(wA.Utils.joinPath(B,i0.filePaths.dist.dfilesProperties),JSON.stringify(j,null," "))),b}t.process=e;async function i(B,l){let D=[],j={},b=await ex.getApmPartDependencies(B,l,d0.Part.dfiles);for(let y of b){let{properties:S,diagnostics:T}=await o(l,y.path,y.name);Object.assign(j,S),D.push(...T)}let{properties:k,diagnostics:q}=await o(l,wA.Utils.joinPath(B,i0.filePaths.dfiles.mainDFILES),null);return Object.assign(j,k),D.push(...q),{properties:j,diagnostics:D,libraryFiles:b}}t.parseDfile=i;async function o(B,l,D){let j=[],b={};if(!await B.stat(l))return{properties:b,diagnostics:j};let k=await B.readFile(l),q=B8(k),y=new Fr.LineCounter,T=(0,Fr.parseDocument)(q,{lineCounter:y}).contents||new Fr.YAMLMap;for(let I of T.items){let L=I.key.value,R=(0,Fr.isMap)(I.value)?I.value:null,e0=ot(y,I.key.range),w=R?R.has("syncMode"):!1,g=w?R.get("syncMode"):"crc_stamp";if(w){let Z=Object.values(t.SyncLogic);if(!Z.includes(g)){let r0=R.items.find(K=>K.key.value==="syncMode"),n0=ot(y,r0.key.range);j.push({file:l,code:"",message:`Property syncMode does not match any of "${Z.join(", ")}"`,line:n0.line,startCharacter:n0.startCharacter,endCharacter:n0.endCharacter,level:"error"})}}else j.push({file:l,code:"",message:'Property "syncMode" missing',line:e0.line,startCharacter:e0.startCharacter,endCharacter:e0.endCharacter,level:"error"});let O=R?R.has("type"):!1,Y=O?R.get("type"):"static";if(O){let Z=Object.values(t.Type);if(!Z.includes(Y)){let r0=R.items.find(K=>K.key.value==="type"),n0=ot(y,r0.key.range);j.push({file:l,code:"",message:`Property type does not match any of "${Z.join(", ")}"`,line:n0.line,startCharacter:n0.startCharacter,endCharacter:n0.endCharacter,level:"error"})}}L.match(/^[a-z0-9._-]*$/)||j.push({file:l,code:"",message:'Filename does not match pattern "a-z0-9._-"',line:e0.line,startCharacter:e0.startCharacter,endCharacter:e0.endCharacter,level:"error"});let x0=wA.Utils.joinPath(wA.Utils.dirname(l),L),H=await f8(B,x0);if(H)b[L]={crc:H.crc,force:"off",readable:!1,size:H.size,stamp:H.stamp,sync_logic:g,type:Y,library:D};else{let Z=ot(y,I.key.range);j.push({file:l,code:"",message:`Could not find file "${L}"`,line:Z.line,startCharacter:Z.startCharacter,endCharacter:Z.endCharacter,level:"error"})}}return{properties:b,diagnostics:j}}t.parseYamlFile=o})(Ft||={});async function f8(A,x){let r=await A.stat(x);if(!r)return null;let e=await A.readFile(x);return{size:r.size,stamp:Math.trunc(r.ctime),crc:m0.generateCRC32ForFileContent(e)}}async function C8(A,x,r,e,i){let t=e.library!==null?wA.Utils.dirname(i.find(D=>D.name===e.library).path):wA.Utils.joinPath(A,i0.filePaths.dfiles.path),B=wA.Utils.joinPath(A,i0.filePaths.dist.dfilesPath,r),l=wA.Utils.joinPath(t,r);await x.copy(l,B)}var es=cx(require("dotenv")),ts=require("vscode-uri");var l8=".env.local",ns;(x=>{async function A(r,e){let i=ts.Utils.joinPath(r,l8);if(await e.stat(i)){let o=await e.readFile(i);return es.default.parse(m0.convertBlobToString(o))}return{}}x.read=A})(ns||={});var Te=cx(require("chalk")),vt;(e=>{let A;(D=>(D[D.log=0]="log",D[D.done=1]="done",D[D.info=2]="info",D[D.warning=3]="warning",D[D.error=4]="error"))(A=e.LogMessageType||={}),e.LOG_PREFIX={1:Te.default.bgGreen.black(" DONE "),0:"",2:Te.default.bgBlueBright.black(" INFO "),3:Te.default.bgYellow.black(" WARNING "),4:Te.default.bgRed.black(" ERROR ")};class r{_logHandler;_silent=!1;constructor(o=console){this._logHandler=o}_log(o,t,...B){this._silent&&o!==4||(B=[e.LOG_PREFIX[o],t,...B],this._logHandler.log(...B))}set silent(o){this._silent=o}log(o,...t){this._log(0,o,...t)}debug(o,...t){this._log(0,o,...t)}error(o,...t){this._log(4,o,...t)}info(o,...t){this._log(2,o,...t)}warn(o,...t){this._log(3,o,...t)}done(o,...t){this._log(1,o,...t)}}e.Logger=r})(vt||={});var is=require("uuid"),c8="b4baec47-0ba4-4e37-b237-8f9cde42b8dd";var Ne=class{domain;auth;logger;userInfo=null;constructor(x,r,e){if(typeof x=="object"){let{serverUrl:i,apiToken:o,authHeader:t,logger:B}=x;this.domain=this.normalizeServerUrl(i),this.auth=t||(o?`Bearer ${o}`:""),this.logger=B}else this.domain=this.normalizeServerUrl(x),typeof r=="string"?(this.auth=`Bearer ${r}`,this.logger=e):(this.auth="",this.logger=r)}setAuth(x){this.auth=x}getDomain(){return this.domain}normalizeServerUrl(x){return!x.startsWith("http://")&&!x.startsWith("https://")?`https://${x}`:x}trimDomain(x){return x.replace(/(^\w+:|^)\/\//,"")}async fetchJSON(x,r,e){let i=`${this.domain}${r}`,o={Authorization:this.auth},t={method:x,headers:o};e&&(e instanceof FormData?t.body=e:(o["Content-Type"]="application/json",t.body=JSON.stringify(e)));let B=await fetch(i,t);if(!B.ok){let l=await B.text().catch(()=>"Unknown error");throw new Error(`HTTP ${B.status}: ${l}`)}return B.json()}async authenticate(){this.logger?.info(`Authenticating with ${this.trimDomain(this.domain)}...`);try{let{user:x,customers:r}=await this.fetchJSON("GET","/api/1/me");return this.userInfo={name:x.name,email:x.email,group:x.group,customers:r},this.logger?.info(`Authenticated as ${this.userInfo.name}`),this.userInfo}catch(x){throw new Error(`Authentication failed: ${x instanceof Error?x.message:String(x)}`)}}getUserInfo(){return this.userInfo}async uploadDevTag(x,r){this.logger?.info(`Uploading development tag ${x}...`);let{applid:e}=await this.fetchJSON("POST",`/api/1/app-center/__dev/${x}`,r);return this.logger?.info(`Development tag uploaded, application ID: ${e}`),e}async getCustomer(x){let{_uid:r,name:e}=await this.fetchJSON("GET",`/api/1/customers/${x}`);return{_uid:r,name:e}}async getCustomers(){return this.fetchJSON("GET","/api/1/customers")}async getDeviceSite(x){try{return await this.fetchJSON("GET",`/api/1/devices/${x}/site`)}catch{return null}}async getDevice(x){try{return await this.fetchJSON("GET",`/api/1/devices/${x}`)}catch{return null}}async getSite(x,r){try{return await this.fetchJSON("GET",`/api/1/customers/${x}/sites/${r}`)}catch{return null}}async createDevelopmentSite(x,r,e){if(this.logger?.info(`Creating development site "${r.name}"...`),r.serialNumber){let o=await this.getSite(x,r.name.toLowerCase());if(o)try{return await this.fetchJSON("POST",`/api/1/customers/${x}/sites/${o._uid}/cn-attach-device`,{device_id:r.serialNumber,allow_overwrite:!0,detach_from_old_site:!0,acquire:!0,create:!0}),this.logger?.info(`Device attached to existing site ${o._uid}`),o._uid}catch(t){if(t.message&&!t.message.includes("304"))this.logger?.warn(`Could not attach device to existing site: ${t.message}`);else return o._uid}}let{_uid:i}=await this.fetchJSON("POST",`/api/1/customers/${x}/sites`,{name:r.name,create:!0,force:!0,note:"This is a Studio development site",applid:r.applicationId,device_id:r.serialNumber,reg_code:e,servicetariff:"0000000000000000",servicetariff_indiv_cost:0});return this.logger?.info(`Development site created: ${i}`),i}async updateSiteName(x,r){try{await this.fetchJSON("PUT",`/api/1/sites/${x}`,{name:r})}catch{}}};function ss(A){return(0,is.v5)(A,c8)}async function on(A,x,r,e,i,o,t){let B=await W.read(A,x),l=i.replaceAll(" ","_").replace(/[^a-zA-Z0-9-]+/g,""),D=B.name.replaceAll(" ","_").replace(/[^a-zA-Z0-9-]+/g,""),j=await W.isApmPartEnabled(A,x,d0.Part.dlo,B),b=j&&e,k=b?e.toUpperCase():`${D}_${l}`,q=b?e:k,y=t||k;return y.length>50&&(r.warn(`Site name "${y}" is too long. Truncating to 50 characters.`),y=y.substring(0,50)),{apmId:ss(q),applicationId:null,name:y,version:1,serialNumber:j?e:void 0,siteUid:null,customerUid:o}}async function as(A,x,r,e,i,o,t=!1){if(o.length>0)for(let B of o){let[l,D]=B.split("@");await ex.installDependency(A,x,r,e,i,l,D||null,t)}else await ex.installDependencies(A,x,r,e,i);await ex.installNpmInApmParts(A,x,r)}async function os(A,x,r,e,i=null,o=!0,t){return await W.validateBasicManifest(A,x,null),px.buildAll(A,x,r,e,i,o,t)}async function D8(A){let x=null;if(A){x=A==="*"?A:A.split(";");let r=await W.validateRegistryAllowedBackends(x);if(r)throw new Error(r)}return x}async function Fs(A,x,r,e,i,o,t,B){r.info("Publishing package...");let l=await D8(o);if(B)await px.publishArchive(A,x,r,i,e,B,t,l);else return await px.validatePublishSettings(A,x,i,e),px.release(A,x,r,e,i,t,l)}async function vs(A,x,r,e,i,o){return px.pack(A,x,r,e,i,o)}var Er=L0.DDEContainerName,Es=L0.allowedRelationTypes,d8=L0.regexRelation,u8=L0.ContainerType,b8=L0.checkForReservedFieldName,Et=L0.ContainerName,Bs=L0.CONTAINER_DEFS,p8=L0.SERVER_CONTAINER,j8=L0.HISTDATA_CONTAINER,m8=L0.CONFIG_CONTAINER,ne=L0.TransferDirection,fs=L0.fieldTypeDefinitions,Qx=m0.yamlRangeToLineInformation,Bt;(x=>{class A{constructor(e,i,o){this.manifest=e;this.libraryFiles=i;this.ddeHistory=o}manifest;libraryFiles;ddeHistory;fieldNamesPerContainer={};usedContainerNames={};fileDiagnostics=[];libraryDDE=[];libraryYaml={};parseLibraries(){this.libraryDDE.length=0;let e=[];return this.libraryFiles.forEach(i=>{let{parsedDDE:o,diagnostics:t,parsedYaml:B}=this.parseYamlFile(i.path,i.yaml,i.libraryName);e.push(...t),this.libraryDDE.push(o),this.libraryYaml[i.libraryName]=B}),e}get previousVersion(){return{setPointList:{...this.ddeHistory?.setPointList},containers:{...this.ddeHistory?.containers}}}getContainerOfPreviousVersion(e){let i=this.previousVersion,o=e.startsWith("timeseries_")?e.substring(11):e;return Object.values(i.containers).find(t=>t.title===o)||null}parseMainDDE(e,i){let{parsedDDE:o,diagnostics:t}=this.parseYamlFile(e,i);return t.find(D=>D.level==="error")?{ddeJSON:null,diagnostics:t}:{ddeJSON:this.mergeAndFormat(o),diagnostics:t}}parseYamlFile(e,i,o){this.fileDiagnostics.length=0;let t=new vr.LineCounter,B=(0,vr.parseDocument)(i,{lineCounter:t});if(!B.contents)return{parsedDDE:{containers:{},setPointList:{}},diagnostics:[],parsedYaml:null};let l=B.contents||new vr.YAMLMap;return this.validateContainerDefinition(l.items).forEach(j=>{this.validateAllowedContainer(e,j,t,o),this.validateContainerFields(B,e,j,t)}),{parsedDDE:this.yamlDocToDdeJson(B.toJS({mapAsMap:!0}),o),diagnostics:[...this.fileDiagnostics],parsedYaml:B}}yamlDocToDdeJson(e,i){let o={containers:{},setPointList:{}},t=new Map,B=[...Object.values(Er)];if(e.get("cloudProject")){let D=Object.values(this.previousVersion.containers).map(b=>b.title),j=[...new Set([...B,...D])];B.length=0,B.push(...j)}for(let D of B)e.has(D)&&t.set(D,e.get(D));let l=e.get("timeseries");if(l)for(let[D,j]of l)t.set(D,j);for(let[D,j]of t){let{realContainer:b,transferDirection:k,legacyTitle:q}=this.getRealContainerInformation(D);if(!b)continue;let y=Bs[b],S=D.includes("timeseries_")?D.replace("timeseries_",""):D,T={name:b,title:S,previousTitle:q,containerType:y.ctype,volatile:D===Er.volatile,transferDirection:k,fieldCount:j.size,knownNames:[],libraries:[],arrays:{},shadows:{},fields:[],size:0,fieldIndex:0};i&&T.libraries.push(i);for(let[I,L]of j){let R=[],e0=L.get("type"),w=fs[e0];if(!(!w&&e0!=="array")){if(e0==="array"){let g=[],O=L.get("length"),Y=L.get("fields"),x0={name:I,length:O,library:i||null,fields:[]};T.arrays[I]=x0;for(let H=0;H<O;H++){let Z={name:I,index:H};for(let[r0,n0]of Y){let K=fs[n0.get("type")];if(!K)continue;x0.fields?.find(D0=>D0.name===r0)||x0.fields.push({name:r0,type:n0.get("type"),byteSize:K.len||n0.get("bytes")||n0.get("length")});let U=`${I}[${H}].${r0}`,{fields:a0,shadowInfo:v0}=this.createDDEJsonFields(U,i,K,n0);a0.forEach(D0=>{D0.arrayRef=Z}),v0&&(T.shadows[v0.name]=v0),g.push(...a0)}}R.push(...g)}else{let{arrayInfo:g,fields:O,shadowInfo:Y}=this.createDDEJsonFields(I,i,w,L);g&&(T.arrays[g.name]=g),Y&&(T.shadows[Y.name]=Y),R.push(...O)}R.forEach(g=>{g.index=++T.fieldIndex,T.fields.push(g),T.size+=g.byteSize})}}o.containers[b]=T}return o}getRealContainerInformation(e){let i,o,t;if(this.previousVersion){let B=e.startsWith("timeseries_")?e.substring(11):e,{name:l,direction:D,previousTitle:j}=this.findPreviousUsedContainer(B);i=l,o=D,t=j}if(!i){let B=Object.entries(this.usedContainerNames).find(([,l])=>l===e);B&&(i=B[0])}return i||(i=this.findNextFreeContainer(e)),this.usedContainerNames[i]=e,o||(o=[Er.setting,Er.command].includes(e)?ne.down:ne.up),o===ne.up&&i&&Bs[i].xmits.includes(ne.upPlus)&&(o=ne.upPlus),i&&[Et.configA,Et.configB].includes(i)&&(o=ne.backendOnly),{realContainer:i,transferDirection:o,legacyTitle:t}}findNextFreeContainer(e){if(e===Et.aloha)return Et.aloha;let i=m8;e.startsWith("timeseries_")?i=j8:[Er.relations,Er.storage].includes(e)&&(i=p8);let o=this.previousVersion?.containers;return o&&(i=i.filter(t=>!Object.hasOwn(o,t))),i.find(t=>!Object.hasOwn(this.usedContainerNames,t))}findPreviousUsedContainer(e){let i=this.previousVersion.containers,o=Object.values(i).find(t=>t.title===e);return{name:o?.name,direction:o?.transferDirection,previousTitle:o?.previousTitle}}createDDEJsonFields(e,i,o,t){let B=t.get("array"),l=[],D,j;if(B){D={name:e,library:i||null,length:B};for(let b=0;b<B;b++){let k=`${e.toLowerCase()}[${b}]`;l.push(this.buildDDEJsonField(k,t,{name:e,index:b},o,i,null))}}else{let b=this.buildDDEJsonField(e,t,null,o,i,null);l.push(b);let k=t.get("shadowFields");if(k){j={name:b.name,byteSize:b.byteSize,byteOffset:b.byteOffset};for(let[q,y]of k){let S=q;e.includes(".")&&(S=e.split(".")[0]+`.${q}`),l.push(this.buildDDEJsonField(S,y,null,o,i,b.name))}}}return{arrayInfo:D,shadowInfo:j,fields:l}}buildDDEJsonField(e,i,o,t,B,l){return{id:e.toLowerCase(),name:e,index:0,library:B||null,byteOffset:0,byteSize:t.len||i.get("bytes")||i.get("length"),type:i.get("type"),title:i.get("title")||null,arrayRef:o,shadowRef:l,unit:i.get("unit"),hex:i.get("hex"),decimalPlaces:i.get("decimalPlaces"),writePermission:this.parseUserLevel(i.get("writePermission")),readPermission:this.parseUserLevel(i.get("readPermission")),channelMode:this.parseChannelMode(i.get("channelMode")),defaultValue:i.get("defaultValue"),scale:i.get("scale"),offset:i.get("offset"),chartMinimum:i.get("chartMinimum"),description:i.get("description"),chartMaximum:i.get("chartMaximum"),chartAlarmLow:i.get("chartAlarmLow"),chartAlarmHigh:i.get("chartAlarmHigh"),chartWarningLow:i.get("chartWarningLow"),chartWarningHigh:i.get("chartWarningHigh"),chartHysteresis:i.get("chartHysteresis"),chartTriggerThreshold:i.get("chartTriggerThreshold"),chartTriggerRelation:this.parseTriggerUndershoot(i.get("chartTriggerRelation")),chartSetPoint:i.get("chartSetPoint"),utilsTransferInterval:!!i.get("utilsTransferInterval"),bitmask:i.get("bitmask")}}resolvePossibleAlias(e,i){return(0,vr.isAlias)(i)?i.resolve(e).value:i?.value}validateContainerDefinition(e){let i=[];return e.forEach(o=>{let B=o.key.value;B==="timeseries"?o.value.items.forEach(l=>{l.key.value=`timeseries_${l.key}`,i.push(l)}):["dde","cloudProject","constants"].includes(B)||i.push(o)}),i}parseUserLevel(e){if(e==="read-only")return 99;if(e?.startsWith("UL"))return Number(e.substring(2))}parseChannelMode(e){if(e)return{digital:1,"day-counter":2,"interval-counter":3,analog:6,"infinite-counter":12}[e]??e}parseTriggerUndershoot(e){if(e)return{"greater-or-equal":0,"less-or-equal":1}[e]??e}validateAllowedContainer(e,i,o,t){if(!i.value)return;let l=i.key.value;if(t&&(l.startsWith("aloha")||l.startsWith("timeseries"))){let D=l.includes("_")?l.split("_")[1]:l;this.fileDiagnostics.push({file:e,level:"error",message:`"${D}" not allowed within a library`,...Qx(o,i.key.range)})}if(W.isAnalytics(this.manifest)&&![Er.relations,Er.storage].includes(l)){let D=l.includes("_")?l.split("_")[1]:l;this.fileDiagnostics.push({file:e,level:"error",message:`"${D}" not allowed within an analytics app. Only "relations" and "storage" are allowed.`,...Qx(o,i.key.range)})}}validateContainerFields(e,i,o,t){let B=o.value;if(!B)return;let l=o.key.value;Object.hasOwn(this.fieldNamesPerContainer,l)||(this.fieldNamesPerContainer[l]=[]);let D=this.getContainerOfPreviousVersion(l);B.items.forEach(j=>{let k=j.key.value;this.checkForContainerRelation(j,e,i,t),this.validateFieldName(j,l,i,t),this.checkFieldNameLength(j,l,i,t);let q=D?.fields.find(R=>R.id===k.toLowerCase()),y=j.value,S=y.get("type",!0),T=this.resolvePossibleAlias(e,S),I=y.get("bytes",!0),L=this.resolvePossibleAlias(e,I);q&&(S&&T&&q.type!==T&&this.fileDiagnostics.push({file:i,level:"warning",message:`Field type changed from "${q.type}" to "${T}".
|
|
1651
|
+
public ___${e0}( ${w})${g}`}else if(I=gi.exec(T)){let[,R,e0]=I;S=`${R}${e0}{_log_string="";_assert(__refid,__line);}`}else if(I=mi.exec(T)){let[,R,e0,w,g]=I;S=`${R}${e0}{ if (!(${w})) { sprintf(_log_string,_,${g.replace(/%%/g,"\xFF")});_assert(__refid,__line); }}`}else if(I=hi.exec(T)){let[,R,e0,w]=I;S=`${R}${e0}{ if (!(${w})) { _log_string="";_assert(__refid,__line); }}`}else if(I=yi.exec(T)){let[,R,e0,w]=I;S=`${R}${e0}_catch(__refid,__line,${w});`}else if(I=ki.exec(T)){let[,R,e0,w,g,O]=I,{priority:Y,code:x0}=ui(g,w.substring(1));Y!==null&&(S=`${R}${e0}{new params_str{DDE_APPLOG_SIZE_PARAMS};sprintf(params_str,_,${O});DDE_applog_write(${Y}, ${x0}, params_str, __applog_src_id);}`)}else if(I=_i.exec(T)){let[,R,e0,w,g]=I,{priority:O,code:Y}=ui(g,w.substring(1));O!==null&&(S=`${R}${e0}DDE_applog_write(${O}, ${Y}, "", __applog_src_id);`)}else if(I=wi.exec(T)){let[,R,e0,w,g]=I,O=w.substring(1),Y=$i[O];S=`${R}${e0}{ if(_log_level <= ${Y}){ sprintf(_log_string,_,${g.replace(/%%/g,"\xFF")}); _log${w}(__refid,__line); }}`}else(I=SF.exec(T))&&!B.includes(i0.filePaths.studio.auto.path)?(B.includes(i0.filePaths.studio.libdeps)||t.push({file:i,level:"warning",line:y,message:"Libraries are included automatically - remove this #include line"}),S="// Libraries are included automatically! - "+T):(I=PF.exec(T))&&(t.push({file:i,level:"error",line:y,message:"#endinput is not supported - use #if/#endif instead"}),S=T);l&&!e.legacyProject&&(NF.exec(T)&&(S=S.replaceAll("DDE_",`_${l}`)),IF.exec(T)&&(S=S.replace("onUplink",`_${l}`)),MF.exec(T)&&(S=S.replace("onUplink",`_${l}Uplink`))),j.push(S),q++;for(let R=0;R<L;R++)j.push(""),q++,y++}if(D!=="main.dlo"){let y=D.split(".")[0].replace(/[^a-zA-Z0-9]/g,"_"),S=`_inc_${y}`.substring(0,31),T=`_inc_${y}_inc`.substring(0,31);j.push(`#if defined ${S}`),j.push(`#undef ${S}`),j.push("#endif"),j.push(`#if defined ${T}`),j.push(`#undef ${T}`),j.push("#endif")}return{data:j.join(`
|
|
1652
|
+
`),diagnostics:t}}};var _A=require("vscode-uri");var $0=cx(require("fs")),Y0=require("vscode-uri");var Ni=cx(require("iconv-lite")),GF=m0.convertBlobToStringArray,Ii=16384,Mi=511,rn=Ii|Mi,UF=32768,HF=438,Si=UF|HF,KF=new Ae,re={};function Li(){let A=[];for(let x of Object.keys(re))A.push(...re[x].diagnostics);return A}var at=!!process.env.DLO_PROFILE,KA={precompileCount:0,cacheHits:0,precompileMs:0};function Ri(A){at&&(A.log(`[DLO_PROFILE] precompile: ${KA.precompileCount} runs, ${KA.cacheHits} cache hits, ${KA.precompileMs.toFixed(1)}ms`),KA.precompileCount=0,KA.cacheHits=0,KA.precompileMs=0)}var en=(A,x,r,e)=>{let i={getattr(t){let B=Y0.Utils.joinPath(Y0.URI.parse(t.mount.opts.root),A.getPath(t)),l=B.fsPath;if(!$0.existsSync(l))throw new A.ErrnoError(44);let D=Ti(x,e,r,B),j=$0.statSync(l),b=D?.length||j.size;return{mode:j.isDirectory()?rn:Si,size:b,atime:j.atime,mtime:j.mtime,ctime:j.ctime}},setattr(t,B){let l=Y0.Utils.joinPath(Y0.URI.parse(t.mount.opts.root),A.getPath(t)).fsPath;if(!$0.existsSync(l))throw new A.ErrnoError(44);if(typeof B.size=="number"&&$0.truncateSync(l,B.size),typeof B.mode=="number"&&$0.chmodSync(l,B.mode),B.atime||B.mtime){let D=$0.statSync(l);$0.utimesSync(l,B.atime??D.atime,B.mtime??D.mtime)}},lookup(t,B){let D=Y0.Utils.joinPath(Y0.URI.parse(t.mount.opts.root),A.getPath(t),B).fsPath;if(!$0.existsSync(D))throw new A.ErrnoError(44);let j=$0.statSync(D),b=A.createNode(t,B,j.isDirectory()?rn:Si,0);return b.node_ops=t.node_ops,b.stream_ops=t.stream_ops,b},readdir(t){let B=Y0.Utils.joinPath(Y0.URI.parse(t.mount.opts.root),A.getPath(t)).fsPath;return[".","..",...$0.readdirSync(B)]},mknod(t,B,l,D){let j=Y0.Utils.joinPath(Y0.URI.parse(t.mount.opts.root),A.getPath(t),B).fsPath;$0.writeFileSync(j,"");let b=A.createNode(t,B,l,D);return b.node_ops=t.node_ops,b.stream_ops=t.stream_ops,b},unlink(t,B){let l=Y0.Utils.joinPath(Y0.URI.parse(t.mount.opts.root),A.getPath(t),B).fsPath;$0.unlinkSync(l)},mkdir(t,B,l){let D=Y0.Utils.joinPath(Y0.URI.parse(t.mount.opts.root),A.getPath(t),B).fsPath;$0.mkdirSync(D,{mode:l});let j=A.createNode(t,B,l|rn,0);return j.node_ops=t.node_ops,j.stream_ops=t.stream_ops,j},rmdir(t,B){let l=Y0.Utils.joinPath(Y0.URI.parse(t.mount.opts.root),A.getPath(t),B).fsPath;$0.rmdirSync(l)},rename(t,B,l){let D=Y0.Utils.joinPath(Y0.URI.parse(t.mount.opts.root),A.getPath(t)).fsPath,j=Y0.Utils.joinPath(Y0.URI.parse(B.mount.opts.root),A.getPath(B),l).fsPath;$0.renameSync(D,j)}},o={open(t){let B=Y0.Utils.joinPath(Y0.URI.parse(t.node.mount.opts.root),A.getPath(t.node));t.modifiedContent=Ti(x,e,r,B),t.modifiedContent||(t.nfd=$0.openSync(B.fsPath,Pi(t.flags)))},close(t){t.nfd&&$0.closeSync(t.nfd)},read(t,B,l,D,j){if(!t.modifiedContent)return $0.readSync(t.nfd,B,l,D,j);let b=t.modifiedContent;if(j>=b.length)return 0;let k=b.length-j,q=Math.min(D,k);return zF(b,B,l,j,j+q),q},write(t,B,l,D,j){return $0.writeSync(t.nfd,B,l,D,j)},flagsToMode:Pi,llseek(t,B,l){let D=B;if(l===1)D+=t.position;else if(l===2){let j=$0.fstatSync(t.nfd);D+=j.size}if(D<0)throw new A.ErrnoError(28);return t.position=D,D}};return{mount(){let t=zA(x),B=A.createNode(null,t,Ii|Mi,0);return B.node_ops=i,B.stream_ops=o,B},node_ops:i,stream_ops:o}};function Pi(A){let x=A&2097155;if(x===0)return"r";if(x===1)return"r+";if(x===65)return"w";if(x===577)return"w+";if(x===1089)return"a";if(x===1217)return"a+";throw new Error(`Unknown file open flags: ${A}`)}function zF(A,x,r,e,i){if(Buffer.isBuffer(A)&&Buffer.isBuffer(x))A.copy(x,r,e,i);else{let o=A.subarray(e,i);Buffer.isBuffer(x)?Uint8Array.prototype.set.call(x,o,r):x.set(o,r)}}function Ti(A,x,r,e){let i=e.fsPath;if(!i.endsWith(".dlo")&&!i.endsWith(".inc"))return;let o=JF(i);if(!o){delete re[i];return}let t=re[i];if(t&&t.mtimeMs===o.mtimeMs&&t.size===o.size)return at&&KA.cacheHits++,t.buffer;let B=at?performance.now():0,l=VF(A,x,r,e);return at&&(KA.precompileCount++,KA.precompileMs+=performance.now()-B),re[i]={buffer:l.buffer,mtimeMs:o.mtimeMs,size:o.size,diagnostics:l.diagnostics},re[i].buffer}function JF(A){try{return $0.statSync(A)}catch{return null}}function VF(A,x,r,e){let i=$0.readFileSync(e.fsPath),o=GF(i),t=KF.preCompileDloFile(A,x,r,e,o);return{buffer:Ni.encode(t.data,"cp1252"),diagnostics:t.diagnostics}}function zA(A){return A.fsPath.replace(/\\/g,"/")}function qe(A,x){let r=zA(A);return zA(x).replace(r,"")}var Vi=Ji(),Pe=Vi.createPawnCC,Wi=Vi.createPawnDbg;var ee=class{constructor(x,r,e){this.cwd=x;this.fs=r;this.logger=e;this.dloCC=null}cwd;fs;logger;dloCC;stdout=[];stderr=[];async initDloCC(x=!1){this.stdout.length=0,this.stderr.length=0,this.dloCC=await Pe({noExitRuntime:x,print:t=>{let B=tn(this.cwd,t);this.logger.log(B?B.message:t),this.stdout.push(t)},printErr:t=>{let B=tn(this.cwd,t);t.includes(": warning")?this.logger.warn(B?B.message:t):this.logger.error(B?B.message:t),this.stderr.push(t),this.stdout.push(t)}});let r=zA(this.cwd),[e]=r.split("/"),i=this.dloCC.FS,o=await W.read(this.cwd,this.fs);i.filesystems.NODEFS_TS=en(i,this.cwd,o,this.logger),i.mkdir(e),i.mount(i.filesystems.NODEFS_TS,{root:"/"},e),i.chdir(zA(this.cwd))}async compile(x,r){let e=await W.read(x,r);if(!await W.isApmPartEnabled(x,r,d0.Part.dlo,e))return this.logger.log("DLO not enabled. Skipped."),{code:0,stdout:[],stderr:[],diagnostics:[]};await this.initDloCC(),await r.mkdir(_A.Utils.joinPath(x,"dist/dlo"));let i=_A.Utils.joinPath(x,e.dlo?.mainFile||i0.filePaths.dlo.mainDLO),o=[],t=_A.Utils.joinPath(x,i0.filePaths.studio.auto.dlo.cfg),B=qe(x,t);o.push(`-T.${B}`);let l=0;try{let D=`.${qe(x,i)}`;l=await this.dloCC.callMain([D,...o])}catch(D){this.logger.error(D)}return{code:l,stdout:this.stdout,stderr:this.stderr,diagnostics:[...Li(),...nn(x,this.stderr,i)]}}async getDloSymbols(x,r){let e=r.map(j=>{let b=j.substring(0,2);return["-D","-e","-i","-o","-p","-r","-T"].includes(b)?`${b}.${j.substring(2)}`:j}),i=!!process.env.DLO_PROFILE,o=i?performance.now():0,{compiler:t,print:B}=await this.getSymbolCompiler(),l=i?performance.now()-o:0,D=i?performance.now():0;try{if(await t.callMain(["."+x,...e,"-R"]))return null}catch(j){if(j.stack?.startsWith("RuntimeError"))return null;throw j}finally{if(i){let j=performance.now()-D;this.logger.log(`[DLO_PROFILE] instantiate: ${l.toFixed(1)}ms, callMain: ${j.toFixed(1)}ms`),Ri(this.logger)}}return[...B.stdout,...B.stderr]}async getSymbolCompiler(){let x={stdout:[],stderr:[]},r=await Pe({noExitRuntime:!1,print:B=>{x.stdout.push(B)},printErr:B=>{x.stderr.push(B)}}),e=zA(this.cwd),[i]=e.split("/"),o=r.FS,t=await W.read(this.cwd,this.fs);return o.filesystems.NODEFS_TS=en(o,this.cwd,t,this.logger),o.mkdir(i),o.mount(o.filesystems.NODEFS_TS,{root:"/"},i),{compiler:r,print:x}}};function nn(A,x,r){let e=[],i=x.filter(o=>!!o.trim());for(let o of i){if((o.includes("Assertion failed:")||o.includes("Compilation aborted."))&&r){e.push({file:r,level:"error",line:0,message:o});continue}let t=tn(A,o);t&&e.push({file:_A.URI.parse(`file:///${t?.posixPath}`),level:t.level,line:Number(t.lineNumber)-1,message:t.msg})}return e}function tn(A,x){let r=x.indexOf(" : "),e=x.indexOf(": ",r+3),i=x.substring(0,r).trim(),o=x.substring(r+3,e).trim(),t=x.substring(e+2).trim();if(!i||!o||!t)return null;let[B,l]=i.split(/[()(-)]/),D=o.split(" "),j=D[D.length-2],k=_A.Utils.joinPath(A,B).fsPath.replace(/\\/g,"/");k.startsWith("/")&&(k=k.substring(1));let q=x.replace(B,k);return{level:j,msg:t,posixPath:k,lineNumber:l,message:q}}async function Xi(A,x,r){let e=["-M","-v2"],i=_A.Utils.joinPath(A,i0.filePaths.studio.auto.dlo.defaultInc);e.push(`-p.${qe(A,i)}`);let o=await ex.getApmPartDependencies(A,x,d0.Part.dlo);for(let B of o){let l=_A.Utils.dirname(B.path);e.push(`-i.${qe(A,l)}`)}let t=r.dlo;return t&&e.push(...t.compileOptions),e.push("-o./dist/dlo/main.amx"),{path:_A.Utils.joinPath(A,i0.filePaths.studio.auto.dlo.cfg),data:e.join(`
|
|
1653
|
+
`)}}var ot;(l=>{l.createPawnCC=Pe,l.createPawnDbg=Wi,l.FileSequencer=xe,l.PreCompiler=Ae,l.Compiler=ee,l.uriToMemFs=zA,l.parseCompilerWarningsAndErrors=nn;async function B(D,j,b){let k=await W.read(D,j),q=await Xi(D,j,k);await j.writeFile(q.path,q.data),b.log("Generated",i0.filePaths.studio.auto.dlo.cfg)}l.exportDloConfig=B})(ot||={});var Qi=require("vscode-uri");var an=require("minimatch");var Zi=require("@gera2ld/tarjs"),o8=m0.convertBlobToString,F8=require("pako"),xs=".studioignore",As=[".vscodeignore","package-lock.json","npm-debug.log","yarn.lock","yarn-error.log","npm-shrinkwrap.json",".editorconfig",".npmrc",".yarnrc",".gitattributes","*.todo","tslint.yaml",".eslintrc*",".babelrc*",".prettierrc*",".cz-config.js",".commitlintrc*","webpack.config.js","ISSUE_TEMPLATE.md","CONTRIBUTING.md","PULL_REQUEST_TEMPLATE.md","CODE_OF_CONDUCT.md",".github",".travis.yml","appveyor.yml","**/.git","**/.git/**","**/*.vsix","**/.DS_Store","**/*.vsixmanifest","**/.vscode-test/**","**/.vscode-test-web/**"];As.push("**/.studio/**","**/node_modules/**",xs,"dist/defines.app.ts");var Yi={dot:!0},te;(e=>{async function A(i,o){let t=new Zi.TarWriter;(await x(i,o)).forEach(D=>{t.addFile(D.name,D.data)});let l=await t.write();return F8.gzip(await l.arrayBuffer())}e.createArchive=A;async function x(i,o){let t=[],{ignore:B,negate:l}=await v8(i,o),j=(await o.findFiles(i,"**/*")).filter(({path:b})=>{let k=b.slice(i.path.length+1);return!B.some(q=>(0,an.minimatch)(k,q,Yi))||l.some(q=>(0,an.minimatch)(k,q.slice(1),Yi))});for(let b of j){let k=b.path.slice(i.path.length+1),[q,y]=await Promise.all([o.stat(b),o.readFile(b)]);q&&t.push({name:k,data:y,modifyTime:new Date(q.mtime)})}return t}e.getFilesForArchive=x;async function r(i,o,t,B=ix.ENV.production){let{publisher:l,name:D,version:j}=o,b=await px.readFilesFromTarGz(t,["CHANGELOG.md","README.md","studio.json"]),k={"CHANGELOG.md":await sn(b["CHANGELOG.md"]),"README.md":await sn(b["README.md"]),"studio.json":await sn(b["studio.json"]),"library.tar.gz":t};return await xx.publishLibraryVersion(i,l,D,j,k,B)}e.publishPackage=r})(te||={});async function v8(A,x){let r=["!studio.json","!README.md"],i=(await E8(A,x)).split(/[\n\r]/).map(D=>D.trim()).filter(D=>!!D).filter(D=>!/^\s*#/.test(D)),o=[...i,...i.filter(D=>!/(^|\/)[^/]*\*[^/]*$/.test(D)).map(D=>/\/$/.test(D)?`${D}**`:`${D}/**`)],t=[...As,...o,...r],[B,l]=t.reduce((D,j)=>/^\s*!/.test(j)?[D[0],[...D[1],j]]:[[...D[0],j],D[1]],[[],[]]);return{ignore:B,negate:l}}async function E8(A,x){let r=Qi.Utils.joinPath(A,xs);if(await x.stat(r)){let i=await x.readFile(r);return o8(i)}else return""}async function sn(A){return new Uint8Array(await A.arrayBuffer())}var wA=require("vscode-uri");var Fr=require("yaml");var B8=m0.convertBlobToString,Ft=m0.yamlRangeToLineInformation,vt;(t=>{let A;(j=>(j.static="static",j.dynamic="dynamic",j.appDynamic="app-dynamic"))(A=t.Type||={});let x;(b=>(b.crcStamp="crc_stamp",b.stampOnly="stamp_only",b.onlyDown="only_down",b.onlyUp="only_up"))(x=t.SyncLogic||={});let r;(j=>(j.down="down",j.up="up",j.off="off"))(r=t.Force||={});async function e(B,l,D){let{properties:j,diagnostics:b,libraryFiles:k}=await i(B,l),q=wA.Utils.joinPath(B,i0.filePaths.dist.dfilesPath);await l.stat(q)&&await l.rm(q);for(let[y,S]of Object.entries(j))await C8(B,l,y,S,k);return Object.keys(j).length&&(D.done(`${Object.keys(j).length} dfiles processed.`),await l.writeFile(wA.Utils.joinPath(B,i0.filePaths.dist.dfilesProperties),JSON.stringify(j,null," "))),b}t.process=e;async function i(B,l){let D=[],j={},b=await ex.getApmPartDependencies(B,l,d0.Part.dfiles);for(let y of b){let{properties:S,diagnostics:T}=await o(l,y.path,y.name);Object.assign(j,S),D.push(...T)}let{properties:k,diagnostics:q}=await o(l,wA.Utils.joinPath(B,i0.filePaths.dfiles.mainDFILES),null);return Object.assign(j,k),D.push(...q),{properties:j,diagnostics:D,libraryFiles:b}}t.parseDfile=i;async function o(B,l,D){let j=[],b={};if(!await B.stat(l))return{properties:b,diagnostics:j};let k=await B.readFile(l),q=B8(k),y=new Fr.LineCounter,T=(0,Fr.parseDocument)(q,{lineCounter:y}).contents||new Fr.YAMLMap;for(let I of T.items){let L=I.key.value,R=(0,Fr.isMap)(I.value)?I.value:null,e0=Ft(y,I.key.range),w=R?R.has("syncMode"):!1,g=w?R.get("syncMode"):"crc_stamp";if(w){let Z=Object.values(t.SyncLogic);if(!Z.includes(g)){let r0=R.items.find(K=>K.key.value==="syncMode"),n0=Ft(y,r0.key.range);j.push({file:l,code:"",message:`Property syncMode does not match any of "${Z.join(", ")}"`,line:n0.line,startCharacter:n0.startCharacter,endCharacter:n0.endCharacter,level:"error"})}}else j.push({file:l,code:"",message:'Property "syncMode" missing',line:e0.line,startCharacter:e0.startCharacter,endCharacter:e0.endCharacter,level:"error"});let O=R?R.has("type"):!1,Y=O?R.get("type"):"static";if(O){let Z=Object.values(t.Type);if(!Z.includes(Y)){let r0=R.items.find(K=>K.key.value==="type"),n0=Ft(y,r0.key.range);j.push({file:l,code:"",message:`Property type does not match any of "${Z.join(", ")}"`,line:n0.line,startCharacter:n0.startCharacter,endCharacter:n0.endCharacter,level:"error"})}}L.match(/^[a-z0-9._-]*$/)||j.push({file:l,code:"",message:'Filename does not match pattern "a-z0-9._-"',line:e0.line,startCharacter:e0.startCharacter,endCharacter:e0.endCharacter,level:"error"});let x0=wA.Utils.joinPath(wA.Utils.dirname(l),L),H=await f8(B,x0);if(H)b[L]={crc:H.crc,force:"off",readable:!1,size:H.size,stamp:H.stamp,sync_logic:g,type:Y,library:D};else{let Z=Ft(y,I.key.range);j.push({file:l,code:"",message:`Could not find file "${L}"`,line:Z.line,startCharacter:Z.startCharacter,endCharacter:Z.endCharacter,level:"error"})}}return{properties:b,diagnostics:j}}t.parseYamlFile=o})(vt||={});async function f8(A,x){let r=await A.stat(x);if(!r)return null;let e=await A.readFile(x);return{size:r.size,stamp:Math.trunc(r.ctime),crc:m0.generateCRC32ForFileContent(e)}}async function C8(A,x,r,e,i){let t=e.library!==null?wA.Utils.dirname(i.find(D=>D.name===e.library).path):wA.Utils.joinPath(A,i0.filePaths.dfiles.path),B=wA.Utils.joinPath(A,i0.filePaths.dist.dfilesPath,r),l=wA.Utils.joinPath(t,r);await x.copy(l,B)}var rs=cx(require("dotenv")),es=require("vscode-uri");var l8=".env.local",ts;(x=>{async function A(r,e){let i=es.Utils.joinPath(r,l8);if(await e.stat(i)){let o=await e.readFile(i);return rs.default.parse(m0.convertBlobToString(o))}return{}}x.read=A})(ts||={});var Te=cx(require("chalk")),Et;(e=>{let A;(D=>(D[D.log=0]="log",D[D.done=1]="done",D[D.info=2]="info",D[D.warning=3]="warning",D[D.error=4]="error"))(A=e.LogMessageType||={}),e.LOG_PREFIX={1:Te.default.bgGreen.black(" DONE "),0:"",2:Te.default.bgBlueBright.black(" INFO "),3:Te.default.bgYellow.black(" WARNING "),4:Te.default.bgRed.black(" ERROR ")};class r{_logHandler;_silent=!1;constructor(o=console){this._logHandler=o}_log(o,t,...B){this._silent&&o!==4||(B=[e.LOG_PREFIX[o],t,...B],this._logHandler.log(...B))}set silent(o){this._silent=o}log(o,...t){this._log(0,o,...t)}debug(o,...t){this._log(0,o,...t)}error(o,...t){this._log(4,o,...t)}info(o,...t){this._log(2,o,...t)}warn(o,...t){this._log(3,o,...t)}done(o,...t){this._log(1,o,...t)}}e.Logger=r})(Et||={});var ns=require("uuid"),c8="b4baec47-0ba4-4e37-b237-8f9cde42b8dd";var Ne=class{domain;auth;logger;userInfo=null;constructor(x,r,e){if(typeof x=="object"){let{serverUrl:i,apiToken:o,authHeader:t,logger:B}=x;this.domain=this.normalizeServerUrl(i),this.auth=t||(o?`Bearer ${o}`:""),this.logger=B}else this.domain=this.normalizeServerUrl(x),typeof r=="string"?(this.auth=`Bearer ${r}`,this.logger=e):(this.auth="",this.logger=r)}setAuth(x){this.auth=x}getDomain(){return this.domain}normalizeServerUrl(x){return!x.startsWith("http://")&&!x.startsWith("https://")?`https://${x}`:x}trimDomain(x){return x.replace(/(^\w+:|^)\/\//,"")}async fetchJSON(x,r,e){let i=`${this.domain}${r}`,o={Authorization:this.auth},t={method:x,headers:o};e&&(e instanceof FormData?t.body=e:(o["Content-Type"]="application/json",t.body=JSON.stringify(e)));let B=await fetch(i,t);if(!B.ok){let l=await B.text().catch(()=>"Unknown error");throw new Error(`HTTP ${B.status}: ${l}`)}return B.json()}async authenticate(){this.logger?.info(`Authenticating with ${this.trimDomain(this.domain)}...`);try{let{user:x,customers:r}=await this.fetchJSON("GET","/api/1/me");return this.userInfo={name:x.name,email:x.email,group:x.group,customers:r},this.logger?.info(`Authenticated as ${this.userInfo.name}`),this.userInfo}catch(x){throw new Error(`Authentication failed: ${x instanceof Error?x.message:String(x)}`)}}getUserInfo(){return this.userInfo}async uploadDevTag(x,r){this.logger?.info(`Uploading development tag ${x}...`);let{applid:e}=await this.fetchJSON("POST",`/api/1/app-center/__dev/${x}`,r);return this.logger?.info(`Development tag uploaded, application ID: ${e}`),e}async getCustomer(x){let{_uid:r,name:e}=await this.fetchJSON("GET",`/api/1/customers/${x}`);return{_uid:r,name:e}}async getCustomers(){return this.fetchJSON("GET","/api/1/customers")}async getDeviceSite(x){try{return await this.fetchJSON("GET",`/api/1/devices/${x}/site`)}catch{return null}}async getDevice(x){try{return await this.fetchJSON("GET",`/api/1/devices/${x}`)}catch{return null}}async getSite(x,r){try{return await this.fetchJSON("GET",`/api/1/customers/${x}/sites/${r}`)}catch{return null}}async createDevelopmentSite(x,r,e){if(this.logger?.info(`Creating development site "${r.name}"...`),r.serialNumber){let o=await this.getSite(x,r.name.toLowerCase());if(o)try{return await this.fetchJSON("POST",`/api/1/customers/${x}/sites/${o._uid}/cn-attach-device`,{device_id:r.serialNumber,allow_overwrite:!0,detach_from_old_site:!0,acquire:!0,create:!0}),this.logger?.info(`Device attached to existing site ${o._uid}`),o._uid}catch(t){if(t.message&&!t.message.includes("304"))this.logger?.warn(`Could not attach device to existing site: ${t.message}`);else return o._uid}}let{_uid:i}=await this.fetchJSON("POST",`/api/1/customers/${x}/sites`,{name:r.name,create:!0,force:!0,note:"This is a Studio development site",applid:r.applicationId,device_id:r.serialNumber,reg_code:e,servicetariff:"0000000000000000",servicetariff_indiv_cost:0});return this.logger?.info(`Development site created: ${i}`),i}async updateSiteName(x,r){try{await this.fetchJSON("PUT",`/api/1/sites/${x}`,{name:r})}catch{}}};function is(A){return(0,ns.v5)(A,c8)}async function on(A,x,r,e,i,o,t){let B=await W.read(A,x),l=i.replaceAll(" ","_").replace(/[^a-zA-Z0-9-]+/g,""),D=B.name.replaceAll(" ","_").replace(/[^a-zA-Z0-9-]+/g,""),j=await W.isApmPartEnabled(A,x,d0.Part.dlo,B),b=j&&e,k=b?e.toUpperCase():`${D}_${l}`,q=b?e:k,y=t||k;return y.length>50&&(r.warn(`Site name "${y}" is too long. Truncating to 50 characters.`),y=y.substring(0,50)),{apmId:is(q),applicationId:null,name:y,version:1,serialNumber:j?e:void 0,siteUid:null,customerUid:o}}async function ss(A,x,r,e,i,o,t=!1){if(o.length>0)for(let B of o){let[l,D]=B.split("@");await ex.installDependency(A,x,r,e,i,l,D||null,t)}else await ex.installDependencies(A,x,r,e,i);await ex.installNpmInApmParts(A,x,r)}async function as(A,x,r,e,i=null,o=!0,t){return await W.validateBasicManifest(A,x,null),px.buildAll(A,x,r,e,i,o,t)}async function D8(A){let x=null;if(A){x=A==="*"?A:A.split(";");let r=await W.validateRegistryAllowedBackends(x);if(r)throw new Error(r)}return x}async function os(A,x,r,e,i,o,t,B){r.info("Publishing package...");let l=await D8(o);if(B)await px.publishArchive(A,x,r,i,e,B,t,l);else return await px.validatePublishSettings(A,x,i,e),px.release(A,x,r,e,i,t,l)}async function Fs(A,x,r,e,i,o){return px.pack(A,x,r,e,i,o)}var Er=L0.DDEContainerName,vs=L0.allowedRelationTypes,d8=L0.regexRelation,u8=L0.ContainerType,b8=L0.checkForReservedFieldName,Bt=L0.ContainerName,Es=L0.CONTAINER_DEFS,p8=L0.SERVER_CONTAINER,j8=L0.HISTDATA_CONTAINER,m8=L0.CONFIG_CONTAINER,ne=L0.TransferDirection,Bs=L0.fieldTypeDefinitions,Qx=m0.yamlRangeToLineInformation,ft;(x=>{class A{constructor(e,i,o){this.manifest=e;this.libraryFiles=i;this.ddeHistory=o}manifest;libraryFiles;ddeHistory;fieldNamesPerContainer={};usedContainerNames={};fileDiagnostics=[];libraryDDE=[];libraryYaml={};parseLibraries(){this.libraryDDE.length=0;let e=[];return this.libraryFiles.forEach(i=>{let{parsedDDE:o,diagnostics:t,parsedYaml:B}=this.parseYamlFile(i.path,i.yaml,i.libraryName);e.push(...t),this.libraryDDE.push(o),this.libraryYaml[i.libraryName]=B}),e}get previousVersion(){return{setPointList:{...this.ddeHistory?.setPointList},containers:{...this.ddeHistory?.containers}}}getContainerOfPreviousVersion(e){let i=this.previousVersion,o=e.startsWith("timeseries_")?e.substring(11):e;return Object.values(i.containers).find(t=>t.title===o)||null}parseMainDDE(e,i){let{parsedDDE:o,diagnostics:t}=this.parseYamlFile(e,i);return t.find(D=>D.level==="error")?{ddeJSON:null,diagnostics:t}:{ddeJSON:this.mergeAndFormat(o),diagnostics:t}}parseYamlFile(e,i,o){this.fileDiagnostics.length=0;let t=new vr.LineCounter,B=(0,vr.parseDocument)(i,{lineCounter:t});if(!B.contents)return{parsedDDE:{containers:{},setPointList:{}},diagnostics:[],parsedYaml:null};let l=B.contents||new vr.YAMLMap;return this.validateContainerDefinition(l.items).forEach(j=>{this.validateAllowedContainer(e,j,t,o),this.validateContainerFields(B,e,j,t)}),{parsedDDE:this.yamlDocToDdeJson(B.toJS({mapAsMap:!0}),o),diagnostics:[...this.fileDiagnostics],parsedYaml:B}}yamlDocToDdeJson(e,i){let o={containers:{},setPointList:{}},t=new Map,B=[...Object.values(Er)];if(e.get("cloudProject")){let D=Object.values(this.previousVersion.containers).map(b=>b.title),j=[...new Set([...B,...D])];B.length=0,B.push(...j)}for(let D of B)e.has(D)&&t.set(D,e.get(D));let l=e.get("timeseries");if(l)for(let[D,j]of l)t.set(D,j);for(let[D,j]of t){let{realContainer:b,transferDirection:k,legacyTitle:q}=this.getRealContainerInformation(D);if(!b)continue;let y=Es[b],S=D.includes("timeseries_")?D.replace("timeseries_",""):D,T={name:b,title:S,previousTitle:q,containerType:y.ctype,volatile:D===Er.volatile,transferDirection:k,fieldCount:j.size,knownNames:[],libraries:[],arrays:{},shadows:{},fields:[],size:0,fieldIndex:0};i&&T.libraries.push(i);for(let[I,L]of j){let R=[],e0=L.get("type"),w=Bs[e0];if(!(!w&&e0!=="array")){if(e0==="array"){let g=[],O=L.get("length"),Y=L.get("fields"),x0={name:I,length:O,library:i||null,fields:[]};T.arrays[I]=x0;for(let H=0;H<O;H++){let Z={name:I,index:H};for(let[r0,n0]of Y){let K=Bs[n0.get("type")];if(!K)continue;x0.fields?.find(D0=>D0.name===r0)||x0.fields.push({name:r0,type:n0.get("type"),byteSize:K.len||n0.get("bytes")||n0.get("length")});let U=`${I}[${H}].${r0}`,{fields:a0,shadowInfo:v0}=this.createDDEJsonFields(U,i,K,n0);a0.forEach(D0=>{D0.arrayRef=Z}),v0&&(T.shadows[v0.name]=v0),g.push(...a0)}}R.push(...g)}else{let{arrayInfo:g,fields:O,shadowInfo:Y}=this.createDDEJsonFields(I,i,w,L);g&&(T.arrays[g.name]=g),Y&&(T.shadows[Y.name]=Y),R.push(...O)}R.forEach(g=>{g.index=++T.fieldIndex,T.fields.push(g),T.size+=g.byteSize})}}o.containers[b]=T}return o}getRealContainerInformation(e){let i,o,t;if(this.previousVersion){let B=e.startsWith("timeseries_")?e.substring(11):e,{name:l,direction:D,previousTitle:j}=this.findPreviousUsedContainer(B);i=l,o=D,t=j}if(!i){let B=Object.entries(this.usedContainerNames).find(([,l])=>l===e);B&&(i=B[0])}return i||(i=this.findNextFreeContainer(e)),this.usedContainerNames[i]=e,o||(o=[Er.setting,Er.command].includes(e)?ne.down:ne.up),o===ne.up&&i&&Es[i].xmits.includes(ne.upPlus)&&(o=ne.upPlus),i&&[Bt.configA,Bt.configB].includes(i)&&(o=ne.backendOnly),{realContainer:i,transferDirection:o,legacyTitle:t}}findNextFreeContainer(e){if(e===Bt.aloha)return Bt.aloha;let i=m8;e.startsWith("timeseries_")?i=j8:[Er.relations,Er.storage].includes(e)&&(i=p8);let o=this.previousVersion?.containers;return o&&(i=i.filter(t=>!Object.hasOwn(o,t))),i.find(t=>!Object.hasOwn(this.usedContainerNames,t))}findPreviousUsedContainer(e){let i=this.previousVersion.containers,o=Object.values(i).find(t=>t.title===e);return{name:o?.name,direction:o?.transferDirection,previousTitle:o?.previousTitle}}createDDEJsonFields(e,i,o,t){let B=t.get("array"),l=[],D,j;if(B){D={name:e,library:i||null,length:B};for(let b=0;b<B;b++){let k=`${e.toLowerCase()}[${b}]`;l.push(this.buildDDEJsonField(k,t,{name:e,index:b},o,i,null))}}else{let b=this.buildDDEJsonField(e,t,null,o,i,null);l.push(b);let k=t.get("shadowFields");if(k){j={name:b.name,byteSize:b.byteSize,byteOffset:b.byteOffset};for(let[q,y]of k){let S=q;e.includes(".")&&(S=e.split(".")[0]+`.${q}`),l.push(this.buildDDEJsonField(S,y,null,o,i,b.name))}}}return{arrayInfo:D,shadowInfo:j,fields:l}}buildDDEJsonField(e,i,o,t,B,l){return{id:e.toLowerCase(),name:e,index:0,library:B||null,byteOffset:0,byteSize:t.len||i.get("bytes")||i.get("length"),type:i.get("type"),title:i.get("title")||null,arrayRef:o,shadowRef:l,unit:i.get("unit"),hex:i.get("hex"),decimalPlaces:i.get("decimalPlaces"),writePermission:this.parseUserLevel(i.get("writePermission")),readPermission:this.parseUserLevel(i.get("readPermission")),channelMode:this.parseChannelMode(i.get("channelMode")),defaultValue:i.get("defaultValue"),scale:i.get("scale"),offset:i.get("offset"),chartMinimum:i.get("chartMinimum"),description:i.get("description"),chartMaximum:i.get("chartMaximum"),chartAlarmLow:i.get("chartAlarmLow"),chartAlarmHigh:i.get("chartAlarmHigh"),chartWarningLow:i.get("chartWarningLow"),chartWarningHigh:i.get("chartWarningHigh"),chartHysteresis:i.get("chartHysteresis"),chartTriggerThreshold:i.get("chartTriggerThreshold"),chartTriggerRelation:this.parseTriggerUndershoot(i.get("chartTriggerRelation")),chartSetPoint:i.get("chartSetPoint"),utilsTransferInterval:!!i.get("utilsTransferInterval"),bitmask:i.get("bitmask")}}resolvePossibleAlias(e,i){return(0,vr.isAlias)(i)?i.resolve(e).value:i?.value}validateContainerDefinition(e){let i=[];return e.forEach(o=>{let B=o.key.value;B==="timeseries"?o.value.items.forEach(l=>{l.key.value=`timeseries_${l.key}`,i.push(l)}):["dde","cloudProject","constants"].includes(B)||i.push(o)}),i}parseUserLevel(e){if(e==="read-only")return 99;if(e?.startsWith("UL"))return Number(e.substring(2))}parseChannelMode(e){if(e)return{digital:1,"day-counter":2,"interval-counter":3,analog:6,"infinite-counter":12}[e]??e}parseTriggerUndershoot(e){if(e)return{"greater-or-equal":0,"less-or-equal":1}[e]??e}validateAllowedContainer(e,i,o,t){if(!i.value)return;let l=i.key.value;if(t&&(l.startsWith("aloha")||l.startsWith("timeseries"))){let D=l.includes("_")?l.split("_")[1]:l;this.fileDiagnostics.push({file:e,level:"error",message:`"${D}" not allowed within a library`,...Qx(o,i.key.range)})}if(W.isAnalytics(this.manifest)&&![Er.relations,Er.storage].includes(l)){let D=l.includes("_")?l.split("_")[1]:l;this.fileDiagnostics.push({file:e,level:"error",message:`"${D}" not allowed within an analytics app. Only "relations" and "storage" are allowed.`,...Qx(o,i.key.range)})}}validateContainerFields(e,i,o,t){let B=o.value;if(!B)return;let l=o.key.value;Object.hasOwn(this.fieldNamesPerContainer,l)||(this.fieldNamesPerContainer[l]=[]);let D=this.getContainerOfPreviousVersion(l);B.items.forEach(j=>{let k=j.key.value;this.checkForContainerRelation(j,e,i,t),this.validateFieldName(j,l,i,t),this.checkFieldNameLength(j,l,i,t);let q=D?.fields.find(R=>R.id===k.toLowerCase()),y=j.value,S=y.get("type",!0),T=this.resolvePossibleAlias(e,S),I=y.get("bytes",!0),L=this.resolvePossibleAlias(e,I);q&&(S&&T&&q.type!==T&&this.fileDiagnostics.push({file:i,level:"warning",message:`Field type changed from "${q.type}" to "${T}".
|
|
1654
1654
|
Changing the type of an existing field can result in data loss or unexpected behaviour.`,...Qx(t,S.range)}),I&&L&&q.byteSize!==L&&this.fileDiagnostics.push({file:i,level:"warning",message:`Byte size changed from '${q.byteSize}' to '${L}'.
|
|
1655
|
-
Changing the size of an existing field can result in data loss or unexpected behaviour.`,...Qx(t,I.range)}))})}checkForContainerRelation(e,i,o,t){let B=e.value.get("fields");B&&B.items.forEach(D=>{this.checkForContainerRelation(D,i,o,t)}),e.value.items.forEach(D=>{let j=D.value;if(j?.value&&d8.exec(`${j.value}`)){let b=D.key.value;if(b){if(!Object.hasOwn(
|
|
1656
|
-
`)}function k8(A){let x=structuredClone(A),r=A.arrayRef?.index;if(r===void 0)return x;for(let[e,i]of Object.entries(x))x[e]=m0.patchValueWithArrayInfo(i,r);return x}var $A=cx(require("semver"));var vA=cx(require("semver"));var Bn=require("vscode-uri");var jx=L0.ContainerType,N0=L0.TransferDirection,Ie=L0.regexRelation,_8=L0.CONFIG_CONTAINER,En=L0.CONTAINER_DEF_DLO_CID_BASE,Le=L0.CONTAINER_DEFS,
|
|
1657
|
-
`);if(j.length===1)A(`/** ${j[0]} */`);else{A("/**");for(let b of j)A(` * ${b}`);A(" */")}}let D=Object.hasOwn(i,B);r(t,`${B}`,D)}}function N8(A,x,r,e){let i=parseInt(A.substring(6)),o=1<<i;r[i]=x.size,e.cx_isupm|=[N0.both,N0.none,N0.deviceOnly,N0.up,N0.upPlus].includes(x.transferDirection)?o:0,e.cx_isvolatilem|=x.volatile?o:0,e.cx_isdnm|=[N0.both,N0.none,N0.deviceOnly,N0.down,N0.downPlus].includes(x.transferDirection)?o:0,e.cx_isvlm|=[N0.bothPlus,N0.upPlus,N0.downPlus].includes(x.transferDirection)?o:0}function I8(A,x,r,e){let i=parseInt(A.substring(8));r[i]=x.size,e.hx_isvlm|=[N0.upPlus].includes(x.transferDirection)?1<<i:0}function M8(A){return[N0.upPlus].includes(A.transferDirection)}function L8(A,x,r){let e=0,i=Array(10).fill(0),o={cx_isupm:0,cx_isvolatilem:0,cx_isdnm:0,cx_isvlm:0},t=0,B=Array(10).fill(0),l={hx_isvlm:0},D;for(let[b,k]of Object.entries(r.containers))k.containerType===jx.cx&&k.transferDirection!==N0.backendOnly?(N8(b,k,i,o),e=Math.max(e,k.size)):k.containerType===jx.hx?(I8(b,k,B,l),e=Math.max(e,k.size)):k.containerType===jx.aloha&&(D=M8(k),e=Math.max(e,k.size));x("DDE CORE"),A(`#define _DDE_BUF_BYTES (${e}+10)`),A(""),A("// c0 c1 c2 c3 c4 c5 c6 c7 c8 c9"),A(`stock _DDE_CONFIGS_size[] =[ ${i.join(", ")}];`),A(`#define _DDE_CONFIGS_upm 0b${o.cx_isupm.toString(2)} // ..is tolerant when reading back container with under-length`),A(`#define _DDE_CONFIGS_volatilem 0b${o.cx_isvolatilem.toString(2)} // inits container as volatile`),A(`#define _DDE_CONFIGS_downm 0b${o.cx_isdnm.toString(2)} // reading the container expects strict length`),A(`#define _DDE_CONFIGS_varlenm 0b${o.cx_isvlm.toString(2)} // allow partial write (dde_wxxx)`),A(`#define _DDE_CONFIGS_rdef 0b${t.toString(2)} // ..apply defaults reading a container with under-length`),A(""),A("// h0 h1 h2 h3 h4 h5 h6 h7 h8 h9"),A(`stock _DDE_HISTS_size[] =[ ${B.join(", ")}];`),A(`#define _DDE_HISTS_varlenm 0b${l.hx_isvlm.toString(2)} // allow partial write (dde_wxxx)`);let j=[...B];Object.hasOwn(r,"applog")&&j.push(125),Object.hasOwn(r,"alerts")&&j.push(13),A(`#define _DDE_HISTS_maxsize ${Math.max(...j)}`),A(""),D!==void 0&&(A(`#define _DDE_ALOHA_varlen ${D?1:0}`),A(""))}function R8(A,x,r){for(let[e,i]of Object.entries(r.containers)){if(i.containerType==="applog")continue;x(`${i.title.toUpperCase()} - ${i.transferDirection} via #${e}`);let o=En(i.containerType,i.transferDirection);if(!o){A("// ... container not available in DLO");continue}let t=`DDE_${i.containerType===jx.aloha?jx.aloha:i.title}`,B=Le[e];A(`// ${t}_id - container identifier required for ${t}_read/_write operations`),A(`#define ${t}_id (${o}+${B.cnum||0})`),A(`// ${t}_sz - [byte] container total size`),A(`#define ${t}_sz ${i.size}`),B.cnum!==void 0&&(A(`// ${t}_idx - 0+ container index number`),A(`#define ${t}_idx ${B.cnum}`))}}function
|
|
1655
|
+
Changing the size of an existing field can result in data loss or unexpected behaviour.`,...Qx(t,I.range)}))})}checkForContainerRelation(e,i,o,t){let B=e.value.get("fields");B&&B.items.forEach(D=>{this.checkForContainerRelation(D,i,o,t)}),e.value.items.forEach(D=>{let j=D.value;if(j?.value&&d8.exec(`${j.value}`)){let b=D.key.value;if(b){if(!Object.hasOwn(vs,b))return this.fileDiagnostics.push({file:o,level:"error",message:`Property "${b}" does not allow relations.`,...Qx(t,j.range)});if(["scale","offset"].includes(b))return this.fileDiagnostics.push({file:o,level:"warning",message:`Container relations for "${b}" are not available within the dlo source.`,...Qx(t,j.range)})}return this.validateContainerRelation(b,j,i,o,t)}})}validateFieldName(e,i,o,t){let B=this.fieldNamesPerContainer[i],l=e.key,D=l.value;b8(D)&&this.fileDiagnostics.push({file:o,level:"error",message:`Reserved property "${D}" is not allowed.`,...Qx(t,l.range)});let j=e.value.get("shadowFields");j&&j.items.forEach(b=>{this.validateFieldName(b,i,o,t)}),B.includes(D.toLowerCase())?this.fileDiagnostics.push({file:o,level:"error",message:`Field name "${D}" is already occupied`,...Qx(t,l.range)}):B.push(D.toLowerCase())}checkFieldNameLength(e,i,o,t){let B=e.key,l=B.value,j=`DDE_${i.startsWith("timeseries")?i.substring(10):i}_`,b=31-j.length;j.length+l.length>31&&this.fileDiagnostics.push({file:o,level:"error",code:st.CODE.ddeFieldLength,message:`Field name "${l}" to long. ${b} characters allowed for this field/container.`,...Qx(t,B.range)})}validateContainerRelation(e,i,o,t,B){let[l,D,j]=i.value.split(".",3),[b,k]=l.split("@"),q=b?b.split(":")[1]:null,S=(q&&this.libraryYaml[q]?this.libraryYaml[q]:o).contents?.get(k),T=D.split("[")[0],I=null;if(S){let L=S.get(T);if(L)if(j){let R=L.get("fields");R&&R.get(j)&&(I=R.get(j))}else I=L;else I=this.findRelatedShadowField(S,T)}if(I){let L=vs[e],R=I.get("type");L.includes(R)||this.fileDiagnostics.push({file:t,level:"error",message:`Related field type "${R}" is not allowed for attribute "${e}".`,...Qx(B,i.range)})}else q&&!this.libraryYaml[q]?this.fileDiagnostics.push({file:t,level:"error",message:`Related library "${q}" does not exist.`,...Qx(B,i.range)}):this.fileDiagnostics.push({file:t,level:"error",message:`Related field "${i.value}" does not exist.`,...Qx(B,i.range)})}findRelatedShadowField(e,i){for(let o of e.items){let B=o.value.get("shadowFields");if(!B)continue;let l=B.get(i);if(l)return l}}mergeAndFormat(e){let i={containers:{},setPointList:{}};for(let o of this.libraryDDE)this.combineDDE(i,o);return this.combineDDE(i,e),this.sortContainerFields(i),this.generateSetPointList(i),i}combineDDE(e,i){for(let[o,t]of Object.entries(i.containers)){let B=e.containers[o];B?(B.title=t.title,B.knownNames.unshift(t.title),B.libraries.push(...t.libraries),B.fields.push(...t.fields),B.arrays={...B.arrays,...t.arrays},B.shadows={...B.shadows,...t.shadows}):(B=e.containers[o]=structuredClone(t),B.knownNames.unshift(t.title),B.fieldCount=B.fields.length,B.fieldIndex=0);let l=this.initialContainerByteOffset(B);for(let[D,j]of B.fields.entries()){if(j.shadowRef){let b=B.shadows[j.shadowRef];j.byteOffset=b.byteOffset}else j.byteOffset=l,this.updateShadowFieldInformation(e.containers[o],j),l+=j.byteSize||0;D>B.fieldCount-1&&(j.index+=B.fieldIndex)}B.fieldIndex+=t.fieldIndex,B.knownNames=[...new Set(B.knownNames)],B.libraries=[...new Set(B.libraries)],B.fieldCount=B.fields.length}}initialContainerByteOffset(e){return e.containerType===u8.hx?1:0}updateShadowFieldInformation(e,i){i&&Object.hasOwn(e.shadows,i.name)&&(e.shadows[i.name].byteOffset=i.byteOffset)}sortContainerFields(e){for(let i of Object.values(e.containers)){let{sortedFields:o,containerSize:t}=this.sortFields(i);i.fields=o,i.size=t,i.fieldCount=i.fields.length}}sortFields(e){let i=e.fields.filter(b=>!b.shadowRef),o=e.fields.filter(b=>b.shadowRef),t=[],B=e.name;if(this.previousVersion.containers[B]){let b=this.sortPreviousContainerFields(e,i);t.push(...b)}else t.push(...i);t.forEach(b=>{this.updateShadowFieldInformation(e,b)});let D=t[t.length-1],j=D.byteSize+D.byteOffset;return o.forEach(b=>{b.byteOffset=e.shadows[b.shadowRef].byteOffset,t.push(b)}),{sortedFields:t,containerSize:j}}sortPreviousContainerFields(e,i){let o=e.name,t=this.previousVersion.containers[o],B=[],l=this.initialContainerByteOffset(e);for(let D of t.fields){if(D.shadowRef)continue;let j=i.findIndex(k=>D.id===k.name?.toLowerCase());if(j===-1){l=D.byteOffset+D.byteSize;continue}let b=i[j];if(D.type!==b.type&&D.byteSize!==b.byteSize){l=D.byteOffset+D.byteSize;continue}b.byteOffset=D.byteOffset,i.splice(j,1),B.push(b),l=this.initialContainerByteOffset(e)}if(l>this.initialContainerByteOffset(e)){let D=i.shift();B.push(...this.generatePlaceholderFieldIfNeeded(l,D)),this.updateShadowFieldInformation(e,D)}for(let D of i){if(D.shadowRef)D.byteOffset=e.shadows[D.shadowRef].byteOffset;else{this.updateShadowFieldInformation(e,D);let j=B[B.length-1];j.shadowRef&&(j=e.shadows[j.shadowRef]),D.byteOffset=j.byteOffset+j.byteSize}B.push(D)}return B}generatePlaceholderFieldIfNeeded(e,i){let o=[];if(i)i.byteOffset=e,o.push(i);else{let t={byteOffset:e,byteSize:0,id:"_shadow",library:null,name:"_shadow",type:"shadow",arrayRef:null,shadowRef:null,title:null,index:0};o.push(t)}return o}generateSetPointList(e){e.setPointList={...this.previousVersion.setPointList||{}};for(let i of Object.values(e.containers))for(let o of i.fields)o.chartSetPoint&&(Object.hasOwn(e.setPointList,o.name)||(e.setPointList[o.name]=this.getNextSetpointValue(e.setPointList)))}getNextSetpointValue(e){let i=[...Object.values(e),0];return Math.max(...i)+1}}x.PreCompiler=A})(ft||={});var Ox=L0.TransferDirection,FA=L0.parseXMLValueWithRelation,h8=L0.parseXMLBitmask,g8=L0.parseXMLDefaultValue,y8=L0.fieldTypeDefinitions;function Fn(A,x){let e=[];function i(B,l=!0){if(l){if(Array.isArray(B)){e.push.apply(e,B);return}e.push(""+B)}}function o(B,l){B!=="mergeofs"&&i(`${B}=${l}`)}i("// DDE STRUCTURE created by Microtronics Studio");let t="source=rm2mraw";for(let[B,l]of Object.entries(x.containers)){B.startsWith("histdata")&&l.transferDirection!==Ox.deviceOnly&&(i("<split>"),i(t),i("target="+B),i("key=0"+B.substr(-1,1)),i("</split>")),i("<table>"),o("name",B),o("alias",l.title),o("title",l.title.replace("_"," "));let D={};[Ox.none,Ox.backendOnly,Ox.deviceOnly,Ox.down,Ox.downPlus].includes(l.transferDirection)&&o("upload","0"),[Ox.none,Ox.backendOnly,Ox.deviceOnly,Ox.up,Ox.upPlus].includes(l.transferDirection)&&o("download","0"),(W.isIotApp(A)||W.isLibrary(A))&&[Ox.up,Ox.upPlus].includes(l.transferDirection)&&o("edit","99");for(let j of l.fields){if(j.type==="shadow")continue;let b=k8(j),k=y8[b.type],q=FA("title",b,x)||b.name;!q.startsWith("%")&&b.library&&(q=`${b.library}: ${q}`);let y={title:q,alias:b.name,index:j.index,...D};y.byteofs=`${b.byteOffset}`;for(let[S,T]of Object.entries(k.xml))y[S]=T;Object.hasOwn(k,"xmlOut")&&k.xmlOut(y,b,x),y.units=FA("unit",b,x),y.chmode=FA("channelMode",b,x),y.ialarm_high=FA("chartAlarmHigh",b,x),y.ialarm_low=FA("chartAlarmLow",b,x),y.iwarn_high=FA("chartWarningHigh",b,x),y.iwarn_low=FA("chartWarningLow",b,x),y.hysterese=FA("chartHysteresis",b,x),y.itrigger=FA("chartTriggerThreshold",b,x),y.itriggerus=FA("chartTriggerRelation",b,x),y.setpoint=FA("chartSetPoint",b,x),y.bitmask=h8(b),b.hex&&(y.editmask="%HEX%"),b.readPermission&&(y.view=b.readPermission),b.writePermission&&(y.edit=b.writePermission),b.defaultValue!==void 0&&(y.default=g8(b)),b.utilsTransferInterval===!0&&(y.param0="%FFFF0005%transfer_interval"),i("<field>"),b.library&&i(`// declared by ${b.library} library`,!0);for(let[S,T]of Object.entries(y))T!==void 0&&o(S,`${T}`);i("</field>")}["alerts","applog"].includes(B)||(i("</table>"),i("// "+l.size+" bytes total size"))}return i("<split>"),i(t),i("target=alarm0"),i("key=20"),i("</split>"),i("<split>"),i(t),i("target=applog0"),i("key=28"),i("</split>"),e.join(`
|
|
1656
|
+
`)}function k8(A){let x=structuredClone(A),r=A.arrayRef?.index;if(r===void 0)return x;for(let[e,i]of Object.entries(x))x[e]=m0.patchValueWithArrayInfo(i,r);return x}var $A=cx(require("semver"));var vA=cx(require("semver"));var Bn=require("vscode-uri");var jx=L0.ContainerType,N0=L0.TransferDirection,Ie=L0.regexRelation,_8=L0.CONFIG_CONTAINER,En=L0.CONTAINER_DEF_DLO_CID_BASE,Le=L0.CONTAINER_DEFS,lt=L0.fieldTypeDefinitions,Cs=m0.isNumeric;function Zx(A){let x=lt[A.type];return x.pwn.rwp||(x.pwn.rwp="%n"),x.pwn.htype||(x.pwn.htype=x.pwn.rwfunc),x.pwn}var Ct="Microtronics/dlo-core";function fn(A){return W.isLibrary(A)&&A.name==="dlo-core"?A.version:A.libraryDependencies&&Object.hasOwn(A.libraryDependencies,Ct)?ex.rangeToVersion(A.libraryDependencies[Ct]):A.libraryDevDependencies&&Object.hasOwn(A.libraryDevDependencies,Ct)?ex.rangeToVersion(A.libraryDevDependencies[Ct]):null}function w8(A){let x=fn(A);return x===null||vA.gte(x,"0.3.0")?vA.valid(A.version)?A.version:vA.coerce(`${A.version}`):vA.coerce(A.version)?.major}function vn(A){let x=fn(A);if(x===null)return!1;let r=vA.coerce(x);return vA.gte(r,"1.1.0")}function $8(A){let x=fn(A);if(x===null)return!1;let r=vA.coerce(x);return vA.gte(r,"1.15.0")}var q8=["u8","u16","u32","s8","s16","s32","s64","f16","f32","f64"];function S8(A){if(A.type==="ustring")return!1;if(A.defaultValue!=="NaN")return!0;let x=Zx(A);return!x||x==="skip"?!1:q8.includes(`${x.rwfunc}`)}function P8(A,x,r){A("PROJECT META");let{dpid:e,registry:i}=r;if(!e)throw new Error('Setting "dpid" is required to generate dlo files');let{auto_inc:o}=xn[e];x("APM_DPID",`${e}`),x(`APM_DPID_${e}`,"1"),x(`APM_DPID_${e.toUpperCase()}`,"1"),x("APM_ID",i?.id||"");let t=w8(r);x("APM_VERSION",`${t}`),x("APM_NAME",`${r.name}`),x("APM_AUTHOR",`${r.publisher}`);for(let[B,l]of Object.entries(o))Cs(l)?x(B,`${l}`):x(B,`"${l}"`)}function T8(A,x,r,e){let i=e.flat,{definesWithSource:o}=e;x("GLOBAL DEFINES");for(let[t,B]of Object.entries(i)){let l=o[t]?.comment;if(l){let j=l.split(`
|
|
1657
|
+
`);if(j.length===1)A(`/** ${j[0]} */`);else{A("/**");for(let b of j)A(` * ${b}`);A(" */")}}let D=Object.hasOwn(i,B);r(t,`${B}`,D)}}function N8(A,x,r,e){let i=parseInt(A.substring(6)),o=1<<i;r[i]=x.size,e.cx_isupm|=[N0.both,N0.none,N0.deviceOnly,N0.up,N0.upPlus].includes(x.transferDirection)?o:0,e.cx_isvolatilem|=x.volatile?o:0,e.cx_isdnm|=[N0.both,N0.none,N0.deviceOnly,N0.down,N0.downPlus].includes(x.transferDirection)?o:0,e.cx_isvlm|=[N0.bothPlus,N0.upPlus,N0.downPlus].includes(x.transferDirection)?o:0}function I8(A,x,r,e){let i=parseInt(A.substring(8));r[i]=x.size,e.hx_isvlm|=[N0.upPlus].includes(x.transferDirection)?1<<i:0}function M8(A){return[N0.upPlus].includes(A.transferDirection)}function L8(A,x,r){let e=0,i=Array(10).fill(0),o={cx_isupm:0,cx_isvolatilem:0,cx_isdnm:0,cx_isvlm:0},t=0,B=Array(10).fill(0),l={hx_isvlm:0},D;for(let[b,k]of Object.entries(r.containers))k.containerType===jx.cx&&k.transferDirection!==N0.backendOnly?(N8(b,k,i,o),e=Math.max(e,k.size)):k.containerType===jx.hx?(I8(b,k,B,l),e=Math.max(e,k.size)):k.containerType===jx.aloha&&(D=M8(k),e=Math.max(e,k.size));x("DDE CORE"),A(`#define _DDE_BUF_BYTES (${e}+10)`),A(""),A("// c0 c1 c2 c3 c4 c5 c6 c7 c8 c9"),A(`stock _DDE_CONFIGS_size[] =[ ${i.join(", ")}];`),A(`#define _DDE_CONFIGS_upm 0b${o.cx_isupm.toString(2)} // ..is tolerant when reading back container with under-length`),A(`#define _DDE_CONFIGS_volatilem 0b${o.cx_isvolatilem.toString(2)} // inits container as volatile`),A(`#define _DDE_CONFIGS_downm 0b${o.cx_isdnm.toString(2)} // reading the container expects strict length`),A(`#define _DDE_CONFIGS_varlenm 0b${o.cx_isvlm.toString(2)} // allow partial write (dde_wxxx)`),A(`#define _DDE_CONFIGS_rdef 0b${t.toString(2)} // ..apply defaults reading a container with under-length`),A(""),A("// h0 h1 h2 h3 h4 h5 h6 h7 h8 h9"),A(`stock _DDE_HISTS_size[] =[ ${B.join(", ")}];`),A(`#define _DDE_HISTS_varlenm 0b${l.hx_isvlm.toString(2)} // allow partial write (dde_wxxx)`);let j=[...B];Object.hasOwn(r,"applog")&&j.push(125),Object.hasOwn(r,"alerts")&&j.push(13),A(`#define _DDE_HISTS_maxsize ${Math.max(...j)}`),A(""),D!==void 0&&(A(`#define _DDE_ALOHA_varlen ${D?1:0}`),A(""))}function R8(A,x,r){for(let[e,i]of Object.entries(r.containers)){if(i.containerType==="applog")continue;x(`${i.title.toUpperCase()} - ${i.transferDirection} via #${e}`);let o=En(i.containerType,i.transferDirection);if(!o){A("// ... container not available in DLO");continue}let t=`DDE_${i.containerType===jx.aloha?jx.aloha:i.title}`,B=Le[e];A(`// ${t}_id - container identifier required for ${t}_read/_write operations`),A(`#define ${t}_id (${o}+${B.cnum||0})`),A(`// ${t}_sz - [byte] container total size`),A(`#define ${t}_sz ${i.size}`),B.cnum!==void 0&&(A(`// ${t}_idx - 0+ container index number`),A(`#define ${t}_idx ${B.cnum}`))}}function ls(A,x,r){let e=[],i=e.push.bind(e);function o(B){i(`
|
|
1658
1658
|
// === ${B} ===
|
|
1659
|
-
`)}function t(B,l,D=!1){let j=
|
|
1660
|
-
`)}var Re=class{constructor(x,r,e){this.manifest=x;this.ddeMap=r;this.context=e;this.sourceType="pawnSource"}manifest;ddeMap;context;globalVariables=[];pawnGlobalSource=[];pawnHelperSource=[];timeSeriesSource=[];readWriteSource=[];definesSource=[];defaultDefinesSource=[];knownDefines=[];pawnIndent=0;sourceType;pawn(x,r){r&&x==="<"&&this.pawnIndent--,{pawnSource:this.pawnGlobalSource,globalVariables:this.globalVariables,timeseries:this.timeSeriesSource,readWrite:this.readWriteSource,defines:this.definesSource,defaultDefines:this.defaultDefinesSource}[this.sourceType].push(" ".repeat(this.pawnIndent)+(r||x)),r&&x===">"&&this.pawnIndent++}generate(){for(let[x,r]of Object.entries(this.ddeMap.containers))this.context&&!r.libraries.includes(this.context)||!En(r.containerType,r.transferDirection)||!r.fields||!this.context&&!L0.hasContainerAppFields(r)||Le[x].ctype!==jx.cx&&this.context||(this.generateGlobalVarsForContainer(r),this.generateReadWriteFunctions(r));return this.mergeSourceTypes(),{globals:this.pawnGlobalSource,helper:this.pawnHelperSource}}createGlobalVar(x,r){this.sourceType="globalVariables";let e=r?this.variableNameForPawnDefinition(x,r):x;if(r){let i=this.generateCommentForField(r);i&&(Array.isArray(i)?(this.pawn("/**"),i.forEach(o=>{this.pawn(` * ${o}`)}),this.pawn(" */")):this.pawn(`// ${i}`))}this.pawn(`stock ${e}${r?this.initialiserForGlobalVar(r):""};`)}initialiserForGlobalVar(x){if(x.defaultDloDefine===void 0||x.arrayRef)return"";let r=Zx(x);return!r||r==="skip"||`${r.rwp||""}`.includes("%l")?"":` = ${x.defaultDloDefine}`}insertSection(x){this.pawn(""),this.pawn("// ============================================================================="),this.pawn(`// ${x}`),this.pawn("// ============================================================================="),this.pawn("")}mergeSourceTypes(){this.sourceType="pawnSource",this.definesSource.length&&(this.insertSection("Defines"),this.pawnGlobalSource.push(...this.definesSource)),this.defaultDefinesSource.length&&(this.insertSection("Field defaults"),this.pawnGlobalSource.push(...this.defaultDefinesSource)),this.globalVariables.length&&(this.insertSection("Global Variables"),this.pawnGlobalSource.push(...this.globalVariables)),this.readWriteSource.length&&(this.insertSection("Internal read/write calls"),this.pawnHelperSource.push(...this.readWriteSource)),this.pawn("")}generateGlobalVarsForContainer(x){this.sourceType="globalVariables",this.pawn(""),this.pawn(`// Container '${x.title.replace("_"," ")}'`),this.pawn("");let r=`DDE_${x.title}`;this.generateArrayDefines(r,x);for(let e of x.fields){if(e.type==="shadow"||e.shadowRef||e.library!==this.context)continue;if(e.arrayRef!==null){let o=x.arrays[e.arrayRef.name],t=`${r}_${e.arrayRef.name}`;o.fields?.length&&(t+=`_${e.name.split(".")[1]}`),this.createDefaultDefineForField(t,e);continue}let i=this.generateFieldVariableName(r,e);this.createDefaultDefineForField(i,e),this.createGlobalVar(`${i}`,e)}}generateArrayDefines(x,r){for(let e of Object.values(r.arrays)){if(this.context!==e.library)continue;let i=`${x}_${e.name}_dim`;if(this.sourceType="defines",this.pawn(`#define ${i} ${e.length}`),e.fields){for(let B of e.fields)Ct[B.type]?.isBlob&&B.byteSize&&this.addDefine(`${x}_${e.name}_${B.name}_dim`,B.byteSize);let o={...r};o.fields=[],e.fields.forEach(B=>{o.fields.push({arrayRef:null,shadowRef:null,byteOffset:0,byteSize:B.byteSize,id:B.name,library:e.library,name:B.name,type:B.type,title:null,index:0})});let t=`${x}_${e.name}_def`;this.generateTypeDefinitions(o,t),this.createGlobalVar(`${x}_${e.name}[${i}][${t}]`)}else this.createGlobalVar(`${x}_${e.name}[${i}]`)}}generateCommentForField(x){let r=[`@type ${x.type}`];if(x.description&&r.unshift(x.description),x.defaultValue!==void 0){let{value:e,reason:i}=this.parseFieldDefault(x);r.push(`@default ${e} ${i||""}`)}return r}generateFieldVariableName(x,r){let e=`${x}_${r.name}`,i=Object.hasOwn(Ct,r.type)&&Ct[r.type].isBlob,o=r.byteSize;return o&&i&&(this.sourceType="defines",this.pawn(`#define ${x}_${r.name}_dim ${o}`),this.pawn(`#define ${x}_${r.name}_iter() for(new i=0;i<${o};i++)`)),this.sourceType="globalVariables",e}generateTypeDefinitions(x,r){this.sourceType="defines";let e=x.fields;if(!e)return;let i=[];this.pawn(">",`#define ${r} [`);for(let o of e){let t=this.generateFieldTypeDefinition(o,x,i,r);t!==null&&this.pawn(t)}this.pawn("<","]")}handleArrayFieldDedup(x,r,e,i){let o=x.arrayRef;if(o){let l=r.arrays[o.name];if(!e.includes(o.name)&&!l.fields)e.push(o.name);else return null}let t=x.arrayRef?x.arrayRef.name:x.name,B=x.arrayRef?`[${i}_${t}_dim]`:"";return{fieldName:t,fld_dim:B}}generateFieldTypeDefinition(x,r,e,i){if(x.type==="shadow"||x.shadowRef||x.library!==this.context)return null;let o=this.handleArrayFieldDedup(x,r,e,i);if(o===null)return null;let{fieldName:t,fld_dim:B}=o,l="";if(x.type==="struct")l="// ."+t+B;else{let D=Zx(x);if(!D)return null;D==="skip"?l=`// skipped - .${t}${B}`:l+=D.rwp.replace("%n",`.${t}${B}`).replace("%l",x.byteSize)}return l+=",",x.library&&(l+=` // declared by ${x.library} library`),l}variableNameForPawnDefinition(x,r){let e=Zx(r);return e&&e!=="skip"?e.rwp.replace("%n",`${x}`).replace("%l",r.byteSize):x}createDefaultDefineForField(x,r){if(this.sourceType="defaultDefines",r.scale!==void 0&&this.addDefine(`${x}_scale`,r.scale),r.offset!==void 0&&this.addDefine(`${x}_offset`,r.offset),r.defaultValue!==void 0&&S8(r)){let{value:e,reason:i}=this.parseFieldDefault(r),o=`${x}_default`;this.addDefine(o,e,i)&&(r.defaultDloDefine=o)}}addDefine(x,r,e){return Ie.exec(`${r}`)?!1:(this.knownDefines.includes(x)||(e&&this.pawn(`// ${e}`),this.pawn(`#define ${x} ${r}`),this.knownDefines.push(x)),!0)}generateReadWriteFunctions(x){let r=x.name,e=Le[r],i=`DDE_${x.containerType===jx.aloha?jx.aloha:x.title}`;[N0.both,N0.bothPlus,N0.none,N0.deviceOnly,N0.up,N0.upPlus].includes(x.transferDirection)&&this.generateWriteMethod(i,x),e.ctype===jx.cx&&this.generateReadMethod(i,x)}generateWriteMethod(x,r){this.sourceType="readWrite";let e=`DDE_${r.title}_id`,i=[jx.hx,jx.aloha].includes(r.containerType),o=r.containerType===jx.hx,t=r.containerType===jx.aloha,B=`_${x}_write`,l=vn(this.manifest)?", flags":"",D=o?`stamp${l}`:"",j=vn(this.manifest)?"const stamp=0, const flags=0":"const stamp=0";this.pawn(">",`stock ${B}(${o?j:""}) {`),i&&this.pawn(`dde_wbegin(DDE_${t?jx.aloha:r.title}_id);`),this.generateRWFunctionBody(x,r,"dde_w"),i&&this.pawn(`return dde_wend(${D});`),this.pawn("<","}"),this.pawn(""),this.sourceType="globalVariables";let b=`${x}_transfer`,k=`${x}_persist`,q=this.functionArgumentsForDdeWrite(o,i);if(this.pawn(">",`${this.context?"stock ":""}${b}(${q}) {`),i)this.pawn(`${B}(${D});`);else{let y=r.name.slice(-1);this.pawn(`dde_flush(${y}, immediate);`)}this.pawn("<","}"),this.pawn(""),r.volatile&&(this.pawn(">",`stock ${k}() {`),this.pawn(`return rM2M_CfgFlush(${e});`),this.pawn("<","}"))}functionArgumentsForDdeWrite(x,r){let e=vn(this.manifest)?", const flags=0":"";return x?`const stamp=0${e}`:r?"":"bool:immediate=false"}generateReadMethod(x,r){this.sourceType="readWrite";let e=`_${x}_read`;this.pawn(">",`stock ${e}() {`),this.generateRWFunctionBody(x,r,"dde_r"),this.pawn("<","}"),this.pawn("")}isFieldSkipped(x){return x.type==="shadow"||!!x.shadowRef||x.library!==this.context}emitFieldRW(x,r,e,i,o,t,B){if(!r.arrayRef)return this.emitSingleField(x,r,e,i,B);let l=r.arrayRef.name,D=o.get(l);return D?t.has(l)?B:(t.add(l),this.emitArrayLoop(x,D,e)):this.emitSingleField(x,r,e,i,B)}generateRWFunctionBody(x,r,e){let i=r.fields,o=this.analyzeArrayGroups(i,x,r),t=new Set,B=-1;for(let l of i){if(this.isFieldSkipped(l))continue;let D=Zx(l);!D||D==="skip"||(B=this.emitFieldRW(x,l,e,D,o,t,B))}}defaultArgumentFor(x,r){return x.defaultDloDefine===void 0?"":r==="dde_r"||$8(this.manifest)?`, ${x.defaultDloDefine}`:""}emitSingleField(x,r,e,i,o){r.byteOffset!==o&&this.pawn(`_dde_idx = ${r.byteOffset};`);let t="";t+=e,t+=i.rwfunc;let B=`${x}_${r.name}`;return t+=`(${B}`,i.rwlen&&(t+=`, ${r.byteSize}`),t+=this.defaultArgumentFor(r,e),this.pawn(t+");"),r.byteOffset+r.byteSize}emitArrayLoop(x,r,e){this.pawn(">",`for (new _i = 0; _i < ${r.dimDefine}; _i++) {`);let i=-1;for(let o of r.templateFields){let t=Zx(o);if(!t||t==="skip")continue;let B=o.byteOffset;B!==i&&this.pawn(`_dde_idx = ${B} + (_i * ${r.stride});`),i=B+o.byteSize;let l=`${x}_${o.name.replace(/\[\d+\]/,"[_i]")}`,D=`${e}${t.rwfunc}(${l}`;t.rwlen&&(D+=`, ${o.byteSize}`),D+=this.defaultArgumentFor(o,e),this.pawn(D+");")}return this.pawn("<","}"),-1}analyzeArrayGroups(x,r,e){let i=this.collectArrayFieldsByIndex(x);return this.buildArrayGroups(i,r,e)}collectArrayFieldsByIndex(x){let r=new Map;for(let e of x){if(this.isFieldSkipped(e)||!e.arrayRef)continue;let i=Zx(e);if(!i||i==="skip")continue;let{name:o,index:t}=e.arrayRef;r.has(o)||r.set(o,new Map);let B=r.get(o);B.has(t)||B.set(t,[]),B.get(t).push(e)}return r}validateArrayStride(x,r){let e=r[0].byteOffset-x[0].byteOffset;if(e<=0)return null;for(let i=0;i<x.length;i++)if(r[i].byteOffset-x[i].byteOffset!==e)return null;return e}buildArrayGroups(x,r,e){let i=new Map;for(let[o,t]of x){let B=e.arrays[o];if(!B||B.length<2)continue;let l=t.get(0),D=t.get(1);if(!l||!D||l.length===0||D.length===0||l.length!==D.length)continue;let j=this.validateArrayStride(l,D);j!==null&&i.set(o,{arrayName:o,dimDefine:`${r}_${o}_dim`,stride:j,templateFields:l})}return i}parseFieldDefault(x){let r=Zx(x),e=x.defaultValue;function i(t,B){return{value:t,reason:B}}switch(x.type){case"astring":case"nstring":case"cstring":return i(`"${e}"`);case"wstring":return i(`''${e}''`);case"ustring":return i(`/* default not supported: ${e} */`);case"binary":{let B=`{ 0x${(e.substring(2).replace(/\s+/g,"").match(/.{1,2}/g)||[]).join(", 0x")} }`;return i(B)}}if(e==="NaN"){let t=r.rwfunc;return i(`${t}_NaN`.toUpperCase())}let o=this.parseFieldScaleOffset(x);return o?i(o.calculated,o.reason):(e!==void 0&&!Ie.exec(`${e}`)&&x.type.startsWith("float")&&e%1===0&&(e=e.toFixed(x.decimalPlaces||1)),i(`${e}`))}parseFieldScaleOffset(x){let r=x.defaultValue;if(!(!!Ie.exec(`${x.offset}`)||!!Ie.exec(`${x.scale}`)||!!Ie.exec(`${x.defaultValue}`))&&(x.offset!==void 0||x.scale!==void 0)){let i=x.offset!==void 0?Number(x.offset):0,o=x.scale!==void 0?Number(x.scale):1;if(o===0)return null;let t=(Number(r)-i)/o,B=`(defaultValue - offset) / scale -> (${r} - ${i}) / ${o}`;return x.type.startsWith("float")?t%1===0&&(t=t.toFixed(1)):(t=Math.round(t),B=`Rounded value of: ${B}`),{calculated:t,reason:B}}return null}};function O8(A){return`${`onUplinkApply_${A}()`};`}function Ds(A,x,r){x.libraries.forEach(e=>{let i=m0.generateHashForLibraryName(e);A(` #ifdef _${i}${r}_${x.title}`),A(` _${i}${r}_${x.title}(); // ${e}`),A(" #endif")})}function G8(A,x){A("stock _onUplinkEvent(ev, param) {"),x.forEach(r=>{let i=`_${m0.generateHashForLibraryName(r)}UplinkEvent`;A(` #ifdef ${i}`),A(` ${i}(ev, param);`),A(" #endif")}),A(" onUplinkEvent(ev, param);"),A("}")}function U8(A){let x=[],r=[];for(let[e,i]of Object.entries(A.containers))Le[e].ctype===jx.cx&&([N0.up,N0.upPlus,N0.deviceOnly].includes(i.transferDirection)&&r.push(i),[N0.bothPlus,N0.both,N0.downPlus,N0.down].includes(i.transferDirection)&&x.push(i));return{containerApply:x,containerRestore:r}}function H8(A,x){x.length&&A("");for(let r of x)r.knownNames.forEach(e=>{A(`forward onUplinkRestore_${e}();`)}),A(""),A(`stock restoreUplink${r.name}() {`),A(` _DDE_${r.name}_read();`),Ds(A,r,"Restore"),L0.hasContainerAppFields(r)&&A(` onUplinkRestore_${r.title}();`),A("}");if(A("#pragma warning push"),A("stock _onUplinkRestore(cfgId) {"),x.length){A(" switch(cfgId) {");for(let r of x)A(` case DDE_${r.title}_id: restoreUplink${r.name}(); // ${r.name}`);A(" }")}else A(" #pragma warning disable 203"),A(" // no containers to restore");A("}"),A("#pragma warning pop")}function K8(A,x){x.length&&A("");for(let r of x)r.knownNames.forEach(e=>{A(`forward onUplinkApply_${e}();`)}),A(""),A(`stock applyUplink${r.name}() {`),A(` _DDE_${r.name}_read();`),Ds(A,r,"Apply"),L0.hasContainerAppFields(r)&&A(` ${O8(r.title)}`),A(" return(OK);"),A("}");if(A("#pragma warning push"),A("stock _onUplinkApply(cfgId) {"),x.length){A(" switch(cfgId) {");for(let r of x)A(` case DDE_${r.title}_id: return applyUplink${r.name}(); // ${r.name}`);A(" }"),A(" return ERROR;")}else A(" #pragma warning disable 203"),A(" // no containers to apply"),A(" return OK;");A("}"),A("#pragma warning pop")}function ds(A,x){let r=[],e=r.push.bind(r);G8(e,x);let{containerApply:i,containerRestore:o}=U8(A);return H8(e,o),K8(e,i),r.join(`
|
|
1661
|
-
`)}var z8=_8.map(A=>`_DDE_${A}_write`);function
|
|
1662
|
-
`)}function
|
|
1663
|
-
`)}async function J8(A,x,r){let e=[];for(let i of r){let o=i0.filePaths.studio.auto.dlo.autoDdeInc.replace("X",i.name);await x.stat(Bn.Utils.joinPath(A,o))&&e.push(`#include "${i0.fileNames.autoDdeInc.replace("X",i.name)}"`)}return e}async function Me(A,x,r,e){let i=Bn.Utils.joinPath(A,i0.filePaths.studio.auto.dlo.path,e);await x.stat(i)&&r.push(`#include "${e}"`)}var js=cx(require("semver")),ms=require("yaml");var xA=L0.ContainerType,ct=L0.TransferDirection,V8=L0.fieldTypeDefinitions,ie={$ref:"#/components/parameters/contextId"},W8={$ref:"#/components/parameters/addonId"},X8={$ref:"#/components/parameters/appId"},ps={$ref:"#/components/schemas/histdataResponse"},Y8={$ref:"#/components/schemas/histdataRequest"},Dt={$ref:"#/components/schemas/rapidM2MStamp"},Q8={$ref:"#/components/schemas/timeseriesRequestBase"},lt="rapidM2M Stamp",EA={description:"Successful operation"},hs={parameters:{contextId:{name:"siteUid",in:"path",description:"The site uid",schema:{type:"string"},required:!0},appId:{name:"appUid",in:"path",description:"The app uid",schema:{type:"string"},required:!0}},schemas:{rapidM2MStamp:{type:"string",format:"YYYYMMDDhhmmssSSS",description:'Special format of an UTC timestamp. Important: The trailing 0 are truncated. eg.: "2024-02-10" -> "2024021"'}}},gs={...structuredClone(hs)};Object.assign(gs.schemas,{histdataResponse:{type:"array",description:"Array of histdata records. Array starts with the youngest record",items:{type:"array",description:'First item is always the rapidM2M timestamp of the record. All following values are in the order of the "select" array.',items:{anyOf:[Dt,{type:"string"},{type:"number"}]}}},histdataRequest:{type:"object",additionalProperties:!1,required:["from","until"],properties:{from:{type:"string",format:lt,description:"items to include must be older or equal, UTC w/o time saving."},until:{type:"string",format:lt,description:"items to include must be younger, UTC w/o time saving. Reply set is limited like that: from <= item.stamp < until."},count:{type:"integer",description:"limits the number of returned records, negative values will count the records from the end of the result set."},offset:{type:"integer",description:"skips the given number of records in the result set."}}},timeseriesRequestBase:{type:"object",additionalProperties:!1,properties:{count:{type:"integer",description:"limits the number of returned records, negative values will count the records from the end of the result set.",minimum:-1e3,maximum:1e3,default:1e3},from:{type:"string",format:lt,description:"items to include must be older or equal, UTC w/o time saving"},until:{type:"string",format:lt,description:"items to include must be younger, UTC w/o time saving. Reply set is limited like that: from <= item.stamp < until"},offset:{type:"integer",description:"Skips the given number of records in the result set",minimum:0,default:0}}}});var Oe={content:{"application/json":{schema:{type:"object",additionalProperties:!1,properties:{err:{type:"string",description:"Information what went wrong"}}}}}},Br={401:{description:"Permission denied",...Oe},403:{description:"Forbidden",...Oe},404:{description:"Resource not found",...Oe},500:{description:"Internal error",...Oe}};function Cn(A,x,r=null){let e=js.coerce(x.version)?.version,i={openapi:"3.0.3",info:{description:x.description,title:x.name,version:e||""},tags:[],paths:{},components:{parameters:{},schemas:{}}};r?Object.assign(i.components,structuredClone(hs)):Object.assign(i.components,structuredClone(gs));let o=W.isAddon(x),t=W.isAnalytics(x);o&&(i.components.parameters.addonId={name:"addonUid",in:"path",description:"The addon uid",schema:{type:"string"},required:!0});for(let B of Object.values(A.containers))r&&(!B.libraries.includes(r)||B.containerType===xA.hx)||!r&&!L0.hasContainerAppFields(B)||B.containerType===xA.aloha||(Z8(i,B),Av(i,B,r),tv(i,B,o,t),!o&&!t&&(xv(i,B,r),ev(i,B)));return i.tags.push({name:"app-center",description:"App Center related routes"}),(0,ms.stringify)(i)}function Z8(A,x){A.tags.push({name:Gx(x.title),description:`Transfer direction ${x.transferDirection}`})}function Gx(A){return A.split("_").join(" ")}function xv(A,x,r){let e=`${x.name}`,i={type:"object",description:`Container: "${x.title}"`,additionalProperties:!1,properties:{}},o=[];x.containerType===xA.hx&&(e+="Select",o.push("select"),i.properties.select={type:"array",items:{type:"string",enum:[]}});for(let t of x.fields)t.library!==r||t.type==="shadow"||(x.containerType===xA.hx?i.properties.select.items.enum.push(t.id):(i.properties[t.id]=ys(t),!t.readPermission&&!t.writePermission&&o.push(t.id)));i.required=o.length?o:void 0,A.components.schemas[e]=i}function Av(A,x,r=null){let e=`${x.title}`,i={type:"object",description:`Container: "${x.title}" with device transfer direction "${x.transferDirection}"`,additionalProperties:!1,properties:{}},o=[],t=x.containerType===xA.hx;for(let l of x.fields)l.library!==r||l.type==="shadow"||(i.properties[l.name]=ys(l),!l.readPermission&&!l.writePermission&&o.push(l.name));i.required=o.length?o:void 0,A.components.schemas[e]=i;let B=i.properties;if(t){i.required=i.required?.map(D=>D.toLowerCase());let l={};for(let[D,j]of Object.entries(i.properties))l[D.toLowerCase()]=j;i.properties=l}if(t){let l={type:"object",description:`Request schema of "${x.title}"`,additionalProperties:!1,properties:{select:{type:"array",description:"Optional selection of specific fields of the given container",items:{type:"string",enum:Object.keys(B)}}}};A.components.schemas[`${e}RequestSingle`]=l,A.components.schemas[`${e}Request`]={allOf:[Q8,l]},i.properties.stamp=Dt,o.push("stamp")}}function ys(A){let r={...V8[A.type].openApi},e=rv(A);return r.default=e,r.example=e,r.description=A.description,r}function rv(A){return A.defaultValue===void 0?A.defaultValue:A.type==="binary"?`${A.defaultValue.substring(2)}`:A.defaultValue}function ev(A,x){let r=`/api/1/sites/{siteUid}/${x.name}`,e={get:void 0,put:void 0};if([xA.cx,xA.cb].includes(x.containerType))e.get={deprecated:!0,tags:[Gx(x.title)],summary:`Retrieve the data of the "${Gx(x.title)}" container`,parameters:[ie],responses:{200:{...EA,content:{"application/json":{schema:{allOf:[{type:"object",required:["stamp"],properties:{stamp:Dt}},{$ref:`#/components/schemas/${x.name}`}]}}}},...Br}},[ct.down,ct.backendOnly].includes(x.transferDirection)&&(e.put={deprecated:!0,tags:[Gx(x.title)],summary:`Modify the data of the "${Gx(x.title)}" container`,parameters:[ie],requestBody:{content:{"application/json":{schema:{$ref:`#/components/schemas/${x.name}`}}}},responses:{201:{...EA},204:{...EA},...Br}});else if(x.containerType===xA.hx){let i=`${r}`;r+="/youngest",e.get={deprecated:!0,tags:[Gx(x.title)],summary:`Retrieve the youngest data of the "${Gx(x.title)}" container`,parameters:[ie,{name:"json",in:"query",required:!0,schema:{$ref:`#/components/schemas/${x.name}Select`}}],responses:{200:{...EA,content:{"application/json":{schema:ps}}},...Br}},A.paths[i]={get:{deprecated:!0,tags:[Gx(x.title)],summary:`Get the historical data of the "${Gx(x.title)}" container.`,parameters:[ie,{name:"json",in:"query",required:!0,schema:{allOf:[{$ref:`#/components/schemas/${x.name}Select`},Y8]}}],responses:{200:{...EA,content:{"application/json":{schema:ps}}},...Br}}}}A.paths[r]=e}function tv(A,x,r=!1,e=!1){let o=x.containerType===xA.hx?"timeseries":"containers",t=[],B=Gx(x.title);e||t.push({path:`/api/1/sites/{siteUid}/${o}/${x.title}`,params:[ie],tags:[B]}),r&&(t=[{path:`/api/1/sites/{siteUid}/addons/{addonUid}/${o}/${x.title}`,params:[ie,W8],tags:[B]}]);let l={path:`/api/1/app-center/apps/{appUid}/${o}/${x.title}`,params:[X8],tags:["app-center"]};e&&l.tags.push(B),t.push(l);let D={get:void 0,put:void 0,post:void 0},j={tags:[],summary:`Retrieve the data of the "${Gx(x.title)}" container`,parameters:[],responses:{200:{...EA,content:{"application/json":{schema:{allOf:[{type:"object",required:["stamp"],properties:{stamp:Dt}},{$ref:`#/components/schemas/${x.title}`}]}}}},...Br}};if([xA.cx,xA.cb].includes(x.containerType)&&(D.get=j,[ct.down,ct.backendOnly].includes(x.transferDirection)&&(D.put={tags:[],summary:`Modify the data of the "${Gx(x.title)}" container`,parameters:[],requestBody:{content:{"application/json":{schema:{$ref:`#/components/schemas/${x.title}`}}}},responses:{201:{...EA},204:{...EA},...Br}}),t.forEach(b=>{let k=structuredClone(D);Object.values(k).forEach(q=>{q?.parameters?.unshift(...b.params),q?.tags?.unshift(...b.tags)}),A.paths[b.path]=k})),x.containerType===xA.hx){D.get={tags:[],summary:`Get the historical data of "${x.title}"`,parameters:[{name:"json",in:"query",required:!1,schema:{$ref:`#/components/schemas/${x.title}Request`}}],responses:{200:{...EA,content:{"application/json":{schema:{type:"array",items:{$ref:`#/components/schemas/${x.title}`}}}}},...Br}},r&&(D.post={tags:[],summary:`Insert data into the "${Gx(x.title)}" container`,parameters:[{name:"allow_future_date",in:"query",description:"Allow inserting records with a stamp value in the future",schema:{type:"boolean"}}],requestBody:{content:{"application/json":{schema:{$ref:`#/components/schemas/${x.title}`}}}},responses:{201:{...EA},400:{description:"Bad request",...Oe},...Br}});let b=t[0],k=structuredClone(D);Object.values(k).forEach(R=>{R?.parameters?.unshift(...b.params),R?.tags?.unshift(...b.tags)}),A.paths[b.path]=k;let q={...EA,content:{"application/json":{schema:{$ref:`#/components/schemas/${x.title}`}}}},y=`${b.path}/youngest`,S={get:structuredClone(k.get)};S.get.summary=`Get the youngest record of "${x.title}" container`,S.get.responses[200]=q;let T=r?2:1;S.get.parameters[T].schema.$ref=`#/components/schemas/${x.title}RequestSingle`,A.paths[y]=S;let I=`${b.path}/oldest`,L={get:structuredClone(k.get)};L.get.summary=`Get the oldest record of "${x.title}" container`,L.get.responses[200]=q,L.get.parameters[T].schema.$ref=`#/components/schemas/${x.title}RequestSingle`,A.paths[I]=L}}var _s=L0.TransferDirection,dt=" new szTemp{64};",ut=" return strcat(aData, szTemp, sizeof(szTemp));";function ws(A){if(!A.printf&&A.printfFormat==="memtostr")return"bin";if(!A.printf)return null;let x=A.rwp||"%n",r=x.includes("["),i=x.includes("{")||r;if(A.printfFormat==="stampToISOString")return i?null:"stamp";switch(A.printf){case"%d":return i?null:"d";case"%f":return i?null:"f";case"%s":return r?null:"s";default:return null}}function ln(A){if(A.type==="shadow"||A.shadowRef)return null;let x=Zx(A);return!x||x==="skip"?null:ws(x)}function $s(A){return[L0.ContainerType.hx,L0.ContainerType.cx].includes(A.containerType)&&A.transferDirection!==_s.backendOnly}function nv(A){if(A.type==="shadow"||A.shadowRef)return!1;let x=Zx(A);return!!x&&x!=="skip"}function iv(A,x,r){let e=A.name.indexOf("]"),i=e>=0?A.name.substring(e+1):"",o=`${A.arrayRef.name}|${i}|${x}`;r.has(o)||r.set(o,{fields:[],formatType:x}),r.get(o).fields.push(A)}function sv(A){let x=[],r=new Map,e=new Set,i=!1;for(let o of A){if(!nv(o))continue;let t=ln(o);o.arrayRef&&t?iv(o,t,r):(x.push(o),t?e.add(t):i=!0)}return{standaloneFields:x,groupMap:r,usedFormats:e,hasInlineFields:i}}function av(A,x,r){r.sort((D,j)=>D.arrayRef.index-j.arrayRef.index);let e=r.map(D=>D.byteOffset),i=e[1]-e[0];if(!(i>0&&e.every((D,j)=>j===0||D-e[j-1]===i)))return null;let[t,B]=x.split("|"),l=r[0].library?`_${m0.generateHashForLibraryName(r[0].library)}`:"DDE_";return{arrayName:t,subField:B,fields:r,startOffset:e[0],endOffset:e[e.length-1],step:i,formatType:ln(r[0]),pawnVarBase:`${l}${A}_${t}`}}function ov(A,x){let{standaloneFields:r,groupMap:e,usedFormats:i,hasInlineFields:o}=sv(x),t=[];for(let[B,l]of e){let{fields:D,formatType:j}=l;if(D.length<2){r.push(...D),i.add(j);continue}let b=av(A,B,D);b?(i.add(j),t.push(b)):(r.push(...D),i.add(j))}return r.sort((B,l)=>B.byteOffset-l.byteOffset),{arrayGroups:t,standaloneFields:r,usedFormats:i,hasInlineFields:o}}function Fv(A){let x=new Set;for(let[,r]of Object.entries(A.containers))if($s(r))for(let e of r.fields){let i=ln(e);i&&x.add(i)}return x}function vv(A,x){x.has("d")&&(A("stock _DDE_fmt_d(aData{}, value) {"),A(dt),A(' sprintf(szTemp, _, "%d", value);'),A(ut),A("}")),x.has("f")&&(A(""),A("stock _DDE_fmt_f(aData{}, Float:value) {"),A(dt),A(' sprintf(szTemp, _, "%.3f", value);'),A(ut),A("}")),x.has("s")&&(A(""),A("stock _DDE_fmt_s(aData{}, value{}) {"),A(dt),A(' sprintf(szTemp, _, "%s", value);'),A(ut),A("}")),x.has("stamp")&&(A(""),A("stock _DDE_fmt_stamp(aData{}, value) {"),A(dt),A(' sprintf(szTemp, _, "%s", (stampToISOString(value)));'),A(ut),A("}")),x.has("bin")&&(A(""),A("stock _DDE_fmt_bin(aData{}, mem{}, dim) {"),A(" #pragma warning disable 224"),A(" memtostr(aData, mem, 0, dim);"),A(" #pragma warning disable 224"),A(" return dim;"),A("}"))}function Ev(A,x){return x===1?A===0?"idx":`idx - ${A}`:A===0?`idx / ${x}`:`(idx - ${A}) / ${x}`}function Bv(A,x,r){let e=`idx >= ${A} && idx <= ${x}`;if(r===1)return e;let i=A===0?`idx % ${r} == 0`:`(idx - ${A}) % ${r} == 0`;return`${e} && ${i}`}function fv(A,x){let{startOffset:r,endOffset:e,step:i,formatType:o,pawnVarBase:t,subField:B}=x,l=Ev(r,i),D=Bv(r,e,i);if(A(` if (${D}) {`),o==="bin"){let j=`${t}[${l}]${B}`,b=B?B.substring(1):"",k=b?`${t}_${b}_dim`:`${t}_dim`;A(` return _DDE_fmt_bin(aData, ${j}, ${k});`)}else A(` return _DDE_fmt_${o}(aData, ${t}[${l}]${B});`);A(" }")}function Cv(A,x,r){if(r.type==="shadow"||r.shadowRef)return;let e=Zx(r);if(!e||e==="skip")return;let o=`${r.library?`_${m0.generateHashForLibraryName(r.library)}`:"DDE_"}${x}_${r.name}`,t=ws(e);if(t==="bin")A(` case ${r.byteOffset}: return _DDE_fmt_bin(aData, ${o}, ${o}_dim);`);else if(t)A(` case ${r.byteOffset}: return _DDE_fmt_${t}(aData, ${o});`);else{if(A(` case ${r.byteOffset}: {`),e.printf){let B=o;e.printfFormat&&(B=`(${e.printfFormat}(${B}))`),A(` sprintf(szTemp, _, "${e.printf}", ${B});`),A(" return (strcat(aData, szTemp, sizeof(szTemp)));")}A(" }")}}function lv(A,x,r){A(` case '${x.at(-1)}': {`),A(` return _DDE_local_${r.title}(aData, idx);`),A(" }")}function ks(A,x,r){let e=r===L0.ContainerType.cx?"c":"h",i=r===L0.ContainerType.cx?"config":"histdata";A(` if(cname{0} == '${e}'){`),A(" switch(cname{1}) {");for(let[o,t]of Object.entries(x.containers))r===t.containerType&&o.startsWith(i)&&t.transferDirection!==_s.backendOnly&&lv(A,o,t);A(" default:"),A(" return OK;"),A(" }"),A(" return OK;"),A(" }")}function cv(A,x){let r=ov(x.title,x.fields);A(""),A(`stock _DDE_local_${x.title}(aData{}, idx) {`),r.hasInlineFields&&A(" new szTemp{64};");for(let e of r.arrayGroups)fv(A,e);if(r.standaloneFields.length>0){A(" switch(idx) {");for(let e of r.standaloneFields)Cv(A,x.title,e);A(" default:"),A(" return OK;"),A(" }")}A(" return OK;"),A("}")}function Dv(A,x){for(let[,r]of Object.entries(x.containers))$s(r)&&cv(A,r)}function qs(A){let x=[],r=x.push.bind(x),e=Fv(A);return vv(r,e),e.size>0&&r(""),r("stock DDE_get_local_data(cname{}, aData{}, idx) {"),ks(r,A,L0.ContainerType.cx),ks(r,A,L0.ContainerType.hx),r(" return OK;"),r("}"),Dv(r,A),x.join(`
|
|
1664
|
-
`)}var
|
|
1665
|
-
`),Dx=i0.filePaths.studio.auto.dlo.autoDdeInc.replace("X",Ex.libraryName),lA=vx.Utils.joinPath(w,Dx);R0.length&&(O.log("Generated",Dx),await g.writeFile(lA,R0))}let U=
|
|
1666
|
-
`)),O.log("Generated",i0.filePaths.studio.auto.dlo.autoDdeInc.replace("X","app"));let V0=vx.Utils.joinPath(w,i0.filePaths.studio.auto.dlo.autoDdeInc.replace("X","main"));await g.writeFile(V0,U),O.log("Generated",i0.filePaths.studio.auto.dlo.autoDdeInc.replace("X","main")),await R(w,g,O)}e0.exportAutoDloFiles=I;async function L(w,g,O,Y){let x0=await W.read(w,g),H=W.isLibrary(x0),Z=vx.Utils.joinPath(w,i0.filePaths.dist.path,"dde-api.yaml");await g.rm(Z).catch(()=>{});let r0=vx.Utils.joinPath(w,i0.filePaths.dist.ddeApi);if(await g.writeFile(r0,Cn(Y,x0)),O.log("Generated",i0.filePaths.dist.ddeApi),H){let n0=vx.Utils.joinPath(w,i0.filePaths.dist.ddeApiPath,`${x0.name}.yaml`),K=Cn(Y,x0,x0.name);K.length&&(await g.writeFile(n0,K),O.log("Generated",i0.filePaths.dist.ddeApiPath+`${x0.name}.yaml`))}}e0.exportOpenApi=L;async function R(w,g,O){let Y=vx.Utils.joinPath(w,i0.filePaths.studio.auto.dlo.defaultInc),x0=await bs(w,g);await g.writeFile(Y,x0),O.log("Generated",i0.filePaths.studio.auto.dlo.defaultInc)}e0.exportDefaultInc=R})(oA||={});async function Ss(A,x,r){let e=[],i=await ex.getAll(r);for(let o in i){let t=ex.dependencyToPath(A,o),B=ex.dependencyIdToName(o),l=vx.Utils.joinPath(t,`${Ge}/${B}.dde`);await x.stat(l)&&e.push({libraryName:B,path:l,yaml:await oA.readYamlFile(l,x)})}if(W.isLibrary(r)){let o=vx.Utils.joinPath(A,`/${Ge}/${r.name}.dde`);await x.stat(o)&&e.push({libraryName:r.name,path:o,yaml:await oA.readYamlFile(o,x)})}return e}function dv(A,x,r){if(typeof A=="string")return A;if(typeof A!="object"||A===null)return"";let e=A[x];if(typeof e=="string")return e;if(typeof e!="object"||e===null)return"";let i=r?.missingProperty;return i?e[i]??"":""}function uv(A,x,r,e){let o={required:()=>`Missing required property '${x.missingProperty}'.`,additionalProperties:()=>`Unknown property '${x.additionalProperty}' is not allowed.`,type:()=>`Must be of type '${x.type}'.`,enum:()=>`Must be one of the allowed values: ${JSON.stringify(x.allowedValues)}.`,pattern:()=>`Value does not match the required pattern. ${e?.patternErrorMessage??r}`,minimum:()=>`${r}.`,maximum:()=>`${r}.`,exclusiveMinimum:()=>`${r}.`,exclusiveMaximum:()=>`${r}.`,not:()=>`This value is not allowed here. ${e?.description??""}`.trimEnd(),anyOf:()=>`Value does not match any of the allowed schemas. ${e?.description??""}`.trimEnd(),oneOf:()=>`Value does not match any of the allowed schemas. ${e?.description??""}`.trimEnd()}[A];return o?o():r}function bv(A){let x=A.instancePath||"/",r=A.parentSchema,e=dv(r?.errorMessage,A.keyword,A.params);if(e)return`${x}: ${e}`;let i=A.message||"unknown validation error";return`${x}: ${uv(A.keyword,A.params,i,r)}`}function pv(A,x){let r=x.split("/").filter(Boolean).map(e=>{let i=Number(e);return Number.isNaN(i)?e:i});for(let e=r.length;e>=0;e--){let i=r.slice(0,e),o=A.getIn(i,!0);if(o?.range)return o.range}return null}function jv(A,x,r){let e=pv(A,r.instancePath||"");return e?Ns(x,e):{line:0,startCharacter:0,endCharacter:0}}var cn=require("vscode-uri");var Ms=cx(require("node:child_process"));var pt;(r=>{async function A(e,i,o){let t=await W.read(e,i);if(await W.isApmPartEnabled(e,i,d0.Part.pov)){o.info("Executing POV build script",t.pov?.details.buildCommand);let{buildCommand:B,workingPath:l}=t.pov.details,D=cn.Utils.joinPath(e,l);try{await Is(D,B,o)}catch(j){throw j.code?new Error(`APM part '${d0.Part.pov}' has errors. Aborted.`):j}}}r.tryBuildPov=A;async function x(e,i,o){let t=await W.read(e,i);if(await W.isApmPartEnabled(e,i,d0.Part.blo,t)){o.info("Executing BLO build script",t.blo?.buildCommand);let{buildCommand:B,workingPath:l}=t.blo,D=cn.Utils.joinPath(e,l);try{await Is(D,B,o)}catch(j){throw j.code?new Error(`APM part '${d0.Part.blo}' has errors. Aborted.`):j}}}r.tryBuildBlo=x})(pt||={});async function Is(A,x,r){return new Promise((e,i)=>{Ms.exec(x,{cwd:A.fsPath,env:process.env},(o,t,B)=>{r.log(t),B&&r.error(B),o&&i(o),e(null)})})}var Ue=require("@gera2ld/tarjs"),Ls=m0.convertBlobToString,Dn=require("pako"),px;(b=>{class A extends Error{_mergedDiagnostics;constructor(q,y){super(q),this.name="BuildError",this._mergedDiagnostics=y}get mergedDiagnostics(){return this._mergedDiagnostics}}b.BuildError=A;async function x(k,q,y,S,T,I=!0,L){I=mv(y,I),await hv(k,q,y,S,T,I);try{let w=await ix.read(k,q,y);await gv(k,q,y,w)}catch(w){y.warn("Could not generate defines.ts:",w)}let R={[d0.Part.dde]:[],[d0.Part.dlo]:[],[d0.Part.dfiles]:[]},e0={[d0.Part.dde]:yv,[d0.Part.dlo]:kv,[d0.Part.dfiles]:_v};try{for(let w of[d0.Part.dde,d0.Part.dlo,d0.Part.dfiles])if(I.includes(w)&&(y.info(`Building ${w.toUpperCase()}...`),await Sv(y,w,e0[w],R[w],k,q)))return R}catch(w){throw L?new A(w?.message,R):w}return I.includes(d0.Part.pov)?await pt.tryBuildPov(k,q,y):y.info("Skipping pov build"),I.includes(d0.Part.blo)?await pt.tryBuildBlo(k,q,y):y.info("Skipping blo build"),await wv(k,q,y),await $v(k,q,y),y.done("Project build completed."),R}b.buildAll=x;async function r(k,q,y,S,T,I,L){let R=await W.read(k,q);return W.isLibrary(R)?(y.info("Library project detected. Publishing library..."),o(k,q,y,T,S)):(y.info("App project detected. Publishing app..."),i(k,q,y,T,I,L,S))}b.release=r;async function e(k,q,y,S,T,I){let L=await W.read(k,q),R=`${L.name}-${L.version}.tar.gz`,e0=null;if(W.isLibrary(L))y.info("Library project detected. Packing library..."),e0=await Rs(k,q,y,T,S);else{y.info("App project detected. Packing app...");let g=await Os(k,q,y,T,I,S);e0=await Tv(g)}let w=kr.Utils.joinPath(k,R);e0!==null?(await q.writeFile(w,e0),y.done(`Packaged: ${w.fsPath}`)):y.error(`Could not create archive: ${w.fsPath}`)}b.pack=e;async function i(k,q,y,S,T,I=null,L){if(!await d0.validateAccess(k,q,S,!1,L))throw new Error("Could not validate access to application");let e0=await Os(k,q,y,S,T,L);await d0.updateProfile(k,q,S,L);let w=await d0.publishTag(k,q,S,e0,L);if(I!==null){let g=await W.read(k,q);await xx.updateExistingApplicationVersion(S,g.publisher,g.registry?.id,g.version,{allowedBackends:I},L),y.info(`Tag "${w.version}" with phase "${w.phase}" shared with ${[...I].join(";")}!`)}y.done(`Tag "${w.version}" with phase "${w.phase}" published!`)}b.releaseAPM=i;async function o(k,q,y,S,T){let I=await W.read(k,q),L=await Rs(k,q,y,S,T);await te.publishPackage(S,I,L,T),y.done(`Library "${I.publisher}/${I.name}" with version "${I.version}" published!`)}b.releaseLibrary=o;async function t(k,q,y,S,T,I,L,R=null){if(I==="*"){let H=await W.read(k,q);I=`${H.name}-${H.version}.tar.gz`,y.info(`Publishing detected archive package "${I}"...`)}let e0=kr.Utils.joinPath(k,I);if(!await q.stat(e0))throw new Error(`Archive package not found: ${e0.fsPath}`);let w=await q.readFile(e0),g=await Nv(w),{publisher:O,registry:Y,version:x0}=g;W.isLibrary(g)?(await te.publishPackage(S,g,w,T),y.done(`Library "${O}/${g.name}" with version "${g.version}" published!`)):(await xx.updateApplicationFile(S,O,Y.id,x0,"app.tar.gz",w,T),await xx.updateExistingApplicationVersion(S,O,Y?.id,x0,{allowedBackends:R||void 0,phase:L||void 0},T),y.info(`Tag "${x0}" with phase "${L}" shared with ${[...R||""].join(";")}!`),y.done(`Tag "${x0}" with phase "${L}" published!`))}b.publishArchive=t;async function B(k,q,y){let S;try{S=await q.readFile(kr.Utils.joinPath(k,"README.md"))}catch{throw new Error('Could not find "README.md". "README.md" is required for publishing.')}if(Ls(S)===i0.readme(y))throw new Error('"README.md" matches the default template. Please write a brief project description.');return S}b.getReadmeFile=B;async function l(k,q){let y;try{y=await q.readFile(kr.Utils.joinPath(k,"CHANGELOG.md"))}catch{throw new Error('Could not find "CHANGELOG.md". "CHANGELOG.md" is required for publishing.')}if(Ls(y)===i0.changelog)throw new Error('"CHANGELOG.md" matches the default template.');return y}b.getChangelogFile=l;async function D(k,q,y,S){let T=await W.read(k,q),{name:I,publisher:L,description:R}=T,e0=W.validateProjectName(I,W.isLibrary(T));if(e0)throw new Error(`name: ${e0}`);let w=W.validateDescription(R);if(w)throw new Error(`description: ${w}`);let g=W.validatePublisherId(L)||await W.validatePublisherOnline(y,L,S);if(g)throw new Error(`publisher: ${g}`);if(!W.isLibrary(T)&&(await W.validateApplicationIcon(k,q,T),W.validateEngineSettings(T),W.isApp(T)&&await W.isApmPartEnabled(k,q,d0.Part.dlo,T)&&(!T.dpid||!Object.values(W.DeviceProfiles).includes(T.dpid))))throw new Error("dpid: The device profile is needed to compile a dlo")}b.validatePublishSettings=D;async function j(k,q){let y=Dn.ungzip(k),S=await Ue.TarReader.load(y),T={};for(let I of S.fileInfos)q.includes(I.name)&&(T[I.name]=S.getFileBlob(I.name));return T}b.readFilesFromTarGz=j})(px||={});function mv(A,x){let r=Object.values(d0.Part);return x===!0?(A.info("Building project..."),r):x===!1?[]:x}async function hv(A,x,r,e,i,o){o.includes(d0.Part.dde)&&await oA.fetchPreviousHistoryJson(A,x,r,e,i)}async function gv(A,x,r,e){e.defaultsOnly?(await ix.exportDefinesTs(A,x,e.defaultsOnly),r.log("Generated",i0.filePaths.dist.definesTs,"(defaults only)"),await ix.exportDefinesTs(A,x,e,i0.filePaths.dist.definesAppTs),r.log("Generated",i0.filePaths.dist.definesAppTs,"(with app.ini overrides)")):(await ix.exportDefinesTs(A,x,e),r.log("Generated",i0.filePaths.dist.definesTs))}async function yv(A,x,r){let e=await oA.compileDDE(A,x,r);if(e.ddeJSON){await oA.exportMyDatanetXML(A,x,r,e.ddeJSON);let i=await W.read(A,x);W.isLibrary(i)||await oA.exportHistoryJson(A,x,r,e.ddeJSON),await oA.exportOpenApi(A,x,r,e.ddeJSON),await W.isApmPartEnabled(A,x,d0.Part.dlo,i)&&(await oA.exportAutoDloFiles(A,x,r,e.ddeJSON),await at.exportDloConfig(A,x,r))}return e.diagnostics}async function kv(A,x,r){let e=new ee(A,x,r),{diagnostics:i}=await e.compile(A,x);return i}async function _v(A,x,r){return await Ft.process(A,x,r)}async function wv(A,x,r){let e=await W.read(A,x);W.isLibrary(e)&&await Wr.normalizeLibraryParts(A,x,e,r)}async function $v(A,x,r){let e=kr.Utils.joinPath(A,i0.fileNames.reportTemplate);if(await x.stat(e)){let i=kr.Utils.joinPath(A,i0.filePaths.dist.reportTemplate);await x.copy(e,i),r.log(`Copied "${i0.fileNames.reportTemplate}" to dist folder.`)}}function qv(A,x,r){x!==d0.Part.dlo&&Pv(A,r);let e=r.some(i=>i.level==="error");if(e){let i=`APM part "${x}" has errors. Aborted.`;throw new Error(i)}return e}async function Sv(A,x,r,e,i,o){let t=await r(i,o,A);return e.push(...t),qv(A,x,t)}function Pv(A,x){x.forEach(r=>{let e=r.startCharacter?`:${r.startCharacter+1}`:"",i=`${r.file.path}:${r.line+1}${e} - ${r.message}`;r.level==="error"?A.error(i):r.level==="warning"?A.warn(i):A.log(i)})}async function Rs(A,x,r,e,i){let o=await W.read(A,x);return await W.validateBasicManifest(A,x,o),await px.buildAll(A,x,r,i,e),await te.createArchive(A,x)}async function Os(A,x,r,e,i,o){if(!Object.values(d0.TagPhase).includes(i))throw new Error(`ReleasePhase: ${i} is not a valid release phase`);return await W.validateBasicManifest(A,x,null),await px.buildAll(A,x,r,o,e),await d0.createTag(A,x,i)}async function Tv(A){let x=new Ue.TarWriter;for(let[e,i]of A.entries())if(e==="tag"){let o=i;x.addFile(e,o)}else{let o=i;x.addFile(e,await o.arrayBuffer())}let r=await x.write();return Dn.gzip(await r.arrayBuffer())}async function Nv(A){let x=await Iv(A,["studio.json","src/studio.json"]);if(!x)throw new Error('Could not find "studio.json" in archive');return JSON.parse(await x.text())}async function Iv(A,x){let r=Dn.ungzip(A),e=await Ue.TarReader.load(r);for(let i of e.fileInfos)if(x.includes(i.name))return e.getFileBlob(i.name);return null}var Mv=m0.bufferToBase64;var d0;(j=>{let A;(L=>(L.alpha="alpha",L.beta="beta",L.rc="rc",L.release="release",L.stage="stage",L.passive="passive",L.withdrawn="withdrawn"))(A=j.TagPhase||={});let x;(T=>(T.dde="dde",T.dlo="dlo",T.pov="pov",T.blo="blo",T.dfiles="dfiles"))(x=j.Part||={});function r(b){let{description:k,name:q,pov:y,engines:S,blo:T,publisher:I,type:L}=b,R=L||W.ProjectTypes.app,e0={name:q,abstract:k,author:I||"",pov_location:W.PovLocation.embedded,pov_details_lowlevel:!1,required_be:S?.backend,required_hwfw:S?.hwfw?.join(";"),required_productcode:S?.productId?.join(";"),blo_level:T?.accessLevel||W.BloAccessLevel.restricted,pip_id:""};return y&&y.details&&(e0.pov_location=W.PovLocation.pure,e0.pov_details_lowlevel=!!y.details.lowLevel),R==="addon"&&(e0.required_hwfw=void 0,e0.required_productcode=void 0,e0.addon_max_sources=1,e0.addon_max_per_site=b.maxInstancesPerSite),e0}j.createBaseTagHeader=r;async function e(b,k,q){let y=await W.read(b,k),S=r(y),T={version:y.version,...S,phase:q};return await o(b,k,y,T)}j.createTag=e;async function i(b,k){let q=await W.read(b,k),S={...r(q),blo_autostart:!1};return o(b,k,q,S)}j.createDevTag=i;async function o(b,k,q,y){let S=new FormData;S.append("tag",JSON.stringify(y)),S.append(`src/${W.fileName}`,new Blob([await W.readAsBlob(b,k)]));let T=new Blob([await k.readFile(JA.Utils.joinPath(b,i0.filePaths.dist.ddeXmlPath))]);if(S.append("bin/dde/xml",T),q.icon){let L=await k.readFile(JA.Utils.joinPath(b,q.icon)),R=Mv(L);S.append("previews/00.png",new Blob([`data:image/png;base64,${R}`]))}if(Object.hasOwn(y,"phase")){let L=await px.getReadmeFile(b,k,y.name),R=await px.getChangelogFile(b,k);S.append("previews/README.md",new Blob([L])),S.append("previews/CHANGELOG.md",new Blob([R]))}if(await W.isApmPartEnabled(b,k,"dlo")){let L=new Blob([await k.readFile(JA.Utils.joinPath(b,i0.filePaths.dist.mainAmxPath))]);S.append("bin/dlo/amx",L)}if(await W.isApmPartEnabled(b,k,"pov",q)){await Gs(b,k,S,i0.filePaths.dist.povDetailsPath,"bin/pov/details");let L=new TextEncoder().encode('<!DOCTYPE html><html lang="en">');S.append("bin/pov/list/index.html",new Blob([L]))}let I=await k.findFiles(b,`${i0.filePaths.dist.dfilesPath}/*`);for(let L of I){let R=new Blob([await k.readFile(L)]);S.append(`bin/dfiles/${JA.Utils.basename(L)}`,R)}return await W.isApmPartEnabled(b,k,"blo",q)&&await Gs(b,k,S,i0.filePaths.dist.bloPath,"bin/blo"),await Lv(b,k,S),S}j.createBuffer=o;async function t(b,k,q,y,S){let T=await W.read(b,k);y||await px.validatePublishSettings(b,k,q,S);let{registry:I}=T,L=I?.id;if(!L&&!y&&(L=await B(b,k,q,T,S)),L){let{publisher:R}=T;if(!R)return null;try{return{id:L,...await xx.getExistingApplication(q,R,L,S)}}catch(e0){if(e0?.message==="Could not find given application")return L=await B(b,k,q,T,S),{id:L,...await xx.getExistingApplication(q,R,L,S)}}}return null}j.validateAccess=t;async function B(b,k,q,y,S){let T="myDatanet",{publisher:I,name:L,description:R,registry:e0}=y,w={id:e0?.id,type:y.type||W.ProjectTypes.app,name:L,targetSystem:T,description:R||"",allowedBackends:null};W.isAddon(y)&&(w.allowedApplications=null);let g=await xx.createNewApplication(q,I,w,S);if(!g)throw new Error("Failed to initialize application");return y.registry={id:g},await W.write(b,k,y),g}j.registerNew=B;async function l(b,k,q,y){let{name:S,publisher:T,description:I,registry:L}=await W.read(b,k),R=L?.id;await xx.updateExistingApplication(q,T,R,{description:I,name:S,targetSystem:"myDatanet"},y)}j.updateProfile=l;async function D(b,k,q,y,S){let{publisher:T,registry:I,version:L}=await W.read(b,k);return await xx.publishApplicationVersion(q,T,I?.id,L,y,S)}j.publishTag=D})(d0||={});async function Gs(A,x,r,e,i){let o=await x.findFiles(A,`${e}/**`);for(let t of o){let B=JA.Utils.joinPath(A,e),l=t.path.substring(B.path.length+1),D=new Blob([await x.readFile(JA.Utils.joinPath(A,`${e}/${l}`))]);r.append(`${i}/${l}`,D)}}async function Lv(A,x,r){let e=JA.Utils.joinPath(A,i0.filePaths.dist.reportTemplate);if(await x.stat(e)){let o=new Blob([await x.readFile(e)]);r.append("bin/pov/mdn_report_template.json",o)}let i=JA.Utils.joinPath(A,i0.filePaths.dist.historyJson);await x.stat(i)&&r.append("src/dde/history.json",new Blob([await x.readFile(i)]))}var Ra=cx(require("update-notifier"));function Rv(A,x,r){let e=x.split(".").filter(Boolean),i=A;for(let o=0;o<e.length;o++){let t=e[o];o===e.length-1?i[t]=r:((typeof i[t]!="object"||i[t]===null||Array.isArray(i[t]))&&(i[t]={}),i=i[t])}}function Us(A){let x=A.args,r={};for(let e=0;e<x.length;e++){let i=x[e];if(!i||!i.startsWith("--"))continue;let[o,t]=i.split("=",2),B=o.slice(2),l=!0;if(t!==void 0)l=t;else{let D=x[e+1];D&&!D.startsWith("-")&&(l=D,e++)}B.includes(".")?Rv(r,B,l):r[B]=l}return r}var Sa=require("usb");var Da=require("events");var pa=require("events"),ja=require("events"),ma=require("events"),ya=require("events"),wa=require("events"),qa=require("events");var Ov=Object.create,_n=Object.defineProperty,Gv=Object.getOwnPropertyDescriptor,aa=Object.getOwnPropertyNames,Uv=Object.getPrototypeOf,Hv=Object.prototype.hasOwnProperty,Kv=(A,x,r)=>x in A?_n(A,x,{enumerable:!0,configurable:!0,writable:!0,value:r}):A[x]=r,Hs=(A=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(A,{get:(x,r)=>(typeof require<"u"?require:x)[r]}):A)(function(A){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+A+'" is not supported')}),zv=(A,x)=>function(){try{return x||(0,A[aa(A)[0]])((x={exports:{}}).exports,x),x.exports}catch(e){throw x=0,e}},Jv=(A,x,r,e)=>{if(x&&typeof x=="object"||typeof x=="function")for(let i of aa(x))!Hv.call(A,i)&&i!==r&&_n(A,i,{get:()=>x[i],enumerable:!(e=Gv(x,i))||e.enumerable});return A},Vv=(A,x,r)=>(r=A!=null?Ov(Uv(A)):{},Jv(x||!A||!A.__esModule?_n(r,"default",{value:A,enumerable:!0}):r,A)),C0=(A,x,r)=>Kv(A,typeof x!="symbol"?x+"":x,r),Wv=zv({"mdn_com_wasm/bin/mdnCOM.js"(A,x){"use strict";var r=(()=>{var e=globalThis.document?.currentScript?.src;return async function(i={}){var o;(function(){function E(A0){A0=A0.split("-")[0];for(var B0=A0.split(".").slice(0,3);B0.length<3;)B0.push("00");return B0=B0.map((c0,K0,H0)=>c0.padStart(2,"0")),B0.join("")}var C=A0=>[A0/1e4|0,(A0/100|0)%100,A0%100].join("."),m=2147483647,P=typeof process<"u"&&process.versions?.node?E(process.versions.node):m;if(P<180300)throw new Error(`This emscripten-generated code requires node v${C(180300)} (detected v${C(P)})`);var N=typeof navigator<"u"&&navigator.userAgent;if(N){var X=N.includes("Safari/")&&!N.includes("Chrome/")&&N.match(/Version\/(\d+\.?\d*\.?\d*)/)?E(N.match(/Version\/(\d+\.?\d*\.?\d*)/)[1]):m;if(X<15e4)throw new Error(`This emscripten-generated code requires Safari v${C(15e4)} (detected v${X})`);var V=N.match(/Firefox\/(\d+(?:\.\d+)?)/)?parseFloat(N.match(/Firefox\/(\d+(?:\.\d+)?)/)[1]):m;if(V<79)throw new Error(`This emscripten-generated code requires Firefox v79 (detected v${V})`);var Q=N.match(/Chrome\/(\d+(?:\.\d+)?)/)?parseFloat(N.match(/Chrome\/(\d+(?:\.\d+)?)/)[1]):m;if(Q<85)throw new Error(`This emscripten-generated code requires Chrome v85 (detected v${Q})`)}})();var t=i,B=!!globalThis.window,l=!!globalThis.WorkerGlobalScope,D=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer",j=!B&&!D&&!l,b=[],k="./this.program",q=(E,C)=>{throw C};typeof __filename<"u"?e=__filename:l&&(e=self.location.href);var y="",S,T;if(D){if(!(globalThis.process?.versions?.node&&globalThis.process?.type!="renderer"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");var I=Hs("fs");y=__dirname+"/",T=C=>{C=O(C)?new URL(C):C;var m=I.readFileSync(C);return g(Buffer.isBuffer(m)),m},S=async(C,m=!0)=>{C=O(C)?new URL(C):C;var P=I.readFileSync(C,m?void 0:"utf8");return g(m?Buffer.isBuffer(P):typeof P=="string"),P},process.argv.length>1&&(k=process.argv[1].replace(/\\/g,"/")),b=process.argv.slice(2),q=(C,m)=>{throw process.exitCode=C,m}}else if(!j)if(B||l){try{y=new URL(".",e).href}catch{}if(!(globalThis.window||globalThis.WorkerGlobalScope))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");l&&(T=E=>{var C=new XMLHttpRequest;return C.open("GET",E,!1),C.responseType="arraybuffer",C.send(null),new Uint8Array(C.response)}),S=async E=>{if(O(E))return new Promise((m,P)=>{var N=new XMLHttpRequest;N.open("GET",E,!0),N.responseType="arraybuffer",N.onload=()=>{if(N.status==200||N.status==0&&N.response){m(N.response);return}P(N.status)},N.onerror=P,N.send(null)});var C=await fetch(E,{credentials:"same-origin"});if(C.ok)return C.arrayBuffer();throw new Error(C.status+" : "+C.url)}}else throw new Error("environment detection error");var L=console.log.bind(console),R=console.error.bind(console);g(!j,"shell environment detected but not enabled at build time (add `shell` to `-sENVIRONMENT` to enable)");var e0;globalThis.WebAssembly||R("no native wasm support detected");var w=!1;function g(E,C){E||R0("Assertion failed"+(C?": "+C:""))}var O=E=>E.startsWith("file://");function Y(){var E=zt();g((E&3)==0),E==0&&(E+=4),h0[E>>2]=34821223,h0[E+4>>2]=2310721022,h0[0]=1668509029}function x0(){if(!w){var E=zt();E==0&&(E+=4);var C=h0[E>>2],m=h0[E+4>>2];(C!=34821223||m!=2310721022)&&R0(`Stack overflow! Stack cookie has been overwritten at ${sx(E)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${sx(m)} ${sx(C)}`),h0[0]!=1668509029&&R0("Runtime error: The application has corrupted its heap memory area (address zero)!")}}class H{}class Z extends H{}var r0=!0;(()=>{var E=new Int16Array(1),C=new Int8Array(E.buffer);E[0]=25459,(C[0]!==115||C[1]!==99)&&R0("Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)")})();function n0(E){Object.getOwnPropertyDescriptor(t,E)||Object.defineProperty(t,E,{configurable:!0,set(){R0(`Attempt to set \`Module.${E}\` after it has already been processed. This can happen, for example, when code is injected via '--post-js' rather than '--pre-js'`)}})}function K(E){return()=>g(!1,`call to '${E}' via reference taken before Wasm module initialization`)}function U(E){Object.getOwnPropertyDescriptor(t,E)&&R0(`\`Module.${E}\` was supplied but \`${E}\` not included in INCOMING_MODULE_JS_API`)}function a0(E){return E==="FS_createPath"||E==="FS_createDataFile"||E==="FS_createPreloadedFile"||E==="FS_preloadFile"||E==="FS_unlink"||E==="addRunDependency"||E==="FS_createLazyFile"||E==="FS_createDevice"||E==="removeRunDependency"}function v0(E){D0(E)}function D0(E){Object.getOwnPropertyDescriptor(t,E)||Object.defineProperty(t,E,{configurable:!0,get(){var C=`'${E}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`;a0(E)&&(C+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),R0(C)}})}function u0(E){for(var C=0,m=E.length,P=new Uint8Array(m),N;C<m;++C)N=E.charCodeAt(C),P[C]=~N>>8&N;return P}var _0,q0,V0=!1;function Ex(){var E=At.buffer;Ix=new Int8Array(E),cA=new Int16Array(E),t.HEAPU8=Bx=new Uint8Array(E),Z0=new Uint16Array(E),DA=new Int32Array(E),h0=new Uint32Array(E),Nr=new Float32Array(E),xr=new Float64Array(E),Tr=new BigInt64Array(E),Kx=new BigUint64Array(E)}g(globalThis.Int32Array&&globalThis.Float64Array&&Int32Array.prototype.subarray&&Int32Array.prototype.set,"JS engine does not provide full typed array support");function fA(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)fe(t.preRun.shift());n0("preRun"),AA(E0)}function CA(){g(!V0),V0=!0,x0(),Jr.__wasm_call_ctors()}function PA(){if(x0(),t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)dA(t.postRun.shift());n0("postRun"),AA(zx)}function R0(E){t.onAbort?.(E),E=`Aborted(${E})`,R(E),w=!0;var C=new WebAssembly.RuntimeError(E);throw q0?.(C),C}function Dx(){R0("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM")}var lA={init:Dx,createDataFile:Dx,createPreloadedFile:Dx,createLazyFile:Dx,open:Dx,mkdev:Dx,registerDevice:Dx,analyzePath:Dx,ErrnoError:Dx};function O0(E,C){return(...m)=>{g(V0,`native function \`${E}\` called before runtime initialization`);var P=Jr[E];return g(P,`exported native function \`${E}\` not found`),g(m.length<=C,`native function \`${E}\` called with ${m.length} args but expects ${C}`),P(...m)}}var M0;function G0(){return u0(`\0asm\0\0\0\xCF\`\x7F\0\`\x7F\x7F\0\`\x7F\x7F\`\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\`\x7F\x7F\x7F\0\`\0\0\`\x7F\x7F\x7F\x7F\0\`\0\x7F\`\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F~\x7F~\`
|
|
1659
|
+
`)}function t(B,l,D=!1){let j=Cs(l)?"":'"';D&&(j=""),i(`#define ${B} ${j}${l}${j}`)}return P8(o,t,r),T8(i,o,t,x),L8(i,o,A),R8(i,o,A),e.join(`
|
|
1660
|
+
`)}var Re=class{constructor(x,r,e){this.manifest=x;this.ddeMap=r;this.context=e;this.sourceType="pawnSource"}manifest;ddeMap;context;globalVariables=[];pawnGlobalSource=[];pawnHelperSource=[];timeSeriesSource=[];readWriteSource=[];definesSource=[];defaultDefinesSource=[];knownDefines=[];pawnIndent=0;sourceType;pawn(x,r){r&&x==="<"&&this.pawnIndent--,{pawnSource:this.pawnGlobalSource,globalVariables:this.globalVariables,timeseries:this.timeSeriesSource,readWrite:this.readWriteSource,defines:this.definesSource,defaultDefines:this.defaultDefinesSource}[this.sourceType].push(" ".repeat(this.pawnIndent)+(r||x)),r&&x===">"&&this.pawnIndent++}generate(){for(let[x,r]of Object.entries(this.ddeMap.containers))this.context&&!r.libraries.includes(this.context)||!En(r.containerType,r.transferDirection)||!r.fields||!this.context&&!L0.hasContainerAppFields(r)||Le[x].ctype!==jx.cx&&this.context||(this.generateGlobalVarsForContainer(r),this.generateReadWriteFunctions(r));return this.mergeSourceTypes(),{globals:this.pawnGlobalSource,helper:this.pawnHelperSource}}createGlobalVar(x,r){this.sourceType="globalVariables";let e=r?this.variableNameForPawnDefinition(x,r):x;if(r){let i=this.generateCommentForField(r);i&&(Array.isArray(i)?(this.pawn("/**"),i.forEach(o=>{this.pawn(` * ${o}`)}),this.pawn(" */")):this.pawn(`// ${i}`))}this.pawn(`stock ${e}${r?this.initialiserForGlobalVar(r):""};`)}initialiserForGlobalVar(x){if(x.defaultDloDefine===void 0||x.arrayRef)return"";let r=Zx(x);return!r||r==="skip"||`${r.rwp||""}`.includes("%l")?"":` = ${x.defaultDloDefine}`}insertSection(x){this.pawn(""),this.pawn("// ============================================================================="),this.pawn(`// ${x}`),this.pawn("// ============================================================================="),this.pawn("")}mergeSourceTypes(){this.sourceType="pawnSource",this.definesSource.length&&(this.insertSection("Defines"),this.pawnGlobalSource.push(...this.definesSource)),this.defaultDefinesSource.length&&(this.insertSection("Field defaults"),this.pawnGlobalSource.push(...this.defaultDefinesSource)),this.globalVariables.length&&(this.insertSection("Global Variables"),this.pawnGlobalSource.push(...this.globalVariables)),this.readWriteSource.length&&(this.insertSection("Internal read/write calls"),this.pawnHelperSource.push(...this.readWriteSource)),this.pawn("")}generateGlobalVarsForContainer(x){this.sourceType="globalVariables",this.pawn(""),this.pawn(`// Container '${x.title.replace("_"," ")}'`),this.pawn("");let r=`DDE_${x.title}`;this.generateArrayDefines(r,x);for(let e of x.fields){if(e.type==="shadow"||e.shadowRef||e.library!==this.context)continue;if(e.arrayRef!==null){let o=x.arrays[e.arrayRef.name],t=`${r}_${e.arrayRef.name}`;o.fields?.length&&(t+=`_${e.name.split(".")[1]}`),this.createDefaultDefineForField(t,e);continue}let i=this.generateFieldVariableName(r,e);this.createDefaultDefineForField(i,e),this.createGlobalVar(`${i}`,e)}}generateArrayDefines(x,r){for(let e of Object.values(r.arrays)){if(this.context!==e.library)continue;let i=`${x}_${e.name}_dim`;if(this.sourceType="defines",this.pawn(`#define ${i} ${e.length}`),e.fields){for(let B of e.fields)lt[B.type]?.isBlob&&B.byteSize&&this.addDefine(`${x}_${e.name}_${B.name}_dim`,B.byteSize);let o={...r};o.fields=[],e.fields.forEach(B=>{o.fields.push({arrayRef:null,shadowRef:null,byteOffset:0,byteSize:B.byteSize,id:B.name,library:e.library,name:B.name,type:B.type,title:null,index:0})});let t=`${x}_${e.name}_def`;this.generateTypeDefinitions(o,t),this.createGlobalVar(`${x}_${e.name}[${i}][${t}]`)}else this.createGlobalVar(`${x}_${e.name}[${i}]`)}}generateCommentForField(x){let r=[`@type ${x.type}`];if(x.description&&r.unshift(x.description),x.defaultValue!==void 0){let{value:e,reason:i}=this.parseFieldDefault(x);r.push(`@default ${e} ${i||""}`)}return r}generateFieldVariableName(x,r){let e=`${x}_${r.name}`,i=Object.hasOwn(lt,r.type)&<[r.type].isBlob,o=r.byteSize;return o&&i&&(this.sourceType="defines",this.pawn(`#define ${x}_${r.name}_dim ${o}`),this.pawn(`#define ${x}_${r.name}_iter() for(new i=0;i<${o};i++)`)),this.sourceType="globalVariables",e}generateTypeDefinitions(x,r){this.sourceType="defines";let e=x.fields;if(!e)return;let i=[];this.pawn(">",`#define ${r} [`);for(let o of e){let t=this.generateFieldTypeDefinition(o,x,i,r);t!==null&&this.pawn(t)}this.pawn("<","]")}handleArrayFieldDedup(x,r,e,i){let o=x.arrayRef;if(o){let l=r.arrays[o.name];if(!e.includes(o.name)&&!l.fields)e.push(o.name);else return null}let t=x.arrayRef?x.arrayRef.name:x.name,B=x.arrayRef?`[${i}_${t}_dim]`:"";return{fieldName:t,fld_dim:B}}generateFieldTypeDefinition(x,r,e,i){if(x.type==="shadow"||x.shadowRef||x.library!==this.context)return null;let o=this.handleArrayFieldDedup(x,r,e,i);if(o===null)return null;let{fieldName:t,fld_dim:B}=o,l="";if(x.type==="struct")l="// ."+t+B;else{let D=Zx(x);if(!D)return null;D==="skip"?l=`// skipped - .${t}${B}`:l+=D.rwp.replace("%n",`.${t}${B}`).replace("%l",x.byteSize)}return l+=",",x.library&&(l+=` // declared by ${x.library} library`),l}variableNameForPawnDefinition(x,r){let e=Zx(r);return e&&e!=="skip"?e.rwp.replace("%n",`${x}`).replace("%l",r.byteSize):x}createDefaultDefineForField(x,r){if(this.sourceType="defaultDefines",r.scale!==void 0&&this.addDefine(`${x}_scale`,r.scale),r.offset!==void 0&&this.addDefine(`${x}_offset`,r.offset),r.defaultValue!==void 0&&S8(r)){let{value:e,reason:i}=this.parseFieldDefault(r),o=`${x}_default`;this.addDefine(o,e,i)&&(r.defaultDloDefine=o)}}addDefine(x,r,e){return Ie.exec(`${r}`)?!1:(this.knownDefines.includes(x)||(e&&this.pawn(`// ${e}`),this.pawn(`#define ${x} ${r}`),this.knownDefines.push(x)),!0)}generateReadWriteFunctions(x){let r=x.name,e=Le[r],i=`DDE_${x.containerType===jx.aloha?jx.aloha:x.title}`;[N0.both,N0.bothPlus,N0.none,N0.deviceOnly,N0.up,N0.upPlus].includes(x.transferDirection)&&this.generateWriteMethod(i,x),e.ctype===jx.cx&&this.generateReadMethod(i,x)}generateWriteMethod(x,r){this.sourceType="readWrite";let e=`DDE_${r.title}_id`,i=[jx.hx,jx.aloha].includes(r.containerType),o=r.containerType===jx.hx,t=r.containerType===jx.aloha,B=`_${x}_write`,l=vn(this.manifest)?", flags":"",D=o?`stamp${l}`:"",j=vn(this.manifest)?"const stamp=0, const flags=0":"const stamp=0";this.pawn(">",`stock ${B}(${o?j:""}) {`),i&&this.pawn(`dde_wbegin(DDE_${t?jx.aloha:r.title}_id);`),this.generateRWFunctionBody(x,r,"dde_w"),i&&this.pawn(`return dde_wend(${D});`),this.pawn("<","}"),this.pawn(""),this.sourceType="globalVariables";let b=`${x}_transfer`,k=`${x}_persist`,q=this.functionArgumentsForDdeWrite(o,i);if(this.pawn(">",`${this.context?"stock ":""}${b}(${q}) {`),i)this.pawn(`${B}(${D});`);else{let y=r.name.slice(-1);this.pawn(`dde_flush(${y}, immediate);`)}this.pawn("<","}"),this.pawn(""),r.volatile&&(this.pawn(">",`stock ${k}() {`),this.pawn(`return rM2M_CfgFlush(${e});`),this.pawn("<","}"))}functionArgumentsForDdeWrite(x,r){let e=vn(this.manifest)?", const flags=0":"";return x?`const stamp=0${e}`:r?"":"bool:immediate=false"}generateReadMethod(x,r){this.sourceType="readWrite";let e=`_${x}_read`;this.pawn(">",`stock ${e}() {`),this.generateRWFunctionBody(x,r,"dde_r"),this.pawn("<","}"),this.pawn("")}isFieldSkipped(x){return x.type==="shadow"||!!x.shadowRef||x.library!==this.context}emitFieldRW(x,r,e,i,o,t,B){if(!r.arrayRef)return this.emitSingleField(x,r,e,i,B);let l=r.arrayRef.name,D=o.get(l);return D?t.has(l)?B:(t.add(l),this.emitArrayLoop(x,D,e)):this.emitSingleField(x,r,e,i,B)}generateRWFunctionBody(x,r,e){let i=r.fields,o=this.analyzeArrayGroups(i,x,r),t=new Set,B=-1;for(let l of i){if(this.isFieldSkipped(l))continue;let D=Zx(l);!D||D==="skip"||(B=this.emitFieldRW(x,l,e,D,o,t,B))}}defaultArgumentFor(x,r){return x.defaultDloDefine===void 0?"":r==="dde_r"||$8(this.manifest)?`, ${x.defaultDloDefine}`:""}emitSingleField(x,r,e,i,o){r.byteOffset!==o&&this.pawn(`_dde_idx = ${r.byteOffset};`);let t="";t+=e,t+=i.rwfunc;let B=`${x}_${r.name}`;return t+=`(${B}`,i.rwlen&&(t+=`, ${r.byteSize}`),t+=this.defaultArgumentFor(r,e),this.pawn(t+");"),r.byteOffset+r.byteSize}emitArrayLoop(x,r,e){this.pawn(">",`for (new _i = 0; _i < ${r.dimDefine}; _i++) {`);let i=-1;for(let o of r.templateFields){let t=Zx(o);if(!t||t==="skip")continue;let B=o.byteOffset;B!==i&&this.pawn(`_dde_idx = ${B} + (_i * ${r.stride});`),i=B+o.byteSize;let l=`${x}_${o.name.replace(/\[\d+\]/,"[_i]")}`,D=`${e}${t.rwfunc}(${l}`;t.rwlen&&(D+=`, ${o.byteSize}`),D+=this.defaultArgumentFor(o,e),this.pawn(D+");")}return this.pawn("<","}"),-1}analyzeArrayGroups(x,r,e){let i=this.collectArrayFieldsByIndex(x);return this.buildArrayGroups(i,r,e)}collectArrayFieldsByIndex(x){let r=new Map;for(let e of x){if(this.isFieldSkipped(e)||!e.arrayRef)continue;let i=Zx(e);if(!i||i==="skip")continue;let{name:o,index:t}=e.arrayRef;r.has(o)||r.set(o,new Map);let B=r.get(o);B.has(t)||B.set(t,[]),B.get(t).push(e)}return r}validateArrayStride(x,r){let e=r[0].byteOffset-x[0].byteOffset;if(e<=0)return null;for(let i=0;i<x.length;i++)if(r[i].byteOffset-x[i].byteOffset!==e)return null;return e}buildArrayGroups(x,r,e){let i=new Map;for(let[o,t]of x){let B=e.arrays[o];if(!B||B.length<2)continue;let l=t.get(0),D=t.get(1);if(!l||!D||l.length===0||D.length===0||l.length!==D.length)continue;let j=this.validateArrayStride(l,D);j!==null&&i.set(o,{arrayName:o,dimDefine:`${r}_${o}_dim`,stride:j,templateFields:l})}return i}parseFieldDefault(x){let r=Zx(x),e=x.defaultValue;function i(t,B){return{value:t,reason:B}}switch(x.type){case"astring":case"nstring":case"cstring":return i(`"${e}"`);case"wstring":return i(`''${e}''`);case"ustring":return i(`/* default not supported: ${e} */`);case"binary":{let B=`{ 0x${(e.substring(2).replace(/\s+/g,"").match(/.{1,2}/g)||[]).join(", 0x")} }`;return i(B)}}if(e==="NaN"){let t=r.rwfunc;return i(`${t}_NaN`.toUpperCase())}let o=this.parseFieldScaleOffset(x);return o?i(o.calculated,o.reason):(e!==void 0&&!Ie.exec(`${e}`)&&x.type.startsWith("float")&&e%1===0&&(e=e.toFixed(x.decimalPlaces||1)),i(`${e}`))}parseFieldScaleOffset(x){let r=x.defaultValue;if(!(!!Ie.exec(`${x.offset}`)||!!Ie.exec(`${x.scale}`)||!!Ie.exec(`${x.defaultValue}`))&&(x.offset!==void 0||x.scale!==void 0)){let i=x.offset!==void 0?Number(x.offset):0,o=x.scale!==void 0?Number(x.scale):1;if(o===0)return null;let t=(Number(r)-i)/o,B=`(defaultValue - offset) / scale -> (${r} - ${i}) / ${o}`;return x.type.startsWith("float")?t%1===0&&(t=t.toFixed(1)):(t=Math.round(t),B=`Rounded value of: ${B}`),{calculated:t,reason:B}}return null}};function O8(A){return`${`onUplinkApply_${A}()`};`}function cs(A,x,r){x.libraries.forEach(e=>{let i=m0.generateHashForLibraryName(e);A(` #ifdef _${i}${r}_${x.title}`),A(` _${i}${r}_${x.title}(); // ${e}`),A(" #endif")})}function G8(A,x){A("stock _onUplinkEvent(ev, param) {"),x.forEach(r=>{let i=`_${m0.generateHashForLibraryName(r)}UplinkEvent`;A(` #ifdef ${i}`),A(` ${i}(ev, param);`),A(" #endif")}),A(" onUplinkEvent(ev, param);"),A("}")}function U8(A){let x=[],r=[];for(let[e,i]of Object.entries(A.containers))Le[e].ctype===jx.cx&&([N0.up,N0.upPlus,N0.deviceOnly].includes(i.transferDirection)&&r.push(i),[N0.bothPlus,N0.both,N0.downPlus,N0.down].includes(i.transferDirection)&&x.push(i));return{containerApply:x,containerRestore:r}}function H8(A,x){x.length&&A("");for(let r of x)r.knownNames.forEach(e=>{A(`forward onUplinkRestore_${e}();`)}),A(""),A(`stock restoreUplink${r.name}() {`),A(` _DDE_${r.name}_read();`),cs(A,r,"Restore"),L0.hasContainerAppFields(r)&&A(` onUplinkRestore_${r.title}();`),A("}");if(A("#pragma warning push"),A("stock _onUplinkRestore(cfgId) {"),x.length){A(" switch(cfgId) {");for(let r of x)A(` case DDE_${r.title}_id: restoreUplink${r.name}(); // ${r.name}`);A(" }")}else A(" #pragma warning disable 203"),A(" // no containers to restore");A("}"),A("#pragma warning pop")}function K8(A,x){x.length&&A("");for(let r of x)r.knownNames.forEach(e=>{A(`forward onUplinkApply_${e}();`)}),A(""),A(`stock applyUplink${r.name}() {`),A(` _DDE_${r.name}_read();`),cs(A,r,"Apply"),L0.hasContainerAppFields(r)&&A(` ${O8(r.title)}`),A(" return(OK);"),A("}");if(A("#pragma warning push"),A("stock _onUplinkApply(cfgId) {"),x.length){A(" switch(cfgId) {");for(let r of x)A(` case DDE_${r.title}_id: return applyUplink${r.name}(); // ${r.name}`);A(" }"),A(" return ERROR;")}else A(" #pragma warning disable 203"),A(" // no containers to apply"),A(" return OK;");A("}"),A("#pragma warning pop")}function Ds(A,x){let r=[],e=r.push.bind(r);G8(e,x);let{containerApply:i,containerRestore:o}=U8(A);return H8(e,o),K8(e,i),r.join(`
|
|
1661
|
+
`)}var z8=_8.map(A=>`_DDE_${A}_write`);function ds(A){let x=[],r=x.push.bind(x),e=[...z8];for(let[i,o]of Object.entries(A.containers)){let t=En(o.containerType,o.transferDirection),B=Le[i];if(!t||!o.fields||B.ctype!==jx.cx)continue;let l=`DDE_${o.name}`,D=`DDE_${o.title}_id`;if([N0.both,N0.bothPlus,N0.none,N0.deviceOnly,N0.up,N0.upPlus].includes(o.transferDirection)){let j=`_${l}_write`;r(`stock ${j}() {`),r(` dde_wbegin(${D});`),fs(r,o,"write"),r(" return dde_wend();"),r("}"),e.splice(e.indexOf(j),1)}if(B.ctype===jx.cx){let j=`_${l}_read`;r(`stock ${j}() {`),r(` if (dde_rbegin(${D})) return ERROR;`),fs(r,o,"read"),r(" dde_rend();"),r(" return OK;"),r("}")}}if(e.length){r(""),r("// Dummy functions needed by the dde library");for(let i of e)r(`stock ${i}() { return OK; }`)}return x.join(`
|
|
1662
|
+
`)}function fs(A,x,r){x.libraries.forEach(e=>{let i=m0.generateHashForLibraryName(e);A(` #ifdef __${i}${x.title}_${r}`),A(` __${i}${x.title}_${r}();`),A(" #endif")}),L0.hasContainerAppFields(x)&&(A(` #ifdef _DDE_${x.title}_${r}`),A(` _DDE_${x.title}_${r}();`),A(" #endif"))}async function us(A,x){let r=[],e=await ex.getApmPartDependencies(A,x,d0.Part.dlo);await Me(A,x,r,i0.fileNames.autoInc);let i=await J8(A,x,e);for(let o of e)o.name==="local-data-interface"&&await Me(A,x,r,i0.fileNames.autoLocalDataInc),r.push(`#include <${o.name}>`),o.name==="dlo-core"&&(r.push(...i),await Me(A,x,r,i0.fileNames.autoDdeInc.replace("X","app")),await Me(A,x,r,i0.fileNames.autoDdeInc.replace("X","main")));return e.some(o=>o.name==="dlo-core")&&await Me(A,x,r,i0.fileNames.autoUplinkInc),r.join(`
|
|
1663
|
+
`)}async function J8(A,x,r){let e=[];for(let i of r){let o=i0.filePaths.studio.auto.dlo.autoDdeInc.replace("X",i.name);await x.stat(Bn.Utils.joinPath(A,o))&&e.push(`#include "${i0.fileNames.autoDdeInc.replace("X",i.name)}"`)}return e}async function Me(A,x,r,e){let i=Bn.Utils.joinPath(A,i0.filePaths.studio.auto.dlo.path,e);await x.stat(i)&&r.push(`#include "${e}"`)}var ps=cx(require("semver")),js=require("yaml");var xA=L0.ContainerType,Dt=L0.TransferDirection,V8=L0.fieldTypeDefinitions,ie={$ref:"#/components/parameters/contextId"},W8={$ref:"#/components/parameters/addonId"},X8={$ref:"#/components/parameters/appId"},bs={$ref:"#/components/schemas/histdataResponse"},Y8={$ref:"#/components/schemas/histdataRequest"},dt={$ref:"#/components/schemas/rapidM2MStamp"},Q8={$ref:"#/components/schemas/timeseriesRequestBase"},ct="rapidM2M Stamp",EA={description:"Successful operation"},ms={parameters:{contextId:{name:"siteUid",in:"path",description:"The site uid",schema:{type:"string"},required:!0},appId:{name:"appUid",in:"path",description:"The app uid",schema:{type:"string"},required:!0}},schemas:{rapidM2MStamp:{type:"string",format:"YYYYMMDDhhmmssSSS",description:'Special format of an UTC timestamp. Important: The trailing 0 are truncated. eg.: "2024-02-10" -> "2024021"'}}},hs={...structuredClone(ms)};Object.assign(hs.schemas,{histdataResponse:{type:"array",description:"Array of histdata records. Array starts with the youngest record",items:{type:"array",description:'First item is always the rapidM2M timestamp of the record. All following values are in the order of the "select" array.',items:{anyOf:[dt,{type:"string"},{type:"number"}]}}},histdataRequest:{type:"object",additionalProperties:!1,required:["from","until"],properties:{from:{type:"string",format:ct,description:"items to include must be older or equal, UTC w/o time saving."},until:{type:"string",format:ct,description:"items to include must be younger, UTC w/o time saving. Reply set is limited like that: from <= item.stamp < until."},count:{type:"integer",description:"limits the number of returned records, negative values will count the records from the end of the result set."},offset:{type:"integer",description:"skips the given number of records in the result set."}}},timeseriesRequestBase:{type:"object",additionalProperties:!1,properties:{count:{type:"integer",description:"limits the number of returned records, negative values will count the records from the end of the result set.",minimum:-1e3,maximum:1e3,default:1e3},from:{type:"string",format:ct,description:"items to include must be older or equal, UTC w/o time saving"},until:{type:"string",format:ct,description:"items to include must be younger, UTC w/o time saving. Reply set is limited like that: from <= item.stamp < until"},offset:{type:"integer",description:"Skips the given number of records in the result set",minimum:0,default:0}}}});var Oe={content:{"application/json":{schema:{type:"object",additionalProperties:!1,properties:{err:{type:"string",description:"Information what went wrong"}}}}}},Br={401:{description:"Permission denied",...Oe},403:{description:"Forbidden",...Oe},404:{description:"Resource not found",...Oe},500:{description:"Internal error",...Oe}};function Cn(A,x,r=null){let e=ps.coerce(x.version)?.version,i={openapi:"3.0.3",info:{description:x.description,title:x.name,version:e||""},tags:[],paths:{},components:{parameters:{},schemas:{}}};r?Object.assign(i.components,structuredClone(ms)):Object.assign(i.components,structuredClone(hs));let o=W.isAddon(x),t=W.isAnalytics(x);o&&(i.components.parameters.addonId={name:"addonUid",in:"path",description:"The addon uid",schema:{type:"string"},required:!0});for(let B of Object.values(A.containers))r&&(!B.libraries.includes(r)||B.containerType===xA.hx)||!r&&!L0.hasContainerAppFields(B)||B.containerType===xA.aloha||(Z8(i,B),Av(i,B,r),tv(i,B,o,t),!o&&!t&&(xv(i,B,r),ev(i,B)));return i.tags.push({name:"app-center",description:"App Center related routes"}),(0,js.stringify)(i)}function Z8(A,x){A.tags.push({name:Gx(x.title),description:`Transfer direction ${x.transferDirection}`})}function Gx(A){return A.split("_").join(" ")}function xv(A,x,r){let e=`${x.name}`,i={type:"object",description:`Container: "${x.title}"`,additionalProperties:!1,properties:{}},o=[];x.containerType===xA.hx&&(e+="Select",o.push("select"),i.properties.select={type:"array",items:{type:"string",enum:[]}});for(let t of x.fields)t.library!==r||t.type==="shadow"||(x.containerType===xA.hx?i.properties.select.items.enum.push(t.id):(i.properties[t.id]=gs(t),!t.readPermission&&!t.writePermission&&o.push(t.id)));i.required=o.length?o:void 0,A.components.schemas[e]=i}function Av(A,x,r=null){let e=`${x.title}`,i={type:"object",description:`Container: "${x.title}" with device transfer direction "${x.transferDirection}"`,additionalProperties:!1,properties:{}},o=[],t=x.containerType===xA.hx;for(let l of x.fields)l.library!==r||l.type==="shadow"||(i.properties[l.name]=gs(l),!l.readPermission&&!l.writePermission&&o.push(l.name));i.required=o.length?o:void 0,A.components.schemas[e]=i;let B=i.properties;if(t){i.required=i.required?.map(D=>D.toLowerCase());let l={};for(let[D,j]of Object.entries(i.properties))l[D.toLowerCase()]=j;i.properties=l}if(t){let l={type:"object",description:`Request schema of "${x.title}"`,additionalProperties:!1,properties:{select:{type:"array",description:"Optional selection of specific fields of the given container",items:{type:"string",enum:Object.keys(B)}}}};A.components.schemas[`${e}RequestSingle`]=l,A.components.schemas[`${e}Request`]={allOf:[Q8,l]},i.properties.stamp=dt,o.push("stamp")}}function gs(A){let r={...V8[A.type].openApi},e=rv(A);return r.default=e,r.example=e,r.description=A.description,r}function rv(A){return A.defaultValue===void 0?A.defaultValue:A.type==="binary"?`${A.defaultValue.substring(2)}`:A.defaultValue}function ev(A,x){let r=`/api/1/sites/{siteUid}/${x.name}`,e={get:void 0,put:void 0};if([xA.cx,xA.cb].includes(x.containerType))e.get={deprecated:!0,tags:[Gx(x.title)],summary:`Retrieve the data of the "${Gx(x.title)}" container`,parameters:[ie],responses:{200:{...EA,content:{"application/json":{schema:{allOf:[{type:"object",required:["stamp"],properties:{stamp:dt}},{$ref:`#/components/schemas/${x.name}`}]}}}},...Br}},[Dt.down,Dt.backendOnly].includes(x.transferDirection)&&(e.put={deprecated:!0,tags:[Gx(x.title)],summary:`Modify the data of the "${Gx(x.title)}" container`,parameters:[ie],requestBody:{content:{"application/json":{schema:{$ref:`#/components/schemas/${x.name}`}}}},responses:{201:{...EA},204:{...EA},...Br}});else if(x.containerType===xA.hx){let i=`${r}`;r+="/youngest",e.get={deprecated:!0,tags:[Gx(x.title)],summary:`Retrieve the youngest data of the "${Gx(x.title)}" container`,parameters:[ie,{name:"json",in:"query",required:!0,schema:{$ref:`#/components/schemas/${x.name}Select`}}],responses:{200:{...EA,content:{"application/json":{schema:bs}}},...Br}},A.paths[i]={get:{deprecated:!0,tags:[Gx(x.title)],summary:`Get the historical data of the "${Gx(x.title)}" container.`,parameters:[ie,{name:"json",in:"query",required:!0,schema:{allOf:[{$ref:`#/components/schemas/${x.name}Select`},Y8]}}],responses:{200:{...EA,content:{"application/json":{schema:bs}}},...Br}}}}A.paths[r]=e}function tv(A,x,r=!1,e=!1){let o=x.containerType===xA.hx?"timeseries":"containers",t=[],B=Gx(x.title);e||t.push({path:`/api/1/sites/{siteUid}/${o}/${x.title}`,params:[ie],tags:[B]}),r&&(t=[{path:`/api/1/sites/{siteUid}/addons/{addonUid}/${o}/${x.title}`,params:[ie,W8],tags:[B]}]);let l={path:`/api/1/app-center/apps/{appUid}/${o}/${x.title}`,params:[X8],tags:["app-center"]};e&&l.tags.push(B),t.push(l);let D={get:void 0,put:void 0,post:void 0},j={tags:[],summary:`Retrieve the data of the "${Gx(x.title)}" container`,parameters:[],responses:{200:{...EA,content:{"application/json":{schema:{allOf:[{type:"object",required:["stamp"],properties:{stamp:dt}},{$ref:`#/components/schemas/${x.title}`}]}}}},...Br}};if([xA.cx,xA.cb].includes(x.containerType)&&(D.get=j,[Dt.down,Dt.backendOnly].includes(x.transferDirection)&&(D.put={tags:[],summary:`Modify the data of the "${Gx(x.title)}" container`,parameters:[],requestBody:{content:{"application/json":{schema:{$ref:`#/components/schemas/${x.title}`}}}},responses:{201:{...EA},204:{...EA},...Br}}),t.forEach(b=>{let k=structuredClone(D);Object.values(k).forEach(q=>{q?.parameters?.unshift(...b.params),q?.tags?.unshift(...b.tags)}),A.paths[b.path]=k})),x.containerType===xA.hx){D.get={tags:[],summary:`Get the historical data of "${x.title}"`,parameters:[{name:"json",in:"query",required:!1,schema:{$ref:`#/components/schemas/${x.title}Request`}}],responses:{200:{...EA,content:{"application/json":{schema:{type:"array",items:{$ref:`#/components/schemas/${x.title}`}}}}},...Br}},r&&(D.post={tags:[],summary:`Insert data into the "${Gx(x.title)}" container`,parameters:[{name:"allow_future_date",in:"query",description:"Allow inserting records with a stamp value in the future",schema:{type:"boolean"}}],requestBody:{content:{"application/json":{schema:{$ref:`#/components/schemas/${x.title}`}}}},responses:{201:{...EA},400:{description:"Bad request",...Oe},...Br}});let b=t[0],k=structuredClone(D);Object.values(k).forEach(R=>{R?.parameters?.unshift(...b.params),R?.tags?.unshift(...b.tags)}),A.paths[b.path]=k;let q={...EA,content:{"application/json":{schema:{$ref:`#/components/schemas/${x.title}`}}}},y=`${b.path}/youngest`,S={get:structuredClone(k.get)};S.get.summary=`Get the youngest record of "${x.title}" container`,S.get.responses[200]=q;let T=r?2:1;S.get.parameters[T].schema.$ref=`#/components/schemas/${x.title}RequestSingle`,A.paths[y]=S;let I=`${b.path}/oldest`,L={get:structuredClone(k.get)};L.get.summary=`Get the oldest record of "${x.title}" container`,L.get.responses[200]=q,L.get.parameters[T].schema.$ref=`#/components/schemas/${x.title}RequestSingle`,A.paths[I]=L}}var ks=L0.TransferDirection,ut=" new szTemp{64};",bt=" return strcat(aData, szTemp, sizeof(szTemp));";function _s(A){if(!A.printf&&A.printfFormat==="memtostr")return"bin";if(!A.printf)return null;let x=A.rwp||"%n",r=x.includes("["),i=x.includes("{")||r;if(A.printfFormat==="stampToISOString")return i?null:"stamp";switch(A.printf){case"%d":return i?null:"d";case"%f":return i?null:"f";case"%s":return r?null:"s";default:return null}}function ln(A){if(A.type==="shadow"||A.shadowRef)return null;let x=Zx(A);return!x||x==="skip"?null:_s(x)}function ws(A){return[L0.ContainerType.hx,L0.ContainerType.cx].includes(A.containerType)&&A.transferDirection!==ks.backendOnly}function nv(A){if(A.type==="shadow"||A.shadowRef)return!1;let x=Zx(A);return!!x&&x!=="skip"}function iv(A,x,r){let e=A.name.indexOf("]"),i=e>=0?A.name.substring(e+1):"",o=`${A.arrayRef.name}|${i}|${x}`;r.has(o)||r.set(o,{fields:[],formatType:x}),r.get(o).fields.push(A)}function sv(A){let x=[],r=new Map,e=new Set,i=!1;for(let o of A){if(!nv(o))continue;let t=ln(o);o.arrayRef&&t?iv(o,t,r):(x.push(o),t?e.add(t):i=!0)}return{standaloneFields:x,groupMap:r,usedFormats:e,hasInlineFields:i}}function av(A,x,r){r.sort((D,j)=>D.arrayRef.index-j.arrayRef.index);let e=r.map(D=>D.byteOffset),i=e[1]-e[0];if(!(i>0&&e.every((D,j)=>j===0||D-e[j-1]===i)))return null;let[t,B]=x.split("|"),l=r[0].library?`_${m0.generateHashForLibraryName(r[0].library)}`:"DDE_";return{arrayName:t,subField:B,fields:r,startOffset:e[0],endOffset:e[e.length-1],step:i,formatType:ln(r[0]),pawnVarBase:`${l}${A}_${t}`}}function ov(A,x){let{standaloneFields:r,groupMap:e,usedFormats:i,hasInlineFields:o}=sv(x),t=[];for(let[B,l]of e){let{fields:D,formatType:j}=l;if(D.length<2){r.push(...D),i.add(j);continue}let b=av(A,B,D);b?(i.add(j),t.push(b)):(r.push(...D),i.add(j))}return r.sort((B,l)=>B.byteOffset-l.byteOffset),{arrayGroups:t,standaloneFields:r,usedFormats:i,hasInlineFields:o}}function Fv(A){let x=new Set;for(let[,r]of Object.entries(A.containers))if(ws(r))for(let e of r.fields){let i=ln(e);i&&x.add(i)}return x}function vv(A,x){x.has("d")&&(A("stock _DDE_fmt_d(aData{}, value) {"),A(ut),A(' sprintf(szTemp, _, "%d", value);'),A(bt),A("}")),x.has("f")&&(A(""),A("stock _DDE_fmt_f(aData{}, Float:value) {"),A(ut),A(' sprintf(szTemp, _, "%.3f", value);'),A(bt),A("}")),x.has("s")&&(A(""),A("stock _DDE_fmt_s(aData{}, value{}) {"),A(ut),A(' sprintf(szTemp, _, "%s", value);'),A(bt),A("}")),x.has("stamp")&&(A(""),A("stock _DDE_fmt_stamp(aData{}, value) {"),A(ut),A(' sprintf(szTemp, _, "%s", (stampToISOString(value)));'),A(bt),A("}")),x.has("bin")&&(A(""),A("stock _DDE_fmt_bin(aData{}, mem{}, dim) {"),A(" #pragma warning disable 224"),A(" memtostr(aData, mem, 0, dim);"),A(" #pragma warning disable 224"),A(" return dim;"),A("}"))}function Ev(A,x){return x===1?A===0?"idx":`idx - ${A}`:A===0?`idx / ${x}`:`(idx - ${A}) / ${x}`}function Bv(A,x,r){let e=`idx >= ${A} && idx <= ${x}`;if(r===1)return e;let i=A===0?`idx % ${r} == 0`:`(idx - ${A}) % ${r} == 0`;return`${e} && ${i}`}function fv(A,x){let{startOffset:r,endOffset:e,step:i,formatType:o,pawnVarBase:t,subField:B}=x,l=Ev(r,i),D=Bv(r,e,i);if(A(` if (${D}) {`),o==="bin"){let j=`${t}[${l}]${B}`,b=B?B.substring(1):"",k=b?`${t}_${b}_dim`:`${t}_dim`;A(` return _DDE_fmt_bin(aData, ${j}, ${k});`)}else A(` return _DDE_fmt_${o}(aData, ${t}[${l}]${B});`);A(" }")}function Cv(A,x,r){if(r.type==="shadow"||r.shadowRef)return;let e=Zx(r);if(!e||e==="skip")return;let o=`${r.library?`_${m0.generateHashForLibraryName(r.library)}`:"DDE_"}${x}_${r.name}`,t=_s(e);if(t==="bin")A(` case ${r.byteOffset}: return _DDE_fmt_bin(aData, ${o}, ${o}_dim);`);else if(t)A(` case ${r.byteOffset}: return _DDE_fmt_${t}(aData, ${o});`);else{if(A(` case ${r.byteOffset}: {`),e.printf){let B=o;e.printfFormat&&(B=`(${e.printfFormat}(${B}))`),A(` sprintf(szTemp, _, "${e.printf}", ${B});`),A(" return (strcat(aData, szTemp, sizeof(szTemp)));")}A(" }")}}function lv(A,x,r){A(` case '${x.at(-1)}': {`),A(` return _DDE_local_${r.title}(aData, idx);`),A(" }")}function ys(A,x,r){let e=r===L0.ContainerType.cx?"c":"h",i=r===L0.ContainerType.cx?"config":"histdata";A(` if(cname{0} == '${e}'){`),A(" switch(cname{1}) {");for(let[o,t]of Object.entries(x.containers))r===t.containerType&&o.startsWith(i)&&t.transferDirection!==ks.backendOnly&&lv(A,o,t);A(" default:"),A(" return OK;"),A(" }"),A(" return OK;"),A(" }")}function cv(A,x){let r=ov(x.title,x.fields);A(""),A(`stock _DDE_local_${x.title}(aData{}, idx) {`),r.hasInlineFields&&A(" new szTemp{64};");for(let e of r.arrayGroups)fv(A,e);if(r.standaloneFields.length>0){A(" switch(idx) {");for(let e of r.standaloneFields)Cv(A,x.title,e);A(" default:"),A(" return OK;"),A(" }")}A(" return OK;"),A("}")}function Dv(A,x){for(let[,r]of Object.entries(x.containers))ws(r)&&cv(A,r)}function $s(A){let x=[],r=x.push.bind(x),e=Fv(A);return vv(r,e),e.size>0&&r(""),r("stock DDE_get_local_data(cname{}, aData{}, idx) {"),ys(r,A,L0.ContainerType.cx),ys(r,A,L0.ContainerType.hx),r(" return OK;"),r("}"),Dv(r,A),x.join(`
|
|
1664
|
+
`)}var Ts=m0.yamlRangeToLineInformation,Ge=i0.filePaths.dde.path,oA;(e0=>{let A=L0.DDEJson,x=m0.convertBlobToString;e0.DDE_SCHEMA=di;async function e(w,g){let O=await g.readFile(w);return x(O)}e0.readYamlFile=e;async function i(w,g,O=i0.fileNames.mainDDE,Y){let x0=[],H=await W.read(w,g),Z=await qs(w,g,H);if(Y)for(let K of Z){let{result:U,unresolvedKeys:a0}=ix.replaceDefineTemplates(K.yaml,Y);K.yaml=U;for(let v0 of a0)x0.push({file:K.path,level:"error",message:`Unresolved define template: {{${v0}}}`,line:0,startCharacter:0,endCharacter:0})}for(let K of Z)x0.push(...l(K.path,K.yaml));let r0=vx.Utils.joinPath(w,Ge,O),n0=await e(r0,g);if(Y){let{result:K,unresolvedKeys:U}=ix.replaceDefineTemplates(n0,Y);n0=K;for(let a0 of U)x0.push({file:r0,level:"error",message:`Unresolved define template: {{${a0}}}`,line:0,startCharacter:0,endCharacter:0})}return x0.push(...l(r0,n0)),{manifest:H,libraryFiles:Z,main:{path:r0,yaml:n0},diagnostics:x0}}e0.validate=i;async function o(w,g,O,Y=i0.fileNames.mainDDE){let x0=await W.read(w,g),H=await ix.read(w,g,O),Z=await i(w,g,Y,H.flat);if(Z.diagnostics.filter(u0=>u0.level==="error").length>0)return{ddeJSON:null,diagnostics:Z.diagnostics};let n0=await q(w,g,O),K=new ft.PreCompiler(x0,Z.libraryFiles,n0),U=K.parseLibraries();if(U.find(u0=>u0.level==="error"))return{ddeJSON:null,diagnostics:[...Z.diagnostics,...U]};let{ddeJSON:v0,diagnostics:D0}=K.parseMainDDE(Z.main.path,Z.main.yaml);return{ddeJSON:v0,diagnostics:[...Z.diagnostics,...D0]}}e0.compileDDE=o;let t=new Ss.default({strict:!1,allErrors:!0,verbose:!0});(0,Ps.default)(t);let B=t.compile(e0.DDE_SCHEMA);function l(w,g){let O=new pt.LineCounter,Y=(0,pt.parseDocument)(g,{lineCounter:O,keepSourceTokens:!0}),x0=[];for(let r0 of Y.errors){let n0=r0.pos?Ts(O,[r0.pos[0],r0.pos[1],r0.pos[1]]):{line:0,startCharacter:0,endCharacter:0};x0.push({file:w,level:"error",message:r0.message,...n0})}if(x0.length>0)return x0;let H=Y.toJSON();if(!B(H)){let n0=(B.errors||[]).filter(U=>U.keyword!=="if"),K=new Set;for(let U of n0){let a0=bv(U);if(K.has(a0))continue;K.add(a0);let v0=jv(Y,O,U);x0.push({file:w,level:"error",message:a0,...v0})}}return x0}e0.validateJsonSchema=l,e0.PreCompiler=(w,g,O)=>new ft.PreCompiler(w,g,O);function j(w,g){return Fn(w,g)}e0.generateMyDatanetXML=j;async function b(w,g,O,Y){let x0=await W.read(w,g),H=Fn(x0,Y),Z=vx.Utils.joinPath(w,i0.filePaths.dist.ddeXmlPath);await g.writeFile(Z,H),O.log("Generated",i0.filePaths.dist.ddeXmlPath)}e0.exportMyDatanetXML=b;async function k(w,g,O,Y,x0){let H=vx.Utils.joinPath(w,i0.filePaths.studio.auto.dde.historyJson);await g.rm(H).catch(console.error);let Z=await W.read(w,g);if(!W.isApp(Z)||!Z.registry?.id)return;if(!x0){O.warn("Could not fetch dde of previous version: No API token provided.");return}let r0=$A.coerce(Z.version);try{let U=(await xx.getExistingApplication(x0,Z.publisher,Z.registry.id,Y)).versions.find(u0=>!$A.prerelease(u0.version)&&$A.lte(u0.version,r0)),a0=U?.files.find(u0=>u0.name==="dde.json");if(!a0){O.warn("Could not find a valid previous released app version to fetch the previous dde from.");return}let v0=await fetch(a0.downloadUrl,{headers:{...Xx(x0),...xx.injectSemverHeader(!0)}});if(v0.status!==200){O.warn(`Could not fetch the dde.json of version "${U?.version}"`);return}let D0=await v0.text();await g.writeFile(H,D0),O.log(`Saved history.json of previous app version ${U.version}`)}catch(n0){O.error("Failed to fetch the dde of previous version",n0)}}e0.fetchPreviousHistoryJson=k;async function q(w,g,O){try{let Y=vx.Utils.joinPath(w,i0.filePaths.studio.auto.dde.historyJson);if(await g.stat(Y)){let H=await g.readFile(Y);return JSON.parse(x(H))}let x0=vx.Utils.joinPath(w,Ge,"history.json");if(await g.stat(x0)){O.warn(`"${i0.filePaths.studio.auto.dde.historyJson}" does not exist - fallback to "${Ge}history.json"`);let H=await g.readFile(x0),Z=JSON.parse(x(H)),r0=await W.read(w,g),n0=$A.coerce(r0.version)?.version,K=Object.keys(Z||{}).sort($A.rcompare).find(a0=>a0!==n0);if(!K)return null;let U=Z[K];return{version:K,...U}}}catch(Y){O.error("Failed to read history.json",Y)}return O.warn("history.json does not exist"),null}e0.getHistoryJson=q;function y(w,g){return{version:$A.coerce(g.version)?.version||"1.0.0",...structuredClone(w)}}e0.buildHistoryJson=y;async function S(w,g,O,Y){let x0=await W.read(w,g),H=y(Y,x0),Z=vx.Utils.joinPath(w,i0.filePaths.dist.historyJson);await g.writeFile(Z,JSON.stringify(H,null," ")),O.log("Generated",i0.filePaths.dist.historyJson)}e0.exportHistoryJson=S;async function T(w,g){return g.rm(vx.Utils.joinPath(w,i0.filePaths.studio.auto.dlo.path))}e0.clearAutoDloDir=T;async function I(w,g,O,Y){await T(w,g);let x0=await W.read(w,g),H=await qs(w,g,x0),Z=await ix.read(w,g,O),r0=ls(Y,Z,x0),K=new Re(x0,Y,null).generate();for(let Ex of H){let fA=new Re(x0,Y,Ex.libraryName),{globals:CA,helper:PA}=fA.generate(),R0=[...CA,...PA].join(`\r
|
|
1665
|
+
`),Dx=i0.filePaths.studio.auto.dlo.autoDdeInc.replace("X",Ex.libraryName),lA=vx.Utils.joinPath(w,Dx);R0.length&&(O.log("Generated",Dx),await g.writeFile(lA,R0))}let U=ds(Y),a0=Ds(Y,H.map(Ex=>Ex.libraryName)),v0=$s(Y),D0=vx.Utils.joinPath(w,i0.filePaths.studio.auto.dlo.autoInc);await g.writeFile(D0,r0),O.log("Generated",i0.filePaths.studio.auto.dlo.autoInc);let u0=vx.Utils.joinPath(w,i0.filePaths.studio.auto.dlo.autoUplinkInc);await g.writeFile(u0,a0),O.log("Generated",i0.filePaths.studio.auto.dlo.autoUplinkInc);let _0=vx.Utils.joinPath(w,i0.filePaths.studio.auto.dlo.autoLocalDataInc);await g.writeFile(_0,v0),O.log("Generated",i0.filePaths.studio.auto.dlo.autoLocalDataInc);let q0=vx.Utils.joinPath(w,i0.filePaths.studio.auto.dlo.autoDdeInc.replace("X","app"));await g.writeFile(q0,[...K.globals,...K.helper].join(`
|
|
1666
|
+
`)),O.log("Generated",i0.filePaths.studio.auto.dlo.autoDdeInc.replace("X","app"));let V0=vx.Utils.joinPath(w,i0.filePaths.studio.auto.dlo.autoDdeInc.replace("X","main"));await g.writeFile(V0,U),O.log("Generated",i0.filePaths.studio.auto.dlo.autoDdeInc.replace("X","main")),await R(w,g,O)}e0.exportAutoDloFiles=I;async function L(w,g,O,Y){let x0=await W.read(w,g),H=W.isLibrary(x0),Z=vx.Utils.joinPath(w,i0.filePaths.dist.path,"dde-api.yaml");await g.rm(Z).catch(()=>{});let r0=vx.Utils.joinPath(w,i0.filePaths.dist.ddeApi);if(await g.writeFile(r0,Cn(Y,x0)),O.log("Generated",i0.filePaths.dist.ddeApi),H){let n0=vx.Utils.joinPath(w,i0.filePaths.dist.ddeApiPath,`${x0.name}.yaml`),K=Cn(Y,x0,x0.name);K.length&&(await g.writeFile(n0,K),O.log("Generated",i0.filePaths.dist.ddeApiPath+`${x0.name}.yaml`))}}e0.exportOpenApi=L;async function R(w,g,O){let Y=vx.Utils.joinPath(w,i0.filePaths.studio.auto.dlo.defaultInc),x0=await us(w,g);await g.writeFile(Y,x0),O.log("Generated",i0.filePaths.studio.auto.dlo.defaultInc)}e0.exportDefaultInc=R})(oA||={});async function qs(A,x,r){let e=[],i=await ex.getAll(r);for(let o in i){let t=ex.dependencyToPath(A,o),B=ex.dependencyIdToName(o),l=vx.Utils.joinPath(t,`${Ge}/${B}.dde`);await x.stat(l)&&e.push({libraryName:B,path:l,yaml:await oA.readYamlFile(l,x)})}if(W.isLibrary(r)){let o=vx.Utils.joinPath(A,`/${Ge}/${r.name}.dde`);await x.stat(o)&&e.push({libraryName:r.name,path:o,yaml:await oA.readYamlFile(o,x)})}return e}function dv(A,x,r){if(typeof A=="string")return A;if(typeof A!="object"||A===null)return"";let e=A[x];if(typeof e=="string")return e;if(typeof e!="object"||e===null)return"";let i=r?.missingProperty;return i?e[i]??"":""}function uv(A,x,r,e){let o={required:()=>`Missing required property '${x.missingProperty}'.`,additionalProperties:()=>`Unknown property '${x.additionalProperty}' is not allowed.`,type:()=>`Must be of type '${x.type}'.`,enum:()=>`Must be one of the allowed values: ${JSON.stringify(x.allowedValues)}.`,pattern:()=>`Value does not match the required pattern. ${e?.patternErrorMessage??r}`,minimum:()=>`${r}.`,maximum:()=>`${r}.`,exclusiveMinimum:()=>`${r}.`,exclusiveMaximum:()=>`${r}.`,not:()=>`This value is not allowed here. ${e?.description??""}`.trimEnd(),anyOf:()=>`Value does not match any of the allowed schemas. ${e?.description??""}`.trimEnd(),oneOf:()=>`Value does not match any of the allowed schemas. ${e?.description??""}`.trimEnd()}[A];return o?o():r}function bv(A){let x=A.instancePath||"/",r=A.parentSchema,e=dv(r?.errorMessage,A.keyword,A.params);if(e)return`${x}: ${e}`;let i=A.message||"unknown validation error";return`${x}: ${uv(A.keyword,A.params,i,r)}`}function pv(A,x){let r=x.split("/").filter(Boolean).map(e=>{let i=Number(e);return Number.isNaN(i)?e:i});for(let e=r.length;e>=0;e--){let i=r.slice(0,e),o=A.getIn(i,!0);if(o?.range)return o.range}return null}function jv(A,x,r){let e=pv(A,r.instancePath||"");return e?Ts(x,e):{line:0,startCharacter:0,endCharacter:0}}var cn=require("vscode-uri");var Is=cx(require("node:child_process"));var jt;(r=>{async function A(e,i,o){let t=await W.read(e,i);if(await W.isApmPartEnabled(e,i,d0.Part.pov)){o.info("Executing POV build script",t.pov?.details.buildCommand);let{buildCommand:B,workingPath:l}=t.pov.details,D=cn.Utils.joinPath(e,l);try{await Ns(D,B,o)}catch(j){throw j.code?new Error(`APM part '${d0.Part.pov}' has errors. Aborted.`):j}}}r.tryBuildPov=A;async function x(e,i,o){let t=await W.read(e,i);if(await W.isApmPartEnabled(e,i,d0.Part.blo,t)){o.info("Executing BLO build script",t.blo?.buildCommand);let{buildCommand:B,workingPath:l}=t.blo,D=cn.Utils.joinPath(e,l);try{await Ns(D,B,o)}catch(j){throw j.code?new Error(`APM part '${d0.Part.blo}' has errors. Aborted.`):j}}}r.tryBuildBlo=x})(jt||={});async function Ns(A,x,r){return new Promise((e,i)=>{Is.exec(x,{cwd:A.fsPath,env:process.env},(o,t,B)=>{r.log(t),B&&r.error(B),o&&i(o),e(null)})})}var Ue=require("@gera2ld/tarjs"),Ms=m0.convertBlobToString,Dn=require("pako"),px;(b=>{class A extends Error{_mergedDiagnostics;constructor(q,y){super(q),this.name="BuildError",this._mergedDiagnostics=y}get mergedDiagnostics(){return this._mergedDiagnostics}}b.BuildError=A;async function x(k,q,y,S,T,I=!0,L){I=mv(y,I),await hv(k,q,y,S,T,I);try{let w=await ix.read(k,q,y);await gv(k,q,y,w)}catch(w){y.warn("Could not generate defines.ts:",w)}let R={[d0.Part.dde]:[],[d0.Part.dlo]:[],[d0.Part.dfiles]:[]},e0={[d0.Part.dde]:yv,[d0.Part.dlo]:kv,[d0.Part.dfiles]:_v};try{for(let w of[d0.Part.dde,d0.Part.dlo,d0.Part.dfiles])if(I.includes(w)&&(y.info(`Building ${w.toUpperCase()}...`),await Sv(y,w,e0[w],R[w],k,q)))return R}catch(w){throw L?new A(w?.message,R):w}return I.includes(d0.Part.pov)?await jt.tryBuildPov(k,q,y):y.info("Skipping pov build"),I.includes(d0.Part.blo)?await jt.tryBuildBlo(k,q,y):y.info("Skipping blo build"),await wv(k,q,y),await $v(k,q,y),y.done("Project build completed."),R}b.buildAll=x;async function r(k,q,y,S,T,I,L){let R=await W.read(k,q);return W.isLibrary(R)?(y.info("Library project detected. Publishing library..."),o(k,q,y,T,S)):(y.info("App project detected. Publishing app..."),i(k,q,y,T,I,L,S))}b.release=r;async function e(k,q,y,S,T,I){let L=await W.read(k,q),R=`${L.name}-${L.version}.tar.gz`,e0=null;if(W.isLibrary(L))y.info("Library project detected. Packing library..."),e0=await Ls(k,q,y,T,S);else{y.info("App project detected. Packing app...");let g=await Rs(k,q,y,T,I,S);e0=await Tv(g)}let w=kr.Utils.joinPath(k,R);e0!==null?(await q.writeFile(w,e0),y.done(`Packaged: ${w.fsPath}`)):y.error(`Could not create archive: ${w.fsPath}`)}b.pack=e;async function i(k,q,y,S,T,I=null,L){if(!await d0.validateAccess(k,q,S,!1,L))throw new Error("Could not validate access to application");let e0=await Rs(k,q,y,S,T,L);await d0.updateProfile(k,q,S,L);let w=await d0.publishTag(k,q,S,e0,L);if(I!==null){let g=await W.read(k,q);await xx.updateExistingApplicationVersion(S,g.publisher,g.registry?.id,g.version,{allowedBackends:I},L),y.info(`Tag "${w.version}" with phase "${w.phase}" shared with ${[...I].join(";")}!`)}y.done(`Tag "${w.version}" with phase "${w.phase}" published!`)}b.releaseAPM=i;async function o(k,q,y,S,T){let I=await W.read(k,q),L=await Ls(k,q,y,S,T);await te.publishPackage(S,I,L,T),y.done(`Library "${I.publisher}/${I.name}" with version "${I.version}" published!`)}b.releaseLibrary=o;async function t(k,q,y,S,T,I,L,R=null){if(I==="*"){let H=await W.read(k,q);I=`${H.name}-${H.version}.tar.gz`,y.info(`Publishing detected archive package "${I}"...`)}let e0=kr.Utils.joinPath(k,I);if(!await q.stat(e0))throw new Error(`Archive package not found: ${e0.fsPath}`);let w=await q.readFile(e0),g=await Nv(w),{publisher:O,registry:Y,version:x0}=g;W.isLibrary(g)?(await te.publishPackage(S,g,w,T),y.done(`Library "${O}/${g.name}" with version "${g.version}" published!`)):(await xx.updateApplicationFile(S,O,Y.id,x0,"app.tar.gz",w,T),await xx.updateExistingApplicationVersion(S,O,Y?.id,x0,{allowedBackends:R||void 0,phase:L||void 0},T),y.info(`Tag "${x0}" with phase "${L}" shared with ${[...R||""].join(";")}!`),y.done(`Tag "${x0}" with phase "${L}" published!`))}b.publishArchive=t;async function B(k,q,y){let S;try{S=await q.readFile(kr.Utils.joinPath(k,"README.md"))}catch{throw new Error('Could not find "README.md". "README.md" is required for publishing.')}if(Ms(S)===i0.readme(y))throw new Error('"README.md" matches the default template. Please write a brief project description.');return S}b.getReadmeFile=B;async function l(k,q){let y;try{y=await q.readFile(kr.Utils.joinPath(k,"CHANGELOG.md"))}catch{throw new Error('Could not find "CHANGELOG.md". "CHANGELOG.md" is required for publishing.')}if(Ms(y)===i0.changelog)throw new Error('"CHANGELOG.md" matches the default template.');return y}b.getChangelogFile=l;async function D(k,q,y,S){let T=await W.read(k,q),{name:I,publisher:L,description:R}=T,e0=W.validateProjectName(I,W.isLibrary(T));if(e0)throw new Error(`name: ${e0}`);let w=W.validateDescription(R);if(w)throw new Error(`description: ${w}`);let g=W.validatePublisherId(L)||await W.validatePublisherOnline(y,L,S);if(g)throw new Error(`publisher: ${g}`);if(!W.isLibrary(T)&&(await W.validateApplicationIcon(k,q,T),W.validateEngineSettings(T),W.isApp(T)&&await W.isApmPartEnabled(k,q,d0.Part.dlo,T)&&(!T.dpid||!Object.values(W.DeviceProfiles).includes(T.dpid))))throw new Error("dpid: The device profile is needed to compile a dlo")}b.validatePublishSettings=D;async function j(k,q){let y=Dn.ungzip(k),S=await Ue.TarReader.load(y),T={};for(let I of S.fileInfos)q.includes(I.name)&&(T[I.name]=S.getFileBlob(I.name));return T}b.readFilesFromTarGz=j})(px||={});function mv(A,x){let r=Object.values(d0.Part);return x===!0?(A.info("Building project..."),r):x===!1?[]:x}async function hv(A,x,r,e,i,o){o.includes(d0.Part.dde)&&await oA.fetchPreviousHistoryJson(A,x,r,e,i)}async function gv(A,x,r,e){e.defaultsOnly?(await ix.exportDefinesTs(A,x,e.defaultsOnly),r.log("Generated",i0.filePaths.dist.definesTs,"(defaults only)"),await ix.exportDefinesTs(A,x,e,i0.filePaths.dist.definesAppTs),r.log("Generated",i0.filePaths.dist.definesAppTs,"(with app.ini overrides)")):(await ix.exportDefinesTs(A,x,e),r.log("Generated",i0.filePaths.dist.definesTs))}async function yv(A,x,r){let e=await oA.compileDDE(A,x,r);if(e.ddeJSON){await oA.exportMyDatanetXML(A,x,r,e.ddeJSON);let i=await W.read(A,x);W.isLibrary(i)||await oA.exportHistoryJson(A,x,r,e.ddeJSON),await oA.exportOpenApi(A,x,r,e.ddeJSON),await W.isApmPartEnabled(A,x,d0.Part.dlo,i)&&(await oA.exportAutoDloFiles(A,x,r,e.ddeJSON),await ot.exportDloConfig(A,x,r))}return e.diagnostics}async function kv(A,x,r){let e=new ee(A,x,r),{diagnostics:i}=await e.compile(A,x);return i}async function _v(A,x,r){return await vt.process(A,x,r)}async function wv(A,x,r){let e=await W.read(A,x);W.isLibrary(e)&&await Wr.normalizeLibraryParts(A,x,e,r)}async function $v(A,x,r){let e=kr.Utils.joinPath(A,i0.fileNames.reportTemplate);if(await x.stat(e)){let i=kr.Utils.joinPath(A,i0.filePaths.dist.reportTemplate);await x.copy(e,i),r.log(`Copied "${i0.fileNames.reportTemplate}" to dist folder.`)}}function qv(A,x,r){x!==d0.Part.dlo&&Pv(A,r);let e=r.some(i=>i.level==="error");if(e){let i=`APM part "${x}" has errors. Aborted.`;throw new Error(i)}return e}async function Sv(A,x,r,e,i,o){let t=await r(i,o,A);return e.push(...t),qv(A,x,t)}function Pv(A,x){x.forEach(r=>{let e=r.startCharacter?`:${r.startCharacter+1}`:"",i=`${r.file.path}:${r.line+1}${e} - ${r.message}`;r.level==="error"?A.error(i):r.level==="warning"?A.warn(i):A.log(i)})}async function Ls(A,x,r,e,i){let o=await W.read(A,x);return await W.validateBasicManifest(A,x,o),await px.buildAll(A,x,r,i,e),await te.createArchive(A,x)}async function Rs(A,x,r,e,i,o){if(!Object.values(d0.TagPhase).includes(i))throw new Error(`ReleasePhase: ${i} is not a valid release phase`);return await W.validateBasicManifest(A,x,null),await px.buildAll(A,x,r,o,e),await d0.createTag(A,x,i)}async function Tv(A){let x=new Ue.TarWriter;for(let[e,i]of A.entries())if(e==="tag"){let o=i;x.addFile(e,o)}else{let o=i;x.addFile(e,await o.arrayBuffer())}let r=await x.write();return Dn.gzip(await r.arrayBuffer())}async function Nv(A){let x=await Iv(A,["studio.json","src/studio.json"]);if(!x)throw new Error('Could not find "studio.json" in archive');return JSON.parse(await x.text())}async function Iv(A,x){let r=Dn.ungzip(A),e=await Ue.TarReader.load(r);for(let i of e.fileInfos)if(x.includes(i.name))return e.getFileBlob(i.name);return null}var Mv=m0.bufferToBase64;var d0;(j=>{let A;(L=>(L.alpha="alpha",L.beta="beta",L.rc="rc",L.release="release",L.stage="stage",L.passive="passive",L.withdrawn="withdrawn"))(A=j.TagPhase||={});let x;(T=>(T.dde="dde",T.dlo="dlo",T.pov="pov",T.blo="blo",T.dfiles="dfiles"))(x=j.Part||={});function r(b){let{description:k,name:q,pov:y,engines:S,blo:T,publisher:I,type:L}=b,R=L||W.ProjectTypes.app,e0={name:q,abstract:k,author:I||"",pov_location:W.PovLocation.embedded,pov_details_lowlevel:!1,required_be:S?.backend,required_hwfw:S?.hwfw?.join(";"),required_productcode:S?.productId?.join(";"),blo_level:T?.accessLevel||W.BloAccessLevel.restricted,pip_id:""};return y&&y.details&&(e0.pov_location=W.PovLocation.pure,e0.pov_details_lowlevel=!!y.details.lowLevel),R==="addon"&&(e0.required_hwfw=void 0,e0.required_productcode=void 0,e0.addon_max_sources=1,e0.addon_max_per_site=b.maxInstancesPerSite),e0}j.createBaseTagHeader=r;async function e(b,k,q){let y=await W.read(b,k),S=r(y),T={version:y.version,...S,phase:q};return await o(b,k,y,T)}j.createTag=e;async function i(b,k){let q=await W.read(b,k),S={...r(q),blo_autostart:!1};return o(b,k,q,S)}j.createDevTag=i;async function o(b,k,q,y){let S=new FormData;S.append("tag",JSON.stringify(y)),S.append(`src/${W.fileName}`,new Blob([await W.readAsBlob(b,k)]));let T=new Blob([await k.readFile(JA.Utils.joinPath(b,i0.filePaths.dist.ddeXmlPath))]);if(S.append("bin/dde/xml",T),q.icon){let L=await k.readFile(JA.Utils.joinPath(b,q.icon)),R=Mv(L);S.append("previews/00.png",new Blob([`data:image/png;base64,${R}`]))}if(Object.hasOwn(y,"phase")){let L=await px.getReadmeFile(b,k,y.name),R=await px.getChangelogFile(b,k);S.append("previews/README.md",new Blob([L])),S.append("previews/CHANGELOG.md",new Blob([R]))}if(await W.isApmPartEnabled(b,k,"dlo")){let L=new Blob([await k.readFile(JA.Utils.joinPath(b,i0.filePaths.dist.mainAmxPath))]);S.append("bin/dlo/amx",L)}if(await W.isApmPartEnabled(b,k,"pov",q)){await Os(b,k,S,i0.filePaths.dist.povDetailsPath,"bin/pov/details");let L=new TextEncoder().encode('<!DOCTYPE html><html lang="en">');S.append("bin/pov/list/index.html",new Blob([L]))}let I=await k.findFiles(b,`${i0.filePaths.dist.dfilesPath}/*`);for(let L of I){let R=new Blob([await k.readFile(L)]);S.append(`bin/dfiles/${JA.Utils.basename(L)}`,R)}return await W.isApmPartEnabled(b,k,"blo",q)&&await Os(b,k,S,i0.filePaths.dist.bloPath,"bin/blo"),await Lv(b,k,S),S}j.createBuffer=o;async function t(b,k,q,y,S){let T=await W.read(b,k);y||await px.validatePublishSettings(b,k,q,S);let{registry:I}=T,L=I?.id;if(!L&&!y&&(L=await B(b,k,q,T,S)),L){let{publisher:R}=T;if(!R)return null;try{return{id:L,...await xx.getExistingApplication(q,R,L,S)}}catch(e0){if(e0?.message==="Could not find given application")return L=await B(b,k,q,T,S),{id:L,...await xx.getExistingApplication(q,R,L,S)}}}return null}j.validateAccess=t;async function B(b,k,q,y,S){let T="myDatanet",{publisher:I,name:L,description:R,registry:e0}=y,w={id:e0?.id,type:y.type||W.ProjectTypes.app,name:L,targetSystem:T,description:R||"",allowedBackends:null};W.isAddon(y)&&(w.allowedApplications=null);let g=await xx.createNewApplication(q,I,w,S);if(!g)throw new Error("Failed to initialize application");return y.registry={id:g},await W.write(b,k,y),g}j.registerNew=B;async function l(b,k,q,y){let{name:S,publisher:T,description:I,registry:L}=await W.read(b,k),R=L?.id;await xx.updateExistingApplication(q,T,R,{description:I,name:S,targetSystem:"myDatanet"},y)}j.updateProfile=l;async function D(b,k,q,y,S){let{publisher:T,registry:I,version:L}=await W.read(b,k);return await xx.publishApplicationVersion(q,T,I?.id,L,y,S)}j.publishTag=D})(d0||={});async function Os(A,x,r,e,i){let o=await x.findFiles(A,`${e}/**`);for(let t of o){let B=JA.Utils.joinPath(A,e),l=t.path.substring(B.path.length+1),D=new Blob([await x.readFile(JA.Utils.joinPath(A,`${e}/${l}`))]);r.append(`${i}/${l}`,D)}}async function Lv(A,x,r){let e=JA.Utils.joinPath(A,i0.filePaths.dist.reportTemplate);if(await x.stat(e)){let o=new Blob([await x.readFile(e)]);r.append("bin/pov/mdn_report_template.json",o)}let i=JA.Utils.joinPath(A,i0.filePaths.dist.historyJson);await x.stat(i)&&r.append("src/dde/history.json",new Blob([await x.readFile(i)]))}var La=cx(require("update-notifier"));function Rv(A,x,r){let e=x.split(".").filter(Boolean),i=A;for(let o=0;o<e.length;o++){let t=e[o];o===e.length-1?i[t]=r:((typeof i[t]!="object"||i[t]===null||Array.isArray(i[t]))&&(i[t]={}),i=i[t])}}function Gs(A){let x=A.args,r={};for(let e=0;e<x.length;e++){let i=x[e];if(!i||!i.startsWith("--"))continue;let[o,t]=i.split("=",2),B=o.slice(2),l=!0;if(t!==void 0)l=t;else{let D=x[e+1];D&&!D.startsWith("-")&&(l=D,e++)}B.includes(".")?Rv(r,B,l):r[B]=l}return r}var qa=require("usb");var ca=require("events");var ba=require("events"),pa=require("events"),ja=require("events"),ga=require("events"),_a=require("events"),$a=require("events");var Ov=Object.create,_n=Object.defineProperty,Gv=Object.getOwnPropertyDescriptor,sa=Object.getOwnPropertyNames,Uv=Object.getPrototypeOf,Hv=Object.prototype.hasOwnProperty,Kv=(A,x,r)=>x in A?_n(A,x,{enumerable:!0,configurable:!0,writable:!0,value:r}):A[x]=r,Us=(A=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(A,{get:(x,r)=>(typeof require<"u"?require:x)[r]}):A)(function(A){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+A+'" is not supported')}),zv=(A,x)=>function(){try{return x||(0,A[sa(A)[0]])((x={exports:{}}).exports,x),x.exports}catch(e){throw x=0,e}},Jv=(A,x,r,e)=>{if(x&&typeof x=="object"||typeof x=="function")for(let i of sa(x))!Hv.call(A,i)&&i!==r&&_n(A,i,{get:()=>x[i],enumerable:!(e=Gv(x,i))||e.enumerable});return A},Vv=(A,x,r)=>(r=A!=null?Ov(Uv(A)):{},Jv(x||!A||!A.__esModule?_n(r,"default",{value:A,enumerable:!0}):r,A)),C0=(A,x,r)=>Kv(A,typeof x!="symbol"?x+"":x,r),Wv=zv({"mdn_com_wasm/bin/mdnCOM.js"(A,x){"use strict";var r=(()=>{var e=globalThis.document?.currentScript?.src;return async function(i={}){var o;(function(){function E(A0){A0=A0.split("-")[0];for(var B0=A0.split(".").slice(0,3);B0.length<3;)B0.push("00");return B0=B0.map((c0,K0,H0)=>c0.padStart(2,"0")),B0.join("")}var C=A0=>[A0/1e4|0,(A0/100|0)%100,A0%100].join("."),m=2147483647,P=typeof process<"u"&&process.versions?.node?E(process.versions.node):m;if(P<180300)throw new Error(`This emscripten-generated code requires node v${C(180300)} (detected v${C(P)})`);var N=typeof navigator<"u"&&navigator.userAgent;if(N){var X=N.includes("Safari/")&&!N.includes("Chrome/")&&N.match(/Version\/(\d+\.?\d*\.?\d*)/)?E(N.match(/Version\/(\d+\.?\d*\.?\d*)/)[1]):m;if(X<15e4)throw new Error(`This emscripten-generated code requires Safari v${C(15e4)} (detected v${X})`);var V=N.match(/Firefox\/(\d+(?:\.\d+)?)/)?parseFloat(N.match(/Firefox\/(\d+(?:\.\d+)?)/)[1]):m;if(V<79)throw new Error(`This emscripten-generated code requires Firefox v79 (detected v${V})`);var Q=N.match(/Chrome\/(\d+(?:\.\d+)?)/)?parseFloat(N.match(/Chrome\/(\d+(?:\.\d+)?)/)[1]):m;if(Q<85)throw new Error(`This emscripten-generated code requires Chrome v85 (detected v${Q})`)}})();var t=i,B=!!globalThis.window,l=!!globalThis.WorkerGlobalScope,D=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer",j=!B&&!D&&!l,b=[],k="./this.program",q=(E,C)=>{throw C};typeof __filename<"u"?e=__filename:l&&(e=self.location.href);var y="",S,T;if(D){if(!(globalThis.process?.versions?.node&&globalThis.process?.type!="renderer"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");var I=Us("fs");y=__dirname+"/",T=C=>{C=O(C)?new URL(C):C;var m=I.readFileSync(C);return g(Buffer.isBuffer(m)),m},S=async(C,m=!0)=>{C=O(C)?new URL(C):C;var P=I.readFileSync(C,m?void 0:"utf8");return g(m?Buffer.isBuffer(P):typeof P=="string"),P},process.argv.length>1&&(k=process.argv[1].replace(/\\/g,"/")),b=process.argv.slice(2),q=(C,m)=>{throw process.exitCode=C,m}}else if(!j)if(B||l){try{y=new URL(".",e).href}catch{}if(!(globalThis.window||globalThis.WorkerGlobalScope))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");l&&(T=E=>{var C=new XMLHttpRequest;return C.open("GET",E,!1),C.responseType="arraybuffer",C.send(null),new Uint8Array(C.response)}),S=async E=>{if(O(E))return new Promise((m,P)=>{var N=new XMLHttpRequest;N.open("GET",E,!0),N.responseType="arraybuffer",N.onload=()=>{if(N.status==200||N.status==0&&N.response){m(N.response);return}P(N.status)},N.onerror=P,N.send(null)});var C=await fetch(E,{credentials:"same-origin"});if(C.ok)return C.arrayBuffer();throw new Error(C.status+" : "+C.url)}}else throw new Error("environment detection error");var L=console.log.bind(console),R=console.error.bind(console);g(!j,"shell environment detected but not enabled at build time (add `shell` to `-sENVIRONMENT` to enable)");var e0;globalThis.WebAssembly||R("no native wasm support detected");var w=!1;function g(E,C){E||R0("Assertion failed"+(C?": "+C:""))}var O=E=>E.startsWith("file://");function Y(){var E=Jt();g((E&3)==0),E==0&&(E+=4),h0[E>>2]=34821223,h0[E+4>>2]=2310721022,h0[0]=1668509029}function x0(){if(!w){var E=Jt();E==0&&(E+=4);var C=h0[E>>2],m=h0[E+4>>2];(C!=34821223||m!=2310721022)&&R0(`Stack overflow! Stack cookie has been overwritten at ${sx(E)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${sx(m)} ${sx(C)}`),h0[0]!=1668509029&&R0("Runtime error: The application has corrupted its heap memory area (address zero)!")}}class H{}class Z extends H{}var r0=!0;(()=>{var E=new Int16Array(1),C=new Int8Array(E.buffer);E[0]=25459,(C[0]!==115||C[1]!==99)&&R0("Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)")})();function n0(E){Object.getOwnPropertyDescriptor(t,E)||Object.defineProperty(t,E,{configurable:!0,set(){R0(`Attempt to set \`Module.${E}\` after it has already been processed. This can happen, for example, when code is injected via '--post-js' rather than '--pre-js'`)}})}function K(E){return()=>g(!1,`call to '${E}' via reference taken before Wasm module initialization`)}function U(E){Object.getOwnPropertyDescriptor(t,E)&&R0(`\`Module.${E}\` was supplied but \`${E}\` not included in INCOMING_MODULE_JS_API`)}function a0(E){return E==="FS_createPath"||E==="FS_createDataFile"||E==="FS_createPreloadedFile"||E==="FS_preloadFile"||E==="FS_unlink"||E==="addRunDependency"||E==="FS_createLazyFile"||E==="FS_createDevice"||E==="removeRunDependency"}function v0(E){D0(E)}function D0(E){Object.getOwnPropertyDescriptor(t,E)||Object.defineProperty(t,E,{configurable:!0,get(){var C=`'${E}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`;a0(E)&&(C+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),R0(C)}})}function u0(E){for(var C=0,m=E.length,P=new Uint8Array(m),N;C<m;++C)N=E.charCodeAt(C),P[C]=~N>>8&N;return P}var _0,q0,V0=!1;function Ex(){var E=At.buffer;Ix=new Int8Array(E),cA=new Int16Array(E),t.HEAPU8=Bx=new Uint8Array(E),Z0=new Uint16Array(E),DA=new Int32Array(E),h0=new Uint32Array(E),Nr=new Float32Array(E),xr=new Float64Array(E),Tr=new BigInt64Array(E),Kx=new BigUint64Array(E)}g(globalThis.Int32Array&&globalThis.Float64Array&&Int32Array.prototype.subarray&&Int32Array.prototype.set,"JS engine does not provide full typed array support");function fA(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)fe(t.preRun.shift());n0("preRun"),AA(E0)}function CA(){g(!V0),V0=!0,x0(),Jr.__wasm_call_ctors()}function PA(){if(x0(),t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)dA(t.postRun.shift());n0("postRun"),AA(zx)}function R0(E){t.onAbort?.(E),E=`Aborted(${E})`,R(E),w=!0;var C=new WebAssembly.RuntimeError(E);throw q0?.(C),C}function Dx(){R0("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM")}var lA={init:Dx,createDataFile:Dx,createPreloadedFile:Dx,createLazyFile:Dx,open:Dx,mkdev:Dx,registerDevice:Dx,analyzePath:Dx,ErrnoError:Dx};function O0(E,C){return(...m)=>{g(V0,`native function \`${E}\` called before runtime initialization`);var P=Jr[E];return g(P,`exported native function \`${E}\` not found`),g(m.length<=C,`native function \`${E}\` called with ${m.length} args but expects ${C}`),P(...m)}}var M0;function G0(){return u0(`\0asm\0\0\0\xCF\`\x7F\0\`\x7F\x7F\0\`\x7F\x7F\`\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\`\x7F\x7F\x7F\0\`\0\0\`\x7F\x7F\x7F\x7F\0\`\0\x7F\`\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F~\x7F~\`
|
|
1667
1667
|
\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F\x7F\x7F\x7F\`\x7F|\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\x7F\x7F|\`\r\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\b\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F~~\0\`\x7F~\x7F\x7F\x7F\`\x07\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`|\x7F|\`\x07\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`~\x7F\x7F\xA7\x07env_emval_new_cstring\0env_emval_get_property\0env\r_emval_decref\0\0env_emval_create_invoker\0env\r_emval_incref\0\0env\r_emval_invoke\0env_emval_run_destructors\0\0env_emval_get_module_property\0env_embind_register_value_object\0\venv#_embind_register_value_object_field\0\renv_embind_finalize_value_object\0\0env_embind_register_class\0env"_embind_register_class_constructor\0\venv_embind_register_class_property\0\renv_embind_register_function\0env\v__cxa_throw\0env_embind_register_void\0env_embind_register_bool\0\x07env_embind_register_integer\0
|
|
1668
1668
|
env_embind_register_bigint\0env_embind_register_float\0env\x1B_embind_register_std_string\0env_embind_register_std_wstring\0env_embind_register_emval\0\0env_embind_register_memory_view\0wasi_snapshot_preview1
|
|
1669
1669
|
random_get\0env _abort_js\0wasi_snapshot_preview1\bfd_write\0 wasi_snapshot_preview1\bfd_close\0wasi_snapshot_preview1\x07fd_seek\0envemscripten_resize_heap\0\xB6\xB4 \0\b\0\0\0\b\b\0\b\0 \0\0\b\0\b\0\0 \x07 \x07
|
|
@@ -2311,10 +2311,10 @@ jv.\xC9\xC2\x81\x85,r\x92\xA1\xE8\xBF\xA2Kf\xA8p\x8BK\xC2\xA3Ql\xC7\xE8\x92\xD
|
|
|
2311
2311
|
\x07\0\0 \v\0\0 \v\0\0\v\0\0\0\0\0A\x91\x9C\v!\0\0\0\0\0\0\0\0\0\v\r\0\r\0\0\0 \0\0\0 \0\0\0\0A\xCB\x9C\v\f\0A\xD7\x9C\v\0\0\0\0\0\0\0\0 \f\0\0\0\0\0\f\0\0\f\0A\x85\x9D\v\0A\x91\x9D\v\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0A\xBF\x9D\v\0A\xCB\x9D\v\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0A\x82\x9E\v\0\0\0\0\0\0\0\0\0 \0A\xB3\x9E\v\0A\xBF\x9E\v\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0A\xED\x9E\v\0A\xF9\x9E\v\xAF\b\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\x000123456789ABCDEF\x90\\\0\0\fR\0\0\xB0O\0\0\xF8R\0\0N10__cxxabiv116__shim_type_infoE\0\0\0\0\fR\0\0\xE0O\0\0\xA4O\0\0N10__cxxabiv117__class_type_infoE\0\0\0\fR\0\0P\0\0\xA4O\0\0N10__cxxabiv117__pbase_type_infoE\0\0\0\fR\0\0@P\0\0P\0\0N10__cxxabiv119__pointer_type_infoE\0\fR\0\0pP\0\0\xA4O\0\0N10__cxxabiv120__function_type_infoE\0\0\0\0\fR\0\0\xA4P\0\0P\0\0N10__cxxabiv129__pointer_to_member_type_infoE\0\0\0\0\0\0\0\xF0P\0\0G\0\0\0H\0\0\0I\0\0\0J\0\0\0K\0\0\0\fR\0\0\xFCP\0\0\xA4O\0\0N10__cxxabiv123__fundamental_type_infoE\0\xDCP\0\0,Q\0\0v\0Dn\0\0\0\0\xDCP\0\0<Q\0\0b\0\0\0\xDCP\0\0HQ\0\0c\0\0\0\xDCP\0\0TQ\0\0h\0\0\0\xDCP\0\0\`Q\0\0a\0\0\0\xDCP\0\0lQ\0\0s\0\0\0\xDCP\0\0xQ\0\0t\0\0\0\xDCP\0\0\x84Q\0\0i\0\0\0\xDCP\0\0\x90Q\0\0j\0\0\0\xDCP\0\0\x9CQ\0\0l\0\0\0\xDCP\0\0\xA8Q\0\0m\0\0\0\xDCP\0\0\xB4Q\0\0x\0\0\0\xDCP\0\0\xC0Q\0\0y\0\0\0\xDCP\0\0\xCCQ\0\0f\0\0\0\xDCP\0\0\xD8Q\0\0d\0\0\0\0\0\0\0\xD4O\0\0G\0\0\0L\0\0\0I\0\0\0J\0\0\0M\0\0\0N\0\0\0O\0\0\0P\0\0\0\0\0\0\0,R\0\0G\0\0\0Q\0\0\0I\0\0\0J\0\0\0M\0\0\0R\0\0\0S\0\0\0T\0\0\0\fR\0\x008R\0\0\xD4O\0\0N10__cxxabiv120__si_class_type_infoE\0\0\0\0\0\0\0\x004P\0\0G\0\0\0U\0\0\0I\0\0\0J\0\0\0V\0\0\0\xE4Q\0\0\x84R\0\0St9exception\0\0\0\0\0\0\0\0\xA8R\0\x009\0\0\0W\0\0\0X\0\0\0\fR\0\0\xB4R\0\0|R\0\0St11logic_error\0\0\0\0\0\xD8R\0\x009\0\0\0Y\0\0\0X\0\0\0\fR\0\0\xE4R\0\0\xA8R\0\0St12length_error\0\0\0\0\xE4Q\0\0\0S\0\0St9type_info\0\0\0\0\0\0\xA0N\0\xEB\xA7~ u\x86\xFA\0\xB9,\xFD\xB7\x8Az\xBC\0\xCC\xA2\0=I\xD7\0\b\0\x93\b\x8F*_\xB7\xFAX\xD9\xFD\xCA\xBD\xE1\xCD\xDC@x\0}ga\xEC\0\xE5
|
|
2312
2312
|
\xD4\0\xCC>Ov\x98\xAF\0\0D\0\xAE\0\xAE\`\0\xFAw!\xEB+\0\`A\x92\0\xA9\xA3nN\0A\xD8\xA7\v\f\0\0\0\0\0\0\0\0*\0A\xF8\xA7\v'9H\0A\x8E\xA8\v\x92\0A\xA2\xA8\v\x8D8R\`S\0\0\xCA\0\0\0\0\0\0\0\0\xBB\xDB\xEB\x07+\x07;\x07P\x07Success\0Illegal byte sequence\0Domain error\0Result not representable\0Not a tty\0Permission denied\0Operation not permitted\0No such file or directory\0No such process\0File exists\0Value too large for defined data type\0No space left on device\0Out of memory\0Resource busy\0Interrupted system call\0Resource temporarily unavailable\0Invalid seek\0Cross-device link\0Read-only file system\0Directory not empty\0Connection reset by peer\0Operation timed out\0Connection refused\0Host is down\0Host is unreachable\0Address in use\0Broken pipe\0I/O error\0No such device or address\0Block device required\0No such device\0Not a directory\0Is a directory\0Text file busy\0Exec format error\0Invalid argument\0Argument list too long\0Symbolic link loop\0Filename too long\0Too many open files in system\0No file descriptors available\0Bad file descriptor\0No child process\0Bad address\0File too large\0Too many links\0No locks available\0Resource deadlock would occur\0State not recoverable\0Owner died\0Operation canceled\0Function not implemented\0No message of desired type\0Identifier removed\0Device not a stream\0No data available\0Device timeout\0Out of streams resources\0Link has been severed\0Protocol error\0Bad message\0File descriptor in bad state\0Not a socket\0Destination address required\0Message too large\0Protocol wrong type for socket\0Protocol not available\0Protocol not supported\0Socket type not supported\0Not supported\0Protocol family not supported\0Address family not supported by protocol\0Address not available\0Network is down\0Network unreachable\0Connection reset by network\0Connection aborted\0No buffer space available\0Socket is connected\0Socket not connected\0Cannot send after socket shutdown\0Operation already in progress\0Operation in progress\0Stale file handle\0Remote I/O error\0Quota exceeded\0No medium found\0Wrong medium type\0Multihop attempted\0Required key not available\0Key has expired\0Key has been revoked\0Key was rejected by service\0A\xB0\xB7\vI\0\0\0 F\0\0 K\0\0\0\0\0\0\0\0\0\xA0J\0\0\xA0K\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 L\0\0\0\0\0\0\0\0\0\x07\0\0\0\0 \0\0\0\0\0\0\0A\x84\xB8\v@\0A\x9C\xB8\vA\0\0\0B\0\0\0u\0\0\0\0A\xB4\xB8\v\0A\xC4\xB8\v\xFF\xFF\xFF\xFF
|
|
2313
2313
|
\0A\x88\xB9\v \xF8[\0\x008y\0\0\0A\x9C\xB9\vE\0A\xB4\xB9\v
|
|
2314
|
-
A\0\0\0F\0\0\0Xy\0A\xCC\xB9\v\0A\xDC\xB9\v\b\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0A\xA0\xBA\v\x07\x90\\\0\0P{`)}function Ax(E){return E}async function Fe(E){return E}async function ve(E,C){try{var m=await Fe(E),P=await WebAssembly.instantiate(m,C);return P}catch(N){R(`failed to asynchronously prepare wasm: ${N}`),O(E)&&R(`warning: Loading from a file URI (${E}) is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing`),R0(N)}}async function Ee(E,C,m){return ve(C,m)}function F0(){var E={env:Hn,wasi_snapshot_preview1:Hn};return E}async function Be(){function E(V,Q){return Jr=V.exports,
|
|
2314
|
+
A\0\0\0F\0\0\0Xy\0A\xCC\xB9\v\0A\xDC\xB9\v\b\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0A\xA0\xBA\v\x07\x90\\\0\0P{`)}function Ax(E){return E}async function Fe(E){return E}async function ve(E,C){try{var m=await Fe(E),P=await WebAssembly.instantiate(m,C);return P}catch(N){R(`failed to asynchronously prepare wasm: ${N}`),O(E)&&R(`warning: Loading from a file URI (${E}) is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing`),R0(N)}}async function Ee(E,C,m){return ve(C,m)}function F0(){var E={env:Hn,wasi_snapshot_preview1:Hn};return E}async function Be(){function E(V,Q){return Jr=V.exports,_o(Jr),Ex(),Jr}var C=t;function m(V){return g(t===C,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),C=null,E(V.instance)}var P=F0();if(t.instantiateWasm)return new Promise((V,Q)=>{try{t.instantiateWasm(P,(A0,B0)=>{V(E(A0,B0))})}catch(A0){R(`Module.instantiateWasm callback failed with error: ${A0}`),Q(A0)}});M0??(M0=G0());var N=await Ee(e0,M0,P),X=m(N);return X}class Hx{constructor(C){C0(this,"name","ExitStatus"),this.message=`Program terminated with exit(${C})`,this.status=C}}var cA,DA,Tr,Ix,Nr,xr,Z0,h0,Kx,Bx,AA=E=>{for(;E.length>0;)E.shift()(t)},zx=[],dA=E=>zx.push(E),E0=[],fe=E=>E0.push(E),Cr=!0;function sx(E){return g(typeof E=="number",`ptrToString expects a number, got ${typeof E}`),E>>>=0,"0x"+E.toString(16).padStart(8,"0")}var Px=E=>{Px.shown||(Px.shown={}),Px.shown[E]||(Px.shown[E]=1,D&&(E="warning: "+E),R(E))};class TA{constructor(C){this.excPtr=C,this.ptr=C-24}set_type(C){h0[this.ptr+4>>2]=C}get_type(){return h0[this.ptr+4>>2]}set_destructor(C){h0[this.ptr+8>>2]=C}get_destructor(){return h0[this.ptr+8>>2]}set_caught(C){C=C?1:0,Ix[this.ptr+12]=C}get_caught(){return Ix[this.ptr+12]!=0}set_rethrown(C){C=C?1:0,Ix[this.ptr+13]=C}get_rethrown(){return Ix[this.ptr+13]!=0}init(C,m){this.set_adjusted_ptr(0),this.set_type(C),this.set_destructor(m)}set_adjusted_ptr(C){h0[this.ptr+16>>2]=C}get_adjusted_ptr(){return h0[this.ptr+16>>2]}}var lr=0,NA=(E,C,m)=>{var P=new TA(E);P.init(C,m),lr++,g(!1,"Exception thrown, but exception catching is not enabled. Compile with -sNO_DISABLE_EXCEPTION_CATCHING or -sEXCEPTION_CATCHING_ALLOWED=[..] to catch.")},Ce=()=>R0("native code called abort()"),W0={},uA=E=>{for(;E.length;){var C=E.pop(),m=E.pop();m(C)}};function t0(E){return this.fromWireType(h0[E>>2])}var bA={},Mx={},Jx={},S0=class extends Error{constructor(C){super(C),this.name="InternalError"}},g0=E=>{throw new S0(E)},rA=(E,C,m)=>{E.forEach(Q=>Jx[Q]=C);function P(Q){var A0=m(Q);A0.length!==E.length&&g0("Mismatched type converter count");for(var B0=0;B0<E.length;++B0)hx(E[B0],A0[B0])}var N=new Array(C.length),X=[],V=0;for(let[Q,A0]of C.entries())Mx.hasOwnProperty(A0)?N[Q]=Mx[A0]:(X.push(A0),bA.hasOwnProperty(A0)||(bA[A0]=[]),bA[A0].push(()=>{N[Q]=Mx[A0],++V,V===X.length&&P(N)}));X.length===0&&P(N)},cr=E=>{var C=W0[E];delete W0[E];var m=C.rawConstructor,P=C.rawDestructor,N=C.fields,X=N.map(V=>V.getterReturnType).concat(N.map(V=>V.setterArgumentType));rA([E],X,V=>{var Q={};for(var[A0,B0]of N.entries()){let c0=V[A0],K0=B0.getter,H0=B0.getterContext,J0=V[A0+N.length],kx=B0.setter,lx=B0.setterContext;Q[B0.fieldName]={read:Wx=>c0.fromWireType(K0(H0,Wx)),write:(Wx,hA)=>{var iA=[];kx(lx,Wx,J0.toWireType(iA,hA)),uA(iA)},optional:c0.optional}}return[{name:C.name,fromWireType:c0=>{var K0={};for(var H0 in Q)K0[H0]=Q[H0].read(c0);return P(c0),K0},toWireType:(c0,K0)=>{for(var H0 in Q)if(!(H0 in K0)&&!Q[H0].optional)throw new TypeError(`Missing field: "${H0}"`);var J0=m();for(H0 in Q)Q[H0].write(J0,K0[H0]);return c0!==null&&c0.push(P,J0),J0},readValueFromPointer:t0,destructorFunction:P}]})},ax=E=>{for(var C="";;){var m=Bx[E++];if(!m)return C;C+=String.fromCharCode(m)}},tx=class extends Error{constructor(C){super(C),this.name="BindingError"}},b0=E=>{throw new tx(E)};function Dr(E,C,m={}){var P=C.name;if(E||b0(`type "${P}" must have a positive integer typeid pointer`),Mx.hasOwnProperty(E)){if(m.ignoreDuplicateRegistrations)return;b0(`Cannot register type '${P}' twice`)}if(Mx[E]=C,delete Jx[E],bA.hasOwnProperty(E)){var N=bA[E];delete bA[E],N.forEach(X=>X())}}function hx(E,C,m={}){return Dr(E,C,m)}var Ar=(E,C,m)=>{switch(C){case 1:return m?P=>Ix[P]:P=>Bx[P];case 2:return m?P=>cA[P>>1]:P=>Z0[P>>1];case 4:return m?P=>DA[P>>2]:P=>h0[P>>2];case 8:return m?P=>Tr[P>>3]:P=>Kx[P>>3];default:throw new TypeError(`invalid integer width (${C}): ${E}`)}},eA=E=>{if(E===null)return"null";var C=typeof E;return C==="object"||C==="array"||C==="function"?E.toString():""+E},pA=(E,C,m,P)=>{if(C<m||C>P)throw new TypeError(`Passing a number "${eA(C)}" from JS side to C/C++ side to an argument of type "${E}", which is outside the valid range [${m}, ${P}]!`)},le=(E,C,m,P,N)=>{C=ax(C);let X=P===0n,V=Q=>Q;if(X){let Q=m*8;V=A0=>BigInt.asUintN(Q,A0),N=V(N)}hx(E,{name:C,fromWireType:V,toWireType:(Q,A0)=>{if(typeof A0=="number")A0=BigInt(A0);else if(typeof A0!="bigint")throw new TypeError(`Cannot convert "${eA(A0)}" to ${C}`);return pA(C,A0,P,N),A0},readValueFromPointer:Ar(C,m,!X),destructorFunction:null})},a=(E,C,m,P)=>{C=ax(C),hx(E,{name:C,fromWireType:function(N){return!!N},toWireType:function(N,X){return X?m:P},readValueFromPointer:function(N){return this.fromWireType(Bx[N])},destructorFunction:null})},y0=E=>({count:E.count,deleteScheduled:E.deleteScheduled,preservePointerOnDelete:E.preservePointerOnDelete,ptr:E.ptr,ptrType:E.ptrType,smartPtr:E.smartPtr,smartPtrType:E.smartPtrType}),dr=E=>{function C(m){return m.$$.ptrType.registeredClass.name}b0(C(E)+" instance already deleted")},jA=!1,tA=E=>{},ce=E=>{E.smartPtr?E.smartPtrType.rawDestructor(E.smartPtr):E.ptrType.registeredClass.rawDestructor(E.ptr)},rr=E=>{E.count.value-=1;var C=E.count.value===0;C&&ce(E)},Ir=(E,C,m)=>{if(C===m)return E;if(m.baseClass===void 0)return null;var P=Ir(E,C,m.baseClass);return P===null?null:m.downcast(P)},Mr={},De={},de=(E,C)=>{for(C===void 0&&b0("ptr should not be undefined");E.baseClass;)C=E.upcast(C),E=E.baseClass;return C},ue=(E,C)=>(C=de(E,C),De[C]),er=(E,C)=>{(!C.ptrType||!C.ptr)&&g0("makeClassHandle requires ptr and ptrType");var m=!!C.smartPtrType,P=!!C.smartPtr;return m!==P&&g0("Both smartPtrType and smartPtr must be specified"),C.count={value:1},IA(Object.create(E,{$$:{value:C,writable:!0}}))};function Lr(E){var C=this.getPointee(E);if(!C)return this.destructor(E),null;var m=ue(this.registeredClass,C);if(m!==void 0){if(m.$$.count.value===0)return m.$$.ptr=C,m.$$.smartPtr=E,m.clone();var P=m.clone();return this.destructor(E),P}function N(){return this.isSmartPointer?er(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:C,smartPtrType:this,smartPtr:E}):er(this.registeredClass.instancePrototype,{ptrType:this,ptr:E})}var X=this.registeredClass.getActualType(C),V=Mr[X];if(!V)return N.call(this);var Q;this.isConst?Q=V.constPointerType:Q=V.pointerType;var A0=Ir(C,this.registeredClass,Q.registeredClass);return A0===null?N.call(this):this.isSmartPointer?er(Q.registeredClass.instancePrototype,{ptrType:Q,ptr:A0,smartPtrType:this,smartPtr:E}):er(Q.registeredClass.instancePrototype,{ptrType:Q,ptr:A0})}var IA=E=>globalThis.FinalizationRegistry?(jA=new FinalizationRegistry(C=>{console.warn(C.leakWarning),rr(C.$$)}),IA=C=>{var m=C.$$,P=!!m.smartPtr;if(P){var N={$$:m},X=m.ptrType.registeredClass,V=new Error(`Embind found a leaked C++ instance ${X.name} <${sx(m.ptr)}>.
|
|
2315
2315
|
We'll free it automatically in this case, but this functionality is not reliable across various environments.
|
|
2316
2316
|
Make sure to invoke .delete() manually once you're done with the instance instead.
|
|
2317
|
-
Originally allocated`);"captureStackTrace"in Error&&Error.captureStackTrace(V,Lr),N.leakWarning=V.stack.replace(/^Error: /,""),jA.register(C,N,C)}return C},tA=C=>jA.unregister(C),IA(E)):(IA=C=>C,E),tr=[],be=()=>{for(;tr.length;){var E=tr.pop();E.$$.deleteScheduled=!1,E.delete()}},Rr,pe=()=>{let E=MA.prototype;Object.assign(E,{isAliasOf(m){if(!(this instanceof MA)||!(m instanceof MA))return!1;var P=this.$$.ptrType.registeredClass,N=this.$$.ptr;m.$$=m.$$;for(var X=m.$$.ptrType.registeredClass,V=m.$$.ptr;P.baseClass;)N=P.upcast(N),P=P.baseClass;for(;X.baseClass;)V=X.upcast(V),X=X.baseClass;return P===X&&N===V},clone(){if(this.$$.ptr||dr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var m=IA(Object.create(Object.getPrototypeOf(this),{$$:{value:y0(this.$$)}}));return m.$$.count.value+=1,m.$$.deleteScheduled=!1,m},delete(){this.$$.ptr||dr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&b0("Object already scheduled for deletion"),tA(this),rr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||dr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&b0("Object already scheduled for deletion"),tr.push(this),tr.length===1&&Rr&&Rr(be),this.$$.deleteScheduled=!0,this}});let C=Symbol.dispose;C&&(E[C]=E.delete)};function MA(){}var ur=(E,C)=>Object.defineProperty(C,"name",{value:E}),Or=(E,C,m)=>{if(E[C].overloadTable===void 0){var P=E[C];E[C]=function(...N){return E[C].overloadTable.hasOwnProperty(N.length)||b0(`Function '${m}' called with an invalid number of arguments (${N.length}) - expects one of (${E[C].overloadTable})!`),E[C].overloadTable[N.length].apply(this,N)},E[C].overloadTable=[],E[C].overloadTable[P.argCount]=P}},Gr=(E,C,m)=>{t.hasOwnProperty(E)?((m===void 0||t[E].overloadTable!==void 0&&t[E].overloadTable[m]!==void 0)&&b0(`Cannot register public name '${E}' twice`),Or(t,E,E),t[E].overloadTable.hasOwnProperty(m)&&b0(`Cannot register multiple overloads of a function with the same number of arguments (${m})!`),t[E].overloadTable[m]=C):(t[E]=C,t[E].argCount=m)},je=48,Ur=57,me=E=>{g(typeof E=="string"),E=E.replace(/[^a-zA-Z0-9_]/g,"$");var C=E.charCodeAt(0);return C>=je&&C<=Ur?`_${E}`:E};function he(E,C,m,P,N,X,V,Q){this.name=E,this.constructor=C,this.instancePrototype=m,this.rawDestructor=P,this.baseClass=N,this.getActualType=X,this.upcast=V,this.downcast=Q,this.pureVirtualFunctions=[]}var nr=(E,C,m)=>{for(;C!==m;)C.upcast||b0(`Expected null or instance of ${m.name}, got an instance of ${C.name}`),E=C.upcast(E),C=C.baseClass;return E};function ge(E,C){if(C===null)return this.isReference&&b0(`null is not a valid ${this.name}`),0;C.$$||b0(`Cannot pass "${eA(C)}" as a ${this.name}`),C.$$.ptr||b0(`Cannot pass deleted object as a pointer of type ${this.name}`);var m=C.$$.ptrType.registeredClass,P=nr(C.$$.ptr,m,this.registeredClass);return P}function ye(E,C){var m;if(C===null)return this.isReference&&b0(`null is not a valid ${this.name}`),this.isSmartPointer?(m=this.rawConstructor(),E!==null&&E.push(this.rawDestructor,m),m):0;(!C||!C.$$)&&b0(`Cannot pass "${eA(C)}" as a ${this.name}`),C.$$.ptr||b0(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&C.$$.ptrType.isConst&&b0(`Cannot convert argument of type ${C.$$.smartPtrType?C.$$.smartPtrType.name:C.$$.ptrType.name} to parameter type ${this.name}`);var P=C.$$.ptrType.registeredClass;if(m=nr(C.$$.ptr,P,this.registeredClass),this.isSmartPointer)switch(C.$$.smartPtr===void 0&&b0("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:C.$$.smartPtrType===this?m=C.$$.smartPtr:b0(`Cannot convert argument of type ${C.$$.smartPtrType?C.$$.smartPtrType.name:C.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:m=C.$$.smartPtr;break;case 2:if(C.$$.smartPtrType===this)m=C.$$.smartPtr;else{var N=C.clone();m=this.rawShare(m,l0.toHandle(()=>N.delete())),E!==null&&E.push(this.rawDestructor,m)}break;default:b0("Unsupported sharing policy")}return m}function Hr(E,C){if(C===null)return this.isReference&&b0(`null is not a valid ${this.name}`),0;C.$$||b0(`Cannot pass "${eA(C)}" as a ${this.name}`),C.$$.ptr||b0(`Cannot pass deleted object as a pointer of type ${this.name}`),C.$$.ptrType.isConst&&b0(`Cannot convert argument of type ${C.$$.ptrType.name} to parameter type ${this.name}`);var m=C.$$.ptrType.registeredClass,P=nr(C.$$.ptr,m,this.registeredClass);return P}var Kr=()=>{Object.assign(LA.prototype,{getPointee(E){return this.rawGetPointee&&(E=this.rawGetPointee(E)),E},destructor(E){this.rawDestructor?.(E)},readValueFromPointer:t0,fromWireType:Lr})};function LA(E,C,m,P,N,X,V,Q,A0,B0,c0){this.name=E,this.registeredClass=C,this.isReference=m,this.isConst=P,this.isSmartPointer=N,this.pointeeType=X,this.sharingPolicy=V,this.rawGetPointee=Q,this.rawConstructor=A0,this.rawShare=B0,this.rawDestructor=c0,!N&&C.baseClass===void 0?P?(this.toWireType=ge,this.destructorFunction=null):(this.toWireType=Hr,this.destructorFunction=null):this.toWireType=ye}var zr=(E,C,m)=>{t.hasOwnProperty(E)||g0("Replacing nonexistent public symbol"),t[E].overloadTable!==void 0&&m!==void 0?t[E].overloadTable[m]=C:(t[E]=C,t[E].argCount=m)},RA=[],br=E=>{var C=RA[E];return C||(RA[E]=C=gr.get(E)),g(gr.get(E)==C,"table mirror is out of date"),C},gx=(E,C,m=!1)=>{g(!m,"async bindings are only supported with JSPI"),E=ax(E);function P(){var X=br(C);return X}var N=P();return typeof N!="function"&&b0(`unknown function pointer with signature ${E}: ${C}`),N};class ke extends Error{}var mA=E=>{var C=On(E),m=ax(C);return HA(C),m},OA=(E,C)=>{var m=[],P={};function N(X){if(!P[X]&&!Mx[X]){if(Jx[X]){Jx[X].forEach(N);return}m.push(X),P[X]=!0}}throw C.forEach(N),new ke(`${E}: `+m.map(mA).join([", "]))},pr=(E,C,m,P,N,X,V,Q,A0,B0,c0,K0,H0)=>{c0=ax(c0),X=gx(N,X),Q&&(Q=gx(V,Q)),B0&&(B0=gx(A0,B0)),H0=gx(K0,H0);var J0=me(c0);Gr(J0,function(){OA(`Cannot construct ${c0} due to unbound types`,[P])}),rA([E,C,m],P?[P]:[],kx=>{var lx;kx=kx[0];var Wx,hA;P?(Wx=kx.registeredClass,hA=Wx.instancePrototype):hA=MA.prototype;var iA=ur(c0,function(...
|
|
2317
|
+
Originally allocated`);"captureStackTrace"in Error&&Error.captureStackTrace(V,Lr),N.leakWarning=V.stack.replace(/^Error: /,""),jA.register(C,N,C)}return C},tA=C=>jA.unregister(C),IA(E)):(IA=C=>C,E),tr=[],be=()=>{for(;tr.length;){var E=tr.pop();E.$$.deleteScheduled=!1,E.delete()}},Rr,pe=()=>{let E=MA.prototype;Object.assign(E,{isAliasOf(m){if(!(this instanceof MA)||!(m instanceof MA))return!1;var P=this.$$.ptrType.registeredClass,N=this.$$.ptr;m.$$=m.$$;for(var X=m.$$.ptrType.registeredClass,V=m.$$.ptr;P.baseClass;)N=P.upcast(N),P=P.baseClass;for(;X.baseClass;)V=X.upcast(V),X=X.baseClass;return P===X&&N===V},clone(){if(this.$$.ptr||dr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var m=IA(Object.create(Object.getPrototypeOf(this),{$$:{value:y0(this.$$)}}));return m.$$.count.value+=1,m.$$.deleteScheduled=!1,m},delete(){this.$$.ptr||dr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&b0("Object already scheduled for deletion"),tA(this),rr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||dr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&b0("Object already scheduled for deletion"),tr.push(this),tr.length===1&&Rr&&Rr(be),this.$$.deleteScheduled=!0,this}});let C=Symbol.dispose;C&&(E[C]=E.delete)};function MA(){}var ur=(E,C)=>Object.defineProperty(C,"name",{value:E}),Or=(E,C,m)=>{if(E[C].overloadTable===void 0){var P=E[C];E[C]=function(...N){return E[C].overloadTable.hasOwnProperty(N.length)||b0(`Function '${m}' called with an invalid number of arguments (${N.length}) - expects one of (${E[C].overloadTable})!`),E[C].overloadTable[N.length].apply(this,N)},E[C].overloadTable=[],E[C].overloadTable[P.argCount]=P}},Gr=(E,C,m)=>{t.hasOwnProperty(E)?((m===void 0||t[E].overloadTable!==void 0&&t[E].overloadTable[m]!==void 0)&&b0(`Cannot register public name '${E}' twice`),Or(t,E,E),t[E].overloadTable.hasOwnProperty(m)&&b0(`Cannot register multiple overloads of a function with the same number of arguments (${m})!`),t[E].overloadTable[m]=C):(t[E]=C,t[E].argCount=m)},je=48,Ur=57,me=E=>{g(typeof E=="string"),E=E.replace(/[^a-zA-Z0-9_]/g,"$");var C=E.charCodeAt(0);return C>=je&&C<=Ur?`_${E}`:E};function he(E,C,m,P,N,X,V,Q){this.name=E,this.constructor=C,this.instancePrototype=m,this.rawDestructor=P,this.baseClass=N,this.getActualType=X,this.upcast=V,this.downcast=Q,this.pureVirtualFunctions=[]}var nr=(E,C,m)=>{for(;C!==m;)C.upcast||b0(`Expected null or instance of ${m.name}, got an instance of ${C.name}`),E=C.upcast(E),C=C.baseClass;return E};function ge(E,C){if(C===null)return this.isReference&&b0(`null is not a valid ${this.name}`),0;C.$$||b0(`Cannot pass "${eA(C)}" as a ${this.name}`),C.$$.ptr||b0(`Cannot pass deleted object as a pointer of type ${this.name}`);var m=C.$$.ptrType.registeredClass,P=nr(C.$$.ptr,m,this.registeredClass);return P}function ye(E,C){var m;if(C===null)return this.isReference&&b0(`null is not a valid ${this.name}`),this.isSmartPointer?(m=this.rawConstructor(),E!==null&&E.push(this.rawDestructor,m),m):0;(!C||!C.$$)&&b0(`Cannot pass "${eA(C)}" as a ${this.name}`),C.$$.ptr||b0(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&C.$$.ptrType.isConst&&b0(`Cannot convert argument of type ${C.$$.smartPtrType?C.$$.smartPtrType.name:C.$$.ptrType.name} to parameter type ${this.name}`);var P=C.$$.ptrType.registeredClass;if(m=nr(C.$$.ptr,P,this.registeredClass),this.isSmartPointer)switch(C.$$.smartPtr===void 0&&b0("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:C.$$.smartPtrType===this?m=C.$$.smartPtr:b0(`Cannot convert argument of type ${C.$$.smartPtrType?C.$$.smartPtrType.name:C.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:m=C.$$.smartPtr;break;case 2:if(C.$$.smartPtrType===this)m=C.$$.smartPtr;else{var N=C.clone();m=this.rawShare(m,l0.toHandle(()=>N.delete())),E!==null&&E.push(this.rawDestructor,m)}break;default:b0("Unsupported sharing policy")}return m}function Hr(E,C){if(C===null)return this.isReference&&b0(`null is not a valid ${this.name}`),0;C.$$||b0(`Cannot pass "${eA(C)}" as a ${this.name}`),C.$$.ptr||b0(`Cannot pass deleted object as a pointer of type ${this.name}`),C.$$.ptrType.isConst&&b0(`Cannot convert argument of type ${C.$$.ptrType.name} to parameter type ${this.name}`);var m=C.$$.ptrType.registeredClass,P=nr(C.$$.ptr,m,this.registeredClass);return P}var Kr=()=>{Object.assign(LA.prototype,{getPointee(E){return this.rawGetPointee&&(E=this.rawGetPointee(E)),E},destructor(E){this.rawDestructor?.(E)},readValueFromPointer:t0,fromWireType:Lr})};function LA(E,C,m,P,N,X,V,Q,A0,B0,c0){this.name=E,this.registeredClass=C,this.isReference=m,this.isConst=P,this.isSmartPointer=N,this.pointeeType=X,this.sharingPolicy=V,this.rawGetPointee=Q,this.rawConstructor=A0,this.rawShare=B0,this.rawDestructor=c0,!N&&C.baseClass===void 0?P?(this.toWireType=ge,this.destructorFunction=null):(this.toWireType=Hr,this.destructorFunction=null):this.toWireType=ye}var zr=(E,C,m)=>{t.hasOwnProperty(E)||g0("Replacing nonexistent public symbol"),t[E].overloadTable!==void 0&&m!==void 0?t[E].overloadTable[m]=C:(t[E]=C,t[E].argCount=m)},RA=[],br=E=>{var C=RA[E];return C||(RA[E]=C=gr.get(E)),g(gr.get(E)==C,"table mirror is out of date"),C},gx=(E,C,m=!1)=>{g(!m,"async bindings are only supported with JSPI"),E=ax(E);function P(){var X=br(C);return X}var N=P();return typeof N!="function"&&b0(`unknown function pointer with signature ${E}: ${C}`),N};class ke extends Error{}var mA=E=>{var C=On(E),m=ax(C);return HA(C),m},OA=(E,C)=>{var m=[],P={};function N(X){if(!P[X]&&!Mx[X]){if(Jx[X]){Jx[X].forEach(N);return}m.push(X),P[X]=!0}}throw C.forEach(N),new ke(`${E}: `+m.map(mA).join([", "]))},pr=(E,C,m,P,N,X,V,Q,A0,B0,c0,K0,H0)=>{c0=ax(c0),X=gx(N,X),Q&&(Q=gx(V,Q)),B0&&(B0=gx(A0,B0)),H0=gx(K0,H0);var J0=me(c0);Gr(J0,function(){OA(`Cannot construct ${c0} due to unbound types`,[P])}),rA([E,C,m],P?[P]:[],kx=>{var lx;kx=kx[0];var Wx,hA;P?(Wx=kx.registeredClass,hA=Wx.instancePrototype):hA=MA.prototype;var iA=ur(c0,function(...Vt){if(Object.getPrototypeOf(this)!==Vr)throw new tx(`Use 'new' to construct ${c0}`);if(gA.constructor_body===void 0)throw new tx(`${c0} has no accessible constructor`);var Vn=gA.constructor_body[Vt.length];if(Vn===void 0)throw new tx(`Tried to invoke ctor of ${c0} with invalid number of parameters (${Vt.length}) - expected (${Object.keys(gA.constructor_body).toString()}) parameters instead!`);return Vn.apply(this,Vt)}),Vr=Object.create(hA,{constructor:{value:iA}});iA.prototype=Vr;var gA=new he(c0,iA,Vr,H0,Wx,X,Q,B0);gA.baseClass&&((lx=gA.baseClass).__derivedClasses??(lx.__derivedClasses=[]),gA.baseClass.__derivedClasses.push(gA));var qo=new LA(c0,gA,!0,!1,!1),zn=new LA(c0+"*",gA,!1,!1,!1),Jn=new LA(c0+" const*",gA,!1,!0,!1);return Mr[E]={pointerType:zn,constPointerType:Jn},zr(J0,iA),[qo,zn,Jn]})},ox=(E,C)=>{for(var m=[],P=0;P<E;P++)m.push(h0[C+P*4>>2]);return m};function ir(E){for(var C=1;C<E.length;++C)if(E[C]!==null&&E[C].destructorFunction===void 0)return!0;return!1}function GA(E,C,m,P,N){if(E<C||E>m){var X=C==m?C:`${C} to ${m}`;N(`function ${P} called with ${E} arguments, expected ${X}`)}}function s(E,C,m,P){var N=ir(E),X=E.length-2,V=[],Q=["fn"];C&&Q.push("thisWired");for(var A0=0;A0<X;++A0)V.push(`arg${A0}`),Q.push(`arg${A0}Wired`);V=V.join(","),Q=Q.join(",");var B0=`return function (${V}) {
|
|
2318
2318
|
`;B0+=`checkArgCount(arguments.length, minArgs, maxArgs, humanName, throwBindingError);
|
|
2319
2319
|
`,N&&(B0+=`var destructors = [];
|
|
2320
2320
|
`);var c0=N?"destructors":"null",K0=["humanName","throwBindingError","invoker","fn","runDestructors","fromRetWire","toClassParamWire"];C&&(B0+=`var thisWired = toClassParamWire(${c0}, this);
|
|
@@ -2326,13 +2326,13 @@ Originally allocated`);"captureStackTrace"in Error&&Error.captureStackTrace(V,Lr
|
|
|
2326
2326
|
return ret;
|
|
2327
2327
|
`),B0+=`}
|
|
2328
2328
|
`,K0.push("checkArgCount","minArgs","maxArgs"),B0=`if (arguments.length !== ${K0.length}){ throw new Error(humanName + "Expected ${K0.length} closure arguments " + arguments.length + " given."); }
|
|
2329
|
-
${B0}`,new Function(K0,B0)}function v(E){for(var C=E.length-2,m=E.length-1;m>=2&&E[m].optional;--m)C--;return C}function c(E,C,m,P,N,X){var V=C.length;V<2&&b0("argTypes array size mismatch! Must at least get return value and 'this' types!"),g(!X,"async bindings are only supported with JSPI");for(var Q=C[1]!==null&&m!==null,A0=ir(C),B0=!C[0].isVoid,c0=V-2,K0=v(C),H0=C[0],J0=C[1],kx=[E,b0,P,N,uA,H0.fromWireType.bind(H0),J0?.toWireType.bind(J0)],lx=2;lx<V;++lx){var Wx=C[lx];kx.push(Wx.toWireType.bind(Wx))}if(!A0)for(var lx=Q?1:2;lx<C.length;++lx)C[lx].destructorFunction!==null&&kx.push(C[lx].destructorFunction);kx.push(GA,K0,c0);var iA=s(C,Q,B0,X)(...kx);return ur(E,iA)}var u=(E,C,m,P,N,X)=>{g(C>0);var V=ox(C,m);N=gx(P,N),rA([],[E],Q=>{Q=Q[0];var A0=`constructor ${Q.name}`;if(Q.registeredClass.constructor_body===void 0&&(Q.registeredClass.constructor_body=[]),Q.registeredClass.constructor_body[C-1]!==void 0)throw new tx(`Cannot register multiple constructors with identical number of parameters (${C-1}) for class '${Q.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return Q.registeredClass.constructor_body[C-1]=()=>{OA(`Cannot construct ${Q.name} due to unbound types`,V)},rA([],V,B0=>(B0.splice(1,0,null),Q.registeredClass.constructor_body[C-1]=c(A0,B0,null,N,X),[])),[]})},h=(E,C,m)=>(E instanceof Object||b0(`${m} with invalid "this": ${E}`),E instanceof C.registeredClass.constructor||b0(`${m} incompatible with "this" of type ${E.constructor.name}`),E.$$.ptr||b0(`cannot call emscripten binding method ${m} on deleted object`),nr(E.$$.ptr,E.$$.ptrType.registeredClass,C.registeredClass)),$=(E,C,m,P,N,X,V,Q,A0,B0)=>{C=ax(C),N=gx(P,N),rA([],[E],c0=>{c0=c0[0];var K0=`${c0.name}.${C}`,H0={get(){OA(`Cannot access ${K0} due to unbound types`,[m,V])},enumerable:!0,configurable:!0};return A0?H0.set=()=>OA(`Cannot access ${K0} due to unbound types`,[m,V]):H0.set=J0=>b0(K0+" is a read-only property"),Object.defineProperty(c0.registeredClass.instancePrototype,C,H0),rA([],A0?[m,V]:[m],J0=>{var kx=J0[0],lx={get(){var hA=h(this,c0,K0+" getter");return kx.fromWireType(N(X,hA))},enumerable:!0};if(A0){A0=gx(Q,A0);var Wx=J0[1];lx.set=function(hA){var iA=h(this,c0,K0+" setter"),Vr=[];A0(B0,iA,Wx.toWireType(Vr,hA)),uA(Vr)}}return Object.defineProperty(c0.registeredClass.instancePrototype,C,lx),[]}),[]})},G=[],J=[0,1,,1,null,1,!0,1,!1,1],s0=E=>{if(E>9&&--J[E+1]===0){g(J[E]!==void 0,"decref for unallocated handle");var C=J[E];J[E]=void 0,G.push(E)}},l0={toValue:E=>(E||b0(`Cannot use deleted val. handle = ${E}`),g(E===2||J[E]!==void 0&&E%2===0,`invalid handle: ${E}`),J[E]),toHandle:E=>{switch(E){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let C=G.pop()||J.length;return J[C]=E,J[C+1]=1,C}}}},U0={name:"emscripten::val",fromWireType:E=>{var C=l0.toValue(E);return s0(E),C},toWireType:(E,C)=>l0.toHandle(C),readValueFromPointer:t0,destructorFunction:null},T0=E=>hx(E,U0),w0=(E,C)=>{switch(C){case 4:return function(m){return this.fromWireType(Nr[m>>2])};case 8:return function(m){return this.fromWireType(xr[m>>3])};default:throw new TypeError(`invalid float width (${C}): ${E}`)}},p0=(E,C,m)=>{C=ax(C),hx(E,{name:C,fromWireType:P=>P,toWireType:(P,N)=>{if(typeof N!="number"&&typeof N!="boolean")throw new TypeError(`Cannot convert ${eA(N)} to ${C}`);return N},readValueFromPointer:w0(C,m),destructorFunction:null})},X0=E=>{E=E.trim();let C=E.indexOf("(");return C===-1?E:(g(E.endsWith(")"),"Parentheses for argument names should match."),E.slice(0,C))},fx=(E,C,m,P,N,X,V,Q)=>{var A0=ox(C,m);E=ax(E),E=X0(E),N=gx(P,N,V),Gr(E,function(){OA(`Cannot call ${E} due to unbound types`,A0)},C-1),rA([],A0,B0=>{var c0=[B0[0],null].concat(B0.slice(1));return zr(E,c(E,c0,null,N,X,V),C-1),[]})},yx=(E,C,m,P,N)=>{C=ax(C);let X=P===0,V=A0=>A0;if(X){var Q=32-8*m;V=A0=>A0<<Q>>>Q,N=V(N)}hx(E,{name:C,fromWireType:V,toWireType:(A0,B0)=>{if(typeof B0!="number"&&typeof B0!="boolean")throw new TypeError(`Cannot convert "${eA(B0)}" to ${C}`);return pA(C,B0,P,N),B0},readValueFromPointer:Ar(C,m,P!==0),destructorFunction:null})},$x=(E,C,m)=>{var P=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array],N=P[C];function X(V){var Q=h0[V>>2],A0=h0[V+4>>2];return new N(Ix.buffer,A0,Q)}m=ax(m),hx(E,{name:m,fromWireType:X,readValueFromPointer:X},{ignoreDuplicateRegistrations:!0})},qx=(E,C,m,P)=>{if(g(typeof E=="string",`stringToUTF8Array expects a string (got ${typeof E})`),!(P>0))return 0;for(var N=m,X=m+P-1,V=0;V<E.length;++V){var Q=E.codePointAt(V);if(Q<=127){if(m>=X)break;C[m++]=Q}else if(Q<=2047){if(m+1>=X)break;C[m++]=192|Q>>6,C[m++]=128|Q&63}else if(Q<=65535){if(m+2>=X)break;C[m++]=224|Q>>12,C[m++]=128|Q>>6&63,C[m++]=128|Q&63}else{if(m+3>=X)break;Q>1114111&&Px(`Invalid Unicode code point ${sx(Q)} encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).`),C[m++]=240|Q>>18,C[m++]=128|Q>>12&63,C[m++]=128|Q>>6&63,C[m++]=128|Q&63,V++}}return C[m]=0,m-N},UA=(E,C,m)=>(g(typeof m=="number","stringToUTF8 requires a third parameter that specifies the length of the output buffer"),qx(E,Bx,C,m)),Tx=E=>{for(var C=0,m=0;m<E.length;++m){var P=E.charCodeAt(m);P<=127?C++:P<=2047?C+=2:P>=55296&&P<=57343?(C+=4,++m):C+=3}return C},nA=globalThis.TextDecoder&&new TextDecoder,rx=(E,C,m,P)=>{var N=C+m;if(P)return N;for(;E[C]&&!(C>=N);)++C;return C},Qe=(E,C=0,m,P)=>{var N=rx(E,C,m,P);if(N-C>16&&E.buffer&&nA)return nA.decode(E.subarray(C,N));for(var X="";C<N;){var V=E[C++];if(!(V&128)){X+=String.fromCharCode(V);continue}var Q=E[C++]&63;if((V&224)==192){X+=String.fromCharCode((V&31)<<6|Q);continue}var A0=E[C++]&63;if((V&240)==224?V=(V&15)<<12|Q<<6|A0:((V&248)!=240&&Px(`Invalid UTF-8 leading byte ${sx(V)} encountered when deserializing a UTF-8 string in wasm memory to a JS string!`),V=(V&7)<<18|Q<<12|A0<<6|E[C++]&63),V<65536)X+=String.fromCharCode(V);else{var B0=V-65536;X+=String.fromCharCode(55296|B0>>10,56320|B0&1023)}}return X},
|
|
2329
|
+
${B0}`,new Function(K0,B0)}function v(E){for(var C=E.length-2,m=E.length-1;m>=2&&E[m].optional;--m)C--;return C}function c(E,C,m,P,N,X){var V=C.length;V<2&&b0("argTypes array size mismatch! Must at least get return value and 'this' types!"),g(!X,"async bindings are only supported with JSPI");for(var Q=C[1]!==null&&m!==null,A0=ir(C),B0=!C[0].isVoid,c0=V-2,K0=v(C),H0=C[0],J0=C[1],kx=[E,b0,P,N,uA,H0.fromWireType.bind(H0),J0?.toWireType.bind(J0)],lx=2;lx<V;++lx){var Wx=C[lx];kx.push(Wx.toWireType.bind(Wx))}if(!A0)for(var lx=Q?1:2;lx<C.length;++lx)C[lx].destructorFunction!==null&&kx.push(C[lx].destructorFunction);kx.push(GA,K0,c0);var iA=s(C,Q,B0,X)(...kx);return ur(E,iA)}var u=(E,C,m,P,N,X)=>{g(C>0);var V=ox(C,m);N=gx(P,N),rA([],[E],Q=>{Q=Q[0];var A0=`constructor ${Q.name}`;if(Q.registeredClass.constructor_body===void 0&&(Q.registeredClass.constructor_body=[]),Q.registeredClass.constructor_body[C-1]!==void 0)throw new tx(`Cannot register multiple constructors with identical number of parameters (${C-1}) for class '${Q.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return Q.registeredClass.constructor_body[C-1]=()=>{OA(`Cannot construct ${Q.name} due to unbound types`,V)},rA([],V,B0=>(B0.splice(1,0,null),Q.registeredClass.constructor_body[C-1]=c(A0,B0,null,N,X),[])),[]})},h=(E,C,m)=>(E instanceof Object||b0(`${m} with invalid "this": ${E}`),E instanceof C.registeredClass.constructor||b0(`${m} incompatible with "this" of type ${E.constructor.name}`),E.$$.ptr||b0(`cannot call emscripten binding method ${m} on deleted object`),nr(E.$$.ptr,E.$$.ptrType.registeredClass,C.registeredClass)),$=(E,C,m,P,N,X,V,Q,A0,B0)=>{C=ax(C),N=gx(P,N),rA([],[E],c0=>{c0=c0[0];var K0=`${c0.name}.${C}`,H0={get(){OA(`Cannot access ${K0} due to unbound types`,[m,V])},enumerable:!0,configurable:!0};return A0?H0.set=()=>OA(`Cannot access ${K0} due to unbound types`,[m,V]):H0.set=J0=>b0(K0+" is a read-only property"),Object.defineProperty(c0.registeredClass.instancePrototype,C,H0),rA([],A0?[m,V]:[m],J0=>{var kx=J0[0],lx={get(){var hA=h(this,c0,K0+" getter");return kx.fromWireType(N(X,hA))},enumerable:!0};if(A0){A0=gx(Q,A0);var Wx=J0[1];lx.set=function(hA){var iA=h(this,c0,K0+" setter"),Vr=[];A0(B0,iA,Wx.toWireType(Vr,hA)),uA(Vr)}}return Object.defineProperty(c0.registeredClass.instancePrototype,C,lx),[]}),[]})},G=[],J=[0,1,,1,null,1,!0,1,!1,1],s0=E=>{if(E>9&&--J[E+1]===0){g(J[E]!==void 0,"decref for unallocated handle");var C=J[E];J[E]=void 0,G.push(E)}},l0={toValue:E=>(E||b0(`Cannot use deleted val. handle = ${E}`),g(E===2||J[E]!==void 0&&E%2===0,`invalid handle: ${E}`),J[E]),toHandle:E=>{switch(E){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let C=G.pop()||J.length;return J[C]=E,J[C+1]=1,C}}}},U0={name:"emscripten::val",fromWireType:E=>{var C=l0.toValue(E);return s0(E),C},toWireType:(E,C)=>l0.toHandle(C),readValueFromPointer:t0,destructorFunction:null},T0=E=>hx(E,U0),w0=(E,C)=>{switch(C){case 4:return function(m){return this.fromWireType(Nr[m>>2])};case 8:return function(m){return this.fromWireType(xr[m>>3])};default:throw new TypeError(`invalid float width (${C}): ${E}`)}},p0=(E,C,m)=>{C=ax(C),hx(E,{name:C,fromWireType:P=>P,toWireType:(P,N)=>{if(typeof N!="number"&&typeof N!="boolean")throw new TypeError(`Cannot convert ${eA(N)} to ${C}`);return N},readValueFromPointer:w0(C,m),destructorFunction:null})},X0=E=>{E=E.trim();let C=E.indexOf("(");return C===-1?E:(g(E.endsWith(")"),"Parentheses for argument names should match."),E.slice(0,C))},fx=(E,C,m,P,N,X,V,Q)=>{var A0=ox(C,m);E=ax(E),E=X0(E),N=gx(P,N,V),Gr(E,function(){OA(`Cannot call ${E} due to unbound types`,A0)},C-1),rA([],A0,B0=>{var c0=[B0[0],null].concat(B0.slice(1));return zr(E,c(E,c0,null,N,X,V),C-1),[]})},yx=(E,C,m,P,N)=>{C=ax(C);let X=P===0,V=A0=>A0;if(X){var Q=32-8*m;V=A0=>A0<<Q>>>Q,N=V(N)}hx(E,{name:C,fromWireType:V,toWireType:(A0,B0)=>{if(typeof B0!="number"&&typeof B0!="boolean")throw new TypeError(`Cannot convert "${eA(B0)}" to ${C}`);return pA(C,B0,P,N),B0},readValueFromPointer:Ar(C,m,P!==0),destructorFunction:null})},$x=(E,C,m)=>{var P=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array],N=P[C];function X(V){var Q=h0[V>>2],A0=h0[V+4>>2];return new N(Ix.buffer,A0,Q)}m=ax(m),hx(E,{name:m,fromWireType:X,readValueFromPointer:X},{ignoreDuplicateRegistrations:!0})},qx=(E,C,m,P)=>{if(g(typeof E=="string",`stringToUTF8Array expects a string (got ${typeof E})`),!(P>0))return 0;for(var N=m,X=m+P-1,V=0;V<E.length;++V){var Q=E.codePointAt(V);if(Q<=127){if(m>=X)break;C[m++]=Q}else if(Q<=2047){if(m+1>=X)break;C[m++]=192|Q>>6,C[m++]=128|Q&63}else if(Q<=65535){if(m+2>=X)break;C[m++]=224|Q>>12,C[m++]=128|Q>>6&63,C[m++]=128|Q&63}else{if(m+3>=X)break;Q>1114111&&Px(`Invalid Unicode code point ${sx(Q)} encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).`),C[m++]=240|Q>>18,C[m++]=128|Q>>12&63,C[m++]=128|Q>>6&63,C[m++]=128|Q&63,V++}}return C[m]=0,m-N},UA=(E,C,m)=>(g(typeof m=="number","stringToUTF8 requires a third parameter that specifies the length of the output buffer"),qx(E,Bx,C,m)),Tx=E=>{for(var C=0,m=0;m<E.length;++m){var P=E.charCodeAt(m);P<=127?C++:P<=2047?C+=2:P>=55296&&P<=57343?(C+=4,++m):C+=3}return C},nA=globalThis.TextDecoder&&new TextDecoder,rx=(E,C,m,P)=>{var N=C+m;if(P)return N;for(;E[C]&&!(C>=N);)++C;return C},Qe=(E,C=0,m,P)=>{var N=rx(E,C,m,P);if(N-C>16&&E.buffer&&nA)return nA.decode(E.subarray(C,N));for(var X="";C<N;){var V=E[C++];if(!(V&128)){X+=String.fromCharCode(V);continue}var Q=E[C++]&63;if((V&224)==192){X+=String.fromCharCode((V&31)<<6|Q);continue}var A0=E[C++]&63;if((V&240)==224?V=(V&15)<<12|Q<<6|A0:((V&248)!=240&&Px(`Invalid UTF-8 leading byte ${sx(V)} encountered when deserializing a UTF-8 string in wasm memory to a JS string!`),V=(V&7)<<18|Q<<12|A0<<6|E[C++]&63),V<65536)X+=String.fromCharCode(V);else{var B0=V-65536;X+=String.fromCharCode(55296|B0>>10,56320|B0&1023)}}return X},Mt=(E,C,m)=>(g(typeof E=="number",`UTF8ToString expects a number (got ${typeof E})`),E?Qe(Bx,E,C,m):""),Lt=(E,C)=>{C=ax(C);var m=!0;hx(E,{name:C,fromWireType(P){var N=h0[P>>2],X=P+4,V;if(m)V=Mt(X,N,!0);else{V="";for(var Q=0;Q<N;++Q)V+=String.fromCharCode(Bx[X+Q])}return HA(P),V},toWireType(P,N){N instanceof ArrayBuffer&&(N=new Uint8Array(N));var X,V=typeof N=="string";V||ArrayBuffer.isView(N)&&N.BYTES_PER_ELEMENT==1||b0("Cannot pass non-string to std::string"),m&&V?X=Tx(N):X=N.length;var Q=zt(4+X+1),A0=Q+4;if(h0[Q>>2]=X,V)if(m)UA(N,A0,X+1);else for(var B0=0;B0<X;++B0){var c0=N.charCodeAt(B0);c0>255&&(HA(Q),b0("String has UTF-16 code units that do not fit in 8 bits")),Bx[A0+B0]=c0}else Bx.set(N,A0);return P!==null&&P.push(HA,Q),Q},readValueFromPointer:t0,destructorFunction(P){HA(P)}})},Ze=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,Rt=(E,C,m)=>{g(E%2==0,"pointer passed to UTF16ToString must be 2-byte aligned");var P=E>>1,N=rx(Z0,P,C/2,m);if(N-P>16&&Ze)return Ze.decode(Z0.subarray(P,N));for(var X="",V=P;V<N;++V){var Q=Z0[V];X+=String.fromCharCode(Q)}return X},Ot=(E,C,m)=>{if(g(C%2==0,"pointer passed to stringToUTF16 must be 2-byte aligned"),g(typeof m=="number","stringToUTF16 requires a third parameter that specifies the length of the output buffer"),m??(m=2147483647),m<2)return 0;m-=2;for(var P=C,N=m<E.length*2?m/2:E.length,X=0;X<N;++X){var V=E.charCodeAt(X);cA[C>>1]=V,C+=2}return cA[C>>1]=0,C-P},xt=E=>E.length*2,_e=(E,C,m)=>{g(E%4==0,"pointer passed to UTF32ToString must be 2-byte aligned");for(var P="",N=E>>2,X=0;!(X>=C/4);X++){var V=h0[N+X];if(!V&&!m)break;P+=String.fromCodePoint(V)}return P},jr=(E,C,m)=>{if(g(C%4==0,"pointer passed to stringToUTF32 must be 4-byte aligned"),g(typeof m=="number","stringToUTF32 requires a third parameter that specifies the length of the output buffer"),m??(m=2147483647),m<4)return 0;for(var P=C,N=P+m-4,X=0;X<E.length;++X){var V=E.codePointAt(X);if(V>65535&&X++,DA[C>>2]=V,C+=4,C+4>N)break}return DA[C>>2]=0,C-P},n=E=>{for(var C=0,m=0;m<E.length;++m){var P=E.codePointAt(m);P>65535&&m++,C+=4}return C},F=(E,C,m)=>{m=ax(m);var P,N,X;C===2?(P=Rt,N=Ot,X=xt):(g(C===4,"only 2-byte and 4-byte strings are currently supported"),P=_e,N=jr,X=n),hx(E,{name:m,fromWireType:V=>{var Q=h0[V>>2],A0=P(V+4,Q*C,!0);return HA(V),A0},toWireType:(V,Q)=>{typeof Q!="string"&&b0(`Cannot pass non-string to C++ string type ${m}`);var A0=X(Q),B0=zt(4+A0+C);return h0[B0>>2]=A0/C,N(Q,B0+4,A0+C),V!==null&&V.push(HA,B0),B0},readValueFromPointer:t0,destructorFunction(V){HA(V)}})},f=(E,C,m,P,N,X)=>{W0[E]={name:ax(C),rawConstructor:gx(m,P),rawDestructor:gx(N,X),fields:[]}},d=(E,C,m,P,N,X,V,Q,A0,B0)=>{W0[E].fields.push({fieldName:ax(C),getterReturnType:m,getter:gx(P,N),getterContext:X,setterArgumentType:V,setter:gx(Q,A0),setterContext:B0})},p=(E,C)=>{C=ax(C),hx(E,{isVoid:!0,name:C,fromWireType:()=>{},toWireType:(m,P)=>{}})},_=[],M=E=>{var C=_.length;return _.push(E),C},z=(E,C)=>{var m=Mx[E];return m===void 0&&b0(`${C} has unknown type ${mA(E)}`),m},o0=(E,C)=>{for(var m=new Array(E),P=0;P<E;++P)m[P]=z(h0[C+P*4>>2],`parameter ${P}`);return m},k0=(E,C,m)=>{var P=[],N=E(P,m);return P.length&&(h0[C>>2]=l0.toHandle(P)),N},z0={},I0=E=>{var C=z0[E];return C===void 0?ax(E):C},P0=(E,C,m)=>{var P=8,[N,...X]=o0(E,C),V=N.toWireType.bind(N),Q=X.map(J0=>J0.readValueFromPointer.bind(J0));E--;var A0={toValue:l0.toValue},B0=Q.map((J0,kx)=>{var lx=`argFromPtr${kx}`;return A0[lx]=J0,`${lx}(args${kx?"+"+kx*P:""})`}),c0;switch(m){case 0:c0="toValue(handle)";break;case 2:c0="new (toValue(handle))";break;case 3:c0="";break;case 1:A0.getStringOrSymbol=I0,c0="toValue(handle)[getStringOrSymbol(methodName)]";break}c0+=`(${B0})`,N.isVoid||(A0.toReturnWire=V,A0.emval_returnValue=k0,c0=`return emval_returnValue(toReturnWire, destructorsRef, ${c0})`),c0=`return function (handle, methodName, destructorsRef, args) {
|
|
2330
2330
|
${c0}
|
|
2331
|
-
}`;var K0=new Function(Object.keys(A0),c0)(...Object.values(A0)),H0=`methodCaller<(${X.map(J0=>J0.name)}) => ${N.name}>`;return M(ur(H0,K0))},j0=E=>(E=I0(E),l0.toHandle(t[E])),nx=(E,C)=>(E=l0.toValue(E),C=l0.toValue(C),l0.toHandle(E[C])),bx=E=>{E>9&&(J[E+1]+=1)},Nx=(E,C,m,P,N)=>_[E](C,m,P,N),Lx=E=>l0.toHandle(I0(E)),Rx=E=>{var C=l0.toValue(E);uA(C),s0(E)},mr=()=>2147483648,Vx=(E,C)=>(g(C,"alignment argument is required"),Math.ceil(E/C)*C),sr=E=>{var C=At.buffer.byteLength,m=(E-C+65535)/65536|0;try{return At.grow(m),Ex(),1}catch(P){R(`growMemory: Attempted to grow heap from ${C} bytes to ${E} bytes, but got error: ${P}`)}},Cx=E=>{var C=Bx.length;E>>>=0,g(E>C);var m=mr();if(E>m)return R(`Cannot enlarge memory, requested ${E} bytes, but the limit is ${m} bytes!`),!1;for(var P=1;P<=4;P*=2){var N=C*(1+.2/P);N=Math.min(N,E+100663296);var X=Math.min(m,Vx(Math.max(E,N),65536)),V=sr(X);if(V)return!0}return R(`Failed to grow the heap from ${C} bytes to ${X} bytes, not enough memory!`),!1},Ha=E=>{R0("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")},Ka=9007199254740992,za=-9007199254740992,Ja=E=>E<za||E>Ka?NaN:Number(E);function Va(E,C,m,P){return C=Ja(C),70}var Ot=[null,[],[]],Gt=(E,C)=>{var m=Ot[E];g(m),C===0||C===10?((E===1?L:R)(Qe(m)),m.length=0):m.push(C)},DB=()=>{Gn(0),Ot[1].length&&Gt(1,10),Ot[2].length&&Gt(2,10)},Wa=(E,C,m,P)=>{for(var N=0,X=0;X<m;X++){var V=h0[C>>2],Q=h0[C+4>>2];C+=8;for(var A0=0;A0<Q;A0++)Gt(E,Bx[V+A0]);N+=Q}return h0[P>>2]=N,0},Xa=()=>{if(D){var E=Hs("crypto");return C=>E.randomFillSync(C)}return C=>(crypto.getRandomValues(C),0)},Mn=E=>(Mn=Xa())(E),Ya=(E,C)=>Mn(Bx.subarray(E,E+C)),Qa=(E,C)=>{if(hr)for(var m=E;m<E+C;m++){var P=br(m);P&&hr.set(P,m)}},hr,Za=E=>(hr||(hr=new WeakMap,Qa(0,gr.length)),hr.get(E)||0),Ut=[],xo=()=>{if(Ut.length)return Ut.pop();try{return gr.grow(1)}catch(E){if(!(E instanceof RangeError))throw E;R0("Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.")}},Ht=(E,C)=>{gr.set(E,C),RA[E]=gr.get(E)},Ln=E=>{let C=E.length;return g(C<16384),[C%128|128,C>>7,...E]},Ao={i:127,p:127,j:126,f:125,d:124,e:111},Rn=E=>Ln(Array.from(E,C=>{var m=Ao[C];return g(m,`invalid signature char: ${C}`),m})),ro=(E,C)=>{var m=Uint8Array.of(0,97,115,109,1,0,0,0,1,...Ln([1,96,...Rn(C.slice(1)),...Rn(C[0]==="v"?"":C[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),P=new WebAssembly.Module(m),N=new WebAssembly.Instance(P,{e:{f:E}}),X=N.exports.f;return X},eo=(E,C)=>{g(typeof E<"u");var m=Za(E);if(m)return m;var P=xo();try{Ht(P,E)}catch(X){if(!(X instanceof TypeError))throw X;g(typeof C<"u","Missing signature argument to addFunction: "+E);var N=ro(E,C);Ht(P,N)}return hr.set(E,P),P},to=E=>{hr.delete(br(E)),Ht(E,null),Ut.push(E)};pe(),Kr(),g(J.length===10);{if(t.noExitRuntime&&(Cr=t.noExitRuntime),t.print&&(L=t.print),t.printErr&&(R=t.printErr),t.wasmBinary&&(e0=t.wasmBinary),t.FS_createDataFile=lA.createDataFile,t.FS_createPreloadedFile=lA.createPreloadedFile,so(),t.arguments&&(b=t.arguments),t.thisProgram&&(k=t.thisProgram),g(typeof t.memoryInitializerPrefixURL>"u","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),g(typeof t.pthreadMainPrefixURL>"u","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),g(typeof t.cdInitializerPrefixURL>"u","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),g(typeof t.filePackagePrefixURL>"u","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),g(typeof t.read>"u","Module.read option was removed"),g(typeof t.readAsync>"u","Module.readAsync option was removed (modify readAsync in JS)"),g(typeof t.readBinary>"u","Module.readBinary option was removed (modify readBinary in JS)"),g(typeof t.setWindowTitle>"u","Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)"),g(typeof t.TOTAL_MEMORY>"u","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),g(typeof t.ENVIRONMENT>"u","Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)"),g(typeof t.STACK_SIZE>"u","STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time"),g(typeof t.wasmMemory>"u","Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally"),g(typeof t.INITIAL_MEMORY>"u","Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically"),t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()();n0("preInit")}t.addFunction=eo,t.removeFunction=to;var no=["writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromI64","readI53FromU64","convertI32PairToI53","convertI32PairToI53Checked","convertU32PairToI53","stackAlloc","getTempRet0","setTempRet0","zeroMemory","exitJS","withStackSave","strError","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","readEmAsmArgs","jstoi_q","getExecutableName","autoResumeAudioContext","getDynCaller","dynCall","handleException","keepRuntimeAlive","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","asyncLoad","asmjsMangle","mmapAlloc","HandleAllocator","getUniqueRunDependency","addRunDependency","removeRunDependency","addOnInit","addOnPostCtor","addOnPreMain","addOnExit","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","ccall","cwrap","intArrayFromString","intArrayToString","stringToAscii","stringToNewUTF8","stringToUTF8OnStack","writeArrayToMemory","registerKeyEventCallback","maybeCStringToJsString","findEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","jsStackTrace","getCallstack","convertPCtoSourceLocation","getEnvStrings","checkWasiClock","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","safeSetTimeout","setImmediateWrapped","safeRequestAnimationFrame","clearImmediateWrapped","registerPostMainLoop","registerPreMainLoop","getPromise","makePromise","idsToPromises","makePromiseCallback","findMatchingCatch","incrementUncaughtExceptionCount","decrementUncaughtExceptionCount","Browser_asyncPrepareDataCounter","isLeapYear","ydayFromDate","arraySum","addDays","getSocketFromFD","getSocketAddress","FS_createPreloadedFile","FS_preloadFile","FS_modeStringToFlags","FS_getMode","FS_fileDataToTypedArray","FS_stdin_getChar","FS_mkdirTree","_setNetworkCallback","heapObjectForWebGLType","toTypedArrayIndex","webgl_enable_ANGLE_instanced_arrays","webgl_enable_OES_vertex_array_object","webgl_enable_WEBGL_draw_buffers","webgl_enable_WEBGL_multi_draw","webgl_enable_EXT_polygon_offset_clamp","webgl_enable_EXT_clip_control","webgl_enable_WEBGL_polygon_mode","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","registerWebGlEventCallback","runAndAbortIfError","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","allocateUTF8","allocateUTF8OnStack","demangle","stackTrace","getNativeTypeSize","getFunctionArgsName","createJsInvokerSignature","getEnumValueType","PureVirtualError","registerInheritedInstance","unregisterInheritedInstance","getInheritedInstanceCount","getLiveInheritedInstances","enumReadValueFromPointer","installIndexedIterator","setDelayFunction","count_emval_handles"];no.forEach(v0);var io=["run","out","err","callMain","abort","wasmExports","writeStackCookie","checkStackCookie","INT53_MAX","INT53_MIN","bigintToI53Checked","HEAP8","HEAP16","HEAPU16","HEAP32","HEAPU32","HEAPF32","HEAPF64","HEAP64","HEAPU64","stackSave","stackRestore","createNamedFunction","ptrToString","getHeapMax","growMemory","ENV","ERRNO_CODES","DNS","Protocols","Sockets","timers","warnOnce","readEmAsmArgsArray","alignMemory","wasmTable","wasmMemory","noExitRuntime","addOnPreRun","addOnPostRun","convertJsFunctionToWasm","freeTableIndexes","functionsInTableMap","getEmptyTableSlot","updateTableMap","getFunctionAddress","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","AsciiToString","UTF16Decoder","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","JSEvents","specialHTMLTargets","findCanvasEventTarget","currentFullscreenStrategy","restoreOldWindowedStyle","UNWIND_CACHE","ExitStatus","flush_NO_FILESYSTEM","initRandomFill","randomFill","emSetImmediate","emClearImmediate_deps","emClearImmediate","promiseMap","uncaughtExceptionCount","exceptionCaught","ExceptionInfo","Browser","requestFullscreen","requestFullScreen","setCanvasSize","getUserMedia","createContext","getPreloadedImageData__data","wget","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","SYSCALLS","preloadPlugins","FS_stdin_getChar_buffer","FS_unlink","FS_createPath","FS_createDevice","FS_readFile","FS","FS_root","FS_mounts","FS_devices","FS_streams","FS_nextInode","FS_nameTable","FS_currentPath","FS_initialized","FS_ignorePermissions","FS_filesystems","FS_syncFSRequests","FS_lookupPath","FS_getPath","FS_hashName","FS_hashAddNode","FS_hashRemoveNode","FS_lookupNode","FS_createNode","FS_destroyNode","FS_isRoot","FS_isMountpoint","FS_isFile","FS_isDir","FS_isLink","FS_isChrdev","FS_isBlkdev","FS_isFIFO","FS_isSocket","FS_flagsToPermissionString","FS_nodePermissions","FS_mayLookup","FS_mayCreate","FS_mayDelete","FS_mayOpen","FS_checkOpExists","FS_nextfd","FS_getStreamChecked","FS_getStream","FS_createStream","FS_closeStream","FS_dupStream","FS_doSetAttr","FS_chrdev_stream_ops","FS_major","FS_minor","FS_makedev","FS_registerDevice","FS_getDevice","FS_getMounts","FS_syncfs","FS_mount","FS_unmount","FS_lookup","FS_mknod","FS_statfs","FS_statfsStream","FS_statfsNode","FS_create","FS_mkdir","FS_mkdev","FS_symlink","FS_rename","FS_rmdir","FS_readdir","FS_readlink","FS_stat","FS_fstat","FS_lstat","FS_doChmod","FS_chmod","FS_lchmod","FS_fchmod","FS_doChown","FS_chown","FS_lchown","FS_fchown","FS_doTruncate","FS_truncate","FS_ftruncate","FS_utime","FS_open","FS_close","FS_isClosed","FS_llseek","FS_read","FS_write","FS_mmap","FS_msync","FS_ioctl","FS_writeFile","FS_cwd","FS_chdir","FS_createDefaultDirectories","FS_createDefaultDevices","FS_createSpecialDirectories","FS_createStandardStreams","FS_staticInit","FS_init","FS_quit","FS_findObject","FS_analyzePath","FS_createFile","FS_createDataFile","FS_forceLoadFile","FS_createLazyFile","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","GL","AL","GLUT","EGL","GLEW","IDBStore","SDL","SDL_gfx","print","printErr","jstoi_s","InternalError","BindingError","throwInternalError","throwBindingError","registeredTypes","awaitingDependencies","typeDependencies","tupleRegistrations","structRegistrations","sharedRegisterType","whenDependentTypesAreResolved","getTypeName","getFunctionName","heap32VectorToArray","requireRegisteredType","usesDestructorStack","checkArgCount","getRequiredArgCount","createJsInvoker","UnboundTypeError","EmValType","EmValOptionalType","throwUnboundTypeError","ensureOverloadTable","exposePublicSymbol","replacePublicSymbol","embindRepr","registeredInstances","getBasestPointer","getInheritedInstance","registeredPointers","registerType","integerReadValueFromPointer","floatReadValueFromPointer","assertIntegerRange","readPointer","runDestructors","craftInvokerFunction","embind__requireFunction","genericPointerToWireType","constNoSmartPtrRawPointerToWireType","nonConstNoSmartPtrRawPointerToWireType","init_RegisteredPointer","RegisteredPointer","RegisteredPointer_fromWireType","runDestructor","releaseClassHandle","finalizationRegistry","detachFinalizer_deps","detachFinalizer","attachFinalizer","makeClassHandle","init_ClassHandle","ClassHandle","throwInstanceAlreadyDeleted","deletionQueue","flushPendingDeletes","delayFunction","RegisteredClass","shallowCopyInternalPointer","downcastPointer","upcastPointer","validateThis","char_0","char_9","makeLegalFunctionName","emval_freelist","emval_handles","emval_symbols","getStringOrSymbol","Emval","emval_returnValue","emval_lookupTypes","emval_methodCallers","emval_addMethodCaller"];io.forEach(D0);function so(){U("fetchSettings"),U("logReadFiles"),U("loadSplitModule"),U("onMalloc"),U("onRealloc"),U("onFree"),U("onSbrkGrow")}var On=K("___getTypeName"),Kt=K("_malloc"),HA=K("_free"),ao=t._MdnCom_ESCHandler=K("_MdnCom_ESCHandler"),oo=t._MdnCom_Free=K("_MdnCom_Free"),Fo=t._MdnCom_RawRx=K("_MdnCom_RawRx"),vo=t._MdnCom_CryptoSelfTest=K("_MdnCom_CryptoSelfTest"),Eo=t._MdnCom_SetCompanionKeypair=K("_MdnCom_SetCompanionKeypair"),Bo=t._MdnCom_InitiateEcsHandshake=K("_MdnCom_InitiateEcsHandshake"),fo=t._MdnCom_SetSecDebug=K("_MdnCom_SetSecDebug"),Co=t._MdnCom_GetEcsState=K("_MdnCom_GetEcsState"),lo=t._MdnCom_ResetEcs=K("_MdnCom_ResetEcs"),co=t._MdnCom_RegisterEcsHandshakeCallback=K("_MdnCom_RegisterEcsHandshakeCallback"),Do=t._MdnCom_Init=K("_MdnCom_Init"),uo=t._SendUtoQuery=K("_SendUtoQuery"),bo=t._SendUtoCmdExt=K("_SendUtoCmdExt"),Gn=K("_fflush"),zt=K("_emscripten_stack_get_end"),po=K("_emscripten_stack_get_base"),jo=K("_strerror"),Un=K("_emscripten_stack_init"),mo=K("_emscripten_stack_get_free"),ho=K("__emscripten_stack_restore"),go=K("__emscripten_stack_alloc"),yo=K("_emscripten_stack_get_current"),ko=K("memory"),_o=K("__indirect_function_table"),At=K("wasmMemory"),gr=K("wasmTable");function wo(E){g(typeof E.__getTypeName<"u","missing Wasm export: __getTypeName"),g(typeof E.malloc<"u","missing Wasm export: malloc"),g(typeof E.free<"u","missing Wasm export: free"),g(typeof E.MdnCom_ESCHandler<"u","missing Wasm export: MdnCom_ESCHandler"),g(typeof E.MdnCom_Free<"u","missing Wasm export: MdnCom_Free"),g(typeof E.MdnCom_RawRx<"u","missing Wasm export: MdnCom_RawRx"),g(typeof E.MdnCom_CryptoSelfTest<"u","missing Wasm export: MdnCom_CryptoSelfTest"),g(typeof E.MdnCom_SetCompanionKeypair<"u","missing Wasm export: MdnCom_SetCompanionKeypair"),g(typeof E.MdnCom_InitiateEcsHandshake<"u","missing Wasm export: MdnCom_InitiateEcsHandshake"),g(typeof E.MdnCom_SetSecDebug<"u","missing Wasm export: MdnCom_SetSecDebug"),g(typeof E.MdnCom_GetEcsState<"u","missing Wasm export: MdnCom_GetEcsState"),g(typeof E.MdnCom_ResetEcs<"u","missing Wasm export: MdnCom_ResetEcs"),g(typeof E.MdnCom_RegisterEcsHandshakeCallback<"u","missing Wasm export: MdnCom_RegisterEcsHandshakeCallback"),g(typeof E.MdnCom_Init<"u","missing Wasm export: MdnCom_Init"),g(typeof E.SendUtoQuery<"u","missing Wasm export: SendUtoQuery"),g(typeof E.SendUtoCmdExt<"u","missing Wasm export: SendUtoCmdExt"),g(typeof E.fflush<"u","missing Wasm export: fflush"),g(typeof E.emscripten_stack_get_end<"u","missing Wasm export: emscripten_stack_get_end"),g(typeof E.emscripten_stack_get_base<"u","missing Wasm export: emscripten_stack_get_base"),g(typeof E.strerror<"u","missing Wasm export: strerror"),g(typeof E.emscripten_stack_init<"u","missing Wasm export: emscripten_stack_init"),g(typeof E.emscripten_stack_get_free<"u","missing Wasm export: emscripten_stack_get_free"),g(typeof E._emscripten_stack_restore<"u","missing Wasm export: _emscripten_stack_restore"),g(typeof E._emscripten_stack_alloc<"u","missing Wasm export: _emscripten_stack_alloc"),g(typeof E.emscripten_stack_get_current<"u","missing Wasm export: emscripten_stack_get_current"),g(typeof E.memory<"u","missing Wasm export: memory"),g(typeof E.__indirect_function_table<"u","missing Wasm export: __indirect_function_table"),On=O0("__getTypeName",1),Kt=O0("malloc",1),HA=O0("free",1),ao=t._MdnCom_ESCHandler=O0("MdnCom_ESCHandler",1),oo=t._MdnCom_Free=O0("MdnCom_Free",1),Fo=t._MdnCom_RawRx=O0("MdnCom_RawRx",1),vo=t._MdnCom_CryptoSelfTest=O0("MdnCom_CryptoSelfTest",0),Eo=t._MdnCom_SetCompanionKeypair=O0("MdnCom_SetCompanionKeypair",2),Bo=t._MdnCom_InitiateEcsHandshake=O0("MdnCom_InitiateEcsHandshake",0),fo=t._MdnCom_SetSecDebug=O0("MdnCom_SetSecDebug",1),Co=t._MdnCom_GetEcsState=O0("MdnCom_GetEcsState",0),lo=t._MdnCom_ResetEcs=O0("MdnCom_ResetEcs",0),co=t._MdnCom_RegisterEcsHandshakeCallback=O0("MdnCom_RegisterEcsHandshakeCallback",1),Do=t._MdnCom_Init=O0("MdnCom_Init",2),uo=t._SendUtoQuery=O0("SendUtoQuery",2),bo=t._SendUtoCmdExt=O0("SendUtoCmdExt",4),Gn=O0("fflush",1),zt=E.emscripten_stack_get_end,po=E.emscripten_stack_get_base,jo=O0("strerror",1),Un=E.emscripten_stack_init,mo=E.emscripten_stack_get_free,ho=E._emscripten_stack_restore,go=E._emscripten_stack_alloc,yo=E.emscripten_stack_get_current,ko=At=E.memory,_o=gr=E.__indirect_function_table}var Hn={__cxa_throw:NA,_abort_js:Ce,_embind_finalize_value_object:cr,_embind_register_bigint:le,_embind_register_bool:a,_embind_register_class:pr,_embind_register_class_constructor:u,_embind_register_class_property:$,_embind_register_emval:T0,_embind_register_float:p0,_embind_register_function:fx,_embind_register_integer:yx,_embind_register_memory_view:$x,_embind_register_std_string:Mt,_embind_register_std_wstring:F,_embind_register_value_object:f,_embind_register_value_object_field:d,_embind_register_void:p,_emval_create_invoker:P0,_emval_decref:s0,_emval_get_module_property:j0,_emval_get_property:nx,_emval_incref:bx,_emval_invoke:Nx,_emval_new_cstring:Lx,_emval_run_destructors:Rx,emscripten_resize_heap:Cx,fd_close:Ha,fd_seek:Va,fd_write:Wa,random_get:Ya},Kn;function $o(){Un(),Y()}function qo(){$o(),fA();function E(){g(!Kn),Kn=!0,t.calledRun=!0,!w&&(CA(),_0?.(t),t.onRuntimeInitialized?.(),n0("onRuntimeInitialized"),g(!t._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),PA())}t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),E()},1)):E(),x0()}var Jr;Jr=await Be(),qo(),V0?o=t:o=new Promise((E,C)=>{_0=E,q0=C});for(let E of Object.keys(t))E in i||Object.defineProperty(i,E,{configurable:!0,get(){R0(`Access to module property ('${E}') is no longer possible via the module constructor argument; Instead, use the result of the module constructor.`)}});return o}})();typeof A=="object"&&typeof x=="object"?(x.exports=r,x.exports.default=r):typeof define=="function"&&define.amd&&define([],()=>r)}}),oa=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:gt,n:mt,Gx:Ks,Gy:zs,a:dn,d:un,h:Xv}=oa,Ke=32,Yv=(...A)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...A)},mx=(A="")=>{let x=new Error(A);throw Yv(x,mx),x},Qv=A=>typeof A=="bigint",Zv=A=>typeof A=="string",xE=A=>A instanceof Uint8Array||ArrayBuffer.isView(A)&&A.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in A&&A.BYTES_PER_ELEMENT===1,Pr=(A,x,r="")=>{let e=xE(A),i=A?.length,o=x!==void 0;if(!e||o&&i!==x){let t=r&&`"${r}" `,B=o?` of length ${x}`:"",l=e?`length=${i}`:`type=${typeof A}`,D=t+"expected Uint8Array"+B+", got "+l;throw e?new RangeError(D):new TypeError(D)}return A},wt=A=>new Uint8Array(A),wn=A=>Uint8Array.from(A),Fa=(A,x)=>A.toString(16).padStart(x,"0"),va=A=>Array.from(Pr(A)).map(x=>Fa(x,2)).join(""),VA={_0:48,_9:57,A:65,F:70,a:97,f:102},Js=A=>{if(A>=VA._0&&A<=VA._9)return A-VA._0;if(A>=VA.A&&A<=VA.F)return A-(VA.A-10);if(A>=VA.a&&A<=VA.f)return A-(VA.a-10)},Ea=A=>{let x="hex invalid";if(!Zv(A))return mx(x);let r=A.length,e=r/2;if(r%2)return mx(x);let i=wt(e);for(let o=0,t=0;o<e;o++,t+=2){let B=Js(A.charCodeAt(t)),l=Js(A.charCodeAt(t+1));if(B===void 0||l===void 0)return mx(x);i[o]=B*16+l}return i},Ba=()=>globalThis?.crypto,AE=()=>Ba()?.subtle??mx("crypto.subtle must be defined, consider polyfill"),fa=(...A)=>{let x=0;for(let i of A)x+=Pr(i).length;let r=wt(x),e=0;return A.forEach(i=>{r.set(i,e),e+=i.length}),r},rE=(A=Ke)=>Ba().getRandomValues(wt(A)),yt=BigInt,$r=(A,x,r,e="bad number: out of range")=>{if(!Qv(A))throw new TypeError(e);if(x<=A&&A<r)return A;throw new RangeError(e)},Q0=(A,x=gt)=>{let r=A%x;return r>=0n?r:x+r},Vs=(1n<<255n)-1n,f0=A=>{A<0n&&mx("negative coordinate");let x=(A>>255n)*19n+(A&Vs);return x=(x>>255n)*19n+(x&Vs),x%gt},eE=A=>Q0(A,mt),tE=(A,x)=>{(A===0n||x<=0n)&&mx("no inverse n="+A+" mod="+x);let r=Q0(A,x),e=x,i=0n,o=1n,t=1n,B=0n;for(;r!==0n;){let l=e/r,D=e%r,j=i-t*l,b=o-B*l;e=r,r=D,i=t,o=B,t=j,B=b}return e===1n?Q0(i,x):mx("no inverse")},nE=A=>{let x=CE[A];return typeof x!="function"&&mx("hashes."+A+" not set"),x},iE=A=>Pr(A,64,"digest"),bn=A=>A instanceof ze?A:mx("Point expected"),gn=2n**256n,$n=class qr{constructor(x,r,e,i){C0(this,"X"),C0(this,"Y"),C0(this,"Z"),C0(this,"T");let o=gn;this.X=$r(x,0n,o),this.Y=$r(r,0n,o),this.Z=$r(e,1n,o),this.T=$r(i,0n,o),Object.freeze(this)}static CURVE(){return oa}static fromAffine(x){return new qr(x.x,x.y,1n,f0(x.x*x.y))}static fromBytes(x,r=!1){let e=un,i=wn(Pr(x,Ke)),o=x[31];i[31]=o&-129;let t=Ca(i);$r(t,0n,r?gn:gt);let l=f0(t*t),D=Q0(l-1n),j=f0(e*l+1n),{isValid:b,value:k}=oE(D,j);b||mx("bad point: y not sqrt");let q=(k&1n)===1n,y=(o&128)!==0;return!r&&k===0n&&y&&mx("bad point: x==0, isLastByteOdd"),y!==q&&(k=Q0(-k)),new qr(k,t,1n,f0(k*t))}static fromHex(x,r){return qr.fromBytes(Ea(x),r)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let x=dn,r=un,e=this;if(e.is0())return mx("bad point: ZERO");let{X:i,Y:o,Z:t,T:B}=e,l=f0(i*i),D=f0(o*o),j=f0(t*t),b=f0(j*j),k=f0(l*x),q=f0(j*(k+D)),y=Q0(b+f0(r*f0(l*D)));if(q!==y)return mx("bad point: equation left != right (1)");let S=f0(i*o),T=f0(t*B);return S!==T?mx("bad point: equation left != right (2)"):this}equals(x){let{X:r,Y:e,Z:i}=this,{X:o,Y:t,Z:B}=bn(x),l=f0(r*B),D=f0(o*i),j=f0(e*B),b=f0(t*i);return l===D&&j===b}is0(){return this.equals(Sr)}negate(){return new qr(Q0(-this.X),this.Y,this.Z,Q0(-this.T))}double(){let{X:x,Y:r,Z:e}=this,i=dn,o=f0(x*x),t=f0(r*r),B=f0(2n*e*e),l=f0(i*o),D=Q0(x+r),j=Q0(f0(D*D)-o-t),b=Q0(l+t),k=Q0(b-B),q=Q0(l-t),y=f0(j*k),S=f0(b*q),T=f0(j*q),I=f0(k*b);return new qr(y,S,I,T)}add(x){let{X:r,Y:e,Z:i,T:o}=this,{X:t,Y:B,Z:l,T:D}=bn(x),j=dn,b=un,k=f0(r*t),q=f0(e*B),y=f0(f0(o*b)*D),S=f0(i*l),T=Q0(f0(Q0(r+e)*Q0(t+B))-k-q),I=Q0(S-y),L=Q0(S+y),R=Q0(q-f0(j*k)),e0=f0(T*I),w=f0(L*R),g=f0(T*R),O=f0(I*L);return new qr(e0,w,O,g)}subtract(x){return this.add(bn(x).negate())}multiply(x,r=!0){if(!r&&x===0n||($r(x,1n,mt),!r&&this.is0()))return Sr;if(x===1n)return this;if(this.equals(se))return uE(x).p;let e=Sr,i=se;for(let o=this;x>0n;o=o.double(),x>>=1n)x&1n?e=e.add(o):r&&(i=i.add(o));return e}multiplyUnsafe(x){return this.multiply(x,!1)}toAffine(){let{X:x,Y:r,Z:e}=this;if(this.equals(Sr))return{x:0n,y:1n};let i=tE(e,gt);f0(e*i)!==1n&&mx("invalid inverse");let o=f0(x*i),t=f0(r*i);return{x:o,y:t}}toBytes(){let{x,y:r}=this.toAffine(),e=sE(r);return e[31]|=x&1n?128:0,e}toHex(){return va(this.toBytes())}clearCofactor(){return this.multiply(yt(Xv),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let x=this.multiply(mt/2n,!1).double();return mt%2n&&(x=x.add(this)),x.is0()}};C0($n,"BASE");C0($n,"ZERO");var ze=$n,se=new ze(Ks,zs,1n,Q0(Ks*zs)),Sr=new ze(0n,1n,1n,0n);ze.BASE=se;ze.ZERO=Sr;var sE=A=>Ea(Fa($r(A,0n,gn),64)).reverse(),Ca=A=>yt("0x"+va(wn(Pr(A)).reverse())),qA=(A,x)=>{let r=A;for(;x-- >0n;)r=f0(r*r);return r},aE=A=>{let x=f0(A*A),r=f0(x*A),e=f0(qA(r,2n)*r),i=f0(qA(e,1n)*A),o=f0(qA(i,5n)*i),t=f0(qA(o,10n)*o),B=f0(qA(t,20n)*t),l=f0(qA(B,40n)*B),D=f0(qA(l,80n)*l),j=f0(qA(D,80n)*l),b=f0(qA(j,10n)*o);return{pow_p_5_8:f0(qA(b,2n)*A),b2:r}},Ws=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,oE=(A,x)=>{let r=f0(x*f0(x*x)),e=f0(f0(r*r)*x),i=aE(f0(A*e)).pow_p_5_8,o=f0(A*f0(r*i)),t=f0(x*f0(o*o)),B=o,l=f0(o*Ws),D=t===A,j=t===Q0(-A),b=t===Q0(-A*Ws);return D&&(o=B),(j||b)&&(o=l),(Q0(o)&1n)===1n&&(o=Q0(-o)),{isValid:D||j,value:o}},FE=A=>eE(Ca(A)),vE=(...A)=>Promise.resolve(nE("sha512Async")(fa(...A))).then(iE),EE=A=>{let x=wn(A),r=x.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let e=x.slice(32,64),i=FE(r),o=se.multiply(i),t=o.toBytes();return{head:r,prefix:e,scalar:i,point:o,pointBytes:t}},BE=A=>vE(Pr(A,Ke)).then(EE),fE=A=>BE(A).then(x=>x.pointBytes),CE={sha512Async:async A=>{let x=AE(),r=fa(A);return wt(await x.digest("SHA-512",r.buffer))},sha512:void 0},lE=A=>(A=A===void 0?rE(Ke):A,Pr(A,Ke)),cE=async A=>{let x=lE(A),r=await fE(x);return{secretKey:x,publicKey:r}},kt=8,DE=256,la=Math.ceil(DE/kt)+1,yn=2**(kt-1),dE=()=>{let A=[],x=se,r=x;for(let e=0;e<la;e++){r=x,A.push(r);for(let i=1;i<yn;i++)r=r.add(x),A.push(r);x=r.double()}return A},Xs=void 0,Ys=(A,x)=>{let r=x.negate();return A?r:x},uE=A=>{let x=Xs||(Xs=dE()),r=Sr,e=se,i=2**kt,o=i,t=yt(i-1),B=yt(kt);for(let l=0;l<la;l++){let D=Number(A&t);A>>=B,D>yn&&(D-=o,A+=1n);let j=l*yn,b=j,k=j+Math.abs(D)-1,q=l%2!==0,y=D<0;D===0?e=e.add(Ys(q,x[b])):r=r.add(Ys(y,x[k]))}return A!==0n&&mx("invalid wnaf"),{p:r,f:e}},bE=32,pE=64;async function Qs(){let{secretKey:A,publicKey:x}=await cE(),r=new Uint8Array(pE);return r.set(A,0),r.set(x,bE),{publicKey:x,privateKey:r}}var _t=class extends Error{constructor(A,x,r){super(r),C0(this,"httpStatus",A),C0(this,"code",x),this.name="CertApiError"}},Zs="/api/1/companion/cert",jE=10080*60*1e3,xa=typeof __COMPANION_AUTH_DEV_PROXY__<"u"&&__COMPANION_AUTH_DEV_PROXY__;function ca(A){let x="";for(let r of A)x+=String.fromCharCode(r);return btoa(x).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function mE(A,x){let r=A.apiHost.replace(/\/+$/,""),e=xa?Zs:r+Zs,i={Authorization:`Bearer ${A.accessToken}`,"Content-Type":"application/json",Accept:"application/json"};xa&&r&&(i["x-target-host"]=r);let o=await fetch(e,{method:"POST",headers:i,body:JSON.stringify({publicKey:ca(x.publicKey),subject:x.subject})});if(!o.ok){let B="unknown_error",l=o.statusText||`Cert API request failed (${o.status})`;try{let D=await o.json();D.code&&(B=D.code),D.message&&(l=D.message)}catch{}throw new _t(o.status,B,l)}let t=await o.json();if(!t.certificate||!t.notAfter)throw new _t(o.status,"invalid_response","Cert API response missing certificate or notAfter");return{certificateBase64Url:t.certificate,notAfter:t.notAfter}}function hE(A,x=jE){let r=Date.parse(A);return Number.isFinite(r)?r-Date.now()>x:!1}var gE=Vv(Wv(),1),jt="[device-master]",ae={debug:(A,...x)=>console.debug(jt,A,...x),info:(A,...x)=>console.info(jt,A,...x),warn:(A,...x)=>console.warn(jt,A,...x),error:(A,...x)=>console.error(jt,A,...x)},Aa={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},yE=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function kE(A,x=0){let r=~~x^-1;for(let e=0;e<A.length;e++)r=r>>>8^yE[(r^A[e])&255];return(r^-1)>>>0}var ra=Date.UTC(1999,11,31,0,0,0);function ea(A,x,r=" "){let e=""+A,i=Math.max(0,Math.abs(x)-e.length),o=r.repeat(i);return x<0?e+o:o+e}function _r(A,x){return("0000000000000000"+A.toString(16)).substr(-x)}function ta(A){if(A instanceof Uint8Array)return A;if(A instanceof ArrayBuffer)return new Uint8Array(A);if(A&&Object.hasOwn(A,"type")&&A.type==="Buffer"&&Object.hasOwn(A,"data")&&A.data instanceof Array)return Uint8Array.from(A.data);if(A.buffer)return new Uint8Array(A.buffer,A.byteOffset,A.byteLength);throw new Error("can not convert value to Uint8Array")}var nc=new Uint8Array([0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64]),ic=new Uint8Array([0,192,193,1,195,3,2,194,198,6,7,199,5,197,196,4,204,12,13,205,15,207,206,14,10,202,203,11,201,9,8,200,216,24,25,217,27,219,218,26,30,222,223,31,221,29,28,220,20,212,213,21,215,23,22,214,210,18,19,211,17,209,208,16,240,48,49,241,51,243,242,50,54,246,247,55,245,53,52,244,60,252,253,61,255,63,62,254,250,58,59,251,57,249,248,56,40,232,233,41,235,43,42,234,238,46,47,239,45,237,236,44,228,36,37,229,39,231,230,38,34,226,227,35,225,33,32,224,160,96,97,161,99,163,162,98,102,166,167,103,165,101,100,164,108,172,173,109,175,111,110,174,170,106,107,171,105,169,168,104,120,184,185,121,187,123,122,186,190,126,127,191,125,189,188,124,180,116,117,181,119,183,182,118,114,178,179,115,177,113,112,176,80,144,145,81,147,83,82,146,150,86,87,151,85,149,148,84,156,92,93,157,95,159,158,94,90,154,155,91,153,89,88,152,136,72,73,137,75,139,138,74,78,142,143,79,141,77,76,140,68,132,133,69,135,71,70,134,130,66,67,131,65,129,128,64]);var _E=[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376],wE=new Map(_E.map((A,x)=>[A,128+x]));function $E(A){return A<=127||A>=160&&A<=255?A:wE.get(A)??63}var qE="uto_script.dat";var da=(A=>(A[A.DEVINFO=0]="DEVINFO",A[A.STAMPS=1]="STAMPS",A[A.LIC_QUERY=2]="LIC_QUERY",A[A.FILEMAP=3]="FILEMAP",A[A.MNTCFG=4]="MNTCFG",A[A.MDNCFG=5]="MDNCFG",A[A.CONTEXT=128]="CONTEXT",A[A.ALERTS=4294901767]="ALERTS",A[A.HISTDATA0=26368]="HISTDATA0",A[A.LOG=26375]="LOG",A[A.SYSCFG=26378]="SYSCFG",A[A.STATE=26389]="STATE",A[A.LOCALS=26402]="LOCALS",A[A.POS=26404]="POS",A[A.CTRLAMX=26405]="CTRLAMX",A[A.DYNPOS__=26406]="DYNPOS__",A[A.CONFIG0=26416]="CONFIG0",A[A.CONFIG1=26417]="CONFIG1",A[A.CONFIG2=26418]="CONFIG2",A[A.CONFIG3=26419]="CONFIG3",A[A.CONFIG4=26420]="CONFIG4",A[A.CONFIG5=26421]="CONFIG5",A[A.CONFIG6=26422]="CONFIG6",A[A.CONFIG7=26423]="CONFIG7",A[A.CONFIG8=26424]="CONFIG8",A[A.CONFIG9=26425]="CONFIG9",A[A.SYSOTP=26432]="SYSOTP",A[A.SYSFLASH=26433]="SYSFLASH",A[A.APPOTP=26434]="APPOTP",A[A.APPFLASH=26435]="APPFLASH",A[A.APPSTATE=26436]="APPSTATE",A[A.SYSINFO=26437]="SYSINFO",A[A.APPINFO=26438]="APPINFO",A[A.SYSSTATE=26439]="SYSSTATE",A[A.HISTDATA1=26528]="HISTDATA1",A[A.HISTDATA2=26529]="HISTDATA2",A[A.HISTDATA3=26530]="HISTDATA3",A[A.HISTDATA4=26531]="HISTDATA4",A[A.HISTDATA5=26532]="HISTDATA5",A[A.HISTDATA6=26533]="HISTDATA6",A[A.HISTDATA7=26534]="HISTDATA7",A[A.HISTDATA8=26535]="HISTDATA8",A[A.HISTDATA9=26536]="HISTDATA9",A[A.HISTDATA_RAW=26623]="HISTDATA_RAW",A[A.CONFIGA=4294928218]="CONFIGA",A[A.CONFIGB=4294928219]="CONFIGB",A[A.CONFIGC=4294928220]="CONFIGC",A))(da||{});var qn=(A=>(A[A.off=0]="off",A[A.pawn=2]="pawn",A))(qn||{});var na={config0:26416,config1:26417,config2:26418,config3:26419,config4:26420,config5:26421,config6:26422,config7:26423,config8:26424,config9:26425,histdata0:26368,histdata1:26528,histdata2:26529,histdata3:26530,histdata4:26531,histdata5:26532,histdata6:26533,histdata7:26534,histdata8:26535,histdata9:26536},SE=class{constructor(){}resultToString(A){A|=0;let x=A&256?"+DISC":"";switch(A&255){case 0:return"OK"+x;case 1:return"E_TAG"+x;case 2:return"E_DLEN"+x;case 3:return"E_DATA"+x;case 4:return"E_STAMP"+x;case 5:return"E_EOD"+x;case 6:return"E_CMD"+x;case 7:return"E_CMDDENIED"+x;case 8:return"E_FULL"+x;case 9:return"E_NOTSUPPORTED"+x;case 10:return"E_OLDDATA"+x;case 11:return"E_STORAGE"+x;case 12:return"E_STORAGE"+x}return"E_0x"+_r(A,4)+x}commandToString(A){switch(A|=0,A){case 0:return"COMMAND_RESULT";case 1:return"COMMAND_QUERY";case 2:return"COMMAND_DEL";case 3:return"COMMAND_DATA";case 4:return"COMMAND_UNS_DATA";case 5:return"COMMAND_LIVE_DATA";case 7:return"COMMAND_FILE_LIST";case 8:return"COMMAND_FILE_RETR";case 9:return"COMMAND_FILE_STOR";case 10:return"COMMAND_FILE_DELE";case 11:return"COMMAND_SET_VALUE"}return"COMMAND_0x"+_r(A,2)}tagToString(A){A|=0;let x=Object.entries(da).find(([,r])=>r===A);return x?"TAG_"+x[0]:"TAG_0x"+_r(A,4)}containerIdToTag(A,x){let r=na[A]||null;return r&&x&&A.startsWith("histdata")?26623:r}containerIdOf(A){let x=Object.entries(na).find(([,r])=>r===A.wTag);if(x)return x[0];if(A.wTag===26623){if(!A.data||!A.data.byteLength)return null;let r=A.data.getUint8(0);return r===32?"alerts":r>=0&&r<=9?`histdata${r}`:null}return null}formatSerialNumber(A,x="-"){return A?A.substr(0,4)+x+A.substr(4,4)+x+A.substr(8,4)+x+A.substr(12):"(none)"}decodeUplinkState(A){let x={FAILED:1,ACTIVE:2,STARTED:4,RETRY:8,WAKEUPABLE:16,EXTSIM:32,DISABLED:64,WAKEUP:256,POSUPDATE_ACTIVE:512},r=!!(A&x.WAKEUPABLE),e=[];A&x.POSUPDATE_ACTIVE?e=["locating",!1]:A&x.RETRY?e=["retry",!1]:A&x.STARTED?e=["dialing",!1]:A&x.ACTIVE?e=["active",!1]:A&x.FAILED?e=["failed",r]:A&x.DISABLED?e=["disabled",!1]:e=["offline",r];let i=x.WAKEUPABLE|x.RETRY|x.STARTED|x.ACTIVE|x.POSUPDATE_ACTIVE|x.FAILED|x.DISABLED|x.EXTSIM;return{signal:e[0],wakeupAble:e[1],path:A&x.EXTSIM?"xsim ":"isim ",txStateUnknown:A&~i}}stamp40ToMS(A){let x=Math.trunc(A/256),r=A&255;return Math.round(x*1e3+1e3*r/256)+ra}msToStamp40(A){let x=(A-ra)/1e3,r=Math.trunc(x),e=Math.round((x-r)*256);return r*256+e}stamp40ToDate(A){return new Date(this.stamp40ToMS(A))}utf8Unpack(A,x,r){let e=new TextDecoder("utf-8"),i=0;for(;i<r&&A.getUint8(x+i);)i++;let o=new Uint8Array(A.buffer,x,i);return e.decode(o)}ansiUnpack(A,x,r,e){try{let i=ta(A),o=new TextDecoder(e),t=0;for(;t<r&&i[x+t];)t++;return o.decode(i.slice(x,x+t))}catch(i){return console.log("?"+i.message,i),`ERR-unknown codepage "${e}"`}}cp1252Unpack(A,x,r){return this.ansiUnpack(A,x,r,"cp1252")}ansiPack(A,x,r,e){let i=ta(A);i.fill(0,x,x+r);for(let o=0;o<r&&o<e.length;o++)i[x+o]=$E(e.charCodeAt(o))}cp1252Pack(A,x,r,e){return this.ansiPack(A,x,r,e)}dataFrameNotNull(A){if(!A.data)throw new Error("UtoFrame does not have any data!")}decode_DEVINFO(A){this.dataFrameNotNull(A);let x=A.data,r=x.getUint16(0),e=x.getUint16(2),i=x.getUint16(4),o=x.getUint32(6),t=(_r(o,8)+_r(A.dwDevSN,8)).toUpperCase(),B=[];for(let l=0;l<(x.byteLength-10)/5;l++){let D=x.getUint8(10+l*5+2),j=x.getUint16(10+l*5);B.push({wTag:j,sTag:this.tagToString(j),size:x.getUint16(10+l*5+3),flags:{historic:!!(D&1),single:!(D&1),up:!!(D&2),down:!!(D&4),variableLength:!!(D&8),setValue:!!(D&16)}})}return{serialNumber:t,class:_r(r,4),firmwareVersion:`${ea(i>>8,2)}v${ea(i&255,3,"0")}`,flags:_r(e,4),utos:B}}decode_STAMPS(A){this.dataFrameNotNull(A);let x=A.data,r={contextId:x.getBigUint64(0,!0).toString(16).toUpperCase(),stamps:[]};for(let e=0;e<(x.byteLength-8)/5;e++)r.stamps.push(x.getUint32(8+e*5+0)*256+x.getUint8(8+e*5+4));return r}decode_CONTEXT(A){this.dataFrameNotNull(A);let x=A.data;return{id:x.getBigUint64(0,!0).toString(16).toUpperCase(),name:this.cp1252Unpack(x,8,50)}}encode_CONTEXT(A){let x=new Uint8Array(58),r=new DataView(x.buffer);return r.setBigUint64(0,BigInt("0x"+A.id),!0),this.cp1252Pack(r,8,50,A.name),x}decode_FILEMAP(A){this.dataFrameNotNull(A);let x=A.data,r=x.getUint16(13,!1),e={stamp:x.getUint32(0,!1)*256+x.getUint8(4),size:x.getUint32(5,!1),crc32:x.getUint32(9,!1),flags:{read:!!(r&1),write:!!(r&2),node:!!(r&4),system:!!(r&8),extra:r&-16},_flags:r,name:this.cp1252Unpack(x,15,x.byteLength-15)};if(e.flags?.extra)throw new Error("?UTO.decode_FILEMAP.unknown-file-flags."+e.flags.extra);return e}encode_FILEMAP(A){if(A.flags){let e=0;A.flags.extra&&(e|=A.flags.extra|0),A.flags.read&&(e|=1),A.flags.write&&(e|=2),A.flags.node&&(e|=4),A.flags.system&&(e|=8),A._flags=e}let x=new Uint8Array(15+A.name.length+1),r=new DataView(x.buffer);return r.setUint32(0,Math.trunc(A.stamp/256),!1),r.setUint8(4,A.stamp&255),r.setUint32(5,A.size,!1),r.setUint32(9,A.crc32,!1),r.setUint16(13,A._flags,!1),this.cp1252Pack(r,15,256,A.name),x}decode_RM2M_STATE(A){this.dataFrameNotNull(A);let x=A.data;return{rssi:x.getInt8(0),uplinkMode:x.getUint8(1),imei:this.cp1252Unpack(x,61,15),hardwareId:this.cp1252Unpack(x,96,50),sim:{id:this.cp1252Unpack(x,2,15),apn:this.cp1252Unpack(x,17,40),iccId:this.cp1252Unpack(x,76,20)},network:{mcc:x.getUint16(57),mnc:x.getUint16(59)}}}},SA=new SE,ua=class{constructor(A="(unnamed)"){C0(this,"name"),C0(this,"_locked"),C0(this,"_chain"),this.name=A,this._locked=0,this._chain=[]}get islocked(){return!!this._locked}requestLock(){if(++this._locked!==1)return new Promise(A=>{this._chain.push(A)})}unlock(){--this._locked,this._chain.length&&this._chain.shift()()}async runExclusive(A){await this.requestLock();try{return await A()}finally{this.unlock()}}},ia=new WeakMap;function ba(A,x){let e=(ia.get(A)??Promise.resolve()).then(()=>PE(A,x));return ia.set(A,e.catch(()=>{})),e}async function PE(A,x){A.interface&&A.interface==="ble"?await TE(async r=>{await A.write(r)},x,A.mtuSize??23):await A.write(x)}async function TE(A,x,r=23){let e=new Uint8Array(x),i=r-3;for(let o=0;o<e.byteLength;o+=i){let t=e.slice(o,o+i);await A(t.buffer)}}var sa=15e3,NE=500,IE=3,Sn=class ht extends Da.EventEmitter{constructor(x,r){super(),C0(this,"mdnComInterface"),C0(this,"receiveUto"),C0(this,"sendUto"),C0(this,"rxUto"),C0(this,"txStream"),C0(this,"SendUtoCmdExt"),C0(this,"utoPortLock"),C0(this,"transport"),C0(this,"logger"),C0(this,"ecsHandshakeResolver",null),C0(this,"disposeTransportListener",null),C0(this,"encrypted",!1),C0(this,"lastTxWrite",Promise.resolve()),this.mdnComInterface=null,this.receiveUto=null,this.sendUto=null,this.rxUto=null,this.txStream=null,this.SendUtoCmdExt=null,this.utoPortLock=new ua("UTO-Port"),this.transport=x,this.logger=r??ae}async init(){if(this.mdnComInterface!==null)return;this.mdnComInterface=await(0,gE.default)({print:o=>{this.logger.info(`[mdnCom] ${o}`),this.emit("mdnCom",o)},printErr:o=>{this.logger.error(`[mdnCom] ${o}`),this.emit("mdnComError",o)}});let x=this.mdnComInterface.MdnCom_Init;this.receiveUto=this.mdnComInterface.MdnCom_RawRx,this.sendUto=this.mdnComInterface.MdnCom_SendUtoQuery,this.rxUto=this.mdnComInterface.MdnCom_GetRxUto,this.txStream=this.mdnComInterface.MdnCom_GetTxStream,this.SendUtoCmdExt=this.mdnComInterface.MdnCom_SendUtoCmdExt;let r=this.mdnComInterface.addFunction(()=>{if(this.txStream){let o=this.txStream();this.lastTxWrite=ba(this.transport,o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength))}},"v"),e=this.mdnComInterface.addFunction(()=>{if(this.rxUto){let o=this.rxUto(),t=this.parseUtoFrame(o);this.emit("utoFrame",t)}},"v");await x(r,e);let i=this.mdnComInterface.addFunction(o=>{if(this.logger.info(`[ecs] handshake event from WASM: result=${o} resolverPresent=${this.ecsHandshakeResolver!==null}`),this.ecsHandshakeResolver){let t=this.ecsHandshakeResolver;this.ecsHandshakeResolver=null,t({success:o===0,resultCode:o})}else this.logger.warn("[ecs] handshake event fired but no resolver registered \u2014 Promise will hang")},"vi");this.logger.info(`[ecs] registering handshake callback fn=${i}`),this.mdnComInterface.MdnCom_RegisterEcsHandshakeCallback(i),this.disposeTransportListener=this.transport.onData(async o=>{this.receiveUto&&await this.receiveUto(new Uint8Array(o))}),await this.requestDeviceInfo().catch()}async dispose(x){if(this.logger.info("[dispose] starting dispose"),this.encrypted){if(!x){let r=new Error("[dispose] encrypted session active but no AtCommandHandler provided \u2014 cannot send connection close");throw this.logger.error(r.message),r}try{this.logger.info("[dispose] requesting context for encrypted close");let r=await this.requestContext();r?(this.logger.info("[dispose] writing context back to device"),await this.writeContext(r)):this.logger.warn("[dispose] requestContext returned null \u2014 skipping writeContext")}catch(r){this.logger.error(`[dispose] error during context round trip: ${r}`)}try{this.logger.info("[dispose] sending connection close"),await x.sendConnectionClose(),this.logger.info("[dispose] connection close acknowledged")}catch(r){this.logger.error(`[dispose] error sending connection close: ${r}`)}finally{this.encrypted=!1,this.logger.info("[dispose] encrypted flag cleared")}}if(this.disposeTransportListener&&(this.logger.info("[dispose] removing transport data listener"),this.disposeTransportListener(),this.disposeTransportListener=null),this.mdnComInterface){this.logger.info("[dispose] resetting WASM ECS state");try{this.mdnComInterface.MdnCom_ResetEcs()}catch(r){this.logger.error(`[dispose] error resetting WASM ECS state: ${r}`)}this.ecsHandshakeResolver=null}this.logger.info("[dispose] dispose complete")}isInitialized(){if(!this.mdnComInterface)throw new Error('utoMaster not initialized. Have you called "init()"?')}parseUtoFrame(x){return{dwDevSN:x.vDevID_u32,bCmd:x.vCmd_u8,stamp:x.vStamp_s.u32SysTime*256+x.vStamp_s.u8SysTime,wTag:x.vTag_u16&255,wTagFull:x.vTag_u16,sTag:SA.resultToString(x.vTag_u16),_dbg:x.vDevID_u32.toString(16),bVersion:1,_dlen:x.vDLen_u16,bRes:x.vRes_u8,bSeq:x.vSeq_u8,data:x.vData_pu8.length?new DataView(x.vData_pu8.buffer,x.vData_pu8.byteOffset,x.vData_pu8.length):null}}get utoStampNow(){return{u32SysTime:Math.floor(Date.now()/1e3)-946598400,u8SysTime:0}}get utoStampNow40(){return this.utoStampNow.u32SysTime*256}async requestUto(x,r=0){await this.utoPortLock.requestLock();try{if(!this.sendUto)return null;let e=Math.trunc(r/256),i=r&255;return await this.sendWithRetry((o,t,B)=>{if(o.bCmd===0){let l=this.resultVerdict(o);l===5||l===0||l===4?t(null):B(o);return}if(o.wTagFull!==x)return B(o);t(o)},async()=>{this.sendUto(x,{u32SysTime:e,u8SysTime:i}),await this.lastTxWrite},{timeoutMessage:`[UtoMaster] requestUto: no response from device for tag=0x${x.toString(16)}`})}finally{this.utoPortLock.unlock()}}copyDataView(x){return new Uint8Array(x.buffer.slice(x.byteOffset,x.byteOffset+x.byteLength))}static resultCode(x){return{verdict:x.wTagFull&-257,disc:(x.wTagFull&256)!==0}}resultVerdict(x){let{verdict:r,disc:e}=ht.resultCode(x);return e&&(this.logger.warn(`[UtoMaster] device requested disconnect (RESULT 0x${x.wTagFull.toString(16).padStart(4,"0")})`),this.emit("deviceDisconnectRequested",x.wTagFull)),r}static concatChunks(x){let r=x.reduce((o,t)=>o+t.length,0),e=new Uint8Array(r),i=0;for(let o of x)e.set(o,i),i+=o.length;return e}sendWithRetry(x,r,e){let i=e?.timeoutMs??NE,o=e?.maxRetries??IE;return new Promise((t,B)=>{let l=0,D=!1,j=()=>{},b,k={resolve:y=>{D=!0,clearTimeout(b),this.removeListener("utoFrame",j),t(y)},reject:y=>{D=!0,clearTimeout(b),this.removeListener("utoFrame",j),B(y)}},q=async()=>{j=y=>x(y,k.resolve,k.reject),this.once("utoFrame",j);try{await r()}catch(y){if(D)return;this.removeListener("utoFrame",j),B(y);return}D||(b=setTimeout(()=>{if(this.removeListener("utoFrame",j),l>=o){B(new Error(e?.timeoutMessage??`[UtoMaster] no response from device after ${o} retries`));return}l++,this.logger.warn(`[UtoMaster] no response within ${i}ms, retrying (${l}/${o})`),q()},i))};q()})}createFrameIdleGuard(x,r,e){let i,o=()=>{i!==void 0&&(clearTimeout(i),i=void 0)};return{arm:()=>{o(),i=setTimeout(()=>{i=void 0,this.removeListener("utoFrame",x),e()},r)},clear:o}}async requestHistoricUtos(x,r,e,i=sa,o=0,t){return await this.utoPortLock.requestLock(),new Promise((B,l)=>{if(!this.sendUto)return B([]);let D=[],j=0,b=Promise.resolve(),k=T=>{if(q.arm(),T.bCmd===0){q.clear(),this.settleHistoricTransfer(T,D,t,b,B,l);return}if(T.wTagFull===x&&T.data&&(D.push({stamp40:T.stamp,data:this.copyDataView(T.data)}),e?.(++j),t&&o>0&&D.length>=o)){let I=D.splice(0);b=b.then(()=>t(I))}this.once("utoFrame",k)},q=this.createFrameIdleGuard(k,i,()=>l(new Error(`[UtoMaster] requestHistoricUtos timed out after ${i}ms (tag=0x${x.toString(16)}, ${j} records received)`)));this.once("utoFrame",k),q.arm();let y=Math.trunc(r/256),S=r&255;this.sendUto(x,{u32SysTime:y,u8SysTime:S})}).finally(()=>{this.utoPortLock.unlock()})}settleHistoricTransfer(x,r,e,i,o,t){let B=this.resultVerdict(x);if(!(B===5||B===0||B===4)){i.then(()=>t(x)).catch(t);return}let D=e&&r.length>0?r.splice(0):null;(D?i.then(()=>e(D)):i).then(()=>o(e?[]:r)).catch(t)}async requestFile(x,r,e=sa){return await this.utoPortLock.requestLock(),new Promise((i,o)=>{if(!this.SendUtoCmdExt)return i(new Uint8Array(0));let t=[],B=0,l=b=>{if(D.arm(),b.bCmd===0){D.clear();let k=this.resultVerdict(b);k===5||k===0?i(ht.concatChunks(t)):o(b);return}if(b.bCmd===3&&b.data){let k=this.copyDataView(b.data);t.push(k),B+=k.byteLength,r?.(B)}this.once("utoFrame",l)},D=this.createFrameIdleGuard(l,e,()=>o(new Error(`[UtoMaster] requestFile timed out after ${e}ms (file="${x}", ${B} bytes received)`)));this.once("utoFrame",l),D.arm();let j=new Uint8Array(x.length+1);for(let b=0;b<x.length;b++)j[b]=x.charCodeAt(b)&255;this.SendUtoCmdExt(8,3,{u32SysTime:0,u8SysTime:0},j)}).finally(()=>{this.utoPortLock.unlock()})}async deleteFile(x){let r=new Uint8Array(x.length+1);for(let e=0;e<x.length;e++)r[e]=x.charCodeAt(e)&255;await this.sendUTOCmdExt(10,3,r,0)}async sendSetValue(x,r,e){this.isInitialized();let i=new Uint8Array(r.length);SA.cp1252Pack(i,0,r.length,r);try{return await this.sendUTOCmdExt(11,x,i,e),{outcome:"ok",resultCode:0}}catch(o){let t=o;if(t&&t.bCmd===0&&typeof t.wTagFull=="number"){let{verdict:B}=ht.resultCode(t),l=t.wTagFull;return B===4?{outcome:"stamp",resultCode:l}:B===7||B===9?{outcome:"denied",resultCode:l}:{outcome:"error",resultCode:l}}return this.logger.error(`[UtoMaster] sendSetValue transport error tag=0x${x.toString(16)}: ${o}`),{outcome:"error"}}}async requestDeviceInfo(){let x=await this.requestUto(0,this.utoStampNow40);return x?SA.decode_DEVINFO(x):null}async requestContext(){let x=await this.requestUto(128,this.utoStampNow40);return x?SA.decode_CONTEXT(x):null}async writeContext(x){await this.sendUTOCmdExt(3,128,SA.encode_CONTEXT(x))}async requestFileList(x){return await this.utoPortLock.requestLock(),new Promise((r,e)=>{if(!this.SendUtoCmdExt)return r({});let i={},o=t=>this.handleFileListFrame(t,i,x,r,e,o);this.once("utoFrame",o),this.SendUtoCmdExt(7,3,{u32SysTime:0,u8SysTime:0},new Uint8Array(0))}).finally(()=>{this.utoPortLock.unlock()})}handleFileListFrame(x,r,e,i,o,t){if(x.bCmd===0){let B=this.resultVerdict(x);B===5||B===0?i(e?r[e]?{[e]:r[e]}:{}:r):o(x);return}try{let B=SA.decode_FILEMAP(x);r[B.name]=B}catch(B){o(B);return}this.once("utoFrame",t)}async requestStamps(){let x=await this.requestUto(1,this.utoStampNow40);return x?SA.decode_STAMPS(x):null}async sendFile(x,r,e,i){let o=r;x===2&&(o=new Uint8Array(r.length+1),o.set(new Uint8Array(r),1),o[0]=x);let t={name:i??qE,stamp:e?SA.msToStamp40(e):this.utoStampNow.u32SysTime,size:o.length,_flags:11,crc32:kE(o)},B=SA.encode_FILEMAP(t);if(!await this.sendUTOCmdExt(9,3,B,0))for(let j=0;j<o.length;j+=2048){let b=Math.min(2048,o.byteLength-j),k=new Uint8Array(o.buffer,o.byteOffset+j,b);await this.sendUTOCmdExt(3,3,k,j*256);let y=(j+b)/o.byteLength*100;this.emit("installing",y.toFixed(0))}this.emit("installing",null)}async sendUTOCmdExt(x,r,e,i){await this.utoPortLock.requestLock();try{if(!this.SendUtoCmdExt)return null;let o=i??this.utoStampNow.u32SysTime,t=Math.trunc(o/256),B=o&255;return await this.sendWithRetry((l,D,j)=>{if(l.bCmd!==0){j(l);return}this.resultVerdict(l)===0?D(null):j(l)},async()=>{this.SendUtoCmdExt(x,r,{u32SysTime:t,u8SysTime:B},e),await this.lastTxWrite},{timeoutMessage:`[UtoMaster] sendUTOCmdExt: no response from device for cmd=${x} tag=0x${r.toString(16)}`})}finally{this.utoPortLock.unlock()}}async sendUTOData(x,r,e){return this.sendUTOCmdExt(3,x,r,e)}packOtpFlashString(x){let r=new Uint8Array(1024);return SA.cp1252Pack(r,0,1024,x),r}async writeAppOtp(x){await this.sendUTOData(26434,this.packOtpFlashString(x))}async writeAppFlash(x){await this.sendUTOData(26435,this.packOtpFlashString(x))}async writeSysOtp(x){await this.sendUTOData(26432,this.packOtpFlashString(x))}async writeSysFlash(x){await this.sendUTOData(26433,this.packOtpFlashString(x))}async initiateEcsHandshake(x){if(this.isInitialized(),x.companionPublicKey.length!==32)throw new Error(`companionPublicKey must be 32 bytes, got ${x.companionPublicKey.length}`);if(x.companionPrivateKey.length!==32&&x.companionPrivateKey.length!==64)throw new Error(`companionPrivateKey must be 32 bytes (seed) or 64 bytes (seed||public), got ${x.companionPrivateKey.length}`);let r=x.companionPublicKey.slice(0,32),e=x.companionPrivateKey.slice(0,32);this.logger.info(`[ecs] initiateEcsHandshake: pub.len=${r.length} seed.len=${e.length} state(pre)=${this.mdnComInterface.MdnCom_GetEcsState?.()}`);let i=this.mdnComInterface.MdnCom_SetCompanionKeypair(r,e);return this.logger.info(`[ecs] MdnCom_SetCompanionKeypair returned ${i}`),i<0?{success:!1,resultCode:i}:new Promise((o,t)=>{if(x.signal?.aborted){t(new Error("Operation aborted"));return}let B=()=>{this.ecsHandshakeResolver&&(this.logger.warn("[ecs] abort signal fired \u2014 resetting WASM state"),this.ecsHandshakeResolver=null,this.mdnComInterface.MdnCom_ResetEcs(),t(new Error("Operation aborted")))};x.signal?.addEventListener("abort",B,{once:!0}),this.ecsHandshakeResolver=D=>{this.logger.info(`[ecs] resolver invoked: result=${JSON.stringify(D)}`),x.signal?.removeEventListener("abort",B),D.success&&(this.encrypted=!0),o(D)},this.logger.info("[ecs] calling MdnCom_InitiateEcsHandshake()");let l=this.mdnComInterface.MdnCom_InitiateEcsHandshake();this.logger.info(`[ecs] MdnCom_InitiateEcsHandshake returned ${l} state(post)=${this.mdnComInterface.MdnCom_GetEcsState?.()}`),l<0?(this.ecsHandshakeResolver=null,x.signal?.removeEventListener("abort",B),o({success:!1,resultCode:l})):this.logger.info("[ecs] awaiting device INIT response via MdnCom_RawRx ...")})}resetEcs(){this.isInitialized(),this.mdnComInterface.MdnCom_ResetEcs(),this.ecsHandshakeResolver=null}};var He={NAN:1,OF:2,UF:3,OL:4,SC:5};var sc=[["NAN",He.NAN],["OF",He.OF],["UF",He.UF],["OL",He.OL],["SC",He.SC]];var ME=5e3,ha=class ga extends ma.EventEmitter{constructor(x=ae){super(),C0(this,"logger",x),C0(this,"ws",null),C0(this,"bridgeTransport",null),C0(this,"bridgeSignal"),C0(this,"bridgeResolve",null),C0(this,"bridgeReject",null),C0(this,"serverMessageCount",0),C0(this,"settled",!1),C0(this,"abortHandler",null),C0(this,"connectTimeout"),C0(this,"writeQueue",[]),C0(this,"isProcessingQueue",!1),C0(this,"queueAborted",!1),C0(this,"queueDrainPromise",Promise.resolve()),C0(this,"transportUnsubscribe",null)}static buildSyncUrl(x,r){return`wss://${x}/uto/1/sync/${r}`}resetBridgeState(){this.serverMessageCount=0,this.settled=!1,this.abortHandler=null,this.connectTimeout=void 0,this.writeQueue=[],this.isProcessingQueue=!1,this.queueAborted=!1,this.queueDrainPromise=Promise.resolve(),this.bridgeResolve=null,this.bridgeReject=null,this.bridgeTransport=null,this.bridgeSignal=void 0,this.transportUnsubscribe=null}async processWriteQueue(){if(!this.isProcessingQueue){for(this.isProcessingQueue=!0;this.writeQueue.length>0&&!this.queueAborted;){let x=this.writeQueue.shift();try{await ba(this.bridgeTransport,x)}catch(r){let e=r instanceof Error?r.message:String(r);this.logger.error(`Error writing to transport: ${e}`)}}this.isProcessingQueue=!1}}cleanup(){this.transportUnsubscribe&&(this.transportUnsubscribe(),this.transportUnsubscribe=null),this.abortHandler&&this.bridgeSignal&&(this.bridgeSignal.removeEventListener("abort",this.abortHandler),this.abortHandler=null),this.connectTimeout!==void 0&&(clearTimeout(this.connectTimeout),this.connectTimeout=void 0),this.ws=null}settle(x,r){this.settled||(this.settled=!0,this.cleanup(),x==="resolve"?this.bridgeResolve?.({serverMessageCount:this.serverMessageCount}):this.bridgeReject?.(r))}attachWebSocketHandlers(x,r){let e=i=>{x.readyState===WebSocket.OPEN&&!this.bridgeSignal?.aborted&&!this.settled&&x.send(i)};this.abortHandler=()=>{this.logger.info("WebSocket bridge aborted"),this.queueAborted=!0,this.writeQueue.length=0,(x.readyState===WebSocket.OPEN||x.readyState===WebSocket.CONNECTING)&&x.close(),this.settle("reject",new Error("Operation aborted"))},this.bridgeSignal&&this.bridgeSignal.addEventListener("abort",this.abortHandler),x.onopen=()=>{this.connectTimeout!==void 0&&(clearTimeout(this.connectTimeout),this.connectTimeout=void 0),this.logger.info(`WebSocket connected to ${r}`),this.transportUnsubscribe=this.bridgeTransport.onData(e),this.emit("wsConnected")},x.onmessage=i=>{this.serverMessageCount++,this.emit("serverMessage",this.serverMessageCount),!(this.bridgeSignal?.aborted||this.settled)&&(this.writeQueue.push(i.data),this.isProcessingQueue||(this.queueDrainPromise=this.processWriteQueue()))},x.onclose=i=>{this.logger.info(`WebSocket closed (server=${r}, code=${i.code}, messages=${this.serverMessageCount})`),this.emit("wsClosed",i.code,i.reason),this.queueDrainPromise.then(()=>this.settle("resolve")).catch(()=>this.settle("resolve"))},x.onerror=i=>{this.logger.error(`WebSocket error (server=${r})`),this.emit("wsError",i),this.queueAborted=!0,this.writeQueue.length=0,this.settle("reject",new Error("WebSocket error"))}}async bridge(x,r,e,i){return new Promise((o,t)=>{if(i?.aborted){t(new Error("Operation aborted"));return}this.resetBridgeState(),this.bridgeTransport=x,this.bridgeSignal=i,this.bridgeResolve=o,this.bridgeReject=t;let B=ga.buildSyncUrl(r,e);this.logger.info(`Opening WebSocket: ${B}`);let l=new WebSocket(B);l.binaryType="arraybuffer",this.ws=l,this.connectTimeout=setTimeout(()=>{l.readyState===WebSocket.CONNECTING&&(this.logger.error("WebSocket connection timeout"),l.close(),this.settle("reject",new Error("WebSocket connection timeout")))},ME),this.attachWebSocketHandlers(l,r)})}close(){this.ws&&this.ws.readyState===WebSocket.OPEN&&this.ws.close()}},LE="https://lic.mydatanet.at/api/2/";async function RE(A,x=LE){let r=`${x}devices/${A}/assignment`,e=await fetch(r);if(!e.ok)throw new Error(`Failed to get device assignment: ${e.status} ${e.statusText}`);return e.json()}var OE=class extends ja.EventEmitter{constructor(A=ae){super(),C0(this,"logger",A)}async execute(A,x,r,e){let i=r;i||(this.logger.info("[LegacySync] No serverUrl provided, resolving via device assignment..."),this.emit("syncPhase",{phase:"resolving-server"}),i=(await RE(x)).server_url,this.logger.info("[LegacySync] Resolved server URL: "+i)),this.logger.info("[LegacySync] Starting legacy sync (server="+i+")");let o=new ha(this.logger);o.on("wsConnected",()=>this.emit("wsConnected")),o.on("wsClosed",(B,l)=>this.emit("wsClosed",B,l)),o.on("wsError",B=>this.emit("wsError",B)),o.on("serverMessage",B=>this.emit("serverMessage",B));let t=await o.bridge(A,i,x,e);return this.logger.info("[LegacySync] Legacy sync completed (serverMessages="+t.serverMessageCount+")"),{serverMessageCount:t.serverMessageCount}}},ka="Operation aborted";function GE(A){return A instanceof Error?A.message:String(A)}function pn(A){if(A?.aborted)throw new Error(ka)}var UE=class extends ya.EventEmitter{constructor(A,x=ae){super(),C0(this,"atHandler",A),C0(this,"logger",x)}async execute(A,x,r,e){this.logger.info("Starting debug-enabled sync");let i=[{name:"mnt",queryServer:t=>this.atHandler.queryMntServerConfig(t),initiateSync:t=>this.atHandler.initiateMntSync(t)},{name:"mdn",queryServer:t=>this.atHandler.queryMdnServerConfig(t),initiateSync:t=>this.atHandler.initiateMdnSync(t)}],o={};for(let t of i)try{o[t.name]=await this.runSyncPhase(t,A,x,e)}catch(B){if(e?.aborted)throw new Error(ka);let l=`${t.name.toUpperCase()} sync phase failed: ${GE(B)}`;throw this.logger.error(l),new Error(l)}return this.logger.info(`Debug sync completed (mntMessages=${o.mnt}, mdnMessages=${o.mdn})`),{mntServerMessageCount:o.mnt,mdnServerMessageCount:o.mdn}}async runSyncPhase(A,x,r,e){pn(e);let i=A.name.toUpperCase();this.emit("syncPhase",{phase:A.name}),this.logger.info(`Phase: Querying ${i} server configuration`);let o=await A.queryServer(e);this.logger.info(`${i} server domain: ${o}`),pn(e),await A.initiateSync(e),pn(e);let t=await this.syncWithServer(x,o,r,e);return this.logger.info(`${i} phase completed (serverMessages=${t.serverMessageCount})`),t.serverMessageCount}async syncWithServer(A,x,r,e){let i=new ha(this.logger),o=!1;i.on("wsConnected",()=>this.emit("wsConnected"));let t=this.atHandler.createConCloseMonitor(()=>{o=!0,this.logger.info("Device initiated close (+CONCLOSE), closing WebSocket"),i.close()});try{let B=await i.bridge(A,x,r,e);return o?this.logger.info("Connection closed by device (+CONCLOSE)"):(this.logger.info("Connection closed by server, sending +CONCLOSE to device"),await this.atHandler.sendConnectionClose(e)),B}finally{t()}}},_a=class extends pa.EventEmitter{constructor(A,x,r=ae){super(),C0(this,"syncTransport",A),C0(this,"logger",r),C0(this,"atHandler"),this.atHandler=x??null}async sync(A){let x=this.atHandler?"debug":"legacy";this.emit("syncStart",{mode:x});try{if(this.atHandler)try{return this.emit("syncPhase",{phase:"debug-sync"}),await this.syncWithDebug(A)}catch(r){return this.logger.warn("[SyncManager] Debug sync failed, falling back to legacy sync: "+(r instanceof Error?r.message:String(r))),this.emit("syncPhase",{phase:"debug-fallback-legacy"}),await this.syncLegacy(A)}return this.emit("syncPhase",{phase:"legacy"}),await this.syncLegacy(A)}catch(r){throw this.emit("syncError",r),r}}async syncLegacy(A){let x=new OE(this.logger);x.on("syncPhase",i=>this.emit("syncPhase",i));let e={mode:"legacy",serverMessageCount:(await x.execute(this.syncTransport,A.serialNumber,A.serverUrl,A.signal)).serverMessageCount};return this.emit("syncComplete",e),e}async syncWithDebug(A){let x=new UE(this.atHandler,this.logger);x.on("syncPhase",i=>this.emit("syncPhase",i));let r=await x.execute(this.syncTransport,A.serialNumber,A.serverUrl??"",A.signal),e={mode:"debug",serverMessageCount:r.mntServerMessageCount+r.mdnServerMessageCount,mntServerMessageCount:r.mntServerMessageCount,mdnServerMessageCount:r.mdnServerMessageCount};return this.emit("syncComplete",e),e}dispose(){}},WA={MNT_CFG:"at+mntcfg?",MDN_CFG:"at+mdncfg?",MNT_SYNC:"at+mntsync",MDN_SYNC:"at+mdnsync",CON_CLOSE:"at+conclose",APP_GET_METADATA:"AT+APP=GETMETADATA",APP_GET_DATAVALUE:"AT+APP=GETDATAVALUE",APP_TRIG_MEASURE:"AT+APP=TRIGMEASURE",APP_TRIG_MEASURE_TEST:"AT+APP=TRIGMEASURE=?",ATI:"ati",RM2M_STATE:"at+rm2mstate?",TX:"at+tx",TX_MAINTENANCE:"at+tx=4",TX_GSM_POSITION:"at+tx=1",TX_MODE_TRIGGERED:"at+txmode=0",TX_MODE_WAKEUP:"at+txmode=1",TX_MODE_ONLINE:"at+txmode=2",COMPANION_CERT:"AT+COMPCERT",COMPANION_CERT_TEST:"AT+COMPCERT=?"},Sx={OK:"OK",ERROR:"ERROR",SYNC_START:"+SYNC START",MEASURED:"+MEASURED",CON_CLOSE:"+CONCLOSE",MNT_CFG_PREFIX:"+MNTCFG",MDN_CFG_PREFIX:"+MDNCFG",RM2M_STATE:"+RM2MSTATE",ERROR_PIN_REQUIRED:"ERROR PIN REQUIRED",ERROR_NO_DATA:"ERROR NO DATA",COMPCERT_ERROR:/\+COMPCERT ERROR:\s*(\d+)/},Ux=1e4;var HE=/(?:ERROR PIN REQUIRED|ERROR NO DATA|ERROR|OK)\r\n/;function KE(){return{buffer:"",closedByDevice:!1,reset(){this.buffer="",this.closedByDevice=!1}}}var wr="Operation aborted",BA=class extends Error{constructor(A="AT command handler was disposed"){super(A),this.name="AtHandlerDisposedError"}},zE=class extends Error{constructor(A="Device returned ERROR response"){super(A),this.name="AtDeviceError"}},$a=class extends wa.EventEmitter{constructor(A,x=ae){super(),C0(this,"transport",A),C0(this,"logger",x),C0(this,"mutex",new ua("AtCommandHandler")),C0(this,"bufferState",KE()),C0(this,"responseCallback",null),C0(this,"decoder",new TextDecoder),C0(this,"dataHandler"),C0(this,"disposeTransportListener"),C0(this,"isDisposed",!1),C0(this,"activeAbort",null),C0(this,"session"),this.dataHandler=r=>this.handleIncomingData(r),this.disposeTransportListener=this.transport.onData(this.dataHandler),this.session={sendAndWait:(r,e,i=Ux,o)=>this.executeSendAndWait(r,e,i,o),sendRaw:(r,e=Ux)=>this.executeSendRaw(r,e),queryMntServerConfig:r=>this.executeQueryConfig(WA.MNT_CFG,Sx.MNT_CFG_PREFIX,r),queryMdnServerConfig:r=>this.executeQueryConfig(WA.MDN_CFG,Sx.MDN_CFG_PREFIX,r),initiateMntSync:r=>this.executeInitiateMntSync(r),initiateMdnSync:r=>this.executeInitiateMdnSync(r),sendCompanionCert:(r,e)=>this.executeSendCompanionCert(r,e),queryCompanionCertSupport:r=>this.executeQueryCompanionCertSupport(r),sendConnectionClose:r=>this.executeSendConnectionClose(r)}}get isBusy(){return this.mutex.islocked}get disposed(){return this.isDisposed}async withAtLock(A){await this.mutex.requestLock();try{if(this.isDisposed)throw new BA;return await A(this.session)}finally{this.mutex.unlock()}}handleIncomingData(A){let x=this.decoder.decode(A);this.bufferState.buffer+=x,this.emit("data",x),this.responseCallback&&this.responseCallback(this.bufferState.buffer),!this.responseCallback&&this.bufferState.buffer.length>1e3&&(this.bufferState.buffer=this.bufferState.buffer.slice(-500))}encodeCommand(A){let x=new Uint8Array(A.length+2);for(let r=0;r<A.length;r++)x[r]=A.charCodeAt(r);return x[A.length]=10,x[A.length+1]=13,x.buffer}makeCleanup(A,x,r){return()=>{this.responseCallback=null,this.activeAbort=null,clearTimeout(A),x&&r&&x.removeEventListener("abort",r)}}makeResponseChecker(A,x,r,e){let i=A instanceof RegExp;return o=>{if(A!==Sx.ERROR&&o.includes(Sx.ERROR)){x(),e(new zE);return}let t=!1,B=o;if(i){let l=o.match(A);l&&(t=!0,B=l[0])}else t=o.includes(A);if(t){x(),r(B);return}o.length>500&&(this.bufferState.buffer=this.bufferState.buffer.slice(-250))}}executeSendAndWait(A,x,r,e){return new Promise((i,o)=>{if(this.isDisposed){o(new BA);return}if(e?.aborted){o(new Error(wr));return}A&&(this.bufferState.buffer="");let B=x instanceof RegExp?x.source:x,l={cleanup:()=>{}},D=setTimeout(()=>{l.cleanup(),o(new Error(`Timeout waiting for response: ${B}`))},r),j=()=>{l.cleanup(),o(new Error(wr))};l.cleanup=this.makeCleanup(D,e,j),e&&e.addEventListener("abort",j);let b=this.makeResponseChecker(x,l.cleanup,i,o);this.responseCallback=b,this.activeAbort=()=>{l.cleanup(),o(new BA)},!A&&this.bufferState.buffer&&b(this.bufferState.buffer),A&&(this.logger.info("TX: "+A),this.transport.write(this.encodeCommand(A)).catch(k=>{l.cleanup(),o(k)}))})}executeSendRaw(A,x){return new Promise((r,e)=>{if(this.isDisposed){e(new BA);return}this.bufferState.buffer="";let i=setTimeout(()=>{o(),e(new Error(`Timeout waiting for raw AT response to: ${A}`))},x),o=this.makeCleanup(i);this.activeAbort=()=>{o(),e(new BA)},this.responseCallback=t=>{HE.test(t)&&(o(),this.logger.info("RX: "+t.trim()),r(t))},this.logger.info("TX: "+A),this.transport.write(this.encodeCommand(A)).catch(t=>{o(),e(t)})})}executeQueryConfig(A,x,r){return new Promise((e,i)=>{if(this.isDisposed){i(new BA);return}if(r?.aborted){i(new Error(wr));return}this.bufferState.buffer="";let o={cleanup:()=>{}},t=setTimeout(()=>{o.cleanup(),this.logger.error(`Timeout waiting for ${x} server config`),i(new Error(`Timeout waiting for ${x} response \u2014 server configuration not available`))},Ux),B=()=>{o.cleanup(),i(new Error(wr))};o.cleanup=this.makeCleanup(t,r,B),r&&r.addEventListener("abort",B);let l=new RegExp(`\\${x}:\\s*<?([^,>\\s]+)>?`);this.activeAbort=()=>{o.cleanup(),i(new BA)},this.responseCallback=D=>{let j=D.match(l);if(j){o.cleanup();let b=j[1].trim();this.logger.info(`Server config ${x}: ${b}`),e(b);return}D.length>500&&(this.bufferState.buffer=this.bufferState.buffer.slice(-250))},this.logger.info("TX: "+A),this.transport.write(this.encodeCommand(A)).catch(D=>{o.cleanup(),this.logger.error(`Failed to send ${x} command: `+(D instanceof Error?D.message:String(D))),i(D)})})}async sendAndWait(A,x,r=Ux,e){return this.withAtLock(i=>i.sendAndWait(A,x,r,e))}async sendRaw(A,x=Ux){return this.withAtLock(r=>r.sendRaw(A,x))}async queryMntServerConfig(A){return this.withAtLock(x=>x.queryMntServerConfig(A))}async queryMdnServerConfig(A){return this.withAtLock(x=>x.queryMdnServerConfig(A))}async initiateMntSync(A){return this.withAtLock(x=>x.initiateMntSync(A))}async initiateMdnSync(A){return this.withAtLock(x=>x.initiateMdnSync(A))}async sendCompanionCert(A,x){return this.withAtLock(r=>r.sendCompanionCert(A,x))}async executeInitiateMntSync(A){this.logger.info("Initiating MNT sync"),await this.executeSendAndWait(WA.MNT_SYNC,Sx.OK,Ux,A)}async executeInitiateMdnSync(A){this.logger.info("Initiating MDN sync");try{await this.executeSendAndWait(WA.MDN_SYNC,Sx.OK,Ux,A),await this.executeSendAndWait(null,Sx.SYNC_START,Ux,A)}catch(x){this.logger.error("Failed to initiate MDN sync: "+(x instanceof Error?x.message:String(x)))}}async executeSendCompanionCert(A,x){if(this.isDisposed)throw new BA;if(x?.aborted)throw new Error(wr);let r=A.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-A.length%4)%4),e=r.length,i=await this.executeSendAndWait(`${WA.COMPANION_CERT}=${e}`,Sx.OK,Ux,x),o=parseInt(i.match(/(\d+)/)[1],10),t=0;for(;t<e;){let B=Math.min(o,e-t),l=r.slice(t,t+B);await this.executeSendAndWait(`${WA.COMPANION_CERT}=${B},${t},${l}`,Sx.OK,Ux,x),t+=B}return this.executeCompanionCertFinalize(e,x)}executeCompanionCertFinalize(A,x){return new Promise((r,e)=>{if(this.isDisposed){e(new BA);return}if(x?.aborted){e(new Error(wr));return}this.bufferState.buffer="";let i={cleanup:()=>{}},o=setTimeout(()=>{i.cleanup(),e(new Error("Timeout waiting for AT+COMPCERT finalize response"))},Ux),t=()=>{i.cleanup(),e(new Error(wr))};i.cleanup=this.makeCleanup(o,x,t),x&&x.addEventListener("abort",t),this.activeAbort=()=>{i.cleanup(),e(new BA)},this.responseCallback=l=>{let D=l.match(Sx.COMPCERT_ERROR);if(D){i.cleanup(),r({success:!1,errorCode:parseInt(D[1],10)});return}if(l.includes(Sx.OK)){i.cleanup(),r({success:!0});return}l.length>500&&(this.bufferState.buffer=this.bufferState.buffer.slice(-250))};let B=`${WA.COMPANION_CERT}=0,${A}`;this.logger.info("TX: "+B),this.transport.write(this.encodeCommand(B)).catch(l=>{i.cleanup(),e(l)})})}async queryCompanionCertSupport(A){return this.withAtLock(x=>x.queryCompanionCertSupport(A))}async executeQueryCompanionCertSupport(A){try{return await this.executeSendAndWait(WA.COMPANION_CERT_TEST,Sx.OK,Ux,A),!0}catch(x){if(x instanceof BA)throw x;return!1}}async sendConnectionClose(A){return this.withAtLock(x=>x.sendConnectionClose(A))}async executeSendConnectionClose(A){try{await this.executeSendAndWait(WA.CON_CLOSE,Sx.CON_CLOSE,Ux,A)}catch(x){this.logger.error("Failed to receive +CONCLOSE response: "+(x instanceof Error?x.message:String(x)))}}createConCloseMonitor(A){let x="",r=e=>{x+=e,x.includes(Sx.CON_CLOSE)&&(x="",this.bufferState.closedByDevice=!0,A()),x.length>1e3&&(x=x.slice(-500))};return this.on("data",r),()=>{this.off("data",r)}}dispose(){this.isDisposed||(this.isDisposed=!0,this.activeAbort?.(),this.disposeTransportListener(),this.responseCallback=null,this.activeAbort=null,this.removeAllListeners())}};var jn="requesting-cert",mn="cert-revoked",JE=class kn extends qa.EventEmitter{constructor(){super(...arguments),C0(this,"utoMaster",null)}async authenticate(x){let r=x.logger??Aa,{signal:e,atHandler:i}=x,o=()=>{if(e?.aborted)throw new Error("Operation aborted")};try{this.emitPhase("checking-cert"),o();let t=await this.loadOrGenerateKeypair(x.storage),B=await x.storage.getCertificate(x.apiConfig.apiHost);(B===null||!hE(B.notAfter))&&(r.info("Companion cert missing or near expiry \u2014 requesting new cert"),this.emitPhase(jn),o(),B=await this.requestAndStoreCert(t,x)),this.utoMaster=new Sn(x.utoTransport,r),this.emitPhase("cert-presenting"),o();let l=B;B=await i.withAtLock(async b=>{let k=await this.presentCertWithRefresh(b,l,t,x);return await b.initiateMdnSync(e),k}),this.emitPhase("ecs-handshake"),o(),await this.utoMaster.init();let D=await this.utoMaster.initiateEcsHandshake({companionPublicKey:t.publicKey,companionPrivateKey:t.privateKey,signal:e});if(!D.success)return this.fail("ecs-handshake",`ECS handshake failed (code ${D.resultCode})`);this.emitPhase("connected");let j=this.utoMaster;return this.utoMaster=null,{success:!0,utoMaster:j}}catch(t){return this.handleError(t)}}dispose(){this.utoMaster=null,this.removeAllListeners()}async loadOrGenerateKeypair(x){let r=await x.getKeypair();if(r!==null)return r;let e=await Qs();return await x.saveKeypair(e),e}static async fetchCertOrThrowRevoked(x,r){try{return await mE(r.apiConfig,{publicKey:x.publicKey,subject:r.subject})}catch(e){throw e instanceof _t&&(e.httpStatus===401||e.httpStatus===404)?(await r.storage.clearCertificate(r.apiConfig.apiHost),new hn(mn,`Companion cert revoked or session expired (HTTP ${e.httpStatus})`,{httpStatus:e.httpStatus,apiCode:e.code})):e}}async requestAndStoreCert(x,r){let e=await kn.fetchCertOrThrowRevoked(x,r),i={base64Url:e.certificateBase64Url,notAfter:e.notAfter};return await r.storage.saveCertificate(i,r.apiConfig.apiHost),i}static async refreshCertificate(x){let r=await x.storage.getKeypair(),e=r!==null?r:await(async()=>{let t=await Qs();return await x.storage.saveKeypair(t),t})(),i=await kn.fetchCertOrThrowRevoked(e,x),o={base64Url:i.certificateBase64Url,notAfter:i.notAfter};return await x.storage.saveCertificate(o,x.apiConfig.apiHost),o}static async clearCredentials(x,r){await x.clearCertificate(r)}async presentCertWithRefresh(x,r,e,i){let o=await x.sendCompanionCert(r.base64Url,i.signal);if(o.success||o.errorCode===3&&((i.logger??Aa).info("Device reported EXPIRED \u2014 refreshing cert and retrying"),this.emitPhase(jn),r=await this.requestAndStoreCert(e,i),o=await x.sendCompanionCert(r.base64Url,i.signal),o.success))return r;throw new hn("cert-presenting",`AT+COMPCERT rejected (code ${o.errorCode??"?"})`,{certErrorCode:o.errorCode})}emitPhase(x){this.emit("phase",x)}fail(x,r){return this.emit("phase","error"),{success:!1,phase:x,error:r}}handleError(x){return x instanceof hn?(this.emit("phase",x.phase===mn?mn:"error"),{success:!1,phase:x.phase,error:x.message,certErrorCode:x.certErrorCode,httpStatus:x.httpStatus,apiCode:x.apiCode}):(this.emit("phase","error"),x instanceof _t?{success:!1,phase:jn,error:x.message,httpStatus:x.httpStatus,apiCode:x.code}:{success:!1,phase:"error",error:x instanceof Error?x.message:String(x)})}};C0(JE,"encodePublicKeyBase64Url",ca);var hn=class extends Error{constructor(A,x,r={}){super(x),C0(this,"phase",A),C0(this,"extra",r),this.name="AuthError"}get certErrorCode(){return this.extra.certErrorCode}get httpStatus(){return this.extra.httpStatus}get apiCode(){return this.extra.apiCode}};var XA={FAILED:1,ACTIVE:2,STARTED:4,RETRY:8,WAKEUPABLE:16,EXTSIM:32,DISABLED:64,WAKEUP:256,POSUPDATE_ACTIVE:512},ac=XA.FAILED|XA.ACTIVE|XA.STARTED|XA.RETRY|XA.WAKEUPABLE|XA.EXTSIM|XA.DISABLED|XA.WAKEUP|XA.POSUPDATE_ACTIVE,oc=`${Sx.RM2M_STATE}: `;var YA={configurationNumber:1,utoInterface:0,utoEndpoint:1,utoSize:64*1024,debugInterface:1,debugEndpoint:2,debugSize:1024};var $t=class{interface="usb";#r=new Set;#x;#e;#t;#A=!1;constructor(x,r){this.#x=x;let i=x.configuration.interfaces[r].alternate.endpoints;this.#e=i.find(o=>o.direction==="in"),this.#t=i.find(o=>o.direction==="out")}async write(x){await this.#x.transferOut(this.#t.endpointNumber,x)}onData(x){let r={cb:x};return this.#r.add(r),this.#A||this.#n(),()=>{this.#r.delete(r)}}async#n(){for(this.#A=!0;this.#A&&this.#x.opened;)try{let x=await this.#x.transferIn(this.#e.endpointNumber,this.#e.packetSize);if(x.data&&x.data.byteLength>0)for(let r of this.#r)r.cb(x.data.buffer)}catch{break}}stop(){this.#A=!1}},Je=class extends $t{constructor(x){super(x,YA.utoInterface)}},qt=class extends $t{constructor(x){super(x,YA.debugInterface)}};var VE=9540,Pa=new Sa.WebUSB({allowedDevices:[{vendorId:VE}]});async function WE(){return(await Pa.getDevices()).map(x=>({productName:x.productName,serialNumber:x.serialNumber||x.productName?.split(" ").pop(),vendorId:x.vendorId,productId:x.productId}))}async function Ta(A){let x=await WE();if(x.length===0){A.info("No USB devices found.");return}A.info("Available USB devices:"),x.forEach((r,e)=>{let i=r.productName||`Unknown Device (VID: 0x${r.vendorId.toString(16)}, PID: 0x${r.productId.toString(16)})`,o=r.serialNumber?` [${r.serialNumber}]`:"";A.log(` ${e+1}. ${i}${o}`)})}async function St(A,x){x.info(`Searching for device with serial number: ${A}`);let r=await Pa.getDevices();for(let e of r)if((e.serialNumber||e.productName?.split(" ").pop())?.toLowerCase()===A.toLowerCase())return x.info(`Device found: ${e.productName}`),e;return null}async function XE(A,x){if(x)try{await x.dispose()}catch{}if(A.opened)try{await A.close().catch()}catch{}}async function Pt(A,x,r,e,i=!1){if(!await r.stat(x))return{success:!1,message:`File not found: ${x.fsPath}`};let t=await St(A,e);if(!t)return{success:!1,message:`Device not found with serial number: ${A}`};let B=await r.readFile(x),l;try{await t.open(),await t.selectConfiguration(YA.configurationNumber),await t.claimInterface(YA.utoInterface);let D=new Je(t);if(l=new Sn(D),await l.init(),i){l.on("mdnCom",b=>{e.log("mdnCom",b)}),l.on("mdnComError",b=>{e.log("mdnComError",b)});let j=-1;l.on("installing",b=>{b&&b!==j&&(j=b,e.info(`Upload progress: ${b}%`))})}return await l.requestDeviceInfo(),e.info("Device connected, starting upload..."),await l.sendFile(qn.pawn,new Uint8Array(B.buffer,B.byteOffset,B.length)),e.done("Upload completed successfully!"),{success:!0,message:"File uploaded successfully"}}catch(D){return{success:!1,message:`Upload failed: ${D instanceof Error?D.message:String(D)}`}}finally{await XE(t,l)}}async function Na(A,x,r=!1){let e=await St(A,x);if(!e)return{success:!1,message:`Device not found with serial number: ${A}`};let i,o;try{await e.open(),await e.selectConfiguration(YA.configurationNumber),await e.claimInterface(YA.utoInterface),await e.claimInterface(YA.debugInterface);let t=new Je(e),B=new qt(e);o=new $a(B,x),i=new _a(t,o,x),i.on("syncError",D=>x.error(`Sync error: ${D.message}`)),r&&(i.on("syncStart",({mode:D})=>x.log(`Sync mode: ${D}`)),i.on("syncPhase",({phase:D})=>x.log(`Sync phase: ${D}`)),i.on("syncComplete",D=>x.info(`Sync complete (mode: ${D.mode}, messages: ${D.serverMessageCount})`))),x.info("Syncing device...");let l=new AbortController;return await i.sync({serialNumber:A,signal:l.signal}),{success:!0,message:"Sync completed successfully"}}catch(t){return{success:!1,message:`Sync failed: ${t instanceof Error?t.message:String(t)}`}}finally{if(i?.dispose(),o?.dispose(),e.opened)try{await e.close().catch()}catch{}}}var Ia=require("vscode-uri");function Nt(A){return A instanceof Error?A.message:String(A)}function QA(A,x){return{success:!1,errorCode:A,message:x}}async function QE(A){let{cwd:x,fs:r,logger:e,env:i,apiToken:o,options:t}=A;e.info("[1/5] Building project...");try{let B=t.part?t.part:!0;return await W.validateBasicManifest(x,r,null),await px.buildAll(x,r,e,i,o,B,!0),e.done("Build completed successfully"),null}catch(B){return QA(1,`Build failed: ${Nt(B)}`)}}async function ZE(A){let{logger:x,options:r}=A,{serial:e}=r;x.info(`[2/5] Searching for USB device with serial: ${e}...`);let i=await St(e,x);return i||QA(2,`USB device not found with serial number: ${e}`)}async function xB(A){let{cwd:x,fs:r,logger:e,options:i}=A,{serial:o,debug:t}=i;e.info("[3/5] Uploading binary to USB device...");let B=Ia.Utils.joinPath(x,i0.filePaths.dist.mainAmxPath),l=await Pt(o,B,r,e,t);return l.success?(e.done("USB upload completed"),null):QA(3,`USB upload failed: ${l.message}`)}async function AB(A,x){x.info("[4/5] Connecting to myDatanet server...");try{return await A.authenticate()}catch(r){return QA(4,`myDatanet authentication failed: ${Nt(r)}`)}}async function rB(A,x,r){if(x)try{let o=await A.getCustomer(x);return r.info(`Using customer: ${o.name} (${o._uid})`),o._uid}catch{return QA(6,`Customer "${x}" not found`)}let e=await A.getCustomers();if(e.length===0)return QA(6,"No customers available. Please specify --customer or set MYDATANET_CUSTOMER");if(e.length===1)return r.info(`Using customer: ${e[0].name} (${e[0]._uid})`),e[0]._uid;let i=e.map(o=>o.name).join(", ");return QA(6,`Multiple customers available. Please specify --customer or set MYDATANET_CUSTOMER. Available: ${i}`)}async function eB(A,x,r,e){let i=await A.getDeviceSite(x);i&&(i.app.phase==="dev"&&(r.apmId=i.app.apmid,r.applicationId=i.app.appl_id),r.siteUid=i._uid,r.siteName=i.name,r.customerUid=i.customer_uid,e.info(`Found existing site: ${i.name}`))}async function tB(A,x,r){let{cwd:e,fs:i,logger:o}=A;o.info("Creating development APM tag...");try{let t=await d0.createDevTag(e,i),B=await x.uploadDevTag(r.apmId,t);return r.applicationId=B,o.done("Development tag uploaded"),null}catch(t){return QA(5,`Development tag upload failed: ${Nt(t)}`)}}async function nB(A,x,r,e){e.info("[5/5] Creating development site...");try{return r.siteUid?(r.siteName!==r.name&&await A.updateSiteName(r.siteUid,r.name),e.info(`Reusing existing site: ${r.siteUid}`),{siteUid:r.siteUid,siteName:r.name}):{siteUid:await A.createDevelopmentSite(x,r),siteName:r.name}}catch(i){return QA(6,`Site creation failed: ${Nt(i)}`)}}function Ma(A,x,r=!1){if(r){A.log(JSON.stringify({siteUid:x.siteUid,siteName:x.siteName,apmId:x.apmId}));return}A.done("Development deployment completed successfully!"),A.info(""),A.info("=== Deployment Summary ==="),A.info(`Site UID: ${x.siteUid}`),A.info(`Site Name: ${x.siteName}`),A.info(`APM ID: ${x.apmId}`),A.info("==========================")}function Tt(A){return typeof A=="object"&&A!==null&&"errorCode"in A}async function La(A,x,r,e,i,o){let t={cwd:A,fs:x,logger:r,env:e,apiToken:i,options:o},{serial:B,server:l,customer:D,mdnToken:j}=o;r.info("Starting development deployment...");let b=await QE(t);if(b)return b;let k=await ZE(t);if(Tt(k))return k;let q=await xB(t);if(q)return q;let y=new Ne(l,j,r),S=await AB(y,r);if(Tt(S))return S;let T=S,I=await rB(y,D,r);if(Tt(I))return I;let L=I,R=await on(A,x,r,B,T.name,L,o.siteName);await eB(y,B,R,r);let e0=await tB(t,y,R);if(e0)return e0;let w=await nB(y,L,R,r);return Tt(w)?w:{success:!0,siteUid:w.siteUid,siteName:w.siteName,apmId:R.apmId,message:"Development deployment completed successfully"}}var ZA=new wx.Command,Pn=(0,Ra.default)({pkg:Vt}),ux=new vt.Logger,iB=()=>process.env.NODE_ENV==="local-dev-app"?"./dev/app":process.env.NODE_ENV==="local-dev-lib"?"./dev/modbus-master":process.env.NODE_ENV==="local-dev-addon"?"./dev/addon":process.env.NODE_ENV==="local-dev-analytics"?"./dev/analytics":"",oe=Ve.Utils.joinPath(Ve.URI.file(process.cwd()),iB());ZA.version(Vt.version).usage("<command>");ZA.description(`This tool is used to manage the project dependencies, build, package and publish the project.
|
|
2331
|
+
}`;var K0=new Function(Object.keys(A0),c0)(...Object.values(A0)),H0=`methodCaller<(${X.map(J0=>J0.name)}) => ${N.name}>`;return M(ur(H0,K0))},j0=E=>(E=I0(E),l0.toHandle(t[E])),nx=(E,C)=>(E=l0.toValue(E),C=l0.toValue(C),l0.toHandle(E[C])),bx=E=>{E>9&&(J[E+1]+=1)},Nx=(E,C,m,P,N)=>_[E](C,m,P,N),Lx=E=>l0.toHandle(I0(E)),Rx=E=>{var C=l0.toValue(E);uA(C),s0(E)},mr=()=>2147483648,Vx=(E,C)=>(g(C,"alignment argument is required"),Math.ceil(E/C)*C),sr=E=>{var C=At.buffer.byteLength,m=(E-C+65535)/65536|0;try{return At.grow(m),Ex(),1}catch(P){R(`growMemory: Attempted to grow heap from ${C} bytes to ${E} bytes, but got error: ${P}`)}},Cx=E=>{var C=Bx.length;E>>>=0,g(E>C);var m=mr();if(E>m)return R(`Cannot enlarge memory, requested ${E} bytes, but the limit is ${m} bytes!`),!1;for(var P=1;P<=4;P*=2){var N=C*(1+.2/P);N=Math.min(N,E+100663296);var X=Math.min(m,Vx(Math.max(E,N),65536)),V=sr(X);if(V)return!0}return R(`Failed to grow the heap from ${C} bytes to ${X} bytes, not enough memory!`),!1},Ua=E=>{R0("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")},Ha=9007199254740992,Ka=-9007199254740992,za=E=>E<Ka||E>Ha?NaN:Number(E);function Ja(E,C,m,P){return C=za(C),70}var Gt=[null,[],[]],Ut=(E,C)=>{var m=Gt[E];g(m),C===0||C===10?((E===1?L:R)(Qe(m)),m.length=0):m.push(C)},DB=()=>{Gn(0),Gt[1].length&&Ut(1,10),Gt[2].length&&Ut(2,10)},Va=(E,C,m,P)=>{for(var N=0,X=0;X<m;X++){var V=h0[C>>2],Q=h0[C+4>>2];C+=8;for(var A0=0;A0<Q;A0++)Ut(E,Bx[V+A0]);N+=Q}return h0[P>>2]=N,0},Wa=()=>{if(D){var E=Us("crypto");return C=>E.randomFillSync(C)}return C=>(crypto.getRandomValues(C),0)},Mn=E=>(Mn=Wa())(E),Xa=(E,C)=>Mn(Bx.subarray(E,E+C)),Ya=(E,C)=>{if(hr)for(var m=E;m<E+C;m++){var P=br(m);P&&hr.set(P,m)}},hr,Qa=E=>(hr||(hr=new WeakMap,Ya(0,gr.length)),hr.get(E)||0),Ht=[],Za=()=>{if(Ht.length)return Ht.pop();try{return gr.grow(1)}catch(E){if(!(E instanceof RangeError))throw E;R0("Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.")}},Kt=(E,C)=>{gr.set(E,C),RA[E]=gr.get(E)},Ln=E=>{let C=E.length;return g(C<16384),[C%128|128,C>>7,...E]},xo={i:127,p:127,j:126,f:125,d:124,e:111},Rn=E=>Ln(Array.from(E,C=>{var m=xo[C];return g(m,`invalid signature char: ${C}`),m})),Ao=(E,C)=>{var m=Uint8Array.of(0,97,115,109,1,0,0,0,1,...Ln([1,96,...Rn(C.slice(1)),...Rn(C[0]==="v"?"":C[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),P=new WebAssembly.Module(m),N=new WebAssembly.Instance(P,{e:{f:E}}),X=N.exports.f;return X},ro=(E,C)=>{g(typeof E<"u");var m=Qa(E);if(m)return m;var P=Za();try{Kt(P,E)}catch(X){if(!(X instanceof TypeError))throw X;g(typeof C<"u","Missing signature argument to addFunction: "+E);var N=Ao(E,C);Kt(P,N)}return hr.set(E,P),P},eo=E=>{hr.delete(br(E)),Kt(E,null),Ht.push(E)};pe(),Kr(),g(J.length===10);{if(t.noExitRuntime&&(Cr=t.noExitRuntime),t.print&&(L=t.print),t.printErr&&(R=t.printErr),t.wasmBinary&&(e0=t.wasmBinary),t.FS_createDataFile=lA.createDataFile,t.FS_createPreloadedFile=lA.createPreloadedFile,io(),t.arguments&&(b=t.arguments),t.thisProgram&&(k=t.thisProgram),g(typeof t.memoryInitializerPrefixURL>"u","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),g(typeof t.pthreadMainPrefixURL>"u","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),g(typeof t.cdInitializerPrefixURL>"u","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),g(typeof t.filePackagePrefixURL>"u","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),g(typeof t.read>"u","Module.read option was removed"),g(typeof t.readAsync>"u","Module.readAsync option was removed (modify readAsync in JS)"),g(typeof t.readBinary>"u","Module.readBinary option was removed (modify readBinary in JS)"),g(typeof t.setWindowTitle>"u","Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)"),g(typeof t.TOTAL_MEMORY>"u","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),g(typeof t.ENVIRONMENT>"u","Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)"),g(typeof t.STACK_SIZE>"u","STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time"),g(typeof t.wasmMemory>"u","Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally"),g(typeof t.INITIAL_MEMORY>"u","Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically"),t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()();n0("preInit")}t.addFunction=ro,t.removeFunction=eo;var to=["writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromI64","readI53FromU64","convertI32PairToI53","convertI32PairToI53Checked","convertU32PairToI53","stackAlloc","getTempRet0","setTempRet0","zeroMemory","exitJS","withStackSave","strError","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","readEmAsmArgs","jstoi_q","getExecutableName","autoResumeAudioContext","getDynCaller","dynCall","handleException","keepRuntimeAlive","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","asyncLoad","asmjsMangle","mmapAlloc","HandleAllocator","getUniqueRunDependency","addRunDependency","removeRunDependency","addOnInit","addOnPostCtor","addOnPreMain","addOnExit","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","ccall","cwrap","intArrayFromString","intArrayToString","stringToAscii","stringToNewUTF8","stringToUTF8OnStack","writeArrayToMemory","registerKeyEventCallback","maybeCStringToJsString","findEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","jsStackTrace","getCallstack","convertPCtoSourceLocation","getEnvStrings","checkWasiClock","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","safeSetTimeout","setImmediateWrapped","safeRequestAnimationFrame","clearImmediateWrapped","registerPostMainLoop","registerPreMainLoop","getPromise","makePromise","idsToPromises","makePromiseCallback","findMatchingCatch","incrementUncaughtExceptionCount","decrementUncaughtExceptionCount","Browser_asyncPrepareDataCounter","isLeapYear","ydayFromDate","arraySum","addDays","getSocketFromFD","getSocketAddress","FS_createPreloadedFile","FS_preloadFile","FS_modeStringToFlags","FS_getMode","FS_fileDataToTypedArray","FS_stdin_getChar","FS_mkdirTree","_setNetworkCallback","heapObjectForWebGLType","toTypedArrayIndex","webgl_enable_ANGLE_instanced_arrays","webgl_enable_OES_vertex_array_object","webgl_enable_WEBGL_draw_buffers","webgl_enable_WEBGL_multi_draw","webgl_enable_EXT_polygon_offset_clamp","webgl_enable_EXT_clip_control","webgl_enable_WEBGL_polygon_mode","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","registerWebGlEventCallback","runAndAbortIfError","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","allocateUTF8","allocateUTF8OnStack","demangle","stackTrace","getNativeTypeSize","getFunctionArgsName","createJsInvokerSignature","getEnumValueType","PureVirtualError","registerInheritedInstance","unregisterInheritedInstance","getInheritedInstanceCount","getLiveInheritedInstances","enumReadValueFromPointer","installIndexedIterator","setDelayFunction","count_emval_handles"];to.forEach(v0);var no=["run","out","err","callMain","abort","wasmExports","writeStackCookie","checkStackCookie","INT53_MAX","INT53_MIN","bigintToI53Checked","HEAP8","HEAP16","HEAPU16","HEAP32","HEAPU32","HEAPF32","HEAPF64","HEAP64","HEAPU64","stackSave","stackRestore","createNamedFunction","ptrToString","getHeapMax","growMemory","ENV","ERRNO_CODES","DNS","Protocols","Sockets","timers","warnOnce","readEmAsmArgsArray","alignMemory","wasmTable","wasmMemory","noExitRuntime","addOnPreRun","addOnPostRun","convertJsFunctionToWasm","freeTableIndexes","functionsInTableMap","getEmptyTableSlot","updateTableMap","getFunctionAddress","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","AsciiToString","UTF16Decoder","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","JSEvents","specialHTMLTargets","findCanvasEventTarget","currentFullscreenStrategy","restoreOldWindowedStyle","UNWIND_CACHE","ExitStatus","flush_NO_FILESYSTEM","initRandomFill","randomFill","emSetImmediate","emClearImmediate_deps","emClearImmediate","promiseMap","uncaughtExceptionCount","exceptionCaught","ExceptionInfo","Browser","requestFullscreen","requestFullScreen","setCanvasSize","getUserMedia","createContext","getPreloadedImageData__data","wget","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","SYSCALLS","preloadPlugins","FS_stdin_getChar_buffer","FS_unlink","FS_createPath","FS_createDevice","FS_readFile","FS","FS_root","FS_mounts","FS_devices","FS_streams","FS_nextInode","FS_nameTable","FS_currentPath","FS_initialized","FS_ignorePermissions","FS_filesystems","FS_syncFSRequests","FS_lookupPath","FS_getPath","FS_hashName","FS_hashAddNode","FS_hashRemoveNode","FS_lookupNode","FS_createNode","FS_destroyNode","FS_isRoot","FS_isMountpoint","FS_isFile","FS_isDir","FS_isLink","FS_isChrdev","FS_isBlkdev","FS_isFIFO","FS_isSocket","FS_flagsToPermissionString","FS_nodePermissions","FS_mayLookup","FS_mayCreate","FS_mayDelete","FS_mayOpen","FS_checkOpExists","FS_nextfd","FS_getStreamChecked","FS_getStream","FS_createStream","FS_closeStream","FS_dupStream","FS_doSetAttr","FS_chrdev_stream_ops","FS_major","FS_minor","FS_makedev","FS_registerDevice","FS_getDevice","FS_getMounts","FS_syncfs","FS_mount","FS_unmount","FS_lookup","FS_mknod","FS_statfs","FS_statfsStream","FS_statfsNode","FS_create","FS_mkdir","FS_mkdev","FS_symlink","FS_rename","FS_rmdir","FS_readdir","FS_readlink","FS_stat","FS_fstat","FS_lstat","FS_doChmod","FS_chmod","FS_lchmod","FS_fchmod","FS_doChown","FS_chown","FS_lchown","FS_fchown","FS_doTruncate","FS_truncate","FS_ftruncate","FS_utime","FS_open","FS_close","FS_isClosed","FS_llseek","FS_read","FS_write","FS_mmap","FS_msync","FS_ioctl","FS_writeFile","FS_cwd","FS_chdir","FS_createDefaultDirectories","FS_createDefaultDevices","FS_createSpecialDirectories","FS_createStandardStreams","FS_staticInit","FS_init","FS_quit","FS_findObject","FS_analyzePath","FS_createFile","FS_createDataFile","FS_forceLoadFile","FS_createLazyFile","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","GL","AL","GLUT","EGL","GLEW","IDBStore","SDL","SDL_gfx","print","printErr","jstoi_s","InternalError","BindingError","throwInternalError","throwBindingError","registeredTypes","awaitingDependencies","typeDependencies","tupleRegistrations","structRegistrations","sharedRegisterType","whenDependentTypesAreResolved","getTypeName","getFunctionName","heap32VectorToArray","requireRegisteredType","usesDestructorStack","checkArgCount","getRequiredArgCount","createJsInvoker","UnboundTypeError","EmValType","EmValOptionalType","throwUnboundTypeError","ensureOverloadTable","exposePublicSymbol","replacePublicSymbol","embindRepr","registeredInstances","getBasestPointer","getInheritedInstance","registeredPointers","registerType","integerReadValueFromPointer","floatReadValueFromPointer","assertIntegerRange","readPointer","runDestructors","craftInvokerFunction","embind__requireFunction","genericPointerToWireType","constNoSmartPtrRawPointerToWireType","nonConstNoSmartPtrRawPointerToWireType","init_RegisteredPointer","RegisteredPointer","RegisteredPointer_fromWireType","runDestructor","releaseClassHandle","finalizationRegistry","detachFinalizer_deps","detachFinalizer","attachFinalizer","makeClassHandle","init_ClassHandle","ClassHandle","throwInstanceAlreadyDeleted","deletionQueue","flushPendingDeletes","delayFunction","RegisteredClass","shallowCopyInternalPointer","downcastPointer","upcastPointer","validateThis","char_0","char_9","makeLegalFunctionName","emval_freelist","emval_handles","emval_symbols","getStringOrSymbol","Emval","emval_returnValue","emval_lookupTypes","emval_methodCallers","emval_addMethodCaller"];no.forEach(D0);function io(){U("fetchSettings"),U("logReadFiles"),U("loadSplitModule"),U("onMalloc"),U("onRealloc"),U("onFree"),U("onSbrkGrow")}var On=K("___getTypeName"),zt=K("_malloc"),HA=K("_free"),so=t._MdnCom_ESCHandler=K("_MdnCom_ESCHandler"),ao=t._MdnCom_Free=K("_MdnCom_Free"),oo=t._MdnCom_RawRx=K("_MdnCom_RawRx"),Fo=t._MdnCom_CryptoSelfTest=K("_MdnCom_CryptoSelfTest"),vo=t._MdnCom_SetCompanionKeypair=K("_MdnCom_SetCompanionKeypair"),Eo=t._MdnCom_InitiateEcsHandshake=K("_MdnCom_InitiateEcsHandshake"),Bo=t._MdnCom_SetSecDebug=K("_MdnCom_SetSecDebug"),fo=t._MdnCom_GetEcsState=K("_MdnCom_GetEcsState"),Co=t._MdnCom_ResetEcs=K("_MdnCom_ResetEcs"),lo=t._MdnCom_RegisterEcsHandshakeCallback=K("_MdnCom_RegisterEcsHandshakeCallback"),co=t._MdnCom_Init=K("_MdnCom_Init"),Do=t._SendUtoQuery=K("_SendUtoQuery"),uo=t._SendUtoCmdExt=K("_SendUtoCmdExt"),Gn=K("_fflush"),Jt=K("_emscripten_stack_get_end"),bo=K("_emscripten_stack_get_base"),po=K("_strerror"),Un=K("_emscripten_stack_init"),jo=K("_emscripten_stack_get_free"),mo=K("__emscripten_stack_restore"),ho=K("__emscripten_stack_alloc"),go=K("_emscripten_stack_get_current"),yo=K("memory"),ko=K("__indirect_function_table"),At=K("wasmMemory"),gr=K("wasmTable");function _o(E){g(typeof E.__getTypeName<"u","missing Wasm export: __getTypeName"),g(typeof E.malloc<"u","missing Wasm export: malloc"),g(typeof E.free<"u","missing Wasm export: free"),g(typeof E.MdnCom_ESCHandler<"u","missing Wasm export: MdnCom_ESCHandler"),g(typeof E.MdnCom_Free<"u","missing Wasm export: MdnCom_Free"),g(typeof E.MdnCom_RawRx<"u","missing Wasm export: MdnCom_RawRx"),g(typeof E.MdnCom_CryptoSelfTest<"u","missing Wasm export: MdnCom_CryptoSelfTest"),g(typeof E.MdnCom_SetCompanionKeypair<"u","missing Wasm export: MdnCom_SetCompanionKeypair"),g(typeof E.MdnCom_InitiateEcsHandshake<"u","missing Wasm export: MdnCom_InitiateEcsHandshake"),g(typeof E.MdnCom_SetSecDebug<"u","missing Wasm export: MdnCom_SetSecDebug"),g(typeof E.MdnCom_GetEcsState<"u","missing Wasm export: MdnCom_GetEcsState"),g(typeof E.MdnCom_ResetEcs<"u","missing Wasm export: MdnCom_ResetEcs"),g(typeof E.MdnCom_RegisterEcsHandshakeCallback<"u","missing Wasm export: MdnCom_RegisterEcsHandshakeCallback"),g(typeof E.MdnCom_Init<"u","missing Wasm export: MdnCom_Init"),g(typeof E.SendUtoQuery<"u","missing Wasm export: SendUtoQuery"),g(typeof E.SendUtoCmdExt<"u","missing Wasm export: SendUtoCmdExt"),g(typeof E.fflush<"u","missing Wasm export: fflush"),g(typeof E.emscripten_stack_get_end<"u","missing Wasm export: emscripten_stack_get_end"),g(typeof E.emscripten_stack_get_base<"u","missing Wasm export: emscripten_stack_get_base"),g(typeof E.strerror<"u","missing Wasm export: strerror"),g(typeof E.emscripten_stack_init<"u","missing Wasm export: emscripten_stack_init"),g(typeof E.emscripten_stack_get_free<"u","missing Wasm export: emscripten_stack_get_free"),g(typeof E._emscripten_stack_restore<"u","missing Wasm export: _emscripten_stack_restore"),g(typeof E._emscripten_stack_alloc<"u","missing Wasm export: _emscripten_stack_alloc"),g(typeof E.emscripten_stack_get_current<"u","missing Wasm export: emscripten_stack_get_current"),g(typeof E.memory<"u","missing Wasm export: memory"),g(typeof E.__indirect_function_table<"u","missing Wasm export: __indirect_function_table"),On=O0("__getTypeName",1),zt=O0("malloc",1),HA=O0("free",1),so=t._MdnCom_ESCHandler=O0("MdnCom_ESCHandler",1),ao=t._MdnCom_Free=O0("MdnCom_Free",1),oo=t._MdnCom_RawRx=O0("MdnCom_RawRx",1),Fo=t._MdnCom_CryptoSelfTest=O0("MdnCom_CryptoSelfTest",0),vo=t._MdnCom_SetCompanionKeypair=O0("MdnCom_SetCompanionKeypair",2),Eo=t._MdnCom_InitiateEcsHandshake=O0("MdnCom_InitiateEcsHandshake",0),Bo=t._MdnCom_SetSecDebug=O0("MdnCom_SetSecDebug",1),fo=t._MdnCom_GetEcsState=O0("MdnCom_GetEcsState",0),Co=t._MdnCom_ResetEcs=O0("MdnCom_ResetEcs",0),lo=t._MdnCom_RegisterEcsHandshakeCallback=O0("MdnCom_RegisterEcsHandshakeCallback",1),co=t._MdnCom_Init=O0("MdnCom_Init",2),Do=t._SendUtoQuery=O0("SendUtoQuery",2),uo=t._SendUtoCmdExt=O0("SendUtoCmdExt",4),Gn=O0("fflush",1),Jt=E.emscripten_stack_get_end,bo=E.emscripten_stack_get_base,po=O0("strerror",1),Un=E.emscripten_stack_init,jo=E.emscripten_stack_get_free,mo=E._emscripten_stack_restore,ho=E._emscripten_stack_alloc,go=E.emscripten_stack_get_current,yo=At=E.memory,ko=gr=E.__indirect_function_table}var Hn={__cxa_throw:NA,_abort_js:Ce,_embind_finalize_value_object:cr,_embind_register_bigint:le,_embind_register_bool:a,_embind_register_class:pr,_embind_register_class_constructor:u,_embind_register_class_property:$,_embind_register_emval:T0,_embind_register_float:p0,_embind_register_function:fx,_embind_register_integer:yx,_embind_register_memory_view:$x,_embind_register_std_string:Lt,_embind_register_std_wstring:F,_embind_register_value_object:f,_embind_register_value_object_field:d,_embind_register_void:p,_emval_create_invoker:P0,_emval_decref:s0,_emval_get_module_property:j0,_emval_get_property:nx,_emval_incref:bx,_emval_invoke:Nx,_emval_new_cstring:Lx,_emval_run_destructors:Rx,emscripten_resize_heap:Cx,fd_close:Ua,fd_seek:Ja,fd_write:Va,random_get:Xa},Kn;function wo(){Un(),Y()}function $o(){wo(),fA();function E(){g(!Kn),Kn=!0,t.calledRun=!0,!w&&(CA(),_0?.(t),t.onRuntimeInitialized?.(),n0("onRuntimeInitialized"),g(!t._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),PA())}t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),E()},1)):E(),x0()}var Jr;Jr=await Be(),$o(),V0?o=t:o=new Promise((E,C)=>{_0=E,q0=C});for(let E of Object.keys(t))E in i||Object.defineProperty(i,E,{configurable:!0,get(){R0(`Access to module property ('${E}') is no longer possible via the module constructor argument; Instead, use the result of the module constructor.`)}});return o}})();typeof A=="object"&&typeof x=="object"?(x.exports=r,x.exports.default=r):typeof define=="function"&&define.amd&&define([],()=>r)}}),aa=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:yt,n:ht,Gx:Hs,Gy:Ks,a:dn,d:un,h:Xv}=aa,Ke=32,Yv=(...A)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...A)},mx=(A="")=>{let x=new Error(A);throw Yv(x,mx),x},Qv=A=>typeof A=="bigint",Zv=A=>typeof A=="string",xE=A=>A instanceof Uint8Array||ArrayBuffer.isView(A)&&A.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in A&&A.BYTES_PER_ELEMENT===1,Pr=(A,x,r="")=>{let e=xE(A),i=A?.length,o=x!==void 0;if(!e||o&&i!==x){let t=r&&`"${r}" `,B=o?` of length ${x}`:"",l=e?`length=${i}`:`type=${typeof A}`,D=t+"expected Uint8Array"+B+", got "+l;throw e?new RangeError(D):new TypeError(D)}return A},$t=A=>new Uint8Array(A),wn=A=>Uint8Array.from(A),oa=(A,x)=>A.toString(16).padStart(x,"0"),Fa=A=>Array.from(Pr(A)).map(x=>oa(x,2)).join(""),VA={_0:48,_9:57,A:65,F:70,a:97,f:102},zs=A=>{if(A>=VA._0&&A<=VA._9)return A-VA._0;if(A>=VA.A&&A<=VA.F)return A-(VA.A-10);if(A>=VA.a&&A<=VA.f)return A-(VA.a-10)},va=A=>{let x="hex invalid";if(!Zv(A))return mx(x);let r=A.length,e=r/2;if(r%2)return mx(x);let i=$t(e);for(let o=0,t=0;o<e;o++,t+=2){let B=zs(A.charCodeAt(t)),l=zs(A.charCodeAt(t+1));if(B===void 0||l===void 0)return mx(x);i[o]=B*16+l}return i},Ea=()=>globalThis?.crypto,AE=()=>Ea()?.subtle??mx("crypto.subtle must be defined, consider polyfill"),Ba=(...A)=>{let x=0;for(let i of A)x+=Pr(i).length;let r=$t(x),e=0;return A.forEach(i=>{r.set(i,e),e+=i.length}),r},rE=(A=Ke)=>Ea().getRandomValues($t(A)),kt=BigInt,$r=(A,x,r,e="bad number: out of range")=>{if(!Qv(A))throw new TypeError(e);if(x<=A&&A<r)return A;throw new RangeError(e)},Q0=(A,x=yt)=>{let r=A%x;return r>=0n?r:x+r},Js=(1n<<255n)-1n,f0=A=>{A<0n&&mx("negative coordinate");let x=(A>>255n)*19n+(A&Js);return x=(x>>255n)*19n+(x&Js),x%yt},eE=A=>Q0(A,ht),tE=(A,x)=>{(A===0n||x<=0n)&&mx("no inverse n="+A+" mod="+x);let r=Q0(A,x),e=x,i=0n,o=1n,t=1n,B=0n;for(;r!==0n;){let l=e/r,D=e%r,j=i-t*l,b=o-B*l;e=r,r=D,i=t,o=B,t=j,B=b}return e===1n?Q0(i,x):mx("no inverse")},nE=A=>{let x=CE[A];return typeof x!="function"&&mx("hashes."+A+" not set"),x},iE=A=>Pr(A,64,"digest"),bn=A=>A instanceof ze?A:mx("Point expected"),gn=2n**256n,$n=class qr{constructor(x,r,e,i){C0(this,"X"),C0(this,"Y"),C0(this,"Z"),C0(this,"T");let o=gn;this.X=$r(x,0n,o),this.Y=$r(r,0n,o),this.Z=$r(e,1n,o),this.T=$r(i,0n,o),Object.freeze(this)}static CURVE(){return aa}static fromAffine(x){return new qr(x.x,x.y,1n,f0(x.x*x.y))}static fromBytes(x,r=!1){let e=un,i=wn(Pr(x,Ke)),o=x[31];i[31]=o&-129;let t=fa(i);$r(t,0n,r?gn:yt);let l=f0(t*t),D=Q0(l-1n),j=f0(e*l+1n),{isValid:b,value:k}=oE(D,j);b||mx("bad point: y not sqrt");let q=(k&1n)===1n,y=(o&128)!==0;return!r&&k===0n&&y&&mx("bad point: x==0, isLastByteOdd"),y!==q&&(k=Q0(-k)),new qr(k,t,1n,f0(k*t))}static fromHex(x,r){return qr.fromBytes(va(x),r)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let x=dn,r=un,e=this;if(e.is0())return mx("bad point: ZERO");let{X:i,Y:o,Z:t,T:B}=e,l=f0(i*i),D=f0(o*o),j=f0(t*t),b=f0(j*j),k=f0(l*x),q=f0(j*(k+D)),y=Q0(b+f0(r*f0(l*D)));if(q!==y)return mx("bad point: equation left != right (1)");let S=f0(i*o),T=f0(t*B);return S!==T?mx("bad point: equation left != right (2)"):this}equals(x){let{X:r,Y:e,Z:i}=this,{X:o,Y:t,Z:B}=bn(x),l=f0(r*B),D=f0(o*i),j=f0(e*B),b=f0(t*i);return l===D&&j===b}is0(){return this.equals(Sr)}negate(){return new qr(Q0(-this.X),this.Y,this.Z,Q0(-this.T))}double(){let{X:x,Y:r,Z:e}=this,i=dn,o=f0(x*x),t=f0(r*r),B=f0(2n*e*e),l=f0(i*o),D=Q0(x+r),j=Q0(f0(D*D)-o-t),b=Q0(l+t),k=Q0(b-B),q=Q0(l-t),y=f0(j*k),S=f0(b*q),T=f0(j*q),I=f0(k*b);return new qr(y,S,I,T)}add(x){let{X:r,Y:e,Z:i,T:o}=this,{X:t,Y:B,Z:l,T:D}=bn(x),j=dn,b=un,k=f0(r*t),q=f0(e*B),y=f0(f0(o*b)*D),S=f0(i*l),T=Q0(f0(Q0(r+e)*Q0(t+B))-k-q),I=Q0(S-y),L=Q0(S+y),R=Q0(q-f0(j*k)),e0=f0(T*I),w=f0(L*R),g=f0(T*R),O=f0(I*L);return new qr(e0,w,O,g)}subtract(x){return this.add(bn(x).negate())}multiply(x,r=!0){if(!r&&x===0n||($r(x,1n,ht),!r&&this.is0()))return Sr;if(x===1n)return this;if(this.equals(se))return uE(x).p;let e=Sr,i=se;for(let o=this;x>0n;o=o.double(),x>>=1n)x&1n?e=e.add(o):r&&(i=i.add(o));return e}multiplyUnsafe(x){return this.multiply(x,!1)}toAffine(){let{X:x,Y:r,Z:e}=this;if(this.equals(Sr))return{x:0n,y:1n};let i=tE(e,yt);f0(e*i)!==1n&&mx("invalid inverse");let o=f0(x*i),t=f0(r*i);return{x:o,y:t}}toBytes(){let{x,y:r}=this.toAffine(),e=sE(r);return e[31]|=x&1n?128:0,e}toHex(){return Fa(this.toBytes())}clearCofactor(){return this.multiply(kt(Xv),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let x=this.multiply(ht/2n,!1).double();return ht%2n&&(x=x.add(this)),x.is0()}};C0($n,"BASE");C0($n,"ZERO");var ze=$n,se=new ze(Hs,Ks,1n,Q0(Hs*Ks)),Sr=new ze(0n,1n,1n,0n);ze.BASE=se;ze.ZERO=Sr;var sE=A=>va(oa($r(A,0n,gn),64)).reverse(),fa=A=>kt("0x"+Fa(wn(Pr(A)).reverse())),qA=(A,x)=>{let r=A;for(;x-- >0n;)r=f0(r*r);return r},aE=A=>{let x=f0(A*A),r=f0(x*A),e=f0(qA(r,2n)*r),i=f0(qA(e,1n)*A),o=f0(qA(i,5n)*i),t=f0(qA(o,10n)*o),B=f0(qA(t,20n)*t),l=f0(qA(B,40n)*B),D=f0(qA(l,80n)*l),j=f0(qA(D,80n)*l),b=f0(qA(j,10n)*o);return{pow_p_5_8:f0(qA(b,2n)*A),b2:r}},Vs=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,oE=(A,x)=>{let r=f0(x*f0(x*x)),e=f0(f0(r*r)*x),i=aE(f0(A*e)).pow_p_5_8,o=f0(A*f0(r*i)),t=f0(x*f0(o*o)),B=o,l=f0(o*Vs),D=t===A,j=t===Q0(-A),b=t===Q0(-A*Vs);return D&&(o=B),(j||b)&&(o=l),(Q0(o)&1n)===1n&&(o=Q0(-o)),{isValid:D||j,value:o}},FE=A=>eE(fa(A)),vE=(...A)=>Promise.resolve(nE("sha512Async")(Ba(...A))).then(iE),EE=A=>{let x=wn(A),r=x.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let e=x.slice(32,64),i=FE(r),o=se.multiply(i),t=o.toBytes();return{head:r,prefix:e,scalar:i,point:o,pointBytes:t}},BE=A=>vE(Pr(A,Ke)).then(EE),fE=A=>BE(A).then(x=>x.pointBytes),CE={sha512Async:async A=>{let x=AE(),r=Ba(A);return $t(await x.digest("SHA-512",r.buffer))},sha512:void 0},lE=A=>(A=A===void 0?rE(Ke):A,Pr(A,Ke)),cE=async A=>{let x=lE(A),r=await fE(x);return{secretKey:x,publicKey:r}},_t=8,DE=256,Ca=Math.ceil(DE/_t)+1,yn=2**(_t-1),dE=()=>{let A=[],x=se,r=x;for(let e=0;e<Ca;e++){r=x,A.push(r);for(let i=1;i<yn;i++)r=r.add(x),A.push(r);x=r.double()}return A},Ws=void 0,Xs=(A,x)=>{let r=x.negate();return A?r:x},uE=A=>{let x=Ws||(Ws=dE()),r=Sr,e=se,i=2**_t,o=i,t=kt(i-1),B=kt(_t);for(let l=0;l<Ca;l++){let D=Number(A&t);A>>=B,D>yn&&(D-=o,A+=1n);let j=l*yn,b=j,k=j+Math.abs(D)-1,q=l%2!==0,y=D<0;D===0?e=e.add(Xs(q,x[b])):r=r.add(Xs(y,x[k]))}return A!==0n&&mx("invalid wnaf"),{p:r,f:e}},bE=32,pE=64;async function Ys(){let{secretKey:A,publicKey:x}=await cE(),r=new Uint8Array(pE);return r.set(A,0),r.set(x,bE),{publicKey:x,privateKey:r}}var wt=class extends Error{constructor(A,x,r){super(r),C0(this,"httpStatus",A),C0(this,"code",x),this.name="CertApiError"}},Qs="/api/1/companion/cert",jE=10080*60*1e3,Zs=typeof __COMPANION_AUTH_DEV_PROXY__<"u"&&__COMPANION_AUTH_DEV_PROXY__;function la(A){let x="";for(let r of A)x+=String.fromCharCode(r);return btoa(x).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function mE(A,x){let r=A.apiHost.replace(/\/+$/,""),e=Zs?Qs:r+Qs,i={Authorization:`Bearer ${A.accessToken}`,"Content-Type":"application/json",Accept:"application/json"};Zs&&r&&(i["x-target-host"]=r);let o=await fetch(e,{method:"POST",headers:i,body:JSON.stringify({publicKey:la(x.publicKey),subject:x.subject})});if(!o.ok){let B="unknown_error",l=o.statusText||`Cert API request failed (${o.status})`;try{let D=await o.json();D.code&&(B=D.code),D.message&&(l=D.message)}catch{}throw new wt(o.status,B,l)}let t=await o.json();if(!t.certificate||!t.notAfter)throw new wt(o.status,"invalid_response","Cert API response missing certificate or notAfter");return{certificateBase64Url:t.certificate,notAfter:t.notAfter}}function hE(A,x=jE){let r=Date.parse(A);return Number.isFinite(r)?r-Date.now()>x:!1}var gE=Vv(Wv(),1),mt="[device-master]",ae={debug:(A,...x)=>console.debug(mt,A,...x),info:(A,...x)=>console.info(mt,A,...x),warn:(A,...x)=>console.warn(mt,A,...x),error:(A,...x)=>console.error(mt,A,...x)},xa={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},yE=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function kE(A,x=0){let r=~~x^-1;for(let e=0;e<A.length;e++)r=r>>>8^yE[(r^A[e])&255];return(r^-1)>>>0}var Aa=Date.UTC(1999,11,31,0,0,0);function ra(A,x,r=" "){let e=""+A,i=Math.max(0,Math.abs(x)-e.length),o=r.repeat(i);return x<0?e+o:o+e}function _r(A,x){return("0000000000000000"+A.toString(16)).substr(-x)}function ea(A){if(A instanceof Uint8Array)return A;if(A instanceof ArrayBuffer)return new Uint8Array(A);if(A&&Object.hasOwn(A,"type")&&A.type==="Buffer"&&Object.hasOwn(A,"data")&&A.data instanceof Array)return Uint8Array.from(A.data);if(A.buffer)return new Uint8Array(A.buffer,A.byteOffset,A.byteLength);throw new Error("can not convert value to Uint8Array")}var nc=new Uint8Array([0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64]),ic=new Uint8Array([0,192,193,1,195,3,2,194,198,6,7,199,5,197,196,4,204,12,13,205,15,207,206,14,10,202,203,11,201,9,8,200,216,24,25,217,27,219,218,26,30,222,223,31,221,29,28,220,20,212,213,21,215,23,22,214,210,18,19,211,17,209,208,16,240,48,49,241,51,243,242,50,54,246,247,55,245,53,52,244,60,252,253,61,255,63,62,254,250,58,59,251,57,249,248,56,40,232,233,41,235,43,42,234,238,46,47,239,45,237,236,44,228,36,37,229,39,231,230,38,34,226,227,35,225,33,32,224,160,96,97,161,99,163,162,98,102,166,167,103,165,101,100,164,108,172,173,109,175,111,110,174,170,106,107,171,105,169,168,104,120,184,185,121,187,123,122,186,190,126,127,191,125,189,188,124,180,116,117,181,119,183,182,118,114,178,179,115,177,113,112,176,80,144,145,81,147,83,82,146,150,86,87,151,85,149,148,84,156,92,93,157,95,159,158,94,90,154,155,91,153,89,88,152,136,72,73,137,75,139,138,74,78,142,143,79,141,77,76,140,68,132,133,69,135,71,70,134,130,66,67,131,65,129,128,64]);var _E=[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376],wE=new Map(_E.map((A,x)=>[A,128+x]));function $E(A){return A<=127||A>=160&&A<=255?A:wE.get(A)??63}var qE="uto_script.dat";var Da=(A=>(A[A.DEVINFO=0]="DEVINFO",A[A.STAMPS=1]="STAMPS",A[A.LIC_QUERY=2]="LIC_QUERY",A[A.FILEMAP=3]="FILEMAP",A[A.MNTCFG=4]="MNTCFG",A[A.MDNCFG=5]="MDNCFG",A[A.CONTEXT=128]="CONTEXT",A[A.ALERTS=4294901767]="ALERTS",A[A.HISTDATA0=26368]="HISTDATA0",A[A.LOG=26375]="LOG",A[A.SYSCFG=26378]="SYSCFG",A[A.STATE=26389]="STATE",A[A.LOCALS=26402]="LOCALS",A[A.POS=26404]="POS",A[A.CTRLAMX=26405]="CTRLAMX",A[A.DYNPOS__=26406]="DYNPOS__",A[A.CONFIG0=26416]="CONFIG0",A[A.CONFIG1=26417]="CONFIG1",A[A.CONFIG2=26418]="CONFIG2",A[A.CONFIG3=26419]="CONFIG3",A[A.CONFIG4=26420]="CONFIG4",A[A.CONFIG5=26421]="CONFIG5",A[A.CONFIG6=26422]="CONFIG6",A[A.CONFIG7=26423]="CONFIG7",A[A.CONFIG8=26424]="CONFIG8",A[A.CONFIG9=26425]="CONFIG9",A[A.SYSOTP=26432]="SYSOTP",A[A.SYSFLASH=26433]="SYSFLASH",A[A.APPOTP=26434]="APPOTP",A[A.APPFLASH=26435]="APPFLASH",A[A.APPSTATE=26436]="APPSTATE",A[A.SYSINFO=26437]="SYSINFO",A[A.APPINFO=26438]="APPINFO",A[A.SYSSTATE=26439]="SYSSTATE",A[A.HISTDATA1=26528]="HISTDATA1",A[A.HISTDATA2=26529]="HISTDATA2",A[A.HISTDATA3=26530]="HISTDATA3",A[A.HISTDATA4=26531]="HISTDATA4",A[A.HISTDATA5=26532]="HISTDATA5",A[A.HISTDATA6=26533]="HISTDATA6",A[A.HISTDATA7=26534]="HISTDATA7",A[A.HISTDATA8=26535]="HISTDATA8",A[A.HISTDATA9=26536]="HISTDATA9",A[A.HISTDATA_RAW=26623]="HISTDATA_RAW",A[A.CONFIGA=4294928218]="CONFIGA",A[A.CONFIGB=4294928219]="CONFIGB",A[A.CONFIGC=4294928220]="CONFIGC",A))(Da||{});var qn=(A=>(A[A.off=0]="off",A[A.pawn=2]="pawn",A))(qn||{});var ta={config0:26416,config1:26417,config2:26418,config3:26419,config4:26420,config5:26421,config6:26422,config7:26423,config8:26424,config9:26425,histdata0:26368,histdata1:26528,histdata2:26529,histdata3:26530,histdata4:26531,histdata5:26532,histdata6:26533,histdata7:26534,histdata8:26535,histdata9:26536},SE=class{constructor(){}resultToString(A){A|=0;let x=A&256?"+DISC":"";switch(A&255){case 0:return"OK"+x;case 1:return"E_TAG"+x;case 2:return"E_DLEN"+x;case 3:return"E_DATA"+x;case 4:return"E_STAMP"+x;case 5:return"E_EOD"+x;case 6:return"E_CMD"+x;case 7:return"E_CMDDENIED"+x;case 8:return"E_FULL"+x;case 9:return"E_NOTSUPPORTED"+x;case 10:return"E_OLDDATA"+x;case 11:return"E_STORAGE"+x;case 12:return"E_STORAGE"+x}return"E_0x"+_r(A,4)+x}commandToString(A){switch(A|=0,A){case 0:return"COMMAND_RESULT";case 1:return"COMMAND_QUERY";case 2:return"COMMAND_DEL";case 3:return"COMMAND_DATA";case 4:return"COMMAND_UNS_DATA";case 5:return"COMMAND_LIVE_DATA";case 7:return"COMMAND_FILE_LIST";case 8:return"COMMAND_FILE_RETR";case 9:return"COMMAND_FILE_STOR";case 10:return"COMMAND_FILE_DELE";case 11:return"COMMAND_SET_VALUE"}return"COMMAND_0x"+_r(A,2)}tagToString(A){A|=0;let x=Object.entries(Da).find(([,r])=>r===A);return x?"TAG_"+x[0]:"TAG_0x"+_r(A,4)}containerIdToTag(A,x){let r=ta[A]||null;return r&&x&&A.startsWith("histdata")?26623:r}containerIdOf(A){let x=Object.entries(ta).find(([,r])=>r===A.wTag);if(x)return x[0];if(A.wTag===26623){if(!A.data||!A.data.byteLength)return null;let r=A.data.getUint8(0);return r===32?"alerts":r>=0&&r<=9?`histdata${r}`:null}return null}formatSerialNumber(A,x="-"){return A?A.substr(0,4)+x+A.substr(4,4)+x+A.substr(8,4)+x+A.substr(12):"(none)"}decodeUplinkState(A){let x={FAILED:1,ACTIVE:2,STARTED:4,RETRY:8,WAKEUPABLE:16,EXTSIM:32,DISABLED:64,WAKEUP:256,POSUPDATE_ACTIVE:512},r=!!(A&x.WAKEUPABLE),e=[];A&x.POSUPDATE_ACTIVE?e=["locating",!1]:A&x.RETRY?e=["retry",!1]:A&x.STARTED?e=["dialing",!1]:A&x.ACTIVE?e=["active",!1]:A&x.FAILED?e=["failed",r]:A&x.DISABLED?e=["disabled",!1]:e=["offline",r];let i=x.WAKEUPABLE|x.RETRY|x.STARTED|x.ACTIVE|x.POSUPDATE_ACTIVE|x.FAILED|x.DISABLED|x.EXTSIM;return{signal:e[0],wakeupAble:e[1],path:A&x.EXTSIM?"xsim ":"isim ",txStateUnknown:A&~i}}stamp40ToMS(A){let x=Math.trunc(A/256),r=A&255;return Math.round(x*1e3+1e3*r/256)+Aa}msToStamp40(A){let x=(A-Aa)/1e3,r=Math.trunc(x),e=Math.round((x-r)*256);return r*256+e}stamp40ToDate(A){return new Date(this.stamp40ToMS(A))}utf8Unpack(A,x,r){let e=new TextDecoder("utf-8"),i=0;for(;i<r&&A.getUint8(x+i);)i++;let o=new Uint8Array(A.buffer,x,i);return e.decode(o)}ansiUnpack(A,x,r,e){try{let i=ea(A),o=new TextDecoder(e),t=0;for(;t<r&&i[x+t];)t++;return o.decode(i.slice(x,x+t))}catch(i){return console.log("?"+i.message,i),`ERR-unknown codepage "${e}"`}}cp1252Unpack(A,x,r){return this.ansiUnpack(A,x,r,"cp1252")}ansiPack(A,x,r,e){let i=ea(A);i.fill(0,x,x+r);for(let o=0;o<r&&o<e.length;o++)i[x+o]=$E(e.charCodeAt(o))}cp1252Pack(A,x,r,e){return this.ansiPack(A,x,r,e)}dataFrameNotNull(A){if(!A.data)throw new Error("UtoFrame does not have any data!")}decode_DEVINFO(A){this.dataFrameNotNull(A);let x=A.data,r=x.getUint16(0),e=x.getUint16(2),i=x.getUint16(4),o=x.getUint32(6),t=(_r(o,8)+_r(A.dwDevSN,8)).toUpperCase(),B=[];for(let l=0;l<(x.byteLength-10)/5;l++){let D=x.getUint8(10+l*5+2),j=x.getUint16(10+l*5);B.push({wTag:j,sTag:this.tagToString(j),size:x.getUint16(10+l*5+3),flags:{historic:!!(D&1),single:!(D&1),up:!!(D&2),down:!!(D&4),variableLength:!!(D&8),setValue:!!(D&16)}})}return{serialNumber:t,class:_r(r,4),firmwareVersion:`${ra(i>>8,2)}v${ra(i&255,3,"0")}`,flags:_r(e,4),utos:B}}decode_STAMPS(A){this.dataFrameNotNull(A);let x=A.data,r={contextId:x.getBigUint64(0,!0).toString(16).toUpperCase(),stamps:[]};for(let e=0;e<(x.byteLength-8)/5;e++)r.stamps.push(x.getUint32(8+e*5+0)*256+x.getUint8(8+e*5+4));return r}decode_CONTEXT(A){this.dataFrameNotNull(A);let x=A.data;return{id:x.getBigUint64(0,!0).toString(16).toUpperCase(),name:this.cp1252Unpack(x,8,50)}}encode_CONTEXT(A){let x=new Uint8Array(58),r=new DataView(x.buffer);return r.setBigUint64(0,BigInt("0x"+A.id),!0),this.cp1252Pack(r,8,50,A.name),x}decode_FILEMAP(A){this.dataFrameNotNull(A);let x=A.data,r=x.getUint16(13,!1),e={stamp:x.getUint32(0,!1)*256+x.getUint8(4),size:x.getUint32(5,!1),crc32:x.getUint32(9,!1),flags:{read:!!(r&1),write:!!(r&2),node:!!(r&4),system:!!(r&8),extra:r&-16},_flags:r,name:this.cp1252Unpack(x,15,x.byteLength-15)};if(e.flags?.extra)throw new Error("?UTO.decode_FILEMAP.unknown-file-flags."+e.flags.extra);return e}encode_FILEMAP(A){if(A.flags){let e=0;A.flags.extra&&(e|=A.flags.extra|0),A.flags.read&&(e|=1),A.flags.write&&(e|=2),A.flags.node&&(e|=4),A.flags.system&&(e|=8),A._flags=e}let x=new Uint8Array(15+A.name.length+1),r=new DataView(x.buffer);return r.setUint32(0,Math.trunc(A.stamp/256),!1),r.setUint8(4,A.stamp&255),r.setUint32(5,A.size,!1),r.setUint32(9,A.crc32,!1),r.setUint16(13,A._flags,!1),this.cp1252Pack(r,15,256,A.name),x}decode_RM2M_STATE(A){this.dataFrameNotNull(A);let x=A.data;return{rssi:x.getInt8(0),uplinkMode:x.getUint8(1),imei:this.cp1252Unpack(x,61,15),hardwareId:this.cp1252Unpack(x,96,50),sim:{id:this.cp1252Unpack(x,2,15),apn:this.cp1252Unpack(x,17,40),iccId:this.cp1252Unpack(x,76,20)},network:{mcc:x.getUint16(57),mnc:x.getUint16(59)}}}},SA=new SE,da=class{constructor(A="(unnamed)"){C0(this,"name"),C0(this,"_locked"),C0(this,"_chain"),this.name=A,this._locked=0,this._chain=[]}get islocked(){return!!this._locked}requestLock(){if(++this._locked!==1)return new Promise(A=>{this._chain.push(A)})}unlock(){--this._locked,this._chain.length&&this._chain.shift()()}async runExclusive(A){await this.requestLock();try{return await A()}finally{this.unlock()}}},na=new WeakMap;function ua(A,x){let e=(na.get(A)??Promise.resolve()).then(()=>PE(A,x));return na.set(A,e.catch(()=>{})),e}async function PE(A,x){A.interface&&A.interface==="ble"?await TE(async r=>{await A.write(r)},x,A.mtuSize??23):await A.write(x)}async function TE(A,x,r=23){let e=new Uint8Array(x),i=r-3;for(let o=0;o<e.byteLength;o+=i){let t=e.slice(o,o+i);await A(t.buffer)}}var ia=15e3,NE=500,IE=3,Sn=class gt extends ca.EventEmitter{constructor(x,r){super(),C0(this,"mdnComInterface"),C0(this,"receiveUto"),C0(this,"sendUto"),C0(this,"rxUto"),C0(this,"txStream"),C0(this,"SendUtoCmdExt"),C0(this,"utoPortLock"),C0(this,"transport"),C0(this,"logger"),C0(this,"ecsHandshakeResolver",null),C0(this,"disposeTransportListener",null),C0(this,"encrypted",!1),C0(this,"lastTxWrite",Promise.resolve()),this.mdnComInterface=null,this.receiveUto=null,this.sendUto=null,this.rxUto=null,this.txStream=null,this.SendUtoCmdExt=null,this.utoPortLock=new da("UTO-Port"),this.transport=x,this.logger=r??ae}async init(){if(this.mdnComInterface!==null)return;this.mdnComInterface=await(0,gE.default)({print:o=>{this.logger.info(`[mdnCom] ${o}`),this.emit("mdnCom",o)},printErr:o=>{this.logger.error(`[mdnCom] ${o}`),this.emit("mdnComError",o)}});let x=this.mdnComInterface.MdnCom_Init;this.receiveUto=this.mdnComInterface.MdnCom_RawRx,this.sendUto=this.mdnComInterface.MdnCom_SendUtoQuery,this.rxUto=this.mdnComInterface.MdnCom_GetRxUto,this.txStream=this.mdnComInterface.MdnCom_GetTxStream,this.SendUtoCmdExt=this.mdnComInterface.MdnCom_SendUtoCmdExt;let r=this.mdnComInterface.addFunction(()=>{if(this.txStream){let o=this.txStream();this.lastTxWrite=ua(this.transport,o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength))}},"v"),e=this.mdnComInterface.addFunction(()=>{if(this.rxUto){let o=this.rxUto(),t=this.parseUtoFrame(o);this.emit("utoFrame",t)}},"v");await x(r,e);let i=this.mdnComInterface.addFunction(o=>{if(this.logger.info(`[ecs] handshake event from WASM: result=${o} resolverPresent=${this.ecsHandshakeResolver!==null}`),this.ecsHandshakeResolver){let t=this.ecsHandshakeResolver;this.ecsHandshakeResolver=null,t({success:o===0,resultCode:o})}else this.logger.warn("[ecs] handshake event fired but no resolver registered \u2014 Promise will hang")},"vi");this.logger.info(`[ecs] registering handshake callback fn=${i}`),this.mdnComInterface.MdnCom_RegisterEcsHandshakeCallback(i),this.disposeTransportListener=this.transport.onData(async o=>{this.receiveUto&&await this.receiveUto(new Uint8Array(o))}),await this.requestDeviceInfo().catch()}async dispose(x){if(this.logger.info("[dispose] starting dispose"),this.encrypted){if(!x){let r=new Error("[dispose] encrypted session active but no AtCommandHandler provided \u2014 cannot send connection close");throw this.logger.error(r.message),r}try{this.logger.info("[dispose] requesting context for encrypted close");let r=await this.requestContext();r?(this.logger.info("[dispose] writing context back to device"),await this.writeContext(r)):this.logger.warn("[dispose] requestContext returned null \u2014 skipping writeContext")}catch(r){this.logger.error(`[dispose] error during context round trip: ${r}`)}try{this.logger.info("[dispose] sending connection close"),await x.sendConnectionClose(),this.logger.info("[dispose] connection close acknowledged")}catch(r){this.logger.error(`[dispose] error sending connection close: ${r}`)}finally{this.encrypted=!1,this.logger.info("[dispose] encrypted flag cleared")}}if(this.disposeTransportListener&&(this.logger.info("[dispose] removing transport data listener"),this.disposeTransportListener(),this.disposeTransportListener=null),this.mdnComInterface){this.logger.info("[dispose] resetting WASM ECS state");try{this.mdnComInterface.MdnCom_ResetEcs()}catch(r){this.logger.error(`[dispose] error resetting WASM ECS state: ${r}`)}this.ecsHandshakeResolver=null}this.logger.info("[dispose] dispose complete")}isInitialized(){if(!this.mdnComInterface)throw new Error('utoMaster not initialized. Have you called "init()"?')}parseUtoFrame(x){return{dwDevSN:x.vDevID_u32,bCmd:x.vCmd_u8,stamp:x.vStamp_s.u32SysTime*256+x.vStamp_s.u8SysTime,wTag:x.vTag_u16&255,wTagFull:x.vTag_u16,sTag:SA.resultToString(x.vTag_u16),_dbg:x.vDevID_u32.toString(16),bVersion:1,_dlen:x.vDLen_u16,bRes:x.vRes_u8,bSeq:x.vSeq_u8,data:x.vData_pu8.length?new DataView(x.vData_pu8.buffer,x.vData_pu8.byteOffset,x.vData_pu8.length):null}}get utoStampNow(){return{u32SysTime:Math.floor(Date.now()/1e3)-946598400,u8SysTime:0}}get utoStampNow40(){return this.utoStampNow.u32SysTime*256}async requestUto(x,r=0){await this.utoPortLock.requestLock();try{if(!this.sendUto)return null;let e=Math.trunc(r/256),i=r&255;return await this.sendWithRetry((o,t,B)=>{if(o.bCmd===0){let l=this.resultVerdict(o);l===5||l===0||l===4?t(null):B(o);return}if(o.wTagFull!==x)return B(o);t(o)},async()=>{this.sendUto(x,{u32SysTime:e,u8SysTime:i}),await this.lastTxWrite},{timeoutMessage:`[UtoMaster] requestUto: no response from device for tag=0x${x.toString(16)}`})}finally{this.utoPortLock.unlock()}}copyDataView(x){return new Uint8Array(x.buffer.slice(x.byteOffset,x.byteOffset+x.byteLength))}static resultCode(x){return{verdict:x.wTagFull&-257,disc:(x.wTagFull&256)!==0}}resultVerdict(x){let{verdict:r,disc:e}=gt.resultCode(x);return e&&(this.logger.warn(`[UtoMaster] device requested disconnect (RESULT 0x${x.wTagFull.toString(16).padStart(4,"0")})`),this.emit("deviceDisconnectRequested",x.wTagFull)),r}static concatChunks(x){let r=x.reduce((o,t)=>o+t.length,0),e=new Uint8Array(r),i=0;for(let o of x)e.set(o,i),i+=o.length;return e}sendWithRetry(x,r,e){let i=e?.timeoutMs??NE,o=e?.maxRetries??IE;return new Promise((t,B)=>{let l=0,D=!1,j=()=>{},b,k={resolve:y=>{D=!0,clearTimeout(b),this.removeListener("utoFrame",j),t(y)},reject:y=>{D=!0,clearTimeout(b),this.removeListener("utoFrame",j),B(y)}},q=async()=>{j=y=>x(y,k.resolve,k.reject),this.once("utoFrame",j);try{await r()}catch(y){if(D)return;this.removeListener("utoFrame",j),B(y);return}D||(b=setTimeout(()=>{if(this.removeListener("utoFrame",j),l>=o){B(new Error(e?.timeoutMessage??`[UtoMaster] no response from device after ${o} retries`));return}l++,this.logger.warn(`[UtoMaster] no response within ${i}ms, retrying (${l}/${o})`),q()},i))};q()})}createFrameIdleGuard(x,r,e){let i,o=()=>{i!==void 0&&(clearTimeout(i),i=void 0)};return{arm:()=>{o(),i=setTimeout(()=>{i=void 0,this.removeListener("utoFrame",x),e()},r)},clear:o}}async requestHistoricUtos(x,r,e,i=ia,o=0,t){return await this.utoPortLock.requestLock(),new Promise((B,l)=>{if(!this.sendUto)return B([]);let D=[],j=0,b=Promise.resolve(),k=T=>{if(q.arm(),T.bCmd===0){q.clear(),this.settleHistoricTransfer(T,D,t,b,B,l);return}if(T.wTagFull===x&&T.data&&(D.push({stamp40:T.stamp,data:this.copyDataView(T.data)}),e?.(++j),t&&o>0&&D.length>=o)){let I=D.splice(0);b=b.then(()=>t(I))}this.once("utoFrame",k)},q=this.createFrameIdleGuard(k,i,()=>l(new Error(`[UtoMaster] requestHistoricUtos timed out after ${i}ms (tag=0x${x.toString(16)}, ${j} records received)`)));this.once("utoFrame",k),q.arm();let y=Math.trunc(r/256),S=r&255;this.sendUto(x,{u32SysTime:y,u8SysTime:S})}).finally(()=>{this.utoPortLock.unlock()})}settleHistoricTransfer(x,r,e,i,o,t){let B=this.resultVerdict(x);if(!(B===5||B===0||B===4)){i.then(()=>t(x)).catch(t);return}let D=e&&r.length>0?r.splice(0):null;(D?i.then(()=>e(D)):i).then(()=>o(e?[]:r)).catch(t)}async requestFile(x,r,e=ia){return await this.utoPortLock.requestLock(),new Promise((i,o)=>{if(!this.SendUtoCmdExt)return i(new Uint8Array(0));let t=[],B=0,l=b=>{if(D.arm(),b.bCmd===0){D.clear();let k=this.resultVerdict(b);k===5||k===0?i(gt.concatChunks(t)):o(b);return}if(b.bCmd===3&&b.data){let k=this.copyDataView(b.data);t.push(k),B+=k.byteLength,r?.(B)}this.once("utoFrame",l)},D=this.createFrameIdleGuard(l,e,()=>o(new Error(`[UtoMaster] requestFile timed out after ${e}ms (file="${x}", ${B} bytes received)`)));this.once("utoFrame",l),D.arm();let j=new Uint8Array(x.length+1);for(let b=0;b<x.length;b++)j[b]=x.charCodeAt(b)&255;this.SendUtoCmdExt(8,3,{u32SysTime:0,u8SysTime:0},j)}).finally(()=>{this.utoPortLock.unlock()})}async deleteFile(x){let r=new Uint8Array(x.length+1);for(let e=0;e<x.length;e++)r[e]=x.charCodeAt(e)&255;await this.sendUTOCmdExt(10,3,r,0)}async sendSetValue(x,r,e){this.isInitialized();let i=new Uint8Array(r.length);SA.cp1252Pack(i,0,r.length,r);try{return await this.sendUTOCmdExt(11,x,i,e),{outcome:"ok",resultCode:0}}catch(o){let t=o;if(t&&t.bCmd===0&&typeof t.wTagFull=="number"){let{verdict:B}=gt.resultCode(t),l=t.wTagFull;return B===4?{outcome:"stamp",resultCode:l}:B===7||B===9?{outcome:"denied",resultCode:l}:{outcome:"error",resultCode:l}}return this.logger.error(`[UtoMaster] sendSetValue transport error tag=0x${x.toString(16)}: ${o}`),{outcome:"error"}}}async requestDeviceInfo(){let x=await this.requestUto(0,this.utoStampNow40);return x?SA.decode_DEVINFO(x):null}async requestContext(){let x=await this.requestUto(128,this.utoStampNow40);return x?SA.decode_CONTEXT(x):null}async writeContext(x){await this.sendUTOCmdExt(3,128,SA.encode_CONTEXT(x))}async requestFileList(x){return await this.utoPortLock.requestLock(),new Promise((r,e)=>{if(!this.SendUtoCmdExt)return r({});let i={},o=t=>this.handleFileListFrame(t,i,x,r,e,o);this.once("utoFrame",o),this.SendUtoCmdExt(7,3,{u32SysTime:0,u8SysTime:0},new Uint8Array(0))}).finally(()=>{this.utoPortLock.unlock()})}handleFileListFrame(x,r,e,i,o,t){if(x.bCmd===0){let B=this.resultVerdict(x);B===5||B===0?i(e?r[e]?{[e]:r[e]}:{}:r):o(x);return}try{let B=SA.decode_FILEMAP(x);r[B.name]=B}catch(B){o(B);return}this.once("utoFrame",t)}async requestStamps(){let x=await this.requestUto(1,this.utoStampNow40);return x?SA.decode_STAMPS(x):null}async sendFile(x,r,e,i){let o=r;x===2&&(o=new Uint8Array(r.length+1),o.set(new Uint8Array(r),1),o[0]=x);let t={name:i??qE,stamp:e?SA.msToStamp40(e):this.utoStampNow.u32SysTime,size:o.length,_flags:11,crc32:kE(o)},B=SA.encode_FILEMAP(t);if(!await this.sendUTOCmdExt(9,3,B,0))for(let j=0;j<o.length;j+=2048){let b=Math.min(2048,o.byteLength-j),k=new Uint8Array(o.buffer,o.byteOffset+j,b);await this.sendUTOCmdExt(3,3,k,j*256);let y=(j+b)/o.byteLength*100;this.emit("installing",y.toFixed(0))}this.emit("installing",null)}async sendUTOCmdExt(x,r,e,i){await this.utoPortLock.requestLock();try{if(!this.SendUtoCmdExt)return null;let o=i??this.utoStampNow.u32SysTime,t=Math.trunc(o/256),B=o&255;return await this.sendWithRetry((l,D,j)=>{if(l.bCmd!==0){j(l);return}this.resultVerdict(l)===0?D(null):j(l)},async()=>{this.SendUtoCmdExt(x,r,{u32SysTime:t,u8SysTime:B},e),await this.lastTxWrite},{timeoutMessage:`[UtoMaster] sendUTOCmdExt: no response from device for cmd=${x} tag=0x${r.toString(16)}`})}finally{this.utoPortLock.unlock()}}async sendUTOData(x,r,e){return this.sendUTOCmdExt(3,x,r,e)}packOtpFlashString(x){let r=new Uint8Array(1024);return SA.cp1252Pack(r,0,1024,x),r}async writeAppOtp(x){await this.sendUTOData(26434,this.packOtpFlashString(x))}async writeAppFlash(x){await this.sendUTOData(26435,this.packOtpFlashString(x))}async writeSysOtp(x){await this.sendUTOData(26432,this.packOtpFlashString(x))}async writeSysFlash(x){await this.sendUTOData(26433,this.packOtpFlashString(x))}async initiateEcsHandshake(x){if(this.isInitialized(),x.companionPublicKey.length!==32)throw new Error(`companionPublicKey must be 32 bytes, got ${x.companionPublicKey.length}`);if(x.companionPrivateKey.length!==32&&x.companionPrivateKey.length!==64)throw new Error(`companionPrivateKey must be 32 bytes (seed) or 64 bytes (seed||public), got ${x.companionPrivateKey.length}`);let r=x.companionPublicKey.slice(0,32),e=x.companionPrivateKey.slice(0,32);this.logger.info(`[ecs] initiateEcsHandshake: pub.len=${r.length} seed.len=${e.length} state(pre)=${this.mdnComInterface.MdnCom_GetEcsState?.()}`);let i=this.mdnComInterface.MdnCom_SetCompanionKeypair(r,e);return this.logger.info(`[ecs] MdnCom_SetCompanionKeypair returned ${i}`),i<0?{success:!1,resultCode:i}:new Promise((o,t)=>{if(x.signal?.aborted){t(new Error("Operation aborted"));return}let B=()=>{this.ecsHandshakeResolver&&(this.logger.warn("[ecs] abort signal fired \u2014 resetting WASM state"),this.ecsHandshakeResolver=null,this.mdnComInterface.MdnCom_ResetEcs(),t(new Error("Operation aborted")))};x.signal?.addEventListener("abort",B,{once:!0}),this.ecsHandshakeResolver=D=>{this.logger.info(`[ecs] resolver invoked: result=${JSON.stringify(D)}`),x.signal?.removeEventListener("abort",B),D.success&&(this.encrypted=!0),o(D)},this.logger.info("[ecs] calling MdnCom_InitiateEcsHandshake()");let l=this.mdnComInterface.MdnCom_InitiateEcsHandshake();this.logger.info(`[ecs] MdnCom_InitiateEcsHandshake returned ${l} state(post)=${this.mdnComInterface.MdnCom_GetEcsState?.()}`),l<0?(this.ecsHandshakeResolver=null,x.signal?.removeEventListener("abort",B),o({success:!1,resultCode:l})):this.logger.info("[ecs] awaiting device INIT response via MdnCom_RawRx ...")})}resetEcs(){this.isInitialized(),this.mdnComInterface.MdnCom_ResetEcs(),this.ecsHandshakeResolver=null}};var He={NAN:1,OF:2,UF:3,OL:4,SC:5};var sc=[["NAN",He.NAN],["OF",He.OF],["UF",He.UF],["OL",He.OL],["SC",He.SC]];var ME=5e3,ma=class ha extends ja.EventEmitter{constructor(x=ae){super(),C0(this,"logger",x),C0(this,"ws",null),C0(this,"bridgeTransport",null),C0(this,"bridgeSignal"),C0(this,"bridgeResolve",null),C0(this,"bridgeReject",null),C0(this,"serverMessageCount",0),C0(this,"settled",!1),C0(this,"abortHandler",null),C0(this,"connectTimeout"),C0(this,"writeQueue",[]),C0(this,"isProcessingQueue",!1),C0(this,"queueAborted",!1),C0(this,"queueDrainPromise",Promise.resolve()),C0(this,"transportUnsubscribe",null)}static buildSyncUrl(x,r){return`wss://${x}/uto/1/sync/${r}`}resetBridgeState(){this.serverMessageCount=0,this.settled=!1,this.abortHandler=null,this.connectTimeout=void 0,this.writeQueue=[],this.isProcessingQueue=!1,this.queueAborted=!1,this.queueDrainPromise=Promise.resolve(),this.bridgeResolve=null,this.bridgeReject=null,this.bridgeTransport=null,this.bridgeSignal=void 0,this.transportUnsubscribe=null}async processWriteQueue(){if(!this.isProcessingQueue){for(this.isProcessingQueue=!0;this.writeQueue.length>0&&!this.queueAborted;){let x=this.writeQueue.shift();try{await ua(this.bridgeTransport,x)}catch(r){let e=r instanceof Error?r.message:String(r);this.logger.error(`Error writing to transport: ${e}`)}}this.isProcessingQueue=!1}}cleanup(){this.transportUnsubscribe&&(this.transportUnsubscribe(),this.transportUnsubscribe=null),this.abortHandler&&this.bridgeSignal&&(this.bridgeSignal.removeEventListener("abort",this.abortHandler),this.abortHandler=null),this.connectTimeout!==void 0&&(clearTimeout(this.connectTimeout),this.connectTimeout=void 0),this.ws=null}settle(x,r){this.settled||(this.settled=!0,this.cleanup(),x==="resolve"?this.bridgeResolve?.({serverMessageCount:this.serverMessageCount}):this.bridgeReject?.(r))}attachWebSocketHandlers(x,r){let e=i=>{x.readyState===WebSocket.OPEN&&!this.bridgeSignal?.aborted&&!this.settled&&x.send(i)};this.abortHandler=()=>{this.logger.info("WebSocket bridge aborted"),this.queueAborted=!0,this.writeQueue.length=0,(x.readyState===WebSocket.OPEN||x.readyState===WebSocket.CONNECTING)&&x.close(),this.settle("reject",new Error("Operation aborted"))},this.bridgeSignal&&this.bridgeSignal.addEventListener("abort",this.abortHandler),x.onopen=()=>{this.connectTimeout!==void 0&&(clearTimeout(this.connectTimeout),this.connectTimeout=void 0),this.logger.info(`WebSocket connected to ${r}`),this.transportUnsubscribe=this.bridgeTransport.onData(e),this.emit("wsConnected")},x.onmessage=i=>{this.serverMessageCount++,this.emit("serverMessage",this.serverMessageCount),!(this.bridgeSignal?.aborted||this.settled)&&(this.writeQueue.push(i.data),this.isProcessingQueue||(this.queueDrainPromise=this.processWriteQueue()))},x.onclose=i=>{this.logger.info(`WebSocket closed (server=${r}, code=${i.code}, messages=${this.serverMessageCount})`),this.emit("wsClosed",i.code,i.reason),this.queueDrainPromise.then(()=>this.settle("resolve")).catch(()=>this.settle("resolve"))},x.onerror=i=>{this.logger.error(`WebSocket error (server=${r})`),this.emit("wsError",i),this.queueAborted=!0,this.writeQueue.length=0,this.settle("reject",new Error("WebSocket error"))}}async bridge(x,r,e,i){return new Promise((o,t)=>{if(i?.aborted){t(new Error("Operation aborted"));return}this.resetBridgeState(),this.bridgeTransport=x,this.bridgeSignal=i,this.bridgeResolve=o,this.bridgeReject=t;let B=ha.buildSyncUrl(r,e);this.logger.info(`Opening WebSocket: ${B}`);let l=new WebSocket(B);l.binaryType="arraybuffer",this.ws=l,this.connectTimeout=setTimeout(()=>{l.readyState===WebSocket.CONNECTING&&(this.logger.error("WebSocket connection timeout"),l.close(),this.settle("reject",new Error("WebSocket connection timeout")))},ME),this.attachWebSocketHandlers(l,r)})}close(){this.ws&&this.ws.readyState===WebSocket.OPEN&&this.ws.close()}},LE="https://lic.mydatanet.at/api/2/";async function RE(A,x=LE){let r=`${x}devices/${A}/assignment`,e=await fetch(r);if(!e.ok)throw new Error(`Failed to get device assignment: ${e.status} ${e.statusText}`);return e.json()}var OE=class extends pa.EventEmitter{constructor(A=ae){super(),C0(this,"logger",A)}async execute(A,x,r,e){let i=r;i||(this.logger.info("[LegacySync] No serverUrl provided, resolving via device assignment..."),this.emit("syncPhase",{phase:"resolving-server"}),i=(await RE(x)).server_url,this.logger.info("[LegacySync] Resolved server URL: "+i)),this.logger.info("[LegacySync] Starting legacy sync (server="+i+")");let o=new ma(this.logger);o.on("wsConnected",()=>this.emit("wsConnected")),o.on("wsClosed",(B,l)=>this.emit("wsClosed",B,l)),o.on("wsError",B=>this.emit("wsError",B)),o.on("serverMessage",B=>this.emit("serverMessage",B));let t=await o.bridge(A,i,x,e);return this.logger.info("[LegacySync] Legacy sync completed (serverMessages="+t.serverMessageCount+")"),{serverMessageCount:t.serverMessageCount}}},ya="Operation aborted";function GE(A){return A instanceof Error?A.message:String(A)}function pn(A){if(A?.aborted)throw new Error(ya)}var UE=class extends ga.EventEmitter{constructor(A,x=ae){super(),C0(this,"atHandler",A),C0(this,"logger",x)}async execute(A,x,r,e){this.logger.info("Starting debug-enabled sync");let i=[{name:"mnt",queryServer:t=>this.atHandler.queryMntServerConfig(t),initiateSync:t=>this.atHandler.initiateMntSync(t)},{name:"mdn",queryServer:t=>this.atHandler.queryMdnServerConfig(t),initiateSync:t=>this.atHandler.initiateMdnSync(t)}],o={};for(let t of i)try{o[t.name]=await this.runSyncPhase(t,A,x,e)}catch(B){if(e?.aborted)throw new Error(ya);let l=`${t.name.toUpperCase()} sync phase failed: ${GE(B)}`;throw this.logger.error(l),new Error(l)}return this.logger.info(`Debug sync completed (mntMessages=${o.mnt}, mdnMessages=${o.mdn})`),{mntServerMessageCount:o.mnt,mdnServerMessageCount:o.mdn}}async runSyncPhase(A,x,r,e){pn(e);let i=A.name.toUpperCase();this.emit("syncPhase",{phase:A.name}),this.logger.info(`Phase: Querying ${i} server configuration`);let o=await A.queryServer(e);this.logger.info(`${i} server domain: ${o}`),pn(e),await A.initiateSync(e),pn(e);let t=await this.syncWithServer(x,o,r,e);return this.logger.info(`${i} phase completed (serverMessages=${t.serverMessageCount})`),t.serverMessageCount}async syncWithServer(A,x,r,e){let i=new ma(this.logger),o=!1;i.on("wsConnected",()=>this.emit("wsConnected"));let t=this.atHandler.createConCloseMonitor(()=>{o=!0,this.logger.info("Device initiated close (+CONCLOSE), closing WebSocket"),i.close()});try{let B=await i.bridge(A,x,r,e);return o?this.logger.info("Connection closed by device (+CONCLOSE)"):(this.logger.info("Connection closed by server, sending +CONCLOSE to device"),await this.atHandler.sendConnectionClose(e)),B}finally{t()}}},ka=class extends ba.EventEmitter{constructor(A,x,r=ae){super(),C0(this,"syncTransport",A),C0(this,"logger",r),C0(this,"atHandler"),this.atHandler=x??null}async sync(A){let x=this.atHandler?"debug":"legacy";this.emit("syncStart",{mode:x});try{if(this.atHandler)try{return this.emit("syncPhase",{phase:"debug-sync"}),await this.syncWithDebug(A)}catch(r){return this.logger.warn("[SyncManager] Debug sync failed, falling back to legacy sync: "+(r instanceof Error?r.message:String(r))),this.emit("syncPhase",{phase:"debug-fallback-legacy"}),await this.syncLegacy(A)}return this.emit("syncPhase",{phase:"legacy"}),await this.syncLegacy(A)}catch(r){throw this.emit("syncError",r),r}}async syncLegacy(A){let x=new OE(this.logger);x.on("syncPhase",i=>this.emit("syncPhase",i));let e={mode:"legacy",serverMessageCount:(await x.execute(this.syncTransport,A.serialNumber,A.serverUrl,A.signal)).serverMessageCount};return this.emit("syncComplete",e),e}async syncWithDebug(A){let x=new UE(this.atHandler,this.logger);x.on("syncPhase",i=>this.emit("syncPhase",i));let r=await x.execute(this.syncTransport,A.serialNumber,A.serverUrl??"",A.signal),e={mode:"debug",serverMessageCount:r.mntServerMessageCount+r.mdnServerMessageCount,mntServerMessageCount:r.mntServerMessageCount,mdnServerMessageCount:r.mdnServerMessageCount};return this.emit("syncComplete",e),e}dispose(){}},WA={MNT_CFG:"at+mntcfg?",MDN_CFG:"at+mdncfg?",MNT_SYNC:"at+mntsync",MDN_SYNC:"at+mdnsync",CON_CLOSE:"at+conclose",APP_GET_METADATA:"AT+APP=GETMETADATA",APP_GET_DATAVALUE:"AT+APP=GETDATAVALUE",APP_TRIG_MEASURE:"AT+APP=TRIGMEASURE",APP_TRIG_MEASURE_TEST:"AT+APP=TRIGMEASURE=?",ATI:"ati",RM2M_STATE:"at+rm2mstate?",TX:"at+tx",TX_MAINTENANCE:"at+tx=4",TX_GSM_POSITION:"at+tx=1",TX_MODE_TRIGGERED:"at+txmode=0",TX_MODE_WAKEUP:"at+txmode=1",TX_MODE_ONLINE:"at+txmode=2",COMPANION_CERT:"AT+COMPCERT",COMPANION_CERT_TEST:"AT+COMPCERT=?"},Sx={OK:"OK",ERROR:"ERROR",SYNC_START:"+SYNC START",MEASURED:"+MEASURED",CON_CLOSE:"+CONCLOSE",MNT_CFG_PREFIX:"+MNTCFG",MDN_CFG_PREFIX:"+MDNCFG",RM2M_STATE:"+RM2MSTATE",ERROR_PIN_REQUIRED:"ERROR PIN REQUIRED",ERROR_NO_DATA:"ERROR NO DATA",COMPCERT_ERROR:/\+COMPCERT ERROR:\s*(\d+)/},Ux=1e4;var HE=/(?:ERROR PIN REQUIRED|ERROR NO DATA|ERROR|OK)\r\n/;function KE(){return{buffer:"",closedByDevice:!1,reset(){this.buffer="",this.closedByDevice=!1}}}var wr="Operation aborted",BA=class extends Error{constructor(A="AT command handler was disposed"){super(A),this.name="AtHandlerDisposedError"}},zE=class extends Error{constructor(A="Device returned ERROR response"){super(A),this.name="AtDeviceError"}},wa=class extends _a.EventEmitter{constructor(A,x=ae){super(),C0(this,"transport",A),C0(this,"logger",x),C0(this,"mutex",new da("AtCommandHandler")),C0(this,"bufferState",KE()),C0(this,"responseCallback",null),C0(this,"decoder",new TextDecoder),C0(this,"dataHandler"),C0(this,"disposeTransportListener"),C0(this,"isDisposed",!1),C0(this,"activeAbort",null),C0(this,"session"),this.dataHandler=r=>this.handleIncomingData(r),this.disposeTransportListener=this.transport.onData(this.dataHandler),this.session={sendAndWait:(r,e,i=Ux,o)=>this.executeSendAndWait(r,e,i,o),sendRaw:(r,e=Ux)=>this.executeSendRaw(r,e),queryMntServerConfig:r=>this.executeQueryConfig(WA.MNT_CFG,Sx.MNT_CFG_PREFIX,r),queryMdnServerConfig:r=>this.executeQueryConfig(WA.MDN_CFG,Sx.MDN_CFG_PREFIX,r),initiateMntSync:r=>this.executeInitiateMntSync(r),initiateMdnSync:r=>this.executeInitiateMdnSync(r),sendCompanionCert:(r,e)=>this.executeSendCompanionCert(r,e),queryCompanionCertSupport:r=>this.executeQueryCompanionCertSupport(r),sendConnectionClose:r=>this.executeSendConnectionClose(r)}}get isBusy(){return this.mutex.islocked}get disposed(){return this.isDisposed}async withAtLock(A){await this.mutex.requestLock();try{if(this.isDisposed)throw new BA;return await A(this.session)}finally{this.mutex.unlock()}}handleIncomingData(A){let x=this.decoder.decode(A);this.bufferState.buffer+=x,this.emit("data",x),this.responseCallback&&this.responseCallback(this.bufferState.buffer),!this.responseCallback&&this.bufferState.buffer.length>1e3&&(this.bufferState.buffer=this.bufferState.buffer.slice(-500))}encodeCommand(A){let x=new Uint8Array(A.length+2);for(let r=0;r<A.length;r++)x[r]=A.charCodeAt(r);return x[A.length]=10,x[A.length+1]=13,x.buffer}makeCleanup(A,x,r){return()=>{this.responseCallback=null,this.activeAbort=null,clearTimeout(A),x&&r&&x.removeEventListener("abort",r)}}makeResponseChecker(A,x,r,e){let i=A instanceof RegExp;return o=>{if(A!==Sx.ERROR&&o.includes(Sx.ERROR)){x(),e(new zE);return}let t=!1,B=o;if(i){let l=o.match(A);l&&(t=!0,B=l[0])}else t=o.includes(A);if(t){x(),r(B);return}o.length>500&&(this.bufferState.buffer=this.bufferState.buffer.slice(-250))}}executeSendAndWait(A,x,r,e){return new Promise((i,o)=>{if(this.isDisposed){o(new BA);return}if(e?.aborted){o(new Error(wr));return}A&&(this.bufferState.buffer="");let B=x instanceof RegExp?x.source:x,l={cleanup:()=>{}},D=setTimeout(()=>{l.cleanup(),o(new Error(`Timeout waiting for response: ${B}`))},r),j=()=>{l.cleanup(),o(new Error(wr))};l.cleanup=this.makeCleanup(D,e,j),e&&e.addEventListener("abort",j);let b=this.makeResponseChecker(x,l.cleanup,i,o);this.responseCallback=b,this.activeAbort=()=>{l.cleanup(),o(new BA)},!A&&this.bufferState.buffer&&b(this.bufferState.buffer),A&&(this.logger.info("TX: "+A),this.transport.write(this.encodeCommand(A)).catch(k=>{l.cleanup(),o(k)}))})}executeSendRaw(A,x){return new Promise((r,e)=>{if(this.isDisposed){e(new BA);return}this.bufferState.buffer="";let i=setTimeout(()=>{o(),e(new Error(`Timeout waiting for raw AT response to: ${A}`))},x),o=this.makeCleanup(i);this.activeAbort=()=>{o(),e(new BA)},this.responseCallback=t=>{HE.test(t)&&(o(),this.logger.info("RX: "+t.trim()),r(t))},this.logger.info("TX: "+A),this.transport.write(this.encodeCommand(A)).catch(t=>{o(),e(t)})})}executeQueryConfig(A,x,r){return new Promise((e,i)=>{if(this.isDisposed){i(new BA);return}if(r?.aborted){i(new Error(wr));return}this.bufferState.buffer="";let o={cleanup:()=>{}},t=setTimeout(()=>{o.cleanup(),this.logger.error(`Timeout waiting for ${x} server config`),i(new Error(`Timeout waiting for ${x} response \u2014 server configuration not available`))},Ux),B=()=>{o.cleanup(),i(new Error(wr))};o.cleanup=this.makeCleanup(t,r,B),r&&r.addEventListener("abort",B);let l=new RegExp(`\\${x}:\\s*<?([^,>\\s]+)>?`);this.activeAbort=()=>{o.cleanup(),i(new BA)},this.responseCallback=D=>{let j=D.match(l);if(j){o.cleanup();let b=j[1].trim();this.logger.info(`Server config ${x}: ${b}`),e(b);return}D.length>500&&(this.bufferState.buffer=this.bufferState.buffer.slice(-250))},this.logger.info("TX: "+A),this.transport.write(this.encodeCommand(A)).catch(D=>{o.cleanup(),this.logger.error(`Failed to send ${x} command: `+(D instanceof Error?D.message:String(D))),i(D)})})}async sendAndWait(A,x,r=Ux,e){return this.withAtLock(i=>i.sendAndWait(A,x,r,e))}async sendRaw(A,x=Ux){return this.withAtLock(r=>r.sendRaw(A,x))}async queryMntServerConfig(A){return this.withAtLock(x=>x.queryMntServerConfig(A))}async queryMdnServerConfig(A){return this.withAtLock(x=>x.queryMdnServerConfig(A))}async initiateMntSync(A){return this.withAtLock(x=>x.initiateMntSync(A))}async initiateMdnSync(A){return this.withAtLock(x=>x.initiateMdnSync(A))}async sendCompanionCert(A,x){return this.withAtLock(r=>r.sendCompanionCert(A,x))}async executeInitiateMntSync(A){this.logger.info("Initiating MNT sync"),await this.executeSendAndWait(WA.MNT_SYNC,Sx.OK,Ux,A)}async executeInitiateMdnSync(A){this.logger.info("Initiating MDN sync");try{await this.executeSendAndWait(WA.MDN_SYNC,Sx.OK,Ux,A),await this.executeSendAndWait(null,Sx.SYNC_START,Ux,A)}catch(x){this.logger.error("Failed to initiate MDN sync: "+(x instanceof Error?x.message:String(x)))}}async executeSendCompanionCert(A,x){if(this.isDisposed)throw new BA;if(x?.aborted)throw new Error(wr);let r=A.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-A.length%4)%4),e=r.length,i=await this.executeSendAndWait(`${WA.COMPANION_CERT}=${e}`,Sx.OK,Ux,x),o=parseInt(i.match(/(\d+)/)[1],10),t=0;for(;t<e;){let B=Math.min(o,e-t),l=r.slice(t,t+B);await this.executeSendAndWait(`${WA.COMPANION_CERT}=${B},${t},${l}`,Sx.OK,Ux,x),t+=B}return this.executeCompanionCertFinalize(e,x)}executeCompanionCertFinalize(A,x){return new Promise((r,e)=>{if(this.isDisposed){e(new BA);return}if(x?.aborted){e(new Error(wr));return}this.bufferState.buffer="";let i={cleanup:()=>{}},o=setTimeout(()=>{i.cleanup(),e(new Error("Timeout waiting for AT+COMPCERT finalize response"))},Ux),t=()=>{i.cleanup(),e(new Error(wr))};i.cleanup=this.makeCleanup(o,x,t),x&&x.addEventListener("abort",t),this.activeAbort=()=>{i.cleanup(),e(new BA)},this.responseCallback=l=>{let D=l.match(Sx.COMPCERT_ERROR);if(D){i.cleanup(),r({success:!1,errorCode:parseInt(D[1],10)});return}if(l.includes(Sx.OK)){i.cleanup(),r({success:!0});return}l.length>500&&(this.bufferState.buffer=this.bufferState.buffer.slice(-250))};let B=`${WA.COMPANION_CERT}=0,${A}`;this.logger.info("TX: "+B),this.transport.write(this.encodeCommand(B)).catch(l=>{i.cleanup(),e(l)})})}async queryCompanionCertSupport(A){return this.withAtLock(x=>x.queryCompanionCertSupport(A))}async executeQueryCompanionCertSupport(A){try{return await this.executeSendAndWait(WA.COMPANION_CERT_TEST,Sx.OK,Ux,A),!0}catch(x){if(x instanceof BA)throw x;return!1}}async sendConnectionClose(A){return this.withAtLock(x=>x.sendConnectionClose(A))}async executeSendConnectionClose(A){try{await this.executeSendAndWait(WA.CON_CLOSE,Sx.CON_CLOSE,Ux,A)}catch(x){this.logger.error("Failed to receive +CONCLOSE response: "+(x instanceof Error?x.message:String(x)))}}createConCloseMonitor(A){let x="",r=e=>{x+=e,x.includes(Sx.CON_CLOSE)&&(x="",this.bufferState.closedByDevice=!0,A()),x.length>1e3&&(x=x.slice(-500))};return this.on("data",r),()=>{this.off("data",r)}}dispose(){this.isDisposed||(this.isDisposed=!0,this.activeAbort?.(),this.disposeTransportListener(),this.responseCallback=null,this.activeAbort=null,this.removeAllListeners())}};var jn="requesting-cert",mn="cert-revoked",JE=class kn extends $a.EventEmitter{constructor(){super(...arguments),C0(this,"utoMaster",null)}async authenticate(x){let r=x.logger??xa,{signal:e,atHandler:i}=x,o=()=>{if(e?.aborted)throw new Error("Operation aborted")};try{this.emitPhase("checking-cert"),o();let t=await this.loadOrGenerateKeypair(x.storage),B=await x.storage.getCertificate(x.apiConfig.apiHost);(B===null||!hE(B.notAfter))&&(r.info("Companion cert missing or near expiry \u2014 requesting new cert"),this.emitPhase(jn),o(),B=await this.requestAndStoreCert(t,x)),this.utoMaster=new Sn(x.utoTransport,r),this.emitPhase("cert-presenting"),o();let l=B;B=await i.withAtLock(async b=>{let k=await this.presentCertWithRefresh(b,l,t,x);return await b.initiateMdnSync(e),k}),this.emitPhase("ecs-handshake"),o(),await this.utoMaster.init();let D=await this.utoMaster.initiateEcsHandshake({companionPublicKey:t.publicKey,companionPrivateKey:t.privateKey,signal:e});if(!D.success)return this.fail("ecs-handshake",`ECS handshake failed (code ${D.resultCode})`);this.emitPhase("connected");let j=this.utoMaster;return this.utoMaster=null,{success:!0,utoMaster:j}}catch(t){return this.handleError(t)}}dispose(){this.utoMaster=null,this.removeAllListeners()}async loadOrGenerateKeypair(x){let r=await x.getKeypair();if(r!==null)return r;let e=await Ys();return await x.saveKeypair(e),e}static async fetchCertOrThrowRevoked(x,r){try{return await mE(r.apiConfig,{publicKey:x.publicKey,subject:r.subject})}catch(e){throw e instanceof wt&&(e.httpStatus===401||e.httpStatus===404)?(await r.storage.clearCertificate(r.apiConfig.apiHost),new hn(mn,`Companion cert revoked or session expired (HTTP ${e.httpStatus})`,{httpStatus:e.httpStatus,apiCode:e.code})):e}}async requestAndStoreCert(x,r){let e=await kn.fetchCertOrThrowRevoked(x,r),i={base64Url:e.certificateBase64Url,notAfter:e.notAfter};return await r.storage.saveCertificate(i,r.apiConfig.apiHost),i}static async refreshCertificate(x){let r=await x.storage.getKeypair(),e=r!==null?r:await(async()=>{let t=await Ys();return await x.storage.saveKeypair(t),t})(),i=await kn.fetchCertOrThrowRevoked(e,x),o={base64Url:i.certificateBase64Url,notAfter:i.notAfter};return await x.storage.saveCertificate(o,x.apiConfig.apiHost),o}static async clearCredentials(x,r){await x.clearCertificate(r)}async presentCertWithRefresh(x,r,e,i){let o=await x.sendCompanionCert(r.base64Url,i.signal);if(o.success||o.errorCode===3&&((i.logger??xa).info("Device reported EXPIRED \u2014 refreshing cert and retrying"),this.emitPhase(jn),r=await this.requestAndStoreCert(e,i),o=await x.sendCompanionCert(r.base64Url,i.signal),o.success))return r;throw new hn("cert-presenting",`AT+COMPCERT rejected (code ${o.errorCode??"?"})`,{certErrorCode:o.errorCode})}emitPhase(x){this.emit("phase",x)}fail(x,r){return this.emit("phase","error"),{success:!1,phase:x,error:r}}handleError(x){return x instanceof hn?(this.emit("phase",x.phase===mn?mn:"error"),{success:!1,phase:x.phase,error:x.message,certErrorCode:x.certErrorCode,httpStatus:x.httpStatus,apiCode:x.apiCode}):(this.emit("phase","error"),x instanceof wt?{success:!1,phase:jn,error:x.message,httpStatus:x.httpStatus,apiCode:x.code}:{success:!1,phase:"error",error:x instanceof Error?x.message:String(x)})}};C0(JE,"encodePublicKeyBase64Url",la);var hn=class extends Error{constructor(A,x,r={}){super(x),C0(this,"phase",A),C0(this,"extra",r),this.name="AuthError"}get certErrorCode(){return this.extra.certErrorCode}get httpStatus(){return this.extra.httpStatus}get apiCode(){return this.extra.apiCode}};var XA={FAILED:1,ACTIVE:2,STARTED:4,RETRY:8,WAKEUPABLE:16,EXTSIM:32,DISABLED:64,WAKEUP:256,POSUPDATE_ACTIVE:512},ac=XA.FAILED|XA.ACTIVE|XA.STARTED|XA.RETRY|XA.WAKEUPABLE|XA.EXTSIM|XA.DISABLED|XA.WAKEUP|XA.POSUPDATE_ACTIVE,oc=`${Sx.RM2M_STATE}: `;var YA={configurationNumber:1,utoInterface:0,utoEndpoint:1,utoSize:64*1024,debugInterface:1,debugEndpoint:2,debugSize:1024};var qt=class{interface="usb";#r=new Set;#x;#e;#t;#A=!1;constructor(x,r){this.#x=x;let i=x.configuration.interfaces[r].alternate.endpoints;this.#e=i.find(o=>o.direction==="in"),this.#t=i.find(o=>o.direction==="out")}async write(x){await this.#x.transferOut(this.#t.endpointNumber,x)}onData(x){let r={cb:x};return this.#r.add(r),this.#A||this.#n(),()=>{this.#r.delete(r)}}async#n(){for(this.#A=!0;this.#A&&this.#x.opened;)try{let x=await this.#x.transferIn(this.#e.endpointNumber,this.#e.packetSize);if(x.data&&x.data.byteLength>0)for(let r of this.#r)r.cb(x.data.buffer)}catch{break}}stop(){this.#A=!1}},Je=class extends qt{constructor(x){super(x,YA.utoInterface)}},St=class extends qt{constructor(x){super(x,YA.debugInterface)}};var VE=9540,Sa=new qa.WebUSB({allowedDevices:[{vendorId:VE}]});async function WE(){return(await Sa.getDevices()).map(x=>({productName:x.productName,serialNumber:x.serialNumber||x.productName?.split(" ").pop(),vendorId:x.vendorId,productId:x.productId}))}async function Pa(A){let x=await WE();if(x.length===0){A.info("No USB devices found.");return}A.info("Available USB devices:"),x.forEach((r,e)=>{let i=r.productName||`Unknown Device (VID: 0x${r.vendorId.toString(16)}, PID: 0x${r.productId.toString(16)})`,o=r.serialNumber?` [${r.serialNumber}]`:"";A.log(` ${e+1}. ${i}${o}`)})}async function Pt(A,x){x.info(`Searching for device with serial number: ${A}`);let r=await Sa.getDevices();for(let e of r)if((e.serialNumber||e.productName?.split(" ").pop())?.toLowerCase()===A.toLowerCase())return x.info(`Device found: ${e.productName}`),e;return null}async function XE(A,x){if(x)try{await x.dispose()}catch{}if(A.opened)try{await A.close().catch()}catch{}}async function Tt(A,x,r,e,i=!1){if(!await r.stat(x))return{success:!1,message:`File not found: ${x.fsPath}`};let t=await Pt(A,e);if(!t)return{success:!1,message:`Device not found with serial number: ${A}`};let B=await r.readFile(x),l;try{await t.open(),await t.selectConfiguration(YA.configurationNumber),await t.claimInterface(YA.utoInterface);let D=new Je(t);if(l=new Sn(D),await l.init(),i){l.on("mdnCom",b=>{e.log("mdnCom",b)}),l.on("mdnComError",b=>{e.log("mdnComError",b)});let j=-1;l.on("installing",b=>{b&&b!==j&&(j=b,e.info(`Upload progress: ${b}%`))})}return await l.requestDeviceInfo(),e.info("Device connected, starting upload..."),await l.sendFile(qn.pawn,new Uint8Array(B.buffer,B.byteOffset,B.length)),e.done("Upload completed successfully!"),{success:!0,message:"File uploaded successfully"}}catch(D){return{success:!1,message:`Upload failed: ${D instanceof Error?D.message:String(D)}`}}finally{await XE(t,l)}}async function Ta(A,x,r=!1){let e=await Pt(A,x);if(!e)return{success:!1,message:`Device not found with serial number: ${A}`};let i,o;try{await e.open(),await e.selectConfiguration(YA.configurationNumber),await e.claimInterface(YA.utoInterface),await e.claimInterface(YA.debugInterface);let t=new Je(e),B=new St(e);o=new wa(B,x),i=new ka(t,o,x),i.on("syncError",D=>x.error(`Sync error: ${D.message}`)),r&&(i.on("syncStart",({mode:D})=>x.log(`Sync mode: ${D}`)),i.on("syncPhase",({phase:D})=>x.log(`Sync phase: ${D}`)),i.on("syncComplete",D=>x.info(`Sync complete (mode: ${D.mode}, messages: ${D.serverMessageCount})`))),x.info("Syncing device...");let l=new AbortController;return await i.sync({serialNumber:A,signal:l.signal}),{success:!0,message:"Sync completed successfully"}}catch(t){return{success:!1,message:`Sync failed: ${t instanceof Error?t.message:String(t)}`}}finally{if(i?.dispose(),o?.dispose(),e.opened)try{await e.close().catch()}catch{}}}var Na=require("vscode-uri");function It(A){return A instanceof Error?A.message:String(A)}function QA(A,x){return{success:!1,errorCode:A,message:x}}async function QE(A){let{cwd:x,fs:r,logger:e,env:i,apiToken:o,options:t}=A;e.info("[1/5] Building project...");try{let B=t.part?t.part:!0;return await W.validateBasicManifest(x,r,null),await px.buildAll(x,r,e,i,o,B,!0),e.done("Build completed successfully"),null}catch(B){return QA(1,`Build failed: ${It(B)}`)}}async function ZE(A){let{logger:x,options:r}=A,{serial:e}=r;x.info(`[2/5] Searching for USB device with serial: ${e}...`);let i=await Pt(e,x);return i||QA(2,`USB device not found with serial number: ${e}`)}async function xB(A){let{cwd:x,fs:r,logger:e,options:i}=A,{serial:o,debug:t}=i;e.info("[3/5] Uploading binary to USB device...");let B=Na.Utils.joinPath(x,i0.filePaths.dist.mainAmxPath),l=await Tt(o,B,r,e,t);return l.success?(e.done("USB upload completed"),null):QA(3,`USB upload failed: ${l.message}`)}async function AB(A,x){x.info("[4/5] Connecting to myDatanet server...");try{return await A.authenticate()}catch(r){return QA(4,`myDatanet authentication failed: ${It(r)}`)}}async function rB(A,x,r){if(x)try{let o=await A.getCustomer(x);return r.info(`Using customer: ${o.name} (${o._uid})`),o._uid}catch{return QA(6,`Customer "${x}" not found`)}let e=await A.getCustomers();if(e.length===0)return QA(6,"No customers available. Please specify --customer or set MYDATANET_CUSTOMER");if(e.length===1)return r.info(`Using customer: ${e[0].name} (${e[0]._uid})`),e[0]._uid;let i=e.map(o=>o.name).join(", ");return QA(6,`Multiple customers available. Please specify --customer or set MYDATANET_CUSTOMER. Available: ${i}`)}async function eB(A,x,r,e){let i=await A.getDeviceSite(x);i&&(i.app.phase==="dev"&&(r.apmId=i.app.apmid,r.applicationId=i.app.appl_id),r.siteUid=i._uid,r.siteName=i.name,r.customerUid=i.customer_uid,e.info(`Found existing site: ${i.name}`))}async function tB(A,x,r){let{cwd:e,fs:i,logger:o}=A;o.info("Creating development APM tag...");try{let t=await d0.createDevTag(e,i),B=await x.uploadDevTag(r.apmId,t);return r.applicationId=B,o.done("Development tag uploaded"),null}catch(t){return QA(5,`Development tag upload failed: ${It(t)}`)}}async function nB(A,x,r,e){e.info("[5/5] Creating development site...");try{return r.siteUid?(r.siteName!==r.name&&await A.updateSiteName(r.siteUid,r.name),e.info(`Reusing existing site: ${r.siteUid}`),{siteUid:r.siteUid,siteName:r.name}):{siteUid:await A.createDevelopmentSite(x,r),siteName:r.name}}catch(i){return QA(6,`Site creation failed: ${It(i)}`)}}function Ia(A,x,r=!1){if(r){A.log(JSON.stringify({siteUid:x.siteUid,siteName:x.siteName,apmId:x.apmId}));return}A.done("Development deployment completed successfully!"),A.info(""),A.info("=== Deployment Summary ==="),A.info(`Site UID: ${x.siteUid}`),A.info(`Site Name: ${x.siteName}`),A.info(`APM ID: ${x.apmId}`),A.info("==========================")}function Nt(A){return typeof A=="object"&&A!==null&&"errorCode"in A}async function Ma(A,x,r,e,i,o){let t={cwd:A,fs:x,logger:r,env:e,apiToken:i,options:o},{serial:B,server:l,customer:D,mdnToken:j}=o;r.info("Starting development deployment...");let b=await QE(t);if(b)return b;let k=await ZE(t);if(Nt(k))return k;let q=await xB(t);if(q)return q;let y=new Ne(l,j,r),S=await AB(y,r);if(Nt(S))return S;let T=S,I=await rB(y,D,r);if(Nt(I))return I;let L=I,R=await on(A,x,r,B,T.name,L,o.siteName);await eB(y,B,R,r);let e0=await tB(t,y,R);if(e0)return e0;let w=await nB(y,L,R,r);return Nt(w)?w:{success:!0,siteUid:w.siteUid,siteName:w.siteName,apmId:R.apmId,message:"Development deployment completed successfully"}}var ZA=new wx.Command,Pn=(0,La.default)({pkg:Wt}),ux=new Et.Logger,iB=()=>process.env.NODE_ENV==="local-dev-app"?"./dev/app":process.env.NODE_ENV==="local-dev-lib"?"./dev/modbus-master":process.env.NODE_ENV==="local-dev-addon"?"./dev/addon":process.env.NODE_ENV==="local-dev-analytics"?"./dev/analytics":"",oe=Ve.Utils.joinPath(Ve.URI.file(process.cwd()),iB());ZA.version(Wt.version).usage("<command>");ZA.description(`This tool is used to manage the project dependencies, build, package and publish the project.
|
|
2332
2332
|
The manifest options can be overwritten with the --option=value syntax.
|
|
2333
2333
|
Example: "studio build --dlo.mainFile="./dlo/test.dlo" will overwrite the dlo.mainFile option of the manifest.
|
|
2334
2334
|
|
|
2335
|
-
Use "studio --help" for more information.`);function fr(A,x){let r=
|
|
2335
|
+
Use "studio --help" for more information.`);function fr(A,x){let r=Gs(A);W.setOverwrites(r),x.catch(e=>{ux.error(e instanceof Error?e.message:e),process.exit(1)}).finally(()=>{Pn.notify()})}function sB(A){return process.env.STUDIO_ENV=A||ix.ENV.production,A&&A!==ix.ENV.production&&ux.log(`Using STUDIO_ENV=${A}`),process.env.STUDIO_ENV}function aB(A){return A?.token||null}function We(A){return A.silent&&(ux.silent=!0),{env:sB(A.env),token:aB(A)}}var Xe=new wx.Option("-e, --env <environment>","CLI target environment (defaults to STUDIO_ENV environment variable)").default(process.env.STUDIO_ENV).choices(Object.values(ix.ENV)),Ye=new wx.Option("--token <API-token>","API Access Token (defaults to STUDIO_TOKEN environment variable)").default(process.env.STUDIO_TOKEN),oB=new wx.Option("--allowedBackends <null|*|server.xz;server.yz>","specify the allowedBackends deployment for this version.").default(null),FB=Object.values(d0.TagPhase),Ra=new wx.Option("-ph --phase <release phase>","specify a release phase").choices(FB).default("release"),Oa=new wx.Option("-p --part <APM part>","APM part that should be built").choices(Object.values(d0.Part)),Tn=new wx.Option("-s, --serial <serial>","Device serial number (16 characters hex)"),Nn=new wx.Option("--debug","Enable debug logging").default(!1),vB=new wx.Option("--silent","Suppress intermediate progress output. Only the final result and errors are printed.").default(!1),EB=new wx.Option("--siteName <name>","Override the auto-generated development site name (max 50 characters)."),BB=new wx.Option("--json",'Print the deployment result as a JSON object instead of the human-readable summary. Format: {"siteUid", "siteName", "apmId"}. Best combined with --silent for machine-readable output.').default(!1),fB=new wx.Option("--server <url>","myDatanet instance URL (https:// prefix optional)").default(process.env.MYDATANET_HOST),CB=new wx.Option("--customer <customerId>","myDatanet customer UID or ID").default(process.env.MYDATANET_CUSTOMER),lB=new wx.Option("--mdn-token <token>","myDatanet API token").default(process.env.MYDATANET_TOKEN);ZA.command("install").aliases(["i"]).description("install all the dependencies in your project").arguments("[dependency...]").allowExcessArguments(!0).addOption(Xe).addOption(Ye).allowUnknownOption(!0).action((A,x,r)=>{let{env:e,token:i}=We(x);fr(r,ss(oe,yr,ux,e,i,A))});ZA.command("build").addOption(Oa).allowExcessArguments(!0).addOption(Xe).addOption(Ye).allowUnknownOption(!0).action((A,x)=>{let{env:r,token:e}=We(A);fr(x,as(oe,yr,ux,r,e,A.part))});ZA.command("publish").addOption(Ra).addOption(oB).addOption(Xe).addOption(Ye).allowUnknownOption(!0).option("-i, --packagePath <path>",'Publish the provided library or app package. Use "*" for autodetection.').action(async(A,x)=>{let{env:r,token:e}=We(A);fr(x,os(oe,yr,ux,r,e,A.allowedBackends,A.phase,A.packagePath))});ZA.command("package").alias("pack").description("Package the project").addOption(Ra).addOption(Xe).addOption(Ye).allowUnknownOption(!0).action(async(A,x)=>{let{env:r,token:e}=We(A);fr(x,Fs(oe,yr,ux,r,e,A.phase))});ZA.command("run").description("Build, upload to USB device, and create development site on myDatanet").addOption(Tn.makeOptionMandatory(!0)).addOption(fB).addOption(CB).addOption(lB).addOption(Oa).addOption(Xe).addOption(Ye).addOption(Nn).addOption(vB).addOption(BB).addOption(EB).allowUnknownOption(!0).action((A,x)=>{let{env:r,token:e}=We(A),i=A.mdnToken,o=A.server;i||(ux.error("MYDATANET_TOKEN is required. Set via --mdn-token or MYDATANET_TOKEN environment variable"),Pn.notify(),process.exit(4)),o||(ux.error("Server URL is required. Set via --server or MYDATANET_HOST environment variable"),Pn.notify(),process.exit(4)),fr(x,Ma(oe,yr,ux,r,e,{serial:A.serial,server:o,customer:A.customer,mdnToken:i,debug:A.debug,part:A.part?[A.part]:void 0,siteName:A.siteName||void 0}).then(t=>{ux.silent=!1,t.success?(Ia(ux,t,A.json),process.exit(0)):(ux.error(t.message),process.exit(t.errorCode||1))}))});var In=ZA.command("usb").description("USB device management commands");In.command("list").description("List available USB devices").action((A,x)=>{fr(x,Pa(ux))});In.command("upload").description("Upload an AMX binary to a USB device").addOption(Tn.makeOptionMandatory(!0)).requiredOption("-f, --file <path>","Path to the AMX file (relative to current directory)").addOption(Nn).action((A,x)=>{let r=Ve.Utils.joinPath(oe,A.file);fr(x,Tt(A.serial,r,yr,ux,A.debug).then(e=>{e.success?process.exit(0):(ux.error(e.message),process.exit(1))}))});In.command("sync").description("Sync a USB device with the myDatanet server").addOption(Tn.makeOptionMandatory(!0)).addOption(Nn).action((A,x)=>{fr(x,Ta(A.serial,ux,A.debug).then(r=>{r.success?process.exit(0):(ux.error(r.message),process.exit(1))}))});function Ga(A){ZA.parse(A)}
|
|
2336
2336
|
/*! Bundled license information:
|
|
2337
2337
|
|
|
2338
2338
|
@microtronics/device-master/dist/esm/index.mjs:
|