@banou/ripple 0.0.13 → 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{api-Jq4OSTp1-B4uxQLLk.js → api-Jq4OSTp1-BGG3ivUc.js} +3 -3
- package/assets/libtorrent-CnjRmD5O.js +6 -0
- package/assets/worker-cT83ESx9.js +23 -0
- package/{build-DEOZ3A7n.js → build-JdIfVZn7.js} +4 -4
- package/fkn.json +1 -0
- package/index.js +8295 -8404
- package/jassub/fonts.js +1 -1
- package/jassub/jassub-assets.js +1 -0
- package/jassub/jassub-worker.js +1 -1
- package/jassub/worker.js +5 -3
- package/package.json +3 -2
- package/{remote-BLaEXLm6.js → remote-U0iHKFtw.js} +3 -3
- package/sw.js +2 -2
- package/assets/libtorrent-DS_9Yo8M.js +0 -6
- package/assets/worker-BofT0eUK.js +0 -23
package/jassub/worker.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
const e={RAW:`RAW`,PROXY:`PROXY`,THROW:`THROW`,HANDLER:`HANDLER`},t={GET:`GET`,SET:`SET`,APPLY:`APPLY`,CONSTRUCT:`CONSTRUCT`,RELEASE:`RELEASE`},n=Symbol(`Abslink.proxy`),r=Symbol(`Abslink.releaseProxy`),i=Symbol(`Abslink.finalizer`),a=Symbol(`Abslink.thrown`),o=e=>typeof e==`object`&&!!e||typeof e==`function`,s=new Map([[`proxy`,{canHandle:e=>o(e)&&n in e,serialize(e,t){let r=e[n];return l(e,t,r),[r,[]]},deserialize(e,t){return u(t,e)}}],[`throw`,{canHandle:e=>o(e)&&a in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(Error(e.value.message),e.value):e.value}}]]);function c(e,t){let n=t,r=e.slice(0,-1);for(let e of r)Object.prototype.hasOwnProperty.call(n,e)&&(n=n[e]);let i=e[e.length-1],a=i?n[i]:n;return{parent:n,RawValue:a,lastSegment:i}}function l(e,n,r){return n.on(`message`,function o(s){if(!s)return;let{id:l,type:u,path:d,markerID:f}={path:[],...s};if(f!==r)return;let p=(s.argumentList??[]).map(e=>b(e,n)),m;try{let{parent:r,RawValue:i,lastSegment:a}=c(d,e);switch(u){case t.GET:m=i;break;case t.SET:r[a]=b(s.value,n),m=!0;break;case t.APPLY:m=i.apply(r,p);break;case t.CONSTRUCT:m=new i(...p);break;case t.RELEASE:m=void 0;break;default:return}}catch(e){m={value:e,[a]:0}}Promise.resolve(m).catch(e=>({value:e,[a]:0})).then(a=>{u===t.CONSTRUCT&&(a=te(a));let[s,c]=y(a,n);n.postMessage({...s,id:l,markerID:r},c),u===t.RELEASE&&(n.off(`message`,o),e[i]?.(),n.close?.())}).catch(e=>{let[t,i]=y({value:TypeError(`Unserializable return value`),[a]:0},n);n.postMessage({...t,id:l,markerID:r},i)})}),e}function u(e,t){let n=new Map;return e.on(`message`,e=>{if(!e?.id)return;let t=n.get(e.id);if(t)try{t(e)}finally{n.delete(e.id)}}),_({endpoint:e,pendingListeners:n,rootMarkerID:t})}function d(e){if(e)throw Error(`Proxy has been released and is not useable`)}async function f(e){await x(e,{type:t.RELEASE}),e.endpoint.close?.()}const p=new WeakMap,m=`FinalizationRegistry`in globalThis&&new FinalizationRegistry(e=>{let t=(p.get(e)??0)-1;p.set(e,t),t===0&&f(e).finally(()=>{e.pendingListeners.clear()})});function h(e,t){let n=(p.get(t)??0)+1;p.set(t,n),m&&m.register(e,t,e)}function g(e){m&&m.unregister(e)}function _(e,n=[]){let i=!1,a=new Map,o=new Proxy(function(){},{get(s,c){if(d(i),c===r)return async()=>{for(let e of a.values())e[r]();a.clear(),g(o),f(e).finally(()=>{e.pendingListeners.clear()}),i=!0};if(c===`then`){if(n.length===0)return{then:()=>o};let r=x(e,{type:t.GET,path:n.map(e=>e.toString())}).then(t=>b(t,e.endpoint));return r.then.bind(r)}let l=a.get(c);if(l)return l;let u=_(e,[...n,c]);return a.set(c,u),u},set(r,a,o){d(i);let[s,c]=y(o,e.endpoint);return x(e,{type:t.SET,path:[...n,a].map(e=>e.toString()),value:s},c).then(t=>b(t,e.endpoint))},apply(r,a,o){if(d(i),n[n.length-1]===`bind`)return _(e,n.slice(0,-1));let[s,c]=v(o,e);return x(e,{type:t.APPLY,path:n.map(e=>e.toString()),argumentList:s},c).then(t=>b(t,e.endpoint))},construct(r,a){d(i);let[o,s]=v(a,e);return x(e,{type:t.CONSTRUCT,path:n.map(e=>e.toString()),argumentList:o},s).then(t=>b(t,e.endpoint))}});return h(o,e),o}const ee=new WeakMap;function v(e,t){let n=[],r=[];for(let i of e){let[e,a]=y(i,t.endpoint);n.push(e),r.push(...a)}return[n,r]}function te(e){return Object.assign(e,{[n]:w()})}function y(t,n){for(let[r,i]of s)if(i.canHandle(t)){let[a,o]=i.serialize(t,n);return[{type:e.HANDLER,name:r,value:a},o]}return[{type:e.RAW,value:t},ee.get(t)??[]]}function b(t,n){switch(t.type){case e.HANDLER:return s.get(t.name).deserialize(t.value,n);case e.RAW:return t.value}}function x(e,t,n){return new Promise(r=>{let i=w();e.pendingListeners.set(i,r),e.endpoint.postMessage({id:i,...t,markerID:e.rootMarkerID},n)})}const ne=[],re=`0123456789abcdef`;for(let e=0;e<256;e++)ne[e]=re[e>>4&15]+re[e&15];let S=0,C=``;function w(){let e=0;if(!C||S+16>256*2)for(C=``,S=0;e<256;++e)C+=ne[Math.random()*256|0];return C.substring(S,++S+16)}function ie(e,t){let n=new WeakMap;return e.start?.(),t.start?.(),{on(t,r){let i=e=>r(e.data);`addEventListener`in e?e.addEventListener(t,i):`addListener`in e?e.addListener(t,i):e.on(t,i),n.set(r,i)},off(t,r){let i=n.get(r);`removeEventListener`in e?e.removeEventListener(t,i):`removeListener`in e?e.removeListener(t,i):e.off(t,i),n.delete(r)},postMessage(e,n){t.postMessage(e,n)},close(){e!==globalThis&&e.close?.(),t!==globalThis&&t.close?.()}}}function T(e,t=globalThis,n=t){return l(e,ie(t,n))}`queryLocalFonts`in globalThis&&globalThis.queryLocalFonts;const E={100:`Thin`,200:`ExtraLight`,300:`Light`,400:`Regular`,500:`Medium`,600:`SemiBold`,700:`Bold`,800:`ExtraBold`,900:`Black`,1e3:`UltraBlack`};var D=class{family;fullName;postscriptName;style;#e;#t;constructor({family:e,weight:t,isItalic:n,weightName:r}){this.family=e,this.#e=t,this.#t=n,r===`Regular`?n?this.style=`Italic`:this.style=`Regular`:this.style=r+(n?` Italic`:``),this.style===`Regular`?this.fullName=e:this.fullName=`${e} ${this.style}`,this.postscriptName=this.fullName.replace(/ /g,`-`)}async blob(){let e=await(await fetch(`https://fonts.googleapis.com/css2?family=${this.family}:${this.#t?`ital,`:``}wght@${this.#t?`1,`:``}${this.#e}`)).text();for(let t of[/\/\* latin-ext \*\/[\s\S]+url\(([^)]+)\)/,/\/\* latin \*\/[\s\S]+url\(([^)]+)\)/,/url\(([^)]+)\)/]){let n=e.match(t)?.[1];if(n){let e=await fetch(n);if(e.ok)return e.blob()}}throw Error(`Failed to load font blob`)}};function ae([e,t]){let n=[];for(let r of t){let t=``+r,i=t.endsWith(`i`),a=t.replace(`i`,``);if(a.includes(`a`)){let[t,r]=a.split(`a`).map(e=>parseInt(e)*100);for(let a=t;a<=r;a+=100)n.push(new D({family:e,weight:`${t}..${r}`,isItalic:i,weightName:E[a]}))}else n.push(new D({family:e,weight:`${a}00`,isItalic:i,weightName:E[parseInt(a)*100]}))}return n}let oe=new Map;async function se(){if(oe.size===0){let e=await import(`./fonts.json`,{with:{type:`json`}});for(let t of e.default.flatMap(e=>ae(e)))oe.set(t.postscriptName.toLowerCase().replace(/-/g,``),t)}return oe}async function O({postscriptNames:e}={}){let t=await se();return e?e.length===0?[]:e.reduce((e,n)=>{let r=t.get(n.toLowerCase().replace(/regular$/,``).replace(/-reg$/,``).replace(/[- ]/g,``));return r&&e.push(r),e},[]):[...t.values()]}if(self.name.startsWith(`em-pthread`)){let e=self.name.split(`-`).slice(2).join(`-`),t=globalThis.fetch;globalThis.fetch=n=>t(e),self.name=`em-pthread`}async function k(e={}){var t=e,n=!0,r=!!globalThis.WorkerGlobalScope,i=(...e)=>console.log(...e),a=(...e)=>console.error(...e);function o(){s&&h()}var s=r&&globalThis.name==`em-pthread`;r&&(c=self.location.href);var c;let l=!!WebAssembly.Memory.prototype.toResizableBuffer;if(v=()=>{if(!(l&&self.HEAPU8RAW)){var e=l?I.toResizableBuffer():I.buffer;y=new Int8Array(e),W=new Int16Array(e),P=new Uint8Array(e),G=new Uint16Array(e),O=new Int32Array(e),A=new Uint32Array(e),At=new Float32Array(e),T=new Float64Array(e),E=new BigInt64Array(e),Ee=new BigUint64Array(e),self.HEAPU8RAW=new Uint8Array(e),self.WASMMEMORY=I}},e.__out&&(i=e.__out),e.__err&&(a=e.__err),!self.name.startsWith(`em-pthread`)){let t=globalThis.Worker;globalThis.Worker=class extends t{constructor(t,n={}){super(t,{...n,name:`em-pthread-`+e.__url})}}}let u=Or;Or=function(){u(),er=new Proxy({},{get(){return e=>de(Z.toValue(e))}})};function d(e){throw e}class f{}class p extends f{}function m(){I.buffer!=y.buffer&&v()}var h;if(s){var g=!1;self.onunhandledrejection=e=>{throw e.reason||e};function e(n){try{var r=n.data,o=r.cmd;if(o==1){let n=[];self.onmessage=e=>n.push(e),h=()=>{postMessage({cmd:3});for(let t of n)e(t);self.onmessage=e};for(let e of r.handlers)(!t[e]||t[e].proxy)&&(t[e]=(...t)=>{postMessage({cmd:9,handler:e,args:t})},e==`print`&&(i=t[e]),e==`printErr`&&(a=t[e]));I=r.wasmMemory,v(),t.wasm=r.wasmModule,Or()}else if(o==2){ce(r.pthread_ptr),ar(r.pthread_ptr,0,0,1,0,0),k.threadInitTLS(),qt(r.pthread_ptr),g||=(ir(),!0);try{le(r.start_routine,r.arg)}catch(e){if(e!=`unwind`)throw e}}else o==4?g&&Jt():o&&(a(`worker: received unknown command ${o}`),a(r))}catch(e){throw _&&sr(),e}}self.onmessage=e}var _=!1;function ee(){return I.buffer}function v(){if(!y?.buffer?.growable){var e=ee();y=new Int8Array(e),W=new Int16Array(e),P=new Uint8Array(e),G=new Uint16Array(e),O=new Int32Array(e),A=new Uint32Array(e),At=new Float32Array(e),T=new Float64Array(e),E=new BigInt64Array(e),Ee=new BigUint64Array(e)}}function te(){s||(I=new WebAssembly.Memory({initial:33554432/65536,maximum:32768,shared:!0}),v())}te();var y,b=e=>{e.terminate(),e.onmessage=e=>{}},x=e=>{var t=k.pthreads[e];k.returnWorkerToPool(t)},ne=e=>{for(;e.length>0;)e.shift()(t)},re=[],S=e=>{var t=k.getNewWorker();if(!t)return 6;k.pthreads[e.pthread_ptr]=t,t.pthread_ptr=e.pthread_ptr;var n={cmd:2,start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};return t.postMessage(n,e.transferList),0},C=()=>vr(),w=e=>gr(e),ie=e=>_r(e),T,E,D=(e,t,n,...r)=>{var i=8*r.length*2,a=C(),o=ie(i),s=o>>3;for(var c of r)typeof c==`bigint`?((m(),E)[s++]=1n,(m(),E)[s++]=c):((m(),E)[s++]=0n,(m(),T)[s++]=c);var l=lr(e,t,i,o,n);return w(a),l};function ae(e){if(s)return D(0,0,1,e);throw`exit(${e})`}var oe=ae,se=!Atomics.waitAsync||globalThis.navigator?.userAgent&&Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2])<91,O,k={unusedWorkers:[],tlsInitFunctions:[],pthreads:{},init(){s||k.initMainThread()},initMainThread(){for(var e=!navigator.userAgent.toLowerCase().includes(`firefox`)&&self.crossOriginIsolated?Math.min(Math.max(0,navigator.hardwareConcurrency-2),8):0;e--;)k.allocateUnusedWorker()},terminateAllThreads:()=>{for(var e of Object.values(k.pthreads))b(e);for(var e of k.unusedWorkers)b(e);k.unusedWorkers=[],k.pthreads={}},terminateRuntime:()=>{k.terminateAllThreads();var e=tr();or(0,0,0,1),se||Atomics.notify((m(),O),e>>2)},returnWorkerToPool:e=>{var t=e.pthread_ptr;delete k.pthreads[t],k.unusedWorkers.push(e),e.pthread_ptr=0,ur(t)},threadInitTLS(){k.tlsInitFunctions.forEach(e=>e())},loadWasmModuleToWorker:e=>new Promise(n=>{e.onmessage=r=>{var i=r.data,o=i.cmd;if(i.targetThread&&i.targetThread!=tr()){k.pthreads[i.targetThread]?.postMessage(i);return}if(i===`setimmediate`||i===`_si`){e.postMessage(i);return}switch(o){case 4:Jt();break;case 5:S(i);break;case 6:Kt(()=>x(i.thread));break;case 3:n(e);break;case 9:t[i.handler](...i.args);break;default:o&&a(`worker sent an unknown command ${o}`)}},e.onerror=e=>{throw a(`worker sent an error! ${e.filename}:${e.lineno}: ${e.message}`),e};var r=[];for(var i of[])t.propertyIsEnumerable(i)&&r.push(i);e.postMessage({cmd:1,handlers:r,wasmMemory:I,wasmModule:Dr})}),async loadWasmModuleToAllWorkers(){if(!s)return Promise.all(k.unusedWorkers.map(k.loadWasmModuleToWorker))},allocateUnusedWorker(){var e=new Worker(new URL(``+new URL(`jassub-worker.js`,import.meta.url).href,``+import.meta.url),{type:`module`,name:`em-pthread`});return k.unusedWorkers.push(e),e},getNewWorker(){if(k.unusedWorkers.length==0){var e=k.allocateUnusedWorker();k.loadWasmModuleToWorker(e)}return k.unusedWorkers.pop()}},A;function ce(e){var t=(m(),A)[e+48>>2],n=t-(m(),A)[e+52>>2];hr(t,n),w(t)}var j=[],M=e=>{var t=j[e];return t||(j[e]=t=yr.get(e)),t},le=(e,t)=>{var n=M(e)(t);function r(e){dr(e)}r(n)},N=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r<=127?t++:r<=2047?t+=2:r>=55296&&r<=57343?(t+=4,++n):t+=3}return t},ue=(e,t,n,r)=>{if(!(r>0))return 0;for(var i=n,a=n+r-1,o=0;o<e.length;++o){var s=e.codePointAt(o);if(s<=127){if(n>=a)break;t[n++]=s}else if(s<=2047){if(n+1>=a)break;t[n++]=192|s>>6,t[n++]=128|s&63}else if(s<=65535){if(n+2>=a)break;t[n++]=224|s>>12,t[n++]=128|s>>6&63,t[n++]=128|s&63}else{if(n+3>=a)break;t[n++]=240|s>>18,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|s&63,o++}}return t[n]=0,n-i},P,F=(e,t,n)=>ue(e,(m(),P),t,n),de=e=>{var t=N(e)+1,n=nr(t);return n&&F(e,n,t),n},I,fe=new TextDecoder,pe=(e,t,n,r)=>{var i=t+n;if(r)return i;for(;e[t]&&!(t>=i);)++t;return t},L=(e,t,n)=>{if(!e)return``;var r=pe((m(),P),e,t,n);return fe.decode((m(),P).slice(e,r))},me=(e,t,n,r)=>d(`Assertion failed: ${L(e)}, at: `+[t?L(t):`unknown filename`,n,r?L(r):`unknown function`]);function he(e,t,n,r){return s?D(1,0,1,e,t,n,r):_e(e,t,n,r)}var ge=()=>!!globalThis.SharedArrayBuffer,_e=(e,t,n,r)=>{if(!ge())return 6;var i=[];if(s&&i.length===0)return he(e,t,n,r);var a={startRoutine:n,pthread_ptr:e,arg:r,transferList:i};return s?(a.cmd=5,postMessage(a,i),0):S(a)},ve={varargs:void 0,getStr(e){return L(e)}};function ye(e,t,n){return s?D(2,0,1,e,t,n):(ve.varargs=n,0)}function be(e,t,n){if(s)return D(3,0,1,e,t,n)}function xe(e,t,n){return s?D(4,0,1,e,t,n):(ve.varargs=n,0)}function Se(e,t,n,r){if(s)return D(5,0,1,e,t,n,r);ve.varargs=r}var Ce=()=>d(``),R=e=>{for(var t=``;;){var n=(m(),P)[e++];if(!n)return t;t+=String.fromCharCode(n)}},z={},B={},we={};class V extends Error{constructor(e){super(e),this.name=`BindingError`}}var H=e=>{throw new V(e)};function Te(e,t,n={}){var r=t.name;if(e||H(`type "${r}" must have a positive integer typeid pointer`),B.hasOwnProperty(e)){if(n.ignoreDuplicateRegistrations)return;H(`Cannot register type '${r}' twice`)}if(B[e]=t,delete we[e],z.hasOwnProperty(e)){var i=z[e];delete z[e],i.forEach(e=>e())}}function U(e,t,n={}){return Te(e,t,n)}var W,G,Ee,De=(e,t,n)=>{switch(t){case 1:return n?e=>(m(),y)[e]:e=>(m(),P)[e];case 2:return n?e=>(m(),W)[e>>1]:e=>(m(),G)[e>>1];case 4:return n?e=>(m(),O)[e>>2]:e=>(m(),A)[e>>2];case 8:return n?e=>(m(),E)[e>>3]:e=>(m(),Ee)[e>>3];default:throw TypeError(`invalid integer width (${t}): ${e}`)}},Oe=(e,t,n,r,i)=>{t=R(t);let a=r===0n,o=e=>e;if(a){let e=n*8;o=t=>BigInt.asUintN(e,t),i=o(i)}U(e,{name:t,fromWireType:o,toWireType:(e,t)=>(typeof t==`number`&&(t=BigInt(t)),t),readValueFromPointer:De(t,n,!a),destructorFunction:null})},ke=(e,t,n,r)=>{t=R(t),U(e,{name:t,fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:r},readValueFromPointer:function(e){return this.fromWireType((m(),P)[e])},destructorFunction:null})},Ae=e=>({count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}),je=e=>{function t(e){return e.$$.ptrType.registeredClass.name}H(t(e)+` instance already deleted`)},Me=!1,Ne=e=>{},Pe=e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)},Fe=e=>{--e.count.value,e.count.value===0&&Pe(e)},K=e=>globalThis.FinalizationRegistry?(Me=new FinalizationRegistry(e=>{Fe(e.$$)}),K=e=>{var t=e.$$;if(t.smartPtr){var n={$$:t};Me.register(e,n,e)}return e},Ne=e=>Me.unregister(e),K(e)):(K=e=>e,e),Ie=[],Le=()=>{for(;Ie.length;){var e=Ie.pop();e.$$.deleteScheduled=!1,e.delete()}},Re,ze=()=>{let e=Be.prototype;Object.assign(e,{isAliasOf(e){if(!(this instanceof Be)||!(e instanceof Be))return!1;var t=this.$$.ptrType.registeredClass,n=this.$$.ptr;e.$$=e.$$;for(var r=e.$$.ptrType.registeredClass,i=e.$$.ptr;t.baseClass;)n=t.upcast(n),t=t.baseClass;for(;r.baseClass;)i=r.upcast(i),r=r.baseClass;return t===r&&n===i},clone(){if(this.$$.ptr||je(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=K(Object.create(Object.getPrototypeOf(this),{$$:{value:Ae(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e},delete(){this.$$.ptr||je(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&H(`Object already scheduled for deletion`),Ne(this),Fe(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||je(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&H(`Object already scheduled for deletion`),Ie.push(this),Ie.length===1&&Re&&Re(Le),this.$$.deleteScheduled=!0,this}});let t=Symbol.dispose;t&&(e[t]=e.delete)};function Be(){}var Ve=(e,t)=>Object.defineProperty(t,"name",{value:e}),He={},Ue=(e,t,n)=>{if(e[t].overloadTable===void 0){var r=e[t];e[t]=function(...r){return e[t].overloadTable.hasOwnProperty(r.length)||H(`Function '${n}' called with an invalid number of arguments (${r.length}) - expects one of (${e[t].overloadTable})!`),e[t].overloadTable[r.length].apply(this,r)},e[t].overloadTable=[],e[t].overloadTable[r.argCount]=r}},We=(e,n,r)=>{t.hasOwnProperty(e)?((r===void 0||t[e].overloadTable!==void 0&&t[e].overloadTable[r]!==void 0)&&H(`Cannot register public name '${e}' twice`),Ue(t,e,e),t[e].overloadTable.hasOwnProperty(r)&&H(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`),t[e].overloadTable[r]=n):(t[e]=n,t[e].argCount=r)},Ge=48,Ke=57,qe=e=>{e=e.replace(/[^a-zA-Z0-9_]/g,`$`);var t=e.charCodeAt(0);return t>=Ge&&t<=Ke?`_${e}`:e};function Je(e,t,n,r,i,a,o,s){this.name=e,this.constructor=t,this.instancePrototype=n,this.rawDestructor=r,this.baseClass=i,this.getActualType=a,this.upcast=o,this.downcast=s,this.pureVirtualFunctions=[]}var Ye=(e,t,n)=>{for(;t!==n;)t.upcast||H(`Expected null or instance of ${n.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e},Xe=e=>{if(e===null)return`null`;var t=typeof e;return t===`object`||t===`array`||t===`function`?e.toString():``+e};function Ze(e,t){if(t===null)return this.isReference&&H(`null is not a valid ${this.name}`),0;t.$$||H(`Cannot pass "${Xe(t)}" as a ${this.name}`),t.$$.ptr||H(`Cannot pass deleted object as a pointer of type ${this.name}`);var n=t.$$.ptrType.registeredClass;return Ye(t.$$.ptr,n,this.registeredClass)}function Qe(e,t){var n;if(t===null)return this.isReference&&H(`null is not a valid ${this.name}`),this.isSmartPointer?(n=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,n),n):0;(!t||!t.$$)&&H(`Cannot pass "${Xe(t)}" as a ${this.name}`),t.$$.ptr||H(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&H(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);var r=t.$$.ptrType.registeredClass;if(n=Ye(t.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&H(`Passing raw pointer to smart pointer is illegal`),this.sharingPolicy){case 0:t.$$.smartPtrType===this?n=t.$$.smartPtr:H(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:n=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)n=t.$$.smartPtr;else{var i=t.clone();n=this.rawShare(n,Z.toHandle(()=>i.delete())),e!==null&&e.push(this.rawDestructor,n)}break;default:H(`Unsupported sharing policy`)}return n}function $e(e,t){if(t===null)return this.isReference&&H(`null is not a valid ${this.name}`),0;t.$$||H(`Cannot pass "${Xe(t)}" as a ${this.name}`),t.$$.ptr||H(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&H(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);var n=t.$$.ptrType.registeredClass;return Ye(t.$$.ptr,n,this.registeredClass)}function et(e){return this.fromWireType((m(),A)[e>>2])}var tt=(e,t,n)=>{if(t===n)return e;if(n.baseClass===void 0)return null;var r=tt(e,t,n.baseClass);return r===null?null:n.downcast(r)},nt={},rt=(e,t)=>{for(t===void 0&&H(`ptr should not be undefined`);e.baseClass;)t=e.upcast(t),e=e.baseClass;return t},it=(e,t)=>(t=rt(e,t),nt[t]);class at extends Error{constructor(e){super(e),this.name=`InternalError`}}var ot=e=>{throw new at(e)},st=(e,t)=>((!t.ptrType||!t.ptr)&&ot(`makeClassHandle requires ptr and ptrType`),!!t.smartPtrType!=!!t.smartPtr&&ot(`Both smartPtrType and smartPtr must be specified`),t.count={value:1},K(Object.create(e,{$$:{value:t,writable:!0}})));function ct(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var n=it(this.registeredClass,t);if(n!==void 0){if(n.$$.count.value===0)return n.$$.ptr=t,n.$$.smartPtr=e,n.clone();var r=n.clone();return this.destructor(e),r}function i(){return this.isSmartPointer?st(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):st(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a=He[this.registeredClass.getActualType(t)];if(!a)return i.call(this);var o=this.isConst?a.constPointerType:a.pointerType,s=tt(t,this.registeredClass,o.registeredClass);return s===null?i.call(this):this.isSmartPointer?st(o.registeredClass.instancePrototype,{ptrType:o,ptr:s,smartPtrType:this,smartPtr:e}):st(o.registeredClass.instancePrototype,{ptrType:o,ptr:s})}var lt=()=>{Object.assign(ut.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor?.(e)},readValueFromPointer:et,fromWireType:ct})};function ut(e,t,n,r,i,a,o,s,c,l,u){this.name=e,this.registeredClass=t,this.isReference=n,this.isConst=r,this.isSmartPointer=i,this.pointeeType=a,this.sharingPolicy=o,this.rawGetPointee=s,this.rawConstructor=c,this.rawShare=l,this.rawDestructor=u,!i&&t.baseClass===void 0?r?(this.toWireType=Ze,this.destructorFunction=null):(this.toWireType=$e,this.destructorFunction=null):this.toWireType=Qe}var dt=(e,n,r)=>{t.hasOwnProperty(e)||ot(`Replacing nonexistent public symbol`),t[e].overloadTable!==void 0&&r!==void 0?t[e].overloadTable[r]=n:(t[e]=n,t[e].argCount=r)},q=(e,t,n=!1)=>{e=R(e);function r(){return M(t)}var i=r();return typeof i!=`function`&&H(`unknown function pointer with signature ${e}: ${t}`),i};class ft extends Error{}var pt=e=>{var t=rr(e),n=R(t);return $(t),n},J=(e,t)=>{var n=[],r={};function i(e){if(!r[e]&&!B[e]){if(we[e]){we[e].forEach(i);return}n.push(e),r[e]=!0}}throw t.forEach(i),new ft(`${e}: `+n.map(pt).join([`, `]))},Y=(e,t,n)=>{e.forEach(e=>we[e]=t);function r(t){var r=n(t);r.length!==e.length&&ot(`Mismatched type converter count`);for(var i=0;i<e.length;++i)U(e[i],r[i])}var i=Array(t.length),a=[],o=0;for(let[e,n]of t.entries())B.hasOwnProperty(n)?i[e]=B[n]:(a.push(n),z.hasOwnProperty(n)||(z[n]=[]),z[n].push(()=>{i[e]=B[n],++o,o===a.length&&r(i)}));a.length===0&&r(i)},mt=(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{u=R(u),a=q(i,a),s&&=q(o,s),l&&=q(c,l),f=q(d,f);var p=qe(u);We(p,function(){J(`Cannot construct ${u} due to unbound types`,[r])}),Y([e,t,n],r?[r]:[],t=>{t=t[0];var n,i;r?(n=t.registeredClass,i=n.instancePrototype):i=Be.prototype;var o=Ve(u,function(...e){if(Object.getPrototypeOf(this)!==c)throw new V(`Use 'new' to construct ${u}`);if(d.constructor_body===void 0)throw new V(`${u} has no accessible constructor`);var t=d.constructor_body[e.length];if(t===void 0)throw new V(`Tried to invoke ctor of ${u} with invalid number of parameters (${e.length}) - expected (${Object.keys(d.constructor_body).toString()}) parameters instead!`);return t.apply(this,e)}),c=Object.create(i,{constructor:{value:o}});o.prototype=c;var d=new Je(u,o,c,f,n,a,s,l);d.baseClass&&(d.baseClass.__derivedClasses??=[],d.baseClass.__derivedClasses.push(d));var m=new ut(u,d,!0,!1,!1),h=new ut(u+`*`,d,!1,!1,!1),g=new ut(u+` const*`,d,!1,!0,!1);return He[e]={pointerType:h,constPointerType:g},dt(p,o),[m,h,g]})},ht=(e,t)=>{for(var n=[],r=0;r<e;r++)n.push((m(),A)[t+r*4>>2]);return n},gt=e=>{for(;e.length;){var t=e.pop();e.pop()(t)}};function _t(e){for(var t=1;t<e.length;++t)if(e[t]!==null&&e[t].destructorFunction===void 0)return!0;return!1}var vt={ftfnnn:function(e,t,n,r,i,a,o,s,c,l){return function(e,t,i){return a(n(r,s(null,e),c(null,t),l(null,i)))}},tffn:function(e,t,n,r,i,a,o){return function(){n(r,o(null,this))}},tffnn:function(e,t,n,r,i,a,o,s){return function(e){n(r,o(null,this),s(null,e))}},tffnnnnn:function(e,t,n,r,i,a,o,s,c,l,u){return function(e,t,i,a){n(r,o(null,this),s(null,e),c(null,t),l(null,i),u(null,a))}},tffnnn:function(e,t,n,r,i,a,o,s,c){return function(e,t){n(r,o(null,this),s(null,e),c(null,t))}},ttfnn:function(e,t,n,r,i,a,o,s){return function(e){return a(n(r,o(null,this),s(null,e)))}},tffnt:function(e,t,n,r,i,a,o,s,c){return function(e){var t=o(null,this),i=s(null,e);n(r,t,i),c(i)}},tffntnn:function(e,t,n,r,i,a,o,s,c,l,u){return function(e,t,i){var a=o(null,this),d=s(null,e);n(r,a,d,c(null,t),l(null,i)),u(d)}},tffnnnn:function(e,t,n,r,i,a,o,s,c,l){return function(e,t,i){n(r,o(null,this),s(null,e),c(null,t),l(null,i))}},ttfn:function(e,t,n,r,i,a,o){return function(){return a(n(r,o(null,this)))}},ttfnnn:function(e,t,n,r,i,a,o,s,c){return function(e,t){return a(n(r,o(null,this),s(null,e),c(null,t)))}}};function yt(e,t,n,r){let i=[t?`t`:`f`,n?`t`:`f`,r?`t`:`f`];for(let n=t?1:2;n<e.length;++n){let t=e[n],r=``;r=t.destructorFunction===void 0?`u`:t.destructorFunction===null?`n`:`t`,i.push(r)}return i.join(``)}function bt(e,t,n,r,i,a){var o=t.length;o<2&&H(`argTypes array size mismatch! Must at least get return value and receiver (this) types!`);for(var s=t[1]!==null&&n!==null,c=_t(t),l=!t[0].isVoid,u=t[0],d=t[1],f=[e,H,r,i,gt,u.fromWireType.bind(u),d?.toWireType.bind(d)],p=2;p<o;++p){var m=t[p];f.push(m.toWireType.bind(m))}if(!c)for(var p=s?1:2;p<t.length;++p)t[p].destructorFunction!==null&&f.push(t[p].destructorFunction);return Ve(e,vt[yt(t,s,l,a)](...f))}var xt=(e,t,n,r,i,a)=>{var o=ht(t,n);i=q(r,i),Y([],[e],e=>{e=e[0];var n=`constructor ${e.name}`;if(e.registeredClass.constructor_body===void 0&&(e.registeredClass.constructor_body=[]),e.registeredClass.constructor_body[t-1]!==void 0)throw new V(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${e.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return e.registeredClass.constructor_body[t-1]=()=>{J(`Cannot construct ${e.name} due to unbound types`,o)},Y([],o,r=>(r.splice(1,0,null),e.registeredClass.constructor_body[t-1]=bt(n,r,null,i,a),[])),[]})},St=e=>{e=e.trim();let t=e.indexOf(`(`);return t===-1?e:e.slice(0,t)},Ct=(e,t,n,r,i,a,o,s,c,l)=>{var u=ht(n,r);t=R(t),t=St(t),a=q(i,a,c),Y([],[e],e=>{e=e[0];var r=`${e.name}.${t}`;t.startsWith(`@@`)&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);function i(){J(`Cannot call ${r} due to unbound types`,u)}var l=e.registeredClass.instancePrototype,d=l[t];return d===void 0||d.overloadTable===void 0&&d.className!==e.name&&d.argCount===n-2?(i.argCount=n-2,i.className=e.name,l[t]=i):(Ue(l,t,r),l[t].overloadTable[n-2]=i),Y([],u,i=>{var s=bt(r,i,e,a,o,c);return l[t].overloadTable===void 0?(s.argCount=n-2,l[t]=s):l[t].overloadTable[n-2]=s,[]}),[]})},wt=(e,t,n)=>(e instanceof Object||H(`${n} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||H(`${n} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||H(`cannot call emscripten binding method ${n} on deleted object`),Ye(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)),Tt=(e,t,n,r,i,a,o,s,c,l)=>{t=R(t),i=q(r,i),Y([],[e],e=>{e=e[0];var r=`${e.name}.${t}`,u={get(){J(`Cannot access ${r} due to unbound types`,[n,o])},enumerable:!0,configurable:!0};return c?u.set=()=>J(`Cannot access ${r} due to unbound types`,[n,o]):u.set=e=>H(r+` is a read-only property`),Object.defineProperty(e.registeredClass.instancePrototype,t,u),Y([],c?[n,o]:[n],n=>{var o=n[0],u={get(){var t=wt(this,e,r+` getter`);return o.fromWireType(i(a,t))},enumerable:!0};if(c){c=q(s,c);var d=n[1];u.set=function(t){var n=wt(this,e,r+` setter`),i=[];c(l,n,d.toWireType(i,t)),gt(i)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]}),[]})},Et=[],X=[0,1,,1,null,1,!0,1,!1,1],Dt=e=>{e>9&&--X[e+1]===0&&(X[e],X[e]=void 0,Et.push(e))},Z={toValue:e=>(e||H(`Cannot use deleted val. handle = ${e}`),X[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let t=Et.pop()||X.length;return X[t]=e,X[t+1]=1,t}}}},Ot={name:`emscripten::val`,fromWireType:e=>{var t=Z.toValue(e);return Dt(e),t},toWireType:(e,t)=>Z.toHandle(t),readValueFromPointer:et,destructorFunction:null},kt=e=>U(e,Ot),At,jt=(e,t)=>{switch(t){case 4:return function(e){return this.fromWireType((m(),At)[e>>2])};case 8:return function(e){return this.fromWireType((m(),T)[e>>3])};default:throw TypeError(`invalid float width (${t}): ${e}`)}},Mt=(e,t,n)=>{t=R(t),U(e,{name:t,fromWireType:e=>e,toWireType:(e,t)=>t,readValueFromPointer:jt(t,n),destructorFunction:null})},Nt=(e,t,n,r,i)=>{t=R(t);let a=r===0,o=e=>e;if(a){var s=32-8*n;o=e=>e<<s>>>s,i=o(i)}U(e,{name:t,fromWireType:o,toWireType:(e,t)=>t,readValueFromPointer:De(t,n,r!==0),destructorFunction:null})},Pt=(e,t,n)=>{var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];function i(e){var t=(m(),A)[e>>2],n=(m(),A)[e+4>>2];return new r((m(),y).buffer,n,t)}n=R(n),U(e,{name:n,fromWireType:i,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},Ft=(e,t)=>{t=R(t);var n=!0;U(e,{name:t,fromWireType(e){var t=(m(),A)[e>>2],r=e+4,i;if(n)i=L(r,t,!0);else{i=``;for(var a=0;a<t;++a)i+=String.fromCharCode((m(),P)[r+a])}return $(e),i},toWireType(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var r,i=typeof t==`string`;i||ArrayBuffer.isView(t)&&t.BYTES_PER_ELEMENT==1||H(`Cannot pass non-string to std::string`),r=n&&i?N(t):t.length;var a=nr(4+r+1),o=a+4;if((m(),A)[a>>2]=r,i)if(n)F(t,o,r+1);else for(var s=0;s<r;++s){var c=t.charCodeAt(s);c>255&&($(a),H(`String has UTF-16 code units that do not fit in 8 bits`)),(m(),P)[o+s]=c}else(m(),P).set(t,o);return e!==null&&e.push($,a),a},readValueFromPointer:et,destructorFunction(e){$(e)}})},It=new TextDecoder(`utf-16le`),Lt=(e,t,n)=>{var r=e>>1,i=pe((m(),G),r,t/2,n);return It.decode((m(),G).slice(r,i))},Rt=(e,t,n=2147483647)=>{if(n<2)return 0;n-=2;for(var r=t,i=n<e.length*2?n/2:e.length,a=0;a<i;++a){var o=e.charCodeAt(a);(m(),W)[t>>1]=o,t+=2}return(m(),W)[t>>1]=0,t-r},zt=e=>e.length*2,Bt=(e,t,n)=>{for(var r=``,i=e>>2,a=0;!(a>=t/4);a++){var o=(m(),A)[i+a];if(!o&&!n)break;r+=String.fromCodePoint(o)}return r},Vt=(e,t,n=2147483647)=>{if(n<4)return 0;for(var r=t,i=r+n-4,a=0;a<e.length;++a){var o=e.codePointAt(a);if(o>65535&&a++,(m(),O)[t>>2]=o,t+=4,t+4>i)break}return(m(),O)[t>>2]=0,t-r},Ht=e=>{for(var t=0,n=0;n<e.length;++n)e.codePointAt(n)>65535&&n++,t+=4;return t},Ut=(e,t,n)=>{n=R(n);var r,i,a;t===2?(r=Lt,i=Rt,a=zt):(r=Bt,i=Vt,a=Ht),U(e,{name:n,fromWireType:e=>{var n=(m(),A)[e>>2],i=r(e+4,n*t,!0);return $(e),i},toWireType:(e,r)=>{typeof r!=`string`&&H(`Cannot pass non-string to C++ string type ${n}`);var o=a(r),s=nr(4+o+t);return(m(),A)[s>>2]=o/t,i(r,s+4,o+t),e!==null&&e.push($,s),s},readValueFromPointer:et,destructorFunction(e){$(e)}})},Wt=(e,t)=>{t=R(t),U(e,{isVoid:!0,name:t,fromWireType:()=>void 0,toWireType:(e,t)=>void 0})},Gt=e=>{ar(e,!r,1,!n,262144,!1),k.threadInitTLS()},Kt=e=>{e()},qt=e=>{if(!se){Atomics.waitAsync((m(),O),e>>2,e).value.then(Jt);var t=e+112;Atomics.store((m(),O),t>>2,1)}},Jt=()=>{var e=tr();e&&Kt(()=>{qt(e),pr()})},Yt=(e,t)=>{if(e==t)setTimeout(Jt);else if(s)postMessage({targetThread:e,cmd:4});else{var n=k.pthreads[e];if(!n)return;n.postMessage({cmd:4})}},Xt=[],Zt=(e,t,n,r,i,a,o)=>{Xt.length=0;for(var s=i>>3,c=i+r>>3;s<c;){var l=(m(),E)[s++]?(m(),E)[s++]:(m(),T)[s++];Xt.push(l)}var u=t?er[t]:$n[e];k.currentProxiedOperationCallerThread=n;var d=u(...Xt);if(k.currentProxiedOperationCallerThread=0,a){d.then(e=>cr(a,o,e));return}return d},Qt=()=>{},$t=e=>{s?postMessage({cmd:6,thread:e}):x(e)},en=e=>{},tn=()=>{throw new p},nn=[],rn=e=>{var t=nn.length;return nn.push(e),t},an=(e,t)=>{var n=B[e];return n===void 0&&H(`${t} has unknown type ${pt(e)}`),n},on=(e,t)=>{for(var n=Array(e),r=0;r<e;++r)n[r]=an((m(),A)[t+r*4>>2],`parameter ${r}`);return n},sn=(e,t,n)=>{var r=[],i=e(r,n);return r.length&&((m(),A)[t>>2]=Z.toHandle(r)),i},cn={},ln=e=>{var t=cn[e];return t===void 0?R(e):t},un=(e,t,n)=>{var[r,...i]=on(e,t),a=r.toWireType.bind(r),o=i.map(e=>e.readValueFromPointer.bind(e));e--;var s=Array(e);return rn(Ve(`methodCaller<(${i.map(e=>e.name)}) => ${r.name}>`,(t,r,i,c)=>{for(var l=0,u=0;u<e;++u)s[u]=o[u](c+l),l+=8;var d;switch(n){case 0:d=Z.toValue(t).apply(null,s);break;case 2:d=Reflect.construct(Z.toValue(t),s);break;case 3:d=s[0];break;case 1:d=Z.toValue(t)[ln(r)](...s);break}return sn(a,i,d)}))},dn=(e,t)=>(e=Z.toValue(e),t=Z.toValue(t),Z.toHandle(e[t])),fn=e=>{e>9&&(X[e+1]+=1)},pn=(e,t,n,r,i)=>nn[e](t,n,r,i),mn=()=>Z.toHandle([]),hn=e=>Z.toHandle(ln(e)),gn=()=>Z.toHandle({}),_n=e=>{gt(Z.toValue(e)),Dt(e)},vn=(e,t,n)=>{e=Z.toValue(e),t=Z.toValue(t),n=Z.toValue(n),e[t]=n},yn={},bn=()=>performance.timeOrigin+performance.now();function xn(e,t){return s?D(6,0,1,e,t):(yn[e]&&(clearTimeout(yn[e].id),delete yn[e]),t&&(yn[e]={id:setTimeout(()=>{delete yn[e],Kt(()=>fr(e,bn()))},t),timeout_ms:t}),0)}var Sn=()=>Date.now(),Cn=9007199254740992,wn=-9007199254740992,Tn=e=>e<wn||e>Cn?NaN:Number(e),En=[],Dn=(e,t)=>{En.length=0;for(var n;n=(m(),P)[e++];){var r=n!=105;r&=n!=112,t+=r&&t%8?4:0,En.push(n==112?(m(),A)[t>>2]:n==106?(m(),E)[t>>3]:n==105?(m(),O)[t>>2]:(m(),T)[t>>3]),t+=r?8:4}return En},On=(e,t,n)=>{var r=Dn(t,n);return er[e](...r)},kn=(e,t,n)=>On(e,t,n),An=()=>{},jn=e=>a(L(e)),Mn=()=>{throw`unwind`},Nn=()=>2147483648,Pn=()=>Nn(),Fn=()=>navigator.hardwareConcurrency,In=(e,t)=>Math.ceil(e/t)*t,Ln=e=>{var t=(e-I.buffer.byteLength+65535)/65536|0;try{return I.grow(t),v(),1}catch{}},Rn=e=>{var t=(m(),P).length;if(e>>>=0,e<=t)return!1;var n=Nn();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),Ln(Math.min(n,In(Math.max(e,i),65536))))return!0}return!1},zn={},Bn=()=>`./this.program`,Q=()=>{if(!Q.strings){var e={USER:`web_user`,LOGNAME:`web_user`,PATH:`/`,PWD:`/`,HOME:`/home/web_user`,LANG:(globalThis.navigator?.language??`C`).replace(`-`,`_`)+`.UTF-8`,_:Bn()};for(var t in zn)zn[t]===void 0?delete e[t]:e[t]=zn[t];var n=[];for(var t in e)n.push(`${t}=${e[t]}`);Q.strings=n}return Q.strings};function Vn(e,t){if(s)return D(7,0,1,e,t);var n=0,r=0;for(var i of Q()){var a=t+n;(m(),A)[e+r>>2]=a,n+=F(i,a,1/0)+1,r+=4}return 0}function Hn(e,t){if(s)return D(8,0,1,e,t);var n=Q();(m(),A)[e>>2]=n.length;var r=0;for(var i of n)r+=N(i)+1;return(m(),A)[t>>2]=r,0}function Un(e){return s?D(9,0,1,e):52}function Wn(e,t,n,r){return s?D(10,0,1,e,t,n,r):52}function Gn(e,t,n,r){return s?D(11,0,1,e,t,n,r):(t=Tn(t),70)}var Kn=[null,[],[]],qn=(e,t=0,n,r)=>{var i=pe(e,t,n,r);return fe.decode(e.buffer?e.buffer instanceof ArrayBuffer?e.subarray(t,i):e.slice(t,i):new Uint8Array(e.slice(t,i)))},Jn=(e,t)=>{var n=Kn[e];t===0||t===10?((e===1?i:a)(qn(n)),n.length=0):n.push(t)};function Yn(e,t,n,r){if(s)return D(12,0,1,e,t,n,r);for(var i=0,a=0;a<n;a++){var o=(m(),A)[t>>2],c=(m(),A)[t+4>>2];t+=8;for(var l=0;l<c;l++)Jn(e,(m(),P)[o+l]);i+=c}return(m(),A)[r>>2]=i,0}var Xn=()=>e=>(e.set(crypto.getRandomValues(new Uint8Array(e.byteLength))),0),Zn=e=>(Zn=Xn())(e),Qn=(e,t)=>Zn((m(),P).subarray(e,e+t));k.init(),ze(),lt();var $n=[ae,he,ye,be,xe,Se,xn,Vn,Hn,Un,Wn,Gn,Yn],er={624229:e=>de(Z.toValue(e))},tr,$,nr,rr,ir,ar,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr,yr;function br(e){t.__ZdlPvm=e.ha,tr=e.ia,t.__Znwm=e.ja,$=e.ka,nr=t._malloc=e.la,t._calloc=e.ma,rr=e.na,ir=e.oa,t._emscripten_builtin_free=e.pa,e.qa,ar=e.sa,or=e.ta,sr=e.ua,t.___libc_free=e.va,t._emscripten_builtin_malloc=e.wa,t.___libc_malloc=e.xa,cr=e.ya,lr=e.za,ur=e.Aa,dr=e.Ba,fr=e.Ca,pr=e.Da,t.__ZdaPv=e.Ea,t.__ZdaPvm=e.Fa,t.__ZdlPv=e.Ga,t.__Znam=e.Ha,t.__ZnamSt11align_val_t=e.Ia,t.__ZnwmSt11align_val_t=e.Ja,t.___libc_calloc=e.Ka,t.___libc_realloc=e.La,t._emscripten_builtin_calloc=e.Ma,t._emscripten_builtin_realloc=e.Na,t._malloc_size=e.Oa,t._malloc_usable_size=e.Pa,t._reallocf=e.Qa,mr=e.Ra,hr=e.Sa,gr=e.Ta,_r=e.Ua,vr=e.Va,yr=e.ra}var xr;function Sr(){xr={b:me,P:_e,y:ye,O:be,X:xe,z:Se,K:Ce,B:Oe,aa:ke,fa:mt,ea:xt,d:Ct,ca:Tt,_:kt,A:Mt,l:Nt,e:Pt,$:Ft,t:Ut,ba:Wt,S:Gt,L:Yt,x:Zt,G:Qt,v:$t,R:qt,Z:en,E:tn,h:un,c:Dt,da:dn,i:fn,g:pn,p:mn,j:hn,s:gn,f:_n,k:vn,H:xn,n:kn,w:An,m:Sn,u:jn,Y:Mn,M:Pn,o:bn,N:Fn,I:Rn,T:Vn,U:Hn,q:oe,r:Un,W:Wn,Q:Gn,V:Yn,D:Cr,C:wr,a:I,F:ae,J:Qn}}function Cr(e,t,n){var r=C();try{return M(e)(t,n)}catch(e){if(w(r),!(e instanceof f))throw e;mr(1,0)}}function wr(e,t,n,r,i){var a=C();try{return M(e)(t,n,r,i)}catch(e){if(w(a),!(e instanceof f))throw e;mr(1,0)}}function Tr(e){_=!0,k.tlsInitFunctions.push(e.qa),!s&&e.ga()}var Er,Dr;function Or(){Sr();var e={a:xr};Er=WebAssembly.instantiateStreaming(fetch(new URL(``+new URL(`jassub-worker.wasm`,import.meta.url).href,``+import.meta.url)),e).then(e=>{var n=(e.instance||e).exports;return Dr=e.module||t.wasm,br(n),ne(re),Tr(n),k.loadWasmModuleToAllWorkers().then(o)})}return s||Or(),await Er,t}globalThis.name==`em-pthread`&&k();const A=[`thin`,`extralight`,`light`,`regular`,`medium`,`semibold`,`bold`,`extrabold`,`black`,`ultrablack`],ce=navigator.userAgent.toLowerCase(),j=ce.includes(`firefox`),M=/applewebkit\/[\d.]+ \(khtml, like gecko\)(?!.*chrome\/)/.test(ce),le=`BT601`,N=`BT709`,ue=`SMPTE240M`,P=[null,le,null,le,le,N,N,ue,ue,`FCC`,`FCC`],F=globalThis.fetch;async function de(e){return await(await F(e)).text()}const I=!j&&self.crossOriginIsolated?Math.min(Math.max(1,navigator.hardwareConcurrency-2),8):1,fe=!!WebAssembly.Memory.prototype.toResizableBuffer,pe=!j&&!M&&(fe||I>1),L=new Float32Array([1,0,0,0,1,0,0,0,1]),me={BT601:{BT709:new Float32Array([1.0863,.0965,-.01411,-.0723,.8451,-.0277,-.0141,.0584,1.0418]),BT601:L},BT709:{BT601:new Float32Array([.9137,.0784,.0079,-.1049,1.1722,-.0671,.0096,.0322,.9582]),BT709:L},FCC:{BT709:new Float32Array([1.0873,-.0736,-.0137,.0974,.8494,.0531,-.0127,-.0251,1.0378]),BT601:new Float32Array([1.001,-8e-4,-2e-4,9e-4,1.005,-.006,.0013,.0027,.996])},SMPTE240M:{BT709:new Float32Array([.9993,6e-4,1e-4,-4e-4,.9812,.0192,-.0034,-.0114,1.0148]),BT601:new Float32Array([.913,.0774,.0096,-.1051,1.1508,-.0456,.0063,.0207,.973])}},he=e=>e<0?0:e>1?255:Math.round(e*255);var ge=class{canvas=null;ctx=null;bufferCanvas=new OffscreenCanvas(1,1);bufferCtx=this.bufferCanvas.getContext(`2d`,{alpha:!0,desynchronized:!0,willReadFrequently:!1});colorMatrix=L;_scheduledResize;resizeCanvas(e,t){!e||!t||this.canvas?.width===e&&this.canvas?.height===t||(this._scheduledResize={width:e,height:t})}setCanvas(e){if(this.canvas=e,this.ctx=e.getContext(`2d`,{alpha:!0,desynchronized:!0,willReadFrequently:!1}),!this.ctx)throw Error(`Could not get 2D context`)}setColorMatrix(e,t){this.colorMatrix=(e&&t&&me[e]?.[t])??L}render(e,t){if(!(!this.ctx||!this.canvas)){if(this._scheduledResize){let{width:e,height:t}=this._scheduledResize;this._scheduledResize=void 0,this.canvas.width=e,this.canvas.height=t}else this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);for(let n of e){if(n.w<=0||n.h<=0)continue;let e=new ImageData(n.w,n.h),r=new Uint32Array(e.data.buffer),i=this.colorMatrix,a=(n.color>>>24&255)/255,o=(n.color>>>16&255)/255,s=(n.color>>>8&255)/255,c=he(i[0]*a+i[3]*o+i[6]*s),l=he(i[1]*a+i[4]*o+i[7]*s),u=he(i[2]*a+i[5]*o+i[8]*s)<<16|l<<8|c,d=(255-(n.color&255))/255,f=n.stride,p=n.h,m=n.w;for(let e=p+1,i=n.bitmap,a=0;--e;i+=f)for(let e=0;e<m;++e,++a){let n=t[i+e];n!==0&&(r[a]=Math.round(d*n)<<24|u)}this.bufferCanvas.width=m,this.bufferCanvas.height=p,this.bufferCtx.putImageData(e,0,0),this.ctx.drawImage(this.bufferCanvas,n.dst_x,n.dst_y)}}}destroy(){this.ctx=null,this.canvas=null,this.bufferCtx=null,this.bufferCanvas=null}},_e=class{canvas=null;gl=null;program=null;instancedArraysExt=null;u_resolution=null;u_tex=null;u_colorMatrix=null;u_texDimensions=null;a_quadPos=-1;a_destRect=-1;a_color=-1;a_texLayer=-1;quadPosBuffer=null;instanceDestRectBuffer=null;instanceColorBuffer=null;instanceTexLayerBuffer=null;instanceDestRectData;instanceColorData;instanceTexLayerData;textureCache=new Map;textureWidth=0;textureHeight=0;colorMatrix=L;constructor(){this.instanceDestRectData=new Float32Array(256*4),this.instanceColorData=new Float32Array(256*4),this.instanceTexLayerData=new Float32Array(256)}_scheduledResize;resizeCanvas(e,t){!e||!t||this.canvas?.width===e&&this.canvas?.height===t||(this._scheduledResize={width:e,height:t})}setCanvas(e){this._initGL(e),e.addEventListener(`webglcontextlost`,e=>{e.preventDefault(),this.gl=null}),e.addEventListener(`webglcontextrestored`,()=>this._initGL(e))}_initGL(e){if(this.canvas=e,this.gl=e.getContext(`webgl`,{alpha:!0,premultipliedAlpha:!0,antialias:!1,depth:!1,preserveDrawingBuffer:!1,stencil:!1,desynchronized:!0,powerPreference:`high-performance`}),!this.gl)throw Error(`Could not get WebGL context`);if(this.instancedArraysExt=this.gl.getExtension(`ANGLE_instanced_arrays`),!this.instancedArraysExt)throw Error(`ANGLE_instanced_arrays extension not supported`);let t=this.createShader(this.gl.VERTEX_SHADER,`
|
|
1
|
+
const e={RAW:`RAW`,PROXY:`PROXY`,THROW:`THROW`,HANDLER:`HANDLER`},t={GET:`GET`,SET:`SET`,APPLY:`APPLY`,CONSTRUCT:`CONSTRUCT`,RELEASE:`RELEASE`},n=Symbol(`Abslink.proxy`),r=Symbol(`Abslink.releaseProxy`),i=Symbol(`Abslink.finalizer`),a=Symbol(`Abslink.thrown`),o=e=>typeof e==`object`&&!!e||typeof e==`function`,s=/* @__PURE__ */ new Map([[`proxy`,{canHandle:e=>o(e)&&n in e,serialize(e,t){let r=e[n];return l(e,t,r),[r,[]]},deserialize(e,t){return u(t,e)}}],[`throw`,{canHandle:e=>o(e)&&a in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(Error(e.value.message),e.value):e.value}}]]);function c(e,t){let n=t,r=e.slice(0,-1);for(let e of r)Object.prototype.hasOwnProperty.call(n,e)&&(n=n[e]);let i=e[e.length-1],a=i?n[i]:n;return{parent:n,RawValue:a,lastSegment:i}}function l(e,n,r){return n.on(`message`,function o(s){if(!s)return;let{id:l,type:u,path:d,markerID:f}={path:[],...s};if(f!==r)return;let p=(s.argumentList??[]).map(e=>y(e,n)),m;try{let{parent:r,RawValue:i,lastSegment:a}=c(d,e);switch(u){case t.GET:m=i;break;case t.SET:r[a]=y(s.value,n),m=!0;break;case t.APPLY:m=i.apply(r,p);break;case t.CONSTRUCT:m=new i(...p);break;case t.RELEASE:m=void 0;break;default:return}}catch(e){m={value:e,[a]:0}}Promise.resolve(m).catch(e=>({value:e,[a]:0})).then(a=>{u===t.CONSTRUCT&&(a=ne(a));let[s,c]=v(a,n);n.postMessage({...s,id:l,markerID:r},c),u===t.RELEASE&&(n.off(`message`,o),e[i]?.(),n.close?.())}).catch(e=>{let[t,i]=v({value:/* @__PURE__ */ TypeError(`Unserializable return value`),[a]:0},n);n.postMessage({...t,id:l,markerID:r},i)})}),e}function u(e,t){let n=/* @__PURE__ */ new Map;return e.on(`message`,e=>{if(!e?.id)return;let t=n.get(e.id);if(t)try{t(e)}finally{n.delete(e.id)}}),ee({endpoint:e,pendingListeners:n,rootMarkerID:t})}function d(e){if(e)throw Error(`Proxy has been released and is not useable`)}async function f(e){await b(e,{type:t.RELEASE}),e.endpoint.close?.()}const p=/* @__PURE__ */ new WeakMap,m=`FinalizationRegistry`in globalThis&&new FinalizationRegistry(e=>{let t=(p.get(e)??0)-1;p.set(e,t),t===0&&f(e).finally(()=>{e.pendingListeners.clear()})});function h(e,t){let n=(p.get(t)??0)+1;p.set(t,n),m&&m.register(e,t,e)}function g(e){m&&m.unregister(e)}function ee(e,n=[]){let i=!1,a=/* @__PURE__ */ new Map,o=new Proxy(function(){},{get(s,c){if(d(i),c===r)return async()=>{for(let e of a.values())e[r]();a.clear(),g(o),f(e).finally(()=>{e.pendingListeners.clear()}),i=!0};if(c===`then`){if(n.length===0)return{then:()=>o};let r=b(e,{type:t.GET,path:n.map(e=>e.toString())}).then(t=>y(t,e.endpoint));return r.then.bind(r)}let l=a.get(c);if(l)return l;let u=ee(e,[...n,c]);return a.set(c,u),u},set(r,a,o){d(i);let[s,c]=v(o,e.endpoint);return b(e,{type:t.SET,path:[...n,a].map(e=>e.toString()),value:s},c).then(t=>y(t,e.endpoint))},apply(r,a,o){if(d(i),n[n.length-1]===`bind`)return ee(e,n.slice(0,-1));let[s,c]=_(o,e);return b(e,{type:t.APPLY,path:n.map(e=>e.toString()),argumentList:s},c).then(t=>y(t,e.endpoint))},construct(r,a){d(i);let[o,s]=_(a,e);return b(e,{type:t.CONSTRUCT,path:n.map(e=>e.toString()),argumentList:o},s).then(t=>y(t,e.endpoint))}});return h(o,e),o}const te=/* @__PURE__ */ new WeakMap;function _(e,t){let n=[],r=[];for(let i of e){let[e,a]=v(i,t.endpoint);n.push(e),r.push(...a)}return[n,r]}function ne(e){return Object.assign(e,{[n]:C()})}function v(t,n){for(let[r,i]of s)if(i.canHandle(t)){let[a,o]=i.serialize(t,n);return[{type:e.HANDLER,name:r,value:a},o]}return[{type:e.RAW,value:t},te.get(t)??[]]}function y(t,n){switch(t.type){case e.HANDLER:return s.get(t.name).deserialize(t.value,n);case e.RAW:return t.value}}function b(e,t,n){return new Promise(r=>{let i=C();e.pendingListeners.set(i,r),e.endpoint.postMessage({id:i,...t,markerID:e.rootMarkerID},n)})}const re=[],ie=`0123456789abcdef`;for(let e=0;e<256;e++)re[e]=ie[e>>4&15]+ie[e&15];let x=0,S=``;function C(){let e=0;if(!S||x+16>512)for(S=``,x=0;e<256;++e)S+=re[Math.random()*256|0];return S.substring(x,++x+16)}function ae(e,t){let n=/* @__PURE__ */ new WeakMap;return e.start?.(),t.start?.(),{on(t,r){let i=e=>r(e.data);`addEventListener`in e?e.addEventListener(t,i):`addListener`in e?e.addListener(t,i):e.on(t,i),n.set(r,i)},off(t,r){let i=n.get(r);`removeEventListener`in e?e.removeEventListener(t,i):`removeListener`in e?e.removeListener(t,i):e.off(t,i),n.delete(r)},postMessage(e,n){t.postMessage(e,n)},close(){e!==globalThis&&e.close?.(),t!==globalThis&&t.close?.()}}}function w(e,t=globalThis,n=t){return l(e,ae(t,n))}`queryLocalFonts`in globalThis&&globalThis.queryLocalFonts;const T={100:`Thin`,200:`ExtraLight`,300:`Light`,400:`Regular`,500:`Medium`,600:`SemiBold`,700:`Bold`,800:`ExtraBold`,900:`Black`,1e3:`UltraBlack`};var E=class{family;fullName;postscriptName;style;#e;#t;constructor({family:e,weight:t,isItalic:n,weightName:r}){this.family=e,this.#e=t,this.#t=n,this.style=r===`Regular`?n?`Italic`:`Regular`:r+(n?` Italic`:``),this.fullName=this.style===`Regular`?e:`${e} ${this.style}`,this.postscriptName=this.fullName.replace(/ /g,`-`)}async blob(){let e=await(await fetch(`https://fonts.googleapis.com/css2?family=${this.family}:${this.#t?`ital,`:``}wght@${this.#t?`1,`:``}${this.#e}`)).text();for(let t of[/\/\* latin-ext \*\/[\s\S]+url\(([^)]+)\)/,/\/\* latin \*\/[\s\S]+url\(([^)]+)\)/,/url\(([^)]+)\)/]){let n=e.match(t)?.[1];if(n){let e=await fetch(n);if(e.ok)return e.blob()}}throw Error(`Failed to load font blob`)}};function oe([e,t]){let n=[];for(let r of t){let t=``+r,i=t.endsWith(`i`),a=t.replace(`i`,``);if(a.includes(`a`)){let[t,r]=a.split(`a`).map(e=>parseInt(e)*100);for(let a=t;a<=r;a+=100)n.push(new E({family:e,weight:`${t}..${r}`,isItalic:i,weightName:T[a]}))}else n.push(new E({family:e,weight:`${a}00`,isItalic:i,weightName:T[parseInt(a)*100]}))}return n}let se=/* @__PURE__ */ new Map;async function ce(){if(se.size===0){let e=await import(`./fonts.js`);for(let t of e.default.flatMap(e=>oe(e)))se.set(t.postscriptName.toLowerCase().replace(/-/g,``),t)}return se}async function D({postscriptNames:e}={}){let t=await ce();return e?e.length===0?[]:e.reduce((e,n)=>{let r=t.get(n.toLowerCase().replace(/regular$/,``).replace(/-reg$/,``).replace(/[- ]/g,``));return r&&e.push(r),e},[]):[...t.values()]}if(self.name.startsWith(`em-pthread`)){let e=self.name.split(`-`).slice(2).join(`-`),t=globalThis.fetch;globalThis.fetch=n=>t(e),self.name=`em-pthread`}async function O(e={}){var t=e,n=!0,r=!!globalThis.WorkerGlobalScope,i=(...e)=>console.log(...e),a=(...e)=>console.error(...e);function o(){s&&h()}var s=r&&globalThis.name==`em-pthread`;r&&(c=self.location.href);var c;let l=!!WebAssembly.Memory.prototype.toResizableBuffer;if(_=()=>{if(!(l&&self.HEAPU8RAW)){var e=l?F.toResizableBuffer():F.buffer;v=new Int8Array(e),W=new Int16Array(e),N=new Uint8Array(e),G=new Uint16Array(e),D=new Int32Array(e),k=new Uint32Array(e),kt=new Float32Array(e),w=new Float64Array(e),T=new BigInt64Array(e),Te=new BigUint64Array(e),self.HEAPU8RAW=new Uint8Array(e),self.WASMMEMORY=F}},e.__out&&(i=e.__out),e.__err&&(a=e.__err),!self.name.startsWith(`em-pthread`)){let t=globalThis.Worker;globalThis.Worker=class extends t{constructor(t,n={}){super(t,{...n,name:`em-pthread-`+e.__url})}}}let u=Dr;Dr=function(){u(),$n=new Proxy({},{get(){return e=>fe(Z.toValue(e))}})};function d(e){throw e}class f{}class p extends f{}function m(){F.buffer!=v.buffer&&_()}var h;if(s){var g=!1;self.onunhandledrejection=e=>{throw e.reason||e};function e(n){try{var r=n.data,o=r.cmd;if(o==1){let n=[];self.onmessage=e=>n.push(e),h=()=>{postMessage({cmd:3});for(let t of n)e(t);self.onmessage=e};for(let e of r.handlers)(!t[e]||t[e].proxy)&&(t[e]=(...t)=>{postMessage({cmd:9,handler:e,args:t})},e==`print`&&(i=t[e]),e==`printErr`&&(a=t[e]));F=r.wasmMemory,_(),t.wasm=r.wasmModule,Dr()}else if(o==2){le(r.pthread_ptr),ir(r.pthread_ptr,0,0,1,0,0),O.threadInitTLS(),Kt(r.pthread_ptr),g||=(rr(),!0);try{ue(r.start_routine,r.arg)}catch(e){if(e!=`unwind`)throw e}}else o==4?g&&qt():o&&(a(`worker: received unknown command ${o}`),a(r))}catch(e){throw ee&&or(),e}}self.onmessage=e}var ee=!1;function te(){return F.buffer}function _(){if(!v?.buffer?.growable){var e=te();v=new Int8Array(e),W=new Int16Array(e),N=new Uint8Array(e),G=new Uint16Array(e),D=new Int32Array(e),k=new Uint32Array(e),kt=new Float32Array(e),w=new Float64Array(e),T=new BigInt64Array(e),Te=new BigUint64Array(e)}}function ne(){s||(F=new WebAssembly.Memory({initial:512,maximum:32768,shared:!0}),_())}ne();var v,y=e=>{e.terminate(),e.onmessage=e=>{}},b=e=>{var t=O.pthreads[e];O.returnWorkerToPool(t)},re=e=>{for(;e.length>0;)e.shift()(t)},ie=[],x=e=>{var t=O.getNewWorker();if(!t)return 6;O.pthreads[e.pthread_ptr]=t,t.pthread_ptr=e.pthread_ptr;var n={cmd:2,start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};return t.postMessage(n,e.transferList),0},S=()=>_r(),C=e=>hr(e),ae=e=>gr(e),w,T,E=(e,t,n,...r)=>{var i=8*r.length*2,a=S(),o=ae(i),s=o>>3;for(var c of r)typeof c==`bigint`?((m(),T)[s++]=1n,(m(),T)[s++]=c):((m(),T)[s++]=0n,(m(),w)[s++]=c);var l=cr(e,t,i,o,n);return C(a),l};function oe(e){if(s)return E(0,0,1,e);throw`exit(${e})`}var se=oe,ce=!Atomics.waitAsync||globalThis.navigator?.userAgent&&Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2])<91,D,O={unusedWorkers:[],tlsInitFunctions:[],pthreads:{},init(){s||O.initMainThread()},initMainThread(){for(var e=!navigator.userAgent.toLowerCase().includes(`firefox`)&&self.crossOriginIsolated?Math.min(Math.max(0,navigator.hardwareConcurrency-2),8):0;e--;)O.allocateUnusedWorker()},terminateAllThreads:()=>{for(var e of Object.values(O.pthreads))y(e);for(var e of O.unusedWorkers)y(e);O.unusedWorkers=[],O.pthreads={}},terminateRuntime:()=>{O.terminateAllThreads();var e=er();ar(0,0,0,1),ce||Atomics.notify((m(),D),e>>2)},returnWorkerToPool:e=>{var t=e.pthread_ptr;delete O.pthreads[t],O.unusedWorkers.push(e),e.pthread_ptr=0,lr(t)},threadInitTLS(){O.tlsInitFunctions.forEach(e=>e())},loadWasmModuleToWorker:e=>new Promise(n=>{e.onmessage=r=>{var i=r.data,o=i.cmd;if(i.targetThread&&i.targetThread!=er()){O.pthreads[i.targetThread]?.postMessage(i);return}if(i===`setimmediate`||i===`_si`){e.postMessage(i);return}switch(o){case 4:qt();break;case 5:x(i);break;case 6:Gt(()=>b(i.thread));break;case 3:n(e);break;case 9:t[i.handler](...i.args);break;default:o&&a(`worker sent an unknown command ${o}`)}},e.onerror=e=>{throw a(`worker sent an error! ${e.filename}:${e.lineno}: ${e.message}`),e};var r=[];for(var i of[])t.propertyIsEnumerable(i)&&r.push(i);e.postMessage({cmd:1,handlers:r,wasmMemory:F,wasmModule:Er})}),async loadWasmModuleToAllWorkers(){if(!s)return Promise.all(O.unusedWorkers.map(O.loadWasmModuleToWorker))},allocateUnusedWorker(){var e=new Worker(new URL(
|
|
2
|
+
/* @vite-ignore */
|
|
3
|
+
new URL(`jassub-worker.js`,import.meta.url).href,``+import.meta.url),{type:`module`,name:`em-pthread`});return O.unusedWorkers.push(e),e},getNewWorker(){if(O.unusedWorkers.length==0){var e=O.allocateUnusedWorker();O.loadWasmModuleToWorker(e)}return O.unusedWorkers.pop()}},k;function le(e){var t=(m(),k)[e+48>>2],n=t-(m(),k)[e+52>>2];mr(t,n),C(t)}var A=[],j=e=>{var t=A[e];return t||(A[e]=t=vr.get(e)),t},ue=(e,t)=>{var n=j(e)(t);function r(e){ur(e)}r(n)},M=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r<=127?t++:r<=2047?t+=2:r>=55296&&r<=57343?(t+=4,++n):t+=3}return t},de=(e,t,n,r)=>{if(!(r>0))return 0;for(var i=n,a=n+r-1,o=0;o<e.length;++o){var s=e.codePointAt(o);if(s<=127){if(n>=a)break;t[n++]=s}else if(s<=2047){if(n+1>=a)break;t[n++]=192|s>>6,t[n++]=128|s&63}else if(s<=65535){if(n+2>=a)break;t[n++]=224|s>>12,t[n++]=128|s>>6&63,t[n++]=128|s&63}else{if(n+3>=a)break;t[n++]=240|s>>18,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|s&63,o++}}return t[n]=0,n-i},N,P=(e,t,n)=>de(e,(m(),N),t,n),fe=e=>{var t=M(e)+1,n=tr(t);return n&&P(e,n,t),n},F,pe=new TextDecoder,me=(e,t,n,r)=>{var i=t+n;if(r)return i;for(;e[t]&&!(t>=i);)++t;return t},I=(e,t,n)=>{if(!e)return``;var r=me((m(),N),e,t,n);return pe.decode((m(),N).slice(e,r))},he=(e,t,n,r)=>d(`Assertion failed: ${I(e)}, at: `+[t?I(t):`unknown filename`,n,r?I(r):`unknown function`]);function L(e,t,n,r){return s?E(1,0,1,e,t,n,r):_e(e,t,n,r)}var ge=()=>!!globalThis.SharedArrayBuffer,_e=(e,t,n,r)=>{if(!ge())return 6;var i=[];if(s&&i.length===0)return L(e,t,n,r);var a={startRoutine:n,pthread_ptr:e,arg:r,transferList:i};return s?(a.cmd=5,postMessage(a,i),0):x(a)};function ve(e,t,n){return s?E(2,0,1,e,t,n):0}function ye(e,t,n){if(s)return E(3,0,1,e,t,n)}function be(e,t,n){return s?E(4,0,1,e,t,n):0}function xe(e,t,n,r){if(s)return E(5,0,1,e,t,n,r)}var Se=()=>d(``),R=e=>{for(var t=``;;){var n=(m(),N)[e++];if(!n)return t;t+=String.fromCharCode(n)}},z={},B={},Ce={};class V extends Error{constructor(e){super(e),this.name=`BindingError`}}var H=e=>{throw new V(e)};function we(e,t,n={}){var r=t.name;if(e||H(`type "${r}" must have a positive integer typeid pointer`),B.hasOwnProperty(e)){if(n.ignoreDuplicateRegistrations)return;H(`Cannot register type '${r}' twice`)}if(B[e]=t,delete Ce[e],z.hasOwnProperty(e)){var i=z[e];delete z[e],i.forEach(e=>e())}}function U(e,t,n={}){return we(e,t,n)}var W,G,Te,Ee=(e,t,n)=>{switch(t){case 1:return n?e=>(m(),v)[e]:e=>(m(),N)[e];case 2:return n?e=>(m(),W)[e>>1]:e=>(m(),G)[e>>1];case 4:return n?e=>(m(),D)[e>>2]:e=>(m(),k)[e>>2];case 8:return n?e=>(m(),T)[e>>3]:e=>(m(),Te)[e>>3];default:throw TypeError(`invalid integer width (${t}): ${e}`)}},De=(e,t,n,r,i)=>{t=R(t);let a=r===0n,o=e=>e;if(a){let e=n*8;o=t=>BigInt.asUintN(e,t),i=o(i)}U(e,{name:t,fromWireType:o,toWireType:(e,t)=>(typeof t==`number`&&(t=BigInt(t)),t),readValueFromPointer:Ee(t,n,!a),destructorFunction:null})},Oe=(e,t,n,r)=>{t=R(t),U(e,{name:t,fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:r},readValueFromPointer:function(e){return this.fromWireType((m(),N)[e])},destructorFunction:null})},ke=e=>({count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}),Ae=e=>{function t(e){return e.$$.ptrType.registeredClass.name}H(t(e)+` instance already deleted`)},je=!1,Me=e=>{},Ne=e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)},Pe=e=>{--e.count.value,e.count.value===0&&Ne(e)},K=e=>globalThis.FinalizationRegistry?(je=new FinalizationRegistry(e=>{Pe(e.$$)}),K=e=>{var t=e.$$;if(t.smartPtr){var n={$$:t};je.register(e,n,e)}return e},Me=e=>je.unregister(e),K(e)):(K=e=>e,e),Fe=[],Ie=()=>{for(;Fe.length;){var e=Fe.pop();e.$$.deleteScheduled=!1,e.delete()}},Le,Re=()=>{let e=ze.prototype;Object.assign(e,{isAliasOf(e){if(!(this instanceof ze)||!(e instanceof ze))return!1;var t=this.$$.ptrType.registeredClass,n=this.$$.ptr;e.$$=e.$$;for(var r=e.$$.ptrType.registeredClass,i=e.$$.ptr;t.baseClass;)n=t.upcast(n),t=t.baseClass;for(;r.baseClass;)i=r.upcast(i),r=r.baseClass;return t===r&&n===i},clone(){if(this.$$.ptr||Ae(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=K(Object.create(Object.getPrototypeOf(this),{$$:{value:ke(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e},delete(){this.$$.ptr||Ae(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&H(`Object already scheduled for deletion`),Me(this),Pe(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||Ae(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&H(`Object already scheduled for deletion`),Fe.push(this),Fe.length===1&&Le&&Le(Ie),this.$$.deleteScheduled=!0,this}});let t=Symbol.dispose;t&&(e[t]=e.delete)};function ze(){}var Be=(e,t)=>Object.defineProperty(t,"name",{value:e}),Ve={},He=(e,t,n)=>{if(e[t].overloadTable===void 0){var r=e[t];e[t]=function(...r){return e[t].overloadTable.hasOwnProperty(r.length)||H(`Function '${n}' called with an invalid number of arguments (${r.length}) - expects one of (${e[t].overloadTable})!`),e[t].overloadTable[r.length].apply(this,r)},e[t].overloadTable=[],e[t].overloadTable[r.argCount]=r}},Ue=(e,n,r)=>{t.hasOwnProperty(e)?((r===void 0||t[e].overloadTable!==void 0&&t[e].overloadTable[r]!==void 0)&&H(`Cannot register public name '${e}' twice`),He(t,e,e),t[e].overloadTable.hasOwnProperty(r)&&H(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`),t[e].overloadTable[r]=n):(t[e]=n,t[e].argCount=r)},We=48,Ge=57,Ke=e=>{e=e.replace(/[^a-zA-Z0-9_]/g,`$`);var t=e.charCodeAt(0);return t>=We&&t<=Ge?`_${e}`:e};function qe(e,t,n,r,i,a,o,s){this.name=e,this.constructor=t,this.instancePrototype=n,this.rawDestructor=r,this.baseClass=i,this.getActualType=a,this.upcast=o,this.downcast=s,this.pureVirtualFunctions=[]}var Je=(e,t,n)=>{for(;t!==n;)t.upcast||H(`Expected null or instance of ${n.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e},Ye=e=>{if(e===null)return`null`;var t=typeof e;return t===`object`||t===`array`||t===`function`?e.toString():``+e};function Xe(e,t){if(t===null)return this.isReference&&H(`null is not a valid ${this.name}`),0;t.$$||H(`Cannot pass "${Ye(t)}" as a ${this.name}`),t.$$.ptr||H(`Cannot pass deleted object as a pointer of type ${this.name}`);var n=t.$$.ptrType.registeredClass;return Je(t.$$.ptr,n,this.registeredClass)}function Ze(e,t){var n;if(t===null)return this.isReference&&H(`null is not a valid ${this.name}`),this.isSmartPointer?(n=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,n),n):0;(!t||!t.$$)&&H(`Cannot pass "${Ye(t)}" as a ${this.name}`),t.$$.ptr||H(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&H(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);var r=t.$$.ptrType.registeredClass;if(n=Je(t.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&H(`Passing raw pointer to smart pointer is illegal`),this.sharingPolicy){case 0:t.$$.smartPtrType===this?n=t.$$.smartPtr:H(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:n=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)n=t.$$.smartPtr;else{var i=t.clone();n=this.rawShare(n,Z.toHandle(()=>i.delete())),e!==null&&e.push(this.rawDestructor,n)}break;default:H(`Unsupported sharing policy`)}return n}function Qe(e,t){if(t===null)return this.isReference&&H(`null is not a valid ${this.name}`),0;t.$$||H(`Cannot pass "${Ye(t)}" as a ${this.name}`),t.$$.ptr||H(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&H(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);var n=t.$$.ptrType.registeredClass;return Je(t.$$.ptr,n,this.registeredClass)}function $e(e){return this.fromWireType((m(),k)[e>>2])}var et=(e,t,n)=>{if(t===n)return e;if(n.baseClass===void 0)return null;var r=et(e,t,n.baseClass);return r===null?null:n.downcast(r)},tt={},nt=(e,t)=>{for(t===void 0&&H(`ptr should not be undefined`);e.baseClass;)t=e.upcast(t),e=e.baseClass;return t},rt=(e,t)=>(t=nt(e,t),tt[t]);class it extends Error{constructor(e){super(e),this.name=`InternalError`}}var at=e=>{throw new it(e)},ot=(e,t)=>((!t.ptrType||!t.ptr)&&at(`makeClassHandle requires ptr and ptrType`),!!t.smartPtrType!=!!t.smartPtr&&at(`Both smartPtrType and smartPtr must be specified`),t.count={value:1},K(Object.create(e,{$$:{value:t,writable:!0}})));function st(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var n=rt(this.registeredClass,t);if(n!==void 0){if(n.$$.count.value===0)return n.$$.ptr=t,n.$$.smartPtr=e,n.clone();var r=n.clone();return this.destructor(e),r}function i(){return this.isSmartPointer?ot(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):ot(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a=Ve[this.registeredClass.getActualType(t)];if(!a)return i.call(this);var o=this.isConst?a.constPointerType:a.pointerType,s=et(t,this.registeredClass,o.registeredClass);return s===null?i.call(this):this.isSmartPointer?ot(o.registeredClass.instancePrototype,{ptrType:o,ptr:s,smartPtrType:this,smartPtr:e}):ot(o.registeredClass.instancePrototype,{ptrType:o,ptr:s})}var ct=()=>{Object.assign(lt.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor?.(e)},readValueFromPointer:$e,fromWireType:st})};function lt(e,t,n,r,i,a,o,s,c,l,u){this.name=e,this.registeredClass=t,this.isReference=n,this.isConst=r,this.isSmartPointer=i,this.pointeeType=a,this.sharingPolicy=o,this.rawGetPointee=s,this.rawConstructor=c,this.rawShare=l,this.rawDestructor=u,!i&&t.baseClass===void 0?r?(this.toWireType=Xe,this.destructorFunction=null):(this.toWireType=Qe,this.destructorFunction=null):this.toWireType=Ze}var ut=(e,n,r)=>{t.hasOwnProperty(e)||at(`Replacing nonexistent public symbol`),t[e].overloadTable!==void 0&&r!==void 0?t[e].overloadTable[r]=n:(t[e]=n,t[e].argCount=r)},q=(e,t,n=!1)=>{e=R(e);function r(){return j(t)}var i=r();return typeof i!=`function`&&H(`unknown function pointer with signature ${e}: ${t}`),i};class dt extends Error{}var ft=e=>{var t=nr(e),n=R(t);return $(t),n},J=(e,t)=>{var n=[],r={};function i(e){if(!r[e]&&!B[e]){if(Ce[e]){Ce[e].forEach(i);return}n.push(e),r[e]=!0}}throw t.forEach(i),new dt(`${e}: `+n.map(ft).join([`, `]))},Y=(e,t,n)=>{e.forEach(e=>Ce[e]=t);function r(t){var r=n(t);r.length!==e.length&&at(`Mismatched type converter count`);for(var i=0;i<e.length;++i)U(e[i],r[i])}var i=Array(t.length),a=[],o=0;for(let[e,n]of t.entries())B.hasOwnProperty(n)?i[e]=B[n]:(a.push(n),z.hasOwnProperty(n)||(z[n]=[]),z[n].push(()=>{i[e]=B[n],++o,o===a.length&&r(i)}));a.length===0&&r(i)},pt=(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{u=R(u),a=q(i,a),s&&=q(o,s),l&&=q(c,l),f=q(d,f);var p=Ke(u);Ue(p,function(){J(`Cannot construct ${u} due to unbound types`,[r])}),Y([e,t,n],r?[r]:[],t=>{t=t[0];var n,i;r?(n=t.registeredClass,i=n.instancePrototype):i=ze.prototype;var o=Be(u,function(...e){if(Object.getPrototypeOf(this)!==c)throw new V(`Use 'new' to construct ${u}`);if(d.constructor_body===void 0)throw new V(`${u} has no accessible constructor`);var t=d.constructor_body[e.length];if(t===void 0)throw new V(`Tried to invoke ctor of ${u} with invalid number of parameters (${e.length}) - expected (${Object.keys(d.constructor_body).toString()}) parameters instead!`);return t.apply(this,e)}),c=Object.create(i,{constructor:{value:o}});o.prototype=c;var d=new qe(u,o,c,f,n,a,s,l);d.baseClass&&(d.baseClass.__derivedClasses??=[],d.baseClass.__derivedClasses.push(d));var m=new lt(u,d,!0,!1,!1),h=new lt(u+`*`,d,!1,!1,!1),g=new lt(u+` const*`,d,!1,!0,!1);return Ve[e]={pointerType:h,constPointerType:g},ut(p,o),[m,h,g]})},mt=(e,t)=>{for(var n=[],r=0;r<e;r++)n.push((m(),k)[t+r*4>>2]);return n},ht=e=>{for(;e.length;){var t=e.pop();e.pop()(t)}};function gt(e){for(var t=1;t<e.length;++t)if(e[t]!==null&&e[t].destructorFunction===void 0)return!0;return!1}var _t={ftfnnn:function(e,t,n,r,i,a,o,s,c,l){return function(e,t,i){return a(n(r,s(null,e),c(null,t),l(null,i)))}},tffn:function(e,t,n,r,i,a,o){return function(){n(r,o(null,this))}},tffnn:function(e,t,n,r,i,a,o,s){return function(e){n(r,o(null,this),s(null,e))}},tffnnnnn:function(e,t,n,r,i,a,o,s,c,l,u){return function(e,t,i,a){n(r,o(null,this),s(null,e),c(null,t),l(null,i),u(null,a))}},tffnnn:function(e,t,n,r,i,a,o,s,c){return function(e,t){n(r,o(null,this),s(null,e),c(null,t))}},ttfnn:function(e,t,n,r,i,a,o,s){return function(e){return a(n(r,o(null,this),s(null,e)))}},tffnt:function(e,t,n,r,i,a,o,s,c){return function(e){var t=o(null,this),i=s(null,e);n(r,t,i),c(i)}},tffntnn:function(e,t,n,r,i,a,o,s,c,l,u){return function(e,t,i){var a=o(null,this),d=s(null,e);n(r,a,d,c(null,t),l(null,i)),u(d)}},tffnnnn:function(e,t,n,r,i,a,o,s,c,l){return function(e,t,i){n(r,o(null,this),s(null,e),c(null,t),l(null,i))}},ttfn:function(e,t,n,r,i,a,o){return function(){return a(n(r,o(null,this)))}},ttfnnn:function(e,t,n,r,i,a,o,s,c){return function(e,t){return a(n(r,o(null,this),s(null,e),c(null,t)))}}};function vt(e,t,n,r){let i=[t?`t`:`f`,n?`t`:`f`,r?`t`:`f`];for(let n=t?1:2;n<e.length;++n){let t=e[n],r=``;r=t.destructorFunction===void 0?`u`:t.destructorFunction===null?`n`:`t`,i.push(r)}return i.join(``)}function yt(e,t,n,r,i,a){var o=t.length;o<2&&H(`argTypes array size mismatch! Must at least get return value and receiver (this) types!`);for(var s=t[1]!==null&&n!==null,c=gt(t),l=!t[0].isVoid,u=t[0],d=t[1],f=[e,H,r,i,ht,u.fromWireType.bind(u),d?.toWireType.bind(d)],p=2;p<o;++p){var m=t[p];f.push(m.toWireType.bind(m))}if(!c)for(var p=s?1:2;p<t.length;++p)t[p].destructorFunction!==null&&f.push(t[p].destructorFunction);return Be(e,_t[vt(t,s,l,a)](...f))}var bt=(e,t,n,r,i,a)=>{var o=mt(t,n);i=q(r,i),Y([],[e],e=>{e=e[0];var n=`constructor ${e.name}`;if(e.registeredClass.constructor_body===void 0&&(e.registeredClass.constructor_body=[]),e.registeredClass.constructor_body[t-1]!==void 0)throw new V(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${e.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return e.registeredClass.constructor_body[t-1]=()=>{J(`Cannot construct ${e.name} due to unbound types`,o)},Y([],o,r=>(r.splice(1,0,null),e.registeredClass.constructor_body[t-1]=yt(n,r,null,i,a),[])),[]})},xt=e=>{e=e.trim();let t=e.indexOf(`(`);return t===-1?e:e.slice(0,t)},St=(e,t,n,r,i,a,o,s,c,l)=>{var u=mt(n,r);t=R(t),t=xt(t),a=q(i,a,c),Y([],[e],e=>{e=e[0];var r=`${e.name}.${t}`;t.startsWith(`@@`)&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);function i(){J(`Cannot call ${r} due to unbound types`,u)}var l=e.registeredClass.instancePrototype,d=l[t];return d===void 0||d.overloadTable===void 0&&d.className!==e.name&&d.argCount===n-2?(i.argCount=n-2,i.className=e.name,l[t]=i):(He(l,t,r),l[t].overloadTable[n-2]=i),Y([],u,i=>{var s=yt(r,i,e,a,o,c);return l[t].overloadTable===void 0?(s.argCount=n-2,l[t]=s):l[t].overloadTable[n-2]=s,[]}),[]})},Ct=(e,t,n)=>(e instanceof Object||H(`${n} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||H(`${n} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||H(`cannot call emscripten binding method ${n} on deleted object`),Je(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)),wt=(e,t,n,r,i,a,o,s,c,l)=>{t=R(t),i=q(r,i),Y([],[e],e=>{e=e[0];var r=`${e.name}.${t}`,u={get(){J(`Cannot access ${r} due to unbound types`,[n,o])},enumerable:!0,configurable:!0};return u.set=c?()=>J(`Cannot access ${r} due to unbound types`,[n,o]):e=>H(r+` is a read-only property`),Object.defineProperty(e.registeredClass.instancePrototype,t,u),Y([],c?[n,o]:[n],n=>{var o=n[0],u={get(){var t=Ct(this,e,r+` getter`);return o.fromWireType(i(a,t))},enumerable:!0};if(c){c=q(s,c);var d=n[1];u.set=function(t){var n=Ct(this,e,r+` setter`),i=[];c(l,n,d.toWireType(i,t)),ht(i)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]}),[]})},Tt=[],X=[0,1,,1,null,1,!0,1,!1,1],Et=e=>{e>9&&--X[e+1]===0&&(X[e],X[e]=void 0,Tt.push(e))},Z={toValue:e=>(e||H(`Cannot use deleted val. handle = ${e}`),X[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let t=Tt.pop()||X.length;return X[t]=e,X[t+1]=1,t}}}},Dt={name:`emscripten::val`,fromWireType:e=>{var t=Z.toValue(e);return Et(e),t},toWireType:(e,t)=>Z.toHandle(t),readValueFromPointer:$e,destructorFunction:null},Ot=e=>U(e,Dt),kt,At=(e,t)=>{switch(t){case 4:return function(e){return this.fromWireType((m(),kt)[e>>2])};case 8:return function(e){return this.fromWireType((m(),w)[e>>3])};default:throw TypeError(`invalid float width (${t}): ${e}`)}},jt=(e,t,n)=>{t=R(t),U(e,{name:t,fromWireType:e=>e,toWireType:(e,t)=>t,readValueFromPointer:At(t,n),destructorFunction:null})},Mt=(e,t,n,r,i)=>{t=R(t);let a=r===0,o=e=>e;if(a){var s=32-8*n;o=e=>e<<s>>>s,i=o(i)}U(e,{name:t,fromWireType:o,toWireType:(e,t)=>t,readValueFromPointer:Ee(t,n,r!==0),destructorFunction:null})},Nt=(e,t,n)=>{var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];function i(e){var t=(m(),k)[e>>2],n=(m(),k)[e+4>>2];return new r((m(),v).buffer,n,t)}n=R(n),U(e,{name:n,fromWireType:i,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},Pt=(e,t)=>{t=R(t);var n=!0;U(e,{name:t,fromWireType(e){var t=(m(),k)[e>>2],r=e+4,i;if(n)i=I(r,t,!0);else{i=``;for(var a=0;a<t;++a)i+=String.fromCharCode((m(),N)[r+a])}return $(e),i},toWireType(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var r,i=typeof t==`string`;i||ArrayBuffer.isView(t)&&t.BYTES_PER_ELEMENT==1||H(`Cannot pass non-string to std::string`),r=n&&i?M(t):t.length;var a=tr(4+r+1),o=a+4;if((m(),k)[a>>2]=r,i){if(n)P(t,o,r+1);else for(var s=0;s<r;++s){var c=t.charCodeAt(s);c>255&&($(a),H(`String has UTF-16 code units that do not fit in 8 bits`)),(m(),N)[o+s]=c}}else(m(),N).set(t,o);return e!==null&&e.push($,a),a},readValueFromPointer:$e,destructorFunction(e){$(e)}})},Ft=new TextDecoder(`utf-16le`),It=(e,t,n)=>{var r=e>>1,i=me((m(),G),r,t/2,n);return Ft.decode((m(),G).slice(r,i))},Lt=(e,t,n=2147483647)=>{if(n<2)return 0;n-=2;for(var r=t,i=n<e.length*2?n/2:e.length,a=0;a<i;++a){var o=e.charCodeAt(a);(m(),W)[t>>1]=o,t+=2}return(m(),W)[t>>1]=0,t-r},Rt=e=>e.length*2,zt=(e,t,n)=>{for(var r=``,i=e>>2,a=0;!(a>=t/4);a++){var o=(m(),k)[i+a];if(!o&&!n)break;r+=String.fromCodePoint(o)}return r},Bt=(e,t,n=2147483647)=>{if(n<4)return 0;for(var r=t,i=r+n-4,a=0;a<e.length;++a){var o=e.codePointAt(a);if(o>65535&&a++,(m(),D)[t>>2]=o,t+=4,t+4>i)break}return(m(),D)[t>>2]=0,t-r},Vt=e=>{for(var t=0,n=0;n<e.length;++n)e.codePointAt(n)>65535&&n++,t+=4;return t},Ht=(e,t,n)=>{n=R(n);var r,i,a;t===2?(r=It,i=Lt,a=Rt):(r=zt,i=Bt,a=Vt),U(e,{name:n,fromWireType:e=>{var n=(m(),k)[e>>2],i=r(e+4,n*t,!0);return $(e),i},toWireType:(e,r)=>{typeof r!=`string`&&H(`Cannot pass non-string to C++ string type ${n}`);var o=a(r),s=tr(4+o+t);return(m(),k)[s>>2]=o/t,i(r,s+4,o+t),e!==null&&e.push($,s),s},readValueFromPointer:$e,destructorFunction(e){$(e)}})},Ut=(e,t)=>{t=R(t),U(e,{isVoid:!0,name:t,fromWireType:()=>void 0,toWireType:(e,t)=>void 0})},Wt=e=>{ir(e,!r,1,!n,262144,!1),O.threadInitTLS()},Gt=e=>{e()},Kt=e=>{if(!ce){Atomics.waitAsync((m(),D),e>>2,e).value.then(qt);var t=e+112;Atomics.store((m(),D),t>>2,1)}},qt=()=>{var e=er();e&&Gt(()=>{Kt(e),fr()})},Jt=(e,t)=>{if(e==t)setTimeout(qt);else if(s)postMessage({targetThread:e,cmd:4});else{var n=O.pthreads[e];if(!n)return;n.postMessage({cmd:4})}},Yt=[],Xt=(e,t,n,r,i,a,o)=>{Yt.length=0;for(var s=i>>3,c=i+r>>3;s<c;){var l=(m(),T)[s++]?(m(),T)[s++]:(m(),w)[s++];Yt.push(l)}var u=t?$n[t]:Qn[e];O.currentProxiedOperationCallerThread=n;var d=u(...Yt);if(O.currentProxiedOperationCallerThread=0,a){d.then(e=>sr(a,o,e));return}return d},Zt=()=>{},Qt=e=>{s?postMessage({cmd:6,thread:e}):b(e)},$t=e=>{},en=()=>{throw new p},tn=[],nn=e=>{var t=tn.length;return tn.push(e),t},rn=(e,t)=>{var n=B[e];return n===void 0&&H(`${t} has unknown type ${ft(e)}`),n},an=(e,t)=>{for(var n=Array(e),r=0;r<e;++r)n[r]=rn((m(),k)[t+r*4>>2],`parameter ${r}`);return n},on=(e,t,n)=>{var r=[],i=e(r,n);return r.length&&((m(),k)[t>>2]=Z.toHandle(r)),i},sn={},cn=e=>{var t=sn[e];return t===void 0?R(e):t},ln=(e,t,n)=>{var[r,...i]=an(e,t),a=r.toWireType.bind(r),o=i.map(e=>e.readValueFromPointer.bind(e));e--;var s=Array(e);return nn(Be(`methodCaller<(${i.map(e=>e.name)}) => ${r.name}>`,(t,r,i,c)=>{for(var l=0,u=0;u<e;++u)s[u]=o[u](c+l),l+=8;var d;switch(n){case 0:d=Z.toValue(t).apply(null,s);break;case 2:d=Reflect.construct(Z.toValue(t),s);break;case 3:d=s[0];break;case 1:d=Z.toValue(t)[cn(r)](...s)}return on(a,i,d)}))},un=(e,t)=>(e=Z.toValue(e),t=Z.toValue(t),Z.toHandle(e[t])),dn=e=>{e>9&&(X[e+1]+=1)},fn=(e,t,n,r,i)=>tn[e](t,n,r,i),pn=()=>Z.toHandle([]),mn=e=>Z.toHandle(cn(e)),hn=()=>Z.toHandle({}),gn=e=>{ht(Z.toValue(e)),Et(e)},_n=(e,t,n)=>{e=Z.toValue(e),t=Z.toValue(t),n=Z.toValue(n),e[t]=n},Q={},vn=()=>performance.timeOrigin+performance.now();function yn(e,t){return s?E(6,0,1,e,t):(Q[e]&&(clearTimeout(Q[e].id),delete Q[e]),t&&(Q[e]={id:setTimeout(()=>{delete Q[e],Gt(()=>dr(e,vn()))},t),timeout_ms:t}),0)}var bn=()=>Date.now(),xn=9007199254740992,Sn=-9007199254740992,Cn=e=>e<Sn||e>xn?NaN:Number(e),wn=[],Tn=(e,t)=>{wn.length=0;for(var n;n=(m(),N)[e++];){var r=n!=105;r&=n!=112,t+=r&&t%8?4:0,wn.push(n==112?(m(),k)[t>>2]:n==106?(m(),T)[t>>3]:n==105?(m(),D)[t>>2]:(m(),w)[t>>3]),t+=r?8:4}return wn},En=(e,t,n)=>{var r=Tn(t,n);return $n[e](...r)},Dn=(e,t,n)=>En(e,t,n),On=()=>{},kn=e=>a(I(e)),An=()=>{throw`unwind`},jn=()=>2147483648,Mn=()=>jn(),Nn=()=>navigator.hardwareConcurrency,Pn=(e,t)=>Math.ceil(e/t)*t,Fn=e=>{var t=(e-F.buffer.byteLength+65535)/65536|0;try{return F.grow(t),_(),1}catch{}},In=e=>{var t=(m(),N).length;if(e>>>=0,e<=t)return!1;var n=jn();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),Fn(Math.min(n,Pn(Math.max(e,i),65536))))return!0}return!1},Ln={},Rn=()=>`./this.program`,zn=()=>{if(!zn.strings){var e={USER:`web_user`,LOGNAME:`web_user`,PATH:`/`,PWD:`/`,HOME:`/home/web_user`,LANG:(globalThis.navigator?.language??`C`).replace(`-`,`_`)+`.UTF-8`,_:Rn()};for(var t in Ln)Ln[t]===void 0?delete e[t]:e[t]=Ln[t];var n=[];for(var t in e)n.push(`${t}=${e[t]}`);zn.strings=n}return zn.strings};function Bn(e,t){if(s)return E(7,0,1,e,t);var n=0,r=0;for(var i of zn()){var a=t+n;(m(),k)[e+r>>2]=a,n+=P(i,a,1/0)+1,r+=4}return 0}function Vn(e,t){if(s)return E(8,0,1,e,t);var n=zn();(m(),k)[e>>2]=n.length;var r=0;for(var i of n)r+=M(i)+1;return(m(),k)[t>>2]=r,0}function Hn(e){return s?E(9,0,1,e):52}function Un(e,t,n,r){return s?E(10,0,1,e,t,n,r):52}function Wn(e,t,n,r){return s?E(11,0,1,e,t,n,r):(t=Cn(t),70)}var Gn=[null,[],[]],Kn=(e,t=0,n,r)=>{var i=me(e,t,n,r);return pe.decode(e.buffer?e.buffer instanceof ArrayBuffer?e.subarray(t,i):e.slice(t,i):new Uint8Array(e.slice(t,i)))},qn=(e,t)=>{var n=Gn[e];t===0||t===10?((e===1?i:a)(Kn(n)),n.length=0):n.push(t)};function Jn(e,t,n,r){if(s)return E(12,0,1,e,t,n,r);for(var i=0,a=0;a<n;a++){var o=(m(),k)[t>>2],c=(m(),k)[t+4>>2];t+=8;for(var l=0;l<c;l++)qn(e,(m(),N)[o+l]);i+=c}return(m(),k)[r>>2]=i,0}var Yn=()=>e=>(e.set(crypto.getRandomValues(new Uint8Array(e.byteLength))),0),Xn=e=>(Xn=Yn())(e),Zn=(e,t)=>Xn((m(),N).subarray(e,e+t));O.init(),Re(),ct();var Qn=[oe,L,ve,ye,be,xe,yn,Bn,Vn,Hn,Un,Wn,Jn],$n={624229:e=>fe(Z.toValue(e))},er,$,tr,nr,rr,ir,ar,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr;function yr(e){t.__ZdlPvm=e.ha,er=e.ia,t.__Znwm=e.ja,$=e.ka,tr=t._malloc=e.la,t._calloc=e.ma,nr=e.na,rr=e.oa,t._emscripten_builtin_free=e.pa,e.qa,ir=e.sa,ar=e.ta,or=e.ua,t.___libc_free=e.va,t._emscripten_builtin_malloc=e.wa,t.___libc_malloc=e.xa,sr=e.ya,cr=e.za,lr=e.Aa,ur=e.Ba,dr=e.Ca,fr=e.Da,t.__ZdaPv=e.Ea,t.__ZdaPvm=e.Fa,t.__ZdlPv=e.Ga,t.__Znam=e.Ha,t.__ZnamSt11align_val_t=e.Ia,t.__ZnwmSt11align_val_t=e.Ja,t.___libc_calloc=e.Ka,t.___libc_realloc=e.La,t._emscripten_builtin_calloc=e.Ma,t._emscripten_builtin_realloc=e.Na,t._malloc_size=e.Oa,t._malloc_usable_size=e.Pa,t._reallocf=e.Qa,pr=e.Ra,mr=e.Sa,hr=e.Ta,gr=e.Ua,_r=e.Va,vr=e.ra}var br;function xr(){br={b:he,P:_e,y:ve,O:ye,X:be,z:xe,K:Se,B:De,aa:Oe,fa:pt,ea:bt,d:St,ca:wt,_:Ot,A:jt,l:Mt,e:Nt,$:Pt,t:Ht,ba:Ut,S:Wt,L:Jt,x:Xt,G:Zt,v:Qt,R:Kt,Z:$t,E:en,h:ln,c:Et,da:un,i:dn,g:fn,p:pn,j:mn,s:hn,f:gn,k:_n,H:yn,n:Dn,w:On,m:bn,u:kn,Y:An,M:Mn,o:vn,N:Nn,I:In,T:Bn,U:Vn,q:se,r:Hn,W:Un,Q:Wn,V:Jn,D:Sr,C:Cr,a:F,F:oe,J:Zn}}function Sr(e,t,n){var r=S();try{return j(e)(t,n)}catch(e){if(C(r),!(e instanceof f))throw e;pr(1,0)}}function Cr(e,t,n,r,i){var a=S();try{return j(e)(t,n,r,i)}catch(e){if(C(a),!(e instanceof f))throw e;pr(1,0)}}function wr(e){ee=!0,O.tlsInitFunctions.push(e.qa),!s&&e.ga()}var Tr,Er;function Dr(){xr();var e={a:br};Tr=WebAssembly.instantiateStreaming(fetch(new URL(new URL(`jassub-worker.wasm`,import.meta.url).href,``+import.meta.url)),e).then(e=>{var n=(e.instance||e).exports;return Er=e.module||t.wasm,yr(n),re(ie),wr(n),O.loadWasmModuleToAllWorkers().then(o)})}return s||Dr(),await Tr,t}globalThis.name==`em-pthread`&&O();const k=[`thin`,`extralight`,`light`,`regular`,`medium`,`semibold`,`bold`,`extrabold`,`black`,`ultrablack`],le=navigator.userAgent.toLowerCase(),A=le.includes(`firefox`),j=/applewebkit\/[\d.]+ \(khtml, like gecko\)(?!.*chrome\/)/.test(le),ue=`BT601`,M=`BT709`,de=`SMPTE240M`,N=[null,ue,null,ue,ue,M,M,de,de,`FCC`,`FCC`],P=globalThis.fetch;async function fe(e){return await(await P(e)).text()}const F=!A&&self.crossOriginIsolated?Math.min(Math.max(1,navigator.hardwareConcurrency-2),8):1,pe=!!WebAssembly.Memory.prototype.toResizableBuffer,me=!A&&!j&&(pe||F>1),I=new Float32Array([1,0,0,0,1,0,0,0,1]),he={BT601:{BT709:new Float32Array([1.0863,.0965,-.01411,-.0723,.8451,-.0277,-.0141,.0584,1.0418]),BT601:I},BT709:{BT601:new Float32Array([.9137,.0784,.0079,-.1049,1.1722,-.0671,.0096,.0322,.9582]),BT709:I},FCC:{BT709:new Float32Array([1.0873,-.0736,-.0137,.0974,.8494,.0531,-.0127,-.0251,1.0378]),BT601:new Float32Array([1.001,-8e-4,-2e-4,9e-4,1.005,-.006,.0013,.0027,.996])},SMPTE240M:{BT709:new Float32Array([.9993,6e-4,1e-4,-4e-4,.9812,.0192,-.0034,-.0114,1.0148]),BT601:new Float32Array([.913,.0774,.0096,-.1051,1.1508,-.0456,.0063,.0207,.973])}},L=e=>e<0?0:e>1?255:Math.round(e*255);var ge=class{canvas=null;ctx=null;bufferCanvas=new OffscreenCanvas(1,1);bufferCtx=this.bufferCanvas.getContext(`2d`,{alpha:!0,desynchronized:!0,willReadFrequently:!1});colorMatrix=I;_scheduledResize;resizeCanvas(e,t){e&&t&&(this.canvas?.width!==e||this.canvas?.height!==t)&&(this._scheduledResize={width:e,height:t})}setCanvas(e){if(this.canvas=e,this.ctx=e.getContext(`2d`,{alpha:!0,desynchronized:!0,willReadFrequently:!1}),!this.ctx)throw Error(`Could not get 2D context`)}setColorMatrix(e,t){this.colorMatrix=(e&&t&&he[e]?.[t])??I}render(e,t){if(this.ctx&&this.canvas){if(this._scheduledResize){let{width:e,height:t}=this._scheduledResize;this._scheduledResize=void 0,this.canvas.width=e,this.canvas.height=t}else this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);for(let n of e){if(n.w<=0||n.h<=0)continue;let e=new ImageData(n.w,n.h),r=new Uint32Array(e.data.buffer),i=this.colorMatrix,a=(n.color>>>24&255)/255,o=(n.color>>>16&255)/255,s=(n.color>>>8&255)/255,c=L(i[0]*a+i[3]*o+i[6]*s),l=L(i[1]*a+i[4]*o+i[7]*s),u=L(i[2]*a+i[5]*o+i[8]*s)<<16|l<<8|c,d=(255-(n.color&255))/255,f=n.stride,p=n.h,m=n.w;for(let e=p+1,i=n.bitmap,a=0;--e;i+=f)for(let e=0;e<m;++e,++a){let n=t[i+e];n!==0&&(r[a]=Math.round(d*n)<<24|u)}this.bufferCanvas.width=m,this.bufferCanvas.height=p,this.bufferCtx.putImageData(e,0,0),this.ctx.drawImage(this.bufferCanvas,n.dst_x,n.dst_y)}}}destroy(){this.ctx=null,this.canvas=null,this.bufferCtx=null,this.bufferCanvas=null}},_e=class{canvas=null;gl=null;program=null;instancedArraysExt=null;u_resolution=null;u_tex=null;u_colorMatrix=null;u_texDimensions=null;a_quadPos=-1;a_destRect=-1;a_color=-1;a_texLayer=-1;quadPosBuffer=null;instanceDestRectBuffer=null;instanceColorBuffer=null;instanceTexLayerBuffer=null;instanceDestRectData;instanceColorData;instanceTexLayerData;textureCache=/* @__PURE__ */ new Map;textureWidth=0;textureHeight=0;colorMatrix=I;constructor(){this.instanceDestRectData=/* @__PURE__ */ new Float32Array(1024),this.instanceColorData=/* @__PURE__ */ new Float32Array(1024),this.instanceTexLayerData=/* @__PURE__ */ new Float32Array(256)}_scheduledResize;resizeCanvas(e,t){e&&t&&(this.canvas?.width!==e||this.canvas?.height!==t)&&(this._scheduledResize={width:e,height:t})}setCanvas(e){this._initGL(e),e.addEventListener(`webglcontextlost`,e=>{e.preventDefault(),this.gl=null}),e.addEventListener(`webglcontextrestored`,()=>this._initGL(e))}_initGL(e){if(this.canvas=e,this.gl=e.getContext(`webgl`,{alpha:!0,premultipliedAlpha:!0,antialias:!1,depth:!1,preserveDrawingBuffer:!1,stencil:!1,desynchronized:!0,powerPreference:`high-performance`}),!this.gl)throw Error(`Could not get WebGL context`);if(this.instancedArraysExt=this.gl.getExtension(`ANGLE_instanced_arrays`),!this.instancedArraysExt)throw Error(`ANGLE_instanced_arrays extension not supported`);let t=this.createShader(this.gl.VERTEX_SHADER,`
|
|
2
4
|
precision mediump float;
|
|
3
5
|
|
|
4
6
|
// Quad position attribute (0,0), (1,0), (0,1), (1,0), (1,1), (0,1)
|
|
@@ -63,7 +65,7 @@ void main() {
|
|
|
63
65
|
// Premultiplied alpha output
|
|
64
66
|
gl_FragColor = vec4(correctedColor * a, a);
|
|
65
67
|
}
|
|
66
|
-
`);if(!t||!n)throw Error(`Failed to create shaders`);if(this.program=this.gl.createProgram(),this.gl.attachShader(this.program,t),this.gl.attachShader(this.program,n),this.gl.linkProgram(this.program),!this.gl.getProgramParameter(this.program,this.gl.LINK_STATUS)){let e=this.gl.getProgramInfoLog(this.program);throw Error(`Failed to link program: `+e)}this.u_resolution=this.gl.getUniformLocation(this.program,`u_resolution`),this.u_tex=this.gl.getUniformLocation(this.program,`u_tex`),this.u_colorMatrix=this.gl.getUniformLocation(this.program,`u_colorMatrix`),this.u_texDimensions=this.gl.getUniformLocation(this.program,`u_texDimensions`),this.a_quadPos=this.gl.getAttribLocation(this.program,`a_quadPos`),this.a_destRect=this.gl.getAttribLocation(this.program,`a_destRect`),this.a_color=this.gl.getAttribLocation(this.program,`a_color`),this.a_texLayer=this.gl.getAttribLocation(this.program,`a_texLayer`),this.quadPosBuffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.quadPosBuffer);let r=new Float32Array([0,0,1,0,0,1,1,0,1,1,0,1]);this.gl.bufferData(this.gl.ARRAY_BUFFER,r,this.gl.STATIC_DRAW),this.instanceDestRectBuffer=this.gl.createBuffer(),this.instanceColorBuffer=this.gl.createBuffer(),this.instanceTexLayerBuffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.quadPosBuffer),this.gl.enableVertexAttribArray(this.a_quadPos),this.gl.vertexAttribPointer(this.a_quadPos,2,this.gl.FLOAT,!1,0,0),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceDestRectBuffer),this.gl.enableVertexAttribArray(this.a_destRect),this.gl.vertexAttribPointer(this.a_destRect,4,this.gl.FLOAT,!1,0,0),this.instancedArraysExt.vertexAttribDivisorANGLE(this.a_destRect,1),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceColorBuffer),this.gl.enableVertexAttribArray(this.a_color),this.gl.vertexAttribPointer(this.a_color,4,this.gl.FLOAT,!1,0,0),this.instancedArraysExt.vertexAttribDivisorANGLE(this.a_color,1),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceTexLayerBuffer),this.gl.enableVertexAttribArray(this.a_texLayer),this.gl.vertexAttribPointer(this.a_texLayer,1,this.gl.FLOAT,!1,0,0),this.instancedArraysExt.vertexAttribDivisorANGLE(this.a_texLayer,1),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.useProgram(this.program),this.gl.uniform1i(this.u_tex,0),this.gl.uniformMatrix3fv(this.u_colorMatrix,!1,this.colorMatrix),this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1),this.gl.clearColor(0,0,0,0),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.viewport(0,0,e.width,e.height),this.gl.uniform2f(this.u_resolution,e.width,e.height)}createShader(e,t){let n=this.gl.createShader(e);if(this.gl.shaderSource(n,t),this.gl.compileShader(n),!this.gl.getShaderParameter(n,this.gl.COMPILE_STATUS)){let e=this.gl.getShaderInfoLog(n);return console.log(e),this.gl.deleteShader(n),null}return n}setColorMatrix(e,t){this.colorMatrix=(e&&t&&
|
|
68
|
+
`);if(!t||!n)throw Error(`Failed to create shaders`);if(this.program=this.gl.createProgram(),this.gl.attachShader(this.program,t),this.gl.attachShader(this.program,n),this.gl.linkProgram(this.program),!this.gl.getProgramParameter(this.program,this.gl.LINK_STATUS)){let e=this.gl.getProgramInfoLog(this.program);throw Error(`Failed to link program: `+e)}this.u_resolution=this.gl.getUniformLocation(this.program,`u_resolution`),this.u_tex=this.gl.getUniformLocation(this.program,`u_tex`),this.u_colorMatrix=this.gl.getUniformLocation(this.program,`u_colorMatrix`),this.u_texDimensions=this.gl.getUniformLocation(this.program,`u_texDimensions`),this.a_quadPos=this.gl.getAttribLocation(this.program,`a_quadPos`),this.a_destRect=this.gl.getAttribLocation(this.program,`a_destRect`),this.a_color=this.gl.getAttribLocation(this.program,`a_color`),this.a_texLayer=this.gl.getAttribLocation(this.program,`a_texLayer`),this.quadPosBuffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.quadPosBuffer);let r=new Float32Array([0,0,1,0,0,1,1,0,1,1,0,1]);this.gl.bufferData(this.gl.ARRAY_BUFFER,r,this.gl.STATIC_DRAW),this.instanceDestRectBuffer=this.gl.createBuffer(),this.instanceColorBuffer=this.gl.createBuffer(),this.instanceTexLayerBuffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.quadPosBuffer),this.gl.enableVertexAttribArray(this.a_quadPos),this.gl.vertexAttribPointer(this.a_quadPos,2,this.gl.FLOAT,!1,0,0),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceDestRectBuffer),this.gl.enableVertexAttribArray(this.a_destRect),this.gl.vertexAttribPointer(this.a_destRect,4,this.gl.FLOAT,!1,0,0),this.instancedArraysExt.vertexAttribDivisorANGLE(this.a_destRect,1),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceColorBuffer),this.gl.enableVertexAttribArray(this.a_color),this.gl.vertexAttribPointer(this.a_color,4,this.gl.FLOAT,!1,0,0),this.instancedArraysExt.vertexAttribDivisorANGLE(this.a_color,1),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceTexLayerBuffer),this.gl.enableVertexAttribArray(this.a_texLayer),this.gl.vertexAttribPointer(this.a_texLayer,1,this.gl.FLOAT,!1,0,0),this.instancedArraysExt.vertexAttribDivisorANGLE(this.a_texLayer,1),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.useProgram(this.program),this.gl.uniform1i(this.u_tex,0),this.gl.uniformMatrix3fv(this.u_colorMatrix,!1,this.colorMatrix),this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1),this.gl.clearColor(0,0,0,0),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.viewport(0,0,e.width,e.height),this.gl.uniform2f(this.u_resolution,e.width,e.height)}createShader(e,t){let n=this.gl.createShader(e);if(this.gl.shaderSource(n,t),this.gl.compileShader(n),!this.gl.getShaderParameter(n,this.gl.COMPILE_STATUS)){let e=this.gl.getShaderInfoLog(n);return console.log(e),this.gl.deleteShader(n),null}return n}setColorMatrix(e,t){this.colorMatrix=(e&&t&&he[e]?.[t])??I,this.gl&&this.u_colorMatrix&&this.program&&(this.gl.useProgram(this.program),this.gl.uniformMatrix3fv(this.u_colorMatrix,!1,this.colorMatrix))}createTexture(e,t){let n=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,n),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.LUMINANCE,e,t,0,this.gl.LUMINANCE,this.gl.UNSIGNED_BYTE,null),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),n}render(e,t){if(!this.gl||!this.program||!this.instancedArraysExt)return;if(this._scheduledResize){let{width:e,height:t}=this._scheduledResize;this._scheduledResize=void 0,this.canvas.width=e,this.canvas.height=t,this.gl.viewport(0,0,e,t),this.gl.uniform2f(this.u_resolution,e,t)}else this.gl.clear(this.gl.COLOR_BUFFER_BIT);let n=this.textureWidth,r=this.textureHeight,i=[];for(let t of e)t.w<=0||t.h<=0||(i.push(t),t.w>n&&(n=t.w),t.h>r&&(r=t.h));if(i.length!==0){if(n>this.textureWidth||r>this.textureHeight){this.textureWidth=n,this.textureHeight=r;for(let e of this.textureCache.values())this.gl.deleteTexture(e);this.textureCache.clear()}for(let e=0;e<i.length;e++){let n=i[e],r=this.textureCache.get(e);r||(r=this.createTexture(this.textureWidth,this.textureHeight),this.textureCache.set(e,r)),this.gl.bindTexture(this.gl.TEXTURE_2D,r);let a=new Uint8Array(t.buffer,n.bitmap,n.stride*n.h),o=new Uint8Array(n.w*n.h);for(let e=0;e<n.h;e++){let t=e*n.stride,r=e*n.w;o.set(a.subarray(t,t+n.w),r)}this.gl.texSubImage2D(this.gl.TEXTURE_2D,0,0,0,n.w,n.h,this.gl.LUMINANCE,this.gl.UNSIGNED_BYTE,o),this.instanceDestRectData[0]=n.dst_x,this.instanceDestRectData[1]=n.dst_y,this.instanceDestRectData[2]=n.w,this.instanceDestRectData[3]=n.h,this.instanceColorData[0]=(n.color>>>24&255)/255,this.instanceColorData[1]=(n.color>>>16&255)/255,this.instanceColorData[2]=(n.color>>>8&255)/255,this.instanceColorData[3]=(n.color&255)/255,this.instanceTexLayerData[0]=0,this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceDestRectBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceDestRectData.subarray(0,4),this.gl.DYNAMIC_DRAW),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceColorBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceColorData.subarray(0,4),this.gl.DYNAMIC_DRAW),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceTexLayerBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceTexLayerData.subarray(0,1),this.gl.DYNAMIC_DRAW),this.gl.uniform2f(this.u_texDimensions,this.textureWidth,this.textureHeight),this.instancedArraysExt.drawArraysInstancedANGLE(this.gl.TRIANGLES,0,6,1)}}}destroy(){if(this.gl){for(let e of this.textureCache.values())this.gl.deleteTexture(e);this.textureCache.clear(),this.quadPosBuffer&&=(this.gl.deleteBuffer(this.quadPosBuffer),null),this.instanceDestRectBuffer&&=(this.gl.deleteBuffer(this.instanceDestRectBuffer),null),this.instanceColorBuffer&&=(this.gl.deleteBuffer(this.instanceColorBuffer),null),this.instanceTexLayerBuffer&&=(this.gl.deleteBuffer(this.instanceTexLayerBuffer),null),this.program&&=(this.gl.deleteProgram(this.program),null),this.gl=null}}},ve=class{canvas=null;gl=null;program=null;vao=null;u_resolution=null;u_texArray=null;u_colorMatrix=null;instanceDestRectBuffer=null;instanceColorBuffer=null;instanceTexLayerBuffer=null;instanceDestRectData;instanceColorData;instanceTexLayerData;texArray=null;texArrayWidth=0;texArrayHeight=0;colorMatrix=I;constructor(){this.instanceDestRectData=/* @__PURE__ */ new Float32Array(1024),this.instanceColorData=/* @__PURE__ */ new Float32Array(1024),this.instanceTexLayerData=/* @__PURE__ */ new Float32Array(256)}_scheduledResize;resizeCanvas(e,t){e&&t&&(this.canvas?.width!==e||this.canvas?.height!==t)&&(this._scheduledResize={width:e,height:t})}setCanvas(e){this.canvas=e,this._initGL(e),e.addEventListener(`webglcontextlost`,e=>{e.preventDefault(),this.gl=null}),e.addEventListener(`webglcontextrestored`,()=>this._initGL(e))}_initGL(e){if(this.canvas=e,this.gl=e.getContext(`webgl2`,{alpha:!0,premultipliedAlpha:!0,antialias:!1,depth:!1,preserveDrawingBuffer:!1,stencil:!1,desynchronized:!0,powerPreference:`high-performance`}),!this.gl)throw Error(`Could not get WebGL2 context`);let t=this.createShader(this.gl.VERTEX_SHADER,`#version 300 es
|
|
67
69
|
precision highp float;
|
|
68
70
|
|
|
69
71
|
const vec2 QUAD_POSITIONS[6] = vec2[6](
|
|
@@ -145,4 +147,4 @@ void main() {
|
|
|
145
147
|
// Premultiplied alpha output
|
|
146
148
|
fragColor = vec4(correctedColor * a, a);
|
|
147
149
|
}
|
|
148
|
-
`);if(!t||!n)throw Error(`Failed to create shaders`);if(this.program=this.gl.createProgram(),this.gl.attachShader(this.program,t),this.gl.attachShader(this.program,n),this.gl.linkProgram(this.program),!this.gl.getProgramParameter(this.program,this.gl.LINK_STATUS)){let e=this.gl.getProgramInfoLog(this.program);throw Error(`Failed to link program: `+e)}this.gl.deleteShader(t),this.gl.deleteShader(n),this.u_resolution=this.gl.getUniformLocation(this.program,`u_resolution`),this.u_texArray=this.gl.getUniformLocation(this.program,`u_texArray`),this.u_colorMatrix=this.gl.getUniformLocation(this.program,`u_colorMatrix`),this.instanceDestRectBuffer=this.gl.createBuffer(),this.instanceColorBuffer=this.gl.createBuffer(),this.instanceTexLayerBuffer=this.gl.createBuffer(),this.vao=this.gl.createVertexArray(),this.gl.bindVertexArray(this.vao);let r=this.gl.getAttribLocation(this.program,`a_destRect`);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceDestRectBuffer),this.gl.enableVertexAttribArray(r),this.gl.vertexAttribPointer(r,4,this.gl.FLOAT,!1,0,0),this.gl.vertexAttribDivisor(r,1);let i=this.gl.getAttribLocation(this.program,`a_color`);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceColorBuffer),this.gl.enableVertexAttribArray(i),this.gl.vertexAttribPointer(i,4,this.gl.FLOAT,!1,0,0),this.gl.vertexAttribDivisor(i,1);let a=this.gl.getAttribLocation(this.program,`a_texLayer`);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceTexLayerBuffer),this.gl.enableVertexAttribArray(a),this.gl.vertexAttribPointer(a,1,this.gl.FLOAT,!1,0,0),this.gl.vertexAttribDivisor(a,1),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.useProgram(this.program),this.gl.uniform1i(this.u_texArray,0),this.gl.uniformMatrix3fv(this.u_colorMatrix,!1,this.colorMatrix),this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1),this.gl.clearColor(0,0,0,0),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.viewport(0,0,e.width,e.height),this.gl.uniform2f(this.u_resolution,e.width,e.height),this.createTexArray(256,256)}createShader(e,t){let n=this.gl.createShader(e);if(this.gl.shaderSource(n,t),this.gl.compileShader(n),!this.gl.getShaderParameter(n,this.gl.COMPILE_STATUS)){let e=this.gl.getShaderInfoLog(n);return console.log(e),this.gl.deleteShader(n),null}return n}setColorMatrix(e,t){this.colorMatrix=(e&&t&&me[e]?.[t])??L,this.gl&&this.u_colorMatrix&&this.program&&(this.gl.useProgram(this.program),this.gl.uniformMatrix3fv(this.u_colorMatrix,!1,this.colorMatrix))}createTexArray(e,t){this.texArray&&this.gl.deleteTexture(this.texArray),this.texArray=this.gl.createTexture(),this.gl.bindTexture(this.gl.TEXTURE_2D_ARRAY,this.texArray),this.gl.texImage3D(this.gl.TEXTURE_2D_ARRAY,0,this.gl.R8,e,t,64,0,this.gl.RED,this.gl.UNSIGNED_BYTE,null),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_MIN_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.texArrayWidth=e,this.texArrayHeight=t}render(e,t){if(!this.gl||!this.program||!this.vao||!this.texArray)return;if((self.HEAPU8RAW.buffer!==self.WASMMEMORY.buffer||pe)&&(t=self.HEAPU8RAW=new Uint8Array(self.WASMMEMORY.buffer)),this._scheduledResize){let{width:e,height:t}=this._scheduledResize;this._scheduledResize=void 0,this.canvas.width=e,this.canvas.height=t,this.gl.viewport(0,0,e,t),this.gl.uniform2f(this.u_resolution,e,t)}else this.gl.clear(this.gl.COLOR_BUFFER_BIT);let n=this.texArrayWidth,r=this.texArrayHeight,i=[];for(let t of e)t.w<=0||t.h<=0||(i.push(t),t.w>n&&(n=t.w),t.h>r&&(r=t.h));if(i.length!==0){(n>this.texArrayWidth||r>this.texArrayHeight)&&this.createTexArray(n,r);for(let e=0;e<i.length;e+=64){let n=Math.min(e+64,i.length),r=0;for(let a=e;a<n;a++){let e=i[a],n=r;if(this.gl.pixelStorei(this.gl.UNPACK_ROW_LENGTH,e.stride),j||M){let r=new Uint8Array(t.buffer,e.bitmap,e.stride*e.h),i=new Uint8Array(r);this.gl.texSubImage3D(this.gl.TEXTURE_2D_ARRAY,0,0,0,n,e.w,e.h,1,this.gl.RED,this.gl.UNSIGNED_BYTE,i)}else this.gl.texSubImage3D(this.gl.TEXTURE_2D_ARRAY,0,0,0,n,e.w,e.h,1,this.gl.RED,this.gl.UNSIGNED_BYTE,t,e.bitmap);let o=r*4;this.instanceDestRectData[o]=e.dst_x,this.instanceDestRectData[o+1]=e.dst_y,this.instanceDestRectData[o+2]=e.w,this.instanceDestRectData[o+3]=e.h,this.instanceColorData[o]=(e.color>>>24&255)/255,this.instanceColorData[o+1]=(e.color>>>16&255)/255,this.instanceColorData[o+2]=(e.color>>>8&255)/255,this.instanceColorData[o+3]=(e.color&255)/255,this.instanceTexLayerData[r]=n,r++}this.gl.pixelStorei(this.gl.UNPACK_ROW_LENGTH,0),r!==0&&(this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceDestRectBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceDestRectData.subarray(0,r*4),this.gl.DYNAMIC_DRAW),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceColorBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceColorData.subarray(0,r*4),this.gl.DYNAMIC_DRAW),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceTexLayerBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceTexLayerData.subarray(0,r),this.gl.DYNAMIC_DRAW),this.gl.drawArraysInstanced(this.gl.TRIANGLES,0,6,r))}}}destroy(){this.gl&&=(this.texArray&&=(this.gl.deleteTexture(this.texArray),null),this.instanceDestRectBuffer&&=(this.gl.deleteBuffer(this.instanceDestRectBuffer),null),this.instanceColorBuffer&&=(this.gl.deleteBuffer(this.instanceColorBuffer),null),this.instanceTexLayerBuffer&&=(this.gl.deleteBuffer(this.instanceTexLayerBuffer),null),this.vao&&=(this.gl.deleteVertexArray(this.vao),null),this.program&&=(this.gl.deleteProgram(this.program),null),null)}};const ye=Symbol.for(`constructor`);var be=class{_wasm;_subtitleColorSpace;_videoColorSpace;_malloc;_gpurender;debug=!1;constructor(...e){return this[ye](...e).catch(console.error)}async[ye](e,t,n){this._availableFonts=Object.fromEntries(Object.entries(e.availableFonts).map(([e,t])=>[e.trim().toLowerCase(),t])),this.debug=e.debug,this.queryFonts=e.queryFonts,this._getFont=t,this._defaultFont=e.defaultFont.trim().toLowerCase();let r=globalThis.fetch;globalThis.fetch=t=>r(e.wasmUrl);try{let e=new OffscreenCanvas(1,1);e.getContext(`webgl2`)?this._gpurender=new ve:this._gpurender=e.getContext(`webgl`)?.getExtension(`ANGLE_instanced_arrays`)?new _e:new ge}catch{this._gpurender=new ge}this._gpurender.setCanvas(n),this._loadedInitialFonts=!e.fonts.length;let{_malloc:i,JASSUB:a}=await k({__url:e.wasmUrl,__out:e=>this._log(e)});return this._malloc=i,this._wasm=new a(e.width,e.height,this._defaultFont),this._wasm.setThreads(I),this._loadedInitialFonts||await this._loadInitialFonts(e.fonts),this._wasm.createTrackMem(e.subContent??await de(e.subUrl)),this._subtitleColorSpace=P[this._wasm.trackColorSpace],(e.libassMemoryLimit>0||e.libassGlyphLimit>0)&&this._wasm.setMemoryLimits(e.libassGlyphLimit||0,e.libassMemoryLimit||0),this._checkColorSpace(),this}processData(e){this._wasm.processData(e)}processChunk(e,t,n){this._wasm.processChunk(e,t,n)}createEvent(e){this._wasm.createEvent(e)}getEvents(){return this._wasm.getEvents()}setEvent(e,t){this._wasm.setEvent(t,e)}removeEvent(e){this._wasm.removeEvent(e)}createStyle(e){this._wasm.createStyle(e)}getStyles(){return this._wasm.getStyles()}setStyle(e,t){this._wasm.setStyle(t,e)}removeStyle(e){this._wasm.removeStyle(e)}styleOverride(e){this._wasm.styleOverride(e)}disableStyleOverride(){this._wasm.disableStyleOverride()}setTrack(e){this._wasm.createTrackMem(e),this._subtitleColorSpace=P[this._wasm.trackColorSpace]}freeTrack(){this._wasm.removeTrack()}async setTrackByUrl(e){this.setTrack(await de(e))}_checkColorSpace(){!this._subtitleColorSpace||!this._videoColorSpace||this._gpurender.setColorMatrix(this._subtitleColorSpace,this._videoColorSpace)}_defaultFont;setDefaultFont(e){this._defaultFont=e.trim().toLowerCase(),this._wasm.setDefaultFont(this._defaultFont)}async _log(e){console.debug(e);let t=e.match(/JASSUB: fontselect:[^(]+: \(([^,]+), (\d{1,4}), \d\)/);t&&!await this._findAvailableFont(t[1].trim().toLowerCase(),A[Math.ceil(parseInt(t[2])/100)-1])&&await this._findAvailableFont(this._defaultFont)}async addFonts(e){if(!e.length)return!1;let t=[],n=[];for(let r of e)typeof r==`string`?t.push(r):n.push(r);return n.length&&this._allocFonts(n),!!await Promise.allSettled(t.map(e=>this._asyncWrite(e)))}_loadedInitialFonts=!1;async _loadInitialFonts(e){await this.addFonts(e),this._loadedInitialFonts=!0,this._wasm.reloadFonts()}_getFont;_availableFonts={};_checkedFonts=new Set;async _findAvailableFont(e,t){if(!this._loadedInitialFonts)return;for(let n of A)if(e.includes(n)){e=e.replace(n,``).trim(),t??=n;break}t??=`regular`;let n=e+` `+t;if(!this._checkedFonts.has(n)){this._checkedFonts.add(n);try{let r=this._availableFonts[n]??this._availableFonts[e]??await this._queryLocalFont(e,t)??await this._queryRemoteFont([n,e]);if(r)return await this.addFonts([r])}catch(n){console.warn(`Error querying font`,e,t,n)}}}queryFonts;async _queryLocalFont(e,t){if(this.queryFonts)return await this._getFont(e,t)}async _queryRemoteFont(e){if(this.queryFonts!==`localandremote`)return;let t=await O({postscriptNames:e});if(!t.length)return;let n=await t[0].blob();return new Uint8Array(await n.arrayBuffer())}async _asyncWrite(e){let t=await F(e);this._allocFonts([new Uint8Array(await t.arrayBuffer())])}_fontId=0;_allocFonts(e){for(let t of e){let e=this._malloc(t.byteLength);self.HEAPU8RAW.set(t,e),this._wasm.addFont(`font-`+this._fontId++,e,t.byteLength)}this._wasm.reloadFonts()}_resizeCanvas(e,t,n,r){this._wasm.resizeCanvas(e,t,n,r),this._gpurender.resizeCanvas(e,t)}async[i](){this._wasm.quitLibrary(),this._gpurender.destroy(),this._wasm=null,this._gpurender=null,this._availableFonts={}}_draw(e,t=!1){let n=this._wasm.rawRender(e,Number(t));n&&this._gpurender.render(n,self.HEAPU8RAW)}_setColorSpace(e){e!==`RGB`&&(this._videoColorSpace=e,this._checkColorSpace())}};self.name===`jassub-worker`&&T(be);
|
|
150
|
+
`);if(!t||!n)throw Error(`Failed to create shaders`);if(this.program=this.gl.createProgram(),this.gl.attachShader(this.program,t),this.gl.attachShader(this.program,n),this.gl.linkProgram(this.program),!this.gl.getProgramParameter(this.program,this.gl.LINK_STATUS)){let e=this.gl.getProgramInfoLog(this.program);throw Error(`Failed to link program: `+e)}this.gl.deleteShader(t),this.gl.deleteShader(n),this.u_resolution=this.gl.getUniformLocation(this.program,`u_resolution`),this.u_texArray=this.gl.getUniformLocation(this.program,`u_texArray`),this.u_colorMatrix=this.gl.getUniformLocation(this.program,`u_colorMatrix`),this.instanceDestRectBuffer=this.gl.createBuffer(),this.instanceColorBuffer=this.gl.createBuffer(),this.instanceTexLayerBuffer=this.gl.createBuffer(),this.vao=this.gl.createVertexArray(),this.gl.bindVertexArray(this.vao);let r=this.gl.getAttribLocation(this.program,`a_destRect`);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceDestRectBuffer),this.gl.enableVertexAttribArray(r),this.gl.vertexAttribPointer(r,4,this.gl.FLOAT,!1,0,0),this.gl.vertexAttribDivisor(r,1);let i=this.gl.getAttribLocation(this.program,`a_color`);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceColorBuffer),this.gl.enableVertexAttribArray(i),this.gl.vertexAttribPointer(i,4,this.gl.FLOAT,!1,0,0),this.gl.vertexAttribDivisor(i,1);let a=this.gl.getAttribLocation(this.program,`a_texLayer`);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceTexLayerBuffer),this.gl.enableVertexAttribArray(a),this.gl.vertexAttribPointer(a,1,this.gl.FLOAT,!1,0,0),this.gl.vertexAttribDivisor(a,1),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.useProgram(this.program),this.gl.uniform1i(this.u_texArray,0),this.gl.uniformMatrix3fv(this.u_colorMatrix,!1,this.colorMatrix),this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1),this.gl.clearColor(0,0,0,0),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.viewport(0,0,e.width,e.height),this.gl.uniform2f(this.u_resolution,e.width,e.height),this.createTexArray(256,256)}createShader(e,t){let n=this.gl.createShader(e);if(this.gl.shaderSource(n,t),this.gl.compileShader(n),!this.gl.getShaderParameter(n,this.gl.COMPILE_STATUS)){let e=this.gl.getShaderInfoLog(n);return console.log(e),this.gl.deleteShader(n),null}return n}setColorMatrix(e,t){this.colorMatrix=(e&&t&&he[e]?.[t])??I,this.gl&&this.u_colorMatrix&&this.program&&(this.gl.useProgram(this.program),this.gl.uniformMatrix3fv(this.u_colorMatrix,!1,this.colorMatrix))}createTexArray(e,t){this.texArray&&this.gl.deleteTexture(this.texArray),this.texArray=this.gl.createTexture(),this.gl.bindTexture(this.gl.TEXTURE_2D_ARRAY,this.texArray),this.gl.texImage3D(this.gl.TEXTURE_2D_ARRAY,0,this.gl.R8,e,t,64,0,this.gl.RED,this.gl.UNSIGNED_BYTE,null),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_MIN_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.texArrayWidth=e,this.texArrayHeight=t}render(e,t){if(!this.gl||!this.program||!this.vao||!this.texArray)return;if((self.HEAPU8RAW.buffer!==self.WASMMEMORY.buffer||me)&&(t=self.HEAPU8RAW=new Uint8Array(self.WASMMEMORY.buffer)),this._scheduledResize){let{width:e,height:t}=this._scheduledResize;this._scheduledResize=void 0,this.canvas.width=e,this.canvas.height=t,this.gl.viewport(0,0,e,t),this.gl.uniform2f(this.u_resolution,e,t)}else this.gl.clear(this.gl.COLOR_BUFFER_BIT);let n=this.texArrayWidth,r=this.texArrayHeight,i=[];for(let t of e)t.w<=0||t.h<=0||(i.push(t),t.w>n&&(n=t.w),t.h>r&&(r=t.h));if(i.length!==0){(n>this.texArrayWidth||r>this.texArrayHeight)&&this.createTexArray(n,r);for(let e=0;e<i.length;e+=64){let n=Math.min(e+64,i.length),r=0;for(let a=e;a<n;a++){let e=i[a],n=r;if(this.gl.pixelStorei(this.gl.UNPACK_ROW_LENGTH,e.stride),A||j){let r=new Uint8Array(t.buffer,e.bitmap,e.stride*e.h),i=new Uint8Array(r);this.gl.texSubImage3D(this.gl.TEXTURE_2D_ARRAY,0,0,0,n,e.w,e.h,1,this.gl.RED,this.gl.UNSIGNED_BYTE,i)}else this.gl.texSubImage3D(this.gl.TEXTURE_2D_ARRAY,0,0,0,n,e.w,e.h,1,this.gl.RED,this.gl.UNSIGNED_BYTE,t,e.bitmap);let o=r*4;this.instanceDestRectData[o]=e.dst_x,this.instanceDestRectData[o+1]=e.dst_y,this.instanceDestRectData[o+2]=e.w,this.instanceDestRectData[o+3]=e.h,this.instanceColorData[o]=(e.color>>>24&255)/255,this.instanceColorData[o+1]=(e.color>>>16&255)/255,this.instanceColorData[o+2]=(e.color>>>8&255)/255,this.instanceColorData[o+3]=(e.color&255)/255,this.instanceTexLayerData[r]=n,r++}this.gl.pixelStorei(this.gl.UNPACK_ROW_LENGTH,0),r!==0&&(this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceDestRectBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceDestRectData.subarray(0,r*4),this.gl.DYNAMIC_DRAW),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceColorBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceColorData.subarray(0,r*4),this.gl.DYNAMIC_DRAW),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceTexLayerBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceTexLayerData.subarray(0,r),this.gl.DYNAMIC_DRAW),this.gl.drawArraysInstanced(this.gl.TRIANGLES,0,6,r))}}}destroy(){this.gl&&=(this.texArray&&=(this.gl.deleteTexture(this.texArray),null),this.instanceDestRectBuffer&&=(this.gl.deleteBuffer(this.instanceDestRectBuffer),null),this.instanceColorBuffer&&=(this.gl.deleteBuffer(this.instanceColorBuffer),null),this.instanceTexLayerBuffer&&=(this.gl.deleteBuffer(this.instanceTexLayerBuffer),null),this.vao&&=(this.gl.deleteVertexArray(this.vao),null),this.program&&=(this.gl.deleteProgram(this.program),null),null)}};const ye=Symbol.for(`constructor`);var be=class{_wasm;_subtitleColorSpace;_videoColorSpace;_malloc;_gpurender;debug=!1;constructor(...e){return this[ye](...e).catch(console.error)}async[ye](e,t,n){this._availableFonts=Object.fromEntries(Object.entries(e.availableFonts).map(([e,t])=>[e.trim().toLowerCase(),t])),this.debug=e.debug,this.queryFonts=e.queryFonts,this._getFont=t,this._defaultFont=e.defaultFont.trim().toLowerCase();let r=globalThis.fetch;globalThis.fetch=t=>r(e.wasmUrl);try{let e=new OffscreenCanvas(1,1);this._gpurender=e.getContext(`webgl2`)?new ve:e.getContext(`webgl`)?.getExtension(`ANGLE_instanced_arrays`)?new _e:new ge}catch{this._gpurender=new ge}this._gpurender.setCanvas(n),this._loadedInitialFonts=!e.fonts.length;let{_malloc:i,JASSUB:a}=await O({__url:e.wasmUrl,__out:e=>this._log(e)});return this._malloc=i,this._wasm=new a(e.width,e.height,this._defaultFont),this._wasm.setThreads(F),this._loadedInitialFonts||await this._loadInitialFonts(e.fonts),this._wasm.createTrackMem(e.subContent??await fe(e.subUrl)),this._subtitleColorSpace=N[this._wasm.trackColorSpace],(e.libassMemoryLimit>0||e.libassGlyphLimit>0)&&this._wasm.setMemoryLimits(e.libassGlyphLimit||0,e.libassMemoryLimit||0),this._checkColorSpace(),this}processData(e){this._wasm.processData(e)}processChunk(e,t,n){this._wasm.processChunk(e,t,n)}createEvent(e){this._wasm.createEvent(e)}getEvents(){return this._wasm.getEvents()}setEvent(e,t){this._wasm.setEvent(t,e)}removeEvent(e){this._wasm.removeEvent(e)}createStyle(e){this._wasm.createStyle(e)}getStyles(){return this._wasm.getStyles()}setStyle(e,t){this._wasm.setStyle(t,e)}removeStyle(e){this._wasm.removeStyle(e)}styleOverride(e){this._wasm.styleOverride(e)}disableStyleOverride(){this._wasm.disableStyleOverride()}setTrack(e){this._wasm.createTrackMem(e),this._subtitleColorSpace=N[this._wasm.trackColorSpace]}freeTrack(){this._wasm.removeTrack()}async setTrackByUrl(e){this.setTrack(await fe(e))}_checkColorSpace(){this._subtitleColorSpace&&this._videoColorSpace&&this._gpurender.setColorMatrix(this._subtitleColorSpace,this._videoColorSpace)}_defaultFont;setDefaultFont(e){this._defaultFont=e.trim().toLowerCase(),this._wasm.setDefaultFont(this._defaultFont)}async _log(e){console.debug(e);let t=e.match(/JASSUB: fontselect:[^(]+: \(([^,]+), (\d{1,4}), \d\)/);t&&!await this._findAvailableFont(t[1].trim().toLowerCase(),k[Math.ceil(parseInt(t[2])/100)-1])&&await this._findAvailableFont(this._defaultFont)}async addFonts(e){if(!e.length)return!1;let t=[],n=[];for(let r of e)typeof r==`string`?t.push(r):n.push(r);return n.length&&this._allocFonts(n),!!await Promise.allSettled(t.map(e=>this._asyncWrite(e)))}_loadedInitialFonts=!1;async _loadInitialFonts(e){await this.addFonts(e),this._loadedInitialFonts=!0,this._wasm.reloadFonts()}_getFont;_availableFonts={};_checkedFonts=/* @__PURE__ */ new Set;async _findAvailableFont(e,t){if(!this._loadedInitialFonts)return;for(let n of k)if(e.includes(n)){e=e.replace(n,``).trim(),t??=n;break}t??=`regular`;let n=e+` `+t;if(!this._checkedFonts.has(n)){this._checkedFonts.add(n);try{let r=this._availableFonts[n]??this._availableFonts[e]??await this._queryLocalFont(e,t)??await this._queryRemoteFont([n,e]);if(r)return await this.addFonts([r])}catch(n){console.warn(`Error querying font`,e,t,n)}}}queryFonts;async _queryLocalFont(e,t){if(this.queryFonts)return await this._getFont(e,t)}async _queryRemoteFont(e){if(this.queryFonts!==`localandremote`)return;let t=await D({postscriptNames:e});if(!t.length)return;let n=await t[0].blob();return new Uint8Array(await n.arrayBuffer())}async _asyncWrite(e){let t=await P(e);this._allocFonts([new Uint8Array(await t.arrayBuffer())])}_fontId=0;_allocFonts(e){for(let t of e){let e=this._malloc(t.byteLength);self.HEAPU8RAW.set(t,e),this._wasm.addFont(`font-`+this._fontId++,e,t.byteLength)}this._wasm.reloadFonts()}_resizeCanvas(e,t,n,r){this._wasm.resizeCanvas(e,t,n,r),this._gpurender.resizeCanvas(e,t)}async[i](){this._wasm.quitLibrary(),this._gpurender.destroy(),this._wasm=null,this._gpurender=null,this._availableFonts={}}_draw(e,t=!1){let n=this._wasm.rawRender(e,Number(t));n&&this._gpurender.render(n,self.HEAPU8RAW)}_setColorSpace(e){e!==`RGB`&&(this._videoColorSpace=e,this._checkColorSpace())}};self.name===`jassub-worker`&&w(be);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@banou/ripple",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.14",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
"fkn-type:app"
|
|
12
12
|
],
|
|
13
13
|
"fkn": {
|
|
14
|
-
"app": "fkn:app:1c7clnsv53zt7dr7q7rcbt455hxauykaxl4gibkuoao24dfmk2eqq"
|
|
14
|
+
"app": "fkn:app:1c7clnsv53zt7dr7q7rcbt455hxauykaxl4gibkuoao24dfmk2eqq",
|
|
15
|
+
"signed": true
|
|
15
16
|
},
|
|
16
17
|
"main": "index.js"
|
|
17
18
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as e } from "./build-
|
|
1
|
+
import { a as e } from "./build-JdIfVZn7.js";
|
|
2
2
|
//#region node_modules/@banou/media-player/dist/remote/index.js
|
|
3
3
|
var t = [
|
|
4
4
|
"loadstart",
|
|
@@ -130,13 +130,13 @@ var t = [
|
|
|
130
130
|
},
|
|
131
131
|
set: (e, t, r) => {
|
|
132
132
|
let i = v.get(e);
|
|
133
|
-
if (
|
|
133
|
+
if (i && n.includes(t)) try {
|
|
134
134
|
i[t] = r;
|
|
135
135
|
} catch {}
|
|
136
136
|
},
|
|
137
137
|
call: async (e, t) => {
|
|
138
138
|
let n = v.get(e);
|
|
139
|
-
if (
|
|
139
|
+
if (n && r.includes(t)) try {
|
|
140
140
|
t === "play" ? await n.play() : t === "pause" ? n.pause() : n.load?.();
|
|
141
141
|
} finally {
|
|
142
142
|
w(e, "timeupdate");
|
package/sw.js
CHANGED
|
@@ -8,8 +8,8 @@ const live = new Map()
|
|
|
8
8
|
/* Stamped at build time. These are the dev defaults and must never reach production: a worker whose
|
|
9
9
|
BUILD never changes is never reinstalled, so the update this feature announces would never fire. */
|
|
10
10
|
const MODE = "cache" // @stamp:mode
|
|
11
|
-
const BUILD = "
|
|
12
|
-
const MANIFEST = [["/api-Jq4OSTp1-
|
|
11
|
+
const BUILD = "f01b884a11dea6ef" // @stamp:build
|
|
12
|
+
const MANIFEST = [["/api-Jq4OSTp1-BGG3ivUc.js","d303b2d405b3fa8c"],["/assets/empty-BvRk9kiK.js","e3b0c44298fc1c14"],["/assets/libtorrent-CnjRmD5O.js","ab4f7006e069c0dc"],["/assets/worker-cT83ESx9.js","df1a05bb0e5abd0c"],["/build-JdIfVZn7.js","68868ae23db91aa0"],["/remote-U0iHKFtw.js","1d57209b4c2f6a6f"]] // @stamp:manifest
|
|
13
13
|
|
|
14
14
|
const CACHE = 'ripple-assets-' + BUILD
|
|
15
15
|
|