dgs-js 1.0.3 → 1.0.5

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.
Files changed (3) hide show
  1. package/README.md +1 -1
  2. package/dist/index.js +13 -13
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -46,7 +46,7 @@ Here is a full example rendering a single `.dgs` file:
46
46
  </body>
47
47
  </html>
48
48
  ```
49
- `example.dgs` can be found [here](test/example.dgs).
49
+ `example.dgs` can be found [here](https://github.com/splatsdotcom/DGS-JS/blob/main/test/example.dgs).
50
50
 
51
51
  ## Documentation
52
52
  Coming soon!
package/dist/index.js CHANGED
@@ -1,23 +1,23 @@
1
- var di=(async function(Y={}){var t,i=Y,C=!0,o=!1,h=[],D="./this.program",d=(A,e)=>{throw e},w=import.meta.url,F="",l,v;if(C||o){try{F=new URL(".",w).href}catch{}l=async A=>{var e=await fetch(A,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)}}var J=console.log.bind(console),x=console.error.bind(console),P,Z=!1,M,X,V,j,k,U,m,p,QA,N,Qe,ae,Ie,Ce,oe=!1;function Ee(){var A=j.buffer;k=new Int8Array(A),m=new Int16Array(A),U=new Uint8Array(A),p=new Uint16Array(A),QA=new Int32Array(A),N=new Uint32Array(A),Qe=new Float32Array(A),ae=new Float64Array(A),Ie=new BigInt64Array(A),Ce=new BigUint64Array(A)}function at(){if(i.preRun)for(typeof i.preRun=="function"&&(i.preRun=[i.preRun]);i.preRun.length;)wt(i.preRun.shift());he(le)}function It(){oe=!0,hA.ca()}function Ct(){if(i.postRun)for(typeof i.postRun=="function"&&(i.postRun=[i.postRun]);i.postRun.length;)ft(i.postRun.shift());he(ce)}var aA=0,lA=null;function ot(A){aA++,i.monitorRunDependencies?.(aA)}function Et(A){if(aA--,i.monitorRunDependencies?.(aA),aA==0&&lA){var e=lA;lA=null,e()}}function PA(A){i.onAbort?.(A),A="Aborted("+A+")",x(A),Z=!0,A+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(A);throw V?.(e),e}var WA;function nt(){return yt("AGFzbQEAAAAB8AEeYAF/AGABfwF/YAJ/fwF/YAN/f38Bf2ACf38AYAN/f38AYAAAYAR/f39/AGAGf39/f39/AGAFf39/f38AYAABf2AEf39/fwF/YAp/f39/f39/f39/AGAEf39/fwF8YAV/f39/fwF8YAd/f39/f39/AGAFf39/fn4AYAh/f39/f39/fwBgBn9/f39/fwF8YAt/f39/f39/f39/fwBgAn98AX9gA39/fwF8YAx/f39/f39/f39/f38AYA1/f39/f39/f39/f39/AGADf39+AX9gBX9/f39/AX9gA39/fQBgAn9/AX1gA39+fwF+YAJ/fAACzAI3AWEBYQAKAWEBYgAEAWEBYwAFAWEBZAADAWEBZQABAWEBZgACAWEBZwAMAWEBaAAAAWEBaQAJAWEBagACAWEBawAAAWEBbAAHAWEBbQABAWEBbgAFAWEBbwAFAWEBcAADAWEBcQANAWEBcgALAWEBcwAFAWEBdAAQAWEBdQARAWEBdgAAAWEBdwAGAWEBeAABAWEBeQASAWEBegANAWEBQQAOAWEBQgAGAWEBQwAFAWEBRAATAWEBRQAAAWEBRgAGAWEBRwAUAWEBSAAGAWEBSQABAWEBSgALAWEBSwAAAWEBTAAAAWEBTQAEAWEBTgAHAWEBTwAEAWEBUAAFAWEBUQAKAWEBUgAOAWEBUwAVAWEBVAABAWEBVQACAWEBVgABAWEBVwAAAWEBWAAMAWEBWQAIAWEBWgAIAWEBXwAAAWEBJAAWAWECYWEAFwN7egQAAQMAAwAYAAEJAQUAAAEAAAgHBgYBAQMPBQAPBAIFAQQZBgEABgELBhoBGwAGAQAAAgkHCQgDAwAAAhwBAwECAAABAgAAAQICAgICBgAFAwQCCgQEBAQEAgQFAgUCAAEAAgoBAQAEAAAdCgABAQEDCAgJCQMHBwAGBAUBcAFubgUHAQGCAoCAAgYIAX8BQfDIBAsHVA8CYmECAAJjYQCwAQJkYQB2AmVhAEACZmEAOAJnYQEAAmhhAKEBAmlhAJ4BAmphAJ0BAmthAK8BAmxhAKIBAm1hAHECbmEAcAJvYQCnAQJwYQCmAQmcAQEAQQELbWWcAWSbAZoBmQGYAZcBlgGVAZQBkwGSAWNhkQGQAY8BjgGNAYwBiwGKAWQ5MWNhMIkBiAGHAYYBJAmFARsWNA8QFS0uLIQBK4MBggGBAYABDl4qKX9bWk16eXh3PX59UnI9TT18ez10dXNMTT1SUm89bqkBqwGtAT2sAT2kAWdmowFmZz2oAaoBrgE9bWxrPaUBnwGgAQwBFQrj9gF6yAIBBH8jAEEQayIEJAAgBCABNgIMIwBB0AFrIgIkACACIAE2AswBIAJBoAFqIgFBAEEo/AsAIAIgAigCzAE2AsgBAkBBACAAIAJByAFqIAJB0ABqIAEQWUEASA0AQYw1KAIAQQBIQcA0QcA0KAIAIgVBX3E2AgACfwJAAkBB8DQoAgBFBEBB8DRB0AA2AgBB3DRBADYCAEHQNEIANwMAQew0KAIAIQNB7DQgAjYCAAwBC0HQNCgCAA0BC0F/QcA0EGINARoLQcA0IAAgAkHIAWogAkHQAGogAkGgAWoQWQshACADBH9BwDRBAEEAQeQ0KAIAEQMAGkHwNEEANgIAQew0IAM2AgBB3DRBADYCAEHUNCgCABpB0DRCADcDAEEABSAACxpBwDRBwDQoAgAgBUEgcXI2AgANAAsgAkHQAWokACAEQRBqJAAL3AsBCH8CQCAARQ0AIABBCGsiAyAAQQRrKAIAIgJBeHEiAGohBQJAIAJBAXENACACQQJxRQ0BIAMgAygCACIEayIDQfQ1KAIASQ0BIAAgBGohAAJAAkACQEH4NSgCACADRwRAIAMoAgwhASAEQf8BTQRAIAEgAygCCCICRw0CQeQ1QeQ1KAIAQX4gBEEDdndxNgIADAULIAMoAhghByABIANHBEAgAygCCCICIAE2AgwgASACNgIIDAQLIAMoAhQiAgR/IANBFGoFIAMoAhAiAkUNAyADQRBqCyEEA0AgBCEGIAIiAUEUaiEEIAEoAhQiAg0AIAFBEGohBCABKAIQIgINAAsgBkEANgIADAMLIAUoAgQiAkEDcUEDRw0DQew1IAA2AgAgBSACQX5xNgIEIAMgAEEBcjYCBCAFIAA2AgAPCyACIAE2AgwgASACNgIIDAILQQAhAQsgB0UNAAJAIAMoAhwiBEECdEGUOGoiAigCACADRgRAIAIgATYCACABDQFB6DVB6DUoAgBBfiAEd3E2AgAMAgsCQCADIAcoAhBGBEAgByABNgIQDAELIAcgATYCFAsgAUUNAQsgASAHNgIYIAMoAhAiAgRAIAEgAjYCECACIAE2AhgLIAMoAhQiAkUNACABIAI2AhQgAiABNgIYCyADIAVPDQAgBSgCBCIEQQFxRQ0AAkACQAJAAkAgBEECcUUEQEH8NSgCACAFRgRAQfw1IAM2AgBB8DVB8DUoAgAgAGoiADYCACADIABBAXI2AgQgA0H4NSgCAEcNBkHsNUEANgIAQfg1QQA2AgAPC0H4NSgCACIHIAVGBEBB+DUgAzYCAEHsNUHsNSgCACAAaiIANgIAIAMgAEEBcjYCBCAAIANqIAA2AgAPCyAEQXhxIABqIQAgBSgCDCEBIARB/wFNBEAgBSgCCCICIAFGBEBB5DVB5DUoAgBBfiAEQQN2d3E2AgAMBQsgAiABNgIMIAEgAjYCCAwECyAFKAIYIQggASAFRwRAIAUoAggiAiABNgIMIAEgAjYCCAwDCyAFKAIUIgIEfyAFQRRqBSAFKAIQIgJFDQIgBUEQagshBANAIAQhBiACIgFBFGohBCABKAIUIgINACABQRBqIQQgASgCECICDQALIAZBADYCAAwCCyAFIARBfnE2AgQgAyAAQQFyNgIEIAAgA2ogADYCAAwDC0EAIQELIAhFDQACQCAFKAIcIgRBAnRBlDhqIgIoAgAgBUYEQCACIAE2AgAgAQ0BQeg1Qeg1KAIAQX4gBHdxNgIADAILAkAgBSAIKAIQRgRAIAggATYCEAwBCyAIIAE2AhQLIAFFDQELIAEgCDYCGCAFKAIQIgIEQCABIAI2AhAgAiABNgIYCyAFKAIUIgJFDQAgASACNgIUIAIgATYCGAsgAyAAQQFyNgIEIAAgA2ogADYCACADIAdHDQBB7DUgADYCAA8LIABB/wFNBEAgAEF4cUGMNmohAgJ/QeQ1KAIAIgRBASAAQQN2dCIAcUUEQEHkNSAAIARyNgIAIAIMAQsgAigCCAshACACIAM2AgggACADNgIMIAMgAjYCDCADIAA2AggPC0EfIQEgAEH///8HTQRAIABBJiAAQQh2ZyICa3ZBAXEgAkEBdGtBPmohAQsgAyABNgIcIANCADcCECABQQJ0QZQ4aiEEAn8CQAJ/Qeg1KAIAIgZBASABdCICcUUEQEHoNSACIAZyNgIAIAQgAzYCAEEYIQFBCAwBCyAAQRkgAUEBdmtBACABQR9HG3QhASAEKAIAIQQDQCAEIgIoAgRBeHEgAEYNAiABQR12IQQgAUEBdCEBIAIgBEEEcWoiBigCECIEDQALIAYgAzYCEEEYIQEgAiEEQQgLIQAgAyICDAELIAIoAggiBCADNgIMIAIgAzYCCEEYIQBBCCEBQQALIQYgASADaiAENgIAIAMgAjYCDCAAIANqIAY2AgBBhDZBhDYoAgBBAWsiAEF/IAAbNgIACwtiAQF/An9BASAAIABBAU0bIQADQAJAIAAQQCIBBH8gAQVB2MMAKAIAIgENAUEACwwCCyABEQYADAALAAsiAEUEQEEEEEYiAEGYMjYCACAAQdAvNgIAIABB7C9BOxAOAAsgAAt0AQF/IAJFBEAgACgCBCABKAIERg8LIAAgAUYEQEEBDwsgASgCBCICLQAAIQECQCAAKAIEIgMtAAAiAEUNACAAIAFHDQADQCACLQABIQEgAy0AASIARQ0BIAJBAWohAiADQQFqIQMgACABRg0ACwsgACABRgtEAQF/AkAgACgCBCIBQQlPBEBB1DlBADYCAEEnIAEQAUHUOSgCAEHUOUEANgIAQQFGDQEgAEEANgIECw8LQQAQBBA/AAutAwEFfyMAQRBrIgQkACAEIAAoAgAiBUEIaygCACIDNgIMIAQgACADajYCBCAEIAVBBGsoAgA2AgggBCgCBCEGAkAgBCgCCCIFIAJBABA6BEBBACAGIAQoAgwbIQMMAQsjAEFAaiIDJAAgACAGTgRAIAMgAjYCDCADIAU2AgQgAyAANgIIIANBEGpBAEEk/AsAIANBADYCPCADQoGAgICAgICAATcCNCAFIANBBGogBiAGQQFBACAFKAIAKAIUEQgAIABBACADKAIcGyEHCyADQUBrJAAgByIDDQAjAEFAaiIDJAAgAyABNgIMIAMgADYCCCADIAI2AgRBACEAIANBEGpBAEEr/AsAIANBADYCPCADQQE6ADsgBSADQQRqIAZBAUEAIAUoAgAoAhgRCQACQAJAAkAgAygCKA4CAAECCyADKAIYQQAgAygCJEEBRhtBACADKAIgQQFGG0EAIAMoAixBAUYbIQAMAQsgAygCHEEBRwRAIAMoAiwNASADKAIgQQFHDQEgAygCJEEBRw0BCyADKAIUIQALIANBQGskACAAIQMLIARBEGokACADCwYAIAAQOAvOAwIFfwF+IwBBIGsiBCQAAn8gAC0AAARAQQACfyACpyEGIAAoAggiAygCTBogAyADKAJIIgBB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ASAAQQhqIgAgBEkNAAsLCxgAIAAgASgCCEEAEDoEQCABIAIgAxBRCwsGACAAJAALfwBB3DlBATYCAEHgOUEANgIAEGVB4DlB/DkoAgA2AgBB/DlB3Dk2AgBBgDpBOjYCAEGEOkEANgIAEFpBhDpB/DkoAgA2AgBB/DlBgDo2AgBBxDpBgMAANgIAQbw6QfDIBDYCAEGgOkEqNgIAQeg6Qaw7NgIAQcA6QYCABDYCAAsLsCoVAEGACAvhHWZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkAVWludDhBcnJheQBjb2xvck1heABzaE1heAAtKyAgIDBYMHgAdW5zaWduZWQgc2hvcnQAdW5zaWduZWQgaW50AHNldABmbG9hdABpbnZhbGlkIGNvbG9yIG5vcm1hbGl6YXRpb24gY29lZmZpY2llbnRzAGludmFsaWQgc2ggbm9ybWFsaXphdGlvbiBjb2VmZmljaWVudHMAc3VjY2VzcwBjb2xvcnMAZmlsZSBjb250YWlucyAwIGdhdXNzaWFucwBHYXVzc2lhbnMAbWVhbnMAc2hzAHZlbG9jaXRpZXMAb3BhY2l0aWVzAGNvdmFyaWFuY2VzAHZlY3RvcgBhdHRlbXB0aW5nIHRvIHJlYWQgcGFzdCBlbmQgb2YgYnVmZmVyAHVuc2lnbmVkIGNoYXIAc3RkOjpleGNlcHRpb24AZHVyYXRpb24AbWlzbWF0Y2hlZCB2ZXJzaW9uAGNvbG9yTWluAHNoTWluAGJvb2wAbGVuZ3RoAHVuc2lnbmVkIGxvbmcgbG9uZwB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBiYXNpY19zdHJpbmcAc3RkOjpzdHJpbmcAc3RkOjp1MTZzdHJpbmcAc3RkOjp1MzJzdHJpbmcAZ2F1c3NpYW4gY291bnQgbXVzdCBiZSBwb3NpdGl2ZQBjb21iaW5lAGZhaWxlZCB0byByZWFkIGZyb20gZmlsZQBkb3VibGUAb3V0IG9mIGJvdW5kcyBzaCBkZWdyZWUAY2Fubm90IGNvbWJpbmUgZ2F1c3NpYW5zIHdpdGggZGlmZmVyZW50IHNoRGVncmVlAGRlY29kZQBtaXNtYXRjaGVkIG1hZ2ljIHdvcmQAdm9pZABzdGQ6OmJhZF9hbGxvYwBkeW5hbWljAG1nc19lcnJvci5jAG1nc19kZWNvZGUuYwBuZWdhdGl2ZSBkdXJhdGlvbiBlbmNvdW50ZXJlZCBpbiBtZXRhZGF0YQBNZXRhZGF0YQBnYXVzc2lhbiBzcGhlcmljYWwgaGFybW9taWMgZGVncmVlIG11c3QgYmUgbGVzcyB0aGFuIE1HU19HQVVTU0lBTlNfTUFYX1NIX0RFR1JFRQBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgBpbnZhbGlkIGlucHV0IChwcm92aWRlZCBtZW1vcnkvZmlsZSBpbnB1dCB3YXMgaW4gYW4gaW52YWxpZCBmb3JtYXQpAChudWxsKQBpbnZhbGlkIGFyZ3VtZW50cyAoYmFkIGZ1bmN0aW9uIGNhbGwpAGZhaWxlZCB0byB3cml0ZSB0byBhIGZpbGUgKGZ3cml0ZSB3cm90ZSBmZXdlciBieXRlcyB0aGFuIHJlcXVlc3RlZCkAZmFpbGVkIHRvIHJlYWQgZnJvbSBhIGZpbGUgKGZyZWFkIHJlYWQgZmV3ZXIgYnl0ZXMgdGhhbiByZXF1ZXN0ZWQpAGZhaWxlZCB0byBvcGVuIGEgZmlsZSAoZm9wZW4gcmV0dXJuZWQgTlVMTCkAb3V0IG9mIG1lbW9yeSAoTUdTX01BTExPQy9NR1NfUkVBTExPQyByZXR1cm5lZCBOVUxMKQBmYWlsZWQgdG8gY2xvc2UgYSBmaWxlIChmY2xvc2UgcmV0dXJuZWQgRU9GKQBER1MgaW50ZXJuYWwgZXJyb3I6ICIATUdTIEVSUk9SOiAiJXMiIGluICVzIGF0IGxpbmUgJWkKAE1HUyBXQVJOSU5HOiAiJXMiIGluICVzIGF0IGxpbmUgJWkKAAlpbiAlcyBhdCBsaW5lICVpCgAAAACwGAAA4AsAADEyTUdTZ2F1c3NpYW5zAAC0FwAAAAwAAAAAAADYCwAAUDEyTUdTZ2F1c3NpYW5zALQXAAAgDAAAAQAAANgLAABQSzEyTUdTZ2F1c3NpYW5zAHBwAHYAdnAAAAAAAAAAAFgMAAA8AAAAPQAAAD4AAAA/AAAAQAAAAOgYAABkDAAApBQAAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVAxMk1HU2dhdXNzaWFuc04xMGVtc2NyaXB0ZW4xNXNtYXJ0X3B0cl90cmFpdElOU18xMHNoYXJlZF9wdHJJUzFfRUVFMTF2YWxfZGVsZXRlckVOU185YWxsb2NhdG9ySVMxX0VFRUUATjEwZW1zY3JpcHRlbjE1c21hcnRfcHRyX3RyYWl0SU5TdDNfXzIxMHNoYXJlZF9wdHJJMTJNR1NnYXVzc2lhbnNFRUUxMXZhbF9kZWxldGVyRQAAAAAwDwAAsBgAAEwNAABOU3QzX18yMTBzaGFyZWRfcHRySTEyTUdTZ2F1c3NpYW5zRUUAcABwcHAAAEQNAAAAAAAAmA0AAEEAAABCAAAAQwAAAEQAAABFAAAA6BgAAKQNAACkFAAATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJMTJNR1NnYXVzc2lhbnNOU185YWxsb2NhdG9ySVMxX0VFRUUAaXBwAHZwcGkAZnBwAHZwcGYAsBgAAAAOAAAxMU1HU21ldGFkYXRhAAAAMA8AADAPAABcFgAAMA8AAAAAAAA8DgAARgAAAEcAAABIAAAASQAAAEoAAADoGAAASA4AAKQUAABOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQMTJNR1NnYXVzc2lhbnNaWkwyMWVtYmluZF9pbml0X2xpYmRnc19qc3ZFTkszJF83Y2xFUktOMTBlbXNjcmlwdGVuM3ZhbEVFVWxTMl9FX05TXzlhbGxvY2F0b3JJUzFfRUVFRQBaWkwyMWVtYmluZF9pbml0X2xpYmRnc19qc3ZFTkszJF83Y2xFUktOMTBlbXNjcmlwdGVuM3ZhbEVFVWxQMTJNR1NnYXVzc2lhbnNFXwAAAEQNAABEDQAARA0AAHBwcHAAAAAAsBgAADgPAABOMTBlbXNjcmlwdGVuM3ZhbEUAALAYAABUDwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAALAYAACcDwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSXdOU18xMWNoYXJfdHJhaXRzSXdFRU5TXzlhbGxvY2F0b3JJd0VFRUUAALAYAADkDwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURzTlNfMTFjaGFyX3RyYWl0c0lEc0VFTlNfOWFsbG9jYXRvcklEc0VFRUUAAACwGAAAMBAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEaU5TXzExY2hhcl90cmFpdHNJRGlFRU5TXzlhbGxvY2F0b3JJRGlFRUVFAAAAsBgAAHwQAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ljRUUAALAYAACkEAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJYUVFAACwGAAAzBAAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQAAsBgAAPQQAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lzRUUAALAYAAAcEQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJdEVFAACwGAAARBEAAE4xMGVtc2NyaXB0ZW4xMW1l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")}function ht(A){if(ArrayBuffer.isView(A))return A;if(A==WA&&P)return new Uint8Array(P);if(v)return v(A);throw"both async and sync fetching of the wasm failed"}async function ct(A){return ht(A)}async function lt(A,e){try{var g=await ct(A),r=await WebAssembly.instantiate(g,e);return r}catch(s){x(`failed to asynchronously prepare wasm: ${s}`),PA(s)}}async function ut(A,e,g){return lt(e,g)}function dt(){return{a:ri}}async function Dt(){function A(B,a){return hA=B.exports,j=hA.ba,Ee(),ve=hA.ga,ii(hA),Et("wasm-instantiate"),hA}ot("wasm-instantiate");function e(B){return A(B.instance)}var g=dt();if(i.instantiateWasm)return new Promise((B,a)=>{i.instantiateWasm(g,(Q,I)=>{B(A(Q,I))})});WA??=nt();var r=await ut(P,WA,g),s=e(r);return s}class ne{name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var he=A=>{for(;A.length>0;)A.shift()(i)},ce=[],ft=A=>ce.push(A),le=[],wt=A=>le.push(A),yt=A=>{for(var e,g,r=0,s=0,B=A.length,a=new Uint8Array((B*3>>2)-(A[B-2]=="=")-(A[B-1]=="="));r<B;r+=4,s+=3)e=tA[A.charCodeAt(r+1)],g=tA[A.charCodeAt(r+2)],a[s]=tA[A.charCodeAt(r)]<<2|e>>4,a[s+1]=e<<4|g>>2,a[s+2]=g<<6|tA[A.charCodeAt(r+3)];return a},KA=!0,K=A=>Ze(A),O=()=>Xe(),NA=[],OA=0,Ft=A=>{var e=new ZA(A);return e.get_caught()||(e.set_caught(!0),OA--),e.set_rethrown(!1),NA.push(e),Ve(A),qe(A)},eA=0,pt=()=>{_(0,0);var A=NA.pop();ze(A.excPtr),eA=0};class ZA{constructor(e){this.excPtr=e,this.ptr=e-24}set_type(e){N[this.ptr+4>>2]=e}get_type(){return N[this.ptr+4>>2]}set_destructor(e){N[this.ptr+8>>2]=e}get_destructor(){return N[this.ptr+8>>2]}set_caught(e){e=e?1:0,k[this.ptr+12]=e}get_caught(){return k[this.ptr+12]!=0}set_rethrown(e){e=e?1:0,k[this.ptr+13]=e}get_rethrown(){return k[this.ptr+13]!=0}init(e,g){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(g)}set_adjusted_ptr(e){N[this.ptr+16>>2]=e}get_adjusted_ptr(){return N[this.ptr+16>>2]}}var vA=A=>Oe(A),ue=A=>{var e=eA;if(!e)return vA(0),0;var g=new ZA(e);g.set_adjusted_ptr(e);var r=g.get_type();if(!r)return vA(0),e;for(var s of A){if(s===0||s===r)break;var B=g.ptr+16;if(je(s,r,B))return vA(s),e}return vA(r),e},mt=()=>ue([]),Nt=A=>ue([A]),vt=()=>{var A=NA.pop();A||PA("no exception to throw");var e=A.excPtr;throw A.get_rethrown()||(NA.push(A),A.set_rethrown(!0),A.set_caught(!1),OA++),eA=e,eA},Ut=(A,e,g)=>{var r=new ZA(A);throw r.init(e,g),eA=A,OA++,eA},Rt=A=>{throw eA||(eA=A),eA},Yt=()=>PA(""),UA={},RA=A=>{for(;A.length;){var e=A.pop(),g=A.pop();g(e)}};function uA(A){return this.fromWireType(N[A>>2])}var nA={},IA={},YA={},St=class extends Error{constructor(e){super(e),this.name="InternalError"}},SA=A=>{throw new St(A)},rA=(A,e,g)=>{A.forEach(Q=>YA[Q]=e);function r(Q){var I=g(Q);I.length!==A.length&&SA("Mismatched type converter count");for(var E=0;E<A.length;++E)q(A[E],I[E])}var s=new Array(e.length),B=[],a=0;e.forEach((Q,I)=>{IA.hasOwnProperty(Q)?s[I]=IA[Q]:(B.push(Q),nA.hasOwnProperty(Q)||(nA[Q]=[]),nA[Q].push(()=>{s[I]=IA[Q],++a,a===B.length&&r(s)}))}),B.length===0&&r(s)},Gt=A=>{var e=UA[A];delete UA[A];var g=e.rawConstructor,r=e.rawDestructor,s=e.fields,B=s.map(a=>a.getterReturnType).concat(s.map(a=>a.setterArgumentType));rA([A],B,a=>{var Q={};return s.forEach((I,E)=>{var n=I.fieldName,u=a[E],y=a[E].optional,H=I.getter,L=I.getterContext,BA=a[E+s.length],oA=I.setter,AA=I.setterContext;Q[n]={read:iA=>u.fromWireType(H(L,iA)),write:(iA,T)=>{var JA=[];oA(AA,iA,BA.toWireType(JA,T)),RA(JA)},optional:y}}),[{name:e.name,fromWireType:I=>{var E={};for(var n in Q)E[n]=Q[n].read(I);return r(I),E},toWireType:(I,E)=>{for(var n in Q)if(!(n in E)&&!Q[n].optional)throw new TypeError(`Missing field: "${n}"`);var u=g();for(n in Q)Q[n].write(u,E[n]);return I!==null&&I.push(r,u),u},argPackAdvance:$,readValueFromPointer:uA,destructorFunction:r}]})},G=A=>{for(var e="";;){var g=U[A++];if(!g)return e;e+=String.fromCharCode(g)}},dA=class extends Error{constructor(e){super(e),this.name="BindingError"}},f=A=>{throw new dA(A)};function Mt(A,e,g={}){var r=e.name;if(A||f(`type "${r}" must have a positive integer typeid pointer`),IA.hasOwnProperty(A)){if(g.ignoreDuplicateRegistrations)return;f(`Cannot register type '${r}' twice`)}if(IA[A]=e,delete YA[A],nA.hasOwnProperty(A)){var s=nA[A];delete nA[A],s.forEach(B=>B())}}function q(A,e,g={}){return Mt(A,e,g)}var de=(A,e,g)=>{switch(e){case 1:return g?r=>k[r]:r=>U[r];case 2:return g?r=>m[r>>1]:r=>p[r>>1];case 4:return g?r=>QA[r>>2]:r=>N[r>>2];case 8:return g?r=>Ie[r>>3]:r=>Ce[r>>3];default:throw new TypeError(`invalid integer width (${e}): ${A}`)}},kt=(A,e,g,r,s)=>{e=G(e);let B=r===0n,a=Q=>Q;if(B){let Q=g*8;a=I=>BigInt.asUintN(Q,I),s=a(s)}q(A,{name:e,fromWireType:a,toWireType:(Q,I)=>(typeof I=="number"&&(I=BigInt(I)),I),argPackAdvance:$,readValueFromPointer:de(e,g,!B),destructorFunction:null})},$=8,bt=(A,e,g,r)=>{e=G(e),q(A,{name:e,fromWireType:function(s){return!!s},toWireType:function(s,B){return B?g:r},argPackAdvance:$,readValueFromPointer:function(s){return this.fromWireType(U[s])},destructorFunction:null})},Ht=A=>({count:A.count,deleteScheduled:A.deleteScheduled,preservePointerOnDelete:A.preservePointerOnDelete,ptr:A.ptr,ptrType:A.ptrType,smartPtr:A.smartPtr,smartPtrType:A.smartPtrType}),XA=A=>{function e(g){return g.$$.ptrType.registeredClass.name}f(e(A)+" instance already deleted")},VA=!1,De=A=>{},Jt=A=>{A.smartPtr?A.smartPtrType.rawDestructor(A.smartPtr):A.ptrType.registeredClass.rawDestructor(A.ptr)},fe=A=>{A.count.value-=1;var e=A.count.value===0;e&&Jt(A)},DA=A=>typeof FinalizationRegistry>"u"?(DA=e=>e,A):(VA=new FinalizationRegistry(e=>{fe(e.$$)}),DA=e=>{var g=e.$$,r=!!g.smartPtr;if(r){var s={$$:g};VA.register(e,s,e)}return e},De=e=>VA.unregister(e),DA(A)),GA=[],Tt=()=>{for(;GA.length;){var A=GA.pop();A.$$.deleteScheduled=!1,A.delete()}},we,xt=()=>{let A=MA.prototype;Object.assign(A,{isAliasOf(g){if(!(this instanceof MA)||!(g instanceof MA))return!1;var r=this.$$.ptrType.registeredClass,s=this.$$.ptr;g.$$=g.$$;for(var B=g.$$.ptrType.registeredClass,a=g.$$.ptr;r.baseClass;)s=r.upcast(s),r=r.baseClass;for(;B.baseClass;)a=B.upcast(a),B=B.baseClass;return r===B&&s===a},clone(){if(this.$$.ptr||XA(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var g=DA(Object.create(Object.getPrototypeOf(this),{$$:{value:Ht(this.$$)}}));return g.$$.count.value+=1,g.$$.deleteScheduled=!1,g},delete(){this.$$.ptr||XA(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&f("Object already scheduled for deletion"),De(this),fe(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||XA(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&f("Object already scheduled for deletion"),GA.push(this),GA.length===1&&we&&we(Tt),this.$$.deleteScheduled=!0,this}});let e=Symbol.dispose;e&&(A[e]=A.delete)};function MA(){}var zA=(A,e)=>Object.defineProperty(e,"name",{value:A}),ye={},_t=(A,e,g)=>{if(A[e].overloadTable===void 0){var r=A[e];A[e]=function(...s){return A[e].overloadTable.hasOwnProperty(s.length)||f(`Function '${g}' called with an invalid number of arguments (${s.length}) - expects one of (${A[e].overloadTable})!`),A[e].overloadTable[s.length].apply(this,s)},A[e].overloadTable=[],A[e].overloadTable[r.argCount]=r}},Fe=(A,e,g)=>{i.hasOwnProperty(A)?((g===void 0||i[A].overloadTable!==void 0&&i[A].overloadTable[g]!==void 0)&&f(`Cannot register public name '${A}' twice`),_t(i,A,A),i[A].overloadTable.hasOwnProperty(g)&&f(`Cannot register multiple overloads of a function with the same number of arguments (${g})!`),i[A].overloadTable[g]=e):(i[A]=e,i[A].argCount=g)},Lt=48,Pt=57,Wt=A=>{A=A.replace(/[^a-zA-Z0-9_]/g,"$");var e=A.charCodeAt(0);return e>=Lt&&e<=Pt?`_${A}`:A};function Kt(A,e,g,r,s,B,a,Q){this.name=A,this.constructor=e,this.instancePrototype=g,this.rawDestructor=r,this.baseClass=s,this.getActualType=B,this.upcast=a,this.downcast=Q,this.pureVirtualFunctions=[]}var kA=(A,e,g)=>{for(;e!==g;)e.upcast||f(`Expected null or instance of ${g.name}, got an instance of ${e.name}`),A=e.upcast(A),e=e.baseClass;return A},jA=A=>{if(A===null)return"null";var e=typeof A;return e==="object"||e==="array"||e==="function"?A.toString():""+A};function Ot(A,e){if(e===null)return this.isReference&&f(`null is not a valid ${this.name}`),0;e.$$||f(`Cannot pass "${jA(e)}" as a ${this.name}`),e.$$.ptr||f(`Cannot pass deleted object as a pointer of type ${this.name}`);var g=e.$$.ptrType.registeredClass,r=kA(e.$$.ptr,g,this.registeredClass);return r}function Zt(A,e){var g;if(e===null)return this.isReference&&f(`null is not a valid ${this.name}`),this.isSmartPointer?(g=this.rawConstructor(),A!==null&&A.push(this.rawDestructor,g),g):0;(!e||!e.$$)&&f(`Cannot pass "${jA(e)}" as a ${this.name}`),e.$$.ptr||f(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&e.$$.ptrType.isConst&&f(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);var r=e.$$.ptrType.registeredClass;if(g=kA(e.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(e.$$.smartPtr===void 0&&f("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:e.$$.smartPtrType===this?g=e.$$.smartPtr:f(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:g=e.$$.smartPtr;break;case 2:if(e.$$.smartPtrType===this)g=e.$$.smartPtr;else{var s=e.clone();g=this.rawShare(g,R.toHandle(()=>s.delete())),A!==null&&A.push(this.rawDestructor,g)}break;default:f("Unsupporting sharing policy")}return g}function Xt(A,e){if(e===null)return this.isReference&&f(`null is not a valid ${this.name}`),0;e.$$||f(`Cannot pass "${jA(e)}" as a ${this.name}`),e.$$.ptr||f(`Cannot pass deleted object as a pointer of type ${this.name}`),e.$$.ptrType.isConst&&f(`Cannot convert argument of type ${e.$$.ptrType.name} to parameter type ${this.name}`);var g=e.$$.ptrType.registeredClass,r=kA(e.$$.ptr,g,this.registeredClass);return r}var pe=(A,e,g)=>{if(e===g)return A;if(g.baseClass===void 0)return null;var r=pe(A,e,g.baseClass);return r===null?null:g.downcast(r)},Vt={},zt=(A,e)=>{for(e===void 0&&f("ptr should not be undefined");A.baseClass;)e=A.upcast(e),A=A.baseClass;return e},jt=(A,e)=>(e=zt(A,e),Vt[e]),bA=(A,e)=>{(!e.ptrType||!e.ptr)&&SA("makeClassHandle requires ptr and ptrType");var g=!!e.smartPtrType,r=!!e.smartPtr;return g!==r&&SA("Both smartPtrType and smartPtr must be specified"),e.count={value:1},DA(Object.create(A,{$$:{value:e,writable:!0}}))};function qt(A){var e=this.getPointee(A);if(!e)return this.destructor(A),null;var g=jt(this.registeredClass,e);if(g!==void 0){if(g.$$.count.value===0)return g.$$.ptr=e,g.$$.smartPtr=A,g.clone();var r=g.clone();return this.destructor(A),r}function s(){return this.isSmartPointer?bA(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:e,smartPtrType:this,smartPtr:A}):bA(this.registeredClass.instancePrototype,{ptrType:this,ptr:A})}var B=this.registeredClass.getActualType(e),a=ye[B];if(!a)return s.call(this);var Q;this.isConst?Q=a.constPointerType:Q=a.pointerType;var I=pe(e,this.registeredClass,Q.registeredClass);return I===null?s.call(this):this.isSmartPointer?bA(Q.registeredClass.instancePrototype,{ptrType:Q,ptr:I,smartPtrType:this,smartPtr:A}):bA(Q.registeredClass.instancePrototype,{ptrType:Q,ptr:I})}var $t=()=>{Object.assign(fA.prototype,{getPointee(A){return this.rawGetPointee&&(A=this.rawGetPointee(A)),A},destructor(A){this.rawDestructor?.(A)},argPackAdvance:$,readValueFromPointer:uA,fromWireType:qt})};function fA(A,e,g,r,s,B,a,Q,I,E,n){this.name=A,this.registeredClass=e,this.isReference=g,this.isConst=r,this.isSmartPointer=s,this.pointeeType=B,this.sharingPolicy=a,this.rawGetPointee=Q,this.rawConstructor=I,this.rawShare=E,this.rawDestructor=n,!s&&e.baseClass===void 0?r?(this.toWireType=Ot,this.destructorFunction=null):(this.toWireType=Xt,this.destructorFunction=null):this.toWireType=Zt}var me=(A,e,g)=>{i.hasOwnProperty(A)||SA("Replacing nonexistent public symbol"),i[A].overloadTable!==void 0&&g!==void 0?i[A].overloadTable[g]=e:(i[A]=e,i[A].argCount=g)},Ne=[],ve,W=A=>{var e=Ne[A];return e||(Ne[A]=e=ve.get(A)),e},b=(A,e,g=!1)=>{A=G(A);function r(){var B=W(e);return B}var s=r();return typeof s!="function"&&f(`unknown function pointer with signature ${A}: ${e}`),s};class Ag extends Error{}var Ue=A=>{var e=We(A),g=G(e);return gA(e),g},wA=(A,e)=>{var g=[],r={};function s(B){if(!r[B]&&!IA[B]){if(YA[B]){YA[B].forEach(s);return}g.push(B),r[B]=!0}}throw e.forEach(s),new Ag(`${A}: `+g.map(Ue).join([", "]))},eg=(A,e,g,r,s,B,a,Q,I,E,n,u,y)=>{n=G(n),B=b(s,B),Q&&=b(a,Q),E&&=b(I,E),y=b(u,y);var H=Wt(n);Fe(H,function(){wA(`Cannot construct ${n} due to unbound types`,[r])}),rA([A,e,g],r?[r]:[],L=>{L=L[0];var BA,oA;r?(BA=L.registeredClass,oA=BA.instancePrototype):oA=MA.prototype;var AA=zA(n,function(...ge){if(Object.getPrototypeOf(this)!==iA)throw new dA(`Use 'new' to construct ${n}`);if(T.constructor_body===void 0)throw new dA(`${n} has no accessible constructor`);var et=T.constructor_body[ge.length];if(et===void 0)throw new dA(`Tried to invoke ctor of ${n} with invalid number of parameters (${ge.length}) - expected (${Object.keys(T.constructor_body).toString()}) parameters instead!`);return et.apply(this,ge)}),iA=Object.create(oA,{constructor:{value:AA}});AA.prototype=iA;var T=new Kt(n,AA,iA,y,BA,B,Q,E);T.baseClass&&(T.baseClass.__derivedClasses??=[],T.baseClass.__derivedClasses.push(T));var JA=new fA(n,T,!0,!1,!1),$e=new fA(n+"*",T,!1,!1,!1),At=new fA(n+" const*",T,!1,!0,!1);return ye[A]={pointerType:$e,constPointerType:At},me(H,AA),[JA,$e,At]})},Re=(A,e)=>{for(var g=[],r=0;r<A;r++)g.push(N[e+r*4>>2]);return g};function Ye(A){for(var e=1;e<A.length;++e)if(A[e]!==null&&A[e].destructorFunction===void 0)return!0;return!1}function tg(A,e,g,r){var s=Ye(A),B=A.length-2,a=[],Q=["fn"];e&&Q.push("thisWired");for(var I=0;I<B;++I)a.push(`arg${I}`),Q.push(`arg${I}Wired`);a=a.join(","),Q=Q.join(",");var E=`return function (${a}) {
1
+ var dr=(async function(Y={}){var t,r=Y,C=!0,o=!1,h=[],D="./this.program",d=(A,e)=>{throw e},w=import.meta.url,F="",l,v;if(C||o){try{F=new URL(".",w).href}catch{}l=async A=>{var e=await fetch(A,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)}}var J=console.log.bind(console),x=console.error.bind(console),P,Z=!1,M,X,V,j,k,U,m,p,QA,N,Qe,ae,Ie,Ce,oe=!1;function Ee(){var A=j.buffer;k=new Int8Array(A),m=new Int16Array(A),U=new Uint8Array(A),p=new Uint16Array(A),QA=new Int32Array(A),N=new Uint32Array(A),Qe=new Float32Array(A),ae=new Float64Array(A),Ie=new BigInt64Array(A),Ce=new BigUint64Array(A)}function at(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)wt(r.preRun.shift());he(le)}function It(){oe=!0,hA.ca()}function Ct(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)ft(r.postRun.shift());he(ce)}var aA=0,lA=null;function ot(A){aA++,r.monitorRunDependencies?.(aA)}function Et(A){if(aA--,r.monitorRunDependencies?.(aA),aA==0&&lA){var e=lA;lA=null,e()}}function PA(A){r.onAbort?.(A),A="Aborted("+A+")",x(A),Z=!0,A+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(A);throw V?.(e),e}var WA;function nt(){return yt("AGFzbQEAAAAB8AEeYAF/AGABfwF/YAJ/fwF/YAN/f38Bf2ACf38AYAN/f38AYAAAYAR/f39/AGAGf39/f39/AGAFf39/f38AYAABf2AEf39/fwF/YAp/f39/f39/f39/AGAEf39/fwF8YAV/f39/fwF8YAd/f39/f39/AGAFf39/fn4AYAh/f39/f39/fwBgBn9/f39/fwF8YAt/f39/f39/f39/fwBgAn98AX9gA39/fwF8YAx/f39/f39/f39/f38AYA1/f39/f39/f39/f39/AGADf39+AX9gBX9/f39/AX9gA39/fQBgAn9/AX1gA39+fwF+YAJ/fAACzAI3AWEBYQAKAWEBYgAEAWEBYwAFAWEBZAADAWEBZQABAWEBZgACAWEBZwAMAWEBaAAAAWEBaQAJAWEBagACAWEBawAAAWEBbAAHAWEBbQABAWEBbgAFAWEBbwAFAWEBcAADAWEBcQANAWEBcgALAWEBcwAFAWEBdAAQAWEBdQARAWEBdgAAAWEBdwAGAWEBeAABAWEBeQASAWEBegANAWEBQQAOAWEBQgAGAWEBQwAFAWEBRAATAWEBRQAAAWEBRgAGAWEBRwAUAWEBSAAGAWEBSQABAWEBSgALAWEBSwAAAWEBTAAAAWEBTQAEAWEBTgAHAWEBTwAEAWEBUAAFAWEBUQAKAWEBUgAOAWEBUwAVAWEBVAABAWEBVQACAWEBVgABAWEBVwAAAWEBWAAMAWEBWQAIAWEBWgAIAWEBXwAAAWEBJAAWAWECYWEAFwN7egQAAQMAAwAYAAEJAQUAAAEAAAgHBgYBAQMPBQAPBAIFAQQZBgEABgELBhoBGwAGAQAAAgkHCQgDAwAAAhwBAwECAAABAgAAAQICAgICBgAFAwQCCgQEBAQEAgQFAgUCAAEAAgoBAQAEAAAdCgABAQEDCAgJCQMHBwAGBAUBcAFubgUHAQGCAoCAAgYIAX8BQfDIBAsHVA8CYmECAAJjYQCwAQJkYQB2AmVhAEACZmEAOAJnYQEAAmhhAKEBAmlhAJ4BAmphAJ0BAmthAK8BAmxhAKIBAm1hAHECbmEAcAJvYQCnAQJwYQCmAQmcAQEAQQELbWWcAWSbAZoBmQGYAZcBlgGVAZQBkwGSAWNhkQGQAY8BjgGNAYwBiwGKAWQ5MWNhMIkBiAGHAYYBJAmFARsWNA8QFS0u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cWoiBigCECIEDQALIAYgAzYCEEEYIQEgAiEEQQgLIQAgAyICDAELIAIoAggiBCADNgIMIAIgAzYCCEEYIQBBCCEBQQALIQYgASADaiAENgIAIAMgAjYCDCAAIANqIAY2AgBBhDZBhDYoAgBBAWsiAEF/IAAbNgIACwtiAQF/An9BASAAIABBAU0bIQADQAJAIAAQQCIBBH8gAQVB2MMAKAIAIgENAUEACwwCCyABEQYADAALAAsiAEUEQEEEEEYiAEGYMjYCACAAQdAvNgIAIABB7C9BOxAOAAsgAAt0AQF/IAJFBEAgACgCBCABKAIERg8LIAAgAUYEQEEBDwsgASgCBCICLQAAIQECQCAAKAIEIgMtAAAiAEUNACAAIAFHDQADQCACLQABIQEgAy0AASIARQ0BIAJBAWohAiADQQFqIQMgACABRg0ACwsgACABRgtEAQF/AkAgACgCBCIBQQlPBEBB1DlBADYCAEEnIAEQAUHUOSgCAEHUOUEANgIAQQFGDQEgAEEANgIECw8LQQAQBBA/AAutAwEFfyMAQRBrIgQkACAEIAAoAgAiBUEIaygCACIDNgIMIAQgACADajYCBCAEIAVBBGsoAgA2AgggBCgCBCEGAkAgBCgCCCIFIAJBABA6BEBBACAGIAQoAgwbIQMMAQsjAEFAaiIDJAAgACAGTgRAIAMgAjYCDCADIAU2AgQgAyAANgIIIANBEGpBAEEk/AsAIANBADYCPCADQoGAgICAgICAATcCNCAFIANBBGogBiAGQQFBACAFKAIAKAIUEQgAIABBACADKAIcGyEHCyADQUBrJAAgByIDDQAjAEFAaiIDJAAgAyABNgIMIAMgADYCCCADIAI2AgRBACEAIANBEGpBAEEr/AsAIANBADYCPCADQQE6ADsgBSADQQRqIAZBAUEAIAUoAgAoAhgRCQACQAJAAkAgAygCKA4CAAECCyADKAIYQQAgAygCJEEBRhtBACADKAIgQQFGG0EAIAMoAixBAUYbIQAMAQsgAygCHEEBRwRAIAMoAiwNASADKAIgQQFHDQEgAygCJEEBRw0BCyADKAIUIQALIANBQGskACAAIQMLIARBEGokACADCwYAIAAQOAvOAwIFfwF+IwBBIGsiBCQAAn8gAC0AAARAQQACfyACpyEGIAAoAggiAygCTBogAyADKAJIIgBB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ASAAQQhqIgAgBEkNAAsLCxgAIAAgASgCCEEAEDoEQCABIAIgAxBRCwsGACAAJAALfwBB3DlBATYCAEHgOUEANgIAEGVB4DlB/DkoAgA2AgBB/DlB3Dk2AgBBgDpBOjYCAEGEOkEANgIAEFpBhDpB/DkoAgA2AgBB/DlBgDo2AgBBxDpBgMAANgIAQbw6QfDIBDYCAEGgOkEqNgIAQeg6Qaw7NgIAQcA6QYCABDYCAAsLsCoVAEGACAvhHWZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkAVWludDhBcnJheQBjb2xvck1heABzaE1heAAtKyAgIDBYMHgAdW5zaWduZWQgc2hvcnQAdW5zaWduZWQgaW50AHNldABmbG9hdABpbnZhbGlkIGNvbG9yIG5vcm1hbGl6YXRpb24gY29lZmZpY2llbnRzAGludmFsaWQgc2ggbm9ybWFsaXphdGlvbiBjb2VmZmljaWVudHMAc3VjY2VzcwBjb2xvcnMAZmlsZSBjb250YWlucyAwIGdhdXNzaWFucwBHYXVzc2lhbnMAbWVhbnMAc2hzAHZlbG9jaXRpZXMAb3BhY2l0aWVzAGNvdmFyaWFuY2VzAHZlY3RvcgBhdHRlbXB0aW5nIHRvIHJlYWQgcGFzdCBlbmQgb2YgYnVmZmVyAHVuc2lnbmVkIGNoYXIAc3RkOjpleGNlcHRpb24AZHVyYXRpb24AbWlzbWF0Y2hlZCB2ZXJzaW9uAGNvbG9yTWluAHNoTWluAGJvb2wAbGVuZ3RoAHVuc2lnbmVkIGxvbmcgbG9uZwB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBiYXNpY19zdHJpbmcAc3RkOjpzdHJpbmcAc3RkOjp1MTZzdHJpbmcAc3RkOjp1MzJzdHJpbmcAZ2F1c3NpYW4gY291bnQgbXVzdCBiZSBwb3NpdGl2ZQBjb21iaW5lAGZhaWxlZCB0byByZWFkIGZyb20gZmlsZQBkb3VibGUAb3V0IG9mIGJvdW5kcyBzaCBkZWdyZWUAY2Fubm90IGNvbWJpbmUgZ2F1c3NpYW5zIHdpdGggZGlmZmVyZW50IHNoRGVncmVlAGRlY29kZQBtaXNtYXRjaGVkIG1hZ2ljIHdvcmQAdm9pZABzdGQ6OmJhZF9hbGxvYwBkeW5hbWljAG1nc19lcnJvci5jAG1nc19kZWNvZGUuYwBuZWdhdGl2ZSBkdXJhdGlvbiBlbmNvdW50ZXJlZCBpbiBtZXRhZGF0YQBNZXRhZGF0YQBnYXVzc2lhbiBzcGhlcmljYWwgaGFybW9taWMgZGVncmVlIG11c3QgYmUgbGVzcyB0aGFuIE1HU19HQVVTU0lBTlNfTUFYX1NIX0RFR1JFRQBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgBpbnZhbGlkIGlucHV0IChwcm92aWRlZCBtZW1vcnkvZmlsZSBpbnB1dCB3YXMgaW4gYW4gaW52YWxpZCBmb3JtYXQpAChudWxsKQBpbnZhbGlkIGFyZ3VtZW50cyAoYmFkIGZ1bmN0aW9uIGNhbGwpAGZhaWxlZCB0byB3cml0ZSB0byBhIGZpbGUgKGZ3cml0ZSB3cm90ZSBmZXdlciBieXRlcyB0aGFuIHJlcXVlc3RlZCkAZmFpbGVkIHRvIHJlYWQgZnJvbSBhIGZpbGUgKGZyZWFkIHJlYWQgZmV3ZXIgYnl0ZXMgdGhhbiByZXF1ZXN0ZWQpAGZhaWxlZCB0byBvcGVuIGEgZmlsZSAoZm9wZW4gcmV0dXJuZWQgTlVMTCkAb3V0IG9mIG1lbW9yeSAoTUdTX01BTExPQy9NR1NfUkVBTExPQyByZXR1cm5lZCBOVUxMKQBmYWlsZWQgdG8gY2xvc2UgYSBmaWxlIChmY2xvc2UgcmV0dXJuZWQgRU9GKQBER1MgaW50ZXJuYWwgZXJyb3I6ICIATUdTIEVSUk9SOiAiJXMiIGluICVzIGF0IGxpbmUgJWkKAE1HUyBXQVJOSU5HOiAiJXMiIGluICVzIGF0IGxpbmUgJWkKAAlpbiAlcyBhdCBsaW5lICVpCgAAAACwGAAA4AsAADEyTUdTZ2F1c3NpYW5zAAC0FwAAAAwAAAAAAADYCwAAUDEyTUdTZ2F1c3NpYW5zALQXAAAgDAAAAQAAANgLAABQSzEyTUdTZ2F1c3NpYW5zAHBwAHYAdnAAAAAAAAAAAFgMAAA8AAAAPQAAAD4AAAA/AAAAQAAAAOgYAABkDAAApBQAAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVAxMk1HU2dhdXNzaWFuc04xMGVtc2NyaXB0ZW4xNXNtYXJ0X3B0cl90cmFpdElOU18xMHNoYXJlZF9wdHJJUzFfRUVFMTF2YWxfZGVsZXRlckVOU185YWxsb2NhdG9ySVMxX0VFRUUATjEwZW1zY3JpcHRlbjE1c21hcnRfcHRyX3RyYWl0SU5TdDNfXzIxMHNoYXJlZF9wdHJJMTJNR1NnYXVzc2lhbnNFRUUxMXZhbF9kZWxldGVyRQAAAAAwDwAAsBgAAEwNAABOU3QzX18yMTBzaGFyZWRfcHRySTEyTUdTZ2F1c3NpYW5zRUUAcABwcHAAAEQNAAAAAAAAmA0AAEEAAABCAAAAQwAAAEQAAABFAAAA6BgAAKQNAACkFAAATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJMTJNR1NnYXVzc2lhbnNOU185YWxsb2NhdG9ySVMxX0VFRUUAaXBwAHZwcGkAZnBwAHZwcGYAsBgAAAAOAAAxMU1HU21ldGFkYXRhAAAAMA8AADAPAABcFgAAMA8AAAAAAAA8DgAARgAAAEcAAABIAAAASQAAAEoAAADoGAAASA4AAKQUAABOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQMTJNR1NnYXVzc2lhbnNaWkwyMWVtYmluZF9pbml0X2xpYmRnc19qc3ZFTkszJF83Y2xFUktOMTBlbXNjcmlwdGVuM3ZhbEVFVWxTMl9FX05TXzlhbGxvY2F0b3JJUzFfRUVFRQBaWkwyMWVtYmluZF9pbml0X2xpYmRnc19qc3ZFTkszJF83Y2xFUktOMTBlbXNjcmlwdGVuM3ZhbEVFVWxQMTJNR1NnYXVzc2lhbnNFXwAAAEQNAABEDQAARA0AAHBwcHAAAAAAsBgAADgPAABOMTBlbXNjcmlwdGVuM3ZhbEUAALAYAABUDwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAALAYAACcDwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSXdOU18xMWNoYXJfdHJhaXRzSXdFRU5TXzlhbGxvY2F0b3JJd0VFRUUAALAYAADkDwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURzTlNfMTFjaGFyX3RyYWl0c0lEc0VFTlNfOWFsbG9jYXRvcklEc0VFRUUAAACwGAAAMBAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEaU5TXzExY2hhcl90cmFpdHNJRGlFRU5TXzlhbGxvY2F0b3JJRGlFRUVFAAAAsBgAAHwQAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ljRUUAALAYAACkEAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJYUVFAACwGAAAzBAAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQAAsBgAAPQQAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lzRUUAALAYAAAcEQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJdEVFAACwGAAARBEAAE4xMGVtc2NyaXB0ZW4xMW1l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")}function ht(A){if(ArrayBuffer.isView(A))return A;if(A==WA&&P)return new Uint8Array(P);if(v)return v(A);throw"both async and sync fetching of the wasm failed"}async function ct(A){return ht(A)}async function lt(A,e){try{var g=await ct(A),i=await WebAssembly.instantiate(g,e);return i}catch(s){x(`failed to asynchronously prepare wasm: ${s}`),PA(s)}}async function ut(A,e,g){return lt(e,g)}function dt(){return{a:ir}}async function Dt(){function A(B,a){return hA=B.exports,j=hA.ba,Ee(),ve=hA.ga,rr(hA),Et("wasm-instantiate"),hA}ot("wasm-instantiate");function e(B){return A(B.instance)}var g=dt();if(r.instantiateWasm)return new Promise((B,a)=>{r.instantiateWasm(g,(Q,I)=>{B(A(Q,I))})});WA??=nt();var i=await ut(P,WA,g),s=e(i);return s}class ne{name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var he=A=>{for(;A.length>0;)A.shift()(r)},ce=[],ft=A=>ce.push(A),le=[],wt=A=>le.push(A),yt=A=>{for(var e,g,i=0,s=0,B=A.length,a=new Uint8Array((B*3>>2)-(A[B-2]=="=")-(A[B-1]=="="));i<B;i+=4,s+=3)e=tA[A.charCodeAt(i+1)],g=tA[A.charCodeAt(i+2)],a[s]=tA[A.charCodeAt(i)]<<2|e>>4,a[s+1]=e<<4|g>>2,a[s+2]=g<<6|tA[A.charCodeAt(i+3)];return a},KA=!0,K=A=>Ze(A),O=()=>Xe(),NA=[],OA=0,Ft=A=>{var e=new ZA(A);return e.get_caught()||(e.set_caught(!0),OA--),e.set_rethrown(!1),NA.push(e),Ve(A),qe(A)},eA=0,pt=()=>{_(0,0);var A=NA.pop();ze(A.excPtr),eA=0};class ZA{constructor(e){this.excPtr=e,this.ptr=e-24}set_type(e){N[this.ptr+4>>2]=e}get_type(){return N[this.ptr+4>>2]}set_destructor(e){N[this.ptr+8>>2]=e}get_destructor(){return N[this.ptr+8>>2]}set_caught(e){e=e?1:0,k[this.ptr+12]=e}get_caught(){return k[this.ptr+12]!=0}set_rethrown(e){e=e?1:0,k[this.ptr+13]=e}get_rethrown(){return k[this.ptr+13]!=0}init(e,g){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(g)}set_adjusted_ptr(e){N[this.ptr+16>>2]=e}get_adjusted_ptr(){return N[this.ptr+16>>2]}}var vA=A=>Oe(A),ue=A=>{var e=eA;if(!e)return vA(0),0;var g=new ZA(e);g.set_adjusted_ptr(e);var i=g.get_type();if(!i)return vA(0),e;for(var s of A){if(s===0||s===i)break;var B=g.ptr+16;if(je(s,i,B))return vA(s),e}return vA(i),e},mt=()=>ue([]),Nt=A=>ue([A]),vt=()=>{var A=NA.pop();A||PA("no exception to throw");var e=A.excPtr;throw A.get_rethrown()||(NA.push(A),A.set_rethrown(!0),A.set_caught(!1),OA++),eA=e,eA},Ut=(A,e,g)=>{var i=new ZA(A);throw i.init(e,g),eA=A,OA++,eA},Rt=A=>{throw eA||(eA=A),eA},Yt=()=>PA(""),UA={},RA=A=>{for(;A.length;){var e=A.pop(),g=A.pop();g(e)}};function uA(A){return this.fromWireType(N[A>>2])}var nA={},IA={},YA={},St=class extends Error{constructor(e){super(e),this.name="InternalError"}},SA=A=>{throw new St(A)},iA=(A,e,g)=>{A.forEach(Q=>YA[Q]=e);function i(Q){var I=g(Q);I.length!==A.length&&SA("Mismatched type converter count");for(var E=0;E<A.length;++E)q(A[E],I[E])}var s=new Array(e.length),B=[],a=0;e.forEach((Q,I)=>{IA.hasOwnProperty(Q)?s[I]=IA[Q]:(B.push(Q),nA.hasOwnProperty(Q)||(nA[Q]=[]),nA[Q].push(()=>{s[I]=IA[Q],++a,a===B.length&&i(s)}))}),B.length===0&&i(s)},Gt=A=>{var e=UA[A];delete UA[A];var g=e.rawConstructor,i=e.rawDestructor,s=e.fields,B=s.map(a=>a.getterReturnType).concat(s.map(a=>a.setterArgumentType));iA([A],B,a=>{var Q={};return s.forEach((I,E)=>{var n=I.fieldName,u=a[E],y=a[E].optional,H=I.getter,L=I.getterContext,BA=a[E+s.length],oA=I.setter,AA=I.setterContext;Q[n]={read:rA=>u.fromWireType(H(L,rA)),write:(rA,T)=>{var JA=[];oA(AA,rA,BA.toWireType(JA,T)),RA(JA)},optional:y}}),[{name:e.name,fromWireType:I=>{var E={};for(var n in Q)E[n]=Q[n].read(I);return i(I),E},toWireType:(I,E)=>{for(var n in Q)if(!(n in E)&&!Q[n].optional)throw new TypeError(`Missing field: "${n}"`);var u=g();for(n in Q)Q[n].write(u,E[n]);return I!==null&&I.push(i,u),u},argPackAdvance:$,readValueFromPointer:uA,destructorFunction:i}]})},G=A=>{for(var e="";;){var g=U[A++];if(!g)return e;e+=String.fromCharCode(g)}},dA=class extends Error{constructor(e){super(e),this.name="BindingError"}},f=A=>{throw new dA(A)};function Mt(A,e,g={}){var i=e.name;if(A||f(`type "${i}" must have a positive integer typeid pointer`),IA.hasOwnProperty(A)){if(g.ignoreDuplicateRegistrations)return;f(`Cannot register type '${i}' twice`)}if(IA[A]=e,delete YA[A],nA.hasOwnProperty(A)){var s=nA[A];delete nA[A],s.forEach(B=>B())}}function q(A,e,g={}){return Mt(A,e,g)}var de=(A,e,g)=>{switch(e){case 1:return g?i=>k[i]:i=>U[i];case 2:return g?i=>m[i>>1]:i=>p[i>>1];case 4:return g?i=>QA[i>>2]:i=>N[i>>2];case 8:return g?i=>Ie[i>>3]:i=>Ce[i>>3];default:throw new TypeError(`invalid integer width (${e}): ${A}`)}},kt=(A,e,g,i,s)=>{e=G(e);let B=i===0n,a=Q=>Q;if(B){let Q=g*8;a=I=>BigInt.asUintN(Q,I),s=a(s)}q(A,{name:e,fromWireType:a,toWireType:(Q,I)=>(typeof I=="number"&&(I=BigInt(I)),I),argPackAdvance:$,readValueFromPointer:de(e,g,!B),destructorFunction:null})},$=8,bt=(A,e,g,i)=>{e=G(e),q(A,{name:e,fromWireType:function(s){return!!s},toWireType:function(s,B){return B?g:i},argPackAdvance:$,readValueFromPointer:function(s){return this.fromWireType(U[s])},destructorFunction:null})},Ht=A=>({count:A.count,deleteScheduled:A.deleteScheduled,preservePointerOnDelete:A.preservePointerOnDelete,ptr:A.ptr,ptrType:A.ptrType,smartPtr:A.smartPtr,smartPtrType:A.smartPtrType}),XA=A=>{function e(g){return g.$$.ptrType.registeredClass.name}f(e(A)+" instance already deleted")},VA=!1,De=A=>{},Jt=A=>{A.smartPtr?A.smartPtrType.rawDestructor(A.smartPtr):A.ptrType.registeredClass.rawDestructor(A.ptr)},fe=A=>{A.count.value-=1;var e=A.count.value===0;e&&Jt(A)},DA=A=>typeof FinalizationRegistry>"u"?(DA=e=>e,A):(VA=new FinalizationRegistry(e=>{fe(e.$$)}),DA=e=>{var g=e.$$,i=!!g.smartPtr;if(i){var s={$$:g};VA.register(e,s,e)}return e},De=e=>VA.unregister(e),DA(A)),GA=[],Tt=()=>{for(;GA.length;){var A=GA.pop();A.$$.deleteScheduled=!1,A.delete()}},we,xt=()=>{let A=MA.prototype;Object.assign(A,{isAliasOf(g){if(!(this instanceof MA)||!(g instanceof MA))return!1;var i=this.$$.ptrType.registeredClass,s=this.$$.ptr;g.$$=g.$$;for(var B=g.$$.ptrType.registeredClass,a=g.$$.ptr;i.baseClass;)s=i.upcast(s),i=i.baseClass;for(;B.baseClass;)a=B.upcast(a),B=B.baseClass;return i===B&&s===a},clone(){if(this.$$.ptr||XA(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var g=DA(Object.create(Object.getPrototypeOf(this),{$$:{value:Ht(this.$$)}}));return g.$$.count.value+=1,g.$$.deleteScheduled=!1,g},delete(){this.$$.ptr||XA(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&f("Object already scheduled for deletion"),De(this),fe(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||XA(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&f("Object already scheduled for deletion"),GA.push(this),GA.length===1&&we&&we(Tt),this.$$.deleteScheduled=!0,this}});let e=Symbol.dispose;e&&(A[e]=A.delete)};function MA(){}var zA=(A,e)=>Object.defineProperty(e,"name",{value:A}),ye={},_t=(A,e,g)=>{if(A[e].overloadTable===void 0){var i=A[e];A[e]=function(...s){return A[e].overloadTable.hasOwnProperty(s.length)||f(`Function '${g}' called with an invalid number of arguments (${s.length}) - expects one of (${A[e].overloadTable})!`),A[e].overloadTable[s.length].apply(this,s)},A[e].overloadTable=[],A[e].overloadTable[i.argCount]=i}},Fe=(A,e,g)=>{r.hasOwnProperty(A)?((g===void 0||r[A].overloadTable!==void 0&&r[A].overloadTable[g]!==void 0)&&f(`Cannot register public name '${A}' twice`),_t(r,A,A),r[A].overloadTable.hasOwnProperty(g)&&f(`Cannot register multiple overloads of a function with the same number of arguments (${g})!`),r[A].overloadTable[g]=e):(r[A]=e,r[A].argCount=g)},Lt=48,Pt=57,Wt=A=>{A=A.replace(/[^a-zA-Z0-9_]/g,"$");var e=A.charCodeAt(0);return e>=Lt&&e<=Pt?`_${A}`:A};function Kt(A,e,g,i,s,B,a,Q){this.name=A,this.constructor=e,this.instancePrototype=g,this.rawDestructor=i,this.baseClass=s,this.getActualType=B,this.upcast=a,this.downcast=Q,this.pureVirtualFunctions=[]}var kA=(A,e,g)=>{for(;e!==g;)e.upcast||f(`Expected null or instance of ${g.name}, got an instance of ${e.name}`),A=e.upcast(A),e=e.baseClass;return A},jA=A=>{if(A===null)return"null";var e=typeof A;return e==="object"||e==="array"||e==="function"?A.toString():""+A};function Ot(A,e){if(e===null)return this.isReference&&f(`null is not a valid ${this.name}`),0;e.$$||f(`Cannot pass "${jA(e)}" as a ${this.name}`),e.$$.ptr||f(`Cannot pass deleted object as a pointer of type ${this.name}`);var g=e.$$.ptrType.registeredClass,i=kA(e.$$.ptr,g,this.registeredClass);return i}function Zt(A,e){var g;if(e===null)return this.isReference&&f(`null is not a valid ${this.name}`),this.isSmartPointer?(g=this.rawConstructor(),A!==null&&A.push(this.rawDestructor,g),g):0;(!e||!e.$$)&&f(`Cannot pass "${jA(e)}" as a ${this.name}`),e.$$.ptr||f(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&e.$$.ptrType.isConst&&f(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);var i=e.$$.ptrType.registeredClass;if(g=kA(e.$$.ptr,i,this.registeredClass),this.isSmartPointer)switch(e.$$.smartPtr===void 0&&f("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:e.$$.smartPtrType===this?g=e.$$.smartPtr:f(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:g=e.$$.smartPtr;break;case 2:if(e.$$.smartPtrType===this)g=e.$$.smartPtr;else{var s=e.clone();g=this.rawShare(g,R.toHandle(()=>s.delete())),A!==null&&A.push(this.rawDestructor,g)}break;default:f("Unsupporting sharing policy")}return g}function Xt(A,e){if(e===null)return this.isReference&&f(`null is not a valid ${this.name}`),0;e.$$||f(`Cannot pass "${jA(e)}" as a ${this.name}`),e.$$.ptr||f(`Cannot pass deleted object as a pointer of type ${this.name}`),e.$$.ptrType.isConst&&f(`Cannot convert argument of type ${e.$$.ptrType.name} to parameter type ${this.name}`);var g=e.$$.ptrType.registeredClass,i=kA(e.$$.ptr,g,this.registeredClass);return i}var pe=(A,e,g)=>{if(e===g)return A;if(g.baseClass===void 0)return null;var i=pe(A,e,g.baseClass);return i===null?null:g.downcast(i)},Vt={},zt=(A,e)=>{for(e===void 0&&f("ptr should not be undefined");A.baseClass;)e=A.upcast(e),A=A.baseClass;return e},jt=(A,e)=>(e=zt(A,e),Vt[e]),bA=(A,e)=>{(!e.ptrType||!e.ptr)&&SA("makeClassHandle requires ptr and ptrType");var g=!!e.smartPtrType,i=!!e.smartPtr;return g!==i&&SA("Both smartPtrType and smartPtr must be specified"),e.count={value:1},DA(Object.create(A,{$$:{value:e,writable:!0}}))};function qt(A){var e=this.getPointee(A);if(!e)return this.destructor(A),null;var g=jt(this.registeredClass,e);if(g!==void 0){if(g.$$.count.value===0)return g.$$.ptr=e,g.$$.smartPtr=A,g.clone();var i=g.clone();return this.destructor(A),i}function s(){return this.isSmartPointer?bA(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:e,smartPtrType:this,smartPtr:A}):bA(this.registeredClass.instancePrototype,{ptrType:this,ptr:A})}var B=this.registeredClass.getActualType(e),a=ye[B];if(!a)return s.call(this);var Q;this.isConst?Q=a.constPointerType:Q=a.pointerType;var I=pe(e,this.registeredClass,Q.registeredClass);return I===null?s.call(this):this.isSmartPointer?bA(Q.registeredClass.instancePrototype,{ptrType:Q,ptr:I,smartPtrType:this,smartPtr:A}):bA(Q.registeredClass.instancePrototype,{ptrType:Q,ptr:I})}var $t=()=>{Object.assign(fA.prototype,{getPointee(A){return this.rawGetPointee&&(A=this.rawGetPointee(A)),A},destructor(A){this.rawDestructor?.(A)},argPackAdvance:$,readValueFromPointer:uA,fromWireType:qt})};function fA(A,e,g,i,s,B,a,Q,I,E,n){this.name=A,this.registeredClass=e,this.isReference=g,this.isConst=i,this.isSmartPointer=s,this.pointeeType=B,this.sharingPolicy=a,this.rawGetPointee=Q,this.rawConstructor=I,this.rawShare=E,this.rawDestructor=n,!s&&e.baseClass===void 0?i?(this.toWireType=Ot,this.destructorFunction=null):(this.toWireType=Xt,this.destructorFunction=null):this.toWireType=Zt}var me=(A,e,g)=>{r.hasOwnProperty(A)||SA("Replacing nonexistent public symbol"),r[A].overloadTable!==void 0&&g!==void 0?r[A].overloadTable[g]=e:(r[A]=e,r[A].argCount=g)},Ne=[],ve,W=A=>{var e=Ne[A];return e||(Ne[A]=e=ve.get(A)),e},b=(A,e,g=!1)=>{A=G(A);function i(){var B=W(e);return B}var s=i();return typeof s!="function"&&f(`unknown function pointer with signature ${A}: ${e}`),s};class Ag extends Error{}var Ue=A=>{var e=We(A),g=G(e);return gA(e),g},wA=(A,e)=>{var g=[],i={};function s(B){if(!i[B]&&!IA[B]){if(YA[B]){YA[B].forEach(s);return}g.push(B),i[B]=!0}}throw e.forEach(s),new Ag(`${A}: `+g.map(Ue).join([", "]))},eg=(A,e,g,i,s,B,a,Q,I,E,n,u,y)=>{n=G(n),B=b(s,B),Q&&=b(a,Q),E&&=b(I,E),y=b(u,y);var H=Wt(n);Fe(H,function(){wA(`Cannot construct ${n} due to unbound types`,[i])}),iA([A,e,g],i?[i]:[],L=>{L=L[0];var BA,oA;i?(BA=L.registeredClass,oA=BA.instancePrototype):oA=MA.prototype;var AA=zA(n,function(...ge){if(Object.getPrototypeOf(this)!==rA)throw new dA(`Use 'new' to construct ${n}`);if(T.constructor_body===void 0)throw new dA(`${n} has no accessible constructor`);var et=T.constructor_body[ge.length];if(et===void 0)throw new dA(`Tried to invoke ctor of ${n} with invalid number of parameters (${ge.length}) - expected (${Object.keys(T.constructor_body).toString()}) parameters instead!`);return et.apply(this,ge)}),rA=Object.create(oA,{constructor:{value:AA}});AA.prototype=rA;var T=new Kt(n,AA,rA,y,BA,B,Q,E);T.baseClass&&(T.baseClass.__derivedClasses??=[],T.baseClass.__derivedClasses.push(T));var JA=new fA(n,T,!0,!1,!1),$e=new fA(n+"*",T,!1,!1,!1),At=new fA(n+" const*",T,!1,!0,!1);return ye[A]={pointerType:$e,constPointerType:At},me(H,AA),[JA,$e,At]})},Re=(A,e)=>{for(var g=[],i=0;i<A;i++)g.push(N[e+i*4>>2]);return g};function Ye(A){for(var e=1;e<A.length;++e)if(A[e]!==null&&A[e].destructorFunction===void 0)return!0;return!1}function tg(A,e,g,i){var s=Ye(A),B=A.length-2,a=[],Q=["fn"];e&&Q.push("thisWired");for(var I=0;I<B;++I)a.push(`arg${I}`),Q.push(`arg${I}Wired`);a=a.join(","),Q=Q.join(",");var E=`return function (${a}) {
2
2
  `;s&&(E+=`var destructors = [];
3
3
  `);var n=s?"destructors":"null",u=["humanName","throwBindingError","invoker","fn","runDestructors","retType","classParam"];e&&(E+=`var thisWired = classParam['toWireType'](${n}, this);
4
4
  `);for(var I=0;I<B;++I)E+=`var arg${I}Wired = argType${I}['toWireType'](${n}, arg${I});
5
- `,u.push(`argType${I}`);if(E+=(g||r?"var rv = ":"")+`invoker(${Q});
5
+ `,u.push(`argType${I}`);if(E+=(g||i?"var rv = ":"")+`invoker(${Q});
6
6
  `,s)E+=`runDestructors(destructors);
7
7
  `;else for(var I=e?1:2;I<A.length;++I){var y=I===1?"thisWired":"arg"+(I-2)+"Wired";A[I].destructorFunction!==null&&(E+=`${y}_dtor(${y});
8
8
  `,u.push(`${y}_dtor`))}return g&&(E+=`var ret = retType['fromWireType'](rv);
9
9
  return ret;
10
10
  `),E+=`}
11
- `,[u,E]}function Se(A,e,g,r,s,B){var a=e.length;a<2&&f("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Q=e[1]!==null&&g!==null,I=Ye(e),E=e[0].name!=="void",n=[A,f,r,s,RA,e[0],e[1]],u=0;u<a-2;++u)n.push(e[u+2]);if(!I)for(var u=Q?1:2;u<e.length;++u)e[u].destructorFunction!==null&&n.push(e[u].destructorFunction);let[y,H]=tg(e,Q,E,B);var L=new Function(...y,H)(...n);return zA(A,L)}for(var gg=(A,e,g,r,s,B)=>{var a=Re(e,g);s=b(r,s),rA([],[A],Q=>{Q=Q[0];var I=`constructor ${Q.name}`;if(Q.registeredClass.constructor_body===void 0&&(Q.registeredClass.constructor_body=[]),Q.registeredClass.constructor_body[e-1]!==void 0)throw new dA(`Cannot register multiple constructors with identical number of parameters (${e-1}) for class '${Q.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return Q.registeredClass.constructor_body[e-1]=()=>{wA(`Cannot construct ${Q.name} due to unbound types`,a)},rA([],a,E=>(E.splice(1,0,null),Q.registeredClass.constructor_body[e-1]=Se(I,E,null,s,B),[])),[]})},Ge=(A,e,g)=>(A instanceof Object||f(`${g} with invalid "this": ${A}`),A instanceof e.registeredClass.constructor||f(`${g} incompatible with "this" of type ${A.constructor.name}`),A.$$.ptr||f(`cannot call emscripten binding method ${g} on deleted object`),kA(A.$$.ptr,A.$$.ptrType.registeredClass,e.registeredClass)),ig=(A,e,g,r,s,B,a,Q,I,E)=>{e=G(e),s=b(r,s),rA([],[A],n=>{n=n[0];var u=`${n.name}.${e}`,y={get(){wA(`Cannot access ${u} due to unbound types`,[g,a])},enumerable:!0,configurable:!0};return I?y.set=()=>wA(`Cannot access ${u} due to unbound types`,[g,a]):y.set=H=>f(u+" is a read-only property"),Object.defineProperty(n.registeredClass.instancePrototype,e,y),rA([],I?[g,a]:[g],H=>{var L=H[0],BA={get(){var AA=Ge(this,n,u+" getter");return L.fromWireType(s(B,AA))},enumerable:!0};if(I){I=b(Q,I);var oA=H[1];BA.set=function(AA){var iA=Ge(this,n,u+" setter"),T=[];I(E,iA,oA.toWireType(T,AA)),RA(T)}}return Object.defineProperty(n.registeredClass.instancePrototype,e,BA),[]}),[]})},Me=[],CA=[0,1,,1,null,1,!0,1,!1,1],qA=A=>{A>9&&--CA[A+1]===0&&(CA[A]=void 0,Me.push(A))},R={toValue:A=>(A||f(`Cannot use deleted val. handle = ${A}`),CA[A]),toHandle:A=>{switch(A){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let e=Me.pop()||CA.length;return CA[e]=A,CA[e+1]=1,e}}}},rg={name:"emscripten::val",fromWireType:A=>{var e=R.toValue(A);return qA(A),e},toWireType:(A,e)=>R.toHandle(e),argPackAdvance:$,readValueFromPointer:uA,destructorFunction:null},sg=A=>q(A,rg),Bg=(A,e)=>{switch(e){case 4:return function(g){return this.fromWireType(Qe[g>>2])};case 8:return function(g){return this.fromWireType(ae[g>>3])};default:throw new TypeError(`invalid float width (${e}): ${A}`)}},Qg=(A,e,g)=>{e=G(e),q(A,{name:e,fromWireType:r=>r,toWireType:(r,s)=>s,argPackAdvance:$,readValueFromPointer:Bg(e,g),destructorFunction:null})},ag=A=>{A=A.trim();let e=A.indexOf("(");return e===-1?A:A.slice(0,e)},Ig=(A,e,g,r,s,B,a,Q)=>{var I=Re(e,g);A=G(A),A=ag(A),s=b(r,s,a),Fe(A,function(){wA(`Cannot call ${A} due to unbound types`,I)},e-1),rA([],I,E=>{var n=[E[0],null].concat(E.slice(1));return me(A,Se(A,n,null,s,B,a),e-1),[]})},Cg=(A,e,g,r,s)=>{e=G(e);let B=r===0,a=I=>I;if(B){var Q=32-8*g;a=I=>I<<Q>>>Q,s=a(s)}q(A,{name:e,fromWireType:a,toWireType:(I,E)=>E,argPackAdvance:$,readValueFromPointer:de(e,g,r!==0),destructorFunction:null})},og=(A,e,g)=>{var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array],s=r[e];function B(a){var Q=N[a>>2],I=N[a+4>>2];return new s(k.buffer,I,Q)}g=G(g),q(A,{name:g,fromWireType:B,argPackAdvance:$,readValueFromPointer:B},{ignoreDuplicateRegistrations:!0})},Eg=(A,e,g,r,s,B,a,Q,I,E,n,u)=>{g=G(g),B=b(s,B),Q=b(a,Q),E=b(I,E),u=b(n,u),rA([A],[e],y=>{y=y[0];var H=new fA(g,y.registeredClass,!1,!1,!0,y,r,B,Q,E,u);return[H]})},ng=(A,e,g,r)=>{if(!(r>0))return 0;for(var s=g,B=g+r-1,a=0;a<A.length;++a){var Q=A.codePointAt(a);if(Q<=127){if(g>=B)break;e[g++]=Q}else if(Q<=2047){if(g+1>=B)break;e[g++]=192|Q>>6,e[g++]=128|Q&63}else if(Q<=65535){if(g+2>=B)break;e[g++]=224|Q>>12,e[g++]=128|Q>>6&63,e[g++]=128|Q&63}else{if(g+3>=B)break;e[g++]=240|Q>>18,e[g++]=128|Q>>12&63,e[g++]=128|Q>>6&63,e[g++]=128|Q&63,a++}}return e[g]=0,g-s},hg=(A,e,g)=>ng(A,U,e,g),cg=A=>{for(var e=0,g=0;g<A.length;++g){var r=A.charCodeAt(g);r<=127?e++:r<=2047?e+=2:r>=55296&&r<=57343?(e+=4,++g):e+=3}return e},ke=typeof TextDecoder<"u"?new TextDecoder:void 0,be=(A,e=0,g=NaN)=>{for(var r=e+g,s=e;A[s]&&!(s>=r);)++s;if(s-e>16&&A.buffer&&ke)return ke.decode(A.subarray(e,s));for(var B="";e<s;){var a=A[e++];if(!(a&128)){B+=String.fromCharCode(a);continue}var Q=A[e++]&63;if((a&224)==192){B+=String.fromCharCode((a&31)<<6|Q);continue}var I=A[e++]&63;if((a&240)==224?a=(a&15)<<12|Q<<6|I:a=(a&7)<<18|Q<<12|I<<6|A[e++]&63,a<65536)B+=String.fromCharCode(a);else{var E=a-65536;B+=String.fromCharCode(55296|E>>10,56320|E&1023)}}return B},lg=(A,e)=>A?be(U,A,e):"",ug=(A,e)=>{e=G(e);var g=!0;q(A,{name:e,fromWireType(r){var s=N[r>>2],B=r+4,a;if(g)for(var Q=B,I=0;I<=s;++I){var E=B+I;if(I==s||U[E]==0){var n=E-Q,u=lg(Q,n);a===void 0?a=u:(a+="\0",a+=u),Q=E+1}}else{for(var y=new Array(s),I=0;I<s;++I)y[I]=String.fromCharCode(U[B+I]);a=y.join("")}return gA(r),a},toWireType(r,s){s instanceof ArrayBuffer&&(s=new Uint8Array(s));var B,a=typeof s=="string";a||ArrayBuffer.isView(s)&&s.BYTES_PER_ELEMENT==1||f("Cannot pass non-string to std::string"),g&&a?B=cg(s):B=s.length;var Q=ee(4+B+1),I=Q+4;if(N[Q>>2]=B,a)if(g)hg(s,I,B+1);else for(var E=0;E<B;++E){var n=s.charCodeAt(E);n>255&&(gA(Q),f("String has UTF-16 code units that do not fit in 8 bits")),U[I+E]=n}else U.set(s,I);return r!==null&&r.push(gA,Q),Q},argPackAdvance:$,readValueFromPointer:uA,destructorFunction(r){gA(r)}})},He=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,dg=(A,e)=>{for(var g=A>>1,r=g+e/2,s=g;!(s>=r)&&p[s];)++s;if(s-g>16&&He)return He.decode(p.subarray(g,s));for(var B="",a=g;!(a>=r);++a){var Q=p[a];if(Q==0)break;B+=String.fromCharCode(Q)}return B},Dg=(A,e,g)=>{if(g??=2147483647,g<2)return 0;g-=2;for(var r=e,s=g<A.length*2?g/2:A.length,B=0;B<s;++B){var a=A.charCodeAt(B);m[e>>1]=a,e+=2}return m[e>>1]=0,e-r},fg=A=>A.length*2,wg=(A,e)=>{for(var g="",r=0;!(r>=e/4);r++){var s=QA[A+r*4>>2];if(!s)break;g+=String.fromCodePoint(s)}return g},yg=(A,e,g)=>{if(g??=2147483647,g<4)return 0;for(var r=e,s=r+g-4,B=0;B<A.length;++B){var a=A.codePointAt(B);if(a>65535&&B++,QA[e>>2]=a,e+=4,e+4>s)break}return QA[e>>2]=0,e-r},Fg=A=>{for(var e=0,g=0;g<A.length;++g){var r=A.codePointAt(g);r>65535&&g++,e+=4}return e},pg=(A,e,g)=>{g=G(g);var r,s,B,a;e===2?(r=dg,s=Dg,a=fg,B=Q=>p[Q>>1]):e===4&&(r=wg,s=yg,a=Fg,B=Q=>N[Q>>2]),q(A,{name:g,fromWireType:Q=>{for(var I=N[Q>>2],E,n=Q+4,u=0;u<=I;++u){var y=Q+4+u*e;if(u==I||B(y)==0){var H=y-n,L=r(n,H);E===void 0?E=L:(E+="\0",E+=L),n=y+e}}return gA(Q),E},toWireType:(Q,I)=>{typeof I!="string"&&f(`Cannot pass non-string to C++ string type ${g}`);var E=a(I),n=ee(4+E+e);return N[n>>2]=E/e,s(I,n+4,E+e),Q!==null&&Q.push(gA,n),n},argPackAdvance:$,readValueFromPointer:uA,destructorFunction(Q){gA(Q)}})},mg=(A,e,g,r,s,B)=>{UA[A]={name:G(e),rawConstructor:b(g,r),rawDestructor:b(s,B),fields:[]}},Ng=(A,e,g,r,s,B,a,Q,I,E)=>{UA[A].fields.push({fieldName:G(e),getterReturnType:g,getter:b(r,s),getterContext:B,setterArgumentType:a,setter:b(Q,I),setterContext:E})},vg=(A,e)=>{e=G(e),q(A,{isVoid:!0,name:e,argPackAdvance:0,fromWireType:()=>{},toWireType:(g,r)=>{}})},Je=0,Ug=()=>{KA=!1,Je=0},$A=(A,e)=>{var g=IA[A];return g===void 0&&f(`${e} has unknown type ${Ue(A)}`),g},Te=(A,e,g)=>{var r=[],s=A.toWireType(r,g);return r.length&&(N[e>>2]=R.toHandle(r)),s},Rg=(A,e,g)=>(A=R.toValue(A),e=$A(e,"emval::as"),Te(e,g,A)),HA=[],Yg=(A,e,g,r)=>(A=HA[A],e=R.toValue(e),A(null,e,g,r)),Sg={},Ae=A=>{var e=Sg[A];return e===void 0?G(A):e},Gg=(A,e,g,r,s)=>(A=HA[A],e=R.toValue(e),g=Ae(g),A(e,e[g],r,s)),xe=()=>globalThis,Mg=A=>A===0?R.toHandle(xe()):(A=Ae(A),R.toHandle(xe()[A])),kg=A=>{var e=HA.length;return HA.push(A),e},bg=(A,e)=>{for(var g=new Array(A),r=0;r<A;++r)g[r]=$A(N[e+r*4>>2],`parameter ${r}`);return g},Hg=(A,e,g)=>{var r=bg(A,e),s=r.shift();A--;var B=`return function (obj, func, destructorsRef, args) {
12
- `,a=0,Q=[];g===0&&Q.push("obj");for(var I=["retType"],E=[s],n=0;n<A;++n)Q.push(`arg${n}`),I.push(`argType${n}`),E.push(r[n]),B+=` var arg${n} = argType${n}.readValueFromPointer(args${a?"+"+a:""});
13
- `,a+=r[n].argPackAdvance;var u=g===1?"new func":"func.call";B+=` var rv = ${u}(${Q.join(", ")});
11
+ `,[u,E]}function Se(A,e,g,i,s,B){var a=e.length;a<2&&f("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Q=e[1]!==null&&g!==null,I=Ye(e),E=e[0].name!=="void",n=[A,f,i,s,RA,e[0],e[1]],u=0;u<a-2;++u)n.push(e[u+2]);if(!I)for(var u=Q?1:2;u<e.length;++u)e[u].destructorFunction!==null&&n.push(e[u].destructorFunction);let[y,H]=tg(e,Q,E,B);var L=new Function(...y,H)(...n);return zA(A,L)}for(var gg=(A,e,g,i,s,B)=>{var a=Re(e,g);s=b(i,s),iA([],[A],Q=>{Q=Q[0];var I=`constructor ${Q.name}`;if(Q.registeredClass.constructor_body===void 0&&(Q.registeredClass.constructor_body=[]),Q.registeredClass.constructor_body[e-1]!==void 0)throw new dA(`Cannot register multiple constructors with identical number of parameters (${e-1}) for class '${Q.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return Q.registeredClass.constructor_body[e-1]=()=>{wA(`Cannot construct ${Q.name} due to unbound types`,a)},iA([],a,E=>(E.splice(1,0,null),Q.registeredClass.constructor_body[e-1]=Se(I,E,null,s,B),[])),[]})},Ge=(A,e,g)=>(A instanceof Object||f(`${g} with invalid "this": ${A}`),A instanceof e.registeredClass.constructor||f(`${g} incompatible with "this" of type ${A.constructor.name}`),A.$$.ptr||f(`cannot call emscripten binding method ${g} on deleted object`),kA(A.$$.ptr,A.$$.ptrType.registeredClass,e.registeredClass)),rg=(A,e,g,i,s,B,a,Q,I,E)=>{e=G(e),s=b(i,s),iA([],[A],n=>{n=n[0];var u=`${n.name}.${e}`,y={get(){wA(`Cannot access ${u} due to unbound types`,[g,a])},enumerable:!0,configurable:!0};return I?y.set=()=>wA(`Cannot access ${u} due to unbound types`,[g,a]):y.set=H=>f(u+" is a read-only property"),Object.defineProperty(n.registeredClass.instancePrototype,e,y),iA([],I?[g,a]:[g],H=>{var L=H[0],BA={get(){var AA=Ge(this,n,u+" getter");return L.fromWireType(s(B,AA))},enumerable:!0};if(I){I=b(Q,I);var oA=H[1];BA.set=function(AA){var rA=Ge(this,n,u+" setter"),T=[];I(E,rA,oA.toWireType(T,AA)),RA(T)}}return Object.defineProperty(n.registeredClass.instancePrototype,e,BA),[]}),[]})},Me=[],CA=[0,1,,1,null,1,!0,1,!1,1],qA=A=>{A>9&&--CA[A+1]===0&&(CA[A]=void 0,Me.push(A))},R={toValue:A=>(A||f(`Cannot use deleted val. handle = ${A}`),CA[A]),toHandle:A=>{switch(A){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let e=Me.pop()||CA.length;return CA[e]=A,CA[e+1]=1,e}}}},ig={name:"emscripten::val",fromWireType:A=>{var e=R.toValue(A);return qA(A),e},toWireType:(A,e)=>R.toHandle(e),argPackAdvance:$,readValueFromPointer:uA,destructorFunction:null},sg=A=>q(A,ig),Bg=(A,e)=>{switch(e){case 4:return function(g){return this.fromWireType(Qe[g>>2])};case 8:return function(g){return this.fromWireType(ae[g>>3])};default:throw new TypeError(`invalid float width (${e}): ${A}`)}},Qg=(A,e,g)=>{e=G(e),q(A,{name:e,fromWireType:i=>i,toWireType:(i,s)=>s,argPackAdvance:$,readValueFromPointer:Bg(e,g),destructorFunction:null})},ag=A=>{A=A.trim();let e=A.indexOf("(");return e===-1?A:A.slice(0,e)},Ig=(A,e,g,i,s,B,a,Q)=>{var I=Re(e,g);A=G(A),A=ag(A),s=b(i,s,a),Fe(A,function(){wA(`Cannot call ${A} due to unbound types`,I)},e-1),iA([],I,E=>{var n=[E[0],null].concat(E.slice(1));return me(A,Se(A,n,null,s,B,a),e-1),[]})},Cg=(A,e,g,i,s)=>{e=G(e);let B=i===0,a=I=>I;if(B){var Q=32-8*g;a=I=>I<<Q>>>Q,s=a(s)}q(A,{name:e,fromWireType:a,toWireType:(I,E)=>E,argPackAdvance:$,readValueFromPointer:de(e,g,i!==0),destructorFunction:null})},og=(A,e,g)=>{var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array],s=i[e];function B(a){var Q=N[a>>2],I=N[a+4>>2];return new s(k.buffer,I,Q)}g=G(g),q(A,{name:g,fromWireType:B,argPackAdvance:$,readValueFromPointer:B},{ignoreDuplicateRegistrations:!0})},Eg=(A,e,g,i,s,B,a,Q,I,E,n,u)=>{g=G(g),B=b(s,B),Q=b(a,Q),E=b(I,E),u=b(n,u),iA([A],[e],y=>{y=y[0];var H=new fA(g,y.registeredClass,!1,!1,!0,y,i,B,Q,E,u);return[H]})},ng=(A,e,g,i)=>{if(!(i>0))return 0;for(var s=g,B=g+i-1,a=0;a<A.length;++a){var Q=A.codePointAt(a);if(Q<=127){if(g>=B)break;e[g++]=Q}else if(Q<=2047){if(g+1>=B)break;e[g++]=192|Q>>6,e[g++]=128|Q&63}else if(Q<=65535){if(g+2>=B)break;e[g++]=224|Q>>12,e[g++]=128|Q>>6&63,e[g++]=128|Q&63}else{if(g+3>=B)break;e[g++]=240|Q>>18,e[g++]=128|Q>>12&63,e[g++]=128|Q>>6&63,e[g++]=128|Q&63,a++}}return e[g]=0,g-s},hg=(A,e,g)=>ng(A,U,e,g),cg=A=>{for(var e=0,g=0;g<A.length;++g){var i=A.charCodeAt(g);i<=127?e++:i<=2047?e+=2:i>=55296&&i<=57343?(e+=4,++g):e+=3}return e},ke=typeof TextDecoder<"u"?new TextDecoder:void 0,be=(A,e=0,g=NaN)=>{for(var i=e+g,s=e;A[s]&&!(s>=i);)++s;if(s-e>16&&A.buffer&&ke)return ke.decode(A.subarray(e,s));for(var B="";e<s;){var a=A[e++];if(!(a&128)){B+=String.fromCharCode(a);continue}var Q=A[e++]&63;if((a&224)==192){B+=String.fromCharCode((a&31)<<6|Q);continue}var I=A[e++]&63;if((a&240)==224?a=(a&15)<<12|Q<<6|I:a=(a&7)<<18|Q<<12|I<<6|A[e++]&63,a<65536)B+=String.fromCharCode(a);else{var E=a-65536;B+=String.fromCharCode(55296|E>>10,56320|E&1023)}}return B},lg=(A,e)=>A?be(U,A,e):"",ug=(A,e)=>{e=G(e);var g=!0;q(A,{name:e,fromWireType(i){var s=N[i>>2],B=i+4,a;if(g)for(var Q=B,I=0;I<=s;++I){var E=B+I;if(I==s||U[E]==0){var n=E-Q,u=lg(Q,n);a===void 0?a=u:(a+="\0",a+=u),Q=E+1}}else{for(var y=new Array(s),I=0;I<s;++I)y[I]=String.fromCharCode(U[B+I]);a=y.join("")}return gA(i),a},toWireType(i,s){s instanceof ArrayBuffer&&(s=new Uint8Array(s));var B,a=typeof s=="string";a||ArrayBuffer.isView(s)&&s.BYTES_PER_ELEMENT==1||f("Cannot pass non-string to std::string"),g&&a?B=cg(s):B=s.length;var Q=ee(4+B+1),I=Q+4;if(N[Q>>2]=B,a)if(g)hg(s,I,B+1);else for(var E=0;E<B;++E){var n=s.charCodeAt(E);n>255&&(gA(Q),f("String has UTF-16 code units that do not fit in 8 bits")),U[I+E]=n}else U.set(s,I);return i!==null&&i.push(gA,Q),Q},argPackAdvance:$,readValueFromPointer:uA,destructorFunction(i){gA(i)}})},He=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,dg=(A,e)=>{for(var g=A>>1,i=g+e/2,s=g;!(s>=i)&&p[s];)++s;if(s-g>16&&He)return He.decode(p.subarray(g,s));for(var B="",a=g;!(a>=i);++a){var Q=p[a];if(Q==0)break;B+=String.fromCharCode(Q)}return B},Dg=(A,e,g)=>{if(g??=2147483647,g<2)return 0;g-=2;for(var i=e,s=g<A.length*2?g/2:A.length,B=0;B<s;++B){var a=A.charCodeAt(B);m[e>>1]=a,e+=2}return m[e>>1]=0,e-i},fg=A=>A.length*2,wg=(A,e)=>{for(var g="",i=0;!(i>=e/4);i++){var s=QA[A+i*4>>2];if(!s)break;g+=String.fromCodePoint(s)}return g},yg=(A,e,g)=>{if(g??=2147483647,g<4)return 0;for(var i=e,s=i+g-4,B=0;B<A.length;++B){var a=A.codePointAt(B);if(a>65535&&B++,QA[e>>2]=a,e+=4,e+4>s)break}return QA[e>>2]=0,e-i},Fg=A=>{for(var e=0,g=0;g<A.length;++g){var i=A.codePointAt(g);i>65535&&g++,e+=4}return e},pg=(A,e,g)=>{g=G(g);var i,s,B,a;e===2?(i=dg,s=Dg,a=fg,B=Q=>p[Q>>1]):e===4&&(i=wg,s=yg,a=Fg,B=Q=>N[Q>>2]),q(A,{name:g,fromWireType:Q=>{for(var I=N[Q>>2],E,n=Q+4,u=0;u<=I;++u){var y=Q+4+u*e;if(u==I||B(y)==0){var H=y-n,L=i(n,H);E===void 0?E=L:(E+="\0",E+=L),n=y+e}}return gA(Q),E},toWireType:(Q,I)=>{typeof I!="string"&&f(`Cannot pass non-string to C++ string type ${g}`);var E=a(I),n=ee(4+E+e);return N[n>>2]=E/e,s(I,n+4,E+e),Q!==null&&Q.push(gA,n),n},argPackAdvance:$,readValueFromPointer:uA,destructorFunction(Q){gA(Q)}})},mg=(A,e,g,i,s,B)=>{UA[A]={name:G(e),rawConstructor:b(g,i),rawDestructor:b(s,B),fields:[]}},Ng=(A,e,g,i,s,B,a,Q,I,E)=>{UA[A].fields.push({fieldName:G(e),getterReturnType:g,getter:b(i,s),getterContext:B,setterArgumentType:a,setter:b(Q,I),setterContext:E})},vg=(A,e)=>{e=G(e),q(A,{isVoid:!0,name:e,argPackAdvance:0,fromWireType:()=>{},toWireType:(g,i)=>{}})},Je=0,Ug=()=>{KA=!1,Je=0},$A=(A,e)=>{var g=IA[A];return g===void 0&&f(`${e} has unknown type ${Ue(A)}`),g},Te=(A,e,g)=>{var i=[],s=A.toWireType(i,g);return i.length&&(N[e>>2]=R.toHandle(i)),s},Rg=(A,e,g)=>(A=R.toValue(A),e=$A(e,"emval::as"),Te(e,g,A)),HA=[],Yg=(A,e,g,i)=>(A=HA[A],e=R.toValue(e),A(null,e,g,i)),Sg={},Ae=A=>{var e=Sg[A];return e===void 0?G(A):e},Gg=(A,e,g,i,s)=>(A=HA[A],e=R.toValue(e),g=Ae(g),A(e,e[g],i,s)),xe=()=>globalThis,Mg=A=>A===0?R.toHandle(xe()):(A=Ae(A),R.toHandle(xe()[A])),kg=A=>{var e=HA.length;return HA.push(A),e},bg=(A,e)=>{for(var g=new Array(A),i=0;i<A;++i)g[i]=$A(N[e+i*4>>2],`parameter ${i}`);return g},Hg=(A,e,g)=>{var i=bg(A,e),s=i.shift();A--;var B=`return function (obj, func, destructorsRef, args) {
12
+ `,a=0,Q=[];g===0&&Q.push("obj");for(var I=["retType"],E=[s],n=0;n<A;++n)Q.push(`arg${n}`),I.push(`argType${n}`),E.push(i[n]),B+=` var arg${n} = argType${n}.readValueFromPointer(args${a?"+"+a:""});
13
+ `,a+=i[n].argPackAdvance;var u=g===1?"new func":"func.call";B+=` var rv = ${u}(${Q.join(", ")});
14
14
  `,s.isVoid||(I.push("emval_returnValue"),E.push(Te),B+=` return emval_returnValue(retType, destructorsRef, rv);
15
15
  `),B+=`};
16
- `;var y=new Function(...I,B)(...E),H=`methodCaller<(${r.map(L=>L.name).join(", ")}) => ${s.name}>`;return kg(zA(H,y))},Jg=(A,e)=>(A=R.toValue(A),e=R.toValue(e),R.toHandle(A[e])),Tg=A=>{A>9&&(CA[A+1]+=1)},xg=A=>R.toHandle(Ae(A)),_g=()=>R.toHandle({}),Lg=A=>{var e=R.toValue(A);RA(e),qA(A)},Pg=(A,e,g)=>{A=R.toValue(A),e=R.toValue(e),g=R.toValue(g),A[e]=g},Wg=(A,e)=>{A=$A(A,"_emval_take_value");var g=A.readValueFromPointer(e);return R.toHandle(g)},yA={},_e=A=>{if(A instanceof ne||A=="unwind")return M;d(1,A)},Le=()=>KA||Je>0,Pe=A=>{M=A,Le()||(i.onExit?.(A),Z=!0),d(A,new ne(A))},Kg=(A,e)=>{M=A,Pe(A)},Og=Kg,Zg=()=>{if(!Le())try{Og(M)}catch(A){_e(A)}},Xg=A=>{if(!Z)try{A(),Zg()}catch(e){_e(e)}},Vg=()=>performance.now(),zg=(A,e)=>{if(yA[A]&&(clearTimeout(yA[A].id),delete yA[A]),!e)return 0;var g=setTimeout(()=>{delete yA[A],Xg(()=>Ke(A,Vg()))},e);return yA[A]={id:g,timeout_ms:e},0},jg=()=>2147483648,qg=(A,e)=>Math.ceil(A/e)*e,$g=A=>{var e=j.buffer,g=(A-e.byteLength+65535)/65536|0;try{return j.grow(g),Ee(),1}catch{}},Ai=A=>{var e=U.length;A>>>=0;var g=jg();if(A>g)return!1;for(var r=1;r<=4;r*=2){var s=e*(1+.2/r);s=Math.min(s,A+100663296);var B=Math.min(g,qg(Math.max(A,s),65536)),a=$g(B);if(a)return!0}return!1},ei=[null,[],[]],ti=(A,e)=>{var g=ei[A];e===0||e===10?((A===1?J:x)(be(g)),g.length=0):g.push(e)},gi=(A,e,g,r)=>{for(var s=0,B=0;B<g;B++){var a=N[e>>2],Q=N[e+4>>2];e+=8;for(var I=0;I<Q;I++)ti(A,U[a+I]);s+=Q}return N[r>>2]=s,0},tA=new Uint8Array(123),sA=25;sA>=0;--sA)tA[48+sA]=52+sA,tA[65+sA]=sA,tA[97+sA]=26+sA;tA[43]=62,tA[47]=63,xt(),$t(),i.noExitRuntime&&(KA=i.noExitRuntime),i.print&&(J=i.print),i.printErr&&(x=i.printErr),i.wasmBinary&&(P=i.wasmBinary),i.arguments&&(h=i.arguments),i.thisProgram&&(D=i.thisProgram);var We,ee,gA,Ke,_,Oe,Ze,Xe,Ve,ze,je,qe;function ii(A){We=A.da,ee=A.ea,gA=A.fa,Ke=A.ha,_=A.ia,Oe=A.ja,Ze=A.ka,Xe=A.la,Ve=A.ma,ze=A.na,je=A.oa,qe=A.pa}var ri={m:Ft,w:pt,a:mt,e:Nt,B:vt,o:Ut,h:Rt,H:Yt,W:Gt,t:kt,N:bt,aa:eg,Z:gg,g:ig,L:sg,s:Qg,u:Ig,i:Cg,c:og,$:Eg,M:ug,n:pg,Y:mg,X:Ng,O:vg,F:Ug,S:Rg,q:Yg,R:Gg,_:qA,V:Mg,p:Hg,U:Jg,K:Tg,T:xg,Q:_g,v:Lg,P:Pg,j:Wg,G:zg,I:Ai,J:gi,z:ni,A:Ei,y:hi,x:li,f:si,d:ai,r:oi,k:Ii,b:Qi,C:Ci,l:ci,D:Bi,E:Pe},hA=await Dt();function si(A,e){var g=O();try{return W(A)(e)}catch(r){if(K(g),r!==r+0)throw r;_(1,0)}}function Bi(A,e,g,r,s,B,a,Q,I,E,n){var u=O();try{W(A)(e,g,r,s,B,a,Q,I,E,n)}catch(y){if(K(u),y!==y+0)throw y;_(1,0)}}function Qi(A,e){var g=O();try{W(A)(e)}catch(r){if(K(g),r!==r+0)throw r;_(1,0)}}function ai(A,e,g){var r=O();try{return W(A)(e,g)}catch(s){if(K(r),s!==s+0)throw s;_(1,0)}}function Ii(A){var e=O();try{W(A)()}catch(g){if(K(e),g!==g+0)throw g;_(1,0)}}function Ci(A,e,g){var r=O();try{W(A)(e,g)}catch(s){if(K(r),s!==s+0)throw s;_(1,0)}}function oi(A,e,g,r){var s=O();try{return W(A)(e,g,r)}catch(B){if(K(s),B!==B+0)throw B;_(1,0)}}function Ei(A,e,g,r,s){var B=O();try{return W(A)(e,g,r,s)}catch(a){if(K(B),a!==a+0)throw a;_(1,0)}}function ni(A,e,g,r){var s=O();try{return W(A)(e,g,r)}catch(B){if(K(s),B!==B+0)throw B;_(1,0)}}function hi(A,e,g,r,s,B){var a=O();try{return W(A)(e,g,r,s,B)}catch(Q){if(K(a),Q!==Q+0)throw Q;_(1,0)}}function ci(A,e,g,r){var s=O();try{W(A)(e,g,r)}catch(B){if(K(s),B!==B+0)throw B;_(1,0)}}function li(A){var e=O();try{return W(A)()}catch(g){if(K(e),g!==g+0)throw g;_(1,0)}}function te(){if(aA>0){lA=te;return}if(at(),aA>0){lA=te;return}function A(){i.calledRun=!0,!Z&&(It(),X?.(i),i.onRuntimeInitialized?.(),Ct())}i.setStatus?(i.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>i.setStatus(""),1),A()},1)):A()}function ui(){if(i.preInit)for(typeof i.preInit=="function"&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.shift()()}return ui(),te(),oe?t=i:t=new Promise((A,e)=>{X=A,V=e}),t}),tt=di;var TA=tt(),xA=navigator.gpu?.requestAdapter({powerPreference:"high-performance"}),ie=xA?.then(async Y=>{if(!Y)return null;let t=Y.limits,i=Y.features,C=await Y.requestDevice({requiredFeatures:i.has("timestamp-query")?["timestamp-query"]:[],requiredLimits:{maxBufferSize:t.maxBufferSize,maxStorageBufferBindingSize:t.maxStorageBufferBindingSize,maxStorageBuffersPerShaderStage:t.maxStorageBuffersPerShaderStage}});return C.lost.then(o=>{if(o.reason!=="destroyed")throw new Error(`WebGPU device was lost with info: ${o.message}`)}),C});if(!navigator.gpu)console.warn("WebGPU not supported, you will be unable to create <dgs-player>");else if(!xA||!ie)throw new Error("WebGPU supported, but failed to create adapter or device!");import{mat4 as Bt,vec3 as re}from"gl-matrix";var FA=class{constructor(t,i){let C=t.means.byteLength+t.velocities.byteLength+t.length*Uint32Array.BYTES_PER_ELEMENT,o;try{o=new SharedArrayBuffer(C)}catch{throw new Error(`SharedArrayBuffer is not available in this environment.
16
+ `;var y=new Function(...I,B)(...E),H=`methodCaller<(${i.map(L=>L.name).join(", ")}) => ${s.name}>`;return kg(zA(H,y))},Jg=(A,e)=>(A=R.toValue(A),e=R.toValue(e),R.toHandle(A[e])),Tg=A=>{A>9&&(CA[A+1]+=1)},xg=A=>R.toHandle(Ae(A)),_g=()=>R.toHandle({}),Lg=A=>{var e=R.toValue(A);RA(e),qA(A)},Pg=(A,e,g)=>{A=R.toValue(A),e=R.toValue(e),g=R.toValue(g),A[e]=g},Wg=(A,e)=>{A=$A(A,"_emval_take_value");var g=A.readValueFromPointer(e);return R.toHandle(g)},yA={},_e=A=>{if(A instanceof ne||A=="unwind")return M;d(1,A)},Le=()=>KA||Je>0,Pe=A=>{M=A,Le()||(r.onExit?.(A),Z=!0),d(A,new ne(A))},Kg=(A,e)=>{M=A,Pe(A)},Og=Kg,Zg=()=>{if(!Le())try{Og(M)}catch(A){_e(A)}},Xg=A=>{if(!Z)try{A(),Zg()}catch(e){_e(e)}},Vg=()=>performance.now(),zg=(A,e)=>{if(yA[A]&&(clearTimeout(yA[A].id),delete yA[A]),!e)return 0;var g=setTimeout(()=>{delete yA[A],Xg(()=>Ke(A,Vg()))},e);return yA[A]={id:g,timeout_ms:e},0},jg=()=>2147483648,qg=(A,e)=>Math.ceil(A/e)*e,$g=A=>{var e=j.buffer,g=(A-e.byteLength+65535)/65536|0;try{return j.grow(g),Ee(),1}catch{}},Ar=A=>{var e=U.length;A>>>=0;var g=jg();if(A>g)return!1;for(var i=1;i<=4;i*=2){var s=e*(1+.2/i);s=Math.min(s,A+100663296);var B=Math.min(g,qg(Math.max(A,s),65536)),a=$g(B);if(a)return!0}return!1},er=[null,[],[]],tr=(A,e)=>{var g=er[A];e===0||e===10?((A===1?J:x)(be(g)),g.length=0):g.push(e)},gr=(A,e,g,i)=>{for(var s=0,B=0;B<g;B++){var a=N[e>>2],Q=N[e+4>>2];e+=8;for(var I=0;I<Q;I++)tr(A,U[a+I]);s+=Q}return N[i>>2]=s,0},tA=new Uint8Array(123),sA=25;sA>=0;--sA)tA[48+sA]=52+sA,tA[65+sA]=sA,tA[97+sA]=26+sA;tA[43]=62,tA[47]=63,xt(),$t(),r.noExitRuntime&&(KA=r.noExitRuntime),r.print&&(J=r.print),r.printErr&&(x=r.printErr),r.wasmBinary&&(P=r.wasmBinary),r.arguments&&(h=r.arguments),r.thisProgram&&(D=r.thisProgram);var We,ee,gA,Ke,_,Oe,Ze,Xe,Ve,ze,je,qe;function rr(A){We=A.da,ee=A.ea,gA=A.fa,Ke=A.ha,_=A.ia,Oe=A.ja,Ze=A.ka,Xe=A.la,Ve=A.ma,ze=A.na,je=A.oa,qe=A.pa}var ir={m:Ft,w:pt,a:mt,e:Nt,B:vt,o:Ut,h:Rt,H:Yt,W:Gt,t:kt,N:bt,aa:eg,Z:gg,g:rg,L:sg,s:Qg,u:Ig,i:Cg,c:og,$:Eg,M:ug,n:pg,Y:mg,X:Ng,O:vg,F:Ug,S:Rg,q:Yg,R:Gg,_:qA,V:Mg,p:Hg,U:Jg,K:Tg,T:xg,Q:_g,v:Lg,P:Pg,j:Wg,G:zg,I:Ar,J:gr,z:nr,A:Er,y:hr,x:lr,f:sr,d:ar,r:or,k:Ir,b:Qr,C:Cr,l:cr,D:Br,E:Pe},hA=await Dt();function sr(A,e){var g=O();try{return W(A)(e)}catch(i){if(K(g),i!==i+0)throw i;_(1,0)}}function Br(A,e,g,i,s,B,a,Q,I,E,n){var u=O();try{W(A)(e,g,i,s,B,a,Q,I,E,n)}catch(y){if(K(u),y!==y+0)throw y;_(1,0)}}function Qr(A,e){var g=O();try{W(A)(e)}catch(i){if(K(g),i!==i+0)throw i;_(1,0)}}function ar(A,e,g){var i=O();try{return W(A)(e,g)}catch(s){if(K(i),s!==s+0)throw s;_(1,0)}}function Ir(A){var e=O();try{W(A)()}catch(g){if(K(e),g!==g+0)throw g;_(1,0)}}function Cr(A,e,g){var i=O();try{W(A)(e,g)}catch(s){if(K(i),s!==s+0)throw s;_(1,0)}}function or(A,e,g,i){var s=O();try{return W(A)(e,g,i)}catch(B){if(K(s),B!==B+0)throw B;_(1,0)}}function Er(A,e,g,i,s){var B=O();try{return W(A)(e,g,i,s)}catch(a){if(K(B),a!==a+0)throw a;_(1,0)}}function nr(A,e,g,i){var s=O();try{return W(A)(e,g,i)}catch(B){if(K(s),B!==B+0)throw B;_(1,0)}}function hr(A,e,g,i,s,B){var a=O();try{return W(A)(e,g,i,s,B)}catch(Q){if(K(a),Q!==Q+0)throw Q;_(1,0)}}function cr(A,e,g,i){var s=O();try{W(A)(e,g,i)}catch(B){if(K(s),B!==B+0)throw B;_(1,0)}}function lr(A){var e=O();try{return W(A)()}catch(g){if(K(e),g!==g+0)throw g;_(1,0)}}function te(){if(aA>0){lA=te;return}if(at(),aA>0){lA=te;return}function A(){r.calledRun=!0,!Z&&(It(),X?.(r),r.onRuntimeInitialized?.(),Ct())}r.setStatus?(r.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>r.setStatus(""),1),A()},1)):A()}function ur(){if(r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.shift()()}return ur(),te(),oe?t=r:t=new Promise((A,e)=>{X=A,V=e}),t}),tt=dr;var TA=tt(),xA=navigator.gpu?.requestAdapter({powerPreference:"high-performance"}),re=xA?.then(async Y=>{if(!Y)return null;let t=Y.limits,r=Y.features,C=await Y.requestDevice({requiredFeatures:r.has("timestamp-query")?["timestamp-query"]:[],requiredLimits:{maxBufferSize:t.maxBufferSize,maxStorageBufferBindingSize:t.maxStorageBufferBindingSize,maxStorageBuffersPerShaderStage:t.maxStorageBuffersPerShaderStage}});return C.lost.then(o=>{if(o.reason!=="destroyed")throw new Error(`WebGPU device was lost with info: ${o.message}`)}),C});if(!navigator.gpu)console.warn("WebGPU not supported, you will be unable to create <dgs-player>");else if(!xA||!re)throw new Error("WebGPU supported, but failed to create adapter or device!");import{mat4 as Bt,vec3 as ie}from"gl-matrix";var FA=class{constructor(t,r){let C=t.means.byteLength+t.velocities.byteLength+t.length*Uint32Array.BYTES_PER_ELEMENT,o;try{o=new SharedArrayBuffer(C)}catch{throw new Error(`SharedArrayBuffer is not available in this environment.
17
17
 
18
18
  This commonly means either:
19
19
  \u2022 Cross-origin isolation is not enabled.
20
- \u2022 You are on an unsupported browser`)}let h=0;new Float32Array(o,h,t.means.length).set(t.means);let d=h+t.means.byteLength;new Float32Array(o,d,t.velocities.length).set(t.velocities);let F=d+t.velocities.byteLength;this.#t=new Worker(new URL("./workers/sort.js",import.meta.url),{type:"module"}),this.#t.onmessage=l=>{if(l.data.type!=="sorted")return;let v=new Uint32Array(o,t.means.byteLength+t.velocities.byteLength,l.data.count);i(v,l.data.duration)},this.#t.postMessage({type:"init",count:t.length,dynamic:!!t.dynamic,sab:o,meansOffset:h,velocitiesOffset:d,indicesOffset:F})}sort(t,i,C){this.#t.postMessage({type:"sort",view:t.slice(),proj:i.slice(),time:C})}#t=null};var gt=`/* gaussian_preprocess.wgsl
20
+ \u2022 You are on an unsupported browser`)}let h=0;new Float32Array(o,h,t.means.length).set(t.means);let d=h+t.means.byteLength;new Float32Array(o,d,t.velocities.length).set(t.velocities);let F=d+t.velocities.byteLength;this.#t=new Worker(new URL("./workers/sort.js",import.meta.url),{type:"module"}),this.#t.onmessage=l=>{if(l.data.type!=="sorted")return;let v=new Uint32Array(o,t.means.byteLength+t.velocities.byteLength,l.data.count);r(v,l.data.duration)},this.#t.postMessage({type:"init",count:t.length,dynamic:!!t.dynamic,sab:o,meansOffset:h,velocitiesOffset:d,indicesOffset:F})}sort(t,r,C){this.#t.postMessage({type:"sort",view:t.slice(),proj:r.slice(),time:C})}#t=null};var gt=`/* gaussian_preprocess.wgsl
21
21
  *
22
22
  * performs gaussian culling + preprocessing
23
23
  */
@@ -268,7 +268,7 @@ fn preprocess(@builtin(global_invocation_id) GID: vec3u, @builtin(local_invocati
268
268
  u_renderedGaussians[writeIdx].color = rgba;
269
269
  u_renderedGaussians[writeIdx].center = clipPos.xy / clipPos.w;
270
270
  }
271
- `;var it=`/* gaussian_rasterize.wgsl
271
+ `;var rt=`/* gaussian_rasterize.wgsl
272
272
  *
273
273
  * contains vertex and fragment shaders for rendering a single gaussian
274
274
  */
@@ -344,7 +344,7 @@ fn fs(in: VertexOutput) -> @location(0) vec4f
344
344
  let b = exp(a) * in.color.a;
345
345
  return vec4f(in.color.rgb * b, b);
346
346
  }
347
- `;var rt=` struct VSOut {
347
+ `;var it=` struct VSOut {
348
348
  @builtin(position) pos : vec4<f32>,
349
349
  @location(0) uv : vec2<f32>,
350
350
  };
@@ -370,7 +370,7 @@ fn fs(in: VertexOutput) -> @location(0) vec4f
370
370
  let c = textureSample(colorTex, colorSampler, in.uv);
371
371
  // output premultiplied-like color: rgb in src, alpha = src.a
372
372
  return vec4<f32>(c.rgb, c.a);
373
- }`;var z=Float32Array.BYTES_PER_ELEMENT,EA=Uint32Array.BYTES_PER_ELEMENT,st=64,pA=4,yi=.001,Fi=.001,pi=0,se=class{constructor(t){this.#g=t}async initialize(){this.#t=await TA,this.#A=await ie,this.#a=await xA,this.#f=this.#m(),this.#h=this.#D(),this.#w=this.#p(),this.#y=this.#N(),this.#u=this.#v(),this.#o=this.#Y(),this.#B=this.#S(),this.#a.features.has("timestamp-query")&&(this.#i=this.#F())}resize(){this.#h=this.#D()}setGaussians(t){this.#Q=this.#s?this.#t.combine(t,this.#s):t,this.#e=this.#G(this.#Q);let i=new FA(this.#Q,(C,o)=>{this.#E=!1,this.#C==i&&(this.#H(C),this.#r=!0,this.#n.lastSortTime=o)});this.#r=!1,this.#c=null,this.#C=i}setScene(t){this.#s=t}draw(t,i,C,o={},h=!1){if(!this.#Q||(this.#i==null&&(h=!1),!this.#E&&this.#b(t,C)&&(this.#E=!0,this.#C.sort(t,i,C),this.#c={view:t.slice(),time:C}),!this.#r))return;let D=performance.now();var d=0;this.#d&&(d=D-this.#d),this.#d=D;let w=re.transformMat4(re.create(),re.fromValues(0,0,0),Bt.invert(Bt.create(),t)),F=[i[0]*(this.#g.width/2),i[5]*(this.#g.height/2)],l=[this.#g.width,this.#g.height];this.#M(t,i,w,F,l,C);let v=this.#k(),J=null,x=null;h&&(J=this.#A.createBuffer({size:pA*8,usage:GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC}),x=this.#A.createBuffer({size:pA*8,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}));let P=this.#A.createCommandEncoder(),Z=P.beginComputePass({timestampWrites:h?{querySet:this.#i.querySet,beginningOfPassWriteIndex:0,endOfPassWriteIndex:1}:void 0});Z.setPipeline(this.#w),Z.setBindGroup(0,v.preprocess),this.#I>0&&Z.dispatchWorkgroups(Math.ceil(this.#I/st)),Z.end();let M=P.beginRenderPass({label:"main",colorAttachments:[{view:this.#h.view,clearValue:{r:0,g:0,b:0,a:0},loadOp:"clear",storeOp:"store"}],timestampWrites:h?{querySet:this.#i.querySet,beginningOfPassWriteIndex:2,endOfPassWriteIndex:3}:void 0});M.setPipeline(this.#y),M.setVertexBuffer(0,this.#o.vertex),M.setIndexBuffer(this.#o.index,"uint16"),M.setBindGroup(0,v.rasterize),this.#I>0&&M.drawIndexed(6,this.#I),M.end();let X=o.backgroundColor??[0,0,0],V=P.beginRenderPass({label:"composite",colorAttachments:[{view:this.#f.getCurrentTexture().createView(),clearValue:{r:X[0],g:X[1],b:X[2],a:1},loadOp:"clear",storeOp:"store"}]});V.setPipeline(this.#u),V.setBindGroup(0,v.composite),V.draw(3),V.end(),h&&(P.resolveQuerySet(this.#i.querySet,0,pA,J,0),P.copyBufferToBuffer(J,0,x,0,pA*8)),this.#A.queue.submit([P.finish()]),h&&x.mapAsync(GPUMapMode.READ).then(()=>{let j=x.getMappedRange(),k=new BigUint64Array(j);if(this.#i.accumFrames++,this.#i.accumTime+=d,this.#i.accumPreprocessTime+=Number(k[1]-k[0]),this.#i.accumRasterTime+=Number(k[3]-k[2]),x.unmap(),this.#i.accumTime>=1e3){let U=this.#i.accumPreprocessTime/1e6/this.#i.accumFrames,m=this.#i.accumRasterTime/1e6/this.#i.accumFrames,p=U+m;this.#n.preprocessTime=U,this.#n.rasterTime=m,this.#n.totalTime=p,this.#i.accumFrames=0,this.#i.accumTime=0,this.#i.accumPreprocessTime=0,this.#i.accumRasterTime=0}})}getPerformanceProfile(){return this.#n}#t=null;#A=null;#a=null;#g=null;#f=null;#h=null;#w=null;#y=null;#u=null;#i=null;#s=null;#Q=null;#e=null;#o=null;#B=null;#I=0;#C=null;#r=!1;#E=!1;#c=null;#d=null;#n={};#m(){let t=this.#g.getContext("webgpu");return t.configure({device:this.#A,format:navigator.gpu.getPreferredCanvasFormat(),alphaMode:"opaque"}),t}#D(){let t=this.#g.width|0,i=this.#g.height|0;if(t==0||i==0)return;let C=navigator.gpu.getPreferredCanvasFormat(),o=this.#A.createTexture({size:[t,i,1],format:C,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});return{tex:o,view:o.createView(),sampler:this.#A.createSampler({magFilter:"linear",minFilter:"linear"})}}#p(){let t=this.#A.createShaderModule({label:"gaussian preprocess",code:gt});return this.#A.createComputePipeline({label:"gaussian preprocess",layout:"auto",compute:{module:t,entryPoint:"preprocess",constants:{WORKGROUP_SIZE:st}}})}#N(){let t=this.#A.createShaderModule({label:"gaussian rasterize",code:it});return this.#A.createRenderPipeline({label:"gaussian",layout:"auto",vertex:{module:t,entryPoint:"vs",buffers:[{stepMode:"vertex",arrayStride:2*z,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:navigator.gpu.getPreferredCanvasFormat(),blend:{alpha:{srcFactor:"one-minus-dst-alpha",dstFactor:"one",operation:"add"},color:{srcFactor:"one-minus-dst-alpha",dstFactor:"one",operation:"add"}}}]},primitive:{topology:"triangle-list",cullMode:"none"}})}#v(){let t=this.#A.createShaderModule({label:"composite",code:rt});return this.#A.createRenderPipeline({label:"composite",layout:"auto",vertex:{module:t,entryPoint:"vs"},fragment:{module:t,entryPoint:"fs",targets:[{format:navigator.gpu.getPreferredCanvasFormat(),blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},primitive:{topology:"triangle-list",cullMode:"none"}})}#F(){return{querySet:this.#A.createQuerySet({type:"timestamp",count:pA}),accumFrames:0,accumTime:0,accumRasterTime:0,accumPreprocessTime:0}}#Y(){let t=new Float32Array([-2,-2,2,-2,2,2,-2,2]),i=this.#A.createBuffer({label:"quad vertices",size:t.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});this.#A.queue.writeBuffer(i,0,t);let C=new Uint16Array([0,1,2,0,2,3]),o=this.#A.createBuffer({label:"quad indices",size:C.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});return this.#A.queue.writeBuffer(o,0,C),{vertex:i,index:o}}#S(){let t=0;return t+=16*z,t+=16*z,t+=3*z,t+=1*EA,t+=2*z,t+=2*z,t+=2*z,t+=2*z,t+=1*EA,t+=1*z,t+=2*EA,this.#A.createBuffer({label:"params",size:t,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST})}#G(t){let i=12*z,C=this.#l(this.#e?.means,{label:"means",size:t.means.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST});this.#A.queue.writeBuffer(C,0,t.means);let o=this.#l(this.#e?.covariances,{label:"covariances",size:t.covariances.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST});this.#A.queue.writeBuffer(o,0,t.covariances);let h=this.#l(this.#e?.opacities,{label:"opacities",size:this.#R(t.opacities.byteLength,EA),usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST});this.#U(h,t.opacities);let D=this.#l(this.#e?.colors,{label:"colors",size:this.#R(t.colors.byteLength,EA),usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST});this.#U(D,t.colors);let d=this.#l(this.#e?.shs,{label:"spherical harmomics",size:this.#R(t.shs.byteLength,EA),usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST});this.#U(d,t.shs);let w=this.#l(this.#e?.velocities,{label:"velocities",size:Math.max(t.velocities.byteLength,4*z),usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST});this.#A.queue.writeBuffer(w,0,t.velocities);let F=this.#l(this.#e?.sortedIndices,{label:"sorted indices",size:t.length*EA,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.STORAGE}),l=this.#l(this.#e?.rendered,{label:"rendered gaussians",size:t.length*i,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST|GPUBufferUsage.INDIRECT});return{means:C,covariances:o,opacities:h,colors:D,shs:d,velocities:w,sortedIndices:F,rendered:l}}#M(t,i,C,o,h,D){let d=new ArrayBuffer(this.#B.size),w=new Float32Array(d),F=new Uint32Array(d),l=0;w.set(t,l),l+=16,w.set(i,l),l+=16,w.set(C,l),l+=3,F.set([this.#Q.shDegree],l),l+=1,w.set(o,l),l+=2,w.set(h,l),l+=2,w.set([this.#Q.colorMin,this.#Q.colorMax],l),l+=2,w.set([this.#Q.shMin,this.#Q.shMax],l),l+=2,F.set([Number(this.#Q.dynamic)],l),l+=1,w.set([D],l),l+=1,F.set([this.#I],l),l+=1,this.#A.queue.writeBuffer(this.#B,0,d)}#k(){let t=this.#A.createBindGroup({label:"gaussian preprocess",layout:this.#w.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.#B}},{binding:1,resource:{buffer:this.#e.means}},{binding:2,resource:{buffer:this.#e.covariances}},{binding:3,resource:{buffer:this.#e.opacities}},{binding:4,resource:{buffer:this.#e.colors}},{binding:5,resource:{buffer:this.#e.shs}},{binding:6,resource:{buffer:this.#e.velocities}},{binding:7,resource:{buffer:this.#e.sortedIndices}},{binding:8,resource:{buffer:this.#e.rendered}}]}),i=this.#A.createBindGroup({label:"gaussian rasterize",layout:this.#y.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.#B}},{binding:1,resource:{buffer:this.#e.rendered}}]}),C=this.#A.createBindGroup({label:"composite",layout:this.#u.getBindGroupLayout(0),entries:[{binding:0,resource:this.#h.view},{binding:1,resource:this.#h.sampler}]});return{preprocess:t,rasterize:i,composite:C}}#b(t,i){if(this.#c==null)return!0;let C=this.#c.view,o=[t[2],t[6],t[10]],h=[t[12],t[13],t[14]],D=[C[2],C[6],C[10]],d=[C[12],C[13],C[14]],w=1-(o[0]*D[0]+o[1]*D[1]+o[2]*D[2]),F=Math.pow(h[0]-d[0],2)+Math.pow(h[1]-d[1],2)+Math.pow(h[2]-d[2],2),l=Math.abs(i-this.#c.time);return w>yi||F>Fi||l>pi}#H(t){this.#I=t.length,this.#A.queue.writeBuffer(this.#e.sortedIndices,0,t)}#l(t,i){return t==null||t.size<i.size?(t?.destroy(),this.#A.createBuffer(i)):t}#U(t,i){let C,o,h;i instanceof ArrayBuffer?(C=i,o=0,h=i.byteLength):(C=i.buffer,o=i.byteOffset,h=i.byteLength);let D=h&-4;D>0&&this.#A.queue.writeBuffer(t,0,C,o,D);let d=h-D;if(d>0){let w=new Uint8Array(4);w.set(new Uint8Array(C,o+D,d)),this.#A.queue.writeBuffer(t,D,w,0,4)}}#R(t,i){return t==0?i:t+i-1&~(i-1)}},Qt=se;import{mat4 as S,vec3 as c}from"gl-matrix";var mA=class Y{constructor(){if(new.target===Y)throw new Error("Cannot instantiate abstract class Camera directly");this.keysPressed=new Set,this.mouseDown=!1,this.mouseX=0,this.mouseY=0}getViewMatrix(){return null}getProjMatrix(t){let i=this.fov||80;return S.perspective(S.create(),i*Math.PI/180,t,.01,100)}getParams(){return{}}onMouseDown(t){t.button===0&&(this.mouseDown=!0)}onMouseUp(t){t.button===0&&(this.mouseDown=!1)}onMouseMove(t){this.mouseX=t.clientX,this.mouseY=t.clientY}onDoubleClick(t){}onScroll(t){}onTouchStart(t){t.touches.length===1&&(this.mouseDown=!0),this.mouseX=t.touches[0].clientX,this.mouseY=t.touches[0].clientY}onTouchEnd(t){t.touches.length===1&&(this.mouseDown=!1)}onTouchMove(t){this.mouseX=t.touches[0].clientX,this.mouseY=t.touches[0].clientY}onKeyDown(t){this.keysPressed.add(t.code)}onKeyUp(t){this.keysPressed.delete(t.code)}update(t){}_editingSomething(){let t=document.activeElement;return t&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable)}attachToCanvas(t){this._onMouseDown=i=>this.onMouseDown(i),this._onMouseUp=i=>this.onMouseUp(i),this._onMouseMove=i=>this.onMouseMove(i),this._onMouseLeave=i=>this.onMouseUp(i),this._onDoubleClick=i=>this.onDoubleClick(i),this._onWheel=i=>{this.onScroll!==Y.prototype.onScroll&&i.preventDefault(),this.onScroll(i.deltaY)},this._onTouchStart=i=>{this.onTouchStart!=Y.prototype.onTouchStart&&i.preventDefault(),this.onTouchStart(i)},this._onTouchMove=i=>{this.onTouchMove!=Y.prototype.onTouchMove&&i.preventDefault(),this.onTouchMove(i)},this._onTouchEnd=i=>{this.onTouchEnd!=Y.prototype.onTouchEnd&&i.preventDefault(),this.onTouchEnd(i)},this._onKeyDown=i=>{this._editingSomething()||(i.code==="Space"&&i.preventDefault(),this.onKeyDown(i))},this._onKeyUp=i=>{this._editingSomething()||(i.code==="Space"&&i.preventDefault(),this.onKeyUp(i))},t.addEventListener("mousedown",this._onMouseDown),t.addEventListener("mouseup",this._onMouseUp),t.addEventListener("mousemove",this._onMouseMove),t.addEventListener("mouseleave",this._onMouseLeave),t.addEventListener("dblclick",this._onDoubleClick),t.addEventListener("wheel",this._onWheel),t.addEventListener("touchstart",this._onTouchStart),t.addEventListener("touchmove",this._onTouchMove),t.addEventListener("touchend",this._onTouchEnd),window.addEventListener("keydown",this._onKeyDown),window.addEventListener("keyup",this._onKeyUp),this._canvas=t}detachFromCanvas(){this._canvas&&(this._canvas.removeEventListener("mousedown",this._onMouseDown),this._canvas.removeEventListener("mouseup",this._onMouseUp),this._canvas.removeEventListener("mousemove",this._onMouseMove),this._canvas.removeEventListener("mouseleave",this._onMouseLeave),this._canvas.removeEventListener("dblclick",this._onDoubleClick),this._canvas.removeEventListener("wheel",this._onWheel),this._canvas.removeEventListener("touchstart",this._onTouchStart),this._canvas.removeEventListener("touchmove",this._onTouchMove),this._canvas.removeEventListener("touchend",this._onTouchEnd),window.removeEventListener("keydown",this._onKeyDown),window.removeEventListener("keyup",this._onKeyUp),this._canvas=null)}},cA=class extends mA{constructor(t={}){super(),this.fov=t.fov||80,this.sens=t.sens||.003,this.panSens=t.panSens||.0025,this.scrollSens=t.scrollSens||.0025,this.keyMoveSpeed=t.keyMoveSpeed||.02,this.minRadius=t.minRadius||.5,this.maxRadius=t.maxRadius||3,this.targetRadius=t.radius||(this.minRadius+this.maxRadius)/2,this.radius=this.targetRadius,this.targetTheta=t.theta||0,this.theta=this.targetTheta,this.targetPhi=t.phi||0,this.phi=this.targetPhi,this.targetPos=c.fromValues(t.targetX||0,t.targetY||0,t.targetZ||0),this.pos=this.targetPos,this.mouseX=t.mouseX||0,this.mouseY=t.mouseY||0,this.rotating=t.startRotating||!1,this.dragging=t.startRotating||!1,this.pinchStartDistance=0}getViewMatrix(){let t=c.fromValues(this.pos[0]+this.radius*Math.sin(this.theta)*Math.cos(this.phi),this.pos[1]+this.radius*Math.sin(this.phi),this.pos[2]+this.radius*Math.cos(this.theta)*Math.cos(this.phi));return S.lookAt(S.create(),t,this.pos,c.fromValues(0,1,0))}getParams(){return{fov:this.fov,sens:this.sens,panSens:this.panSens,scrollSens:this.scrollSens,radius:this.radius,minRadius:this.minRadius,maxRadius:this.maxRadius,theta:this.theta,phi:this.phi,targetX:this.pos[0],targetY:this.pos[1],targetZ:this.pos[2],mouseX:this.mouseX,mouseY:this.mouseY,startRotating:this.rotating||this.dragging}}onMouseDown(t){if(t.button===0)this.rotating=!0;else return;this.mouseX=t.clientX,this.mouseY=t.clientY}onMouseUp(t){this.rotating=!1}onDoubleClick(t){this.targetRadius/=2}onMouseMove(t){if(this.rotating){let i=t.clientX-this.mouseX,C=t.clientY-this.mouseY;this.targetTheta+=i*this.sens,this.targetPhi-=C*this.sens,this.targetPhi=Math.max(this.targetPhi,-Math.PI/2+.01),this.targetPhi=Math.min(this.targetPhi,Math.PI/2-.01)}this.mouseX=t.clientX,this.mouseY=t.clientY}onScroll(t){this.targetRadius+=t*this.scrollSens,this.targetRadius=Math.max(this.targetRadius,this.minRadius),this.targetRadius=Math.min(this.targetRadius,this.maxRadius)}onTouchStart(t){if(t.touches.length===1)this.mouseX=t.touches[0].clientX,this.mouseY=t.touches[0].clientY,this.dragging=!0;else if(t.touches.length===2){this.dragging=!1;let i=t.touches[0],C=t.touches[1];this.pinchStartDistance=Math.hypot(C.clientX-i.clientX,C.clientY-i.clientY)}}onTouchMove(t){if(t.touches.length===1&&this.dragging){let i=t.touches[0],C=i.clientX-this.mouseX,o=i.clientY-this.mouseY;this.targetTheta+=C*this.sens,this.targetPhi-=o*this.sens,this.targetPhi=Math.max(this.targetPhi,-Math.PI/2),this.targetPhi=Math.min(this.targetPhi,Math.PI/2),this.mouseX=i.clientX,this.mouseY=i.clientY}else if(t.touches.length===2){let i=t.touches[0],C=t.touches[1],o=Math.hypot(C.clientX-i.clientX,C.clientY-i.clientY),h=this.pinchStartDistance-o;this.onScroll(h),this.pinchStartDistance=o}}onTouchEnd(t){t.touches.length===0?this.dragging=!1:t.touches.length===1&&(this.mouseX=t.touches[0].clientX,this.mouseY=t.touches[0].clientY)}update(t){super.update(t);let i=1-Math.pow(.99,t);this.pos=c.add(c.create(),this.pos,c.scale(c.create(),c.sub(c.create(),this.targetPos,this.pos),i)),this.radius+=(this.targetRadius-this.radius)*i,this.theta+=(this.targetTheta-this.theta)*i,this.phi+=(this.targetPhi-this.phi)*i,this.keysPressed.size>0&&this.handleKeyboardMovement(t)}handleKeyboardMovement(t){let i=this.keyMoveSpeed*(t/16.67),C=Math.cos(this.targetTheta),o=-Math.sin(this.targetTheta),h=-Math.sin(this.targetTheta),D=-Math.cos(this.targetTheta),d=0,w=0,F=0;this.keysPressed.has("KeyW")&&(d+=h,F+=D),this.keysPressed.has("KeyS")&&(d-=h,F-=D),this.keysPressed.has("KeyA")&&(d+=C,F+=o),this.keysPressed.has("KeyD")&&(d-=C,F-=o),this.keysPressed.has("Space")&&(w-=1),this.keysPressed.has("ShiftLeft")&&(w+=1),this.targetPos=c.add(c.create(),this.targetPos,c.scale(c.create(),c.normalize(c.create(),c.fromValues(d,w,F)),i))}},_A=class extends mA{constructor(t={}){super(),this.fov=t.fov||80,this.baseTheta=t.baseTheta||Math.PI/4,this.basePhi=t.basePhi||Math.PI/4,this.targetTheta=t.theta||this.baseTheta,this.targetPhi=t.phi||this.basePhi,this.targetRadius=t.radius||1.5,this.theta=this.targetTheta,this.phi=this.targetPhi,this.radius=this.targetRadius,this.minRadius=t.minRadius||.5,this.maxRadius=t.maxRadius||3,this.targetX=t.targetX||0,this.targetY=t.targetY||0,this.targetZ=t.targetZ||0,this.sens=t.sens||.003,this.scrollSens=t.scrollSens||.0025,this.resistance=t.resistance||.25,this.deadZone=t.deadZone||.1,this.snapSmoothness=t.snapSmoothness||.9925,this.valueSmoothness=t.valueSmoothness||.9925,this.radiusSmoothness=t.radiusSmoothness||.99,this.mouseX=t.mouseX||0,this.mouseY=t.mouseY||0,this.rotating=t.startRotating||!1,this.pinchStartDistance=0,this.canvas=null}attachToCanvas(t){super.attachToCanvas(t),this.canvas=t}getViewMatrix(){let t=this.targetX+this.radius*Math.sin(this.theta)*Math.cos(this.phi),i=this.targetY+this.radius*Math.sin(this.phi),C=this.targetZ+this.radius*Math.cos(this.theta)*Math.cos(this.phi);return S.lookAt(S.create(),c.fromValues(t,i,C),c.fromValues(this.targetX,this.targetY,this.targetZ),c.fromValues(0,1,0))}onMouseDown(t){t.button===0&&(this.rotating=!0,this.mouseX=t.clientX,this.mouseY=t.clientY,this.targetTheta=this.theta,this.targetPhi=this.phi,this.targetRadius=this.radius)}onMouseUp(t){t.button===0&&(this.rotating=!1)}onMouseMove(t){if(!this.rotating){this.mouseX=t.clientX,this.mouseY=t.clientY;return}let i=t.clientX-this.mouseX,C=t.clientY-this.mouseY,o=this.targetTheta-this.baseTheta,h=this.targetPhi-this.basePhi,D=this.#t(o,h,this.resistance);this.targetTheta+=i*this.sens*D,this.targetPhi-=C*this.sens*D,this.targetPhi=Math.max(this.targetPhi,-Math.PI/2+.01),this.targetPhi=Math.min(this.targetPhi,Math.PI/2-.01),this.mouseX=t.clientX,this.mouseY=t.clientY}onScroll(t){this.targetRadius+=t*this.scrollSens,this.targetRadius=Math.max(this.targetRadius,this.minRadius),this.targetRadius=Math.min(this.targetRadius,this.maxRadius)}onTouchStart(t){if(t.touches.length===1){let i=t.touches[0];this.rotating=!0,this.mouseX=i.clientX,this.mouseY=i.clientY}else if(t.touches.length===2){this.rotating=!1;let i=t.touches[0],C=t.touches[1];this.pinchStartDistance=Math.hypot(C.clientX-i.clientX,C.clientY-i.clientY)}}onTouchMove(t){if(t.touches.length===1&&this.rotating){let i=t.touches[0],C=i.clientX-this.mouseX,o=i.clientY-this.mouseY,h=this.targetTheta-this.baseTheta,D=this.targetPhi-this.basePhi,d=this.#t(h,D,this.resistance);this.targetTheta+=C*this.sens*d,this.targetPhi-=o*this.sens*d,this.targetPhi=Math.max(this.targetPhi,-Math.PI/2+.01),this.targetPhi=Math.min(this.targetPhi,Math.PI/2-.01),this.mouseX=i.clientX,this.mouseY=i.clientY}else if(t.touches.length===2){let i=t.touches[0],C=t.touches[1],o=Math.hypot(C.clientX-i.clientX,C.clientY-i.clientY),h=this.pinchStartDistance-o;this.onScroll(h),this.pinchStartDistance=o}}onTouchEnd(t){if(t.touches.length===0)this.rotating=!1;else if(t.touches.length===1){let i=t.touches[0];this.mouseX=i.clientX,this.mouseY=i.clientY}}update(t){super.update(t);let i=1-Math.pow(this.snapSmoothness,t),C=1-Math.pow(this.valueSmoothness,t);if(this.rotating)this.theta=this.targetTheta,this.phi=this.targetPhi,this.radius=this.targetRadius;else{let o=this.#A(this.targetTheta,this.targetPhi,this.baseTheta,this.basePhi,this.deadZone);this.targetTheta+=(o.theta-this.targetTheta)*i,this.targetPhi+=(o.phi-this.targetPhi)*i,this.theta+=(this.targetTheta-this.theta)*C,this.phi+=(this.targetPhi-this.phi)*C,this.radius+=(this.targetRadius-this.radius)*(1-Math.pow(this.radiusSmoothness,t))}}#t(t,i,C){let h=Math.hypot(t,i)/(1-C);return 1/(1+h*h)}#A(t,i,C,o,h){let D=t-C,d=i-o,w=Math.hypot(D,d);if(w<=h)return{theta:t,phi:i};{let F=h/w;return{theta:C+D*F,phi:o+d*F}}}getParams(){return{viewMat:this.getViewMatrix(),fov:this.fov,baseTheta:this.baseTheta,basePhi:this.basePhi,theta:this.theta,phi:this.phi,radius:this.radius,minRadius:this.minRadius,maxRadius:this.maxRadius,targetX:this.targetX,targetY:this.targetY,targetZ:this.targetZ,sens:this.sens,scrollSens:this.scrollSens,resistance:this.resistance,deadZone:this.deadZone,snapSmoothness:this.snapSmoothness,valueSmoothness:this.valueSmoothness,radiusSmoothness:this.radiusSmoothness,startRotating:this.mouseDown,mouseX:this.mouseX,mouseY:this.mouseY}}},LA=class extends mA{constructor(t={}){super(),this.screenPos=t.screenPos||[0,0,1],this.screenTarget=t.screenTarget||[0,0,0],this.screenScale=t.screenScale||1,this.eyePosWorld=t.eyePosWorld||[0,0,1],this.worldToVoxelScale=t.worldToVoxelScale||1,this.screenTransform=S.invert(S.create(),S.lookAt(S.create(),this.screenPos,this.screenTarget,[0,1,0]))}getViewMatrix(t){return this.#t(t).view}getProjMatrix(t){return this.#t(t).proj}#t(t){var o=t>1?1:t,h=t>1?1/t:1;o*=this.screenScale,h*=this.screenScale;let D=c.transformMat4(c.create(),c.fromValues(-o,-h,0),this.screenTransform),d=c.transformMat4(c.create(),c.fromValues(o,-h,0),this.screenTransform),w=c.transformMat4(c.create(),c.fromValues(-o,h,0),this.screenTransform),F=c.scale(c.create(),this.eyePosWorld,this.worldToVoxelScale);F[1]+=h,F[2]=Math.max(F[2],1e-4);let l=c.transformMat4(c.create(),F,this.screenTransform),v=c.sub(c.create(),d,D),J=c.sub(c.create(),w,D),x=c.sub(c.create(),D,l),P=c.sub(c.create(),d,l),Z=c.sub(c.create(),w,l);v=c.normalize(c.create(),v),J=c.normalize(c.create(),J);let M=c.scale(c.create(),c.cross(c.create(),v,J),1),X=-c.dot(x,M),V=c.dot(v,x)*.01/X,j=c.dot(v,P)*.01/X,k=c.dot(J,x)*.01/X,U=c.dot(J,Z)*.01/X,m=S.create();m[0]=2*.01/(j-V),m[4]=0,m[8]=(j+V)/(j-V),m[12]=0,m[1]=0,m[5]=2*.01/(U-k),m[9]=(U+k)/(U-k),m[13]=0,m[2]=0,m[6]=0,m[10]=(100+.01)/(.01-100),m[14]=200*.01/(.01-100),m[3]=0,m[7]=0,m[11]=-1,m[15]=0;let p=S.create();p[0]=v[0],p[4]=v[1],p[8]=v[2],p[12]=0,p[1]=J[0],p[5]=J[1],p[9]=J[2],p[13]=0,p[2]=M[0],p[6]=M[1],p[10]=M[2],p[14]=0,p[3]=0,p[7]=0,p[11]=0,p[15]=1;let QA=S.translate(S.create(),S.identity(S.create()),c.scale(c.create(),l,-1));return{view:S.mul(S.create(),p,QA),proj:m}}getParams(){return{screenPos:this.screenPos,screenTarget:this.screenTarget,screenScale:this.screenScale,eyePosWorld:this.eyePosWorld,worldToVoxelScale:this.worldToVoxelScale,startRotating:this.mouseDown,mouseX:this.mouseX,mouseY:this.mouseY}}};var Be=class extends HTMLElement{constructor(){super();let t=this.attachShadow({mode:"open"});TA.then(C=>{this.#t=C,this.#N()});let i=document.createElement("div");i.style.position="relative",i.style.width="100%",i.style.height="100%",i.style.overflow="hidden",t.appendChild(i),this.#A=document.createElement("canvas"),Object.assign(this.#A.style,{width:"100%",height:"100%",display:"block"}),i.appendChild(this.#A),this.#E=document.createElement("div"),Object.assign(this.#E.style,{position:"absolute",display:"none",top:"1%",left:"1%",color:"white",background:"rgba(0,0,0,0.4)",padding:"8px 8px",fontFamily:"monospace",fontSize:"12px",borderRadius:"8px",backdropFilter:"blur(6px)",whiteSpace:"pre",pointerEvents:"none",userSelect:"none"}),i.appendChild(this.#E),this.#I=document.createElement("div"),Object.assign(this.#I.style,{position:"absolute",bottom:"1%",left:"50%",transform:"translateX(-50%)",display:"none",alignItems:"center",justifyContent:"center",gap:"8px",background:"rgba(0, 0, 0, 0.4)",padding:"8px 8px",borderRadius:"8px",backdropFilter:"blur(6px)",boxSizing:"border-box",width:"50%",flexWrap:"wrap"}),i.appendChild(this.#I),this.#C=document.createElement("button"),this.#C.type="button",Object.assign(this.#C.style,{border:"none",background:"transparent",color:"white",fontSize:"24px",cursor:"pointer",padding:"4px",flexShrink:"0"}),this.#C.addEventListener("click",()=>{this.#B=!this.#B,this.#s.length==1&&this.#e>=this.#s[0].metadata.duration&&(this.#e=0)}),this.#I.appendChild(this.#C),this.#r=document.createElement("input"),this.#r.type="range",this.#r.min=0,this.#r.max=1,this.#r.step=.001,this.#r.value=0,Object.assign(this.#r.style,{flex:"1 1 auto",minWidth:"120px",maxWidth:"100%",cursor:"pointer",accentColor:"#fff"}),this.#o=!1,this.#r.addEventListener("input",()=>{this.#e=parseFloat(this.#r.value)}),this.#r.addEventListener("pointerdown",()=>{this.#o=!0}),this.#r.addEventListener("pointerup",()=>{this.#o=!1}),this.#I.appendChild(this.#r)}connectedCallback(){this.#a=new Qt(this.#A),this.#g=new cA,this.#g.attachToCanvas(this.#A),this.#f=new ResizeObserver(t=>{let i=t[0],C=Math.round(i.contentBoxSize[0].inlineSize*window.devicePixelRatio),o=Math.round(i.contentBoxSize[0].blockSize*window.devicePixelRatio),h=i.target;h.width=C,h.height=o,this.#a.resize()}),this.clear(),this.#a.initialize().then(()=>{this.#f.observe(this.#A),requestAnimationFrame(t=>{this.#c(t)})})}disconnectedCallback(){this.#g.detachFromCanvas(),this.#f.disconnect()}static get observedAttributes(){return["src","scene","camera","background-color","loop","autoplay","controls","debug"]}attributeChangedCallback(t,i,C){if(i!==C)switch(t){case"src":{C==null?this.#d(null):this.#m(C).then(o=>{this.#F(()=>{C.endsWith(".ply")?this.#d(this.#t.loadPly(o)):this.#d(this.#t.decode(o))})});break}case"scene":{C==null?this.#n(null):this.#m(C).then(o=>{this.#F(()=>{C.endsWith(".ply")?this.#n(this.#t.loadPly(o)):this.#n(this.#t.decode(o)),this.#a&&this.#a.setGaussians(this.#s[0].gaussians)})});break}case"camera":{let o="default",h={};try{h=JSON.parse(C),o=h.type}catch{}this.setCamera(o,h);break}case"background-color":{try{let o=this.getAttribute("background-color").split(" ").map(h=>Number(h)/255);o.length===3&&(this.#i.backgroundColor=o)}catch{}break}case"loop":this.#h=this.hasAttribute("loop");break;case"autoplay":this.#w=this.hasAttribute("autoplay");break;case"controls":this.#y=this.hasAttribute("controls");break;case"debug":this.#u=this.hasAttribute("debug");break;default:break}}play(){this.#B=!0}pause(){this.#B=!1}enqueue(t){this.#F(()=>{this.#s.push(this.#t.decode(t))})}clear(){this.#F(()=>{this.#s=[{gaussians:new this.#t.Gaussians,metadata:{duration:0}}]})}setCamera(t,i){this.#g.detachFromCanvas(),t==="default"?this.#g=new cA(i):t==="snap"?this.#g=new _A(i):t==="window"?this.#g=new LA(i):(console.warn("Invalid camera provided, defaulting to 'default'"),this.#g=new cA),this.#g.attachToCanvas(this.#A)}get paused(){return!this.#B}get currentTime(){return this.#e}set currentTime(t){let i=this.#s[0].metadata.duration;if(t<0||t>i){console.warn("Setting out-of-bounds currentTime");return}this.#e=t}get currentSegment(){return this.#s[0]}#t=null;#A=null;#a=null;#g=null;#f=null;#h=!1;#w=!1;#y=!1;#u=!1;#i={};#s=[];#Q=null;#e=0;#o=!1;#B=!1;#I=null;#C=null;#r=null;#E=null;#c(t){t/=1e3;var i=0;this.#Q&&(i=t-this.#Q),this.#B&&!this.#o&&(this.#e+=i);let C=this.#s[0],o=C.metadata.duration,h=!1;for(;this.#e>=o&&this.#s.length>1;)o>0&&this.onSegmentEnd?.(!1),this.#e-=o,this.#s.shift(),C=this.#s[0],o=C.metadata.duration,h=!0;h&&this.#a.setGaussians(C.gaussians),this.#h?this.#e%=o>0?o:1:this.#e>o&&(o>0&&this.onSegmentEnd?.(!0),this.#e=o,this.#B=!1);let D=this.#y&&o>0;Object.assign(this.#I.style,{display:D?"flex":"none"}),this.#C.textContent=this.#B?"\u23F8\uFE0F":"\u25B6\uFE0F",this.#r.max=o,!this.#o&&this.#r&&(this.#r.value=this.#e),this.#Q=t,this.#g.update(i*1e3);let d=this.#g.getViewMatrix(this.#A.width/this.#A.height),w=this.#g.getProjMatrix(this.#A.width/this.#A.height),F=this.#e/(o>0?o:1);this.#a.draw(d,w,F,this.#i,this.#u);let l=this.#a.getPerformanceProfile();Object.assign(this.#E.style,{display:this.#u?"flex":"none"}),this.#E.textContent=`Frame Time: ${this.#D(l.totalTime)}
374
- - Preprocess: ${this.#D(l.preprocessTime)}
375
- - Raster: ${this.#D(l.rasterTime)}
376
- Last Sort Time: ${this.#D(l.lastSortTime)}`,requestAnimationFrame(v=>{this.#c(v)})}#d(t){this.#s=[t],this.#e=0,this.#B=this.#w,this.#a.setGaussians(t.gaussians)}#n(t){this.#a.setScene(t.gaussians)}async#m(t){let i=await fetch(t);if(!i.ok)throw new Error("Failed to fetch buffer at "+t);return await i.arrayBuffer()}#D(t){return(t?.toFixed(2)??"N/A")+" ms"}#p=Promise.resolve();#N=null;#v=new Promise(t=>this.#N=t);#F(t){return this.#p=this.#p.then(async()=>(await this.#v,await t()),i=>{throw console.error("Enqueuing call failed: ",i),i}),this.#p}};customElements.define("dgs-player",Be);export{Be as DGSPlayer};
373
+ }`;var z=Float32Array.BYTES_PER_ELEMENT,EA=Uint32Array.BYTES_PER_ELEMENT,st=64,pA=4,yr=.001,Fr=.001,pr=0,se=class{constructor(t){this.#g=t}async initialize(){this.#t=await TA,this.#A=await re,this.#o=await xA,this.#d=this.#p(),this.#c=this.#m(),this.#D=this.#y(),this.#f=this.#N(),this.#u=this.#v(),this.#s=this.#F(),this.#I=this.#S(),this.#o.features.has("timestamp-query")&&(this.#r=this.#U())}resize(){this.#c=this.#m()}setGaussians(t){this.#B=this.#a?this.#t.combine(t,this.#a):t,this.#e=this.#G(this.#B);let r=new FA(this.#B,(C,o)=>{this.#i=!1,this.#E==r&&(this.#H(C),this.#n=!0,this.#h.lastSortTime=o)});this.#n=!1,this.#C=null,this.#E=r}setScene(t){this.#a=t}draw(t,r,C,o={},h=!1){if(!this.#B||(this.#r==null&&(h=!1),!this.#i&&this.#b(t,C)&&(this.#i=!0,this.#E.sort(t,r,C),this.#C={view:t.slice(),time:C}),!this.#n))return;let D=performance.now();var d=0;this.#w&&(d=D-this.#w),this.#w=D;let w=ie.transformMat4(ie.create(),ie.fromValues(0,0,0),Bt.invert(Bt.create(),t)),F=[r[0]*(this.#g.width/2),r[5]*(this.#g.height/2)],l=[this.#g.width,this.#g.height];this.#M(t,r,w,F,l,C);let v=this.#k(),J=null,x=null;h&&(J=this.#A.createBuffer({size:pA*8,usage:GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC}),x=this.#A.createBuffer({size:pA*8,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}));let P=this.#A.createCommandEncoder(),Z=P.beginComputePass({timestampWrites:h?{querySet:this.#r.querySet,beginningOfPassWriteIndex:0,endOfPassWriteIndex:1}:void 0});Z.setPipeline(this.#D),Z.setBindGroup(0,v.preprocess),this.#Q>0&&Z.dispatchWorkgroups(Math.ceil(this.#Q/st)),Z.end();let M=P.beginRenderPass({label:"main",colorAttachments:[{view:this.#c.view,clearValue:{r:0,g:0,b:0,a:0},loadOp:"clear",storeOp:"store"}],timestampWrites:h?{querySet:this.#r.querySet,beginningOfPassWriteIndex:2,endOfPassWriteIndex:3}:void 0});M.setPipeline(this.#f),M.setVertexBuffer(0,this.#s.vertex),M.setIndexBuffer(this.#s.index,"uint16"),M.setBindGroup(0,v.rasterize),this.#Q>0&&M.drawIndexed(6,this.#Q),M.end();let X=o.backgroundColor??[0,0,0],V=P.beginRenderPass({label:"composite",colorAttachments:[{view:this.#d.getCurrentTexture().createView(),clearValue:{r:X[0],g:X[1],b:X[2],a:1},loadOp:"clear",storeOp:"store"}]});V.setPipeline(this.#u),V.setBindGroup(0,v.composite),V.draw(3),V.end(),h&&(P.resolveQuerySet(this.#r.querySet,0,pA,J,0),P.copyBufferToBuffer(J,0,x,0,pA*8)),this.#A.queue.submit([P.finish()]),h&&x.mapAsync(GPUMapMode.READ).then(()=>{let j=x.getMappedRange(),k=new BigUint64Array(j);if(this.#r.accumFrames++,this.#r.accumTime+=d,this.#r.accumPreprocessTime+=Number(k[1]-k[0]),this.#r.accumRasterTime+=Number(k[3]-k[2]),x.unmap(),this.#r.accumTime>=1e3){let U=this.#r.accumPreprocessTime/1e6/this.#r.accumFrames,m=this.#r.accumRasterTime/1e6/this.#r.accumFrames,p=U+m;this.#h.preprocessTime=U,this.#h.rasterTime=m,this.#h.totalTime=p,this.#r.accumFrames=0,this.#r.accumTime=0,this.#r.accumPreprocessTime=0,this.#r.accumRasterTime=0}})}getPerformanceProfile(){return this.#h}#t=null;#A=null;#o=null;#g=null;#d=null;#c=null;#D=null;#f=null;#u=null;#r=null;#a=null;#B=null;#e=null;#s=null;#I=null;#Q=0;#E=null;#n=!1;#i=!1;#C=null;#w=null;#h={};#p(){let t=this.#g.getContext("webgpu");return t.configure({device:this.#A,format:navigator.gpu.getPreferredCanvasFormat(),alphaMode:"opaque"}),t}#m(){let t=this.#g.width|0,r=this.#g.height|0;if(t==0||r==0)return;let C=navigator.gpu.getPreferredCanvasFormat(),o=this.#A.createTexture({size:[t,r,1],format:C,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});return{tex:o,view:o.createView(),sampler:this.#A.createSampler({magFilter:"linear",minFilter:"linear"})}}#y(){let t=this.#A.createShaderModule({label:"gaussian preprocess",code:gt});return this.#A.createComputePipeline({label:"gaussian preprocess",layout:"auto",compute:{module:t,entryPoint:"preprocess",constants:{WORKGROUP_SIZE:st}}})}#N(){let t=this.#A.createShaderModule({label:"gaussian rasterize",code:rt});return this.#A.createRenderPipeline({label:"gaussian",layout:"auto",vertex:{module:t,entryPoint:"vs",buffers:[{stepMode:"vertex",arrayStride:2*z,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:navigator.gpu.getPreferredCanvasFormat(),blend:{alpha:{srcFactor:"one-minus-dst-alpha",dstFactor:"one",operation:"add"},color:{srcFactor:"one-minus-dst-alpha",dstFactor:"one",operation:"add"}}}]},primitive:{topology:"triangle-list",cullMode:"none"}})}#v(){let t=this.#A.createShaderModule({label:"composite",code:it});return this.#A.createRenderPipeline({label:"composite",layout:"auto",vertex:{module:t,entryPoint:"vs"},fragment:{module:t,entryPoint:"fs",targets:[{format:navigator.gpu.getPreferredCanvasFormat(),blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},primitive:{topology:"triangle-list",cullMode:"none"}})}#U(){return{querySet:this.#A.createQuerySet({type:"timestamp",count:pA}),accumFrames:0,accumTime:0,accumRasterTime:0,accumPreprocessTime:0}}#F(){let t=new Float32Array([-2,-2,2,-2,2,2,-2,2]),r=this.#A.createBuffer({label:"quad vertices",size:t.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});this.#A.queue.writeBuffer(r,0,t);let C=new Uint16Array([0,1,2,0,2,3]),o=this.#A.createBuffer({label:"quad indices",size:C.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});return this.#A.queue.writeBuffer(o,0,C),{vertex:r,index:o}}#S(){let t=0;return t+=16*z,t+=16*z,t+=3*z,t+=1*EA,t+=2*z,t+=2*z,t+=2*z,t+=2*z,t+=1*EA,t+=1*z,t+=2*EA,this.#A.createBuffer({label:"params",size:t,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST})}#G(t){let r=12*z,C=this.#l(this.#e?.means,{label:"means",size:t.means.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST});this.#A.queue.writeBuffer(C,0,t.means);let o=this.#l(this.#e?.covariances,{label:"covariances",size:t.covariances.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST});this.#A.queue.writeBuffer(o,0,t.covariances);let h=this.#l(this.#e?.opacities,{label:"opacities",size:this.#Y(t.opacities.byteLength,EA),usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST});this.#R(h,t.opacities);let D=this.#l(this.#e?.colors,{label:"colors",size:this.#Y(t.colors.byteLength,EA),usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST});this.#R(D,t.colors);let d=this.#l(this.#e?.shs,{label:"spherical harmomics",size:this.#Y(t.shs.byteLength,EA),usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST});this.#R(d,t.shs);let w=this.#l(this.#e?.velocities,{label:"velocities",size:Math.max(t.velocities.byteLength,4*z),usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST});this.#A.queue.writeBuffer(w,0,t.velocities);let F=this.#l(this.#e?.sortedIndices,{label:"sorted indices",size:t.length*EA,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.STORAGE}),l=this.#l(this.#e?.rendered,{label:"rendered gaussians",size:t.length*r,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST|GPUBufferUsage.INDIRECT});return{means:C,covariances:o,opacities:h,colors:D,shs:d,velocities:w,sortedIndices:F,rendered:l}}#M(t,r,C,o,h,D){let d=new ArrayBuffer(this.#I.size),w=new Float32Array(d),F=new Uint32Array(d),l=0;w.set(t,l),l+=16,w.set(r,l),l+=16,w.set(C,l),l+=3,F.set([this.#B.shDegree],l),l+=1,w.set(o,l),l+=2,w.set(h,l),l+=2,w.set([this.#B.colorMin,this.#B.colorMax],l),l+=2,w.set([this.#B.shMin,this.#B.shMax],l),l+=2,F.set([Number(this.#B.dynamic)],l),l+=1,w.set([D],l),l+=1,F.set([this.#Q],l),l+=1,this.#A.queue.writeBuffer(this.#I,0,d)}#k(){let t=this.#A.createBindGroup({label:"gaussian preprocess",layout:this.#D.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.#I}},{binding:1,resource:{buffer:this.#e.means}},{binding:2,resource:{buffer:this.#e.covariances}},{binding:3,resource:{buffer:this.#e.opacities}},{binding:4,resource:{buffer:this.#e.colors}},{binding:5,resource:{buffer:this.#e.shs}},{binding:6,resource:{buffer:this.#e.velocities}},{binding:7,resource:{buffer:this.#e.sortedIndices}},{binding:8,resource:{buffer:this.#e.rendered}}]}),r=this.#A.createBindGroup({label:"gaussian rasterize",layout:this.#f.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.#I}},{binding:1,resource:{buffer:this.#e.rendered}}]}),C=this.#A.createBindGroup({label:"composite",layout:this.#u.getBindGroupLayout(0),entries:[{binding:0,resource:this.#c.view},{binding:1,resource:this.#c.sampler}]});return{preprocess:t,rasterize:r,composite:C}}#b(t,r){if(this.#C==null)return!0;let C=this.#C.view,o=[t[2],t[6],t[10]],h=[t[12],t[13],t[14]],D=[C[2],C[6],C[10]],d=[C[12],C[13],C[14]],w=1-(o[0]*D[0]+o[1]*D[1]+o[2]*D[2]),F=Math.pow(h[0]-d[0],2)+Math.pow(h[1]-d[1],2)+Math.pow(h[2]-d[2],2),l=Math.abs(r-this.#C.time);return w>yr||F>Fr||l>pr}#H(t){this.#Q=t.length,this.#A.queue.writeBuffer(this.#e.sortedIndices,0,t)}#l(t,r){return t==null||t.size<r.size?(t?.destroy(),this.#A.createBuffer(r)):t}#R(t,r){let C,o,h;r instanceof ArrayBuffer?(C=r,o=0,h=r.byteLength):(C=r.buffer,o=r.byteOffset,h=r.byteLength);let D=h&-4;D>0&&this.#A.queue.writeBuffer(t,0,C,o,D);let d=h-D;if(d>0){let w=new Uint8Array(4);w.set(new Uint8Array(C,o+D,d)),this.#A.queue.writeBuffer(t,D,w,0,4)}}#Y(t,r){return t==0?r:t+r-1&~(r-1)}},Qt=se;import{mat4 as S,vec3 as c}from"gl-matrix";var mA=class Y{constructor(){if(new.target===Y)throw new Error("Cannot instantiate abstract class Camera directly");this.keysPressed=new Set,this.mouseDown=!1,this.mouseX=0,this.mouseY=0}getViewMatrix(){return null}getProjMatrix(t){let r=this.fov||80;return S.perspective(S.create(),r*Math.PI/180,t,.01,100)}getParams(){return{}}onMouseDown(t){t.button===0&&(this.mouseDown=!0)}onMouseUp(t){t.button===0&&(this.mouseDown=!1)}onMouseMove(t){this.mouseX=t.clientX,this.mouseY=t.clientY}onDoubleClick(t){}onScroll(t){}onTouchStart(t){t.touches.length===1&&(this.mouseDown=!0),this.mouseX=t.touches[0].clientX,this.mouseY=t.touches[0].clientY}onTouchEnd(t){t.touches.length===1&&(this.mouseDown=!1)}onTouchMove(t){this.mouseX=t.touches[0].clientX,this.mouseY=t.touches[0].clientY}onKeyDown(t){this.keysPressed.add(t.code)}onKeyUp(t){this.keysPressed.delete(t.code)}update(t){}_editingSomething(){let t=document.activeElement;return t&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable)}attachToCanvas(t){this._onMouseDown=r=>this.onMouseDown(r),this._onMouseUp=r=>this.onMouseUp(r),this._onMouseMove=r=>this.onMouseMove(r),this._onMouseLeave=r=>this.onMouseUp(r),this._onDoubleClick=r=>this.onDoubleClick(r),this._onWheel=r=>{this.onScroll!==Y.prototype.onScroll&&r.preventDefault(),this.onScroll(r.deltaY)},this._onTouchStart=r=>{this.onTouchStart!=Y.prototype.onTouchStart&&r.preventDefault(),this.onTouchStart(r)},this._onTouchMove=r=>{this.onTouchMove!=Y.prototype.onTouchMove&&r.preventDefault(),this.onTouchMove(r)},this._onTouchEnd=r=>{this.onTouchEnd!=Y.prototype.onTouchEnd&&r.preventDefault(),this.onTouchEnd(r)},this._onKeyDown=r=>{this._editingSomething()||(r.code==="Space"&&r.preventDefault(),this.onKeyDown(r))},this._onKeyUp=r=>{this._editingSomething()||(r.code==="Space"&&r.preventDefault(),this.onKeyUp(r))},t.addEventListener("mousedown",this._onMouseDown),t.addEventListener("mouseup",this._onMouseUp),t.addEventListener("mousemove",this._onMouseMove),t.addEventListener("mouseleave",this._onMouseLeave),t.addEventListener("dblclick",this._onDoubleClick),t.addEventListener("wheel",this._onWheel),t.addEventListener("touchstart",this._onTouchStart),t.addEventListener("touchmove",this._onTouchMove),t.addEventListener("touchend",this._onTouchEnd),window.addEventListener("keydown",this._onKeyDown),window.addEventListener("keyup",this._onKeyUp),this._canvas=t}detachFromCanvas(){this._canvas&&(this._canvas.removeEventListener("mousedown",this._onMouseDown),this._canvas.removeEventListener("mouseup",this._onMouseUp),this._canvas.removeEventListener("mousemove",this._onMouseMove),this._canvas.removeEventListener("mouseleave",this._onMouseLeave),this._canvas.removeEventListener("dblclick",this._onDoubleClick),this._canvas.removeEventListener("wheel",this._onWheel),this._canvas.removeEventListener("touchstart",this._onTouchStart),this._canvas.removeEventListener("touchmove",this._onTouchMove),this._canvas.removeEventListener("touchend",this._onTouchEnd),window.removeEventListener("keydown",this._onKeyDown),window.removeEventListener("keyup",this._onKeyUp),this._canvas=null)}},cA=class extends mA{constructor(t={}){super(),this.fov=t.fov||80,this.sens=t.sens||.003,this.panSens=t.panSens||.0025,this.scrollSens=t.scrollSens||.0025,this.keyMoveSpeed=t.keyMoveSpeed||.02,this.minRadius=t.minRadius||.5,this.maxRadius=t.maxRadius||3,this.targetRadius=t.radius||(this.minRadius+this.maxRadius)/2,this.radius=this.targetRadius,this.targetTheta=t.theta||0,this.theta=this.targetTheta,this.targetPhi=t.phi||0,this.phi=this.targetPhi,this.targetPos=c.fromValues(t.targetX||0,t.targetY||0,t.targetZ||0),this.pos=this.targetPos,this.mouseX=t.mouseX||0,this.mouseY=t.mouseY||0,this.rotating=t.startRotating||!1,this.dragging=t.startRotating||!1,this.pinchStartDistance=0}getViewMatrix(){let t=c.fromValues(this.pos[0]+this.radius*Math.sin(this.theta)*Math.cos(this.phi),this.pos[1]+this.radius*Math.sin(this.phi),this.pos[2]+this.radius*Math.cos(this.theta)*Math.cos(this.phi));return S.lookAt(S.create(),t,this.pos,c.fromValues(0,1,0))}getParams(){return{fov:this.fov,sens:this.sens,panSens:this.panSens,scrollSens:this.scrollSens,radius:this.radius,minRadius:this.minRadius,maxRadius:this.maxRadius,theta:this.theta,phi:this.phi,targetX:this.pos[0],targetY:this.pos[1],targetZ:this.pos[2],mouseX:this.mouseX,mouseY:this.mouseY,startRotating:this.rotating||this.dragging}}onMouseDown(t){if(t.button===0)this.rotating=!0;else return;this.mouseX=t.clientX,this.mouseY=t.clientY}onMouseUp(t){this.rotating=!1}onDoubleClick(t){this.targetRadius/=2}onMouseMove(t){if(this.rotating){let r=t.clientX-this.mouseX,C=t.clientY-this.mouseY;this.targetTheta+=r*this.sens,this.targetPhi-=C*this.sens,this.targetPhi=Math.max(this.targetPhi,-Math.PI/2+.01),this.targetPhi=Math.min(this.targetPhi,Math.PI/2-.01)}this.mouseX=t.clientX,this.mouseY=t.clientY}onScroll(t){this.targetRadius+=t*this.scrollSens,this.targetRadius=Math.max(this.targetRadius,this.minRadius),this.targetRadius=Math.min(this.targetRadius,this.maxRadius)}onTouchStart(t){if(t.touches.length===1)this.mouseX=t.touches[0].clientX,this.mouseY=t.touches[0].clientY,this.dragging=!0;else if(t.touches.length===2){this.dragging=!1;let r=t.touches[0],C=t.touches[1];this.pinchStartDistance=Math.hypot(C.clientX-r.clientX,C.clientY-r.clientY)}}onTouchMove(t){if(t.touches.length===1&&this.dragging){let r=t.touches[0],C=r.clientX-this.mouseX,o=r.clientY-this.mouseY;this.targetTheta+=C*this.sens,this.targetPhi-=o*this.sens,this.targetPhi=Math.max(this.targetPhi,-Math.PI/2),this.targetPhi=Math.min(this.targetPhi,Math.PI/2),this.mouseX=r.clientX,this.mouseY=r.clientY}else if(t.touches.length===2){let r=t.touches[0],C=t.touches[1],o=Math.hypot(C.clientX-r.clientX,C.clientY-r.clientY),h=this.pinchStartDistance-o;this.onScroll(h),this.pinchStartDistance=o}}onTouchEnd(t){t.touches.length===0?this.dragging=!1:t.touches.length===1&&(this.mouseX=t.touches[0].clientX,this.mouseY=t.touches[0].clientY)}update(t){super.update(t);let r=1-Math.pow(.99,t);this.pos=c.add(c.create(),this.pos,c.scale(c.create(),c.sub(c.create(),this.targetPos,this.pos),r)),this.radius+=(this.targetRadius-this.radius)*r,this.theta+=(this.targetTheta-this.theta)*r,this.phi+=(this.targetPhi-this.phi)*r,this.keysPressed.size>0&&this.handleKeyboardMovement(t)}handleKeyboardMovement(t){let r=this.keyMoveSpeed*(t/16.67),C=Math.cos(this.targetTheta),o=-Math.sin(this.targetTheta),h=-Math.sin(this.targetTheta),D=-Math.cos(this.targetTheta),d=0,w=0,F=0;this.keysPressed.has("KeyW")&&(d+=h,F+=D),this.keysPressed.has("KeyS")&&(d-=h,F-=D),this.keysPressed.has("KeyA")&&(d+=C,F+=o),this.keysPressed.has("KeyD")&&(d-=C,F-=o),this.keysPressed.has("Space")&&(w-=1),this.keysPressed.has("ShiftLeft")&&(w+=1),this.targetPos=c.add(c.create(),this.targetPos,c.scale(c.create(),c.normalize(c.create(),c.fromValues(d,w,F)),r))}},_A=class extends mA{constructor(t={}){super(),this.fov=t.fov||80,this.baseTheta=t.baseTheta||Math.PI/4,this.basePhi=t.basePhi||Math.PI/4,this.targetTheta=t.theta||this.baseTheta,this.targetPhi=t.phi||this.basePhi,this.targetRadius=t.radius||1.5,this.theta=this.targetTheta,this.phi=this.targetPhi,this.radius=this.targetRadius,this.minRadius=t.minRadius||.5,this.maxRadius=t.maxRadius||3,this.targetX=t.targetX||0,this.targetY=t.targetY||0,this.targetZ=t.targetZ||0,this.sens=t.sens||.003,this.scrollSens=t.scrollSens||.0025,this.resistance=t.resistance||.25,this.deadZone=t.deadZone||.1,this.snapSmoothness=t.snapSmoothness||.9925,this.valueSmoothness=t.valueSmoothness||.9925,this.radiusSmoothness=t.radiusSmoothness||.99,this.mouseX=t.mouseX||0,this.mouseY=t.mouseY||0,this.rotating=t.startRotating||!1,this.pinchStartDistance=0,this.canvas=null}attachToCanvas(t){super.attachToCanvas(t),this.canvas=t}getViewMatrix(){let t=this.targetX+this.radius*Math.sin(this.theta)*Math.cos(this.phi),r=this.targetY+this.radius*Math.sin(this.phi),C=this.targetZ+this.radius*Math.cos(this.theta)*Math.cos(this.phi);return S.lookAt(S.create(),c.fromValues(t,r,C),c.fromValues(this.targetX,this.targetY,this.targetZ),c.fromValues(0,1,0))}onMouseDown(t){t.button===0&&(this.rotating=!0,this.mouseX=t.clientX,this.mouseY=t.clientY,this.targetTheta=this.theta,this.targetPhi=this.phi,this.targetRadius=this.radius)}onMouseUp(t){t.button===0&&(this.rotating=!1)}onMouseMove(t){if(!this.rotating){this.mouseX=t.clientX,this.mouseY=t.clientY;return}let r=t.clientX-this.mouseX,C=t.clientY-this.mouseY,o=this.targetTheta-this.baseTheta,h=this.targetPhi-this.basePhi,D=this.#t(o,h,this.resistance);this.targetTheta+=r*this.sens*D,this.targetPhi-=C*this.sens*D,this.targetPhi=Math.max(this.targetPhi,-Math.PI/2+.01),this.targetPhi=Math.min(this.targetPhi,Math.PI/2-.01),this.mouseX=t.clientX,this.mouseY=t.clientY}onScroll(t){this.targetRadius+=t*this.scrollSens,this.targetRadius=Math.max(this.targetRadius,this.minRadius),this.targetRadius=Math.min(this.targetRadius,this.maxRadius)}onTouchStart(t){if(t.touches.length===1){let r=t.touches[0];this.rotating=!0,this.mouseX=r.clientX,this.mouseY=r.clientY}else if(t.touches.length===2){this.rotating=!1;let r=t.touches[0],C=t.touches[1];this.pinchStartDistance=Math.hypot(C.clientX-r.clientX,C.clientY-r.clientY)}}onTouchMove(t){if(t.touches.length===1&&this.rotating){let r=t.touches[0],C=r.clientX-this.mouseX,o=r.clientY-this.mouseY,h=this.targetTheta-this.baseTheta,D=this.targetPhi-this.basePhi,d=this.#t(h,D,this.resistance);this.targetTheta+=C*this.sens*d,this.targetPhi-=o*this.sens*d,this.targetPhi=Math.max(this.targetPhi,-Math.PI/2+.01),this.targetPhi=Math.min(this.targetPhi,Math.PI/2-.01),this.mouseX=r.clientX,this.mouseY=r.clientY}else if(t.touches.length===2){let r=t.touches[0],C=t.touches[1],o=Math.hypot(C.clientX-r.clientX,C.clientY-r.clientY),h=this.pinchStartDistance-o;this.onScroll(h),this.pinchStartDistance=o}}onTouchEnd(t){if(t.touches.length===0)this.rotating=!1;else if(t.touches.length===1){let r=t.touches[0];this.mouseX=r.clientX,this.mouseY=r.clientY}}update(t){super.update(t);let r=1-Math.pow(this.snapSmoothness,t),C=1-Math.pow(this.valueSmoothness,t);if(this.rotating)this.theta=this.targetTheta,this.phi=this.targetPhi,this.radius=this.targetRadius;else{let o=this.#A(this.targetTheta,this.targetPhi,this.baseTheta,this.basePhi,this.deadZone);this.targetTheta+=(o.theta-this.targetTheta)*r,this.targetPhi+=(o.phi-this.targetPhi)*r,this.theta+=(this.targetTheta-this.theta)*C,this.phi+=(this.targetPhi-this.phi)*C,this.radius+=(this.targetRadius-this.radius)*(1-Math.pow(this.radiusSmoothness,t))}}#t(t,r,C){let h=Math.hypot(t,r)/(1-C);return 1/(1+h*h)}#A(t,r,C,o,h){let D=t-C,d=r-o,w=Math.hypot(D,d);if(w<=h)return{theta:t,phi:r};{let F=h/w;return{theta:C+D*F,phi:o+d*F}}}getParams(){return{viewMat:this.getViewMatrix(),fov:this.fov,baseTheta:this.baseTheta,basePhi:this.basePhi,theta:this.theta,phi:this.phi,radius:this.radius,minRadius:this.minRadius,maxRadius:this.maxRadius,targetX:this.targetX,targetY:this.targetY,targetZ:this.targetZ,sens:this.sens,scrollSens:this.scrollSens,resistance:this.resistance,deadZone:this.deadZone,snapSmoothness:this.snapSmoothness,valueSmoothness:this.valueSmoothness,radiusSmoothness:this.radiusSmoothness,startRotating:this.mouseDown,mouseX:this.mouseX,mouseY:this.mouseY}}},LA=class extends mA{constructor(t={}){super(),this.screenPos=t.screenPos||[0,0,1],this.screenTarget=t.screenTarget||[0,0,0],this.screenScale=t.screenScale||1,this.eyePosWorld=t.eyePosWorld||[0,0,1],this.worldToVoxelScale=t.worldToVoxelScale||1,this.screenTransform=S.invert(S.create(),S.lookAt(S.create(),this.screenPos,this.screenTarget,[0,1,0]))}getViewMatrix(t){return this.#t(t).view}getProjMatrix(t){return this.#t(t).proj}#t(t){var o=t>1?1:t,h=t>1?1/t:1;o*=this.screenScale,h*=this.screenScale;let D=c.transformMat4(c.create(),c.fromValues(-o,-h,0),this.screenTransform),d=c.transformMat4(c.create(),c.fromValues(o,-h,0),this.screenTransform),w=c.transformMat4(c.create(),c.fromValues(-o,h,0),this.screenTransform),F=c.scale(c.create(),this.eyePosWorld,this.worldToVoxelScale);F[1]+=h,F[2]=Math.max(F[2],1e-4);let l=c.transformMat4(c.create(),F,this.screenTransform),v=c.sub(c.create(),d,D),J=c.sub(c.create(),w,D),x=c.sub(c.create(),D,l),P=c.sub(c.create(),d,l),Z=c.sub(c.create(),w,l);v=c.normalize(c.create(),v),J=c.normalize(c.create(),J);let M=c.scale(c.create(),c.cross(c.create(),v,J),1),X=-c.dot(x,M),V=c.dot(v,x)*.01/X,j=c.dot(v,P)*.01/X,k=c.dot(J,x)*.01/X,U=c.dot(J,Z)*.01/X,m=S.create();m[0]=2*.01/(j-V),m[4]=0,m[8]=(j+V)/(j-V),m[12]=0,m[1]=0,m[5]=2*.01/(U-k),m[9]=(U+k)/(U-k),m[13]=0,m[2]=0,m[6]=0,m[10]=(100+.01)/(.01-100),m[14]=200*.01/(.01-100),m[3]=0,m[7]=0,m[11]=-1,m[15]=0;let p=S.create();p[0]=v[0],p[4]=v[1],p[8]=v[2],p[12]=0,p[1]=J[0],p[5]=J[1],p[9]=J[2],p[13]=0,p[2]=M[0],p[6]=M[1],p[10]=M[2],p[14]=0,p[3]=0,p[7]=0,p[11]=0,p[15]=1;let QA=S.translate(S.create(),S.identity(S.create()),c.scale(c.create(),l,-1));return{view:S.mul(S.create(),p,QA),proj:m}}getParams(){return{screenPos:this.screenPos,screenTarget:this.screenTarget,screenScale:this.screenScale,eyePosWorld:this.eyePosWorld,worldToVoxelScale:this.worldToVoxelScale,startRotating:this.mouseDown,mouseX:this.mouseX,mouseY:this.mouseY}}};var Be=class extends HTMLElement{constructor(){super();let t=this.attachShadow({mode:"open"});TA.then(C=>{this.#t=C,this.#v()});let r=document.createElement("div");r.style.position="relative",r.style.width="100%",r.style.height="100%",r.style.overflow="hidden",t.appendChild(r),this.#A=document.createElement("canvas"),Object.assign(this.#A.style,{width:"100%",height:"100%",display:"block"}),r.appendChild(this.#A),this.#C=document.createElement("div"),Object.assign(this.#C.style,{position:"absolute",display:"none",top:"1%",left:"1%",color:"white",background:"rgba(0,0,0,0.4)",padding:"8px 8px",fontFamily:"monospace",fontSize:"12px",borderRadius:"8px",backdropFilter:"blur(6px)",whiteSpace:"pre",pointerEvents:"none",userSelect:"none"}),r.appendChild(this.#C),this.#E=document.createElement("div"),Object.assign(this.#E.style,{position:"absolute",bottom:"1%",left:"50%",transform:"translateX(-50%)",display:"none",alignItems:"center",justifyContent:"center",gap:"8px",background:"rgba(0, 0, 0, 0.4)",padding:"8px 8px",borderRadius:"8px",backdropFilter:"blur(6px)",boxSizing:"border-box",width:"50%",flexWrap:"wrap"}),r.appendChild(this.#E),this.#n=document.createElement("button"),this.#n.type="button",Object.assign(this.#n.style,{border:"none",background:"transparent",color:"white",fontSize:"24px",cursor:"pointer",padding:"4px",flexShrink:"0"}),this.#n.addEventListener("click",()=>{this.#Q=!this.#Q,this.#a.length==1&&this.#s>=this.#a[0].metadata.duration&&(this.#s=0)}),this.#E.appendChild(this.#n),this.#i=document.createElement("input"),this.#i.type="range",this.#i.min=0,this.#i.max=1,this.#i.step=.001,this.#i.value=0,Object.assign(this.#i.style,{flex:"1 1 auto",minWidth:"120px",maxWidth:"100%",cursor:"pointer",accentColor:"#fff"}),this.#I=!1,this.#i.addEventListener("input",()=>{this.#s=parseFloat(this.#i.value)}),this.#i.addEventListener("pointerdown",()=>{this.#I=!0}),this.#i.addEventListener("pointerup",()=>{this.#I=!1}),this.#E.appendChild(this.#i)}connectedCallback(){this.#o=new Qt(this.#A),this.#g=new cA,this.#g.attachToCanvas(this.#A),this.#d=new ResizeObserver(t=>{let r=t[0],C=Math.round(r.contentBoxSize[0].inlineSize*window.devicePixelRatio),o=Math.round(r.contentBoxSize[0].blockSize*window.devicePixelRatio),h=r.target;h.width=C,h.height=o,this.#o.resize()}),this.clear(),this.#o.initialize().then(()=>{this.#d.observe(this.#A),requestAnimationFrame(t=>{this.#w(t)})})}disconnectedCallback(){this.#g.detachFromCanvas(),this.#d.disconnect()}static get observedAttributes(){return["src","scene","camera","background-color","loop","autoplay","controls","debug"]}attributeChangedCallback(t,r,C){if(r!==C)switch(t){case"src":{C==null?this.#h(null):this.#m(C).then(o=>{this.#F(()=>{C.endsWith(".ply")?this.#h(this.#t.loadPly(o)):this.#h(this.#t.decode(o))})});break}case"scene":{C==null?this.#p(null):this.#m(C).then(o=>{this.#F(()=>{C.endsWith(".ply")?this.#p(this.#t.loadPly(o)):this.#p(this.#t.decode(o)),this.#B=!0})});break}case"camera":{let o="default",h={};try{h=JSON.parse(C),o=h.type}catch{}this.setCamera(o,h);break}case"background-color":{try{let o=this.getAttribute("background-color").split(" ").map(h=>Number(h)/255);o.length===3&&(this.#r.backgroundColor=o)}catch{}break}case"loop":this.#c=this.hasAttribute("loop");break;case"autoplay":this.#D=this.hasAttribute("autoplay");break;case"controls":this.#f=this.hasAttribute("controls");break;case"debug":this.#u=this.hasAttribute("debug");break;default:break}}play(){this.#Q=!0}pause(){this.#Q=!1}enqueue(t){this.#F(()=>{this.#a.push(this.#t.decode(t))})}clear(){this.#F(()=>{this.#a=[{gaussians:new this.#t.Gaussians,metadata:{duration:0}}],this.#B=!0})}setCamera(t,r){this.#g.detachFromCanvas(),t==="default"?this.#g=new cA(r):t==="snap"?this.#g=new _A(r):t==="window"?this.#g=new LA(r):(console.warn("Invalid camera provided, defaulting to 'default'"),this.#g=new cA),this.#g.attachToCanvas(this.#A)}get paused(){return!this.#Q}get currentTime(){return this.#s}set currentTime(t){let r=this.#a[0].metadata.duration;if(t<0||t>r){console.warn("Setting out-of-bounds currentTime");return}this.#s=t}get currentSegment(){return this.#a[0]}#t=null;#A=null;#o=null;#g=null;#d=null;#c=!1;#D=!1;#f=!1;#u=!1;#r={};#a=[];#B=!1;#e=null;#s=0;#I=!1;#Q=!1;#E=null;#n=null;#i=null;#C=null;#w(t){t/=1e3;var r=0;this.#e&&(r=t-this.#e),this.#Q&&!this.#I&&(this.#s+=r);let C=this.#a[0],o=C.metadata.duration,h=!1;for(;this.#s>=o&&this.#a.length>1;)o>0&&this.onSegmentEnd?.(!1),this.#s-=o,this.#a.shift(),C=this.#a[0],o=C.metadata.duration,h=!0;(h||this.#B)&&(this.#o.setGaussians(C.gaussians),this.#B=!1),this.#c?this.#s%=o>0?o:1:this.#s>o&&(o>0&&this.onSegmentEnd?.(!0),this.#s=o,this.#Q=!1);let D=this.#f&&o>0;Object.assign(this.#E.style,{display:D?"flex":"none"}),this.#n.textContent=this.#Q?"\u23F8\uFE0F":"\u25B6\uFE0F",this.#i.max=o,!this.#I&&this.#i&&(this.#i.value=this.#s),this.#e=t,this.#g.update(r*1e3);let d=this.#g.getViewMatrix(this.#A.width/this.#A.height),w=this.#g.getProjMatrix(this.#A.width/this.#A.height),F=this.#s/(o>0?o:1);this.#o.draw(d,w,F,this.#r,this.#u);let l=this.#o.getPerformanceProfile();Object.assign(this.#C.style,{display:this.#u?"flex":"none"}),this.#C.textContent=`Frame Time: ${this.#y(l.totalTime)}
374
+ - Preprocess: ${this.#y(l.preprocessTime)}
375
+ - Raster: ${this.#y(l.rasterTime)}
376
+ Last Sort Time: ${this.#y(l.lastSortTime)}`,requestAnimationFrame(v=>{this.#w(v)})}#h(t){this.#a=[t],this.#s=0,this.#Q=this.#D,this.#B=!0}#p(t){this.#o.setScene(t.gaussians)}async#m(t){let r=await fetch(t);if(!r.ok)throw new Error("Failed to fetch buffer at "+t);return await r.arrayBuffer()}#y(t){return(t?.toFixed(2)??"N/A")+" ms"}#N=Promise.resolve();#v=null;#U=new Promise(t=>this.#v=t);#F(t){return this.#N=this.#N.then(async()=>(await this.#U,await t()),r=>{throw console.error("Enqueuing call failed: ",r),r}),this.#N}};customElements.define("dgs-player",Be);export{Be as DGSPlayer};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dgs-js",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "main": "dist/index.js",
5
5
  "files": [
6
6
  "dist/**/*"