@rive-app/webgl2-threads 2.49.1 → 2.49.2
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/package.json +1 -1
- package/rive.d.ts +1 -0
- package/rive.js +343 -199
- package/rive.js.map +1 -1
- package/rive.wasm +0 -0
- package/rive_advanced.mjs.d.ts +5 -0
- package/rive_fallback.wasm +0 -0
- package/rive_threads.wasm +0 -0
- package/utils/index.d.ts +1 -0
- package/utils/replayPacer.d.ts +24 -0
package/rive.js
CHANGED
|
@@ -789,14 +789,14 @@ return}switch(m){case 1:m=u;lb[g>>2]=m;lb[g+4>>2]=(m-lb[g>>2])/4294967296;break;
|
|
|
789
789
|
!1;return m},["delete"](){this.m.u||zc(this);if(this.m.la&&!this.m.ga)throw new Vb("Object already scheduled for deletion");nc(this);var m=this.m;--m.count.value;0===m.count.value&&(m.D?m.K.O(m.D):m.v.o.O(m.u));this.m.ga||(this.m.D=void 0,this.m.u=void 0)},isDeleted:function(){return!this.m.u},deleteLater:function(){this.m.u||zc(this);if(this.m.la&&!this.m.ga)throw new Vb("Object already scheduled for deletion");Ac.push(this);this.m.la=!0;return this}});const g=Symbol.dispose;g&&(d[g]=d["delete"])})();
|
|
790
790
|
Object.assign($c.prototype,{vc(d){this.Db&&(d=this.Db(d));return d},ob(d){this.O?.(d)},J:sc,s:function(d){function g(){return this.Ga?Zc(this.o.N,{v:this.Oc,u:m,K:this,D:d}):Zc(this.o.N,{v:this,u:d})}var m=this.vc(d);if(!m)return this.ob(d),null;var u=Yc(this.o,m);if(void 0!==u){if(0===u.m.count.value)return u.m.u=m,u.m.D=d,u.clone();u=u.clone();this.ob(d);return u}u=this.o.uc(m);u=Cc[u];if(!u)return g.call(this);u=this.Fa?u.jc:u.pointerType;var y=Xc(m,this.o,u.o);return null===y?g.call(this):this.Ga?
|
|
791
791
|
Zc(u.o.N,{v:u,u:y,K:this,D:d}):Zc(u.o.N,{v:u,u:y})}});for(let d=0;32>d;++d)se.push(Array(d));K.print&&(Va=K.print);K.printErr&&(Wa=K.printErr);K.wasmBinary&&(Xa=K.wasmBinary);K.thisProgram&&(Pa=K.thisProgram);if(K.preInit)for("function"==typeof K.preInit&&(K.preInit=[K.preInit]);0<K.preInit.length;)K.preInit.shift()();
|
|
792
|
-
var Ee={
|
|
792
|
+
var Ee={362116:(d,g,m,u,y)=>{if("undefined"===typeof window||void 0===(window.AudioContext||window.webkitAudioContext))return 0;if("undefined"===typeof window.miniaudio){window.miniaudio={referenceCount:0};window.miniaudio.device_type={};window.miniaudio.device_type.playback=d;window.miniaudio.device_type.capture=g;window.miniaudio.device_type.duplex=m;window.miniaudio.device_state={};window.miniaudio.device_state.stopped=u;window.miniaudio.device_state.started=y;let D=window.miniaudio;D.devices=
|
|
793
793
|
[];D.track_device=function(E){for(var F=0;F<D.devices.length;++F)if(null==D.devices[F])return D.devices[F]=E,F;D.devices.push(E);return D.devices.length-1};D.untrack_device_by_index=function(E){for(D.devices[E]=null;0<D.devices.length;)if(null==D.devices[D.devices.length-1])D.devices.pop();else break};D.untrack_device=function(E){for(var F=0;F<D.devices.length;++F)if(D.devices[F]==E)return D.untrack_device_by_index(F)};D.get_device_by_index=function(E){return D.devices[E]};D.unlock_event_types=["touchend",
|
|
794
|
-
"click"];D.unlock=function(){for(var E=0;E<D.devices.length;++E){var F=D.devices[E];null!=F&&null!=F.L&&F.state===D.device_state.started&&F.L.resume().then(()=>{Be(F.yb)},L=>{console.error("Failed to resume audiocontext",L)})}D.unlock_event_types.map(function(L){document.removeEventListener(L,D.unlock,!0)})};D.unlock_event_types.map(function(E){document.addEventListener(E,D.unlock,!0)})}window.miniaudio.referenceCount+=1;return 1},
|
|
795
|
-
window.miniaudio.unlock,!0)}),--window.miniaudio.referenceCount,0===window.miniaudio.referenceCount&&delete window.miniaudio)},
|
|
794
|
+
"click"];D.unlock=function(){for(var E=0;E<D.devices.length;++E){var F=D.devices[E];null!=F&&null!=F.L&&F.state===D.device_state.started&&F.L.resume().then(()=>{Be(F.yb)},L=>{console.error("Failed to resume audiocontext",L)})}D.unlock_event_types.map(function(L){document.removeEventListener(L,D.unlock,!0)})};D.unlock_event_types.map(function(E){document.addEventListener(E,D.unlock,!0)})}window.miniaudio.referenceCount+=1;return 1},364294:()=>{"undefined"!==typeof window.miniaudio&&(window.miniaudio.unlock_event_types.map(function(d){document.removeEventListener(d,
|
|
795
|
+
window.miniaudio.unlock,!0)}),--window.miniaudio.referenceCount,0===window.miniaudio.referenceCount&&delete window.miniaudio)},364598:()=>void 0!==navigator.mediaDevices&&void 0!==navigator.mediaDevices.getUserMedia,364702:()=>{try{var d=new (window.AudioContext||window.webkitAudioContext),g=d.sampleRate;d.close();return g}catch(m){return 0}},364873:(d,g,m,u,y,D)=>{if("undefined"===typeof window.miniaudio)return-1;var E={},F={};d==window.miniaudio.device_type.playback&&0!=m&&(F.sampleRate=m);E.L=
|
|
796
796
|
new (window.AudioContext||window.webkitAudioContext)(F);E.L.suspend();E.state=window.miniaudio.device_state.stopped;m=0;d!=window.miniaudio.device_type.playback&&(m=g);E.U=E.L.createScriptProcessor(u,m,g);E.U.onaudioprocess=function(L){if(null==E.oa||0==E.oa.length||E.oa.buffer!==mb.buffer)E.oa=new Float32Array(mb.buffer,Number(y),u*g);if(d==window.miniaudio.device_type.capture||d==window.miniaudio.device_type.duplex){for(var P=0;P<g;P+=1)for(var T=L.inputBuffer.getChannelData(P),U=E.oa,W=0;W<u;W+=
|
|
797
797
|
1)U[W*g+P]=T[W];Ce(D,u,y)}if(d==window.miniaudio.device_type.playback||d==window.miniaudio.device_type.duplex)for(De(D,u,y),P=0;P<L.outputBuffer.numberOfChannels;++P)for(T=L.outputBuffer.getChannelData(P),U=E.oa,W=0;W<u;W+=1)T[W]=U[W*g+P];else for(P=0;P<L.outputBuffer.numberOfChannels;++P)L.outputBuffer.getChannelData(P).fill(0)};d!=window.miniaudio.device_type.capture&&d!=window.miniaudio.device_type.duplex||navigator.mediaDevices.getUserMedia({audio:!0,video:!1}).then(function(L){E.Na=E.L.createMediaStreamSource(L);
|
|
798
|
-
E.Na.connect(E.U);E.U.connect(E.L.destination)}).catch(function(L){console.log("Failed to get user media: "+L)});d==window.miniaudio.device_type.playback&&E.U.connect(E.L.destination);E.yb=D;return window.miniaudio.track_device(E)},
|
|
799
|
-
|
|
798
|
+
E.Na.connect(E.U);E.U.connect(E.L.destination)}).catch(function(L){console.log("Failed to get user media: "+L)});d==window.miniaudio.device_type.playback&&E.U.connect(E.L.destination);E.yb=D;return window.miniaudio.track_device(E)},367817:d=>window.miniaudio.get_device_by_index(d).L.sampleRate,367890:d=>{d=window.miniaudio.get_device_by_index(d);void 0!==d.U&&(d.U.onaudioprocess=function(){},d.U.disconnect(),d.U=void 0);void 0!==d.Na&&(d.Na.disconnect(),d.Na=void 0);d.L.close();d.L=void 0;d.yb=void 0},
|
|
799
|
+
368290:d=>{window.miniaudio.untrack_device_by_index(d)},368340:d=>{d=window.miniaudio.get_device_by_index(d);d.L.resume();d.state=window.miniaudio.device_state.started},368479:d=>{d=window.miniaudio.get_device_by_index(d);d.L.suspend();d.state=window.miniaudio.device_state.stopped}},dc,ve,cc,Fe,Ge,He,Ie,Je,Ke,Le,Me,Ne,Oe,Pe,Be,Ce,De,Qe,Re,Hb,ze,Jb,rb,cd,Te={__syscall_fcntl64:function(){return 0},__syscall_ioctl:function(){return 0},__syscall_openat:function(){},_abort_js:()=>sb(""),_embind_create_inheriting_constructor:(d,
|
|
800
800
|
g,m)=>{d=Zb(d);g=mc(g,"wrapper");m=Wb(m);var u=g.o,y=u.N,D=u.C.N,E=u.C.constructor;d=Sb(d,function(...F){for(var L of u.C.Ab)if(this[L]===D[L])throw new Yb(`Pure virtual function ${L} must be implemented in JavaScript`);Object.defineProperty(this,"__parent",{value:y});this.__construct(...F)});y.__construct=function(...F){if(this===y)throw new Vb("Pass correct 'this' to __construct");F=E.implement(this,...F);nc(F);var L=F.m;F.notifyOnDestruction();L.ga=!0;Object.defineProperties(this,{m:{value:L}});
|
|
801
801
|
pc(this);F=L.u;F=ac(u,F);if($b.hasOwnProperty(F))throw new Vb(`Tried to register registered instance: ${F}`);$b[F]=this};y.__destruct=function(){if(this===y)throw new Vb("Pass correct 'this' to __destruct");nc(this);var F=this.m.u;F=ac(u,F);if($b.hasOwnProperty(F))delete $b[F];else throw new Vb(`Tried to unregister unregistered instance: ${F}`);};d.prototype=Object.create(y);Object.assign(d.prototype,m);return Xb(d)},_embind_finalize_value_object:d=>{var g=qc[d];delete qc[d];var m=g.cb,u=g.O,y=g.qb,
|
|
802
802
|
D=y.map(E=>E.yc).concat(y.map(E=>E.Sj));xc([d],D,E=>{var F={},L,P;for([L,P]of y.entries()){const T=E[L],U=P.wc,W=P.xc,na=E[L+y.length],oa=P.Rj,wa=P.Tj;F[P.rc]={read:aa=>T.s(U(W,aa)),write:(aa,ca)=>{var ha=[];oa(wa,aa,na.B(ha,ca));rc(ha)},optional:T.optional}}return[{name:g.name,s:T=>{var U={},W;for(W in F)U[W]=F[W].read(T);u(T);return U},B:(T,U)=>{for(var W in F)if(!(W in U||F[W].optional))throw new TypeError(`Missing field: "${W}"`);var na=m();for(W in F)F[W].write(na,U[W]);null!==T&&T.push(u,na);
|
|
@@ -868,11 +868,15 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
868
868
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
869
869
|
/* harmony export */ });
|
|
870
870
|
function riveGlue() {
|
|
871
|
-
var Rive=(()=>{var _scriptName=globalThis.document?.currentScript?.src;return async function(moduleArg={}){var moduleRtn;var G=moduleArg,ca=!!globalThis.window,oa=!!globalThis.WorkerGlobalScope,sa=oa&&self.name?.startsWith("em-pthread");
|
|
872
|
-
|
|
871
|
+
var Rive=(()=>{var _scriptName=globalThis.document?.currentScript?.src;return async function(moduleArg={}){var moduleRtn;var G=moduleArg,ca=!!globalThis.window,oa=!!globalThis.WorkerGlobalScope,sa=oa&&self.name?.startsWith("em-pthread");
|
|
872
|
+
if(!sa){const c=!1===globalThis.crossOriginIsolated?"the page is not cross origin isolated":"undefined"===typeof SharedArrayBuffer?"the page has no SharedArrayBuffer":null;if(null!==c)throw Error("this build runs threads, which need shared memory, and "+c+"; load the build without threads");const e=G.onAbort;G.onAbort=n=>{wa||Aa();e?.(n)};const m=globalThis.navigator?.userAgent??"";if(/AppleWebKit\//.test(m)&&!/Chrome\//.test(m)){const n=Ca();G.preRun=[].concat(G.preRun||[],()=>{Da();const w=new Promise(B=>
|
|
873
|
+
setTimeout(B,1E3,!1));Promise.race([n,w]).then(B=>{if(B)try{Ia("this build runs threads, and this browser loses heap growth between them (WebKit bug 303387); load the build without threads")}catch{}else Ka()})})}}
|
|
874
|
+
function Ca(){const c=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,127,2,9,1,1,109,1,109,2,3,1,2,3,2,1,0,7,5,1,1,115,0,0,10,6,1,4,0,63,0,11]);return new Promise(e=>{let m=null;try{const n=new WebAssembly.Memory({initial:1,maximum:2,shared:!0});m=new Worker(URL.createObjectURL(new Blob(["onmessage=(e)=>{const i=new WebAssembly.Instance(new WebAssembly.Module(e.data[0]),{m:{m:e.data[1]}});postMessage(0);onmessage=()=>postMessage(i.exports.s())}"])));m.onerror=()=>{m?.terminate();e(!1)};m.onmessage=
|
|
875
|
+
()=>{n.grow(1);m.onmessage=w=>{m?.terminate();e(2>w.data)};m.postMessage(0)};m.postMessage([c,n])}catch{m?.terminate(),e(!1)}})}
|
|
876
|
+
function Ma(){function c(D){const F=n;m=e=0;n=new Map;F.forEach(J=>{try{J(D)}catch(O){console.error(O)}});this.Cb();w&&w.Ac()}let e=0,m=0,n=new Map,w=null,B=null;this.requestAnimationFrame=function(D){e||=requestAnimationFrame(c.bind(this));const F=++m;n.set(F,D);return F};this.cancelAnimationFrame=function(D){n.delete(D);e&&0==n.size&&(cancelAnimationFrame(e),e=0)};this.vc=function(D){B&&(document.body.remove(B),B=null);D||(B=document.createElement("div"),B.style.backgroundColor="black",B.style.position=
|
|
873
877
|
"fixed",B.style.right=0,B.style.top=0,B.style.color="white",B.style.padding="4px",B.innerHTML="RIVE FPS",D=function(F){B.innerHTML="RIVE FPS "+F.toFixed(1)},document.body.appendChild(B));w=new function(){let F=0,J=0;this.Ac=function(){var O=performance.now();J?(++F,O-=J,1E3<O&&(D(1E3*F/O),F=J=0)):(J=O,F=0)}}};this.Cb=function(){}}
|
|
874
|
-
function
|
|
875
|
-
G.onRuntimeInitialized=function(){
|
|
878
|
+
function Oa(){console.assert(!0);const c=new Map;let e=-Infinity;this.push=function(m){m=m+255>>8;c.has(m)&&clearTimeout(c.get(m));c.set(m,setTimeout(function(){c.delete(m);0==c.length?e=-Infinity:m==e&&(e=Math.max(...c.keys()),console.assert(e<m))},1E3));e=Math.max(m,e);return e<<8}}function Pa(c){return function(){c();const e=G.riveScripting;if(e)for(const m of e.frameBoundary())console.warn(m)}}const Qa=G.onRuntimeInitialized;
|
|
879
|
+
G.onRuntimeInitialized=function(){Qa&&Qa();G.startFileScripts=function(D){const F=G.riveScripting;return D&&F&&D.startScripts?F.prepare().then(function(){D.startScripts();return D}):Promise.resolve(D)};let c=G.decodeAudio;G.decodeAudio=function(D,F,J=null){D=c(D,J??null);F(D)};let e=G.decodeFont;G.decodeFont=function(D,F,J=null){D=e(D,J??null);F(D)};const m=G.FileAsset.prototype.decode;G.FileAsset.prototype.decode=function(D,F){return m.call(this,D,F??null)};let n=G.setFallbackFontCb;G.setFallbackFontCallback=
|
|
876
880
|
"function"===typeof n?function(D){n(D)}:function(){console.warn("Module.setFallbackFontCallback called, but text support is not enabled in this build.")};const w=G.FileAssetLoader;G.ptrToAsset=D=>{let F=G.ptrToFileAsset(D);return F.isImage?G.ptrToImageAsset(D):F.isFont?G.ptrToFontAsset(D):F.isAudio?G.ptrToAudioAsset(D):F};G.CustomFileAssetLoader=w.extend("CustomFileAssetLoader",{__construct:function({loadContents:D}){this.__parent.__construct.call(this);this.ac=D},loadContents:function(D,F){D=G.ptrToAsset(D);
|
|
877
881
|
return this.ac(D,F)}});G.CDNFileAssetLoader=w.extend("CDNFileAssetLoader",{__construct:function(D){this.__parent.__construct.call(this);this.cc=D??null},loadContents:function(D){let F=G.ptrToAsset(D);D=F.cdnUuid;if(""===D)return!1;const J=this.cc??null;(function(O,U){var W=new XMLHttpRequest;W.responseType="arraybuffer";W.onreadystatechange=function(){4==W.readyState&&200==W.status&&U(W)};W.open("GET",O,!0);W.send(null)})(F.cdnBaseUrl+"/"+D,O=>{F.decode(new Uint8Array(O.response),J)});return!0}});
|
|
878
882
|
G.FallbackFileAssetLoader=w.extend("FallbackFileAssetLoader",{__construct:function(){this.__parent.__construct.call(this);this.yb=[]},addLoader:function(D){this.yb.push(D)},loadContents:function(D,F){for(let J of this.yb)if(J.loadContents(D,F))return!0;return!1}});let B=G.computeAlignment;G.computeAlignment=function(D,F,J,O,U=1){return B.call(this,D,F,J,O,U)}};
|
|
@@ -1033,21 +1037,21 @@ g;a.h=!0;throw b;}a.h&&q();null!==a.j&&p()})(r(349)),xj:(null===f||"rive_shared_
|
|
|
1033
1037
|
return g})(r(352)),ej:(null===f||"rive_shared_v1"===f)&&(k=>(b,g)=>{0===a.g&&u();d.i&&d.l++;let h;try{h=k(a.g,b,g)}catch(l){throw b=l,a.h=!0,b;}a.h&&q();null!==a.j&&p();return h})(r(353)),gj:(null===f||"rive_shared_v1"===f)&&(k=>b=>{0===a.g&&u();d.i&&d.l++;let g;try{g=k(a.g,b)}catch(h){throw b=h,a.h=!0,b;}a.h&&q();null!==a.j&&p();return g})(r(354)),fj:(null===f||"rive_shared_v1"===f)&&(k=>(b,g,h,l)=>{0===a.g&&u();d.i&&d.l++;let x;try{x=k(a.g,b,g,h,l)}catch(H){throw b=H,a.h=!0,b;}a.h&&q();null!==a.j&&
|
|
1034
1038
|
p();return x})(r(355)),qj:(null===f||"rive_shared_v1"===f)&&(k=>b=>{0===a.g&&u();d.i&&d.l++;let g;try{g=k(a.g,b)}catch(h){throw b=h,a.h=!0,b;}a.h&&q();null!==a.j&&p();return g})(r(356)),pj:(null===f||"rive_shared_v1"===f)&&(k=>b=>{0===a.g&&u();d.i&&d.l++;try{k(a.g,b)}catch(g){throw b=g,a.h=!0,b;}a.h&&q();null!==a.j&&p()})(r(357)),Me:(null===f||"env"===f)&&(k=>(b,g,h)=>{0===a.g&&u();d.i&&d.l++;try{k(a.g,b,g,h)}catch(l){throw b=l,a.h=!0,b;}a.h&&q();null!==a.j&&p()})(r(358)),Tj:(null===f||"env"===f)&&
|
|
1035
1039
|
(k=>(b,g,h,l,x,H,P,A)=>{0===a.g&&u();d.i&&d.l++;try{k(a.g,b,g,h,l,x,H,P,A)}catch(y){throw b=y,a.h=!0,b;}a.h&&q();null!==a.j&&p()})(r(359))}}function m(r,a){return()=>{throw Error("failed to call unlinked import function "+r+"."+a);}}function n(r,a,f){if(a+f>r.byteLength)throw Error("out of bounds memory access");}function w(r,a){a>>>=0;if(4>a)return 0;n(r,a,0);const f=(new DataView(r)).getUint32(a-4,!0);n(r,a,f);return f}function B(r,a,f){a>>>=0;f>>>=0;n(r,a,f);if("undefined"!==typeof TextDecoder)return(new TextDecoder("utf-16le",
|
|
1036
|
-
{ignoreBOM:!0})).decode(new Uint8Array(r,a,f));r=0===a%2?new Uint16Array(r,a,f>>1):new Uint16Array(r.slice(a,a+f-f%2));a="";for(f=0;f<r.length;f+=4096)a+=String.fromCharCode.apply(null,r.subarray(f,f+4096));return a}function D(r,a){let f=
|
|
1040
|
+
{ignoreBOM:!0})).decode(new Uint8Array(r,a,f));r=0===a%2?new Uint16Array(r,a,f>>1):new Uint16Array(r.slice(a,a+f-f%2));a="";for(f=0;f<r.length;f+=4096)a+=String.fromCharCode.apply(null,r.subarray(f,f+4096));return a}function D(r,a){let f=xd.get(a);if(void 0===f){for(let d=0;32>d&&void 0===f;d++){const p=a+16+4*d>>>2;0===Atomics.compareExchange(r,p,0,1)&&(f={ka:p,mb:2+d})}f??={ka:-1,mb:34+Atomics.add(r,a+144>>>2,1)};xd.set(a,f)}return f}function F(r,a,f,d,p=null,q=()=>{}){a>>>=0;const u=f%4294967296,
|
|
1037
1041
|
k=Math.floor(f/4294967296);let b=null,g=null,h=null,l=null,x=null,H=null;const P=()=>{const K=r();K!==b&&(b=K,g=new Uint8Array(b),h=new Int32Array(b),l=new Uint32Array(b))};P();const A=D(h,a);null!==p&&Atomics.store(p,2,A.mb);const y=(K,R)=>{const aa=d().buffer;aa!==x&&(x=aa,H=new Uint8Array(aa));return K+R<=H.length?H:null},t=(K,R,aa,Z,da)=>{for(let ja=0;ja<da;ja++)K[R+ja]=aa[Z+ja]},z=K=>{for(null!==p&&Atomics.store(p,3,K);0!==Atomics.compareExchange(h,K>>>2,0,A.mb););},v=K=>{Atomics.store(h,K>>>
|
|
1038
1042
|
2,0);null!==p&&Atomics.store(p,3,0)};let E=0;const L=(K,R)=>{P();K>>>=0;if(0===(K&2147483648))return 0;var aa=(K&2147483647)>>>12,Z=Atomics.load(l,a+148+4*(aa>>>10)>>>2);if(0===Z)return 0;aa=Z+24*(aa&1023);Z=aa>>>2;if(0<=A.ka){if(Atomics.store(l,A.ka,aa),Z=Atomics.load(l,Z),0===(Z&4096)||0!==((Z^K)&4095))return Atomics.store(l,A.ka,1),0}else for(;;){const da=Atomics.load(l,Z);if(0===(da&4096)||0!==((da^K)&4095))return 0;if(Atomics.compareExchange(l,Z,da,da+8192)===da)break}E=aa;K=Atomics.load(l,aa+
|
|
1039
1043
|
4>>>2);return l[K>>>2]!==R||l[aa+16>>>2]!==u||l[aa+20>>>2]!==k?(T(),0):K},T=()=>{0<=A.ka?Atomics.store(l,A.ka,1):Atomics.sub(l,E+0>>>2,8192)},la=K=>{K=L(K,3);if(0!==K){4294967295===Atomics.add(l,K+24>>>2,1)&&Atomics.add(l,K+28>>>2,1);z(K+4);try{const R=l[K+16>>>2],aa=l[K+32>>>2]>>>2;for(let Z=0;Z<R;Z++){const da=l[aa+Z]+0>>>2;Atomics.add(h,da,1);Atomics.notify(h,da)}}finally{v(K+4),T()}}},ta=(K,R,aa,Z,da)=>{const ja=Math.min(da,l[K+8>>>2]-R);t(g,K+32+R,aa,Z,ja);t(g,K+32,aa,Z+ja,da-ja)},Ha=(K,R,aa,
|
|
1040
1044
|
Z,da)=>{var ja=l[K+8>>>2];R%=ja;ja=Math.min(da,ja-R);t(aa,Z,g,K+32+R,ja);t(aa,Z+ja,g,K+32,da-ja)},Hb=new Uint8Array(4),ac=new Uint32Array(Hb.buffer),hb=()=>{q("a processor cannot pass shared objects through rings or snapshots, as the audio thread may not hold or give them back; pass them in Audio.start's argument");return 0},Ib=(K,R,aa,Z)=>{K=L(K,1);if(0===K)return 0;let da=0,ja=0;z(K+4);try{const La=l[K+20>>>2];if(0===La)return 0;const Ea=l[K+16>>>2];Ha(K,Ea,Hb,0,4);ja=ac[0];if(0!==(ja&2147483648))return hb();
|
|
1041
|
-
if(null===R){if(ja<=Z)return 0}else{if(0===aa||ja>Z)return ja+1;Ha(K,Ea+4,R,aa,ja)}l[K+16>>>2]=(Ea+4+ja)%l[K+8>>>2];l[K+20>>>2]=La-4-ja;da=l[K+28>>>2]}finally{v(K+4),T()}la(da);return ja+1},
|
|
1042
|
-
{K=L(K,0);if(0===K)return 0;K=0!==l[K+16>>>2]?1:0;T();return K},atomic_load:(K,R)=>
|
|
1045
|
+
if(null===R){if(ja<=Z)return 0}else{if(0===aa||ja>Z)return ja+1;Ha(K,Ea+4,R,aa,ja)}l[K+16>>>2]=(Ea+4+ja)%l[K+8>>>2];l[K+20>>>2]=La-4-ja;da=l[K+28>>>2]}finally{v(K+4),T()}la(da);return ja+1},pb=(K,R,aa)=>{K=L(K,0);if(0===K)return-1;try{R>>>=0;var Z=0!==(R&3)||R+4>l[K+8>>>2]?-1:K+32+R>>>2;return 0>Z?-1:aa(Z)>>>0}finally{T()}};return{region_create:()=>0,region_size:K=>{K=L(K,0);if(0===K)return 0;K=l[K+8>>>2];T();return K},region_lock:()=>0,region_unlock:()=>{},region_read:()=>0,region_write:()=>0,region_poisoned:K=>
|
|
1046
|
+
{K=L(K,0);if(0===K)return 0;K=0!==l[K+16>>>2]?1:0;T();return K},atomic_load:(K,R)=>pb(K,R,aa=>Atomics.load(h,aa)),atomic_store:(K,R,aa)=>pb(K,R,Z=>{Atomics.store(h,Z,aa|0);return 0}),atomic_add:(K,R,aa)=>pb(K,R,Z=>Atomics.add(h,Z,aa|0)),atomic_cas:(K,R,aa,Z)=>pb(K,R,da=>Atomics.compareExchange(h,da,aa|0,Z|0)),ring_create:()=>0,ring_write:(K,R,aa,Z,da)=>{R>>>=0;aa>>>=0;Z=y(R,aa);K=null!==Z?L(K,1):0;if(0===K)return 0;if(0!==da)return T(),hb();da=0;z(K+4);try{const ja=l[K+8>>>2];if(4+aa>ja)return 2;
|
|
1043
1047
|
const La=l[K+20>>>2];if(La+4+aa>ja)return 0;const Ea=l[K+16>>>2];ac[0]=aa;ta(K,(Ea+La)%ja,Hb,0,4);ta(K,(Ea+La+4)%ja,Z,R,aa);l[K+20>>>2]=La+4+aa;da=l[K+24>>>2]}finally{v(K+4),T()}la(da);return 1},ring_read:(K,R,aa)=>{R>>>=0;aa>>>=0;const Z=y(R,aa);return null!==Z?Ib(K,Z,R,aa):0},ring_drop:(K,R)=>Ib(K,null,0,R>>>0),ring_used:K=>{K=L(K,1);if(0===K)return 0;z(K+4);const R=l[K+20>>>2];v(K+4);T();return R},ring_signal:(K,R)=>{K=L(K,1);if(0===K)return 0;R=l[K+(0!==R?28:24)>>>2];T();return R},snapshot_create:()=>
|
|
1044
1048
|
0,snapshot_publish:(K,R,aa,Z,da)=>{R>>>=0;aa>>>=0;Z=y(R,aa);K=null!==Z?L(K,2):0;if(0===K)return 0;try{const La=l[K+8>>>2];if(0!==da)return hb();if(aa>La)return 0;z(K+4);try{da=K+16>>>2;var ja=Atomics.load(l,da);const Ea=K+40>>>2;if(0!==((0!==ja?Atomics.load(l,Ea+ja-1):0)&2147483648))return hb();ja%=2;const Xa=(K+32>>>2)+ja,Sa=Atomics.load(l,Xa)|1;Atomics.store(l,Xa,Sa);Atomics.load(l,Xa);t(g,K+48+ja*La,Z,R,aa);Atomics.store(l,Ea+ja,aa);Atomics.store(l,Xa,Sa+1);Atomics.store(l,da,ja+1);4294967295===
|
|
1045
1049
|
Atomics.add(l,K+24>>>2,1)&&Atomics.add(l,K+28>>>2,1)}finally{v(K+4)}return 1}finally{T()}},snapshot_read:(K,R,aa)=>{R>>>=0;aa>>>=0;const Z=y(R,aa);K=null!==Z?L(K,2):0;if(0===K)return 0;try{for(;;){const ja=Atomics.load(l,K+16>>>2);if(0===ja)return 0;var da=ja-1;const La=(K+32>>>2)+da,Ea=Atomics.load(l,La);if(0!==(Ea&1))continue;const Xa=Atomics.load(l,(K+40>>>2)+da),Sa=l[K+8>>>2];da=K+48+da*Sa;const Jb=0!==(Xa&2147483648),cb=Math.min(Xa,Sa);!Jb&&0!==R&&cb<=aa&&t(Z,R,g,da,cb);if(Atomics.compareExchange(l,
|
|
1046
1050
|
La,Ea,Ea)===Ea)return Jb?hb():cb+1}}finally{T()}},snapshot_seq:K=>{K=L(K,2);if(0===K)return 0;K=4294967296*Atomics.load(l,K+28>>>2)+Atomics.load(l,K+24>>>2);T();return K},signal_create:()=>0,signal_notify:K=>la(K),signal_seq:K=>{K=L(K,3);if(0===K)return 0;K=4294967296*Atomics.load(l,K+28>>>2)+Atomics.load(l,K+24>>>2);T();return K},blob_create:()=>0,blob_size:K=>{K=L(K,4);if(0===K)return 0;K=l[K+8>>>2];T();return K},blob_read:(K,R,aa,Z)=>{R>>>=0;aa>>>=0;Z>>>=0;const da=y(aa,Z);K=null!==da?L(K,4):0;
|
|
1047
|
-
if(0===K)return 0;const ja=l[K+8>>>2];Z=R<ja?Math.min(Z,ja-R):0;t(da,aa,g,K+16+R,Z);T();return Z},retain:()=>0,release:()=>{}}}function J(r,a,f){const d=Atomics.load(f,2);2>d||(r=new Int32Array(r()),f=Atomics.load(f,3),0!==f&&Atomics.compareExchange(r,f>>>2,d,0),34>d&&Atomics.store(r,((a>>>0)+16>>>2)+d-2,0))}function O(r){return String(r?.message??r)}function U(r,a,f=new Map){const d=u=>{const k=r().buffer;return B(k,u,w(k,u))},p={};for(var q of
|
|
1048
|
-
void 0===b?a(`Timer '${k}' does not exist`):(u&&f.delete(k),a(`${k}: ${(db()-b).toFixed(3)}ms`))};p["console.time"]=u=>f.set(d(u),db());p["console.timeLog"]=q(!1);p["console.timeEnd"]=q(!0);return p}function W(r){let a=null,f=null;const d=q=>f??O(q),p={env:U(()=>a,r.log,r.Ta),rive_shared_v1:r.kb(()=>a),rive_rt_v1:{now:r.now??db},rive_lane_v1:{error:(q,u)=>{f=B(a.buffer,q,u);r.Rc?.(f)},fuel_check:r.$a??
|
|
1051
|
+
if(0===K)return 0;const ja=l[K+8>>>2];Z=R<ja?Math.min(Z,ja-R):0;t(da,aa,g,K+16+R,Z);T();return Z},retain:()=>0,release:()=>{}}}function J(r,a,f){const d=Atomics.load(f,2);2>d||(r=new Int32Array(r()),f=Atomics.load(f,3),0!==f&&Atomics.compareExchange(r,f>>>2,d,0),34>d&&Atomics.store(r,((a>>>0)+16>>>2)+d-2,0))}function O(r){return String(r?.message??r)}function U(r,a,f=new Map){const d=u=>{const k=r().buffer;return B(k,u,w(k,u))},p={};for(var q of lf)p[q]=u=>a(d(u));q=u=>k=>{k=d(k);const b=f.get(k);
|
|
1052
|
+
void 0===b?a(`Timer '${k}' does not exist`):(u&&f.delete(k),a(`${k}: ${(db()-b).toFixed(3)}ms`))};p["console.time"]=u=>f.set(d(u),db());p["console.timeLog"]=q(!1);p["console.timeEnd"]=q(!0);return p}function W(r){let a=null,f=null;const d=q=>f??O(q),p={env:U(()=>a,r.log,r.Ta),rive_shared_v1:r.kb(()=>a),rive_rt_v1:{now:r.now??db},rive_lane_v1:{error:(q,u)=>{f=B(a.buffer,q,u);r.Rc?.(f)},fuel_check:r.$a??mf}};void 0!==r.hb&&(p[r.hb]=r.Db(()=>a));try{const q=(new WebAssembly.Instance(r.module,p)).exports;
|
|
1049
1053
|
a=q.memory;return{exports:q,memory:a,Za:d}}catch(q){return{error:f??O(q)}}}function X(r,a,f=!1){try{const d=r.exports;d[f?"__riveLaneReset":"__riveLiftedStart"]?.();const p=a.input,q=d.__rive_lane_alloc(p.length)>>>0;(new Uint8Array(r.memory.buffer,q,p.length)).set(p);const u=d[a.prefix+a.Ya](q,p.length,...(a.Wa??[]));a.ga&&d.__rive_lane_free(q);return{result:u}}catch(d){return{error:r.Za(d)}}}function pa(r){const a=W(r);r=void 0===a.error?X(a,r):a;return void 0===r.error?{...a,result:r.result}:r}
|
|
1050
|
-
function ra(r,a,f,d,p,q){let u=null;const k=P=>{u??=P};var b=db()+1E3,g="processor init overran its budget";const h=pa({module:r,kb:P=>p(P,k),log:q,$a:()=>{if(db()>b)throw g;},prefix:
|
|
1054
|
+
function ra(r,a,f,d,p,q){let u=null;const k=P=>{u??=P};var b=db()+1E3,g="processor init overran its budget";const h=pa({module:r,kb:P=>p(P,k),log:q,$a:()=>{if(db()>b)throw g;},prefix:Ac.processor,Ya:a,input:f,Wa:[d.sampleRate,d.zb,d.channels],ga:!0});if(void 0!==h.error||null!==u)return{error:h.error??u};b=Infinity;g="processor overran its block budget";const l=h.exports,x=h.memory;let H=null;return{ra:{ad(P,A,y,t=0){0<t&&(b=db()+t);try{const z=l.__rive_processor_process(P,A)>>>0;if(null!==u)return u;
|
|
1051
1055
|
const v=P*d.channels;if(null===H||H.buffer!==x.buffer||H.byteOffset!==z||H.length!==v)H=new Float32Array(x.buffer,z,v);y(H);l.__riveFrameMinor?.();return null}catch(z){return h.Za(z)}finally{b=Infinity}}}}}function ua(r,a){a=performance.now()+a;for(let f=1;;f++){if(r())return!0;if(0===(f&63)&&performance.now()>=a)return!1}}function ea(){const r=new MessageChannel;return new Promise(a=>{r.port1.onmessage=()=>{r.port1.close();a()};r.port2.postMessage(0)})}function S(r,a,f,d){const p={},q={rive_rt_v1:{now:()=>
|
|
1052
1056
|
{if(null!==f.view&&0!==Atomics.load(f.view,f.stop))throw Error("stopped by another part");return performance.now()+d},budget_exceeded:u=>{f.Ca=u;throw Error("execution exceeded timeout");},error:(u,k)=>{f.ca=[u,k]},debug_enter:()=>{},debug_line:()=>0,debug_leave:()=>{}},rive_parallel_v1:{waiting:()=>{}}};for(const u of WebAssembly.Module.imports(r)){let k,b;r=(k=p)[b=u.module]??(k[b]={});"memory"===u.kind?r[u.name]=a:"function"===u.kind&&(r[u.name]=q[u.module]?.[u.name]??(()=>{throw Error(`parallel code called the host through ${u.module}.${u.name}`);
|
|
1053
1057
|
}))}return p}function Y(){function r(u,k,b){-1===Atomics.compareExchange(p,48,-1,u)&&(u=k.state,null!==u.ca?(p[49]=2,p[50]=u.ca[0],p[51]=u.ca[1]):0<=u.Ca?(p[49]=3,p[52]=u.Ca):(p[49]=1,b=(new TextEncoder).encode(String(b?.message??b)).subarray(0,512),(new Uint8Array(p.buffer,4544,b.length)).set(b),p[53]=b.length),Atomics.store(k.view,k.state.stop,1))}function a(u){var k=128+16*q;if(Atomics.compareExchange(p,k+1,u,0)!==u)return!1;u=p[k+2];k=p[32];const b=d.get(p[33]);if(void 0===b)return!0;var g=b.memory.buffer;
|
|
@@ -1062,200 +1066,200 @@ g){const h=q.R;for(const l of b.Ab){const x=128+16*l;for(let H=1;Atomics.load(h,
|
|
|
1062
1066
|
1:0;for(var y of[128,256,384,512,516,640,20])Atomics.store(H,h+y>>>2,0);const t=b.instance.exports;b=t.__riveParallelCall;y=H[h+0>>>2];const z=H[h+4>>>2],v=H[h+8>>>2]>>>2;if(1===A){for(g=0;g<x;g++)b(y,H[v+g],z);return 1}const E=q.R;g.jb=!0;try{t.__riveSaveGlobals(g.wb);E[32]=A;E[33]=g.key;E[34]=h;E[35]=g.wb;Atomics.store(E,48,-1);const T=Atomics.load(E,0)+1|0||1;P.forEach((ta,Ha)=>{ta=128+16*ta;E[ta+2]=Ha+1;Atomics.store(E,ta+1,T)});Atomics.store(E,0,T);0!==Atomics.load(E,16)&&Atomics.notify(E,0);
|
|
1063
1067
|
let la=null;var L=performance.now();k={Ab:P,Ia:T,view:H,stop:h+640>>>2,hc:L,Vb:L,Pb:new Set,oa(ta){la??=ta;-1===Atomics.compareExchange(E,48,-1,0)&&Atomics.store(H,h+640>>>2,1)}};for(L=0;L<x&&0===Atomics.load(H,h+640>>>2);L+=A)try{b(y,H[v+L],z)}catch(ta){k.oa(ta);break}p(k,t.__riveFuelCheck);if(0<Atomics.load(E,48)){const ta=E[49];if(2===ta)l.ca(E[50],E[51]);else if(3===ta&&(l.jc(E[52]),null!==la))throw la;const Ha=new Uint8Array(E[53]);Ha.set(new Uint8Array(E.buffer,4544,Ha.length));throw Error(1===
|
|
1064
1068
|
ta?(new TextDecoder).decode(Ha):"parallel part trapped");}if(null!==la)throw la;return A}finally{g.jb=!1,k=null}},waiting:function(){const b=k;if(null!==b){var g=performance.now();for(const h of b.Ab)d(b,h,g)}},message:Y().message,Vc(b){b=Math.trunc(b??NaN);return Number.isFinite(b)?Math.min(Math.max(b,1),64):Math.min(globalThis.navigator?.hardwareConcurrency??1,8)},state(){const b=null===q?0:Atomics.load(q.R,54);return{team:q?.la.length??0,waits:1===b?"async":2===b?"timed":"none"}}}}function ka(r){r=
|
|
1065
|
-
[0,...r,11];return new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,r.length+2,1,r.length,...r])}function xa(r){let a=0,f=8;const d=()=>{const [g,h]=qa(r,f);f=h;return g},p=()=>{const g=r[f++];123===g&&(a=Math.max(a,1));return 99!==g&&100!==g},q=()=>{var g=r[f++];if(253===g)g=d(),a=Math.max(a,256<=g&&275>=g?2:1),11>=g||92===g||93===g?(d()&64&&d(),d()):12===g||13===g?f+=16:21<=g&&34>=g?f+=1:84<=g&&91>=g&&(d()&64&&d(),d(),f+=1);else if(252===g){g=d();if(g>=
|
|
1066
|
-
0;h<
|
|
1067
|
-
const [g,h]=qa(r,f+1);f=h;if(1===u)for(u=d();0<u&&f<r.length;u--){if(96!==r[f++])return-1;for(var k=0;2>k;k++)for(var b=d();0<b&&f<r.length;b--)if(!p())return-1}else if(10===u)for(u=d();0<u&&f<r.length;u--){k=Math.min(d()+f,r.length);for(b=d();0<b&&f<k;b--)if(d(),!p())return-1;for(;f<k;)if(!q())return-1}f=h+g}return a}function qa(r,a){let f=0,d=0,p;do p=r[a++],f|=(p&127)<<d,d+=7;while(p&128);return[f>>>0,a]}function
|
|
1068
|
-
[];for(let f=8;f<r.length;){const [d,p]=qa(r,f+1);a.push({id:r[f],at:f,body:p,end:p+d});f=p+d}return a}function ya(r){const a=[];for(const f of za(r)){if(0!==f.id)continue;const [d,p]=qa(r,f.body);
|
|
1069
|
-
if(7===q.id){const [u,k]=qa(r,q.body);d=Array.from("__riveLiftedStart",b=>b.charCodeAt(0));d=Uint8Array.from([...
|
|
1070
|
-
0===(u&2))return{M:r,memory:null};const [k,b]=qa(r,q);var g=u&1?qa(r,b)[0]:65536,h="function"===typeof SharedArrayBuffer&&!1!==globalThis.crossOriginIsolated,l=g;u=null;if(h)for(l=Math.min(g,32768);;)try{u=new WebAssembly.Memory({initial:k,maximum:l,shared:h});break}catch(P){if(!(P instanceof RangeError)||l<=k)throw P;l=Math.max(k,l>>>1)}else u=new WebAssembly.Memory({initial:k,maximum:l});g=P=>[...
|
|
1071
|
-
const [x,H]=qa(r,d.body);h=[r.subarray(0,8)];for(const P of a)P!==f&&(a=r.subarray(P.body,P.end),P===d&&(a=Uint8Array.from([...
|
|
1072
|
-
p]=qa(r,p);2===k&&(p=qa(r,p)[1]);if(1!==k)for(k=r[p++];11!==k;k=r[p++])p=qa(r,p)[1];const [b,g]=qa(r,p);q.push(Uint8Array.from([1,...
|
|
1073
|
-
case 2:return r(a[f],a[f+1]);case 3:return r(a[f],a[f+1],a[f+2]);case 4:return r(a[f],a[f+1],a[f+2],a[f+3]);case 5:return r(a[f],a[f+1],a[f+2],a[f+3],a[f+4]);case 6:return r(a[f],a[f+1],a[f+2],a[f+3],a[f+4],a[f+5]);case 7:return r(a[f],a[f+1],a[f+2],a[f+3],a[f+4],a[f+5],a[f+6]);case 8:return r(a[f],a[f+1],a[f+2],a[f+3],a[f+4],a[f+5],a[f+6],a[f+7]);default:return r(...a.subarray(f,f+d))}}const
|
|
1069
|
+
[0,...r,11];return new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,r.length+2,1,r.length,...r])}function xa(r){let a=0,f=8;const d=()=>{const [g,h]=qa(r,f);f=h;return g},p=()=>{const g=r[f++];123===g&&(a=Math.max(a,1));return 99!==g&&100!==g},q=()=>{var g=r[f++];if(253===g)g=d(),a=Math.max(a,256<=g&&275>=g?2:1),11>=g||92===g||93===g?(d()&64&&d(),d()):12===g||13===g?f+=16:21<=g&&34>=g?f+=1:84<=g&&91>=g&&(d()&64&&d(),d(),f+=1);else if(252===g){g=d();if(g>=yd.length)return!1;for(let h=
|
|
1070
|
+
0;h<yd[g];h++)d()}else if(254===g)3===d()?f+=1:(d()&64&&d(),d());else if(40<=g&&62>=g)d()&64&&d(),d();else if(2<=g&&4>=g)123===r[f]&&(a=Math.max(a,1)),d();else if(14===g)for(g=d();0<=g&&f<r.length;g--)d();else if(28===g)for(g=d();0<g&&f<r.length;g--){if(!p())return!1}else if(17===g||19===g)d(),d();else if(67===g||68===g)f+=67===g?4:8;else if(32<=g&&38>=g||nf.includes(g))d();else if(!(1>=g||5===g||11===g||15===g||26===g||27===g||209===g||69<=g&&196>=g))return!1;return!0};for(;f<r.length;){var u=r[f];
|
|
1071
|
+
const [g,h]=qa(r,f+1);f=h;if(1===u)for(u=d();0<u&&f<r.length;u--){if(96!==r[f++])return-1;for(var k=0;2>k;k++)for(var b=d();0<b&&f<r.length;b--)if(!p())return-1}else if(10===u)for(u=d();0<u&&f<r.length;u--){k=Math.min(d()+f,r.length);for(b=d();0<b&&f<k;b--)if(d(),!p())return-1;for(;f<k;)if(!q())return-1}f=h+g}return a}function qa(r,a){let f=0,d=0,p;do p=r[a++],f|=(p&127)<<d,d+=7;while(p&128);return[f>>>0,a]}function va(r){const a=[];do{const f=r&127;r>>>=7;a.push(r?f|128:f)}while(r);return a}function za(r){const a=
|
|
1072
|
+
[];for(let f=8;f<r.length;){const [d,p]=qa(r,f+1);a.push({id:r[f],at:f,body:p,end:p+d});f=p+d}return a}function ya(r){const a=[];for(const f of za(r)){if(0!==f.id)continue;const [d,p]=qa(r,f.body);of.some(q=>q.length===d&&q.every((u,k)=>r[p+k]===u))&&a.push(r.subarray(p+d,f.end))}return a}function qb(r){var a=za(r);const f=a.find(u=>8===u.id);var d=a.filter(u=>u!==f);if(void 0===f||!d.some(u=>7===u.id))return r;const p=qa(r,f.body)[0];a=[r.subarray(0,8)];for(var q of d){d=r.subarray(q.body,q.end);
|
|
1073
|
+
if(7===q.id){const [u,k]=qa(r,q.body);d=Array.from("__riveLiftedStart",b=>b.charCodeAt(0));d=Uint8Array.from([...va(u+1),...r.subarray(k,q.end),...va(d.length),...d,0,...va(p)])}a.push(Uint8Array.from([q.id,...va(d.length)]),d)}r=new Uint8Array(a.reduce((u,k)=>u+k.length,0));q=0;for(const u of a)r.set(u,q),q+=u.length;return r}function Bc(r){var a=za(r),f=a.find(P=>5===P.id);const d=a.find(P=>2===P.id);if(void 0===f||void 0===d)return{M:r,memory:null};let [p,q]=qa(r,f.body);var u=r[q++];if(1!==p||
|
|
1074
|
+
0===(u&2))return{M:r,memory:null};const [k,b]=qa(r,q);var g=u&1?qa(r,b)[0]:65536,h="function"===typeof SharedArrayBuffer&&!1!==globalThis.crossOriginIsolated,l=g;u=null;if(h)for(l=Math.min(g,32768);;)try{u=new WebAssembly.Memory({initial:k,maximum:l,shared:h});break}catch(P){if(!(P instanceof RangeError)||l<=k)throw P;l=Math.max(k,l>>>1)}else u=new WebAssembly.Memory({initial:k,maximum:l});g=P=>[...va(P.length),...Array.from(P,A=>A.charCodeAt(0))];l=[...g(bc[0]),...g(bc[1]),2,h?3:1,...va(k),...va(l)];
|
|
1075
|
+
const [x,H]=qa(r,d.body);h=[r.subarray(0,8)];for(const P of a)P!==f&&(a=r.subarray(P.body,P.end),P===d&&(a=Uint8Array.from([...va(x+1),...r.subarray(H,P.end),...l])),h.push(Uint8Array.from([P.id,...va(a.length)]),a));r=new Uint8Array(h.reduce((P,A)=>P+A.length,0));f=0;for(const P of h)r.set(P,f),f+=P.length;return{M:r,memory:u}}function zd(r){var a=za(r);const f=a.find(b=>11===b.id);if(void 0===f)return r;let [d,p]=qa(r,f.body);const q=[Uint8Array.from(va(d))];for(var u=0;u<d;u++){var k=void 0;[k,
|
|
1076
|
+
p]=qa(r,p);2===k&&(p=qa(r,p)[1]);if(1!==k)for(k=r[p++];11!==k;k=r[p++])p=qa(r,p)[1];const [b,g]=qa(r,p);q.push(Uint8Array.from([1,...va(b)]),r.subarray(g,g+b));p=g+b}u=[r.subarray(0,8)];for(const b of a)a=b===f?Ad(q):r.subarray(b.body,b.end),u.push(Uint8Array.from([b.id,...va(a.length)]),a);return Ad(u)}function Ad(r){const a=new Uint8Array(r.reduce((d,p)=>d+p.length,0));let f=0;for(const d of r)a.set(d,f),f+=d.length;return a}function pf(r,a,f,d){switch(d){case 0:return r();case 1:return r(a[f]);
|
|
1077
|
+
case 2:return r(a[f],a[f+1]);case 3:return r(a[f],a[f+1],a[f+2]);case 4:return r(a[f],a[f+1],a[f+2],a[f+3]);case 5:return r(a[f],a[f+1],a[f+2],a[f+3],a[f+4]);case 6:return r(a[f],a[f+1],a[f+2],a[f+3],a[f+4],a[f+5]);case 7:return r(a[f],a[f+1],a[f+2],a[f+3],a[f+4],a[f+5],a[f+6]);case 8:return r(a[f],a[f+1],a[f+2],a[f+3],a[f+4],a[f+5],a[f+6],a[f+7]);default:return r(...a.subarray(f,f+d))}}const lf=["console.log","console.debug","console.info","console.warn","console.error"],qf=[["rive_rt_v1","now",
|
|
1074
1078
|
["job","worker"],null],["rive_lanes_v1","wait_within",[],"blocks on a signal, which only the main lane may; a worker awaits Signal.next or Port.receive instead"],["rive_shared_v1","region_lock",["job","worker"],"locks a shared region, which the audio thread may not wait on; share through atomics, rings and snapshots instead"],["rive_shared_v1","read_done",[],null],["rive_shared_v1",null,["job","worker","processor"],null],["rive_lane_v1",null,["job","worker","processor"],null],["rive_job_v1",null,
|
|
1075
|
-
["job"],null],["rive_worker_v1",null,["worker"],null],["env","console.log",["job","worker","processor"],null],["env","console.debug",["job","worker","processor"],null],["env","console.info",["job","worker","processor"],null],["env","console.warn",["job","worker","processor"],null],["env","console.error",["job","worker","processor"],null],["env","console.time",["job","worker"],null],["env","console.timeLog",["job","worker"],null],["env","console.timeEnd",["job","worker"],null]],
|
|
1076
|
-
["rive.workers","worker"],["rive.audio","processor"]],
|
|
1077
|
-
"memory"];(function(r){function a(C,I=null){return{mc:e(R.Jc,C,I),Z:R.Z,ta:R.ta,Qa:R.Qa,sa:R.sa,gb:R.gb,ga:R.ga,Ha:da}}function f(C){Ea??={Nb:ja(
|
|
1078
|
-
function d(C){const {M:I,memory:Q}=
|
|
1079
|
+
["job"],null],["rive_worker_v1",null,["worker"],null],["env","console.log",["job","worker","processor"],null],["env","console.debug",["job","worker","processor"],null],["env","console.info",["job","worker","processor"],null],["env","console.warn",["job","worker","processor"],null],["env","console.error",["job","worker","processor"],null],["env","console.time",["job","worker"],null],["env","console.timeLog",["job","worker"],null],["env","console.timeEnd",["job","worker"],null]],Bd=[["rive.jobs","job"],
|
|
1080
|
+
["rive.workers","worker"],["rive.audio","processor"]],Ac={job:"__rive_job_",worker:"__rive_worker_",processor:"__rive_processor_"},Cd={starting:0,running:1,done:2,failed:3,stopped:4},xd=new Map,db=void 0!==globalThis.performance?()=>globalThis.performance.now():Date.now,mf=()=>{},Cc=[253,12,...Array(16).fill(0)],rf=ka([...Cc]),sf=ka([...Cc,...Cc,253,128,2]),yd=[0,0,0,0,0,0,0,0,2,1,2,1,2,1,2,1,1,1],nf=[12,13,16,18,63,64,65,66,208,210],of=Bd.map(([r])=>Array.from(r,a=>a.charCodeAt(0))),bc=["rive_parallel_v1",
|
|
1081
|
+
"memory"];(function(r){function a(C,I=null){return{mc:e(R.Jc,C,I),Z:R.Z,ta:R.ta,Qa:R.Qa,sa:R.sa,gb:R.gb,ga:R.ga,Ha:da}}function f(C){Ea??={Nb:ja(rf),Kb:ja(sf)};C=[C,...ya(C)];if(Ea.Nb&&Ea.Kb||C.every(I=>ja(I)))return null;C=Math.max(...C.map(xa));return!Ea.Nb&&0<C?"this browser lacks WebAssembly SIMD, so this file's scripts are off; bake with wasmSimd: off to support it":Ea.Kb||2!==C?null:"this browser lacks WebAssembly relaxed SIMD, so this file's scripts are off; bake with wasmSimd: on to support it"}
|
|
1082
|
+
function d(C){const {M:I,memory:Q}=Bc(C.M);C.Oa=Q;return I}function p(C,I){null!==I&&null!==C.instance&&(C.ha=ib.Yj(C,I,C.Fb()))}function q(C,I){const Q=c(a(C.I),()=>{if(null===C.memory)throw Error("script passed memory to the host while its module was still starting");return C.memory});if(null!==C.Oa){let V;const ba=Q[V=bc[0]]??(Q[V]={});ba[bc[1]]=C.Oa;const ia=ba.size,ma=Xa(C);ba.size=()=>ma&&1<ia()?ib.Vc(Ja.parallelParts):1;const ha=Q.rive_rt_v1,na=ha.budget_exceeded;ha.budget_exceeded=Ba=>{C.rb=
|
|
1079
1083
|
!0;return na(Ba)};const Fa={ca:(Ba,Kb)=>ha.error(Ba,Kb),jc:Ba=>C.rb?void 0:na(Ba)};ba.run=Ba=>{C.rb=!1;return ib.Xj(C,C.ha,Ba>>>0,Fa)};ba.waiting=ib.waiting;C.Fb=ba.size}for(const V of WebAssembly.Module.imports(I))if("function"===V.kind){let ba,ia,ma,ha;(ma=(ba=Q)[ia=V.module]??(ba[ia]={}))[ha=V.name]??(ma[ha]=m(V.module,V.name))}return Q}function u(C,I){const Q=R.ta();for(const {name:V}of WebAssembly.Module.exports(I)){if(!V.startsWith("__rive"))continue;I=3*V.length+1;const ba=R.Qa(I);R.Wb(V,ba,
|
|
1080
1084
|
I);R.exports._rive_web_vm_module_export(C.I.g,ba)}R.sa(Q);C=R.exports._rive_web_vm_start_refusal(C.I.g);if(0!==C)throw Error(R.wa(C));}function k(C,I){C.memory=I.exports.memory;C.M=null;C.lc=Object.keys(I.exports).filter(na=>na.startsWith("__riveCall")).map(na=>I.exports[na]).filter(na=>{if(!(na instanceof WebAssembly.Global))return!1;try{return na.value=na.value,!0}catch{return!1}});C.kc=[];const Q=R.exports._rive_web_vm_start_fuel(C.I.g),V=I.exports.__riveFuelArm,ba=I.exports.__riveFuelEnd,ia=0<
|
|
1081
|
-
Q&&void 0!==V&&void 0!==ba,ma=R.exports._rive_web_vm_booting;ma(C.I.g);const ha=R.ta();C.instance=I;try{ia&&V(Q),I.exports.__riveLiftedStart?.(),ia&&ba()}catch(na){throw C.instance=null,R.sa(ha),C.I.j=null,na;}finally{ma(0)}}async function b(C){try{const V=
|
|
1082
|
-
function g(C,I){if(C.length!==I.length)return!1;for(let Q=0;Q<C.length;Q++)if(C[Q]!==I[Q])return!1;return!0}function h(C,I,Q){C={M:C,module:I,error:Q,pa:new Set,bb:null};Sa.push(C);8<Sa.length&&Sa.shift();return C}function l(C,I){if(!
|
|
1083
|
-
"";break a}C=""}if(null!==C)throw Error("lane module imports "+ba.module+"."+ba.name+", which it cannot reach");}}function H(C,I=!1){const Q=[];for(const [V,ba]of
|
|
1085
|
+
Q&&void 0!==V&&void 0!==ba,ma=R.exports._rive_web_vm_booting;ma(C.I.g);const ha=R.ta();C.instance=I;try{ia&&V(Q),I.exports.__riveLiftedStart?.(),ia&&ba()}catch(na){throw C.instance=null,R.sa(ha),C.I.j=null,na;}finally{ma(0)}}async function b(C){try{const V=qb(d(C)),ba=await WebAssembly.compile(V),ia=Xa(C)&&null!==cb?zd(V):null;if(0!==C.I.g){u(C,ba);var I=H(ba),Q=await WebAssembly.instantiate(ba,q(C,ba));await I;0!==C.I.g&&(k(C,Q),p(C,ia),null!==C.ha&&await ib.ready(C.ha))}}catch(V){C.error=O(V)}}
|
|
1086
|
+
function g(C,I){if(C.length!==I.length)return!1;for(let Q=0;Q<C.length;Q++)if(C[Q]!==I[Q])return!1;return!0}function h(C,I,Q){C={M:C,module:I,error:Q,pa:new Set,bb:null};Sa.push(C);8<Sa.length&&Sa.shift();return C}function l(C,I){if(!Dd(C)){h(C,I,null);for(const Q of Jb())Q.postMessage({riveLane:{bytes:C,module:I}})}}function x(C,I){for(const ba of WebAssembly.Module.imports(C)){a:{C=I;var Q=ba.module,V=ba.name;for(const [ia,ma,ha,na]of qf)if(Q===ia&&(null===ma||V===ma)){C=ha.includes(C)?null:na??
|
|
1087
|
+
"";break a}C=""}if(null!==C)throw Error("lane module imports "+ba.module+"."+ba.name+", which it cannot reach");}}function H(C,I=!1){const Q=[];for(const [V,ba]of Bd)for(const ia of WebAssembly.Module.customSections(C,V)){const ma=qb(new Uint8Array(ia));if(Dd(ma))continue;const ha=na=>{x(na,ba);l(ma,na)};if(I)try{ha(new WebAssembly.Module(ma))}catch(na){}else Q.push(WebAssembly.compile(ma).then(ha).catch(()=>{}))}return Promise.all(Q)}function P(C,I,Q){let V=Sa.find(ba=>ba.pa.has(C));if(void 0===
|
|
1084
1088
|
V){const ba=I();V=Sa.find(ia=>g(ia.M,ba));if(void 0===V){V=h(ba,null,null);try{const ia=new WebAssembly.Module(ba);x(ia,Q);V.module=ia}catch(ia){V.error=O(ia)}}V.pa.add(C);8<V.pa.size&&V.pa.delete(V.pa.values().next().value)}return V}function A(C=!1,I=0){return(Q,V)=>C?F(()=>R.Z().buffer,R.exports._rive_shared_table(),I,Q,null,V):c(a({g:1,j:null,h:!1,Ha:da},"rive_shared_v1"),Q,"rive_shared_v1").rive_shared_v1}function y(C){C=R.Pc(C);if(null!==C)throw C;}function t(C){const I=C.bb;C.bb=null;if(null!==
|
|
1085
|
-
I)return I.Ta.clear(),I;const Q={ra:0,sb:null,Lb:0,Ta:new Map,reset:!1};return Object.assign(Q,W({module:C.module,hb:"rive_job_v1",Db:()=>({cancelled:()=>Q.sb(),reuse_pages:()=>Q.Lb}),kb:A(),log:V=>R.eb(Q.ra,V),Ta:Q.Ta,now:aa,$a:()=>y(Q.ra)}))}function z(){var C=Ja.audioWorkletUrl;if("string"===typeof C)return C;C=r.riveAudioWorkletSource;if(
|
|
1089
|
+
I)return I.Ta.clear(),I;const Q={ra:0,sb:null,Lb:0,Ta:new Map,reset:!1};return Object.assign(Q,W({module:C.module,hb:"rive_job_v1",Db:()=>({cancelled:()=>Q.sb(),reuse_pages:()=>Q.Lb}),kb:A(),log:V=>R.eb(Q.ra,V),Ta:Q.Ta,now:aa,$a:()=>y(Q.ra)}))}function z(){var C=Ja.audioWorkletUrl;if("string"===typeof C)return C;C=r.riveAudioWorkletSource;if(Dc()||"string"!==typeof C)return null;Ed??=URL.createObjectURL(new Blob([C],{type:"text/javascript"}));return Ed}function v(){let C=[],I=null;return{aa(Q){null!==
|
|
1086
1090
|
I?I(Q):C.push(Q)},open(Q){I=Q;for(const V of C)I(V);C=[]},oa(Q){for(const V of C)K({id:V.id,kind:"failed",text:Q});C=[]}}}function E(C){return{numberOfInputs:0,numberOfOutputs:1,outputChannelCount:[2],processorOptions:{memory:R.memory(),table:R.exports._rive_shared_table(),counter:C.buffer}}}function L(C){for(const I of[...Ga.$.keys()])K({id:I,kind:"failed",text:C})}function T(C,I,Q,V,ba,ia=ba){let ma=!1,ha=-1,na=0;const Fa=setInterval(()=>{if("closed"===C.state)clearInterval(Fa),ia("script audio context closed");
|
|
1087
|
-
else{var Ba=Atomics.load(I,0),Kb=(0<Ga.$.size||0<na)&&"running"===C.state;na=Ba===ha&&Kb?na+1:0;ha=Ba;Ba=ma?0!==Atomics.load(I,1)?30:V:Q;na>=Ba&&(clearInterval(Fa),ba(ma?"processor stalled the audio thread":"script audio worklet never answered"))}},50);return{ready(){ma=!0;na=0},stop:()=>clearInterval(Fa)}}function la(C,I,Q=!0){C.Ib.oa(I);Ga.output===C&&(Ga.output=null);Q&&void 0===Ja.audioContext&&C.context.close?.()}function ta(C){let I=
|
|
1088
|
-
lb:!1},
|
|
1091
|
+
else{var Ba=Atomics.load(I,0),Kb=(0<Ga.$.size||0<na)&&"running"===C.state;na=Ba===ha&&Kb?na+1:0;ha=Ba;Ba=ma?0!==Atomics.load(I,1)?30:V:Q;na>=Ba&&(clearInterval(Fa),ba(ma?"processor stalled the audio thread":"script audio worklet never answered"))}},50);return{ready(){ma=!0;na=0},stop:()=>clearInterval(Fa)}}function la(C,I,Q=!0){C.Ib.oa(I);Ga.output===C&&(Ga.output=null);Q&&void 0===Ja.audioContext&&C.context.close?.()}function ta(C){let I=Ec.get(C);void 0===I&&(I={R:new Int32Array(new SharedArrayBuffer(16)),
|
|
1092
|
+
lb:!1},Ec.set(C,I),C.addEventListener("statechange",()=>{"closed"!==C.state||I.lb||Fd(I.R)}));return I}function Ha(){const C=globalThis.navigator?.audioSession;"auto"===C?.type&&(C.type="playback");const I=new AudioContext,Q=["pointerdown","pointerup","keydown","touchend"],V=()=>I.resume(),ba=setTimeout(()=>console.warn("script audio waits for a click, tap or key press on the page"),1E3),ia=()=>{if("running"===I.state||"closed"===I.state){clearTimeout(ba);I.removeEventListener("statechange",ia);for(const ma of Q)globalThis.removeEventListener(ma,
|
|
1089
1093
|
V,{capture:!0})}};for(const ma of Q)globalThis.addEventListener(ma,V,{capture:!0});I.addEventListener("statechange",ia);ia();return I}function Hb(){const C=Ja.audioContext??Ha(),I=v(),Q={context:C,aa:I.aa,ja:new Set,Ib:I},V=ta(C);let ba=null;const ia=ha=>{Ga.output===Q&&(ma.stop(),L(ha),la(Q,ha,!1))},ma=T(C,V.R,Infinity,20,ha=>{V.lb=!0;ba.port.onmessage=null;ba.port.postMessage({kind:"end"});ba.disconnect();L(ha);la(Q,ha,!1)},ia);C.addEventListener("statechange",()=>{"closed"===C.state&&ia("script audio context closed")});
|
|
1090
|
-
C.audioWorklet.addModule(z()).then(()=>{ba=new AudioWorkletNode(C,"rive-processors",E(V.R));ba.port.onmessage=ha=>K(ha.data);ba.connect(C.destination);ma.ready();I.open(ha=>ba.port.postMessage(ha))}).catch(ha=>{ma.stop();la(Q,
|
|
1091
|
-
ma=!1,ha=!1;const na=Na=>{if(!ha){ha=!0;Fa.stop();ia?.terminate();if(ma){for(const
|
|
1092
|
-
source:Na,audio:I}),ia.addEventListener("raw-message",cc=>"ready"===cc.kind?Kb():K(cc)))}))}}).catch(Na=>na(
|
|
1093
|
-
I&&("resend"===C.kind?null!==Ga.output&&
|
|
1094
|
-
|
|
1095
|
-
O(C),
|
|
1096
|
-
null===I.error){let Q;(Q=I).ba??(Q.ba=b(I));C.push(I.ba)}return Promise.all(C)},start(C){C=Z.get(C);if(!C)return"script module was never registered";if(null===C.instance&&null===C.error){if(null!==C.ba)return"script module is still being prepared";try{const I=
|
|
1097
|
-
Ic(C,I){return"function"===typeof Z.get(C)?.instance?.exports[R.wa(I)]?1:0},call(C,I,Q,V,ba,ia,ma){C=Z.get(C);if(!C||null===C.instance)return 1;let ha=C.names.get(I);void 0===ha&&(ha=C.instance.exports[R.wa(I)]??null,C.names.set(I,ha));if("function"!==typeof ha)return 1;I=C.lc;const na=C.kc,Fa=na.length;for(let Ba=0;Ba<I.length;Ba++)na.push(I[Ba].value);try{const Ba=
|
|
1094
|
+
C.audioWorklet.addModule(z()).then(()=>{ba=new AudioWorkletNode(C,"rive-processors",E(V.R));ba.port.onmessage=ha=>K(ha.data);ba.connect(C.destination);ma.ready();I.open(ha=>ba.port.postMessage(ha))}).catch(ha=>{ma.stop();la(Q,Fc(ha))});return Q}function ac(){const C=Ja.audioWorkletUrl;let I=Ja.audioContext;void 0===I&&(globalThis.nrdp.audio.output.open(),I=new AudioContext);I.forceStart?.();const Q=v(),V={context:I,aa:Q.aa,ja:new Set,Ib:Q},ba=new Int32Array(new SharedArrayBuffer(16));let ia=null,
|
|
1095
|
+
ma=!1,ha=!1;const na=Na=>{if(!ha){ha=!0;Fa.stop();ia?.terminate();if(ma){for(const wb=db()+200;db()<wb;);Fd(ba);L(Na)}la(V,Na)}},Fa=T(I,ba,40,2,na),Ba=Na=>(...wb)=>{try{Na(...wb)}catch(cc){na(Fc(cc))}},Kb=Ba(()=>{(new AudioWorkletNode(I,"rive-processors",E(ba))).connect(I.destination);ma=!0;Fa.ready();Q.open(Na=>ia.send(Na))});fetch(C).then(Na=>{if(!Na.ok)throw Error(C+" answered HTTP "+Na.status);return Na.text()}).then(Na=>{if(!ha){var wb=I.audioWorklet;wb.active=!0;wb.init(Ba(()=>{ha||(ia=globalThis.nrdp.thread.start({url:C,
|
|
1096
|
+
source:Na,audio:I}),ia.addEventListener("raw-message",cc=>"ready"===cc.kind?Kb():K(cc)))}))}}).catch(Na=>na(Fc(Na)));return V}function hb(){let C;(C=Ga).output??(C.output=Dc()?ac():Hb());return Ga.output}function Ib(C){const I=new Set([...Ga.$.values()].map(Q=>Q.Bb));for(const Q of C.ja){if(8>=C.ja.size)break;I.has(Q)||(C.ja.delete(Q),C.aa({kind:"forget",moduleId:Q}))}}function pb(C,I,Q){const V=I.pc;C.ja.add(I.Bb);C.aa({...I.start,bytes:Q?V.M:null})}function K(C){const I=Ga.$.get(C.id);void 0!==
|
|
1097
|
+
I&&("resend"===C.kind?null!==Ga.output&&pb(Ga.output,I,!0):R.Yc(I.Sc,tf[C.kind],C.text??""))}let R=null,aa=db;const Z=new Map,da={i:!1,l:0,Fa:0,Da:0,Ea:0,Ga:0},ja=r.riveScriptingValidate??(C=>WebAssembly.validate(C)),La=!0===r.riveScriptingLaneTwin;let Ea=null;const Xa=C=>"function"===typeof SharedArrayBuffer&&C.Oa?.buffer instanceof SharedArrayBuffer,Sa=[];let Jb=()=>[],cb=null;const ib=fa({nc:()=>null!==cb,start(){const C=R.exports._rive_web_parallel_team_thread();return 0===C?null:cb(C)??null}}),
|
|
1098
|
+
Dd=C=>Sa.some(I=>g(I.M,C)),Gd=C=>{ib.message(C)||(C=C?.riveLane,void 0!==C&&l(C.bytes,C.module))},Hd=globalThis.process?.lk?.("worker_threads");!1===Hd?.mk?Hd.rk.i("message",Gd):void 0!==globalThis.WorkerGlobalScope&&globalThis.addEventListener("message",C=>Gd(C.data));const dc=new Map;let uf=1;const Gc=new Map;let vf=1;const Ga={output:null,$:new Map,next:1},Dc=()=>void 0!==globalThis.nrdp?.audio?.output;let Ed=null;const Fd=C=>J(()=>R.memory().buffer,R.exports._rive_shared_table(),C),Fc=C=>"script audio has no worklet: "+
|
|
1099
|
+
O(C),Ec=new WeakMap,tf={running:Cd.running,failed:Cd.failed,log:4294967295},Ja={ec(C){if(null===R){R=C;var I=performance.timeOrigin-R.Tc||0;aa=()=>performance.now()+I}},fc(C,I){Jb=C;cb=I},register(C,I){I=I.slice();Z.set(C,{I:{g:C,j:null,h:!1,Ha:da},M:I,instance:null,memory:null,Oa:null,Fb:null,ha:null,ba:null,error:f(I),names:new Map})},release(C){const I=Z.get(C);I&&(I.I.g=0,Z.delete(C),null!==I.ha&&ib.release(I.ha))},qk(){return ib.state()},Xc(){const C=[];for(const I of Z.values())if(null===I.instance&&
|
|
1100
|
+
null===I.error){let Q;(Q=I).ba??(Q.ba=b(I));C.push(I.ba)}return Promise.all(C)},start(C){C=Z.get(C);if(!C)return"script module was never registered";if(null===C.instance&&null===C.error){if(null!==C.ba)return"script module is still being prepared";try{const I=qb(d(C)),Q=new WebAssembly.Module(I);u(C,Q);H(Q,!0);k(C,new WebAssembly.Instance(Q,q(C,Q)));p(C,Xa(C)&&null!==cb?zd(I):null)}catch(I){C.error=O(I)}}return C.error},ba(C){C=Z.get(C);return null===C?.instance&&null===C.error&&null!==C.ba?1:0},
|
|
1101
|
+
Ic(C,I){return"function"===typeof Z.get(C)?.instance?.exports[R.wa(I)]?1:0},call(C,I,Q,V,ba,ia,ma){C=Z.get(C);if(!C||null===C.instance)return 1;let ha=C.names.get(I);void 0===ha&&(ha=C.instance.exports[R.wa(I)]??null,C.names.set(I,ha));if("function"!==typeof ha)return 1;I=C.lc;const na=C.kc,Fa=na.length;for(let Ba=0;Ba<I.length;Ba++)na.push(I[Ba].value);try{const Ba=pf(ha,R.xb(),V>>3,Q);R.xb()[ba>>3]="number"===typeof Ba?Ba:0;return 0}catch(Ba){return C.I.j=null,R.Wb(O(Ba),ia,ma),C.I.h?3:2}finally{for(Q=
|
|
1098
1102
|
0;Q<I.length;Q++)I[Q].value=na[Fa+Q];na.length=Fa}},Zc(C,I){if(C=Z.get(C))C.I.j=R.wa(I)},read(C,I,Q,V){C=Z.get(C)?.memory;if(!C||I+V>C.buffer.byteLength)return 0;R.Z().set(new Uint8Array(C.buffer,I,V),Q);da.i&&(da.Ea+=V);return 1},write(C,I,Q,V){C=Z.get(C)?.memory;if(!C||I+V>C.buffer.byteLength)return 0;(new Uint8Array(C.buffer,I,V)).set(R.Z().subarray(Q,Q+V));da.i&&(da.Ga+=V);return 1},fk(C,I){C=Z.get(C)?.memory;if(!C||I>=C.buffer.byteLength)return-1;C=(new Uint8Array(C.buffer)).indexOf(0,I);return 0>
|
|
1099
1103
|
C?-1:C-I},Uc(C){return(C=Z.get(C)?.memory)?C.buffer.byteLength/65536:0},zc(){const C=[];for(const I of Z.keys()){const Q=R.exports._rive_web_vm_frame_boundary(I);0!==Q&&C.push(R.wa(Q))}return C},rc(C){da.i=!!C;da.l=0;da.Fa=0;da.Da=0;da.Ea=0;da.Ga=0},Kc(){return{hostCalls:da.l,bytesStaged:da.Fa,bytesCopiedOut:da.Da,bytesRead:da.Ea,bytesWritten:da.Ga}},runJob:function(C,I,Q,V,ba,ia,ma){I=P(I,Q,"job");if(null!==I.error)return{ok:!1,error:I.error};Q=t(I);if(void 0!==Q.error)return{ok:!1,error:Q.error};
|
|
1100
|
-
Q.ra=C;Q.sb=ia;Q.Lb=ma;C=X(Q,{prefix:
|
|
1101
|
-
hb:"rive_worker_v1",Db:ma=>({finished:(ha,na,Fa)=>ia.finished(ha,new Uint8Array(ma().buffer,na>>>0,Fa>>>0)),wait:ia.wait,stopping:ia.ek}),Rc:ma=>R.Oc(C,ma),kb:A(),log:ma=>R.eb(C,ma),now:aa,$a:()=>y(C),prefix:
|
|
1102
|
-
null}catch(I){return O(I)}},workerEnd:function(C){dc.delete(C)},processorStart:function(C,I,Q,V,ba,ia,ma){I=P(I,Q,"processor");if(null!==I.error)return{ok:!1,error:I.error};V=ra(I.module,V,ba,ia,A(La,ma),ha=>R.eb(C,ha));if(void 0!==V.error)return{ok:!1,error:V.error};ba=
|
|
1103
|
-
if("undefined"===typeof SharedArrayBuffer||!(R.memory().buffer instanceof SharedArrayBuffer))return"real time audio needs librive built with threads";if(null===z())return"real time audio needs riveScripting.audioWorkletUrl";if("undefined"===typeof AudioContext)return"real time audio needs Web Audio";const C=Ja.audioContext;return"closed"===C?.state?"real time audio cannot start on a closed AudioContext":
|
|
1104
|
-
null},audioSampleRate:()=>hb().context.sampleRate,audioStart:function(C,I,Q,V,ba,ia,ma,ha){const na=P(I,Q,"processor");if(null!==na.error)return{ok:!1,error:na.error};Q=hb();const Fa=Ga.next++;C={Sc:C,Bb:I,pc:na,start:{kind:"start",id:Fa,moduleId:I,entry:V,input:ba,format:{sampleRate:ia.sampleRate,maxFrames:ia.zb,channels:ia.channels},hardBlocks:ma,sharedOwner:ha}};Ga.$.set(Fa,C);
|
|
1104
|
+
Q.ra=C;Q.sb=ia;Q.Lb=ma;C=X(Q,{prefix:Ac.job,Ya:V,input:ba},Q.reset);if(void 0!==C.error)return{ok:!1,error:C.error};try{const ha=Q.memory.buffer,na=new Uint32Array(ha,C.result>>>0,2),Fa=0===na[1]?new Uint8Array(0):new Uint8Array(ha,na[0],na[1]);void 0!==Q.exports.__riveLaneReset&&ha.byteLength<=65536*ma&&!ia()&&(Q.reset=!0,I.bb=Q);return{ok:!0,output:Fa}}catch(ha){return{ok:!1,error:Q.Za(ha)}}},workerStart:function(C,I,Q,V,ba,ia){I=P(I,Q,"worker");if(null!==I.error)return{ok:!1,error:I.error};V=pa({module:I.module,
|
|
1105
|
+
hb:"rive_worker_v1",Db:ma=>({finished:(ha,na,Fa)=>ia.finished(ha,new Uint8Array(ma().buffer,na>>>0,Fa>>>0)),wait:ia.wait,stopping:ia.ek}),Rc:ma=>R.Oc(C,ma),kb:A(),log:ma=>R.eb(C,ma),now:aa,$a:()=>y(C),prefix:Ac.worker,Ya:V,input:ba,ga:!0});if(void 0!==V.error)return{ok:!1,error:V.error};ba=uf++;dc.set(ba,{wake:V.exports.__rive_worker_wake,oc:V.exports.__riveFrameMinor});return{ok:!0,id:ba}},workerWake:function(C,I,Q){try{return dc.get(C).wake(I,Q),null}catch(V){return O(V)}},workerCollect:function(C){try{return dc.get(C)?.oc?.(),
|
|
1106
|
+
null}catch(I){return O(I)}},workerEnd:function(C){dc.delete(C)},processorStart:function(C,I,Q,V,ba,ia,ma){I=P(I,Q,"processor");if(null!==I.error)return{ok:!1,error:I.error};V=ra(I.module,V,ba,ia,A(La,ma),ha=>R.eb(C,ha));if(void 0!==V.error)return{ok:!1,error:V.error};ba=vf++;Gc.set(ba,V.ra);return{ok:!0,id:ba}},processorRender:function(C,I,Q,V){return Gc.get(C).ad(I,Q,V)},processorEnd:function(C){Gc.delete(C)},audioRefusal:function(){if(!Dc()&&!0!==globalThis.crossOriginIsolated)return"real time audio needs cross origin isolation";
|
|
1107
|
+
if("undefined"===typeof SharedArrayBuffer||!(R.memory().buffer instanceof SharedArrayBuffer))return"real time audio needs librive built with threads";if(null===z())return"real time audio needs riveScripting.audioWorkletUrl";if("undefined"===typeof AudioContext)return"real time audio needs Web Audio";const C=Ja.audioContext;return"closed"===C?.state?"real time audio cannot start on a closed AudioContext":Ec.get(C)?.lb?"real time audio stalled the host's AudioContext; hand riveScripting a new one":
|
|
1108
|
+
null},audioSampleRate:()=>hb().context.sampleRate,audioStart:function(C,I,Q,V,ba,ia,ma,ha){const na=P(I,Q,"processor");if(null!==na.error)return{ok:!1,error:na.error};Q=hb();const Fa=Ga.next++;C={Sc:C,Bb:I,pc:na,start:{kind:"start",id:Fa,moduleId:I,entry:V,input:ba,format:{sampleRate:ia.sampleRate,maxFrames:ia.zb,channels:ia.channels},hardBlocks:ma,sharedOwner:ha}};Ga.$.set(Fa,C);pb(Q,C,!Q.ja.has(I));Ib(Q);return{ok:!0,id:Fa}},audioStop:function(C){Ga.$.delete(C);null!==Ga.output&&(Ga.output.aa({kind:"stop",
|
|
1105
1109
|
id:C}),Ib(Ga.output))},audioState:()=>({context:Ga.output?.context.state??"none",processors:Ga.$.size})};Ja.prepare=Ja.Xc;Ja.frameBoundary=Ja.zc;Ja.countHostCalls=Ja.rc;Ja.hostCallCounts=Ja.Kc;return r.riveScripting=Ja})(G)})();G.riveAudioWorkletSource="(function () {\n// Generated by src/wasm/idl/generate.py from bindings.py and\n// lane_layout.py. Do not edit.\n//\n// What each kind of lane module may import, which the page runner\n// checks it against, and the numbers lanes and the page agree on.\n\n// The console imports every lane gets.\nconst kLaneConsole = [\n 'console.log',\n 'console.debug',\n 'console.info',\n 'console.warn',\n 'console.error',\n];\n\n// [module, name or null for all of it, kinds, refusal or null], the\n// first match deciding.\nconst kLaneImportRules = [\n ['rive_rt_v1', 'now', ['job', 'worker'], null],\n ['rive_lanes_v1', 'wait_within', [], 'blocks on a signal, which only the main lane may; a worker awaits Signal.next or Port.receive instead'],\n ['rive_shared_v1', 'region_lock', ['job', 'worker'], 'locks a shared region, which the audio thread may not wait on; share through atomics, rings and snapshots instead'],\n ['rive_shared_v1', 'read_done', [], null],\n ['rive_shared_v1', null, ['job', 'worker', 'processor'], null],\n ['rive_lane_v1', null, ['job', 'worker', 'processor'], null],\n ['rive_job_v1', null, ['job'], null],\n ['rive_worker_v1', null, ['worker'], null],\n ['env', 'console.log', ['job', 'worker', 'processor'], null],\n ['env', 'console.debug', ['job', 'worker', 'processor'], null],\n ['env', 'console.info', ['job', 'worker', 'processor'], null],\n ['env', 'console.warn', ['job', 'worker', 'processor'], null],\n ['env', 'console.error', ['job', 'worker', 'processor'], null],\n ['env', 'console.time', ['job', 'worker'], null],\n ['env', 'console.timeLog', ['job', 'worker'], null],\n ['env', 'console.timeEnd', ['job', 'worker'], null],\n];\n\n// Why a lane module of kind ('job', 'worker' or 'processor') may not\n// import module.name: null when it may, else the end of \"<kind> code ...\",\n// empty when no rule says why.\nfunction laneImportRefusal(kind, module, name) {\n for (const [ruleModule, ruleName, kinds, refusal] of kLaneImportRules) {\n if (module === ruleModule && (ruleName === null || name === ruleName)) {\n return kinds.includes(kind) ? null : refusal ?? '';\n }\n }\n return '';\n}\n\n// [section, kind] for each lane kind, in rive_lanes_v1's order.\nconst kLaneSections = [\n ['rive.jobs', 'job'],\n ['rive.workers', 'worker'],\n ['rive.audio', 'processor'],\n];\n\n// The prefix each kind's entries export under, before their number.\nconst kLaneEntryPrefixes = {\n 'job': '__rive_job_',\n 'worker': '__rive_worker_',\n 'processor': '__rive_processor_',\n};\n\n// The rive_lanes_v1 states every lane moves through.\nconst kLaneStates = {\n 'starting': 0,\n 'running': 1,\n 'done': 2,\n 'failed': 3,\n 'stopped': 4,\n};\n\n// What a processor event carries for a console line, in place of a state.\nconst kProcessorEventLog = 0xffffffff;\n\n// How long a processor's init may run in milliseconds, natively per step and in\n// a worklet as a whole, far longer than a block as it may build tables.\nconst kProcessorInitMs = 1000;\n\n// Where a parallel call's control block keeps each word, in bytes from its\n// start. The words its parts race on sit 128 bytes apart, each alone on a cache\n// line, Apple's included. The claim takes 8 bytes, so no grain can wrap it.\nconst kParallelThunk = 0;\nconst kParallelArgs = 4;\nconst kParallelParts = 8;\nconst kParallelCount = 12;\nconst kParallelAtOnce = 16;\nconst kParallelCallerParks = 20;\nconst kParallelGeneration = 128;\nconst kParallelArrived = 256;\nconst kParallelSleepers = 384;\nconst kParallelClaim = 512;\nconst kParallelStop = 640;\n\n// The exports a lane module may carry besides its entries.\nconst kLaneAllocExport = '__rive_lane_alloc';\nconst kLaneFreeExport = '__rive_lane_free';\nconst kWorkerWakeExport = '__rive_worker_wake';\nconst kProcessorProcessExport = '__rive_processor_process';\nconst kFrameMinorExport = '__riveFrameMinor';\nconst kLiftedStartExport = '__riveLiftedStart';\nconst kLaneResetExport = '__riveLaneReset';\n\n// What lanes report the same way on every host.\nconst kProcessorHolds =\n 'a processor cannot pass shared objects through rings or snapshots, as the audio thread may ' +\n 'not hold or give them back; pass them in Audio.start\\'s argument';\nconst kProcessorOverran = 'processor overran its block budget';\nconst kProcessorInitOverran = 'processor init overran its budget';\nconst kProcessorNode = 'rive-processors';\n\n// A processor block's budget in milliseconds, first for its first block; 0 for none.\nfunction processorBlockBudgetMs(hardBlocks, frames, sampleRate, first) {\n return hardBlocks === 0 ? 0.0 : Math.max(first ? 100.0 : 1.0, Math.ceil(hardBlocks * 1000.0 * frames / sampleRate));\n}\n\n// Why a lane module that imports module.name cannot load.\nfunction laneImportError(module, name) {\n return 'lane module imports ' + module + '.' + name + ', which it cannot reach';\n}\n// Generated by src/wasm/idl/generate.py from shared_layout.py. Do not edit.\n//\n// The shared memory words librive and rive_shared_lane.mjs both read,\n// as byte offsets into librive's heap.\n\n// What a block holds, its first word.\nconst kKindRegion = 0;\nconst kKindRing = 1;\nconst kKindSnapshot = 2;\nconst kKindSignal = 3;\nconst kKindBlob = 4;\n\n// Every block starts with these words.\nconst kHeaderKind = 0;\nconst kHeaderLock = 4;\nconst kHeaderCapacity = 8;\n\n// A region after its header.\nconst kRegionPoisoned = 16;\nconst kRegionData = 32;\n\n// A ring after its header; signals are registry ids.\nconst kRingHead = 16;\nconst kRingUsed = 20;\nconst kRingDataSignal = 24;\nconst kRingSpaceSignal = 28;\nconst kRingData = 32;\n\n// A snapshot after its header: copies of capacity bytes each, a version per\n// copy that is odd while a publish writes it.\nconst kSnapshotLatest = 16;\nconst kSnapshotSeq = 24;\nconst kSnapshotSeqHigh = 28;\nconst kSnapshotVersions = 32;\nconst kSnapshotSizes = 40;\nconst kSnapshotData = 48;\nconst kSnapshotCopies = 2;\n\n// A ring record's length word or a snapshot copy's size. With the holds bit\n// set, the bytes end in the shared ids the value holds and then their count.\nconst kRecordHolds = 0x80000000;\n\n// A signal after its header; watchers point at wake words.\nconst kSignalWatcherCount = 16;\nconst kSignalSeq = 24;\nconst kSignalSeqHigh = 28;\nconst kSignalWatchers = 32;\n\n// A blob after its header: bytes fixed once made.\nconst kBlobData = 16;\n\n// The futex word a watcher parks on.\nconst kWakeWordWord = 0;\n\n// The registry, at SharedRegistry::table().\nconst kTableLanes = 16;\nconst kTableTokens = 144;\nconst kTableChunks = 148;\n\n// A registry slot. Its state packs the generation in the low bits, a live bit,\n// then the pins librive holds.\nconst kSlotState = 0;\nconst kSlotBlock = 4;\nconst kSlotOwner = 16;\nconst kSlotOwnerHigh = 20;\nconst kSlotSize = 24;\nconst kSlotLive = 4096;\nconst kSlotPin = 8192;\n\n// Slots come in chunks that never move once made.\nconst kChunkShift = 10;\nconst kChunkSlots = 1024;\n\n// An id: the top bit, its slot, the generation's low bits.\nconst kIdBit = 0x80000000;\nconst kIdSlotShift = 12;\nconst kIdGenerationMask = 4095;\n\n// Lanes without librive.\nconst kLaneCount = 32;\nconst kLaneIdle = 1;\nconst kLaneFirstToken = 2;\n\n// What ring_write answers.\nconst kRingWriteFull = 0;\nconst kRingWriteWritten = 1;\nconst kRingWriteNeverFits = 2;\n\n// What region_lock answers.\nconst kRegionLockGone = 0;\n\n// Words of the counter an NRDP page shares with its worklet thread, so it can\n// free what the thread held when it ends it.\nconst kHoldBlocks = 0;\nconst kHoldStarting = 1;\nconst kHoldToken = 2;\nconst kHoldLock = 3;\nconst kHoldWords = 4;\n// The rive_shared_v1 natives for a lane without librive, such as an audio\n// worklet, through Atomics on librive's heap; like librive's, none ever waits.\n\n\n// Traps as WAMR does when byteLength bytes at ptr leave a module's memory.\nfunction checkBounds(buffer, ptr, byteLength) {\n if (ptr + byteLength > buffer.byteLength) {\n throw new Error('out of bounds memory access');\n }\n}\n\n// The byte length of the std string at ptr, which the word before it holds.\n// Null reads as empty. Addresses and lengths arrive from wasm as signed i32s.\nfunction managedLength(buffer, ptr) {\n ptr >>>= 0;\n if (ptr < 4) {\n return 0;\n }\n checkBounds(buffer, ptr, 0);\n const length = new DataView(buffer).getUint32(ptr - 4, true);\n checkBounds(buffer, ptr, length);\n return length;\n}\n\n// UTF-16 text in a module's memory. Audio worklet scopes may have no\n// TextDecoder.\nfunction utf16Text(buffer, ptr, byteLength) {\n ptr >>>= 0;\n byteLength >>>= 0;\n checkBounds(buffer, ptr, byteLength);\n if (typeof TextDecoder !== 'undefined') {\n return new TextDecoder('utf-16le', { ignoreBOM: true }).decode(\n new Uint8Array(buffer, ptr, byteLength)\n );\n }\n // A Uint16Array cannot start at an odd address, so text there is copied.\n const units =\n ptr % 2 === 0\n ? new Uint16Array(buffer, ptr, byteLength >> 1)\n : new Uint16Array(buffer.slice(ptr, ptr + byteLength - (byteLength % 2)));\n let text = '';\n for (let i = 0; i < units.length; i += 4096) {\n text += String.fromCharCode.apply(null, units.subarray(i, i + 4096));\n }\n return text;\n}\n\n// Each thread's lane word and lock token, per table. Past the table's lane\n// words a lane pins through the slot's count, which no page can free.\nconst laneClaims = new Map();\nconst kOverflowToken = kLaneFirstToken + kLaneCount;\n\nfunction claimLane(i32, table) {\n let claim = laneClaims.get(table);\n if (claim === undefined) {\n for (let i = 0; i < kLaneCount && claim === undefined; i++) {\n const word = (table + kTableLanes + i * 4) >>> 2;\n if (Atomics.compareExchange(i32, word, 0, kLaneIdle) === 0) {\n claim = { word, token: kLaneFirstToken + i };\n }\n }\n // Still a token of its own, so its locks tell from librive's and\n // other lanes'.\n claim ??= {\n word: -1,\n token: kOverflowToken + Atomics.add(i32, (table + kTableTokens) >>> 2, 1),\n };\n laneClaims.set(table, claim);\n }\n return claim;\n}\n\n// The id names the slot's live object.\nconst slotNames = (state, id) =>\n (state & kSlotLive) !== 0 && ((state ^ id) & kIdGenerationMask) === 0;\n\n// heap() answers librive's heap buffer, table is SharedRegistry::table() and\n// owner the VM whose objects the lane reaches; the lane records its token and\n// lock in holds, for a page to free them.\nfunction createSharedLaneImports(heap, table, owner, moduleMemory, holds = null, fail = () => {}) {\n table >>>= 0;\n const ownerLow = owner % 0x100000000;\n const ownerHigh = Math.floor(owner / 0x100000000);\n // Views over the heap and the lane's memory, rebuilt only when growth\n // replaces a buffer, so no call allocates on the audio thread.\n let buffer = null;\n let u8 = null;\n let i32 = null;\n let u32 = null;\n let moduleBuffer = null;\n let moduleU8 = null;\n const views = () => {\n const current = heap();\n if (current !== buffer) {\n buffer = current;\n u8 = new Uint8Array(buffer);\n i32 = new Int32Array(buffer);\n u32 = new Uint32Array(buffer);\n }\n };\n views();\n const claim = claimLane(i32, table);\n if (holds !== null) {\n Atomics.store(holds, kHoldToken, claim.token);\n }\n // The lane's bytes when [ptr, ptr + length) lies in its memory, checked\n // before any lock is taken; null otherwise, as WAMR would trap.\n const moduleRange = (ptr, length) => {\n const current = moduleMemory().buffer;\n if (current !== moduleBuffer) {\n moduleBuffer = current;\n moduleU8 = new Uint8Array(current);\n }\n return ptr + length <= moduleU8.length ? moduleU8 : null;\n };\n const copy = (to, toAt, from, fromAt, size) => {\n for (let i = 0; i < size; i++) {\n to[toAt + i] = from[fromAt + i];\n }\n };\n // Recorded before the swap, so whichever way an ended thread stopped,\n // the word holds this token only if the lane took it.\n const lock = (address) => {\n if (holds !== null) {\n Atomics.store(holds, kHoldLock, address);\n }\n while (Atomics.compareExchange(i32, address >>> 2, 0, claim.token) !== 0) {}\n };\n const unlock = (address) => {\n Atomics.store(i32, address >>> 2, 0);\n if (holds !== null) {\n Atomics.store(holds, kHoldLock, 0);\n }\n };\n\n // The block an id names, pinned so librive cannot free it until unpin;\n // 0 when the id is stale, another VM's or of another kind. A lane pins\n // one at a time.\n let pinned = 0;\n const pin = (id, kind) => {\n views();\n id >>>= 0;\n if ((id & kIdBit) === 0) {\n return 0;\n }\n const index = (id & ~kIdBit) >>> kIdSlotShift;\n const chunk = Atomics.load(u32, (table + kTableChunks + (index >>> kChunkShift) * 4) >>> 2);\n if (chunk === 0) {\n return 0;\n }\n const slot = chunk + (index & (kChunkSlots - 1)) * kSlotSize;\n const stateAt = (slot + kSlotState) >>> 2;\n if (claim.word >= 0) {\n // Stored before the state is checked, as librive retires a slot\n // before scanning the lane words: one of the two sees the other.\n Atomics.store(u32, claim.word, slot);\n if (!slotNames(Atomics.load(u32, stateAt), id)) {\n Atomics.store(u32, claim.word, kLaneIdle);\n return 0;\n }\n } else {\n for (;;) {\n const state = Atomics.load(u32, stateAt);\n if (!slotNames(state, id)) {\n return 0;\n }\n if (Atomics.compareExchange(u32, stateAt, state, state + kSlotPin) === state) {\n break;\n }\n }\n }\n pinned = slot;\n const block = Atomics.load(u32, (slot + kSlotBlock) >>> 2);\n if (\n u32[(block + kHeaderKind) >>> 2] !== kind ||\n u32[(slot + kSlotOwner) >>> 2] !== ownerLow ||\n u32[(slot + kSlotOwnerHigh) >>> 2] !== ownerHigh\n ) {\n unpin();\n return 0;\n }\n return block;\n };\n const unpin = () => {\n if (claim.word >= 0) {\n Atomics.store(u32, claim.word, kLaneIdle);\n } else {\n Atomics.sub(u32, (pinned + kSlotState) >>> 2, kSlotPin);\n }\n };\n const capacityOf = (block) => u32[(block + kHeaderCapacity) >>> 2];\n // A sequence is a low and a high word, as a 64 bit atomic allocates here.\n const bumpSeq = (low, high) => {\n if (Atomics.add(u32, low >>> 2, 1) === 0xffffffff) {\n Atomics.add(u32, high >>> 2, 1);\n }\n };\n // High first, so a read during a carry answers less, never more.\n const readSeq = (low, high) => {\n const top = Atomics.load(u32, high >>> 2);\n return top * 0x100000000 + Atomics.load(u32, low >>> 2);\n };\n\n const notify = (signal) => {\n const block = pin(signal, kKindSignal);\n if (block === 0) {\n return;\n }\n bumpSeq(block + kSignalSeq, block + kSignalSeqHigh);\n lock(block + kHeaderLock);\n try {\n const count = u32[(block + kSignalWatcherCount) >>> 2];\n const watchers = u32[(block + kSignalWatchers) >>> 2] >>> 2;\n for (let i = 0; i < count; i++) {\n // A watcher's wake word: a futex word librive's threads wait on.\n const word = (u32[watchers + i] + kWakeWordWord) >>> 2;\n Atomics.add(i32, word, 1);\n Atomics.notify(i32, word);\n }\n } finally {\n unlock(block + kHeaderLock);\n unpin();\n }\n };\n\n // Ring bytes wrap around the block's data.\n const ringCopyIn = (block, at, from, fromAt, size) => {\n const capacity = capacityOf(block);\n const first = Math.min(size, capacity - at);\n copy(u8, block + kRingData + at, from, fromAt, first);\n copy(u8, block + kRingData, from, fromAt + first, size - first);\n };\n const ringCopyOut = (block, at, to, toAt, size) => {\n const capacity = capacityOf(block);\n at %= capacity;\n const first = Math.min(size, capacity - at);\n copy(to, toAt, u8, block + kRingData + at, first);\n copy(to, toAt + first, u8, block + kRingData, size - first);\n };\n // A record's length, four bytes little endian.\n const sizeBytes = new Uint8Array(4);\n const sizeWord = new Uint32Array(sizeBytes.buffer);\n const refuseHolds = () => {\n fail(kProcessorHolds);\n return 0;\n };\n // Pops the head record into to at out if it fits capacity, or with to null drops it if it\n // does not, and notifies space. Answers its size plus one, 0 when empty or a drop keeps it.\n const pop = (ring, to, out, capacity) => {\n const block = pin(ring, kKindRing);\n if (block === 0) {\n return 0;\n }\n let signal = 0;\n let size = 0;\n lock(block + kHeaderLock);\n try {\n const used = u32[(block + kRingUsed) >>> 2];\n if (used === 0) {\n return 0;\n }\n const head = u32[(block + kRingHead) >>> 2];\n ringCopyOut(block, head, sizeBytes, 0, 4);\n size = sizeWord[0];\n if ((size & kRecordHolds) !== 0) {\n return refuseHolds();\n }\n if (to === null) {\n if (size <= capacity) {\n return 0;\n }\n } else if (out === 0 || size > capacity) {\n return size + 1;\n } else {\n ringCopyOut(block, head + 4, to, out, size);\n }\n u32[(block + kRingHead) >>> 2] = (head + 4 + size) % capacityOf(block);\n u32[(block + kRingUsed) >>> 2] = used - 4 - size;\n signal = u32[(block + kRingSpaceSignal) >>> 2];\n } finally {\n unlock(block + kHeaderLock);\n unpin();\n }\n notify(signal);\n return size + 1;\n };\n\n // A region word's index, or -1 outside the region.\n const word = (block, offset) => {\n offset >>>= 0;\n if ((offset & 3) !== 0 || offset + 4 > capacityOf(block)) {\n return -1;\n }\n return (block + kRegionData + offset) >>> 2;\n };\n // -1 outside the region or once it is gone, which the std throws for.\n const atomic = (region, offset, use) => {\n const block = pin(region, kKindRegion);\n if (block === 0) {\n return -1;\n }\n try {\n const at = word(block, offset);\n return at < 0 ? -1 : use(at) >>> 0;\n } finally {\n unpin();\n }\n };\n\n return {\n 'region_create': () => 0,\n 'region_size': (region) => {\n const block = pin(region, kKindRegion);\n if (block === 0) {\n return 0;\n }\n const size = capacityOf(block);\n unpin();\n return size;\n },\n 'region_lock': () => kRegionLockGone,\n 'region_unlock': () => {},\n 'region_read': () => 0,\n 'region_write': () => 0,\n 'region_poisoned': (region) => {\n const block = pin(region, kKindRegion);\n if (block === 0) {\n return 0;\n }\n const poisoned = u32[(block + kRegionPoisoned) >>> 2] !== 0 ? 1 : 0;\n unpin();\n return poisoned;\n },\n 'atomic_load': (region, offset) => atomic(region, offset, (at) => Atomics.load(i32, at)),\n 'atomic_store': (region, offset, value) =>\n atomic(region, offset, (at) => {\n Atomics.store(i32, at, value | 0);\n return 0;\n }),\n 'atomic_add': (region, offset, value) =>\n atomic(region, offset, (at) => Atomics.add(i32, at, value | 0)),\n 'atomic_cas': (region, offset, expected, desired) =>\n atomic(region, offset, (at) =>\n Atomics.compareExchange(i32, at, expected | 0, desired | 0)\n ),\n 'ring_create': () => 0,\n 'ring_write': (ring, data, dataByteCount, holds, holdCount) => {\n data >>>= 0;\n dataByteCount >>>= 0;\n const from = moduleRange(data, dataByteCount);\n const block = from !== null ? pin(ring, kKindRing) : 0;\n if (block === 0) {\n return kRingWriteFull;\n }\n if (holdCount !== 0) {\n unpin();\n return refuseHolds();\n }\n let signal = 0;\n lock(block + kHeaderLock);\n try {\n const capacity = capacityOf(block);\n if (4 + dataByteCount > capacity) {\n return kRingWriteNeverFits;\n }\n const used = u32[(block + kRingUsed) >>> 2];\n if (used + 4 + dataByteCount > capacity) {\n return kRingWriteFull;\n }\n const head = u32[(block + kRingHead) >>> 2];\n sizeWord[0] = dataByteCount;\n ringCopyIn(block, (head + used) % capacity, sizeBytes, 0, 4);\n ringCopyIn(block, (head + used + 4) % capacity, from, data, dataByteCount);\n u32[(block + kRingUsed) >>> 2] = used + 4 + dataByteCount;\n signal = u32[(block + kRingDataSignal) >>> 2];\n } finally {\n unlock(block + kHeaderLock);\n unpin();\n }\n notify(signal);\n return kRingWriteWritten;\n },\n 'ring_read': (ring, out, outByteCount) => {\n out >>>= 0;\n outByteCount >>>= 0;\n const to = moduleRange(out, outByteCount);\n return to !== null ? pop(ring, to, out, outByteCount) : 0;\n },\n 'ring_drop': (ring, capacity) => pop(ring, null, 0, capacity >>> 0),\n 'ring_used': (ring) => {\n const block = pin(ring, kKindRing);\n if (block === 0) {\n return 0;\n }\n lock(block + kHeaderLock);\n const used = u32[(block + kRingUsed) >>> 2];\n unlock(block + kHeaderLock);\n unpin();\n return used;\n },\n 'ring_signal': (ring, space) => {\n const block = pin(ring, kKindRing);\n if (block === 0) {\n return 0;\n }\n const signal = u32[(block + (space !== 0 ? kRingSpaceSignal : kRingDataSignal)) >>> 2];\n unpin();\n return signal;\n },\n 'snapshot_create': () => 0,\n // As SharedSnapshot::publish: publishers take turns writing the copy\n // readers are not on.\n 'snapshot_publish': (snapshot, data, dataByteCount, holds, holdCount) => {\n data >>>= 0;\n dataByteCount >>>= 0;\n const from = moduleRange(data, dataByteCount);\n const block = from !== null ? pin(snapshot, kKindSnapshot) : 0;\n if (block === 0) {\n return 0;\n }\n try {\n const capacity = capacityOf(block);\n if (holdCount !== 0) {\n return refuseHolds();\n }\n if (dataByteCount > capacity) {\n return 0;\n }\n lock(block + kHeaderLock);\n try {\n const latestAt = (block + kSnapshotLatest) >>> 2;\n const latest = Atomics.load(u32, latestAt);\n const sizesAt = (block + kSnapshotSizes) >>> 2;\n const replaced = latest !== 0 ? Atomics.load(u32, sizesAt + latest - 1) : 0;\n // Nothing here could give back the replaced value's holds.\n if ((replaced & kRecordHolds) !== 0) {\n return refuseHolds();\n }\n const index = latest % kSnapshotCopies;\n const versionAt = ((block + kSnapshotVersions) >>> 2) + index;\n const version = Atomics.load(u32, versionAt) | 1;\n Atomics.store(u32, versionAt, version);\n // A load after the store keeps the bytes from landing\n // before the odd version, as JS has no fence.\n Atomics.load(u32, versionAt);\n copy(u8, block + kSnapshotData + index * capacity, from, data, dataByteCount);\n Atomics.store(u32, sizesAt + index, dataByteCount);\n Atomics.store(u32, versionAt, version + 1);\n Atomics.store(u32, latestAt, index + 1);\n bumpSeq(block + kSnapshotSeq, block + kSnapshotSeqHigh);\n } finally {\n unlock(block + kHeaderLock);\n }\n return 1;\n } finally {\n unpin();\n }\n },\n // As SharedSnapshot::read, without the lock.\n 'snapshot_read': (snapshot, out, outByteCount) => {\n out >>>= 0;\n outByteCount >>>= 0;\n const to = moduleRange(out, outByteCount);\n const block = to !== null ? pin(snapshot, kKindSnapshot) : 0;\n if (block === 0) {\n return 0;\n }\n try {\n for (;;) {\n const latest = Atomics.load(u32, (block + kSnapshotLatest) >>> 2);\n if (latest === 0) {\n return 0;\n }\n const index = latest - 1;\n const versionAt = ((block + kSnapshotVersions) >>> 2) + index;\n const version = Atomics.load(u32, versionAt);\n if ((version & 1) !== 0) {\n continue;\n }\n const word = Atomics.load(u32, ((block + kSnapshotSizes) >>> 2) + index);\n const capacity = capacityOf(block);\n const at = block + kSnapshotData + index * capacity;\n const refused = (word & kRecordHolds) !== 0;\n // A torn read answers what the version check discards.\n const size = Math.min(word, capacity);\n if (!refused && out !== 0 && size <= outByteCount) {\n copy(to, out, u8, at, size);\n }\n // An exchange rather than a load keeps the copy from\n // reading past the check.\n if (Atomics.compareExchange(u32, versionAt, version, version) === version) {\n return refused ? refuseHolds() : size + 1;\n }\n }\n } finally {\n unpin();\n }\n },\n 'snapshot_seq': (snapshot) => {\n const block = pin(snapshot, kKindSnapshot);\n if (block === 0) {\n return 0;\n }\n const seq = readSeq(block + kSnapshotSeq, block + kSnapshotSeqHigh);\n unpin();\n return seq;\n },\n 'signal_create': () => 0,\n 'signal_notify': (signal) => notify(signal),\n 'signal_seq': (signal) => {\n const block = pin(signal, kKindSignal);\n if (block === 0) {\n return 0;\n }\n const seq = readSeq(block + kSignalSeq, block + kSignalSeqHigh);\n unpin();\n return seq;\n },\n 'blob_create': () => 0,\n 'blob_size': (blob) => {\n const block = pin(blob, kKindBlob);\n if (block === 0) {\n return 0;\n }\n const size = capacityOf(block);\n unpin();\n return size;\n },\n // A blob never changes, so the copy takes no lock.\n 'blob_read': (blob, offset, out, outByteCount) => {\n offset >>>= 0;\n out >>>= 0;\n outByteCount >>>= 0;\n const to = moduleRange(out, outByteCount);\n const block = to !== null ? pin(blob, kKindBlob) : 0;\n if (block === 0) {\n return 0;\n }\n const size = capacityOf(block);\n const count = offset < size ? Math.min(outByteCount, size - offset) : 0;\n copy(to, out, u8, block + kBlobData + offset, count);\n unpin();\n return count;\n },\n 'retain': () => 0,\n 'release': () => {},\n };\n}\n\n// Frees the lock word and lane word a lane left held, for a page that ended\n// its thread, once that thread is surely gone.\nfunction releaseSharedLane(heap, table, holds) {\n const token = Atomics.load(holds, kHoldToken);\n if (token < kLaneFirstToken) {\n return;\n }\n const i32 = new Int32Array(heap());\n const lockAt = Atomics.load(holds, kHoldLock);\n if (lockAt !== 0) {\n Atomics.compareExchange(i32, lockAt >>> 2, token, 0);\n }\n // Last: the slot it pinned keeps the locked block alive until here.\n if (token < kOverflowToken) {\n Atomics.store(i32, (((table >>> 0) + kTableLanes) >>> 2) + token - kLaneFirstToken, 0);\n }\n}\n// Instances of the lane modules a script module carries, started the same way\n// by the page runner and, through createProcessorMixer, by the audio worklets.\n\n\nfunction errorText(error) {\n return String(error?.message ?? error);\n}\n\n// Chrome's worklet scope has no performance; Date's milliseconds still catch a\n// block of several.\nconst monotonicNow =\n globalThis.performance !== undefined ? () => globalThis.performance.now() : Date.now;\n\n// The console imports: each line is a std string, its byte length before it.\n// Only jobs and workers import the timers.\nfunction laneConsole(memory, log, timers = new Map()) {\n const text = (ptr) => {\n const buffer = memory().buffer;\n return utf16Text(buffer, ptr, managedLength(buffer, ptr));\n };\n const env = {};\n for (const name of kLaneConsole) {\n env[name] = (ptr) => log(text(ptr));\n }\n const report = (end) => (ptr) => {\n const label = text(ptr);\n const started = timers.get(label);\n if (started === undefined) {\n log(`Timer '${label}' does not exist`);\n return;\n }\n if (end) {\n timers.delete(label);\n }\n log(`${label}: ${(monotonicNow() - started).toFixed(3)}ms`);\n };\n env['console.time'] = (ptr) => timers.set(text(ptr), monotonicNow());\n env['console.timeLog'] = report(false);\n env['console.timeEnd'] = report(true);\n return env;\n}\n\nconst noFuelCheck = () => {};\n\n// An instance of lane.module whose imports reach the lane's own natives, log,\n// timers, clock and fuel check. Returns { exports, memory, failure } or\n// { error }.\nfunction instantiateLane(lane) {\n let memory = null;\n let thrown = null;\n const failure = (error) => thrown ?? errorText(error);\n const imports = {\n 'env': laneConsole(() => memory, lane.log, lane.timers),\n 'rive_shared_v1': lane.shared(() => memory),\n 'rive_rt_v1': { 'now': lane.now ?? monotonicNow },\n 'rive_lane_v1': {\n 'error': (ptr, byteLength) => {\n thrown = utf16Text(memory.buffer, ptr, byteLength);\n lane.onThrow?.(thrown);\n },\n 'fuel_check': lane.fuel ?? noFuelCheck,\n },\n };\n if (lane.natives !== undefined) {\n imports[lane.natives] = lane.own(() => memory);\n }\n try {\n const exports = new WebAssembly.Instance(lane.module, imports).exports;\n memory = exports['memory'];\n return { exports, memory, failure };\n } catch (error) {\n return { error: failure(error) };\n }\n}\n\n// Runs the instance's start, or its reset when a job ran in it before, then\n// prefix + entry with a copy of input and args, freeing the copy after when\n// lane.free. Returns { result } or { error }.\nfunction enterLane(instance, lane, reset = false) {\n try {\n const exports = instance.exports;\n exports[reset ? kLaneResetExport : kLiftedStartExport]?.();\n const input = lane.input;\n const at = exports[kLaneAllocExport](input.length) >>> 0;\n new Uint8Array(instance.memory.buffer, at, input.length).set(input);\n const result = exports[lane.prefix + lane.entry](\n at,\n input.length,\n ...(lane.args ?? [])\n );\n if (lane.free) {\n exports[kLaneFreeExport](at);\n }\n return { result };\n } catch (error) {\n return { error: instance.failure(error) };\n }\n}\n\n// A new instance, entered. Returns { exports, memory, result, failure } or\n// { error }.\nfunction startLane(lane) {\n const instance = instantiateLane(lane);\n const entered = instance.error === undefined ? enterLane(instance, lane) : instance;\n return entered.error === undefined ? { ...instance, result: entered.result } : entered;\n}\n\n// One script audio processor, whose init may take kProcessorInitMs. Returns\n// { lane } or { error }; shared(memory, fail) answers its shared imports.\nfunction startProcessorLane(module, entry, input, format, shared, log) {\n // As natively, a native that fails the processor lets the block finish.\n let failed = null;\n const fail = (text) => {\n failed ??= text;\n };\n // When its fuel checks end it and why, made once so a block allocates\n // nothing on the audio thread.\n const bounds = { until: monotonicNow() + kProcessorInitMs, reason: kProcessorInitOverran };\n const started = startLane({\n module,\n shared: (memory) => shared(memory, fail),\n log,\n fuel: () => {\n if (monotonicNow() > bounds.until) {\n throw bounds.reason;\n }\n },\n prefix: kLaneEntryPrefixes['processor'],\n entry,\n input,\n args: [format.sampleRate, format.maxFrames, format.channels],\n free: true,\n });\n if (started.error !== undefined || failed !== null) {\n return { error: started.error ?? failed };\n }\n bounds.until = Infinity;\n bounds.reason = kProcessorOverran;\n const exports = started.exports;\n const memory = started.memory;\n // Rebuilt only when the block moves or memory grows, so a block\n // allocates nothing on the audio thread.\n let view = null;\n return {\n lane: {\n // Ends the block past budget ms, if any; sink gets its samples\n // before a collection can move them. Null, or why it failed.\n render(frames, startFrame, sink, budget = 0) {\n if (budget > 0) {\n bounds.until = monotonicNow() + budget;\n }\n try {\n const at = exports[kProcessorProcessExport](frames, startFrame) >>> 0;\n if (failed !== null) {\n return failed;\n }\n const length = frames * format.channels;\n if (\n view === null ||\n view.buffer !== memory.buffer ||\n view.byteOffset !== at ||\n view.length !== length\n ) {\n view = new Float32Array(memory.buffer, at, length);\n }\n sink(view);\n exports[kFrameMinorExport]?.();\n return null;\n } catch (error) {\n return started.failure(error);\n } finally {\n bounds.until = Infinity;\n }\n },\n },\n };\n}\n\n// Every processor a real time output runs, as the page's messages say, with\n// answers through post. It counts blocks and starts in holds, the Hold words.\nfunction createProcessorMixer(heap, table, post, holds) {\n const lanes = new Map();\n // What render walks, rebuilt only when lanes change, so a block does not\n // allocate an iterator.\n let order = [];\n const relist = () => {\n order = [...lanes.entries()];\n };\n // Null while compiling, then the module or the compile's error text,\n // until the page forgets it.\n const modules = new Map();\n // Starts not yet run, behind one whose module still compiles.\n const waiting = [];\n // The output's add and where in its block a chunk goes, set as render\n // walks, so sinks allocate nothing.\n let add = null;\n let offset = 0;\n let frame = -1;\n const fail = (id, text) => {\n lanes.delete(id);\n relist();\n post({ id, kind: 'failed', text });\n };\n const start = (message) => {\n const id = message.id;\n const module = modules.get(message.moduleId);\n if (typeof module === 'string') {\n post({ id, kind: 'failed', text: module });\n return;\n }\n const format = message.format;\n const started = startProcessorLane(\n module,\n message.entry,\n message.input,\n format,\n (moduleMemory, fail) =>\n createSharedLaneImports(heap, table, message.sharedOwner, moduleMemory, holds, fail),\n (text) => post({ id, kind: 'log', text })\n );\n if (started.error !== undefined) {\n post({ id, kind: 'failed', text: started.error });\n return;\n }\n const channels = format.channels;\n lanes.set(id, {\n lane: started.lane,\n maxFrames: format.maxFrames,\n // A block past its hard limit, where there is one, ends at its\n // next fuel check, or without fuel once it returns.\n hardBlocks: message.hardBlocks,\n sampleRate: format.sampleRate,\n warm: false,\n sink: (block) => add(block, channels, offset),\n });\n relist();\n post({ id, kind: 'running' });\n };\n // Starts in arrival order, up to the first whose module still compiles.\n const drain = () => {\n while (waiting.length > 0 && modules.get(waiting[0].moduleId) !== null) {\n start(waiting.shift());\n // Each start gets the page's whole start limit, and the checks it\n // took must not count under the shorter limit after it.\n Atomics.add(holds, kHoldBlocks, 1);\n }\n if (waiting.length === 0) {\n Atomics.store(holds, kHoldStarting, 0);\n }\n };\n return {\n receive(message) {\n if (message.kind === 'forget') {\n modules.delete(message.moduleId);\n return;\n }\n if (message.kind === 'stop') {\n // A stop beats the start it follows when that still waits.\n const at = waiting.findIndex((queued) => queued.id === message.id);\n if (at >= 0) {\n waiting.splice(at, 1);\n drain();\n } else {\n lanes.delete(message.id);\n relist();\n }\n return;\n }\n if (message.kind === 'end') {\n // The page gave up on this output and failed what it ran.\n lanes.clear();\n relist();\n waiting.length = 0;\n return;\n }\n const moduleId = message.moduleId;\n if (!modules.has(moduleId) && message.bytes === null) {\n // A fresh worklet lacks modules the page sent the one before.\n post({ id: message.id, kind: 'resend' });\n return;\n }\n if (!modules.has(moduleId)) {\n // Compiling on the audio thread would stall every processor.\n modules.set(moduleId, null);\n const settle = (value) => {\n if (modules.has(moduleId)) {\n modules.set(moduleId, value);\n }\n };\n WebAssembly.compile(message.bytes)\n .then(settle, (error) => settle(errorText(error)))\n .then(drain);\n }\n Atomics.store(holds, kHoldStarting, 1);\n waiting.push(message);\n drain();\n },\n\n // Hands into(block, channels, offset) each processor's interleaved\n // samples, in chunks of at most its block, offset frames in.\n render(frames, firstFrame, into) {\n if (frame < 0) {\n frame = firstFrame;\n }\n add = into;\n // A failure relists, which must not shift the rest of this pass.\n const list = order;\n for (let i = 0; i < list.length; i++) {\n const [id, entry] = list[i];\n for (offset = 0; offset < frames; offset += entry.maxFrames) {\n const chunk = Math.min(entry.maxFrames, frames - offset);\n const budget = processorBlockBudgetMs(\n entry.hardBlocks,\n chunk,\n entry.sampleRate,\n !entry.warm\n );\n const began = monotonicNow();\n let error = entry.lane.render(chunk, frame + offset, entry.sink, budget);\n if (error === null && budget > 0 && monotonicNow() - began > budget) {\n error = kProcessorOverran;\n }\n entry.warm = true;\n if (error !== null) {\n fail(id, error);\n break;\n }\n }\n }\n frame += frames;\n Atomics.add(holds, kHoldBlocks, 1);\n },\n\n // The output went away: every processor it ran ends with text.\n failAll(text) {\n for (const id of [...lanes.keys()]) {\n fail(id, text);\n }\n for (const message of waiting.splice(0)) {\n post({ id: message.id, kind: 'failed', text });\n }\n },\n };\n}\n// Script audio processors in real time on a browser's audio thread: one node\n// runs every processor the page starts and sums them into its output.\n\n\nclass RiveProcessors extends AudioWorkletProcessor {\n constructor(options) {\n super();\n const { memory, table, counter } = options.processorOptions;\n this.mixer = createProcessorMixer(\n () => memory.buffer,\n table,\n (message) => this.port.postMessage(message),\n new Int32Array(counter)\n );\n this.planes = null;\n // Interleaved in, planar out, at offset frames into the quantum.\n this.add = (block, width, offset) => {\n const planes = this.planes;\n const frames = block.length / width;\n for (let c = 0; c < planes.length; c++) {\n const plane = planes[c];\n const from = Math.min(c, width - 1);\n for (let i = 0; i < frames; i++) {\n plane[offset + i] += block[i * width + from];\n }\n }\n };\n this.port.onmessage = (event) => this.mixer.receive(event.data);\n }\n\n process(inputs, outputs) {\n this.planes = outputs[0];\n this.mixer.render(this.planes[0].length, globalThis.currentFrame ?? 0, this.add);\n return true;\n }\n}\n\nregisterProcessor(kProcessorNode, RiveProcessors);\n})();\n";
|
|
1106
|
-
function
|
|
1107
|
-
function
|
|
1110
|
+
function Ra(c,e){return{alpha:!0,depth:c||e,stencil:c||e,antialias:c&&!e,premultipliedAlpha:!0,preserveDrawingBuffer:0,powerPreference:"high-performance",failIfMajorPerformanceCaveat:0,enableExtensionsByDefault:!1,explicitSwapControl:0,renderViaOffscreenBackBuffer:0}}
|
|
1111
|
+
function Ta(c){if(c.getExtension("WEBGL_shader_pixel_local_storage"))return!1;const e=c.getExtension("WEBGL_debug_renderer_info");if(e){const m=c.getParameter(e.UNMASKED_RENDERER_WEBGL);if(c.getParameter(e.UNMASKED_VENDOR_WEBGL).includes("Google")&&m.includes("ANGLE Metal Renderer"))return!1}return!0}function Ua(c){const e=c.D;if(c.Ba!=e.width||c.Aa!=e.height)c.resize(e.width,e.height),c.Ba=e.width,c.Aa=e.height}const Va=G.onRuntimeInitialized;
|
|
1108
1112
|
G.onRuntimeInitialized=function(){function c(ea){this.D=ea;this.Zb=ea.getContext("2d");this.pb=w;this.S=[];this.ma=0;this.clear=function(){console.assert(0==this.ma);this.S=[];B.delete(this)};this.save=function(){++this.ma;this.S.push(w.save.bind(w))};this.restore=function(){0<this.ma&&(this.S.push(w.restore.bind(w)),--this.ma)};this.transform=function(S){this.S.push(w.transform.bind(w,S))};this.align=function(S,Y,fa,ka,xa=1){this.S.push(w.align.bind(w,S,Y,fa,ka,xa))};this.flush=function(){console.assert(0==
|
|
1109
|
-
this.ma);B.add(this);w.$b||n()};this.bindContext=function(){const S=this.pb;S&&S.X&&
|
|
1110
|
-
ea.V;ea.delete();(ea=S.getExtension("WEBGL_lose_context"))&&ea.loseContext()}function n(){if(w){var ea=w.bc,S=0,Y=0,fa=0,ka=Array(B.size),xa=0;for(var qa of B)qa.ea=Math.min(qa.D.width,ea),qa.da=Math.min(qa.D.height,ea),qa.Ua=qa.da*qa.ea,S=Math.max(S,qa.ea),Y=Math.max(Y,qa.da),fa+=qa.Ua,ka[xa++]=qa;B.clear();if(!(0>=fa)){S=1<<(0>=S?0:32-Math.clz32(S-1));for(Y=1<<(0>=Y?0:32-Math.clz32(Y-1));Y*S<fa;)S<=Y?S*=2:Y*=2;S=Math.min(S,ea);Y=Math.min(Y,ea);ka.sort((
|
|
1111
|
-
w.Yb=new G.Mat2D);fa=w.qb;xa=w.Yb;for(var
|
|
1112
|
-
ya.za,ya.ya+ya.ea,ya.za+ya.da);xa.xx=ya.ea/ya.D.width;xa.yy=ya.da/ya.D.height;xa.xy=xa.yx=0;xa.tx=ya.ya;xa.ty=ya.za;w.transform(xa);for(const
|
|
1113
|
-
xa.width=1;xa.height=1;w=e(xa,ka);if(!w)return null;w.$b=!!w.V.getExtension("WEBGL_shader_pixel_local_storage");w.bc=Math.min(w.V.getParameter(w.V.MAX_RENDERBUFFER_SIZE),w.V.getParameter(w.V.MAX_TEXTURE_SIZE));w.ob=
|
|
1114
|
-
!0;F.call(this)};const J=G.Artboard.prototype.draw;G.Artboard.prototype.draw=function(ea){ea.S?ea.S.push(()=>{this.dc||J.call(this,ea.pb)}):J.call(this,ea)};const O=new
|
|
1115
|
-
new G.CDNFileAssetLoader(fa),ka.addLoader(S));return G.startFileScripts(pa(ea,ka,fa??null))};const ra=G.WebGL2Renderer.prototype.clear;G.WebGL2Renderer.prototype.clear=function(){
|
|
1116
|
-
if(sa)G.riveReplayWorkerListen=function(){function c(){if(null===w){var B=(new OffscreenCanvas(1,1)).getContext("webgl2",
|
|
1117
|
-
D.width=J;D.height=O;var U=
|
|
1118
|
-
null;let F=0;try{var D=
|
|
1119
|
-
|
|
1113
|
+
this.ma);B.add(this);w.$b||n()};this.bindContext=function(){const S=this.pb;S&&S.X&&Wa(S.X)};this["delete"]=function(){}}function e(ea,S=!1,Y=!1){var fa=Ra(S,Y);S=ea.getContext("webgl2",fa);if(!S)return null;fa=Ya(S,fa);Wa(fa);const ka=D(ea.width,ea.height);ka.X=fa;ka.D=ea;ka.Ba=ea.width;ka.Aa=ea.height;ka.V=S;ka.ic=function(){this.X&&Wa(this.X)};var xa=ka.delete;ka.delete=function(){this.ic();xa.call(this);Za(this.X);this.X=this.D=this.Ba=this.Aa=this.V=null};Y&&ka.setInkbleed(!0);return ka}function m(ea){const S=
|
|
1114
|
+
ea.V;ea.delete();(ea=S.getExtension("WEBGL_lose_context"))&&ea.loseContext()}function n(){if(w){var ea=w.bc,S=0,Y=0,fa=0,ka=Array(B.size),xa=0;for(var qa of B)qa.ea=Math.min(qa.D.width,ea),qa.da=Math.min(qa.D.height,ea),qa.Ua=qa.da*qa.ea,S=Math.max(S,qa.ea),Y=Math.max(Y,qa.da),fa+=qa.Ua,ka[xa++]=qa;B.clear();if(!(0>=fa)){S=1<<(0>=S?0:32-Math.clz32(S-1));for(Y=1<<(0>=Y?0:32-Math.clz32(Y-1));Y*S<fa;)S<=Y?S*=2:Y*=2;S=Math.min(S,ea);Y=Math.min(Y,ea);ka.sort((qb,Bc)=>Bc.Ua-qb.Ua);w.qb||(w.qb=new G.DynamicRectanizer(ea),
|
|
1115
|
+
w.Yb=new G.Mat2D);fa=w.qb;xa=w.Yb;for(var va=0;va<ka.length;){fa.reset(S,Y);for(qa=va;qa<ka.length;++qa){var za=ka[qa],ya=fa.addRect(za.ea,za.da);if(0>ya){console.assert(qa>va);break}za.ya=ya&65535;za.za=ya>>16}za=O.push(fa.drawWidth());ya=U.push(fa.drawHeight());console.assert(za>=fa.drawWidth());console.assert(ya>=fa.drawHeight());console.assert(za<=ea);console.assert(ya<=ea);w.D.width!=za&&(w.D.width=za);w.D.height!=ya&&(w.D.height=ya);w.clear();for(za=va;za<qa;++za){ya=ka[za];w.saveClipRect(ya.ya,
|
|
1116
|
+
ya.za,ya.ya+ya.ea,ya.za+ya.da);xa.xx=ya.ea/ya.D.width;xa.yy=ya.da/ya.D.height;xa.xy=xa.yx=0;xa.tx=ya.ya;xa.ty=ya.za;w.transform(xa);for(const qb of ya.S)qb();w.restoreClipRect();ya.S=[]}for(w.flush();va<qa;++va)za=ka[va],ya=za.Zb,ya.globalCompositeOperation="copy",ya.drawImage(w.D,za.ya,za.za,za.ea,za.da,0,0,za.D.width,za.D.height);va=qa}}}}Va&&Va();let w=null;const B=new Set,D=G.makeRenderer;G.makeRenderer=function(ea,S,Y){Y=!(!Y||!Y.inkbleed);if(!w){function fa(ka){const xa=document.createElement("canvas");
|
|
1117
|
+
xa.width=1;xa.height=1;w=e(xa,ka);if(!w)return null;w.$b=!!w.V.getExtension("WEBGL_shader_pixel_local_storage");w.bc=Math.min(w.V.getParameter(w.V.MAX_RENDERBUFFER_SIZE),w.V.getParameter(w.V.MAX_TEXTURE_SIZE));w.ob=Ta(w.V);return w}(w=fa(!0))&&!w.ob&&(m(w),w=fa(!1));if(!w)throw"Unable to create WebGL context, your environment may not support WebGL. Try out @rive-app/canvas as an alternative.";}return S?new c(ea):e(ea,w.ob,Y)};const F=G.Artboard.prototype["delete"];G.Artboard.prototype["delete"]=function(){this.dc=
|
|
1118
|
+
!0;F.call(this)};const J=G.Artboard.prototype.draw;G.Artboard.prototype.draw=function(ea){ea.S?ea.S.push(()=>{this.dc||J.call(this,ea.pb)}):J.call(this,ea)};const O=new Oa,U=new Oa,W=new Ma;G.requestAnimationFrame=W.requestAnimationFrame.bind(W);G.cancelAnimationFrame=W.cancelAnimationFrame.bind(W);G.enableFPSCounter=W.vc.bind(W);const X=Pa(n);W.Cb=X;G.resolveAnimationFrame=X;let pa=G.load;G.load=function(ea,S,Y=!0,fa=null){const ka=new G.FallbackFileAssetLoader;void 0!==S&&ka.addLoader(S);Y&&(S=
|
|
1119
|
+
new G.CDNFileAssetLoader(fa),ka.addLoader(S));return G.startFileScripts(pa(ea,ka,fa??null))};const ra=G.WebGL2Renderer.prototype.clear;G.WebGL2Renderer.prototype.clear=function(){Wa(this.X);Ua(this);ra.call(this)};G.decodeImage=function(ea,S,Y=null){ea=G.decodeWebGL2Image(ea,Y??null);S(ea)};let ua=G.Renderer.prototype.align;G.Renderer.prototype.align=function(ea,S,Y,fa,ka=1){ua.call(this,ea,S,Y,fa,ka)}};
|
|
1120
|
+
if(sa)G.riveReplayWorkerListen=function(){function c(){if(null===w){var B=(new OffscreenCanvas(1,1)).getContext("webgl2",Ra(!0,!1));w=!!B&&Ta(B);(B=B&&B.getExtension("WEBGL_lose_context"))&&B.loseContext()}return w}function e(B){const D=B.canvas,F=B.surface,J=B.width,O=B.height;B=B.inkbleed;n.set(F,D);D.addEventListener("webglcontextlost",X=>{X.preventDefault();n.get(F)===D&&G._riveReplayWorkerContextLost(F)});D.addEventListener("webglcontextrestored",()=>{n.get(F)===D&&G._riveReplayWorkerContextRestored(F)});
|
|
1121
|
+
D.width=J;D.height=O;var U=Ra(c(),B);const W=D.getContext("webgl2",U);(U=W?Ya(W,U):0)&&Wa(U);G._riveReplayWorkerAttach(F,U,J,O,B)}function m(B){createImageBitmap(B.blob,{premultiplyAlpha:"premultiply"}).then(D=>{let F=G.images;F||(F=new Map,G.images=F);F.set(B.riveImage,D);G._riveReplayWorkerImageArrived(B.image,D.width,D.height)},D=>console.error("Rive: could not decode an image.",D))}const n=new Map;let w=null;self.addEventListener("message",B=>{if(B=B.data)if(B.riveCanvas)e(B);else if(B.riveProbeCaps){B=
|
|
1122
|
+
null;let F=0;try{var D=Ra(c(),!1);F=(B=(new OffscreenCanvas(1,1)).getContext("webgl2",D))?Ya(B,D):0}catch(J){F=0}G._riveReplayWorkerProbeCaps(F);(D=B&&B.getExtension("WEBGL_lose_context"))&&D.loseContext()}else B.riveImage&&m(B)});G.riveReplayWorkerResize=function(B,D,F){if(B=n.get(B))B.width=D,B.height=F};G.riveReplayWorkerForget=function(B){n.delete(B)}};else{const c=G.onRuntimeInitialized;G.onRuntimeInitialized=function(){function e(S,Y){B.push([S,Y]);m()}function m(){if(G._riveReplayWorkerListening()){var S=
|
|
1123
|
+
$a[G._riveReplayWorkerThread()];S=S&&S.worker?S.worker:S;for(const [Y,fa]of B)S.postMessage(Y,fa);B.length=0}else D=D||setTimeout(()=>{D=0;m()},1)}function n(){if("undefined"===typeof OffscreenCanvas||"undefined"===typeof WeakRef||"undefined"===typeof HTMLCanvasElement||!("transferControlToOffscreen"in HTMLCanvasElement.prototype))return!1;try{const S=(new OffscreenCanvas(1,1)).getContext("webgl2"),Y=S&&S.getExtension("WEBGL_lose_context");Y&&Y.loseContext();return!!S}catch(S){return!1}}function w(S,
|
|
1120
1124
|
Y){return{configurable:!0,enumerable:!0,get:()=>S[Y],set:fa=>{S[Y]=fa>>>0}}}c&&c();const B=[];let D=0,F=!1,J=null,O=null;G.enableReplayWorker=function(){!F&&n()&&(F=!0,G._riveReplayWorkerEnable(),J=new Promise(S=>{O=S}),e({riveProbeCaps:1},[]));return F};G.awaitReplayCaps=function(){return J||void 0};G.riveReplayCapsArrived=function(){O&&O()};G.riveReplayWorkerDecodeImage=function(S,Y,fa){e({riveImage:Y,image:S,blob:fa},[])};const U=new WeakMap,W=new Map,X="undefined"!==typeof FinalizationRegistry?
|
|
1121
1125
|
new FinalizationRegistry(S=>{if(S=S.surface)W.delete(S),G._riveReplaySurfaceRelease(S)}):null,pa=new WeakMap;G.riveReplaySurfaceRestored=function(S){const Y=(S=(S=W.get(S))&&S.renderer&&S.renderer.deref())&&pa.get(S);Y&&!S.isDeleted()&&Y()};const ra=G.makeRenderer;G.makeRenderer=function(S,Y,fa){var ka=U.get(S);if(!ka&&F&&!Y&&fa&&fa.replayWorker&&S instanceof HTMLCanvasElement)a:{try{var xa=S.transferControlToOffscreen()}catch(qa){ka=null;break a}ka={width:S.width,height:S.height,offscreen:xa,surface:0};
|
|
1122
|
-
Object.defineProperty(S,"width",w(ka,"width"));Object.defineProperty(S,"height",w(ka,"height"));U.set(S,ka);X&&X.register(S,ka)}if(ka){Y=ka;ka=!(!fa||!fa.inkbleed);xa=Y.width;const qa=Y.height,
|
|
1123
|
-
[S]));S=
|
|
1124
|
-
if(ca||oa){try{
|
|
1125
|
-
" : "+e.url);}}var
|
|
1126
|
-
if(sa){var
|
|
1127
|
-
w)throw w;}}else"setimmediate"!==m.target&&("checkMailbox"===n?
|
|
1128
|
-
function
|
|
1129
|
-
async function
|
|
1130
|
-
function
|
|
1131
|
-
_embind_register_enum_value:
|
|
1132
|
-
_emscripten_throw_longjmp:
|
|
1133
|
-
emscripten_get_heap_max:
|
|
1134
|
-
|
|
1135
|
-
glClearBufferiv:
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
async function
|
|
1141
|
-
n.riveReplayWorkerProbeCaps;G._riveReplayWorkerContextLost=n.riveReplayWorkerContextLost;G._riveReplayWorkerContextRestored=n.riveReplayWorkerContextRestored;G._riveReplaySurfaceRelease=n.riveReplaySurfaceRelease;
|
|
1142
|
-
G._rive_web_vm_module_export=n.rive_web_vm_module_export;G._rive_web_vm_frame_boundary=n.rive_web_vm_frame_boundary;
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
var
|
|
1147
|
-
var
|
|
1148
|
-
function
|
|
1149
|
-
|
|
1150
|
-
var
|
|
1151
|
-
c.onerror=B=>{
|
|
1152
|
-
function
|
|
1153
|
-
var
|
|
1154
|
-
c[e++]&63;w=224==(w&240)?(w&15)<<12|B<<6|D:(w&7)<<18|B<<12|D<<6|c[e++]&63;65536>w?n+=String.fromCharCode(w):(w-=65536,n+=String.fromCharCode(55296|w>>10,56320|w&1023))}}else n+=String.fromCharCode(w)}return n},
|
|
1155
|
-
var
|
|
1156
|
-
var
|
|
1157
|
-
e.K.P(e.F):e.v.o.P(e.u))});
|
|
1158
|
-
F=D.implement(this,...F);
|
|
1159
|
-
m);return
|
|
1160
|
-
var
|
|
1161
|
-
e.ib,n=e.P,w=e.vb,B=w.map(D=>D.Fc).concat(w.map(D=>D.$j));
|
|
1162
|
-
U.push(n,pa);return pa},J:
|
|
1163
|
-
var
|
|
1164
|
-
var
|
|
1165
|
-
G[c].A[m]=e}else G[c]=e,G[c].T=m},
|
|
1166
|
-
var
|
|
1167
|
-
function
|
|
1168
|
-
function
|
|
1169
|
-
e.m.F)throw new
|
|
1170
|
-
function
|
|
1171
|
-
var
|
|
1172
|
-
function
|
|
1173
|
-
var
|
|
1174
|
-
var
|
|
1175
|
-
if(void 0===Y.Y)throw new
|
|
1176
|
-
" const*",Y,!1,!0,!1);
|
|
1177
|
-
function
|
|
1126
|
+
Object.defineProperty(S,"width",w(ka,"width"));Object.defineProperty(S,"height",w(ka,"height"));U.set(S,ka);X&&X.register(S,ka)}if(ka){Y=ka;ka=!(!fa||!fa.inkbleed);xa=Y.width;const qa=Y.height,va=G.makeWorkerRenderer(xa,qa,ka,Y.surface);va.D=S;va.Ba=xa;va.Aa=qa;Y.renderer=new WeakRef(va);(S=fa&&fa.onContextRestored)&&pa.set(va,S);Y.surface||(Y.surface=va.surfaceRef(),W.set(Y.surface,Y),S=Y.offscreen,Y.offscreen=null,e({riveCanvas:1,canvas:S,surface:va.surfaceRef(),width:xa,height:qa,inkbleed:ka},
|
|
1127
|
+
[S]));S=va}else S=ra(S,Y,fa);return S};const ua=G.WebGL2WorkerRenderer.prototype,ea=ua.clear;ua.clear=function(){Ua(this);ea.call(this)};ua.replaysOnWorker=function(){return!0}}}var ab="./this.program";oa&&(_scriptName=self.location.href);var bb="",eb,fb;
|
|
1128
|
+
if(ca||oa){try{bb=(new URL(".",_scriptName)).href}catch{}oa&&(fb=c=>{var e=new XMLHttpRequest;e.open("GET",c,!1);e.responseType="arraybuffer";e.send(null);return new Uint8Array(e.response)});eb=async c=>{if(gb(c))return new Promise((m,n)=>{var w=new XMLHttpRequest;w.open("GET",c,!0);w.responseType="arraybuffer";w.onload=()=>{200==w.status||0==w.status&&w.response?m(w.response):n(w.status)};w.onerror=n;w.send(null)});var e=await fetch(c,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw Error(e.status+
|
|
1129
|
+
" : "+e.url);}}var jb=console.log.bind(console),kb=console.error.bind(console),lb,mb,nb=!1,ob,gb=c=>c.startsWith("file://");function M(){rb.buffer!=sb.buffer&&tb()}var ub,vb,xb;
|
|
1130
|
+
if(sa){var yb=!1;self.onunhandledrejection=e=>{throw e.reason||e;};function c(e){try{var m=e.data,n=m.U;if("load"===n){let w=[];self.onmessage=B=>w.push(B);xb=()=>{postMessage({U:"loaded"});for(let B of w)c(B);self.onmessage=c};for(const B of m.Hc)if(!G[B]||G[B].proxy)G[B]=(...D)=>{postMessage({U:"callHandler",Gc:B,Wa:D})},"print"==B&&(jb=G[B]),"printErr"==B&&(kb=G[B]);rb=m.hk;tb();mb=m.ik;zb();Ab()}else if("run"===n){Bb(m.O);Cb(m.O,0,0,1,0,0);Db();Eb(m.O);yb||(Fb(),yb=!0);try{Gb(m.dk,m.Va)}catch(w){if("unwind"!=
|
|
1131
|
+
w)throw w;}}else"setimmediate"!==m.target&&("checkMailbox"===n?yb&&Lb():n&&(kb(`worker: received unknown command ${n}`),kb(m)))}catch(w){throw Mb(),w;}}self.onmessage=c}var sb,Nb,Ob,Pb,Qb,Rb,Sb,Tb,wa=!1;function tb(){var c=rb.buffer;G.HEAP8=sb=new Int8Array(c);Ob=new Int16Array(c);G.HEAPU8=Nb=new Uint8Array(c);G.HEAPU16=Pb=new Uint16Array(c);G.HEAP32=Qb=new Int32Array(c);G.HEAPU32=Rb=new Uint32Array(c);G.HEAPF32=Sb=new Float32Array(c);Tb=new Float64Array(c)}
|
|
1132
|
+
function Ub(){wa=!0;sa?xb():Vb.__wasm_call_ctors()}function Ia(c){G.onAbort?.(c);c="Aborted("+c+")";kb(c);nb=!0;c=new WebAssembly.RuntimeError(c+". Build with -sASSERTIONS for more info.");vb?.(c);throw c;}var Wb;async function Xb(c){if(!lb)try{var e=await eb(c);return new Uint8Array(e)}catch{}if(c==Wb&&lb)c=new Uint8Array(lb);else if(fb)c=fb(c);else throw"both async and sync fetching of the wasm failed";return c}
|
|
1133
|
+
async function Yb(c,e){try{var m=await Xb(c);return await WebAssembly.instantiate(m,e)}catch(n){kb(`failed to asynchronously prepare wasm: ${n}`),Ia(n)}}async function Zb(c){var e=Wb;if(!lb&&!gb(e))try{var m=fetch(e,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(m,c)}catch(n){kb(`wasm streaming compile failed: ${n}`),kb("falling back to ArrayBuffer instantiation")}return Yb(e,c)}
|
|
1134
|
+
function $b(){ec={__pthread_create_js:fc,__syscall_fcntl64:gc,__syscall_ioctl:hc,__syscall_openat:ic,_abort_js:jc,_embind_create_inheriting_constructor:kc,_embind_finalize_value_object:lc,_embind_register_bigint:mc,_embind_register_bool:nc,_embind_register_class:oc,_embind_register_class_class_function:pc,_embind_register_class_class_property:qc,_embind_register_class_constructor:rc,_embind_register_class_function:sc,_embind_register_class_property:tc,_embind_register_emval:uc,_embind_register_enum:vc,
|
|
1135
|
+
_embind_register_enum_value:wc,_embind_register_float:xc,_embind_register_function:yc,_embind_register_integer:zc,_embind_register_memory_view:Hc,_embind_register_std_string:Ic,_embind_register_std_wstring:Jc,_embind_register_value_object:Kc,_embind_register_value_object_field:Lc,_embind_register_void:Mc,_emscripten_init_main_thread_js:Nc,_emscripten_notify_mailbox_postmessage:Oc,_emscripten_receive_on_main_thread_js:Pc,_emscripten_thread_cleanup:Qc,_emscripten_thread_mailbox_await:Eb,_emscripten_thread_set_strongref:Rc,
|
|
1136
|
+
_emscripten_throw_longjmp:Sc,_emval_create_invoker:Tc,_emval_decref:Uc,_emval_get_property:Vc,_emval_incref:Wc,_emval_invoke:Xc,_emval_new_array:Yc,_emval_new_cstring:Zc,_emval_new_object:$c,_emval_run_destructors:ad,_emval_set_property:bd,_gmtime_js:cd,_localtime_js:dd,_timegm_js:ed,_tzset_js:fd,beginPixelLocalStorageWEBGL:gd,clock_time_get:hd,decode_image:jd,decode_page_copy:kd,delete_image:ld,emscripten_asm_const_int:md,emscripten_check_blocking_allowed:nd,emscripten_date_now:od,emscripten_exit_with_live_runtime:pd,
|
|
1137
|
+
emscripten_get_heap_max:qd,emscripten_get_now:rd,emscripten_num_logical_cores:sd,emscripten_resize_heap:td,emscripten_runtime_keepalive_push:ud,emscripten_set_timeout:vd,emscripten_webgl_destroy_context:wd,emscripten_webgl_enable_extension:Id,emscripten_webgl_get_current_context:Jd,emscripten_webgl_make_context_current:Kd,enable_WEBGL_provoking_vertex:Ld,enable_WEBGL_shader_pixel_local_storage_coherent:Md,endPixelLocalStorageWEBGL:Nd,environ_get:Od,environ_sizes_get:Pd,exit:Qd,fd_close:Rd,fd_read:Sd,
|
|
1138
|
+
fd_seek:Td,fd_write:Ud,framebufferPixelLocalClearValuefvWEBGL:Vd,framebufferTexturePixelLocalStorageWEBGL:Wd,glActiveTexture:Xd,glAttachShader:Yd,glBindAttribLocation:Zd,glBindBuffer:$d,glBindBufferRange:ae,glBindFramebuffer:be,glBindRenderbuffer:ce,glBindSampler:de,glBindTexture:ee,glBindVertexArray:fe,glBlendColor:ge,glBlendEquation:he,glBlendEquationSeparate:ie,glBlendFunc:je,glBlendFuncSeparate:ke,glBlitFramebuffer:le,glBufferData:me,glBufferSubData:ne,glCheckFramebufferStatus:oe,glClear:pe,glClearBufferfi:qe,
|
|
1139
|
+
glClearBufferfv:re,glClearBufferiv:se,glClearBufferuiv:te,glClearColor:ue,glClearDepthf:ve,glClearStencil:we,glClientWaitSync:xe,glColorMask:ye,glCompileShader:ze,glCompressedTexSubImage2D:Ae,glCompressedTexSubImage3D:Be,glCreateProgram:Ce,glCreateShader:De,glCullFace:Ee,glDeleteBuffers:Fe,glDeleteFramebuffers:Ge,glDeleteProgram:He,glDeleteRenderbuffers:Ie,glDeleteSamplers:Je,glDeleteShader:Ke,glDeleteSync:Le,glDeleteTextures:Me,glDeleteVertexArrays:Ne,glDepthFunc:Oe,glDepthMask:Pe,glDepthRangef:Qe,
|
|
1140
|
+
glDisable:Re,glDisableVertexAttribArray:Se,glDrawArrays:Te,glDrawArraysInstanced:Ue,glDrawBuffers:Ve,glDrawElements:We,glDrawElementsInstanced:Xe,glEnable:Ye,glEnableVertexAttribArray:Ze,glFenceSync:$e,glFlush:af,glFramebufferRenderbuffer:bf,glFramebufferTexture2D:cf,glFramebufferTextureLayer:df,glFrontFace:ef,glGenBuffers:ff,glGenFramebuffers:gf,glGenRenderbuffers:hf,glGenSamplers:jf,glGenTextures:kf,glGenVertexArrays:wf,glGenerateMipmap:xf,glGetFloatv:yf,glGetFramebufferAttachmentParameteriv:zf,
|
|
1141
|
+
glGetIntegerv:Af,glGetProgramInfoLog:Bf,glGetProgramiv:Cf,glGetShaderInfoLog:Df,glGetShaderiv:Ef,glGetString:Ff,glGetStringi:Gf,glGetUniformBlockIndex:Hf,glGetUniformLocation:If,glInvalidateFramebuffer:Jf,glLinkProgram:Kf,glPixelStorei:Lf,glPolygonOffset:Mf,glReadBuffer:Nf,glReadPixels:Of,glRenderbufferStorage:Pf,glRenderbufferStorageMultisample:Qf,glSamplerParameterf:Rf,glSamplerParameteri:Sf,glScissor:Tf,glShaderSource:Uf,glStencilFunc:Vf,glStencilFuncSeparate:Wf,glStencilMask:Xf,glStencilMaskSeparate:Yf,
|
|
1142
|
+
glStencilOp:Zf,glStencilOpSeparate:$f,glTexParameteri:ag,glTexStorage2D:bg,glTexStorage3D:cg,glTexSubImage2D:dg,glTexSubImage3D:eg,glUniform1i:fg,glUniformBlockBinding:gg,glUseProgram:hg,glVertexAttribDivisor:ig,glVertexAttribIPointer:jg,glVertexAttribPointer:kg,glViewport:lg,invoke_vii:mg,isWindowsBrowser:ng,memory:rb,provokingVertexWEBGL:og,riveWebAttachRunner:pg,riveWebAttachThreads:qg,riveWebAudioRefusal:rg,riveWebAudioSampleRate:sg,riveWebAudioStart:tg,riveWebAudioStop:ug,riveWebCall:vg,riveWebHasExport:wg,
|
|
1143
|
+
riveWebJobRun:xg,riveWebMemoryPages:yg,riveWebPreparing:zg,riveWebProcessorEnd:Ag,riveWebRaise:Bg,riveWebReadMemory:Cg,riveWebRegister:Dg,riveWebRelease:Eg,riveWebStart:Fg,riveWebStringLength:Gg,riveWebTimeOrigin:Hg,riveWebWorkerCollect:Ig,riveWebWorkerEnd:Jg,riveWebWorkerStart:Kg,riveWebWorkerWake:Lg,riveWebWriteMemory:Mg,upload_image:Ng,wasm_start_image_decode:Og};return{env:ec,wasi_snapshot_preview1:ec}}
|
|
1144
|
+
async function zb(){function c(n,w){Vb=n.exports;Pg.push(Vb._emscripten_tls_init);n=Vb;Qg=n.free;Rg=n.malloc;Sg=n.pthread_self;G._setWebImage=n.setWebImage;G._riveReplayWorkerImageArrived=n.riveReplayWorkerImageArrived;G._riveWebImagePageDecoded=n.riveWebImagePageDecoded;G._riveReplayWorkerEnable=n.riveReplayWorkerEnable;G._riveReplayWorkerListening=n.riveReplayWorkerListening;G._riveReplayWorkerThread=n.riveReplayWorkerThread;G._riveReplayWorkerAttach=n.riveReplayWorkerAttach;G._riveReplayWorkerProbeCaps=
|
|
1145
|
+
n.riveReplayWorkerProbeCaps;G._riveReplayWorkerContextLost=n.riveReplayWorkerContextLost;G._riveReplayWorkerContextRestored=n.riveReplayWorkerContextRestored;G._riveReplaySurfaceRelease=n.riveReplaySurfaceRelease;Tg=n.__getTypeName;Fb=n._embind_initialize_bindings;Ug=G._wasm_image_decode_alloc=n.wasm_image_decode_alloc;Vg=G._wasm_image_decode_complete=n.wasm_image_decode_complete;Wg=G._wasm_image_decode_error=n.wasm_image_decode_error;G._rive_web_parallel_team_thread=n.rive_web_parallel_team_thread;
|
|
1146
|
+
G._rive_web_vm_module_export=n.rive_web_vm_module_export;G._rive_web_vm_frame_boundary=n.rive_web_vm_frame_boundary;Xg=G._rive_web_job_output=n.rive_web_job_output;Yg=G._rive_web_lane_fail=n.rive_web_lane_fail;Zg=G._rive_web_lane_log=n.rive_web_lane_log;$g=G._rive_web_lane_fuel=n.rive_web_lane_fuel;G._rive_web_processor_event=n.rive_web_processor_event;G._rive_web_vm_booting=n.rive_web_vm_booting;G._rive_web_vm_start_fuel=n.rive_web_vm_start_fuel;G._rive_web_vm_start_refusal=n.rive_web_vm_start_refusal;
|
|
1147
|
+
ah=G._rive_web_calls=n.rive_web_calls;G._rive_shared_table=n.rive_shared_table;bh=G._rive_web_worker_wait=n.rive_web_worker_wait;ch=G._rive_web_worker_finished=n.rive_web_worker_finished;dh=G._rive_web_worker_stopping=n.rive_web_worker_stopping;eh=G._ma_device__on_notification_unlocked=n.ma_device__on_notification_unlocked;G._ma_malloc_emscripten=n.ma_malloc_emscripten;G._ma_free_emscripten=n.ma_free_emscripten;fh=G._ma_device_process_pcm_frames_capture__webaudio=n.ma_device_process_pcm_frames_capture__webaudio;
|
|
1148
|
+
gh=G._ma_device_process_pcm_frames_playback__webaudio=n.ma_device_process_pcm_frames_playback__webaudio;Cb=n._emscripten_thread_init;Mb=n._emscripten_thread_crashed;hh=n._emscripten_run_js_on_main_thread;ih=n._emscripten_thread_free_data;jh=n._emscripten_thread_exit;kh=n._emscripten_check_mailbox;lh=n.setThrew;mh=n._emscripten_tempret_set;nh=n.emscripten_stack_set_limits;oh=n._emscripten_stack_restore;ph=n._emscripten_stack_alloc;qh=n.emscripten_stack_get_current;rh.vij=n.dynCall_vij;rh.iij=n.dynCall_iij;
|
|
1149
|
+
rh.ji=n.dynCall_ji;rh.iijii=n.dynCall_iijii;rh.iiiji=n.dynCall_iiiji;rh.iiji=n.dynCall_iiji;rh.jii=n.dynCall_jii;rh.vijj=n.dynCall_vijj;rh.jiji=n.dynCall_jiji;sh=n.__indirect_function_table;mb=w;return Vb}var e=$b();if(G.instantiateWasm)return new Promise(n=>{G.instantiateWasm(e,(w,B)=>{n(c(w,B))})});if(sa){var m=new WebAssembly.Instance(mb,$b());return c(m,mb)}Wb??=G.locateFile?G.locateFile("webgl2_advanced.wasm",bb):bb+"webgl2_advanced.wasm";return function(n){return c(n.instance,n.module)}(await Zb(e))}
|
|
1150
|
+
var th,uh;class vh{name="ExitStatus";constructor(c){this.message=`Program terminated with exit(${c})`;this.status=c}}
|
|
1151
|
+
var wh=c=>{c.terminate();c.onmessage=()=>{}},xh=c=>{for(;0<c.length;)c.shift()(G)},yh=[],zh=0,Ah=null,Ka=()=>{zh--;G.monitorRunDependencies?.(zh);if(0==zh&&Ah){var c=Ah;Ah=null;c()}},Da=()=>{zh++;G.monitorRunDependencies?.(zh)},Fh=c=>{0==Bh.length&&(Ch(),Dh(Bh[0]));var e=Bh.pop();if(!e)return 6;Eh.push(e);$a[c.O]=e;e.O=c.O;e.postMessage({U:"run",dk:c.ck,Va:c.Va,O:c.O},c.Qb);return 0},Gh=0,Hh=()=>qh(),Ih=c=>oh(c),Jh=c=>ph(c),Kh=(c,e,...m)=>{var n=8*m.length,w=qh(),B=ph(n),D=B>>3,F;for(F of m)(M(),
|
|
1152
|
+
Tb)[D++]=F;c=hh(c,0,n,B,e);oh(w);return c};function Lh(c){if(sa)return Kh(0,1,c);ob=c;Mh||0<Gh||(Aa(),G.onExit?.(c),nb=!0);throw new vh(c);}function Nh(c){if(sa)return Kh(1,0,c);Qd(c)}var Qd=c=>{ob=c;if(sa)throw Nh(c),"unwind";Lh(c)},Bh=[],Eh=[],Pg=[],$a={};function Oh(){for(var c=17;c--;)Ch();yh.push(async()=>{var e=Ph();Da();await e;Ka()})}var Aa=()=>{for(var c of Eh)wh(c);for(c of Bh)wh(c);Bh=[];Eh=[];$a={}},Qh=c=>{var e=c.O;delete $a[e];Bh.push(c);Eh.splice(Eh.indexOf(c),1);c.O=0;ih(e)};
|
|
1153
|
+
function Db(){Pg.forEach(c=>c())}
|
|
1154
|
+
var Dh=c=>new Promise(e=>{c.onmessage=B=>{var D=B.data;B=D.U;if(D.Sa&&D.Sa!=Sg()){var F=$a[D.Sa];F?F.postMessage(D,D.Qb):kb(`Internal error! Worker sent a message "${B}" to target pthread ${D.Sa}, but that thread no longer exists!`)}else if("checkMailbox"===B)Lb();else if("spawnThread"===B)Fh(D);else if("cleanupThread"===B)Rh(()=>{Qh($a[D.gk])});else if("loaded"===B)c.loaded=!0,e(c);else if("setimmediate"===D.target)c.postMessage(D);else if("callHandler"===B)G[D.Gc](...D.Wa);else B&&kb(`worker sent an unknown command ${B}`)};
|
|
1155
|
+
c.onerror=B=>{kb(`${"worker sent an error!"} ${B.filename}:${B.lineno}: ${B.message}`);throw B;};var m=[],n=["onExit","onAbort","print","printErr"],w;for(w of n)G.propertyIsEnumerable(w)&&m.push(w);c.postMessage({U:"load",Hc:m,hk:rb,ik:mb})});async function Ph(){if(!sa)return Promise.all(Bh.map(Dh))}function Ch(){var c=_scriptName;G.mainScriptUrlOrBlob&&(c=G.mainScriptUrlOrBlob,"string"!=typeof c&&(c=URL.createObjectURL(c)));c=new Worker(c,{name:"em-pthread"});Bh.push(c)}var Sh=[];
|
|
1156
|
+
function Bb(c){var e=(M(),Rb)[c+52>>2];c=(M(),Rb)[c+56>>2];nh(e,e-c);oh(e)}var Gb=(c,e)=>{Mh=Gh=0;c=sh.get(c)(e);Mh||0<Gh?ob=c:jh(c)},Mh=!0,rb;function Th(c,e,m,n){return sa?Kh(2,1,c,e,m,n):fc(c,e,m,n)}
|
|
1157
|
+
var fc=(c,e,m,n)=>{if(!globalThis.SharedArrayBuffer)return 6;var w=[];if(sa&&0===w.length)return Th(c,e,m,n);c={ck:m,O:c,Va:n,Qb:w};return sa?(c.U="spawnThread",postMessage(c,w),0):Fh(c)},Uh=globalThis.TextDecoder&&new TextDecoder,Vh=(c,e,m,n)=>{m=e+m;if(n)return m;for(;c[e]&&!(e>=m);)++e;return e},Wh=(c,e=0,m,n)=>{m=Vh(c,e,m,n);if(16<m-e&&c.buffer&&Uh)return Uh.decode(c.slice(e,m));for(n="";e<m;){var w=c[e++];if(w&128){var B=c[e++]&63;if(192==(w&224))n+=String.fromCharCode((w&31)<<6|B);else{var D=
|
|
1158
|
+
c[e++]&63;w=224==(w&240)?(w&15)<<12|B<<6|D:(w&7)<<18|B<<12|D<<6|c[e++]&63;65536>w?n+=String.fromCharCode(w):(w-=65536,n+=String.fromCharCode(55296|w>>10,56320|w&1023))}}else n+=String.fromCharCode(w)}return n},Xh=(c,e,m)=>c?Wh((M(),Nb),c,e,m):"";function gc(c,e,m){return sa?Kh(3,1,c,e,m):0}function hc(c,e,m){return sa?Kh(4,1,c,e,m):0}function ic(c,e,m,n){if(sa)return Kh(5,1,c,e,m,n)}
|
|
1159
|
+
var jc=()=>Ia(""),Yh=(c,e)=>Object.defineProperty(e,"name",{value:c}),Zh=[],$h=[0,1,,1,null,1,!0,1,!1,1],ai=class extends Error{constructor(c){super(c);this.name="BindingError"}},bi=c=>{if(!c)throw new ai(`Cannot use deleted val. handle = ${c}`);return $h[c]},ci=c=>{switch(c){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const e=Zh.pop()||$h.length;$h[e]=c;$h[e+1]=1;return e}};class di extends Error{}
|
|
1160
|
+
var ei=c=>{for(var e="";;){var m=(M(),Nb)[c++];if(!m)return e;e+=String.fromCharCode(m)}},fi={},gi=(c,e)=>{if(void 0===e)throw new ai("ptr should not be undefined");for(;c.C;)e=c.va(e),c=c.C;return e},hi={},ii=c=>{c=Tg(c);var e=ei(c);Qg(c);return e},ji=(c,e)=>{var m=hi[c];if(void 0===m)throw c=`${e} has unknown type ${ii(c)}`,new ai(c);return m},ki=()=>{},li=!1,mi=c=>{if(!globalThis.FinalizationRegistry)return mi=e=>e,c;li=new FinalizationRegistry(e=>{e=e.m;--e.count.value;0===e.count.value&&(e.F?
|
|
1161
|
+
e.K.P(e.F):e.v.o.P(e.u))});mi=e=>{var m=e.m;m.F&&li.register(e,{m},e);return e};ki=e=>{li.unregister(e)};return mi(c)},kc=(c,e,m)=>{c=ei(c);e=ji(e,"wrapper");m=bi(m);var n=e.o,w=n.N,B=n.C.N,D=n.C.constructor;c=Yh(c,function(...F){for(var J of n.C.Gb)if(this[J]===B[J])throw new di(`Pure virtual function ${J} must be implemented in JavaScript`);Object.defineProperty(this,"__parent",{value:w});this.__construct(...F)});w.__construct=function(...F){if(this===w)throw new ai("Pass correct 'this' to __construct");
|
|
1162
|
+
F=D.implement(this,...F);ki(F);var J=F.m;F.notifyOnDestruction();J.ia=!0;Object.defineProperties(this,{m:{value:J}});mi(this);F=J.u;F=gi(n,F);if(fi.hasOwnProperty(F))throw new ai(`Tried to register registered instance: ${F}`);fi[F]=this};w.__destruct=function(){if(this===w)throw new ai("Pass correct 'this' to __destruct");ki(this);var F=this.m.u;F=gi(n,F);if(fi.hasOwnProperty(F))delete fi[F];else throw new ai(`Tried to unregister unregistered instance: ${F}`);};c.prototype=Object.create(w);Object.assign(c.prototype,
|
|
1163
|
+
m);return ci(c)},ni={},oi=c=>{for(;c.length;){var e=c.pop();c.pop()(e)}};function pi(c){return this.s((M(),Rb)[c>>2])}
|
|
1164
|
+
var qi={},ri={},si=class extends Error{constructor(c){super(c);this.name="InternalError"}},ui=(c,e,m)=>{function n(F){F=m(F);if(F.length!==c.length)throw new si("Mismatched type converter count");for(var J=0;J<c.length;++J)ti(c[J],F[J])}c.forEach(F=>ri[F]=e);var w=Array(e.length),B=[],D=0;for(let [F,J]of e.entries())hi.hasOwnProperty(J)?w[F]=hi[J]:(B.push(J),qi.hasOwnProperty(J)||(qi[J]=[]),qi[J].push(()=>{w[F]=hi[J];++D;D===B.length&&n(w)}));0===B.length&&n(w)},lc=c=>{var e=ni[c];delete ni[c];var m=
|
|
1165
|
+
e.ib,n=e.P,w=e.vb,B=w.map(D=>D.Fc).concat(w.map(D=>D.$j));ui([c],B,D=>{var F={},J,O;for([J,O]of w.entries()){const U=D[J],W=O.Dc,X=O.Ec,pa=D[J+w.length],ra=O.Zj,ua=O.ak;F[O.yc]={read:ea=>U.s(W(X,ea)),write:(ea,S)=>{var Y=[];ra(ua,ea,pa.B(Y,S));oi(Y)},optional:U.optional}}return[{name:e.name,s:U=>{var W={},X;for(X in F)W[X]=F[X].read(U);n(U);return W},B:(U,W)=>{for(var X in F)if(!(X in W||F[X].optional))throw new TypeError(`Missing field: "${X}"`);var pa=m();for(X in F)F[X].write(pa,W[X]);null!==U&&
|
|
1166
|
+
U.push(n,pa);return pa},J:pi,H:n}]})},mc=()=>{};function vi(c,e,m={}){var n=e.name;if(!c)throw new ai(`type "${n}" must have a positive integer typeid pointer`);if(hi.hasOwnProperty(c)){if(m.Lc)return;throw new ai(`Cannot register type '${n}' twice`);}hi[c]=e;delete ri[c];qi.hasOwnProperty(c)&&(e=qi[c],delete qi[c],e.forEach(w=>w()))}function ti(c,e,m={}){return vi(c,e,m)}
|
|
1167
|
+
var nc=(c,e,m,n)=>{e=ei(e);ti(c,{name:e,s:function(w){return!!w},B:function(w,B){return B?m:n},J:function(w){return this.s((M(),Nb)[w])},H:null})},wi=c=>{throw new ai(c.m.v.o.name+" instance already deleted");},xi=[];function yi(){}
|
|
1168
|
+
var zi={},Ai=(c,e,m)=>{if(void 0===c[e].A){var n=c[e];c[e]=function(...w){if(!c[e].A.hasOwnProperty(w.length))throw new ai(`Function '${m}' called with an invalid number of arguments (${w.length}) - expects one of (${c[e].A})!`);return c[e].A[w.length].apply(this,w)};c[e].A=[];c[e].A[n.T]=n}},Bi=(c,e,m)=>{if(G.hasOwnProperty(c)){if(void 0===m||void 0!==G[c].A&&void 0!==G[c].A[m])throw new ai(`Cannot register public name '${c}' twice`);Ai(G,c,c);if(G[c].A.hasOwnProperty(m))throw new ai(`Cannot register multiple overloads of a function with the same number of arguments (${m})!`);
|
|
1169
|
+
G[c].A[m]=e}else G[c]=e,G[c].T=m},Ci=c=>{c=c.replace(/[^a-zA-Z0-9_]/g,"$");var e=c.charCodeAt(0);return 48<=e&&57>=e?`_${c}`:c};function Di(c,e,m,n,w,B,D,F){this.name=c;this.constructor=e;this.N=m;this.P=n;this.C=w;this.Bc=B;this.va=D;this.tc=F;this.Gb=[]}
|
|
1170
|
+
var Ei=(c,e,m)=>{for(;e!==m;){if(!e.va)throw new ai(`Expected null or instance of ${m.name}, got an instance of ${e.name}`);c=e.va(c);e=e.C}return c},Fi=c=>{if(null===c)return"null";var e=typeof c;return"object"===e||"array"===e||"function"===e?c.toString():""+c};
|
|
1171
|
+
function Gi(c,e){if(null===e){if(this.ab)throw new ai(`null is not a valid ${this.name}`);return 0}if(!e.m)throw new ai(`Cannot pass "${Fi(e)}" as a ${this.name}`);if(!e.m.u)throw new ai(`Cannot pass deleted object as a pointer of type ${this.name}`);return Ei(e.m.u,e.m.v.o,this.o)}
|
|
1172
|
+
function Hi(c,e){if(null===e){if(this.ab)throw new ai(`null is not a valid ${this.name}`);if(this.Ka){var m=this.ib();null!==c&&c.push(this.P,m);return m}return 0}if(!e||!e.m)throw new ai(`Cannot pass "${Fi(e)}" as a ${this.name}`);if(!e.m.u)throw new ai(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.Ja&&e.m.v.Ja)throw new ai(`Cannot convert argument of type ${e.m.K?e.m.K.name:e.m.v.name} to parameter type ${this.name}`);m=Ei(e.m.u,e.m.v.o,this.o);if(this.Ka){if(void 0===
|
|
1173
|
+
e.m.F)throw new ai("Passing raw pointer to smart pointer is illegal");switch(this.bk){case 0:if(e.m.K===this)m=e.m.F;else throw new ai(`Cannot convert argument of type ${e.m.K?e.m.K.name:e.m.v.name} to parameter type ${this.name}`);break;case 1:m=e.m.F;break;case 2:if(e.m.K===this)m=e.m.F;else{var n=e.clone();m=this.$c(m,ci(()=>n["delete"]()));null!==c&&c.push(this.P,m)}break;default:throw new ai("Unsupported sharing policy");}}return m}
|
|
1174
|
+
function Ii(c,e){if(null===e){if(this.ab)throw new ai(`null is not a valid ${this.name}`);return 0}if(!e.m)throw new ai(`Cannot pass "${Fi(e)}" as a ${this.name}`);if(!e.m.u)throw new ai(`Cannot pass deleted object as a pointer of type ${this.name}`);if(e.m.v.Ja)throw new ai(`Cannot convert argument of type ${e.m.v.name} to parameter type ${this.name}`);return Ei(e.m.u,e.m.v.o,this.o)}
|
|
1175
|
+
var Ji=(c,e,m)=>{if(e===m)return c;if(void 0===m.C)return null;c=Ji(c,e,m.C);return null===c?null:m.tc(c)},Ki=(c,e)=>{e=gi(c,e);return fi[e]},Li=(c,e)=>{if(!e.v||!e.u)throw new si("makeClassHandle requires ptr and ptrType");if(!!e.K!==!!e.F)throw new si("Both smartPtrType and smartPtr must be specified");e.count={value:1};return mi(Object.create(c,{m:{value:e,writable:!0}}))};
|
|
1176
|
+
function Mi(c,e,m,n,w,B,D,F,J,O,U){this.name=c;this.o=e;this.ab=m;this.Ja=n;this.Ka=w;this.Wc=B;this.bk=D;this.Jb=F;this.ib=J;this.$c=O;this.P=U;w||void 0!==e.C?this.B=Hi:(this.B=n?Gi:Ii,this.H=null)}
|
|
1177
|
+
var Ni=(c,e,m)=>{if(!G.hasOwnProperty(c))throw new si("Replacing nonexistent public symbol");void 0!==G[c].A&&void 0!==m?G[c].A[m]=e:(G[c]=e,G[c].T=m)},rh={},Oi=(c,e,m=[])=>{c.includes("j")?(c=c.replace(/p/g,"i"),e=(0,rh[c])(e,...m)):e=sh.get(e)(...m);return e},Pi=(c,e)=>(...m)=>Oi(c,e,m),Qi=(c,e)=>{c=ei(c);var m=c.includes("j")?Pi(c,e):sh.get(e);if("function"!=typeof m)throw new ai(`unknown function pointer with signature ${c}: ${e}`);return m};class Ri extends Error{}
|
|
1178
|
+
var Si=(c,e)=>{function m(B){w[B]||hi[B]||(ri[B]?ri[B].forEach(m):(n.push(B),w[B]=!0))}var n=[],w={};e.forEach(m);throw new Ri(`${c}: `+n.map(ii).join([", "]));},oc=(c,e,m,n,w,B,D,F,J,O,U,W,X)=>{U=ei(U);B=Qi(w,B);F&&=Qi(D,F);O&&=Qi(J,O);X=Qi(W,X);var pa=Ci(U);Bi(pa,function(){Si(`Cannot construct ${U} due to unbound types`,[n])});ui([c,e,m],n?[n]:[],ra=>{ra=ra[0];if(n){var ua=ra.o;var ea=ua.N}else ea=yi.prototype;ra=Yh(U,function(...ka){if(Object.getPrototypeOf(this)!==S)throw new ai(`Use 'new' to construct ${U}`);
|
|
1179
|
+
if(void 0===Y.Y)throw new ai(`${U} has no accessible constructor`);var xa=Y.Y[ka.length];if(void 0===xa)throw new ai(`Tried to invoke ctor of ${U} with invalid number of parameters (${ka.length}) - expected (${Object.keys(Y.Y).toString()}) parameters instead!`);return xa.apply(this,ka)});var S=Object.create(ea,{constructor:{value:ra}});ra.prototype=S;var Y=new Di(U,ra,S,X,ua,B,F,O);if(Y.C){var fa;(fa=Y.C).xa??(fa.xa=[]);Y.C.xa.push(Y)}ua=new Mi(U,Y,!0,!1,!1);fa=new Mi(U+"*",Y,!1,!1,!1);ea=new Mi(U+
|
|
1180
|
+
" const*",Y,!1,!0,!1);zi[c]={pointerType:fa,qc:ea};Ni(pa,ra);return[ua,fa,ea]})};function Ti(c){for(var e=1;e<c.length;++e)if(null!==c[e]&&void 0===c[e].H)return!0;return!1}
|
|
1181
|
+
function Ui(c,e,m,n,w){var B=e.length;if(2>B)throw new ai("argTypes array size mismatch! Must at least get return value and 'this' types!");var D=null!==e[1]&&null!==m,F=Ti(e),J=!e[0].Nc,O=B-2,U=Array(O),W=[],X=[];return Yh(c,function(...pa){X.length=0;W.length=D?2:1;W[0]=w;if(D){var ra=e[1].B(X,this);W[1]=ra}for(var ua=0;ua<O;++ua)U[ua]=e[ua+2].B(X,pa[ua]),W.push(U[ua]);pa=n(...W);if(F)oi(X);else for(ua=D?1:2;ua<e.length;ua++){var ea=1===ua?ra:U[ua-2];null!==e[ua].H&&e[ua].H(ea)}ra=J?e[0].s(pa):
|
|
1178
1182
|
void 0;return ra})}
|
|
1179
|
-
var
|
|
1180
|
-
W[e].A?(X.T=m-1,W[e]=X):W[e].A[m-1]=X;if(J.o.xa)for(const pa of J.o.xa)pa.constructor.hasOwnProperty(e)||(pa.constructor[e]=X);return[]});return[]})},
|
|
1181
|
-
W[0];var X={get(){return W.s(B(n))},enumerable:!0};F&&(F=
|
|
1182
|
-
F.o.Y[e-1]=()=>{
|
|
1183
|
-
U):(
|
|
1184
|
-
U=>{U=U[0];var W=`${U.name}.${e}`,X={get(){
|
|
1185
|
-
e,ua);return[]});return[]})},
|
|
1186
|
-
2])};default:throw new TypeError(`invalid integer width (${e}): ${c}`);}},
|
|
1187
|
-
s:function(F){return this.Mb[F]},B:function(F,J){return this.Tb[J]},J:
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
if(0<m){var w=e;m=e+m-1;for(var B=0;B<c.length;++B){var D=c.codePointAt(B);if(127>=D){if(e>=m)break;n[e++]=D}else if(2047>=D){if(e+1>=m)break;n[e++]=192|D>>6;n[e++]=128|D&63}else if(65535>=D){if(e+2>=m)break;n[e++]=224|D>>12;n[e++]=128|D>>6&63;n[e++]=128|D&63}else{if(e+3>=m)break;n[e++]=240|D>>18;n[e++]=128|D>>12&63;n[e++]=128|D>>6&63;n[e++]=128|D&63;B++}}n[e]=0;c=e-w}else c=0;return c}
|
|
1191
|
-
e+=3}return e},
|
|
1192
|
-
|
|
1193
|
-
{m??=2147483647;if(4>m)return 0;var n=e;m=n+m-4;for(var w=0;w<c.length;++w){var B=c.codePointAt(w);65535<B&&w++;(M(),
|
|
1194
|
-
var J=B(F),O=
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
X),X+=8;switch(m){case 0:var ra=
|
|
1198
|
-
function
|
|
1199
|
-
var
|
|
1200
|
-
function
|
|
1201
|
-
var n=(new Date(c.getFullYear(),0,1)).getTimezoneOffset();c=(e!=n&&c.getTimezoneOffset()==Math.min(n,e))|0;(M(),
|
|
1202
|
-
function
|
|
1203
|
-
var
|
|
1204
|
-
function
|
|
1205
|
-
var
|
|
1206
|
-
|
|
1207
|
-
return(c.getSupportedExtensions()||[]).filter(m=>e.includes(m))},
|
|
1208
|
-
!c.Mc){c.Mc=!0;e=c.G;e.Qc=e.getExtension("WEBGL_multi_draw");e.xc=e.getExtension("EXT_polygon_offset_clamp");e.wc=e.getExtension("EXT_clip_control");e.jk=e.getExtension("WEBGL_polygon_mode");
|
|
1209
|
-
(
|
|
1210
|
-
"EXT_clip_control"==e&&(N.wc=N.getExtension("EXT_clip_control"));"WEBGL_polygon_mode"==e&&(N.jk=N.getExtension("WEBGL_polygon_mode"));return!!c.G.getExtension(e)},
|
|
1211
|
-
|
|
1212
|
-
function
|
|
1213
|
-
var
|
|
1214
|
-
e),
|
|
1215
|
-
|
|
1216
|
-
{var c=
|
|
1217
|
-
(c,e)=>{for(var m=0;m<c;m++){var n=(M(),
|
|
1218
|
-
0;m<c;m++){var n=(M(),
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
w?1:0;break;case "string":
|
|
1222
|
-
|
|
1223
|
-
n;break;case 4:(M(),
|
|
1224
|
-
1;else if(35719==e){if(!c.Na){var n=N.getProgramParameter(c,35718);for(e=0;e<n;++e)c.Na=Math.max(c.Na,N.getActiveUniform(c,e).name.length+1)}(M(),
|
|
1225
|
-
e);else
|
|
1226
|
-
break;case 7936:case 7937:case 37445:case 37446:(e=N.getParameter(c))||(
|
|
1227
|
-
|
|
1228
|
-
1))>>>0,w=e.slice(0,B));if((w=c.Sb[w])&&n<w[0]&&(n+=w[1],m[n]=m[n]||N.getUniformLocation(c,e)))return n}else
|
|
1229
|
-
30779==c||30782==c?(M(),
|
|
1230
|
-
4*B>>2],D)}N.shaderSource(
|
|
1231
|
-
Math.clz32(O.BYTES_PER_ELEMENT))}else{if(J){O=
|
|
1232
|
-
e,m,n,w,B,D,F,J,O,null)},
|
|
1233
|
-
(()=>{let c=
|
|
1234
|
-
!1;return m},["delete"](){this.m.u||
|
|
1235
|
-
Object.assign(
|
|
1236
|
-
|
|
1237
|
-
var
|
|
1183
|
+
var Vi=(c,e)=>{for(var m=[],n=0;n<c;n++)m.push((M(),Rb)[e+4*n>>2]);return m},Wi=c=>{c=c.trim();const e=c.indexOf("(");return-1===e?c:c.slice(0,e)},pc=(c,e,m,n,w,B,D)=>{var F=Vi(m,n);e=ei(e);e=Wi(e);B=Qi(w,B);ui([],[c],J=>{function O(){Si(`Cannot call ${U} due to unbound types`,F)}J=J[0];var U=`${J.name}.${e}`;e.startsWith("@@")&&(e=Symbol[e.substring(2)]);var W=J.o.constructor;void 0===W[e]?(O.T=m-1,W[e]=O):(Ai(W,e,U),W[e].A[m-1]=O);ui([],F,X=>{X=Ui(U,[X[0],null].concat(X.slice(1)),null,B,D);void 0===
|
|
1184
|
+
W[e].A?(X.T=m-1,W[e]=X):W[e].A[m-1]=X;if(J.o.xa)for(const pa of J.o.xa)pa.constructor.hasOwnProperty(e)||(pa.constructor[e]=X);return[]});return[]})},qc=(c,e,m,n,w,B,D,F)=>{e=ei(e);B=Qi(w,B);ui([],[c],J=>{J=J[0];var O=`${J.name}.${e}`,U={get(){Si(`Cannot access ${O} due to unbound types`,[m])},enumerable:!0,configurable:!0};U.set=F?()=>{Si(`Cannot access ${O} due to unbound types`,[m])}:()=>{throw new ai(`${O} is a read-only property`);};Object.defineProperty(J.o.constructor,e,U);ui([],[m],W=>{W=
|
|
1185
|
+
W[0];var X={get(){return W.s(B(n))},enumerable:!0};F&&(F=Qi(D,F),X.set=pa=>{var ra=[];F(n,W.B(ra,pa));oi(ra)});Object.defineProperty(J.o.constructor,e,X);return[]});return[]})},rc=(c,e,m,n,w,B)=>{var D=Vi(e,m);w=Qi(n,w);ui([],[c],F=>{F=F[0];var J=`constructor ${F.name}`;void 0===F.o.Y&&(F.o.Y=[]);if(void 0!==F.o.Y[e-1])throw new ai(`Cannot register multiple constructors with identical number of parameters (${e-1}) for class '${F.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);
|
|
1186
|
+
F.o.Y[e-1]=()=>{Si(`Cannot construct ${F.name} due to unbound types`,D)};ui([],D,O=>{O.splice(1,0,null);F.o.Y[e-1]=Ui(J,O,null,w,B);return[]});return[]})},sc=(c,e,m,n,w,B,D,F)=>{var J=Vi(m,n);e=ei(e);e=Wi(e);B=Qi(w,B);ui([],[c],O=>{function U(){Si(`Cannot call ${W} due to unbound types`,J)}O=O[0];var W=`${O.name}.${e}`;e.startsWith("@@")&&(e=Symbol[e.substring(2)]);F&&O.o.Gb.push(e);var X=O.o.N,pa=X[e];void 0===pa||void 0===pa.A&&pa.className!==O.name&&pa.T===m-2?(U.T=m-2,U.className=O.name,X[e]=
|
|
1187
|
+
U):(Ai(X,e,W),X[e].A[m-2]=U);ui([],J,ra=>{ra=Ui(W,ra,O,B,D);void 0===X[e].A?(ra.T=m-2,X[e]=ra):X[e].A[m-2]=ra;return[]});return[]})},Xi=(c,e,m)=>{if(!(c instanceof Object))throw new ai(`${m} with invalid "this": ${c}`);if(!(c instanceof e.o.constructor))throw new ai(`${m} incompatible with "this" of type ${c.constructor.name}`);if(!c.m.u)throw new ai(`cannot call emscripten binding method ${m} on deleted object`);return Ei(c.m.u,c.m.v.o,e.o)},tc=(c,e,m,n,w,B,D,F,J,O)=>{e=ei(e);w=Qi(n,w);ui([],[c],
|
|
1188
|
+
U=>{U=U[0];var W=`${U.name}.${e}`,X={get(){Si(`Cannot access ${W} due to unbound types`,[m,D])},enumerable:!0,configurable:!0};X.set=J?()=>Si(`Cannot access ${W} due to unbound types`,[m,D]):()=>{throw new ai(W+" is a read-only property");};Object.defineProperty(U.o.N,e,X);ui([],J?[m,D]:[m],pa=>{var ra=pa[0],ua={get(){var S=Xi(this,U,W+" getter");return ra.s(w(B,S))},enumerable:!0};if(J){J=Qi(F,J);var ea=pa[1];ua.set=function(S){var Y=Xi(this,U,W+" setter"),fa=[];J(O,Y,ea.B(fa,S));oi(fa)}}Object.defineProperty(U.o.N,
|
|
1189
|
+
e,ua);return[]});return[]})},Uc=c=>{9<c&&0===--$h[c+1]&&($h[c]=void 0,Zh.push(c))},Yi={name:"emscripten::val",s:c=>{var e=bi(c);Uc(c);return e},B:(c,e)=>ci(e),J:pi,H:null},uc=c=>ti(c,Yi),Zi=(c,e,m)=>{switch(e){case 1:return m?function(n){return this.s((M(),sb)[n])}:function(n){return this.s((M(),Nb)[n])};case 2:return m?function(n){return this.s((M(),Ob)[n>>1])}:function(n){return this.s((M(),Pb)[n>>1])};case 4:return m?function(n){return this.s((M(),Qb)[n>>2])}:function(n){return this.s((M(),Rb)[n>>
|
|
1190
|
+
2])};default:throw new TypeError(`invalid integer width (${e}): ${c}`);}},vc=(c,e,m,n,w)=>{e=ei(e);w=0===w?"object":1===w?"number":"string";switch(w){case "object":function D(){}D.values={};ti(c,{name:e,constructor:D,valueType:w,s:function(F){return this.constructor.values[F]},B:(F,J)=>J.value,J:Zi(e,m,n),H:null});Bi(e,D);break;case "number":var B={};ti(c,{name:e,cb:B,valueType:w,s:F=>F,B:(F,J)=>J,J:Zi(e,m,n),H:null});Bi(e,B);delete G[e].T;break;case "string":B={},ti(c,{name:e,Tb:{},Mb:{},cb:B,valueType:w,
|
|
1191
|
+
s:function(F){return this.Mb[F]},B:function(F,J){return this.Tb[J]},J:Zi(e,m,n),H:null}),Bi(e,B),delete G[e].T}},wc=(c,e,m)=>{var n=ji(c,"enum");e=ei(e);switch(n.valueType){case "object":c=n.constructor;n=Object.create(n.constructor.prototype,{value:{value:m},constructor:{value:Yh(`${n.name}_${e}`,function(){})}});c.values[m]=n;c[e]=n;break;case "number":n.cb[e]=m;break;case "string":n.Tb[e]=m,n.Mb[m]=e,n.cb[e]=e}},$i=(c,e)=>{switch(e){case 4:return function(m){return this.s((M(),Sb)[m>>2])};case 8:return function(m){return this.s((M(),
|
|
1192
|
+
Tb)[m>>3])};default:throw new TypeError(`invalid float width (${e}): ${c}`);}},xc=(c,e,m)=>{e=ei(e);ti(c,{name:e,s:n=>n,B:(n,w)=>w,J:$i(e,m),H:null})},yc=(c,e,m,n,w,B)=>{var D=Vi(e,m);c=ei(c);c=Wi(c);w=Qi(n,w);Bi(c,function(){Si(`Cannot call ${c} due to unbound types`,D)},e-1);ui([],D,F=>{Ni(c,Ui(c,[F[0],null].concat(F.slice(1)),null,w,B),e-1);return[]})},aj=(c,e,m)=>{switch(e){case 1:return m?n=>(M(),sb)[n]:n=>(M(),Nb)[n];case 2:return m?n=>(M(),Ob)[n>>1]:n=>(M(),Pb)[n>>1];case 4:return m?n=>(M(),
|
|
1193
|
+
Qb)[n>>2]:n=>(M(),Rb)[n>>2];default:throw new TypeError(`invalid integer width (${e}): ${c}`);}},zc=(c,e,m,n,w)=>{e=ei(e);let B=F=>F;if(0===n){var D=32-8*m;B=F=>F<<D>>>D;w=B(w)}ti(c,{name:e,s:B,B:(F,J)=>J,J:aj(e,m,0!==n),H:null})},Hc=(c,e,m)=>{function n(B){var D=(M(),Rb)[B>>2];B=(M(),Rb)[B+4>>2];return new w((M(),sb).buffer,B,D)}var w=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][e];m=ei(m);ti(c,{name:m,s:n,J:n},{Lc:!0})},bj=(c,e,m)=>{var n=(M(),Nb);
|
|
1194
|
+
if(0<m){var w=e;m=e+m-1;for(var B=0;B<c.length;++B){var D=c.codePointAt(B);if(127>=D){if(e>=m)break;n[e++]=D}else if(2047>=D){if(e+1>=m)break;n[e++]=192|D>>6;n[e++]=128|D&63}else if(65535>=D){if(e+2>=m)break;n[e++]=224|D>>12;n[e++]=128|D>>6&63;n[e++]=128|D&63}else{if(e+3>=m)break;n[e++]=240|D>>18;n[e++]=128|D>>12&63;n[e++]=128|D>>6&63;n[e++]=128|D&63;B++}}n[e]=0;c=e-w}else c=0;return c},cj=c=>{for(var e=0,m=0;m<c.length;++m){var n=c.charCodeAt(m);127>=n?e++:2047>=n?e+=2:55296<=n&&57343>=n?(e+=4,++m):
|
|
1195
|
+
e+=3}return e},Ic=(c,e)=>{e=ei(e);ti(c,{name:e,s(m){var n=(M(),Rb)[m>>2];n=Xh(m+4,n,!0);Qg(m);return n},B(m,n){n instanceof ArrayBuffer&&(n=new Uint8Array(n));var w="string"==typeof n;if(!(w||ArrayBuffer.isView(n)&&1==n.BYTES_PER_ELEMENT))throw new ai("Cannot pass non-string to std::string");var B=w?cj(n):n.length;var D=Rg(4+B+1),F=D+4;(M(),Rb)[D>>2]=B;w?bj(n,F,B+1):(M(),Nb).set(n,F);null!==m&&m.push(Qg,D);return D},J:pi,H(m){Qg(m)}})},dj=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,
|
|
1196
|
+
ej=(c,e,m)=>{c>>=1;e=Vh((M(),Pb),c,e/2,m);if(16<e-c&&dj)return dj.decode((M(),Pb).slice(c,e));for(m="";c<e;++c){var n=(M(),Pb)[c];m+=String.fromCharCode(n)}return m},fj=(c,e,m)=>{m??=2147483647;if(2>m)return 0;m-=2;var n=e;m=m<2*c.length?m/2:c.length;for(var w=0;w<m;++w){var B=c.charCodeAt(w);(M(),Ob)[e>>1]=B;e+=2}(M(),Ob)[e>>1]=0;return e-n},gj=c=>2*c.length,hj=(c,e,m)=>{var n="";c>>=2;for(var w=0;!(w>=e/4);w++){var B=(M(),Rb)[c+w];if(!B&&!m)break;n+=String.fromCodePoint(B)}return n},ij=(c,e,m)=>
|
|
1197
|
+
{m??=2147483647;if(4>m)return 0;var n=e;m=n+m-4;for(var w=0;w<c.length;++w){var B=c.codePointAt(w);65535<B&&w++;(M(),Qb)[e>>2]=B;e+=4;if(e+4>m)break}(M(),Qb)[e>>2]=0;return e-n},jj=c=>{for(var e=0,m=0;m<c.length;++m)65535<c.codePointAt(m)&&m++,e+=4;return e},Jc=(c,e,m)=>{m=ei(m);if(2===e){var n=ej;var w=fj;var B=gj}else n=hj,w=ij,B=jj;ti(c,{name:m,s:D=>{var F=(M(),Rb)[D>>2];F=n(D+4,F*e,!0);Qg(D);return F},B:(D,F)=>{if("string"!=typeof F)throw new ai(`Cannot pass non-string to C++ string type ${m}`);
|
|
1198
|
+
var J=B(F),O=Rg(4+J+e);(M(),Rb)[O>>2]=J/e;w(F,O+4,J+e);null!==D&&D.push(Qg,O);return O},J:pi,H(D){Qg(D)}})},Kc=(c,e,m,n,w,B)=>{ni[c]={name:ei(e),ib:Qi(m,n),P:Qi(w,B),vb:[]}},Lc=(c,e,m,n,w,B,D,F,J,O)=>{ni[c].vb.push({yc:ei(e),Fc:m,Dc:Qi(n,w),Ec:B,$j:D,Zj:Qi(F,J),ak:O})},Mc=(c,e)=>{e=ei(e);ti(c,{Nc:!0,name:e,s:()=>{},B:()=>{}})},Nc=c=>{Cb(c,!oa,1,!ca,262144,!1);Db()},kj=c=>{if(!(c instanceof vh||"unwind"==c))throw c;},Rh=c=>{if(!nb)try{if(c(),!(Mh||0<Gh))try{sa?Sg()&&jh(ob):Qd(ob)}catch(e){kj(e)}}catch(e){kj(e)}},
|
|
1199
|
+
lj=!Atomics.waitAsync||globalThis.navigator?.userAgent&&91>Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2]),Eb=c=>{lj||(Atomics.waitAsync((M(),Qb),c>>2,c).value.then(Lb),c+=128,Atomics.store((M(),Qb),c>>2,1))},Lb=()=>Rh(()=>{var c=Sg();c&&(Eb(c),kh())}),Oc=(c,e)=>{c==e?setTimeout(Lb):sa?postMessage({Sa:c,U:"checkMailbox"}):(c=$a[c])&&c.postMessage({U:"checkMailbox"})},mj=[],Pc=(c,e,m,n,w)=>{mj.length=0;m=w>>3;for(n=w+n>>3;m<n;)w=(M(),Tb)[m++],mj.push(w);return(e?nj[e]:oj[c])(...mj)},
|
|
1200
|
+
Qc=c=>{sa?postMessage({U:"cleanupThread",gk:c}):Qh($a[c])},Rc=()=>{},Sc=()=>{throw Infinity;},pj=[],qj=c=>{var e=pj.length;pj.push(c);return e},rj=(c,e)=>{for(var m=Array(c),n=0;n<c;++n)m[n]=ji((M(),Rb)[e+4*n>>2],`parameter ${n}`);return m},sj={},tj=c=>{var e=sj[c];return void 0===e?ei(c):e},Tc=(c,e,m)=>{var [n,...w]=rj(c,e),B=n.B.bind(n),D=w.map(J=>J.J.bind(J));c--;var F=Array(c);e=`methodCaller<(${w.map(J=>J.name)}) => ${n.name}>`;return qj(Yh(e,(J,O,U,W)=>{for(var X=0,pa=0;pa<c;++pa)F[pa]=D[pa](W+
|
|
1201
|
+
X),X+=8;switch(m){case 0:var ra=bi(J).apply(null,F);break;case 2:ra=Reflect.construct(bi(J),F);break;case 3:ra=F[0];break;case 1:ra=bi(J)[tj(O)](...F)}J=[];ra=B(J,ra);J.length&&((M(),Rb)[U>>2]=ci(J));return ra}))},Vc=(c,e)=>{c=bi(c);e=bi(e);return ci(c[e])},Wc=c=>{9<c&&($h[c+1]+=1)},Xc=(c,e,m,n,w)=>pj[c](e,m,n,w),Yc=()=>ci([]),Zc=c=>ci(tj(c)),$c=()=>ci({}),ad=c=>{var e=bi(c);oi(e);Uc(c)},bd=(c,e,m)=>{c=bi(c);e=bi(e);m=bi(m);c[e]=m};
|
|
1202
|
+
function cd(c,e,m){c=new Date(1E3*(e+2097152>>>0<4194305-!!c?(c>>>0)+4294967296*e:NaN));(M(),Qb)[m>>2]=c.getUTCSeconds();(M(),Qb)[m+4>>2]=c.getUTCMinutes();(M(),Qb)[m+8>>2]=c.getUTCHours();(M(),Qb)[m+12>>2]=c.getUTCDate();(M(),Qb)[m+16>>2]=c.getUTCMonth();(M(),Qb)[m+20>>2]=c.getUTCFullYear()-1900;(M(),Qb)[m+24>>2]=c.getUTCDay();c=(c.getTime()-Date.UTC(c.getUTCFullYear(),0,1,0,0,0,0))/864E5|0;(M(),Qb)[m+28>>2]=c}
|
|
1203
|
+
var uj=[0,31,60,91,121,152,182,213,244,274,305,335],vj=[0,31,59,90,120,151,181,212,243,273,304,334];
|
|
1204
|
+
function dd(c,e,m){c=new Date(1E3*(e+2097152>>>0<4194305-!!c?(c>>>0)+4294967296*e:NaN));(M(),Qb)[m>>2]=c.getSeconds();(M(),Qb)[m+4>>2]=c.getMinutes();(M(),Qb)[m+8>>2]=c.getHours();(M(),Qb)[m+12>>2]=c.getDate();(M(),Qb)[m+16>>2]=c.getMonth();(M(),Qb)[m+20>>2]=c.getFullYear()-1900;(M(),Qb)[m+24>>2]=c.getDay();e=c.getFullYear();e=(0!==e%4||0===e%100&&0!==e%400?vj:uj)[c.getMonth()]+c.getDate()-1|0;(M(),Qb)[m+28>>2]=e;(M(),Qb)[m+36>>2]=-(60*c.getTimezoneOffset());e=(new Date(c.getFullYear(),6,1)).getTimezoneOffset();
|
|
1205
|
+
var n=(new Date(c.getFullYear(),0,1)).getTimezoneOffset();c=(e!=n&&c.getTimezoneOffset()==Math.min(n,e))|0;(M(),Qb)[m+32>>2]=c}
|
|
1206
|
+
function ed(c){var e=Date.UTC((M(),Qb)[c+20>>2]+1900,(M(),Qb)[c+16>>2],(M(),Qb)[c+12>>2],(M(),Qb)[c+8>>2],(M(),Qb)[c+4>>2],(M(),Qb)[c>>2],0);e=new Date(e);(M(),Qb)[c+24>>2]=e.getUTCDay();var m=(e.getTime()-Date.UTC(e.getUTCFullYear(),0,1,0,0,0,0))/864E5|0;(M(),Qb)[c+28>>2]=m;c=e.getTime()/1E3;mh((th=c,1<=+Math.abs(th)?0<th?+Math.floor(th/4294967296)>>>0:~~+Math.ceil((th-+(~~th>>>0))/4294967296)>>>0:0));return c>>>0}
|
|
1207
|
+
var fd=(c,e,m,n)=>{var w=(new Date).getFullYear(),B=(new Date(w,0,1)).getTimezoneOffset();w=(new Date(w,6,1)).getTimezoneOffset();var D=Math.max(B,w);(M(),Rb)[c>>2]=60*D;(M(),Qb)[e>>2]=Number(B!=w);e=F=>{var J=Math.abs(F);return`UTC${0<=F?"-":"+"}${String(Math.floor(J/60)).padStart(2,"0")}${String(J%60).padStart(2,"0")}`};c=e(B);e=e(w);w<B?(bj(c,m,17),bj(e,n,17)):(bj(c,n,17),bj(e,m,17))},rd=()=>performance.timeOrigin+performance.now(),od=()=>Date.now(),wj=1;
|
|
1208
|
+
function hd(c,e,m,n){if(!(0<=c&&3>=c))return 28;if(0===c)c=Date.now();else if(wj)c=performance.timeOrigin+performance.now();else return 52;c=Math.round(1E6*c);uh=[c>>>0,(th=c,1<=+Math.abs(th)?0<th?+Math.floor(th/4294967296)>>>0:~~+Math.ceil((th-+(~~th>>>0))/4294967296)>>>0:0)];(M(),Qb)[n>>2]=uh[0];(M(),Qb)[n+4>>2]=uh[1];return 0}
|
|
1209
|
+
var xj=[],md=(c,e,m)=>{xj.length=0;for(var n;n=(M(),Nb)[e++];){var w=105!=n;w&=112!=n;m+=w&&m%8?4:0;xj.push(112==n?(M(),Rb)[m>>2]:105==n?(M(),Qb)[m>>2]:(M(),Tb)[m>>3]);m+=w?8:4}return nj[c](...xj)},nd=()=>{},ud=()=>{Gh+=1},pd=()=>{Gh+=1;throw"unwind";},qd=()=>2147483648,sd=()=>navigator.hardwareConcurrency,td=c=>{var e=(M(),Nb).length;c>>>=0;if(c<=e||2147483648<c)return!1;for(var m=1;4>=m;m*=2){var n=e*(1+.2/m);n=Math.min(n,c+100663296);a:{n=(Math.min(2147483648,65536*Math.ceil(Math.max(c,n)/65536))-
|
|
1210
|
+
rb.buffer.byteLength+65535)/65536|0;try{rb.grow(n);tb();var w=1;break a}catch(B){}w=void 0}if(w)return!0}return!1},yj=(c,e)=>{Gh+=1;return setTimeout(()=>{--Gh;Rh(c)},e)},vd=(c,e,m)=>yj(()=>sh.get(c)(m),e),N,zj=c=>{c.kk=c.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")},Aj=c=>{c.pk=c.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance")},Bj=c=>{var e="EXT_color_buffer_float EXT_conservative_depth EXT_disjoint_timer_query_webgl2 EXT_texture_norm16 NV_shader_noperspective_interpolation WEBGL_clip_cull_distance EXT_clip_control EXT_color_buffer_half_float EXT_depth_clamp EXT_float_blend EXT_polygon_offset_clamp EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic KHR_parallel_shader_compile OES_texture_float_linear WEBGL_blend_func_extended WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_etc1 WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context WEBGL_multi_draw WEBGL_polygon_mode".split(" ");
|
|
1211
|
+
return(c.getSupportedExtensions()||[]).filter(m=>e.includes(m))},Cj=1,Dj=[],Ej=[],Fj=[],Gj=[],Hj=[],Ij=[],Jj=[],Kj={},Lj=[],Mj=[],Nj={},Oj={},Pj=4,Qj=0,Rj=c=>{for(var e=Cj++,m=c.length;m<e;m++)c[m]=null;return e},Tj=(c,e,m,n)=>{for(var w=0;w<c;w++){var B=N[m](),D=B&&Rj(n);B?(B.name=D,n[D]=B):Sj||=1282;(M(),Qb)[e+4*w>>2]=D}},Ya=(c,e)=>{var m=Rg(8);(M(),Rb)[m+4>>2]=Sg();var n={handle:m,attributes:e,version:e.nk,G:c};c.canvas&&(c.canvas.Xb=n);Kj[m]=n;if("undefined"==typeof e.uc||e.uc)if((c=n)||(c=Uj),
|
|
1212
|
+
!c.Mc){c.Mc=!0;e=c.G;e.Qc=e.getExtension("WEBGL_multi_draw");e.xc=e.getExtension("EXT_polygon_offset_clamp");e.wc=e.getExtension("EXT_clip_control");e.jk=e.getExtension("WEBGL_polygon_mode");zj(e);Aj(e);2<=c.version&&(e.ub=e.getExtension("EXT_disjoint_timer_query_webgl2"));if(2>c.version||!e.ub)e.ub=e.getExtension("EXT_disjoint_timer_query");for(var w of Bj(e))w.includes("lose_context")||w.includes("debug")||e.getExtension(w)}return m},Wa=c=>{Uj=Kj[c];G.ctx=N=Uj?.G;return!(c&&!N)},Za=c=>{Uj===Kj[c]&&
|
|
1213
|
+
(Uj=null);"object"==typeof JSEvents&&JSEvents.sk(Kj[c].G.canvas);Kj[c]?.G.canvas&&(Kj[c].G.canvas.Xb=void 0);Qg(Kj[c].handle);Kj[c]=null},Sj,Uj,wd=c=>{Uj==c&&(Uj=0);Za(c)},Id=(c,e)=>{c=Kj[c];e=Xh(e);e.startsWith("GL_")&&(e=e.slice(3));"WEBGL_draw_instanced_base_vertex_base_instance"==e&&zj(N);"WEBGL_multi_draw_instanced_base_vertex_base_instance"==e&&Aj(N);"WEBGL_multi_draw"==e&&(N.Qc=N.getExtension("WEBGL_multi_draw"));"EXT_polygon_offset_clamp"==e&&(N.xc=N.getExtension("EXT_polygon_offset_clamp"));
|
|
1214
|
+
"EXT_clip_control"==e&&(N.wc=N.getExtension("EXT_clip_control"));"WEBGL_polygon_mode"==e&&(N.jk=N.getExtension("WEBGL_polygon_mode"));return!!c.G.getExtension(e)},Jd=()=>Uj?Uj.handle:0,Kd=c=>Wa(c)?0:-5,Vj={},Xj=()=>{if(!Wj){var c={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:ab||"./this.program"},e;for(e in Vj)void 0===Vj[e]?delete c[e]:c[e]=Vj[e];var m=[];for(e in c)m.push(`${e}=${c[e]}`);Wj=m}return Wj},
|
|
1215
|
+
Wj;function Od(c,e){if(sa)return Kh(6,1,c,e);var m=0,n=0,w;for(w of Xj()){var B=e+m;(M(),Rb)[c+n>>2]=B;m+=bj(w,B,Infinity)+1;n+=4}return 0}function Pd(c,e){if(sa)return Kh(7,1,c,e);var m=Xj();(M(),Rb)[c>>2]=m.length;c=0;for(var n of m)c+=cj(n)+1;(M(),Rb)[e>>2]=c;return 0}function Rd(c){return sa?Kh(8,1,c):52}function Sd(c,e,m,n){return sa?Kh(9,1,c,e,m,n):52}function Td(c,e,m,n,w){return sa?Kh(10,1,c,e,m,n,w):70}var Yj=[null,[],[]];
|
|
1216
|
+
function Ud(c,e,m,n){if(sa)return Kh(11,1,c,e,m,n);for(var w=0,B=0;B<m;B++){var D=(M(),Rb)[e>>2],F=(M(),Rb)[e+4>>2];e+=8;for(var J=0;J<F;J++){var O=c,U=(M(),Nb)[D+J],W=Yj[O];0===U||10===U?((1===O?jb:kb)(Wh(W)),W.length=0):W.push(U)}w+=F}(M(),Rb)[n>>2]=w;return 0}
|
|
1217
|
+
var Xd=c=>N.activeTexture(c),Yd=(c,e)=>{N.attachShader(Ej[c],Ij[e])},Zd=(c,e,m)=>{N.bindAttribLocation(Ej[c],e,Xh(m))},$d=(c,e)=>{35051==c?N.Xa=e:35052==c&&(N.fa=e);N.bindBuffer(c,Dj[e])},ae=(c,e,m,n,w)=>{N.bindBufferRange(c,e,Dj[m],n,w)},be=(c,e)=>{N.bindFramebuffer(c,Fj[e])},ce=(c,e)=>{N.bindRenderbuffer(c,Gj[e])},de=(c,e)=>{N.bindSampler(c,Lj[e])},ee=(c,e)=>{N.bindTexture(c,Hj[e])},fe=c=>{N.bindVertexArray(Jj[c])},ge=(c,e,m,n)=>N.blendColor(c,e,m,n),he=c=>N.blendEquation(c),ie=(c,e)=>N.blendEquationSeparate(c,
|
|
1218
|
+
e),je=(c,e)=>N.blendFunc(c,e),ke=(c,e,m,n)=>N.blendFuncSeparate(c,e,m,n),le=(c,e,m,n,w,B,D,F,J,O)=>N.blitFramebuffer(c,e,m,n,w,B,D,F,J,O),me=(c,e,m,n)=>{m&&e?N.bufferData(c,(M(),Nb),n,m,e):N.bufferData(c,e,n)},ne=(c,e,m,n)=>{m&&N.bufferSubData(c,e,(M(),Nb),n,m)},oe=c=>N.checkFramebufferStatus(c),pe=c=>N.clear(c),qe=(c,e,m,n)=>N.clearBufferfi(c,e,m,n),re=(c,e,m)=>{N.clearBufferfv(c,e,(M(),Sb),m>>2)},se=(c,e,m)=>{N.clearBufferiv(c,e,(M(),Qb),m>>2)},te=(c,e,m)=>{N.clearBufferuiv(c,e,(M(),Rb),m>>2)},
|
|
1219
|
+
ue=(c,e,m,n)=>N.clearColor(c,e,m,n),ve=c=>N.clearDepth(c),we=c=>N.clearStencil(c),xe=(c,e,m,n)=>N.clientWaitSync(Mj[c],e,(m>>>0)+4294967296*n),ye=(c,e,m,n)=>{N.colorMask(!!c,!!e,!!m,!!n)},ze=c=>{N.compileShader(Ij[c])},Ae=(c,e,m,n,w,B,D,F,J)=>{N.fa||!F?N.compressedTexSubImage2D(c,e,m,n,w,B,D,F,J):N.compressedTexSubImage2D(c,e,m,n,w,B,D,(M(),Nb),J,F)},Be=(c,e,m,n,w,B,D,F,J,O,U)=>{N.fa?N.compressedTexSubImage3D(c,e,m,n,w,B,D,F,J,O,U):N.compressedTexSubImage3D(c,e,m,n,w,B,D,F,J,(M(),Nb),U,O)},Ce=()=>
|
|
1220
|
+
{var c=Rj(Ej),e=N.createProgram();e.name=c;e.Na=e.La=e.Ma=0;e.nb=1;Ej[c]=e;return c},De=c=>{var e=Rj(Ij);Ij[e]=N.createShader(c);return e},Ee=c=>N.cullFace(c),Fe=(c,e)=>{for(var m=0;m<c;m++){var n=(M(),Qb)[e+4*m>>2],w=Dj[n];w&&(N.deleteBuffer(w),w.name=0,Dj[n]=null,n==N.Xa&&(N.Xa=0),n==N.fa&&(N.fa=0))}},Ge=(c,e)=>{for(var m=0;m<c;++m){var n=(M(),Qb)[e+4*m>>2],w=Fj[n];w&&(N.deleteFramebuffer(w),w.name=0,Fj[n]=null)}},He=c=>{if(c){var e=Ej[c];e?(N.deleteProgram(e),e.name=0,Ej[c]=null):Sj||=1281}},Ie=
|
|
1221
|
+
(c,e)=>{for(var m=0;m<c;m++){var n=(M(),Qb)[e+4*m>>2],w=Gj[n];w&&(N.deleteRenderbuffer(w),w.name=0,Gj[n]=null)}},Je=(c,e)=>{for(var m=0;m<c;m++){var n=(M(),Qb)[e+4*m>>2],w=Lj[n];w&&(N.deleteSampler(w),w.name=0,Lj[n]=null)}},Ke=c=>{if(c){var e=Ij[c];e?(N.deleteShader(e),Ij[c]=null):Sj||=1281}},Le=c=>{if(c){var e=Mj[c];e?(N.deleteSync(e),e.name=0,Mj[c]=null):Sj||=1281}},Me=(c,e)=>{for(var m=0;m<c;m++){var n=(M(),Qb)[e+4*m>>2],w=Hj[n];w&&(N.deleteTexture(w),w.name=0,Hj[n]=null)}},Ne=(c,e)=>{for(var m=
|
|
1222
|
+
0;m<c;m++){var n=(M(),Qb)[e+4*m>>2];N.deleteVertexArray(Jj[n]);Jj[n]=null}},Oe=c=>N.depthFunc(c),Pe=c=>{N.depthMask(!!c)},Qe=(c,e)=>N.depthRange(c,e),Re=c=>N.disable(c),Se=c=>{N.disableVertexAttribArray(c)},Te=(c,e,m)=>{N.drawArrays(c,e,m)},Ue=(c,e,m,n)=>{N.drawArraysInstanced(c,e,m,n)},Zj=[],Ve=(c,e)=>{for(var m=Zj[c],n=0;n<c;n++)m[n]=(M(),Qb)[e+4*n>>2];N.drawBuffers(m)},We=(c,e,m,n)=>{N.drawElements(c,e,m,n)},Xe=(c,e,m,n,w)=>{N.drawElementsInstanced(c,e,m,n,w)},Ye=c=>N.enable(c),Ze=c=>{N.enableVertexAttribArray(c)},
|
|
1223
|
+
$e=(c,e)=>(c=N.fenceSync(c,e))?(e=Rj(Mj),c.name=e,Mj[e]=c,e):0,af=()=>N.flush(),bf=(c,e,m,n)=>{N.framebufferRenderbuffer(c,e,m,Gj[n])},cf=(c,e,m,n,w)=>{N.framebufferTexture2D(c,e,m,Hj[n],w)},df=(c,e,m,n,w)=>{N.framebufferTextureLayer(c,e,Hj[m],n,w)},ef=c=>N.frontFace(c),ff=(c,e)=>{Tj(c,e,"createBuffer",Dj)},gf=(c,e)=>{Tj(c,e,"createFramebuffer",Fj)},hf=(c,e)=>{Tj(c,e,"createRenderbuffer",Gj)},jf=(c,e)=>{Tj(c,e,"createSampler",Lj)},kf=(c,e)=>{Tj(c,e,"createTexture",Hj)},wf=(c,e)=>{Tj(c,e,"createVertexArray",
|
|
1224
|
+
Jj)},xf=c=>N.generateMipmap(c),ak=()=>{var c=Bj(N);return c=c.concat(c.map(e=>"GL_"+e))},bk=(c,e,m)=>{if(e){var n=void 0;switch(c){case 36346:n=1;break;case 36344:0!=m&&1!=m&&(Sj||=1280);return;case 34814:case 36345:n=0;break;case 34466:var w=N.getParameter(34467);n=w?w.length:0;break;case 33309:if(2>Uj.version){Sj||=1282;return}n=ak().length;break;case 33307:case 33308:if(2>Uj.version){Sj||=1280;return}n=33307==c?3:0}if(void 0===n)switch(w=N.getParameter(c),typeof w){case "number":n=w;break;case "boolean":n=
|
|
1225
|
+
w?1:0;break;case "string":Sj||=1280;return;case "object":if(null===w)switch(c){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:n=0;break;default:Sj||=1280;return}else{if(w instanceof Float32Array||w instanceof Uint32Array||w instanceof Int32Array||w instanceof Array){for(c=0;c<w.length;++c)switch(m){case 0:(M(),Qb)[e+4*c>>2]=w[c];break;case 2:(M(),
|
|
1226
|
+
Sb)[e+4*c>>2]=w[c];break;case 4:(M(),sb)[e+c]=w[c]?1:0}return}try{n=w.name|0}catch(B){Sj||=1280;kb(`GL_INVALID_ENUM in glGet${m}v: Unknown object returned from WebGL getParameter(${c})! (error: ${B})`);return}}break;default:Sj||=1280;kb(`GL_INVALID_ENUM in glGet${m}v: Native code calling glGet${m}v(${c}) and it returns ${w} of type ${typeof w}!`);return}switch(m){case 1:m=n;(M(),Rb)[e>>2]=m;c=(M(),Rb)[e>>2];(M(),Rb)[e+4>>2]=(m-c)/4294967296;break;case 0:(M(),Qb)[e>>2]=n;break;case 2:(M(),Sb)[e>>2]=
|
|
1227
|
+
n;break;case 4:(M(),sb)[e]=n?1:0}}else Sj||=1281},yf=(c,e)=>bk(c,e,2),zf=(c,e,m,n)=>{c=N.getFramebufferAttachmentParameter(c,e,m);if(c instanceof WebGLRenderbuffer||c instanceof WebGLTexture)c=c.name|0;(M(),Qb)[n>>2]=c},Af=(c,e)=>bk(c,e,0),Bf=(c,e,m,n)=>{c=N.getProgramInfoLog(Ej[c]);null===c&&(c="(unknown error)");e=0<e&&n?bj(c,n,e):0;m&&((M(),Qb)[m>>2]=e)},Cf=(c,e,m)=>{if(m)if(c>=Cj)Sj||=1281;else if(c=Ej[c],35716==e)c=N.getProgramInfoLog(c),null===c&&(c="(unknown error)"),(M(),Qb)[m>>2]=c.length+
|
|
1228
|
+
1;else if(35719==e){if(!c.Na){var n=N.getProgramParameter(c,35718);for(e=0;e<n;++e)c.Na=Math.max(c.Na,N.getActiveUniform(c,e).name.length+1)}(M(),Qb)[m>>2]=c.Na}else if(35722==e){if(!c.La)for(n=N.getProgramParameter(c,35721),e=0;e<n;++e)c.La=Math.max(c.La,N.getActiveAttrib(c,e).name.length+1);(M(),Qb)[m>>2]=c.La}else if(35381==e){if(!c.Ma)for(n=N.getProgramParameter(c,35382),e=0;e<n;++e)c.Ma=Math.max(c.Ma,N.getActiveUniformBlockName(c,e).length+1);(M(),Qb)[m>>2]=c.Ma}else(M(),Qb)[m>>2]=N.getProgramParameter(c,
|
|
1229
|
+
e);else Sj||=1281},Df=(c,e,m,n)=>{c=N.getShaderInfoLog(Ij[c]);null===c&&(c="(unknown error)");e=0<e&&n?bj(c,n,e):0;m&&((M(),Qb)[m>>2]=e)},Ef=(c,e,m)=>{m?35716==e?(c=N.getShaderInfoLog(Ij[c]),null===c&&(c="(unknown error)"),c=c?c.length+1:0,(M(),Qb)[m>>2]=c):35720==e?(c=(c=N.getShaderSource(Ij[c]))?c.length+1:0,(M(),Qb)[m>>2]=c):(M(),Qb)[m>>2]=N.getShaderParameter(Ij[c],e):Sj||=1281},ck=c=>{var e=cj(c)+1,m=Rg(e);m&&bj(c,m,e);return m},Ff=c=>{var e=Nj[c];if(!e){switch(c){case 7939:e=ck(ak().join(" "));
|
|
1230
|
+
break;case 7936:case 7937:case 37445:case 37446:(e=N.getParameter(c))||(Sj||=1280);e=e?ck(e):0;break;case 7938:e=ck(`OpenGL ES 3.0 (${N.getParameter(7938)})`);break;case 35724:e=N.getParameter(35724);var m=e.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==m&&(3==m[1].length&&(m[1]+="0"),e=`OpenGL ES GLSL ES ${m[1]} (${e})`);e=ck(e);break;default:Sj||=1280}Nj[c]=e}return e},Gf=(c,e)=>{if(2>Uj.version)return Sj||=1282,0;var m=Oj[c];if(m)return 0>e||e>=m.length?(Sj||=1281,0):m[e];switch(c){case 7939:return m=
|
|
1231
|
+
ak().map(ck),m=Oj[c]=m,0>e||e>=m.length?(Sj||=1281,0):m[e];default:return Sj||=1280,0}},Hf=(c,e)=>N.getUniformBlockIndex(Ej[c],Xh(e)),dk=c=>"]"==c.slice(-1)&&c.lastIndexOf("["),If=(c,e)=>{e=Xh(e);if(c=Ej[c]){var m=c,n=m.ua,w=m.Sb,B;if(!n){m.ua=n={};m.Rb={};var D=N.getProgramParameter(m,35718);for(B=0;B<D;++B){var F=N.getActiveUniform(m,B);var J=F.name;F=F.size;var O=dk(J);O=0<O?J.slice(0,O):J;var U=m.nb;m.nb+=F;w[O]=[F,U];for(J=0;J<F;++J)n[U]=J,m.Rb[U++]=O}}m=c.ua;n=0;w=e;B=dk(e);0<B&&(n=parseInt(e.slice(B+
|
|
1232
|
+
1))>>>0,w=e.slice(0,B));if((w=c.Sb[w])&&n<w[0]&&(n+=w[1],m[n]=m[n]||N.getUniformLocation(c,e)))return n}else Sj||=1281;return-1},Jf=(c,e,m)=>{for(var n=Zj[e],w=0;w<e;w++)n[w]=(M(),Qb)[m+4*w>>2];N.invalidateFramebuffer(c,n)},Kf=c=>{c=Ej[c];N.linkProgram(c);c.ua=0;c.Sb={}},Lf=(c,e)=>{3317==c?Pj=e:3314==c&&(Qj=e);N.pixelStorei(c,e)},Mf=(c,e)=>N.polygonOffset(c,e),Nf=c=>N.readBuffer(c),ek=c=>{c-=5120;return 0==c?(M(),sb):1==c?(M(),Nb):2==c?(M(),Ob):4==c?(M(),Qb):6==c?(M(),Sb):5==c||28922==c||28520==c||
|
|
1233
|
+
30779==c||30782==c?(M(),Rb):(M(),Pb)},Of=(c,e,m,n,w,B,D)=>{if(N.Xa)N.readPixels(c,e,m,n,w,B,D);else{var F=ek(B);D>>>=31-Math.clz32(F.BYTES_PER_ELEMENT);N.readPixels(c,e,m,n,w,B,F,D)}},Pf=(c,e,m,n)=>N.renderbufferStorage(c,e,m,n),Qf=(c,e,m,n,w)=>N.renderbufferStorageMultisample(c,e,m,n,w),Rf=(c,e,m)=>{N.samplerParameterf(Lj[c],e,m)},Sf=(c,e,m)=>{N.samplerParameteri(Lj[c],e,m)},Tf=(c,e,m,n)=>N.scissor(c,e,m,n),Uf=(c,e,m,n)=>{for(var w="",B=0;B<e;++B){var D=n?(M(),Rb)[n+4*B>>2]:void 0;w+=Xh((M(),Rb)[m+
|
|
1234
|
+
4*B>>2],D)}N.shaderSource(Ij[c],w)},Vf=(c,e,m)=>N.stencilFunc(c,e,m),Wf=(c,e,m,n)=>N.stencilFuncSeparate(c,e,m,n),Xf=c=>N.stencilMask(c),Yf=(c,e)=>N.stencilMaskSeparate(c,e),Zf=(c,e,m)=>N.stencilOp(c,e,m),$f=(c,e,m,n)=>N.stencilOpSeparate(c,e,m,n),ag=(c,e,m)=>N.texParameteri(c,e,m),bg=(c,e,m,n,w)=>N.texStorage2D(c,e,m,n,w),cg=(c,e,m,n,w,B)=>N.texStorage3D(c,e,m,n,w,B),dg=(c,e,m,n,w,B,D,F,J)=>{if(N.fa)N.texSubImage2D(c,e,m,n,w,B,D,F,J);else if(J){var O=ek(F);N.texSubImage2D(c,e,m,n,w,B,D,F,O,J>>>31-
|
|
1235
|
+
Math.clz32(O.BYTES_PER_ELEMENT))}else{if(J){O=ek(F);var U=B*((Qj||w)*({5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[D-6402]||1)*O.BYTES_PER_ELEMENT+Pj-1&-Pj);J=O.subarray(J>>>31-Math.clz32(O.BYTES_PER_ELEMENT),J+U>>>31-Math.clz32(O.BYTES_PER_ELEMENT))}else J=null;N.texSubImage2D(c,e,m,n,w,B,D,F,J)}},eg=(c,e,m,n,w,B,D,F,J,O,U)=>{if(N.fa)N.texSubImage3D(c,e,m,n,w,B,D,F,J,O,U);else if(U){var W=ek(O);N.texSubImage3D(c,e,m,n,w,B,D,F,J,O,W,U>>>31-Math.clz32(W.BYTES_PER_ELEMENT))}else N.texSubImage3D(c,
|
|
1236
|
+
e,m,n,w,B,D,F,J,O,null)},fg=(c,e)=>{var m=N,n=m.uniform1i;var w=N.sc;if(w){var B=w.ua[c];"number"==typeof B&&(w.ua[c]=B=N.getUniformLocation(w,w.Rb[c]+(0<B?`[${B}]`:"")));c=B}else Sj||=1282,c=void 0;n.call(m,c,e)},gg=(c,e,m)=>{c=Ej[c];N.uniformBlockBinding(c,e,m)},hg=c=>{c=Ej[c];N.useProgram(c);N.sc=c},ig=(c,e)=>{N.vertexAttribDivisor(c,e)},jg=(c,e,m,n,w)=>{N.vertexAttribIPointer(c,e,m,n,w)},kg=(c,e,m,n,w,B)=>{N.vertexAttribPointer(c,e,m,!!n,w,B)},lg=(c,e,m,n)=>N.viewport(c,e,m,n);sa||Oh();
|
|
1237
|
+
(()=>{let c=yi.prototype;Object.assign(c,{isAliasOf:function(m){if(!(this instanceof yi&&m instanceof yi))return!1;var n=this.m.v.o,w=this.m.u;m.m=m.m;var B=m.m.v.o;for(m=m.m.u;n.C;)w=n.va(w),n=n.C;for(;B.C;)m=B.va(m),B=B.C;return n===B&&w===m},clone:function(){this.m.u||wi(this);if(this.m.ia)return this.m.count.value+=1,this;var m=mi,n=Object,w=n.create,B=Object.getPrototypeOf(this),D=this.m;m=m(w.call(n,B,{m:{value:{count:D.count,na:D.na,ia:D.ia,u:D.u,v:D.v,F:D.F,K:D.K}}}));m.m.count.value+=1;m.m.na=
|
|
1238
|
+
!1;return m},["delete"](){this.m.u||wi(this);if(this.m.na&&!this.m.ia)throw new ai("Object already scheduled for deletion");ki(this);var m=this.m;--m.count.value;0===m.count.value&&(m.F?m.K.P(m.F):m.v.o.P(m.u));this.m.ia||(this.m.F=void 0,this.m.u=void 0)},isDeleted:function(){return!this.m.u},deleteLater:function(){this.m.u||wi(this);if(this.m.na&&!this.m.ia)throw new ai("Object already scheduled for deletion");xi.push(this);this.m.na=!0;return this}});const e=Symbol.dispose;e&&(c[e]=c["delete"])})();
|
|
1239
|
+
Object.assign(Mi.prototype,{Cc(c){this.Jb&&(c=this.Jb(c));return c},tb(c){this.P?.(c)},J:pi,s:function(c){function e(){return this.Ka?Li(this.o.N,{v:this.Wc,u:m,K:this,F:c}):Li(this.o.N,{v:this,u:c})}var m=this.Cc(c);if(!m)return this.tb(c),null;var n=Ki(this.o,m);if(void 0!==n){if(0===n.m.count.value)return n.m.u=m,n.m.F=c,n.clone();n=n.clone();this.tb(c);return n}n=this.o.Bc(m);n=zi[n];if(!n)return e.call(this);n=this.Ja?n.qc:n.pointerType;var w=Ji(m,this.o,n.o);return null===w?e.call(this):this.Ka?
|
|
1240
|
+
Li(n.o.N,{v:n,u:w,K:this,F:c}):Li(n.o.N,{v:n,u:w})}});for(let c=0;32>c;++c)Zj.push(Array(c));sa||(G.wasmMemory?rb=G.wasmMemory:rb=new WebAssembly.Memory({initial:(G.INITIAL_MEMORY||16777216)/65536,maximum:32768,shared:!0}),tb());G.noExitRuntime&&(Mh=G.noExitRuntime);G.print&&(jb=G.print);G.printErr&&(kb=G.printErr);G.wasmBinary&&(lb=G.wasmBinary);G.thisProgram&&(ab=G.thisProgram);if(G.preInit)for("function"==typeof G.preInit&&(G.preInit=[G.preInit]);0<G.preInit.length;)G.preInit.shift()();
|
|
1241
|
+
var oj=[Lh,Nh,Th,gc,hc,ic,Od,Pd,Rd,Sd,Td,Ud],nj={356748:()=>{G.riveReplayWorkerListen()},356788:()=>{G.riveReplayCapsArrived()},356827:c=>{G.riveReplayWorkerForget(c)},356869:c=>{G.riveReplaySurfaceRestored(c)},356914:(c,e,m)=>{G.riveReplayWorkerResize(c,e,m)},356964:(c,e,m,n,w)=>{if("undefined"===typeof window||void 0===(window.AudioContext||window.webkitAudioContext))return 0;if("undefined"===typeof window.miniaudio){window.miniaudio={referenceCount:0};window.miniaudio.device_type={};window.miniaudio.device_type.playback=
|
|
1238
1242
|
c;window.miniaudio.device_type.capture=e;window.miniaudio.device_type.duplex=m;window.miniaudio.device_state={};window.miniaudio.device_state.stopped=n;window.miniaudio.device_state.started=w;let B=window.miniaudio;B.devices=[];B.track_device=function(D){for(var F=0;F<B.devices.length;++F)if(null==B.devices[F])return B.devices[F]=D,F;B.devices.push(D);return B.devices.length-1};B.untrack_device_by_index=function(D){for(B.devices[D]=null;0<B.devices.length;)if(null==B.devices[B.devices.length-1])B.devices.pop();
|
|
1239
|
-
else break};B.untrack_device=function(D){for(var F=0;F<B.devices.length;++F)if(B.devices[F]==D)return B.untrack_device_by_index(F)};B.get_device_by_index=function(D){return B.devices[D]};B.unlock_event_types=["touchend","click"];B.unlock=function(){for(var D=0;D<B.devices.length;++D){var F=B.devices[D];null!=F&&null!=F.L&&F.state===B.device_state.started&&F.L.resume().then(()=>{
|
|
1240
|
-
B.unlock,!0)})};B.unlock_event_types.map(function(D){document.addEventListener(D,B.unlock,!0)})}window.miniaudio.referenceCount+=1;return 1},
|
|
1241
|
-
{try{var c=new (window.AudioContext||window.webkitAudioContext),e=c.sampleRate;c.close();return e}catch(m){return 0}},
|
|
1242
|
-
D.qa||0==D.qa.length||D.qa.buffer!==(M(),
|
|
1243
|
+
else break};B.untrack_device=function(D){for(var F=0;F<B.devices.length;++F)if(B.devices[F]==D)return B.untrack_device_by_index(F)};B.get_device_by_index=function(D){return B.devices[D]};B.unlock_event_types=["touchend","click"];B.unlock=function(){for(var D=0;D<B.devices.length;++D){var F=B.devices[D];null!=F&&null!=F.L&&F.state===B.device_state.started&&F.L.resume().then(()=>{eh(F.Eb)},J=>{console.error("Failed to resume audiocontext",J)})}B.unlock_event_types.map(function(J){document.removeEventListener(J,
|
|
1244
|
+
B.unlock,!0)})};B.unlock_event_types.map(function(D){document.addEventListener(D,B.unlock,!0)})}window.miniaudio.referenceCount+=1;return 1},359142:()=>{"undefined"!==typeof window.miniaudio&&(window.miniaudio.unlock_event_types.map(function(c){document.removeEventListener(c,window.miniaudio.unlock,!0)}),--window.miniaudio.referenceCount,0===window.miniaudio.referenceCount&&delete window.miniaudio)},359446:()=>void 0!==navigator.mediaDevices&&void 0!==navigator.mediaDevices.getUserMedia,359550:()=>
|
|
1245
|
+
{try{var c=new (window.AudioContext||window.webkitAudioContext),e=c.sampleRate;c.close();return e}catch(m){return 0}},359721:(c,e,m,n,w,B)=>{if("undefined"===typeof window.miniaudio)return-1;var D={},F={};c==window.miniaudio.device_type.playback&&0!=m&&(F.sampleRate=m);D.L=new (window.AudioContext||window.webkitAudioContext)(F);D.L.suspend();D.state=window.miniaudio.device_state.stopped;m=0;c!=window.miniaudio.device_type.playback&&(m=e);D.W=D.L.createScriptProcessor(n,m,e);D.W.onaudioprocess=function(J){if(null==
|
|
1246
|
+
D.qa||0==D.qa.length||D.qa.buffer!==(M(),Sb).buffer)D.qa=new Float32Array((M(),Sb).buffer,Number(w),n*e);if(c==window.miniaudio.device_type.capture||c==window.miniaudio.device_type.duplex){for(var O=0;O<e;O+=1)for(var U=J.inputBuffer.getChannelData(O),W=D.qa,X=0;X<n;X+=1)W[X*e+O]=U[X];fh(B,n,w)}if(c==window.miniaudio.device_type.playback||c==window.miniaudio.device_type.duplex)for(gh(B,n,w),O=0;O<J.outputBuffer.numberOfChannels;++O)for(U=J.outputBuffer.getChannelData(O),W=D.qa,X=0;X<n;X+=1)U[X]=W[X*
|
|
1243
1247
|
e+O];else for(O=0;O<J.outputBuffer.numberOfChannels;++O)J.outputBuffer.getChannelData(O).fill(0)};c!=window.miniaudio.device_type.capture&&c!=window.miniaudio.device_type.duplex||navigator.mediaDevices.getUserMedia({audio:!0,video:!1}).then(function(J){D.Ra=D.L.createMediaStreamSource(J);D.Ra.connect(D.W);D.W.connect(D.L.destination)}).catch(function(J){console.log("Failed to get user media: "+J)});c==window.miniaudio.device_type.playback&&D.W.connect(D.L.destination);D.Eb=B;return window.miniaudio.track_device(D)},
|
|
1244
|
-
|
|
1245
|
-
c.state=window.miniaudio.device_state.stopped}};function
|
|
1246
|
-
function
|
|
1247
|
-
function
|
|
1248
|
-
function
|
|
1249
|
-
function
|
|
1250
|
-
function
|
|
1251
|
-
function
|
|
1252
|
-
function
|
|
1253
|
-
function
|
|
1254
|
-
function
|
|
1255
|
-
function
|
|
1256
|
-
var
|
|
1257
|
-
function
|
|
1258
|
-
var
|
|
1248
|
+
362665:c=>window.miniaudio.get_device_by_index(c).L.sampleRate,362738:c=>{c=window.miniaudio.get_device_by_index(c);void 0!==c.W&&(c.W.onaudioprocess=function(){},c.W.disconnect(),c.W=void 0);void 0!==c.Ra&&(c.Ra.disconnect(),c.Ra=void 0);c.L.close();c.L=void 0;c.Eb=void 0},363138:c=>{window.miniaudio.untrack_device_by_index(c)},363188:c=>{c=window.miniaudio.get_device_by_index(c);c.L.resume();c.state=window.miniaudio.device_state.started},363327:c=>{c=window.miniaudio.get_device_by_index(c);c.L.suspend();
|
|
1249
|
+
c.state=window.miniaudio.device_state.stopped}};function jd(c,e,m,n,w){var B=G.images;B||(B=new Map,G.images=B);m=new Uint8Array(rb.buffer,m,n);n=new Uint8Array(n);n.set(m);n=new Blob([n],{type:"image/png"});if(w)w=G.imageBlobs,w||(w=new Map,G.imageBlobs=w),w.set(e,n),G.riveReplayWorkerDecodeImage(c,e,n);else{var D=new Image;B.set(e,D);D.src=URL.createObjectURL(n);D.onload=function(){G._setWebImage(c,D.width,D.height)}}}
|
|
1250
|
+
function kd(c,e){var m=G.imageBlobs.get(e),n=new Image;n.src=URL.createObjectURL(m);n.onload=function(){G.images.set(e,n);G._riveWebImagePageDecoded(c,n.width,n.height)}}function Ng(c,e){var m=G.images;m&&(e=m.get(e))&&(c=Kj[c].G,c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,e),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1))}
|
|
1251
|
+
function ld(c){var e=G.images,m=e&&e.get(c);m&&(m.close&&m.close(),e.delete(c));(e=G.imageBlobs)&&e.delete(c)}
|
|
1252
|
+
function Og(c,e,m){e=new Uint8Array(rb.buffer,e,m);var n=new Uint8Array(m);n.set(e);Promise.resolve().then(function(){return createImageBitmap(new Blob([n]))}).then(function(w){var B=(new OffscreenCanvas(w.width,w.height)).getContext("2d");B.drawImage(w,0,0);B=B.getImageData(0,0,w.width,w.height);var D=B.data.length,F=Ug(D);F?((new Uint8Array(rb.buffer,F,D)).set(B.data),Vg(c,w.width,w.height,F,D)):Wg(c)}).catch(function(){Wg(c)})}function Hg(){return performance.timeOrigin}
|
|
1253
|
+
function pg(c){const e=G.riveScripting;if(!e)return 0;const m=(n,w)=>{n=ck(n);w(n);Qg(n)};e.ec({exports:G,Jc:n=>{n=(M(),Rb)[(ah()>>2)+n];return 0===n?void 0:sh.get(n)},Z:()=>(M(),Nb),xb:()=>(M(),Tb),ta:Hh,Qa:Jh,sa:Ih,gb:Rg,ga:Qg,wa:n=>Xh(n),Wb:(n,w,B)=>bj(n,w,B),memory:()=>rb,Yc:(n,w,B)=>m(B,D=>G._rive_web_processor_event(n,w,D)),eb:(n,w)=>m(w,B=>Zg(n,B)),Oc:(n,w)=>m(w,B=>Yg(n,B)),Pc:n=>{n=$g(n);return 0===n?null:Xh(n)},Tc:c});return 1}function qg(){G.riveScripting.fc(()=>Bh,c=>$a[c])}
|
|
1254
|
+
function Dg(c,e,m){G.riveScripting.register(c,(M(),Nb).subarray(e,e+m))}function Eg(c){G.riveScripting?.release(c)}function Fg(c){c=G.riveScripting.start(c);return null===c?0:ck(c)}function zg(c){return G.riveScripting.ba(c)}function wg(c,e){return G.riveScripting.Ic(c,e)}function vg(c,e,m,n,w,B,D){return G.riveScripting.call(c,e,m,n,w,B,D)}function Bg(c,e){G.riveScripting.Zc(c,e)}function Cg(c,e,m,n){return G.riveScripting.read(c,e>>>0,m,n>>>0)}
|
|
1255
|
+
function Mg(c,e,m,n){return G.riveScripting.write(c,e>>>0,m,n>>>0)}function Gg(c,e){return G.riveScripting.fk(c,e>>>0)}function yg(c){return G.riveScripting.Uc(c)}function ng(){return-1<navigator.platform.indexOf("Win")}function xg(c,e,m,n,w,B,D,F,J,O){c=G.riveScripting.runJob(c,e,()=>(M(),Nb).slice(m,m+n),w,(M(),Nb).slice(B,B+D),()=>Atomics.load((M(),Qb),F>>2),J);if(!c.ok)return ck(c.error);O=Xg(O,c.output.length);(M(),Nb).set(c.output,O);return 0}
|
|
1256
|
+
function rg(){const c=G.riveScripting.audioRefusal();return null===c?0:ck(c)}function Ag(c){G.riveScripting.processorEnd(c)}function sg(){return G.riveScripting.audioSampleRate()}function tg(c,e,m,n,w,B,D,F,J,O,U,W,X){c=G.riveScripting.audioStart(c,e,()=>(M(),Nb).slice(m,m+n),w,(M(),Nb).slice(B,B+D),{sampleRate:F,zb:J,channels:O},U,W);if(!c.ok)return ck(c.error);(M(),Rb)[X>>2]=c.id;return 0}function ug(c){G.riveScripting.audioStop(c)}
|
|
1257
|
+
function Kg(c,e,m,n,w,B,D,F,J,O){let U=!1;e=G.riveScripting.workerStart(e,m,()=>(M(),Nb).slice(n,n+w),B,(M(),Nb).slice(D,D+F),{wait:(W,X,pa)=>bh(c,W,X,pa),finished:(W,X)=>{if(!U){U=!0;if(W){const pa=Xg(J,X.length);(M(),Nb).set(X,pa)}ch(c,W)}},ek:()=>dh(c)});if(!e.ok)return ck(e.error);(M(),Rb)[O>>2]=e.id;return 0}function Lg(c,e,m){c=G.riveScripting.workerWake(c,e,m);return null===c?0:ck(c)}function Ig(c){c=G.riveScripting.workerCollect(c);return null===c?0:ck(c)}
|
|
1258
|
+
function Jg(c){G.riveScripting.workerEnd(c)}function Md(c){c=Kj[c].G;const e=c.getExtension("WEBGL_shader_pixel_local_storage");if(e&&e.isCoherent()){if(5==e.framebufferTexturePixelLocalStorageWEBGL.length)return c.Pa=e,!0;console.warn("WEBGL_shader_pixel_local_storage is advertised, but a deprecated version has been detected. Disabling.")}return!1}function Wd(c,e,m,n,w,B){(c=Kj[c].G.Pa)&&c.framebufferTexturePixelLocalStorageWEBGL(e,Hj[m],n,w,B)}
|
|
1259
|
+
function Vd(c,e,m,n,w,B){(c=Kj[c].G.Pa)&&c.framebufferPixelLocalClearValuefvWEBGL(e,[m,n,w,B])}function gd(c,e,m){(c=Kj[c].G.Pa)&&c.beginPixelLocalStorageWEBGL(new Uint32Array(rb.buffer,4*m,e))}function Nd(c,e,m){(c=Kj[c].G.Pa)&&c.endPixelLocalStorageWEBGL(new Uint32Array(rb.buffer,4*m,e))}function Ld(c){c=Kj[c].G;c.Hb=c.getExtension("WEBGL_provoking_vertex");return!!c.Hb}function og(c,e){(c=Kj[c].G.Hb)&&c.provokingVertexWEBGL(e)}
|
|
1260
|
+
var Qg,Rg,Sg,Tg,Fb,Ug,Vg,Wg,Xg,Yg,Zg,$g,ah,bh,ch,dh,eh,fh,gh,Cb,Mb,hh,ih,jh,kh,lh,mh,nh,oh,ph,qh,sh,ec;function mg(c,e,m){var n=qh();try{sh.get(c)(e,m)}catch(w){oh(n);if(w!==w+0)throw w;lh(1,0)}}
|
|
1261
|
+
function Ab(){function c(){G.calledRun=!0;if(!nb&&(Ub(),ub?.(G),G.onRuntimeInitialized?.(),!sa)){if(G.postRun)for("function"==typeof G.postRun&&(G.postRun=[G.postRun]);G.postRun.length;){var e=G.postRun.shift();Sh.push(e)}xh(Sh)}}if(0<zh)Ah=Ab;else if(sa)ub?.(G),Ub();else{if(G.preRun)for("function"==typeof G.preRun&&(G.preRun=[G.preRun]);G.preRun.length;)yh.push(G.preRun.shift());xh(yh);0<zh?Ah=Ab:G.setStatus?(G.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>G.setStatus(""),1);c()},1)):c()}}
|
|
1262
|
+
var Vb;sa||(Vb=await (zb()),Ab());wa?moduleRtn=G:moduleRtn=new Promise((c,e)=>{ub=c;vb=e});
|
|
1259
1263
|
;return moduleRtn}})();
|
|
1260
1264
|
var isPthread=globalThis.self?.name?.startsWith("em-pthread");isPthread&&Rive();
|
|
1261
1265
|
return Rive;
|
|
@@ -1276,7 +1280,7 @@ let riveWorker;
|
|
|
1276
1280
|
/* 6 */
|
|
1277
1281
|
/***/ ((module) => {
|
|
1278
1282
|
|
|
1279
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@rive-app/webgl2-threads","version":"2.49.
|
|
1283
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@rive-app/webgl2-threads","version":"2.49.2","description":"Rive\'s webgl2 based web api, with threads on cross origin isolated pages.","main":"rive.js","homepage":"https://rive.app","repository":{"type":"git","url":"https://github.com/rive-app/rive-wasm/tree/master/js"},"keywords":["rive","animation"],"author":"Rive","contributors":["Luigi Rosso <luigi@rive.app> (https://rive.app)","Maxwell Talbot <max@rive.app> (https://rive.app)","Arthur Vivian <arthur@rive.app> (https://rive.app)","Umberto Sonnino <umberto@rive.app> (https://rive.app)","Matthew Sullivan <matt.j.sullivan@gmail.com> (mailto:matt.j.sullivan@gmail.com)","Chris Dalton <chris@rive.app> (https://rive.app)"],"license":"MIT","files":["rive.js","rive.wasm","rive_fallback.wasm","rive_threads.wasm","rive.js.map","rive.d.ts","rive_advanced.mjs.d.ts","runtimeLoader.d.ts","utils","semantics"],"typings":"rive.d.ts","dependencies":{},"browser":{"fs":false,"path":false}}');
|
|
1280
1284
|
|
|
1281
1285
|
/***/ }),
|
|
1282
1286
|
/* 7 */
|
|
@@ -3421,6 +3425,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
3421
3425
|
/* harmony export */ ImageAssetWrapper: () => (/* reexport safe */ _finalizationRegistry__WEBPACK_IMPORTED_MODULE_4__.ImageAssetWrapper),
|
|
3422
3426
|
/* harmony export */ ImageWrapper: () => (/* reexport safe */ _finalizationRegistry__WEBPACK_IMPORTED_MODULE_4__.ImageWrapper),
|
|
3423
3427
|
/* harmony export */ KeyboardInteractions: () => (/* reexport safe */ _registerKeyboardInteractions__WEBPACK_IMPORTED_MODULE_1__.KeyboardInteractions),
|
|
3428
|
+
/* harmony export */ ReplayPacer: () => (/* reexport safe */ _replayPacer__WEBPACK_IMPORTED_MODULE_6__.ReplayPacer),
|
|
3424
3429
|
/* harmony export */ RiveFont: () => (/* reexport safe */ _riveFont__WEBPACK_IMPORTED_MODULE_5__.RiveFont),
|
|
3425
3430
|
/* harmony export */ createFinalization: () => (/* reexport safe */ _finalizationRegistry__WEBPACK_IMPORTED_MODULE_4__.createFinalization),
|
|
3426
3431
|
/* harmony export */ finalizationRegistry: () => (/* reexport safe */ _finalizationRegistry__WEBPACK_IMPORTED_MODULE_4__.finalizationRegistry),
|
|
@@ -3433,6 +3438,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
3433
3438
|
/* harmony import */ var _sanitizeUrl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
|
|
3434
3439
|
/* harmony import */ var _finalizationRegistry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21);
|
|
3435
3440
|
/* harmony import */ var _riveFont__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(22);
|
|
3441
|
+
/* harmony import */ var _replayPacer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(23);
|
|
3442
|
+
|
|
3436
3443
|
|
|
3437
3444
|
|
|
3438
3445
|
|
|
@@ -5858,6 +5865,137 @@ var RiveFont = /** @class */ (function () {
|
|
|
5858
5865
|
|
|
5859
5866
|
|
|
5860
5867
|
|
|
5868
|
+
/***/ }),
|
|
5869
|
+
/* 23 */
|
|
5870
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5871
|
+
|
|
5872
|
+
__webpack_require__.r(__webpack_exports__);
|
|
5873
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5874
|
+
/* harmony export */ ReplayPacer: () => (/* binding */ ReplayPacer)
|
|
5875
|
+
/* harmony export */ });
|
|
5876
|
+
var kRefreshSamples = 15;
|
|
5877
|
+
// The frames the worker's replay time averages over, plus the three still in
|
|
5878
|
+
// flight when the cadence changes.
|
|
5879
|
+
var kSettleFrames = 12;
|
|
5880
|
+
var kProbeAfterMs = 1000;
|
|
5881
|
+
var kMaxProbeAfterMs = 16000;
|
|
5882
|
+
// A worker only slightly slower than its cadence fills its queue now and then,
|
|
5883
|
+
// a worker that keeps up almost never.
|
|
5884
|
+
var kBackupWindow = 60;
|
|
5885
|
+
var kSaturatedBackups = 3;
|
|
5886
|
+
var median = function (values) {
|
|
5887
|
+
var sorted = values.slice().sort(function (a, b) { return a - b; });
|
|
5888
|
+
return sorted[sorted.length >> 1];
|
|
5889
|
+
};
|
|
5890
|
+
/**
|
|
5891
|
+
* Paces recording to a replay worker slower than the display. Recording as
|
|
5892
|
+
* soon as its queue frees sends frames in bursts, so instead they go out every
|
|
5893
|
+
* N refreshes, with N following the worker's recent replay time.
|
|
5894
|
+
*/
|
|
5895
|
+
var ReplayPacer = /** @class */ (function () {
|
|
5896
|
+
function ReplayPacer() {
|
|
5897
|
+
this.lastTime = 0;
|
|
5898
|
+
this.lastRecord = 0;
|
|
5899
|
+
this.intervals = [];
|
|
5900
|
+
this.divisor = 1;
|
|
5901
|
+
// Frames recorded since the divisor changed, which the replay time still
|
|
5902
|
+
// averages in.
|
|
5903
|
+
this.settle = 0;
|
|
5904
|
+
this.nextProbe = 0;
|
|
5905
|
+
this.probing = false;
|
|
5906
|
+
// Failed probes back off, since each one costs a few uneven frames.
|
|
5907
|
+
this.probeAfter = kProbeAfterMs;
|
|
5908
|
+
// Whether the worker's queue filled since the last decision.
|
|
5909
|
+
this.backedUp = false;
|
|
5910
|
+
this.recentBackups = [];
|
|
5911
|
+
}
|
|
5912
|
+
/**
|
|
5913
|
+
* Called on every animation frame. Returns whether this one should record,
|
|
5914
|
+
* given the worker's replay time and whether its queue has room.
|
|
5915
|
+
*/
|
|
5916
|
+
ReplayPacer.prototype.shouldRecord = function (time, replayMs, accepts) {
|
|
5917
|
+
if (this.lastTime && time > this.lastTime) {
|
|
5918
|
+
this.intervals.push(time - this.lastTime);
|
|
5919
|
+
if (this.intervals.length > kRefreshSamples) {
|
|
5920
|
+
this.intervals.shift();
|
|
5921
|
+
}
|
|
5922
|
+
}
|
|
5923
|
+
this.lastTime = time;
|
|
5924
|
+
if (!accepts) {
|
|
5925
|
+
// A canvas the worker has yet to take refuses frames too.
|
|
5926
|
+
if (replayMs > 0) {
|
|
5927
|
+
this.backedUp = true;
|
|
5928
|
+
}
|
|
5929
|
+
return false;
|
|
5930
|
+
}
|
|
5931
|
+
if (replayMs > 0 && this.intervals.length > 0) {
|
|
5932
|
+
var refresh = median(this.intervals);
|
|
5933
|
+
if (this.settle === 0) {
|
|
5934
|
+
this.adapt(time, replayMs / refresh);
|
|
5935
|
+
}
|
|
5936
|
+
if (this.divisor > 1 &&
|
|
5937
|
+
time - this.lastRecord < (this.divisor - 0.5) * refresh) {
|
|
5938
|
+
return false;
|
|
5939
|
+
}
|
|
5940
|
+
}
|
|
5941
|
+
this.lastRecord = time;
|
|
5942
|
+
this.settle = Math.max(0, this.settle - 1);
|
|
5943
|
+
return true;
|
|
5944
|
+
};
|
|
5945
|
+
ReplayPacer.prototype.adapt = function (time, ratio) {
|
|
5946
|
+
var divisor = this.divisor;
|
|
5947
|
+
var backedUp = this.backedUp;
|
|
5948
|
+
this.backedUp = false;
|
|
5949
|
+
this.recentBackups.push(backedUp);
|
|
5950
|
+
if (this.recentBackups.length > kBackupWindow) {
|
|
5951
|
+
this.recentBackups.shift();
|
|
5952
|
+
}
|
|
5953
|
+
var saturated = this.recentBackups.filter(Boolean).length >= kSaturatedBackups;
|
|
5954
|
+
var lagging = ratio > divisor * 1.1;
|
|
5955
|
+
// A worker that keeps up never fills its queue, however long each frame
|
|
5956
|
+
// takes to finish, so only a lag with a full queue slows the cadence. A
|
|
5957
|
+
// probe fails on either, since it settled at the new cadence.
|
|
5958
|
+
if (this.probing
|
|
5959
|
+
? lagging || backedUp
|
|
5960
|
+
: (lagging && backedUp) || (ratio > divisor && saturated)) {
|
|
5961
|
+
this.probeAfter = this.probing
|
|
5962
|
+
? Math.min(this.probeAfter * 2, kMaxProbeAfterMs)
|
|
5963
|
+
: kProbeAfterMs;
|
|
5964
|
+
this.setDivisor(time, Math.max(divisor + 1, Math.ceil(ratio)));
|
|
5965
|
+
}
|
|
5966
|
+
else if (ratio < (divisor - 1) * 0.9) {
|
|
5967
|
+
// Paced frames no longer overlap, so their replay time is a ceiling
|
|
5968
|
+
// and a faster cadence under it is safe.
|
|
5969
|
+
this.probeAfter = kProbeAfterMs;
|
|
5970
|
+
this.setDivisor(time, Math.max(1, Math.ceil(ratio / 0.9)));
|
|
5971
|
+
}
|
|
5972
|
+
else if (this.probing) {
|
|
5973
|
+
// A worker only slightly too slow takes a while to fill its queue.
|
|
5974
|
+
if (this.recentBackups.length >= kBackupWindow) {
|
|
5975
|
+
this.probing = false;
|
|
5976
|
+
this.probeAfter = kProbeAfterMs;
|
|
5977
|
+
}
|
|
5978
|
+
}
|
|
5979
|
+
else if (divisor > 1 && time >= this.nextProbe) {
|
|
5980
|
+
// Frames that overlap on the GPU can keep up with a cadence shorter
|
|
5981
|
+
// than one frame's replay, which only trying it shows.
|
|
5982
|
+
this.setDivisor(time, divisor - 1);
|
|
5983
|
+
this.probing = true;
|
|
5984
|
+
}
|
|
5985
|
+
};
|
|
5986
|
+
ReplayPacer.prototype.setDivisor = function (time, divisor) {
|
|
5987
|
+
this.divisor = divisor;
|
|
5988
|
+
this.settle = kSettleFrames;
|
|
5989
|
+
this.probing = false;
|
|
5990
|
+
this.backedUp = false;
|
|
5991
|
+
this.recentBackups = [];
|
|
5992
|
+
this.nextProbe = time + this.probeAfter;
|
|
5993
|
+
};
|
|
5994
|
+
return ReplayPacer;
|
|
5995
|
+
}());
|
|
5996
|
+
|
|
5997
|
+
|
|
5998
|
+
|
|
5861
5999
|
/***/ })
|
|
5862
6000
|
/******/ ]);
|
|
5863
6001
|
/************************************************************************/
|
|
@@ -7924,6 +8062,7 @@ var Rive = /** @class */ (function () {
|
|
|
7924
8062
|
this.lastRenderTime = 0;
|
|
7925
8063
|
// Tracks the current animation frame request
|
|
7926
8064
|
this.frameRequestId = null;
|
|
8065
|
+
this.replayPacer = new _utils__WEBPACK_IMPORTED_MODULE_3__.ReplayPacer();
|
|
7927
8066
|
/**
|
|
7928
8067
|
* Used be draw to track when a second of active rendering time has passed.
|
|
7929
8068
|
* Used for debugging purposes
|
|
@@ -9003,7 +9142,7 @@ var Rive = /** @class */ (function () {
|
|
|
9003
9142
|
* @param time the rAF timestamp, or null to draw now without advancing
|
|
9004
9143
|
*/
|
|
9005
9144
|
Rive.prototype.draw = function (time, onSecond) {
|
|
9006
|
-
var _a, _b, _c, _d;
|
|
9145
|
+
var _a, _b, _c, _d, _e, _f;
|
|
9007
9146
|
// Clear the frameRequestId, as we're now rendering a fresh frame
|
|
9008
9147
|
this.frameRequestId = null;
|
|
9009
9148
|
// load() tears the artboard down and re-inits asynchronously; a frame
|
|
@@ -9017,10 +9156,15 @@ var Rive = /** @class */ (function () {
|
|
|
9017
9156
|
this.reloadForRestoredContext();
|
|
9018
9157
|
return;
|
|
9019
9158
|
}
|
|
9020
|
-
// The replay worker has yet to take the canvas,
|
|
9021
|
-
// frames
|
|
9159
|
+
// The replay worker has yet to take the canvas, is still on earlier
|
|
9160
|
+
// frames, or is slower than the display and this frame falls between its
|
|
9161
|
+
// paced ones. Waiting keeps its queue bounded, and the frame that follows
|
|
9022
9162
|
// advances by the whole wait, so playback keeps time.
|
|
9023
|
-
|
|
9163
|
+
var accepts = ((_d = (_c = this.renderer) === null || _c === void 0 ? void 0 : _c.acceptsFrame) === null || _d === void 0 ? void 0 : _d.call(_c)) !== false;
|
|
9164
|
+
var replayMs = (_f = (_e = this.renderer) === null || _e === void 0 ? void 0 : _e.replayMs) === null || _f === void 0 ? void 0 : _f.call(_e);
|
|
9165
|
+
if (time !== null && replayMs !== undefined
|
|
9166
|
+
? !this.replayPacer.shouldRecord(time, replayMs, accepts)
|
|
9167
|
+
: !accepts) {
|
|
9024
9168
|
this.scheduleRendering();
|
|
9025
9169
|
return;
|
|
9026
9170
|
}
|