@splinetool/loader 0.9.132 → 0.9.133

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.
@@ -1,10 +1,10 @@
1
- var Ah=Object.create;var ps=Object.defineProperty;var Nh=Object.getOwnPropertyDescriptor;var Ih=Object.getOwnPropertyNames;var Ph=Object.getPrototypeOf,Oh=Object.prototype.hasOwnProperty;var Mc=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),Ec=(n,t)=>{for(var e in t)ps(n,e,{get:t[e],enumerable:!0})},Bc=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ih(t))!Oh.call(n,o)&&o!==e&&ps(n,o,{get:()=>t[o],enumerable:!(r=Nh(t,o))||r.enumerable});return n};var Ja=(n,t,e)=>(e=n!=null?Ah(Ph(n)):{},Bc(t||!n||!n.__esModule?ps(e,"default",{value:n,enumerable:!0}):e,n)),Ch=n=>Bc(ps({},"__esModule",{value:!0}),n);var km=Mc((qa,jm)=>{(function(n,t){typeof qa=="object"&&typeof jm<"u"?t(qa):typeof define=="function"&&define.amd?define(["exports"],t):t((n=typeof globalThis<"u"?globalThis:n||self).SVDJS={})})(qa,function(n){"use strict";n.SVD=function(t,e,r,o,i){if(e=e===void 0||e,r=r===void 0||r,i=1e-64/(o=o||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var s,l,c,p,a,u,d,f,m,h,g,v,x=t[0].length,w=t.length;if(w<x)throw new TypeError("Invalid matrix: m < n");for(var S=[],b=[],I=[],_=e==="f"?w:x,y=h=d=0;y<w;y++)b[y]=new Array(_).fill(0);for(y=0;y<x;y++)I[y]=new Array(x).fill(0);var P,A=new Array(x).fill(0);for(y=0;y<w;y++)for(s=0;s<x;s++)b[y][s]=t[y][s];for(y=0;y<x;y++){for(S[y]=d,m=0,c=y+1,s=y;s<w;s++)m+=Math.pow(b[s][y],2);if(m<i)d=0;else for(f=(u=b[y][y])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,b[y][y]=u-d,s=c;s<x;s++){for(m=0,l=y;l<w;l++)m+=b[l][y]*b[l][s];for(u=m/f,l=y;l<w;l++)b[l][s]=b[l][s]+u*b[l][y]}for(A[y]=d,m=0,s=c;s<x;s++)m+=Math.pow(b[y][s],2);if(m<i)d=0;else{for(f=(u=b[y][y+1])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,b[y][y+1]=u-d,s=c;s<x;s++)S[s]=b[y][s]/f;for(s=c;s<w;s++){for(m=0,l=c;l<x;l++)m+=b[s][l]*b[y][l];for(l=c;l<x;l++)b[s][l]=b[s][l]+m*S[l]}}h<(g=Math.abs(A[y])+Math.abs(S[y]))&&(h=g)}if(r)for(y=x-1;0<=y;y--){if(d!==0){for(f=b[y][y+1]*d,s=c;s<x;s++)I[s][y]=b[y][s]/f;for(s=c;s<x;s++){for(m=0,l=c;l<x;l++)m+=b[y][l]*I[l][s];for(l=c;l<x;l++)I[l][s]=I[l][s]+m*I[l][y]}}for(s=c;s<x;s++)I[y][s]=0,I[s][y]=0;I[y][y]=1,d=S[y],c=y}if(e){if(e==="f")for(y=x;y<w;y++){for(s=x;s<w;s++)b[y][s]=0;b[y][y]=1}for(y=x-1;0<=y;y--){for(c=y+1,d=A[y],s=c;s<_;s++)b[y][s]=0;if(d!==0){for(f=b[y][y]*d,s=c;s<_;s++){for(m=0,l=c;l<w;l++)m+=b[l][y]*b[l][s];for(u=m/f,l=y;l<w;l++)b[l][s]=b[l][s]+u*b[l][y]}for(s=y;s<w;s++)b[s][y]=b[s][y]/d}else for(s=y;s<w;s++)b[s][y]=0;b[y][y]=b[y][y]+1}}for(o*=h,l=x-1;0<=l;l--)for(var O=0;O<50;O++){for(P=!1,c=l;0<=c;c--){if(Math.abs(S[c])<=o){P=!0;break}if(Math.abs(A[c-1])<=o)break}if(!P){for(a=0,p=c-(m=1),y=c;y<l+1&&(u=m*S[y],S[y]=a*S[y],!(Math.abs(u)<=o));y++)if(d=A[y],A[y]=Math.sqrt(u*u+d*d),a=d/(f=A[y]),m=-u/f,e)for(s=0;s<w;s++)g=b[s][p],v=b[s][y],b[s][p]=g*a+v*m,b[s][y]=-g*m+v*a}if(v=A[l],c===l){if(v<0&&(A[l]=-v,r))for(s=0;s<x;s++)I[s][l]=-I[s][l];break}for(h=A[c],u=(((g=A[l-1])-v)*(g+v)+((d=S[l-1])-(f=S[l]))*(d+f))/(2*f*g),d=Math.sqrt(u*u+1),u=((h-v)*(h+v)+f*(g/(u<0?u-d:u+d)-f))/h,y=c+(m=a=1);y<l+1;y++){if(d=S[y],g=A[y],f=m*d,d*=a,v=Math.sqrt(u*u+f*f),u=h*(a=u/(S[y-1]=v))+d*(m=f/v),d=-h*m+d*a,f=g*m,g*=a,r)for(s=0;s<x;s++)h=I[s][y-1],v=I[s][y],I[s][y-1]=h*a+v*m,I[s][y]=-h*m+v*a;if(v=Math.sqrt(u*u+f*f),u=(a=u/(A[y-1]=v))*d+(m=f/v)*g,h=-m*d+a*g,e)for(s=0;s<w;s++)g=b[s][y-1],v=b[s][y],b[s][y-1]=g*a+v*m,b[s][y]=-g*m+v*a}S[c]=0,S[l]=u,A[l]=h}for(y=0;y<x;y++)A[y]<o&&(A[y]=0);return{u:b,q:A,v:I}},n.VERSION="1.1.1",Object.defineProperty(n,"__esModule",{value:!0})})});var oh=Mc($a=>{(function(){"use strict";var n=function(){this.init()};n.prototype={init:function(){var a=this||t;return a._counter=1e3,a._html5AudioPool=[],a.html5PoolSize=10,a._codecs={},a._howls=[],a._muted=!1,a._volume=1,a._canPlayEvent="canplaythrough",a._navigator=typeof window<"u"&&window.navigator?window.navigator:null,a.masterGain=null,a.noAudio=!1,a.usingWebAudio=!0,a.autoSuspend=!0,a.ctx=null,a.autoUnlock=!0,a._setup(),a},volume:function(a){var u=this||t;if(a=parseFloat(a),u.ctx||p(),typeof a<"u"&&a>=0&&a<=1){if(u._volume=a,u._muted)return u;u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.volume=h._volume*a)}return u}return u._volume},mute:function(a){var u=this||t;u.ctx||p(),u._muted=a,u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a?0:u._volume,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.muted=a?!0:h._muted)}return u},stop:function(){for(var a=this||t,u=0;u<a._howls.length;u++)a._howls[u].stop();return a},unload:function(){for(var a=this||t,u=a._howls.length-1;u>=0;u--)a._howls[u].unload();return a.usingWebAudio&&a.ctx&&typeof a.ctx.close<"u"&&(a.ctx.close(),a.ctx=null,p()),a},codecs:function(a){return(this||t)._codecs[a.replace(/^x-/,"")]},_setup:function(){var a=this||t;if(a.state=a.ctx&&a.ctx.state||"suspended",a._autoSuspend(),!a.usingWebAudio)if(typeof Audio<"u")try{var u=new Audio;typeof u.oncanplaythrough>"u"&&(a._canPlayEvent="canplay")}catch{a.noAudio=!0}else a.noAudio=!0;try{var u=new Audio;u.muted&&(a.noAudio=!0)}catch{}return a.noAudio||a._setupCodecs(),a},_setupCodecs:function(){var a=this||t,u=null;try{u=typeof Audio<"u"?new Audio:null}catch{return a}if(!u||typeof u.canPlayType!="function")return a;var d=u.canPlayType("audio/mpeg;").replace(/^no$/,""),f=a._navigator?a._navigator.userAgent:"",m=f.match(/OPR\/([0-6].)/g),h=m&&parseInt(m[0].split("/")[1],10)<33,g=f.indexOf("Safari")!==-1&&f.indexOf("Chrome")===-1,v=f.match(/Version\/(.*?) /),x=g&&v&&parseInt(v[1],10)<15;return a._codecs={mp3:!!(!h&&(d||u.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!d,opus:!!u.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(u.canPlayType('audio/wav; codecs="1"')||u.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!u.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!u.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(u.canPlayType("audio/x-m4a;")||u.canPlayType("audio/m4a;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(u.canPlayType("audio/x-m4b;")||u.canPlayType("audio/m4b;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(u.canPlayType("audio/x-mp4;")||u.canPlayType("audio/mp4;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!x&&u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!x&&u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!u.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(u.canPlayType("audio/x-flac;")||u.canPlayType("audio/flac;")).replace(/^no$/,"")},a},_unlockAudio:function(){var a=this||t;if(!(a._audioUnlocked||!a.ctx)){a._audioUnlocked=!1,a.autoUnlock=!1,!a._mobileUnloaded&&a.ctx.sampleRate!==44100&&(a._mobileUnloaded=!0,a.unload()),a._scratchBuffer=a.ctx.createBuffer(1,1,22050);var u=function(d){for(;a._html5AudioPool.length<a.html5PoolSize;)try{var f=new Audio;f._unlocked=!0,a._releaseHtml5Audio(f)}catch{a.noAudio=!0;break}for(var m=0;m<a._howls.length;m++)if(!a._howls[m]._webAudio)for(var h=a._howls[m]._getSoundIds(),g=0;g<h.length;g++){var v=a._howls[m]._soundById(h[g]);v&&v._node&&!v._node._unlocked&&(v._node._unlocked=!0,v._node.load())}a._autoResume();var x=a.ctx.createBufferSource();x.buffer=a._scratchBuffer,x.connect(a.ctx.destination),typeof x.start>"u"?x.noteOn(0):x.start(0),typeof a.ctx.resume=="function"&&a.ctx.resume(),x.onended=function(){x.disconnect(0),a._audioUnlocked=!0,document.removeEventListener("touchstart",u,!0),document.removeEventListener("touchend",u,!0),document.removeEventListener("click",u,!0),document.removeEventListener("keydown",u,!0);for(var w=0;w<a._howls.length;w++)a._howls[w]._emit("unlock")}};return document.addEventListener("touchstart",u,!0),document.addEventListener("touchend",u,!0),document.addEventListener("click",u,!0),document.addEventListener("keydown",u,!0),a}},_obtainHtml5Audio:function(){var a=this||t;if(a._html5AudioPool.length)return a._html5AudioPool.pop();var u=new Audio().play();return u&&typeof Promise<"u"&&(u instanceof Promise||typeof u.then=="function")&&u.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(a){var u=this||t;return a._unlocked&&u._html5AudioPool.push(a),u},_autoSuspend:function(){var a=this;if(!(!a.autoSuspend||!a.ctx||typeof a.ctx.suspend>"u"||!t.usingWebAudio)){for(var u=0;u<a._howls.length;u++)if(a._howls[u]._webAudio){for(var d=0;d<a._howls[u]._sounds.length;d++)if(!a._howls[u]._sounds[d]._paused)return a}return a._suspendTimer&&clearTimeout(a._suspendTimer),a._suspendTimer=setTimeout(function(){if(!!a.autoSuspend){a._suspendTimer=null,a.state="suspending";var f=function(){a.state="suspended",a._resumeAfterSuspend&&(delete a._resumeAfterSuspend,a._autoResume())};a.ctx.suspend().then(f,f)}},3e4),a}},_autoResume:function(){var a=this;if(!(!a.ctx||typeof a.ctx.resume>"u"||!t.usingWebAudio))return a.state==="running"&&a.ctx.state!=="interrupted"&&a._suspendTimer?(clearTimeout(a._suspendTimer),a._suspendTimer=null):a.state==="suspended"||a.state==="running"&&a.ctx.state==="interrupted"?(a.ctx.resume().then(function(){a.state="running";for(var u=0;u<a._howls.length;u++)a._howls[u]._emit("resume")}),a._suspendTimer&&(clearTimeout(a._suspendTimer),a._suspendTimer=null)):a.state==="suspending"&&(a._resumeAfterSuspend=!0),a}};var t=new n,e=function(a){var u=this;if(!a.src||a.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}u.init(a)};e.prototype={init:function(a){var u=this;return t.ctx||p(),u._autoplay=a.autoplay||!1,u._format=typeof a.format!="string"?a.format:[a.format],u._html5=a.html5||!1,u._muted=a.mute||!1,u._loop=a.loop||!1,u._pool=a.pool||5,u._preload=typeof a.preload=="boolean"||a.preload==="metadata"?a.preload:!0,u._rate=a.rate||1,u._sprite=a.sprite||{},u._src=typeof a.src!="string"?a.src:[a.src],u._volume=a.volume!==void 0?a.volume:1,u._xhr={method:a.xhr&&a.xhr.method?a.xhr.method:"GET",headers:a.xhr&&a.xhr.headers?a.xhr.headers:null,withCredentials:a.xhr&&a.xhr.withCredentials?a.xhr.withCredentials:!1},u._duration=0,u._state="unloaded",u._sounds=[],u._endTimers={},u._queue=[],u._playLock=!1,u._onend=a.onend?[{fn:a.onend}]:[],u._onfade=a.onfade?[{fn:a.onfade}]:[],u._onload=a.onload?[{fn:a.onload}]:[],u._onloaderror=a.onloaderror?[{fn:a.onloaderror}]:[],u._onplayerror=a.onplayerror?[{fn:a.onplayerror}]:[],u._onpause=a.onpause?[{fn:a.onpause}]:[],u._onplay=a.onplay?[{fn:a.onplay}]:[],u._onstop=a.onstop?[{fn:a.onstop}]:[],u._onmute=a.onmute?[{fn:a.onmute}]:[],u._onvolume=a.onvolume?[{fn:a.onvolume}]:[],u._onrate=a.onrate?[{fn:a.onrate}]:[],u._onseek=a.onseek?[{fn:a.onseek}]:[],u._onunlock=a.onunlock?[{fn:a.onunlock}]:[],u._onresume=[],u._webAudio=t.usingWebAudio&&!u._html5,typeof t.ctx<"u"&&t.ctx&&t.autoUnlock&&t._unlockAudio(),t._howls.push(u),u._autoplay&&u._queue.push({event:"play",action:function(){u.play()}}),u._preload&&u._preload!=="none"&&u.load(),u},load:function(){var a=this,u=null;if(t.noAudio){a._emit("loaderror",null,"No audio support.");return}typeof a._src=="string"&&(a._src=[a._src]);for(var d=0;d<a._src.length;d++){var f,m;if(a._format&&a._format[d])f=a._format[d];else{if(m=a._src[d],typeof m!="string"){a._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}f=/^data:audio\/([^;,]+);/i.exec(m),f||(f=/\.([^.]+)$/.exec(m.split("?",1)[0])),f&&(f=f[1].toLowerCase())}if(f||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),f&&t.codecs(f)){u=a._src[d];break}}if(!u){a._emit("loaderror",null,"No codec support for selected audio sources.");return}return a._src=u,a._state="loading",window.location.protocol==="https:"&&u.slice(0,5)==="http:"&&(a._html5=!0,a._webAudio=!1),new r(a),a._webAudio&&i(a),a},play:function(a,u){var d=this,f=null;if(typeof a=="number")f=a,a=null;else{if(typeof a=="string"&&d._state==="loaded"&&!d._sprite[a])return null;if(typeof a>"u"&&(a="__default",!d._playLock)){for(var m=0,h=0;h<d._sounds.length;h++)d._sounds[h]._paused&&!d._sounds[h]._ended&&(m++,f=d._sounds[h]._id);m===1?a=null:f=null}}var g=f?d._soundById(f):d._inactiveSound();if(!g)return null;if(f&&!a&&(a=g._sprite||"__default"),d._state!=="loaded"){g._sprite=a,g._ended=!1;var v=g._id;return d._queue.push({event:"play",action:function(){d.play(v)}}),v}if(f&&!g._paused)return u||d._loadQueue("play"),g._id;d._webAudio&&t._autoResume();var x=Math.max(0,g._seek>0?g._seek:d._sprite[a][0]/1e3),w=Math.max(0,(d._sprite[a][0]+d._sprite[a][1])/1e3-x),S=w*1e3/Math.abs(g._rate),b=d._sprite[a][0]/1e3,I=(d._sprite[a][0]+d._sprite[a][1])/1e3;g._sprite=a,g._ended=!1;var _=function(){g._paused=!1,g._seek=x,g._start=b,g._stop=I,g._loop=!!(g._loop||d._sprite[a][2])};if(x>=I){d._ended(g);return}var y=g._node;if(d._webAudio){var P=function(){d._playLock=!1,_(),d._refreshBuffer(g);var L=g._muted||d._muted?0:g._volume;y.gain.setValueAtTime(L,t.ctx.currentTime),g._playStart=t.ctx.currentTime,typeof y.bufferSource.start>"u"?g._loop?y.bufferSource.noteGrainOn(0,x,86400):y.bufferSource.noteGrainOn(0,x,w):g._loop?y.bufferSource.start(0,x,86400):y.bufferSource.start(0,x,w),S!==1/0&&(d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),S)),u||setTimeout(function(){d._emit("play",g._id),d._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?P():(d._playLock=!0,d.once("resume",P),d._clearTimer(g._id))}else{var A=function(){y.currentTime=x,y.muted=g._muted||d._muted||t._muted||y.muted,y.volume=g._volume*t.volume(),y.playbackRate=g._rate;try{var L=y.play();if(L&&typeof Promise<"u"&&(L instanceof Promise||typeof L.then=="function")?(d._playLock=!0,_(),L.then(function(){d._playLock=!1,y._unlocked=!0,u?d._loadQueue():d._emit("play",g._id)}).catch(function(){d._playLock=!1,d._emit("playerror",g._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),g._ended=!0,g._paused=!0})):u||(d._playLock=!1,_(),d._emit("play",g._id)),y.playbackRate=g._rate,y.paused){d._emit("playerror",g._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}a!=="__default"||g._loop?d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),S):(d._endTimers[g._id]=function(){d._ended(g),y.removeEventListener("ended",d._endTimers[g._id],!1)},y.addEventListener("ended",d._endTimers[g._id],!1))}catch(B){d._emit("playerror",g._id,B)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=d._src,y.load());var O=window&&window.ejecta||!y.readyState&&t._navigator.isCocoonJS;if(y.readyState>=3||O)A();else{d._playLock=!0,d._state="loading";var T=function(){d._state="loaded",A(),y.removeEventListener(t._canPlayEvent,T,!1)};y.addEventListener(t._canPlayEvent,T,!1),d._clearTimer(g._id)}}return g._id},pause:function(a){var u=this;if(u._state!=="loaded"||u._playLock)return u._queue.push({event:"pause",action:function(){u.pause(a)}}),u;for(var d=u._getSoundIds(a),f=0;f<d.length;f++){u._clearTimer(d[f]);var m=u._soundById(d[f]);if(m&&!m._paused&&(m._seek=u.seek(d[f]),m._rateSeek=0,m._paused=!0,u._stopFade(d[f]),m._node))if(u._webAudio){if(!m._node.bufferSource)continue;typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),u._cleanBuffer(m._node)}else(!isNaN(m._node.duration)||m._node.duration===1/0)&&m._node.pause();arguments[1]||u._emit("pause",m?m._id:null)}return u},stop:function(a,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"stop",action:function(){d.stop(a)}}),d;for(var f=d._getSoundIds(a),m=0;m<f.length;m++){d._clearTimer(f[m]);var h=d._soundById(f[m]);h&&(h._seek=h._start||0,h._rateSeek=0,h._paused=!0,h._ended=!0,d._stopFade(f[m]),h._node&&(d._webAudio?h._node.bufferSource&&(typeof h._node.bufferSource.stop>"u"?h._node.bufferSource.noteOff(0):h._node.bufferSource.stop(0),d._cleanBuffer(h._node)):(!isNaN(h._node.duration)||h._node.duration===1/0)&&(h._node.currentTime=h._start||0,h._node.pause(),h._node.duration===1/0&&d._clearSound(h._node))),u||d._emit("stop",h._id))}return d},mute:function(a,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"mute",action:function(){d.mute(a,u)}}),d;if(typeof u>"u")if(typeof a=="boolean")d._muted=a;else return d._muted;for(var f=d._getSoundIds(u),m=0;m<f.length;m++){var h=d._soundById(f[m]);h&&(h._muted=a,h._interval&&d._stopFade(h._id),d._webAudio&&h._node?h._node.gain.setValueAtTime(a?0:h._volume,t.ctx.currentTime):h._node&&(h._node.muted=t._muted?!0:a),d._emit("mute",h._id))}return d},volume:function(){var a=this,u=arguments,d,f;if(u.length===0)return a._volume;if(u.length===1||u.length===2&&typeof u[1]>"u"){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):d=parseFloat(u[0])}else u.length>=2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));var g;if(typeof d<"u"&&d>=0&&d<=1){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"volume",action:function(){a.volume.apply(a,u)}}),a;typeof f>"u"&&(a._volume=d),f=a._getSoundIds(f);for(var v=0;v<f.length;v++)g=a._soundById(f[v]),g&&(g._volume=d,u[2]||a._stopFade(f[v]),a._webAudio&&g._node&&!g._muted?g._node.gain.setValueAtTime(d,t.ctx.currentTime):g._node&&!g._muted&&(g._node.volume=d*t.volume()),a._emit("volume",g._id))}else return g=f?a._soundById(f):a._sounds[0],g?g._volume:0;return a},fade:function(a,u,d,f){var m=this;if(m._state!=="loaded"||m._playLock)return m._queue.push({event:"fade",action:function(){m.fade(a,u,d,f)}}),m;a=Math.min(Math.max(0,parseFloat(a)),1),u=Math.min(Math.max(0,parseFloat(u)),1),d=parseFloat(d),m.volume(a,f);for(var h=m._getSoundIds(f),g=0;g<h.length;g++){var v=m._soundById(h[g]);if(v){if(f||m._stopFade(h[g]),m._webAudio&&!v._muted){var x=t.ctx.currentTime,w=x+d/1e3;v._volume=a,v._node.gain.setValueAtTime(a,x),v._node.gain.linearRampToValueAtTime(u,w)}m._startFadeInterval(v,a,u,d,h[g],typeof f>"u")}}return m},_startFadeInterval:function(a,u,d,f,m,h){var g=this,v=u,x=d-u,w=Math.abs(x/.01),S=Math.max(4,w>0?f/w:f),b=Date.now();a._fadeTo=d,a._interval=setInterval(function(){var I=(Date.now()-b)/f;b=Date.now(),v+=x*I,v=Math.round(v*100)/100,x<0?v=Math.max(d,v):v=Math.min(d,v),g._webAudio?a._volume=v:g.volume(v,a._id,!0),h&&(g._volume=v),(d<u&&v<=d||d>u&&v>=d)&&(clearInterval(a._interval),a._interval=null,a._fadeTo=null,g.volume(d,a._id),g._emit("fade",a._id))},S)},_stopFade:function(a){var u=this,d=u._soundById(a);return d&&d._interval&&(u._webAudio&&d._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(d._interval),d._interval=null,u.volume(d._fadeTo,a),d._fadeTo=null,u._emit("fade",a)),u},loop:function(){var a=this,u=arguments,d,f,m;if(u.length===0)return a._loop;if(u.length===1)if(typeof u[0]=="boolean")d=u[0],a._loop=d;else return m=a._soundById(parseInt(u[0],10)),m?m._loop:!1;else u.length===2&&(d=u[0],f=parseInt(u[1],10));for(var h=a._getSoundIds(f),g=0;g<h.length;g++)m=a._soundById(h[g]),m&&(m._loop=d,a._webAudio&&m._node&&m._node.bufferSource&&(m._node.bufferSource.loop=d,d&&(m._node.bufferSource.loopStart=m._start||0,m._node.bufferSource.loopEnd=m._stop,a.playing(h[g])&&(a.pause(h[g],!0),a.play(h[g],!0)))));return a},rate:function(){var a=this,u=arguments,d,f;if(u.length===0)f=a._sounds[0]._id;else if(u.length===1){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):d=parseFloat(u[0])}else u.length===2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));var g;if(typeof d=="number"){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"rate",action:function(){a.rate.apply(a,u)}}),a;typeof f>"u"&&(a._rate=d),f=a._getSoundIds(f);for(var v=0;v<f.length;v++)if(g=a._soundById(f[v]),g){a.playing(f[v])&&(g._rateSeek=a.seek(f[v]),g._playStart=a._webAudio?t.ctx.currentTime:g._playStart),g._rate=d,a._webAudio&&g._node&&g._node.bufferSource?g._node.bufferSource.playbackRate.setValueAtTime(d,t.ctx.currentTime):g._node&&(g._node.playbackRate=d);var x=a.seek(f[v]),w=(a._sprite[g._sprite][0]+a._sprite[g._sprite][1])/1e3-x,S=w*1e3/Math.abs(g._rate);(a._endTimers[f[v]]||!g._paused)&&(a._clearTimer(f[v]),a._endTimers[f[v]]=setTimeout(a._ended.bind(a,g),S)),a._emit("rate",g._id)}}else return g=a._soundById(f),g?g._rate:a._rate;return a},seek:function(){var a=this,u=arguments,d,f;if(u.length===0)a._sounds.length&&(f=a._sounds[0]._id);else if(u.length===1){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):a._sounds.length&&(f=a._sounds[0]._id,d=parseFloat(u[0]))}else u.length===2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));if(typeof f>"u")return 0;if(typeof d=="number"&&(a._state!=="loaded"||a._playLock))return a._queue.push({event:"seek",action:function(){a.seek.apply(a,u)}}),a;var g=a._soundById(f);if(g)if(typeof d=="number"&&d>=0){var v=a.playing(f);v&&a.pause(f,!0),g._seek=d,g._ended=!1,a._clearTimer(f),!a._webAudio&&g._node&&!isNaN(g._node.duration)&&(g._node.currentTime=d);var x=function(){v&&a.play(f,!0),a._emit("seek",f)};if(v&&!a._webAudio){var w=function(){a._playLock?setTimeout(w,0):x()};setTimeout(w,0)}else x()}else if(a._webAudio){var S=a.playing(f)?t.ctx.currentTime-g._playStart:0,b=g._rateSeek?g._rateSeek-g._seek:0;return g._seek+(b+S*Math.abs(g._rate))}else return g._node.currentTime;return a},playing:function(a){var u=this;if(typeof a=="number"){var d=u._soundById(a);return d?!d._paused:!1}for(var f=0;f<u._sounds.length;f++)if(!u._sounds[f]._paused)return!0;return!1},duration:function(a){var u=this,d=u._duration,f=u._soundById(a);return f&&(d=u._sprite[f._sprite][1]/1e3),d},state:function(){return this._state},unload:function(){for(var a=this,u=a._sounds,d=0;d<u.length;d++)u[d]._paused||a.stop(u[d]._id),a._webAudio||(a._clearSound(u[d]._node),u[d]._node.removeEventListener("error",u[d]._errorFn,!1),u[d]._node.removeEventListener(t._canPlayEvent,u[d]._loadFn,!1),u[d]._node.removeEventListener("ended",u[d]._endFn,!1),t._releaseHtml5Audio(u[d]._node)),delete u[d]._node,a._clearTimer(u[d]._id);var f=t._howls.indexOf(a);f>=0&&t._howls.splice(f,1);var m=!0;for(d=0;d<t._howls.length;d++)if(t._howls[d]._src===a._src||a._src.indexOf(t._howls[d]._src)>=0){m=!1;break}return o&&m&&delete o[a._src],t.noAudio=!1,a._state="unloaded",a._sounds=[],a=null,null},on:function(a,u,d,f){var m=this,h=m["_on"+a];return typeof u=="function"&&h.push(f?{id:d,fn:u,once:f}:{id:d,fn:u}),m},off:function(a,u,d){var f=this,m=f["_on"+a],h=0;if(typeof u=="number"&&(d=u,u=null),u||d)for(h=0;h<m.length;h++){var g=d===m[h].id;if(u===m[h].fn&&g||!u&&g){m.splice(h,1);break}}else if(a)f["_on"+a]=[];else{var v=Object.keys(f);for(h=0;h<v.length;h++)v[h].indexOf("_on")===0&&Array.isArray(f[v[h]])&&(f[v[h]]=[])}return f},once:function(a,u,d){var f=this;return f.on(a,u,d,1),f},_emit:function(a,u,d){for(var f=this,m=f["_on"+a],h=m.length-1;h>=0;h--)(!m[h].id||m[h].id===u||a==="load")&&(setTimeout(function(g){g.call(this,u,d)}.bind(f,m[h].fn),0),m[h].once&&f.off(a,m[h].fn,m[h].id));return f._loadQueue(a),f},_loadQueue:function(a){var u=this;if(u._queue.length>0){var d=u._queue[0];d.event===a&&(u._queue.shift(),u._loadQueue()),a||d.action()}return u},_ended:function(a){var u=this,d=a._sprite;if(!u._webAudio&&a._node&&!a._node.paused&&!a._node.ended&&a._node.currentTime<a._stop)return setTimeout(u._ended.bind(u,a),100),u;var f=!!(a._loop||u._sprite[d][2]);if(u._emit("end",a._id),!u._webAudio&&f&&u.stop(a._id,!0).play(a._id),u._webAudio&&f){u._emit("play",a._id),a._seek=a._start||0,a._rateSeek=0,a._playStart=t.ctx.currentTime;var m=(a._stop-a._start)*1e3/Math.abs(a._rate);u._endTimers[a._id]=setTimeout(u._ended.bind(u,a),m)}return u._webAudio&&!f&&(a._paused=!0,a._ended=!0,a._seek=a._start||0,a._rateSeek=0,u._clearTimer(a._id),u._cleanBuffer(a._node),t._autoSuspend()),!u._webAudio&&!f&&u.stop(a._id,!0),u},_clearTimer:function(a){var u=this;if(u._endTimers[a]){if(typeof u._endTimers[a]!="function")clearTimeout(u._endTimers[a]);else{var d=u._soundById(a);d&&d._node&&d._node.removeEventListener("ended",u._endTimers[a],!1)}delete u._endTimers[a]}return u},_soundById:function(a){for(var u=this,d=0;d<u._sounds.length;d++)if(a===u._sounds[d]._id)return u._sounds[d];return null},_inactiveSound:function(){var a=this;a._drain();for(var u=0;u<a._sounds.length;u++)if(a._sounds[u]._ended)return a._sounds[u].reset();return new r(a)},_drain:function(){var a=this,u=a._pool,d=0,f=0;if(!(a._sounds.length<u)){for(f=0;f<a._sounds.length;f++)a._sounds[f]._ended&&d++;for(f=a._sounds.length-1;f>=0;f--){if(d<=u)return;a._sounds[f]._ended&&(a._webAudio&&a._sounds[f]._node&&a._sounds[f]._node.disconnect(0),a._sounds.splice(f,1),d--)}}},_getSoundIds:function(a){var u=this;if(typeof a>"u"){for(var d=[],f=0;f<u._sounds.length;f++)d.push(u._sounds[f]._id);return d}else return[a]},_refreshBuffer:function(a){var u=this;return a._node.bufferSource=t.ctx.createBufferSource(),a._node.bufferSource.buffer=o[u._src],a._panner?a._node.bufferSource.connect(a._panner):a._node.bufferSource.connect(a._node),a._node.bufferSource.loop=a._loop,a._loop&&(a._node.bufferSource.loopStart=a._start||0,a._node.bufferSource.loopEnd=a._stop||0),a._node.bufferSource.playbackRate.setValueAtTime(a._rate,t.ctx.currentTime),u},_cleanBuffer:function(a){var u=this,d=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&a.bufferSource&&(a.bufferSource.onended=null,a.bufferSource.disconnect(0),d))try{a.bufferSource.buffer=t._scratchBuffer}catch{}return a.bufferSource=null,u},_clearSound:function(a){var u=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);u||(a.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(a){this._parent=a,this.init()};r.prototype={init:function(){var a=this,u=a._parent;return a._muted=u._muted,a._loop=u._loop,a._volume=u._volume,a._rate=u._rate,a._seek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,u._sounds.push(a),a.create(),a},create:function(){var a=this,u=a._parent,d=t._muted||a._muted||a._parent._muted?0:a._volume;return u._webAudio?(a._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),a._node.gain.setValueAtTime(d,t.ctx.currentTime),a._node.paused=!0,a._node.connect(t.masterGain)):t.noAudio||(a._node=t._obtainHtml5Audio(),a._errorFn=a._errorListener.bind(a),a._node.addEventListener("error",a._errorFn,!1),a._loadFn=a._loadListener.bind(a),a._node.addEventListener(t._canPlayEvent,a._loadFn,!1),a._endFn=a._endListener.bind(a),a._node.addEventListener("ended",a._endFn,!1),a._node.src=u._src,a._node.preload=u._preload===!0?"auto":u._preload,a._node.volume=d*t.volume(),a._node.load()),a},reset:function(){var a=this,u=a._parent;return a._muted=u._muted,a._loop=u._loop,a._volume=u._volume,a._rate=u._rate,a._seek=0,a._rateSeek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,a},_errorListener:function(){var a=this;a._parent._emit("loaderror",a._id,a._node.error?a._node.error.code:0),a._node.removeEventListener("error",a._errorFn,!1)},_loadListener:function(){var a=this,u=a._parent;u._duration=Math.ceil(a._node.duration*10)/10,Object.keys(u._sprite).length===0&&(u._sprite={__default:[0,u._duration*1e3]}),u._state!=="loaded"&&(u._state="loaded",u._emit("load"),u._loadQueue()),a._node.removeEventListener(t._canPlayEvent,a._loadFn,!1)},_endListener:function(){var a=this,u=a._parent;u._duration===1/0&&(u._duration=Math.ceil(a._node.duration*10)/10,u._sprite.__default[1]===1/0&&(u._sprite.__default[1]=u._duration*1e3),u._ended(a)),a._node.removeEventListener("ended",a._endFn,!1)}};var o={},i=function(a){var u=a._src;if(o[u]){a._duration=o[u].duration,c(a);return}if(/^data:[^;]+;base64,/.test(u)){for(var d=atob(u.split(",")[1]),f=new Uint8Array(d.length),m=0;m<d.length;++m)f[m]=d.charCodeAt(m);l(f.buffer,a)}else{var h=new XMLHttpRequest;h.open(a._xhr.method,u,!0),h.withCredentials=a._xhr.withCredentials,h.responseType="arraybuffer",a._xhr.headers&&Object.keys(a._xhr.headers).forEach(function(g){h.setRequestHeader(g,a._xhr.headers[g])}),h.onload=function(){var g=(h.status+"")[0];if(g!=="0"&&g!=="2"&&g!=="3"){a._emit("loaderror",null,"Failed loading audio file with status: "+h.status+".");return}l(h.response,a)},h.onerror=function(){a._webAudio&&(a._html5=!0,a._webAudio=!1,a._sounds=[],delete o[u],a.load())},s(h)}},s=function(a){try{a.send()}catch{a.onerror()}},l=function(a,u){var d=function(){u._emit("loaderror",null,"Decoding audio data failed.")},f=function(m){m&&u._sounds.length>0?(o[u._src]=m,c(u,m)):d()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(a).then(f).catch(d):t.ctx.decodeAudioData(a,f,d)},c=function(a,u){u&&!a._duration&&(a._duration=u.duration),Object.keys(a._sprite).length===0&&(a._sprite={__default:[0,a._duration*1e3]}),a._state!=="loaded"&&(a._state="loaded",a._emit("load"),a._loadQueue())},p=function(){if(!!t.usingWebAudio){try{typeof AudioContext<"u"?t.ctx=new AudioContext:typeof webkitAudioContext<"u"?t.ctx=new webkitAudioContext:t.usingWebAudio=!1}catch{t.usingWebAudio=!1}t.ctx||(t.usingWebAudio=!1);var a=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),u=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),d=u?parseInt(u[1],10):null;if(a&&d&&d<9){var f=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!f&&(t.usingWebAudio=!1)}t.usingWebAudio&&(t.masterGain=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),t.masterGain.gain.setValueAtTime(t._muted?0:t._volume,t.ctx.currentTime),t.masterGain.connect(t.ctx.destination)),t._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:t,Howl:e}}),typeof $a<"u"&&($a.Howler=t,$a.Howl=e),typeof global<"u"?(global.HowlerGlobal=n,global.Howler=t,global.Howl=e,global.Sound=r):typeof window<"u"&&(window.HowlerGlobal=n,window.Howler=t,window.Howl=e,window.Sound=r)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var r=e._howls.length-1;r>=0;r--)e._howls[r].stereo(t);return e},HowlerGlobal.prototype.pos=function(t,e,r){var o=this;if(!o.ctx||!o.ctx.listener)return o;if(e=typeof e!="number"?o._pos[1]:e,r=typeof r!="number"?o._pos[2]:r,typeof t=="number")o._pos=[t,e,r],typeof o.ctx.listener.positionX<"u"?(o.ctx.listener.positionX.setTargetAtTime(o._pos[0],Howler.ctx.currentTime,.1),o.ctx.listener.positionY.setTargetAtTime(o._pos[1],Howler.ctx.currentTime,.1),o.ctx.listener.positionZ.setTargetAtTime(o._pos[2],Howler.ctx.currentTime,.1)):o.ctx.listener.setPosition(o._pos[0],o._pos[1],o._pos[2]);else return o._pos;return o},HowlerGlobal.prototype.orientation=function(t,e,r,o,i,s){var l=this;if(!l.ctx||!l.ctx.listener)return l;var c=l._orientation;if(e=typeof e!="number"?c[1]:e,r=typeof r!="number"?c[2]:r,o=typeof o!="number"?c[3]:o,i=typeof i!="number"?c[4]:i,s=typeof s!="number"?c[5]:s,typeof t=="number")l._orientation=[t,e,r,o,i,s],typeof l.ctx.listener.forwardX<"u"?(l.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),l.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),l.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),l.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),l.ctx.listener.upY.setTargetAtTime(i,Howler.ctx.currentTime,.1),l.ctx.listener.upZ.setTargetAtTime(s,Howler.ctx.currentTime,.1)):l.ctx.listener.setOrientation(t,e,r,o,i,s);else return c;return l},Howl.prototype.init=function(t){return function(e){var r=this;return r._orientation=e.orientation||[1,0,0],r._stereo=e.stereo||null,r._pos=e.pos||null,r._pannerAttr={coneInnerAngle:typeof e.coneInnerAngle<"u"?e.coneInnerAngle:360,coneOuterAngle:typeof e.coneOuterAngle<"u"?e.coneOuterAngle:360,coneOuterGain:typeof e.coneOuterGain<"u"?e.coneOuterGain:0,distanceModel:typeof e.distanceModel<"u"?e.distanceModel:"inverse",maxDistance:typeof e.maxDistance<"u"?e.maxDistance:1e4,panningModel:typeof e.panningModel<"u"?e.panningModel:"HRTF",refDistance:typeof e.refDistance<"u"?e.refDistance:1,rolloffFactor:typeof e.rolloffFactor<"u"?e.rolloffFactor:1},r._onstereo=e.onstereo?[{fn:e.onstereo}]:[],r._onpos=e.onpos?[{fn:e.onpos}]:[],r._onorientation=e.onorientation?[{fn:e.onorientation}]:[],t.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(t,e){var r=this;if(!r._webAudio)return r;if(r._state!=="loaded")return r._queue.push({event:"stereo",action:function(){r.stereo(t,e)}}),r;var o=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof e>"u")if(typeof t=="number")r._stereo=t,r._pos=[t,0,0];else return r._stereo;for(var i=r._getSoundIds(e),s=0;s<i.length;s++){var l=r._soundById(i[s]);if(l)if(typeof t=="number")l._stereo=t,l._pos=[t,0,0],l._node&&(l._pannerAttr.panningModel="equalpower",(!l._panner||!l._panner.pan)&&n(l,o),o==="spatial"?typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):l._panner.setPosition(t,0,0):l._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),r._emit("stereo",l._id);else return l._stereo}return r},Howl.prototype.pos=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"pos",action:function(){i.pos(t,e,r,o)}}),i;if(e=typeof e!="number"?0:e,r=typeof r!="number"?-.5:r,typeof o>"u")if(typeof t=="number")i._pos=[t,e,r];else return i._pos;for(var s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._pos=[t,e,r],c._node&&((!c._panner||c._panner.pan)&&n(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setPosition(t,e,r)),i._emit("pos",c._id);else return c._pos}return i},Howl.prototype.orientation=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"orientation",action:function(){i.orientation(t,e,r,o)}}),i;if(e=typeof e!="number"?i._orientation[1]:e,r=typeof r!="number"?i._orientation[2]:r,typeof o>"u")if(typeof t=="number")i._orientation=[t,e,r];else return i._orientation;for(var s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._orientation=[t,e,r],c._node&&(c._panner||(c._pos||(c._pos=i._pos||[0,0,-.5]),n(c,"spatial")),typeof c._panner.orientationX<"u"?(c._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setOrientation(t,e,r)),i._emit("orientation",c._id);else return c._orientation}return i},Howl.prototype.pannerAttr=function(){var t=this,e=arguments,r,o,i;if(!t._webAudio)return t;if(e.length===0)return t._pannerAttr;if(e.length===1)if(typeof e[0]=="object")r=e[0],typeof o>"u"&&(r.pannerAttr||(r.pannerAttr={coneInnerAngle:r.coneInnerAngle,coneOuterAngle:r.coneOuterAngle,coneOuterGain:r.coneOuterGain,distanceModel:r.distanceModel,maxDistance:r.maxDistance,refDistance:r.refDistance,rolloffFactor:r.rolloffFactor,panningModel:r.panningModel}),t._pannerAttr={coneInnerAngle:typeof r.pannerAttr.coneInnerAngle<"u"?r.pannerAttr.coneInnerAngle:t._coneInnerAngle,coneOuterAngle:typeof r.pannerAttr.coneOuterAngle<"u"?r.pannerAttr.coneOuterAngle:t._coneOuterAngle,coneOuterGain:typeof r.pannerAttr.coneOuterGain<"u"?r.pannerAttr.coneOuterGain:t._coneOuterGain,distanceModel:typeof r.pannerAttr.distanceModel<"u"?r.pannerAttr.distanceModel:t._distanceModel,maxDistance:typeof r.pannerAttr.maxDistance<"u"?r.pannerAttr.maxDistance:t._maxDistance,refDistance:typeof r.pannerAttr.refDistance<"u"?r.pannerAttr.refDistance:t._refDistance,rolloffFactor:typeof r.pannerAttr.rolloffFactor<"u"?r.pannerAttr.rolloffFactor:t._rolloffFactor,panningModel:typeof r.pannerAttr.panningModel<"u"?r.pannerAttr.panningModel:t._panningModel});else return i=t._soundById(parseInt(e[0],10)),i?i._pannerAttr:t._pannerAttr;else e.length===2&&(r=e[0],o=parseInt(e[1],10));for(var s=t._getSoundIds(o),l=0;l<s.length;l++)if(i=t._soundById(s[l]),i){var c=i._pannerAttr;c={coneInnerAngle:typeof r.coneInnerAngle<"u"?r.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:typeof r.coneOuterAngle<"u"?r.coneOuterAngle:c.coneOuterAngle,coneOuterGain:typeof r.coneOuterGain<"u"?r.coneOuterGain:c.coneOuterGain,distanceModel:typeof r.distanceModel<"u"?r.distanceModel:c.distanceModel,maxDistance:typeof r.maxDistance<"u"?r.maxDistance:c.maxDistance,refDistance:typeof r.refDistance<"u"?r.refDistance:c.refDistance,rolloffFactor:typeof r.rolloffFactor<"u"?r.rolloffFactor:c.rolloffFactor,panningModel:typeof r.panningModel<"u"?r.panningModel:c.panningModel};var p=i._panner;p?(p.coneInnerAngle=c.coneInnerAngle,p.coneOuterAngle=c.coneOuterAngle,p.coneOuterGain=c.coneOuterGain,p.distanceModel=c.distanceModel,p.maxDistance=c.maxDistance,p.refDistance=c.refDistance,p.rolloffFactor=c.rolloffFactor,p.panningModel=c.panningModel):(i._pos||(i._pos=t._pos||[0,0,-.5]),n(i,"spatial"))}return t},Sound.prototype.init=function(t){return function(){var e=this,r=e._parent;e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,t.call(this),e._stereo?r.stereo(e._stereo):e._pos&&r.pos(e._pos[0],e._pos[1],e._pos[2],e._id)}}(Sound.prototype.init),Sound.prototype.reset=function(t){return function(){var e=this,r=e._parent;return e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,e._stereo?r.stereo(e._stereo):e._pos?r.pos(e._pos[0],e._pos[1],e._pos[2],e._id):e._panner&&(e._panner.disconnect(0),e._panner=void 0,r._refreshBuffer(e)),t.call(this)}}(Sound.prototype.reset);var n=function(t,e){e=e||"spatial",e==="spatial"?(t._panner=Howler.ctx.createPanner(),t._panner.coneInnerAngle=t._pannerAttr.coneInnerAngle,t._panner.coneOuterAngle=t._pannerAttr.coneOuterAngle,t._panner.coneOuterGain=t._pannerAttr.coneOuterGain,t._panner.distanceModel=t._pannerAttr.distanceModel,t._panner.maxDistance=t._pannerAttr.maxDistance,t._panner.refDistance=t._pannerAttr.refDistance,t._panner.rolloffFactor=t._pannerAttr.rolloffFactor,t._panner.panningModel=t._pannerAttr.panningModel,typeof t._panner.positionX<"u"?(t._panner.positionX.setValueAtTime(t._pos[0],Howler.ctx.currentTime),t._panner.positionY.setValueAtTime(t._pos[1],Howler.ctx.currentTime),t._panner.positionZ.setValueAtTime(t._pos[2],Howler.ctx.currentTime)):t._panner.setPosition(t._pos[0],t._pos[1],t._pos[2]),typeof t._panner.orientationX<"u"?(t._panner.orientationX.setValueAtTime(t._orientation[0],Howler.ctx.currentTime),t._panner.orientationY.setValueAtTime(t._orientation[1],Howler.ctx.currentTime),t._panner.orientationZ.setValueAtTime(t._orientation[2],Howler.ctx.currentTime)):t._panner.setOrientation(t._orientation[0],t._orientation[1],t._orientation[2])):(t._panner=Howler.ctx.createStereoPanner(),t._panner.pan.setValueAtTime(t._stereo,Howler.ctx.currentTime)),t._panner.connect(t._node),t._paused||t._parent.pause(t._id,!0).play(t._id,!0)}})()});var Iw={};Ec(Iw,{default:()=>Ka});module.exports=Ch(Iw);var Qa=require("three");var Ge=class{modifyById(t,e){let r=this;if(r[t]===void 0)throw new Error("not expected");{let i={...r,[t]:e};return Object.setPrototypeOf(i,Ge.prototype),i}}add(t,e){return this.runOp({type:1,id:t,data:e})?.data??this}runOp(t){let e=this;if(t.type===1){let r=e[t.id],o;r===void 0?o={type:2,id:t.id}:o={type:1,id:t.id,data:r};let{id:i,data:s}=t,l={...e,[i]:s};return Object.setPrototypeOf(l,Ge.prototype),{data:l,actual:t,reverse:o}}else if(t.type===2){let{id:r}=t,o=e[r];if(o===void 0)return null;{let i={...e};return Object.setPrototypeOf(i,Ge.prototype),delete i[r],{data:i,actual:t,reverse:{type:1,id:r,data:o}}}}throw new Error("illegal arg")}};function Jn(n){if(n.deepFreeze!==void 0){n.deepFreeze(n);return}let t=Object.getOwnPropertyNames(n);for(let e of t){let r=n[e];r&&typeof r=="object"&&Jn(r)}return Object.freeze(n)}function Dc(n,t){let e=0;for(;e<n.length&&e<t.length;){if(n[e]<t[e])return-1;if(n[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==n.length?1:0}var Fo=class extends Error{};function ar(n,t,e){if(n===void 0?t===void 0?(n=0,t=10):n=t-10:t===void 0&&(t=n+10),n>t){let i=n;n=t,t=i}let r=[],o=1/(e+1);for(let i=0;i<e;i++){let s=n+(t-n)*(i+.75+Math.random()*.5)*o;r.push(s)}return r}function yo(n){return n instanceof Uint8Array||n instanceof Uint16Array||n instanceof Uint32Array||n instanceof Int8Array||n instanceof Int16Array||n instanceof Int32Array||n instanceof Float32Array||n instanceof Float64Array}function Gc(){return typeof process<"u"}function Rc(n,t){for(let e of n)t(e.id,e.data),Rc(e.children,t)}function Vc(n,t){t(n.id,n.data);for(let e of n.children)Vc(e,t)}var Fe=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Fe.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Jn(this[e]),e++}fillCaches0(e,r){this.objCaches.set(e.id,e),this.parentCaches.set(e.id,r);for(let o of e.children)this.fillCaches0(o,e.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let e of this)this.fillCaches0(e,null)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}isDescendantOf(e,r){for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}data(e){return this.get(e)?.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){return e===null?this:this.get(e)?.children}traverseFrom(e,r){if(e===null)this.traverse(r);else{let o=this.get(e);o&&Vc(o,r)}}traverse(e){Rc(this,e)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(e){return this.fillCaches(),this.parentCaches.get(e)}childrenArray(e){return e===null?this:this.get(e).children}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this.parent(e),s=this.childrenArray(i),l=s.findIndex(a=>a.id===e);if(l<0)throw new Error("not expected");let c=s[l];return s=[...s],s[l]={...c,data:r},this.modifyArrayBy(i,s)}}modifyArrayBy(e,r){let o=e,i=r;for(;o!==null;){let l=i,c=o;if(o=this.parent(o),o===void 0)throw new Error;i=this.childrenArray(o);let p=i.findIndex(a=>a.id===c);if(p<0)throw new Error;i=[...i],i[p]={...i[p],children:l}}Object.setPrototypeOf(i,Fe.prototype);let s=i;return s.fillCaches(),s}runOp(e){switch(e.type){case 7:return this.addOp(e);case 8:return this.deleteOp(e);case 9:return this.moveOp(e)}}checkDuplicatedIdRec({id:e,children:r}){if(this.get(e)!==void 0)return!0;for(let o of r)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:r,fi:o,id:i,data:s,children:l}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let c=r,p=this.childrenArray(c),a={fi:o,id:i,data:s,children:l};return p=[...p,a],p.sort((d,f)=>d.fi-f.fi),e.localIndex=p.indexOf(a),{data:this.modifyArrayBy(c,p),actual:e,reverse:{type:8,id:i}}}}deleteOp(e){let{id:r}=e;if(this.get(r)===null)return null;{let o=this.parent(r);if(o===void 0)return null;let i=this.childrenArray(o),s=i.findIndex(p=>p.id===r);e.localIndex=s,i=[...i];let l=i.splice(s,1)[0];return{data:this.modifyArrayBy(o,i),actual:e,reverse:{type:7,...l,parent:o}}}}moveOp(e){let{parent:r,fi:o,id:i}=e;if(r!==null&&this.get(r)===void 0)return this.deleteOp({type:8,id:i});if(r!==null){let f=r;for(;f!==null;){if(f===void 0)throw new Error;if(f===i)throw new Fo("cyclic tree");f=this.parent(f)}}let s=this.parent(i);if(s===void 0)return null;let l=s,c=this.childrenArray(s),p=c.findIndex(f=>f.id===i);c=[...c];let a=c.splice(p,1)[0],u=this.modifyArrayBy(s,c);s=r,c=u.childrenArray(s);let d=a.fi;return a={...a,fi:o},c=[...c,a],c.sort((f,m)=>f.fi-m.fi),e.localIndex=c.indexOf(a),u=u.modifyArrayBy(s,c),{data:u,actual:e,reverse:{type:9,parent:l,fi:d,id:i}}}previous(e,r){if(r===null){let i=this.childrenArray(e);return i.length===0?null:i[i.length-1].id}let o=null;for(let i of this.childrenArray(e)){if(i.id===r)return o;o=i.id}return null}traverseSortNext(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(s=>s.id===e)+1;if(i<o.length)return o[i].id;if(r)return this.traverseSortNext(r)}}sortNext(e){let r=this.childrenArray(e);return r.length>0?r[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let r=this.childrenArray(e);return r.length>0?this.traverseSortPrevious(r[r.length-1].id):e}sortPrevious(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(s=>s.id===e)-1;return i>=0?this.traverseSortPrevious(o[i].id):r}}getAllSorted(e){let r=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&r.push({...o,...i})}r.sort((o,i)=>Dc(o.sortKey,i.sortKey));for(let o of r)delete o.sortKey;return r}getWithSortKey(e){var r=e;let o=[],i=this.get(r),s=i;if(i!==void 0){for(;r;)o.splice(0,0,i.fi),r=this.parent(r),r!==null&&(i=this.get(r));return{...s,sortKey:o}}}insertBeforeHelper(e,r,o){return this.insertAfterHelper(e,this.previous(e,r),o)}insertAfterHelper(e,r,o){let i=this.childrenArray(e);if(r===null){if(i.length===0)return ar(0,o,o);{let s=i[0].fi;return ar(s-o,s,o)}}else{let s=this.get(r);if(s===void 0||this.parent(r)!==e)throw new Error("illegal args");let l=i.find(c=>c.fi>s.fi);if(l===void 0){let c=i[i.length-1].fi;return ar(c,c+o,o)}else return ar(s.fi,l.fi,o)}}};var zo;(t=>{function n(e,r){if(Array.isArray(e)){let o=r.props,i={},s=[...e],l=!1;if(o)for(let c of Object.keys(o)){let p=parseInt(c);if(isNaN(p))throw new Error("wrong index");i[c]=s[p],s[p]=o[c],l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}else{let o=r.props,i={},s={...e},l=!1;if(o)for(let c of Object.keys(o)){i[c]=s[c];let p=o[c];p===void 0?delete s[c]:s[c]=p,l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}}t.runOp=n})(zo||(zo={}));var ge=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,ge.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Jn(this[e]),e++}fillCaches0(e){this.objCaches.set(e.id,e)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let e of this)this.fillCaches0(e)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}data(e){return this.get(e)?.data}get(e){return this.fillCaches(),this.objCaches.get(e)}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this,s=i.findIndex(p=>p.id===e);if(s<0)throw new Error("not expected");let l=i[s];return i=[...i],i[s]={...l,data:r},this.modifyArrayBy(i)}}modifyArrayBy(e){Object.setPrototypeOf(e,ge.prototype);let r=e;return Gc()||r.fillCaches(),r}runOp(e){switch(e.type){case 4:return this.addOp(e);case 5:return this.deleteOp(e);case 6:return this.moveOp(e)}}addOp(e){let{fi:r,id:o,data:i}=e,s=this,l={fi:r,id:o,data:i};return s=[...s,l],s.sort((p,a)=>p.fi-a.fi),e.localIndex=s.indexOf(l),{data:this.modifyArrayBy(s),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:r}=e,o=this,i=o.findIndex(c=>c.id===r);if(i===-1)return null;e.localIndex=i,o=[...o];let s=o.splice(i,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...s}}}moveOp(e){let{fi:r,id:o}=e,i=this;i=[...i];let s=i.findIndex(a=>a.id===o);if(s===-1)return null;let l=i[s].fi,c={...i[s],fi:r};return i[s]=c,i.sort((a,u)=>a.fi-u.fi),e.localIndex=i.indexOf(c),{data:this.modifyArrayBy(i),actual:e,reverse:{type:6,fi:l,id:o}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let r=null;for(let o of this){if(o.id===e)return r;r=o.id}return null}insertBeforeHelper(e,r){return this.insertAfterHelper(this.previous(e),r)}insertAfterHelper(e,r){let o=this;if(e===null){if(o.length===0)return ar(0,r,r);{let i=o[0].fi;return ar(i-r,i,r)}}else{let i=this.get(e);if(i===void 0)throw new Error("illegal args");let s=o.find(l=>l.fi>i.fi);if(s===void 0){let l=o[o.length-1].fi;return ar(l,l+r,r)}else return ar(i.fi,s.fi,r)}}};var Dt=class{unusedFun(t){}runOp(t){let e=[],r=this,o=0,i={};for(;o<t.path.length;){if(e.push(r),r=r===void 0?void 0:r[t.path[o]],r instanceof Fe||r instanceof ge)return null;o+=1}r={...r};for(let[c,p]of Object.entries(t.props)){let a=r[c];i[c]=a,p===void 0?delete r[c]:r[c]=p}for(;o>0;)Object.keys(r).length===0?(r={...e[o-1]},delete r[t.path[o-1]]):r={...e[o-1],[t.path[o-1]]:r},o-=1;let s=Object.setPrototypeOf(r,Dt.prototype),l={...t,props:i};return{data:s,actual:t,reverse:l}}},Fc;(e=>{function n(r,o){return ei(r,o)??r}e.apply=n;function t(r,o){if(o.type===0){let i=0,s=o.path,l=r;for(;i<s.length&&l!==void 0;){if(l=lr.zoomOnce(l,s[i]),l instanceof Fe||l instanceof ge)return;i+=1}if(l===void 0)return o;if(typeof l=="string"||typeof l=="number"||yo(l))return;if(l&&typeof l=="object"){let c={...o.props};for(let p of Object.keys(l))delete c[p];return{...o,props:c}}else return}else if(o.type===1||o.type===4||o.type===7){let i=lr.zoom(r,[...o.path,o.id]);if(i===void 0)return o;if(typeof i=="string"||typeof i=="number"||yo(i))return;if(i&&typeof i=="object"){let s={...o.data,...i};return{...o,data:s}}else return}else return o}e.filterOp=t})(Fc||(Fc={}));function zc(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=ei(o.data,t[i]);e=e||s!==void 0,s===void 0&&(s=o.data);let l=zc(o.children,t);return l!==void 0?e=!0:l=o.children,{...o,id:i,data:s,children:l}});if(e)return r}function Lh(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=ei(o.data,t[i]);return e=e||s!==void 0,s===void 0&&(s=o.data),{...o,id:i,data:s}});if(e)return Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}function ei(n,t){if(t!==void 0){if(t instanceof ge||t instanceof Fe||typeof t=="string"||typeof t=="number"||t===null)return t;if(n instanceof Fe){let e=zc(n,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else{if(n instanceof ge)return Lh(n,t);if(Array.isArray(n)){let e=!1,r=n.map((o,i)=>{let s=ei(o,t[i]);return e=e||s!==void 0,s===void 0&&(s=o),s});return e?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(n&&typeof n=="object"){let e={},r=!1;for(let[o,i]of Object.entries(n)){let s=ei(i,t[o]);r=r||s!==void 0,s===void 0&&(s=i),e[o]=s}return r?(Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e):void 0}else return t??n}}}function Uc(n,t){let e={cur:[],result:[],len:0};return n=ti(n,t,e)??n,[n,e.result]}function ds(n,t){return n===null?null:(n.cur[n.len]=t,n.len+=1,n)}function fs(n){n&&(n.len-=1)}function Mh(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function jc(n,t,e){let r=!1,o=n.map(i=>{let s=i.id,l=t[s];if(l!==void 0&&typeof l=="string"&&(r=!0,s=l,e!==null))throw new Error("not supported");let c=ti(i.data,t,ds(e,s));fs(e),r=r||c!==void 0,c===void 0&&(c=i.data);let p=jc(i.children,t,e);return p!==void 0?r=!0:p=i.children,{...i,id:s,data:c,children:p}});if(r)return o}function Eh(n,t,e){let r=!1,o=n.map(i=>{let s=i.id,l=t[s];if(l!==void 0&&typeof l=="string"&&(r=!0,s=l,e!==null))throw new Error("not supported");let c=ti(i.data,t,ds(e,s));return fs(e),r=r||c!==void 0,c===void 0&&(c=i.data),{...i,id:s,data:c}});if(r)return Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o}function ti(n,t,e){if(n instanceof Fe){let r=jc(n,t,e);return r!==void 0&&Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}else{if(n instanceof ge)return Eh(n,t,e);if(Array.isArray(n)){let r=!1,o=n.map((i,s)=>{let l=ti(i,t,ds(e,s));return fs(e),r=r||l!==void 0,l===void 0&&(l=i),l});return r?(Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o):void 0}else if(n&&typeof n=="object"){let r={},o=!1;for(let[i,s]of Object.entries(n))if(i!=="name"&&i!=="text"){let l=t[i];if(typeof l=="string"){if(e!==null)throw new Error("not supported");o=!0,i=l}let c=ti(s,t,ds(e,i));fs(e),o=o||c!==void 0,c===void 0&&(c=s),r[i]=c}else r[i]=s;return o?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(typeof n=="string"){let r=t[n];if(r!==void 0){if(n.length!==36)throw new Error("for now you should only call this method when the key is a uuid");Mh(e)}return r}else return}}var kc;(t=>{function n(e,r){let o=lr.zoom(r,e.path);if(typeof o=="object"){let i={};for(let s of Object.keys(e.props))i[s]=o[s];return{...e,props:i}}else return{...e,props:{}}}t.replaceProps=n})(kc||(kc={}));var kr;(l=>{function n(c,p){return{...c,path:c.path.slice(p)}}l.drop=n;function t(c,p){return e(c,p)?.data??c}l.applySimple=t;function e(c,p){let a=p.path;for(var u=[];;){let d;if(c instanceof Dt&&p.type===0&&(d=c.runOp({...p,path:a.slice(u.length)}),d===null&&(d=void 0)),u.length===a.length&&(c instanceof Fe||c instanceof ge||c instanceof Ge?d=c.runOp(p):d=zo.runOp(c,p)),d!==void 0)if(d!==null){let h=d.data;for(let g=u.length-1;g>=0;g--){let v=a[g],x=u[g];if(x instanceof Fe){if(typeof v=="number")throw new Error("illegal arg");h=x.modifyById(v,h)}else if(x instanceof ge){if(typeof v=="number")throw new Error("illegal arg");h=x.modifyById(v,h)}else if(x instanceof Ge){if(typeof v=="number")throw new Error("illegal arg");h=x.modifyById(v,h)}else if(x instanceof Dt){let w={...x,[v]:h};h=Object.setPrototypeOf(w,Dt.prototype)}else if(typeof x=="object")if(Array.isArray(x)){if(typeof v=="string"&&(v=parseInt(v),isNaN(v)))throw new Error("Invalid path");let w=h;h=[...x],h[v]=w}else h={...x,[v]:h};else return null}return{data:h,actual:{...d.actual,path:a},reverse:{...d.reverse,path:a}}}else return null;let f=a[u.length],m;if(c instanceof Fe){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else if(c instanceof ge){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else c!==null&&(m=c[f]);if(m!==void 0)u.push(c),c=m;else return null}}l.apply=e;function r(c,p){for(let a=0;a<c.length&&a<p.length;a++)if(c[a]!==p[a])return!0;return!1}l.pathDisjoint=r;function o(c,p){if(c.length!==p.length)return!1;for(let a=0;a<c.length;a++)if(c[a]!==p[a])return!1;return!0}l.pathEq=o;function i(c,p){return r(c.path,p.path)}l.commutative=i;function s(c,p){return c.type===0&&p.type===0&&o(c.path,p.path)?Object.keys(c.props).every(a=>p.props[a]!==void 0):!1}l.subsumed=s})(kr||(kr={}));var Hc;(c=>{function n(){return[]}c.empty=n;function t(p,a){let u=[];for(let d of p){let[f,...m]=d.path;f===a&&u.push({...d,path:m})}return u}c.removePrefix=t;function e(p,a){return p.map(u=>({...u,path:[a,...u.path]}))}c.addPrefix=e;function r(p,a){return[...p,...a]}c.concat=r;function o(p,a){return[...p.filter(d=>!a.some(f=>kr.subsumed(d,f))),...a]}c.compress=o;function i(p,a){return p.every(u=>a.every(d=>kr.commutative(u,d)))}c.commutative=i;function s(p,a){for(let u of a){let d=l(p,u);d!==null&&(p=d.data)}return p}c.applyAll=s;function l(p,a){var u=p;let d=[],f=[];for(let m of a)try{if(m.type===3){let h=lr.zoom(u,[...m.path,m.id]),g=kr.apply(u,{...m,type:2});if(g!==null){u=g.data;let[v,x]=Uc(u,{[m.id]:h});u=v;for(let w of x){let S=w[w.length-1];w.splice(w.length-1,1),d.push({type:0,path:w,props:{[S]:h}}),f.push({type:0,path:w,props:{[S]:m.id}})}f.push(g.reverse),d.push(g.actual)}}else{let h=kr.apply(u,m);h!==null&&(d.push(h.actual),u=h.data,f.push(h.reverse))}}catch(h){if(h instanceof Fo)return null;throw h}return{data:u,actual:d,reverse:f.reverse()}}c.apply=l})(Hc||(Hc={}));var Wc=Symbol(),ri=Symbol(),xo=class{reportOp(t,e,r=[]){let o=this;if(e===null)return;o._current=e.data;let i=r;for(;!(o instanceof hs);){let s=o._path,l=o._current;if(s!==""&&i.splice(0,0,s),o=o._parent,o===null)return;o.update(s,l)}o.push(i,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[ri];r&&r(),delete this._children[t]}}}},tl=class extends xo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){if(Array.isArray(this._current)){if(typeof t=="string"&&(t=parseInt(t),isNaN(t)))throw new Error("Invalid path");this._current=[...this._current],this._current[t]=e}else this._current={...this._current,[t]:e}}runOp(t){this.reportOp(t,zo.runOp(this._current,t),t.path)}},rl=class extends xo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){this._current={...this._current,[t]:e},Object.setPrototypeOf(this._current,Ge.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},qc={get(n,t){if(t===ri)return()=>{n._parent=null};if(t===Wc)return n._current;let{_current:e,_children:r}=n;if(t==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e[t],s=gs(n,t,i);return s!==i?(r===void 0&&(r={},n._children=r),r[t]=s,s):i},has(n,t){return t in n._current},ownKeys(n){return Reflect.ownKeys(n._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(n){return Object.getPrototypeOf(n._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(n,t){let e=n._current,r=Reflect.getOwnPropertyDescriptor(e,t);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:e[t]}}},Bh={...qc,set(n,t,e){let r={type:0,props:{[t]:Tt(e)??e}};return n.deleteChildren(t),n.runOp(r),!0},deleteProperty(n,t){let e={type:0,props:{[t]:void 0}};return n.deleteChildren(t),n.runOp(e),!0}},Dh={...qc,set(n,t,e){return e===void 0?this.deleteProperty(n,t):(n.deleteChildren(t),n.runOp({type:1,id:t,data:e})),!0},deleteProperty(n,t){return n.runOp({type:2,id:t}),!0}},Uo=class extends xo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[ri]=()=>{this._parent=null}}unproxy(){return this._current}update(t,e){this._current=this._current.modifyById(t,e)}runOp(t){this.reportOp(t,this._current.runOp(t))}randomId(){return this._current.randomId()}isDescendantOf(t,e){return this._current.isDescendantOf(t,e)}childrenOf(t){return this._current.childrenOf(t)}traverse(t){return this._current.traverse(t)}get(t){return this._current.get(t)}parent(t){return this._current.parent(t)}traverse(t){this._current.traverse((e,r)=>{t(e,this.data(e))})}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,s=gs(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):i}add(t,e,r,o,i){this.runOp({type:7,parent:t,fi:e,id:r,data:o,children:i})}move(t,e,r){this.runOp({type:9,parent:t,fi:e,id:r})}insertAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}insertBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}moveAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}moveBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}delete(t){this.deleteChildren(t),this.runOp({type:8,id:t})}sortNext(t){return this._current.sortNext(t)}sortPrevious(t){return this._current.sortPrevious(t)}getAllSorted(t){return this._current.getAllSorted(t)}},ms=class extends xo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r,this[ri]=()=>{this._parent=null}}feedOp(t){let{path:e,...r}=t;this.reportOp(r,kr.apply(this._current,t),e)}},jo=class extends xo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[ri]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id,i=this._current[r].fi;t(this.data(this._current[r].id),o,i)}}find(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id;if(t(this.data(o),o))return this.get(o)}}update(t,e){this._current=this._current.modifyById(t,e)}randomId(){return this._current.randomId()}get(t){return{...this._current.get(t),data:this.data(t)}}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,s=gs(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):i}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,e,r){this.runOp({type:4,fi:t,id:e,data:r})}move(t,e){this.runOp({type:6,fi:t,id:e})}insertAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}insertBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}moveAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}moveBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function el(n,t,e){if(n.length>0){let r=n[n.length-1];if(r.type===0&&t.type===0&&lr.equal(r.path,e)){Object.assign(r.props,t.props);return}}n.push({...t,path:e})}var hs=class{constructor(t){this.ts=[],this.actual=[],this.reverse=[],this._current=t}update(t,e){if(t!=="")throw new Error("");this._current=e}push(t,e,r,o){el(this.ts,e,t),el(this.actual,r,t),el(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function gs(n,t,e){return e instanceof Fe?new Uo(n,t,e):e instanceof ge?new jo(n,t,e):e instanceof Dt?new ms(n,t,e):e instanceof Ge?new Proxy(new rl(n,t,e),Dh):e!==null&&typeof e=="object"?yo(e)?e:new Proxy(new tl(n,t,e),Bh):e}function ol(n){let t=new hs(n);return[gs(t,"",n),t]}function nl(n,t){let[e,r]=ol(n);return t(e),r.result()}function Tt(n){return n instanceof Uo||n instanceof jo||n instanceof ms?n._current:n!==null&&typeof n=="object"?n[Wc]:n}var lr;(o=>{function n(i,s){if(s.length===i.length)for(var l=0;l<i.length;){if(i[l]!==s[l])return!1;l+=1}else return!1;return!0}o.equal=n;function t(i,s,l){let c=r(l,i);if(c!==void 0&&typeof c=="object"&&c!==null){let p={...s};return Object.keys(c).forEach(a=>{delete p[a]}),p}else return s}o.removeOverridden=t;function e(i,s){if((i instanceof Fe||i instanceof Uo)&&typeof s=="string")return i.data(s);if((i instanceof ge||i instanceof jo)&&typeof s=="string")return i.data(s);if(typeof s=="number"&&Array.isArray(i))return i[s];if(typeof s=="string"&&typeof i=="object")return i[s]}o.zoomOnce=e;function r(i,s,l=0){for(;l<s.length&&i!==void 0;)i=e(i,s[l]),l+=1;return i}o.zoom=r})(lr||(lr={}));var ys=class{},oi=class extends ys{constructor(e){super();this.id=e}},ni=class extends ys{constructor(e){super();this.data=e}};var sl;try{sl=new TextDecoder}catch{}var oe,Wr,N=0;var eu=[],al=eu,ll=0,At={},Te,Hr,jt=0,cr=0,Gt,Er,vt=[],Oe,$c={useRecords:!1,mapsAsObjects:!0},ii=class{},ul=new ii;ul.name="MessagePack 0xC1";var ko=!1,ur=class{constructor(t){t&&(t.useRecords===!1&&t.mapsAsObjects===void 0&&(t.mapsAsObjects=!0),t.structures?t.structures.sharedLength=t.structures.length:t.getStructures&&((t.structures=[]).uninitialized=!0,t.structures.sharedLength=0)),Object.assign(this,t)}unpack(t,e){if(oe)return iu(()=>(vs(),this?this.unpack(t,e):ur.prototype.unpack.call($c,t,e)));Wr=e>-1?e:t.length,N=0,ll=0,cr=0,Hr=null,al=eu,Gt=null,oe=t;try{Oe=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw oe=null,t instanceof Uint8Array?r:new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof ur){if(At=this,this.structures)return Te=this.structures,xs();(!Te||Te.length>0)&&(Te=[])}else At=$c,(!Te||Te.length>0)&&(Te=[]);return xs()}unpackMultiple(t,e){let r,o=0;try{ko=!0;let i=t.length,s=this?this.unpack(t,i):ws.unpack(t,i);if(e){for(e(s);N<i;)if(o=N,e(xs())===!1)return}else{for(r=[s];N<i;)o=N,r.push(xs());return r}}catch(i){throw i.lastPosition=o,i.values=r,i}finally{ko=!1,vs()}}_mergeStructures(t,e){t=t||[];for(let r=0,o=t.length;r<o;r++){let i=t[r];i&&(i.isShared=!0,r>=32&&(i.highByte=r-32>>5))}t.sharedLength=t.length;for(let r in e||[])if(r>=0){let o=t[r],i=e[r];i&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[r]=o),t[r]=i)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function xs(){try{if(!At.trusted&&!ko){let t=Te.sharedLength||0;t<Te.length&&(Te.length=t)}let n=Ue();if(N==Wr)Te.restoreStructures&&Xc(),Te=null,oe=null,Er&&(Er=null);else if(N>Wr){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!ko)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw Te.restoreStructures&&Xc(),vs(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function Xc(){for(let n in Te.restoreStructures)Te[n]=Te.restoreStructures[n];Te.restoreStructures=null}function Ue(){let n=oe[N++];if(n<160)if(n<128){if(n<64)return n;{let t=Te[n&63]||At.getStructures&&tu()[n&63];return t?(t.read||(t.read=pl(t,n&63)),t.read()):n}}else if(n<144)if(n-=128,At.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[ou()]=Ue();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Ue(),Ue());return t}else{n-=144;let t=new Array(n);for(let e=0;e<n;e++)t[e]=Ue();return t}else if(n<192){let t=n-160;if(cr>=N)return Hr.slice(N-jt,(N+=t)-jt);if(cr==0&&Wr<140){let e=t<16?dl(t):ru(t);if(e!=null)return e}return cl(t)}else{let t;switch(n){case 192:return null;case 193:return Gt?(t=Ue(),t>0?Gt[1].slice(Gt.position1,Gt.position1+=t):Gt[0].slice(Gt.position0,Gt.position0-=t)):ul;case 194:return!1;case 195:return!0;case 196:return il(oe[N++]);case 197:return t=Oe.getUint16(N),N+=2,il(t);case 198:return t=Oe.getUint32(N),N+=4,il(t);case 199:return vo(oe[N++]);case 200:return t=Oe.getUint16(N),N+=2,vo(t);case 201:return t=Oe.getUint32(N),N+=4,vo(t);case 202:if(t=Oe.getFloat32(N),At.useFloat32>2){let e=Ss[(oe[N]&127)<<1|oe[N+1]>>7];return N+=4,(e*t+(t>0?.5:-.5)>>0)/e}return N+=4,t;case 203:return t=Oe.getFloat64(N),N+=8,t;case 204:return oe[N++];case 205:return t=Oe.getUint16(N),N+=2,t;case 206:return t=Oe.getUint32(N),N+=4,t;case 207:return At.int64AsNumber?(t=Oe.getUint32(N)*4294967296,t+=Oe.getUint32(N+4)):t=Oe.getBigUint64(N),N+=8,t;case 208:return Oe.getInt8(N++);case 209:return t=Oe.getInt16(N),N+=2,t;case 210:return t=Oe.getInt32(N),N+=4,t;case 211:return At.int64AsNumber?(t=Oe.getInt32(N)*4294967296,t+=Oe.getUint32(N+4)):t=Oe.getBigInt64(N),N+=8,t;case 212:if(t=oe[N++],t==114)return Jc(oe[N++]&63);{let e=vt[t];if(e)return e.read?(N++,e.read(Ue())):e.noBuffer?(N++,e()):e(oe.subarray(N,++N));throw new Error("Unknown extension "+t)}case 213:return t=oe[N],t==114?(N++,Jc(oe[N++]&63,oe[N++])):vo(2);case 214:return vo(4);case 215:return vo(8);case 216:return vo(16);case 217:return t=oe[N++],cr>=N?Hr.slice(N-jt,(N+=t)-jt):Rh(t);case 218:return t=Oe.getUint16(N),N+=2,cr>=N?Hr.slice(N-jt,(N+=t)-jt):Vh(t);case 219:return t=Oe.getUint32(N),N+=4,cr>=N?Hr.slice(N-jt,(N+=t)-jt):Fh(t);case 220:return t=Oe.getUint16(N),N+=2,Kc(t);case 221:return t=Oe.getUint32(N),N+=4,Kc(t);case 222:return t=Oe.getUint16(N),N+=2,Qc(t);case 223:return t=Oe.getUint32(N),N+=4,Qc(t);default:if(n>=224)return n-256;if(n===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+n)}}}var Gh=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function pl(n,t){function e(){if(e.count++>2){let o=n.read=new Function("r","return function(){return {"+n.map(i=>Gh.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(Ue);return n.highByte===0&&(n.read=Yc(t,n.read)),o()}let r={};for(let o=0,i=n.length;o<i;o++){let s=n[o];r[s]=Ue()}return r}return e.count=0,n.highByte===0?Yc(t,e):e}var Yc=(n,t)=>function(){let e=oe[N++];if(e===0)return t();let r=n<32?-(n+(e<<5)):n+(e<<5),o=Te[r]||tu()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=pl(o,n)),o.read()};function tu(){let n=iu(()=>(oe=null,At.getStructures()));return Te=At._mergeStructures(n,Te)}var cl=bs,Rh=bs,Vh=bs,Fh=bs;function bs(n){let t;if(n<16&&(t=dl(n)))return t;if(n>64&&sl)return sl.decode(oe.subarray(N,N+=n));let e=N+n,r=[];for(t="";N<e;){let o=oe[N++];if((o&128)===0)r.push(o);else if((o&224)===192){let i=oe[N++]&63;r.push((o&31)<<6|i)}else if((o&240)===224){let i=oe[N++]&63,s=oe[N++]&63;r.push((o&31)<<12|i<<6|s)}else if((o&248)===240){let i=oe[N++]&63,s=oe[N++]&63,l=oe[N++]&63,c=(o&7)<<18|i<<12|s<<6|l;c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|c&1023),r.push(c)}else r.push(o);r.length>=4096&&(t+=it.apply(String,r),r.length=0)}return r.length>0&&(t+=it.apply(String,r)),t}function Kc(n){let t=new Array(n);for(let e=0;e<n;e++)t[e]=Ue();return t}function Qc(n){if(At.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[ou()]=Ue();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Ue(),Ue());return t}}var it=String.fromCharCode;function ru(n){let t=N,e=new Array(n);for(let r=0;r<n;r++){let o=oe[N++];if((o&128)>0){N=t;return}e[r]=o}return it.apply(String,e)}function dl(n){if(n<4)if(n<2){if(n===0)return"";{let t=oe[N++];if((t&128)>1){N-=1;return}return it(t)}}else{let t=oe[N++],e=oe[N++];if((t&128)>0||(e&128)>0){N-=2;return}if(n<3)return it(t,e);let r=oe[N++];if((r&128)>0){N-=3;return}return it(t,e,r)}else{let t=oe[N++],e=oe[N++],r=oe[N++],o=oe[N++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){N-=4;return}if(n<6){if(n===4)return it(t,e,r,o);{let i=oe[N++];if((i&128)>0){N-=5;return}return it(t,e,r,o,i)}}else if(n<8){let i=oe[N++],s=oe[N++];if((i&128)>0||(s&128)>0){N-=6;return}if(n<7)return it(t,e,r,o,i,s);let l=oe[N++];if((l&128)>0){N-=7;return}return it(t,e,r,o,i,s,l)}else{let i=oe[N++],s=oe[N++],l=oe[N++],c=oe[N++];if((i&128)>0||(s&128)>0||(l&128)>0||(c&128)>0){N-=8;return}if(n<10){if(n===8)return it(t,e,r,o,i,s,l,c);{let p=oe[N++];if((p&128)>0){N-=9;return}return it(t,e,r,o,i,s,l,c,p)}}else if(n<12){let p=oe[N++],a=oe[N++];if((p&128)>0||(a&128)>0){N-=10;return}if(n<11)return it(t,e,r,o,i,s,l,c,p,a);let u=oe[N++];if((u&128)>0){N-=11;return}return it(t,e,r,o,i,s,l,c,p,a,u)}else{let p=oe[N++],a=oe[N++],u=oe[N++],d=oe[N++];if((p&128)>0||(a&128)>0||(u&128)>0||(d&128)>0){N-=12;return}if(n<14){if(n===12)return it(t,e,r,o,i,s,l,c,p,a,u,d);{let f=oe[N++];if((f&128)>0){N-=13;return}return it(t,e,r,o,i,s,l,c,p,a,u,d,f)}}else{let f=oe[N++],m=oe[N++];if((f&128)>0||(m&128)>0){N-=14;return}if(n<15)return it(t,e,r,o,i,s,l,c,p,a,u,d,f,m);let h=oe[N++];if((h&128)>0){N-=15;return}return it(t,e,r,o,i,s,l,c,p,a,u,d,f,m,h)}}}}}function il(n){return At.copyBuffers?Uint8Array.prototype.slice.call(oe,N,N+=n):oe.subarray(N,N+=n)}function vo(n){let t=oe[N++];if(vt[t])return vt[t](oe.subarray(N,N+=n));throw new Error("Unknown extension type "+t)}var Zc=new Array(4096);function ou(){let n=oe[N++];if(n>=160&&n<192){if(n=n-160,cr>=N)return Hr.slice(N-jt,(N+=n)-jt);if(!(cr==0&&Wr<180))return cl(n)}else return N--,Ue();let t=(n<<5^(n>1?Oe.getUint16(N):n>0?oe[N]:0))&4095,e=Zc[t],r=N,o=N+n-3,i,s=0;if(e&&e.bytes==n){for(;r<o;){if(i=Oe.getUint32(r),i!=e[s++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(i=oe[r++],i!=e[s++]){r=1879048192;break}if(r===o)return N=r,e.string;o-=3,r=N}for(e=[],Zc[t]=e,e.bytes=n;r<o;)i=Oe.getUint32(r),e.push(i),r+=4;for(o+=3;r<o;)i=oe[r++],e.push(i);let l=n<16?dl(n):ru(n);return l!=null?e.string=l:e.string=cl(n)}var Jc=(n,t)=>{var e=Ue();let r=n;t!==void 0&&(n=n<32?-((t<<5)+n):(t<<5)+n,e.highByte=t);let o=Te[n];return o&&o.isShared&&((Te.restoreStructures||(Te.restoreStructures=[]))[n]=o),Te[n]=e,e.read=pl(e,r),e.read()},nu=typeof self=="object"?self:global;vt[0]=()=>{};vt[0].noBuffer=!0;vt[101]=()=>{let n=Ue();return(nu[n[0]]||Error)(n[1])};vt[105]=n=>{let t=Oe.getUint32(N-4);Er||(Er=new Map);let e=oe[N],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};Er.set(t,o);let i=Ue();return o.used?Object.assign(r,i):(o.target=i,i)};vt[112]=n=>{let t=Oe.getUint32(N-4),e=Er.get(t);return e.used=!0,e.target};vt[115]=()=>new Set(Ue());var fl=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");vt[116]=n=>{let t=n[0],e=fl[t];if(!e)throw new Error("Could not find typed array for code "+t);return new nu[e](Uint8Array.prototype.slice.call(n,1).buffer)};vt[120]=()=>{let n=Ue();return new RegExp(n[0],n[1])};vt[98]=n=>{let t=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],e=N;N+=t-4,Gt=[Ue(),Ue()],Gt.position0=0,Gt.position1=0;let r=N;N=e;try{return Ue()}finally{N=r}};vt[255]=n=>n.length==4?new Date((n[0]*16777216+(n[1]<<16)+(n[2]<<8)+n[3])*1e3):n.length==8?new Date(((n[0]<<22)+(n[1]<<14)+(n[2]<<6)+(n[3]>>2))/1e6+((n[3]&3)*4294967296+n[4]*16777216+(n[5]<<16)+(n[6]<<8)+n[7])*1e3):n.length==12?new Date(((n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3])/1e6+((n[4]&128?-281474976710656:0)+n[6]*1099511627776+n[7]*4294967296+n[8]*16777216+(n[9]<<16)+(n[10]<<8)+n[11])*1e3):new Date("invalid");function iu(n){let t=Wr,e=N,r=ll,o=jt,i=cr,s=Hr,l=al,c=Er,p=Gt,a=new Uint8Array(oe.slice(0,Wr)),u=Te,d=Te.slice(0,Te.length),f=At,m=ko,h=n();return Wr=t,N=e,ll=r,jt=o,cr=i,Hr=s,al=l,Er=c,Gt=p,oe=a,ko=m,Te=u,Te.splice(0,Te.length,...d),At=f,Oe=new DataView(oe.buffer,oe.byteOffset,oe.byteLength),h}function vs(){oe=null,Er=null,Te=null}function su(n){n.unpack?vt[n.type]=n.unpack:vt[n.type]=n}var Ss=new Array(147);for(let n=0;n<256;n++)Ss[n]=+("1e"+Math.floor(45.15-n*.30103));var ws=new ur({useRecords:!1}),zh=ws.unpack,Uh=ws.unpackMultiple,jh=ws.unpack,_s={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},kh=new Float32Array(1),C1=new Uint8Array(kh.buffer,0,4);var Ts;try{Ts=new TextEncoder}catch{}var As,hl,Ns=typeof Buffer<"u",ml=Ns?Buffer.allocUnsafeSlow:Uint8Array,uu=Ns?Buffer:Uint8Array,au=Ns?4294967296:2144337920,G,qe,C=0,pr,dr=null,Hh=/[\u0080-\uFFFF]/,si=Symbol("record-id"),bo=class extends ur{constructor(t){super(t),this.offset=0;let e,r,o,i,s,l,c=0,p=uu.prototype.utf8Write?function(y,P,A){return G.utf8Write(y,P,A)}:Ts&&Ts.encodeInto?function(y,P){return Ts.encodeInto(y,G.subarray(P)).written}:!1,a=this;t||(t={});let u=t&&t.sequential,d=t.structures||t.saveStructures,f=t.maxSharedStructures;if(f==null&&(f=d?32:0),f>8160)throw new Error("Maximum maxSharedStructure is 8160");let m=t.maxOwnStructures;m==null&&(m=d?32:64),u&&!t.saveStructures&&(this.structures=[]);let h=f>32||m+f>64,g=f+64,v=f+m+64;if(v>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],w=0,S=0;this.pack=this.encode=function(y,P){if(G||(G=new ml(8192),qe=new DataView(G.buffer,0,8192),C=0),pr=G.length-10,pr-C<2048?(G=new ml(G.length),qe=new DataView(G.buffer,0,G.length),pr=G.length-10,C=0):C=C+7&2147483640,r=C,l=a.structuredClone?new Map:null,a.bundleStrings?(dr=["",""],G[C++]=214,G[C++]=98,dr.position=C-r,C+=4):dr=null,o=a.structures,o){o.uninitialized&&(o=a._mergeStructures(a.getStructures()));let A=o.sharedLength||0;if(A>f)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+o.sharedLength);if(!o.transitions){o.transitions=Object.create(null);for(let O=0;O<A;O++){let T=o[O];if(!T)continue;let L,B=o.transitions;for(let j=0,te=T.length;j<te;j++){let ne=T[j];L=B[ne],L||(L=B[ne]=Object.create(null)),B=L}B[si]=O+64}c=A}u||(o.nextId=A+64)}i&&(i=!1),s=o||[];try{if(b(y),dr){qe.setUint32(dr.position+r,C-dr.position-r);let A=dr;dr=null,b(A[0]),b(A[1])}if(a.offset=C,l&&l.idsToInsert){C+=l.idsToInsert.length*6,C>pr&&_(C),a.offset=C;let A=qh(G.subarray(r,C),l.idsToInsert);return l=null,A}return P&du?(G.start=r,G.end=C,G):G.subarray(r,C)}finally{if(o){if(S<10&&S++,w>1e4)o.transitions=null,S=0,w=0,x.length>0&&(x=[]);else if(x.length>0&&!u){for(let A=0,O=x.length;A<O;A++)x[A][si]=0;x=[]}if(i&&a.saveStructures){let A=o.sharedLength||f;o.length>A&&(o=o.slice(0,A));let O=G.subarray(r,C);return a.saveStructures(o,c)===!1?(a._mergeStructures(a.getStructures()),a.pack(y)):(c=A,O)}}P&Jh&&(C=r)}};let b=y=>{C>pr&&(G=_(C));var P=typeof y,A;if(P==="string"){let O=y.length;if(dr&&O>=8&&O<4096){let B=Hh.test(y);dr[B?0:1]+=y,G[C++]=193,b(B?-O:O);return}let T;O<32?T=1:O<256?T=2:O<65536?T=3:T=5;let L=O*3;if(C+L>pr&&(G=_(C+L)),O<64||!p){let B,j,te,ne=C+T;for(B=0;B<O;B++)j=y.charCodeAt(B),j<128?G[ne++]=j:j<2048?(G[ne++]=j>>6|192,G[ne++]=j&63|128):(j&64512)===55296&&((te=y.charCodeAt(B+1))&64512)===56320?(j=65536+((j&1023)<<10)+(te&1023),B++,G[ne++]=j>>18|240,G[ne++]=j>>12&63|128,G[ne++]=j>>6&63|128,G[ne++]=j&63|128):(G[ne++]=j>>12|224,G[ne++]=j>>6&63|128,G[ne++]=j&63|128);A=ne-C-T}else A=p(y,C+T,L);A<32?G[C++]=160|A:A<256?(T<2&&G.copyWithin(C+2,C+1,C+1+A),G[C++]=217,G[C++]=A):A<65536?(T<3&&G.copyWithin(C+3,C+2,C+2+A),G[C++]=218,G[C++]=A>>8,G[C++]=A&255):(T<5&&G.copyWithin(C+5,C+3,C+3+A),G[C++]=219,qe.setUint32(C,A),C+=4),C+=A}else if(P==="number")if(y>>>0===y)y<64?G[C++]=y:y<256?(G[C++]=204,G[C++]=y):y<65536?(G[C++]=205,G[C++]=y>>8,G[C++]=y&255):(G[C++]=206,qe.setUint32(C,y),C+=4);else if(y>>0===y)y>=-32?G[C++]=256+y:y>=-128?(G[C++]=208,G[C++]=y+256):y>=-32768?(G[C++]=209,qe.setInt16(C,y),C+=2):(G[C++]=210,qe.setInt32(C,y),C+=4);else{let O;if((O=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){G[C++]=202,qe.setFloat32(C,y);let T;if(O<4||(T=y*Ss[(G[C]&127)<<1|G[C+1]>>7])>>0===T){C+=4;return}else C--}G[C++]=203,qe.setFloat64(C,y),C+=8}else if(P==="object")if(!y)G[C++]=192;else{if(l){let T=l.get(y);if(T){if(!T.id){let L=l.idsToInsert||(l.idsToInsert=[]);T.id=L.push(T)}G[C++]=214,G[C++]=112,qe.setUint32(C,T.id),C+=4;return}else l.set(y,{offset:C-r})}let O=y.constructor;if(O===Object)I(y,!0);else if(O===Array){A=y.length,A<16?G[C++]=144|A:A<65536?(G[C++]=220,G[C++]=A>>8,G[C++]=A&255):(G[C++]=221,qe.setUint32(C,A),C+=4);for(let T=0;T<A;T++)b(y[T])}else if(O===Map){A=y.size,A<16?G[C++]=128|A:A<65536?(G[C++]=222,G[C++]=A>>8,G[C++]=A&255):(G[C++]=223,qe.setUint32(C,A),C+=4);for(let[T,L]of y)b(T),b(L)}else{for(let T=0,L=As.length;T<L;T++){let B=hl[T];if(y instanceof B){let j=As[T];if(j.write){j.type&&(G[C++]=212,G[C++]=j.type,G[C++]=0),b(j.write.call(this,y));return}let te=G,ne=qe,ae=C;G=null;let U;try{U=j.pack.call(this,y,W=>(G=te,te=null,C+=W,C>pr&&_(C),{target:G,targetView:qe,position:C-W}),b)}finally{te&&(G=te,qe=ne,C=ae,pr=G.length-10)}U&&(U.length+C>pr&&_(U.length+C),C=Wh(U,G,C,j.type));return}}I(y,!y.hasOwnProperty)}}else if(P==="boolean")G[C++]=y?195:194;else if(P==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))G[C++]=211,qe.setBigInt64(C,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)G[C++]=207,qe.setBigUint64(C,y);else if(this.largeBigIntToFloat)G[C++]=203,qe.setFloat64(C,Number(y));else throw new RangeError(y+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");C+=8}else if(P==="undefined")this.encodeUndefinedAsNil?G[C++]=192:(G[C++]=212,G[C++]=0,G[C++]=0);else if(P==="function")b(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+P)},I=this.useRecords===!1?this.variableMapSize?y=>{let P=Object.keys(y),A=P.length;A<16?G[C++]=128|A:A<65536?(G[C++]=222,G[C++]=A>>8,G[C++]=A&255):(G[C++]=223,qe.setUint32(C,A),C+=4);let O;for(let T=0;T<A;T++)b(O=P[T]),b(y[O])}:(y,P)=>{G[C++]=222;let A=C-r;C+=2;let O=0;for(let T in y)(P||y.hasOwnProperty(T))&&(b(T),b(y[T]),O++);G[A+++r]=O>>8,G[A+r]=O&255}:y=>{let P=Object.keys(y),A,O=s.transitions||(s.transitions=Object.create(null)),T=0;for(let B=0,j=P.length;B<j;B++){let te=P[B];A=O[te],A||(A=O[te]=Object.create(null),T++),O=A}let L=O[si];if(L)L>=96&&h?(G[C++]=((L-=96)&31)+96,G[C++]=L>>5):G[C++]=L;else{L=s.nextId,L||(L=64),L<g&&this.shouldShareStructure&&!this.shouldShareStructure(P)?(L=s.nextOwnId,L<v||(L=g),s.nextOwnId=L+1):(L>=v&&(L=g),s.nextId=L+1);let B=P.highByte=L>=96&&h?L-96>>5:-1;O[si]=L,s[L-64]=P,L<g?(P.isShared=!0,s.sharedLength=L-63,i=!0,B>=0?(G[C++]=(L&31)+96,G[C++]=B):G[C++]=L):(B>=0?(G[C++]=213,G[C++]=114,G[C++]=(L&31)+96,G[C++]=B):(G[C++]=212,G[C++]=114,G[C++]=L),T&&(w+=S*T),x.length>=m&&(x.shift()[si]=0),x.push(O),b(P))}for(let B=0,j=P.length;B<j;B++)b(y[P[B]])},_=y=>{let P;if(y>16777216){if(y-r>au)throw new Error("Packed buffer would be larger than maximum buffer size");P=Math.min(au,Math.round(Math.max((y-r)*(y>67108864?1.25:2),4194304)/4096)*4096)}else P=(Math.max(y-r<<2,G.length-1)>>12)+1<<12;let A=new ml(P);return qe=new DataView(A.buffer,0,P),G.copy?G.copy(A,0,r,y):A.set(G.slice(r,y)),C-=r,r=0,pr=A.length-10,G=A}}useBuffer(t){G=t,qe=new DataView(G.buffer,G.byteOffset,G.byteLength),C=0}};hl=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,ii];As=[{pack(n,t,e){let r=n.getTime()/1e3;if((this.useTimestamp32||n.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:o,targetView:i,position:s}=t(6);o[s++]=214,o[s++]=255,i.setUint32(s,r)}else if(r>0&&r<17179869184){let{target:o,targetView:i,position:s}=t(10);o[s++]=215,o[s++]=255,i.setUint32(s,n.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),i.setUint32(s+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:i,position:s}=t(3);o[s++]=212,o[s++]=255,o[s++]=255}else{let{target:o,targetView:i,position:s}=t(15);o[s++]=199,o[s++]=12,o[s++]=255,i.setUint32(s,n.getMilliseconds()*1e6),i.setBigInt64(s+4,BigInt(Math.floor(r)))}}},{pack(n,t,e){let r=Array.from(n),{target:o,position:i}=t(this.structuredClone?3:0);this.structuredClone&&(o[i++]=212,o[i++]=115,o[i++]=0),e(r)}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=101,r[o++]=0),e([n.name,n.message])}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=120,r[o++]=0),e([n.source,n.flags])}},{pack(n,t){this.structuredClone?lu(n,16,t):cu(Ns?Buffer.from(n):new Uint8Array(n),t)}},{pack(n,t){let e=n.constructor;e!==uu&&this.structuredClone?lu(n,fl.indexOf(e.name),t):cu(n,t)}},{pack(n,t){let{target:e,position:r}=t(1);e[r]=193}}];function lu(n,t,e,r){let o=n.byteLength;if(o+1<256){var{target:i,position:s}=e(4+o);i[s++]=199,i[s++]=o+1}else if(o+1<65536){var{target:i,position:s}=e(5+o);i[s++]=200,i[s++]=o+1>>8,i[s++]=o+1&255}else{var{target:i,position:s,targetView:l}=e(7+o);i[s++]=201,l.setUint32(s,o+1),s+=4}i[s++]=116,i[s++]=t,i.set(new Uint8Array(n.buffer,n.byteOffset,n.byteLength),s)}function cu(n,t){let e=n.byteLength;var r,o;if(e<256){var{target:r,position:o}=t(e+2);r[o++]=196,r[o++]=e}else if(e<65536){var{target:r,position:o}=t(e+3);r[o++]=197,r[o++]=e>>8,r[o++]=e&255}else{var{target:r,position:o,targetView:i}=t(e+5);r[o++]=198,i.setUint32(o,e),o+=4}r.set(n,o)}function Wh(n,t,e,r){let o=n.length;switch(o){case 1:t[e++]=212;break;case 2:t[e++]=213;break;case 4:t[e++]=214;break;case 8:t[e++]=215;break;case 16:t[e++]=216;break;default:o<256?(t[e++]=199,t[e++]=o):o<65536?(t[e++]=200,t[e++]=o>>8,t[e++]=o&255):(t[e++]=201,t[e++]=o>>24,t[e++]=o>>16&255,t[e++]=o>>8&255,t[e++]=o&255)}return t[e++]=r,t.set(n,e),e+=o,e}function qh(n,t){let e,r=t.length*6,o=n.length-r;for(t.sort((i,s)=>i.offset>s.offset?1:-1);e=t.pop();){let i=e.offset,s=e.id;n.copyWithin(i+r,i,o),r-=6;let l=i+r;n[l++]=214,n[l++]=105,n[l++]=s>>24,n[l++]=s>>16&255,n[l++]=s>>8&255,n[l++]=s&255,o=i}return n}function qr(n){if(n.Class){if(!n.pack&&!n.write)throw new Error("Extension has no pack or write function");if(n.pack&&!n.type)throw new Error("Extension has no type (numeric code to identify the extension)");hl.unshift(n.Class),As.unshift(n)}su(n)}var pu=new bo({useRecords:!1}),$h=pu.pack,Xh=pu.pack;var{NEVER:Yh,ALWAYS:Kh,DECIMAL_ROUND:Qh,DECIMAL_FIT:Zh}=_s,du=512,Jh=1024;var fu=new bo({structuredClone:!0});qr({Class:Ge.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Ge.prototype),n}});qr({Class:ge.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,ge.prototype),n}});qr({Class:Fe.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,Fe.prototype),n}});qr({Class:oi.prototype.constructor,type:4,write(n){return n.id},read(n){return new oi(n)}});qr({Class:ni.prototype.constructor,type:5,write(n){return n.data},read(n){return new ni(n)}});qr({Class:Dt.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Dt.prototype),n}});function eg(n){var t=0;if(n.length===0)return t;for(let e=0;e<n.length;e++){let r=n[e];t=(t<<5)-t+r,t=t&t}return t}function gl(n){if(yo(n))return n;if(Array.isArray(n))return n.map(gl);if(typeof n=="object"&&n!==null){let t={};for(let e of Object.keys(n).sort())t[e]=gl(n[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else return n}var Is;(r=>{function n(o){return fu.pack(o)}r.serialize=n;function t(o){return fu.unpack(o)}r.deserialize=t;function e(o){return eg(n(gl(o))).toString()}r.checksum=e})(Is||(Is={}));var mu;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i]}e.lerp=t})(mu||(mu={}));var Ho;(o=>{function n(i,s){return i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]}o.isEqual=n;function t(i,s){return[i[0]+s[0],i[1]+s[1],i[2]+s[2]]}o.add=t;function e(i,s){return[i[0]-s[0],i[1]-s[1],i[2]-s[2]]}o.sub=e;function r(i,s,l){return[i[0]+(s[0]-i[0])*l,i[1]+(s[1]-i[1])*l,i[2]+(s[2]-i[2])*l]}o.lerp=r})(Ho||(Ho={}));var hu;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]&&r[2]===o[2]&&r[3]===o[3]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i,r[2]+(o[2]-r[2])*i,r[3]+(o[3]-r[3])*i]}e.lerp=t})(hu||(hu={}));var $r;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(i,s){for(let l=0;l<16;l++)if(i[l]!==s[l])return!1;return!0}o.isEqual=t;function e(i){return i??o.identity}o.simplify=e;function r(i,s){let l=s.slice(0);for(var c=0,p=s.length;c<p;c+=3){let a=i[3]*s[c]+i[7]*s[c+1]+i[11]*s[c+2]+i[15];l[c]=(i[0]*s[c]+i[4]*s[c+1]+i[8]*s[c+2]+i[12])/a,l[c+1]=(i[1]*s[c]+i[5]*s[c+1]+i[9]*s[c+2]+i[13])/a,l[c+2]=(i[2]*s[c]+i[6]*s[c+1]+i[10]*s[c+2]+i[14])/a}return l}o.applyMatrix4=r})($r||($r={}));var Nt;(c=>{c.white={r:1,g:1,b:1},c.red={r:1,g:0,b:0},c.black={r:0,g:0,b:0};function r(p){return{r:Math.round(p.r*255),g:Math.round(p.g*255),b:Math.round(p.b*255),a:1}}c.toRgb255a1=r;function o(p){return{r:p.r,g:p.g,b:p.b}}c.clone=o;function i(p){return p=Math.floor(p),{r:(p>>16&255)/255,g:(p>>8&255)/255,b:(p&255)/255}}c.fromHex=i;function s(p,a){return p.r===a.r&&p.g===a.g&&p.b===a.b}c.equals=s;function l(p,a,u){return{r:p.r+(a.r-p.r)*u,g:p.g+(a.g-p.g)*u,b:p.b+(a.b-p.b)*u}}c.lerp=l})(Nt||(Nt={}));var Yt;(l=>{l.white={...Nt.white,a:1},l.transparent={...Nt.white,a:0};function e(c){return{r:c[0],g:c[1],b:c[2],a:c[3]}}l.from0to1=e;function r(c,p){return{...Nt.fromHex(c),a:p}}l.fromHexAndA=r;function o(c){return{r:Math.round(c.r*255),g:Math.round(c.g*255),b:Math.round(c.b*255),a:c.a}}l.toRgb255a1=o;function i(c,p){return Nt.equals(c,p)&&c.a===p.a}l.equals=i;function s(c,p,a){return{r:c.r+(p.r-c.r)*a,g:c.g+(p.g-c.g)*a,b:c.b+(p.b-c.b)*a,a:c.a+(p.a-c.a)*a}}l.lerp=s})(Yt||(Yt={}));var Ps;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Ps||(Ps={}));var gu;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(gu||(gu={}));var yu;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(yu||(yu={}));var Wo;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(Wo||(Wo={}));var So;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:o.DefaultUp,isUpVectorFlipped:!1,targetOffset:o.DefaultTargetOffset};function r(i){return i.type==="PerspectiveCamera"?i.perspective.zoom:i.orthographic.zoom}o.getZoom=r})(So||(So={}));var Os;(t=>{function n(e,r=.1){return{type:"radial",hideBase:!1,count:3,radial:{radius:Math.max(e[0],e[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},linear:{scale:[1,1,1],rotation:[0,0,0],position:[e[0]+e[0]*r,0,0]},grid:{count:[2,2,2],size:e.map(o=>o*(1+r)),useCenter:!0}}}t.defaultData=n})(Os||(Os={}));var Cs;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Cs||(Cs={}));var Ls;(e=>{function n(r){return t(r)}e.defaultData=n;function t(r){if(r==="PointLight")return{type:r,color:Yt.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(r==="SpotLight")return{type:r,color:Yt.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(r==="DirectionalLight")return{type:r,color:Yt.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(Ls||(Ls={}));var yl;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(yl||(yl={}));var xl;(e=>{e.defaultData={flatShading:!1,wireframe:!1,side:0};function t(r,o){return r.flatShading===o.flatShading&&r.side===o.side&&r.wireframe===o.wireframe}e.equals=t})(xl||(xl={}));var Ms;(t=>t.defaultData={...xl.defaultData,...yl.defaultData,cloner:null,booleanExclude:null})(Ms||(Ms={}));var xu=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],vu=["wrapping","image"],Xr;(r=>{function n(o,i){return o==="light"&&i?t(i):e(o)}r.defaultData=n;function t(o){switch(o){case"basic":return{type:"light",category:"basic",alpha:1,visible:!0,mode:0};case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:5,type:"light",alpha:.6,visible:!0,mode:0};case"toon":return{category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"lambert":return{category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0};case"physical":return{category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0}}}function e(o){switch(o){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"texture",projection:0,texture:{image:"image_0",wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:Nt.fromHex(4737101)};case"depth":return{type:"depth",alpha:1,visible:!0,mode:0,gradientType:1,smooth:!1,isVector:!0,isWorldSpace:!1,origin:[0,0,0],direction:[1,0,0],colors:[[1,1,1,1],[0,0,0,1]],steps:[0,1],near:50,far:200};case"normal":return{type:"normal",alpha:1,visible:!0,mode:0,cnormal:[1,1,1]};case"gradient":return{type:"gradient",alpha:1,visible:!0,mode:0,gradientType:0,smooth:!1,colors:[[0,0,0,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,angle:0,offset:[0,0],morph:[0,0]};case"noise":return{type:"noise",alpha:1,visible:!0,mode:0,size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...Nt.fromHex(6710886),a:1},colorB:{...Nt.fromHex(6710886),a:1},colorC:{...Nt.fromHex(16777215),a:1},colorD:{...Nt.fromHex(16777215),a:1},distortion:[1,1],fA:[1.7,9.2],fB:[8.3,2.8]};case"fresnel":return{type:"fresnel",alpha:1,visible:!0,mode:0,color:Yt.fromHexAndA(16777215,1),bias:.1,scale:1,intensity:2,factor:1};case"rainbow":return{type:"rainbow",alpha:1,visible:!0,mode:0,filmThickness:30,movement:0,wavelengths:[0,0,0],noiseStrength:0,noiseScale:1,offset:[0,0,0]};case"toon":return{type:"toon",alpha:1,visible:!0,mode:0,positioning:2,colors:[[0,0,0,1],[.5,.5,.5,1],[.5,.5,.5,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,.475,.525,1,1,1,1,1,1,1],num:4,source:[0,1e3,0],isWorldSpace:!0,noiseStrength:0,noiseScale:1,shadowColor:Yt.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:Yt.fromHexAndA(0,1),contourColor:Yt.fromHexAndA(0,1),outlineWidth:2,contourWidth:5,outlineThreshold:.4,contourThreshold:0,outlineSmoothing:0,contourFrequency:10,contourDirection:[0,1,0],positionalLines:!1,compensation:!0};case"matcap":return{type:"matcap",alpha:1,visible:!0,mode:0,texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0]}};case"transmission":return{type:"transmission",alpha:1,visible:!0,mode:0,thickness:10,ior:1.5,roughness:1};case"displace":return{type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,visible:!0}}}})(Xr||(Xr={}));var Rt;(l=>{function n(c){return!c.layers.some(a=>{if(a.data.type==="texture"&&a.data.projection!==0||a.data.type==="depth"&&!a.data.isWorldSpace||a.data.type==="noise"||a.data.type==="displace")return!0})&&!e(c)}l.isMergable=n;function t(c){let p="";return c.layers.forEach(a=>{Object.entries(a.data).forEach(([u,d])=>{p+=`${u}${d}`,Array.isArray(d)?d.forEach(f=>p+=`${f}`):typeof d=="object"?Object.values(d).forEach(f=>{typeof f=="number"?p+=`${f.toFixed(4)}`:p+=`${f}`}):p+=`${d}`})}),p}l.getHash=t;function e(c){let p=0;for(let a of c.layers)"alpha"in a.data&&a.data.type!=="light"&&a.data.type!=="fresnel"&&(p+=(1-p)*a.data.alpha);return p<1}l.isTransparent=e;function r(){return{layers:new ge}}l.defaultEmptyData=r;function o(c="layer1",p="layer2"){return i("phong",c,p)}l.defaultData=o;function i(c,p="layer1",a="layer2"){let u=new ge;return u.push({fi:0,data:Xr.defaultData("light",c),id:p}),u.push({fi:1,data:Xr.defaultData("color"),id:a}),{layers:u}}l.defaultTwoLayerData=i;function s(c,p="basic",a="layer1",u="layer2"){let d=Xr.defaultData("texture");Object.assign(d.texture,{image:c});let f=new ge;return f.push({fi:0,data:d,id:a}),f.push({fi:1,data:Xr.defaultData("light",p),id:u}),{layers:f}}l.defaultTwoLayerTextureData=s})(Rt||(Rt={}));var qo;(t=>{function n(){return{points:new ge,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=n})(qo||(qo={}));var Es;(t=>{function n(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=n})(Es||(Es={}));var Yr;(t=>{function n(e){if(e==="RectangleGeometry")return{width:320,height:320,type:e,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="VectorGeometry")return{width:1,height:1,type:e,subdivisions:12,shape:qo.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="BooleanGeometry")return{type:e,operation:2,width:0,height:0,depth:0,phongAngle:35};if(e==="TextGeometry")return{type:e,width:100,height:100,depth:0,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.2,letterSpacing:0,text:"",textTransform:1,font:"Roboto_regular",extrudeBevelSize:0,extrudeBevelSegments:1};throw new Error("not implemented")}t.defaultData=n})(Yr||(Yr={}));var tg=typeof global=="object"&&global&&global.Object===Object&&global,Bs=tg;var rg=typeof self=="object"&&self&&self.Object===Object&&self,og=Bs||rg||Function("return this")(),Ye=og;var ng=Ye.Symbol,bt=ng;var bu=Object.prototype,ig=bu.hasOwnProperty,sg=bu.toString,ai=bt?bt.toStringTag:void 0;function ag(n){var t=ig.call(n,ai),e=n[ai];try{n[ai]=void 0;var r=!0}catch{}var o=sg.call(n);return r&&(t?n[ai]=e:delete n[ai]),o}var Su=ag;var lg=Object.prototype,cg=lg.toString;function ug(n){return cg.call(n)}var wu=ug;var pg="[object Null]",dg="[object Undefined]",_u=bt?bt.toStringTag:void 0;function fg(n){return n==null?n===void 0?dg:pg:_u&&_u in Object(n)?Su(n):wu(n)}var Vt=fg;function mg(n){return n!=null&&typeof n=="object"}var ht=mg;var hg="[object Symbol]";function gg(n){return typeof n=="symbol"||ht(n)&&Vt(n)==hg}var $o=gg;function yg(n,t){for(var e=-1,r=n==null?0:n.length,o=Array(r);++e<r;)o[e]=t(n[e],e,n);return o}var Ds=yg;var xg=Array.isArray,je=xg;var vg=1/0,Tu=bt?bt.prototype:void 0,Au=Tu?Tu.toString:void 0;function Nu(n){if(typeof n=="string")return n;if(je(n))return Ds(n,Nu)+"";if($o(n))return Au?Au.call(n):"";var t=n+"";return t=="0"&&1/n==-vg?"-0":t}var Iu=Nu;function bg(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}var Qe=bg;function Sg(n){return n}var Gs=Sg;var wg="[object AsyncFunction]",_g="[object Function]",Tg="[object GeneratorFunction]",Ag="[object Proxy]";function Ng(n){if(!Qe(n))return!1;var t=Vt(n);return t==_g||t==Tg||t==wg||t==Ag}var Xo=Ng;var Ig=Ye["__core-js_shared__"],Rs=Ig;var Pu=function(){var n=/[^.]+$/.exec(Rs&&Rs.keys&&Rs.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function Pg(n){return!!Pu&&Pu in n}var Ou=Pg;var Og=Function.prototype,Cg=Og.toString;function Lg(n){if(n!=null){try{return Cg.call(n)}catch{}try{return n+""}catch{}}return""}var Br=Lg;var Mg=/[\\^$.*+?()[\]{}|]/g,Eg=/^\[object .+?Constructor\]$/,Bg=Function.prototype,Dg=Object.prototype,Gg=Bg.toString,Rg=Dg.hasOwnProperty,Vg=RegExp("^"+Gg.call(Rg).replace(Mg,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Fg(n){if(!Qe(n)||Ou(n))return!1;var t=Xo(n)?Vg:Eg;return t.test(Br(n))}var Cu=Fg;function zg(n,t){return n?.[t]}var Lu=zg;function Ug(n,t){var e=Lu(n,t);return Cu(e)?e:void 0}var It=Ug;var jg=It(Ye,"WeakMap"),Vs=jg;var Mu=Object.create,kg=function(){function n(){}return function(t){if(!Qe(t))return{};if(Mu)return Mu(t);n.prototype=t;var e=new n;return n.prototype=void 0,e}}(),Eu=kg;function Hg(n,t,e){switch(e.length){case 0:return n.call(t);case 1:return n.call(t,e[0]);case 2:return n.call(t,e[0],e[1]);case 3:return n.call(t,e[0],e[1],e[2])}return n.apply(t,e)}var Bu=Hg;function Wg(n,t){var e=-1,r=n.length;for(t||(t=Array(r));++e<r;)t[e]=n[e];return t}var Fs=Wg;var qg=800,$g=16,Xg=Date.now;function Yg(n){var t=0,e=0;return function(){var r=Xg(),o=$g-(r-e);if(e=r,o>0){if(++t>=qg)return arguments[0]}else t=0;return n.apply(void 0,arguments)}}var Du=Yg;function Kg(n){return function(){return n}}var Gu=Kg;var Qg=function(){try{var n=It(Object,"defineProperty");return n({},"",{}),n}catch{}}(),Yo=Qg;var Zg=Yo?function(n,t){return Yo(n,"toString",{configurable:!0,enumerable:!1,value:Gu(t),writable:!0})}:Gs,Ru=Zg;var Jg=Du(Ru),zs=Jg;function ey(n,t){for(var e=-1,r=n==null?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}var Vu=ey;var ty=9007199254740991,ry=/^(?:0|[1-9]\d*)$/;function oy(n,t){var e=typeof n;return t=t??ty,!!t&&(e=="number"||e!="symbol"&&ry.test(n))&&n>-1&&n%1==0&&n<t}var Kr=oy;function ny(n,t,e){t=="__proto__"&&Yo?Yo(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}var Ko=ny;function iy(n,t){return n===t||n!==n&&t!==t}var Qr=iy;var sy=Object.prototype,ay=sy.hasOwnProperty;function ly(n,t,e){var r=n[t];(!(ay.call(n,t)&&Qr(r,e))||e===void 0&&!(t in n))&&Ko(n,t,e)}var Qo=ly;function cy(n,t,e,r){var o=!e;e||(e={});for(var i=-1,s=t.length;++i<s;){var l=t[i],c=r?r(e[l],n[l],l,e,n):void 0;c===void 0&&(c=n[l]),o?Ko(e,l,c):Qo(e,l,c)}return e}var kt=cy;var Fu=Math.max;function uy(n,t,e){return t=Fu(t===void 0?n.length-1:t,0),function(){for(var r=arguments,o=-1,i=Fu(r.length-t,0),s=Array(i);++o<i;)s[o]=r[t+o];o=-1;for(var l=Array(t+1);++o<t;)l[o]=r[o];return l[t]=e(s),Bu(n,this,l)}}var Us=uy;function py(n,t){return zs(Us(n,t,Gs),n+"")}var zu=py;var dy=9007199254740991;function fy(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=dy}var Zo=fy;function my(n){return n!=null&&Zo(n.length)&&!Xo(n)}var Zr=my;function hy(n,t,e){if(!Qe(e))return!1;var r=typeof t;return(r=="number"?Zr(e)&&Kr(t,e.length):r=="string"&&t in e)?Qr(e[t],n):!1}var Uu=hy;function gy(n){return zu(function(t,e){var r=-1,o=e.length,i=o>1?e[o-1]:void 0,s=o>2?e[2]:void 0;for(i=n.length>3&&typeof i=="function"?(o--,i):void 0,s&&Uu(e[0],e[1],s)&&(i=o<3?void 0:i,o=1),t=Object(t);++r<o;){var l=e[r];l&&n(t,l,r,i)}return t})}var ju=gy;var yy=Object.prototype;function xy(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||yy;return n===e}var Jo=xy;function vy(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}var ku=vy;var by="[object Arguments]";function Sy(n){return ht(n)&&Vt(n)==by}var vl=Sy;var Hu=Object.prototype,wy=Hu.hasOwnProperty,_y=Hu.propertyIsEnumerable,Ty=vl(function(){return arguments}())?vl:function(n){return ht(n)&&wy.call(n,"callee")&&!_y.call(n,"callee")},Dr=Ty;function Ay(){return!1}var Wu=Ay;var Xu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,qu=Xu&&typeof module=="object"&&module&&!module.nodeType&&module,Ny=qu&&qu.exports===Xu,$u=Ny?Ye.Buffer:void 0,Iy=$u?$u.isBuffer:void 0,Py=Iy||Wu,en=Py;var Oy="[object Arguments]",Cy="[object Array]",Ly="[object Boolean]",My="[object Date]",Ey="[object Error]",By="[object Function]",Dy="[object Map]",Gy="[object Number]",Ry="[object Object]",Vy="[object RegExp]",Fy="[object Set]",zy="[object String]",Uy="[object WeakMap]",jy="[object ArrayBuffer]",ky="[object DataView]",Hy="[object Float32Array]",Wy="[object Float64Array]",qy="[object Int8Array]",$y="[object Int16Array]",Xy="[object Int32Array]",Yy="[object Uint8Array]",Ky="[object Uint8ClampedArray]",Qy="[object Uint16Array]",Zy="[object Uint32Array]",Re={};Re[Hy]=Re[Wy]=Re[qy]=Re[$y]=Re[Xy]=Re[Yy]=Re[Ky]=Re[Qy]=Re[Zy]=!0;Re[Oy]=Re[Cy]=Re[jy]=Re[Ly]=Re[ky]=Re[My]=Re[Ey]=Re[By]=Re[Dy]=Re[Gy]=Re[Ry]=Re[Vy]=Re[Fy]=Re[zy]=Re[Uy]=!1;function Jy(n){return ht(n)&&Zo(n.length)&&!!Re[Vt(n)]}var Yu=Jy;function ex(n){return function(t){return n(t)}}var tn=ex;var Ku=typeof exports=="object"&&exports&&!exports.nodeType&&exports,li=Ku&&typeof module=="object"&&module&&!module.nodeType&&module,tx=li&&li.exports===Ku,bl=tx&&Bs.process,rx=function(){try{var n=li&&li.require&&li.require("util").types;return n||bl&&bl.binding&&bl.binding("util")}catch{}}(),Gr=rx;var Qu=Gr&&Gr.isTypedArray,ox=Qu?tn(Qu):Yu,js=ox;var nx=Object.prototype,ix=nx.hasOwnProperty;function sx(n,t){var e=je(n),r=!e&&Dr(n),o=!e&&!r&&en(n),i=!e&&!r&&!o&&js(n),s=e||r||o||i,l=s?ku(n.length,String):[],c=l.length;for(var p in n)(t||ix.call(n,p))&&!(s&&(p=="length"||o&&(p=="offset"||p=="parent")||i&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||Kr(p,c)))&&l.push(p);return l}var ks=sx;function ax(n,t){return function(e){return n(t(e))}}var Hs=ax;var lx=Hs(Object.keys,Object),Zu=lx;var cx=Object.prototype,ux=cx.hasOwnProperty;function px(n){if(!Jo(n))return Zu(n);var t=[];for(var e in Object(n))ux.call(n,e)&&e!="constructor"&&t.push(e);return t}var Ju=px;function dx(n){return Zr(n)?ks(n):Ju(n)}var rn=dx;function fx(n){var t=[];if(n!=null)for(var e in Object(n))t.push(e);return t}var ep=fx;var mx=Object.prototype,hx=mx.hasOwnProperty;function gx(n){if(!Qe(n))return ep(n);var t=Jo(n),e=[];for(var r in n)r=="constructor"&&(t||!hx.call(n,r))||e.push(r);return e}var tp=gx;function yx(n){return Zr(n)?ks(n,!0):tp(n)}var fr=yx;var xx=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,vx=/^\w*$/;function bx(n,t){if(je(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||$o(n)?!0:vx.test(n)||!xx.test(n)||t!=null&&n in Object(t)}var rp=bx;var Sx=It(Object,"create"),Rr=Sx;function wx(){this.__data__=Rr?Rr(null):{},this.size=0}var op=wx;function _x(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}var np=_x;var Tx="__lodash_hash_undefined__",Ax=Object.prototype,Nx=Ax.hasOwnProperty;function Ix(n){var t=this.__data__;if(Rr){var e=t[n];return e===Tx?void 0:e}return Nx.call(t,n)?t[n]:void 0}var ip=Ix;var Px=Object.prototype,Ox=Px.hasOwnProperty;function Cx(n){var t=this.__data__;return Rr?t[n]!==void 0:Ox.call(t,n)}var sp=Cx;var Lx="__lodash_hash_undefined__";function Mx(n,t){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=Rr&&t===void 0?Lx:t,this}var ap=Mx;function on(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}on.prototype.clear=op;on.prototype.delete=np;on.prototype.get=ip;on.prototype.has=sp;on.prototype.set=ap;var Sl=on;function Ex(){this.__data__=[],this.size=0}var lp=Ex;function Bx(n,t){for(var e=n.length;e--;)if(Qr(n[e][0],t))return e;return-1}var Jr=Bx;var Dx=Array.prototype,Gx=Dx.splice;function Rx(n){var t=this.__data__,e=Jr(t,n);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():Gx.call(t,e,1),--this.size,!0}var cp=Rx;function Vx(n){var t=this.__data__,e=Jr(t,n);return e<0?void 0:t[e][1]}var up=Vx;function Fx(n){return Jr(this.__data__,n)>-1}var pp=Fx;function zx(n,t){var e=this.__data__,r=Jr(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}var dp=zx;function nn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}nn.prototype.clear=lp;nn.prototype.delete=cp;nn.prototype.get=up;nn.prototype.has=pp;nn.prototype.set=dp;var eo=nn;var Ux=It(Ye,"Map"),to=Ux;function jx(){this.size=0,this.__data__={hash:new Sl,map:new(to||eo),string:new Sl}}var fp=jx;function kx(n){var t=typeof n;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?n!=="__proto__":n===null}var mp=kx;function Hx(n,t){var e=n.__data__;return mp(t)?e[typeof t=="string"?"string":"hash"]:e.map}var ro=Hx;function Wx(n){var t=ro(this,n).delete(n);return this.size-=t?1:0,t}var hp=Wx;function qx(n){return ro(this,n).get(n)}var gp=qx;function $x(n){return ro(this,n).has(n)}var yp=$x;function Xx(n,t){var e=ro(this,n),r=e.size;return e.set(n,t),this.size+=e.size==r?0:1,this}var xp=Xx;function sn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}sn.prototype.clear=fp;sn.prototype.delete=hp;sn.prototype.get=gp;sn.prototype.has=yp;sn.prototype.set=xp;var ci=sn;var Yx="Expected a function";function wl(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError(Yx);var e=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=e.cache;if(i.has(o))return i.get(o);var s=n.apply(this,r);return e.cache=i.set(o,s)||i,s};return e.cache=new(wl.Cache||ci),e}wl.Cache=ci;var vp=wl;var Kx=500;function Qx(n){var t=vp(n,function(r){return e.size===Kx&&e.clear(),r}),e=t.cache;return t}var bp=Qx;var Zx=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Jx=/\\(\\)?/g,e0=bp(function(n){var t=[];return n.charCodeAt(0)===46&&t.push(""),n.replace(Zx,function(e,r,o,i){t.push(o?i.replace(Jx,"$1"):r||e)}),t}),Sp=e0;function t0(n){return n==null?"":Iu(n)}var wp=t0;function r0(n,t){return je(n)?n:rp(n,t)?[n]:Sp(wp(n))}var Ht=r0;var o0=1/0;function n0(n){if(typeof n=="string"||$o(n))return n;var t=n+"";return t=="0"&&1/n==-o0?"-0":t}var oo=n0;function i0(n,t){t=Ht(t,n);for(var e=0,r=t.length;n!=null&&e<r;)n=n[oo(t[e++])];return e&&e==r?n:void 0}var Ws=i0;function s0(n,t){for(var e=-1,r=t.length,o=n.length;++e<r;)n[o+e]=t[e];return n}var an=s0;var _p=bt?bt.isConcatSpreadable:void 0;function a0(n){return je(n)||Dr(n)||!!(_p&&n&&n[_p])}var Tp=a0;function Ap(n,t,e,r,o){var i=-1,s=n.length;for(e||(e=Tp),o||(o=[]);++i<s;){var l=n[i];t>0&&e(l)?t>1?Ap(l,t-1,e,r,o):an(o,l):r||(o[o.length]=l)}return o}var Np=Ap;function l0(n){var t=n==null?0:n.length;return t?Np(n,1):[]}var Ip=l0;function c0(n){return zs(Us(n,void 0,Ip),n+"")}var qs=c0;var u0=Hs(Object.getPrototypeOf,Object),ln=u0;var p0="[object Object]",d0=Function.prototype,f0=Object.prototype,Pp=d0.toString,m0=f0.hasOwnProperty,h0=Pp.call(Object);function g0(n){if(!ht(n)||Vt(n)!=p0)return!1;var t=ln(n);if(t===null)return!0;var e=m0.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Pp.call(e)==h0}var $s=g0;function y0(n,t,e){var r=-1,o=n.length;t<0&&(t=-t>o?0:o+t),e=e>o?o:e,e<0&&(e+=o),o=t>e?0:e-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=n[r+t];return i}var Op=y0;function x0(){this.__data__=new eo,this.size=0}var Cp=x0;function v0(n){var t=this.__data__,e=t.delete(n);return this.size=t.size,e}var Lp=v0;function b0(n){return this.__data__.get(n)}var Mp=b0;function S0(n){return this.__data__.has(n)}var Ep=S0;var w0=200;function _0(n,t){var e=this.__data__;if(e instanceof eo){var r=e.__data__;if(!to||r.length<w0-1)return r.push([n,t]),this.size=++e.size,this;e=this.__data__=new ci(r)}return e.set(n,t),this.size=e.size,this}var Bp=_0;function cn(n){var t=this.__data__=new eo(n);this.size=t.size}cn.prototype.clear=Cp;cn.prototype.delete=Lp;cn.prototype.get=Mp;cn.prototype.has=Ep;cn.prototype.set=Bp;var Xs=cn;function T0(n,t){return n&&kt(t,rn(t),n)}var Dp=T0;function A0(n,t){return n&&kt(t,fr(t),n)}var Gp=A0;var zp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Rp=zp&&typeof module=="object"&&module&&!module.nodeType&&module,N0=Rp&&Rp.exports===zp,Vp=N0?Ye.Buffer:void 0,Fp=Vp?Vp.allocUnsafe:void 0;function I0(n,t){if(t)return n.slice();var e=n.length,r=Fp?Fp(e):new n.constructor(e);return n.copy(r),r}var Ys=I0;function P0(n,t){for(var e=-1,r=n==null?0:n.length,o=0,i=[];++e<r;){var s=n[e];t(s,e,n)&&(i[o++]=s)}return i}var Up=P0;function O0(){return[]}var Ks=O0;var C0=Object.prototype,L0=C0.propertyIsEnumerable,jp=Object.getOwnPropertySymbols,M0=jp?function(n){return n==null?[]:(n=Object(n),Up(jp(n),function(t){return L0.call(n,t)}))}:Ks,un=M0;function E0(n,t){return kt(n,un(n),t)}var kp=E0;var B0=Object.getOwnPropertySymbols,D0=B0?function(n){for(var t=[];n;)an(t,un(n)),n=ln(n);return t}:Ks,Qs=D0;function G0(n,t){return kt(n,Qs(n),t)}var Hp=G0;function R0(n,t,e){var r=t(n);return je(n)?r:an(r,e(n))}var Zs=R0;function V0(n){return Zs(n,rn,un)}var Wp=V0;function F0(n){return Zs(n,fr,Qs)}var Js=F0;var z0=It(Ye,"DataView"),ea=z0;var U0=It(Ye,"Promise"),ta=U0;var j0=It(Ye,"Set"),ra=j0;var qp="[object Map]",k0="[object Object]",$p="[object Promise]",Xp="[object Set]",Yp="[object WeakMap]",Kp="[object DataView]",H0=Br(ea),W0=Br(to),q0=Br(ta),$0=Br(ra),X0=Br(Vs),wo=Vt;(ea&&wo(new ea(new ArrayBuffer(1)))!=Kp||to&&wo(new to)!=qp||ta&&wo(ta.resolve())!=$p||ra&&wo(new ra)!=Xp||Vs&&wo(new Vs)!=Yp)&&(wo=function(n){var t=Vt(n),e=t==k0?n.constructor:void 0,r=e?Br(e):"";if(r)switch(r){case H0:return Kp;case W0:return qp;case q0:return $p;case $0:return Xp;case X0:return Yp}return t});var pn=wo;var Y0=Object.prototype,K0=Y0.hasOwnProperty;function Q0(n){var t=n.length,e=new n.constructor(t);return t&&typeof n[0]=="string"&&K0.call(n,"index")&&(e.index=n.index,e.input=n.input),e}var Qp=Q0;var Z0=Ye.Uint8Array,_l=Z0;function J0(n){var t=new n.constructor(n.byteLength);return new _l(t).set(new _l(n)),t}var dn=J0;function ev(n,t){var e=t?dn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var Zp=ev;var tv=/\w*$/;function rv(n){var t=new n.constructor(n.source,tv.exec(n));return t.lastIndex=n.lastIndex,t}var Jp=rv;var ed=bt?bt.prototype:void 0,td=ed?ed.valueOf:void 0;function ov(n){return td?Object(td.call(n)):{}}var rd=ov;function nv(n,t){var e=t?dn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}var oa=nv;var iv="[object Boolean]",sv="[object Date]",av="[object Map]",lv="[object Number]",cv="[object RegExp]",uv="[object Set]",pv="[object String]",dv="[object Symbol]",fv="[object ArrayBuffer]",mv="[object DataView]",hv="[object Float32Array]",gv="[object Float64Array]",yv="[object Int8Array]",xv="[object Int16Array]",vv="[object Int32Array]",bv="[object Uint8Array]",Sv="[object Uint8ClampedArray]",wv="[object Uint16Array]",_v="[object Uint32Array]";function Tv(n,t,e){var r=n.constructor;switch(t){case fv:return dn(n);case iv:case sv:return new r(+n);case mv:return Zp(n,e);case hv:case gv:case yv:case xv:case vv:case bv:case Sv:case wv:case _v:return oa(n,e);case av:return new r;case lv:case pv:return new r(n);case cv:return Jp(n);case uv:return new r;case dv:return rd(n)}}var od=Tv;function Av(n){return typeof n.constructor=="function"&&!Jo(n)?Eu(ln(n)):{}}var na=Av;var Nv="[object Map]";function Iv(n){return ht(n)&&pn(n)==Nv}var nd=Iv;var id=Gr&&Gr.isMap,Pv=id?tn(id):nd,sd=Pv;var Ov="[object Set]";function Cv(n){return ht(n)&&pn(n)==Ov}var ad=Cv;var ld=Gr&&Gr.isSet,Lv=ld?tn(ld):ad,cd=Lv;var Mv=1,Ev=2,Bv=4,ud="[object Arguments]",Dv="[object Array]",Gv="[object Boolean]",Rv="[object Date]",Vv="[object Error]",pd="[object Function]",Fv="[object GeneratorFunction]",zv="[object Map]",Uv="[object Number]",dd="[object Object]",jv="[object RegExp]",kv="[object Set]",Hv="[object String]",Wv="[object Symbol]",qv="[object WeakMap]",$v="[object ArrayBuffer]",Xv="[object DataView]",Yv="[object Float32Array]",Kv="[object Float64Array]",Qv="[object Int8Array]",Zv="[object Int16Array]",Jv="[object Int32Array]",eb="[object Uint8Array]",tb="[object Uint8ClampedArray]",rb="[object Uint16Array]",ob="[object Uint32Array]",Be={};Be[ud]=Be[Dv]=Be[$v]=Be[Xv]=Be[Gv]=Be[Rv]=Be[Yv]=Be[Kv]=Be[Qv]=Be[Zv]=Be[Jv]=Be[zv]=Be[Uv]=Be[dd]=Be[jv]=Be[kv]=Be[Hv]=Be[Wv]=Be[eb]=Be[tb]=Be[rb]=Be[ob]=!0;Be[Vv]=Be[pd]=Be[qv]=!1;function ia(n,t,e,r,o,i){var s,l=t&Mv,c=t&Ev,p=t&Bv;if(e&&(s=o?e(n,r,o,i):e(n)),s!==void 0)return s;if(!Qe(n))return n;var a=je(n);if(a){if(s=Qp(n),!l)return Fs(n,s)}else{var u=pn(n),d=u==pd||u==Fv;if(en(n))return Ys(n,l);if(u==dd||u==ud||d&&!o){if(s=c||d?{}:na(n),!l)return c?Hp(n,Gp(s,n)):kp(n,Dp(s,n))}else{if(!Be[u])return o?n:{};s=od(n,u,l)}}i||(i=new Xs);var f=i.get(n);if(f)return f;i.set(n,s),cd(n)?n.forEach(function(g){s.add(ia(g,t,e,g,n,i))}):sd(n)&&n.forEach(function(g,v){s.set(v,ia(g,t,e,v,n,i))});var m=p?c?Js:Wp:c?fr:rn,h=a?void 0:m(n);return Vu(h||n,function(g,v){h&&(v=g,g=n[v]),Qo(s,v,ia(g,t,e,v,n,i))}),s}var sa=ia;var nb=1,ib=4;function sb(n){return sa(n,nb|ib)}var ui=sb;function ab(n,t){return n!=null&&t in Object(n)}var fd=ab;function lb(n,t,e){t=Ht(t,n);for(var r=-1,o=t.length,i=!1;++r<o;){var s=oo(t[r]);if(!(i=n!=null&&e(n,s)))break;n=n[s]}return i||++r!=o?i:(o=n==null?0:n.length,!!o&&Zo(o)&&Kr(s,o)&&(je(n)||Dr(n)))}var md=lb;function cb(n,t){return n!=null&&md(n,t,fd)}var hd=cb;function ub(n){return function(t,e,r){for(var o=-1,i=Object(t),s=r(t),l=s.length;l--;){var c=s[n?l:++o];if(e(i[c],c,i)===!1)break}return t}}var gd=ub;var pb=gd(),yd=pb;function db(n,t,e){(e!==void 0&&!Qr(n[t],e)||e===void 0&&!(t in n))&&Ko(n,t,e)}var pi=db;function fb(n){return ht(n)&&Zr(n)}var xd=fb;function mb(n,t){if(!(t==="constructor"&&typeof n[t]=="function")&&t!="__proto__")return n[t]}var di=mb;function hb(n){return kt(n,fr(n))}var vd=hb;function gb(n,t,e,r,o,i,s){var l=di(n,e),c=di(t,e),p=s.get(c);if(p){pi(n,e,p);return}var a=i?i(l,c,e+"",n,t,s):void 0,u=a===void 0;if(u){var d=je(c),f=!d&&en(c),m=!d&&!f&&js(c);a=c,d||f||m?je(l)?a=l:xd(l)?a=Fs(l):f?(u=!1,a=Ys(c,!0)):m?(u=!1,a=oa(c,!0)):a=[]:$s(c)||Dr(c)?(a=l,Dr(l)?a=vd(l):(!Qe(l)||Xo(l))&&(a=na(c))):u=!1}u&&(s.set(c,a),o(a,c,r,i,s),s.delete(c)),pi(n,e,a)}var bd=gb;function Sd(n,t,e,r,o){n!==t&&yd(t,function(i,s){if(o||(o=new Xs),Qe(i))bd(n,t,s,e,Sd,r,o);else{var l=r?r(di(n,s),i,s+"",n,t,o):void 0;l===void 0&&(l=i),pi(n,s,l)}},fr)}var wd=Sd;function yb(n){var t=n==null?0:n.length;return t?n[t-1]:void 0}var _d=yb;function xb(n,t){return t.length<2?n:Ws(n,Op(t,0,-1))}var Td=xb;var vb=ju(function(n,t,e){wd(n,t,e)}),_o=vb;function bb(n,t){return t=Ht(t,n),n=Td(n,t),n==null||delete n[oo(_d(t))]}var Ad=bb;function Sb(n){return $s(n)?void 0:n}var Nd=Sb;var wb=1,_b=2,Tb=4,Ab=qs(function(n,t){var e={};if(n==null)return e;var r=!1;t=Ds(t,function(i){return i=Ht(i,n),r||(r=i.length>1),i}),kt(n,Js(n),e),r&&(e=sa(e,wb|_b|Tb,Nd));for(var o=t.length;o--;)Ad(e,t[o]);return e}),fn=Ab;function Nb(n,t,e,r){if(!Qe(n))return n;t=Ht(t,n);for(var o=-1,i=t.length,s=i-1,l=n;l!=null&&++o<i;){var c=oo(t[o]),p=e;if(c==="__proto__"||c==="constructor"||c==="prototype")return n;if(o!=s){var a=l[c];p=r?r(a,c,l):void 0,p===void 0&&(p=Qe(a)?a:Kr(t[o+1])?[]:{})}Qo(l,c,p),l=l[c]}return n}var Id=Nb;function Ib(n,t,e){for(var r=-1,o=t.length,i={};++r<o;){var s=t[r],l=Ws(n,s);e(l,s)&&Id(i,Ht(s,n),l)}return i}var Pd=Ib;function Pb(n,t){return Pd(n,t,function(e,r){return hd(n,r)})}var Od=Pb;var Ob=qs(function(n,t){return n==null?{}:Od(n,t)}),mn=Ob;var fi;(o=>{o.identity={...Ps.identity,hiddenMatrix:$r.identity};function t(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}o.fromObject=t;function e(i,s){return{position:s?.position||i.position,rotation:s?.rotation||i.rotation,scale:s?.scale||i.scale,hiddenMatrix:s?.hiddenMatrix||i.hiddenMatrix}}o.merge=e;function r(i,s){return{position:Ho.isEqual(i.position,s.position)?null:s.position,rotation:Ho.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:Ho.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:$r.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}o.diff=r})(fi||(fi={}));var Tl;(t=>t.defaultData={fusedBody:!0,rigidBody:"positioned",density:1,pointMass:0,gravityScale:1,friction:.5,damping:0,restitution:.2,colliderType:"convex",enabledRotation:[!0,!0,!0],enabledTranslation:[!0,!0,!0]})(Tl||(Tl={}));var Kt;(t=>t.defaultData={states:new ge,events:new ge,visible:!0,raycastLock:!1,physics:null,...fi.identity})(Kt||(Kt={}));var Cd;(t=>t.defaultData={type:"Empty",...Kt.defaultData})(Cd||(Cd={}));var To;(t=>t.defaultData={type:"Mesh",...Kt.defaultData,...Ms.defaultData})(To||(To={}));var aa;(t=>t.defaultData={...Kt.defaultData,...fi.identity,...So.defaultData})(aa||(aa={}));var Ld;(t=>{function n(e){return{...Kt.defaultData,...Ls.defaultData(e)}}t.defaultData=n})(Ld||(Ld={}));var Md;(o=>(o.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:$r.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Tl.defaultData,states:new ge,events:new ge,...So.defaultData},o.defaultMeshObject={name:"Rectangle",...Kt.defaultData,...To.defaultData,geometry:Yr.defaultData("RectangleGeometry"),material:Rt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultBooleanObject={name:"Boolean",...Kt.defaultData,...To.defaultData,geometry:Yr.defaultData("BooleanGeometry"),material:Rt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultTextObject={name:"Text",...Kt.defaultData,...To.defaultData,geometry:Yr.defaultData("TextGeometry"),material:Rt.defaultTwoLayerData("phong","layer1","layer2")}))(Md||(Md={}));var Ed;(e=>{function n(r,o){if(o===void 0)return r;let i={...r};return"material"in i&&"material"in o&&o.material&&(i.material=nl(i.material,s=>{if(typeof s!="string")for(let[l,c]of Object.entries(o.material.layers)){let p=s.layers.data(l);p&&_o(p,c)}}).data),i.materials&&o.materials&&(i.materials=nl(i.materials,s=>{for(let l=0;l<i.materials.length;l++){let c=o.materials[l];if(typeof c!="string")for(let[p,a]of Object.entries(c.layers)){let u=s[l]?.layers?.data(p);u&&_o(u,a)}}}).data),i}e.patchMaterialState=n;function t(r,o){if(o===void 0)return r;let i={...r};if(Object.assign(i,fi.merge(i,o)),Wo.is(r.type)){i.orthographic={...i.orthographic},i.perspective={...i.perspective};let s=o;s.orthographic?.zoom!==void 0&&(i.orthographic.zoom=s.orthographic.zoom),s.perspective?.zoom!==void 0&&(i.perspective.zoom=s.perspective.zoom),s.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=s.isUpVectorFlipped),s.targetOffset!==void 0&&(i.targetOffset=s.targetOffset)}else if(r.type==="Mesh")i.geometry={...i.geometry},Object.assign(i.geometry,o.geometry),i=n(i,o);else if(Cs.is(r.type)){let s=o;s.intensity!==void 0&&(i.intensity=s.intensity),s.color!==void 0&&(typeof s.color=="string"?i.color=s.color:i.color=Nt.clone(s.color))}return i}e.patch=t})(Ed||(Ed={}));var hn;(t=>t.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,isTouchZoom:!0,orbitTouches:2,panTouches:3})(hn||(hn={}));var la;(t=>t.defaultData={orbitControls:hn.defaultData,playCamera:null,withBackground:!0,preventScroll:!1,settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:1,stopMode:"manual",duration:5e3},web:{compress:!0,preset:1,preload:!0}},stopRaycast:!0,joystickSizeAndXYOffset:Array(12).fill(0).map((e,r)=>{let o=0,i=0;return r<5?i=-30:r<10&&(i=30),r===0||r===10||r===5?o=30:(r===4||r===11||r===9)&&(o=-30),[120,[o,i],"show"]}),gameControlObject:null})(la||(la={}));function Ao(n,t){return Object.setPrototypeOf(n,t),n}function Bd(n){return Array.isArray(n)?n:[n]}var ca;(e=>{function n(){let r={};return r["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Ao(r,Ge.prototype)}e.defaultColors=n;function t(){return{materials:new Ge,images:new Ge,colors:new Ge,audios:new Ge,fonts:new Ge,penumbraSize:[.5,.5,.5]}}e.emptyData=t})(ca||(ca={}));var mi=require("three");function Dd(n){n.layers.forEach(t=>{if(t.type==="depth"&&t.colorA!==void 0){let e=t.colorA,r=t.colorB,o=[[e.r,e.g,e.b,e.a],[r.r,r.g,r.b,r.a]],i=[0,1];for(let l=2;l<10;l++)o.push(o[1]),i.push(1);let s={...mn(Tt(t),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,t.near),far:Math.max(0,t.far),colors:o,steps:i,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(t,s)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={...Tt(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function Al(n,t){Object.values(n.shared.materials).forEach(e=>t(e))}function Nl(n,t){n.scene.objects.traverse((e,r)=>{"materials"in r?r.materials.forEach(o=>{typeof o!="string"&&t(o)}):"material"in r&&typeof r.material!="string"&&t(r.material)})}function Cb(n){Object.assign(n.scene.publish,{orbitControls:{...hn.defaultData,...Tt(n.scene.publish.orbitControls)}})}function Lb(n){Object.assign(n.scene.publish.settings,{video:{...la.defaultData.settings.video,...Tt(n.scene.publish.settings.video)}})}function Mb(n){function t(e){if(e.layers){for(let r of Object.values(e.layers))if(r){for(let[o,i]of Object.entries(r))if((xu.includes(o)||typeof i=="boolean")&&delete r[o],o==="texture")for(let[s,l]of Object.entries(i))(vu.includes(s)||typeof l=="boolean")&&delete i[s]}}}n.scene.objects.traverse((e,r)=>{r.states.forEach(o=>{let i=o;i.material?t(i.material):i.materials&&i.materials.forEach(s=>{t(s)})})})}function Eb(n){n.scene.publish.withBackground=!0}function Bb(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function Db(n){n.scene.objects.traverse((t,e)=>{let r=e.cloner;r&&(r.radial.scale=r.radial.scale.map(o=>o+1),r.linear.scale=r.linear.scale.map(o=>o+1))})}function Gb(n){n.scene.objects.traverse((t,e)=>{let r=e.geometry;r&&(r.type==="DodecahedronGeometry"||r.type==="IcosahedronGeometry")&&(r.detail=Math.round(r.detail))})}function Rb(n){n.scene.objects.traverse((t,e)=>{let r=n.scene.objects.parent(t);e.type==="Mesh"&&(!r||n.scene.objects.data(r).geometry?.type!=="BooleanGeometry")&&(e.booleanExclude=null)})}function Gd(n){n.layers===void 0&&Object.assign(n,Rt.defaultTwoLayerData("lambert"))}function Il(n){!n.layers||n.layers.forEach(t=>{if(t.type==="depth"&&t.colors.length===10){let e=[...t.colors];e.push(t.colors[9]);let r=[...t.steps];r.push(t.steps[9]);let o={...Tt(t),colors:e,steps:r};Object.assign(t,o)}})}function Vb(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function Rd(n){n.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&Il(r)}):"material"in e&&typeof e.material!="string"&&Il(e.material)}),Object.values(n.shared.materials).forEach(t=>Il(t))}function Fb(n){n.scene.environment.ambientLight.softShadows=!1,n.scene.environment.ambientLight.softShadowQuality="low",n.scene.objects.traverse((t,e)=>{(e.type==="DirectionalLight"||e.type==="SpotLight")&&(e.shadowResolution=1024,e.shadowRadius=1,e.depth=1e5)}),n.shared.penumbraSize=new Array(5).fill(.5)}function zb(n){n.shared.audios=Ao({},Ge.prototype)}function Ub(n){let t=n.shared.materials;Object.entries(t).forEach(([e,r])=>{if(!r.layers){let o={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"basic",alpha:1,visible:!0,mode:0},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(t,{[e]:o})}})}function jb(n){Object.entries(Tt(n.shared.images)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.images[r]}),Object.entries(Tt(n.shared.audios)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.audios[r]})}function kb(n){n.scene.publish.settings.web.preload=!1}function Vd(n){n.layers&&n.layers.forEach(t=>{t.type==="depth"&&t.num!==void 0&&(t.colors=t.colors.slice(0,t.num),t.steps=t.steps.slice(0,t.num),delete t.num)})}function Hb(n){n.shared.fonts=Ao({},Ge.prototype)}function Wb(n){return n.replace(".typeface","").replace(/optimer/gi,"open sans").replace("space_mono","space mono").replace(/alma_mono/gi,"varela round").replace(/droid_sans_mono/gi,"noto sans mono").replace(/droid_sans|gentilis|gnomon_(simple|foreground)|helvetiker/gi,"roboto").replace(/droid_serif/gi,"roboto slab").replace("_sans"," sans").replace("crimson_text","crimson text").replace("medium_medium","medium").replace("fatface_fatface","fatface").replace("100hairline","thin").replace("200thin","extralight").replace("300light","light").replace("500medium","medium").replace("600semi","semibold").replace("800heavy","extrabold").replace("900black","black").replace(/bodoni_(11|16|24|36|48|72|96)([^_])/gi,"bodoni_$1_$2").replace(/bodoni_(11|16|24|36|48|72|96)/gi,"bodoni moda").replace(/(thin|hairline)(_regular)?/gi,"100").replace(/(extra|ultra)light(_regular)?/gi,"200").replace(/light(_regular)?/gi,"300").replace(/_book|_normal|_roman/gi,"_regular").replace(/medium(_regular)?/gi,"500").replace(/(semi|demi)bold(_regular)?/gi,"600").replace(/(extra|ultra)bold(_regular)?/gi,"800").replace(/bold(_regular)?/gi,"700").replace(/(black|heavy|fatface)(_regular)?/gi,"900").replace(/([1-9]00)_italic/gi,"$1italic").replace(/regularitalic/gi,"italic").replace(/regularitalic/gi,"italic").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function qb(n){let t=[];n.scene.objects.traverse((e,r)=>{let o=r;if(o.type==="TextFrame"){let i=Rt.defaultTwoLayerData("basic"),s=typeof o.color=="string"?n.shared.colors[o.color]:o.color;i.layers[1].data.color={r:s.r,g:s.g,b:s.b},i.layers[1].data.alpha=o.alpha;let l=Wb(o.font);n.shared.fonts[l]===void 0&&(n.shared.fonts[l]={name:l});let c={name:o.name,...Kt.defaultData,...To.defaultData,flatShading:!1,wireframe:!1,geometry:{...Yr.defaultData("TextGeometry"),width:o.width,height:o.height,font:l,depth:0,horizontalAlign:o.horizontalAlign,verticalAlign:o.verticalAlign,fontSize:o.fontSize*1.40625,lineHeight:o.lineHeight/1.40625,letterSpacing:o.letterSpacing-1,text:o.text,textTransform:o.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:i,states:Tt(o.states),events:Tt(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},p=Tt(n.scene.objects).parent(e);n.scene.objects.insertAfter(p??null,e,[{id:e+"new",data:c,children:[]}]),t.push(e)}}),t.forEach(e=>{n.scene.objects.delete(e)})}function $b(n){let t={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};n.scene.objects.traverse((e,r)=>{r.events.forEach(o=>{if(!!t[Number(o.type)])if(Object.assign(o,{type:t[Number(o.type)]}),o.type==="Audio"&&"audioEvent"in o&&(Object.assign(o,{playAudio:o.audioEvent}),delete o.audioEvent),o.type==="GameControl")Object.assign(o,{gameActions:{idle:new ge,move:new ge,jump:new ge}});else{let i=new ge;Object.assign(o,{actions:i}),(o.type==="MouseDown"||o.type==="MouseUp"||o.type==="KeyDown"||o.type==="KeyUp")&&"url"in o&&i.push({fi:0,id:mi.MathUtils.generateUUID(),data:{type:"Link",url:o.url,delay:0}}),"targets"in o&&(o.targets.forEach((s,l,c)=>{let p={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},a={easing:s.easing,duration:s.duration};s.easing===6?Object.assign(a,mn(s,"mass","stiffness","damping","velocity")):s.easing===5&&Object.assign(a,{control1:{...s.control1},control2:{...s.control2}});let u={repeat:s.repeat?-1:0,delay:s.delay,delayDirection:s.delayDirection,direction:s.cycle&&s.rewind?"pingpong-rewind":s.cycle?"pingpong":"normal"},d={state:s.state,...u,...a},f={allowSlerp:!0,type:"Transition",object:s.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new ge({fi:0,id:mi.MathUtils.generateUUID(),data:p},{fi:1,id:mi.MathUtils.generateUUID(),data:d})};i.push({fi:c,id:l,data:f})}),delete o.targets)}})})}function Xb(n){n.scene.objects.traverse((t,e)=>{function r(o,i){let s=new ge,l=[];if(e.events.forEach((c,p,a)=>{if(c.type==="Audio"&&c.trigger===i){let u;l.push(p),c.interaction==="play"?u={...mn(c,"interaction","audio","delay","volume","loop"),triggerAfter:"after"in c?c.after:void 0,toggle:"after"in c?c.toggle:void 0,type:"Audio"}:(c.interaction==="pause"||c.interaction==="stop")&&(u={...mn(c,"interaction","delay","object","playAudio"),type:"Audio"}),u&&s.push({fi:a,id:p,data:u})}}),l.forEach(c=>e.events.delete(c)),s.length){let c=e.events.find(p=>p.type===o)?.data;c?"actions"in c&&c.actions.insertBefore(null,s):e.events.insertBefore(null,[{id:mi.MathUtils.generateUUID(),data:{type:o,actions:s}}])}}r("Start","start"),r("MouseDown","mouseDown"),r("MouseUp","mouseUp"),r("KeyDown","keyDown"),r("KeyUp","keyUp")})}var Fd=21;function zd(n){let t=n.schema??0;t!==Fd&&(console.warn("updating from ",t,"to ",Fd),t<1&&(Nl(n,Dd),Al(n,Dd),n.schema=1),t<2&&(Cb(n),n.schema=2),t<3&&(Mb(n),n.schema=3),t<4&&(Eb(n),n.schema=4),t<5&&(Bb(n),n.schema=5),t<6&&(Db(n),n.schema=6),t<7&&(Gb(n),n.schema=7),t<8&&(Rb(n),n.schema=8),t<9&&(Rd(n),n.schema=9),t<10&&(Vb(n),n.schema=10),t<11&&(Fb(n),n.schema=11),t<12&&(Rd(n),n.schema=12),t<13&&(zb(n),n.schema=13),t<14&&(Ub(n),n.schema=14),t<15&&(jb(n),n.schema=15),t<16&&(kb(n),n.schema=16),t<17&&(Nl(n,Vd),Al(n,Vd),n.schema=17),t<18&&(Nl(n,Gd),Al(n,Gd),n.schema=18),t<19&&(Lb(n),n.schema=19),t<20&&(Hb(n),qb(n),n.schema=20),t<21&&($b(n),Xb(n),n.schema=21))}var ua;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(ua||(ua={}));var Ke=require("three");var Ud=require("three"),Pl=class extends Ud.Object3D{},pa=class extends Pl{constructor(e){super();this.object=e;this.matrixAutoUpdate=!0}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return!0}get isLight(){return!1}get layers(){return this.object.layers}set layers(e){}get isCamera(){return!1}get geometry(){return this.object.geometry}get material(){return this.object.material}};var No=class extends Ke.Object3D{constructor(e,r={}){super();this.object=e;let o=e.recursiveBBox.getSize(new Ke.Vector3),i=.1;this.parameters=Os.defaultData(o.toArray(),i),_o(this.parameters,r),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(e){this.parameters.hideBase=e}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters)}this.children.forEach(e=>e.updateMatrix())}_updateCount(){let e=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count;if(this.children.length!==e)if(this.children.length<e)for(let r=0,o=e-this.children.length;r<o;++r){let i=new pa(this.object);i.visible=!0,this.add(i),this.parameters.hideBase&&this.setHideBase(!0)}else for(let r=0,o=this.children.length-e;r<o;++r)this.remove(this.children[0])}_updateRadial(e){let r=e.radial,o=r.start*Ke.MathUtils.DEG2RAD,i=r.end*Ke.MathUtils.DEG2RAD,s=o-i,l=new Ke.Euler(r.rotation[0]*Ke.MathUtils.DEG2RAD,r.rotation[1]*Ke.MathUtils.DEG2RAD,r.rotation[2]*Ke.MathUtils.DEG2RAD),c;switch(r.axis){case"z":c=new Ke.Vector3(0,0,1);break;case"y":c=new Ke.Vector3(0,1,0);break;default:case"x":c=new Ke.Vector3(1,0,0);break}for(let[p,a]of this.children.entries()){a.scale.x=r.scale[0],a.scale.y=r.scale[1],a.scale.z=r.scale[2],a.position.setScalar(0);let u=s/e.count*p-o;switch(r.axis){case"x":a.rotation.set(0,u,0);break;case"y":a.rotation.set(0,0,u);break;case"z":a.rotation.set(u,0,0);break}a.translateOnAxis(c,r.radius),a.position.x+=r.position[0],a.position.y+=r.position[1],a.position.z+=r.position[2],r.alignment===!0?(a.rotation.x+=l.x,a.rotation.y+=l.y,a.rotation.z+=l.z):a.rotation.copy(l)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,o=new Ke.Euler(r.rotation[0]*Ke.MathUtils.DEG2RAD,r.rotation[1]*Ke.MathUtils.DEG2RAD,r.rotation[2]*Ke.MathUtils.DEG2RAD);for(let[i,s]of this.children.entries())s.scale.x=1+(r.scale[0]-1)*i,s.scale.y=1+(r.scale[1]-1)*i,s.scale.z=1+(r.scale[2]-1)*i,s.rotation.x=o.x*i,s.rotation.y=o.y*i,s.rotation.z=o.z*i,s.position.x=r.position[0]*i,s.position.y=r.position[1]*i,s.position.z=r.position[2]*i}_updateGrid(e){let r=0,o=e.grid;if(o.useCenter===!0){let i={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},s=new Ke.Vector3(o.size[0]*(o.count[0]-i.x)*.5,o.size[1]*(o.count[1]-i.y)*.5,o.size[2]*(o.count[2]-i.z)*.5);for(let l=0;l<o.count[0];l++)for(let c=0;c<o.count[1];c++)for(let p=0;p<o.count[2];p++){let a=this.children[r++];a.scale.setScalar(1),a.rotation.set(0,0,0),a.position.x=o.size[0]*l-s.x,a.position.y=o.size[1]*c-s.y,a.position.z=o.size[2]*p-s.z}}else for(let i=0;i<o.count[0];i++)for(let s=0;s<o.count[1];s++)for(let l=0;l<o.count[2];l++){let c=this.children[r++];c.scale.setScalar(1),c.rotation.set(0,0,0),c.position.x=o.size[0]*i,c.position.y=-o.size[1]*s,c.position.z=-o.size[2]*l}}fromClonerState(e){return e.hideBase!==void 0&&this.setHideBase(e.hideBase),_o(this.parameters,e),this.update(),this}};var Lr=require("three");var ze=require("three");var jd=require("three"),mr=n=>{var t;return t=class extends n{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new jd.BoxGeometry(30,30,30),t};var pt=require("three");var gt=require("three"),da=new gt.Ray,Ol=new gt.Sphere,kd=new gt.Matrix4,hr=(n,t,e,r,o=!1)=>{let i=t,s=n.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),Ol.copy(i.boundingSphere),Ol.applyMatrix4(s),e.ray.intersectsSphere(Ol)===!1||(kd.copy(s).invert(),da.copy(e.ray).applyMatrix4(kd),i.boundingBox!==null&&da.intersectsBox(i.boundingBox)===!1))return;let l,c,p,a,u=i.index,d=i.attributes.position,f=i.drawRange,m,h;if(o===!1){let v=Math.max(0,f.start),x=Math.min(u.count,f.start+f.count);for(m=v,h=x;m<h;m+=3)if(c=u.getX(m),p=u.getX(m+1),a=u.getX(m+2),l=g(n,e,da,d,c,p,a),l){l.faceIndex=Math.floor(m/3),r.push(l);return}}else{let x=i.attributes.position,w=new gt.Vector3,S=new gt.Vector3,b=new gt.Vector3,I=new gt.Vector3,_=2,P=1/((n.scale.x+n.scale.y+n.scale.z)/3),A=P*P,O=Math.max(0,f.start),T=Math.min(x.count,f.start+f.count);for(let L=O,B=T-1;L<B;L+=_){if(w.fromBufferAttribute(x,L),S.fromBufferAttribute(x,L+1),da.distanceSqToSegment(w,S,I,b)>A)continue;I.applyMatrix4(n.matrixWorld);let te=e.ray.origin.distanceTo(I);te<e.near||te>e.far||r.push({distance:te,point:b.clone().applyMatrix4(n.matrixWorld),object:n})}}function g(v,x,w,S,b,I,_){let y=new gt.Vector3,P=new gt.Vector3,A=new gt.Vector3,O=new gt.Vector3,T=new gt.Vector3;if(y.fromBufferAttribute(S,b),P.fromBufferAttribute(S,I),A.fromBufferAttribute(S,_),w.intersectTriangle(y,P,A,!1,O)===null)return null;T.copy(O),T.applyMatrix4(v.matrixWorld);let B=x.ray.origin.distanceTo(T);return B<x.near||B>x.far?null:{faceIndex:1,distance:B,point:T.clone(),object:v}}};var fa=new pt.Vector3,Wt=new pt.Camera,Cl=class extends pt.LineSegments{constructor(e){let r=new pt.BufferGeometry,o=new pt.LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],s=[],l={},c=new pt.Color(15711266),p=new pt.Color(15711266),a=new pt.Color(2857471);u("n1","n2",c),u("n2","n4",c),u("n4","n3",c),u("n3","n1",c),u("f1","f2",c),u("f2","f4",c),u("f4","f3",c),u("f3","f1",c),u("n1","f1",c),u("n2","f2",c),u("n3","f3",c),u("n4","f4",c),u("p","n1",p),u("p","n2",p),u("p","n3",p),u("p","n4",p),u("u1","u2",a),u("u2","u3",a),u("u3","u1",a);function u(f,m,h){d(f,h),d(m,h)}function d(f,m){i.push(0,0,0),s.push(m.r,m.g,m.b),l[f]===void 0&&(l[f]=[]),l[f].push(i.length/3-1)}r.setAttribute("position",new pt.Float32BufferAttribute(i,3)),r.setAttribute("color",new pt.Float32BufferAttribute(s,3));super(r,o);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=l,this.update()}update(){let e=this.geometry,r=this.pointMap,o=!0;Wt.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let i=1,s=1,l=o?.8:1e-4;Qt("n1",r,e,Wt,-i,-s,l),Qt("n2",r,e,Wt,i,-s,l),Qt("n3",r,e,Wt,-i,s,l),Qt("n4",r,e,Wt,i,s,l);let c=l;Qt("f1",r,e,Wt,-i,-s,c),Qt("f2",r,e,Wt,i,-s,c),Qt("f3",r,e,Wt,-i,s,c),Qt("f4",r,e,Wt,i,s,c);let p=c,a=.5;Qt("u1",r,e,Wt,i*.7*a,s*1.1,p),Qt("u2",r,e,Wt,-i*.7*a,s*1.1,p),Qt("u3",r,e,Wt,0,s*(1.1+.9*a),p),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function Qt(n,t,e,r,o,i,s){fa.set(o,i,s).unproject(r);let l=t[n];if(l!==void 0){let c=e.getAttribute("position");for(let p=0,a=l.length;p<a;p++)c.setXYZ(l[p],fa.x,fa.y,fa.z)}}var ma=class extends mr(Cl){constructor(e){super(e);this.object=e;this.object=e,this.name=`CombinedCameraHelper: ${e.uuid}`}updateMatrixWorld(e){super.updateMatrixWorld(e),this.updateTarget()}updateTarget(){let e=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(e)}raycast(e,r){hr(this.object,this.geometry,e,r,!0)}};var Hd=require("three");var gn=class extends mr(Hd.DirectionalLightHelper){constructor(e,r=15,o=10066329){super(e,r,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,r){hr(this.object,gn.geometryHelper,e,r)}};var Wd=require("three");var yn=class extends mr(Wd.AxesHelper){constructor(e,r=15){super(r);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,r){hr(this.object,yn.geometryHelper,e,r)}update(){}};var qd=require("three");var xn=class extends mr(qd.PointLightHelper){constructor(e,r=15,o=6710886){super(e,r,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,r){hr(this.object,xn.geometryHelper,e,r)}};var ga=require("three");var ha=class extends mr(ga.SpotLightHelper){constructor(e,r=6710886){super(e,r);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,r){hr(this.object,ha.geometryHelper,e,r)}update(){if(this.object!==void 0){let e=ha._vector,r=this.object.distance?this.object.distance:1e3,o=r*Math.tan(this.object.angle);this.cone.scale.set(o,o,r),e.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(e);let i=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let s=0,l=this.cone.material.length;s<l;s++)this.cone.material[s].color.set(i);else this.cone.material.color.set(i)}}},gi=ha;gi._vector=new ga.Vector3;var he=require("three"),yi=1e-12,vn=class{constructor(t){this.position=new he.Vector2;this.startPosition=new he.Vector2;this.uuid=he.MathUtils.generateUUID();this.position=t.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(t){this.position.copy(this.startPosition).add(t)}copy(t){return this.position.copy(t.position),this.startPosition.copy(t.startPosition),this}clone(){return new vn(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},bn=class extends vn{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new bn(this.parent).copy(this)}},Zt=class extends vn{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new bn(this),new bn(this))}static create(e,r){let o=new Zt(e,new he.Vector2(...r.position));return o.controls[0].position.set(...r.controlPrevious.position),o.controls[1].position.set(...r.controlNext.position),o.roundness=r.roundness,o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored,o}getOppositeControl(e){let r=this.controls.indexOf(e);return r===0?this.controls[1]:r===1?this.controls[0]:null}applyOffsetToControls(e,r=1){for(let o=0,i=this.controls.length;o<i;o++){let s=this.controls[o];this.position.distanceTo(s.position)<=r?s.position.copy(this.position):s.applyOffset(e)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(e){return super.copy(e),this.controls[0].copy(e.controls[0]),this.controls[1].copy(e.controls[1]),this.roundness=e.roundness,this.uuid=e.uuid,this}clone(){return new Zt(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let e=this.curveBefore?.getTangentAt(1),r=this.curveAfter?.getTangentAt(0);return[e,r]}computeNormals(e=new he.Vector2,r=new he.Vector2){let[o,i]=this.computeTangents();return o&&i&&($d(o,e),$d(i,r)),[e,r]}computeTangent(e=new he.Vector2){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new he.Vector2){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function $d(n,t=new he.Vector2){let e=n.length();return t.set(-n.y/e,n.x/e)}var Ml=n=>n,Sn=new he.Vector2,ya=new he.Vector2,Kb=new he.Vector2,Qb=new he.Vector2,Zb=new he.Vector2,Jb=new he.Vector2,Yd=new he.Vector3,Kd=new he.Vector3;function Qd(n){let t=new he.Vector2;t.addVectors(n.v0,Sn.subVectors(n.v1,n.v0).multiplyScalar(2/3));let e=new he.Vector2;return e.addVectors(n.v2,ya.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new he.CubicBezierCurve(n.v0,t,e,n.v2)}function xi(n,t,e=Number.EPSILON){return Math.abs(n-t)<e}function eS(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function tS(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function El(n,t,e){let r=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),i=Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2));return Math.acos((o*o+r*r-i*i)/(2*o*r))}function Zd(n,t,e){return Xd(n,t)&&Xd(t,e)&&Ll(n.position,t.position,e.position)}function Ll(n,t,e){return Sn.copy(t).sub(n).cross(ya.copy(e).sub(n))===0}function Jd(n,t,e,r,o){let i=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),s=(n.y+t.y)/2,l=(n.x+t.x)/2,c=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(n.y-t.y)/i,p=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(t.x-n.x)/i;return r.set(l+c,s+p),o.set(l-c,s-p),[r,o]}function ef(n,t,e){let r=n.distanceTo(e),o=t.distanceTo(e);return r<o?t:n}function tf(n,t,e,r,o,i){let s=t.x-n.x,l=t.y-n.y,c=e.x-n.x,p=e.y-n.y,a=Math.sqrt((s+c)*(s+c)+(l+p)*(l+p)),u;return El(t,n,e)>Math.PI&&(a*=-1),xi(p,l)?u=(l+p)*(r/a-.5)*8/3/(s-c):u=(s+c)*(r/a-.5)*8/3/(p-l),o.set(t.x-u*l,t.y+u*s),i.set(e.x+u*p,e.y-u*c),[o,i]}function Bl(n,t){return n.position.equals(n.controls[1].position)&&t.position.equals(t.controls[0].position)}function Xd(n,t){return Ll(n.position,n.controls[1].position,t.position)&&Ll(n.position,t.controls[0].position,t.position)}function rf(n,t,e,r,o=.5){let i=Sn.subVectors(t,n).multiplyScalar(o).add(n),s=ya.subVectors(e,t).multiplyScalar(o).add(t),l=Kb.subVectors(r,e).multiplyScalar(o).add(e),c=i,p=Qb.subVectors(s,i).multiplyScalar(o).add(i),a=Zb.subVectors(l,s).multiplyScalar(o).add(s),u=l,d=Jb.subVectors(a,p).multiplyScalar(o).add(p);return[n.x,n.y,c.x,c.y,p.x,p.y,d.x,d.y,a.x,a.y,u.x,u.y,r.x,r.y]}function of(n,t,e=12,r=!0){let o=Kd.set(0,0,0),i,s=0,l=[];for(let c=0;c<t.length;c++){let p=Ml(t[c]),a=Sn,u=no(p,e);l.push(u);for(let d=0;d<=u;d++)if(p instanceof he.CubicBezierCurve||p instanceof he.QuadraticBezierCurve||p instanceof he.LineCurve){if(p.getPoint(d/u,a),o.set(a.x,a.y,0),i!==void 0&&tS(i,o))continue;i===void 0&&(i=Yd),i.copy(o),n.setXYZ(s,o.x,o.y,o.z),s++}}return r&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),n}function nf(n,t,e,r=12,o=!0){let i=Kd.set(0,0,0),s=0,l=[];for(let c=0;c<t.length;c++){if(e[c]===!1)continue;let p,a=Ml(t[c]),u=Sn,d=no(a,r);l.push(d);for(let f=0;f<=d;f++)if(a instanceof he.CubicBezierCurve||a instanceof he.QuadraticBezierCurve||a instanceof he.LineCurve){if(a.getPoint(f/d,u),i.set(u.x,u.y,0),p?.equals(i))continue;p===void 0?p=Yd:(n.setXYZ(s,p.x,p.y,p.z),s++,n.setXYZ(s,i.x,i.y,i.z),s++),p.copy(i)}}return o&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),l}function Dl(n,t=12,e=!1){let r=[];for(let o=0,i=n.length;o<i;o++){let s=n[o],l=0;if(e&&s.roundedCurveCorner!==void 0){let c=no(s.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=c),l+=c}s.curveAfter!==void 0&&(l+=no(s.curveAfter,t)),r.push(l)}return n.length>0&&e&&n[0].roundedCurveCorner!==void 0&&(r[n.length-1]+=no(n[0].roundedCurveCorner,t)*.5),r}function no(n,t=12){return n&&n instanceof he.EllipseCurve?t*2:n&&(n instanceof he.LineCurve||n instanceof he.LineCurve3)?1:n&&n instanceof he.SplineCurve?t*n.points.length:t}function sf(n,t,e=12,r=!0){let o,i=0;for(let s=0;s<t.length;s++){let l=Ml(t[s]),c=no(l,e),p=Sn;for(let a=0;a<=c;a++)if(l instanceof he.CubicBezierCurve||l instanceof he.QuadraticBezierCurve||l instanceof he.LineCurve){if(l.getPoint(a/c,p),o!==void 0&&eS(o,p,yi))continue;o===void 0&&(o=ya),o.copy(p),n.push(p.x,p.y),i++}}return xi(n[0],n[n.length-2],yi)&&xi(n[1],n[n.length-1],yi)&&(n.pop(),n.pop()),r&&i>1&&!(xi(n[i-1],n[1],yi)&&xi(n[i-2],n[0],yi))&&(n.push(n[0],n[1]),i++),n}var fo=require("three");var Se=require("three");var Gl=new Se.Vector2,rS=new Se.Vector2,oS=new Se.Vector2,nS=new Se.Vector2,iS=new Se.Vector2,sS=new Se.Vector2,_e=class extends Se.Shape{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new Se.EventDispatcher;this.plane=new Se.Plane(new Se.Vector3(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=Se.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,o){let i=new _e;return i.isClosed=e.isClosed,i.points=e.points.map(s=>Zt.create(s.id,s.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(s=>_e.createFromState(s)),r!==void 0&&o!==void 0&&i.applySize(r,o),i.update(),i}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(e){if(this._roundness!==e){this._roundness=e;for(let r=0,o=this.points.length;r<o;r++)this.points[r].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(r=>this.getPointIndexById(r)).filter(r=>r>=0)}getPointIndexById(e){let r=this.points.length,o=this.points.findIndex(i=>i.uuid===e);if(o<0){let i=r;for(let s=0,l=this.shapeHoles.length;s<l;s++){let c=this.shapeHoles[s],p=c.points.length,a=c.getPointIndexById(e);if(a<0)i+=p;else return a+i}}return o}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0){let r=this.points.length;for(let o=0,i=this.shapeHoles.length;o<i;o++){let s=this.shapeHoles[o],l=e-r;if(l<=s.points.length-1)return s.points[l];r+=s.points.length}}throw new Error("This shape does not have a point for this index: "+e)}getBezierPointIndex(e){let r=this.points.indexOf(e);if(r>=0)return r;if(r=this.points.length,this.shapeHoles.length>0)for(let o=0,i=this.shapeHoles.length;o<i;o++){let s=this.shapeHoles[o],l=s.points.indexOf(e);if(l>=0)return r+l;r+=s.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(r=>r.points));return[...this.points,...e]}applySize(e,r){e===0&&(e=.001),r===0&&(r=.001),this._width=e,this._height=r}applyScale(e,r){let o=Gl.set(e,r);for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i];l.position.multiply(o),l.controls[0].position.multiply(o),l.controls[1].position.multiply(o)}for(let i=0,s=this.shapeHoles.length;i<s;i++)this.shapeHoles[i].applyScale(e,r);this._update(!1)}createPoint(e,r=0,o=Se.MathUtils.generateUUID()){let i;e instanceof Se.Vector2?i=e:i=new Se.Vector2(e,r);let s=new Zt(o,i);return s.roundness=this.roundness,s}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,r){this.points.splice(r,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let r=0,o=this.points.length;r<o;r++){let i=this.points[r];if(i.uuid===e)return i}for(let r=0,o=this.shapeHoles.length;r<o;r++){let s=this.shapeHoles[r].getPointByUuid(e);if(s)return s}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let r=this.points.indexOf(e);r>=0&&this.points.splice(r,1),this.needsUpdate=!0}removePointById(e){let r=this.points.find(o=>o.uuid===e);r&&this.removePoint(r)}update(e=!0){for(let r=0,o=this.shapeHoles.length;r<o;r++)this.shapeHoles[r].update(!1);this._update(e)}extractShapePointsToBuffer(e,r=12,o=!1){this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r);let i=o?this.roundedCurveDivisions:this.curveDivisions;return of(e,o?this.roundedCurves:this.curves,r,this.autoClose),i.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Dl(this.points,e,!1),this.roundedCurveDivisions=Dl(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return nf(e,this.curves,r,o,this.autoClose).reduce((s,l)=>s+l,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),sf(e,this.roundedCurves,r,this.autoClose)}getCurveIndexFromVertexId(e,r=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=r?this.roundedCurveDivisions:this.curveDivisions,s=0;r&&this.points[0].roundedCurveCorner!==void 0&&(s=no(this.points[0].roundedCurveCorner,this.subdivision)*.5);let l=e-s;l<0&&(l+=i.reduce((c,p)=>c+p,0));for(let c=0,p=i.length;c<p;c++){let a=i[c];if(l<o+a)return[c,(l-o+1)/a];o+=a}return[0,1]}getCurveT(e,r,o){let i=this.points[e],s=this.points[e>=this.points.length-1?0:e+1],l=this.curveDivisions,c=l[e];if(Bl(i,s)){let u=i.position.distanceTo(s.position);return i.position.distanceTo(Gl.set(o.x,o.y))/u}let p=0;for(let u=0;u<e;u++)p+=l[u];return(r-p)/c}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,r){Bl(r,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(r.controls[1].position.x,r.controls[1].position.y,e.controls[0].position.x,e.controls[0].position.y,e.position.x,e.position.y);let o=this.curves[this.curves.length-1];e.curveBefore=o,r.curveAfter=o;let i=o.clone();e.roundedCurveBefore=i,r.roundedCurveAfter=i,e.roundedCurveCorner=void 0,this.roundedCurves.push(i)}_update(e=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let o=0,i=this.points.length;o<i;o++){let s=this.points[o];if(o===0)this.moveTo(s.position.x,s.position.y);else{let l=this.points[o-1];this._applyCurveForPoint(s,l)}}let r=this.getLastPoint();if(r?.curveAfter&&(r.curveAfter=void 0),this.isClosed){let o=this.points[0],i=this.points[this.points.length-1];this._applyCurveForPoint(o,i)}if(this.points.length>2){let o=0;for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i],c=this.points[i-1]??this.points[this.points.length-1],p=this.points[i+1]??this.points[0],a=l.roundness,u=c&&p&&Zd(c,l,p);if(!l.controlsMoved()&&a>0&&!u){let d=l.curveBefore,f=l.curveAfter;if(d===void 0||f===void 0)continue;let m=l.roundedCurveBefore,h=l.roundedCurveAfter,g=d.getLength(),v=f.getLength(),x=Math.min(a,g*.499),w=Math.min(a,v*.499),S=Math.min(x,w),b=1-S/g,I=S/v,_=d.getPointAt(b,Gl),y=f.getPointAt(I,rS);this._subSplitCurve(d,m,b,_,void 0),this._subSplitCurve(f,h,I,void 0,y);let P;if(this.useCubicForRoundedCorners){let A=El(_,l.position,y)/2,O=Math.tan(A)*_.distanceTo(l.position),[T,L]=Jd(_,y,O,oS,nS),B=ef(T,L,l.position),[j,te]=tf(B,_,y,O,iS,sS);P=new Se.CubicBezierCurve(_.clone(),j.clone(),te.clone(),y.clone())}else P=new Se.QuadraticBezierCurve(_.clone(),l.position.clone(),y.clone());l.roundedCurveCorner=P,this.roundedCurves.splice(i+o,0,P),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,r,o,i,s){if(e instanceof Se.LineCurve)i!==void 0&&r.v2.copy(i),s!==void 0&&r.v1.copy(s);else{let l=e,c=r,p=l.getUtoTmapping(o,0),a=rf(l.v0,l.v1,l.v2,l.v3,p);return i!==void 0&&(c.v0.set(a[0],a[1]),c.v1.set(a[2],a[3]),c.v2.set(a[4],a[5]),c.v3.set(a[6],a[7])),s!==void 0&&(c.v0.set(a[6],a[7]),c.v1.set(a[8],a[9]),c.v2.set(a[10],a[11]),c.v3.set(a[12],a[13])),c}return r}clone(){let e=new _e(this._width,this._height);return e.points=this.points.map(r=>r.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(r=>r.clone()),e}toJSON(){return{points:this.points.reduce((e,r)=>e.concat(r.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){this.points=[],this.pointIDs=0;let r=e.points.length/7;for(let o=0;o<r;o++){let i=o*7,s=e.points[i+0],l=e.points[i+1],c=e.points[i+2],p=e.points[i+3],a=e.points[i+4],u=e.points[i+5],d=e.points[i+6],f=new Zt(Se.MathUtils.generateUUID(),new Se.Vector2(s,l));f.controls[0].position.set(c,p),f.controls[1].position.set(a,u),f.roundness=d,this.points.push(f)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let i=new _e;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let r=(i,s)=>{s instanceof Se.CubicBezierCurve&&s.v3.equals(i.position)&&i.controls[0].position.copy(s.v2)},o=i=>{let s=[],l,c;for(l=0,c=i.length;l<c;l++)i[l]instanceof Se.QuadraticBezierCurve&&(i[l]=Qd(i[l]));for(l=0,c=i.length;l<c;l++){let u=i[l],d=l>0?i[l-1]:null,f;u instanceof Se.CubicBezierCurve?(f=this.createPoint(u.v0),f.controls[1].position.copy(u.v1)):u instanceof Se.LineCurve&&(f=this.createPoint(u.v1)),f!==void 0&&(d!==null&&r(f,d),s.push(f))}let p=i[i.length-1],a=!1;return p instanceof Se.CubicBezierCurve?p.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(p.v2),a=!0):p instanceof Se.LineCurve&&p.v2.equals(s[0].position)&&(a=!0),this.isClosed=a,s};return this.points=o(e.curves),e instanceof Se.Shape&&(this.shapeHoles=e.holes.map(i=>{let s=new _e;return s.fromShape(i),s})),this.update(),this}};var Po=require("three");var Me;(function(n){n[n.ODD=0]="ODD",n[n.NONZERO=1]="NONZERO",n[n.POSITIVE=2]="POSITIVE",n[n.NEGATIVE=3]="NEGATIVE",n[n.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Me||(Me={}));var Ze;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Ze||(Ze={}));function ue(n,t){if(!n)throw t||"Assertion Failed!"}var le=function(){function n(){}return n.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},n.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},n.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},n.edgeGoesLeft=function(t){return n.vertLeq(t.Dst,t.Org)},n.edgeGoesRight=function(t){return n.vertLeq(t.Org,t.Dst)},n.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},n.edgeEval=function(t,e,r){ue(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?o<i?e.t-t.t+(t.t-r.t)*(o/(o+i)):e.t-r.t+(r.t-t.t)*(i/(o+i)):0},n.edgeSign=function(t,e,r){ue(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?(e.t-r.t)*o+(e.t-t.t)*i:0},n.transEval=function(t,e,r){ue(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?o<i?e.s-t.s+(t.s-r.s)*(o/(o+i)):e.s-r.s+(r.s-t.s)*(i/(o+i)):0},n.transSign=function(t,e,r){ue(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?(e.s-r.s)*o+(e.s-t.s)*i:0},n.vertCCW=function(t,e,r){return t.s*(e.t-r.t)+e.s*(r.t-t.t)+r.s*(t.t-e.t)>=0},n.interpolate=function(t,e,r,o){return t=t<0?0:t,r=r<0?0:r,t<=r?r===0?(e+o)/2:e+(o-e)*(t/(t+r)):o+(e-o)*(r/(t+r))},n.intersect=function(t,e,r,o,i){var s,l,c;n.vertLeq(t,e)||(c=t,t=e,e=c),n.vertLeq(r,o)||(c=r,r=o,o=c),n.vertLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.vertLeq(r,e)?n.vertLeq(e,o)?(s=n.edgeEval(t,r,e),l=n.edgeEval(r,e,o),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,e.s)):(s=n.edgeSign(t,r,e),l=-n.edgeSign(t,o,e),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,o.s)):i.s=(r.s+e.s)/2,n.transLeq(t,e)||(c=t,t=e,e=c),n.transLeq(r,o)||(c=r,r=o,o=c),n.transLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.transLeq(r,e)?n.transLeq(e,o)?(s=n.transEval(t,r,e),l=n.transEval(r,e,o),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,e.t)):(s=n.transSign(t,r,e),l=-n.transSign(t,o,e),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,o.t)):i.t=(r.t+e.t)/2},n}(),vi=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return n}(),xa=function(){function n(t){this.side=t,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(n.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),n}(),wn=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}return n}(),af=function(){function n(){var t=new wn,e=new vi,r=new xa(0),o=new xa(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,r.next=r,r.Sym=o,o.next=o,o.Sym=r,this.vHead=t,this.fHead=e,this.eHead=r,this.eHeadSym=o}return n.prototype.makeEdge_=function(t){var e=new xa(0),r=new xa(1);t.Sym.side<t.side&&(t=t.Sym);var o=t.Sym.next;return r.next=o,o.Sym.next=e,e.next=t,t.Sym.next=r,e.Sym=r,e.Onext=e,e.Lnext=r,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,r.Sym=e,r.Onext=r,r.Lnext=e,r.Org=null,r.Lface=null,r.winding=0,r.activeRegion=null,e},n.prototype.splice_=function(t,e){var r=t.Onext,o=e.Onext;r.Sym.Lnext=e,o.Sym.Lnext=t,t.Onext=o,e.Onext=r},n.prototype.makeVertex_=function(t,e,r){var o=t;ue(o,"Vertex can't be null!");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e;var s=e;do s.Org=o,s=s.Onext;while(s!==e)},n.prototype.makeFace_=function(t,e,r){var o=t;ue(o,"Face can't be null");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e,o.trail=null,o.marked=!1,o.inside=r.inside;var s=e;do s.Lface=o,s=s.Lnext;while(s!==e)},n.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,r=t.Sym.next;e.Sym.next=r,r.Sym.next=e},n.prototype.killVertex_=function(t,e){var r=t.anEdge,o=r;do o.Org=e,o=o.Onext;while(o!==r);var i=t.prev,s=t.next;s.prev=i,i.next=s},n.prototype.killFace_=function(t,e){var r=t.anEdge,o=r;do o.Lface=e,o=o.Lnext;while(o!==r);var i=t.prev,s=t.next;s.prev=i,i.next=s},n.prototype.makeEdge=function(){var t=new wn,e=new wn,r=new vi,o=this.makeEdge_(this.eHead);return this.makeVertex_(t,o,this.vHead),this.makeVertex_(e,o.Sym,this.vHead),this.makeFace_(r,o,this.fHead),o},n.prototype.splice=function(t,e){var r=!1,o=!1;if(t!==e){if(e.Org!==t.Org&&(o=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!o){var i=new wn;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!r){var s=new vi;this.makeFace_(s,e,t.Lface),t.Lface.anEdge=t}}},n.prototype.delete=function(t){var e=t.Sym,r=!1;if(t.Lface!==t.Rface&&(r=!0,this.killFace_(t.Lface,t.Rface)),t.Onext===t)this.killVertex_(t.Org,null);else if(t.Rface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev),!r){var o=new vi;this.makeFace_(o,t,t.Lface)}e.Onext===e?(this.killVertex_(e.Org,null),this.killFace_(e.Lface,null)):(t.Lface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),this.killEdge_(t)},n.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),r=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new wn;return this.makeVertex_(o,r,e.Org),e.Lface=r.Lface=t.Lface,e},n.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t),r=e.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,r),t.Dst=r.Org,r.Dst.anEdge=r.Sym,r.Rface=t.Rface,r.winding=t.winding,r.Sym.winding=t.Sym.winding,r.idx=t.idx,r.Sym.idx=t.Sym.idx,r},n.prototype.connect=function(t,e){var r=!1,o=this.makeEdge_(t),i=o.Sym;if(e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(o,t.Lnext),this.splice_(i,e),o.Org=t.Dst,i.Org=e.Org,o.Lface=i.Lface=t.Lface,t.Lface.anEdge=i,!r){var s=new vi;this.makeFace_(s,o,t.Lface)}return o},n.prototype.zapFace=function(t){var e=t.anEdge,r,o,i,s,l;o=e.Lnext;do r=o,o=r.Lnext,r.Lface=null,r.Rface===null&&(r.Onext===r?this.killVertex_(r.Org,null):(r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev)),i=r.Sym,i.Onext===i?this.killVertex_(i.Org,null):(i.Org.anEdge=i.Onext,this.splice_(i,i.Oprev)),this.killEdge_(r));while(r!=e);s=t.prev,l=t.next,l.prev=s,s.next=l},n.prototype.countFaceVerts_=function(t){var e=t.anEdge,r=0;do r++,e=e.Lnext;while(e!==t.anEdge);return r},n.prototype.mergeConvexFaces=function(t){var e,r,o,i,s,l,c;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(r=e.anEdge,s=r.Org;o=r.Lnext,i=r.Sym,i&&i.Lface&&i.Lface.inside&&(l=this.countFaceVerts_(e),c=this.countFaceVerts_(i.Lface),l+c-2<=t&&le.vertCCW(r.Lprev.Org,r.Org,i.Lnext.Lnext.Org)&&le.vertCCW(i.Lprev.Org,i.Org,r.Lnext.Lnext.Org)&&(o=i.Lnext,this.delete(i),r=null,i=null)),!(r&&r.Lnext.Org===s);)r=o;return!0},n.prototype.check=function(){var t=this.fHead,e=this.vHead,r=this.eHead,o,i,s,l,c,p;for(i=t,i=t;(o=i.next)!==t;i=o){ue(o.prev===i),c=o.anEdge;do ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c),ue(c.Lface===o),c=c.Lnext;while(c!==o.anEdge)}for(ue(o.prev===i&&o.anEdge===null),l=e,l=e;(s=l.next)!==e;l=s){ue(s.prev===l),c=s.anEdge;do ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c),ue(c.Org===s),c=c.Onext;while(c!==s.anEdge)}for(ue(s.prev===l&&s.anEdge===null),p=r,p=r;(c=p.next)!==r;p=c)ue(c.Sym.next===p.Sym),ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Org!==null),ue(c.Dst!==null),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c);ue(c.Sym.next===p.Sym&&c.Sym===this.eHeadSym&&c.Sym.Sym===c&&c.Org===null&&c.Dst===null&&c.Lface===null&&c.Rface===null)},n}(),lf=function(){function n(){this.handle=null}return n}(),cf=function(){function n(){this.key=null,this.node=0}return n}(),aS=function(){function n(t,e){this.leq=e,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=t,this.nodes=[],this.handles=[];for(var r=0;r<t+1;r++)this.nodes[r]=new lf,this.handles[r]=new cf;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return n.prototype.floatDown_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t<<1,s<this.size&&this.leq(r[e[s+1].handle].key,r[e[s].handle].key)&&++s,ue(s<=this.max),i=e[s].handle,s>this.size||this.leq(r[o].key,r[i].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=s}},n.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t>>1,i=e[s].handle,s===0||this.leq(r[i].key,r[o].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=s}},n.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},n.prototype.min=function(){return this.handles[this.nodes[1].handle].key},n.prototype.insert=function(t){var e,r;if(e=++this.size,e*2>this.max){this.max*=2;var o,i;for(i=this.nodes.length,this.nodes.length=this.max+1,o=i;o<this.nodes.length;o++)this.nodes[o]=new lf;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new cf}return this.freeList===0?r=e:(r=this.freeList,this.freeList=this.handles[r].node),this.nodes[e].handle=r,this.handles[r].node=e,this.handles[r].key=t,this.initialized&&this.floatUp_(e),r},n.prototype.extractMin=function(){var t=this.nodes,e=this.handles,r=t[1].handle,o=e[r].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[r].key=null,e[r].node=this.freeList,this.freeList=r,--this.size,this.size>0&&this.floatDown_(1)),o},n.prototype.delete=function(t){var e=this.nodes,r=this.handles,o;ue(t>=1&&t<=this.max&&r[t].key!==null),o=r[t].node,e[o].handle=e[this.size].handle,r[e[o].handle].node=o,--this.size,o<=this.size&&(o<=1||this.leq(r[e[o>>1].handle].key,r[e[o].handle].key)?this.floatDown_(o):this.floatUp_(o)),r[t].key=null,r[t].node=this.freeList,this.freeList=t},n}(),Rl=function(){function n(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return n}(),uf=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),lS=function(){function n(t,e){this.frame=t,this.leq=e,this.head=new uf,this.head.next=this.head,this.head.prev=this.head}return n.prototype.min=function(){return this.head.next},n.prototype.max=function(){return this.head.prev},n.prototype.insert=function(t){return this.insertBefore(this.head,t)},n.prototype.search=function(t){var e=this.head;do e=e.next;while(e.key!==null&&!this.leq(this.frame,t,e.key));return e},n.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var r=new uf;return r.key=e,r.next=t.next,t.next.prev=r,r.prev=t,t.next=r,r},n.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},n}(),cS=function(){function n(){}return n.regionBelow=function(t){return t.nodeUp.prev.key},n.regionAbove=function(t){return t.nodeUp.next.key},n.debugEvent=function(t){},n.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.edgeLeq=function(t,e,r){var o=t.event,i=e.eUp,s=r.eUp;if(i.Dst===o)return s.Dst===o?le.vertLeq(i.Org,s.Org)?le.edgeSign(s.Dst,i.Org,s.Org)<=0:le.edgeSign(i.Dst,s.Org,i.Org)>=0:le.edgeSign(s.Dst,o,s.Org)<=0;if(s.Dst===o)return le.edgeSign(i.Dst,o,i.Org)>=0;var l=le.edgeEval(i.Dst,o,i.Org),c=le.edgeEval(s.Dst,o,s.Org);return l>=c},n.deleteRegion=function(t,e){e.fixUpperEdge&&ue(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},n.fixUpperEdge=function(t,e,r){ue(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=r,r.activeRegion=e},n.topLeftRegion=function(t,e){var r=e.eUp.Org,o;do e=n.regionAbove(e);while(e.eUp.Org===r);if(e.fixUpperEdge){if(o=t.mesh.connect(n.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;n.fixUpperEdge(t,e,o),e=n.regionAbove(e)}return e},n.topRightRegion=function(t){var e=t.eUp.Dst;do t=n.regionAbove(t);while(t.eUp.Dst===e);return t},n.addRegionBelow=function(t,e,r){var o=new Rl;return o.eUp=r,o.nodeUp=t.dict.insertBefore(e.nodeUp,o),o.fixUpperEdge=!1,o.sentinel=!1,o.dirty=!1,r.activeRegion=o,o},n.isWindingInside=function(t,e){switch(t.windingRule){case Me.ODD:return(e&1)!==0;case Me.NONZERO:return e!==0;case Me.POSITIVE:return e>0;case Me.NEGATIVE:return e<0;case Me.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},n.computeWinding=function(t,e){e.windingNumber=n.regionAbove(e).windingNumber+e.eUp.winding,e.inside=n.isWindingInside(t,e.windingNumber)},n.finishRegion=function(t,e){var r=e.eUp,o=r.Lface;o.inside=e.inside,o.anEdge=r,n.deleteRegion(t,e)},n.finishLeftRegions=function(t,e,r){for(var o,i=null,s=e,l=e.eUp;s!==r;){if(s.fixUpperEdge=!1,i=n.regionBelow(s),o=i.eUp,o.Org!=l.Org){if(!i.fixUpperEdge){n.finishRegion(t,s);break}o=t.mesh.connect(l.Lprev,o.Sym),n.fixUpperEdge(t,i,o)}l.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(l,o)),n.finishRegion(t,s),l=i.eUp,s=i}return l},n.addRightEdges=function(t,e,r,o,i,s){var l,c,p,a,u=!0;p=r;do ue(le.vertLeq(p.Org,p.Dst)),n.addRegionBelow(t,e,p.Sym),p=p.Onext;while(p!==o);for(i===null&&(i=n.regionBelow(e).eUp.Rprev),c=e,a=i;l=n.regionBelow(c),p=l.eUp.Sym,p.Org===a.Org;)p.Onext!==a&&(t.mesh.splice(p.Oprev,p),t.mesh.splice(a.Oprev,p)),l.windingNumber=c.windingNumber-p.winding,l.inside=n.isWindingInside(t,l.windingNumber),c.dirty=!0,!u&&n.checkForRightSplice(t,c)&&(n.addWinding(p,a),n.deleteRegion(t,c),t.mesh.delete(a)),u=!1,c=l,a=p;c.dirty=!0,ue(c.windingNumber-p.winding===l.windingNumber),s&&n.walkDirtyRegions(t,c)},n.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},n.vertexWeights=function(t,e,r){var o=le.vertL1dist(e,t),i=le.vertL1dist(r,t),s=.5*i/(o+i),l=.5*o/(o+i);t.coords[0]+=s*e.coords[0]+l*r.coords[0],t.coords[1]+=s*e.coords[1]+l*r.coords[1],t.coords[2]+=s*e.coords[2]+l*r.coords[2]},n.getIntersectData=function(t,e,r,o,i,s){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,n.vertexWeights(e,r,o),n.vertexWeights(e,i,s)},n.checkForRightSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp;if(le.vertLeq(o.Org,i.Org)){if(le.edgeSign(i.Dst,o.Org,i.Org)>0)return!1;le.vertEq(o.Org,i.Org)?o.Org!==i.Org&&(t.pq.delete(o.Org.pqHandle),n.spliceMergeVertices(t,i.Oprev,o)):(t.mesh.splitEdge(i.Sym),t.mesh.splice(o,i.Oprev),e.dirty=r.dirty=!0)}else{if(le.edgeSign(o.Dst,i.Org,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Oprev,o)}return!0},n.checkForLeftSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,s;if(ue(!le.vertEq(o.Dst,i.Dst)),le.vertLeq(o.Dst,i.Dst)){if(le.edgeSign(o.Dst,i.Dst,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,s=t.mesh.splitEdge(o),t.mesh.splice(i.Sym,s),s.Lface.inside=e.inside}else{if(le.edgeSign(i.Dst,o.Dst,i.Org)>0)return!1;e.dirty=r.dirty=!0,s=t.mesh.splitEdge(i),t.mesh.splice(o.Lnext,i.Sym),s.Rface.inside=e.inside}return!0},n.checkForIntersect=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,s=o.Org,l=i.Org,c=o.Dst,p=i.Dst,a,u,d=new wn,f,m;if(ue(!le.vertEq(p,c)),ue(le.edgeSign(c,t.event,s)<=0),ue(le.edgeSign(p,t.event,l)>=0),ue(s!==t.event&&l!==t.event),ue(!e.fixUpperEdge&&!r.fixUpperEdge),s===l||(a=Math.min(s.t,c.t),u=Math.max(l.t,p.t),a>u))return!1;if(le.vertLeq(s,l)){if(le.edgeSign(p,s,l)>0)return!1}else if(le.edgeSign(c,l,s)<0)return!1;return n.debugEvent(t),le.intersect(c,s,p,l,d),ue(Math.min(s.t,c.t)<=d.t),ue(d.t<=Math.max(l.t,p.t)),ue(Math.min(p.s,c.s)<=d.s),ue(d.s<=Math.max(l.s,s.s)),le.vertLeq(d,t.event)&&(d.s=t.event.s,d.t=t.event.t),f=le.vertLeq(s,l)?s:l,le.vertLeq(f,d)&&(d.s=f.s,d.t=f.t),le.vertEq(d,s)||le.vertEq(d,l)?(n.checkForRightSplice(t,e),!1):!le.vertEq(c,t.event)&&le.edgeSign(c,t.event,d)>=0||!le.vertEq(p,t.event)&&le.edgeSign(p,t.event,d)<=0?p===t.event?(t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Sym,o),e=n.topLeftRegion(t,e),o=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),r),n.addRightEdges(t,e,o.Oprev,o,o,!0),!0):c===t.event?(t.mesh.splitEdge(i.Sym),t.mesh.splice(o.Lnext,i.Oprev),r=e,e=n.topRightRegion(e),m=n.regionBelow(e).eUp.Rprev,r.eUp=i.Oprev,i=n.finishLeftRegions(t,r,null),n.addRightEdges(t,e,i.Onext,o.Rprev,m,!0),!0):(le.edgeSign(c,t.event,d)>=0&&(n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),o.Org.s=t.event.s,o.Org.t=t.event.t),le.edgeSign(p,t.event,d)<=0&&(e.dirty=r.dirty=!0,t.mesh.splitEdge(i.Sym),i.Org.s=t.event.s,i.Org.t=t.event.t),!1):(t.mesh.splitEdge(o.Sym),t.mesh.splitEdge(i.Sym),t.mesh.splice(i.Oprev,o),o.Org.s=d.s,o.Org.t=d.t,o.Org.pqHandle=t.pq.insert(o.Org),n.getIntersectData(t,o.Org,s,c,l,p),n.regionAbove(e).dirty=e.dirty=r.dirty=!0,!1)},n.walkDirtyRegions=function(t,e){for(var r=n.regionBelow(e),o,i;;){for(;r.dirty;)e=r,r=n.regionBelow(r);if(!e.dirty&&(r=e,e=n.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,i=r.eUp,o.Dst!==i.Dst&&n.checkForLeftSplice(t,e)&&(r.fixUpperEdge?(n.deleteRegion(t,r),t.mesh.delete(i),r=n.regionBelow(e),i=r.eUp):e.fixUpperEdge&&(n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r),o=e.eUp)),o.Org!==i.Org)if(o.Dst!==i.Dst&&!e.fixUpperEdge&&!r.fixUpperEdge&&(o.Dst===t.event||i.Dst===t.event)){if(n.checkForIntersect(t,e))return}else n.checkForRightSplice(t,e);o.Org===i.Org&&o.Dst===i.Dst&&(n.addWinding(i,o),n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r))}},n.connectRightVertex=function(t,e,r){var o,i=r.Onext,s=n.regionBelow(e),l=e.eUp,c=s.eUp,p=!1;if(l.Dst!==c.Dst&&n.checkForIntersect(t,e),le.vertEq(l.Org,t.event)&&(t.mesh.splice(i.Oprev,l),e=n.topLeftRegion(t,e),i=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),s),p=!0),le.vertEq(c.Org,t.event)&&(t.mesh.splice(r,c.Oprev),r=n.finishLeftRegions(t,s,null),p=!0),p){n.addRightEdges(t,e,r.Onext,i,i,!0);return}le.vertLeq(c.Org,l.Org)?o=c.Oprev:o=l,o=t.mesh.connect(r.Lprev,o),n.addRightEdges(t,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,n.walkDirtyRegions(t,e)},n.connectLeftDegenerate=function(t,e,r){var o,i,s,l,c;if(o=e.eUp,le.vertEq(o.Org,r)){ue(!1),n.spliceMergeVertices(t,o,r.anEdge);return}if(!le.vertEq(o.Dst,r)){t.mesh.splitEdge(o.Sym),e.fixUpperEdge&&(t.mesh.delete(o.Onext),e.fixUpperEdge=!1),t.mesh.splice(r.anEdge,o),n.sweepEvent(t,r);return}ue(!1),e=n.topRightRegion(e),c=n.regionBelow(e),s=c.eUp.Sym,i=l=s.Onext,c.fixUpperEdge&&(ue(i!==s),n.deleteRegion(t,c),t.mesh.delete(s),s=i.Oprev),t.mesh.splice(r.anEdge,s),le.edgeGoesLeft(i)||(i=null),n.addRightEdges(t,e,s.Onext,l,i,!0)},n.connectLeftVertex=function(t,e){var r,o,i,s,l,c,p=new Rl;if(p.eUp=e.anEdge.Sym,r=t.dict.search(p).key,o=n.regionBelow(r),!!o){if(s=r.eUp,l=o.eUp,le.edgeSign(s.Dst,e,s.Org)===0){n.connectLeftDegenerate(t,r,e);return}if(i=le.vertLeq(l.Dst,s.Dst)?r:o,r.inside||i.fixUpperEdge){if(i===r)c=t.mesh.connect(e.anEdge.Sym,s.Lnext);else{var a=t.mesh.connect(l.Dnext,e.anEdge);c=a.Sym}i.fixUpperEdge?n.fixUpperEdge(t,i,c):n.computeWinding(t,n.addRegionBelow(t,r,c)),n.sweepEvent(t,e)}else n.addRightEdges(t,r,e.anEdge,e.anEdge,null,!0)}},n.sweepEvent=function(t,e){t.event=e,n.debugEvent(t);for(var r=e.anEdge;r.activeRegion===null;)if(r=r.Onext,r===e.anEdge){n.connectLeftVertex(t,e);return}var o=n.topLeftRegion(t,r.activeRegion);ue(o!==null);var i=n.regionBelow(o),s=i.eUp,l=n.finishLeftRegions(t,i,null);l.Onext===s?n.connectRightVertex(t,o,l):n.addRightEdges(t,o,l.Onext,s,s,!0)},n.addSentinel=function(t,e,r,o){var i=new Rl,s=t.mesh.makeEdge();s.Org.s=r,s.Org.t=o,s.Dst.s=e,s.Dst.t=o,t.event=s.Dst,i.eUp=s,i.windingNumber=0,i.inside=!1,i.fixUpperEdge=!1,i.sentinel=!0,i.dirty=!1,i.nodeUp=t.dict.insert(i)},n.initEdgeDict=function(t){t.dict=new lS(t,n.edgeLeq);var e=t.bmax[0]-t.bmin[0],r=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,i=t.bmax[0]+e,s=t.bmin[1]-r,l=t.bmax[1]+r;n.addSentinel(t,o,i,s),n.addSentinel(t,o,i,l)},n.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(ue(e.fixUpperEdge),ue(++r===1)),ue(e.windingNumber===0),n.deleteRegion(t,e)},n.removeDegenerateEdges=function(t){var e,r,o,i=t.mesh.eHead;for(e=i.next;e!==i;e=r)r=e.next,o=e.Lnext,le.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(n.spliceMergeVertices(t,o,e),t.mesh.delete(e),e=o,o=e.Lnext),o.Lnext===e&&(o!==e&&((o===r||o===r.Sym)&&(r=r.next),t.mesh.delete(o)),(e===r||e===r.Sym)&&(r=r.next),t.mesh.delete(e))},n.initPriorityQ=function(t){var e,r,o,i=0;for(o=t.mesh.vHead,r=o.next;r!==o;r=r.next)i++;for(i+=8,e=t.pq=new aS(i,le.vertLeq),o=t.mesh.vHead,r=o.next;r!==o;r=r.next)r.pqHandle=e.insert(r);return r!==o?!1:(e.init(),!0)},n.donePriorityQ=function(t){t.pq=null},n.removeDegenerateFaces=function(t,e){var r,o,i;for(r=e.fHead.next;r!==e.fHead;r=o)o=r.next,i=r.anEdge,ue(i.Lnext!==i),i.Lnext.Lnext===i&&(n.addWinding(i.Onext,i),t.mesh.delete(i));return!0},n.computeInterior=function(t,e){e===void 0&&(e=!0);var r,o;if(n.removeDegenerateEdges(t),!n.initPriorityQ(t))return!1;for(n.initEdgeDict(t);(r=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!le.vertEq(o,r));)o=t.pq.extractMin(),n.spliceMergeVertices(t,r.anEdge,o.anEdge);n.sweepEvent(t,r)}return t.event=t.dict.min().key.eUp.Org,n.debugEvent(t),n.doneEdgeDict(t),n.donePriorityQ(t),n.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},n}(),uS=function(){function n(){this.mesh=new af,this.normal=[0,0,0],this.sUnit=[0,0,0],this.tUnit=[0,0,0],this.bmin=[0,0],this.bmax=[0,0],this.windingRule=Me.ODD,this.dict=null,this.pq=null,this.event=null,this.vertexIndexCounter=0,this.vertices=[],this.vertexIndices=[],this.vertexCount=0,this.elements=[],this.elementCount=0}return n.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},n.prototype.normalize_=function(t){var e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];if(!e)throw"Zero-size vector!";e=Math.sqrt(e),t[0]/=e,t[1]/=e,t[2]/=e},n.prototype.longAxis_=function(t){var e=0;return Math.abs(t[1])>Math.abs(t[0])&&(e=1),Math.abs(t[2])>Math.abs(t[e])&&(e=2),e},n.prototype.computeNormal_=function(t){var e,r,o,i,s,l,c=[0,0,0],p=[0,0,0],a=[0,0,0],u=[0,0,0],d=[0,0,0],f=[null,null,null],m=[null,null,null],h=this.mesh.vHead;e=h.next;for(var g=0;g<3;++g)i=e.coords[g],p[g]=i,m[g]=e,c[g]=i,f[g]=e;for(e=h.next;e!==h;e=e.next)for(var v=0;v<3;++v)i=e.coords[v],i<p[v]&&(p[v]=i,m[v]=e),i>c[v]&&(c[v]=i,f[v]=e);var x=0;if(c[1]-p[1]>c[0]-p[0]&&(x=1),c[2]-p[2]>c[x]-p[x]&&(x=2),p[x]>=c[x]){t[0]=0,t[1]=0,t[2]=1;return}for(l=0,r=m[x],o=f[x],a[0]=r.coords[0]-o.coords[0],a[1]=r.coords[1]-o.coords[1],a[2]=r.coords[2]-o.coords[2],e=h.next;e!==h;e=e.next)u[0]=e.coords[0]-o.coords[0],u[1]=e.coords[1]-o.coords[1],u[2]=e.coords[2]-o.coords[2],d[0]=a[1]*u[2]-a[2]*u[1],d[1]=a[2]*u[0]-a[0]*u[2],d[2]=a[0]*u[1]-a[1]*u[0],s=d[0]*d[0]+d[1]*d[1]+d[2]*d[2],s>l&&(l=s,t[0]=d[0],t[1]=d[1],t[2]=d[2]);l<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(a)]=1)},n.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,r=this.mesh.vHead,o,i=0,s=t.next;s!==t;s=s.next)if(o=s.anEdge,!(o.winding<=0))do i+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==s.anEdge);if(i<0){for(e=r.next;e!==r;e=e.next)e.t=-e.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},n.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],r,o,i=!1;e[0]=this.normal[0],e[1]=this.normal[1],e[2]=this.normal[2],!e[0]&&!e[1]&&!e[2]&&(this.computeNormal_(e),i=!0),r=this.sUnit,o=this.tUnit;var s=this.longAxis_(e);r[s]=0,r[(s+1)%3]=1,r[(s+2)%3]=0,o[s]=0,o[(s+1)%3]=0,o[(s+2)%3]=e[s]>0?1:-1;for(var l=t.next;l!==t;l=l.next)l.s=this.dot_(l.coords,r),l.t=this.dot_(l.coords,o);i&&this.checkOrientation_();for(var c=!0,p=t.next;p!==t;p=p.next)c?(this.bmin[0]=this.bmax[0]=p.s,this.bmin[1]=this.bmax[1]=p.t,c=!1):(p.s<this.bmin[0]&&(this.bmin[0]=p.s),p.s>this.bmax[0]&&(this.bmax[0]=p.s),p.t<this.bmin[1]&&(this.bmin[1]=p.t),p.t>this.bmax[1]&&(this.bmax[1]=p.t))},n.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.prototype.tessellateMonoRegion_=function(t,e){var r,o;if(r=e.anEdge,!(r.Lnext!==r&&r.Lnext.Lnext!==r))throw"Mono region invalid";for(;le.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;le.vertLeq(r.Org,r.Dst);r=r.Lnext);o=r.Lprev;for(var i=void 0;r.Lnext!==o;)if(le.vertLeq(r.Dst,o.Org)){for(;o.Lnext!==r&&(le.edgeGoesLeft(o.Lnext)||le.edgeSign(o.Org,o.Dst,o.Lnext.Dst)<=0);)i=t.connect(o.Lnext,o),o=i.Sym;o=o.Lprev}else{for(;o.Lnext!==r&&(le.edgeGoesRight(r.Lprev)||le.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)i=t.connect(r,r.Lprev),r=i.Sym;r=r.Lnext}if(o.Lnext===r)throw"Mono region invalid";for(;o.Lnext.Lnext!==r;)i=t.connect(o.Lnext,o),o=i.Sym;return!0},n.prototype.tessellateInterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)if(e=r.next,r.inside&&!this.tessellateMonoRegion_(t,r))return!1;return!0},n.prototype.discardExterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)e=r.next,r.inside||t.zapFace(r)},n.prototype.setWindingNumber_=function(t,e,r){for(var o,i=t.eHead.next;i!==t.eHead;i=o)o=i.next,i.Rface.inside!==i.Lface.inside?i.winding=i.Lface.inside?e:-e:r?t.delete(i):i.winding=0},n.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},n.prototype.outputPolymesh_=function(t,e,r,o){var i,s=0,l=0,c;r>3&&t.mergeConvexFaces(r);for(var p=t.vHead.next;p!==t.vHead;p=p.next)p.n=-1;for(var a=t.fHead.next;a!==t.fHead;a=a.next)if(a.n=-1,!!a.inside){i=a.anEdge,c=0;do{var p=i.Org;p.n===-1&&(p.n=l,l++),c++,i=i.Lnext}while(i!==a.anEdge);if(c>r)throw"Face vertex greater that support polygon";a.n=s,++s}this.elementCount=s,e===Ze.CONNECTED_POLYGONS&&(s*=2),this.elements=[],this.elements.length=s*r,this.vertexCount=l,this.vertices=[],this.vertices.length=l*o,this.vertexIndices=[],this.vertexIndices.length=l;for(var p=t.vHead.next;p!==t.vHead;p=p.next)if(p.n!==-1){var u=p.n*o;this.vertices[u+0]=p.coords[0],this.vertices[u+1]=p.coords[1],o>2&&(this.vertices[u+2]=p.coords[2]),this.vertexIndices[p.n]=p.idx}for(var d=0,a=t.fHead.next;a!==t.fHead;a=a.next)if(!!a.inside){i=a.anEdge,c=0;do{var p=i.Org;this.elements[d++]=p.n,c++,i=i.Lnext}while(i!==a.anEdge);for(var f=c;f<r;++f)this.elements[d++]=-1;if(e===Ze.CONNECTED_POLYGONS){i=a.anEdge;do this.elements[d++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==a.anEdge);for(var m=c;m<r;++m)this.elements[d++]=-1}}},n.prototype.outputContours_=function(t,e){var r,o,i=0,s=0;this.vertexCount=0,this.elementCount=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){o=r=l.anEdge;do this.vertexCount++,r=r.Lnext;while(r!==o);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*e,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var c=0,p=0,a=0;i=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){s=0,o=r=l.anEdge;do this.vertices[c++]=r.Org.coords[0],this.vertices[c++]=r.Org.coords[1],e>2&&(this.vertices[c++]=r.Org.coords[2]),this.vertexIndices[p++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,s++,r=r.Lnext;while(r!==o);this.elements[a++]=i,this.elements[a++]=s,i+=s}},n.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new af),t<2&&(t=2),t>3&&(t=3);for(var r=null,o=0;o<e.length;o+=t)r===null?(r=this.mesh.makeEdge(),this.mesh.splice(r,r.Sym)):(this.mesh.splitEdge(r),r=r.Lnext),r.Org.coords[0]=e[o+0],r.Org.coords[1]=e[o+1],t>2?r.Org.coords[2]=e[o+2]:r.Org.coords[2]=0,r.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(r),r.winding=1,r.Sym.winding=-1},n.prototype.tesselate=function(t,e,r,o,i,s){if(t===void 0&&(t=Me.ODD),e===void 0&&(e=Ze.POLYGONS),s===void 0&&(s=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,i&&(this.normal[0]=i[0],this.normal[1]=i[1],this.normal[2]=i[2]),this.windingRule=t,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),cS.computeInterior(this,s);var l=this.mesh;return e===Ze.BOUNDARY_CONTOURS?this.setWindingNumber_(l,1,!0):this.tessellateInterior_(l),s&&l.check(),e===Ze.BOUNDARY_CONTOURS?this.outputContours_(l,o):this.outputPolymesh_(l,e,r,o),!0},n}();function Io(n){var t=n.windingRule,e=t===void 0?Me.ODD:t,r=n.elementType,o=r===void 0?Ze.POLYGONS:r,i=n.polySize,s=i===void 0?3:i,l=n.vertexSize,c=l===void 0?2:l,p=n.normal,a=p===void 0?[0,0,1]:p,u=n.contours,d=u===void 0?[]:u,f=n.strict,m=f===void 0?!0:f,h=n.debug,g=h===void 0?!1:h;if(!d&&m)throw new Error("Contours can't be empty");if(!!d){var v=new uS;n.edgeCreateCallback&&(v.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(v.vertexIdCallback=n.vertexIdCallback);for(var x=0;x<d.length;x++)v.addContour(c||2,d[x]);return v.tesselate(e,o,s,c,a,m),{vertices:v.vertices,vertexIndices:v.vertexIndices,vertexCount:v.vertexCount,elements:v.elements,elementCount:v.elementCount,mesh:g?v.mesh:void 0}}}var e3=Me.ODD,t3=Me.NONZERO,r3=Me.POSITIVE,o3=Me.NEGATIVE,n3=Me.ABS_GEQ_TWO,i3=Ze.POLYGONS,s3=Ze.CONNECTED_POLYGONS,a3=Ze.BOUNDARY_CONTOURS;var _n=class extends Po.BufferGeometry{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Me.ODD;this.elementType=Ze.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:Me.ODD,elementType:Ze.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),s=this._shape.shapeHoles.map(m=>m.extractShapePointsToFlatArray([],this._curveSegments)),l,c=!0,p=!0,a,u;for(let m=0,h=i.length/2;m<h;m++){let g=m*2,v=i[g+0],x=i[g+1];if(a!==void 0&&v!==a&&(c=!1),u!==void 0&&x!==u&&(p=!1),a=v,u=x,!c&&!p)break}!c&&!p&&(l=Io({contours:[i,...s],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let d=l?.vertexCount??1,f=l?.elementCount??1;if(this._positionAttribute=new Po.BufferAttribute(new Float32Array(d*3),3),this._normalAttribute=new Po.BufferAttribute(new Float32Array(d*3),3),this._uvAttribute=new Po.BufferAttribute(new Float32Array(d*2),2),this._indexAttribute=new Po.BufferAttribute(new Uint32Array(f*3),1),l){let m=1/0,h=-1/0,g=1/0,v=-1/0;for(let S=0,b=d;S<b;S++){let I=S*2,_=l.vertices[I+0],y=l.vertices[I+1];_<m&&(m=_),_>h&&(h=_),y<g&&(g=y),y>v&&(v=y)}let x=h-m,w=v-g;for(let S=0,b=d;S<b;S++){let I=S*2,_=l.vertices[I+0],y=l.vertices[I+1],P=(_-m)/x,A=(y-g)/w;this._positionAttribute.setXYZ(S,_,y,0),this._normalAttribute.setXYZ(S,0,0,1),this._uvAttribute.setXY(S,P,A)}for(let S=0,b=f;S<b;S++){let I=S*3,_=l.elements[I+0],y=l.elements[I+1],P=l.elements[I+2];this._indexAttribute.setX(I+0,_),this._indexAttribute.setX(I+1,y),this._indexAttribute.setX(I+2,P)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(l?.elementCount??1)*3)}clone(){let e=new _n(this._shape,this._curveSegments);return e.userData=ui(this.userData),e}};var Oo=require("three");var va=class{constructor(t=256,e=!1){this.capacity=t,this.size=0,this.debug=e,this.debug&&console.log(`allocating with cap ${t}`);let r=t*va.eSize;this.buffer=new ArrayBuffer(r);let o=Float32Array.BYTES_PER_ELEMENT,i=0;this.positions=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.normals=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.uvs=new Float32Array(this.buffer,i*o,2*t)}realloc(t,e=!1){if(t<this.size)throw Error("cannot shrink buffer");if(t<=this.capacity&&!e)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${t}`);let r=t*va.eSize,o=new ArrayBuffer(r),i=Float32Array.BYTES_PER_ELEMENT,s=0,l=new Float32Array(o,s*i,3*t);s+=3*t;let c=new Float32Array(o,s*i,3*t);s+=3*t;let p=new Float32Array(o,s*i,2*t);l.set(this.positions.slice(0,this.size*3)),c.set(this.normals.slice(0,this.size*3)),p.set(this.uvs.slice(0,this.size*2)),this.buffer=o,this.positions=l,this.normals=c,this.uvs=p,this.capacity=t}get(t=1){let e=this.size+t;if(e>this.capacity){let o=this.capacity;for(;e>o;)o*=2;this.realloc(o)}let r=this.size;return this.size=e,r}reserve(t){let e=this.size+t;e>this.capacity&&this.realloc(e)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},bi=va;bi.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Vl=(n,t)=>([e,r])=>(r<e&&(r+=t),(n>=e?n:n+t)<=r),Tn=class extends Oo.BufferGeometry{constructor(e,r,o=0,i=12,s=3,l=Me.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=r,this._bevel=o,this._curveSegments=i,this._bevelSegmentsInput=s,o<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(o,r/2-1e-12),this._bevelSegments=Math.floor(s));let c=this._shape.extractShapePointsToFlatArray([],i),p=this._shape.shapeHoles.map(y=>{let P=y.extractShapePointsToFlatArray([],i),A=[];for(let O=P.length-1;O>=1;O-=2){let T=P[O-1],L=P[O-0];A.push(T,L)}return A}),a=Io({windingRule:l,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[c]}),u=Io({windingRule:Me.ODD,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...p]});if(!a)throw new Error("error generating geometry");let d=a.elementCount;if(u){a.elementCount+=u.elementCount;for(let y=0;y<u.elements.length;y++){let P=u.elements[y],A=y%2===0?a.vertexCount:0;a.elements.push(P+A)}for(let y=0;y<u.vertexIndices.length;y++){let P=u.vertexIndices[y],A=a.vertexCount;a.vertexIndices.push(P+A)}for(let y=0;y<u.vertices.length;y++){let P=u.vertices[y];a.vertices.push(P)}}let f=1/0,m=-1/0,h=1/0,g=-1/0;for(let y=0,P=a.vertexCount;y<P;y++){let A=y*2,O=a.vertices[A+0],T=a.vertices[A+1];O<f&&(f=O),O>m&&(m=O),T<h&&(h=T),T>g&&(g=T)}this._minX=f,this._minY=h,this._width=m-f,this._height=g-h;let v=a.vertexCount*2*(2+this._bevelSegments);this._buffer=new bi(v);let x=[],w=[];for(let y=a.elementCount-1;y>=0;y--){let P=y>=d,A=y*2,O=a.elements[A+0],T=a.elements[A+1],L=O+T,B={start:O,count:T,normals:[],continuous:[],concave:[]},j=O,te=L-1,ne=O+1,ae=this._shape.roundedCurves.length;do{let F=j-O,M=a.vertices[te*2+0],D=a.vertices[te*2+1],E=a.vertices[j*2+0],k=a.vertices[j*2+1],Q=a.vertices[ne*2+0],H=a.vertices[ne*2+1],V=E-M,R=k-D,z=Math.sqrt(V*V+R*R);V/=z,R/=z;let Z=E-Q,re=k-H,se=Math.sqrt(Z*Z+re*re);Z/=se,re/=se,B.normals[F*2+0]=-re,B.normals[F*2+1]=Z,B.concave[F]=V*re-R*Z>0;let ee=a.vertexIndices[j];if(Array.isArray(ee))B.continuous[F]=!1;else{let[J,K]=this._shape.getCurveIndexFromVertexId(ee-1,!0);if(K>0&&K<1)B.continuous[F]=!0;else{let X=K===1?J+1:J-1;X=(X+ae)%ae;let me=K===1?0:1,de=this._shape.roundedCurves[J].getTangent(K),xe=this._shape.roundedCurves[X].getTangent(me);B.continuous[F]=de.dot(xe)>.95}}P&&(B.normals[F*2+0]*=-1,B.normals[F*2+1]*=-1),[te,j,ne]=[j,ne,ne+1],ne>=L&&(ne-=T)}while(ne!==O+1);let U=[];U.push({bevelI:0,angle:0,size:0,boundary:{vertices:a.vertices.slice(O*2,L*2),vertexCount:T,vertexIndices:new Array(T).fill(!0).map((F,M)=>[M,M]),elements:[0,T],elementCount:1,mesh:null},reverseMap:[],insetPoints:a.vertices.slice(O*2,L*2)});for(let F=1;F<=this._bevelSegments;F++){let M=F/this._bevelSegments*Math.PI/2,D=(1-Math.cos(M))*this._bevelSize,E=[],k=[],Q=[],H=[],V=0;for(let z=0;z<T;z++){let Z=z*2,re=(z-1+T)%T*2,se=a.vertices[B.start*2+Z+0],ee=a.vertices[B.start*2+Z+1],J=-B.normals[re+0]*D,K=-B.normals[re+1]*D,X=-B.normals[Z+0]*D,me=-B.normals[Z+1]*D;if(B.concave[z]||!B.concave[z]&&P){let de=Math.atan2(K,J),xe=Math.atan2(me,X);xe>de&&(xe-=Math.PI*2);let nt=xe-de;if(B.continuous[z]||P){let Ne=de+nt/2,Pe=Math.cos(Ne)*D,Le=Math.sin(Ne)*D;E[2*V+0]=se+Pe*(P?-1:1),E[2*V+1]=ee+Le*(P?-1:1),H[V]=z,V++}else{let Ne=Math.max(1,Math.floor(i/4*Math.abs(nt)/Math.PI));for(let Pe=0;Pe<=Ne;Pe++){let Le=de+nt*(Pe/Ne),Ut=Math.cos(Le)*D,jr=Math.sin(Le)*D;E[2*V+0]=se+Ut,E[2*V+1]=ee+jr,H[V]=z,V++}}}else E[2*V+0]=se+J,E[2*V+1]=ee+K,H[V]=z,k[z]=V,V++,E[2*V+0]=se,E[2*V+1]=ee,H[V]=z,V++,E[2*V+0]=se+X,E[2*V+1]=ee+me,H[V]=z,Q[z]=V,V++}let R=Io({windingRule:Me.POSITIVE,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[E],edgeCreateCallback:z=>{let re=z.Org.idx,se=H[re],ee=H[(re+1)%H.length];z.idx=[se,ee],z.Sym.idx=[ee,se]},vertexIdCallback:z=>{let Z=z.Lprev.idx;return[Z?Z[1]:0,z.idx[0]]}});if(!R)throw console.log("Error"),new Error(`error generating bevel geometry for ${F}'th loop`);if(!R.vertexCount)break;for(let z=0;z<R.vertexIndices.length;z++){let[Z,re]=R.vertexIndices[z];if(Z===re)continue;let se=re;re<Z&&(se+=T);for(let ee=Z;ee<se;ee++){let J=ee%T,K=(ee+1)%T;if(!B.continuous[J]||!B.continuous[K]){R.vertexIndices[z]=[Z,J],R.vertexIndices.splice(z+1,0,[K,re]),R.vertices.splice((z+1)*2,0,R.vertices[z*2],R.vertices[z*2+1]);break}}}U.push({bevelI:F,angle:M,size:D,boundary:R,reverseMap:H,insetPoints:E})}let W=(F,M,D)=>{let E=0,k=F.boundary.vertexIndices.length;for(;E<k&&D(F.boundary.vertexIndices[M]);)M=(M+1)%k,E++;return E},q=x.length;for(let F=1;F<U.length;F++){let M=U[F-1],D=U[F],E=M.boundary.vertexIndices.length,k=D.boundary.vertexIndices.length;if(!E||!k)break;let Q=B.concave.length,H=0,V=Vl(H,T);for(;!M.boundary.vertexIndices.filter(V).length||!D.boundary.vertexIndices.filter(V).length;)H++,V=Vl(H,T);let R=M.boundary.vertexIndices.findIndex(V),z=D.boundary.vertexIndices.findIndex(V);do R=(R+1)%E;while(V(M.boundary.vertexIndices[R]));do z=(z+1)%k;while(V(D.boundary.vertexIndices[z]));H=(H+1)%T;let Z=H,re=this.buildBevelVert(B,M,(R-1+E)%E),se=this.buildBevelVert(B,D,(z-1+k)%k),ee=re,J=se,K,X,me=!1;do{V=Vl(H,T);let de=W(M,R,V),xe=W(D,z,V),nt=me;if(me=!1,de&&!xe){for(let Ne=0;Ne<de;Ne++)K=this.buildBevelVert(B,M,(R+Ne)%E,Ne/(de-1)),x.push(ee.topN,K.topP,J.topN),x.push(K.bottomP,ee.bottomN,J.bottomN),ee=K;me=!0}else if(!de&&xe)for(let Ne=0;Ne<xe;Ne++)X=this.buildBevelVert(B,D,(z+Ne)%k,Ne/(xe-1)),x.push(J.topN,ee.topP,X.topP),x.push(ee.bottomP,J.bottomN,X.bottomP),J=X;else if(de&&xe)if(K=this.buildBevelVert(B,M,R,0),X=this.buildBevelVert(B,D,z,0),nt?(x.push(ee.topN,X.topP,J.topN),x.push(ee.topN,K.topP,X.topP),x.push(X.bottomP,ee.bottomN,J.bottomN),x.push(X.bottomP,K.bottomP,ee.bottomN)):(x.push(J.topN,ee.topN,K.topP),x.push(J.topN,K.topP,X.topP),x.push(K.bottomP,ee.bottomN,J.bottomN),x.push(K.bottomP,J.bottomN,X.bottomP)),ee=K,J=X,de===xe)for(let Ne=1;Ne<de;Ne++)K=this.buildBevelVert(B,M,(R+Ne)%E,Ne/(de-1)),X=this.buildBevelVert(B,D,(z+Ne)%k,Ne/(xe-1)),x.push(ee.topN,K.topP,J.topN),x.push(J.topN,K.topP,X.topP),x.push(K.bottomP,ee.bottomN,J.bottomN),x.push(K.bottomP,J.bottomN,X.bottomP),ee=K,J=X;else if(de>xe){let Ne=de/xe,Pe=0;for(let Le=1;Le<de;Le++)K=this.buildBevelVert(B,M,(R+Le)%E,Le/(de-1)),x.push(ee.topN,K.topP,J.topN),x.push(K.bottomP,ee.bottomN,J.bottomN),ee=K,Le>(Pe+1)*Ne&&(Pe++,X=this.buildBevelVert(B,D,(z+Pe)%k,Pe/(xe-1)),x.push(J.topN,K.topP,X.topP),x.push(K.bottomP,J.bottomN,X.bottomP),J=X)}else{let Ne=xe/de,Pe=0;for(let Le=1;Le<xe;Le++)X=this.buildBevelVert(B,D,(z+Le)%k,Le/(xe-1)),x.push(J.topN,K.topP,X.topP),x.push(K.bottomP,J.bottomN,X.bottomP),J=X,Le>(Pe+1)*Ne&&(Pe++,K=this.buildBevelVert(B,M,(R+Pe)%E,Pe/(de-1)),x.push(ee.topN,K.topP,J.topN),x.push(K.bottomP,ee.bottomN,J.bottomN),ee=K)}R=(R+de)%E,z=(z+xe)%k,H=(H+1)%Q}while(H!==Z)}{let F=U[0];for(let M=0,D=F.boundary.vertexCount;M<D;M++){let E=this.buildBevelVert(B,F,M),k=this.buildBevelVert(B,F,(M+1)%D);x.push(k.topP,E.topN,E.bottomN),x.push(k.topP,E.bottomN,k.bottomP)}}if(P){let F=[];for(let M=x.length-1;M>=q+2;M-=3){let D=x[M-2],E=x[M-1],k=x[M-0];F.push(k,E,D)}x.splice(q,x.length-q,...F)}if(P){let F=[];for(let M=U[U.length-1].boundary.vertices.length-1;M>=1;M-=2){let D=U[U.length-1].boundary.vertices[M-1],E=U[U.length-1].boundary.vertices[M-0];F.push(D,E)}w.push(F)}if(!P){let F=U[U.length-1],M=Io({windingRule:U.length>1?Me.POSITIVE:Me.ODD,elementType:Ze.POLYGONS,vertexSize:2,strict:!0,contours:[F.insetPoints,...w]});if(!M)throw new Error("Error generating geometry for surface");p.length===0&&Object.assign(this,{capStartIndex:x.length});for(let D=0;D<M.elementCount*3;D+=3){let E=this.buildSurfaceVert(M,M.elements[D+0]),k=this.buildSurfaceVert(M,M.elements[D+1]),Q=this.buildSurfaceVert(M,M.elements[D+2]);x.push(E.top,k.top,Q.top),x.push(Q.bottom,k.bottom,E.bottom)}}this.vertexCache={}}this._buffer.shrink();let S=new Oo.BufferAttribute(Uint32Array.from(x),1),b=new Oo.BufferAttribute(this._buffer.positions,3),I=new Oo.BufferAttribute(this._buffer.normals,3),_=new Oo.BufferAttribute(this._buffer.uvs,2);b.needsUpdate=!0,I.needsUpdate=!0,_.needsUpdate=!0,S.needsUpdate=!0,this.setAttribute("position",b),this.setAttribute("normal",I),this.setAttribute("uv",_),this.setIndex(S)}buildSurfaceVert(e,r){let o=r.toString();if(o in this.vertexCache)return this.vertexCache[o];let i=e.vertices[r*2+0],s=e.vertices[r*2+1],l=(i-this._minX)/this._width,c=(s-this._minY)/this._height,p=this._buffer.get(2),a=p*3,u=p*2,d={top:p+0,bottom:p+1};return this._buffer.positions[a+0]=i,this._buffer.positions[a+1]=s,this._buffer.positions[a+2]=this._depth,this._buffer.normals[a+0]=0,this._buffer.normals[a+1]=0,this._buffer.normals[a+2]=1,this._buffer.uvs[u+0]=l,this._buffer.uvs[u+1]=c,this._buffer.positions[a+3]=i,this._buffer.positions[a+4]=s,this._buffer.positions[a+5]=0,this._buffer.normals[a+3]=0,this._buffer.normals[a+4]=0,this._buffer.normals[a+5]=-1,this._buffer.uvs[u+2]=l,this._buffer.uvs[u+3]=c,this.vertexCache[o]=d,d}buildBevelVert(e,r,o,i=1){let s=`${r.bevelI}:${o}`;if(s in this.vertexCache)return this.vertexCache[s];let[l,c]=r.boundary.vertexIndices[o],p,a,u,d;l!==c?(a=l,p=c,d=!1,u=e.continuous[a]&&e.continuous[p]):(p=l,a=(p-1+e.count)%e.count,d=e.concave[p]&&r.bevelI>0,u=e.continuous[p]||d);let f=Math.cos(r.angle),m=Math.sin(r.angle),h=o*2,g=p*2,v=a*2,x=r.boundary.vertices[h+0],w=r.boundary.vertices[h+1],S=(1-m)*this._bevelSize,b=(x-this._minX)/this._width,I=(w-this._minY)/this._height,_=e.normals[g+0],y=e.normals[g+1],P=e.normals[v+0],A=e.normals[v+1];if(d){let j=P-_,te=A-y;_=_+j*(1-i),y=y+te*(1-i);let ne=Math.sqrt(_*_+y*y);_/=ne,y/=ne}let O=this._buffer.get(u?2:4),T=O*3,L=O*2,B={i:o,fi:p,topP:O+0,topN:O+0,bottomP:O+1,bottomN:O+1};return this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=w,this._buffer.positions[T+2]=this._depth-S,this._buffer.normals[T+0]=_*f,this._buffer.normals[T+1]=y*f,this._buffer.normals[T+2]=m,this._buffer.uvs[L+0]=b,this._buffer.uvs[L+1]=I,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=w,this._buffer.positions[T+5]=S,this._buffer.normals[T+3]=_*f,this._buffer.normals[T+4]=y*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[L+2]=I,this._buffer.uvs[L+3]=b,u||(O+=2,T+=6,L+=4,B.topP=O+0,B.bottomP=O+1,this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=w,this._buffer.positions[T+2]=this._depth-S,this._buffer.normals[T+0]=P*f,this._buffer.normals[T+1]=A*f,this._buffer.normals[T+2]=m,this._buffer.uvs[L+0]=b,this._buffer.uvs[L+1]=I,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=w,this._buffer.positions[T+5]=S,this._buffer.normals[T+3]=P*f,this._buffer.normals[T+4]=A*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[L+2]=I,this._buffer.uvs[L+3]=b),this.vertexCache[s]=B,B}clone(){let e=new Tn(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=ui(this.userData),e}};var dt=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:Me.ODD},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),s=n.shape??t?.shape,l=s?.roundness??e.roundness;s!==void 0&&(s instanceof _e?(s.width!==r||s.height!==o)&&s.applySize(r,o):s=new _e(r,o).fromJSON(s),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&s.update(!1));let c=s??new _e(r,o);return{parameters:Object.assign(e,{width:r,height:o,depth:i,roundness:l}),shape:c}}static build(n){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:r,subdivisions:o,roundness:i,windingRule:s}=n.parameters;n.shape.roundness=i;let l;return t<=0?l=new _n(n.shape,o,{windingRule:s}):l=new Tn(n.shape,t,e,o,r,s),Object.assign(l,{userData:{...n,type:"VectorGeometry"}})}};var Ua=require("three");var ff=require("three");var Ve=require("three"),df=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},n.parameters),r=e.width/2,o=e.radiusTop??r,i=e.radiusBottom??r;return o===i?(o=r,i=r):o>i?(o=r,i=i*r/o):(o=o*r/i,i=r),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),radiusTop:o,radiusBottom:i})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,radiusTop:p,radiusBottom:a,cornerRadius:u,cornerSegments:d,hollow:f}=n.parameters,m;return u||f?m=new Si(p,a,r,o,i,s,l,c*Math.PI/180,u,u,d,f):m=new Ve.CylinderGeometry(p,a,r,o,i,s,l,c*Math.PI/180),m.scale(1,1,e/t),Object.assign(m,{userData:{...n,type:"CylinderGeometry"}})}};function io(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function pf(n){return new Ve.Vector2(n.y,-n.x)}var Si=class extends Ve.BufferGeometry{constructor(t,e,r,o,i,s,l,c,p,a,u,d,f=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,e=e!==void 0?e:1,r=r||1,o=Math.floor(o)||8,i=Math.floor(i)||1,s=s!==void 0?s:!1,l=l!==void 0?l:0,c=c!==void 0?c:Math.PI*2,s&&(p=0,a=0);let m=[],h=[],g=[],v=[],x=0,w=r/2,S=new Ve.Vector3,b=new Ve.Vector3;f&&t==0&&(t=p),f&&e==0&&(e=a);let I=new Ve.Vector2(t,w),_=new Ve.Vector2(e,-w),y=null,P=null,A=null,O=null,T=I.clone().sub(_),L=0,B=0,j=0;d>0&&(L=Math.min(t,e)*(1-d),B=t-L,j=e-L);let te=I.clone();te.x-=L;let ne=Math.PI-T.angle(),ae=T.angle(),U=Math.tan(ae/2),W=Math.tan(ne/2),q=U+W,F=d?q:W,M=d?q:U;if(p=Math.min(p,(t-B)/F,T.length()/q),a=Math.min(a,(e-j)/M,T.length()/q),p>0){let V=p/U;y=I.clone().sub(new Ve.Vector2(V,p)),d&&(A=y.clone(),A.x-=L-q*p),I.sub(T.clone().setLength(V))}if(a>0){let V=a/W;P=_.clone().sub(new Ve.Vector2(V,-a)),_.add(T.clone().setLength(V)),d&&(O=P.clone(),O.x-=L-q*a,te.sub(T.clone().setLength(V)))}T=I.clone().sub(_);let D=T.length()<.5,E=[];for(let V=0;V<=o;V++){let R=[],z=V/o,Z=z*c+l,re=new Ve.Vector2(Math.sin(Z),Math.cos(Z));O&&P?(k(R,z,re,ne,a,O,-1,!0),k(R,z,re,ae,a,P,-1,!1)):P?(Q(R,re,P.x,0,-1),k(R,z,re,ae,a,P,-1,!1)):s||Q(R,re,e,j,-1);let se=pf(T).normalize();if(io(se,re,S),!D)for(let ee=0;ee<=i;ee++){let J=ee/i,K=T.clone().multiplyScalar(J).add(_);io(K,re,b),h.push(b.x,b.y,b.z),g.push(S.x,S.y,S.z),v.push(z,.5+b.y/r),R.push(x++)}if(A&&y?(k(R,z,re,ne,p,y,1,!1),k(R,z,re,ae,p,A,1,!0)):y?(k(R,z,re,ne,p,y,1,!1),Q(R,re,y.x,0,1)):s||Q(R,re,t,B,1),d&&!D){let ee=pf(T).multiplyScalar(-1).normalize();io(ee,re,S);for(let J=0;J<=i;J++){let K=J/i,X=T.clone().multiplyScalar(-K).add(te);io(X,re,b),h.push(b.x,b.y,b.z),g.push(S.x,S.y,S.z),v.push(z,.5+b.y/r),R.push(x++)}}d&&!s&&R.push(R[0]),E.push(R)}for(let V=0;V<E.length-1;V++)for(let R=0;R<E[0].length-1;R++){if(s&&d&&R==i)continue;let z=E[V][R],Z=E[V+1][R],re=E[V+1][R+1],se=E[V][R+1],ee=h[re*3+0],J=h[re*3+2];m.push(z,Z,se),(ee!=0||J!=0)&&m.push(Z,re,se)}c<Math.PI*2&&(H(-1,E[0],l),H(1,E[E.length-1],l+c)),this.setIndex(m),this.setAttribute("position",new Ve.Float32BufferAttribute(h,3)),this.setAttribute("normal",new Ve.Float32BufferAttribute(g,3)),this.setAttribute("uv",new Ve.Float32BufferAttribute(v,2));function k(V,R,z,Z,re,se,ee,J){for(let K=0;K<u+1;K++){let X=K/u,me=ee<0?X:1-X;J&&(me-=1),me*=Z;let de=new Ve.Vector2(Math.sin(me),Math.cos(me)*ee),xe=de.clone().multiplyScalar(re).add(se);io(xe,z,b),h.push(b.x,b.y,b.z),io(de,z,S),g.push(S.x,S.y,S.z),v.push(R,.5+b.y/r),V.push(x++)}}function Q(V,R,z,Z,re){let se=new Ve.Vector3,ee=new Ve.Vector2,J=[z,Z];re<0&&J.reverse();for(let K of J)ee.set(K,w*re),io(ee,R,se),h.push(se.x,se.y,se.z),g.push(0,re,0),v.push(.5,.5),V.push(x++)}function H(V,R,z){let Z=new Ve.Vector2(Math.sin(z),Math.cos(z)),re=new Ve.Vector2(-Math.cos(z),Math.sin(z)),se=new Ve.Vector3,ee=V<0?(X,me,de)=>m.push(X,me,de):(X,me,de)=>m.push(X,de,me),J=new Ve.Vector2((t+e+B+j)/4,0);io(J,Z,se),h.push(se.x,se.y,se.z),g.push(re.x,0,re.y),v.push(.5,.5);let K=x++;for(let X of R){let me=h.slice(X*3,X*3+3);h.push(...me),g.push(re.x,0,re.y);let de=v.slice(X*2,X*2+2);v.push(...de),x++}for(let X=K+1;X<x-1;X++)ee(K,X,X+1);ee(K,x-1,K+1)}}};var mf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,cornerRadiusTop:p,cornerRadiusBottom:a,cornerSegments:u}=n.parameters,d;return p>0||a>0||c<360?d=new Si(0,t/2,r,o,i,s,l,c*Math.PI/180,p,a,u,0,!0):d=new ff.ConeGeometry(t/2,r,o,i,s),d.scale(1,1,e/t),Object.assign(d,{userData:{...n,type:"ConeGeometry"}})}};var Pt=require("three"),hf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,widthSegments:o,heightSegments:i,depthSegments:s,cornerRadius:l,cornerSegments:c}=n.parameters,p;return l==0?p=new Pt.BoxGeometry(t,e,r,o,i,s):p=new zl(t,e,r,o,i,s,l,c),Object.assign(p,{userData:{...n,type:"CubeGeometry"}})}},Fl=Math.PI/2,zl=class extends Pt.BufferGeometry{constructor(t=1,e=1,r=1,o=1,i=1,s=1,l=0,c=4){super(),this.type="BoxGeometry";let p=this;o=Math.floor(o),i=Math.floor(i),s=Math.floor(s),c=Math.floor(c),l=Math.min(l,t/2,e/2,r/2);let a=[],u=[],d=[],f=[],m=0,h=0;g("z","y","x",-1,-1,r,e,t,s,i,0),g("z","y","x",1,-1,r,e,-t,s,i,1),g("x","z","y",1,1,t,r,e,o,s,2),g("x","z","y",1,-1,t,r,-e,o,s,3),g("x","y","z",1,-1,t,e,r,o,i,4),g("x","y","z",-1,-1,t,e,-r,o,i,5),l>0&&(v("z","y","x",-1,-1,1,r,e,t,s,0),v("z","y","x",1,-1,-1,r,e,t,s,1),v("z","y","x",-1,1,-1,r,e,t,s,1),v("z","y","x",1,1,1,r,e,t,s,0),v("x","y","z",-1,-1,-1,t,e,r,o,0),v("x","y","z",1,-1,1,t,e,r,o,1),v("x","y","z",-1,1,1,t,e,r,o,0),v("x","y","z",1,1,-1,t,e,r,o,1),v("y","x","z",-1,-1,1,e,t,r,i,0),v("y","x","z",1,-1,-1,e,t,r,i,1),v("y","x","z",1,1,1,e,t,r,i,1),v("y","x","z",-1,1,-1,e,t,r,i,0),x(1,1,1),x(-1,1,1),x(1,-1,1),x(-1,-1,1),x(1,1,-1),x(-1,1,-1),x(1,-1,-1),x(-1,-1,-1)),this.setIndex(a),this.setAttribute("position",new Pt.Float32BufferAttribute(u,3)),this.setAttribute("normal",new Pt.Float32BufferAttribute(d,3)),this.setAttribute("uv",new Pt.Float32BufferAttribute(f,2));function g(w,S,b,I,_,y,P,A,O,T,L){let B=(y-2*l)/O,j=(P-2*l)/T,te=y/2-l,ne=P/2-l,ae=A/2,U=O+1,W=T+1,q=0,F=0,M=new Pt.Vector3;for(let D=0;D<W;D++){let E=D*j-ne;for(let k=0;k<U;k++){let Q=k*B-te;M[w]=Q*I,M[S]=E*_,M[b]=ae,u.push(M.x,M.y,M.z),M[w]=0,M[S]=0,M[b]=A>0?1:-1,d.push(M.x,M.y,M.z),f.push(k/O),f.push(1-D/T),q+=1}}for(let D=0;D<T;D++)for(let E=0;E<O;E++){let k=m+E+U*D,Q=m+E+U*(D+1),H=m+(E+1)+U*(D+1),V=m+(E+1)+U*D;a.push(k,Q,V),a.push(Q,H,V),F+=6}p.addGroup(h,F,L),h+=F,m+=q}function v(w,S,b,I,_,y,P,A,O,T,L){let B=(P-2*l)/T,j=P/2-l,te=A/2-l,ne=O/2,ae=T+1,U=0,W=0,q=new Pt.Vector3,F=new Pt.Vector3;for(let M=0;M<c+1;M++){let D=M/c*Fl,E=Math.sin(D)*l,k=(1-Math.cos(D))*l,Q=Math.sin(D),H=Math.cos(D);q[S]=(te+E)*_,q[b]=(ne-k)*y,F[w]=0,F[S]=Q*Math.sign(q[S]),F[b]=H*Math.sign(q[b]);for(let V=0;V<ae;V++){let R=V*B-j;q[w]=R*I,u.push(q.x,q.y,q.z),d.push(F.x,F.y,F.z),f.push(V/T),f.push(0),U+=1}}for(let M=0;M<c;M++)for(let D=0;D<T;D++){let E=m+D+ae*M,k=m+D+ae*(M+1),Q=m+(D+1)+ae*(M+1),H=m+(D+1)+ae*M;a.push(E,k,H),a.push(k,Q,H),W+=6}p.addGroup(h,W,L),h+=W,m+=U}function x(w,S,b){let I=new Pt.Vector3,_=new Pt.Vector3(t/2,e/2,r/2);_.subScalar(l);let y=[],P=w*S*b>0?(O,T,L)=>a.push(O,T,L):(O,T,L)=>a.push(O,L,T);for(let O=0;O<=c;O++){let T=[],L=Fl*(1-O/c),B=Math.cos(L),j=Math.sin(L),te=0;for(let ne=0;ne<=O;ne++){let ae=Math.cos(te),U=Math.sin(te);I.x=B*ae,I.y=j,I.z=B*U;let W=_.clone().addScaledVector(I,l);u.push(w*W.x,S*W.y,b*W.z),d.push(w*I.x,S*I.y,b*I.z),f.push(0,0),T.push(m++),te+=Fl/O}y.push(T)}let A=y.length-1;for(let O=0;O<A;O++){let T=y[O],L=y[O+1],B=T.length-1;P(T[0],L[1],L[0]);for(let j=1;j<=B;j++)P(T[j-1],T[j],L[j]),P(T[j],L[j+1],L[j])}}}};var ke=require("three"),so=class extends ke.BufferGeometry{constructor(t=[],e=[],r="",o=1,i=.2,s=4){super(),this.type="PolyhedronGeometryRound";let l=[],c=[],p=[];a(),u(),this.setAttribute("position",new ke.Float32BufferAttribute(l,3)),this.setAttribute("normal",new ke.Float32BufferAttribute(p,3)),this.setAttribute("uv",new ke.Float32BufferAttribute(c,2));return;function a(){i=Math.min(1-1e-5,i),i==0&&(s=0);let f={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],m=new ke.Vector3,h=m.clone(),g=new ke.Triangle,v=i*o,x=o-v,w=s+1,S=new ke.Vector3,b=(U,W)=>S.subVectors(U,W).normalize(),I=(U,W)=>Array(U).fill(void 0).map(W),_=I(t.length/3,(U,W)=>new ke.Vector3().fromArray(t,W*3).setLength(o)),y=[],P=1e6;for(let U=0;U<_.length;U++){let W=_[U],q=[],F,M,D,E=1e10,k=-1;for(;(k=e.indexOf(U,k+1))!=-1;){let R=k-k%3;F=e[R+(k+1)%3],M=e[R+(k+2)%3],D=W.distanceToSquared(_[F]),E=Math.min(E,D),q.push([F,M,D])}E+=1e-6;let Q=[],H=0,V=q.length;for(let R=0;R<V;R++){[F,M,D]=q[H];let z=y[F]?.includes(U)==!0;D<=E&&Q.push(F+ +z*P),H=q.findIndex(Z=>Z[0]==M)}y.push(Q)}let A=[];{let U=0,W=0,q,F,M=f==3;for(let D=0;D<=s;D++){q=D*(D+1)/2,F=(D+1)*(D+2)/2;for(let E=0;E<s-D;E++)[U,W]=[q+E+D+2,F+E+D+3],A.push(q,F,...M?[W,q]:[U,F],W,U),[q,F]=[U,W];A.push(q,F,q+s+2)}}let O=m.clone(),T=m.clone(),L=m.clone(),B=m.clone(),j=m.clone(),te=[],ne=I(_.length,()=>I(f,()=>m.clone()));for(let U=0;U<_.length;U++){m.copy(_[U]).normalize(),O.copy(m).multiplyScalar(x);let W=y[U];for(let Q=0;Q<W.length;Q++){let H=W[Q],V=W[(Q+1)%f];g.setFromPointsAndIndices(_,U,H%P,V%P),g.b.sub(g.a).setLength(1e10).add(g.a),g.c.sub(g.a).setLength(1e10).add(g.a),g.closestPointToPoint(O,ne[U][Q])}let q=[],F=[],M=[],D=new ke.Vector3;s==0&&[...ne[U]].reduce((Q,H)=>Q.add(H),D).multiplyScalar(1/f);for(let Q=0;Q<f;Q++){let H=[],V=(Q-1+f)%f,R=ne[U][V],z=ne[U][Q];m.copy(R).sub(O),h.copy(z).sub(O);let Z=O.angleTo(m),re=m.angleTo(h),se=Math.cos(Z)*v;s==0?T.copy(D):T.copy(O).setLength(x+se),F.push(se);let ee=[T,R,z];for(let J=0;J<2;J++){let K=ee[J],X=ee[J+1];B.subVectors(K,O),j.subVectors(X,O),L.crossVectors(B,j).normalize();for(let me=0;me<w;me++){let de=[Z,re][J]*me/w;m.copy(B).applyAxisAngle(L,de).add(O),q.push(m.clone()),J&&(b(m,O),H.push([me==0?K:m.clone(),S.clone()]))}J&&(b(X,O),H.push([X,S.clone()]))}M.push(H)}te.push(M);let E=2*w,k=2;for(let Q=0;Q<f;Q++){let H=E*Q,V=E*((Q+1)%f),R=[q[H]];for(let Z=1;Z<w;Z++){B=q[H+Z],j=q[V+Z],R.push(B);for(let re=1,se=Z-k+1;re<=se;re++)m.lerpVectors(B,j,re/(se+1)),m.sub(O).setLength(F[Q]).add(O),R.push(m.clone());R.push(j)}for(let Z=0;Z<w;Z++)R.push(q[Z+w+H]);R.push(q[V+w]);let z=A.map(Z=>R[Z]);l.push(...z.map(Z=>[Z.x,Z.y,Z.z]).flat()),p.push(...z.map(Z=>(b(Z,O),[S.x,S.y,S.z])).flat())}}let ae=[];for(let U=0;U<y.length;U++)for(let W=0;W<f;W++){let q=y[U][W];if(q<P){let F=y[q].findIndex(E=>E%P==U),M=te[U][W],D=te[q][F];for(let E=0;E<w;E++){let k=M[E],Q=D[w-E],H=M[E+1],V=D[w-(E+1)];[k,Q,H,H,Q,V].forEach(R=>{l.push(R[0].x,R[0].y,R[0].z),p.push(R[1].x,R[1].y,R[1].z)})}ae.push(M[0][0],D[w][0],M[w][0],D[0][0])}}for(;ae.length;){let U,W,q,F;[U,W]=ae.splice(0,2);let M=[U];for(;U!=W;)M.push(W),q=ae.indexOf(W),F=q%2,W=ae.splice(q-F,2)[1-F];S.subVectors(M[0],M[1]).cross(m.subVectors(M[0],M[2])).normalize();let D=S.dot(M[0])<0;D&&S.negate();for(let E=1;E<=M.length-2;E++)[M[E+ +D],M[E+1-+D],M[0]].forEach(k=>{l.push(k.x,k.y,k.z),p.push(S.x,S.y,S.z)})}}function u(){let d=new ke.Vector3;for(let _=0;_<l.length;_+=3){d.x=l[_+0],d.y=l[_+1],d.z=l[_+2];let y=b(d)/2/Math.PI+.5,P=I(d)/Math.PI+.5;c.push(y,1-P)}let f=new ke.Vector3,m=new ke.Vector3,h=new ke.Vector3,g=new ke.Vector3,v=new ke.Vector2,x=new ke.Vector2,w=new ke.Vector2,S=(_,y,P,A)=>{A<0&&_.x===1&&(c[y]=_.x-1),P.x===0&&P.z===0&&(c[y]=A/2/Math.PI+.5)};for(let _=0,y=0;_<l.length;_+=9,y+=6){f.set(l[_+0],l[_+1],l[_+2]),m.set(l[_+3],l[_+4],l[_+5]),h.set(l[_+6],l[_+7],l[_+8]),v.set(c[y+0],c[y+1]),x.set(c[y+2],c[y+3]),w.set(c[y+4],c[y+5]),g.copy(f).add(m).add(h).divideScalar(3);let P=b(g);S(v,y+0,f,P),S(x,y+2,m,P),S(w,y+4,h,P)}for(let _=0;_<c.length;_+=6){let y=c[_+0],P=c[_+2],A=c[_+4],O=Math.max(y,P,A),T=Math.min(y,P,A);O>.9&&T<.1&&(y<.2&&(c[_+0]+=1),P<.2&&(c[_+2]+=1),A<.2&&(c[_+4]+=1))}function b(_){return Math.atan2(_.z,-_.x)}function I(_){return Math.atan2(-_.y,Math.sqrt(_.x*_.x+_.z*_.z))}}}static fromJSON(t){return new so(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};var gf=require("three"),yf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new wi(t*.5,i,s):new gf.DodecahedronGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"DodecahedronGeometry"}})}},wi=class extends so{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=1/o,s=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-o,0,-i,o,0,i,-o,0,i,o,-i,-o,0,-i,o,0,i,-o,0,i,o,0,-o,0,-i,o,0,-i,-o,0,i,o,0,i],l=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],c="DodecahedronGeometry";super(s,l,c,t,e,r),this.type=c}static fromJSON(t){return new wi(t.radius,t.corner,t.cornerSides)}};var jl=Math.PI*2;function Ul({x:n,y:t},e,r,o,i){return{x:n*e+o,y:t*r+i}}function pS(n,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=Math.cos(n),o=Math.sin(n),i=Math.cos(n+t),s=Math.sin(n+t);return[{x:r-o*e,y:o+r*e},{x:i+s*e,y:s-i*e},{x:i,y:s}]}function xf(n,t,e,r){let o=n*r-t*e<0?-1:1,i=Math.min(1,Math.max(-1,n*e+t*r));return o*Math.acos(i)}function dS(n,t,e,r,o,i,s,l,c,p){let a=Math.pow(o,2),u=Math.pow(i,2),d=Math.pow(s,2),f=Math.pow(l,2),m=a*u-a*f-u*d;m<0&&(m=0),m/=a*f+u*d,m=Math.sqrt(m)*(c===p?-1:1);let h=m*o/i*l,g=m*-i/o*s,v=h+(n+e)/2,x=g+(t+r)/2,w=(s-h)/o,S=(l-g)/i,b=(-s-h)/o,I=(-l-g)/i,_=xf(1,0,w,S),y=xf(w,S,b,I);return!p&&y>0&&(y-=jl),p&&y<0&&(y+=jl),{centerx:v,centery:x,ang1:_,ang2:y}}function vf({px:n,py:t,cx:e,cy:r,rx:o,ry:i,largeArcFlag:s,sweepFlag:l}){let c=[];if(o===0||i===0)return[];let p=(n-e)/2,a=(t-r)/2;if(p===0&&a===0)return[];o=Math.abs(o),i=Math.abs(i);let u=Math.pow(p,2)/Math.pow(o,2)+Math.pow(a,2)/Math.pow(i,2);u>1&&(o*=Math.sqrt(u),i*=Math.sqrt(u));let d=dS(n,t,e,r,o,i,p,a,s,l),{ang1:f,ang2:m}=d,{centerx:h,centery:g}=d,v=Math.abs(m)/(jl/4);Math.abs(1-v)<1e-7&&(v=1);let x=Math.max(Math.ceil(v),1);m/=x;for(let w=0;w<x;w++)c.push(pS(f,m)),f+=m;return c.map(w=>{let{x:S,y:b}=Ul(w[0],o,i,h,g),{x:I,y:_}=Ul(w[1],o,i,h,g),{x:y,y:P}=Ul(w[2],o,i,h,g);return{x1:S,y1:b,x2:I,y2:_,x:y,y:P}})}var Nn=require("three"),Sf=Math.PI*2,wf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,angle:o,innerRadius:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p=n.shape,a=t*.5,u=e*.5,d=fS(p,a,u,o*Math.PI/180,r,i);p.isClosed=!0,p.update();let f=dt.create({shape:p,parameters:{subdivisions:d,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(f,{userData:{...n,type:"EllipseGeometry"}})}};function fS(n,t,e,r,o,i){if(r>=Sf)return o>30||o%4===0?(hS(n,t,e,i),Math.round(o/4)):bf(n,r,o,t,e,i);let s={x:0,y:e},l=r+Math.PI*.5,c={x:Math.cos(l)*t,y:Math.sin(l)*e},p=vf({px:s.x,py:s.y,cx:c.x,cy:c.y,rx:t,ry:e,largeArcFlag:r>Math.PI,sweepFlag:!0});return o>30||o%p.length===0?mS(n,s.x,s.y,p,o,t,e,i):bf(n,r,o,t,e,i)}function mS(n,t,e,r,o,i,s,l){let c=Math.round(o/r.length);n.addPoint(An(t,e));for(let p=0,a=r.length;p<a;p++){let u=r[p],d=n.points[p],f=An(u.x,u.y);d.controls[1].position.set(u.x1,u.y1),f.controls[0].position.set(u.x2,u.y2),n.addPoint(f)}return l>0?_f(n,i,s,l):n.addPoint(An(0,0)),c}function bf(n,t,e,r,o,i){let s=-t/e;for(let l=0;l<=e;l++){let c=s*l,p=Math.sin(c)*r,a=Math.cos(c)*o;n.addPoint(An(p,a))}return t<Sf?i>0?_f(n,r,o,i):n.addPoint(An(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&Tf(n,r,o,i)),1}function hS(n,t,e,r=0,o=0,i=0){let s=.5522847498,l=t*s,c=e*s;n.addPoint(ba(o-t,i,o-t,i-c,o-t,i+c)),n.addPoint(ba(o,i+e,o-l,i+e,o+l,i+e)),n.addPoint(ba(o+t,i,o+t,i+c,o+t,i-c)),n.addPoint(ba(o,i-e,o+l,i-e,o-l,i-e)),r>0&&Tf(n,t,e,r)}function An(n,t){return new Zt(Nn.MathUtils.generateUUID(),new Nn.Vector2(n,t))}function ba(n,t,e,r,o,i){let s=An(n,t);return s.controls[0].position.set(e,r),s.controls[1].position.set(o,i),s}function _f(n,t,e,r){Af(n,t,e,r).forEach(i=>n.addPoint(i))}function Tf(n,t,e,r){let o=Af(n,t,e,r),i=new _e;o.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function Af(n,t,e,r){let o=r*t/100,i=o*(Math.abs(e)/Math.abs(t)),s=new Nn.Vector2(o/t,i/e),l=n.points.map(c=>{let p=c.clone();return p.uuid=Nn.MathUtils.generateUUID(),p}).reverse();return l.forEach(c=>{c.position.multiply(s);let p=c.controls[0].position.clone().multiply(s),a=c.controls[1].position.clone().multiply(s);c.controls[0].position.copy(a),c.controls[1].position.copy(p)}),l}var Vr=require("three"),Nf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??r),i=Math.abs(e.depth??r),s=Math.abs(Math.min(r,i))/2;return{parameters:Object.assign(e,{width:r,height:o,depth:i,radius:s,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(n){let{width:t,height:e,depth:r,radius:o,revolutions:i,segments:s,pathRadius:l,pathType:c,pathSegments:p,cornerRadius:a,cornerSegments:u}=n.parameters,d=new _i(!1,t,e,r,o,i,s,l,c,p,a,u);return Object.assign(d,{userData:{...n,type:"HelixGeometry"}})}},_i=class extends Vr.BufferGeometry{constructor(t=!0,e=1,r=1,o=1,i=1,s=1,l=1,c=1,p=1,a=1,u=1,d=1){super();let f=t&&s===1;f&&(d=0),u>100&&(u=100);let m=()=>new Vr.Vector3,h=new Vr.Vector3,g=m(),v=m(),x=m(),w,S,b,I,_,y,P,A,O=m(),T=m(),L=m(),B=m(),j=m(),te=m(),ne=m(),ae=m(),U=r-2*c+.001,W=U/s,q=Math.ceil(l*s),F=q+1,M=U/q,D=-U/2,E=a+1,k=2*Math.PI/a,Q=Math.PI/2/d,H=.01,V=Math.min((1-u/100)*c,c-H),R=c-V,z=0,Z=2,re=d*Z+Z,se=E*re/Z,ee=se+E*F,J=E*(F+re),[K,X,me]=[3,3,2].map(We=>Array(J*We).fill(0)),de=[],xe=i-c;function nt(We,Bt){let sr=Math.PI/2;y=Bt*M,A=2*Math.PI*(y%W)/W+sr,y+=D,P=Math.sin(A)*xe,_=Math.cos(A)*xe,t?We.set(_,P,y):We.set(_,y,P)}nt(h,-1e-10),nt(g,0),O.copy(h),nt(h,1);let Ne=h.distanceTo(g),Pe=R+V,Le=Ne*q+2*Pe,Ut=V,jr=Le-Pe;for(let We=0;We<=q;We++){nt(v,We),ae.subVectors(v,O).normalize(),O.copy(v),te.copy(v).setComponent(+t+1,0).normalize(),ne.crossVectors(ae,te).normalize();let Bt=We===0,sr=We===q,xh=Bt?3*Math.PI/2:Q,vh=Bt?Ut:jr,bh=Bt?E:ee,Sh=Bt?0:J-E,wh=ae.clone().multiplyScalar(Bt?-R:R).add(v),_h=ae.clone().multiplyScalar(Bt?-1:1).normalize();for(let Mr=0;Mr<E;Mr++){let Lc=Mr*k;if(T.addVectors(h.copy(te).multiplyScalar(c*Math.cos(Lc)),g.copy(ne).multiplyScalar(c*Math.sin(Lc))),L.copy(T).normalize(),Bt||sr){f||(z=Sh+Mr,[0,1,2].forEach(_t=>{K[z*3+_t]=wh.getComponent(_t),X[z*3+_t]=_h.getComponent(_t)}),me[z*2]=+sr,me[z*2+1]=Mr/a),g.copy(L).multiplyScalar(V),x.addVectors(v,g);for(let _t=0;_t<d;_t++){let Za=_t*Q+xh;B.addVectors(h.copy(ae).multiplyScalar(R*Math.sin(Za)),g.copy(L).multiplyScalar(R*Math.cos(Za))),j.copy(B).normalize(),g.addVectors(x,B),B.normalize(),z=bh+_t*E+Mr,[0,1,2].forEach(us=>{K[z*3+us]=g.getComponent(us),X[z*3+us]=j.getComponent(us)});let Th=+Bt+Math.sin(Za);me[z*2]=(vh+R*Th)/Le,me[z*2+1]=Mr/a}}g.addVectors(v,T),z=se+We*E+Mr,[0,1,2].forEach(_t=>{K[z*3+_t]=g.getComponent(_t),X[z*3+_t]=L.getComponent(_t)}),me[z*2]=(Pe+We*Ne)/Le,me[z*2+1]=Mr/a}}let Et=F+2*d+Z,Vo=1,[ls,cs]=f?[Vo,Vo+F-1]:[0,Et-1];for(let We=ls;We<=cs-1;We++){let Bt=f&&We===cs-1;for(let sr=0;sr<E-1;sr++)w=We*E+sr,S=w+1,b=(Bt?sr:w)+E,I=(Bt?sr+1:S)+E,We===0?de.push(S,I,b):We===Et-2?de.push(w,S,b):de.push(w,S,b,S,I,b)}this.setIndex(de),this.setAttribute("position",new Vr.Float32BufferAttribute(K,3)),this.setAttribute("normal",new Vr.Float32BufferAttribute(X,3)),this.setAttribute("uv",new Vr.Float32BufferAttribute(me,2))}};var If=require("three");var Pf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new Ti(t*.5,i,s):new If.IcosahedronGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"IcosahedronGeometry"}})}},Ti=class extends so{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=[-1,o,0,1,o,0,-1,-o,0,1,-o,0,0,-1,o,0,1,o,0,-1,-o,0,1,-o,o,0,-1,o,0,1,-o,0,-1,-o,0,1],s=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],l="IcosahedronGeometry";super(i,s,l,t,e,r),this.type=l}static fromJSON(t){return new Ti(t.radius,t.corner,t.cornerSides)}};var Sa=require("three"),Of=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){(n.parameters?.points??[]).forEach(r=>{Array.isArray(r)&&(r.x=r[0],r.y=r[1])});let e=Object.assign({},t?.parameters??{width:100,segments:64,verticalSegments:64,points:[{x:0,y:-50,id:0},{x:50,y:-50,id:1},{x:50,y:50,id:2},{x:0,y:50,id:3}]},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{points:t,segments:e,verticalSegments:r}=n.parameters,o=new Sa.Shape;o.moveTo(t[0].x,t[0].y),o.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let i=new Sa.LatheGeometry(o.extractPoints(r).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};var yr=require("three");var Fr=require("three");var ie=require("three"),gr=new ie.Matrix4,kl=new ie.Object3D,wa=new ie.Vector3,ao=class extends ie.EventDispatcher{constructor(){super(),this.uuid=ie.MathUtils.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(t){let e=new ie.Matrix3().getNormalMatrix(t);for(let r=0,o=this.vertices.length;r<o;r++)this.vertices[r].applyMatrix4(t);for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];i.normal.applyMatrix3(e).normalize();for(let s=0,l=i.vertexNormals.length;s<l;s++)i.vertexNormals[s].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return gr.makeRotationX(t),this.applyMatrix4(gr),this}rotateY(t){return gr.makeRotationY(t),this.applyMatrix4(gr),this}rotateZ(t){return gr.makeRotationZ(t),this.applyMatrix4(gr),this}translate(t,e,r){return gr.makeTranslation(t,e,r),this.applyMatrix4(gr),this}scale(t,e,r){return gr.makeScale(t,e,r),this.applyMatrix4(gr),this}lookAt(t){return kl.lookAt(t),kl.updateMatrix(),this.applyMatrix4(kl.matrix),this}fromBufferGeometry(t){let e=this,r=t.index!==null?t.index:void 0,o=t.attributes;if(o.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let i=o.position,s=o.normal,l=o.color,c=o.uv,p=o.uv2;p!==void 0&&(this.faceVertexUvs[1]=[]);for(let d=0;d<i.count;d++)e.vertices.push(new ie.Vector3().fromBufferAttribute(i,d)),l!==void 0&&e.colors.push(new ie.Color().fromBufferAttribute(l,d));function a(d,f,m,h){let g=l===void 0?[]:[e.colors[d].clone(),e.colors[f].clone(),e.colors[m].clone()],v=s===void 0?[]:[new ie.Vector3().fromBufferAttribute(s,d),new ie.Vector3().fromBufferAttribute(s,f),new ie.Vector3().fromBufferAttribute(s,m)],x=new In(d,f,m,v,g,h);e.faces.push(x),c!==void 0&&e.faceVertexUvs[0].push([new ie.Vector2().fromBufferAttribute(c,d),new ie.Vector2().fromBufferAttribute(c,f),new ie.Vector2().fromBufferAttribute(c,m)]),p!==void 0&&e.faceVertexUvs[1].push([new ie.Vector2().fromBufferAttribute(p,d),new ie.Vector2().fromBufferAttribute(p,f),new ie.Vector2().fromBufferAttribute(p,m)])}let u=t.groups;if(u.length>0)for(let d=0;d<u.length;d++){let f=u[d],m=f.start,h=f.count;for(let g=m,v=m+h;g<v;g+=3)r!==void 0?a(r.getX(g),r.getX(g+1),r.getX(g+2),f.materialIndex):a(g,g+1,g+2,f.materialIndex)}else if(r!==void 0)for(let d=0;d<r.count;d+=3)a(r.getX(d),r.getX(d+1),r.getX(d+2));else for(let d=0;d<i.count;d+=3)a(d,d+1,d+2);return this.computeFaceNormals(),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(wa).negate(),this.translate(wa.x,wa.y,wa.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,r=e===0?1:1/e,o=new ie.Matrix4;return o.set(r,0,0,-r*t.x,0,r,0,-r*t.y,0,0,r,-r*t.z,0,0,0,1),this.applyMatrix4(o),this}computeFaceNormals(){let t=new ie.Vector3,e=new ie.Vector3;for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],s=this.vertices[i.a],l=this.vertices[i.b],c=this.vertices[i.c];t.subVectors(c,l),e.subVectors(s,l),t.cross(e),t.normalize(),i.normal.copy(t)}}computeVertexNormals(t=!0){let e=new Array(this.vertices.length);for(let r=0,o=this.vertices.length;r<o;r++)e[r]=new ie.Vector3;if(t){let r=new ie.Vector3,o=new ie.Vector3;for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=this.vertices[l.a],p=this.vertices[l.b],a=this.vertices[l.c];r.subVectors(a,p),o.subVectors(c,p),r.cross(o),e[l.a].add(r),e[l.b].add(r),e[l.c].add(r)}}else{this.computeFaceNormals();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];e[i.a].add(i.normal),e[i.b].add(i.normal),e[i.c].add(i.normal)}}for(let r=0,o=this.vertices.length;r<o;r++)e[r].normalize();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],s=i.vertexNormals;s.length===3?(s[0].copy(e[i.a]),s[1].copy(e[i.b]),s[2].copy(e[i.c])):(s[0]=e[i.a].clone(),s[1]=e[i.b].clone(),s[2]=e[i.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let t=0,e=this.faces.length;t<e;t++){let r=this.faces[t],o=r.vertexNormals;o.length===3?(o[0].copy(r.normal),o[1].copy(r.normal),o[2].copy(r.normal)):(o[0]=r.normal.clone(),o[1]=r.normal.clone(),o[2]=r.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.__originalFaceNormal?o.__originalFaceNormal.copy(o.normal):o.__originalFaceNormal=o.normal.clone(),o.__originalVertexNormals||(o.__originalVertexNormals=[]);for(let i=0,s=o.vertexNormals.length;i<s;i++)o.__originalVertexNormals[i]?o.__originalVertexNormals[i].copy(o.vertexNormals[i]):o.__originalVertexNormals[i]=o.vertexNormals[i].clone()}let t=new ao;t.faces=this.faces;for(let e=0,r=this.morphTargets.length;e<r;e++){if(!this.morphNormals[e]){this.morphNormals[e]={},this.morphNormals[e].faceNormals=[],this.morphNormals[e].vertexNormals=[];let i=this.morphNormals[e].faceNormals,s=this.morphNormals[e].vertexNormals;for(let l=0,c=this.faces.length;l<c;l++){let p=new ie.Vector3,a={a:new ie.Vector3,b:new ie.Vector3,c:new ie.Vector3};i.push(p),s.push(a)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=o.faceNormals[i],p=o.vertexNormals[i];c.copy(l.normal),p.a.copy(l.vertexNormals[0]),p.b.copy(l.vertexNormals[1]),p.c.copy(l.vertexNormals[2])}}for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.normal=o.__originalFaceNormal,o.vertexNormals=o.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new ie.Box3),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new ie.Sphere),this.boundingSphere.setFromPoints(this.vertices)}merge(t,e,r=0){if(!(t&&t.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t);return}let o,i=this.vertices.length,s=this.vertices,l=t.vertices,c=this.faces,p=t.faces,a=this.colors,u=t.colors;e!==void 0&&(o=new ie.Matrix3().getNormalMatrix(e));for(let d=0,f=l.length;d<f;d++){let h=l[d].clone();e!==void 0&&h.applyMatrix4(e),s.push(h)}for(let d=0,f=u.length;d<f;d++)a.push(u[d].clone());for(let d=0,f=p.length;d<f;d++){let m=p[d],h,g,v=m.vertexNormals,x=m.vertexColors,w=new In(m.a+i,m.b+i,m.c+i);w.normal.copy(m.normal),o!==void 0&&w.normal.applyMatrix3(o).normalize();for(let S=0,b=v.length;S<b;S++)h=v[S].clone(),o!==void 0&&h.applyMatrix3(o).normalize(),w.vertexNormals.push(h);w.color.copy(m.color);for(let S=0,b=x.length;S<b;S++)g=x[S],w.vertexColors.push(g.clone());w.materialIndex=m.materialIndex+r,c.push(w)}for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let v=m[h],x=[];for(let w=0,S=v.length;w<S;w++)x.push(v[w].clone());this.faceVertexUvs[d].push(x)}}}mergeMesh(t){if(!(t&&t.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",t);return}t.matrixAutoUpdate&&t.updateMatrix(),this.merge(t.geometry,t.matrix)}mergeVertices(t=4){let e={},r=[],o=[],i=Math.pow(10,t);for(let c=0,p=this.vertices.length;c<p;c++){let a=this.vertices[c],u=Math.round(a.x*i)+"_"+Math.round(a.y*i)+"_"+Math.round(a.z*i);e[u]===void 0?(e[u]=c,r.push(this.vertices[c]),o[c]=r.length-1):o[c]=o[e[u]]}let s=[];for(let c=0,p=this.faces.length;c<p;c++){let a=this.faces[c];a.a=o[a.a],a.b=o[a.b],a.c=o[a.c];let u=[a.a,a.b,a.c];for(let d=0;d<3;d++)if(u[d]===u[(d+1)%3]){s.push(c);break}}for(let c=s.length-1;c>=0;c--){let p=s[c];this.faces.splice(p,1);for(let a=0,u=this.faceVertexUvs.length;a<u;a++)this.faceVertexUvs[a].splice(p,1)}let l=this.vertices.length-r.length;return this.vertices=r,l}setFromPoints(t){this.vertices=[];for(let e=0,r=t.length;e<r;e++){let o=t[e];this.vertices.push(new ie.Vector3(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,e=t.length;for(let c=0;c<e;c++)t[c]._id=c;function r(c,p){return c.materialIndex-p.materialIndex}t.sort(r);let o=this.faceVertexUvs[0],i=this.faceVertexUvs[1],s,l;o&&o.length===e&&(s=[]),i&&i.length===e&&(l=[]);for(let c=0;c<e;c++){let p=t[c]._id;s&&s.push(o[p]),l&&l.push(i[p])}s&&(this.faceVertexUvs[0]=s),l&&(this.faceVertexUvs[1]=l)}toJSON(){let t={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,this.name!==""&&(t.name=this.name),this.parameters!==void 0){let m=this.parameters;for(let h in m)m[h]!==void 0&&(t[h]=m[h]);return t}let e=[];for(let m=0;m<this.vertices.length;m++){let h=this.vertices[m];e.push(h.x,h.y,h.z)}let r=[],o=[],i={},s=[],l={},c=[],p={};for(let m=0;m<this.faces.length;m++){let h=this.faces[m],g=!0,v=!1,x=this.faceVertexUvs[0][m]!==void 0,w=h.normal.length()>0,S=h.vertexNormals.length>0,b=h.color.r!==1||h.color.g!==1||h.color.b!==1,I=h.vertexColors.length>0,_=0;if(_=a(_,0,0),_=a(_,1,g),_=a(_,2,v),_=a(_,3,x),_=a(_,4,w),_=a(_,5,S),_=a(_,6,b),_=a(_,7,I),r.push(_),r.push(h.a,h.b,h.c),r.push(h.materialIndex),x){let y=this.faceVertexUvs[0][m];r.push(f(y[0]),f(y[1]),f(y[2]))}if(w&&r.push(u(h.normal)),S){let y=h.vertexNormals;r.push(u(y[0]),u(y[1]),u(y[2]))}if(b&&r.push(d(h.color)),I){let y=h.vertexColors;r.push(d(y[0]),d(y[1]),d(y[2]))}}function a(m,h,g){return g?m|1<<h:m&~(1<<h)}function u(m){let h=m.x.toString()+m.y.toString()+m.z.toString();return i[h]!==void 0||(i[h]=o.length/3,o.push(m.x,m.y,m.z)),i[h]}function d(m){let h=m.r.toString()+m.g.toString()+m.b.toString();return l[h]!==void 0||(l[h]=s.length,s.push(m.getHex())),l[h]}function f(m){let h=m.x.toString()+m.y.toString();return p[h]!==void 0||(p[h]=c.length/2,c.push(m.x,m.y)),p[h]}return t.data={},t.data.vertices=e,t.data.normals=o,s.length>0&&(t.data.colors=s),c.length>0&&(t.data.uvs=[c]),t.data.faces=r,t}clone(){return new ao().copy(this)}copy(t){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;let e=t.vertices;for(let d=0,f=e.length;d<f;d++)this.vertices.push(e[d].clone());let r=t.colors;for(let d=0,f=r.length;d<f;d++)this.colors.push(r[d].clone());let o=t.faces;for(let d=0,f=o.length;d<f;d++)this.faces.push(o[d].clone());for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let v=m[h],x=[];for(let w=0,S=v.length;w<S;w++){let b=v[w];x.push(b.clone())}this.faceVertexUvs[d].push(x)}}let i=t.morphTargets;for(let d=0,f=i.length;d<f;d++){let m={};if(m.name=i[d].name,i[d].vertices!==void 0){m.vertices=[];for(let h=0,g=i[d].vertices.length;h<g;h++)m.vertices.push(i[d].vertices[h].clone())}if(i[d].normals!==void 0){m.normals=[];for(let h=0,g=i[d].normals.length;h<g;h++)m.normals.push(i[d].normals[h].clone())}this.morphTargets.push(m)}let s=t.morphNormals;for(let d=0,f=s.length;d<f;d++){let m={};if(s[d].vertexNormals!==void 0){m.vertexNormals=[];for(let h=0,g=s[d].vertexNormals.length;h<g;h++){let v=s[d].vertexNormals[h],x={};x.a=v.a.clone(),x.b=v.b.clone(),x.c=v.c.clone(),m.vertexNormals.push(x)}}if(s[d].faceNormals!==void 0){m.faceNormals=[];for(let h=0,g=s[d].faceNormals.length;h<g;h++)m.faceNormals.push(s[d].faceNormals[h].clone())}this.morphNormals.push(m)}let l=t.skinWeights;for(let d=0,f=l.length;d<f;d++)this.skinWeights.push(l[d].clone());let c=t.skinIndices;for(let d=0,f=c.length;d<f;d++)this.skinIndices.push(c[d].clone());let p=t.lineDistances;for(let d=0,f=p.length;d<f;d++)this.lineDistances.push(p[d]);let a=t.boundingBox;a!==null&&(this.boundingBox=a.clone());let u=t.boundingSphere;return u!==null&&(this.boundingSphere=u.clone()),this.elementsNeedUpdate=t.elementsNeedUpdate,this.verticesNeedUpdate=t.verticesNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.lineDistancesNeedUpdate=t.lineDistancesNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this}toBufferGeometry(){let t=new Hl().fromGeometry(this),e=new ie.BufferGeometry,r=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",new ie.BufferAttribute(r,3).copyVector3sArray(t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",new ie.BufferAttribute(o,3).copyVector3sArray(t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",new ie.BufferAttribute(o,3).copyColorsArray(t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",new ie.BufferAttribute(o,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",new ie.BufferAttribute(o,2).copyVector2sArray(t.uvs2))}e.groups=t.groups;for(let o in t.morphTargets){let i=[],s=t.morphTargets[o];for(let l=0,c=s.length;l<c;l++){let p=s[l],a=new ie.Float32BufferAttribute(p.data.length*3,3);a.name=p.name,i.push(a.copyVector3sArray(p.data))}e.morphAttributes[o]=i}if(t.skinIndices.length>0){let o=new ie.Float32BufferAttribute(t.skinIndices.length*4,4);e.setAttribute("skinIndex",o.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){let o=new ie.Float32BufferAttribute(t.skinWeights.length*4,4);e.setAttribute("skinWeight",o.copyVector4sArray(t.skinWeights))}return t.boundingSphere!==null&&(e.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(e.boundingBox=t.boundingBox.clone()),e}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(t){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(t){let e=new ie.BufferGeometry,r=t.geometry;if(t.isPoints||t.isLine){let o=new ie.Float32BufferAttribute(r.vertices.length*3,3),i=new ie.Float32BufferAttribute(r.colors.length*3,3);if(e.setAttribute("position",o.copyVector3sArray(r.vertices)),e.setAttribute("color",i.copyColorsArray(r.colors)),r.lineDistances&&r.lineDistances.length===r.vertices.length){let s=new ie.Float32BufferAttribute(r.lineDistances.length,1);e.setAttribute("lineDistance",s.copyArray(r.lineDistances))}r.boundingSphere!==null&&(e.boundingSphere=r.boundingSphere.clone()),r.boundingBox!==null&&(e.boundingBox=r.boundingBox.clone())}else t.isMesh&&(e=r.toBufferGeometry());return e}};ao.prototype.isGeometry=!0;var Hl=class{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(t){let e=[],r,o,i,s=t.faces;for(o=0;o<s.length;o++){let l=s[o];l.materialIndex!==i&&(i=l.materialIndex,r!==void 0&&(r.count=o*3-r.start,e.push(r)),r={start:o*3,materialIndex:i})}r!==void 0&&(r.count=o*3-r.start,e.push(r)),this.groups=e}fromGeometry(t){let e=t.faces,r=t.vertices,o=t.faceVertexUvs,i=o[0]&&o[0].length>0,s=o[1]&&o[1].length>0,l=t.morphTargets,c=l.length,p;if(c>0){p=[];for(let v=0;v<c;v++)p[v]={name:l[v].name,data:[]};this.morphTargets.position=p}let a=t.morphNormals,u=a.length,d;if(u>0){d=[];for(let v=0;v<u;v++)d[v]={name:a[v].name,data:[]};this.morphTargets.normal=d}let f=t.skinIndices,m=t.skinWeights,h=f.length===r.length,g=m.length===r.length;r.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let v=0;v<e.length;v++){let x=e[v];this.vertices.push(r[x.a],r[x.b],r[x.c]);let w=x.vertexNormals;if(w.length===3)this.normals.push(w[0],w[1],w[2]);else{let b=x.normal;this.normals.push(b,b,b)}let S=x.vertexColors;if(S.length===3)this.colors.push(S[0],S[1],S[2]);else{let b=x.color;this.colors.push(b,b,b)}if(i===!0){let b=o[0][v];b!==void 0?this.uvs.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",v),this.uvs.push(new ie.Vector2,new ie.Vector2,new ie.Vector2))}if(s===!0){let b=o[1][v];b!==void 0?this.uvs2.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",v),this.uvs2.push(new ie.Vector2,new ie.Vector2,new ie.Vector2))}for(let b=0;b<c;b++){let I=l[b].vertices;p[b].data.push(I[x.a],I[x.b],I[x.c])}for(let b=0;b<u;b++){let I=a[b].vertexNormals[v];d[b].data.push(I.a,I.b,I.c)}h&&this.skinIndices.push(f[x.a],f[x.b],f[x.c]),g&&this.skinWeights.push(m[x.a],m[x.b],m[x.c])}return this.computeGroups(t),this.verticesNeedUpdate=t.verticesNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),this}},In=class{constructor(t,e,r,o,i,s=0){this.a=t,this.b=e,this.c=r,this.normal=o&&o.isVector3?o:new ie.Vector3,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new ie.Color,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=s}clone(){return new this.constructor().copy(this)}copy(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(let e=0,r=t.vertexNormals.length;e<r;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,r=t.vertexColors.length;e<r;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}};var gS=["a","b","c"];function yS(n,t){switch(t){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function Wl(n,t,e){let r=Math.min(n,t),o=Math.max(n,t),i=r+"_"+o;return e.get(i)}function ql(n,t,e,r,o,i){let s=Math.min(n,t),l=Math.max(n,t),c=s+"_"+l,p;if(r.has(c))p=r.get(c);else{let a=e[s],u=e[l];p={a,b:u,newEdge:null,faces:[]},r.set(c,p)}p.faces.push(o),i[n].edges.push(p),i[t].edges.push(p)}function xS(n,t,e,r){let o,i,s;for(o=0,i=n.length;o<i;o++)e[o]={edges:[]};for(o=0,i=t.length;o<i;o++)s=t[o],ql(s.a,s.b,n,r,s,e),ql(s.b,s.c,n,r,s,e),ql(s.c,s.a,n,r,s,e)}function _a(n,t,e,r,o){n.push(new In(t,e,r,void 0,void 0,o))}function Pn(n,t){return Math.abs(t-n)/2+Math.min(n,t)}function Ta(n,t,e,r){n.push([t.clone(),e.clone(),r.clone()])}var Aa=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof Fr.BufferGeometry?t=new ao().fromBufferGeometry(t):t=t.clone(),t.mergeVertices();let e=this.subdivisions;for(;e-- >0;)this._smooth(t);return t.computeFaceNormals(),t.computeVertexNormals(),t}_smooth(t){let e=new Fr.Vector3,r,o,i,s,l,c=t.vertices,p=t.faces,a=t.faceVertexUvs[0],u=a!==void 0&&a.length>0,d=[],f=new Map;xS(c,p,d,f);let m=[],h,g,v,x,w,S,b;for(let H of Array.from(f.keys())){for(g=f.get(H),v=new Fr.Vector3,w=3/8,S=1/8,b=g.faces.length,b!=2&&(w=.5,S=0,b!=1),v.addVectors(g.a,g.b).multiplyScalar(w),e.set(0,0,0),s=0;s<b;s++){for(x=g.faces[s],l=0;l<3&&(h=c[yS(x,gS[l])],!(h!==g.a&&h!==g.b));l++);h&&e.add(h)}e.multiplyScalar(S),v.add(e),g.newEdge=m.length,m.push(v)}let I,_,y,P,A,O,T,L=[];for(o=0,i=c.length;o<i;o++){for(O=c[o],A=d[o].edges,r=A.length,r==3?I=3/16:r>3&&(I=3/(8*r)),_=1-r*Number(I),y=I,r<=2&&(r==2?(_=3/4,y=1/8):r==1||r==0),T=O.clone().multiplyScalar(_),e.set(0,0,0),s=0;s<r;s++)P=A[s],h=P.a!==O?P.a:P.b,e.add(h);e.multiplyScalar(Number(y)),T.add(e),L.push(T)}let B=L.concat(m),j=L.length,te,ne,ae,U=[],W=[],q,F,M,D,E=new Fr.Vector2,k=new Fr.Vector2,Q=new Fr.Vector2;for(o=0,i=p.length;o<i;o++)x=p[o],te=Number(Wl(x.a,x.b,f).newEdge)+j,ne=Number(Wl(x.b,x.c,f).newEdge)+j,ae=Number(Wl(x.c,x.a,f).newEdge)+j,_a(U,te,ne,ae,x.materialIndex),_a(U,x.a,te,ae,x.materialIndex),_a(U,x.b,ne,te,x.materialIndex),_a(U,x.c,ae,ne,x.materialIndex),u&&(q=a[o],F=q[0],M=q[1],D=q[2],E.set(Pn(F.x,M.x),Pn(F.y,M.y)),k.set(Pn(M.x,D.x),Pn(M.y,D.y)),Q.set(Pn(F.x,D.x),Pn(F.y,D.y)),Ta(W,E,k,Q),Ta(W,F,E,Q),Ta(W,M,k,E),Ta(W,D,Q,k));t.vertices=B,t.faces=U,u&&(t.faceVertexUvs[0]=W)}};var Je=new yr.Vector3,Cf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=n.geometry??t?.geometry??new yr.BufferGeometry().copy(new yr.BoxGeometry(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(Je),r={width:Je.x,height:Je.y,depth:Je.z,subdivisions:0}):r=t.parameters;let o={...r,...n.parameters};return{parameters:{width:Math.abs(o.width),height:Math.abs(o.height),depth:Math.abs(o.depth),subdivisions:Math.abs(o.subdivisions)},geometry:e}}static build(n){let{width:t,height:e,depth:r,subdivisions:o}=n.parameters,i=n.geometry??new yr.BufferGeometry().copy(new yr.BoxGeometry(100,100,100)),s=i.userData.parameters;s===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(Je)):Je.set(s.width,s.height,s.depth),(t!==Je.x||e!==Je.y||r!==Je.z)&&i.scale(Je.x===0?1:t/Je.x,Je.y===0?1:e/Je.y,Je.z===0?1:r/Je.z);let l=i.originalGeometry;return o>0?(l===void 0||s?.subdivisions!==o)&&(l===void 0&&(l=i),i=new Aa(o).modify(l).toBufferGeometry()):(l!==void 0&&(i=l),l=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()),l!==void 0&&Object.assign(i,{originalGeometry:l}),delete n.geometry,Object.assign(i,{userData:{...n,type:"NonParametricGeometry"}})}static loadFromUrl(n,t,e){new yr.BufferGeometryLoader(e).load(n,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(Je);let s=100/Je.x;Object.assign(i.parameters,{width:100,height:Je.y*s,depth:Je.z*s}),t(this.build(i))})}};var Lf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,cornerRadius:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5,u=0,d=0,f=2*Math.PI/r;for(let h=0;h<r;h++){let g=f*h,v=u+Math.sin(g)*p,x=d+Math.cos(g)*a;c.addPoint(c.createPoint(v,x))}c.isClosed=!0;for(let h=0,g=c.points.length;h<g;h++)c.points[h].roundness=o;c.roundness=o,c.update();let m=dt.create({shape:c,parameters:{roundness:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(m,{userData:{...n,type:"PolygonGeometry"}})}};var be=require("three"),Mf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,heightSegments:i,openEnded:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=new Xl(t*.5,e,o,i,s,l,c);return p.scale(1,1,r/t),Object.assign(p,{userData:{...n,type:"PyramidGeometry"}})}};function Ai(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function $l(n,t,e,r,o,i){let s=t.clone().sub(n),l=e.clone().sub(n),c=s.angleTo(l);if(s.normalize(),l.normalize(),r===o){let p=s.add(l).normalize();i.copy(n).addScaledVector(p,r/Math.sin(c/2))}else{let p=s.angleTo(l);i.copy(n),i.addScaledVector(s,o/Math.sin(p)),i.addScaledVector(l,r/Math.sin(p))}}function vS(n,t,e){let r=n.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var Xl=class extends be.BufferGeometry{constructor(t=.5,e=1,r=4,o=1,i=!1,s=0,l=4){super(),r=Math.floor(Math.max(3,r)),o=Math.floor(o),l=Math.floor(l);let c=[],p=[],a=[],u=[],d=0,f=e/2,m=Math.PI/r,h=t*Math.cos(Math.PI/r),g=2*Math.PI/r,v=(r-2)*Math.PI/r,x=Math.PI-v,w=new be.Vector3(0,-f,0),S=new be.Vector3(0,f,0),b=new be.Vector2(t,-f),I=new be.Vector2(h,-f),_=new be.Vector2(0,S.y).sub(I),y=new be.Vector2(0,S.y).sub(b),P=new be.Vector2(_.y,-_.x).normalize(),A=new be.Vector2(y.y,-y.x).normalize(),T=t*Math.cos(Math.PI/r)*Math.tan((Math.PI-_.angle())/2)-1e-8;s=Math.min(s,T);let L;{let W=new be.Vector3(P.x,P.y,0),q=new be.Vector3(Math.cos(g)*W.x,W.y,Math.sin(g)*W.x);L=W.angleTo(q)}let B=s/Math.tan((Math.PI-_.angle())/2),j=s/Math.tan((Math.PI-L)/2),te=new be.Vector3;if(!i){p.push(w.x,w.y,w.z),a.push(0,-1,0),u.push(0,0);let W=d++,q=[],F=b.clone(),M=B/Math.cos(Math.PI/r);F.x-=M;for(let D=0;D<r;D++){let E=D/r*Math.PI*2+m,k=new be.Vector2(Math.sin(E),Math.cos(E));Ai(F,k,te),p.push(te.x,te.y,te.z),a.push(0,-1,0),u.push(0,0),q.push(d++)}for(let D=0;D<q.length;D++)c.push(q[D],W,q[(D+1)%q.length])}let ne=[];{let W=new be.Vector3,q=new be.Vector3,F=new be.Vector3,M=new be.Vector3,D=new be.Vector3,E=new be.Vector3;for(let k=0;k<r;k++){let Q=k/r*Math.PI*2+m,H=(k+.5)/r*Math.PI*2+m,V=(k+1)/r*Math.PI*2+m,R=new be.Vector2(Math.sin(Q),Math.cos(Q)),z=new be.Vector2(Math.sin(H),Math.cos(H)),Z=new be.Vector2(Math.sin(V),Math.cos(V));Ai(b,R,q),Ai(b,Z,F),Ai(P,z,W),$l(S,q,F,j,j,M),p.push(M.x,M.y,M.z),$l(q,S,F,j,B,D),p.push(D.x,D.y,D.z),$l(F,q,S,B,j,E),p.push(E.x,E.y,E.z),a.push(W.x,W.y,W.z),a.push(W.x,W.y,W.z),a.push(W.x,W.y,W.z),u.push(0,0),u.push(0,0),u.push(0,0);let re=d++,se=d++,ee=d++;if(c.push(re,se,ee),s>0){{let X=q.clone().add(F).multiplyScalar(.5),me=S.clone().sub(X).normalize(),xe=w.clone().sub(X).normalize().add(me).normalize().multiplyScalar(-1),nt=E.clone().sub(D);ae(X,nt,xe,_.angle())}let J,K;{let X=new be.Vector3;Ai(A,Z,X);let me=E.clone().add(M).multiplyScalar(.5);me=vS(me,F,S);let de=E.clone().sub(M);[J,K]=ae(me,de,X,L,M.y)}{let X=J,me=X.clone().setY(0).normalize(),de=new be.Vector3(0,-1,0),xe=me.clone().cross(de);U(X,me,de,xe)}ne.concat(K);{let X=_.angle(),me=Math.PI-X,de=S.clone();de.y-=s/Math.sin(X-Math.PI/2);let xe=new be.Vector3,nt=[];for(let Pe=0;Pe<l;Pe++){let Le=[],Ut=Math.PI/2-me*Pe/l,jr=Math.cos(Ut),Et=Math.sin(Ut),Vo=H;for(let ls=0;ls<=Pe;ls++){let cs=Math.cos(Vo),We=Math.sin(Vo);W.x=jr*We,W.y=Et,W.z=jr*cs,xe.copy(de).addScaledVector(W,s),p.push(xe.x,xe.y,xe.z),a.push(W.x,W.y,W.z),u.push(0,0),Le.push(d++),Vo+=Math.PI*2/Pe/r}nt.push(Le)}K.reverse(),nt.push(K);let Ne=nt.length-1;for(let Pe=0;Pe<Ne;Pe++){let Le=nt[Pe],Ut=nt[Pe+1],jr=Le.length-1;c.push(Ut[1],Le[0],Ut[0]);for(let Et=1;Et<=jr;Et++)c.push(Le[Et],Le[Et-1],Ut[Et]),c.push(Ut[Et+1],Le[Et],Ut[Et])}}}}}this.setIndex(c),this.setAttribute("position",new be.Float32BufferAttribute(p,3)),this.setAttribute("normal",new be.Float32BufferAttribute(a,3)),this.setAttribute("uv",new be.Float32BufferAttribute(u,2));function ae(W,q,F,M,D){let E=-M/2,k=(Math.PI-M)/2,Q=q.clone().normalize().cross(F);W.addScaledVector(F,-s/Math.sin(k));let H=new be.Vector3,V=new be.Vector3,R=1,z=d,Z=[];for(let re=0;re<=l;re++){let se=E+re/l*M;V.set(0,0,0),V.addScaledVector(Q,Math.sin(se)),V.addScaledVector(F,Math.cos(se));for(let ee=0;ee<=R;ee++){let J=ee/R-.5;if(H.copy(W),H.addScaledVector(q,J),H.addScaledVector(V,s),D!=null){let K=Math.max(0,H.y-D);H.addScaledVector(q,-K/q.y)}p.push(H.x,H.y,H.z),a.push(V.x,V.y,V.z),u.push(0,0),ee===0&&Z.push(d),d++}}for(let re=0;re<l;re++)for(let se=0;se<R;se++){let ee=z+se+(R+1)*re,J=ee+(R+1),K=J+1,X=ee+1;c.push(ee,J,X),c.push(J,K,X)}return[W.clone().addScaledVector(q,.5),Z]}function U(W,q,F,M){let D=Math.PI/2,E=y.angle()-D,k=[],Q=new be.Vector3,H=new be.Vector3;for(let R=0;R<=l;R++){let z=[],Z=R/l;for(let re=0;re<=R;re++){let ee=((R?re/R:0)-.5)*x,J=Math.cos(ee),K=Math.sin(ee),X=Math.atan(Math.tan(E)*J),me=(D+X)*Z,de=Math.cos(me),xe=Math.sin(me);Q.set(0,0,0),Q.addScaledVector(q,xe*J),Q.addScaledVector(F,de),Q.addScaledVector(M,xe*K),H.copy(W).addScaledVector(Q,s),p.push(H.x,H.y,H.z),a.push(Q.x,Q.y,Q.z),u.push(0,0),z.push(d++)}k.push(z)}let V=k.length-1;for(let R=0;R<V;R++){let z=k[R],Z=k[R+1],re=z.length-1;c.push(z[0],Z[1],Z[0]);for(let se=1;se<=re;se++)c.push(z[se-1],z[se],Z[se]),c.push(z[se],Z[se+1],Z[se])}}}};var Ef=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters),r=Object.assign(t?.ui??{enabledIndieCorners:!1},n.ui);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)}),ui:r}}static build(n){let t=n.shape,{width:e,height:r,cornerRadius:o,cornerType:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p={x:e*.5,y:r*.5},a={x:-p.x,y:-p.y},u={x:p.x,y:p.y};function d(S,b,I){return b>e&&I>r?Math.min(S*e/b,S*r/I):b>e?S*e/b:I>r?S*r/I:S}let f=[];f[0]=o[0]===0?0:d(o[0],o[0]+o[3],o[0]+o[1]),f[1]=o[1]===0?0:d(o[1],o[1]+o[2],o[1]+o[0]),f[2]=o[2]===0?0:d(o[2],o[2]+o[1],o[2]+o[3]),f[3]=o[3]===0?0:d(o[3],o[3]+o[0],o[3]+o[2]);let m=a.x,h=u.x,g=u.y,v=a.y;t.addPoint(t.createPoint(m,g)),t.addPoint(t.createPoint(h,g)),t.addPoint(t.createPoint(h,v)),t.addPoint(t.createPoint(m,v)),t.isClosed=!0;let x=!0;for(let S=0,b=t.points.length;S<b;S++)t.points[S].roundness=f[S],S>0&&f[S]!==f[S-1]&&(x=!1);x&&(t.roundness=f[0]),t.useCubicForRoundedCorners=i!==1,t.update();let w=dt.create({shape:t,parameters:{depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(w,{userData:{...n,type:"RectangleGeometry"}})}};var Bf=require("three"),Df=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t=100,height:e=t,depth:r=t,widthSegments:o=64,heightSegments:i=64,phiStart:s,phiLength:l,thetaStart:c,thetaLength:p}=n.parameters,a=new Bf.SphereGeometry(.5*t,o,i,s,l,c,p);return a.scale(1,e/t,r/t),Object.assign(a,{userData:{...n,type:"SphereGeometry"}})}};var Gf=require("three"),Rf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:0})}}static build(n){let{width:t=100,height:e=t,widthSegments:r=8,heightSegments:o=8}=n.parameters,i=new Gf.PlaneGeometry(t,e,r,o);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};var lo=require("three"),Vf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,angle:o,cornerRadius:i,cornerSegments:s}=n.parameters,l=new Yl(t,e,r,o,i,s);return Object.assign(l,{userData:{...n,type:"BackdropGeometry"}})}},Yl=class extends lo.BufferGeometry{constructor(t=1,e=1,r=1,o=90,i=10,s=24){super(),this.type="BackdropGeometry";let l=[],c=[],p=[],a=.001;i==0&&(s=1),s=Math.max(1,Math.floor(s)),i=Math.min(i,100),o=Math.min(180-a,o),o*=Math.PI/180;let u=[],d=Math.PI/2,f=(H=0,V=0,R=0)=>new lo.Vector3(H,V,R),m=f(),h=f(),[g,v,x]=[e/2,t/2,r/2],w=-v,S=+v,[b,I,_]=[f(w,-g,+x),f(w,-g,-x),f(w,+g,-x)],y=(H,V=!1)=>Math.sin(H-Math.PI/(1+ +V)),P=(H,V=!1)=>Math.cos(H-Math.PI/(1+ +V));_.y=Math.sin(o)*e-g;let A=Math.cos(o)*e-x,O=b.z-a;o<=d?(_.z=Math.min(A,O),_.z==O&&(_.y-=(A-O)/Math.tan(d-o))):I.z=Math.min(I.z-A-x,b.z-a),m.subVectors(b,I),h.subVectors(_,I);let T=Math.min(m.length(),h.length())*i/100,L=T*Math.tan(o/2),B=T/Math.cos(o/2),j=m.clone().normalize().add(h.normalize()).setLength(B).add(I);m.set(0,y(o,!0),P(o,!0)),u.push([_,m.clone()]);let te=(Math.PI-o)/s;for(let H=0;H<=s;H++){let V=d+o+H*te;m.set(0,Math.sin(V)*L,Math.cos(V)*L),m.add(j),h.set(0,y(V),P(V)),u.push([m.clone(),h.clone()])}u.push([b,f(0,1,0)]);let ne=Math.sin(te/2)*L*2,ae=u.length-1,U=u[0][0].distanceTo(u[1][0]),W=u[ae-1][0].distanceTo(u[ae][0]),q=U+ne*s+W;u[0].push(1);for(let H=0;H<=s;H++)u[H+1].push(1-(U+H*ne)/q);u[ae].push(0);let[F,M,D]=u[0],E,k,Q;for(let H=1;H<u.length;H++)[E,k,Q]=u[H],l.push(w,F.y,F.z,w,E.y,E.z,S,F.y,F.z,S,F.y,F.z,w,E.y,E.z,S,E.y,E.z),c.push(0,M.y,M.z,0,k.y,k.z,0,M.y,M.z,0,M.y,M.z,0,k.y,k.z,0,k.y,k.z),p.push(0,D,0,Q,1,D,1,D,0,Q,1,Q),[F,M,D]=[E,k,Q];this.setAttribute("position",new lo.Float32BufferAttribute(l,3)),this.setAttribute("normal",new lo.Float32BufferAttribute(c,3)),this.setAttribute("uv",new lo.Float32BufferAttribute(p,2))}};var Ff=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,innerRadiusPercent:r,spikes:o,cornerRadius:i,angle:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}=n.parameters,a=n.shape,u=t*.5,d=e*.5,f=0,m=0,h=s*Math.PI/360/o,g=Math.PI/2*3*-1,v=u*r/100,x=d*r/100;if(o===3&&r===50){h=2*Math.PI/o;for(let S=0;S<o;S++){let b=h*S,I=f+Math.sin(b)*u,_=m+Math.cos(b)*d;a.addPoint(a.createPoint(I,_))}}else for(let S=0;S<o;S++){let b=f+Math.cos(g)*u,I=m+Math.sin(g)*d;a.addPoint(a.createPoint(b,I)),g+=h,b=f+Math.cos(g)*v,I=m+Math.sin(g)*x,S<=o,a.addPoint(a.createPoint(b,I)),g+=h}a.isClosed=!0;for(let S=0,b=a.points.length;S<b;S++)a.points[S].roundness=i;a.roundness=i,a.update();let w=dt.create({shape:a,parameters:{roundness:i,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}});return Object.assign(w,{userData:{...n,type:"StarGeometry"}})}};var zf=require("three"),Uf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e}=n.parameters,r=new zf.PlaneGeometry(t,e);return Object.assign(r,{userData:{...n,type:"TextFrameGeometry"}})}};var jf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??e.width*.25);return{parameters:Object.assign(e,{width:r,height:o,depth:i})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,tubularSegments:i,arc:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=bS(t,e,r,t*.5,s,i,0,0,o,l,c);return p.scale(1,e/t,1),Object.assign(p,{userData:{...n,type:"TorusGeometry"}})}};function bS(n,t,e,r,o,i,s,l,c,p,a){return[t,e]=[e,t],s=t/2,o/=2*Math.PI,o==1&&(p=0),new _i(!0,n,t,e,r,o,i,s,l,c,p,a)}var kf=require("three"),Hf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),tube:e.tube??e.width*.125})}}static build(n){let{width:t,tube:e,tubularSegments:r,radialSegments:o,p:i,q:s}=n.parameters,l=t*.5;l!==e&&(l-=e);let c=new kf.TorusKnotGeometry(l,e,r,o,i,s);return Object.assign(c,{userData:{...n,type:"TorusKnotGeometry"}})}};var Wf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width*(e.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t=100,height:e,cornerRadius:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s,isRect:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5;l?(c.addPoint(c.createPoint(-p,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))):(c.addPoint(c.createPoint(0,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))),c.isClosed=!0;for(let d=0,f=c.points.length;d<f;d++)c.points[d].roundness=r;c.roundness=r,c.update();let u=dt.create({shape:c,parameters:{roundness:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s}});return Object.assign(u,{userData:{...n,type:"TriangleGeometry"}})}};var Co=require("three"),$f=require("three/examples/jsm/utils/BufferGeometryUtils.js");function qf(){let n=new Co.BufferGeometry;return n.setAttribute("position",new Co.BufferAttribute(new Float32Array([]),3)),n.setIndex(new Co.BufferAttribute(new Uint16Array([]),1)),n}var SS=12;var On=class extends Co.BufferGeometry{constructor(e,r){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let o=qf();Object.entries(o.attributes).forEach(([i,s])=>{this.setAttribute(i,s)}),this.setIndex(o.index),this.updateFont(e.font,r),this.update(e)}async updateFont(e,r){let o=r.getFont(e);o&&(this.font=o,await o.loadingPromise)}async update(e){let r=this.font;if(this.userData={parameters:e,type:"TextGeometry"},!r||!r.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:o,height:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c,text:p,textTransform:a,subdivisions:u}=e;await r.loadingPromise;let d=a===2?p.toUpperCase():a===3?p.toLowerCase():p,f=wS(e,r,d),{shapes:m,charWidths:h,charCoords:g}=await r.generateShapes(f,e),v=o*.5,x=i*.5,w=m.map(I=>new _e().fromShape(I));this.vectorShapes=w;let S=w.map(I=>dt.create({shape:I,parameters:{depth:s,extrudeBevelSegments:c,extrudeBevelSize:l,windingRule:s<=0?Me.NONZERO:Me.ODD,subdivisions:u??SS}})),b=S.length?(0,$f.mergeBufferGeometries)(S):qf();b.translate(-v,x,0),this.dispose(),this.wrappedText=f,this.charCoords=g,this.charWidths=h,Object.entries(b.attributes).forEach(([I,_])=>{this.setAttribute(I,_)}),this.setIndex(b.index),this.computeBoundingSphere()}clone(){let e=Ao(new Co.BufferGeometry,On.prototype);return e.copy(this),e}copy(e){return Object.entries(e.attributes).forEach(([r,o])=>{this.setAttribute(r,o)}),this.setIndex(e.index),this.userData={parameters:{...e.userData.parameters},type:"TextGeometry"},this}async setText(e){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:e})}get text(){return this.userData.parameters.text??""}};function wS(n,t,e){e=e??n.text;let r=[""],o="";for(let i of e)o+=i,i===" "||i===`
1
+ var Nh=Object.create;var ps=Object.defineProperty;var Ih=Object.getOwnPropertyDescriptor;var Ph=Object.getOwnPropertyNames;var Oh=Object.getPrototypeOf,Ch=Object.prototype.hasOwnProperty;var Mc=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),Ec=(n,t)=>{for(var e in t)ps(n,e,{get:t[e],enumerable:!0})},Bc=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ph(t))!Ch.call(n,o)&&o!==e&&ps(n,o,{get:()=>t[o],enumerable:!(r=Ih(t,o))||r.enumerable});return n};var tl=(n,t,e)=>(e=n!=null?Nh(Oh(n)):{},Bc(t||!n||!n.__esModule?ps(e,"default",{value:n,enumerable:!0}):e,n)),Lh=n=>Bc(ps({},"__esModule",{value:!0}),n);var Hm=Mc((Xa,km)=>{(function(n,t){typeof Xa=="object"&&typeof km<"u"?t(Xa):typeof define=="function"&&define.amd?define(["exports"],t):t((n=typeof globalThis<"u"?globalThis:n||self).SVDJS={})})(Xa,function(n){"use strict";n.SVD=function(t,e,r,o,i){if(e=e===void 0||e,r=r===void 0||r,i=1e-64/(o=o||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var s,l,c,p,a,u,d,f,m,h,g,v,x=t[0].length,w=t.length;if(w<x)throw new TypeError("Invalid matrix: m < n");for(var S=[],b=[],I=[],_=e==="f"?w:x,y=h=d=0;y<w;y++)b[y]=new Array(_).fill(0);for(y=0;y<x;y++)I[y]=new Array(x).fill(0);var P,A=new Array(x).fill(0);for(y=0;y<w;y++)for(s=0;s<x;s++)b[y][s]=t[y][s];for(y=0;y<x;y++){for(S[y]=d,m=0,c=y+1,s=y;s<w;s++)m+=Math.pow(b[s][y],2);if(m<i)d=0;else for(f=(u=b[y][y])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,b[y][y]=u-d,s=c;s<x;s++){for(m=0,l=y;l<w;l++)m+=b[l][y]*b[l][s];for(u=m/f,l=y;l<w;l++)b[l][s]=b[l][s]+u*b[l][y]}for(A[y]=d,m=0,s=c;s<x;s++)m+=Math.pow(b[y][s],2);if(m<i)d=0;else{for(f=(u=b[y][y+1])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,b[y][y+1]=u-d,s=c;s<x;s++)S[s]=b[y][s]/f;for(s=c;s<w;s++){for(m=0,l=c;l<x;l++)m+=b[s][l]*b[y][l];for(l=c;l<x;l++)b[s][l]=b[s][l]+m*S[l]}}h<(g=Math.abs(A[y])+Math.abs(S[y]))&&(h=g)}if(r)for(y=x-1;0<=y;y--){if(d!==0){for(f=b[y][y+1]*d,s=c;s<x;s++)I[s][y]=b[y][s]/f;for(s=c;s<x;s++){for(m=0,l=c;l<x;l++)m+=b[y][l]*I[l][s];for(l=c;l<x;l++)I[l][s]=I[l][s]+m*I[l][y]}}for(s=c;s<x;s++)I[y][s]=0,I[s][y]=0;I[y][y]=1,d=S[y],c=y}if(e){if(e==="f")for(y=x;y<w;y++){for(s=x;s<w;s++)b[y][s]=0;b[y][y]=1}for(y=x-1;0<=y;y--){for(c=y+1,d=A[y],s=c;s<_;s++)b[y][s]=0;if(d!==0){for(f=b[y][y]*d,s=c;s<_;s++){for(m=0,l=c;l<w;l++)m+=b[l][y]*b[l][s];for(u=m/f,l=y;l<w;l++)b[l][s]=b[l][s]+u*b[l][y]}for(s=y;s<w;s++)b[s][y]=b[s][y]/d}else for(s=y;s<w;s++)b[s][y]=0;b[y][y]=b[y][y]+1}}for(o*=h,l=x-1;0<=l;l--)for(var O=0;O<50;O++){for(P=!1,c=l;0<=c;c--){if(Math.abs(S[c])<=o){P=!0;break}if(Math.abs(A[c-1])<=o)break}if(!P){for(a=0,p=c-(m=1),y=c;y<l+1&&(u=m*S[y],S[y]=a*S[y],!(Math.abs(u)<=o));y++)if(d=A[y],A[y]=Math.sqrt(u*u+d*d),a=d/(f=A[y]),m=-u/f,e)for(s=0;s<w;s++)g=b[s][p],v=b[s][y],b[s][p]=g*a+v*m,b[s][y]=-g*m+v*a}if(v=A[l],c===l){if(v<0&&(A[l]=-v,r))for(s=0;s<x;s++)I[s][l]=-I[s][l];break}for(h=A[c],u=(((g=A[l-1])-v)*(g+v)+((d=S[l-1])-(f=S[l]))*(d+f))/(2*f*g),d=Math.sqrt(u*u+1),u=((h-v)*(h+v)+f*(g/(u<0?u-d:u+d)-f))/h,y=c+(m=a=1);y<l+1;y++){if(d=S[y],g=A[y],f=m*d,d*=a,v=Math.sqrt(u*u+f*f),u=h*(a=u/(S[y-1]=v))+d*(m=f/v),d=-h*m+d*a,f=g*m,g*=a,r)for(s=0;s<x;s++)h=I[s][y-1],v=I[s][y],I[s][y-1]=h*a+v*m,I[s][y]=-h*m+v*a;if(v=Math.sqrt(u*u+f*f),u=(a=u/(A[y-1]=v))*d+(m=f/v)*g,h=-m*d+a*g,e)for(s=0;s<w;s++)g=b[s][y-1],v=b[s][y],b[s][y-1]=g*a+v*m,b[s][y]=-g*m+v*a}S[c]=0,S[l]=u,A[l]=h}for(y=0;y<x;y++)A[y]<o&&(A[y]=0);return{u:b,q:A,v:I}},n.VERSION="1.1.1",Object.defineProperty(n,"__esModule",{value:!0})})});var nh=Mc(Ya=>{(function(){"use strict";var n=function(){this.init()};n.prototype={init:function(){var a=this||t;return a._counter=1e3,a._html5AudioPool=[],a.html5PoolSize=10,a._codecs={},a._howls=[],a._muted=!1,a._volume=1,a._canPlayEvent="canplaythrough",a._navigator=typeof window<"u"&&window.navigator?window.navigator:null,a.masterGain=null,a.noAudio=!1,a.usingWebAudio=!0,a.autoSuspend=!0,a.ctx=null,a.autoUnlock=!0,a._setup(),a},volume:function(a){var u=this||t;if(a=parseFloat(a),u.ctx||p(),typeof a<"u"&&a>=0&&a<=1){if(u._volume=a,u._muted)return u;u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.volume=h._volume*a)}return u}return u._volume},mute:function(a){var u=this||t;u.ctx||p(),u._muted=a,u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a?0:u._volume,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.muted=a?!0:h._muted)}return u},stop:function(){for(var a=this||t,u=0;u<a._howls.length;u++)a._howls[u].stop();return a},unload:function(){for(var a=this||t,u=a._howls.length-1;u>=0;u--)a._howls[u].unload();return a.usingWebAudio&&a.ctx&&typeof a.ctx.close<"u"&&(a.ctx.close(),a.ctx=null,p()),a},codecs:function(a){return(this||t)._codecs[a.replace(/^x-/,"")]},_setup:function(){var a=this||t;if(a.state=a.ctx&&a.ctx.state||"suspended",a._autoSuspend(),!a.usingWebAudio)if(typeof Audio<"u")try{var u=new Audio;typeof u.oncanplaythrough>"u"&&(a._canPlayEvent="canplay")}catch{a.noAudio=!0}else a.noAudio=!0;try{var u=new Audio;u.muted&&(a.noAudio=!0)}catch{}return a.noAudio||a._setupCodecs(),a},_setupCodecs:function(){var a=this||t,u=null;try{u=typeof Audio<"u"?new Audio:null}catch{return a}if(!u||typeof u.canPlayType!="function")return a;var d=u.canPlayType("audio/mpeg;").replace(/^no$/,""),f=a._navigator?a._navigator.userAgent:"",m=f.match(/OPR\/([0-6].)/g),h=m&&parseInt(m[0].split("/")[1],10)<33,g=f.indexOf("Safari")!==-1&&f.indexOf("Chrome")===-1,v=f.match(/Version\/(.*?) /),x=g&&v&&parseInt(v[1],10)<15;return a._codecs={mp3:!!(!h&&(d||u.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!d,opus:!!u.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(u.canPlayType('audio/wav; codecs="1"')||u.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!u.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!u.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(u.canPlayType("audio/x-m4a;")||u.canPlayType("audio/m4a;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(u.canPlayType("audio/x-m4b;")||u.canPlayType("audio/m4b;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(u.canPlayType("audio/x-mp4;")||u.canPlayType("audio/mp4;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!x&&u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!x&&u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!u.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(u.canPlayType("audio/x-flac;")||u.canPlayType("audio/flac;")).replace(/^no$/,"")},a},_unlockAudio:function(){var a=this||t;if(!(a._audioUnlocked||!a.ctx)){a._audioUnlocked=!1,a.autoUnlock=!1,!a._mobileUnloaded&&a.ctx.sampleRate!==44100&&(a._mobileUnloaded=!0,a.unload()),a._scratchBuffer=a.ctx.createBuffer(1,1,22050);var u=function(d){for(;a._html5AudioPool.length<a.html5PoolSize;)try{var f=new Audio;f._unlocked=!0,a._releaseHtml5Audio(f)}catch{a.noAudio=!0;break}for(var m=0;m<a._howls.length;m++)if(!a._howls[m]._webAudio)for(var h=a._howls[m]._getSoundIds(),g=0;g<h.length;g++){var v=a._howls[m]._soundById(h[g]);v&&v._node&&!v._node._unlocked&&(v._node._unlocked=!0,v._node.load())}a._autoResume();var x=a.ctx.createBufferSource();x.buffer=a._scratchBuffer,x.connect(a.ctx.destination),typeof x.start>"u"?x.noteOn(0):x.start(0),typeof a.ctx.resume=="function"&&a.ctx.resume(),x.onended=function(){x.disconnect(0),a._audioUnlocked=!0,document.removeEventListener("touchstart",u,!0),document.removeEventListener("touchend",u,!0),document.removeEventListener("click",u,!0),document.removeEventListener("keydown",u,!0);for(var w=0;w<a._howls.length;w++)a._howls[w]._emit("unlock")}};return document.addEventListener("touchstart",u,!0),document.addEventListener("touchend",u,!0),document.addEventListener("click",u,!0),document.addEventListener("keydown",u,!0),a}},_obtainHtml5Audio:function(){var a=this||t;if(a._html5AudioPool.length)return a._html5AudioPool.pop();var u=new Audio().play();return u&&typeof Promise<"u"&&(u instanceof Promise||typeof u.then=="function")&&u.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(a){var u=this||t;return a._unlocked&&u._html5AudioPool.push(a),u},_autoSuspend:function(){var a=this;if(!(!a.autoSuspend||!a.ctx||typeof a.ctx.suspend>"u"||!t.usingWebAudio)){for(var u=0;u<a._howls.length;u++)if(a._howls[u]._webAudio){for(var d=0;d<a._howls[u]._sounds.length;d++)if(!a._howls[u]._sounds[d]._paused)return a}return a._suspendTimer&&clearTimeout(a._suspendTimer),a._suspendTimer=setTimeout(function(){if(!!a.autoSuspend){a._suspendTimer=null,a.state="suspending";var f=function(){a.state="suspended",a._resumeAfterSuspend&&(delete a._resumeAfterSuspend,a._autoResume())};a.ctx.suspend().then(f,f)}},3e4),a}},_autoResume:function(){var a=this;if(!(!a.ctx||typeof a.ctx.resume>"u"||!t.usingWebAudio))return a.state==="running"&&a.ctx.state!=="interrupted"&&a._suspendTimer?(clearTimeout(a._suspendTimer),a._suspendTimer=null):a.state==="suspended"||a.state==="running"&&a.ctx.state==="interrupted"?(a.ctx.resume().then(function(){a.state="running";for(var u=0;u<a._howls.length;u++)a._howls[u]._emit("resume")}),a._suspendTimer&&(clearTimeout(a._suspendTimer),a._suspendTimer=null)):a.state==="suspending"&&(a._resumeAfterSuspend=!0),a}};var t=new n,e=function(a){var u=this;if(!a.src||a.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}u.init(a)};e.prototype={init:function(a){var u=this;return t.ctx||p(),u._autoplay=a.autoplay||!1,u._format=typeof a.format!="string"?a.format:[a.format],u._html5=a.html5||!1,u._muted=a.mute||!1,u._loop=a.loop||!1,u._pool=a.pool||5,u._preload=typeof a.preload=="boolean"||a.preload==="metadata"?a.preload:!0,u._rate=a.rate||1,u._sprite=a.sprite||{},u._src=typeof a.src!="string"?a.src:[a.src],u._volume=a.volume!==void 0?a.volume:1,u._xhr={method:a.xhr&&a.xhr.method?a.xhr.method:"GET",headers:a.xhr&&a.xhr.headers?a.xhr.headers:null,withCredentials:a.xhr&&a.xhr.withCredentials?a.xhr.withCredentials:!1},u._duration=0,u._state="unloaded",u._sounds=[],u._endTimers={},u._queue=[],u._playLock=!1,u._onend=a.onend?[{fn:a.onend}]:[],u._onfade=a.onfade?[{fn:a.onfade}]:[],u._onload=a.onload?[{fn:a.onload}]:[],u._onloaderror=a.onloaderror?[{fn:a.onloaderror}]:[],u._onplayerror=a.onplayerror?[{fn:a.onplayerror}]:[],u._onpause=a.onpause?[{fn:a.onpause}]:[],u._onplay=a.onplay?[{fn:a.onplay}]:[],u._onstop=a.onstop?[{fn:a.onstop}]:[],u._onmute=a.onmute?[{fn:a.onmute}]:[],u._onvolume=a.onvolume?[{fn:a.onvolume}]:[],u._onrate=a.onrate?[{fn:a.onrate}]:[],u._onseek=a.onseek?[{fn:a.onseek}]:[],u._onunlock=a.onunlock?[{fn:a.onunlock}]:[],u._onresume=[],u._webAudio=t.usingWebAudio&&!u._html5,typeof t.ctx<"u"&&t.ctx&&t.autoUnlock&&t._unlockAudio(),t._howls.push(u),u._autoplay&&u._queue.push({event:"play",action:function(){u.play()}}),u._preload&&u._preload!=="none"&&u.load(),u},load:function(){var a=this,u=null;if(t.noAudio){a._emit("loaderror",null,"No audio support.");return}typeof a._src=="string"&&(a._src=[a._src]);for(var d=0;d<a._src.length;d++){var f,m;if(a._format&&a._format[d])f=a._format[d];else{if(m=a._src[d],typeof m!="string"){a._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}f=/^data:audio\/([^;,]+);/i.exec(m),f||(f=/\.([^.]+)$/.exec(m.split("?",1)[0])),f&&(f=f[1].toLowerCase())}if(f||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),f&&t.codecs(f)){u=a._src[d];break}}if(!u){a._emit("loaderror",null,"No codec support for selected audio sources.");return}return a._src=u,a._state="loading",window.location.protocol==="https:"&&u.slice(0,5)==="http:"&&(a._html5=!0,a._webAudio=!1),new r(a),a._webAudio&&i(a),a},play:function(a,u){var d=this,f=null;if(typeof a=="number")f=a,a=null;else{if(typeof a=="string"&&d._state==="loaded"&&!d._sprite[a])return null;if(typeof a>"u"&&(a="__default",!d._playLock)){for(var m=0,h=0;h<d._sounds.length;h++)d._sounds[h]._paused&&!d._sounds[h]._ended&&(m++,f=d._sounds[h]._id);m===1?a=null:f=null}}var g=f?d._soundById(f):d._inactiveSound();if(!g)return null;if(f&&!a&&(a=g._sprite||"__default"),d._state!=="loaded"){g._sprite=a,g._ended=!1;var v=g._id;return d._queue.push({event:"play",action:function(){d.play(v)}}),v}if(f&&!g._paused)return u||d._loadQueue("play"),g._id;d._webAudio&&t._autoResume();var x=Math.max(0,g._seek>0?g._seek:d._sprite[a][0]/1e3),w=Math.max(0,(d._sprite[a][0]+d._sprite[a][1])/1e3-x),S=w*1e3/Math.abs(g._rate),b=d._sprite[a][0]/1e3,I=(d._sprite[a][0]+d._sprite[a][1])/1e3;g._sprite=a,g._ended=!1;var _=function(){g._paused=!1,g._seek=x,g._start=b,g._stop=I,g._loop=!!(g._loop||d._sprite[a][2])};if(x>=I){d._ended(g);return}var y=g._node;if(d._webAudio){var P=function(){d._playLock=!1,_(),d._refreshBuffer(g);var L=g._muted||d._muted?0:g._volume;y.gain.setValueAtTime(L,t.ctx.currentTime),g._playStart=t.ctx.currentTime,typeof y.bufferSource.start>"u"?g._loop?y.bufferSource.noteGrainOn(0,x,86400):y.bufferSource.noteGrainOn(0,x,w):g._loop?y.bufferSource.start(0,x,86400):y.bufferSource.start(0,x,w),S!==1/0&&(d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),S)),u||setTimeout(function(){d._emit("play",g._id),d._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?P():(d._playLock=!0,d.once("resume",P),d._clearTimer(g._id))}else{var A=function(){y.currentTime=x,y.muted=g._muted||d._muted||t._muted||y.muted,y.volume=g._volume*t.volume(),y.playbackRate=g._rate;try{var L=y.play();if(L&&typeof Promise<"u"&&(L instanceof Promise||typeof L.then=="function")?(d._playLock=!0,_(),L.then(function(){d._playLock=!1,y._unlocked=!0,u?d._loadQueue():d._emit("play",g._id)}).catch(function(){d._playLock=!1,d._emit("playerror",g._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),g._ended=!0,g._paused=!0})):u||(d._playLock=!1,_(),d._emit("play",g._id)),y.playbackRate=g._rate,y.paused){d._emit("playerror",g._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}a!=="__default"||g._loop?d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),S):(d._endTimers[g._id]=function(){d._ended(g),y.removeEventListener("ended",d._endTimers[g._id],!1)},y.addEventListener("ended",d._endTimers[g._id],!1))}catch(B){d._emit("playerror",g._id,B)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=d._src,y.load());var O=window&&window.ejecta||!y.readyState&&t._navigator.isCocoonJS;if(y.readyState>=3||O)A();else{d._playLock=!0,d._state="loading";var T=function(){d._state="loaded",A(),y.removeEventListener(t._canPlayEvent,T,!1)};y.addEventListener(t._canPlayEvent,T,!1),d._clearTimer(g._id)}}return g._id},pause:function(a){var u=this;if(u._state!=="loaded"||u._playLock)return u._queue.push({event:"pause",action:function(){u.pause(a)}}),u;for(var d=u._getSoundIds(a),f=0;f<d.length;f++){u._clearTimer(d[f]);var m=u._soundById(d[f]);if(m&&!m._paused&&(m._seek=u.seek(d[f]),m._rateSeek=0,m._paused=!0,u._stopFade(d[f]),m._node))if(u._webAudio){if(!m._node.bufferSource)continue;typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),u._cleanBuffer(m._node)}else(!isNaN(m._node.duration)||m._node.duration===1/0)&&m._node.pause();arguments[1]||u._emit("pause",m?m._id:null)}return u},stop:function(a,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"stop",action:function(){d.stop(a)}}),d;for(var f=d._getSoundIds(a),m=0;m<f.length;m++){d._clearTimer(f[m]);var h=d._soundById(f[m]);h&&(h._seek=h._start||0,h._rateSeek=0,h._paused=!0,h._ended=!0,d._stopFade(f[m]),h._node&&(d._webAudio?h._node.bufferSource&&(typeof h._node.bufferSource.stop>"u"?h._node.bufferSource.noteOff(0):h._node.bufferSource.stop(0),d._cleanBuffer(h._node)):(!isNaN(h._node.duration)||h._node.duration===1/0)&&(h._node.currentTime=h._start||0,h._node.pause(),h._node.duration===1/0&&d._clearSound(h._node))),u||d._emit("stop",h._id))}return d},mute:function(a,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"mute",action:function(){d.mute(a,u)}}),d;if(typeof u>"u")if(typeof a=="boolean")d._muted=a;else return d._muted;for(var f=d._getSoundIds(u),m=0;m<f.length;m++){var h=d._soundById(f[m]);h&&(h._muted=a,h._interval&&d._stopFade(h._id),d._webAudio&&h._node?h._node.gain.setValueAtTime(a?0:h._volume,t.ctx.currentTime):h._node&&(h._node.muted=t._muted?!0:a),d._emit("mute",h._id))}return d},volume:function(){var a=this,u=arguments,d,f;if(u.length===0)return a._volume;if(u.length===1||u.length===2&&typeof u[1]>"u"){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):d=parseFloat(u[0])}else u.length>=2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));var g;if(typeof d<"u"&&d>=0&&d<=1){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"volume",action:function(){a.volume.apply(a,u)}}),a;typeof f>"u"&&(a._volume=d),f=a._getSoundIds(f);for(var v=0;v<f.length;v++)g=a._soundById(f[v]),g&&(g._volume=d,u[2]||a._stopFade(f[v]),a._webAudio&&g._node&&!g._muted?g._node.gain.setValueAtTime(d,t.ctx.currentTime):g._node&&!g._muted&&(g._node.volume=d*t.volume()),a._emit("volume",g._id))}else return g=f?a._soundById(f):a._sounds[0],g?g._volume:0;return a},fade:function(a,u,d,f){var m=this;if(m._state!=="loaded"||m._playLock)return m._queue.push({event:"fade",action:function(){m.fade(a,u,d,f)}}),m;a=Math.min(Math.max(0,parseFloat(a)),1),u=Math.min(Math.max(0,parseFloat(u)),1),d=parseFloat(d),m.volume(a,f);for(var h=m._getSoundIds(f),g=0;g<h.length;g++){var v=m._soundById(h[g]);if(v){if(f||m._stopFade(h[g]),m._webAudio&&!v._muted){var x=t.ctx.currentTime,w=x+d/1e3;v._volume=a,v._node.gain.setValueAtTime(a,x),v._node.gain.linearRampToValueAtTime(u,w)}m._startFadeInterval(v,a,u,d,h[g],typeof f>"u")}}return m},_startFadeInterval:function(a,u,d,f,m,h){var g=this,v=u,x=d-u,w=Math.abs(x/.01),S=Math.max(4,w>0?f/w:f),b=Date.now();a._fadeTo=d,a._interval=setInterval(function(){var I=(Date.now()-b)/f;b=Date.now(),v+=x*I,v=Math.round(v*100)/100,x<0?v=Math.max(d,v):v=Math.min(d,v),g._webAudio?a._volume=v:g.volume(v,a._id,!0),h&&(g._volume=v),(d<u&&v<=d||d>u&&v>=d)&&(clearInterval(a._interval),a._interval=null,a._fadeTo=null,g.volume(d,a._id),g._emit("fade",a._id))},S)},_stopFade:function(a){var u=this,d=u._soundById(a);return d&&d._interval&&(u._webAudio&&d._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(d._interval),d._interval=null,u.volume(d._fadeTo,a),d._fadeTo=null,u._emit("fade",a)),u},loop:function(){var a=this,u=arguments,d,f,m;if(u.length===0)return a._loop;if(u.length===1)if(typeof u[0]=="boolean")d=u[0],a._loop=d;else return m=a._soundById(parseInt(u[0],10)),m?m._loop:!1;else u.length===2&&(d=u[0],f=parseInt(u[1],10));for(var h=a._getSoundIds(f),g=0;g<h.length;g++)m=a._soundById(h[g]),m&&(m._loop=d,a._webAudio&&m._node&&m._node.bufferSource&&(m._node.bufferSource.loop=d,d&&(m._node.bufferSource.loopStart=m._start||0,m._node.bufferSource.loopEnd=m._stop,a.playing(h[g])&&(a.pause(h[g],!0),a.play(h[g],!0)))));return a},rate:function(){var a=this,u=arguments,d,f;if(u.length===0)f=a._sounds[0]._id;else if(u.length===1){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):d=parseFloat(u[0])}else u.length===2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));var g;if(typeof d=="number"){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"rate",action:function(){a.rate.apply(a,u)}}),a;typeof f>"u"&&(a._rate=d),f=a._getSoundIds(f);for(var v=0;v<f.length;v++)if(g=a._soundById(f[v]),g){a.playing(f[v])&&(g._rateSeek=a.seek(f[v]),g._playStart=a._webAudio?t.ctx.currentTime:g._playStart),g._rate=d,a._webAudio&&g._node&&g._node.bufferSource?g._node.bufferSource.playbackRate.setValueAtTime(d,t.ctx.currentTime):g._node&&(g._node.playbackRate=d);var x=a.seek(f[v]),w=(a._sprite[g._sprite][0]+a._sprite[g._sprite][1])/1e3-x,S=w*1e3/Math.abs(g._rate);(a._endTimers[f[v]]||!g._paused)&&(a._clearTimer(f[v]),a._endTimers[f[v]]=setTimeout(a._ended.bind(a,g),S)),a._emit("rate",g._id)}}else return g=a._soundById(f),g?g._rate:a._rate;return a},seek:function(){var a=this,u=arguments,d,f;if(u.length===0)a._sounds.length&&(f=a._sounds[0]._id);else if(u.length===1){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):a._sounds.length&&(f=a._sounds[0]._id,d=parseFloat(u[0]))}else u.length===2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));if(typeof f>"u")return 0;if(typeof d=="number"&&(a._state!=="loaded"||a._playLock))return a._queue.push({event:"seek",action:function(){a.seek.apply(a,u)}}),a;var g=a._soundById(f);if(g)if(typeof d=="number"&&d>=0){var v=a.playing(f);v&&a.pause(f,!0),g._seek=d,g._ended=!1,a._clearTimer(f),!a._webAudio&&g._node&&!isNaN(g._node.duration)&&(g._node.currentTime=d);var x=function(){v&&a.play(f,!0),a._emit("seek",f)};if(v&&!a._webAudio){var w=function(){a._playLock?setTimeout(w,0):x()};setTimeout(w,0)}else x()}else if(a._webAudio){var S=a.playing(f)?t.ctx.currentTime-g._playStart:0,b=g._rateSeek?g._rateSeek-g._seek:0;return g._seek+(b+S*Math.abs(g._rate))}else return g._node.currentTime;return a},playing:function(a){var u=this;if(typeof a=="number"){var d=u._soundById(a);return d?!d._paused:!1}for(var f=0;f<u._sounds.length;f++)if(!u._sounds[f]._paused)return!0;return!1},duration:function(a){var u=this,d=u._duration,f=u._soundById(a);return f&&(d=u._sprite[f._sprite][1]/1e3),d},state:function(){return this._state},unload:function(){for(var a=this,u=a._sounds,d=0;d<u.length;d++)u[d]._paused||a.stop(u[d]._id),a._webAudio||(a._clearSound(u[d]._node),u[d]._node.removeEventListener("error",u[d]._errorFn,!1),u[d]._node.removeEventListener(t._canPlayEvent,u[d]._loadFn,!1),u[d]._node.removeEventListener("ended",u[d]._endFn,!1),t._releaseHtml5Audio(u[d]._node)),delete u[d]._node,a._clearTimer(u[d]._id);var f=t._howls.indexOf(a);f>=0&&t._howls.splice(f,1);var m=!0;for(d=0;d<t._howls.length;d++)if(t._howls[d]._src===a._src||a._src.indexOf(t._howls[d]._src)>=0){m=!1;break}return o&&m&&delete o[a._src],t.noAudio=!1,a._state="unloaded",a._sounds=[],a=null,null},on:function(a,u,d,f){var m=this,h=m["_on"+a];return typeof u=="function"&&h.push(f?{id:d,fn:u,once:f}:{id:d,fn:u}),m},off:function(a,u,d){var f=this,m=f["_on"+a],h=0;if(typeof u=="number"&&(d=u,u=null),u||d)for(h=0;h<m.length;h++){var g=d===m[h].id;if(u===m[h].fn&&g||!u&&g){m.splice(h,1);break}}else if(a)f["_on"+a]=[];else{var v=Object.keys(f);for(h=0;h<v.length;h++)v[h].indexOf("_on")===0&&Array.isArray(f[v[h]])&&(f[v[h]]=[])}return f},once:function(a,u,d){var f=this;return f.on(a,u,d,1),f},_emit:function(a,u,d){for(var f=this,m=f["_on"+a],h=m.length-1;h>=0;h--)(!m[h].id||m[h].id===u||a==="load")&&(setTimeout(function(g){g.call(this,u,d)}.bind(f,m[h].fn),0),m[h].once&&f.off(a,m[h].fn,m[h].id));return f._loadQueue(a),f},_loadQueue:function(a){var u=this;if(u._queue.length>0){var d=u._queue[0];d.event===a&&(u._queue.shift(),u._loadQueue()),a||d.action()}return u},_ended:function(a){var u=this,d=a._sprite;if(!u._webAudio&&a._node&&!a._node.paused&&!a._node.ended&&a._node.currentTime<a._stop)return setTimeout(u._ended.bind(u,a),100),u;var f=!!(a._loop||u._sprite[d][2]);if(u._emit("end",a._id),!u._webAudio&&f&&u.stop(a._id,!0).play(a._id),u._webAudio&&f){u._emit("play",a._id),a._seek=a._start||0,a._rateSeek=0,a._playStart=t.ctx.currentTime;var m=(a._stop-a._start)*1e3/Math.abs(a._rate);u._endTimers[a._id]=setTimeout(u._ended.bind(u,a),m)}return u._webAudio&&!f&&(a._paused=!0,a._ended=!0,a._seek=a._start||0,a._rateSeek=0,u._clearTimer(a._id),u._cleanBuffer(a._node),t._autoSuspend()),!u._webAudio&&!f&&u.stop(a._id,!0),u},_clearTimer:function(a){var u=this;if(u._endTimers[a]){if(typeof u._endTimers[a]!="function")clearTimeout(u._endTimers[a]);else{var d=u._soundById(a);d&&d._node&&d._node.removeEventListener("ended",u._endTimers[a],!1)}delete u._endTimers[a]}return u},_soundById:function(a){for(var u=this,d=0;d<u._sounds.length;d++)if(a===u._sounds[d]._id)return u._sounds[d];return null},_inactiveSound:function(){var a=this;a._drain();for(var u=0;u<a._sounds.length;u++)if(a._sounds[u]._ended)return a._sounds[u].reset();return new r(a)},_drain:function(){var a=this,u=a._pool,d=0,f=0;if(!(a._sounds.length<u)){for(f=0;f<a._sounds.length;f++)a._sounds[f]._ended&&d++;for(f=a._sounds.length-1;f>=0;f--){if(d<=u)return;a._sounds[f]._ended&&(a._webAudio&&a._sounds[f]._node&&a._sounds[f]._node.disconnect(0),a._sounds.splice(f,1),d--)}}},_getSoundIds:function(a){var u=this;if(typeof a>"u"){for(var d=[],f=0;f<u._sounds.length;f++)d.push(u._sounds[f]._id);return d}else return[a]},_refreshBuffer:function(a){var u=this;return a._node.bufferSource=t.ctx.createBufferSource(),a._node.bufferSource.buffer=o[u._src],a._panner?a._node.bufferSource.connect(a._panner):a._node.bufferSource.connect(a._node),a._node.bufferSource.loop=a._loop,a._loop&&(a._node.bufferSource.loopStart=a._start||0,a._node.bufferSource.loopEnd=a._stop||0),a._node.bufferSource.playbackRate.setValueAtTime(a._rate,t.ctx.currentTime),u},_cleanBuffer:function(a){var u=this,d=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&a.bufferSource&&(a.bufferSource.onended=null,a.bufferSource.disconnect(0),d))try{a.bufferSource.buffer=t._scratchBuffer}catch{}return a.bufferSource=null,u},_clearSound:function(a){var u=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);u||(a.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(a){this._parent=a,this.init()};r.prototype={init:function(){var a=this,u=a._parent;return a._muted=u._muted,a._loop=u._loop,a._volume=u._volume,a._rate=u._rate,a._seek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,u._sounds.push(a),a.create(),a},create:function(){var a=this,u=a._parent,d=t._muted||a._muted||a._parent._muted?0:a._volume;return u._webAudio?(a._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),a._node.gain.setValueAtTime(d,t.ctx.currentTime),a._node.paused=!0,a._node.connect(t.masterGain)):t.noAudio||(a._node=t._obtainHtml5Audio(),a._errorFn=a._errorListener.bind(a),a._node.addEventListener("error",a._errorFn,!1),a._loadFn=a._loadListener.bind(a),a._node.addEventListener(t._canPlayEvent,a._loadFn,!1),a._endFn=a._endListener.bind(a),a._node.addEventListener("ended",a._endFn,!1),a._node.src=u._src,a._node.preload=u._preload===!0?"auto":u._preload,a._node.volume=d*t.volume(),a._node.load()),a},reset:function(){var a=this,u=a._parent;return a._muted=u._muted,a._loop=u._loop,a._volume=u._volume,a._rate=u._rate,a._seek=0,a._rateSeek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,a},_errorListener:function(){var a=this;a._parent._emit("loaderror",a._id,a._node.error?a._node.error.code:0),a._node.removeEventListener("error",a._errorFn,!1)},_loadListener:function(){var a=this,u=a._parent;u._duration=Math.ceil(a._node.duration*10)/10,Object.keys(u._sprite).length===0&&(u._sprite={__default:[0,u._duration*1e3]}),u._state!=="loaded"&&(u._state="loaded",u._emit("load"),u._loadQueue()),a._node.removeEventListener(t._canPlayEvent,a._loadFn,!1)},_endListener:function(){var a=this,u=a._parent;u._duration===1/0&&(u._duration=Math.ceil(a._node.duration*10)/10,u._sprite.__default[1]===1/0&&(u._sprite.__default[1]=u._duration*1e3),u._ended(a)),a._node.removeEventListener("ended",a._endFn,!1)}};var o={},i=function(a){var u=a._src;if(o[u]){a._duration=o[u].duration,c(a);return}if(/^data:[^;]+;base64,/.test(u)){for(var d=atob(u.split(",")[1]),f=new Uint8Array(d.length),m=0;m<d.length;++m)f[m]=d.charCodeAt(m);l(f.buffer,a)}else{var h=new XMLHttpRequest;h.open(a._xhr.method,u,!0),h.withCredentials=a._xhr.withCredentials,h.responseType="arraybuffer",a._xhr.headers&&Object.keys(a._xhr.headers).forEach(function(g){h.setRequestHeader(g,a._xhr.headers[g])}),h.onload=function(){var g=(h.status+"")[0];if(g!=="0"&&g!=="2"&&g!=="3"){a._emit("loaderror",null,"Failed loading audio file with status: "+h.status+".");return}l(h.response,a)},h.onerror=function(){a._webAudio&&(a._html5=!0,a._webAudio=!1,a._sounds=[],delete o[u],a.load())},s(h)}},s=function(a){try{a.send()}catch{a.onerror()}},l=function(a,u){var d=function(){u._emit("loaderror",null,"Decoding audio data failed.")},f=function(m){m&&u._sounds.length>0?(o[u._src]=m,c(u,m)):d()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(a).then(f).catch(d):t.ctx.decodeAudioData(a,f,d)},c=function(a,u){u&&!a._duration&&(a._duration=u.duration),Object.keys(a._sprite).length===0&&(a._sprite={__default:[0,a._duration*1e3]}),a._state!=="loaded"&&(a._state="loaded",a._emit("load"),a._loadQueue())},p=function(){if(!!t.usingWebAudio){try{typeof AudioContext<"u"?t.ctx=new AudioContext:typeof webkitAudioContext<"u"?t.ctx=new webkitAudioContext:t.usingWebAudio=!1}catch{t.usingWebAudio=!1}t.ctx||(t.usingWebAudio=!1);var a=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),u=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),d=u?parseInt(u[1],10):null;if(a&&d&&d<9){var f=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!f&&(t.usingWebAudio=!1)}t.usingWebAudio&&(t.masterGain=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),t.masterGain.gain.setValueAtTime(t._muted?0:t._volume,t.ctx.currentTime),t.masterGain.connect(t.ctx.destination)),t._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:t,Howl:e}}),typeof Ya<"u"&&(Ya.Howler=t,Ya.Howl=e),typeof global<"u"?(global.HowlerGlobal=n,global.Howler=t,global.Howl=e,global.Sound=r):typeof window<"u"&&(window.HowlerGlobal=n,window.Howler=t,window.Howl=e,window.Sound=r)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var r=e._howls.length-1;r>=0;r--)e._howls[r].stereo(t);return e},HowlerGlobal.prototype.pos=function(t,e,r){var o=this;if(!o.ctx||!o.ctx.listener)return o;if(e=typeof e!="number"?o._pos[1]:e,r=typeof r!="number"?o._pos[2]:r,typeof t=="number")o._pos=[t,e,r],typeof o.ctx.listener.positionX<"u"?(o.ctx.listener.positionX.setTargetAtTime(o._pos[0],Howler.ctx.currentTime,.1),o.ctx.listener.positionY.setTargetAtTime(o._pos[1],Howler.ctx.currentTime,.1),o.ctx.listener.positionZ.setTargetAtTime(o._pos[2],Howler.ctx.currentTime,.1)):o.ctx.listener.setPosition(o._pos[0],o._pos[1],o._pos[2]);else return o._pos;return o},HowlerGlobal.prototype.orientation=function(t,e,r,o,i,s){var l=this;if(!l.ctx||!l.ctx.listener)return l;var c=l._orientation;if(e=typeof e!="number"?c[1]:e,r=typeof r!="number"?c[2]:r,o=typeof o!="number"?c[3]:o,i=typeof i!="number"?c[4]:i,s=typeof s!="number"?c[5]:s,typeof t=="number")l._orientation=[t,e,r,o,i,s],typeof l.ctx.listener.forwardX<"u"?(l.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),l.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),l.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),l.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),l.ctx.listener.upY.setTargetAtTime(i,Howler.ctx.currentTime,.1),l.ctx.listener.upZ.setTargetAtTime(s,Howler.ctx.currentTime,.1)):l.ctx.listener.setOrientation(t,e,r,o,i,s);else return c;return l},Howl.prototype.init=function(t){return function(e){var r=this;return r._orientation=e.orientation||[1,0,0],r._stereo=e.stereo||null,r._pos=e.pos||null,r._pannerAttr={coneInnerAngle:typeof e.coneInnerAngle<"u"?e.coneInnerAngle:360,coneOuterAngle:typeof e.coneOuterAngle<"u"?e.coneOuterAngle:360,coneOuterGain:typeof e.coneOuterGain<"u"?e.coneOuterGain:0,distanceModel:typeof e.distanceModel<"u"?e.distanceModel:"inverse",maxDistance:typeof e.maxDistance<"u"?e.maxDistance:1e4,panningModel:typeof e.panningModel<"u"?e.panningModel:"HRTF",refDistance:typeof e.refDistance<"u"?e.refDistance:1,rolloffFactor:typeof e.rolloffFactor<"u"?e.rolloffFactor:1},r._onstereo=e.onstereo?[{fn:e.onstereo}]:[],r._onpos=e.onpos?[{fn:e.onpos}]:[],r._onorientation=e.onorientation?[{fn:e.onorientation}]:[],t.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(t,e){var r=this;if(!r._webAudio)return r;if(r._state!=="loaded")return r._queue.push({event:"stereo",action:function(){r.stereo(t,e)}}),r;var o=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof e>"u")if(typeof t=="number")r._stereo=t,r._pos=[t,0,0];else return r._stereo;for(var i=r._getSoundIds(e),s=0;s<i.length;s++){var l=r._soundById(i[s]);if(l)if(typeof t=="number")l._stereo=t,l._pos=[t,0,0],l._node&&(l._pannerAttr.panningModel="equalpower",(!l._panner||!l._panner.pan)&&n(l,o),o==="spatial"?typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):l._panner.setPosition(t,0,0):l._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),r._emit("stereo",l._id);else return l._stereo}return r},Howl.prototype.pos=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"pos",action:function(){i.pos(t,e,r,o)}}),i;if(e=typeof e!="number"?0:e,r=typeof r!="number"?-.5:r,typeof o>"u")if(typeof t=="number")i._pos=[t,e,r];else return i._pos;for(var s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._pos=[t,e,r],c._node&&((!c._panner||c._panner.pan)&&n(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setPosition(t,e,r)),i._emit("pos",c._id);else return c._pos}return i},Howl.prototype.orientation=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"orientation",action:function(){i.orientation(t,e,r,o)}}),i;if(e=typeof e!="number"?i._orientation[1]:e,r=typeof r!="number"?i._orientation[2]:r,typeof o>"u")if(typeof t=="number")i._orientation=[t,e,r];else return i._orientation;for(var s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._orientation=[t,e,r],c._node&&(c._panner||(c._pos||(c._pos=i._pos||[0,0,-.5]),n(c,"spatial")),typeof c._panner.orientationX<"u"?(c._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setOrientation(t,e,r)),i._emit("orientation",c._id);else return c._orientation}return i},Howl.prototype.pannerAttr=function(){var t=this,e=arguments,r,o,i;if(!t._webAudio)return t;if(e.length===0)return t._pannerAttr;if(e.length===1)if(typeof e[0]=="object")r=e[0],typeof o>"u"&&(r.pannerAttr||(r.pannerAttr={coneInnerAngle:r.coneInnerAngle,coneOuterAngle:r.coneOuterAngle,coneOuterGain:r.coneOuterGain,distanceModel:r.distanceModel,maxDistance:r.maxDistance,refDistance:r.refDistance,rolloffFactor:r.rolloffFactor,panningModel:r.panningModel}),t._pannerAttr={coneInnerAngle:typeof r.pannerAttr.coneInnerAngle<"u"?r.pannerAttr.coneInnerAngle:t._coneInnerAngle,coneOuterAngle:typeof r.pannerAttr.coneOuterAngle<"u"?r.pannerAttr.coneOuterAngle:t._coneOuterAngle,coneOuterGain:typeof r.pannerAttr.coneOuterGain<"u"?r.pannerAttr.coneOuterGain:t._coneOuterGain,distanceModel:typeof r.pannerAttr.distanceModel<"u"?r.pannerAttr.distanceModel:t._distanceModel,maxDistance:typeof r.pannerAttr.maxDistance<"u"?r.pannerAttr.maxDistance:t._maxDistance,refDistance:typeof r.pannerAttr.refDistance<"u"?r.pannerAttr.refDistance:t._refDistance,rolloffFactor:typeof r.pannerAttr.rolloffFactor<"u"?r.pannerAttr.rolloffFactor:t._rolloffFactor,panningModel:typeof r.pannerAttr.panningModel<"u"?r.pannerAttr.panningModel:t._panningModel});else return i=t._soundById(parseInt(e[0],10)),i?i._pannerAttr:t._pannerAttr;else e.length===2&&(r=e[0],o=parseInt(e[1],10));for(var s=t._getSoundIds(o),l=0;l<s.length;l++)if(i=t._soundById(s[l]),i){var c=i._pannerAttr;c={coneInnerAngle:typeof r.coneInnerAngle<"u"?r.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:typeof r.coneOuterAngle<"u"?r.coneOuterAngle:c.coneOuterAngle,coneOuterGain:typeof r.coneOuterGain<"u"?r.coneOuterGain:c.coneOuterGain,distanceModel:typeof r.distanceModel<"u"?r.distanceModel:c.distanceModel,maxDistance:typeof r.maxDistance<"u"?r.maxDistance:c.maxDistance,refDistance:typeof r.refDistance<"u"?r.refDistance:c.refDistance,rolloffFactor:typeof r.rolloffFactor<"u"?r.rolloffFactor:c.rolloffFactor,panningModel:typeof r.panningModel<"u"?r.panningModel:c.panningModel};var p=i._panner;p?(p.coneInnerAngle=c.coneInnerAngle,p.coneOuterAngle=c.coneOuterAngle,p.coneOuterGain=c.coneOuterGain,p.distanceModel=c.distanceModel,p.maxDistance=c.maxDistance,p.refDistance=c.refDistance,p.rolloffFactor=c.rolloffFactor,p.panningModel=c.panningModel):(i._pos||(i._pos=t._pos||[0,0,-.5]),n(i,"spatial"))}return t},Sound.prototype.init=function(t){return function(){var e=this,r=e._parent;e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,t.call(this),e._stereo?r.stereo(e._stereo):e._pos&&r.pos(e._pos[0],e._pos[1],e._pos[2],e._id)}}(Sound.prototype.init),Sound.prototype.reset=function(t){return function(){var e=this,r=e._parent;return e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,e._stereo?r.stereo(e._stereo):e._pos?r.pos(e._pos[0],e._pos[1],e._pos[2],e._id):e._panner&&(e._panner.disconnect(0),e._panner=void 0,r._refreshBuffer(e)),t.call(this)}}(Sound.prototype.reset);var n=function(t,e){e=e||"spatial",e==="spatial"?(t._panner=Howler.ctx.createPanner(),t._panner.coneInnerAngle=t._pannerAttr.coneInnerAngle,t._panner.coneOuterAngle=t._pannerAttr.coneOuterAngle,t._panner.coneOuterGain=t._pannerAttr.coneOuterGain,t._panner.distanceModel=t._pannerAttr.distanceModel,t._panner.maxDistance=t._pannerAttr.maxDistance,t._panner.refDistance=t._pannerAttr.refDistance,t._panner.rolloffFactor=t._pannerAttr.rolloffFactor,t._panner.panningModel=t._pannerAttr.panningModel,typeof t._panner.positionX<"u"?(t._panner.positionX.setValueAtTime(t._pos[0],Howler.ctx.currentTime),t._panner.positionY.setValueAtTime(t._pos[1],Howler.ctx.currentTime),t._panner.positionZ.setValueAtTime(t._pos[2],Howler.ctx.currentTime)):t._panner.setPosition(t._pos[0],t._pos[1],t._pos[2]),typeof t._panner.orientationX<"u"?(t._panner.orientationX.setValueAtTime(t._orientation[0],Howler.ctx.currentTime),t._panner.orientationY.setValueAtTime(t._orientation[1],Howler.ctx.currentTime),t._panner.orientationZ.setValueAtTime(t._orientation[2],Howler.ctx.currentTime)):t._panner.setOrientation(t._orientation[0],t._orientation[1],t._orientation[2])):(t._panner=Howler.ctx.createStereoPanner(),t._panner.pan.setValueAtTime(t._stereo,Howler.ctx.currentTime)),t._panner.connect(t._node),t._paused||t._parent.pause(t._id,!0).play(t._id,!0)}})()});var Ow={};Ec(Ow,{default:()=>Za});module.exports=Lh(Ow);var Ja=require("three");var Ge=class{modifyById(t,e){let r=this;if(r[t]===void 0)throw new Error("not expected");{let i={...r,[t]:e};return Object.setPrototypeOf(i,Ge.prototype),i}}add(t,e){return this.runOp({type:1,id:t,data:e})?.data??this}runOp(t){let e=this;if(t.type===1){let r=e[t.id],o;r===void 0?o={type:2,id:t.id}:o={type:1,id:t.id,data:r};let{id:i,data:s}=t,l={...e,[i]:s};return Object.setPrototypeOf(l,Ge.prototype),{data:l,actual:t,reverse:o}}else if(t.type===2){let{id:r}=t,o=e[r];if(o===void 0)return null;{let i={...e};return Object.setPrototypeOf(i,Ge.prototype),delete i[r],{data:i,actual:t,reverse:{type:1,id:r,data:o}}}}throw new Error("illegal arg")}};function Jn(n){if(n.deepFreeze!==void 0){n.deepFreeze(n);return}let t=Object.getOwnPropertyNames(n);for(let e of t){let r=n[e];r&&typeof r=="object"&&Jn(r)}return Object.freeze(n)}function Dc(n,t){let e=0;for(;e<n.length&&e<t.length;){if(n[e]<t[e])return-1;if(n[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==n.length?1:0}var Fo=class extends Error{};function ar(n,t,e){if(n===void 0?t===void 0?(n=0,t=10):n=t-10:t===void 0&&(t=n+10),n>t){let i=n;n=t,t=i}let r=[],o=1/(e+1);for(let i=0;i<e;i++){let s=n+(t-n)*(i+.75+Math.random()*.5)*o;r.push(s)}return r}function yo(n){return n instanceof Uint8Array||n instanceof Uint16Array||n instanceof Uint32Array||n instanceof Int8Array||n instanceof Int16Array||n instanceof Int32Array||n instanceof Float32Array||n instanceof Float64Array}function Gc(){return typeof process<"u"}function Rc(n,t){for(let e of n)t(e.id,e.data),Rc(e.children,t)}function Vc(n,t){t(n.id,n.data);for(let e of n.children)Vc(e,t)}var Fe=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Fe.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Jn(this[e]),e++}fillCaches0(e,r){this.objCaches.set(e.id,e),this.parentCaches.set(e.id,r);for(let o of e.children)this.fillCaches0(o,e.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let e of this)this.fillCaches0(e,null)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}isDescendantOf(e,r){for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}data(e){return this.get(e)?.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){return e===null?this:this.get(e)?.children}traverseFrom(e,r){if(e===null)this.traverse(r);else{let o=this.get(e);o&&Vc(o,r)}}traverse(e){Rc(this,e)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(e){return this.fillCaches(),this.parentCaches.get(e)}childrenArray(e){return e===null?this:this.get(e).children}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this.parent(e),s=this.childrenArray(i),l=s.findIndex(a=>a.id===e);if(l<0)throw new Error("not expected");let c=s[l];return s=[...s],s[l]={...c,data:r},this.modifyArrayBy(i,s)}}modifyArrayBy(e,r){let o=e,i=r;for(;o!==null;){let l=i,c=o;if(o=this.parent(o),o===void 0)throw new Error;i=this.childrenArray(o);let p=i.findIndex(a=>a.id===c);if(p<0)throw new Error;i=[...i],i[p]={...i[p],children:l}}Object.setPrototypeOf(i,Fe.prototype);let s=i;return s.fillCaches(),s}runOp(e){switch(e.type){case 7:return this.addOp(e);case 8:return this.deleteOp(e);case 9:return this.moveOp(e)}}checkDuplicatedIdRec({id:e,children:r}){if(this.get(e)!==void 0)return!0;for(let o of r)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:r,fi:o,id:i,data:s,children:l}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let c=r,p=this.childrenArray(c),a={fi:o,id:i,data:s,children:l};return p=[...p,a],p.sort((d,f)=>d.fi-f.fi),e.localIndex=p.indexOf(a),{data:this.modifyArrayBy(c,p),actual:e,reverse:{type:8,id:i}}}}deleteOp(e){let{id:r}=e;if(this.get(r)===null)return null;{let o=this.parent(r);if(o===void 0)return null;let i=this.childrenArray(o),s=i.findIndex(p=>p.id===r);e.localIndex=s,i=[...i];let l=i.splice(s,1)[0];return{data:this.modifyArrayBy(o,i),actual:e,reverse:{type:7,...l,parent:o}}}}moveOp(e){let{parent:r,fi:o,id:i}=e;if(r!==null&&this.get(r)===void 0)return this.deleteOp({type:8,id:i});if(r!==null){let f=r;for(;f!==null;){if(f===void 0)throw new Error;if(f===i)throw new Fo("cyclic tree");f=this.parent(f)}}let s=this.parent(i);if(s===void 0)return null;let l=s,c=this.childrenArray(s),p=c.findIndex(f=>f.id===i);c=[...c];let a=c.splice(p,1)[0],u=this.modifyArrayBy(s,c);s=r,c=u.childrenArray(s);let d=a.fi;return a={...a,fi:o},c=[...c,a],c.sort((f,m)=>f.fi-m.fi),e.localIndex=c.indexOf(a),u=u.modifyArrayBy(s,c),{data:u,actual:e,reverse:{type:9,parent:l,fi:d,id:i}}}previous(e,r){if(r===null){let i=this.childrenArray(e);return i.length===0?null:i[i.length-1].id}let o=null;for(let i of this.childrenArray(e)){if(i.id===r)return o;o=i.id}return null}traverseSortNext(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(s=>s.id===e)+1;if(i<o.length)return o[i].id;if(r)return this.traverseSortNext(r)}}sortNext(e){let r=this.childrenArray(e);return r.length>0?r[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let r=this.childrenArray(e);return r.length>0?this.traverseSortPrevious(r[r.length-1].id):e}sortPrevious(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(s=>s.id===e)-1;return i>=0?this.traverseSortPrevious(o[i].id):r}}getAllSorted(e){let r=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&r.push({...o,...i})}r.sort((o,i)=>Dc(o.sortKey,i.sortKey));for(let o of r)delete o.sortKey;return r}getWithSortKey(e){var r=e;let o=[],i=this.get(r),s=i;if(i!==void 0){for(;r;)o.splice(0,0,i.fi),r=this.parent(r),r!==null&&(i=this.get(r));return{...s,sortKey:o}}}insertBeforeHelper(e,r,o){return this.insertAfterHelper(e,this.previous(e,r),o)}insertAfterHelper(e,r,o){let i=this.childrenArray(e);if(r===null){if(i.length===0)return ar(0,o,o);{let s=i[0].fi;return ar(s-o,s,o)}}else{let s=this.get(r);if(s===void 0||this.parent(r)!==e)throw new Error("illegal args");let l=i.find(c=>c.fi>s.fi);if(l===void 0){let c=i[i.length-1].fi;return ar(c,c+o,o)}else return ar(s.fi,l.fi,o)}}};var zo;(t=>{function n(e,r){if(Array.isArray(e)){let o=r.props,i={},s=[...e],l=!1;if(o)for(let c of Object.keys(o)){let p=parseInt(c);if(isNaN(p))throw new Error("wrong index");i[c]=s[p],s[p]=o[c],l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}else{let o=r.props,i={},s={...e},l=!1;if(o)for(let c of Object.keys(o)){i[c]=s[c];let p=o[c];p===void 0?delete s[c]:s[c]=p,l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}}t.runOp=n})(zo||(zo={}));var ge=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,ge.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Jn(this[e]),e++}fillCaches0(e){this.objCaches.set(e.id,e)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let e of this)this.fillCaches0(e)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}data(e){return this.get(e)?.data}get(e){return this.fillCaches(),this.objCaches.get(e)}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this,s=i.findIndex(p=>p.id===e);if(s<0)throw new Error("not expected");let l=i[s];return i=[...i],i[s]={...l,data:r},this.modifyArrayBy(i)}}modifyArrayBy(e){Object.setPrototypeOf(e,ge.prototype);let r=e;return Gc()||r.fillCaches(),r}runOp(e){switch(e.type){case 4:return this.addOp(e);case 5:return this.deleteOp(e);case 6:return this.moveOp(e)}}addOp(e){let{fi:r,id:o,data:i}=e,s=this,l={fi:r,id:o,data:i};return s=[...s,l],s.sort((p,a)=>p.fi-a.fi),e.localIndex=s.indexOf(l),{data:this.modifyArrayBy(s),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:r}=e,o=this,i=o.findIndex(c=>c.id===r);if(i===-1)return null;e.localIndex=i,o=[...o];let s=o.splice(i,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...s}}}moveOp(e){let{fi:r,id:o}=e,i=this;i=[...i];let s=i.findIndex(a=>a.id===o);if(s===-1)return null;let l=i[s].fi,c={...i[s],fi:r};return i[s]=c,i.sort((a,u)=>a.fi-u.fi),e.localIndex=i.indexOf(c),{data:this.modifyArrayBy(i),actual:e,reverse:{type:6,fi:l,id:o}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let r=null;for(let o of this){if(o.id===e)return r;r=o.id}return null}insertBeforeHelper(e,r){return this.insertAfterHelper(this.previous(e),r)}insertAfterHelper(e,r){let o=this;if(e===null){if(o.length===0)return ar(0,r,r);{let i=o[0].fi;return ar(i-r,i,r)}}else{let i=this.get(e);if(i===void 0)throw new Error("illegal args");let s=o.find(l=>l.fi>i.fi);if(s===void 0){let l=o[o.length-1].fi;return ar(l,l+r,r)}else return ar(i.fi,s.fi,r)}}};var Dt=class{unusedFun(t){}runOp(t){let e=[],r=this,o=0,i={};for(;o<t.path.length;){if(e.push(r),r=r===void 0?void 0:r[t.path[o]],r instanceof Fe||r instanceof ge)return null;o+=1}r={...r};for(let[c,p]of Object.entries(t.props)){let a=r[c];i[c]=a,p===void 0?delete r[c]:r[c]=p}for(;o>0;)Object.keys(r).length===0?(r={...e[o-1]},delete r[t.path[o-1]]):r={...e[o-1],[t.path[o-1]]:r},o-=1;let s=Object.setPrototypeOf(r,Dt.prototype),l={...t,props:i};return{data:s,actual:t,reverse:l}}},Fc;(e=>{function n(r,o){return ei(r,o)??r}e.apply=n;function t(r,o){if(o.type===0){let i=0,s=o.path,l=r;for(;i<s.length&&l!==void 0;){if(l=lr.zoomOnce(l,s[i]),l instanceof Fe||l instanceof ge)return;i+=1}if(l===void 0)return o;if(typeof l=="string"||typeof l=="number"||yo(l))return;if(l&&typeof l=="object"){let c={...o.props};for(let p of Object.keys(l))delete c[p];return{...o,props:c}}else return}else if(o.type===1||o.type===4||o.type===7){let i=lr.zoom(r,[...o.path,o.id]);if(i===void 0)return o;if(typeof i=="string"||typeof i=="number"||yo(i))return;if(i&&typeof i=="object"){let s={...o.data,...i};return{...o,data:s}}else return}else return o}e.filterOp=t})(Fc||(Fc={}));function zc(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=ei(o.data,t[i]);e=e||s!==void 0,s===void 0&&(s=o.data);let l=zc(o.children,t);return l!==void 0?e=!0:l=o.children,{...o,id:i,data:s,children:l}});if(e)return r}function Mh(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=ei(o.data,t[i]);return e=e||s!==void 0,s===void 0&&(s=o.data),{...o,id:i,data:s}});if(e)return Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}function ei(n,t){if(t!==void 0){if(t instanceof ge||t instanceof Fe||typeof t=="string"||typeof t=="number"||t===null)return t;if(n instanceof Fe){let e=zc(n,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else{if(n instanceof ge)return Mh(n,t);if(Array.isArray(n)){let e=!1,r=n.map((o,i)=>{let s=ei(o,t[i]);return e=e||s!==void 0,s===void 0&&(s=o),s});return e?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(n&&typeof n=="object"){let e={},r=!1;for(let[o,i]of Object.entries(n)){let s=ei(i,t[o]);r=r||s!==void 0,s===void 0&&(s=i),e[o]=s}return r?(Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e):void 0}else return t??n}}}function Uc(n,t){let e={cur:[],result:[],len:0};return n=ti(n,t,e)??n,[n,e.result]}function ds(n,t){return n===null?null:(n.cur[n.len]=t,n.len+=1,n)}function fs(n){n&&(n.len-=1)}function Eh(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function jc(n,t,e){let r=!1,o=n.map(i=>{let s=i.id,l=t[s];if(l!==void 0&&typeof l=="string"&&(r=!0,s=l,e!==null))throw new Error("not supported");let c=ti(i.data,t,ds(e,s));fs(e),r=r||c!==void 0,c===void 0&&(c=i.data);let p=jc(i.children,t,e);return p!==void 0?r=!0:p=i.children,{...i,id:s,data:c,children:p}});if(r)return o}function Bh(n,t,e){let r=!1,o=n.map(i=>{let s=i.id,l=t[s];if(l!==void 0&&typeof l=="string"&&(r=!0,s=l,e!==null))throw new Error("not supported");let c=ti(i.data,t,ds(e,s));return fs(e),r=r||c!==void 0,c===void 0&&(c=i.data),{...i,id:s,data:c}});if(r)return Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o}function ti(n,t,e){if(n instanceof Fe){let r=jc(n,t,e);return r!==void 0&&Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}else{if(n instanceof ge)return Bh(n,t,e);if(Array.isArray(n)){let r=!1,o=n.map((i,s)=>{let l=ti(i,t,ds(e,s));return fs(e),r=r||l!==void 0,l===void 0&&(l=i),l});return r?(Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o):void 0}else if(n&&typeof n=="object"){let r={},o=!1;for(let[i,s]of Object.entries(n))if(i!=="name"&&i!=="text"){let l=t[i];if(typeof l=="string"){if(e!==null)throw new Error("not supported");o=!0,i=l}let c=ti(s,t,ds(e,i));fs(e),o=o||c!==void 0,c===void 0&&(c=s),r[i]=c}else r[i]=s;return o?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(typeof n=="string"){let r=t[n];if(r!==void 0){if(n.length!==36)throw new Error("for now you should only call this method when the key is a uuid");Eh(e)}return r}else return}}var kc;(t=>{function n(e,r){let o=lr.zoom(r,e.path);if(typeof o=="object"){let i={};for(let s of Object.keys(e.props))i[s]=o[s];return{...e,props:i}}else return{...e,props:{}}}t.replaceProps=n})(kc||(kc={}));var Hr;(l=>{function n(c,p){return{...c,path:c.path.slice(p)}}l.drop=n;function t(c,p){return e(c,p)?.data??c}l.applySimple=t;function e(c,p){let a=p.path;for(var u=[];;){let d;if(c instanceof Dt&&p.type===0&&(d=c.runOp({...p,path:a.slice(u.length)}),d===null&&(d=void 0)),u.length===a.length&&(c instanceof Fe||c instanceof ge||c instanceof Ge?d=c.runOp(p):d=zo.runOp(c,p)),d!==void 0)if(d!==null){let h=d.data;for(let g=u.length-1;g>=0;g--){let v=a[g],x=u[g];if(x instanceof Fe){if(typeof v=="number")throw new Error("illegal arg");h=x.modifyById(v,h)}else if(x instanceof ge){if(typeof v=="number")throw new Error("illegal arg");h=x.modifyById(v,h)}else if(x instanceof Ge){if(typeof v=="number")throw new Error("illegal arg");h=x.modifyById(v,h)}else if(x instanceof Dt){let w={...x,[v]:h};h=Object.setPrototypeOf(w,Dt.prototype)}else if(typeof x=="object")if(Array.isArray(x)){if(typeof v=="string"&&(v=parseInt(v),isNaN(v)))throw new Error("Invalid path");let w=h;h=[...x],h[v]=w}else h={...x,[v]:h};else return null}return{data:h,actual:{...d.actual,path:a},reverse:{...d.reverse,path:a}}}else return null;let f=a[u.length],m;if(c instanceof Fe){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else if(c instanceof ge){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else c!==null&&(m=c[f]);if(m!==void 0)u.push(c),c=m;else return null}}l.apply=e;function r(c,p){for(let a=0;a<c.length&&a<p.length;a++)if(c[a]!==p[a])return!0;return!1}l.pathDisjoint=r;function o(c,p){if(c.length!==p.length)return!1;for(let a=0;a<c.length;a++)if(c[a]!==p[a])return!1;return!0}l.pathEq=o;function i(c,p){return r(c.path,p.path)}l.commutative=i;function s(c,p){return c.type===0&&p.type===0&&o(c.path,p.path)?Object.keys(c.props).every(a=>p.props[a]!==void 0):!1}l.subsumed=s})(Hr||(Hr={}));var Hc;(c=>{function n(){return[]}c.empty=n;function t(p,a){let u=[];for(let d of p){let[f,...m]=d.path;f===a&&u.push({...d,path:m})}return u}c.removePrefix=t;function e(p,a){return p.map(u=>({...u,path:[a,...u.path]}))}c.addPrefix=e;function r(p,a){return[...p,...a]}c.concat=r;function o(p,a){return[...p.filter(d=>!a.some(f=>Hr.subsumed(d,f))),...a]}c.compress=o;function i(p,a){return p.every(u=>a.every(d=>Hr.commutative(u,d)))}c.commutative=i;function s(p,a){for(let u of a){let d=l(p,u);d!==null&&(p=d.data)}return p}c.applyAll=s;function l(p,a){var u=p;let d=[],f=[];for(let m of a)try{if(m.type===3){let h=lr.zoom(u,[...m.path,m.id]),g=Hr.apply(u,{...m,type:2});if(g!==null){u=g.data;let[v,x]=Uc(u,{[m.id]:h});u=v;for(let w of x){let S=w[w.length-1];w.splice(w.length-1,1),d.push({type:0,path:w,props:{[S]:h}}),f.push({type:0,path:w,props:{[S]:m.id}})}f.push(g.reverse),d.push(g.actual)}}else{let h=Hr.apply(u,m);h!==null&&(d.push(h.actual),u=h.data,f.push(h.reverse))}}catch(h){if(h instanceof Fo)return null;throw h}return{data:u,actual:d,reverse:f.reverse()}}c.apply=l})(Hc||(Hc={}));var Wc=Symbol(),ri=Symbol(),xo=class{reportOp(t,e,r=[]){let o=this;if(e===null)return;o._current=e.data;let i=r;for(;!(o instanceof hs);){let s=o._path,l=o._current;if(s!==""&&i.splice(0,0,s),o=o._parent,o===null)return;o.update(s,l)}o.push(i,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[ri];r&&r(),delete this._children[t]}}}},ol=class extends xo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){if(Array.isArray(this._current)){if(typeof t=="string"&&(t=parseInt(t),isNaN(t)))throw new Error("Invalid path");this._current=[...this._current],this._current[t]=e}else this._current={...this._current,[t]:e}}runOp(t){this.reportOp(t,zo.runOp(this._current,t),t.path)}},nl=class extends xo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){this._current={...this._current,[t]:e},Object.setPrototypeOf(this._current,Ge.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},qc={get(n,t){if(t===ri)return()=>{n._parent=null};if(t===Wc)return n._current;let{_current:e,_children:r}=n;if(t==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e[t],s=gs(n,t,i);return s!==i?(r===void 0&&(r={},n._children=r),r[t]=s,s):i},has(n,t){return t in n._current},ownKeys(n){return Reflect.ownKeys(n._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(n){return Object.getPrototypeOf(n._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(n,t){let e=n._current,r=Reflect.getOwnPropertyDescriptor(e,t);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:e[t]}}},Dh={...qc,set(n,t,e){let r={type:0,props:{[t]:Tt(e)??e}};return n.deleteChildren(t),n.runOp(r),!0},deleteProperty(n,t){let e={type:0,props:{[t]:void 0}};return n.deleteChildren(t),n.runOp(e),!0}},Gh={...qc,set(n,t,e){return e===void 0?this.deleteProperty(n,t):(n.deleteChildren(t),n.runOp({type:1,id:t,data:e})),!0},deleteProperty(n,t){return n.runOp({type:2,id:t}),!0}},Uo=class extends xo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[ri]=()=>{this._parent=null}}unproxy(){return this._current}update(t,e){this._current=this._current.modifyById(t,e)}runOp(t){this.reportOp(t,this._current.runOp(t))}randomId(){return this._current.randomId()}isDescendantOf(t,e){return this._current.isDescendantOf(t,e)}childrenOf(t){return this._current.childrenOf(t)}traverse(t){return this._current.traverse(t)}get(t){return this._current.get(t)}parent(t){return this._current.parent(t)}traverse(t){this._current.traverse((e,r)=>{t(e,this.data(e))})}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,s=gs(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):i}add(t,e,r,o,i){this.runOp({type:7,parent:t,fi:e,id:r,data:o,children:i})}move(t,e,r){this.runOp({type:9,parent:t,fi:e,id:r})}insertAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}insertBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}moveAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}moveBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}delete(t){this.deleteChildren(t),this.runOp({type:8,id:t})}sortNext(t){return this._current.sortNext(t)}sortPrevious(t){return this._current.sortPrevious(t)}getAllSorted(t){return this._current.getAllSorted(t)}},ms=class extends xo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r,this[ri]=()=>{this._parent=null}}feedOp(t){let{path:e,...r}=t;this.reportOp(r,Hr.apply(this._current,t),e)}},jo=class extends xo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[ri]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id,i=this._current[r].fi;t(this.data(this._current[r].id),o,i)}}find(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id;if(t(this.data(o),o))return this.get(o)}}update(t,e){this._current=this._current.modifyById(t,e)}randomId(){return this._current.randomId()}get(t){return{...this._current.get(t),data:this.data(t)}}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,s=gs(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):i}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,e,r){this.runOp({type:4,fi:t,id:e,data:r})}move(t,e){this.runOp({type:6,fi:t,id:e})}insertAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}insertBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}moveAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}moveBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function rl(n,t,e){if(n.length>0){let r=n[n.length-1];if(r.type===0&&t.type===0&&lr.equal(r.path,e)){Object.assign(r.props,t.props);return}}n.push({...t,path:e})}var hs=class{constructor(t){this.ts=[],this.actual=[],this.reverse=[],this._current=t}update(t,e){if(t!=="")throw new Error("");this._current=e}push(t,e,r,o){rl(this.ts,e,t),rl(this.actual,r,t),rl(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function gs(n,t,e){return e instanceof Fe?new Uo(n,t,e):e instanceof ge?new jo(n,t,e):e instanceof Dt?new ms(n,t,e):e instanceof Ge?new Proxy(new nl(n,t,e),Gh):e!==null&&typeof e=="object"?yo(e)?e:new Proxy(new ol(n,t,e),Dh):e}function il(n){let t=new hs(n);return[gs(t,"",n),t]}function sl(n,t){let[e,r]=il(n);return t(e),r.result()}function Tt(n){return n instanceof Uo||n instanceof jo||n instanceof ms?n._current:n!==null&&typeof n=="object"?n[Wc]:n}var lr;(o=>{function n(i,s){if(s.length===i.length)for(var l=0;l<i.length;){if(i[l]!==s[l])return!1;l+=1}else return!1;return!0}o.equal=n;function t(i,s,l){let c=r(l,i);if(c!==void 0&&typeof c=="object"&&c!==null){let p={...s};return Object.keys(c).forEach(a=>{delete p[a]}),p}else return s}o.removeOverridden=t;function e(i,s){if((i instanceof Fe||i instanceof Uo)&&typeof s=="string")return i.data(s);if((i instanceof ge||i instanceof jo)&&typeof s=="string")return i.data(s);if(typeof s=="number"&&Array.isArray(i))return i[s];if(typeof s=="string"&&typeof i=="object")return i[s]}o.zoomOnce=e;function r(i,s,l=0){for(;l<s.length&&i!==void 0;)i=e(i,s[l]),l+=1;return i}o.zoom=r})(lr||(lr={}));var ys=class{},oi=class extends ys{constructor(e){super();this.id=e}},ni=class extends ys{constructor(e){super();this.data=e}};var ll;try{ll=new TextDecoder}catch{}var oe,qr,N=0;var eu=[],cl=eu,ul=0,At={},Te,Wr,jt=0,cr=0,Gt,Br,vt=[],Oe,$c={useRecords:!1,mapsAsObjects:!0},ii=class{},dl=new ii;dl.name="MessagePack 0xC1";var ko=!1,ur=class{constructor(t){t&&(t.useRecords===!1&&t.mapsAsObjects===void 0&&(t.mapsAsObjects=!0),t.structures?t.structures.sharedLength=t.structures.length:t.getStructures&&((t.structures=[]).uninitialized=!0,t.structures.sharedLength=0)),Object.assign(this,t)}unpack(t,e){if(oe)return iu(()=>(vs(),this?this.unpack(t,e):ur.prototype.unpack.call($c,t,e)));qr=e>-1?e:t.length,N=0,ul=0,cr=0,Wr=null,cl=eu,Gt=null,oe=t;try{Oe=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw oe=null,t instanceof Uint8Array?r:new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof ur){if(At=this,this.structures)return Te=this.structures,xs();(!Te||Te.length>0)&&(Te=[])}else At=$c,(!Te||Te.length>0)&&(Te=[]);return xs()}unpackMultiple(t,e){let r,o=0;try{ko=!0;let i=t.length,s=this?this.unpack(t,i):ws.unpack(t,i);if(e){for(e(s);N<i;)if(o=N,e(xs())===!1)return}else{for(r=[s];N<i;)o=N,r.push(xs());return r}}catch(i){throw i.lastPosition=o,i.values=r,i}finally{ko=!1,vs()}}_mergeStructures(t,e){t=t||[];for(let r=0,o=t.length;r<o;r++){let i=t[r];i&&(i.isShared=!0,r>=32&&(i.highByte=r-32>>5))}t.sharedLength=t.length;for(let r in e||[])if(r>=0){let o=t[r],i=e[r];i&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[r]=o),t[r]=i)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function xs(){try{if(!At.trusted&&!ko){let t=Te.sharedLength||0;t<Te.length&&(Te.length=t)}let n=Ue();if(N==qr)Te.restoreStructures&&Xc(),Te=null,oe=null,Br&&(Br=null);else if(N>qr){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!ko)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw Te.restoreStructures&&Xc(),vs(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function Xc(){for(let n in Te.restoreStructures)Te[n]=Te.restoreStructures[n];Te.restoreStructures=null}function Ue(){let n=oe[N++];if(n<160)if(n<128){if(n<64)return n;{let t=Te[n&63]||At.getStructures&&tu()[n&63];return t?(t.read||(t.read=fl(t,n&63)),t.read()):n}}else if(n<144)if(n-=128,At.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[ou()]=Ue();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Ue(),Ue());return t}else{n-=144;let t=new Array(n);for(let e=0;e<n;e++)t[e]=Ue();return t}else if(n<192){let t=n-160;if(cr>=N)return Wr.slice(N-jt,(N+=t)-jt);if(cr==0&&qr<140){let e=t<16?ml(t):ru(t);if(e!=null)return e}return pl(t)}else{let t;switch(n){case 192:return null;case 193:return Gt?(t=Ue(),t>0?Gt[1].slice(Gt.position1,Gt.position1+=t):Gt[0].slice(Gt.position0,Gt.position0-=t)):dl;case 194:return!1;case 195:return!0;case 196:return al(oe[N++]);case 197:return t=Oe.getUint16(N),N+=2,al(t);case 198:return t=Oe.getUint32(N),N+=4,al(t);case 199:return vo(oe[N++]);case 200:return t=Oe.getUint16(N),N+=2,vo(t);case 201:return t=Oe.getUint32(N),N+=4,vo(t);case 202:if(t=Oe.getFloat32(N),At.useFloat32>2){let e=Ss[(oe[N]&127)<<1|oe[N+1]>>7];return N+=4,(e*t+(t>0?.5:-.5)>>0)/e}return N+=4,t;case 203:return t=Oe.getFloat64(N),N+=8,t;case 204:return oe[N++];case 205:return t=Oe.getUint16(N),N+=2,t;case 206:return t=Oe.getUint32(N),N+=4,t;case 207:return At.int64AsNumber?(t=Oe.getUint32(N)*4294967296,t+=Oe.getUint32(N+4)):t=Oe.getBigUint64(N),N+=8,t;case 208:return Oe.getInt8(N++);case 209:return t=Oe.getInt16(N),N+=2,t;case 210:return t=Oe.getInt32(N),N+=4,t;case 211:return At.int64AsNumber?(t=Oe.getInt32(N)*4294967296,t+=Oe.getUint32(N+4)):t=Oe.getBigInt64(N),N+=8,t;case 212:if(t=oe[N++],t==114)return Jc(oe[N++]&63);{let e=vt[t];if(e)return e.read?(N++,e.read(Ue())):e.noBuffer?(N++,e()):e(oe.subarray(N,++N));throw new Error("Unknown extension "+t)}case 213:return t=oe[N],t==114?(N++,Jc(oe[N++]&63,oe[N++])):vo(2);case 214:return vo(4);case 215:return vo(8);case 216:return vo(16);case 217:return t=oe[N++],cr>=N?Wr.slice(N-jt,(N+=t)-jt):Vh(t);case 218:return t=Oe.getUint16(N),N+=2,cr>=N?Wr.slice(N-jt,(N+=t)-jt):Fh(t);case 219:return t=Oe.getUint32(N),N+=4,cr>=N?Wr.slice(N-jt,(N+=t)-jt):zh(t);case 220:return t=Oe.getUint16(N),N+=2,Kc(t);case 221:return t=Oe.getUint32(N),N+=4,Kc(t);case 222:return t=Oe.getUint16(N),N+=2,Qc(t);case 223:return t=Oe.getUint32(N),N+=4,Qc(t);default:if(n>=224)return n-256;if(n===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+n)}}}var Rh=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function fl(n,t){function e(){if(e.count++>2){let o=n.read=new Function("r","return function(){return {"+n.map(i=>Rh.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(Ue);return n.highByte===0&&(n.read=Yc(t,n.read)),o()}let r={};for(let o=0,i=n.length;o<i;o++){let s=n[o];r[s]=Ue()}return r}return e.count=0,n.highByte===0?Yc(t,e):e}var Yc=(n,t)=>function(){let e=oe[N++];if(e===0)return t();let r=n<32?-(n+(e<<5)):n+(e<<5),o=Te[r]||tu()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=fl(o,n)),o.read()};function tu(){let n=iu(()=>(oe=null,At.getStructures()));return Te=At._mergeStructures(n,Te)}var pl=bs,Vh=bs,Fh=bs,zh=bs;function bs(n){let t;if(n<16&&(t=ml(n)))return t;if(n>64&&ll)return ll.decode(oe.subarray(N,N+=n));let e=N+n,r=[];for(t="";N<e;){let o=oe[N++];if((o&128)===0)r.push(o);else if((o&224)===192){let i=oe[N++]&63;r.push((o&31)<<6|i)}else if((o&240)===224){let i=oe[N++]&63,s=oe[N++]&63;r.push((o&31)<<12|i<<6|s)}else if((o&248)===240){let i=oe[N++]&63,s=oe[N++]&63,l=oe[N++]&63,c=(o&7)<<18|i<<12|s<<6|l;c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|c&1023),r.push(c)}else r.push(o);r.length>=4096&&(t+=it.apply(String,r),r.length=0)}return r.length>0&&(t+=it.apply(String,r)),t}function Kc(n){let t=new Array(n);for(let e=0;e<n;e++)t[e]=Ue();return t}function Qc(n){if(At.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[ou()]=Ue();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Ue(),Ue());return t}}var it=String.fromCharCode;function ru(n){let t=N,e=new Array(n);for(let r=0;r<n;r++){let o=oe[N++];if((o&128)>0){N=t;return}e[r]=o}return it.apply(String,e)}function ml(n){if(n<4)if(n<2){if(n===0)return"";{let t=oe[N++];if((t&128)>1){N-=1;return}return it(t)}}else{let t=oe[N++],e=oe[N++];if((t&128)>0||(e&128)>0){N-=2;return}if(n<3)return it(t,e);let r=oe[N++];if((r&128)>0){N-=3;return}return it(t,e,r)}else{let t=oe[N++],e=oe[N++],r=oe[N++],o=oe[N++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){N-=4;return}if(n<6){if(n===4)return it(t,e,r,o);{let i=oe[N++];if((i&128)>0){N-=5;return}return it(t,e,r,o,i)}}else if(n<8){let i=oe[N++],s=oe[N++];if((i&128)>0||(s&128)>0){N-=6;return}if(n<7)return it(t,e,r,o,i,s);let l=oe[N++];if((l&128)>0){N-=7;return}return it(t,e,r,o,i,s,l)}else{let i=oe[N++],s=oe[N++],l=oe[N++],c=oe[N++];if((i&128)>0||(s&128)>0||(l&128)>0||(c&128)>0){N-=8;return}if(n<10){if(n===8)return it(t,e,r,o,i,s,l,c);{let p=oe[N++];if((p&128)>0){N-=9;return}return it(t,e,r,o,i,s,l,c,p)}}else if(n<12){let p=oe[N++],a=oe[N++];if((p&128)>0||(a&128)>0){N-=10;return}if(n<11)return it(t,e,r,o,i,s,l,c,p,a);let u=oe[N++];if((u&128)>0){N-=11;return}return it(t,e,r,o,i,s,l,c,p,a,u)}else{let p=oe[N++],a=oe[N++],u=oe[N++],d=oe[N++];if((p&128)>0||(a&128)>0||(u&128)>0||(d&128)>0){N-=12;return}if(n<14){if(n===12)return it(t,e,r,o,i,s,l,c,p,a,u,d);{let f=oe[N++];if((f&128)>0){N-=13;return}return it(t,e,r,o,i,s,l,c,p,a,u,d,f)}}else{let f=oe[N++],m=oe[N++];if((f&128)>0||(m&128)>0){N-=14;return}if(n<15)return it(t,e,r,o,i,s,l,c,p,a,u,d,f,m);let h=oe[N++];if((h&128)>0){N-=15;return}return it(t,e,r,o,i,s,l,c,p,a,u,d,f,m,h)}}}}}function al(n){return At.copyBuffers?Uint8Array.prototype.slice.call(oe,N,N+=n):oe.subarray(N,N+=n)}function vo(n){let t=oe[N++];if(vt[t])return vt[t](oe.subarray(N,N+=n));throw new Error("Unknown extension type "+t)}var Zc=new Array(4096);function ou(){let n=oe[N++];if(n>=160&&n<192){if(n=n-160,cr>=N)return Wr.slice(N-jt,(N+=n)-jt);if(!(cr==0&&qr<180))return pl(n)}else return N--,Ue();let t=(n<<5^(n>1?Oe.getUint16(N):n>0?oe[N]:0))&4095,e=Zc[t],r=N,o=N+n-3,i,s=0;if(e&&e.bytes==n){for(;r<o;){if(i=Oe.getUint32(r),i!=e[s++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(i=oe[r++],i!=e[s++]){r=1879048192;break}if(r===o)return N=r,e.string;o-=3,r=N}for(e=[],Zc[t]=e,e.bytes=n;r<o;)i=Oe.getUint32(r),e.push(i),r+=4;for(o+=3;r<o;)i=oe[r++],e.push(i);let l=n<16?ml(n):ru(n);return l!=null?e.string=l:e.string=pl(n)}var Jc=(n,t)=>{var e=Ue();let r=n;t!==void 0&&(n=n<32?-((t<<5)+n):(t<<5)+n,e.highByte=t);let o=Te[n];return o&&o.isShared&&((Te.restoreStructures||(Te.restoreStructures=[]))[n]=o),Te[n]=e,e.read=fl(e,r),e.read()},nu=typeof self=="object"?self:global;vt[0]=()=>{};vt[0].noBuffer=!0;vt[101]=()=>{let n=Ue();return(nu[n[0]]||Error)(n[1])};vt[105]=n=>{let t=Oe.getUint32(N-4);Br||(Br=new Map);let e=oe[N],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};Br.set(t,o);let i=Ue();return o.used?Object.assign(r,i):(o.target=i,i)};vt[112]=n=>{let t=Oe.getUint32(N-4),e=Br.get(t);return e.used=!0,e.target};vt[115]=()=>new Set(Ue());var hl=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");vt[116]=n=>{let t=n[0],e=hl[t];if(!e)throw new Error("Could not find typed array for code "+t);return new nu[e](Uint8Array.prototype.slice.call(n,1).buffer)};vt[120]=()=>{let n=Ue();return new RegExp(n[0],n[1])};vt[98]=n=>{let t=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],e=N;N+=t-4,Gt=[Ue(),Ue()],Gt.position0=0,Gt.position1=0;let r=N;N=e;try{return Ue()}finally{N=r}};vt[255]=n=>n.length==4?new Date((n[0]*16777216+(n[1]<<16)+(n[2]<<8)+n[3])*1e3):n.length==8?new Date(((n[0]<<22)+(n[1]<<14)+(n[2]<<6)+(n[3]>>2))/1e6+((n[3]&3)*4294967296+n[4]*16777216+(n[5]<<16)+(n[6]<<8)+n[7])*1e3):n.length==12?new Date(((n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3])/1e6+((n[4]&128?-281474976710656:0)+n[6]*1099511627776+n[7]*4294967296+n[8]*16777216+(n[9]<<16)+(n[10]<<8)+n[11])*1e3):new Date("invalid");function iu(n){let t=qr,e=N,r=ul,o=jt,i=cr,s=Wr,l=cl,c=Br,p=Gt,a=new Uint8Array(oe.slice(0,qr)),u=Te,d=Te.slice(0,Te.length),f=At,m=ko,h=n();return qr=t,N=e,ul=r,jt=o,cr=i,Wr=s,cl=l,Br=c,Gt=p,oe=a,ko=m,Te=u,Te.splice(0,Te.length,...d),At=f,Oe=new DataView(oe.buffer,oe.byteOffset,oe.byteLength),h}function vs(){oe=null,Br=null,Te=null}function su(n){n.unpack?vt[n.type]=n.unpack:vt[n.type]=n}var Ss=new Array(147);for(let n=0;n<256;n++)Ss[n]=+("1e"+Math.floor(45.15-n*.30103));var ws=new ur({useRecords:!1}),Uh=ws.unpack,jh=ws.unpackMultiple,kh=ws.unpack,_s={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},Hh=new Float32Array(1),M1=new Uint8Array(Hh.buffer,0,4);var Ts;try{Ts=new TextEncoder}catch{}var As,yl,Ns=typeof Buffer<"u",gl=Ns?Buffer.allocUnsafeSlow:Uint8Array,uu=Ns?Buffer:Uint8Array,au=Ns?4294967296:2144337920,G,qe,C=0,pr,dr=null,Wh=/[\u0080-\uFFFF]/,si=Symbol("record-id"),bo=class extends ur{constructor(t){super(t),this.offset=0;let e,r,o,i,s,l,c=0,p=uu.prototype.utf8Write?function(y,P,A){return G.utf8Write(y,P,A)}:Ts&&Ts.encodeInto?function(y,P){return Ts.encodeInto(y,G.subarray(P)).written}:!1,a=this;t||(t={});let u=t&&t.sequential,d=t.structures||t.saveStructures,f=t.maxSharedStructures;if(f==null&&(f=d?32:0),f>8160)throw new Error("Maximum maxSharedStructure is 8160");let m=t.maxOwnStructures;m==null&&(m=d?32:64),u&&!t.saveStructures&&(this.structures=[]);let h=f>32||m+f>64,g=f+64,v=f+m+64;if(v>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],w=0,S=0;this.pack=this.encode=function(y,P){if(G||(G=new gl(8192),qe=new DataView(G.buffer,0,8192),C=0),pr=G.length-10,pr-C<2048?(G=new gl(G.length),qe=new DataView(G.buffer,0,G.length),pr=G.length-10,C=0):C=C+7&2147483640,r=C,l=a.structuredClone?new Map:null,a.bundleStrings?(dr=["",""],G[C++]=214,G[C++]=98,dr.position=C-r,C+=4):dr=null,o=a.structures,o){o.uninitialized&&(o=a._mergeStructures(a.getStructures()));let A=o.sharedLength||0;if(A>f)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+o.sharedLength);if(!o.transitions){o.transitions=Object.create(null);for(let O=0;O<A;O++){let T=o[O];if(!T)continue;let L,B=o.transitions;for(let j=0,te=T.length;j<te;j++){let ne=T[j];L=B[ne],L||(L=B[ne]=Object.create(null)),B=L}B[si]=O+64}c=A}u||(o.nextId=A+64)}i&&(i=!1),s=o||[];try{if(b(y),dr){qe.setUint32(dr.position+r,C-dr.position-r);let A=dr;dr=null,b(A[0]),b(A[1])}if(a.offset=C,l&&l.idsToInsert){C+=l.idsToInsert.length*6,C>pr&&_(C),a.offset=C;let A=$h(G.subarray(r,C),l.idsToInsert);return l=null,A}return P&du?(G.start=r,G.end=C,G):G.subarray(r,C)}finally{if(o){if(S<10&&S++,w>1e4)o.transitions=null,S=0,w=0,x.length>0&&(x=[]);else if(x.length>0&&!u){for(let A=0,O=x.length;A<O;A++)x[A][si]=0;x=[]}if(i&&a.saveStructures){let A=o.sharedLength||f;o.length>A&&(o=o.slice(0,A));let O=G.subarray(r,C);return a.saveStructures(o,c)===!1?(a._mergeStructures(a.getStructures()),a.pack(y)):(c=A,O)}}P&eg&&(C=r)}};let b=y=>{C>pr&&(G=_(C));var P=typeof y,A;if(P==="string"){let O=y.length;if(dr&&O>=8&&O<4096){let B=Wh.test(y);dr[B?0:1]+=y,G[C++]=193,b(B?-O:O);return}let T;O<32?T=1:O<256?T=2:O<65536?T=3:T=5;let L=O*3;if(C+L>pr&&(G=_(C+L)),O<64||!p){let B,j,te,ne=C+T;for(B=0;B<O;B++)j=y.charCodeAt(B),j<128?G[ne++]=j:j<2048?(G[ne++]=j>>6|192,G[ne++]=j&63|128):(j&64512)===55296&&((te=y.charCodeAt(B+1))&64512)===56320?(j=65536+((j&1023)<<10)+(te&1023),B++,G[ne++]=j>>18|240,G[ne++]=j>>12&63|128,G[ne++]=j>>6&63|128,G[ne++]=j&63|128):(G[ne++]=j>>12|224,G[ne++]=j>>6&63|128,G[ne++]=j&63|128);A=ne-C-T}else A=p(y,C+T,L);A<32?G[C++]=160|A:A<256?(T<2&&G.copyWithin(C+2,C+1,C+1+A),G[C++]=217,G[C++]=A):A<65536?(T<3&&G.copyWithin(C+3,C+2,C+2+A),G[C++]=218,G[C++]=A>>8,G[C++]=A&255):(T<5&&G.copyWithin(C+5,C+3,C+3+A),G[C++]=219,qe.setUint32(C,A),C+=4),C+=A}else if(P==="number")if(y>>>0===y)y<64?G[C++]=y:y<256?(G[C++]=204,G[C++]=y):y<65536?(G[C++]=205,G[C++]=y>>8,G[C++]=y&255):(G[C++]=206,qe.setUint32(C,y),C+=4);else if(y>>0===y)y>=-32?G[C++]=256+y:y>=-128?(G[C++]=208,G[C++]=y+256):y>=-32768?(G[C++]=209,qe.setInt16(C,y),C+=2):(G[C++]=210,qe.setInt32(C,y),C+=4);else{let O;if((O=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){G[C++]=202,qe.setFloat32(C,y);let T;if(O<4||(T=y*Ss[(G[C]&127)<<1|G[C+1]>>7])>>0===T){C+=4;return}else C--}G[C++]=203,qe.setFloat64(C,y),C+=8}else if(P==="object")if(!y)G[C++]=192;else{if(l){let T=l.get(y);if(T){if(!T.id){let L=l.idsToInsert||(l.idsToInsert=[]);T.id=L.push(T)}G[C++]=214,G[C++]=112,qe.setUint32(C,T.id),C+=4;return}else l.set(y,{offset:C-r})}let O=y.constructor;if(O===Object)I(y,!0);else if(O===Array){A=y.length,A<16?G[C++]=144|A:A<65536?(G[C++]=220,G[C++]=A>>8,G[C++]=A&255):(G[C++]=221,qe.setUint32(C,A),C+=4);for(let T=0;T<A;T++)b(y[T])}else if(O===Map){A=y.size,A<16?G[C++]=128|A:A<65536?(G[C++]=222,G[C++]=A>>8,G[C++]=A&255):(G[C++]=223,qe.setUint32(C,A),C+=4);for(let[T,L]of y)b(T),b(L)}else{for(let T=0,L=As.length;T<L;T++){let B=yl[T];if(y instanceof B){let j=As[T];if(j.write){j.type&&(G[C++]=212,G[C++]=j.type,G[C++]=0),b(j.write.call(this,y));return}let te=G,ne=qe,ae=C;G=null;let U;try{U=j.pack.call(this,y,W=>(G=te,te=null,C+=W,C>pr&&_(C),{target:G,targetView:qe,position:C-W}),b)}finally{te&&(G=te,qe=ne,C=ae,pr=G.length-10)}U&&(U.length+C>pr&&_(U.length+C),C=qh(U,G,C,j.type));return}}I(y,!y.hasOwnProperty)}}else if(P==="boolean")G[C++]=y?195:194;else if(P==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))G[C++]=211,qe.setBigInt64(C,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)G[C++]=207,qe.setBigUint64(C,y);else if(this.largeBigIntToFloat)G[C++]=203,qe.setFloat64(C,Number(y));else throw new RangeError(y+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");C+=8}else if(P==="undefined")this.encodeUndefinedAsNil?G[C++]=192:(G[C++]=212,G[C++]=0,G[C++]=0);else if(P==="function")b(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+P)},I=this.useRecords===!1?this.variableMapSize?y=>{let P=Object.keys(y),A=P.length;A<16?G[C++]=128|A:A<65536?(G[C++]=222,G[C++]=A>>8,G[C++]=A&255):(G[C++]=223,qe.setUint32(C,A),C+=4);let O;for(let T=0;T<A;T++)b(O=P[T]),b(y[O])}:(y,P)=>{G[C++]=222;let A=C-r;C+=2;let O=0;for(let T in y)(P||y.hasOwnProperty(T))&&(b(T),b(y[T]),O++);G[A+++r]=O>>8,G[A+r]=O&255}:y=>{let P=Object.keys(y),A,O=s.transitions||(s.transitions=Object.create(null)),T=0;for(let B=0,j=P.length;B<j;B++){let te=P[B];A=O[te],A||(A=O[te]=Object.create(null),T++),O=A}let L=O[si];if(L)L>=96&&h?(G[C++]=((L-=96)&31)+96,G[C++]=L>>5):G[C++]=L;else{L=s.nextId,L||(L=64),L<g&&this.shouldShareStructure&&!this.shouldShareStructure(P)?(L=s.nextOwnId,L<v||(L=g),s.nextOwnId=L+1):(L>=v&&(L=g),s.nextId=L+1);let B=P.highByte=L>=96&&h?L-96>>5:-1;O[si]=L,s[L-64]=P,L<g?(P.isShared=!0,s.sharedLength=L-63,i=!0,B>=0?(G[C++]=(L&31)+96,G[C++]=B):G[C++]=L):(B>=0?(G[C++]=213,G[C++]=114,G[C++]=(L&31)+96,G[C++]=B):(G[C++]=212,G[C++]=114,G[C++]=L),T&&(w+=S*T),x.length>=m&&(x.shift()[si]=0),x.push(O),b(P))}for(let B=0,j=P.length;B<j;B++)b(y[P[B]])},_=y=>{let P;if(y>16777216){if(y-r>au)throw new Error("Packed buffer would be larger than maximum buffer size");P=Math.min(au,Math.round(Math.max((y-r)*(y>67108864?1.25:2),4194304)/4096)*4096)}else P=(Math.max(y-r<<2,G.length-1)>>12)+1<<12;let A=new gl(P);return qe=new DataView(A.buffer,0,P),G.copy?G.copy(A,0,r,y):A.set(G.slice(r,y)),C-=r,r=0,pr=A.length-10,G=A}}useBuffer(t){G=t,qe=new DataView(G.buffer,G.byteOffset,G.byteLength),C=0}};yl=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,ii];As=[{pack(n,t,e){let r=n.getTime()/1e3;if((this.useTimestamp32||n.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:o,targetView:i,position:s}=t(6);o[s++]=214,o[s++]=255,i.setUint32(s,r)}else if(r>0&&r<17179869184){let{target:o,targetView:i,position:s}=t(10);o[s++]=215,o[s++]=255,i.setUint32(s,n.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),i.setUint32(s+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:i,position:s}=t(3);o[s++]=212,o[s++]=255,o[s++]=255}else{let{target:o,targetView:i,position:s}=t(15);o[s++]=199,o[s++]=12,o[s++]=255,i.setUint32(s,n.getMilliseconds()*1e6),i.setBigInt64(s+4,BigInt(Math.floor(r)))}}},{pack(n,t,e){let r=Array.from(n),{target:o,position:i}=t(this.structuredClone?3:0);this.structuredClone&&(o[i++]=212,o[i++]=115,o[i++]=0),e(r)}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=101,r[o++]=0),e([n.name,n.message])}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=120,r[o++]=0),e([n.source,n.flags])}},{pack(n,t){this.structuredClone?lu(n,16,t):cu(Ns?Buffer.from(n):new Uint8Array(n),t)}},{pack(n,t){let e=n.constructor;e!==uu&&this.structuredClone?lu(n,hl.indexOf(e.name),t):cu(n,t)}},{pack(n,t){let{target:e,position:r}=t(1);e[r]=193}}];function lu(n,t,e,r){let o=n.byteLength;if(o+1<256){var{target:i,position:s}=e(4+o);i[s++]=199,i[s++]=o+1}else if(o+1<65536){var{target:i,position:s}=e(5+o);i[s++]=200,i[s++]=o+1>>8,i[s++]=o+1&255}else{var{target:i,position:s,targetView:l}=e(7+o);i[s++]=201,l.setUint32(s,o+1),s+=4}i[s++]=116,i[s++]=t,i.set(new Uint8Array(n.buffer,n.byteOffset,n.byteLength),s)}function cu(n,t){let e=n.byteLength;var r,o;if(e<256){var{target:r,position:o}=t(e+2);r[o++]=196,r[o++]=e}else if(e<65536){var{target:r,position:o}=t(e+3);r[o++]=197,r[o++]=e>>8,r[o++]=e&255}else{var{target:r,position:o,targetView:i}=t(e+5);r[o++]=198,i.setUint32(o,e),o+=4}r.set(n,o)}function qh(n,t,e,r){let o=n.length;switch(o){case 1:t[e++]=212;break;case 2:t[e++]=213;break;case 4:t[e++]=214;break;case 8:t[e++]=215;break;case 16:t[e++]=216;break;default:o<256?(t[e++]=199,t[e++]=o):o<65536?(t[e++]=200,t[e++]=o>>8,t[e++]=o&255):(t[e++]=201,t[e++]=o>>24,t[e++]=o>>16&255,t[e++]=o>>8&255,t[e++]=o&255)}return t[e++]=r,t.set(n,e),e+=o,e}function $h(n,t){let e,r=t.length*6,o=n.length-r;for(t.sort((i,s)=>i.offset>s.offset?1:-1);e=t.pop();){let i=e.offset,s=e.id;n.copyWithin(i+r,i,o),r-=6;let l=i+r;n[l++]=214,n[l++]=105,n[l++]=s>>24,n[l++]=s>>16&255,n[l++]=s>>8&255,n[l++]=s&255,o=i}return n}function $r(n){if(n.Class){if(!n.pack&&!n.write)throw new Error("Extension has no pack or write function");if(n.pack&&!n.type)throw new Error("Extension has no type (numeric code to identify the extension)");yl.unshift(n.Class),As.unshift(n)}su(n)}var pu=new bo({useRecords:!1}),Xh=pu.pack,Yh=pu.pack;var{NEVER:Kh,ALWAYS:Qh,DECIMAL_ROUND:Zh,DECIMAL_FIT:Jh}=_s,du=512,eg=1024;var fu=new bo({structuredClone:!0});$r({Class:Ge.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Ge.prototype),n}});$r({Class:ge.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,ge.prototype),n}});$r({Class:Fe.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,Fe.prototype),n}});$r({Class:oi.prototype.constructor,type:4,write(n){return n.id},read(n){return new oi(n)}});$r({Class:ni.prototype.constructor,type:5,write(n){return n.data},read(n){return new ni(n)}});$r({Class:Dt.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Dt.prototype),n}});function tg(n){var t=0;if(n.length===0)return t;for(let e=0;e<n.length;e++){let r=n[e];t=(t<<5)-t+r,t=t&t}return t}function xl(n){if(yo(n))return n;if(Array.isArray(n))return n.map(xl);if(typeof n=="object"&&n!==null){let t={};for(let e of Object.keys(n).sort())t[e]=xl(n[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else return n}var Is;(r=>{function n(o){return fu.pack(o)}r.serialize=n;function t(o){return fu.unpack(o)}r.deserialize=t;function e(o){return tg(n(xl(o))).toString()}r.checksum=e})(Is||(Is={}));var mu;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i]}e.lerp=t})(mu||(mu={}));var Ho;(o=>{function n(i,s){return i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]}o.isEqual=n;function t(i,s){return[i[0]+s[0],i[1]+s[1],i[2]+s[2]]}o.add=t;function e(i,s){return[i[0]-s[0],i[1]-s[1],i[2]-s[2]]}o.sub=e;function r(i,s,l){return[i[0]+(s[0]-i[0])*l,i[1]+(s[1]-i[1])*l,i[2]+(s[2]-i[2])*l]}o.lerp=r})(Ho||(Ho={}));var hu;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]&&r[2]===o[2]&&r[3]===o[3]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i,r[2]+(o[2]-r[2])*i,r[3]+(o[3]-r[3])*i]}e.lerp=t})(hu||(hu={}));var Xr;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(i,s){for(let l=0;l<16;l++)if(i[l]!==s[l])return!1;return!0}o.isEqual=t;function e(i){return i??o.identity}o.simplify=e;function r(i,s){let l=s.slice(0);for(var c=0,p=s.length;c<p;c+=3){let a=i[3]*s[c]+i[7]*s[c+1]+i[11]*s[c+2]+i[15];l[c]=(i[0]*s[c]+i[4]*s[c+1]+i[8]*s[c+2]+i[12])/a,l[c+1]=(i[1]*s[c]+i[5]*s[c+1]+i[9]*s[c+2]+i[13])/a,l[c+2]=(i[2]*s[c]+i[6]*s[c+1]+i[10]*s[c+2]+i[14])/a}return l}o.applyMatrix4=r})(Xr||(Xr={}));var Nt;(c=>{c.white={r:1,g:1,b:1},c.red={r:1,g:0,b:0},c.black={r:0,g:0,b:0};function r(p){return{r:Math.round(p.r*255),g:Math.round(p.g*255),b:Math.round(p.b*255),a:1}}c.toRgb255a1=r;function o(p){return{r:p.r,g:p.g,b:p.b}}c.clone=o;function i(p){return p=Math.floor(p),{r:(p>>16&255)/255,g:(p>>8&255)/255,b:(p&255)/255}}c.fromHex=i;function s(p,a){return p.r===a.r&&p.g===a.g&&p.b===a.b}c.equals=s;function l(p,a,u){return{r:p.r+(a.r-p.r)*u,g:p.g+(a.g-p.g)*u,b:p.b+(a.b-p.b)*u}}c.lerp=l})(Nt||(Nt={}));var Yt;(l=>{l.white={...Nt.white,a:1},l.transparent={...Nt.white,a:0};function e(c){return{r:c[0],g:c[1],b:c[2],a:c[3]}}l.from0to1=e;function r(c,p){return{...Nt.fromHex(c),a:p}}l.fromHexAndA=r;function o(c){return{r:Math.round(c.r*255),g:Math.round(c.g*255),b:Math.round(c.b*255),a:c.a}}l.toRgb255a1=o;function i(c,p){return Nt.equals(c,p)&&c.a===p.a}l.equals=i;function s(c,p,a){return{r:c.r+(p.r-c.r)*a,g:c.g+(p.g-c.g)*a,b:c.b+(p.b-c.b)*a,a:c.a+(p.a-c.a)*a}}l.lerp=s})(Yt||(Yt={}));var Ps;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Ps||(Ps={}));var gu;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(gu||(gu={}));var yu;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(yu||(yu={}));var Wo;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(Wo||(Wo={}));var So;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:o.DefaultUp,isUpVectorFlipped:!1,targetOffset:o.DefaultTargetOffset};function r(i){return i.type==="PerspectiveCamera"?i.perspective.zoom:i.orthographic.zoom}o.getZoom=r})(So||(So={}));var Os;(t=>{function n(e,r=.1){return{type:"radial",hideBase:!1,count:3,radial:{radius:Math.max(e[0],e[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},linear:{scale:[1,1,1],rotation:[0,0,0],position:[e[0]+e[0]*r,0,0]},grid:{count:[2,2,2],size:e.map(o=>o*(1+r)),useCenter:!0}}}t.defaultData=n})(Os||(Os={}));var Cs;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Cs||(Cs={}));var Ls;(e=>{function n(r){return t(r)}e.defaultData=n;function t(r){if(r==="PointLight")return{type:r,color:Yt.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(r==="SpotLight")return{type:r,color:Yt.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(r==="DirectionalLight")return{type:r,color:Yt.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(Ls||(Ls={}));var vl;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(vl||(vl={}));var bl;(e=>{e.defaultData={flatShading:!1,wireframe:!1,side:0};function t(r,o){return r.flatShading===o.flatShading&&r.side===o.side&&r.wireframe===o.wireframe}e.equals=t})(bl||(bl={}));var Ms;(t=>t.defaultData={...bl.defaultData,...vl.defaultData,cloner:null,booleanExclude:null})(Ms||(Ms={}));var xu=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],vu=["wrapping","image"],fr;(r=>{function n(o,i){return o==="light"&&i?t(i):e(o)}r.defaultData=n;function t(o){switch(o){case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:5,type:"light",alpha:.6,visible:!0,mode:0};case"toon":return{category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"lambert":return{category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0};case"physical":return{category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0}}}function e(o){switch(o){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"texture",projection:0,texture:{image:"image_0",wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:Nt.fromHex(4737101)};case"depth":return{type:"depth",alpha:1,visible:!0,mode:0,gradientType:1,smooth:!1,isVector:!0,isWorldSpace:!1,origin:[0,0,0],direction:[1,0,0],colors:[[1,1,1,1],[0,0,0,1]],steps:[0,1],near:50,far:200};case"normal":return{type:"normal",alpha:1,visible:!0,mode:0,cnormal:[1,1,1]};case"gradient":return{type:"gradient",alpha:1,visible:!0,mode:0,gradientType:0,smooth:!1,colors:[[0,0,0,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,angle:0,offset:[0,0],morph:[0,0]};case"noise":return{type:"noise",alpha:1,visible:!0,mode:0,size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...Nt.fromHex(6710886),a:1},colorB:{...Nt.fromHex(6710886),a:1},colorC:{...Nt.fromHex(16777215),a:1},colorD:{...Nt.fromHex(16777215),a:1},distortion:[1,1],fA:[1.7,9.2],fB:[8.3,2.8]};case"fresnel":return{type:"fresnel",alpha:1,visible:!0,mode:0,color:Yt.fromHexAndA(16777215,1),bias:.1,scale:1,intensity:2,factor:1};case"rainbow":return{type:"rainbow",alpha:1,visible:!0,mode:0,filmThickness:30,movement:0,wavelengths:[0,0,0],noiseStrength:0,noiseScale:1,offset:[0,0,0]};case"toon":return{type:"toon",alpha:1,visible:!0,mode:0,positioning:2,colors:[[0,0,0,1],[.5,.5,.5,1],[.5,.5,.5,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,.475,.525,1,1,1,1,1,1,1],num:4,source:[0,1e3,0],isWorldSpace:!0,noiseStrength:0,noiseScale:1,shadowColor:Yt.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:Yt.fromHexAndA(0,1),contourColor:Yt.fromHexAndA(0,1),outlineWidth:2,contourWidth:5,outlineThreshold:.4,contourThreshold:0,outlineSmoothing:0,contourFrequency:10,contourDirection:[0,1,0],positionalLines:!1,compensation:!0};case"matcap":return{type:"matcap",alpha:1,visible:!0,mode:0,texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0]}};case"transmission":return{type:"transmission",alpha:1,visible:!0,mode:0,thickness:10,ior:1.5,roughness:1};case"displace":return{type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,visible:!0}}}})(fr||(fr={}));var Rt;(l=>{function n(c){return!c.layers.some(a=>a.data.type==="texture"&&a.data.projection!==0||a.data.type==="depth"&&!a.data.isWorldSpace||a.data.type==="noise"||a.data.type==="displace")&&!e(c)}l.isMergable=n;function t(c){let p="";return c.layers.forEach(a=>{Object.entries(a.data).forEach(([u,d])=>{p+=`${u}${d}`,Array.isArray(d)?d.forEach(f=>p+=`${f}`):typeof d=="object"?Object.values(d).forEach(f=>{typeof f=="number"?p+=`${f.toFixed(4)}`:p+=`${f}`}):p+=`${d}`})}),p}l.getHash=t;function e(c){let p=0;for(let a of c.layers)"alpha"in a.data&&a.data.type!=="light"&&a.data.type!=="fresnel"&&(p+=(1-p)*a.data.alpha);return p<1}l.isTransparent=e;function r(){return{layers:new ge}}l.defaultEmptyData=r;function o(c="layer1",p="layer2"){return i("phong",c,p)}l.defaultData=o;function i(c,p="layer1",a="layer2"){let u=new ge;return u.push({fi:0,data:fr.defaultData("light",c),id:p}),u.push({fi:1,data:fr.defaultData("color"),id:a}),{layers:u}}l.defaultTwoLayerData=i;function s(c,p="phong",a="layer1",u="layer2"){let d=fr.defaultData("texture");Object.assign(d.texture,{image:c});let f=new ge;return f.push({fi:0,data:d,id:a}),f.push({fi:1,data:fr.defaultData("light",p),id:u}),{layers:f}}l.defaultTwoLayerTextureData=s})(Rt||(Rt={}));var qo;(t=>{function n(){return{points:new ge,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=n})(qo||(qo={}));var Es;(t=>{function n(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=n})(Es||(Es={}));var Yr;(t=>{function n(e){if(e==="RectangleGeometry")return{width:320,height:320,type:e,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="VectorGeometry")return{width:1,height:1,type:e,subdivisions:12,shape:qo.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="BooleanGeometry")return{type:e,operation:2,width:0,height:0,depth:0,phongAngle:35};if(e==="TextGeometry")return{type:e,width:100,height:100,depth:0,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.2,letterSpacing:0,text:"",textTransform:1,font:"Roboto_regular",extrudeBevelSize:0,extrudeBevelSegments:1};throw new Error("not implemented")}t.defaultData=n})(Yr||(Yr={}));var rg=typeof global=="object"&&global&&global.Object===Object&&global,Bs=rg;var og=typeof self=="object"&&self&&self.Object===Object&&self,ng=Bs||og||Function("return this")(),Ye=ng;var ig=Ye.Symbol,bt=ig;var bu=Object.prototype,sg=bu.hasOwnProperty,ag=bu.toString,ai=bt?bt.toStringTag:void 0;function lg(n){var t=sg.call(n,ai),e=n[ai];try{n[ai]=void 0;var r=!0}catch{}var o=ag.call(n);return r&&(t?n[ai]=e:delete n[ai]),o}var Su=lg;var cg=Object.prototype,ug=cg.toString;function pg(n){return ug.call(n)}var wu=pg;var dg="[object Null]",fg="[object Undefined]",_u=bt?bt.toStringTag:void 0;function mg(n){return n==null?n===void 0?fg:dg:_u&&_u in Object(n)?Su(n):wu(n)}var Vt=mg;function hg(n){return n!=null&&typeof n=="object"}var ht=hg;var gg="[object Symbol]";function yg(n){return typeof n=="symbol"||ht(n)&&Vt(n)==gg}var $o=yg;function xg(n,t){for(var e=-1,r=n==null?0:n.length,o=Array(r);++e<r;)o[e]=t(n[e],e,n);return o}var Ds=xg;var vg=Array.isArray,je=vg;var bg=1/0,Tu=bt?bt.prototype:void 0,Au=Tu?Tu.toString:void 0;function Nu(n){if(typeof n=="string")return n;if(je(n))return Ds(n,Nu)+"";if($o(n))return Au?Au.call(n):"";var t=n+"";return t=="0"&&1/n==-bg?"-0":t}var Iu=Nu;function Sg(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}var Qe=Sg;function wg(n){return n}var Gs=wg;var _g="[object AsyncFunction]",Tg="[object Function]",Ag="[object GeneratorFunction]",Ng="[object Proxy]";function Ig(n){if(!Qe(n))return!1;var t=Vt(n);return t==Tg||t==Ag||t==_g||t==Ng}var Xo=Ig;var Pg=Ye["__core-js_shared__"],Rs=Pg;var Pu=function(){var n=/[^.]+$/.exec(Rs&&Rs.keys&&Rs.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function Og(n){return!!Pu&&Pu in n}var Ou=Og;var Cg=Function.prototype,Lg=Cg.toString;function Mg(n){if(n!=null){try{return Lg.call(n)}catch{}try{return n+""}catch{}}return""}var Dr=Mg;var Eg=/[\\^$.*+?()[\]{}|]/g,Bg=/^\[object .+?Constructor\]$/,Dg=Function.prototype,Gg=Object.prototype,Rg=Dg.toString,Vg=Gg.hasOwnProperty,Fg=RegExp("^"+Rg.call(Vg).replace(Eg,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function zg(n){if(!Qe(n)||Ou(n))return!1;var t=Xo(n)?Fg:Bg;return t.test(Dr(n))}var Cu=zg;function Ug(n,t){return n?.[t]}var Lu=Ug;function jg(n,t){var e=Lu(n,t);return Cu(e)?e:void 0}var It=jg;var kg=It(Ye,"WeakMap"),Vs=kg;var Mu=Object.create,Hg=function(){function n(){}return function(t){if(!Qe(t))return{};if(Mu)return Mu(t);n.prototype=t;var e=new n;return n.prototype=void 0,e}}(),Eu=Hg;function Wg(n,t,e){switch(e.length){case 0:return n.call(t);case 1:return n.call(t,e[0]);case 2:return n.call(t,e[0],e[1]);case 3:return n.call(t,e[0],e[1],e[2])}return n.apply(t,e)}var Bu=Wg;function qg(n,t){var e=-1,r=n.length;for(t||(t=Array(r));++e<r;)t[e]=n[e];return t}var Fs=qg;var $g=800,Xg=16,Yg=Date.now;function Kg(n){var t=0,e=0;return function(){var r=Yg(),o=Xg-(r-e);if(e=r,o>0){if(++t>=$g)return arguments[0]}else t=0;return n.apply(void 0,arguments)}}var Du=Kg;function Qg(n){return function(){return n}}var Gu=Qg;var Zg=function(){try{var n=It(Object,"defineProperty");return n({},"",{}),n}catch{}}(),Yo=Zg;var Jg=Yo?function(n,t){return Yo(n,"toString",{configurable:!0,enumerable:!1,value:Gu(t),writable:!0})}:Gs,Ru=Jg;var ey=Du(Ru),zs=ey;function ty(n,t){for(var e=-1,r=n==null?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}var Vu=ty;var ry=9007199254740991,oy=/^(?:0|[1-9]\d*)$/;function ny(n,t){var e=typeof n;return t=t??ry,!!t&&(e=="number"||e!="symbol"&&oy.test(n))&&n>-1&&n%1==0&&n<t}var Kr=ny;function iy(n,t,e){t=="__proto__"&&Yo?Yo(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}var Ko=iy;function sy(n,t){return n===t||n!==n&&t!==t}var Qr=sy;var ay=Object.prototype,ly=ay.hasOwnProperty;function cy(n,t,e){var r=n[t];(!(ly.call(n,t)&&Qr(r,e))||e===void 0&&!(t in n))&&Ko(n,t,e)}var Qo=cy;function uy(n,t,e,r){var o=!e;e||(e={});for(var i=-1,s=t.length;++i<s;){var l=t[i],c=r?r(e[l],n[l],l,e,n):void 0;c===void 0&&(c=n[l]),o?Ko(e,l,c):Qo(e,l,c)}return e}var kt=uy;var Fu=Math.max;function py(n,t,e){return t=Fu(t===void 0?n.length-1:t,0),function(){for(var r=arguments,o=-1,i=Fu(r.length-t,0),s=Array(i);++o<i;)s[o]=r[t+o];o=-1;for(var l=Array(t+1);++o<t;)l[o]=r[o];return l[t]=e(s),Bu(n,this,l)}}var Us=py;function dy(n,t){return zs(Us(n,t,Gs),n+"")}var zu=dy;var fy=9007199254740991;function my(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=fy}var Zo=my;function hy(n){return n!=null&&Zo(n.length)&&!Xo(n)}var Zr=hy;function gy(n,t,e){if(!Qe(e))return!1;var r=typeof t;return(r=="number"?Zr(e)&&Kr(t,e.length):r=="string"&&t in e)?Qr(e[t],n):!1}var Uu=gy;function yy(n){return zu(function(t,e){var r=-1,o=e.length,i=o>1?e[o-1]:void 0,s=o>2?e[2]:void 0;for(i=n.length>3&&typeof i=="function"?(o--,i):void 0,s&&Uu(e[0],e[1],s)&&(i=o<3?void 0:i,o=1),t=Object(t);++r<o;){var l=e[r];l&&n(t,l,r,i)}return t})}var ju=yy;var xy=Object.prototype;function vy(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||xy;return n===e}var Jo=vy;function by(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}var ku=by;var Sy="[object Arguments]";function wy(n){return ht(n)&&Vt(n)==Sy}var Sl=wy;var Hu=Object.prototype,_y=Hu.hasOwnProperty,Ty=Hu.propertyIsEnumerable,Ay=Sl(function(){return arguments}())?Sl:function(n){return ht(n)&&_y.call(n,"callee")&&!Ty.call(n,"callee")},Gr=Ay;function Ny(){return!1}var Wu=Ny;var Xu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,qu=Xu&&typeof module=="object"&&module&&!module.nodeType&&module,Iy=qu&&qu.exports===Xu,$u=Iy?Ye.Buffer:void 0,Py=$u?$u.isBuffer:void 0,Oy=Py||Wu,en=Oy;var Cy="[object Arguments]",Ly="[object Array]",My="[object Boolean]",Ey="[object Date]",By="[object Error]",Dy="[object Function]",Gy="[object Map]",Ry="[object Number]",Vy="[object Object]",Fy="[object RegExp]",zy="[object Set]",Uy="[object String]",jy="[object WeakMap]",ky="[object ArrayBuffer]",Hy="[object DataView]",Wy="[object Float32Array]",qy="[object Float64Array]",$y="[object Int8Array]",Xy="[object Int16Array]",Yy="[object Int32Array]",Ky="[object Uint8Array]",Qy="[object Uint8ClampedArray]",Zy="[object Uint16Array]",Jy="[object Uint32Array]",Re={};Re[Wy]=Re[qy]=Re[$y]=Re[Xy]=Re[Yy]=Re[Ky]=Re[Qy]=Re[Zy]=Re[Jy]=!0;Re[Cy]=Re[Ly]=Re[ky]=Re[My]=Re[Hy]=Re[Ey]=Re[By]=Re[Dy]=Re[Gy]=Re[Ry]=Re[Vy]=Re[Fy]=Re[zy]=Re[Uy]=Re[jy]=!1;function ex(n){return ht(n)&&Zo(n.length)&&!!Re[Vt(n)]}var Yu=ex;function tx(n){return function(t){return n(t)}}var tn=tx;var Ku=typeof exports=="object"&&exports&&!exports.nodeType&&exports,li=Ku&&typeof module=="object"&&module&&!module.nodeType&&module,rx=li&&li.exports===Ku,wl=rx&&Bs.process,ox=function(){try{var n=li&&li.require&&li.require("util").types;return n||wl&&wl.binding&&wl.binding("util")}catch{}}(),Rr=ox;var Qu=Rr&&Rr.isTypedArray,nx=Qu?tn(Qu):Yu,js=nx;var ix=Object.prototype,sx=ix.hasOwnProperty;function ax(n,t){var e=je(n),r=!e&&Gr(n),o=!e&&!r&&en(n),i=!e&&!r&&!o&&js(n),s=e||r||o||i,l=s?ku(n.length,String):[],c=l.length;for(var p in n)(t||sx.call(n,p))&&!(s&&(p=="length"||o&&(p=="offset"||p=="parent")||i&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||Kr(p,c)))&&l.push(p);return l}var ks=ax;function lx(n,t){return function(e){return n(t(e))}}var Hs=lx;var cx=Hs(Object.keys,Object),Zu=cx;var ux=Object.prototype,px=ux.hasOwnProperty;function dx(n){if(!Jo(n))return Zu(n);var t=[];for(var e in Object(n))px.call(n,e)&&e!="constructor"&&t.push(e);return t}var Ju=dx;function fx(n){return Zr(n)?ks(n):Ju(n)}var rn=fx;function mx(n){var t=[];if(n!=null)for(var e in Object(n))t.push(e);return t}var ep=mx;var hx=Object.prototype,gx=hx.hasOwnProperty;function yx(n){if(!Qe(n))return ep(n);var t=Jo(n),e=[];for(var r in n)r=="constructor"&&(t||!gx.call(n,r))||e.push(r);return e}var tp=yx;function xx(n){return Zr(n)?ks(n,!0):tp(n)}var mr=xx;var vx=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bx=/^\w*$/;function Sx(n,t){if(je(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||$o(n)?!0:bx.test(n)||!vx.test(n)||t!=null&&n in Object(t)}var rp=Sx;var wx=It(Object,"create"),Vr=wx;function _x(){this.__data__=Vr?Vr(null):{},this.size=0}var op=_x;function Tx(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}var np=Tx;var Ax="__lodash_hash_undefined__",Nx=Object.prototype,Ix=Nx.hasOwnProperty;function Px(n){var t=this.__data__;if(Vr){var e=t[n];return e===Ax?void 0:e}return Ix.call(t,n)?t[n]:void 0}var ip=Px;var Ox=Object.prototype,Cx=Ox.hasOwnProperty;function Lx(n){var t=this.__data__;return Vr?t[n]!==void 0:Cx.call(t,n)}var sp=Lx;var Mx="__lodash_hash_undefined__";function Ex(n,t){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=Vr&&t===void 0?Mx:t,this}var ap=Ex;function on(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}on.prototype.clear=op;on.prototype.delete=np;on.prototype.get=ip;on.prototype.has=sp;on.prototype.set=ap;var _l=on;function Bx(){this.__data__=[],this.size=0}var lp=Bx;function Dx(n,t){for(var e=n.length;e--;)if(Qr(n[e][0],t))return e;return-1}var Jr=Dx;var Gx=Array.prototype,Rx=Gx.splice;function Vx(n){var t=this.__data__,e=Jr(t,n);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():Rx.call(t,e,1),--this.size,!0}var cp=Vx;function Fx(n){var t=this.__data__,e=Jr(t,n);return e<0?void 0:t[e][1]}var up=Fx;function zx(n){return Jr(this.__data__,n)>-1}var pp=zx;function Ux(n,t){var e=this.__data__,r=Jr(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}var dp=Ux;function nn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}nn.prototype.clear=lp;nn.prototype.delete=cp;nn.prototype.get=up;nn.prototype.has=pp;nn.prototype.set=dp;var eo=nn;var jx=It(Ye,"Map"),to=jx;function kx(){this.size=0,this.__data__={hash:new _l,map:new(to||eo),string:new _l}}var fp=kx;function Hx(n){var t=typeof n;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?n!=="__proto__":n===null}var mp=Hx;function Wx(n,t){var e=n.__data__;return mp(t)?e[typeof t=="string"?"string":"hash"]:e.map}var ro=Wx;function qx(n){var t=ro(this,n).delete(n);return this.size-=t?1:0,t}var hp=qx;function $x(n){return ro(this,n).get(n)}var gp=$x;function Xx(n){return ro(this,n).has(n)}var yp=Xx;function Yx(n,t){var e=ro(this,n),r=e.size;return e.set(n,t),this.size+=e.size==r?0:1,this}var xp=Yx;function sn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}sn.prototype.clear=fp;sn.prototype.delete=hp;sn.prototype.get=gp;sn.prototype.has=yp;sn.prototype.set=xp;var ci=sn;var Kx="Expected a function";function Tl(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError(Kx);var e=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=e.cache;if(i.has(o))return i.get(o);var s=n.apply(this,r);return e.cache=i.set(o,s)||i,s};return e.cache=new(Tl.Cache||ci),e}Tl.Cache=ci;var vp=Tl;var Qx=500;function Zx(n){var t=vp(n,function(r){return e.size===Qx&&e.clear(),r}),e=t.cache;return t}var bp=Zx;var Jx=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,e0=/\\(\\)?/g,t0=bp(function(n){var t=[];return n.charCodeAt(0)===46&&t.push(""),n.replace(Jx,function(e,r,o,i){t.push(o?i.replace(e0,"$1"):r||e)}),t}),Sp=t0;function r0(n){return n==null?"":Iu(n)}var wp=r0;function o0(n,t){return je(n)?n:rp(n,t)?[n]:Sp(wp(n))}var Ht=o0;var n0=1/0;function i0(n){if(typeof n=="string"||$o(n))return n;var t=n+"";return t=="0"&&1/n==-n0?"-0":t}var oo=i0;function s0(n,t){t=Ht(t,n);for(var e=0,r=t.length;n!=null&&e<r;)n=n[oo(t[e++])];return e&&e==r?n:void 0}var Ws=s0;function a0(n,t){for(var e=-1,r=t.length,o=n.length;++e<r;)n[o+e]=t[e];return n}var an=a0;var _p=bt?bt.isConcatSpreadable:void 0;function l0(n){return je(n)||Gr(n)||!!(_p&&n&&n[_p])}var Tp=l0;function Ap(n,t,e,r,o){var i=-1,s=n.length;for(e||(e=Tp),o||(o=[]);++i<s;){var l=n[i];t>0&&e(l)?t>1?Ap(l,t-1,e,r,o):an(o,l):r||(o[o.length]=l)}return o}var Np=Ap;function c0(n){var t=n==null?0:n.length;return t?Np(n,1):[]}var Ip=c0;function u0(n){return zs(Us(n,void 0,Ip),n+"")}var qs=u0;var p0=Hs(Object.getPrototypeOf,Object),ln=p0;var d0="[object Object]",f0=Function.prototype,m0=Object.prototype,Pp=f0.toString,h0=m0.hasOwnProperty,g0=Pp.call(Object);function y0(n){if(!ht(n)||Vt(n)!=d0)return!1;var t=ln(n);if(t===null)return!0;var e=h0.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Pp.call(e)==g0}var $s=y0;function x0(n,t,e){var r=-1,o=n.length;t<0&&(t=-t>o?0:o+t),e=e>o?o:e,e<0&&(e+=o),o=t>e?0:e-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=n[r+t];return i}var Op=x0;function v0(){this.__data__=new eo,this.size=0}var Cp=v0;function b0(n){var t=this.__data__,e=t.delete(n);return this.size=t.size,e}var Lp=b0;function S0(n){return this.__data__.get(n)}var Mp=S0;function w0(n){return this.__data__.has(n)}var Ep=w0;var _0=200;function T0(n,t){var e=this.__data__;if(e instanceof eo){var r=e.__data__;if(!to||r.length<_0-1)return r.push([n,t]),this.size=++e.size,this;e=this.__data__=new ci(r)}return e.set(n,t),this.size=e.size,this}var Bp=T0;function cn(n){var t=this.__data__=new eo(n);this.size=t.size}cn.prototype.clear=Cp;cn.prototype.delete=Lp;cn.prototype.get=Mp;cn.prototype.has=Ep;cn.prototype.set=Bp;var Xs=cn;function A0(n,t){return n&&kt(t,rn(t),n)}var Dp=A0;function N0(n,t){return n&&kt(t,mr(t),n)}var Gp=N0;var zp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Rp=zp&&typeof module=="object"&&module&&!module.nodeType&&module,I0=Rp&&Rp.exports===zp,Vp=I0?Ye.Buffer:void 0,Fp=Vp?Vp.allocUnsafe:void 0;function P0(n,t){if(t)return n.slice();var e=n.length,r=Fp?Fp(e):new n.constructor(e);return n.copy(r),r}var Ys=P0;function O0(n,t){for(var e=-1,r=n==null?0:n.length,o=0,i=[];++e<r;){var s=n[e];t(s,e,n)&&(i[o++]=s)}return i}var Up=O0;function C0(){return[]}var Ks=C0;var L0=Object.prototype,M0=L0.propertyIsEnumerable,jp=Object.getOwnPropertySymbols,E0=jp?function(n){return n==null?[]:(n=Object(n),Up(jp(n),function(t){return M0.call(n,t)}))}:Ks,un=E0;function B0(n,t){return kt(n,un(n),t)}var kp=B0;var D0=Object.getOwnPropertySymbols,G0=D0?function(n){for(var t=[];n;)an(t,un(n)),n=ln(n);return t}:Ks,Qs=G0;function R0(n,t){return kt(n,Qs(n),t)}var Hp=R0;function V0(n,t,e){var r=t(n);return je(n)?r:an(r,e(n))}var Zs=V0;function F0(n){return Zs(n,rn,un)}var Wp=F0;function z0(n){return Zs(n,mr,Qs)}var Js=z0;var U0=It(Ye,"DataView"),ea=U0;var j0=It(Ye,"Promise"),ta=j0;var k0=It(Ye,"Set"),ra=k0;var qp="[object Map]",H0="[object Object]",$p="[object Promise]",Xp="[object Set]",Yp="[object WeakMap]",Kp="[object DataView]",W0=Dr(ea),q0=Dr(to),$0=Dr(ta),X0=Dr(ra),Y0=Dr(Vs),wo=Vt;(ea&&wo(new ea(new ArrayBuffer(1)))!=Kp||to&&wo(new to)!=qp||ta&&wo(ta.resolve())!=$p||ra&&wo(new ra)!=Xp||Vs&&wo(new Vs)!=Yp)&&(wo=function(n){var t=Vt(n),e=t==H0?n.constructor:void 0,r=e?Dr(e):"";if(r)switch(r){case W0:return Kp;case q0:return qp;case $0:return $p;case X0:return Xp;case Y0:return Yp}return t});var pn=wo;var K0=Object.prototype,Q0=K0.hasOwnProperty;function Z0(n){var t=n.length,e=new n.constructor(t);return t&&typeof n[0]=="string"&&Q0.call(n,"index")&&(e.index=n.index,e.input=n.input),e}var Qp=Z0;var J0=Ye.Uint8Array,Al=J0;function ev(n){var t=new n.constructor(n.byteLength);return new Al(t).set(new Al(n)),t}var dn=ev;function tv(n,t){var e=t?dn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var Zp=tv;var rv=/\w*$/;function ov(n){var t=new n.constructor(n.source,rv.exec(n));return t.lastIndex=n.lastIndex,t}var Jp=ov;var ed=bt?bt.prototype:void 0,td=ed?ed.valueOf:void 0;function nv(n){return td?Object(td.call(n)):{}}var rd=nv;function iv(n,t){var e=t?dn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}var oa=iv;var sv="[object Boolean]",av="[object Date]",lv="[object Map]",cv="[object Number]",uv="[object RegExp]",pv="[object Set]",dv="[object String]",fv="[object Symbol]",mv="[object ArrayBuffer]",hv="[object DataView]",gv="[object Float32Array]",yv="[object Float64Array]",xv="[object Int8Array]",vv="[object Int16Array]",bv="[object Int32Array]",Sv="[object Uint8Array]",wv="[object Uint8ClampedArray]",_v="[object Uint16Array]",Tv="[object Uint32Array]";function Av(n,t,e){var r=n.constructor;switch(t){case mv:return dn(n);case sv:case av:return new r(+n);case hv:return Zp(n,e);case gv:case yv:case xv:case vv:case bv:case Sv:case wv:case _v:case Tv:return oa(n,e);case lv:return new r;case cv:case dv:return new r(n);case uv:return Jp(n);case pv:return new r;case fv:return rd(n)}}var od=Av;function Nv(n){return typeof n.constructor=="function"&&!Jo(n)?Eu(ln(n)):{}}var na=Nv;var Iv="[object Map]";function Pv(n){return ht(n)&&pn(n)==Iv}var nd=Pv;var id=Rr&&Rr.isMap,Ov=id?tn(id):nd,sd=Ov;var Cv="[object Set]";function Lv(n){return ht(n)&&pn(n)==Cv}var ad=Lv;var ld=Rr&&Rr.isSet,Mv=ld?tn(ld):ad,cd=Mv;var Ev=1,Bv=2,Dv=4,ud="[object Arguments]",Gv="[object Array]",Rv="[object Boolean]",Vv="[object Date]",Fv="[object Error]",pd="[object Function]",zv="[object GeneratorFunction]",Uv="[object Map]",jv="[object Number]",dd="[object Object]",kv="[object RegExp]",Hv="[object Set]",Wv="[object String]",qv="[object Symbol]",$v="[object WeakMap]",Xv="[object ArrayBuffer]",Yv="[object DataView]",Kv="[object Float32Array]",Qv="[object Float64Array]",Zv="[object Int8Array]",Jv="[object Int16Array]",eb="[object Int32Array]",tb="[object Uint8Array]",rb="[object Uint8ClampedArray]",ob="[object Uint16Array]",nb="[object Uint32Array]",Be={};Be[ud]=Be[Gv]=Be[Xv]=Be[Yv]=Be[Rv]=Be[Vv]=Be[Kv]=Be[Qv]=Be[Zv]=Be[Jv]=Be[eb]=Be[Uv]=Be[jv]=Be[dd]=Be[kv]=Be[Hv]=Be[Wv]=Be[qv]=Be[tb]=Be[rb]=Be[ob]=Be[nb]=!0;Be[Fv]=Be[pd]=Be[$v]=!1;function ia(n,t,e,r,o,i){var s,l=t&Ev,c=t&Bv,p=t&Dv;if(e&&(s=o?e(n,r,o,i):e(n)),s!==void 0)return s;if(!Qe(n))return n;var a=je(n);if(a){if(s=Qp(n),!l)return Fs(n,s)}else{var u=pn(n),d=u==pd||u==zv;if(en(n))return Ys(n,l);if(u==dd||u==ud||d&&!o){if(s=c||d?{}:na(n),!l)return c?Hp(n,Gp(s,n)):kp(n,Dp(s,n))}else{if(!Be[u])return o?n:{};s=od(n,u,l)}}i||(i=new Xs);var f=i.get(n);if(f)return f;i.set(n,s),cd(n)?n.forEach(function(g){s.add(ia(g,t,e,g,n,i))}):sd(n)&&n.forEach(function(g,v){s.set(v,ia(g,t,e,v,n,i))});var m=p?c?Js:Wp:c?mr:rn,h=a?void 0:m(n);return Vu(h||n,function(g,v){h&&(v=g,g=n[v]),Qo(s,v,ia(g,t,e,v,n,i))}),s}var sa=ia;var ib=1,sb=4;function ab(n){return sa(n,ib|sb)}var ui=ab;function lb(n,t){return n!=null&&t in Object(n)}var fd=lb;function cb(n,t,e){t=Ht(t,n);for(var r=-1,o=t.length,i=!1;++r<o;){var s=oo(t[r]);if(!(i=n!=null&&e(n,s)))break;n=n[s]}return i||++r!=o?i:(o=n==null?0:n.length,!!o&&Zo(o)&&Kr(s,o)&&(je(n)||Gr(n)))}var md=cb;function ub(n,t){return n!=null&&md(n,t,fd)}var hd=ub;function pb(n){return function(t,e,r){for(var o=-1,i=Object(t),s=r(t),l=s.length;l--;){var c=s[n?l:++o];if(e(i[c],c,i)===!1)break}return t}}var gd=pb;var db=gd(),yd=db;function fb(n,t,e){(e!==void 0&&!Qr(n[t],e)||e===void 0&&!(t in n))&&Ko(n,t,e)}var pi=fb;function mb(n){return ht(n)&&Zr(n)}var xd=mb;function hb(n,t){if(!(t==="constructor"&&typeof n[t]=="function")&&t!="__proto__")return n[t]}var di=hb;function gb(n){return kt(n,mr(n))}var vd=gb;function yb(n,t,e,r,o,i,s){var l=di(n,e),c=di(t,e),p=s.get(c);if(p){pi(n,e,p);return}var a=i?i(l,c,e+"",n,t,s):void 0,u=a===void 0;if(u){var d=je(c),f=!d&&en(c),m=!d&&!f&&js(c);a=c,d||f||m?je(l)?a=l:xd(l)?a=Fs(l):f?(u=!1,a=Ys(c,!0)):m?(u=!1,a=oa(c,!0)):a=[]:$s(c)||Gr(c)?(a=l,Gr(l)?a=vd(l):(!Qe(l)||Xo(l))&&(a=na(c))):u=!1}u&&(s.set(c,a),o(a,c,r,i,s),s.delete(c)),pi(n,e,a)}var bd=yb;function Sd(n,t,e,r,o){n!==t&&yd(t,function(i,s){if(o||(o=new Xs),Qe(i))bd(n,t,s,e,Sd,r,o);else{var l=r?r(di(n,s),i,s+"",n,t,o):void 0;l===void 0&&(l=i),pi(n,s,l)}},mr)}var wd=Sd;function xb(n){var t=n==null?0:n.length;return t?n[t-1]:void 0}var _d=xb;function vb(n,t){return t.length<2?n:Ws(n,Op(t,0,-1))}var Td=vb;var bb=ju(function(n,t,e){wd(n,t,e)}),_o=bb;function Sb(n,t){return t=Ht(t,n),n=Td(n,t),n==null||delete n[oo(_d(t))]}var Ad=Sb;function wb(n){return $s(n)?void 0:n}var Nd=wb;var _b=1,Tb=2,Ab=4,Nb=qs(function(n,t){var e={};if(n==null)return e;var r=!1;t=Ds(t,function(i){return i=Ht(i,n),r||(r=i.length>1),i}),kt(n,Js(n),e),r&&(e=sa(e,_b|Tb|Ab,Nd));for(var o=t.length;o--;)Ad(e,t[o]);return e}),fn=Nb;function Ib(n,t,e,r){if(!Qe(n))return n;t=Ht(t,n);for(var o=-1,i=t.length,s=i-1,l=n;l!=null&&++o<i;){var c=oo(t[o]),p=e;if(c==="__proto__"||c==="constructor"||c==="prototype")return n;if(o!=s){var a=l[c];p=r?r(a,c,l):void 0,p===void 0&&(p=Qe(a)?a:Kr(t[o+1])?[]:{})}Qo(l,c,p),l=l[c]}return n}var Id=Ib;function Pb(n,t,e){for(var r=-1,o=t.length,i={};++r<o;){var s=t[r],l=Ws(n,s);e(l,s)&&Id(i,Ht(s,n),l)}return i}var Pd=Pb;function Ob(n,t){return Pd(n,t,function(e,r){return hd(n,r)})}var Od=Ob;var Cb=qs(function(n,t){return n==null?{}:Od(n,t)}),mn=Cb;var fi;(o=>{o.identity={...Ps.identity,hiddenMatrix:Xr.identity};function t(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}o.fromObject=t;function e(i,s){return{position:s?.position||i.position,rotation:s?.rotation||i.rotation,scale:s?.scale||i.scale,hiddenMatrix:s?.hiddenMatrix||i.hiddenMatrix}}o.merge=e;function r(i,s){return{position:Ho.isEqual(i.position,s.position)?null:s.position,rotation:Ho.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:Ho.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:Xr.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}o.diff=r})(fi||(fi={}));var Nl;(t=>t.defaultData={fusedBody:!0,rigidBody:"positioned",density:1,pointMass:0,gravityScale:1,friction:.5,damping:0,restitution:.2,colliderType:"convex",enabledRotation:[!0,!0,!0],enabledTranslation:[!0,!0,!0]})(Nl||(Nl={}));var Kt;(t=>t.defaultData={states:new ge,events:new ge,visible:!0,raycastLock:!1,physics:null,...fi.identity})(Kt||(Kt={}));var Cd;(t=>t.defaultData={type:"Empty",...Kt.defaultData})(Cd||(Cd={}));var To;(t=>t.defaultData={type:"Mesh",...Kt.defaultData,...Ms.defaultData})(To||(To={}));var aa;(t=>t.defaultData={...Kt.defaultData,...fi.identity,...So.defaultData})(aa||(aa={}));var Ld;(t=>{function n(e){return{...Kt.defaultData,...Ls.defaultData(e)}}t.defaultData=n})(Ld||(Ld={}));var Md;(o=>(o.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:Xr.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Nl.defaultData,states:new ge,events:new ge,...So.defaultData},o.defaultMeshObject={name:"Rectangle",...Kt.defaultData,...To.defaultData,geometry:Yr.defaultData("RectangleGeometry"),material:Rt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultBooleanObject={name:"Boolean",...Kt.defaultData,...To.defaultData,geometry:Yr.defaultData("BooleanGeometry"),material:Rt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultTextObject={name:"Text",...Kt.defaultData,...To.defaultData,geometry:Yr.defaultData("TextGeometry"),material:Rt.defaultTwoLayerData("phong","layer1","layer2")}))(Md||(Md={}));var Ed;(e=>{function n(r,o){if(o===void 0)return r;let i={...r};return"material"in i&&"material"in o&&o.material&&(i.material=sl(i.material,s=>{if(typeof s!="string")for(let[l,c]of Object.entries(o.material.layers)){let p=s.layers.data(l);p&&_o(p,c)}}).data),i.materials&&o.materials&&(i.materials=sl(i.materials,s=>{for(let l=0;l<i.materials.length;l++){let c=o.materials[l];if(typeof c!="string")for(let[p,a]of Object.entries(c.layers)){let u=s[l]?.layers?.data(p);u&&_o(u,a)}}}).data),i}e.patchMaterialState=n;function t(r,o){if(o===void 0)return r;let i={...r};if(Object.assign(i,fi.merge(i,o)),Wo.is(r.type)){i.orthographic={...i.orthographic},i.perspective={...i.perspective};let s=o;s.orthographic?.zoom!==void 0&&(i.orthographic.zoom=s.orthographic.zoom),s.perspective?.zoom!==void 0&&(i.perspective.zoom=s.perspective.zoom),s.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=s.isUpVectorFlipped),s.targetOffset!==void 0&&(i.targetOffset=s.targetOffset)}else if(r.type==="Mesh")i.geometry={...i.geometry},Object.assign(i.geometry,o.geometry),i=n(i,o);else if(Cs.is(r.type)){let s=o;s.intensity!==void 0&&(i.intensity=s.intensity),s.color!==void 0&&(typeof s.color=="string"?i.color=s.color:i.color=Nt.clone(s.color))}return i}e.patch=t})(Ed||(Ed={}));var hn;(t=>t.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,isTouchZoom:!0,orbitTouches:2,panTouches:3})(hn||(hn={}));var la;(t=>t.defaultData={orbitControls:hn.defaultData,playCamera:null,withBackground:!0,preventScroll:!1,settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:1,stopMode:"manual",duration:5e3},web:{compress:!0,preset:1,preload:!0}},stopRaycast:!0,joystickSizeAndXYOffset:Array(12).fill(0).map((e,r)=>{let o=0,i=0;return r<5?i=-30:r<10&&(i=30),r===0||r===10||r===5?o=30:(r===4||r===11||r===9)&&(o=-30),[120,[o,i],"show"]}),gameControlObject:null})(la||(la={}));function Ao(n,t){return Object.setPrototypeOf(n,t),n}function Bd(n){return Array.isArray(n)?n:[n]}var ca;(e=>{function n(){let r={};return r["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Ao(r,Ge.prototype)}e.defaultColors=n;function t(){return{materials:new Ge,images:new Ge,colors:new Ge,audios:new Ge,fonts:new Ge,penumbraSize:[.5,.5,.5]}}e.emptyData=t})(ca||(ca={}));var mi=require("three");function Dd(n){n.layers.forEach(t=>{if(t.type==="depth"&&t.colorA!==void 0){let e=t.colorA,r=t.colorB,o=[[e.r,e.g,e.b,e.a],[r.r,r.g,r.b,r.a]],i=[0,1];for(let l=2;l<10;l++)o.push(o[1]),i.push(1);let s={...mn(Tt(t),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,t.near),far:Math.max(0,t.far),colors:o,steps:i,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(t,s)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={...Tt(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function ua(n,t){Object.values(n.shared.materials).forEach(e=>t(e))}function pa(n,t){n.scene.objects.traverse((e,r)=>{"materials"in r?r.materials.forEach(o=>{typeof o!="string"&&t(o)}):"material"in r&&typeof r.material!="string"&&t(r.material)})}function Lb(n){Object.assign(n.scene.publish,{orbitControls:{...hn.defaultData,...Tt(n.scene.publish.orbitControls)}})}function Mb(n){Object.assign(n.scene.publish.settings,{video:{...la.defaultData.settings.video,...Tt(n.scene.publish.settings.video)}})}function Eb(n){function t(e){if(e.layers){for(let r of Object.values(e.layers))if(r){for(let[o,i]of Object.entries(r))if((xu.includes(o)||typeof i=="boolean")&&delete r[o],o==="texture")for(let[s,l]of Object.entries(i))(vu.includes(s)||typeof l=="boolean")&&delete i[s]}}}n.scene.objects.traverse((e,r)=>{r.states.forEach(o=>{let i=o;i.material?t(i.material):i.materials&&i.materials.forEach(s=>{t(s)})})})}function Bb(n){n.scene.publish.withBackground=!0}function Db(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function Gb(n){n.scene.objects.traverse((t,e)=>{let r=e.cloner;r&&(r.radial.scale=r.radial.scale.map(o=>o+1),r.linear.scale=r.linear.scale.map(o=>o+1))})}function Rb(n){n.scene.objects.traverse((t,e)=>{let r=e.geometry;r&&(r.type==="DodecahedronGeometry"||r.type==="IcosahedronGeometry")&&(r.detail=Math.round(r.detail))})}function Vb(n){n.scene.objects.traverse((t,e)=>{let r=n.scene.objects.parent(t);e.type==="Mesh"&&(!r||n.scene.objects.data(r).geometry?.type!=="BooleanGeometry")&&(e.booleanExclude=null)})}function Gd(n){n.layers===void 0&&Object.assign(n,Rt.defaultTwoLayerData("lambert"))}function Il(n){!n.layers||n.layers.forEach(t=>{if(t.type==="depth"&&t.colors.length===10){let e=[...t.colors];e.push(t.colors[9]);let r=[...t.steps];r.push(t.steps[9]);let o={...Tt(t),colors:e,steps:r};Object.assign(t,o)}})}function Fb(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function Rd(n){n.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&Il(r)}):"material"in e&&typeof e.material!="string"&&Il(e.material)}),Object.values(n.shared.materials).forEach(t=>Il(t))}function zb(n){n.scene.environment.ambientLight.softShadows=!1,n.scene.environment.ambientLight.softShadowQuality="low",n.scene.objects.traverse((t,e)=>{(e.type==="DirectionalLight"||e.type==="SpotLight")&&(e.shadowResolution=1024,e.shadowRadius=1,e.depth=1e5)}),n.shared.penumbraSize=new Array(5).fill(.5)}function Ub(n){n.shared.audios=Ao({},Ge.prototype)}function jb(n){let t=n.shared.materials;Object.entries(t).forEach(([e,r])=>{if(!r.layers){let o={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"phong",alpha:.6,visible:!0,mode:0,specular:{r:.2,g:.2,b:.2},shininess:5},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(t,{[e]:o})}})}function kb(n){Object.entries(Tt(n.shared.images)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.images[r]}),Object.entries(Tt(n.shared.audios)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.audios[r]})}function Hb(n){n.scene.publish.settings.web.preload=!1}function Vd(n){n.layers&&n.layers.forEach(t=>{t.type==="depth"&&t.num!==void 0&&(t.colors=t.colors.slice(0,t.num),t.steps=t.steps.slice(0,t.num),delete t.num)})}function Wb(n){n.shared.fonts=Ao({},Ge.prototype)}function qb(n){return n.replace(".typeface","").replace(/optimer/gi,"open sans").replace("space_mono","space mono").replace(/alma_mono/gi,"varela round").replace(/droid_sans_mono/gi,"noto sans mono").replace(/droid_sans|gentilis|gnomon_(simple|foreground)|helvetiker/gi,"roboto").replace(/droid_serif/gi,"roboto slab").replace("_sans"," sans").replace("crimson_text","crimson text").replace("medium_medium","medium").replace("fatface_fatface","fatface").replace("100hairline","thin").replace("200thin","extralight").replace("300light","light").replace("500medium","medium").replace("600semi","semibold").replace("800heavy","extrabold").replace("900black","black").replace(/bodoni_(11|16|24|36|48|72|96)([^_])/gi,"bodoni_$1_$2").replace(/bodoni_(11|16|24|36|48|72|96)/gi,"bodoni moda").replace(/(thin|hairline)(_regular)?/gi,"100").replace(/(extra|ultra)light(_regular)?/gi,"200").replace(/light(_regular)?/gi,"300").replace(/_book|_normal|_roman/gi,"_regular").replace(/medium(_regular)?/gi,"500").replace(/(semi|demi)bold(_regular)?/gi,"600").replace(/(extra|ultra)bold(_regular)?/gi,"800").replace(/bold(_regular)?/gi,"700").replace(/(black|heavy|fatface)(_regular)?/gi,"900").replace(/([1-9]00)_italic/gi,"$1italic").replace(/regularitalic/gi,"italic").replace(/regularitalic/gi,"italic").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function $b(n){let t=[];n.scene.objects.traverse((e,r)=>{let o=r;if(o.type==="TextFrame"){let i=Rt.defaultTwoLayerData("phong"),s=typeof o.color=="string"?n.shared.colors[o.color]:o.color;i.layers[1].data.color={r:s.r,g:s.g,b:s.b},i.layers[1].data.alpha=o.alpha;let l=qb(o.font);n.shared.fonts[l]===void 0&&(n.shared.fonts[l]={name:l});let c={name:o.name,...Kt.defaultData,...To.defaultData,flatShading:!1,wireframe:!1,geometry:{...Yr.defaultData("TextGeometry"),width:o.width,height:o.height,font:l,depth:0,horizontalAlign:o.horizontalAlign,verticalAlign:o.verticalAlign,fontSize:o.fontSize*1.40625,lineHeight:o.lineHeight/1.40625,letterSpacing:o.letterSpacing-1,text:o.text,textTransform:o.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:i,states:Tt(o.states),events:Tt(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},p=Tt(n.scene.objects).parent(e);n.scene.objects.insertAfter(p??null,e,[{id:e+"new",data:c,children:[]}]),t.push(e)}}),t.forEach(e=>{n.scene.objects.delete(e)})}function Xb(n){let t={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};n.scene.objects.traverse((e,r)=>{r.events.forEach(o=>{if(!!t[Number(o.type)])if(Object.assign(o,{type:t[Number(o.type)]}),o.type==="Audio"&&"audioEvent"in o&&(Object.assign(o,{playAudio:o.audioEvent}),delete o.audioEvent),o.type==="GameControl")Object.assign(o,{gameActions:{idle:new ge,move:new ge,jump:new ge}});else{let i=new ge;Object.assign(o,{actions:i}),(o.type==="MouseDown"||o.type==="MouseUp"||o.type==="KeyDown"||o.type==="KeyUp")&&"url"in o&&i.push({fi:0,id:mi.MathUtils.generateUUID(),data:{type:"Link",url:o.url,delay:0}}),"targets"in o&&(o.targets.forEach((s,l,c)=>{let p={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},a={easing:s.easing,duration:s.duration};s.easing===6?Object.assign(a,mn(s,"mass","stiffness","damping","velocity")):s.easing===5&&Object.assign(a,{control1:{...s.control1},control2:{...s.control2}});let u={repeat:s.repeat?-1:0,delay:s.delay,delayDirection:s.delayDirection,direction:s.cycle&&s.rewind?"pingpong-rewind":s.cycle?"pingpong":"normal"},d={state:s.state,...u,...a},f={allowSlerp:!0,type:"Transition",object:s.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new ge({fi:0,id:mi.MathUtils.generateUUID(),data:p},{fi:1,id:mi.MathUtils.generateUUID(),data:d})};i.push({fi:c,id:l,data:f})}),delete o.targets)}})})}function Yb(n){n.scene.objects.traverse((t,e)=>{function r(o,i){let s=new ge,l=[];if(e.events.forEach((c,p,a)=>{if(c.type==="Audio"&&c.trigger===i){let u;l.push(p),c.interaction==="play"?u={...mn(c,"interaction","audio","delay","volume","loop"),triggerAfter:"after"in c?c.after:void 0,toggle:"after"in c?c.toggle:void 0,type:"Audio"}:(c.interaction==="pause"||c.interaction==="stop")&&(u={...mn(c,"interaction","delay","object","playAudio"),type:"Audio"}),u&&s.push({fi:a,id:p,data:u})}}),l.forEach(c=>e.events.delete(c)),s.length){let c=e.events.find(p=>p.type===o)?.data;c?"actions"in c&&c.actions.insertBefore(null,s):e.events.insertBefore(null,[{id:mi.MathUtils.generateUUID(),data:{type:o,actions:s}}])}}r("Start","start"),r("MouseDown","mouseDown"),r("MouseUp","mouseUp"),r("KeyDown","keyDown"),r("KeyUp","keyUp")})}function Fd(n){let t=n.layers.find(e=>e.type==="light")?.data;if(t?.category==="basic"){let e=fr.defaultData("light","phong"),r=t;Object.assign(r,e),r.visible=!1}}function Kb(n){ua(n,Fd),pa(n,Fd)}var zd=22;function Ud(n){let t=n.schema??0;t!==zd&&(console.warn("updating from ",t,"to ",zd),t<1&&(pa(n,Dd),ua(n,Dd),n.schema=1),t<2&&(Lb(n),n.schema=2),t<3&&(Eb(n),n.schema=3),t<4&&(Bb(n),n.schema=4),t<5&&(Db(n),n.schema=5),t<6&&(Gb(n),n.schema=6),t<7&&(Rb(n),n.schema=7),t<8&&(Vb(n),n.schema=8),t<9&&(Rd(n),n.schema=9),t<10&&(Fb(n),n.schema=10),t<11&&(zb(n),n.schema=11),t<12&&(Rd(n),n.schema=12),t<13&&(Ub(n),n.schema=13),t<14&&(jb(n),n.schema=14),t<15&&(kb(n),n.schema=15),t<16&&(Hb(n),n.schema=16),t<17&&(pa(n,Vd),ua(n,Vd),n.schema=17),t<18&&(pa(n,Gd),ua(n,Gd),n.schema=18),t<19&&(Mb(n),n.schema=19),t<20&&(Wb(n),$b(n),n.schema=20),t<21&&(Xb(n),Yb(n),n.schema=21),t<22&&(Kb(n),n.schema=22))}var da;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(da||(da={}));var Ke=require("three");var jd=require("three"),Pl=class extends jd.Object3D{},fa=class extends Pl{constructor(e){super();this.object=e;this.matrixAutoUpdate=!0}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return!0}get isLight(){return!1}get layers(){return this.object.layers}set layers(e){}get isCamera(){return!1}get geometry(){return this.object.geometry}get material(){return this.object.material}};var No=class extends Ke.Object3D{constructor(e,r={}){super();this.object=e;let o=e.recursiveBBox.getSize(new Ke.Vector3),i=.1;this.parameters=Os.defaultData(o.toArray(),i),_o(this.parameters,r),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(e){this.parameters.hideBase=e}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters)}this.children.forEach(e=>e.updateMatrix())}_updateCount(){let e=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count;if(this.children.length!==e)if(this.children.length<e)for(let r=0,o=e-this.children.length;r<o;++r){let i=new fa(this.object);i.visible=!0,this.add(i),this.parameters.hideBase&&this.setHideBase(!0)}else for(let r=0,o=this.children.length-e;r<o;++r)this.remove(this.children[0])}_updateRadial(e){let r=e.radial,o=r.start*Ke.MathUtils.DEG2RAD,i=r.end*Ke.MathUtils.DEG2RAD,s=o-i,l=new Ke.Euler(r.rotation[0]*Ke.MathUtils.DEG2RAD,r.rotation[1]*Ke.MathUtils.DEG2RAD,r.rotation[2]*Ke.MathUtils.DEG2RAD),c;switch(r.axis){case"z":c=new Ke.Vector3(0,0,1);break;case"y":c=new Ke.Vector3(0,1,0);break;default:case"x":c=new Ke.Vector3(1,0,0);break}for(let[p,a]of this.children.entries()){a.scale.x=r.scale[0],a.scale.y=r.scale[1],a.scale.z=r.scale[2],a.position.setScalar(0);let u=s/e.count*p-o;switch(r.axis){case"x":a.rotation.set(0,u,0);break;case"y":a.rotation.set(0,0,u);break;case"z":a.rotation.set(u,0,0);break}a.translateOnAxis(c,r.radius),a.position.x+=r.position[0],a.position.y+=r.position[1],a.position.z+=r.position[2],r.alignment===!0?(a.rotation.x+=l.x,a.rotation.y+=l.y,a.rotation.z+=l.z):a.rotation.copy(l)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,o=new Ke.Euler(r.rotation[0]*Ke.MathUtils.DEG2RAD,r.rotation[1]*Ke.MathUtils.DEG2RAD,r.rotation[2]*Ke.MathUtils.DEG2RAD);for(let[i,s]of this.children.entries())s.scale.x=1+(r.scale[0]-1)*i,s.scale.y=1+(r.scale[1]-1)*i,s.scale.z=1+(r.scale[2]-1)*i,s.rotation.x=o.x*i,s.rotation.y=o.y*i,s.rotation.z=o.z*i,s.position.x=r.position[0]*i,s.position.y=r.position[1]*i,s.position.z=r.position[2]*i}_updateGrid(e){let r=0,o=e.grid;if(o.useCenter===!0){let i={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},s=new Ke.Vector3(o.size[0]*(o.count[0]-i.x)*.5,o.size[1]*(o.count[1]-i.y)*.5,o.size[2]*(o.count[2]-i.z)*.5);for(let l=0;l<o.count[0];l++)for(let c=0;c<o.count[1];c++)for(let p=0;p<o.count[2];p++){let a=this.children[r++];a.scale.setScalar(1),a.rotation.set(0,0,0),a.position.x=o.size[0]*l-s.x,a.position.y=o.size[1]*c-s.y,a.position.z=o.size[2]*p-s.z}}else for(let i=0;i<o.count[0];i++)for(let s=0;s<o.count[1];s++)for(let l=0;l<o.count[2];l++){let c=this.children[r++];c.scale.setScalar(1),c.rotation.set(0,0,0),c.position.x=o.size[0]*i,c.position.y=-o.size[1]*s,c.position.z=-o.size[2]*l}}fromClonerState(e){return e.hideBase!==void 0&&this.setHideBase(e.hideBase),_o(this.parameters,e),this.update(),this}};var Mr=require("three");var ze=require("three");var kd=require("three"),hr=n=>{var t;return t=class extends n{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new kd.BoxGeometry(30,30,30),t};var pt=require("three");var gt=require("three"),ma=new gt.Ray,Ol=new gt.Sphere,Hd=new gt.Matrix4,gr=(n,t,e,r,o=!1)=>{let i=t,s=n.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),Ol.copy(i.boundingSphere),Ol.applyMatrix4(s),e.ray.intersectsSphere(Ol)===!1||(Hd.copy(s).invert(),ma.copy(e.ray).applyMatrix4(Hd),i.boundingBox!==null&&ma.intersectsBox(i.boundingBox)===!1))return;let l,c,p,a,u=i.index,d=i.attributes.position,f=i.drawRange,m,h;if(o===!1){let v=Math.max(0,f.start),x=Math.min(u.count,f.start+f.count);for(m=v,h=x;m<h;m+=3)if(c=u.getX(m),p=u.getX(m+1),a=u.getX(m+2),l=g(n,e,ma,d,c,p,a),l){l.faceIndex=Math.floor(m/3),r.push(l);return}}else{let x=i.attributes.position,w=new gt.Vector3,S=new gt.Vector3,b=new gt.Vector3,I=new gt.Vector3,_=2,P=1/((n.scale.x+n.scale.y+n.scale.z)/3),A=P*P,O=Math.max(0,f.start),T=Math.min(x.count,f.start+f.count);for(let L=O,B=T-1;L<B;L+=_){if(w.fromBufferAttribute(x,L),S.fromBufferAttribute(x,L+1),ma.distanceSqToSegment(w,S,I,b)>A)continue;I.applyMatrix4(n.matrixWorld);let te=e.ray.origin.distanceTo(I);te<e.near||te>e.far||r.push({distance:te,point:b.clone().applyMatrix4(n.matrixWorld),object:n})}}function g(v,x,w,S,b,I,_){let y=new gt.Vector3,P=new gt.Vector3,A=new gt.Vector3,O=new gt.Vector3,T=new gt.Vector3;if(y.fromBufferAttribute(S,b),P.fromBufferAttribute(S,I),A.fromBufferAttribute(S,_),w.intersectTriangle(y,P,A,!1,O)===null)return null;T.copy(O),T.applyMatrix4(v.matrixWorld);let B=x.ray.origin.distanceTo(T);return B<x.near||B>x.far?null:{faceIndex:1,distance:B,point:T.clone(),object:v}}};var ha=new pt.Vector3,Wt=new pt.Camera,Cl=class extends pt.LineSegments{constructor(e){let r=new pt.BufferGeometry,o=new pt.LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],s=[],l={},c=new pt.Color(15711266),p=new pt.Color(15711266),a=new pt.Color(2857471);u("n1","n2",c),u("n2","n4",c),u("n4","n3",c),u("n3","n1",c),u("f1","f2",c),u("f2","f4",c),u("f4","f3",c),u("f3","f1",c),u("n1","f1",c),u("n2","f2",c),u("n3","f3",c),u("n4","f4",c),u("p","n1",p),u("p","n2",p),u("p","n3",p),u("p","n4",p),u("u1","u2",a),u("u2","u3",a),u("u3","u1",a);function u(f,m,h){d(f,h),d(m,h)}function d(f,m){i.push(0,0,0),s.push(m.r,m.g,m.b),l[f]===void 0&&(l[f]=[]),l[f].push(i.length/3-1)}r.setAttribute("position",new pt.Float32BufferAttribute(i,3)),r.setAttribute("color",new pt.Float32BufferAttribute(s,3));super(r,o);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=l,this.update()}update(){let e=this.geometry,r=this.pointMap,o=!0;Wt.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let i=1,s=1,l=o?.8:1e-4;Qt("n1",r,e,Wt,-i,-s,l),Qt("n2",r,e,Wt,i,-s,l),Qt("n3",r,e,Wt,-i,s,l),Qt("n4",r,e,Wt,i,s,l);let c=l;Qt("f1",r,e,Wt,-i,-s,c),Qt("f2",r,e,Wt,i,-s,c),Qt("f3",r,e,Wt,-i,s,c),Qt("f4",r,e,Wt,i,s,c);let p=c,a=.5;Qt("u1",r,e,Wt,i*.7*a,s*1.1,p),Qt("u2",r,e,Wt,-i*.7*a,s*1.1,p),Qt("u3",r,e,Wt,0,s*(1.1+.9*a),p),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function Qt(n,t,e,r,o,i,s){ha.set(o,i,s).unproject(r);let l=t[n];if(l!==void 0){let c=e.getAttribute("position");for(let p=0,a=l.length;p<a;p++)c.setXYZ(l[p],ha.x,ha.y,ha.z)}}var ga=class extends hr(Cl){constructor(e){super(e);this.object=e;this.object=e,this.name=`CombinedCameraHelper: ${e.uuid}`}updateMatrixWorld(e){super.updateMatrixWorld(e),this.updateTarget()}updateTarget(){let e=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(e)}raycast(e,r){gr(this.object,this.geometry,e,r,!0)}};var Wd=require("three");var gn=class extends hr(Wd.DirectionalLightHelper){constructor(e,r=15,o=10066329){super(e,r,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,r){gr(this.object,gn.geometryHelper,e,r)}};var qd=require("three");var yn=class extends hr(qd.AxesHelper){constructor(e,r=15){super(r);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,r){gr(this.object,yn.geometryHelper,e,r)}update(){}};var $d=require("three");var xn=class extends hr($d.PointLightHelper){constructor(e,r=15,o=6710886){super(e,r,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,r){gr(this.object,xn.geometryHelper,e,r)}};var xa=require("three");var ya=class extends hr(xa.SpotLightHelper){constructor(e,r=6710886){super(e,r);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,r){gr(this.object,ya.geometryHelper,e,r)}update(){if(this.object!==void 0){let e=ya._vector,r=this.object.distance?this.object.distance:1e3,o=r*Math.tan(this.object.angle);this.cone.scale.set(o,o,r),e.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(e);let i=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let s=0,l=this.cone.material.length;s<l;s++)this.cone.material[s].color.set(i);else this.cone.material.color.set(i)}}},gi=ya;gi._vector=new xa.Vector3;var he=require("three"),yi=1e-12,vn=class{constructor(t){this.position=new he.Vector2;this.startPosition=new he.Vector2;this.uuid=he.MathUtils.generateUUID();this.position=t.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(t){this.position.copy(this.startPosition).add(t)}copy(t){return this.position.copy(t.position),this.startPosition.copy(t.startPosition),this}clone(){return new vn(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},bn=class extends vn{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new bn(this.parent).copy(this)}},Zt=class extends vn{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new bn(this),new bn(this))}static create(e,r){let o=new Zt(e,new he.Vector2(...r.position));return o.controls[0].position.set(...r.controlPrevious.position),o.controls[1].position.set(...r.controlNext.position),o.roundness=r.roundness,o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored,o}getOppositeControl(e){let r=this.controls.indexOf(e);return r===0?this.controls[1]:r===1?this.controls[0]:null}applyOffsetToControls(e,r=1){for(let o=0,i=this.controls.length;o<i;o++){let s=this.controls[o];this.position.distanceTo(s.position)<=r?s.position.copy(this.position):s.applyOffset(e)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(e){return super.copy(e),this.controls[0].copy(e.controls[0]),this.controls[1].copy(e.controls[1]),this.roundness=e.roundness,this.uuid=e.uuid,this}clone(){return new Zt(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let e=this.curveBefore?.getTangentAt(1),r=this.curveAfter?.getTangentAt(0);return[e,r]}computeNormals(e=new he.Vector2,r=new he.Vector2){let[o,i]=this.computeTangents();return o&&i&&(Xd(o,e),Xd(i,r)),[e,r]}computeTangent(e=new he.Vector2){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new he.Vector2){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function Xd(n,t=new he.Vector2){let e=n.length();return t.set(-n.y/e,n.x/e)}var Ml=n=>n,Sn=new he.Vector2,va=new he.Vector2,Zb=new he.Vector2,Jb=new he.Vector2,eS=new he.Vector2,tS=new he.Vector2,Kd=new he.Vector3,Qd=new he.Vector3;function Zd(n){let t=new he.Vector2;t.addVectors(n.v0,Sn.subVectors(n.v1,n.v0).multiplyScalar(2/3));let e=new he.Vector2;return e.addVectors(n.v2,va.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new he.CubicBezierCurve(n.v0,t,e,n.v2)}function xi(n,t,e=Number.EPSILON){return Math.abs(n-t)<e}function rS(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function oS(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function El(n,t,e){let r=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),i=Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2));return Math.acos((o*o+r*r-i*i)/(2*o*r))}function Jd(n,t,e){return Yd(n,t)&&Yd(t,e)&&Ll(n.position,t.position,e.position)}function Ll(n,t,e){return Sn.copy(t).sub(n).cross(va.copy(e).sub(n))===0}function ef(n,t,e,r,o){let i=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),s=(n.y+t.y)/2,l=(n.x+t.x)/2,c=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(n.y-t.y)/i,p=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(t.x-n.x)/i;return r.set(l+c,s+p),o.set(l-c,s-p),[r,o]}function tf(n,t,e){let r=n.distanceTo(e),o=t.distanceTo(e);return r<o?t:n}function rf(n,t,e,r,o,i){let s=t.x-n.x,l=t.y-n.y,c=e.x-n.x,p=e.y-n.y,a=Math.sqrt((s+c)*(s+c)+(l+p)*(l+p)),u;return El(t,n,e)>Math.PI&&(a*=-1),xi(p,l)?u=(l+p)*(r/a-.5)*8/3/(s-c):u=(s+c)*(r/a-.5)*8/3/(p-l),o.set(t.x-u*l,t.y+u*s),i.set(e.x+u*p,e.y-u*c),[o,i]}function Bl(n,t){return n.position.equals(n.controls[1].position)&&t.position.equals(t.controls[0].position)}function Yd(n,t){return Ll(n.position,n.controls[1].position,t.position)&&Ll(n.position,t.controls[0].position,t.position)}function of(n,t,e,r,o=.5){let i=Sn.subVectors(t,n).multiplyScalar(o).add(n),s=va.subVectors(e,t).multiplyScalar(o).add(t),l=Zb.subVectors(r,e).multiplyScalar(o).add(e),c=i,p=Jb.subVectors(s,i).multiplyScalar(o).add(i),a=eS.subVectors(l,s).multiplyScalar(o).add(s),u=l,d=tS.subVectors(a,p).multiplyScalar(o).add(p);return[n.x,n.y,c.x,c.y,p.x,p.y,d.x,d.y,a.x,a.y,u.x,u.y,r.x,r.y]}function nf(n,t,e=12,r=!0){let o=Qd.set(0,0,0),i,s=0,l=[];for(let c=0;c<t.length;c++){let p=Ml(t[c]),a=Sn,u=no(p,e);l.push(u);for(let d=0;d<=u;d++)if(p instanceof he.CubicBezierCurve||p instanceof he.QuadraticBezierCurve||p instanceof he.LineCurve){if(p.getPoint(d/u,a),o.set(a.x,a.y,0),i!==void 0&&oS(i,o))continue;i===void 0&&(i=Kd),i.copy(o),n.setXYZ(s,o.x,o.y,o.z),s++}}return r&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),n}function sf(n,t,e,r=12,o=!0){let i=Qd.set(0,0,0),s=0,l=[];for(let c=0;c<t.length;c++){if(e[c]===!1)continue;let p,a=Ml(t[c]),u=Sn,d=no(a,r);l.push(d);for(let f=0;f<=d;f++)if(a instanceof he.CubicBezierCurve||a instanceof he.QuadraticBezierCurve||a instanceof he.LineCurve){if(a.getPoint(f/d,u),i.set(u.x,u.y,0),p?.equals(i))continue;p===void 0?p=Kd:(n.setXYZ(s,p.x,p.y,p.z),s++,n.setXYZ(s,i.x,i.y,i.z),s++),p.copy(i)}}return o&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),l}function Dl(n,t=12,e=!1){let r=[];for(let o=0,i=n.length;o<i;o++){let s=n[o],l=0;if(e&&s.roundedCurveCorner!==void 0){let c=no(s.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=c),l+=c}s.curveAfter!==void 0&&(l+=no(s.curveAfter,t)),r.push(l)}return n.length>0&&e&&n[0].roundedCurveCorner!==void 0&&(r[n.length-1]+=no(n[0].roundedCurveCorner,t)*.5),r}function no(n,t=12){return n&&n instanceof he.EllipseCurve?t*2:n&&(n instanceof he.LineCurve||n instanceof he.LineCurve3)?1:n&&n instanceof he.SplineCurve?t*n.points.length:t}function af(n,t,e=12,r=!0){let o,i=0;for(let s=0;s<t.length;s++){let l=Ml(t[s]),c=no(l,e),p=Sn;for(let a=0;a<=c;a++)if(l instanceof he.CubicBezierCurve||l instanceof he.QuadraticBezierCurve||l instanceof he.LineCurve){if(l.getPoint(a/c,p),o!==void 0&&rS(o,p,yi))continue;o===void 0&&(o=va),o.copy(p),n.push(p.x,p.y),i++}}return xi(n[0],n[n.length-2],yi)&&xi(n[1],n[n.length-1],yi)&&(n.pop(),n.pop()),r&&i>1&&!(xi(n[i-1],n[1],yi)&&xi(n[i-2],n[0],yi))&&(n.push(n[0],n[1]),i++),n}var fo=require("three");var Se=require("three");var Gl=new Se.Vector2,nS=new Se.Vector2,iS=new Se.Vector2,sS=new Se.Vector2,aS=new Se.Vector2,lS=new Se.Vector2,_e=class extends Se.Shape{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new Se.EventDispatcher;this.plane=new Se.Plane(new Se.Vector3(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=Se.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,o){let i=new _e;return i.isClosed=e.isClosed,i.points=e.points.map(s=>Zt.create(s.id,s.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(s=>_e.createFromState(s)),r!==void 0&&o!==void 0&&i.applySize(r,o),i.update(),i}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(e){if(this._roundness!==e){this._roundness=e;for(let r=0,o=this.points.length;r<o;r++)this.points[r].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(r=>this.getPointIndexById(r)).filter(r=>r>=0)}getPointIndexById(e){let r=this.points.length,o=this.points.findIndex(i=>i.uuid===e);if(o<0){let i=r;for(let s=0,l=this.shapeHoles.length;s<l;s++){let c=this.shapeHoles[s],p=c.points.length,a=c.getPointIndexById(e);if(a<0)i+=p;else return a+i}}return o}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0){let r=this.points.length;for(let o=0,i=this.shapeHoles.length;o<i;o++){let s=this.shapeHoles[o],l=e-r;if(l<=s.points.length-1)return s.points[l];r+=s.points.length}}throw new Error("This shape does not have a point for this index: "+e)}getBezierPointIndex(e){let r=this.points.indexOf(e);if(r>=0)return r;if(r=this.points.length,this.shapeHoles.length>0)for(let o=0,i=this.shapeHoles.length;o<i;o++){let s=this.shapeHoles[o],l=s.points.indexOf(e);if(l>=0)return r+l;r+=s.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(r=>r.points));return[...this.points,...e]}applySize(e,r){e===0&&(e=.001),r===0&&(r=.001),this._width=e,this._height=r}applyScale(e,r){let o=Gl.set(e,r);for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i];l.position.multiply(o),l.controls[0].position.multiply(o),l.controls[1].position.multiply(o)}for(let i=0,s=this.shapeHoles.length;i<s;i++)this.shapeHoles[i].applyScale(e,r);this._update(!1)}createPoint(e,r=0,o=Se.MathUtils.generateUUID()){let i;e instanceof Se.Vector2?i=e:i=new Se.Vector2(e,r);let s=new Zt(o,i);return s.roundness=this.roundness,s}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,r){this.points.splice(r,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let r=0,o=this.points.length;r<o;r++){let i=this.points[r];if(i.uuid===e)return i}for(let r=0,o=this.shapeHoles.length;r<o;r++){let s=this.shapeHoles[r].getPointByUuid(e);if(s)return s}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let r=this.points.indexOf(e);r>=0&&this.points.splice(r,1),this.needsUpdate=!0}removePointById(e){let r=this.points.find(o=>o.uuid===e);r&&this.removePoint(r)}update(e=!0){for(let r=0,o=this.shapeHoles.length;r<o;r++)this.shapeHoles[r].update(!1);this._update(e)}extractShapePointsToBuffer(e,r=12,o=!1){this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r);let i=o?this.roundedCurveDivisions:this.curveDivisions;return nf(e,o?this.roundedCurves:this.curves,r,this.autoClose),i.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Dl(this.points,e,!1),this.roundedCurveDivisions=Dl(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return sf(e,this.curves,r,o,this.autoClose).reduce((s,l)=>s+l,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),af(e,this.roundedCurves,r,this.autoClose)}getCurveIndexFromVertexId(e,r=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=r?this.roundedCurveDivisions:this.curveDivisions,s=0;r&&this.points[0].roundedCurveCorner!==void 0&&(s=no(this.points[0].roundedCurveCorner,this.subdivision)*.5);let l=e-s;l<0&&(l+=i.reduce((c,p)=>c+p,0));for(let c=0,p=i.length;c<p;c++){let a=i[c];if(l<o+a)return[c,(l-o+1)/a];o+=a}return[0,1]}getCurveT(e,r,o){let i=this.points[e],s=this.points[e>=this.points.length-1?0:e+1],l=this.curveDivisions,c=l[e];if(Bl(i,s)){let u=i.position.distanceTo(s.position);return i.position.distanceTo(Gl.set(o.x,o.y))/u}let p=0;for(let u=0;u<e;u++)p+=l[u];return(r-p)/c}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,r){Bl(r,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(r.controls[1].position.x,r.controls[1].position.y,e.controls[0].position.x,e.controls[0].position.y,e.position.x,e.position.y);let o=this.curves[this.curves.length-1];e.curveBefore=o,r.curveAfter=o;let i=o.clone();e.roundedCurveBefore=i,r.roundedCurveAfter=i,e.roundedCurveCorner=void 0,this.roundedCurves.push(i)}_update(e=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let o=0,i=this.points.length;o<i;o++){let s=this.points[o];if(o===0)this.moveTo(s.position.x,s.position.y);else{let l=this.points[o-1];this._applyCurveForPoint(s,l)}}let r=this.getLastPoint();if(r?.curveAfter&&(r.curveAfter=void 0),this.isClosed){let o=this.points[0],i=this.points[this.points.length-1];this._applyCurveForPoint(o,i)}if(this.points.length>2){let o=0;for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i],c=this.points[i-1]??this.points[this.points.length-1],p=this.points[i+1]??this.points[0],a=l.roundness,u=c&&p&&Jd(c,l,p);if(!l.controlsMoved()&&a>0&&!u){let d=l.curveBefore,f=l.curveAfter;if(d===void 0||f===void 0)continue;let m=l.roundedCurveBefore,h=l.roundedCurveAfter,g=d.getLength(),v=f.getLength(),x=Math.min(a,g*.499),w=Math.min(a,v*.499),S=Math.min(x,w),b=1-S/g,I=S/v,_=d.getPointAt(b,Gl),y=f.getPointAt(I,nS);this._subSplitCurve(d,m,b,_,void 0),this._subSplitCurve(f,h,I,void 0,y);let P;if(this.useCubicForRoundedCorners){let A=El(_,l.position,y)/2,O=Math.tan(A)*_.distanceTo(l.position),[T,L]=ef(_,y,O,iS,sS),B=tf(T,L,l.position),[j,te]=rf(B,_,y,O,aS,lS);P=new Se.CubicBezierCurve(_.clone(),j.clone(),te.clone(),y.clone())}else P=new Se.QuadraticBezierCurve(_.clone(),l.position.clone(),y.clone());l.roundedCurveCorner=P,this.roundedCurves.splice(i+o,0,P),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,r,o,i,s){if(e instanceof Se.LineCurve)i!==void 0&&r.v2.copy(i),s!==void 0&&r.v1.copy(s);else{let l=e,c=r,p=l.getUtoTmapping(o,0),a=of(l.v0,l.v1,l.v2,l.v3,p);return i!==void 0&&(c.v0.set(a[0],a[1]),c.v1.set(a[2],a[3]),c.v2.set(a[4],a[5]),c.v3.set(a[6],a[7])),s!==void 0&&(c.v0.set(a[6],a[7]),c.v1.set(a[8],a[9]),c.v2.set(a[10],a[11]),c.v3.set(a[12],a[13])),c}return r}clone(){let e=new _e(this._width,this._height);return e.points=this.points.map(r=>r.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(r=>r.clone()),e}toJSON(){return{points:this.points.reduce((e,r)=>e.concat(r.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){this.points=[],this.pointIDs=0;let r=e.points.length/7;for(let o=0;o<r;o++){let i=o*7,s=e.points[i+0],l=e.points[i+1],c=e.points[i+2],p=e.points[i+3],a=e.points[i+4],u=e.points[i+5],d=e.points[i+6],f=new Zt(Se.MathUtils.generateUUID(),new Se.Vector2(s,l));f.controls[0].position.set(c,p),f.controls[1].position.set(a,u),f.roundness=d,this.points.push(f)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let i=new _e;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let r=(i,s)=>{s instanceof Se.CubicBezierCurve&&s.v3.equals(i.position)&&i.controls[0].position.copy(s.v2)},o=i=>{let s=[],l,c;for(l=0,c=i.length;l<c;l++)i[l]instanceof Se.QuadraticBezierCurve&&(i[l]=Zd(i[l]));for(l=0,c=i.length;l<c;l++){let u=i[l],d=l>0?i[l-1]:null,f;u instanceof Se.CubicBezierCurve?(f=this.createPoint(u.v0),f.controls[1].position.copy(u.v1)):u instanceof Se.LineCurve&&(f=this.createPoint(u.v1)),f!==void 0&&(d!==null&&r(f,d),s.push(f))}let p=i[i.length-1],a=!1;return p instanceof Se.CubicBezierCurve?p.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(p.v2),a=!0):p instanceof Se.LineCurve&&p.v2.equals(s[0].position)&&(a=!0),this.isClosed=a,s};return this.points=o(e.curves),e instanceof Se.Shape&&(this.shapeHoles=e.holes.map(i=>{let s=new _e;return s.fromShape(i),s})),this.update(),this}};var Po=require("three");var Me;(function(n){n[n.ODD=0]="ODD",n[n.NONZERO=1]="NONZERO",n[n.POSITIVE=2]="POSITIVE",n[n.NEGATIVE=3]="NEGATIVE",n[n.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Me||(Me={}));var Ze;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Ze||(Ze={}));function ue(n,t){if(!n)throw t||"Assertion Failed!"}var le=function(){function n(){}return n.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},n.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},n.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},n.edgeGoesLeft=function(t){return n.vertLeq(t.Dst,t.Org)},n.edgeGoesRight=function(t){return n.vertLeq(t.Org,t.Dst)},n.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},n.edgeEval=function(t,e,r){ue(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?o<i?e.t-t.t+(t.t-r.t)*(o/(o+i)):e.t-r.t+(r.t-t.t)*(i/(o+i)):0},n.edgeSign=function(t,e,r){ue(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?(e.t-r.t)*o+(e.t-t.t)*i:0},n.transEval=function(t,e,r){ue(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?o<i?e.s-t.s+(t.s-r.s)*(o/(o+i)):e.s-r.s+(r.s-t.s)*(i/(o+i)):0},n.transSign=function(t,e,r){ue(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?(e.s-r.s)*o+(e.s-t.s)*i:0},n.vertCCW=function(t,e,r){return t.s*(e.t-r.t)+e.s*(r.t-t.t)+r.s*(t.t-e.t)>=0},n.interpolate=function(t,e,r,o){return t=t<0?0:t,r=r<0?0:r,t<=r?r===0?(e+o)/2:e+(o-e)*(t/(t+r)):o+(e-o)*(r/(t+r))},n.intersect=function(t,e,r,o,i){var s,l,c;n.vertLeq(t,e)||(c=t,t=e,e=c),n.vertLeq(r,o)||(c=r,r=o,o=c),n.vertLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.vertLeq(r,e)?n.vertLeq(e,o)?(s=n.edgeEval(t,r,e),l=n.edgeEval(r,e,o),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,e.s)):(s=n.edgeSign(t,r,e),l=-n.edgeSign(t,o,e),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,o.s)):i.s=(r.s+e.s)/2,n.transLeq(t,e)||(c=t,t=e,e=c),n.transLeq(r,o)||(c=r,r=o,o=c),n.transLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.transLeq(r,e)?n.transLeq(e,o)?(s=n.transEval(t,r,e),l=n.transEval(r,e,o),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,e.t)):(s=n.transSign(t,r,e),l=-n.transSign(t,o,e),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,o.t)):i.t=(r.t+e.t)/2},n}(),vi=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return n}(),ba=function(){function n(t){this.side=t,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(n.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),n}(),wn=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}return n}(),lf=function(){function n(){var t=new wn,e=new vi,r=new ba(0),o=new ba(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,r.next=r,r.Sym=o,o.next=o,o.Sym=r,this.vHead=t,this.fHead=e,this.eHead=r,this.eHeadSym=o}return n.prototype.makeEdge_=function(t){var e=new ba(0),r=new ba(1);t.Sym.side<t.side&&(t=t.Sym);var o=t.Sym.next;return r.next=o,o.Sym.next=e,e.next=t,t.Sym.next=r,e.Sym=r,e.Onext=e,e.Lnext=r,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,r.Sym=e,r.Onext=r,r.Lnext=e,r.Org=null,r.Lface=null,r.winding=0,r.activeRegion=null,e},n.prototype.splice_=function(t,e){var r=t.Onext,o=e.Onext;r.Sym.Lnext=e,o.Sym.Lnext=t,t.Onext=o,e.Onext=r},n.prototype.makeVertex_=function(t,e,r){var o=t;ue(o,"Vertex can't be null!");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e;var s=e;do s.Org=o,s=s.Onext;while(s!==e)},n.prototype.makeFace_=function(t,e,r){var o=t;ue(o,"Face can't be null");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e,o.trail=null,o.marked=!1,o.inside=r.inside;var s=e;do s.Lface=o,s=s.Lnext;while(s!==e)},n.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,r=t.Sym.next;e.Sym.next=r,r.Sym.next=e},n.prototype.killVertex_=function(t,e){var r=t.anEdge,o=r;do o.Org=e,o=o.Onext;while(o!==r);var i=t.prev,s=t.next;s.prev=i,i.next=s},n.prototype.killFace_=function(t,e){var r=t.anEdge,o=r;do o.Lface=e,o=o.Lnext;while(o!==r);var i=t.prev,s=t.next;s.prev=i,i.next=s},n.prototype.makeEdge=function(){var t=new wn,e=new wn,r=new vi,o=this.makeEdge_(this.eHead);return this.makeVertex_(t,o,this.vHead),this.makeVertex_(e,o.Sym,this.vHead),this.makeFace_(r,o,this.fHead),o},n.prototype.splice=function(t,e){var r=!1,o=!1;if(t!==e){if(e.Org!==t.Org&&(o=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!o){var i=new wn;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!r){var s=new vi;this.makeFace_(s,e,t.Lface),t.Lface.anEdge=t}}},n.prototype.delete=function(t){var e=t.Sym,r=!1;if(t.Lface!==t.Rface&&(r=!0,this.killFace_(t.Lface,t.Rface)),t.Onext===t)this.killVertex_(t.Org,null);else if(t.Rface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev),!r){var o=new vi;this.makeFace_(o,t,t.Lface)}e.Onext===e?(this.killVertex_(e.Org,null),this.killFace_(e.Lface,null)):(t.Lface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),this.killEdge_(t)},n.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),r=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new wn;return this.makeVertex_(o,r,e.Org),e.Lface=r.Lface=t.Lface,e},n.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t),r=e.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,r),t.Dst=r.Org,r.Dst.anEdge=r.Sym,r.Rface=t.Rface,r.winding=t.winding,r.Sym.winding=t.Sym.winding,r.idx=t.idx,r.Sym.idx=t.Sym.idx,r},n.prototype.connect=function(t,e){var r=!1,o=this.makeEdge_(t),i=o.Sym;if(e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(o,t.Lnext),this.splice_(i,e),o.Org=t.Dst,i.Org=e.Org,o.Lface=i.Lface=t.Lface,t.Lface.anEdge=i,!r){var s=new vi;this.makeFace_(s,o,t.Lface)}return o},n.prototype.zapFace=function(t){var e=t.anEdge,r,o,i,s,l;o=e.Lnext;do r=o,o=r.Lnext,r.Lface=null,r.Rface===null&&(r.Onext===r?this.killVertex_(r.Org,null):(r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev)),i=r.Sym,i.Onext===i?this.killVertex_(i.Org,null):(i.Org.anEdge=i.Onext,this.splice_(i,i.Oprev)),this.killEdge_(r));while(r!=e);s=t.prev,l=t.next,l.prev=s,s.next=l},n.prototype.countFaceVerts_=function(t){var e=t.anEdge,r=0;do r++,e=e.Lnext;while(e!==t.anEdge);return r},n.prototype.mergeConvexFaces=function(t){var e,r,o,i,s,l,c;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(r=e.anEdge,s=r.Org;o=r.Lnext,i=r.Sym,i&&i.Lface&&i.Lface.inside&&(l=this.countFaceVerts_(e),c=this.countFaceVerts_(i.Lface),l+c-2<=t&&le.vertCCW(r.Lprev.Org,r.Org,i.Lnext.Lnext.Org)&&le.vertCCW(i.Lprev.Org,i.Org,r.Lnext.Lnext.Org)&&(o=i.Lnext,this.delete(i),r=null,i=null)),!(r&&r.Lnext.Org===s);)r=o;return!0},n.prototype.check=function(){var t=this.fHead,e=this.vHead,r=this.eHead,o,i,s,l,c,p;for(i=t,i=t;(o=i.next)!==t;i=o){ue(o.prev===i),c=o.anEdge;do ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c),ue(c.Lface===o),c=c.Lnext;while(c!==o.anEdge)}for(ue(o.prev===i&&o.anEdge===null),l=e,l=e;(s=l.next)!==e;l=s){ue(s.prev===l),c=s.anEdge;do ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c),ue(c.Org===s),c=c.Onext;while(c!==s.anEdge)}for(ue(s.prev===l&&s.anEdge===null),p=r,p=r;(c=p.next)!==r;p=c)ue(c.Sym.next===p.Sym),ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Org!==null),ue(c.Dst!==null),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c);ue(c.Sym.next===p.Sym&&c.Sym===this.eHeadSym&&c.Sym.Sym===c&&c.Org===null&&c.Dst===null&&c.Lface===null&&c.Rface===null)},n}(),cf=function(){function n(){this.handle=null}return n}(),uf=function(){function n(){this.key=null,this.node=0}return n}(),cS=function(){function n(t,e){this.leq=e,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=t,this.nodes=[],this.handles=[];for(var r=0;r<t+1;r++)this.nodes[r]=new cf,this.handles[r]=new uf;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return n.prototype.floatDown_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t<<1,s<this.size&&this.leq(r[e[s+1].handle].key,r[e[s].handle].key)&&++s,ue(s<=this.max),i=e[s].handle,s>this.size||this.leq(r[o].key,r[i].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=s}},n.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t>>1,i=e[s].handle,s===0||this.leq(r[i].key,r[o].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=s}},n.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},n.prototype.min=function(){return this.handles[this.nodes[1].handle].key},n.prototype.insert=function(t){var e,r;if(e=++this.size,e*2>this.max){this.max*=2;var o,i;for(i=this.nodes.length,this.nodes.length=this.max+1,o=i;o<this.nodes.length;o++)this.nodes[o]=new cf;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new uf}return this.freeList===0?r=e:(r=this.freeList,this.freeList=this.handles[r].node),this.nodes[e].handle=r,this.handles[r].node=e,this.handles[r].key=t,this.initialized&&this.floatUp_(e),r},n.prototype.extractMin=function(){var t=this.nodes,e=this.handles,r=t[1].handle,o=e[r].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[r].key=null,e[r].node=this.freeList,this.freeList=r,--this.size,this.size>0&&this.floatDown_(1)),o},n.prototype.delete=function(t){var e=this.nodes,r=this.handles,o;ue(t>=1&&t<=this.max&&r[t].key!==null),o=r[t].node,e[o].handle=e[this.size].handle,r[e[o].handle].node=o,--this.size,o<=this.size&&(o<=1||this.leq(r[e[o>>1].handle].key,r[e[o].handle].key)?this.floatDown_(o):this.floatUp_(o)),r[t].key=null,r[t].node=this.freeList,this.freeList=t},n}(),Rl=function(){function n(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return n}(),pf=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),uS=function(){function n(t,e){this.frame=t,this.leq=e,this.head=new pf,this.head.next=this.head,this.head.prev=this.head}return n.prototype.min=function(){return this.head.next},n.prototype.max=function(){return this.head.prev},n.prototype.insert=function(t){return this.insertBefore(this.head,t)},n.prototype.search=function(t){var e=this.head;do e=e.next;while(e.key!==null&&!this.leq(this.frame,t,e.key));return e},n.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var r=new pf;return r.key=e,r.next=t.next,t.next.prev=r,r.prev=t,t.next=r,r},n.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},n}(),pS=function(){function n(){}return n.regionBelow=function(t){return t.nodeUp.prev.key},n.regionAbove=function(t){return t.nodeUp.next.key},n.debugEvent=function(t){},n.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.edgeLeq=function(t,e,r){var o=t.event,i=e.eUp,s=r.eUp;if(i.Dst===o)return s.Dst===o?le.vertLeq(i.Org,s.Org)?le.edgeSign(s.Dst,i.Org,s.Org)<=0:le.edgeSign(i.Dst,s.Org,i.Org)>=0:le.edgeSign(s.Dst,o,s.Org)<=0;if(s.Dst===o)return le.edgeSign(i.Dst,o,i.Org)>=0;var l=le.edgeEval(i.Dst,o,i.Org),c=le.edgeEval(s.Dst,o,s.Org);return l>=c},n.deleteRegion=function(t,e){e.fixUpperEdge&&ue(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},n.fixUpperEdge=function(t,e,r){ue(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=r,r.activeRegion=e},n.topLeftRegion=function(t,e){var r=e.eUp.Org,o;do e=n.regionAbove(e);while(e.eUp.Org===r);if(e.fixUpperEdge){if(o=t.mesh.connect(n.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;n.fixUpperEdge(t,e,o),e=n.regionAbove(e)}return e},n.topRightRegion=function(t){var e=t.eUp.Dst;do t=n.regionAbove(t);while(t.eUp.Dst===e);return t},n.addRegionBelow=function(t,e,r){var o=new Rl;return o.eUp=r,o.nodeUp=t.dict.insertBefore(e.nodeUp,o),o.fixUpperEdge=!1,o.sentinel=!1,o.dirty=!1,r.activeRegion=o,o},n.isWindingInside=function(t,e){switch(t.windingRule){case Me.ODD:return(e&1)!==0;case Me.NONZERO:return e!==0;case Me.POSITIVE:return e>0;case Me.NEGATIVE:return e<0;case Me.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},n.computeWinding=function(t,e){e.windingNumber=n.regionAbove(e).windingNumber+e.eUp.winding,e.inside=n.isWindingInside(t,e.windingNumber)},n.finishRegion=function(t,e){var r=e.eUp,o=r.Lface;o.inside=e.inside,o.anEdge=r,n.deleteRegion(t,e)},n.finishLeftRegions=function(t,e,r){for(var o,i=null,s=e,l=e.eUp;s!==r;){if(s.fixUpperEdge=!1,i=n.regionBelow(s),o=i.eUp,o.Org!=l.Org){if(!i.fixUpperEdge){n.finishRegion(t,s);break}o=t.mesh.connect(l.Lprev,o.Sym),n.fixUpperEdge(t,i,o)}l.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(l,o)),n.finishRegion(t,s),l=i.eUp,s=i}return l},n.addRightEdges=function(t,e,r,o,i,s){var l,c,p,a,u=!0;p=r;do ue(le.vertLeq(p.Org,p.Dst)),n.addRegionBelow(t,e,p.Sym),p=p.Onext;while(p!==o);for(i===null&&(i=n.regionBelow(e).eUp.Rprev),c=e,a=i;l=n.regionBelow(c),p=l.eUp.Sym,p.Org===a.Org;)p.Onext!==a&&(t.mesh.splice(p.Oprev,p),t.mesh.splice(a.Oprev,p)),l.windingNumber=c.windingNumber-p.winding,l.inside=n.isWindingInside(t,l.windingNumber),c.dirty=!0,!u&&n.checkForRightSplice(t,c)&&(n.addWinding(p,a),n.deleteRegion(t,c),t.mesh.delete(a)),u=!1,c=l,a=p;c.dirty=!0,ue(c.windingNumber-p.winding===l.windingNumber),s&&n.walkDirtyRegions(t,c)},n.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},n.vertexWeights=function(t,e,r){var o=le.vertL1dist(e,t),i=le.vertL1dist(r,t),s=.5*i/(o+i),l=.5*o/(o+i);t.coords[0]+=s*e.coords[0]+l*r.coords[0],t.coords[1]+=s*e.coords[1]+l*r.coords[1],t.coords[2]+=s*e.coords[2]+l*r.coords[2]},n.getIntersectData=function(t,e,r,o,i,s){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,n.vertexWeights(e,r,o),n.vertexWeights(e,i,s)},n.checkForRightSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp;if(le.vertLeq(o.Org,i.Org)){if(le.edgeSign(i.Dst,o.Org,i.Org)>0)return!1;le.vertEq(o.Org,i.Org)?o.Org!==i.Org&&(t.pq.delete(o.Org.pqHandle),n.spliceMergeVertices(t,i.Oprev,o)):(t.mesh.splitEdge(i.Sym),t.mesh.splice(o,i.Oprev),e.dirty=r.dirty=!0)}else{if(le.edgeSign(o.Dst,i.Org,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Oprev,o)}return!0},n.checkForLeftSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,s;if(ue(!le.vertEq(o.Dst,i.Dst)),le.vertLeq(o.Dst,i.Dst)){if(le.edgeSign(o.Dst,i.Dst,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,s=t.mesh.splitEdge(o),t.mesh.splice(i.Sym,s),s.Lface.inside=e.inside}else{if(le.edgeSign(i.Dst,o.Dst,i.Org)>0)return!1;e.dirty=r.dirty=!0,s=t.mesh.splitEdge(i),t.mesh.splice(o.Lnext,i.Sym),s.Rface.inside=e.inside}return!0},n.checkForIntersect=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,s=o.Org,l=i.Org,c=o.Dst,p=i.Dst,a,u,d=new wn,f,m;if(ue(!le.vertEq(p,c)),ue(le.edgeSign(c,t.event,s)<=0),ue(le.edgeSign(p,t.event,l)>=0),ue(s!==t.event&&l!==t.event),ue(!e.fixUpperEdge&&!r.fixUpperEdge),s===l||(a=Math.min(s.t,c.t),u=Math.max(l.t,p.t),a>u))return!1;if(le.vertLeq(s,l)){if(le.edgeSign(p,s,l)>0)return!1}else if(le.edgeSign(c,l,s)<0)return!1;return n.debugEvent(t),le.intersect(c,s,p,l,d),ue(Math.min(s.t,c.t)<=d.t),ue(d.t<=Math.max(l.t,p.t)),ue(Math.min(p.s,c.s)<=d.s),ue(d.s<=Math.max(l.s,s.s)),le.vertLeq(d,t.event)&&(d.s=t.event.s,d.t=t.event.t),f=le.vertLeq(s,l)?s:l,le.vertLeq(f,d)&&(d.s=f.s,d.t=f.t),le.vertEq(d,s)||le.vertEq(d,l)?(n.checkForRightSplice(t,e),!1):!le.vertEq(c,t.event)&&le.edgeSign(c,t.event,d)>=0||!le.vertEq(p,t.event)&&le.edgeSign(p,t.event,d)<=0?p===t.event?(t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Sym,o),e=n.topLeftRegion(t,e),o=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),r),n.addRightEdges(t,e,o.Oprev,o,o,!0),!0):c===t.event?(t.mesh.splitEdge(i.Sym),t.mesh.splice(o.Lnext,i.Oprev),r=e,e=n.topRightRegion(e),m=n.regionBelow(e).eUp.Rprev,r.eUp=i.Oprev,i=n.finishLeftRegions(t,r,null),n.addRightEdges(t,e,i.Onext,o.Rprev,m,!0),!0):(le.edgeSign(c,t.event,d)>=0&&(n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),o.Org.s=t.event.s,o.Org.t=t.event.t),le.edgeSign(p,t.event,d)<=0&&(e.dirty=r.dirty=!0,t.mesh.splitEdge(i.Sym),i.Org.s=t.event.s,i.Org.t=t.event.t),!1):(t.mesh.splitEdge(o.Sym),t.mesh.splitEdge(i.Sym),t.mesh.splice(i.Oprev,o),o.Org.s=d.s,o.Org.t=d.t,o.Org.pqHandle=t.pq.insert(o.Org),n.getIntersectData(t,o.Org,s,c,l,p),n.regionAbove(e).dirty=e.dirty=r.dirty=!0,!1)},n.walkDirtyRegions=function(t,e){for(var r=n.regionBelow(e),o,i;;){for(;r.dirty;)e=r,r=n.regionBelow(r);if(!e.dirty&&(r=e,e=n.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,i=r.eUp,o.Dst!==i.Dst&&n.checkForLeftSplice(t,e)&&(r.fixUpperEdge?(n.deleteRegion(t,r),t.mesh.delete(i),r=n.regionBelow(e),i=r.eUp):e.fixUpperEdge&&(n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r),o=e.eUp)),o.Org!==i.Org)if(o.Dst!==i.Dst&&!e.fixUpperEdge&&!r.fixUpperEdge&&(o.Dst===t.event||i.Dst===t.event)){if(n.checkForIntersect(t,e))return}else n.checkForRightSplice(t,e);o.Org===i.Org&&o.Dst===i.Dst&&(n.addWinding(i,o),n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r))}},n.connectRightVertex=function(t,e,r){var o,i=r.Onext,s=n.regionBelow(e),l=e.eUp,c=s.eUp,p=!1;if(l.Dst!==c.Dst&&n.checkForIntersect(t,e),le.vertEq(l.Org,t.event)&&(t.mesh.splice(i.Oprev,l),e=n.topLeftRegion(t,e),i=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),s),p=!0),le.vertEq(c.Org,t.event)&&(t.mesh.splice(r,c.Oprev),r=n.finishLeftRegions(t,s,null),p=!0),p){n.addRightEdges(t,e,r.Onext,i,i,!0);return}le.vertLeq(c.Org,l.Org)?o=c.Oprev:o=l,o=t.mesh.connect(r.Lprev,o),n.addRightEdges(t,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,n.walkDirtyRegions(t,e)},n.connectLeftDegenerate=function(t,e,r){var o,i,s,l,c;if(o=e.eUp,le.vertEq(o.Org,r)){ue(!1),n.spliceMergeVertices(t,o,r.anEdge);return}if(!le.vertEq(o.Dst,r)){t.mesh.splitEdge(o.Sym),e.fixUpperEdge&&(t.mesh.delete(o.Onext),e.fixUpperEdge=!1),t.mesh.splice(r.anEdge,o),n.sweepEvent(t,r);return}ue(!1),e=n.topRightRegion(e),c=n.regionBelow(e),s=c.eUp.Sym,i=l=s.Onext,c.fixUpperEdge&&(ue(i!==s),n.deleteRegion(t,c),t.mesh.delete(s),s=i.Oprev),t.mesh.splice(r.anEdge,s),le.edgeGoesLeft(i)||(i=null),n.addRightEdges(t,e,s.Onext,l,i,!0)},n.connectLeftVertex=function(t,e){var r,o,i,s,l,c,p=new Rl;if(p.eUp=e.anEdge.Sym,r=t.dict.search(p).key,o=n.regionBelow(r),!!o){if(s=r.eUp,l=o.eUp,le.edgeSign(s.Dst,e,s.Org)===0){n.connectLeftDegenerate(t,r,e);return}if(i=le.vertLeq(l.Dst,s.Dst)?r:o,r.inside||i.fixUpperEdge){if(i===r)c=t.mesh.connect(e.anEdge.Sym,s.Lnext);else{var a=t.mesh.connect(l.Dnext,e.anEdge);c=a.Sym}i.fixUpperEdge?n.fixUpperEdge(t,i,c):n.computeWinding(t,n.addRegionBelow(t,r,c)),n.sweepEvent(t,e)}else n.addRightEdges(t,r,e.anEdge,e.anEdge,null,!0)}},n.sweepEvent=function(t,e){t.event=e,n.debugEvent(t);for(var r=e.anEdge;r.activeRegion===null;)if(r=r.Onext,r===e.anEdge){n.connectLeftVertex(t,e);return}var o=n.topLeftRegion(t,r.activeRegion);ue(o!==null);var i=n.regionBelow(o),s=i.eUp,l=n.finishLeftRegions(t,i,null);l.Onext===s?n.connectRightVertex(t,o,l):n.addRightEdges(t,o,l.Onext,s,s,!0)},n.addSentinel=function(t,e,r,o){var i=new Rl,s=t.mesh.makeEdge();s.Org.s=r,s.Org.t=o,s.Dst.s=e,s.Dst.t=o,t.event=s.Dst,i.eUp=s,i.windingNumber=0,i.inside=!1,i.fixUpperEdge=!1,i.sentinel=!0,i.dirty=!1,i.nodeUp=t.dict.insert(i)},n.initEdgeDict=function(t){t.dict=new uS(t,n.edgeLeq);var e=t.bmax[0]-t.bmin[0],r=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,i=t.bmax[0]+e,s=t.bmin[1]-r,l=t.bmax[1]+r;n.addSentinel(t,o,i,s),n.addSentinel(t,o,i,l)},n.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(ue(e.fixUpperEdge),ue(++r===1)),ue(e.windingNumber===0),n.deleteRegion(t,e)},n.removeDegenerateEdges=function(t){var e,r,o,i=t.mesh.eHead;for(e=i.next;e!==i;e=r)r=e.next,o=e.Lnext,le.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(n.spliceMergeVertices(t,o,e),t.mesh.delete(e),e=o,o=e.Lnext),o.Lnext===e&&(o!==e&&((o===r||o===r.Sym)&&(r=r.next),t.mesh.delete(o)),(e===r||e===r.Sym)&&(r=r.next),t.mesh.delete(e))},n.initPriorityQ=function(t){var e,r,o,i=0;for(o=t.mesh.vHead,r=o.next;r!==o;r=r.next)i++;for(i+=8,e=t.pq=new cS(i,le.vertLeq),o=t.mesh.vHead,r=o.next;r!==o;r=r.next)r.pqHandle=e.insert(r);return r!==o?!1:(e.init(),!0)},n.donePriorityQ=function(t){t.pq=null},n.removeDegenerateFaces=function(t,e){var r,o,i;for(r=e.fHead.next;r!==e.fHead;r=o)o=r.next,i=r.anEdge,ue(i.Lnext!==i),i.Lnext.Lnext===i&&(n.addWinding(i.Onext,i),t.mesh.delete(i));return!0},n.computeInterior=function(t,e){e===void 0&&(e=!0);var r,o;if(n.removeDegenerateEdges(t),!n.initPriorityQ(t))return!1;for(n.initEdgeDict(t);(r=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!le.vertEq(o,r));)o=t.pq.extractMin(),n.spliceMergeVertices(t,r.anEdge,o.anEdge);n.sweepEvent(t,r)}return t.event=t.dict.min().key.eUp.Org,n.debugEvent(t),n.doneEdgeDict(t),n.donePriorityQ(t),n.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},n}(),dS=function(){function n(){this.mesh=new lf,this.normal=[0,0,0],this.sUnit=[0,0,0],this.tUnit=[0,0,0],this.bmin=[0,0],this.bmax=[0,0],this.windingRule=Me.ODD,this.dict=null,this.pq=null,this.event=null,this.vertexIndexCounter=0,this.vertices=[],this.vertexIndices=[],this.vertexCount=0,this.elements=[],this.elementCount=0}return n.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},n.prototype.normalize_=function(t){var e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];if(!e)throw"Zero-size vector!";e=Math.sqrt(e),t[0]/=e,t[1]/=e,t[2]/=e},n.prototype.longAxis_=function(t){var e=0;return Math.abs(t[1])>Math.abs(t[0])&&(e=1),Math.abs(t[2])>Math.abs(t[e])&&(e=2),e},n.prototype.computeNormal_=function(t){var e,r,o,i,s,l,c=[0,0,0],p=[0,0,0],a=[0,0,0],u=[0,0,0],d=[0,0,0],f=[null,null,null],m=[null,null,null],h=this.mesh.vHead;e=h.next;for(var g=0;g<3;++g)i=e.coords[g],p[g]=i,m[g]=e,c[g]=i,f[g]=e;for(e=h.next;e!==h;e=e.next)for(var v=0;v<3;++v)i=e.coords[v],i<p[v]&&(p[v]=i,m[v]=e),i>c[v]&&(c[v]=i,f[v]=e);var x=0;if(c[1]-p[1]>c[0]-p[0]&&(x=1),c[2]-p[2]>c[x]-p[x]&&(x=2),p[x]>=c[x]){t[0]=0,t[1]=0,t[2]=1;return}for(l=0,r=m[x],o=f[x],a[0]=r.coords[0]-o.coords[0],a[1]=r.coords[1]-o.coords[1],a[2]=r.coords[2]-o.coords[2],e=h.next;e!==h;e=e.next)u[0]=e.coords[0]-o.coords[0],u[1]=e.coords[1]-o.coords[1],u[2]=e.coords[2]-o.coords[2],d[0]=a[1]*u[2]-a[2]*u[1],d[1]=a[2]*u[0]-a[0]*u[2],d[2]=a[0]*u[1]-a[1]*u[0],s=d[0]*d[0]+d[1]*d[1]+d[2]*d[2],s>l&&(l=s,t[0]=d[0],t[1]=d[1],t[2]=d[2]);l<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(a)]=1)},n.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,r=this.mesh.vHead,o,i=0,s=t.next;s!==t;s=s.next)if(o=s.anEdge,!(o.winding<=0))do i+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==s.anEdge);if(i<0){for(e=r.next;e!==r;e=e.next)e.t=-e.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},n.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],r,o,i=!1;e[0]=this.normal[0],e[1]=this.normal[1],e[2]=this.normal[2],!e[0]&&!e[1]&&!e[2]&&(this.computeNormal_(e),i=!0),r=this.sUnit,o=this.tUnit;var s=this.longAxis_(e);r[s]=0,r[(s+1)%3]=1,r[(s+2)%3]=0,o[s]=0,o[(s+1)%3]=0,o[(s+2)%3]=e[s]>0?1:-1;for(var l=t.next;l!==t;l=l.next)l.s=this.dot_(l.coords,r),l.t=this.dot_(l.coords,o);i&&this.checkOrientation_();for(var c=!0,p=t.next;p!==t;p=p.next)c?(this.bmin[0]=this.bmax[0]=p.s,this.bmin[1]=this.bmax[1]=p.t,c=!1):(p.s<this.bmin[0]&&(this.bmin[0]=p.s),p.s>this.bmax[0]&&(this.bmax[0]=p.s),p.t<this.bmin[1]&&(this.bmin[1]=p.t),p.t>this.bmax[1]&&(this.bmax[1]=p.t))},n.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.prototype.tessellateMonoRegion_=function(t,e){var r,o;if(r=e.anEdge,!(r.Lnext!==r&&r.Lnext.Lnext!==r))throw"Mono region invalid";for(;le.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;le.vertLeq(r.Org,r.Dst);r=r.Lnext);o=r.Lprev;for(var i=void 0;r.Lnext!==o;)if(le.vertLeq(r.Dst,o.Org)){for(;o.Lnext!==r&&(le.edgeGoesLeft(o.Lnext)||le.edgeSign(o.Org,o.Dst,o.Lnext.Dst)<=0);)i=t.connect(o.Lnext,o),o=i.Sym;o=o.Lprev}else{for(;o.Lnext!==r&&(le.edgeGoesRight(r.Lprev)||le.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)i=t.connect(r,r.Lprev),r=i.Sym;r=r.Lnext}if(o.Lnext===r)throw"Mono region invalid";for(;o.Lnext.Lnext!==r;)i=t.connect(o.Lnext,o),o=i.Sym;return!0},n.prototype.tessellateInterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)if(e=r.next,r.inside&&!this.tessellateMonoRegion_(t,r))return!1;return!0},n.prototype.discardExterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)e=r.next,r.inside||t.zapFace(r)},n.prototype.setWindingNumber_=function(t,e,r){for(var o,i=t.eHead.next;i!==t.eHead;i=o)o=i.next,i.Rface.inside!==i.Lface.inside?i.winding=i.Lface.inside?e:-e:r?t.delete(i):i.winding=0},n.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},n.prototype.outputPolymesh_=function(t,e,r,o){var i,s=0,l=0,c;r>3&&t.mergeConvexFaces(r);for(var p=t.vHead.next;p!==t.vHead;p=p.next)p.n=-1;for(var a=t.fHead.next;a!==t.fHead;a=a.next)if(a.n=-1,!!a.inside){i=a.anEdge,c=0;do{var p=i.Org;p.n===-1&&(p.n=l,l++),c++,i=i.Lnext}while(i!==a.anEdge);if(c>r)throw"Face vertex greater that support polygon";a.n=s,++s}this.elementCount=s,e===Ze.CONNECTED_POLYGONS&&(s*=2),this.elements=[],this.elements.length=s*r,this.vertexCount=l,this.vertices=[],this.vertices.length=l*o,this.vertexIndices=[],this.vertexIndices.length=l;for(var p=t.vHead.next;p!==t.vHead;p=p.next)if(p.n!==-1){var u=p.n*o;this.vertices[u+0]=p.coords[0],this.vertices[u+1]=p.coords[1],o>2&&(this.vertices[u+2]=p.coords[2]),this.vertexIndices[p.n]=p.idx}for(var d=0,a=t.fHead.next;a!==t.fHead;a=a.next)if(!!a.inside){i=a.anEdge,c=0;do{var p=i.Org;this.elements[d++]=p.n,c++,i=i.Lnext}while(i!==a.anEdge);for(var f=c;f<r;++f)this.elements[d++]=-1;if(e===Ze.CONNECTED_POLYGONS){i=a.anEdge;do this.elements[d++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==a.anEdge);for(var m=c;m<r;++m)this.elements[d++]=-1}}},n.prototype.outputContours_=function(t,e){var r,o,i=0,s=0;this.vertexCount=0,this.elementCount=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){o=r=l.anEdge;do this.vertexCount++,r=r.Lnext;while(r!==o);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*e,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var c=0,p=0,a=0;i=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){s=0,o=r=l.anEdge;do this.vertices[c++]=r.Org.coords[0],this.vertices[c++]=r.Org.coords[1],e>2&&(this.vertices[c++]=r.Org.coords[2]),this.vertexIndices[p++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,s++,r=r.Lnext;while(r!==o);this.elements[a++]=i,this.elements[a++]=s,i+=s}},n.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new lf),t<2&&(t=2),t>3&&(t=3);for(var r=null,o=0;o<e.length;o+=t)r===null?(r=this.mesh.makeEdge(),this.mesh.splice(r,r.Sym)):(this.mesh.splitEdge(r),r=r.Lnext),r.Org.coords[0]=e[o+0],r.Org.coords[1]=e[o+1],t>2?r.Org.coords[2]=e[o+2]:r.Org.coords[2]=0,r.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(r),r.winding=1,r.Sym.winding=-1},n.prototype.tesselate=function(t,e,r,o,i,s){if(t===void 0&&(t=Me.ODD),e===void 0&&(e=Ze.POLYGONS),s===void 0&&(s=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,i&&(this.normal[0]=i[0],this.normal[1]=i[1],this.normal[2]=i[2]),this.windingRule=t,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),pS.computeInterior(this,s);var l=this.mesh;return e===Ze.BOUNDARY_CONTOURS?this.setWindingNumber_(l,1,!0):this.tessellateInterior_(l),s&&l.check(),e===Ze.BOUNDARY_CONTOURS?this.outputContours_(l,o):this.outputPolymesh_(l,e,r,o),!0},n}();function Io(n){var t=n.windingRule,e=t===void 0?Me.ODD:t,r=n.elementType,o=r===void 0?Ze.POLYGONS:r,i=n.polySize,s=i===void 0?3:i,l=n.vertexSize,c=l===void 0?2:l,p=n.normal,a=p===void 0?[0,0,1]:p,u=n.contours,d=u===void 0?[]:u,f=n.strict,m=f===void 0?!0:f,h=n.debug,g=h===void 0?!1:h;if(!d&&m)throw new Error("Contours can't be empty");if(!!d){var v=new dS;n.edgeCreateCallback&&(v.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(v.vertexIdCallback=n.vertexIdCallback);for(var x=0;x<d.length;x++)v.addContour(c||2,d[x]);return v.tesselate(e,o,s,c,a,m),{vertices:v.vertices,vertexIndices:v.vertexIndices,vertexCount:v.vertexCount,elements:v.elements,elementCount:v.elementCount,mesh:g?v.mesh:void 0}}}var o3=Me.ODD,n3=Me.NONZERO,i3=Me.POSITIVE,s3=Me.NEGATIVE,a3=Me.ABS_GEQ_TWO,l3=Ze.POLYGONS,c3=Ze.CONNECTED_POLYGONS,u3=Ze.BOUNDARY_CONTOURS;var _n=class extends Po.BufferGeometry{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Me.ODD;this.elementType=Ze.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:Me.ODD,elementType:Ze.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),s=this._shape.shapeHoles.map(m=>m.extractShapePointsToFlatArray([],this._curveSegments)),l,c=!0,p=!0,a,u;for(let m=0,h=i.length/2;m<h;m++){let g=m*2,v=i[g+0],x=i[g+1];if(a!==void 0&&v!==a&&(c=!1),u!==void 0&&x!==u&&(p=!1),a=v,u=x,!c&&!p)break}!c&&!p&&(l=Io({contours:[i,...s],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let d=l?.vertexCount??1,f=l?.elementCount??1;if(this._positionAttribute=new Po.BufferAttribute(new Float32Array(d*3),3),this._normalAttribute=new Po.BufferAttribute(new Float32Array(d*3),3),this._uvAttribute=new Po.BufferAttribute(new Float32Array(d*2),2),this._indexAttribute=new Po.BufferAttribute(new Uint32Array(f*3),1),l){let m=1/0,h=-1/0,g=1/0,v=-1/0;for(let S=0,b=d;S<b;S++){let I=S*2,_=l.vertices[I+0],y=l.vertices[I+1];_<m&&(m=_),_>h&&(h=_),y<g&&(g=y),y>v&&(v=y)}let x=h-m,w=v-g;for(let S=0,b=d;S<b;S++){let I=S*2,_=l.vertices[I+0],y=l.vertices[I+1],P=(_-m)/x,A=(y-g)/w;this._positionAttribute.setXYZ(S,_,y,0),this._normalAttribute.setXYZ(S,0,0,1),this._uvAttribute.setXY(S,P,A)}for(let S=0,b=f;S<b;S++){let I=S*3,_=l.elements[I+0],y=l.elements[I+1],P=l.elements[I+2];this._indexAttribute.setX(I+0,_),this._indexAttribute.setX(I+1,y),this._indexAttribute.setX(I+2,P)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(l?.elementCount??1)*3)}clone(){let e=new _n(this._shape,this._curveSegments);return e.userData=ui(this.userData),e}};var Oo=require("three");var Sa=class{constructor(t=256,e=!1){this.capacity=t,this.size=0,this.debug=e,this.debug&&console.log(`allocating with cap ${t}`);let r=t*Sa.eSize;this.buffer=new ArrayBuffer(r);let o=Float32Array.BYTES_PER_ELEMENT,i=0;this.positions=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.normals=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.uvs=new Float32Array(this.buffer,i*o,2*t)}realloc(t,e=!1){if(t<this.size)throw Error("cannot shrink buffer");if(t<=this.capacity&&!e)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${t}`);let r=t*Sa.eSize,o=new ArrayBuffer(r),i=Float32Array.BYTES_PER_ELEMENT,s=0,l=new Float32Array(o,s*i,3*t);s+=3*t;let c=new Float32Array(o,s*i,3*t);s+=3*t;let p=new Float32Array(o,s*i,2*t);l.set(this.positions.slice(0,this.size*3)),c.set(this.normals.slice(0,this.size*3)),p.set(this.uvs.slice(0,this.size*2)),this.buffer=o,this.positions=l,this.normals=c,this.uvs=p,this.capacity=t}get(t=1){let e=this.size+t;if(e>this.capacity){let o=this.capacity;for(;e>o;)o*=2;this.realloc(o)}let r=this.size;return this.size=e,r}reserve(t){let e=this.size+t;e>this.capacity&&this.realloc(e)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},bi=Sa;bi.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Vl=(n,t)=>([e,r])=>(r<e&&(r+=t),(n>=e?n:n+t)<=r),Tn=class extends Oo.BufferGeometry{constructor(e,r,o=0,i=12,s=3,l=Me.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=r,this._bevel=o,this._curveSegments=i,this._bevelSegmentsInput=s,o<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(o,r/2-1e-12),this._bevelSegments=Math.floor(s));let c=this._shape.extractShapePointsToFlatArray([],i),p=this._shape.shapeHoles.map(y=>{let P=y.extractShapePointsToFlatArray([],i),A=[];for(let O=P.length-1;O>=1;O-=2){let T=P[O-1],L=P[O-0];A.push(T,L)}return A}),a=Io({windingRule:l,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[c]}),u=Io({windingRule:Me.ODD,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...p]});if(!a)throw new Error("error generating geometry");let d=a.elementCount;if(u){a.elementCount+=u.elementCount;for(let y=0;y<u.elements.length;y++){let P=u.elements[y],A=y%2===0?a.vertexCount:0;a.elements.push(P+A)}for(let y=0;y<u.vertexIndices.length;y++){let P=u.vertexIndices[y],A=a.vertexCount;a.vertexIndices.push(P+A)}for(let y=0;y<u.vertices.length;y++){let P=u.vertices[y];a.vertices.push(P)}}let f=1/0,m=-1/0,h=1/0,g=-1/0;for(let y=0,P=a.vertexCount;y<P;y++){let A=y*2,O=a.vertices[A+0],T=a.vertices[A+1];O<f&&(f=O),O>m&&(m=O),T<h&&(h=T),T>g&&(g=T)}this._minX=f,this._minY=h,this._width=m-f,this._height=g-h;let v=a.vertexCount*2*(2+this._bevelSegments);this._buffer=new bi(v);let x=[],w=[];for(let y=a.elementCount-1;y>=0;y--){let P=y>=d,A=y*2,O=a.elements[A+0],T=a.elements[A+1],L=O+T,B={start:O,count:T,normals:[],continuous:[],concave:[]},j=O,te=L-1,ne=O+1,ae=this._shape.roundedCurves.length;do{let F=j-O,M=a.vertices[te*2+0],D=a.vertices[te*2+1],E=a.vertices[j*2+0],k=a.vertices[j*2+1],Q=a.vertices[ne*2+0],H=a.vertices[ne*2+1],V=E-M,R=k-D,z=Math.sqrt(V*V+R*R);V/=z,R/=z;let Z=E-Q,re=k-H,se=Math.sqrt(Z*Z+re*re);Z/=se,re/=se,B.normals[F*2+0]=-re,B.normals[F*2+1]=Z,B.concave[F]=V*re-R*Z>0;let ee=a.vertexIndices[j];if(Array.isArray(ee))B.continuous[F]=!1;else{let[J,K]=this._shape.getCurveIndexFromVertexId(ee-1,!0);if(K>0&&K<1)B.continuous[F]=!0;else{let X=K===1?J+1:J-1;X=(X+ae)%ae;let me=K===1?0:1,de=this._shape.roundedCurves[J].getTangent(K),xe=this._shape.roundedCurves[X].getTangent(me);B.continuous[F]=de.dot(xe)>.95}}P&&(B.normals[F*2+0]*=-1,B.normals[F*2+1]*=-1),[te,j,ne]=[j,ne,ne+1],ne>=L&&(ne-=T)}while(ne!==O+1);let U=[];U.push({bevelI:0,angle:0,size:0,boundary:{vertices:a.vertices.slice(O*2,L*2),vertexCount:T,vertexIndices:new Array(T).fill(!0).map((F,M)=>[M,M]),elements:[0,T],elementCount:1,mesh:null},reverseMap:[],insetPoints:a.vertices.slice(O*2,L*2)});for(let F=1;F<=this._bevelSegments;F++){let M=F/this._bevelSegments*Math.PI/2,D=(1-Math.cos(M))*this._bevelSize,E=[],k=[],Q=[],H=[],V=0;for(let z=0;z<T;z++){let Z=z*2,re=(z-1+T)%T*2,se=a.vertices[B.start*2+Z+0],ee=a.vertices[B.start*2+Z+1],J=-B.normals[re+0]*D,K=-B.normals[re+1]*D,X=-B.normals[Z+0]*D,me=-B.normals[Z+1]*D;if(B.concave[z]||!B.concave[z]&&P){let de=Math.atan2(K,J),xe=Math.atan2(me,X);xe>de&&(xe-=Math.PI*2);let nt=xe-de;if(B.continuous[z]||P){let Ne=de+nt/2,Pe=Math.cos(Ne)*D,Le=Math.sin(Ne)*D;E[2*V+0]=se+Pe*(P?-1:1),E[2*V+1]=ee+Le*(P?-1:1),H[V]=z,V++}else{let Ne=Math.max(1,Math.floor(i/4*Math.abs(nt)/Math.PI));for(let Pe=0;Pe<=Ne;Pe++){let Le=de+nt*(Pe/Ne),Ut=Math.cos(Le)*D,kr=Math.sin(Le)*D;E[2*V+0]=se+Ut,E[2*V+1]=ee+kr,H[V]=z,V++}}}else E[2*V+0]=se+J,E[2*V+1]=ee+K,H[V]=z,k[z]=V,V++,E[2*V+0]=se,E[2*V+1]=ee,H[V]=z,V++,E[2*V+0]=se+X,E[2*V+1]=ee+me,H[V]=z,Q[z]=V,V++}let R=Io({windingRule:Me.POSITIVE,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[E],edgeCreateCallback:z=>{let re=z.Org.idx,se=H[re],ee=H[(re+1)%H.length];z.idx=[se,ee],z.Sym.idx=[ee,se]},vertexIdCallback:z=>{let Z=z.Lprev.idx;return[Z?Z[1]:0,z.idx[0]]}});if(!R)throw console.log("Error"),new Error(`error generating bevel geometry for ${F}'th loop`);if(!R.vertexCount)break;for(let z=0;z<R.vertexIndices.length;z++){let[Z,re]=R.vertexIndices[z];if(Z===re)continue;let se=re;re<Z&&(se+=T);for(let ee=Z;ee<se;ee++){let J=ee%T,K=(ee+1)%T;if(!B.continuous[J]||!B.continuous[K]){R.vertexIndices[z]=[Z,J],R.vertexIndices.splice(z+1,0,[K,re]),R.vertices.splice((z+1)*2,0,R.vertices[z*2],R.vertices[z*2+1]);break}}}U.push({bevelI:F,angle:M,size:D,boundary:R,reverseMap:H,insetPoints:E})}let W=(F,M,D)=>{let E=0,k=F.boundary.vertexIndices.length;for(;E<k&&D(F.boundary.vertexIndices[M]);)M=(M+1)%k,E++;return E},q=x.length;for(let F=1;F<U.length;F++){let M=U[F-1],D=U[F],E=M.boundary.vertexIndices.length,k=D.boundary.vertexIndices.length;if(!E||!k)break;let Q=B.concave.length,H=0,V=Vl(H,T);for(;!M.boundary.vertexIndices.filter(V).length||!D.boundary.vertexIndices.filter(V).length;)H++,V=Vl(H,T);let R=M.boundary.vertexIndices.findIndex(V),z=D.boundary.vertexIndices.findIndex(V);do R=(R+1)%E;while(V(M.boundary.vertexIndices[R]));do z=(z+1)%k;while(V(D.boundary.vertexIndices[z]));H=(H+1)%T;let Z=H,re=this.buildBevelVert(B,M,(R-1+E)%E),se=this.buildBevelVert(B,D,(z-1+k)%k),ee=re,J=se,K,X,me=!1;do{V=Vl(H,T);let de=W(M,R,V),xe=W(D,z,V),nt=me;if(me=!1,de&&!xe){for(let Ne=0;Ne<de;Ne++)K=this.buildBevelVert(B,M,(R+Ne)%E,Ne/(de-1)),x.push(ee.topN,K.topP,J.topN),x.push(K.bottomP,ee.bottomN,J.bottomN),ee=K;me=!0}else if(!de&&xe)for(let Ne=0;Ne<xe;Ne++)X=this.buildBevelVert(B,D,(z+Ne)%k,Ne/(xe-1)),x.push(J.topN,ee.topP,X.topP),x.push(ee.bottomP,J.bottomN,X.bottomP),J=X;else if(de&&xe)if(K=this.buildBevelVert(B,M,R,0),X=this.buildBevelVert(B,D,z,0),nt?(x.push(ee.topN,X.topP,J.topN),x.push(ee.topN,K.topP,X.topP),x.push(X.bottomP,ee.bottomN,J.bottomN),x.push(X.bottomP,K.bottomP,ee.bottomN)):(x.push(J.topN,ee.topN,K.topP),x.push(J.topN,K.topP,X.topP),x.push(K.bottomP,ee.bottomN,J.bottomN),x.push(K.bottomP,J.bottomN,X.bottomP)),ee=K,J=X,de===xe)for(let Ne=1;Ne<de;Ne++)K=this.buildBevelVert(B,M,(R+Ne)%E,Ne/(de-1)),X=this.buildBevelVert(B,D,(z+Ne)%k,Ne/(xe-1)),x.push(ee.topN,K.topP,J.topN),x.push(J.topN,K.topP,X.topP),x.push(K.bottomP,ee.bottomN,J.bottomN),x.push(K.bottomP,J.bottomN,X.bottomP),ee=K,J=X;else if(de>xe){let Ne=de/xe,Pe=0;for(let Le=1;Le<de;Le++)K=this.buildBevelVert(B,M,(R+Le)%E,Le/(de-1)),x.push(ee.topN,K.topP,J.topN),x.push(K.bottomP,ee.bottomN,J.bottomN),ee=K,Le>(Pe+1)*Ne&&(Pe++,X=this.buildBevelVert(B,D,(z+Pe)%k,Pe/(xe-1)),x.push(J.topN,K.topP,X.topP),x.push(K.bottomP,J.bottomN,X.bottomP),J=X)}else{let Ne=xe/de,Pe=0;for(let Le=1;Le<xe;Le++)X=this.buildBevelVert(B,D,(z+Le)%k,Le/(xe-1)),x.push(J.topN,K.topP,X.topP),x.push(K.bottomP,J.bottomN,X.bottomP),J=X,Le>(Pe+1)*Ne&&(Pe++,K=this.buildBevelVert(B,M,(R+Pe)%E,Pe/(de-1)),x.push(ee.topN,K.topP,J.topN),x.push(K.bottomP,ee.bottomN,J.bottomN),ee=K)}R=(R+de)%E,z=(z+xe)%k,H=(H+1)%Q}while(H!==Z)}{let F=U[0];for(let M=0,D=F.boundary.vertexCount;M<D;M++){let E=this.buildBevelVert(B,F,M),k=this.buildBevelVert(B,F,(M+1)%D);x.push(k.topP,E.topN,E.bottomN),x.push(k.topP,E.bottomN,k.bottomP)}}if(P){let F=[];for(let M=x.length-1;M>=q+2;M-=3){let D=x[M-2],E=x[M-1],k=x[M-0];F.push(k,E,D)}x.splice(q,x.length-q,...F)}if(P){let F=[];for(let M=U[U.length-1].boundary.vertices.length-1;M>=1;M-=2){let D=U[U.length-1].boundary.vertices[M-1],E=U[U.length-1].boundary.vertices[M-0];F.push(D,E)}w.push(F)}if(!P){let F=U[U.length-1],M=Io({windingRule:U.length>1?Me.POSITIVE:Me.ODD,elementType:Ze.POLYGONS,vertexSize:2,strict:!0,contours:[F.insetPoints,...w]});if(!M)throw new Error("Error generating geometry for surface");p.length===0&&Object.assign(this,{capStartIndex:x.length});for(let D=0;D<M.elementCount*3;D+=3){let E=this.buildSurfaceVert(M,M.elements[D+0]),k=this.buildSurfaceVert(M,M.elements[D+1]),Q=this.buildSurfaceVert(M,M.elements[D+2]);x.push(E.top,k.top,Q.top),x.push(Q.bottom,k.bottom,E.bottom)}}this.vertexCache={}}this._buffer.shrink();let S=new Oo.BufferAttribute(Uint32Array.from(x),1),b=new Oo.BufferAttribute(this._buffer.positions,3),I=new Oo.BufferAttribute(this._buffer.normals,3),_=new Oo.BufferAttribute(this._buffer.uvs,2);b.needsUpdate=!0,I.needsUpdate=!0,_.needsUpdate=!0,S.needsUpdate=!0,this.setAttribute("position",b),this.setAttribute("normal",I),this.setAttribute("uv",_),this.setIndex(S)}buildSurfaceVert(e,r){let o=r.toString();if(o in this.vertexCache)return this.vertexCache[o];let i=e.vertices[r*2+0],s=e.vertices[r*2+1],l=(i-this._minX)/this._width,c=(s-this._minY)/this._height,p=this._buffer.get(2),a=p*3,u=p*2,d={top:p+0,bottom:p+1};return this._buffer.positions[a+0]=i,this._buffer.positions[a+1]=s,this._buffer.positions[a+2]=this._depth,this._buffer.normals[a+0]=0,this._buffer.normals[a+1]=0,this._buffer.normals[a+2]=1,this._buffer.uvs[u+0]=l,this._buffer.uvs[u+1]=c,this._buffer.positions[a+3]=i,this._buffer.positions[a+4]=s,this._buffer.positions[a+5]=0,this._buffer.normals[a+3]=0,this._buffer.normals[a+4]=0,this._buffer.normals[a+5]=-1,this._buffer.uvs[u+2]=l,this._buffer.uvs[u+3]=c,this.vertexCache[o]=d,d}buildBevelVert(e,r,o,i=1){let s=`${r.bevelI}:${o}`;if(s in this.vertexCache)return this.vertexCache[s];let[l,c]=r.boundary.vertexIndices[o],p,a,u,d;l!==c?(a=l,p=c,d=!1,u=e.continuous[a]&&e.continuous[p]):(p=l,a=(p-1+e.count)%e.count,d=e.concave[p]&&r.bevelI>0,u=e.continuous[p]||d);let f=Math.cos(r.angle),m=Math.sin(r.angle),h=o*2,g=p*2,v=a*2,x=r.boundary.vertices[h+0],w=r.boundary.vertices[h+1],S=(1-m)*this._bevelSize,b=(x-this._minX)/this._width,I=(w-this._minY)/this._height,_=e.normals[g+0],y=e.normals[g+1],P=e.normals[v+0],A=e.normals[v+1];if(d){let j=P-_,te=A-y;_=_+j*(1-i),y=y+te*(1-i);let ne=Math.sqrt(_*_+y*y);_/=ne,y/=ne}let O=this._buffer.get(u?2:4),T=O*3,L=O*2,B={i:o,fi:p,topP:O+0,topN:O+0,bottomP:O+1,bottomN:O+1};return this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=w,this._buffer.positions[T+2]=this._depth-S,this._buffer.normals[T+0]=_*f,this._buffer.normals[T+1]=y*f,this._buffer.normals[T+2]=m,this._buffer.uvs[L+0]=b,this._buffer.uvs[L+1]=I,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=w,this._buffer.positions[T+5]=S,this._buffer.normals[T+3]=_*f,this._buffer.normals[T+4]=y*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[L+2]=I,this._buffer.uvs[L+3]=b,u||(O+=2,T+=6,L+=4,B.topP=O+0,B.bottomP=O+1,this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=w,this._buffer.positions[T+2]=this._depth-S,this._buffer.normals[T+0]=P*f,this._buffer.normals[T+1]=A*f,this._buffer.normals[T+2]=m,this._buffer.uvs[L+0]=b,this._buffer.uvs[L+1]=I,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=w,this._buffer.positions[T+5]=S,this._buffer.normals[T+3]=P*f,this._buffer.normals[T+4]=A*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[L+2]=I,this._buffer.uvs[L+3]=b),this.vertexCache[s]=B,B}clone(){let e=new Tn(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=ui(this.userData),e}};var dt=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:Me.ODD},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),s=n.shape??t?.shape,l=s?.roundness??e.roundness;s!==void 0&&(s instanceof _e?(s.width!==r||s.height!==o)&&s.applySize(r,o):s=new _e(r,o).fromJSON(s),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&s.update(!1));let c=s??new _e(r,o);return{parameters:Object.assign(e,{width:r,height:o,depth:i,roundness:l}),shape:c}}static build(n){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:r,subdivisions:o,roundness:i,windingRule:s}=n.parameters;n.shape.roundness=i;let l;return t<=0?l=new _n(n.shape,o,{windingRule:s}):l=new Tn(n.shape,t,e,o,r,s),Object.assign(l,{userData:{...n,type:"VectorGeometry"}})}};var ka=require("three");var mf=require("three");var Ve=require("three"),ff=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},n.parameters),r=e.width/2,o=e.radiusTop??r,i=e.radiusBottom??r;return o===i?(o=r,i=r):o>i?(o=r,i=i*r/o):(o=o*r/i,i=r),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),radiusTop:o,radiusBottom:i})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,radiusTop:p,radiusBottom:a,cornerRadius:u,cornerSegments:d,hollow:f}=n.parameters,m;return u||f?m=new Si(p,a,r,o,i,s,l,c*Math.PI/180,u,u,d,f):m=new Ve.CylinderGeometry(p,a,r,o,i,s,l,c*Math.PI/180),m.scale(1,1,e/t),Object.assign(m,{userData:{...n,type:"CylinderGeometry"}})}};function io(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function df(n){return new Ve.Vector2(n.y,-n.x)}var Si=class extends Ve.BufferGeometry{constructor(t,e,r,o,i,s,l,c,p,a,u,d,f=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,e=e!==void 0?e:1,r=r||1,o=Math.floor(o)||8,i=Math.floor(i)||1,s=s!==void 0?s:!1,l=l!==void 0?l:0,c=c!==void 0?c:Math.PI*2,s&&(p=0,a=0);let m=[],h=[],g=[],v=[],x=0,w=r/2,S=new Ve.Vector3,b=new Ve.Vector3;f&&t==0&&(t=p),f&&e==0&&(e=a);let I=new Ve.Vector2(t,w),_=new Ve.Vector2(e,-w),y=null,P=null,A=null,O=null,T=I.clone().sub(_),L=0,B=0,j=0;d>0&&(L=Math.min(t,e)*(1-d),B=t-L,j=e-L);let te=I.clone();te.x-=L;let ne=Math.PI-T.angle(),ae=T.angle(),U=Math.tan(ae/2),W=Math.tan(ne/2),q=U+W,F=d?q:W,M=d?q:U;if(p=Math.min(p,(t-B)/F,T.length()/q),a=Math.min(a,(e-j)/M,T.length()/q),p>0){let V=p/U;y=I.clone().sub(new Ve.Vector2(V,p)),d&&(A=y.clone(),A.x-=L-q*p),I.sub(T.clone().setLength(V))}if(a>0){let V=a/W;P=_.clone().sub(new Ve.Vector2(V,-a)),_.add(T.clone().setLength(V)),d&&(O=P.clone(),O.x-=L-q*a,te.sub(T.clone().setLength(V)))}T=I.clone().sub(_);let D=T.length()<.5,E=[];for(let V=0;V<=o;V++){let R=[],z=V/o,Z=z*c+l,re=new Ve.Vector2(Math.sin(Z),Math.cos(Z));O&&P?(k(R,z,re,ne,a,O,-1,!0),k(R,z,re,ae,a,P,-1,!1)):P?(Q(R,re,P.x,0,-1),k(R,z,re,ae,a,P,-1,!1)):s||Q(R,re,e,j,-1);let se=df(T).normalize();if(io(se,re,S),!D)for(let ee=0;ee<=i;ee++){let J=ee/i,K=T.clone().multiplyScalar(J).add(_);io(K,re,b),h.push(b.x,b.y,b.z),g.push(S.x,S.y,S.z),v.push(z,.5+b.y/r),R.push(x++)}if(A&&y?(k(R,z,re,ne,p,y,1,!1),k(R,z,re,ae,p,A,1,!0)):y?(k(R,z,re,ne,p,y,1,!1),Q(R,re,y.x,0,1)):s||Q(R,re,t,B,1),d&&!D){let ee=df(T).multiplyScalar(-1).normalize();io(ee,re,S);for(let J=0;J<=i;J++){let K=J/i,X=T.clone().multiplyScalar(-K).add(te);io(X,re,b),h.push(b.x,b.y,b.z),g.push(S.x,S.y,S.z),v.push(z,.5+b.y/r),R.push(x++)}}d&&!s&&R.push(R[0]),E.push(R)}for(let V=0;V<E.length-1;V++)for(let R=0;R<E[0].length-1;R++){if(s&&d&&R==i)continue;let z=E[V][R],Z=E[V+1][R],re=E[V+1][R+1],se=E[V][R+1],ee=h[re*3+0],J=h[re*3+2];m.push(z,Z,se),(ee!=0||J!=0)&&m.push(Z,re,se)}c<Math.PI*2&&(H(-1,E[0],l),H(1,E[E.length-1],l+c)),this.setIndex(m),this.setAttribute("position",new Ve.Float32BufferAttribute(h,3)),this.setAttribute("normal",new Ve.Float32BufferAttribute(g,3)),this.setAttribute("uv",new Ve.Float32BufferAttribute(v,2));function k(V,R,z,Z,re,se,ee,J){for(let K=0;K<u+1;K++){let X=K/u,me=ee<0?X:1-X;J&&(me-=1),me*=Z;let de=new Ve.Vector2(Math.sin(me),Math.cos(me)*ee),xe=de.clone().multiplyScalar(re).add(se);io(xe,z,b),h.push(b.x,b.y,b.z),io(de,z,S),g.push(S.x,S.y,S.z),v.push(R,.5+b.y/r),V.push(x++)}}function Q(V,R,z,Z,re){let se=new Ve.Vector3,ee=new Ve.Vector2,J=[z,Z];re<0&&J.reverse();for(let K of J)ee.set(K,w*re),io(ee,R,se),h.push(se.x,se.y,se.z),g.push(0,re,0),v.push(.5,.5),V.push(x++)}function H(V,R,z){let Z=new Ve.Vector2(Math.sin(z),Math.cos(z)),re=new Ve.Vector2(-Math.cos(z),Math.sin(z)),se=new Ve.Vector3,ee=V<0?(X,me,de)=>m.push(X,me,de):(X,me,de)=>m.push(X,de,me),J=new Ve.Vector2((t+e+B+j)/4,0);io(J,Z,se),h.push(se.x,se.y,se.z),g.push(re.x,0,re.y),v.push(.5,.5);let K=x++;for(let X of R){let me=h.slice(X*3,X*3+3);h.push(...me),g.push(re.x,0,re.y);let de=v.slice(X*2,X*2+2);v.push(...de),x++}for(let X=K+1;X<x-1;X++)ee(K,X,X+1);ee(K,x-1,K+1)}}};var hf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,cornerRadiusTop:p,cornerRadiusBottom:a,cornerSegments:u}=n.parameters,d;return p>0||a>0||c<360?d=new Si(0,t/2,r,o,i,s,l,c*Math.PI/180,p,a,u,0,!0):d=new mf.ConeGeometry(t/2,r,o,i,s),d.scale(1,1,e/t),Object.assign(d,{userData:{...n,type:"ConeGeometry"}})}};var Pt=require("three"),gf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,widthSegments:o,heightSegments:i,depthSegments:s,cornerRadius:l,cornerSegments:c}=n.parameters,p;return l==0?p=new Pt.BoxGeometry(t,e,r,o,i,s):p=new zl(t,e,r,o,i,s,l,c),Object.assign(p,{userData:{...n,type:"CubeGeometry"}})}},Fl=Math.PI/2,zl=class extends Pt.BufferGeometry{constructor(t=1,e=1,r=1,o=1,i=1,s=1,l=0,c=4){super(),this.type="BoxGeometry";let p=this;o=Math.floor(o),i=Math.floor(i),s=Math.floor(s),c=Math.floor(c),l=Math.min(l,t/2,e/2,r/2);let a=[],u=[],d=[],f=[],m=0,h=0;g("z","y","x",-1,-1,r,e,t,s,i,0),g("z","y","x",1,-1,r,e,-t,s,i,1),g("x","z","y",1,1,t,r,e,o,s,2),g("x","z","y",1,-1,t,r,-e,o,s,3),g("x","y","z",1,-1,t,e,r,o,i,4),g("x","y","z",-1,-1,t,e,-r,o,i,5),l>0&&(v("z","y","x",-1,-1,1,r,e,t,s,0),v("z","y","x",1,-1,-1,r,e,t,s,1),v("z","y","x",-1,1,-1,r,e,t,s,1),v("z","y","x",1,1,1,r,e,t,s,0),v("x","y","z",-1,-1,-1,t,e,r,o,0),v("x","y","z",1,-1,1,t,e,r,o,1),v("x","y","z",-1,1,1,t,e,r,o,0),v("x","y","z",1,1,-1,t,e,r,o,1),v("y","x","z",-1,-1,1,e,t,r,i,0),v("y","x","z",1,-1,-1,e,t,r,i,1),v("y","x","z",1,1,1,e,t,r,i,1),v("y","x","z",-1,1,-1,e,t,r,i,0),x(1,1,1),x(-1,1,1),x(1,-1,1),x(-1,-1,1),x(1,1,-1),x(-1,1,-1),x(1,-1,-1),x(-1,-1,-1)),this.setIndex(a),this.setAttribute("position",new Pt.Float32BufferAttribute(u,3)),this.setAttribute("normal",new Pt.Float32BufferAttribute(d,3)),this.setAttribute("uv",new Pt.Float32BufferAttribute(f,2));function g(w,S,b,I,_,y,P,A,O,T,L){let B=(y-2*l)/O,j=(P-2*l)/T,te=y/2-l,ne=P/2-l,ae=A/2,U=O+1,W=T+1,q=0,F=0,M=new Pt.Vector3;for(let D=0;D<W;D++){let E=D*j-ne;for(let k=0;k<U;k++){let Q=k*B-te;M[w]=Q*I,M[S]=E*_,M[b]=ae,u.push(M.x,M.y,M.z),M[w]=0,M[S]=0,M[b]=A>0?1:-1,d.push(M.x,M.y,M.z),f.push(k/O),f.push(1-D/T),q+=1}}for(let D=0;D<T;D++)for(let E=0;E<O;E++){let k=m+E+U*D,Q=m+E+U*(D+1),H=m+(E+1)+U*(D+1),V=m+(E+1)+U*D;a.push(k,Q,V),a.push(Q,H,V),F+=6}p.addGroup(h,F,L),h+=F,m+=q}function v(w,S,b,I,_,y,P,A,O,T,L){let B=(P-2*l)/T,j=P/2-l,te=A/2-l,ne=O/2,ae=T+1,U=0,W=0,q=new Pt.Vector3,F=new Pt.Vector3;for(let M=0;M<c+1;M++){let D=M/c*Fl,E=Math.sin(D)*l,k=(1-Math.cos(D))*l,Q=Math.sin(D),H=Math.cos(D);q[S]=(te+E)*_,q[b]=(ne-k)*y,F[w]=0,F[S]=Q*Math.sign(q[S]),F[b]=H*Math.sign(q[b]);for(let V=0;V<ae;V++){let R=V*B-j;q[w]=R*I,u.push(q.x,q.y,q.z),d.push(F.x,F.y,F.z),f.push(V/T),f.push(0),U+=1}}for(let M=0;M<c;M++)for(let D=0;D<T;D++){let E=m+D+ae*M,k=m+D+ae*(M+1),Q=m+(D+1)+ae*(M+1),H=m+(D+1)+ae*M;a.push(E,k,H),a.push(k,Q,H),W+=6}p.addGroup(h,W,L),h+=W,m+=U}function x(w,S,b){let I=new Pt.Vector3,_=new Pt.Vector3(t/2,e/2,r/2);_.subScalar(l);let y=[],P=w*S*b>0?(O,T,L)=>a.push(O,T,L):(O,T,L)=>a.push(O,L,T);for(let O=0;O<=c;O++){let T=[],L=Fl*(1-O/c),B=Math.cos(L),j=Math.sin(L),te=0;for(let ne=0;ne<=O;ne++){let ae=Math.cos(te),U=Math.sin(te);I.x=B*ae,I.y=j,I.z=B*U;let W=_.clone().addScaledVector(I,l);u.push(w*W.x,S*W.y,b*W.z),d.push(w*I.x,S*I.y,b*I.z),f.push(0,0),T.push(m++),te+=Fl/O}y.push(T)}let A=y.length-1;for(let O=0;O<A;O++){let T=y[O],L=y[O+1],B=T.length-1;P(T[0],L[1],L[0]);for(let j=1;j<=B;j++)P(T[j-1],T[j],L[j]),P(T[j],L[j+1],L[j])}}}};var ke=require("three"),so=class extends ke.BufferGeometry{constructor(t=[],e=[],r="",o=1,i=.2,s=4){super(),this.type="PolyhedronGeometryRound";let l=[],c=[],p=[];a(),u(),this.setAttribute("position",new ke.Float32BufferAttribute(l,3)),this.setAttribute("normal",new ke.Float32BufferAttribute(p,3)),this.setAttribute("uv",new ke.Float32BufferAttribute(c,2));return;function a(){i=Math.min(1-1e-5,i),i==0&&(s=0);let f={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],m=new ke.Vector3,h=m.clone(),g=new ke.Triangle,v=i*o,x=o-v,w=s+1,S=new ke.Vector3,b=(U,W)=>S.subVectors(U,W).normalize(),I=(U,W)=>Array(U).fill(void 0).map(W),_=I(t.length/3,(U,W)=>new ke.Vector3().fromArray(t,W*3).setLength(o)),y=[],P=1e6;for(let U=0;U<_.length;U++){let W=_[U],q=[],F,M,D,E=1e10,k=-1;for(;(k=e.indexOf(U,k+1))!=-1;){let R=k-k%3;F=e[R+(k+1)%3],M=e[R+(k+2)%3],D=W.distanceToSquared(_[F]),E=Math.min(E,D),q.push([F,M,D])}E+=1e-6;let Q=[],H=0,V=q.length;for(let R=0;R<V;R++){[F,M,D]=q[H];let z=y[F]?.includes(U)==!0;D<=E&&Q.push(F+ +z*P),H=q.findIndex(Z=>Z[0]==M)}y.push(Q)}let A=[];{let U=0,W=0,q,F,M=f==3;for(let D=0;D<=s;D++){q=D*(D+1)/2,F=(D+1)*(D+2)/2;for(let E=0;E<s-D;E++)[U,W]=[q+E+D+2,F+E+D+3],A.push(q,F,...M?[W,q]:[U,F],W,U),[q,F]=[U,W];A.push(q,F,q+s+2)}}let O=m.clone(),T=m.clone(),L=m.clone(),B=m.clone(),j=m.clone(),te=[],ne=I(_.length,()=>I(f,()=>m.clone()));for(let U=0;U<_.length;U++){m.copy(_[U]).normalize(),O.copy(m).multiplyScalar(x);let W=y[U];for(let Q=0;Q<W.length;Q++){let H=W[Q],V=W[(Q+1)%f];g.setFromPointsAndIndices(_,U,H%P,V%P),g.b.sub(g.a).setLength(1e10).add(g.a),g.c.sub(g.a).setLength(1e10).add(g.a),g.closestPointToPoint(O,ne[U][Q])}let q=[],F=[],M=[],D=new ke.Vector3;s==0&&[...ne[U]].reduce((Q,H)=>Q.add(H),D).multiplyScalar(1/f);for(let Q=0;Q<f;Q++){let H=[],V=(Q-1+f)%f,R=ne[U][V],z=ne[U][Q];m.copy(R).sub(O),h.copy(z).sub(O);let Z=O.angleTo(m),re=m.angleTo(h),se=Math.cos(Z)*v;s==0?T.copy(D):T.copy(O).setLength(x+se),F.push(se);let ee=[T,R,z];for(let J=0;J<2;J++){let K=ee[J],X=ee[J+1];B.subVectors(K,O),j.subVectors(X,O),L.crossVectors(B,j).normalize();for(let me=0;me<w;me++){let de=[Z,re][J]*me/w;m.copy(B).applyAxisAngle(L,de).add(O),q.push(m.clone()),J&&(b(m,O),H.push([me==0?K:m.clone(),S.clone()]))}J&&(b(X,O),H.push([X,S.clone()]))}M.push(H)}te.push(M);let E=2*w,k=2;for(let Q=0;Q<f;Q++){let H=E*Q,V=E*((Q+1)%f),R=[q[H]];for(let Z=1;Z<w;Z++){B=q[H+Z],j=q[V+Z],R.push(B);for(let re=1,se=Z-k+1;re<=se;re++)m.lerpVectors(B,j,re/(se+1)),m.sub(O).setLength(F[Q]).add(O),R.push(m.clone());R.push(j)}for(let Z=0;Z<w;Z++)R.push(q[Z+w+H]);R.push(q[V+w]);let z=A.map(Z=>R[Z]);l.push(...z.map(Z=>[Z.x,Z.y,Z.z]).flat()),p.push(...z.map(Z=>(b(Z,O),[S.x,S.y,S.z])).flat())}}let ae=[];for(let U=0;U<y.length;U++)for(let W=0;W<f;W++){let q=y[U][W];if(q<P){let F=y[q].findIndex(E=>E%P==U),M=te[U][W],D=te[q][F];for(let E=0;E<w;E++){let k=M[E],Q=D[w-E],H=M[E+1],V=D[w-(E+1)];[k,Q,H,H,Q,V].forEach(R=>{l.push(R[0].x,R[0].y,R[0].z),p.push(R[1].x,R[1].y,R[1].z)})}ae.push(M[0][0],D[w][0],M[w][0],D[0][0])}}for(;ae.length;){let U,W,q,F;[U,W]=ae.splice(0,2);let M=[U];for(;U!=W;)M.push(W),q=ae.indexOf(W),F=q%2,W=ae.splice(q-F,2)[1-F];S.subVectors(M[0],M[1]).cross(m.subVectors(M[0],M[2])).normalize();let D=S.dot(M[0])<0;D&&S.negate();for(let E=1;E<=M.length-2;E++)[M[E+ +D],M[E+1-+D],M[0]].forEach(k=>{l.push(k.x,k.y,k.z),p.push(S.x,S.y,S.z)})}}function u(){let d=new ke.Vector3;for(let _=0;_<l.length;_+=3){d.x=l[_+0],d.y=l[_+1],d.z=l[_+2];let y=b(d)/2/Math.PI+.5,P=I(d)/Math.PI+.5;c.push(y,1-P)}let f=new ke.Vector3,m=new ke.Vector3,h=new ke.Vector3,g=new ke.Vector3,v=new ke.Vector2,x=new ke.Vector2,w=new ke.Vector2,S=(_,y,P,A)=>{A<0&&_.x===1&&(c[y]=_.x-1),P.x===0&&P.z===0&&(c[y]=A/2/Math.PI+.5)};for(let _=0,y=0;_<l.length;_+=9,y+=6){f.set(l[_+0],l[_+1],l[_+2]),m.set(l[_+3],l[_+4],l[_+5]),h.set(l[_+6],l[_+7],l[_+8]),v.set(c[y+0],c[y+1]),x.set(c[y+2],c[y+3]),w.set(c[y+4],c[y+5]),g.copy(f).add(m).add(h).divideScalar(3);let P=b(g);S(v,y+0,f,P),S(x,y+2,m,P),S(w,y+4,h,P)}for(let _=0;_<c.length;_+=6){let y=c[_+0],P=c[_+2],A=c[_+4],O=Math.max(y,P,A),T=Math.min(y,P,A);O>.9&&T<.1&&(y<.2&&(c[_+0]+=1),P<.2&&(c[_+2]+=1),A<.2&&(c[_+4]+=1))}function b(_){return Math.atan2(_.z,-_.x)}function I(_){return Math.atan2(-_.y,Math.sqrt(_.x*_.x+_.z*_.z))}}}static fromJSON(t){return new so(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};var yf=require("three"),xf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new wi(t*.5,i,s):new yf.DodecahedronGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"DodecahedronGeometry"}})}},wi=class extends so{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=1/o,s=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-o,0,-i,o,0,i,-o,0,i,o,-i,-o,0,-i,o,0,i,-o,0,i,o,0,-o,0,-i,o,0,-i,-o,0,i,o,0,i],l=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],c="DodecahedronGeometry";super(s,l,c,t,e,r),this.type=c}static fromJSON(t){return new wi(t.radius,t.corner,t.cornerSides)}};var jl=Math.PI*2;function Ul({x:n,y:t},e,r,o,i){return{x:n*e+o,y:t*r+i}}function fS(n,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=Math.cos(n),o=Math.sin(n),i=Math.cos(n+t),s=Math.sin(n+t);return[{x:r-o*e,y:o+r*e},{x:i+s*e,y:s-i*e},{x:i,y:s}]}function vf(n,t,e,r){let o=n*r-t*e<0?-1:1,i=Math.min(1,Math.max(-1,n*e+t*r));return o*Math.acos(i)}function mS(n,t,e,r,o,i,s,l,c,p){let a=Math.pow(o,2),u=Math.pow(i,2),d=Math.pow(s,2),f=Math.pow(l,2),m=a*u-a*f-u*d;m<0&&(m=0),m/=a*f+u*d,m=Math.sqrt(m)*(c===p?-1:1);let h=m*o/i*l,g=m*-i/o*s,v=h+(n+e)/2,x=g+(t+r)/2,w=(s-h)/o,S=(l-g)/i,b=(-s-h)/o,I=(-l-g)/i,_=vf(1,0,w,S),y=vf(w,S,b,I);return!p&&y>0&&(y-=jl),p&&y<0&&(y+=jl),{centerx:v,centery:x,ang1:_,ang2:y}}function bf({px:n,py:t,cx:e,cy:r,rx:o,ry:i,largeArcFlag:s,sweepFlag:l}){let c=[];if(o===0||i===0)return[];let p=(n-e)/2,a=(t-r)/2;if(p===0&&a===0)return[];o=Math.abs(o),i=Math.abs(i);let u=Math.pow(p,2)/Math.pow(o,2)+Math.pow(a,2)/Math.pow(i,2);u>1&&(o*=Math.sqrt(u),i*=Math.sqrt(u));let d=mS(n,t,e,r,o,i,p,a,s,l),{ang1:f,ang2:m}=d,{centerx:h,centery:g}=d,v=Math.abs(m)/(jl/4);Math.abs(1-v)<1e-7&&(v=1);let x=Math.max(Math.ceil(v),1);m/=x;for(let w=0;w<x;w++)c.push(fS(f,m)),f+=m;return c.map(w=>{let{x:S,y:b}=Ul(w[0],o,i,h,g),{x:I,y:_}=Ul(w[1],o,i,h,g),{x:y,y:P}=Ul(w[2],o,i,h,g);return{x1:S,y1:b,x2:I,y2:_,x:y,y:P}})}var Nn=require("three"),wf=Math.PI*2,_f=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,angle:o,innerRadius:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p=n.shape,a=t*.5,u=e*.5,d=hS(p,a,u,o*Math.PI/180,r,i);p.isClosed=!0,p.update();let f=dt.create({shape:p,parameters:{subdivisions:d,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(f,{userData:{...n,type:"EllipseGeometry"}})}};function hS(n,t,e,r,o,i){if(r>=wf)return o>30||o%4===0?(yS(n,t,e,i),Math.round(o/4)):Sf(n,r,o,t,e,i);let s={x:0,y:e},l=r+Math.PI*.5,c={x:Math.cos(l)*t,y:Math.sin(l)*e},p=bf({px:s.x,py:s.y,cx:c.x,cy:c.y,rx:t,ry:e,largeArcFlag:r>Math.PI,sweepFlag:!0});return o>30||o%p.length===0?gS(n,s.x,s.y,p,o,t,e,i):Sf(n,r,o,t,e,i)}function gS(n,t,e,r,o,i,s,l){let c=Math.round(o/r.length);n.addPoint(An(t,e));for(let p=0,a=r.length;p<a;p++){let u=r[p],d=n.points[p],f=An(u.x,u.y);d.controls[1].position.set(u.x1,u.y1),f.controls[0].position.set(u.x2,u.y2),n.addPoint(f)}return l>0?Tf(n,i,s,l):n.addPoint(An(0,0)),c}function Sf(n,t,e,r,o,i){let s=-t/e;for(let l=0;l<=e;l++){let c=s*l,p=Math.sin(c)*r,a=Math.cos(c)*o;n.addPoint(An(p,a))}return t<wf?i>0?Tf(n,r,o,i):n.addPoint(An(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&Af(n,r,o,i)),1}function yS(n,t,e,r=0,o=0,i=0){let s=.5522847498,l=t*s,c=e*s;n.addPoint(wa(o-t,i,o-t,i-c,o-t,i+c)),n.addPoint(wa(o,i+e,o-l,i+e,o+l,i+e)),n.addPoint(wa(o+t,i,o+t,i+c,o+t,i-c)),n.addPoint(wa(o,i-e,o+l,i-e,o-l,i-e)),r>0&&Af(n,t,e,r)}function An(n,t){return new Zt(Nn.MathUtils.generateUUID(),new Nn.Vector2(n,t))}function wa(n,t,e,r,o,i){let s=An(n,t);return s.controls[0].position.set(e,r),s.controls[1].position.set(o,i),s}function Tf(n,t,e,r){Nf(n,t,e,r).forEach(i=>n.addPoint(i))}function Af(n,t,e,r){let o=Nf(n,t,e,r),i=new _e;o.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function Nf(n,t,e,r){let o=r*t/100,i=o*(Math.abs(e)/Math.abs(t)),s=new Nn.Vector2(o/t,i/e),l=n.points.map(c=>{let p=c.clone();return p.uuid=Nn.MathUtils.generateUUID(),p}).reverse();return l.forEach(c=>{c.position.multiply(s);let p=c.controls[0].position.clone().multiply(s),a=c.controls[1].position.clone().multiply(s);c.controls[0].position.copy(a),c.controls[1].position.copy(p)}),l}var Fr=require("three"),If=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??r),i=Math.abs(e.depth??r),s=Math.abs(Math.min(r,i))/2;return{parameters:Object.assign(e,{width:r,height:o,depth:i,radius:s,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(n){let{width:t,height:e,depth:r,radius:o,revolutions:i,segments:s,pathRadius:l,pathType:c,pathSegments:p,cornerRadius:a,cornerSegments:u}=n.parameters,d=new _i(!1,t,e,r,o,i,s,l,c,p,a,u);return Object.assign(d,{userData:{...n,type:"HelixGeometry"}})}},_i=class extends Fr.BufferGeometry{constructor(t=!0,e=1,r=1,o=1,i=1,s=1,l=1,c=1,p=1,a=1,u=1,d=1){super();let f=t&&s===1;f&&(d=0),u>100&&(u=100);let m=()=>new Fr.Vector3,h=new Fr.Vector3,g=m(),v=m(),x=m(),w,S,b,I,_,y,P,A,O=m(),T=m(),L=m(),B=m(),j=m(),te=m(),ne=m(),ae=m(),U=r-2*c+.001,W=U/s,q=Math.ceil(l*s),F=q+1,M=U/q,D=-U/2,E=a+1,k=2*Math.PI/a,Q=Math.PI/2/d,H=.01,V=Math.min((1-u/100)*c,c-H),R=c-V,z=0,Z=2,re=d*Z+Z,se=E*re/Z,ee=se+E*F,J=E*(F+re),[K,X,me]=[3,3,2].map(We=>Array(J*We).fill(0)),de=[],xe=i-c;function nt(We,Bt){let sr=Math.PI/2;y=Bt*M,A=2*Math.PI*(y%W)/W+sr,y+=D,P=Math.sin(A)*xe,_=Math.cos(A)*xe,t?We.set(_,P,y):We.set(_,y,P)}nt(h,-1e-10),nt(g,0),O.copy(h),nt(h,1);let Ne=h.distanceTo(g),Pe=R+V,Le=Ne*q+2*Pe,Ut=V,kr=Le-Pe;for(let We=0;We<=q;We++){nt(v,We),ae.subVectors(v,O).normalize(),O.copy(v),te.copy(v).setComponent(+t+1,0).normalize(),ne.crossVectors(ae,te).normalize();let Bt=We===0,sr=We===q,vh=Bt?3*Math.PI/2:Q,bh=Bt?Ut:kr,Sh=Bt?E:ee,wh=Bt?0:J-E,_h=ae.clone().multiplyScalar(Bt?-R:R).add(v),Th=ae.clone().multiplyScalar(Bt?-1:1).normalize();for(let Er=0;Er<E;Er++){let Lc=Er*k;if(T.addVectors(h.copy(te).multiplyScalar(c*Math.cos(Lc)),g.copy(ne).multiplyScalar(c*Math.sin(Lc))),L.copy(T).normalize(),Bt||sr){f||(z=wh+Er,[0,1,2].forEach(_t=>{K[z*3+_t]=_h.getComponent(_t),X[z*3+_t]=Th.getComponent(_t)}),me[z*2]=+sr,me[z*2+1]=Er/a),g.copy(L).multiplyScalar(V),x.addVectors(v,g);for(let _t=0;_t<d;_t++){let el=_t*Q+vh;B.addVectors(h.copy(ae).multiplyScalar(R*Math.sin(el)),g.copy(L).multiplyScalar(R*Math.cos(el))),j.copy(B).normalize(),g.addVectors(x,B),B.normalize(),z=Sh+_t*E+Er,[0,1,2].forEach(us=>{K[z*3+us]=g.getComponent(us),X[z*3+us]=j.getComponent(us)});let Ah=+Bt+Math.sin(el);me[z*2]=(bh+R*Ah)/Le,me[z*2+1]=Er/a}}g.addVectors(v,T),z=se+We*E+Er,[0,1,2].forEach(_t=>{K[z*3+_t]=g.getComponent(_t),X[z*3+_t]=L.getComponent(_t)}),me[z*2]=(Pe+We*Ne)/Le,me[z*2+1]=Er/a}}let Et=F+2*d+Z,Vo=1,[ls,cs]=f?[Vo,Vo+F-1]:[0,Et-1];for(let We=ls;We<=cs-1;We++){let Bt=f&&We===cs-1;for(let sr=0;sr<E-1;sr++)w=We*E+sr,S=w+1,b=(Bt?sr:w)+E,I=(Bt?sr+1:S)+E,We===0?de.push(S,I,b):We===Et-2?de.push(w,S,b):de.push(w,S,b,S,I,b)}this.setIndex(de),this.setAttribute("position",new Fr.Float32BufferAttribute(K,3)),this.setAttribute("normal",new Fr.Float32BufferAttribute(X,3)),this.setAttribute("uv",new Fr.Float32BufferAttribute(me,2))}};var Pf=require("three");var Of=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new Ti(t*.5,i,s):new Pf.IcosahedronGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"IcosahedronGeometry"}})}},Ti=class extends so{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=[-1,o,0,1,o,0,-1,-o,0,1,-o,0,0,-1,o,0,1,o,0,-1,-o,0,1,-o,o,0,-1,o,0,1,-o,0,-1,-o,0,1],s=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],l="IcosahedronGeometry";super(i,s,l,t,e,r),this.type=l}static fromJSON(t){return new Ti(t.radius,t.corner,t.cornerSides)}};var _a=require("three"),Cf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){(n.parameters?.points??[]).forEach(r=>{Array.isArray(r)&&(r.x=r[0],r.y=r[1])});let e=Object.assign({},t?.parameters??{width:100,segments:64,verticalSegments:64,points:[{x:0,y:-50,id:0},{x:50,y:-50,id:1},{x:50,y:50,id:2},{x:0,y:50,id:3}]},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{points:t,segments:e,verticalSegments:r}=n.parameters,o=new _a.Shape;o.moveTo(t[0].x,t[0].y),o.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let i=new _a.LatheGeometry(o.extractPoints(r).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};var xr=require("three");var zr=require("three");var ie=require("three"),yr=new ie.Matrix4,kl=new ie.Object3D,Ta=new ie.Vector3,ao=class extends ie.EventDispatcher{constructor(){super(),this.uuid=ie.MathUtils.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(t){let e=new ie.Matrix3().getNormalMatrix(t);for(let r=0,o=this.vertices.length;r<o;r++)this.vertices[r].applyMatrix4(t);for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];i.normal.applyMatrix3(e).normalize();for(let s=0,l=i.vertexNormals.length;s<l;s++)i.vertexNormals[s].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return yr.makeRotationX(t),this.applyMatrix4(yr),this}rotateY(t){return yr.makeRotationY(t),this.applyMatrix4(yr),this}rotateZ(t){return yr.makeRotationZ(t),this.applyMatrix4(yr),this}translate(t,e,r){return yr.makeTranslation(t,e,r),this.applyMatrix4(yr),this}scale(t,e,r){return yr.makeScale(t,e,r),this.applyMatrix4(yr),this}lookAt(t){return kl.lookAt(t),kl.updateMatrix(),this.applyMatrix4(kl.matrix),this}fromBufferGeometry(t){let e=this,r=t.index!==null?t.index:void 0,o=t.attributes;if(o.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let i=o.position,s=o.normal,l=o.color,c=o.uv,p=o.uv2;p!==void 0&&(this.faceVertexUvs[1]=[]);for(let d=0;d<i.count;d++)e.vertices.push(new ie.Vector3().fromBufferAttribute(i,d)),l!==void 0&&e.colors.push(new ie.Color().fromBufferAttribute(l,d));function a(d,f,m,h){let g=l===void 0?[]:[e.colors[d].clone(),e.colors[f].clone(),e.colors[m].clone()],v=s===void 0?[]:[new ie.Vector3().fromBufferAttribute(s,d),new ie.Vector3().fromBufferAttribute(s,f),new ie.Vector3().fromBufferAttribute(s,m)],x=new In(d,f,m,v,g,h);e.faces.push(x),c!==void 0&&e.faceVertexUvs[0].push([new ie.Vector2().fromBufferAttribute(c,d),new ie.Vector2().fromBufferAttribute(c,f),new ie.Vector2().fromBufferAttribute(c,m)]),p!==void 0&&e.faceVertexUvs[1].push([new ie.Vector2().fromBufferAttribute(p,d),new ie.Vector2().fromBufferAttribute(p,f),new ie.Vector2().fromBufferAttribute(p,m)])}let u=t.groups;if(u.length>0)for(let d=0;d<u.length;d++){let f=u[d],m=f.start,h=f.count;for(let g=m,v=m+h;g<v;g+=3)r!==void 0?a(r.getX(g),r.getX(g+1),r.getX(g+2),f.materialIndex):a(g,g+1,g+2,f.materialIndex)}else if(r!==void 0)for(let d=0;d<r.count;d+=3)a(r.getX(d),r.getX(d+1),r.getX(d+2));else for(let d=0;d<i.count;d+=3)a(d,d+1,d+2);return this.computeFaceNormals(),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Ta).negate(),this.translate(Ta.x,Ta.y,Ta.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,r=e===0?1:1/e,o=new ie.Matrix4;return o.set(r,0,0,-r*t.x,0,r,0,-r*t.y,0,0,r,-r*t.z,0,0,0,1),this.applyMatrix4(o),this}computeFaceNormals(){let t=new ie.Vector3,e=new ie.Vector3;for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],s=this.vertices[i.a],l=this.vertices[i.b],c=this.vertices[i.c];t.subVectors(c,l),e.subVectors(s,l),t.cross(e),t.normalize(),i.normal.copy(t)}}computeVertexNormals(t=!0){let e=new Array(this.vertices.length);for(let r=0,o=this.vertices.length;r<o;r++)e[r]=new ie.Vector3;if(t){let r=new ie.Vector3,o=new ie.Vector3;for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=this.vertices[l.a],p=this.vertices[l.b],a=this.vertices[l.c];r.subVectors(a,p),o.subVectors(c,p),r.cross(o),e[l.a].add(r),e[l.b].add(r),e[l.c].add(r)}}else{this.computeFaceNormals();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];e[i.a].add(i.normal),e[i.b].add(i.normal),e[i.c].add(i.normal)}}for(let r=0,o=this.vertices.length;r<o;r++)e[r].normalize();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],s=i.vertexNormals;s.length===3?(s[0].copy(e[i.a]),s[1].copy(e[i.b]),s[2].copy(e[i.c])):(s[0]=e[i.a].clone(),s[1]=e[i.b].clone(),s[2]=e[i.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let t=0,e=this.faces.length;t<e;t++){let r=this.faces[t],o=r.vertexNormals;o.length===3?(o[0].copy(r.normal),o[1].copy(r.normal),o[2].copy(r.normal)):(o[0]=r.normal.clone(),o[1]=r.normal.clone(),o[2]=r.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.__originalFaceNormal?o.__originalFaceNormal.copy(o.normal):o.__originalFaceNormal=o.normal.clone(),o.__originalVertexNormals||(o.__originalVertexNormals=[]);for(let i=0,s=o.vertexNormals.length;i<s;i++)o.__originalVertexNormals[i]?o.__originalVertexNormals[i].copy(o.vertexNormals[i]):o.__originalVertexNormals[i]=o.vertexNormals[i].clone()}let t=new ao;t.faces=this.faces;for(let e=0,r=this.morphTargets.length;e<r;e++){if(!this.morphNormals[e]){this.morphNormals[e]={},this.morphNormals[e].faceNormals=[],this.morphNormals[e].vertexNormals=[];let i=this.morphNormals[e].faceNormals,s=this.morphNormals[e].vertexNormals;for(let l=0,c=this.faces.length;l<c;l++){let p=new ie.Vector3,a={a:new ie.Vector3,b:new ie.Vector3,c:new ie.Vector3};i.push(p),s.push(a)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=o.faceNormals[i],p=o.vertexNormals[i];c.copy(l.normal),p.a.copy(l.vertexNormals[0]),p.b.copy(l.vertexNormals[1]),p.c.copy(l.vertexNormals[2])}}for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.normal=o.__originalFaceNormal,o.vertexNormals=o.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new ie.Box3),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new ie.Sphere),this.boundingSphere.setFromPoints(this.vertices)}merge(t,e,r=0){if(!(t&&t.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t);return}let o,i=this.vertices.length,s=this.vertices,l=t.vertices,c=this.faces,p=t.faces,a=this.colors,u=t.colors;e!==void 0&&(o=new ie.Matrix3().getNormalMatrix(e));for(let d=0,f=l.length;d<f;d++){let h=l[d].clone();e!==void 0&&h.applyMatrix4(e),s.push(h)}for(let d=0,f=u.length;d<f;d++)a.push(u[d].clone());for(let d=0,f=p.length;d<f;d++){let m=p[d],h,g,v=m.vertexNormals,x=m.vertexColors,w=new In(m.a+i,m.b+i,m.c+i);w.normal.copy(m.normal),o!==void 0&&w.normal.applyMatrix3(o).normalize();for(let S=0,b=v.length;S<b;S++)h=v[S].clone(),o!==void 0&&h.applyMatrix3(o).normalize(),w.vertexNormals.push(h);w.color.copy(m.color);for(let S=0,b=x.length;S<b;S++)g=x[S],w.vertexColors.push(g.clone());w.materialIndex=m.materialIndex+r,c.push(w)}for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let v=m[h],x=[];for(let w=0,S=v.length;w<S;w++)x.push(v[w].clone());this.faceVertexUvs[d].push(x)}}}mergeMesh(t){if(!(t&&t.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",t);return}t.matrixAutoUpdate&&t.updateMatrix(),this.merge(t.geometry,t.matrix)}mergeVertices(t=4){let e={},r=[],o=[],i=Math.pow(10,t);for(let c=0,p=this.vertices.length;c<p;c++){let a=this.vertices[c],u=Math.round(a.x*i)+"_"+Math.round(a.y*i)+"_"+Math.round(a.z*i);e[u]===void 0?(e[u]=c,r.push(this.vertices[c]),o[c]=r.length-1):o[c]=o[e[u]]}let s=[];for(let c=0,p=this.faces.length;c<p;c++){let a=this.faces[c];a.a=o[a.a],a.b=o[a.b],a.c=o[a.c];let u=[a.a,a.b,a.c];for(let d=0;d<3;d++)if(u[d]===u[(d+1)%3]){s.push(c);break}}for(let c=s.length-1;c>=0;c--){let p=s[c];this.faces.splice(p,1);for(let a=0,u=this.faceVertexUvs.length;a<u;a++)this.faceVertexUvs[a].splice(p,1)}let l=this.vertices.length-r.length;return this.vertices=r,l}setFromPoints(t){this.vertices=[];for(let e=0,r=t.length;e<r;e++){let o=t[e];this.vertices.push(new ie.Vector3(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,e=t.length;for(let c=0;c<e;c++)t[c]._id=c;function r(c,p){return c.materialIndex-p.materialIndex}t.sort(r);let o=this.faceVertexUvs[0],i=this.faceVertexUvs[1],s,l;o&&o.length===e&&(s=[]),i&&i.length===e&&(l=[]);for(let c=0;c<e;c++){let p=t[c]._id;s&&s.push(o[p]),l&&l.push(i[p])}s&&(this.faceVertexUvs[0]=s),l&&(this.faceVertexUvs[1]=l)}toJSON(){let t={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,this.name!==""&&(t.name=this.name),this.parameters!==void 0){let m=this.parameters;for(let h in m)m[h]!==void 0&&(t[h]=m[h]);return t}let e=[];for(let m=0;m<this.vertices.length;m++){let h=this.vertices[m];e.push(h.x,h.y,h.z)}let r=[],o=[],i={},s=[],l={},c=[],p={};for(let m=0;m<this.faces.length;m++){let h=this.faces[m],g=!0,v=!1,x=this.faceVertexUvs[0][m]!==void 0,w=h.normal.length()>0,S=h.vertexNormals.length>0,b=h.color.r!==1||h.color.g!==1||h.color.b!==1,I=h.vertexColors.length>0,_=0;if(_=a(_,0,0),_=a(_,1,g),_=a(_,2,v),_=a(_,3,x),_=a(_,4,w),_=a(_,5,S),_=a(_,6,b),_=a(_,7,I),r.push(_),r.push(h.a,h.b,h.c),r.push(h.materialIndex),x){let y=this.faceVertexUvs[0][m];r.push(f(y[0]),f(y[1]),f(y[2]))}if(w&&r.push(u(h.normal)),S){let y=h.vertexNormals;r.push(u(y[0]),u(y[1]),u(y[2]))}if(b&&r.push(d(h.color)),I){let y=h.vertexColors;r.push(d(y[0]),d(y[1]),d(y[2]))}}function a(m,h,g){return g?m|1<<h:m&~(1<<h)}function u(m){let h=m.x.toString()+m.y.toString()+m.z.toString();return i[h]!==void 0||(i[h]=o.length/3,o.push(m.x,m.y,m.z)),i[h]}function d(m){let h=m.r.toString()+m.g.toString()+m.b.toString();return l[h]!==void 0||(l[h]=s.length,s.push(m.getHex())),l[h]}function f(m){let h=m.x.toString()+m.y.toString();return p[h]!==void 0||(p[h]=c.length/2,c.push(m.x,m.y)),p[h]}return t.data={},t.data.vertices=e,t.data.normals=o,s.length>0&&(t.data.colors=s),c.length>0&&(t.data.uvs=[c]),t.data.faces=r,t}clone(){return new ao().copy(this)}copy(t){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;let e=t.vertices;for(let d=0,f=e.length;d<f;d++)this.vertices.push(e[d].clone());let r=t.colors;for(let d=0,f=r.length;d<f;d++)this.colors.push(r[d].clone());let o=t.faces;for(let d=0,f=o.length;d<f;d++)this.faces.push(o[d].clone());for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let v=m[h],x=[];for(let w=0,S=v.length;w<S;w++){let b=v[w];x.push(b.clone())}this.faceVertexUvs[d].push(x)}}let i=t.morphTargets;for(let d=0,f=i.length;d<f;d++){let m={};if(m.name=i[d].name,i[d].vertices!==void 0){m.vertices=[];for(let h=0,g=i[d].vertices.length;h<g;h++)m.vertices.push(i[d].vertices[h].clone())}if(i[d].normals!==void 0){m.normals=[];for(let h=0,g=i[d].normals.length;h<g;h++)m.normals.push(i[d].normals[h].clone())}this.morphTargets.push(m)}let s=t.morphNormals;for(let d=0,f=s.length;d<f;d++){let m={};if(s[d].vertexNormals!==void 0){m.vertexNormals=[];for(let h=0,g=s[d].vertexNormals.length;h<g;h++){let v=s[d].vertexNormals[h],x={};x.a=v.a.clone(),x.b=v.b.clone(),x.c=v.c.clone(),m.vertexNormals.push(x)}}if(s[d].faceNormals!==void 0){m.faceNormals=[];for(let h=0,g=s[d].faceNormals.length;h<g;h++)m.faceNormals.push(s[d].faceNormals[h].clone())}this.morphNormals.push(m)}let l=t.skinWeights;for(let d=0,f=l.length;d<f;d++)this.skinWeights.push(l[d].clone());let c=t.skinIndices;for(let d=0,f=c.length;d<f;d++)this.skinIndices.push(c[d].clone());let p=t.lineDistances;for(let d=0,f=p.length;d<f;d++)this.lineDistances.push(p[d]);let a=t.boundingBox;a!==null&&(this.boundingBox=a.clone());let u=t.boundingSphere;return u!==null&&(this.boundingSphere=u.clone()),this.elementsNeedUpdate=t.elementsNeedUpdate,this.verticesNeedUpdate=t.verticesNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.lineDistancesNeedUpdate=t.lineDistancesNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this}toBufferGeometry(){let t=new Hl().fromGeometry(this),e=new ie.BufferGeometry,r=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",new ie.BufferAttribute(r,3).copyVector3sArray(t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",new ie.BufferAttribute(o,3).copyVector3sArray(t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",new ie.BufferAttribute(o,3).copyColorsArray(t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",new ie.BufferAttribute(o,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",new ie.BufferAttribute(o,2).copyVector2sArray(t.uvs2))}e.groups=t.groups;for(let o in t.morphTargets){let i=[],s=t.morphTargets[o];for(let l=0,c=s.length;l<c;l++){let p=s[l],a=new ie.Float32BufferAttribute(p.data.length*3,3);a.name=p.name,i.push(a.copyVector3sArray(p.data))}e.morphAttributes[o]=i}if(t.skinIndices.length>0){let o=new ie.Float32BufferAttribute(t.skinIndices.length*4,4);e.setAttribute("skinIndex",o.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){let o=new ie.Float32BufferAttribute(t.skinWeights.length*4,4);e.setAttribute("skinWeight",o.copyVector4sArray(t.skinWeights))}return t.boundingSphere!==null&&(e.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(e.boundingBox=t.boundingBox.clone()),e}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(t){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(t){let e=new ie.BufferGeometry,r=t.geometry;if(t.isPoints||t.isLine){let o=new ie.Float32BufferAttribute(r.vertices.length*3,3),i=new ie.Float32BufferAttribute(r.colors.length*3,3);if(e.setAttribute("position",o.copyVector3sArray(r.vertices)),e.setAttribute("color",i.copyColorsArray(r.colors)),r.lineDistances&&r.lineDistances.length===r.vertices.length){let s=new ie.Float32BufferAttribute(r.lineDistances.length,1);e.setAttribute("lineDistance",s.copyArray(r.lineDistances))}r.boundingSphere!==null&&(e.boundingSphere=r.boundingSphere.clone()),r.boundingBox!==null&&(e.boundingBox=r.boundingBox.clone())}else t.isMesh&&(e=r.toBufferGeometry());return e}};ao.prototype.isGeometry=!0;var Hl=class{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(t){let e=[],r,o,i,s=t.faces;for(o=0;o<s.length;o++){let l=s[o];l.materialIndex!==i&&(i=l.materialIndex,r!==void 0&&(r.count=o*3-r.start,e.push(r)),r={start:o*3,materialIndex:i})}r!==void 0&&(r.count=o*3-r.start,e.push(r)),this.groups=e}fromGeometry(t){let e=t.faces,r=t.vertices,o=t.faceVertexUvs,i=o[0]&&o[0].length>0,s=o[1]&&o[1].length>0,l=t.morphTargets,c=l.length,p;if(c>0){p=[];for(let v=0;v<c;v++)p[v]={name:l[v].name,data:[]};this.morphTargets.position=p}let a=t.morphNormals,u=a.length,d;if(u>0){d=[];for(let v=0;v<u;v++)d[v]={name:a[v].name,data:[]};this.morphTargets.normal=d}let f=t.skinIndices,m=t.skinWeights,h=f.length===r.length,g=m.length===r.length;r.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let v=0;v<e.length;v++){let x=e[v];this.vertices.push(r[x.a],r[x.b],r[x.c]);let w=x.vertexNormals;if(w.length===3)this.normals.push(w[0],w[1],w[2]);else{let b=x.normal;this.normals.push(b,b,b)}let S=x.vertexColors;if(S.length===3)this.colors.push(S[0],S[1],S[2]);else{let b=x.color;this.colors.push(b,b,b)}if(i===!0){let b=o[0][v];b!==void 0?this.uvs.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",v),this.uvs.push(new ie.Vector2,new ie.Vector2,new ie.Vector2))}if(s===!0){let b=o[1][v];b!==void 0?this.uvs2.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",v),this.uvs2.push(new ie.Vector2,new ie.Vector2,new ie.Vector2))}for(let b=0;b<c;b++){let I=l[b].vertices;p[b].data.push(I[x.a],I[x.b],I[x.c])}for(let b=0;b<u;b++){let I=a[b].vertexNormals[v];d[b].data.push(I.a,I.b,I.c)}h&&this.skinIndices.push(f[x.a],f[x.b],f[x.c]),g&&this.skinWeights.push(m[x.a],m[x.b],m[x.c])}return this.computeGroups(t),this.verticesNeedUpdate=t.verticesNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),this}},In=class{constructor(t,e,r,o,i,s=0){this.a=t,this.b=e,this.c=r,this.normal=o&&o.isVector3?o:new ie.Vector3,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new ie.Color,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=s}clone(){return new this.constructor().copy(this)}copy(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(let e=0,r=t.vertexNormals.length;e<r;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,r=t.vertexColors.length;e<r;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}};var xS=["a","b","c"];function vS(n,t){switch(t){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function Wl(n,t,e){let r=Math.min(n,t),o=Math.max(n,t),i=r+"_"+o;return e.get(i)}function ql(n,t,e,r,o,i){let s=Math.min(n,t),l=Math.max(n,t),c=s+"_"+l,p;if(r.has(c))p=r.get(c);else{let a=e[s],u=e[l];p={a,b:u,newEdge:null,faces:[]},r.set(c,p)}p.faces.push(o),i[n].edges.push(p),i[t].edges.push(p)}function bS(n,t,e,r){let o,i,s;for(o=0,i=n.length;o<i;o++)e[o]={edges:[]};for(o=0,i=t.length;o<i;o++)s=t[o],ql(s.a,s.b,n,r,s,e),ql(s.b,s.c,n,r,s,e),ql(s.c,s.a,n,r,s,e)}function Aa(n,t,e,r,o){n.push(new In(t,e,r,void 0,void 0,o))}function Pn(n,t){return Math.abs(t-n)/2+Math.min(n,t)}function Na(n,t,e,r){n.push([t.clone(),e.clone(),r.clone()])}var Ia=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof zr.BufferGeometry?t=new ao().fromBufferGeometry(t):t=t.clone(),t.mergeVertices();let e=this.subdivisions;for(;e-- >0;)this._smooth(t);return t.computeFaceNormals(),t.computeVertexNormals(),t}_smooth(t){let e=new zr.Vector3,r,o,i,s,l,c=t.vertices,p=t.faces,a=t.faceVertexUvs[0],u=a!==void 0&&a.length>0,d=[],f=new Map;bS(c,p,d,f);let m=[],h,g,v,x,w,S,b;for(let H of Array.from(f.keys())){for(g=f.get(H),v=new zr.Vector3,w=3/8,S=1/8,b=g.faces.length,b!=2&&(w=.5,S=0,b!=1),v.addVectors(g.a,g.b).multiplyScalar(w),e.set(0,0,0),s=0;s<b;s++){for(x=g.faces[s],l=0;l<3&&(h=c[vS(x,xS[l])],!(h!==g.a&&h!==g.b));l++);h&&e.add(h)}e.multiplyScalar(S),v.add(e),g.newEdge=m.length,m.push(v)}let I,_,y,P,A,O,T,L=[];for(o=0,i=c.length;o<i;o++){for(O=c[o],A=d[o].edges,r=A.length,r==3?I=3/16:r>3&&(I=3/(8*r)),_=1-r*Number(I),y=I,r<=2&&(r==2?(_=3/4,y=1/8):r==1||r==0),T=O.clone().multiplyScalar(_),e.set(0,0,0),s=0;s<r;s++)P=A[s],h=P.a!==O?P.a:P.b,e.add(h);e.multiplyScalar(Number(y)),T.add(e),L.push(T)}let B=L.concat(m),j=L.length,te,ne,ae,U=[],W=[],q,F,M,D,E=new zr.Vector2,k=new zr.Vector2,Q=new zr.Vector2;for(o=0,i=p.length;o<i;o++)x=p[o],te=Number(Wl(x.a,x.b,f).newEdge)+j,ne=Number(Wl(x.b,x.c,f).newEdge)+j,ae=Number(Wl(x.c,x.a,f).newEdge)+j,Aa(U,te,ne,ae,x.materialIndex),Aa(U,x.a,te,ae,x.materialIndex),Aa(U,x.b,ne,te,x.materialIndex),Aa(U,x.c,ae,ne,x.materialIndex),u&&(q=a[o],F=q[0],M=q[1],D=q[2],E.set(Pn(F.x,M.x),Pn(F.y,M.y)),k.set(Pn(M.x,D.x),Pn(M.y,D.y)),Q.set(Pn(F.x,D.x),Pn(F.y,D.y)),Na(W,E,k,Q),Na(W,F,E,Q),Na(W,M,k,E),Na(W,D,Q,k));t.vertices=B,t.faces=U,u&&(t.faceVertexUvs[0]=W)}};var Je=new xr.Vector3,Lf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=n.geometry??t?.geometry??new xr.BufferGeometry().copy(new xr.BoxGeometry(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(Je),r={width:Je.x,height:Je.y,depth:Je.z,subdivisions:0}):r=t.parameters;let o={...r,...n.parameters};return{parameters:{width:Math.abs(o.width),height:Math.abs(o.height),depth:Math.abs(o.depth),subdivisions:Math.abs(o.subdivisions)},geometry:e}}static build(n){let{width:t,height:e,depth:r,subdivisions:o}=n.parameters,i=n.geometry??new xr.BufferGeometry().copy(new xr.BoxGeometry(100,100,100)),s=i.userData.parameters;s===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(Je)):Je.set(s.width,s.height,s.depth),(t!==Je.x||e!==Je.y||r!==Je.z)&&i.scale(Je.x===0?1:t/Je.x,Je.y===0?1:e/Je.y,Je.z===0?1:r/Je.z);let l=i.originalGeometry;return o>0?(l===void 0||s?.subdivisions!==o)&&(l===void 0&&(l=i),i=new Ia(o).modify(l).toBufferGeometry()):(l!==void 0&&(i=l),l=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()),l!==void 0&&Object.assign(i,{originalGeometry:l}),delete n.geometry,Object.assign(i,{userData:{...n,type:"NonParametricGeometry"}})}static loadFromUrl(n,t,e){new xr.BufferGeometryLoader(e).load(n,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(Je);let s=100/Je.x;Object.assign(i.parameters,{width:100,height:Je.y*s,depth:Je.z*s}),t(this.build(i))})}};var Mf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,cornerRadius:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5,u=0,d=0,f=2*Math.PI/r;for(let h=0;h<r;h++){let g=f*h,v=u+Math.sin(g)*p,x=d+Math.cos(g)*a;c.addPoint(c.createPoint(v,x))}c.isClosed=!0;for(let h=0,g=c.points.length;h<g;h++)c.points[h].roundness=o;c.roundness=o,c.update();let m=dt.create({shape:c,parameters:{roundness:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(m,{userData:{...n,type:"PolygonGeometry"}})}};var be=require("three"),Ef=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,heightSegments:i,openEnded:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=new Xl(t*.5,e,o,i,s,l,c);return p.scale(1,1,r/t),Object.assign(p,{userData:{...n,type:"PyramidGeometry"}})}};function Ai(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function $l(n,t,e,r,o,i){let s=t.clone().sub(n),l=e.clone().sub(n),c=s.angleTo(l);if(s.normalize(),l.normalize(),r===o){let p=s.add(l).normalize();i.copy(n).addScaledVector(p,r/Math.sin(c/2))}else{let p=s.angleTo(l);i.copy(n),i.addScaledVector(s,o/Math.sin(p)),i.addScaledVector(l,r/Math.sin(p))}}function SS(n,t,e){let r=n.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var Xl=class extends be.BufferGeometry{constructor(t=.5,e=1,r=4,o=1,i=!1,s=0,l=4){super(),r=Math.floor(Math.max(3,r)),o=Math.floor(o),l=Math.floor(l);let c=[],p=[],a=[],u=[],d=0,f=e/2,m=Math.PI/r,h=t*Math.cos(Math.PI/r),g=2*Math.PI/r,v=(r-2)*Math.PI/r,x=Math.PI-v,w=new be.Vector3(0,-f,0),S=new be.Vector3(0,f,0),b=new be.Vector2(t,-f),I=new be.Vector2(h,-f),_=new be.Vector2(0,S.y).sub(I),y=new be.Vector2(0,S.y).sub(b),P=new be.Vector2(_.y,-_.x).normalize(),A=new be.Vector2(y.y,-y.x).normalize(),T=t*Math.cos(Math.PI/r)*Math.tan((Math.PI-_.angle())/2)-1e-8;s=Math.min(s,T);let L;{let W=new be.Vector3(P.x,P.y,0),q=new be.Vector3(Math.cos(g)*W.x,W.y,Math.sin(g)*W.x);L=W.angleTo(q)}let B=s/Math.tan((Math.PI-_.angle())/2),j=s/Math.tan((Math.PI-L)/2),te=new be.Vector3;if(!i){p.push(w.x,w.y,w.z),a.push(0,-1,0),u.push(0,0);let W=d++,q=[],F=b.clone(),M=B/Math.cos(Math.PI/r);F.x-=M;for(let D=0;D<r;D++){let E=D/r*Math.PI*2+m,k=new be.Vector2(Math.sin(E),Math.cos(E));Ai(F,k,te),p.push(te.x,te.y,te.z),a.push(0,-1,0),u.push(0,0),q.push(d++)}for(let D=0;D<q.length;D++)c.push(q[D],W,q[(D+1)%q.length])}let ne=[];{let W=new be.Vector3,q=new be.Vector3,F=new be.Vector3,M=new be.Vector3,D=new be.Vector3,E=new be.Vector3;for(let k=0;k<r;k++){let Q=k/r*Math.PI*2+m,H=(k+.5)/r*Math.PI*2+m,V=(k+1)/r*Math.PI*2+m,R=new be.Vector2(Math.sin(Q),Math.cos(Q)),z=new be.Vector2(Math.sin(H),Math.cos(H)),Z=new be.Vector2(Math.sin(V),Math.cos(V));Ai(b,R,q),Ai(b,Z,F),Ai(P,z,W),$l(S,q,F,j,j,M),p.push(M.x,M.y,M.z),$l(q,S,F,j,B,D),p.push(D.x,D.y,D.z),$l(F,q,S,B,j,E),p.push(E.x,E.y,E.z),a.push(W.x,W.y,W.z),a.push(W.x,W.y,W.z),a.push(W.x,W.y,W.z),u.push(0,0),u.push(0,0),u.push(0,0);let re=d++,se=d++,ee=d++;if(c.push(re,se,ee),s>0){{let X=q.clone().add(F).multiplyScalar(.5),me=S.clone().sub(X).normalize(),xe=w.clone().sub(X).normalize().add(me).normalize().multiplyScalar(-1),nt=E.clone().sub(D);ae(X,nt,xe,_.angle())}let J,K;{let X=new be.Vector3;Ai(A,Z,X);let me=E.clone().add(M).multiplyScalar(.5);me=SS(me,F,S);let de=E.clone().sub(M);[J,K]=ae(me,de,X,L,M.y)}{let X=J,me=X.clone().setY(0).normalize(),de=new be.Vector3(0,-1,0),xe=me.clone().cross(de);U(X,me,de,xe)}ne.concat(K);{let X=_.angle(),me=Math.PI-X,de=S.clone();de.y-=s/Math.sin(X-Math.PI/2);let xe=new be.Vector3,nt=[];for(let Pe=0;Pe<l;Pe++){let Le=[],Ut=Math.PI/2-me*Pe/l,kr=Math.cos(Ut),Et=Math.sin(Ut),Vo=H;for(let ls=0;ls<=Pe;ls++){let cs=Math.cos(Vo),We=Math.sin(Vo);W.x=kr*We,W.y=Et,W.z=kr*cs,xe.copy(de).addScaledVector(W,s),p.push(xe.x,xe.y,xe.z),a.push(W.x,W.y,W.z),u.push(0,0),Le.push(d++),Vo+=Math.PI*2/Pe/r}nt.push(Le)}K.reverse(),nt.push(K);let Ne=nt.length-1;for(let Pe=0;Pe<Ne;Pe++){let Le=nt[Pe],Ut=nt[Pe+1],kr=Le.length-1;c.push(Ut[1],Le[0],Ut[0]);for(let Et=1;Et<=kr;Et++)c.push(Le[Et],Le[Et-1],Ut[Et]),c.push(Ut[Et+1],Le[Et],Ut[Et])}}}}}this.setIndex(c),this.setAttribute("position",new be.Float32BufferAttribute(p,3)),this.setAttribute("normal",new be.Float32BufferAttribute(a,3)),this.setAttribute("uv",new be.Float32BufferAttribute(u,2));function ae(W,q,F,M,D){let E=-M/2,k=(Math.PI-M)/2,Q=q.clone().normalize().cross(F);W.addScaledVector(F,-s/Math.sin(k));let H=new be.Vector3,V=new be.Vector3,R=1,z=d,Z=[];for(let re=0;re<=l;re++){let se=E+re/l*M;V.set(0,0,0),V.addScaledVector(Q,Math.sin(se)),V.addScaledVector(F,Math.cos(se));for(let ee=0;ee<=R;ee++){let J=ee/R-.5;if(H.copy(W),H.addScaledVector(q,J),H.addScaledVector(V,s),D!=null){let K=Math.max(0,H.y-D);H.addScaledVector(q,-K/q.y)}p.push(H.x,H.y,H.z),a.push(V.x,V.y,V.z),u.push(0,0),ee===0&&Z.push(d),d++}}for(let re=0;re<l;re++)for(let se=0;se<R;se++){let ee=z+se+(R+1)*re,J=ee+(R+1),K=J+1,X=ee+1;c.push(ee,J,X),c.push(J,K,X)}return[W.clone().addScaledVector(q,.5),Z]}function U(W,q,F,M){let D=Math.PI/2,E=y.angle()-D,k=[],Q=new be.Vector3,H=new be.Vector3;for(let R=0;R<=l;R++){let z=[],Z=R/l;for(let re=0;re<=R;re++){let ee=((R?re/R:0)-.5)*x,J=Math.cos(ee),K=Math.sin(ee),X=Math.atan(Math.tan(E)*J),me=(D+X)*Z,de=Math.cos(me),xe=Math.sin(me);Q.set(0,0,0),Q.addScaledVector(q,xe*J),Q.addScaledVector(F,de),Q.addScaledVector(M,xe*K),H.copy(W).addScaledVector(Q,s),p.push(H.x,H.y,H.z),a.push(Q.x,Q.y,Q.z),u.push(0,0),z.push(d++)}k.push(z)}let V=k.length-1;for(let R=0;R<V;R++){let z=k[R],Z=k[R+1],re=z.length-1;c.push(z[0],Z[1],Z[0]);for(let se=1;se<=re;se++)c.push(z[se-1],z[se],Z[se]),c.push(z[se],Z[se+1],Z[se])}}}};var Bf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters),r=Object.assign(t?.ui??{enabledIndieCorners:!1},n.ui);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)}),ui:r}}static build(n){let t=n.shape,{width:e,height:r,cornerRadius:o,cornerType:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p={x:e*.5,y:r*.5},a={x:-p.x,y:-p.y},u={x:p.x,y:p.y};function d(S,b,I){return b>e&&I>r?Math.min(S*e/b,S*r/I):b>e?S*e/b:I>r?S*r/I:S}let f=[];f[0]=o[0]===0?0:d(o[0],o[0]+o[3],o[0]+o[1]),f[1]=o[1]===0?0:d(o[1],o[1]+o[2],o[1]+o[0]),f[2]=o[2]===0?0:d(o[2],o[2]+o[1],o[2]+o[3]),f[3]=o[3]===0?0:d(o[3],o[3]+o[0],o[3]+o[2]);let m=a.x,h=u.x,g=u.y,v=a.y;t.addPoint(t.createPoint(m,g)),t.addPoint(t.createPoint(h,g)),t.addPoint(t.createPoint(h,v)),t.addPoint(t.createPoint(m,v)),t.isClosed=!0;let x=!0;for(let S=0,b=t.points.length;S<b;S++)t.points[S].roundness=f[S],S>0&&f[S]!==f[S-1]&&(x=!1);x&&(t.roundness=f[0]),t.useCubicForRoundedCorners=i!==1,t.update();let w=dt.create({shape:t,parameters:{depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(w,{userData:{...n,type:"RectangleGeometry"}})}};var Df=require("three"),Gf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t=100,height:e=t,depth:r=t,widthSegments:o=64,heightSegments:i=64,phiStart:s,phiLength:l,thetaStart:c,thetaLength:p}=n.parameters,a=new Df.SphereGeometry(.5*t,o,i,s,l,c,p);return a.scale(1,e/t,r/t),Object.assign(a,{userData:{...n,type:"SphereGeometry"}})}};var Rf=require("three"),Vf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:0})}}static build(n){let{width:t=100,height:e=t,widthSegments:r=8,heightSegments:o=8}=n.parameters,i=new Rf.PlaneGeometry(t,e,r,o);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};var lo=require("three"),Ff=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,angle:o,cornerRadius:i,cornerSegments:s}=n.parameters,l=new Yl(t,e,r,o,i,s);return Object.assign(l,{userData:{...n,type:"BackdropGeometry"}})}},Yl=class extends lo.BufferGeometry{constructor(t=1,e=1,r=1,o=90,i=10,s=24){super(),this.type="BackdropGeometry";let l=[],c=[],p=[],a=.001;i==0&&(s=1),s=Math.max(1,Math.floor(s)),i=Math.min(i,100),o=Math.min(180-a,o),o*=Math.PI/180;let u=[],d=Math.PI/2,f=(H=0,V=0,R=0)=>new lo.Vector3(H,V,R),m=f(),h=f(),[g,v,x]=[e/2,t/2,r/2],w=-v,S=+v,[b,I,_]=[f(w,-g,+x),f(w,-g,-x),f(w,+g,-x)],y=(H,V=!1)=>Math.sin(H-Math.PI/(1+ +V)),P=(H,V=!1)=>Math.cos(H-Math.PI/(1+ +V));_.y=Math.sin(o)*e-g;let A=Math.cos(o)*e-x,O=b.z-a;o<=d?(_.z=Math.min(A,O),_.z==O&&(_.y-=(A-O)/Math.tan(d-o))):I.z=Math.min(I.z-A-x,b.z-a),m.subVectors(b,I),h.subVectors(_,I);let T=Math.min(m.length(),h.length())*i/100,L=T*Math.tan(o/2),B=T/Math.cos(o/2),j=m.clone().normalize().add(h.normalize()).setLength(B).add(I);m.set(0,y(o,!0),P(o,!0)),u.push([_,m.clone()]);let te=(Math.PI-o)/s;for(let H=0;H<=s;H++){let V=d+o+H*te;m.set(0,Math.sin(V)*L,Math.cos(V)*L),m.add(j),h.set(0,y(V),P(V)),u.push([m.clone(),h.clone()])}u.push([b,f(0,1,0)]);let ne=Math.sin(te/2)*L*2,ae=u.length-1,U=u[0][0].distanceTo(u[1][0]),W=u[ae-1][0].distanceTo(u[ae][0]),q=U+ne*s+W;u[0].push(1);for(let H=0;H<=s;H++)u[H+1].push(1-(U+H*ne)/q);u[ae].push(0);let[F,M,D]=u[0],E,k,Q;for(let H=1;H<u.length;H++)[E,k,Q]=u[H],l.push(w,F.y,F.z,w,E.y,E.z,S,F.y,F.z,S,F.y,F.z,w,E.y,E.z,S,E.y,E.z),c.push(0,M.y,M.z,0,k.y,k.z,0,M.y,M.z,0,M.y,M.z,0,k.y,k.z,0,k.y,k.z),p.push(0,D,0,Q,1,D,1,D,0,Q,1,Q),[F,M,D]=[E,k,Q];this.setAttribute("position",new lo.Float32BufferAttribute(l,3)),this.setAttribute("normal",new lo.Float32BufferAttribute(c,3)),this.setAttribute("uv",new lo.Float32BufferAttribute(p,2))}};var zf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,innerRadiusPercent:r,spikes:o,cornerRadius:i,angle:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}=n.parameters,a=n.shape,u=t*.5,d=e*.5,f=0,m=0,h=s*Math.PI/360/o,g=Math.PI/2*3*-1,v=u*r/100,x=d*r/100;if(o===3&&r===50){h=2*Math.PI/o;for(let S=0;S<o;S++){let b=h*S,I=f+Math.sin(b)*u,_=m+Math.cos(b)*d;a.addPoint(a.createPoint(I,_))}}else for(let S=0;S<o;S++){let b=f+Math.cos(g)*u,I=m+Math.sin(g)*d;a.addPoint(a.createPoint(b,I)),g+=h,b=f+Math.cos(g)*v,I=m+Math.sin(g)*x,S<=o,a.addPoint(a.createPoint(b,I)),g+=h}a.isClosed=!0;for(let S=0,b=a.points.length;S<b;S++)a.points[S].roundness=i;a.roundness=i,a.update();let w=dt.create({shape:a,parameters:{roundness:i,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}});return Object.assign(w,{userData:{...n,type:"StarGeometry"}})}};var Uf=require("three"),jf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e}=n.parameters,r=new Uf.PlaneGeometry(t,e);return Object.assign(r,{userData:{...n,type:"TextFrameGeometry"}})}};var kf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??e.width*.25);return{parameters:Object.assign(e,{width:r,height:o,depth:i})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,tubularSegments:i,arc:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=wS(t,e,r,t*.5,s,i,0,0,o,l,c);return p.scale(1,e/t,1),Object.assign(p,{userData:{...n,type:"TorusGeometry"}})}};function wS(n,t,e,r,o,i,s,l,c,p,a){return[t,e]=[e,t],s=t/2,o/=2*Math.PI,o==1&&(p=0),new _i(!0,n,t,e,r,o,i,s,l,c,p,a)}var Hf=require("three"),Wf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),tube:e.tube??e.width*.125})}}static build(n){let{width:t,tube:e,tubularSegments:r,radialSegments:o,p:i,q:s}=n.parameters,l=t*.5;l!==e&&(l-=e);let c=new Hf.TorusKnotGeometry(l,e,r,o,i,s);return Object.assign(c,{userData:{...n,type:"TorusKnotGeometry"}})}};var qf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width*(e.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t=100,height:e,cornerRadius:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s,isRect:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5;l?(c.addPoint(c.createPoint(-p,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))):(c.addPoint(c.createPoint(0,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))),c.isClosed=!0;for(let d=0,f=c.points.length;d<f;d++)c.points[d].roundness=r;c.roundness=r,c.update();let u=dt.create({shape:c,parameters:{roundness:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s}});return Object.assign(u,{userData:{...n,type:"TriangleGeometry"}})}};var Co=require("three"),Xf=require("three/examples/jsm/utils/BufferGeometryUtils.js");function $f(){let n=new Co.BufferGeometry;return n.setAttribute("position",new Co.BufferAttribute(new Float32Array([]),3)),n.setIndex(new Co.BufferAttribute(new Uint16Array([]),1)),n}var _S=12;var On=class extends Co.BufferGeometry{constructor(e,r){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let o=$f();Object.entries(o.attributes).forEach(([i,s])=>{this.setAttribute(i,s)}),this.setIndex(o.index),this.updateFont(e.font,r),this.update(e)}async updateFont(e,r){let o=r.getFont(e);o&&(this.font=o,await o.loadingPromise)}async update(e){let r=this.font;if(this.userData={parameters:e,type:"TextGeometry"},!r||!r.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:o,height:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c,text:p,textTransform:a,subdivisions:u}=e;await r.loadingPromise;let d=a===2?p.toUpperCase():a===3?p.toLowerCase():p,f=TS(e,r,d),{shapes:m,charWidths:h,charCoords:g}=await r.generateShapes(f,e),v=o*.5,x=i*.5,w=m.map(I=>new _e().fromShape(I));this.vectorShapes=w;let S=w.map(I=>dt.create({shape:I,parameters:{depth:s,extrudeBevelSegments:c,extrudeBevelSize:l,windingRule:s<=0?Me.NONZERO:Me.ODD,subdivisions:u??_S}})),b=S.length?(0,Xf.mergeBufferGeometries)(S):$f();b.translate(-v,x,0),this.dispose(),this.wrappedText=f,this.charCoords=g,this.charWidths=h,Object.entries(b.attributes).forEach(([I,_])=>{this.setAttribute(I,_)}),this.setIndex(b.index),this.computeBoundingSphere()}clone(){let e=Ao(new Co.BufferGeometry,On.prototype);return e.copy(this),e}copy(e){return Object.entries(e.attributes).forEach(([r,o])=>{this.setAttribute(r,o)}),this.setIndex(e.index),this.userData={parameters:{...e.userData.parameters},type:"TextGeometry"},this}async setText(e){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:e})}get text(){return this.userData.parameters.text??""}};function TS(n,t,e){e=e??n.text;let r=[""],o="";for(let i of e)o+=i,i===" "||i===`
2
2
  `?(r[r.length-1]+=o,o="",i===`
3
- `&&r.push("")):t.getTextWidth(r[r.length-1]+o,n)>n.width&&(r[r.length-1].length&&r.push(""),t.getTextWidth(r[r.length-1]+o,n)>n.width&&(o.length===1?(r[r.length-1]+=o,o=""):(r[r.length-1]+=o.slice(0,-1),o=o[o.length-1],r.push(""))));return r[r.length-1]+=o,r}var $e=require("three");var _S,Na=new Promise(n=>{_S=n});var Xf=require("three");function Ia(n,t){return TS(n)}function TS(n){let t={parameters:n,type:n.type};if(n.type==="VectorGeometry"){let r=_e.createFromState(n.shape,n.width,n.height);t.shape=r}else n.type==="NonParametricGeometry"&&(n.data.groups&&n.data.groups.forEach(r=>r.materialIndex=Math.max(r.materialIndex??0,0)),t.geometry=new Xf.BufferGeometryLoader().parse(n));let e;try{e=Ni(t)}catch(r){console.error(r)}if(!e){let r=_e.createFromState(qo.defaultData(),100,100);t.shape=r,e=Ni(t)}return e}var pe;Na.then(n=>{pe=n});var Yf=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),Kf=new Uint32Array([0,1,2,3]),Qf=new Uint8Array([4]),qt=class{static build(n,t,e,r,o){let i,s,l,c=n?.phongAngle??t?.phongAngle??35;if(r===!1&&(c=-1),n.positionWASM!==void 0){e&&e!==0&&(pe.free_bvh(e),pe.free_subdivision_surface(e));try{i=qt.allocate(n,o)}catch(p){console.error(p,n),i=qt.allocate({positionWASM:Yf,indexWASM:Kf,verticesPerFaceWASM:Qf},o)}pe.set_destination_refinement_level(i,0),s=qt.buildLevel(i,!0,c)}else i=e,n.phongAngle!==void 0&&(s=qt.buildLevel(i,!0,c));return n.subdivisions!==void 0&&(pe.set_destination_refinement_level(i,n.subdivisions),n.subdivisions>0?l=qt.buildLevel(i,!1,c):l=null),{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}}static primitiveToQuads(n,t){n.widthSegments>16&&(n.widthSegments=16),n.heightSegments>16&&(n.heightSegments=16),n.depthSegments>16&&(n.depthSegments=16),n.radialSegments>16&&(n.radialSegments=16),n.type==="DodecahedronGeometry"&&(n.detail=0);let e=n.shape!==void 0?t.geometry:Ia(n),r,o,i,s;({positions:r,triIndices:s}=Jl(e.getAttribute("position"),e.getIndex()));let l;if(n.type==="CylinderGeometry"&&n.cornerRadius===0&&n.hollow===0&&n.openEnded===!1){let c=n.radialSegments*n.heightSegments*3*2,p=c+n.radialSegments*3;l=[c,p]}return{indices:o,verticesPerFace:i}=ec(r,s,e,l),{positions:r,indices:o,verticesPerFace:i}}static allocate(n,t){let e,r,o,i=[],s=[];n.positionWASM&&n.positionWASM.length>0?(e=n.positionWASM,r=n.indexWASM,o=n.verticesPerFaceWASM):(e=Yf,r=Kf,o=Qf);let l=e.length,c=r.length,p=o.length,a=e.length+i.length+s.length,u=r.length+o.length,d=a*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,f=a*Float32Array.BYTES_PER_ELEMENT,m=u*Uint32Array.BYTES_PER_ELEMENT,h=pe._malloc(d),g=new Float32Array(pe.HEAPF32.buffer,h,a),v=new Uint32Array(pe.HEAPU32.buffer,h+f,u);g.set(e,0),g.set(i,e.length),g.set(s,e.length+i.length),v.set(r,0),v.set(o,r.length);let x;n?.scaleBaked?.some(S=>S!==1)&&(x=new $e.Matrix4().makeScale(...n.scaleBaked)),t&&(x?x.premultiply(t):x=t);let w=x?pe.alloc_subdivision_surface2(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p,x.elements):pe.alloc_subdivision_surface(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p);return pe._free(h),w}static buildLevel(n,t,e,r,o){let i=o?pe.get_mesh_data2(n,t?pe.Level.CONTROL:pe.Level.REFINED,e,o.elements):pe.get_mesh_data(n,t?pe.Level.CONTROL:pe.Level.REFINED,e),s=8,l=pe.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(4,4+4),p=0,a=pe.HEAPU32[l[p]>>2],u=pe.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=pe.HEAPU32[l[p]>>2],f=pe.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=pe.HEAPU32[l[p]>>2],h=pe.HEAPU32.subarray(m>>2,(m>>2)+c[p]);p++;let g=pe.HEAPU32[l[p]>>2],v=pe.HEAPU32.subarray(g>>2,(g>>2)+c[p]);if(p++,r===void 0){let x=new $e.BufferGeometry;if(x.setIndex(new $e.Uint32BufferAttribute(v,1)),x.setAttribute("position",new $e.Float32BufferAttribute(u,3)),x.setAttribute("normal",new $e.Float32BufferAttribute(f,3)),t){x.setAttribute("faceMap",new $e.Uint32BufferAttribute(h,1));let w=new Float32Array(f.length/3*4).fill(0);x.setAttribute("color",new $e.BufferAttribute(w,4))}return pe.free_mesh_data(i),x.userData.type="SubdivGeometry",x}r.getAttribute("position").copyArray(u),r.getAttribute("normal").copyArray(f),r.attributes.position.needsUpdate=!0,r.attributes.normal.needsUpdate=!0,pe.free_mesh_data(i)}static buildControlCageWireframe(n,t,e){let r=pe.get_wireframe_data_for_base_level(n),o=4,i=pe.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(2,2+2),l=0,c=pe.HEAPU32[i[l]>>2],p=pe.HEAPF32.subarray(c>>2,(c>>2)+s[l]);l++;let a=pe.HEAPU32[i[l]>>2],u=pe.HEAPU32.subarray(a>>2,(a>>2)+s[l]);if(t===void 0){let d=new $e.BufferGeometry;d.setAttribute("position",new $e.Float32BufferAttribute(p,3));let f=new Float32Array(p.length);for(let m=0,h=p.length;m<h;)f[m++]=e.r,f[m++]=e.g,f[m++]=e.b;return d.setAttribute("color",new $e.BufferAttribute(f,3)),d.setIndex(new $e.Uint32BufferAttribute(u,1)),pe.free_wireframe_data_for_base_level(r),d}t.getAttribute("position").copyArray(p),t.attributes.position.needsUpdate=!0,pe.free_wireframe_data_for_base_level(r)}static updateCollabMesh(n,t,e){let r=t===0;r||pe.set_destination_refinement_level(n,t);let o=e?pe.get_topological_data2(n,r?pe.Level.CONTROL:pe.Level.REFINED,e.elements):pe.get_topological_data(n,r?pe.Level.CONTROL:pe.Level.REFINED),i=6,s=pe.HEAPU32.subarray(o>>2,(o>>2)+i),l=s.subarray(3,3+3),c=0,p=pe.HEAPU32[s[c]>>2],a=new Float32Array(pe.HEAPF32.subarray(p>>2,(p>>2)+l[c]));c++;let u=pe.HEAPU32[s[c]>>2],d=new Uint32Array(pe.HEAPU32.subarray(u>>2,(u>>2)+l[c]));c++;let f=pe.HEAPU32[s[c]>>2],m=new Uint8Array(pe.HEAPU32.subarray(f>>2,(f>>2)+l[c]));return pe.free_topological_data(o),{positions:a,indices:d,verticesPerFace:m}}};var Zf=["getX","getY","getZ"];function Jl(n,t){let e={},r=t?t.count:n.count,o=0,i=[],s=[],l=1e4;for(let p=0;p<r;p++){let a=t?t.getX(p):p,u="";for(let d=0;d<3;d++)u+=`${~~(n[Zf[d]](a)*l)},`;if(u in e)i.push(e[u]);else{for(let d=0;d<3;d++)s.push(n[Zf[d]](a));e[u]=o,i.push(o),o++}}let c=[];for(let p=0;p<i.length;p+=3)i[p]===i[p+1]||i[p]===i[p+2]||i[p+1]===i[p+2]||c.push(i[p],i[p+1],i[p+2]);return{positions:s,triIndices:c}}var Pa=new $e.Vector3,Kl=new $e.Vector3,Ql=new $e.Vector3,Zl=new $e.Vector3;function ec(n,t,e,r){let o=[],i=[];if(e.userData.shape!==void 0&&e.userData.parameters.depth===0&&e.userData.shape.shapeHoles.length===0){let s=e.userData.shape.extractShapePointsToFlatArray([]),l=0;for(let p=0;p<s.length;p+=2)l+=(s[p]-s[(p===0?s.length:p)-2])*(s[p+1]+s[(p===0?s.length:p)-1]);n.length=0;let c=0;if(l<0)for(let p=0;p<s.length;p+=2)n.push(s[p],s[p+1],0),o.push(c++);else for(let p=s.length-2;p>=0;p-=2)n.push(s[p],s[p+1],0),o.push(c++);return i.push(c),{indices:o,verticesPerFace:i}}for(let s=0,l=e.capStartIndex??t.length;s<l;)if(t[s+1]===t[s+3]&&t[s+2]===t[s+5]||t[s+0]===t[s+3]&&t[s+2]===t[s+4]){Pa.set(n[t[s]*3],n[t[s]*3+1],n[t[s]*3+2]),Kl.set(n[t[s+1]*3],n[t[s+1]*3+1],n[t[s+1]*3+2]),Ql.set(n[t[s+4]*3],n[t[s+4]*3+1],n[t[s+4]*3+2]),Zl.set(n[t[s+5]*3],n[t[s+5]*3+1],n[t[s+5]*3+2]),Kl.sub(Pa).normalize(),Ql.sub(Pa).normalize(),Zl.sub(Pa).normalize();let c=Kl.cross(Ql).dot(Zl);Math.abs(c)>.005||r&&r.some((p,a)=>a%2===1?!1:s>=r[a]&&s<r[a+1])?(o.push(t[s],t[s+1],t[s+2]),i.push(3),s+=3):(o.push(t[s],t[s+1],t[s+4],t[s+5]),i.push(4),s+=6)}else o.push(t[s],t[s+1],t[s+2]),i.push(3),s+=3;if(e.capStartIndex!==void 0){let s=[],l=[],c=0,p=new Float32Array([e.userData.parameters.depth])[0];for(let a=0,u=0;a<n.length;a+=3,u++)n[a+2]===0&&(s.push(u),c++),n[a+2]===p&&l.push(u);if(e.userData.parameters.extrudeBevelSize===0){let a=l[0];l[0]=l[1],l[1]=a}s.reverse(),o.push(...s,...l),i.push(c,c)}return{indices:o,verticesPerFace:i}}var Jt={};Ec(Jt,{calcBoolean:()=>PS,calcBooleanTopological:()=>IS,freeMeshSet:()=>LS,getMeshSet:()=>OS,transformMeshSet:()=>CS});var AS,Jf=new Promise(n=>{AS=n});var Ii=require("three");var ye,Cn;Jf.then(n=>ye=n);function NS(n,t,e){let r,{positions:o,triIndices:i}=Jl(n.getAttribute("position"),n.getIndex()),s;if(t&&e){let{indices:l,verticesPerFace:c}=ec(o,i,n);s=c.length,r=[];for(let p=0,a=0;p<s;p++){r.push(c[p]);for(let u=0;u<c[p];u++)r.push(l[a++])}}else{let l=i.length;r=Array(l+l/3),s=0;for(let c=0,p=0;p<r.length;)r[p++]=3,s++,r[p++]=i[c++],r[p++]=i[c++],r[p++]=i[c++]}return{positions:o,faceIndices:r,nFaces:s}}function em(n){let t=n.length,e=t*Uint32Array.BYTES_PER_ELEMENT,r=t*Float32Array.BYTES_PER_ELEMENT,o=Number.isInteger(n[0])?e:r,i=ye._malloc(o);return(Number.isInteger(n[0])?new Uint32Array(ye.HEAPU32.buffer,i,t):new Float32Array(ye.HEAPF32.buffer,i,t)).set(n,0),i}function tm(n){switch(n){case 0:return ye.OP.UNION;case 1:return ye.OP.INTERSECTION;case 2:return ye.OP.A_MINUS_B;case 3:return ye.OP.B_MINUS_A;case 4:return ye.OP.SYMMETRIC_DIFFERENCE;case 5:return ye.OP.ALL;default:throw new Error("Unknown boolean operation "+n)}}function IS(n,t){Cn===void 0&&(Cn=ye.init_csg());let e=em(n),r=ye.csg_calc_topological(Cn,e,n.length,tm(t));ye._free(e);let o=6,i=ye.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(3,3+3),l=0,c=ye.HEAPU32[i[l]>>2],p=new Float32Array(ye.HEAPF32.subarray(c>>2,(c>>2)+s[l]));l++;let a=ye.HEAPU32[i[l]>>2],u=new Uint32Array(ye.HEAPU32.subarray(a>>2,(a>>2)+s[l]));l++;let d=ye.HEAPU32[i[l]>>2],f=new Uint8Array(ye.HEAPU32.subarray(d>>2,(d>>2)+s[l]));return ye.free_mesh_data(r),{positions:p,indices:u,verticesPerFace:f}}function PS(n,t,e,r){Cn===void 0&&(Cn=ye.init_csg());let o=em(n),i=ye.csg_calc(Cn,o,n.length,r,tm(t));ye._free(o);let s=5,l=ye.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(2,2+3),p=0,a=ye.HEAPU32[l[p]>>2],u=ye.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=ye.HEAPU32[l[p]>>2],f=ye.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=c[p];e.setAttribute("position",new Ii.Float32BufferAttribute(u,3)),e.setAttribute("normal",new Ii.Float32BufferAttribute(f,3));let h=ye.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new Ii.Sphere),e.boundingSphere.center.set(h[0],h[1],h[2]),e.boundingSphere.radius=(h[3]**2+h[4]**2+h[5]**2)**.5,e.userData.parameters={width:h[3]*2,height:h[4]*2,depth:h[5]*2},ye.free_mesh_data(i),m}function OS(n,t,e){if(ye===void 0)return-1;let r,o,i;if(t&&n.userData.positions!==void 0){let g=n.userData;i=g.verticesPerFace.length,r=g.positions,o=Array(g.verticesPerFace.reduce((v,x)=>v+x,0)+i);for(let v=0,x=0,w=0;v<g.verticesPerFace.length;v++){o[w++]=g.verticesPerFace[v];for(let S=0;S<g.verticesPerFace[v];S++)o[w++]=g.indices[x++]}}else({positions:r,faceIndices:o,nFaces:i}=NS(n,t,e));let s=r.length,l=o.length,c=r.length,p=o.length,a=c*Float32Array.BYTES_PER_ELEMENT+p*Uint32Array.BYTES_PER_ELEMENT,u=c*Float32Array.BYTES_PER_ELEMENT,d=p*Uint32Array.BYTES_PER_ELEMENT,f=ye._malloc(a),m=new Float32Array(ye.HEAPF32.buffer,f,c),h=new Uint32Array(ye.HEAPU32.buffer,f+u,p);return m.set(r,0),h.set(o,0),ye.get_csg_mesh(f,s,f+u,l,i)}function CS(n,t){ye.transform_csg_mesh(n,t.elements)}function LS(n){ye.free_csg_mesh(n)}var tc={ConeGeometry:mf,CubeGeometry:hf,CylinderGeometry:df,DodecahedronGeometry:yf,EllipseGeometry:wf,HelixGeometry:Nf,IcosahedronGeometry:Pf,LatheGeometry:Of,NonParametricGeometry:Cf,PolygonGeometry:Lf,PyramidGeometry:Mf,RectangleGeometry:Ef,SphereGeometry:Df,PlaneGeometry:Rf,BackdropGeometry:Vf,StarGeometry:Ff,TextFrameGeometry:Uf,TorusGeometry:jf,TorusKnotGeometry:Hf,TriangleGeometry:Wf,VectorGeometry:dt},Ni=n=>tc[n.type].create(n);var nc=require("three");var Ca=require("three");var rc=require("three");function st(n,t){return t.color(n)}var oc=n=>"isEntity"in n,xr=n=>"isAbstractMesh"in n,vr=n=>n!==null&&n.objectType==="BooleanObject",rm=n=>n.objectType==="CombinedCamera";var Oa=n=>"objectHelper"in n;function MS(n,t){let e=!1;t.position&&(n.position.fromArray(t.position),e=!0),t.rotation&&(n.rotation.fromArray(t.rotation),e=!0),t.scale&&(e=!0,n.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&"hiddenMatrix"in n&&(e=!0,n.hiddenMatrix.fromArray(t.hiddenMatrix??$r.identity)),e&&(n.updateMatrix(),vr(n.parent)&&xr(n)&&n.invalidateDownstreamBooleanData(!0).recomputeBoolean()),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&n.updateWorldMatrix(!1,!0),n.objectType==="CombinedCamera"&&(t.isUpVectorFlipped!==void 0&&(n.isUpVectorFlipped=t.isUpVectorFlipped),n.updateUp())}function ES(n,t){MS(n,t),t.name!==void 0&&(n.name=t.name),t.visible!==void 0&&(n.visible=t.visible)}function om(n,t,e){ES(n,t),t.color!==void 0&&(n.color=st(t.color,e)),t.intensity!==void 0&&(n.intensity=t.intensity),t.shadows!==void 0&&!(n instanceof rc.HemisphereLight)&&(n.castShadow=t.shadows),n.shadow&&!(n instanceof rc.HemisphereLight)&&t.depth!==void 0&&(n.shadow.camera.far=t.depth,n.shadow.needsUpdate=!0)}function nm(n,t){n.shadow.camera.right=t/2,n.shadow.camera.left=-t/2,n.shadow.camera.top=t/2,n.shadow.camera.bottom=-t/2,n.shadow.needsUpdate=!0}var La=n=>class extends n{hasEntityChild(){return this.children.some(e=>oc(e))}isDescendantOf(e){e instanceof Ca.Object3D&&(e=e.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===e)return!0;r=r.parent}return!1}attach(e,r){this.updateWorldMatrix(!0,!1);let o=new Ca.Matrix4().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),oc(e)?e.hiddenMatrix.premultiply(o):e.applyMatrix4(o),e.updateWorldMatrix(!1,!1),this.add(e),r!==void 0&&(this.children.pop(),this.children.splice(r,0,e)),this}copy(e,r=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),r===!0)for(let o=0;o<e.children.length;o++){let i=e.children[o];this.add(i.clone())}return this}};var He=require("three");var Ln=new He.Box3,er=new He.Vector3,br=new He.Vector3,Mn=new He.Matrix4,sm=[new He.Vector3(-1,1,1),new He.Vector3(-1,-1,1),new He.Vector3(1,-1,1),new He.Vector3(1,1,1),new He.Vector3(-1,1,-1),new He.Vector3(-1,-1,-1),new He.Vector3(1,-1,-1),new He.Vector3(1,1,-1)],BS=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],DS=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function GS(n,t,e=0,r=t.count){let o=1/0,i=1/0,s=1/0,l=-1/0,c=-1/0,p=-1/0;for(let a=e;a<r;a++){let u=t.getX(a),d=t.getY(a),f=t.getZ(a);u<o&&(o=u),d<i&&(i=d),f<s&&(s=f),u>l&&(l=u),d>c&&(c=d),f>p&&(p=f)}return n.min.set(o,i,s),n.max.set(l,c,p),n}var im=(n,t,e)=>{if(xr(n)){let r=n.geometry.userData.parameters,o=n.geometry.getAttribute("position");n.geometry.userData.type==="SubdivGeometry"?er.copy(n.originalGeometry.boundingSphere.center):n.geometry.userData.type==="TextGeometry"?er.set(0,0,r.depth*.5):o!==void 0&&(GS(Ln,o,n.geometry.drawRange.start,n.geometry.drawRange.count<1/0?n.geometry.drawRange.count:o.count),Ln.getCenter(er)),n.forceComputeSize?Ln.getSize(br).multiplyScalar(.5):br.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}else if(Oa(n)&&n.objectHelper.visible){let r=n.geometryHelper.getAttribute("position");Ln.setFromArray(r.array),Ln.getCenter(er),Ln.getSize(br).multiplyScalar(.5)}else er.setScalar(0),br.setScalar(0);Mn.copy(t).multiply(n.matrixWorld),br.x===0&&br.y===0&&br.z===0?e.push(new He.Vector3(er.x,er.y,er.z).applyMatrix4(Mn)):sm.forEach(r=>{e.push(r.clone().multiply(br).add(er).applyMatrix4(Mn))})},Pi=class extends He.Box3{constructor(){super(...arguments);this.matrix=new He.Matrix4;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(e){return super.copy(e),this.matrix.copy(e.matrix),this.vertices=e.vertices.map(r=>r.clone()),this.faces=e.faces.map(r=>r.clone()),this.edges=e.edges.map(r=>r.clone()),this.centerEdges=e.centerEdges.map(r=>r.clone()),this}setFromObjectSize(e,r=!1){e.updateWorldMatrix(!1,r),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let o=new He.Matrix4().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,r)}expandByObjectSize(e,r,o=!1){let i=[];return o===!0?e.traverseEntity(s=>{s.visible&&im(s,r,i)}):im(e,r,i),this.setFromPoints(i)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4(Mn.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(br).multiplyScalar(.5),this.getCenter(er),Mn.copy(this.matrix).setPosition(er),this.vertices=sm.map(e=>e.clone().multiply(br).applyMatrix4(Mn))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=BS.map(([e,r])=>new He.Line3(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new He.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=DS.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var Sr=n=>"isEntity"in n,am=n=>"isAbstractMesh"in n,$t=n=>class extends La(n){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new nc.Matrix4;this._singleBBox=new Pi;this._recursiveBBox=new Pi;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1;this.states={};this.currentState=null;this.currentTransitionAction=null}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}resetBBoxNeedsUpdate(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0,this.traverseAncestors(r=>{Sr(r)&&(r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(r=>{r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0})}traverseEntity(r){r(this);for(let o of this.children)Sr(o)&&o.traverseEntity(r)}traverseVisibleEntity(r){r(this);for(let o of this.children)Sr(o)&&o.visible&&o.traverseVisibleEntity(r)}updateMatrix(){super.updateMatrix(),this.dispatchEvent({type:"updateMatrix"})}updateMatrixWorld(r){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||r)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,r=!0);for(let o of this.children)o.updateMatrixWorld(r)}updateWorldMatrix(r,o){let i=this.parent;if(r&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),o)for(let s of this.children)s.updateWorldMatrix(!1,!0)}clone(r){return new this.constructor().copy(this,r)}copy(r,o=!0){if(super.copy(r,!1),this.raycastLock=r.raycastLock,this.scaleLock=r.scaleLock,this.hiddenMatrix.copy(r.hiddenMatrix),o===!0)for(let i of r.children)Sr(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let r=new nc.Matrix4,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),r.copy(this.matrixWorld).invert(),r.multiply(o);for(let i of this.children)Sr(i)&&i.hiddenMatrix.premultiply(r)}toObjectTransformState(r=[]){this.updateWorldMatrix(!0,!1);let o={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return fn(o,r)}fromObjectTransformState(r){return r.position&&this.position.fromArray(r.position),r.rotation&&this.rotation.fromArray(r.rotation),r.scale&&this.scale.fromArray(r.scale),r.hiddenMatrix&&this.hiddenMatrix.fromArray(r.hiddenMatrix),this.updateMatrix(),this}toState(r=[]){let o={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(r)};return fn(o,r)}fromState(r,o){return r.name&&(this.name=r.name),r.raycastLock!==void 0&&(this.raycastLock=r.raycastLock),r.type!=="OrthographicCamera"&&r.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),r.visible!==void 0&&(this.visible=r.visible),this.fromObjectTransformState(r),this}};var za=require("three");var rr=require("three");var Oi=class{constructor(t){t=t??{},this.name=t.name,this.type=t.type,this.node=t.node,this.size=t.size,this.needsUpdate=t.needsUpdate}get value(){return this.node.value}set value(t){this.node.value=t}};var lm=require("three"),at=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=lm.MathUtils.generateUUID(),this.type=t,this.name=""}analyze(t,e){e=e??{},t.analyzing=!0,this.build(t.addFlow(e.slot,e.cache,e.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,e,r){return r=r??{},this.analyze(t,r),this.flow(t,e,r)}flow(t,e,r){r=r??{},t.addFlow(r.slot,r.cache,r.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,r){e=e??this.getType(t,e);let o=t.getNodeData(r??this);return t.analyzing&&this.appendDepsNode(t,o,e),t.nodes.indexOf(this)===-1&&t.nodes.push(this),this.updateFrame!==void 0&&t.updaters.indexOf(this)===-1&&t.updaters.push(this),this.generate(t,e,r)}updateFrame(t){}generateReadonly(t,e,r,o,i,s){return""}generate(t,e,r,o,i){return""}parse(t,e,r,o){}appendDepsNode(t,e,r){e.deps=(e.deps||0)+1;let o=t.getTypeLength(r);(o>(e.outputMax||0)||this.getType(t,r))&&(e.outputMax=o,e.output=r)}setName(t){this.name=t}getName(){return this.name}getType(t,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}getHash(){let t="{",e,r;for(e in this)r=this[e],r instanceof at&&(t+='"'+e+'":'+r.getHash()+",");if(this.hashProperties)for(let o=0;o<this.hashProperties.length;o++)e=this.hashProperties[o],r=this[e],t+='"'+e+'":"'+String(r)+'",';return t+='"id":"'+this.uuid+'"}',t}};var ic=class{constructor(){this.nodes={};this.keywords={}}add(t){this.nodes[t.name]=t}addKeyword(t,e,r){r=r!==void 0?r:!0,this.keywords[t]={callback:e,cache:r}}remove(t){delete this.nodes[t.name]}removeKeyword(t){delete this.keywords[t]}get(t){return this.nodes[t]}getKeyword(t,e){return this.keywords[t].callback(e)}getKeywordData(t){return this.keywords[t]}contains(t){return this.nodes[t]!==void 0}containsKeyword(t){return this.keywords[t]!==void 0}},et=new ic;var sc=require("three");var cm=require("three"),ce=class extends at{constructor(e,r){super(e);this.scope="";r=r??{},this.shared=r.shared!==void 0?r.shared:!0,this.unique=r.unique!==void 0?r.unique:!1}build(e,r,o,i){if(r=r??this.getType(e),this.getShared(e,r)){let s=this.getUnique(e,r);s&&this.uuid===void 0&&(this.uuid=cm.MathUtils.generateUUID()),o=e.getUUID(o??this.getUUID(),!s);let l=e.getNodeData(o),c=l.output||this.getType(e);if(e.analyzing)return(l.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,l,r),this.generate(e,r,o)):super.build(e,r,o);if(s)return l.name=l.name||super.build(e,r,o),l.name;if(!this.getLabel()&&(!this.getShared(e,c)||e.context.ignoreCache||l.deps===1))return super.build(e,r,o);o=this.getUUID(!1);let p=this.getTemp(e,o);if(p)return e.format(p,c,r);{p=super.generate(e,r,o,l.output,i);let a=this.generate(e,c,o);return e.addNodeCode(p+" = "+a+";"),e.format(p,c,r)}}return super.build(e,r,o)}getShared(e,r){return r!=="sampler2D"&&r!=="samplerCube"&&this.shared}getUnique(e,r){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let r=this.uuid;return typeof this.scope=="string"&&(r=this.scope+"-"+r),r}getTemp(e,r){r=r||this.uuid;let o=e.getVars()[r];return o?o.name:void 0}generate(e,r,o,i,s){return this.getShared(e,r)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,i??this.getType(e),s,this.getLabel()).name}};var Ee=class extends ce{constructor(e,r){r=r??{},r.shared=r.shared!==void 0?r.shared:!1;super(e,r);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(e,r,o,i,s,l){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let c=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,r,o,i,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(i,this,s,l,this.getLabel())),e.format(c.vertex.name,i,r)):(c.fragment||(c.fragment=e.createFragmentUniform(i,this,s,l,this.getLabel())),e.format(c.fragment.name,i,r))}};var lt=class extends Ee{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof sc.Vector2?e:new sc.Vector2(e,r)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,r,o,i,s,l){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,r)}};var ac=require("three");var ft=class extends Ee{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof ac.Vector3?e:new ac.Vector3(e,r,o)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,r,o,i,s,l){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,r)}};var um=require("three"),tt=class extends um.Color{constructor(e,r,o,i){super(e,r,o);this.isColorA=!0;this.a=i}setRGBA(e,r,o,i){super.setRGB(e,r,o),this.a=i}copy(e){return super.copy(e),this.a="a"in e?e.a:1,this}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}get x(){return this.r}get y(){return this.g}get z(){return this.b}get w(){return this.a}set x(e){this.r=e}set y(e){this.g=e}set z(e){this.b=e}set w(e){this.a=e}};var Xt=class extends Ee{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof tt?e:new tt(e.r,e.g,e.b,e.a)}generateReadonly(e,r,o,i,s,l){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,r)}};var RS=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,pm=/[a-z_0-9]+/gi,$=class extends ce{constructor(e,r,o,i,s){super(s);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=s===void 0,this.isInterface=!1,this.parse(e,r,o,i)}getShared(e,r){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}}getIncludeByName(e){if(this.includes){let r=this.includes.length;for(;r--;)if(this.includes[r].name===e)return this.includes[r]}}generate(e,r,o,i,s){let l,c=0,p=this.src;if(this.includes)for(let u=0;u<this.includes.length;u++)e.include(this.includes[u],this);for(let u in this.extensions)e.extensions[u]=!0;let a=[];for(;l=pm.exec(this.src);)a.push(l);for(let u=0;u<a.length;u++){let d=a[u],f=d[0],m=this.isMethod?!this.getInputByName(f):!0,h=f;if(this.keywords[f]||this.useKeywords&&m&&et.containsKeyword(f)){let g=this.keywords[f];if(!g){let v=et.getKeywordData(f);v.cache&&(g=e.keywords[f]),g=g||et.getKeyword(f,e),v.cache&&(e.keywords[f]=g)}h=g.build(e)}f!==h&&p[d.index+c-1]!=="."&&(p=p.substring(0,d.index+c)+h+p.substring(d.index+f.length+c),c+=h.length-f.length),this.getIncludeByName(h)===void 0&&et.contains(h)&&e.include(et.get(h))}return r==="source"?p:this.isMethod?(this.isInterface||e.include(this,void 0,p),this.name):e.format("( "+p+" )",this.getType(e),r)}parse(e,r,o,i){if(this.src=e||"",this.includes=r??[],this.extensions=o??{},this.keywords=i??{},this.isMethod){let s=RS.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(pm);if(l){let c=0;for(;c<l.length;){let p=l[c++],a;p==="in"||p==="out"||p==="inout"?a=l[c++]:(a=p,p="");let u=l[c++];this.inputs.push({name:u,type:a,qualifier:p})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var VS=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,lc=class extends ce{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||lc.PI,void 0,void 0,void 0,r)}getType(e){return e.getTypeByFormat(this.type)}parse(e,r,o,i,s){this.src=e||"";let l,c,p="",a=VS.exec(e);this.useDefine=s??this.src.charAt(0)==="#",a&&a.length>1?(c=a[1],l=a[2],p=a[3]):(l=this.src,c="f"),this.name=l,this.type=c,this.value=p}build(e,r){if(r==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return e.include(this),e.format(this.name,this.getType(e),r)}generate(e,r,o,i,s){return e.format(this.name,this.getType(e),r)}},we=lc;we.PI="PI",we.PI2="PI2",we.RECIPROCAL_PI="RECIPROCAL_PI",we.RECIPROCAL_PI2="RECIPROCAL_PI2",we.LOG2="LOG2",we.EPSILON="EPSILON";var FS=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
4
- )*?)}`,"gim"),zS=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),En=class extends ce{constructor(e=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(e)}getType(e){return e.getTypeByFormat(this.name)}getInputByName(e){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}generate(e,r,o,i,s){return r==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),r)}parse(e=""){this.src=e,this.inputs=[];let r=FS.exec(e);if(r){let o=r[2],i;for(;i=zS.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=r[1]}else this.name="";this.type=this.name}};var Bn=class extends ce{constructor(e){super("v2",{shared:!1});this.nodeType="UV";this.index=e??0}generate(e,r){e.requires.uv[this.index]=!0;let o=this.index>0?this.index+1:"",i=e.isShader("vertex")?"uv"+o:"vUv"+o;return e.format(i,this.getType(e),r)}};et.addKeyword("uv",function(){return new Bn});et.addKeyword("uv2",function(){return new Bn(1)});var Ma=require("three");var Lo=class extends ce{constructor(e,r){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=r??Lo.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case Ma.LinearEncoding:return["Linear"];case Ma.sRGBEncoding:return["sRGB"];default:return[]}}generate(e,r){let o=this.input.build(e,"v4"),i=this.getType(e),s=Lo.Nodes[this.method],l=e.include(s);if(l===Lo.LINEAR_TO_LINEAR)return e.format(o,i,r);if(s.inputs?.length===2){let c=this.factor.build(e,"f");return e.format(l+"( "+o+", "+c+" )",i,r)}else return e.format(l+"( "+o+" )",i,r)}fromEncoding(e){let r=Lo.getEncodingComponents(e);this.method="LinearTo"+r[0],this.factor=r[1]}fromDecoding(e){let r=Lo.getEncodingComponents(e);this.method=r[0]+"ToLinear",this.factor=r[1]}},St=Lo;St.Nodes={LinearToLinear:new $(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
3
+ `&&r.push("")):t.getTextWidth(r[r.length-1]+o,n)>n.width&&(r[r.length-1].length&&r.push(""),t.getTextWidth(r[r.length-1]+o,n)>n.width&&(o.length===1?(r[r.length-1]+=o,o=""):(r[r.length-1]+=o.slice(0,-1),o=o[o.length-1],r.push(""))));return r[r.length-1]+=o,r}var $e=require("three");var AS,Pa=new Promise(n=>{AS=n});var Yf=require("three");function Oa(n,t){return NS(n)}function NS(n){let t={parameters:n,type:n.type};if(n.type==="VectorGeometry"){let r=_e.createFromState(n.shape,n.width,n.height);t.shape=r}else n.type==="NonParametricGeometry"&&(n.data.groups&&n.data.groups.forEach(r=>r.materialIndex=Math.max(r.materialIndex??0,0)),t.geometry=new Yf.BufferGeometryLoader().parse(n));let e;try{e=Ni(t)}catch(r){console.error(r)}if(!e){let r=_e.createFromState(qo.defaultData(),100,100);t.shape=r,e=Ni(t)}return e}var pe;Pa.then(n=>{pe=n});var Kf=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),Qf=new Uint32Array([0,1,2,3]),Zf=new Uint8Array([4]),qt=class{static build(n,t,e,r,o){let i,s,l,c=n?.phongAngle??t?.phongAngle??35;if(r===!1&&(c=-1),n.positionWASM!==void 0){e&&e!==0&&(pe.free_bvh(e),pe.free_subdivision_surface(e));try{i=qt.allocate(n,o)}catch(p){console.error(p,n),i=qt.allocate({positionWASM:Kf,indexWASM:Qf,verticesPerFaceWASM:Zf},o)}pe.set_destination_refinement_level(i,0),s=qt.buildLevel(i,!0,c)}else i=e,n.phongAngle!==void 0&&(s=qt.buildLevel(i,!0,c));return n.subdivisions!==void 0&&(pe.set_destination_refinement_level(i,n.subdivisions),n.subdivisions>0?l=qt.buildLevel(i,!1,c):l=null),{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}}static primitiveToQuads(n,t){n.widthSegments>16&&(n.widthSegments=16),n.heightSegments>16&&(n.heightSegments=16),n.depthSegments>16&&(n.depthSegments=16),n.radialSegments>16&&(n.radialSegments=16),n.type==="DodecahedronGeometry"&&(n.detail=0);let e=n.shape!==void 0?t.geometry:Oa(n),r,o,i,s;({positions:r,triIndices:s}=Jl(e.getAttribute("position"),e.getIndex()));let l;if(n.type==="CylinderGeometry"&&n.cornerRadius===0&&n.hollow===0&&n.openEnded===!1){let c=n.radialSegments*n.heightSegments*3*2,p=c+n.radialSegments*3;l=[c,p]}return{indices:o,verticesPerFace:i}=ec(r,s,e,l),{positions:r,indices:o,verticesPerFace:i}}static allocate(n,t){let e,r,o,i=[],s=[];n.positionWASM&&n.positionWASM.length>0?(e=n.positionWASM,r=n.indexWASM,o=n.verticesPerFaceWASM):(e=Kf,r=Qf,o=Zf);let l=e.length,c=r.length,p=o.length,a=e.length+i.length+s.length,u=r.length+o.length,d=a*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,f=a*Float32Array.BYTES_PER_ELEMENT,m=u*Uint32Array.BYTES_PER_ELEMENT,h=pe._malloc(d),g=new Float32Array(pe.HEAPF32.buffer,h,a),v=new Uint32Array(pe.HEAPU32.buffer,h+f,u);g.set(e,0),g.set(i,e.length),g.set(s,e.length+i.length),v.set(r,0),v.set(o,r.length);let x;n?.scaleBaked?.some(S=>S!==1)&&(x=new $e.Matrix4().makeScale(...n.scaleBaked)),t&&(x?x.premultiply(t):x=t);let w=x?pe.alloc_subdivision_surface2(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p,x.elements):pe.alloc_subdivision_surface(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p);return pe._free(h),w}static buildLevel(n,t,e,r,o){let i=o?pe.get_mesh_data2(n,t?pe.Level.CONTROL:pe.Level.REFINED,e,o.elements):pe.get_mesh_data(n,t?pe.Level.CONTROL:pe.Level.REFINED,e),s=8,l=pe.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(4,4+4),p=0,a=pe.HEAPU32[l[p]>>2],u=pe.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=pe.HEAPU32[l[p]>>2],f=pe.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=pe.HEAPU32[l[p]>>2],h=pe.HEAPU32.subarray(m>>2,(m>>2)+c[p]);p++;let g=pe.HEAPU32[l[p]>>2],v=pe.HEAPU32.subarray(g>>2,(g>>2)+c[p]);if(p++,r===void 0){let x=new $e.BufferGeometry;if(x.setIndex(new $e.Uint32BufferAttribute(v,1)),x.setAttribute("position",new $e.Float32BufferAttribute(u,3)),x.setAttribute("normal",new $e.Float32BufferAttribute(f,3)),t){x.setAttribute("faceMap",new $e.Uint32BufferAttribute(h,1));let w=new Float32Array(f.length/3*4).fill(0);x.setAttribute("color",new $e.BufferAttribute(w,4))}return pe.free_mesh_data(i),x.userData.type="SubdivGeometry",x}r.getAttribute("position").copyArray(u),r.getAttribute("normal").copyArray(f),r.attributes.position.needsUpdate=!0,r.attributes.normal.needsUpdate=!0,pe.free_mesh_data(i)}static buildControlCageWireframe(n,t,e){let r=pe.get_wireframe_data_for_base_level(n),o=4,i=pe.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(2,2+2),l=0,c=pe.HEAPU32[i[l]>>2],p=pe.HEAPF32.subarray(c>>2,(c>>2)+s[l]);l++;let a=pe.HEAPU32[i[l]>>2],u=pe.HEAPU32.subarray(a>>2,(a>>2)+s[l]);if(t===void 0){let d=new $e.BufferGeometry;d.setAttribute("position",new $e.Float32BufferAttribute(p,3));let f=new Float32Array(p.length);for(let m=0,h=p.length;m<h;)f[m++]=e.r,f[m++]=e.g,f[m++]=e.b;return d.setAttribute("color",new $e.BufferAttribute(f,3)),d.setIndex(new $e.Uint32BufferAttribute(u,1)),pe.free_wireframe_data_for_base_level(r),d}t.getAttribute("position").copyArray(p),t.attributes.position.needsUpdate=!0,pe.free_wireframe_data_for_base_level(r)}static updateCollabMesh(n,t,e){let r=t===0;r||pe.set_destination_refinement_level(n,t);let o=e?pe.get_topological_data2(n,r?pe.Level.CONTROL:pe.Level.REFINED,e.elements):pe.get_topological_data(n,r?pe.Level.CONTROL:pe.Level.REFINED),i=6,s=pe.HEAPU32.subarray(o>>2,(o>>2)+i),l=s.subarray(3,3+3),c=0,p=pe.HEAPU32[s[c]>>2],a=new Float32Array(pe.HEAPF32.subarray(p>>2,(p>>2)+l[c]));c++;let u=pe.HEAPU32[s[c]>>2],d=new Uint32Array(pe.HEAPU32.subarray(u>>2,(u>>2)+l[c]));c++;let f=pe.HEAPU32[s[c]>>2],m=new Uint8Array(pe.HEAPU32.subarray(f>>2,(f>>2)+l[c]));return pe.free_topological_data(o),{positions:a,indices:d,verticesPerFace:m}}};var Jf=["getX","getY","getZ"];function Jl(n,t){let e={},r=t?t.count:n.count,o=0,i=[],s=[],l=1e4;for(let p=0;p<r;p++){let a=t?t.getX(p):p,u="";for(let d=0;d<3;d++)u+=`${~~(n[Jf[d]](a)*l)},`;if(u in e)i.push(e[u]);else{for(let d=0;d<3;d++)s.push(n[Jf[d]](a));e[u]=o,i.push(o),o++}}let c=[];for(let p=0;p<i.length;p+=3)i[p]===i[p+1]||i[p]===i[p+2]||i[p+1]===i[p+2]||c.push(i[p],i[p+1],i[p+2]);return{positions:s,triIndices:c}}var Ca=new $e.Vector3,Kl=new $e.Vector3,Ql=new $e.Vector3,Zl=new $e.Vector3;function ec(n,t,e,r){let o=[],i=[];if(e.userData.shape!==void 0&&e.userData.parameters.depth===0&&e.userData.shape.shapeHoles.length===0){let s=e.userData.shape.extractShapePointsToFlatArray([]),l=0;for(let p=0;p<s.length;p+=2)l+=(s[p]-s[(p===0?s.length:p)-2])*(s[p+1]+s[(p===0?s.length:p)-1]);n.length=0;let c=0;if(l<0)for(let p=0;p<s.length;p+=2)n.push(s[p],s[p+1],0),o.push(c++);else for(let p=s.length-2;p>=0;p-=2)n.push(s[p],s[p+1],0),o.push(c++);return i.push(c),{indices:o,verticesPerFace:i}}for(let s=0,l=e.capStartIndex??t.length;s<l;)if(t[s+1]===t[s+3]&&t[s+2]===t[s+5]||t[s+0]===t[s+3]&&t[s+2]===t[s+4]){Ca.set(n[t[s]*3],n[t[s]*3+1],n[t[s]*3+2]),Kl.set(n[t[s+1]*3],n[t[s+1]*3+1],n[t[s+1]*3+2]),Ql.set(n[t[s+4]*3],n[t[s+4]*3+1],n[t[s+4]*3+2]),Zl.set(n[t[s+5]*3],n[t[s+5]*3+1],n[t[s+5]*3+2]),Kl.sub(Ca).normalize(),Ql.sub(Ca).normalize(),Zl.sub(Ca).normalize();let c=Kl.cross(Ql).dot(Zl);Math.abs(c)>.005||r&&r.some((p,a)=>a%2===1?!1:s>=r[a]&&s<r[a+1])?(o.push(t[s],t[s+1],t[s+2]),i.push(3),s+=3):(o.push(t[s],t[s+1],t[s+4],t[s+5]),i.push(4),s+=6)}else o.push(t[s],t[s+1],t[s+2]),i.push(3),s+=3;if(e.capStartIndex!==void 0){let s=[],l=[],c=0,p=new Float32Array([e.userData.parameters.depth])[0];for(let a=0,u=0;a<n.length;a+=3,u++)n[a+2]===0&&(s.push(u),c++),n[a+2]===p&&l.push(u);if(e.userData.parameters.extrudeBevelSize===0){let a=l[0];l[0]=l[1],l[1]=a}s.reverse(),o.push(...s,...l),i.push(c,c)}return{indices:o,verticesPerFace:i}}var Jt={};Ec(Jt,{calcBoolean:()=>CS,calcBooleanTopological:()=>OS,freeMeshSet:()=>ES,getMeshSet:()=>LS,transformMeshSet:()=>MS});var IS,em=new Promise(n=>{IS=n});var Ii=require("three");var ye,Cn;em.then(n=>ye=n);function PS(n,t,e){let r,{positions:o,triIndices:i}=Jl(n.getAttribute("position"),n.getIndex()),s;if(t&&e){let{indices:l,verticesPerFace:c}=ec(o,i,n);s=c.length,r=[];for(let p=0,a=0;p<s;p++){r.push(c[p]);for(let u=0;u<c[p];u++)r.push(l[a++])}}else{let l=i.length;r=Array(l+l/3),s=0;for(let c=0,p=0;p<r.length;)r[p++]=3,s++,r[p++]=i[c++],r[p++]=i[c++],r[p++]=i[c++]}return{positions:o,faceIndices:r,nFaces:s}}function tm(n){let t=n.length,e=t*Uint32Array.BYTES_PER_ELEMENT,r=t*Float32Array.BYTES_PER_ELEMENT,o=Number.isInteger(n[0])?e:r,i=ye._malloc(o);return(Number.isInteger(n[0])?new Uint32Array(ye.HEAPU32.buffer,i,t):new Float32Array(ye.HEAPF32.buffer,i,t)).set(n,0),i}function rm(n){switch(n){case 0:return ye.OP.UNION;case 1:return ye.OP.INTERSECTION;case 2:return ye.OP.A_MINUS_B;case 3:return ye.OP.B_MINUS_A;case 4:return ye.OP.SYMMETRIC_DIFFERENCE;case 5:return ye.OP.ALL;default:throw new Error("Unknown boolean operation "+n)}}function OS(n,t){Cn===void 0&&(Cn=ye.init_csg());let e=tm(n),r=ye.csg_calc_topological(Cn,e,n.length,rm(t));ye._free(e);let o=6,i=ye.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(3,3+3),l=0,c=ye.HEAPU32[i[l]>>2],p=new Float32Array(ye.HEAPF32.subarray(c>>2,(c>>2)+s[l]));l++;let a=ye.HEAPU32[i[l]>>2],u=new Uint32Array(ye.HEAPU32.subarray(a>>2,(a>>2)+s[l]));l++;let d=ye.HEAPU32[i[l]>>2],f=new Uint8Array(ye.HEAPU32.subarray(d>>2,(d>>2)+s[l]));return ye.free_mesh_data(r),{positions:p,indices:u,verticesPerFace:f}}function CS(n,t,e,r){Cn===void 0&&(Cn=ye.init_csg());let o=tm(n),i=ye.csg_calc(Cn,o,n.length,r,rm(t));ye._free(o);let s=5,l=ye.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(2,2+3),p=0,a=ye.HEAPU32[l[p]>>2],u=ye.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=ye.HEAPU32[l[p]>>2],f=ye.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=c[p];e.setAttribute("position",new Ii.Float32BufferAttribute(u,3)),e.setAttribute("normal",new Ii.Float32BufferAttribute(f,3));let h=ye.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new Ii.Sphere),e.boundingSphere.center.set(h[0],h[1],h[2]),e.boundingSphere.radius=(h[3]**2+h[4]**2+h[5]**2)**.5,e.userData.parameters={width:h[3]*2,height:h[4]*2,depth:h[5]*2},ye.free_mesh_data(i),m}function LS(n,t,e){if(ye===void 0)return-1;let r,o,i;if(t&&n.userData.positions!==void 0){let g=n.userData;i=g.verticesPerFace.length,r=g.positions,o=Array(g.verticesPerFace.reduce((v,x)=>v+x,0)+i);for(let v=0,x=0,w=0;v<g.verticesPerFace.length;v++){o[w++]=g.verticesPerFace[v];for(let S=0;S<g.verticesPerFace[v];S++)o[w++]=g.indices[x++]}}else({positions:r,faceIndices:o,nFaces:i}=PS(n,t,e));let s=r.length,l=o.length,c=r.length,p=o.length,a=c*Float32Array.BYTES_PER_ELEMENT+p*Uint32Array.BYTES_PER_ELEMENT,u=c*Float32Array.BYTES_PER_ELEMENT,d=p*Uint32Array.BYTES_PER_ELEMENT,f=ye._malloc(a),m=new Float32Array(ye.HEAPF32.buffer,f,c),h=new Uint32Array(ye.HEAPU32.buffer,f+u,p);return m.set(r,0),h.set(o,0),ye.get_csg_mesh(f,s,f+u,l,i)}function MS(n,t){ye.transform_csg_mesh(n,t.elements)}function ES(n){ye.free_csg_mesh(n)}var tc={ConeGeometry:hf,CubeGeometry:gf,CylinderGeometry:ff,DodecahedronGeometry:xf,EllipseGeometry:_f,HelixGeometry:If,IcosahedronGeometry:Of,LatheGeometry:Cf,NonParametricGeometry:Lf,PolygonGeometry:Mf,PyramidGeometry:Ef,RectangleGeometry:Bf,SphereGeometry:Gf,PlaneGeometry:Vf,BackdropGeometry:Ff,StarGeometry:zf,TextFrameGeometry:jf,TorusGeometry:kf,TorusKnotGeometry:Wf,TriangleGeometry:qf,VectorGeometry:dt},Ni=n=>tc[n.type].create(n);var nc=require("three");var Ma=require("three");var rc=require("three");function st(n,t){return t.color(n)}var oc=n=>"isEntity"in n,vr=n=>"isAbstractMesh"in n,br=n=>n!==null&&n.objectType==="BooleanObject",om=n=>n.objectType==="CombinedCamera";var La=n=>"objectHelper"in n;function BS(n,t){let e=!1;t.position&&(n.position.fromArray(t.position),e=!0),t.rotation&&(n.rotation.fromArray(t.rotation),e=!0),t.scale&&(e=!0,n.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&"hiddenMatrix"in n&&(e=!0,n.hiddenMatrix.fromArray(t.hiddenMatrix??Xr.identity)),e&&(n.updateMatrix(),br(n.parent)&&vr(n)&&n.invalidateDownstreamBooleanData(!0).recomputeBoolean()),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&n.updateWorldMatrix(!1,!0),n.objectType==="CombinedCamera"&&(t.isUpVectorFlipped!==void 0&&(n.isUpVectorFlipped=t.isUpVectorFlipped),n.updateUp())}function DS(n,t){BS(n,t),t.name!==void 0&&(n.name=t.name),t.visible!==void 0&&(n.visible=t.visible)}function nm(n,t,e){DS(n,t),t.color!==void 0&&(n.color=st(t.color,e)),t.intensity!==void 0&&(n.intensity=t.intensity),t.shadows!==void 0&&!(n instanceof rc.HemisphereLight)&&(n.castShadow=t.shadows),n.shadow&&!(n instanceof rc.HemisphereLight)&&t.depth!==void 0&&(n.shadow.camera.far=t.depth,n.shadow.needsUpdate=!0)}function im(n,t){n.shadow.camera.right=t/2,n.shadow.camera.left=-t/2,n.shadow.camera.top=t/2,n.shadow.camera.bottom=-t/2,n.shadow.needsUpdate=!0}var Ea=n=>class extends n{hasEntityChild(){return this.children.some(e=>oc(e))}isDescendantOf(e){e instanceof Ma.Object3D&&(e=e.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===e)return!0;r=r.parent}return!1}attach(e,r){this.updateWorldMatrix(!0,!1);let o=new Ma.Matrix4().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),oc(e)?e.hiddenMatrix.premultiply(o):e.applyMatrix4(o),e.updateWorldMatrix(!1,!1),this.add(e),r!==void 0&&(this.children.pop(),this.children.splice(r,0,e)),this}copy(e,r=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),r===!0)for(let o=0;o<e.children.length;o++){let i=e.children[o];this.add(i.clone())}return this}};var He=require("three");var Ln=new He.Box3,er=new He.Vector3,Sr=new He.Vector3,Mn=new He.Matrix4,am=[new He.Vector3(-1,1,1),new He.Vector3(-1,-1,1),new He.Vector3(1,-1,1),new He.Vector3(1,1,1),new He.Vector3(-1,1,-1),new He.Vector3(-1,-1,-1),new He.Vector3(1,-1,-1),new He.Vector3(1,1,-1)],GS=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],RS=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function VS(n,t,e=0,r=t.count){let o=1/0,i=1/0,s=1/0,l=-1/0,c=-1/0,p=-1/0;for(let a=e;a<r;a++){let u=t.getX(a),d=t.getY(a),f=t.getZ(a);u<o&&(o=u),d<i&&(i=d),f<s&&(s=f),u>l&&(l=u),d>c&&(c=d),f>p&&(p=f)}return n.min.set(o,i,s),n.max.set(l,c,p),n}var sm=(n,t,e)=>{if(vr(n)){let r=n.geometry.userData.parameters,o=n.geometry.getAttribute("position");n.geometry.userData.type==="SubdivGeometry"?er.copy(n.originalGeometry.boundingSphere.center):n.geometry.userData.type==="TextGeometry"?er.set(0,0,r.depth*.5):o!==void 0&&(VS(Ln,o,n.geometry.drawRange.start,n.geometry.drawRange.count<1/0?n.geometry.drawRange.count:o.count),Ln.getCenter(er)),n.forceComputeSize?Ln.getSize(Sr).multiplyScalar(.5):Sr.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}else if(La(n)&&n.objectHelper.visible){let r=n.geometryHelper.getAttribute("position");Ln.setFromArray(r.array),Ln.getCenter(er),Ln.getSize(Sr).multiplyScalar(.5)}else er.setScalar(0),Sr.setScalar(0);Mn.copy(t).multiply(n.matrixWorld),Sr.x===0&&Sr.y===0&&Sr.z===0?e.push(new He.Vector3(er.x,er.y,er.z).applyMatrix4(Mn)):am.forEach(r=>{e.push(r.clone().multiply(Sr).add(er).applyMatrix4(Mn))})},Pi=class extends He.Box3{constructor(){super(...arguments);this.matrix=new He.Matrix4;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(e){return super.copy(e),this.matrix.copy(e.matrix),this.vertices=e.vertices.map(r=>r.clone()),this.faces=e.faces.map(r=>r.clone()),this.edges=e.edges.map(r=>r.clone()),this.centerEdges=e.centerEdges.map(r=>r.clone()),this}setFromObjectSize(e,r=!1){e.updateWorldMatrix(!1,r),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let o=new He.Matrix4().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,r)}expandByObjectSize(e,r,o=!1){let i=[];return o===!0?e.traverseEntity(s=>{s.visible&&sm(s,r,i)}):sm(e,r,i),this.setFromPoints(i)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4(Mn.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(Sr).multiplyScalar(.5),this.getCenter(er),Mn.copy(this.matrix).setPosition(er),this.vertices=am.map(e=>e.clone().multiply(Sr).applyMatrix4(Mn))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=GS.map(([e,r])=>new He.Line3(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new He.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=RS.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var wr=n=>"isEntity"in n,lm=n=>"isAbstractMesh"in n,$t=n=>class extends Ea(n){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new nc.Matrix4;this._singleBBox=new Pi;this._recursiveBBox=new Pi;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1;this.states={};this.currentState=null;this.currentTransitionAction=null}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}resetBBoxNeedsUpdate(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0,this.traverseAncestors(r=>{wr(r)&&(r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(r=>{r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0})}traverseEntity(r){r(this);for(let o of this.children)wr(o)&&o.traverseEntity(r)}traverseVisibleEntity(r){r(this);for(let o of this.children)wr(o)&&o.visible&&o.traverseVisibleEntity(r)}updateMatrix(){super.updateMatrix(),this.dispatchEvent({type:"updateMatrix"})}updateMatrixWorld(r){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||r)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,r=!0);for(let o of this.children)o.updateMatrixWorld(r)}updateWorldMatrix(r,o){let i=this.parent;if(r&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),o)for(let s of this.children)s.updateWorldMatrix(!1,!0)}clone(r){return new this.constructor().copy(this,r)}copy(r,o=!0){if(super.copy(r,!1),this.raycastLock=r.raycastLock,this.scaleLock=r.scaleLock,this.hiddenMatrix.copy(r.hiddenMatrix),o===!0)for(let i of r.children)wr(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let r=new nc.Matrix4,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),r.copy(this.matrixWorld).invert(),r.multiply(o);for(let i of this.children)wr(i)&&i.hiddenMatrix.premultiply(r)}toObjectTransformState(r=[]){this.updateWorldMatrix(!0,!1);let o={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return fn(o,r)}fromObjectTransformState(r){return r.position&&this.position.fromArray(r.position),r.rotation&&this.rotation.fromArray(r.rotation),r.scale&&this.scale.fromArray(r.scale),r.hiddenMatrix&&this.hiddenMatrix.fromArray(r.hiddenMatrix),this.updateMatrix(),this}toState(r=[]){let o={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(r)};return fn(o,r)}fromState(r,o){return r.name&&(this.name=r.name),r.raycastLock!==void 0&&(this.raycastLock=r.raycastLock),r.type!=="OrthographicCamera"&&r.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),r.visible!==void 0&&(this.visible=r.visible),this.fromObjectTransformState(r),this}};var ja=require("three");var rr=require("three");var Oi=class{constructor(t){t=t??{},this.name=t.name,this.type=t.type,this.node=t.node,this.size=t.size,this.needsUpdate=t.needsUpdate}get value(){return this.node.value}set value(t){this.node.value=t}};var cm=require("three"),at=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=cm.MathUtils.generateUUID(),this.type=t,this.name=""}analyze(t,e){e=e??{},t.analyzing=!0,this.build(t.addFlow(e.slot,e.cache,e.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,e,r){return r=r??{},this.analyze(t,r),this.flow(t,e,r)}flow(t,e,r){r=r??{},t.addFlow(r.slot,r.cache,r.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,r){e=e??this.getType(t,e);let o=t.getNodeData(r??this);return t.analyzing&&this.appendDepsNode(t,o,e),t.nodes.indexOf(this)===-1&&t.nodes.push(this),this.updateFrame!==void 0&&t.updaters.indexOf(this)===-1&&t.updaters.push(this),this.generate(t,e,r)}updateFrame(t){}generateReadonly(t,e,r,o,i,s){return""}generate(t,e,r,o,i){return""}parse(t,e,r,o){}appendDepsNode(t,e,r){e.deps=(e.deps||0)+1;let o=t.getTypeLength(r);(o>(e.outputMax||0)||this.getType(t,r))&&(e.outputMax=o,e.output=r)}setName(t){this.name=t}getName(){return this.name}getType(t,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}getHash(){let t="{",e,r;for(e in this)r=this[e],r instanceof at&&(t+='"'+e+'":'+r.getHash()+",");if(this.hashProperties)for(let o=0;o<this.hashProperties.length;o++)e=this.hashProperties[o],r=this[e],t+='"'+e+'":"'+String(r)+'",';return t+='"id":"'+this.uuid+'"}',t}};var ic=class{constructor(){this.nodes={};this.keywords={}}add(t){this.nodes[t.name]=t}addKeyword(t,e,r){r=r!==void 0?r:!0,this.keywords[t]={callback:e,cache:r}}remove(t){delete this.nodes[t.name]}removeKeyword(t){delete this.keywords[t]}get(t){return this.nodes[t]}getKeyword(t,e){return this.keywords[t].callback(e)}getKeywordData(t){return this.keywords[t]}contains(t){return this.nodes[t]!==void 0}containsKeyword(t){return this.keywords[t]!==void 0}},et=new ic;var sc=require("three");var um=require("three"),ce=class extends at{constructor(e,r){super(e);this.scope="";r=r??{},this.shared=r.shared!==void 0?r.shared:!0,this.unique=r.unique!==void 0?r.unique:!1}build(e,r,o,i){if(r=r??this.getType(e),this.getShared(e,r)){let s=this.getUnique(e,r);s&&this.uuid===void 0&&(this.uuid=um.MathUtils.generateUUID()),o=e.getUUID(o??this.getUUID(),!s);let l=e.getNodeData(o),c=l.output||this.getType(e);if(e.analyzing)return(l.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,l,r),this.generate(e,r,o)):super.build(e,r,o);if(s)return l.name=l.name||super.build(e,r,o),l.name;if(!this.getLabel()&&(!this.getShared(e,c)||e.context.ignoreCache||l.deps===1))return super.build(e,r,o);o=this.getUUID(!1);let p=this.getTemp(e,o);if(p)return e.format(p,c,r);{p=super.generate(e,r,o,l.output,i);let a=this.generate(e,c,o);return e.addNodeCode(p+" = "+a+";"),e.format(p,c,r)}}return super.build(e,r,o)}getShared(e,r){return r!=="sampler2D"&&r!=="samplerCube"&&this.shared}getUnique(e,r){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let r=this.uuid;return typeof this.scope=="string"&&(r=this.scope+"-"+r),r}getTemp(e,r){r=r||this.uuid;let o=e.getVars()[r];return o?o.name:void 0}generate(e,r,o,i,s){return this.getShared(e,r)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,i??this.getType(e),s,this.getLabel()).name}};var Ee=class extends ce{constructor(e,r){r=r??{},r.shared=r.shared!==void 0?r.shared:!1;super(e,r);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(e,r,o,i,s,l){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let c=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,r,o,i,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(i,this,s,l,this.getLabel())),e.format(c.vertex.name,i,r)):(c.fragment||(c.fragment=e.createFragmentUniform(i,this,s,l,this.getLabel())),e.format(c.fragment.name,i,r))}};var lt=class extends Ee{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof sc.Vector2?e:new sc.Vector2(e,r)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,r,o,i,s,l){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,r)}};var ac=require("three");var ft=class extends Ee{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof ac.Vector3?e:new ac.Vector3(e,r,o)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,r,o,i,s,l){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,r)}};var pm=require("three"),tt=class extends pm.Color{constructor(e,r,o,i){super(e,r,o);this.isColorA=!0;this.a=i}setRGBA(e,r,o,i){super.setRGB(e,r,o),this.a=i}copy(e){return super.copy(e),this.a="a"in e?e.a:1,this}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}get x(){return this.r}get y(){return this.g}get z(){return this.b}get w(){return this.a}set x(e){this.r=e}set y(e){this.g=e}set z(e){this.b=e}set w(e){this.a=e}};var Xt=class extends Ee{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof tt?e:new tt(e.r,e.g,e.b,e.a)}generateReadonly(e,r,o,i,s,l){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,r)}};var FS=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,dm=/[a-z_0-9]+/gi,$=class extends ce{constructor(e,r,o,i,s){super(s);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=s===void 0,this.isInterface=!1,this.parse(e,r,o,i)}getShared(e,r){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}}getIncludeByName(e){if(this.includes){let r=this.includes.length;for(;r--;)if(this.includes[r].name===e)return this.includes[r]}}generate(e,r,o,i,s){let l,c=0,p=this.src;if(this.includes)for(let u=0;u<this.includes.length;u++)e.include(this.includes[u],this);for(let u in this.extensions)e.extensions[u]=!0;let a=[];for(;l=dm.exec(this.src);)a.push(l);for(let u=0;u<a.length;u++){let d=a[u],f=d[0],m=this.isMethod?!this.getInputByName(f):!0,h=f;if(this.keywords[f]||this.useKeywords&&m&&et.containsKeyword(f)){let g=this.keywords[f];if(!g){let v=et.getKeywordData(f);v.cache&&(g=e.keywords[f]),g=g||et.getKeyword(f,e),v.cache&&(e.keywords[f]=g)}h=g.build(e)}f!==h&&p[d.index+c-1]!=="."&&(p=p.substring(0,d.index+c)+h+p.substring(d.index+f.length+c),c+=h.length-f.length),this.getIncludeByName(h)===void 0&&et.contains(h)&&e.include(et.get(h))}return r==="source"?p:this.isMethod?(this.isInterface||e.include(this,void 0,p),this.name):e.format("( "+p+" )",this.getType(e),r)}parse(e,r,o,i){if(this.src=e||"",this.includes=r??[],this.extensions=o??{},this.keywords=i??{},this.isMethod){let s=FS.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(dm);if(l){let c=0;for(;c<l.length;){let p=l[c++],a;p==="in"||p==="out"||p==="inout"?a=l[c++]:(a=p,p="");let u=l[c++];this.inputs.push({name:u,type:a,qualifier:p})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var zS=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,lc=class extends ce{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||lc.PI,void 0,void 0,void 0,r)}getType(e){return e.getTypeByFormat(this.type)}parse(e,r,o,i,s){this.src=e||"";let l,c,p="",a=zS.exec(e);this.useDefine=s??this.src.charAt(0)==="#",a&&a.length>1?(c=a[1],l=a[2],p=a[3]):(l=this.src,c="f"),this.name=l,this.type=c,this.value=p}build(e,r){if(r==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return e.include(this),e.format(this.name,this.getType(e),r)}generate(e,r,o,i,s){return e.format(this.name,this.getType(e),r)}},we=lc;we.PI="PI",we.PI2="PI2",we.RECIPROCAL_PI="RECIPROCAL_PI",we.RECIPROCAL_PI2="RECIPROCAL_PI2",we.LOG2="LOG2",we.EPSILON="EPSILON";var US=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
4
+ )*?)}`,"gim"),jS=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),En=class extends ce{constructor(e=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(e)}getType(e){return e.getTypeByFormat(this.name)}getInputByName(e){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}generate(e,r,o,i,s){return r==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),r)}parse(e=""){this.src=e,this.inputs=[];let r=US.exec(e);if(r){let o=r[2],i;for(;i=jS.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=r[1]}else this.name="";this.type=this.name}};var Bn=class extends ce{constructor(e){super("v2",{shared:!1});this.nodeType="UV";this.index=e??0}generate(e,r){e.requires.uv[this.index]=!0;let o=this.index>0?this.index+1:"",i=e.isShader("vertex")?"uv"+o:"vUv"+o;return e.format(i,this.getType(e),r)}};et.addKeyword("uv",function(){return new Bn});et.addKeyword("uv2",function(){return new Bn(1)});var Ba=require("three");var Lo=class extends ce{constructor(e,r){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=r??Lo.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case Ba.LinearEncoding:return["Linear"];case Ba.sRGBEncoding:return["sRGB"];default:return[]}}generate(e,r){let o=this.input.build(e,"v4"),i=this.getType(e),s=Lo.Nodes[this.method],l=e.include(s);if(l===Lo.LINEAR_TO_LINEAR)return e.format(o,i,r);if(s.inputs?.length===2){let c=this.factor.build(e,"f");return e.format(l+"( "+o+", "+c+" )",i,r)}else return e.format(l+"( "+o+" )",i,r)}fromEncoding(e){let r=Lo.getEncodingComponents(e);this.method="LinearTo"+r[0],this.factor=r[1]}fromDecoding(e){let r=Lo.getEncodingComponents(e);this.method=r[0]+"ToLinear",this.factor=r[1]}},St=Lo;St.Nodes={LinearToLinear:new $(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
5
5
  `)),sRGBToLinear:new $(["vec4 sRGBToLinear( in vec4 value ) {"," return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );","}"].join(`
6
6
  `)),LinearTosRGB:new $(["vec4 LinearTosRGB( in vec4 value ) {"," return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );","}"].join(`
7
- `))},St.LINEAR_TO_LINEAR="LinearToLinear",St.SRGB_TO_LINEAR="sRGBToLinear",St.LINEAR_TO_SRGB="LinearTosRGB";var Ae=class extends ${constructor(e="",r,o,i,s){super(e,s,i,o,r);this.nodeType="Expression"}};var dm=require("three"),Ot=class extends Ee{constructor(e=new dm.Texture,r,o,i){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=r??new Bn,this.bias=o,this.project=i!==void 0?i:!1}getTexture(e,r){return super.generate(e,r,this.value.uuid,"t")}generate(e,r){if(r==="sampler2D")return this.getTexture(e,r);let o=this.getTexture(e,r),i=this.uv.build(e,this.project?"v4":"v2"),s=this.bias?this.bias.build(e,"f"):void 0;s===void 0&&e.context.bias&&(s=e.context.bias.setTexture(this).build(e,"f"));let l,c;this.project?l="texture2DProj":l=s?"tex2DBias":"tex2D",s?c=l+"( "+o+", "+i+", "+s+" )":c=l+"( "+o+", "+i+" )";let p={include:e.isShader("vertex"),ignoreCache:!0},a=this.getType(e);return e.addContext(p),this.colorSpace=this.colorSpace??new St(new Ae("",a)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(c),c=this.colorSpace.build(e,a),e.removeContext(),e.format(c,a,r)}};var Y=class extends Ee{constructor(e){super("f");this.nodeType="Float";this.value=e??0}generateReadonly(e,r,o,i,s,l){return e.format(this.value+(this.value%1?"":".0"),i,r)}};var Ci=class extends ce{constructor(e,r){super();this.inputs=[];this.nodeType="FunctionCall";this.value=e,this.inputs=r??[]}getFunction(){return this.value}getType(e){return this.value.getType(e)}generate(e,r,o,i,s){i=this.getType(e);let l=this.value,c=l.build(e,r)+"( ",p=[];if(l.inputs){for(let a=0;a<l.inputs.length;a++){let u=l.inputs[a],d=this.inputs[a]||this.inputs[u.name];p.push(d.build(e,e.getTypeByFormat(u.type)))}c+=p.join(", ")+" )"}return e.format(c,i,r)}};var cc=class extends ce{constructor(e,r,o=cc.ADD){super();this.nodeType="Operator";this.type=e.type,this.a=e,this.b=r,this.op=o}getType(e){let r=this.a.getType(e),o=this.b.getType(e);return e.isTypeMatrix(r)?"v4":e.getTypeLength(o)>e.getTypeLength(r)?o:r}generate(e,r){let o=this.getType(e);this.type=o;let i=this.a.build(e,o),s=this.b.build(e,o);return e.format("( "+i+" "+this.op+" "+s+" )",o,r)}},Ct=cc;Ct.ADD="+",Ct.SUB="-",Ct.MUL="*",Ct.DIV="/";var Ce=class extends ce{constructor(e,r=Ce.ABS,o,i){super();this.nodeType="Math";this.a=e,typeof r!="string"?this.b=r:i=r,typeof o!="string"?this.c=o:i=o,this.method=i,this.hashProperties=["method"]}getNumInputs(e){switch(this.method){case Ce.MIX:case Ce.CLAMP:case Ce.REFRACT:case Ce.SMOOTHSTEP:case Ce.FACEFORWARD:return 3;case Ce.MIN:case Ce.MAX:case Ce.MOD:case Ce.STEP:case Ce.REFLECT:case Ce.DISTANCE:case Ce.DOT:case Ce.CROSS:case Ce.POW:return 2;default:return 1}}getInputType(e){let r=e.getTypeLength(this.a.getType(e)),o=this.b?e.getTypeLength(this.b.getType(e)):0,i=this.c?e.getTypeLength(this.c.getType(e)):0;return r>o&&r>i?this.a.getType(e):o>i?this.b.getType(e):this.c.getType(e)}getType(e){switch(this.method){case Ce.LENGTH:case Ce.DISTANCE:case Ce.DOT:return"f";case Ce.CROSS:return"v3"}return this.getInputType(e)}generate(e,r){let o,i,s,l=this.a?e.getTypeLength(this.a.getType(e)):0,c=this.b?e.getTypeLength(this.b.getType(e)):0,p=this.c?e.getTypeLength(this.c.getType(e)):0,a=this.getInputType(e),u=this.getType(e);switch(this.type=u,this.method){case Ce.NEGATE:return e.format("( -"+this.a.build(e,a)+" )",a,r);case Ce.INVERT:return e.format("( 1.0 - "+this.a.build(e,a)+" )",a,r);case Ce.CROSS:o=this.a.build(e,"v3"),i=this.b.build(e,"v3");break;case Ce.STEP:o=this.a.build(e,l===1?"f":a),i=this.b.build(e,a);break;case Ce.MIN:case Ce.MAX:case Ce.MOD:o=this.a.build(e,a),i=this.b.build(e,c===1?"f":a);break;case Ce.REFRACT:o=this.a.build(e,a),i=this.b.build(e,a),s=this.c.build(e,"f");break;case Ce.MIX:o=this.a.build(e,a),i=this.b.build(e,a),s=this.c.build(e,p===1?"f":a);break;default:o=this.a.build(e,a),this.b&&(i=this.b.build(e,a)),this.c&&(s=this.c.build(e,a));break}let d=[];d.push(o),i&&d.push(i),s&&d.push(s);let f=this.getNumInputs(e);if(d.length!==f)throw Error(`Arguments not match used in "${this.method}". Require ${f}, currently ${d.length}.`);return e.format(this.method+"( "+d.join(", ")+" )",u,r)}},fe=Ce;fe.RAD="radians",fe.DEG="degrees",fe.EXP="exp",fe.EXP2="exp2",fe.LOG="log",fe.LOG2="log2",fe.SQRT="sqrt",fe.INV_SQRT="inversesqrt",fe.FLOOR="floor",fe.CEIL="ceil",fe.NORMALIZE="normalize",fe.FRACT="fract",fe.SATURATE="saturate",fe.SIN="sin",fe.COS="cos",fe.TAN="tan",fe.ASIN="asin",fe.ACOS="acos",fe.ARCTAN="atan",fe.ABS="abs",fe.SIGN="sign",fe.LENGTH="length",fe.NEGATE="negate",fe.INVERT="invert",fe.MIN="min",fe.MAX="max",fe.MOD="mod",fe.STEP="step",fe.REFLECT="reflect",fe.DISTANCE="distance",fe.DOT="dot",fe.CROSS="cross",fe.POW="pow",fe.MIX="mix",fe.CLAMP="clamp",fe.REFRACT="refract",fe.SMOOTHSTEP="smoothstep",fe.FACEFORWARD="faceforward";var Dn=class extends ce{constructor(e,r,o){super("v4");this.nodeType="TextureCubeUV";this.value=e,this.uv=r,this.bias=o}bilinearCubeUV(e,r,o,i){let s=new Ci(Dn.Nodes.bilinearCubeUV,[r,o,i]);this.colorSpaceTL=this.colorSpaceTL??new St(new Ae("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(s.build(e)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new St(new Ae("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(s.build(e)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new St(new Ae("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(s.build(e)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new St(new Ae("","v4")),this.colorSpaceBR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(s.build(e)+".br");let l={include:e.isShader("vertex"),ignoreCache:!0};e.addContext(l),this.colorSpaceTLExp=new Ae(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new Ae(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new Ae(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new Ae(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let c=new Ae("mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )","v4");return c.keywords.cubeUV_TL=this.colorSpaceTLExp,c.keywords.cubeUV_TR=this.colorSpaceTRExp,c.keywords.cubeUV_BL=this.colorSpaceBLExp,c.keywords.cubeUV_BR=this.colorSpaceBRExp,c.keywords.cubeUV=s,c}generate(e,r){if(e.isShader("fragment")){let o=this.uv,i=this.bias||e.context.roughness,s=new Ci(Dn.Nodes.roughnessToMip,[i]),l=new fe(s,Dn.Nodes.m0,Dn.Nodes.cubeUV_maxMipLevel,fe.CLAMP),c=new fe(l,fe.FLOOR),p=new fe(l,fe.FRACT),a=this.bilinearCubeUV(e,this.value,o,c),u=this.bilinearCubeUV(e,this.value,o,new Ct(c,new Y(1).setReadonly(!0),Ct.ADD)),d=new fe(a,u,p,fe.MIX);return e.format(d.build(e),"v4",r)}else return console.warn("TextureCubeUVNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r)}},Gn=Dn;Gn.Nodes=function(){let e=new En(`struct TextureCubeUVData {
7
+ `))},St.LINEAR_TO_LINEAR="LinearToLinear",St.SRGB_TO_LINEAR="sRGBToLinear",St.LINEAR_TO_SRGB="LinearTosRGB";var Ae=class extends ${constructor(e="",r,o,i,s){super(e,s,i,o,r);this.nodeType="Expression"}};var fm=require("three"),Ot=class extends Ee{constructor(e=new fm.Texture,r,o,i){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=r??new Bn,this.bias=o,this.project=i!==void 0?i:!1}getTexture(e,r){return super.generate(e,r,this.value.uuid,"t")}generate(e,r){if(r==="sampler2D")return this.getTexture(e,r);let o=this.getTexture(e,r),i=this.uv.build(e,this.project?"v4":"v2"),s=this.bias?this.bias.build(e,"f"):void 0;s===void 0&&e.context.bias&&(s=e.context.bias.setTexture(this).build(e,"f"));let l,c;this.project?l="texture2DProj":l=s?"tex2DBias":"tex2D",s?c=l+"( "+o+", "+i+", "+s+" )":c=l+"( "+o+", "+i+" )";let p={include:e.isShader("vertex"),ignoreCache:!0},a=this.getType(e);return e.addContext(p),this.colorSpace=this.colorSpace??new St(new Ae("",a)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(c),c=this.colorSpace.build(e,a),e.removeContext(),e.format(c,a,r)}};var Y=class extends Ee{constructor(e){super("f");this.nodeType="Float";this.value=e??0}generateReadonly(e,r,o,i,s,l){return e.format(this.value+(this.value%1?"":".0"),i,r)}};var Ci=class extends ce{constructor(e,r){super();this.inputs=[];this.nodeType="FunctionCall";this.value=e,this.inputs=r??[]}getFunction(){return this.value}getType(e){return this.value.getType(e)}generate(e,r,o,i,s){i=this.getType(e);let l=this.value,c=l.build(e,r)+"( ",p=[];if(l.inputs){for(let a=0;a<l.inputs.length;a++){let u=l.inputs[a],d=this.inputs[a]||this.inputs[u.name];p.push(d.build(e,e.getTypeByFormat(u.type)))}c+=p.join(", ")+" )"}return e.format(c,i,r)}};var cc=class extends ce{constructor(e,r,o=cc.ADD){super();this.nodeType="Operator";this.type=e.type,this.a=e,this.b=r,this.op=o}getType(e){let r=this.a.getType(e),o=this.b.getType(e);return e.isTypeMatrix(r)?"v4":e.getTypeLength(o)>e.getTypeLength(r)?o:r}generate(e,r){let o=this.getType(e);this.type=o;let i=this.a.build(e,o),s=this.b.build(e,o);return e.format("( "+i+" "+this.op+" "+s+" )",o,r)}},Ct=cc;Ct.ADD="+",Ct.SUB="-",Ct.MUL="*",Ct.DIV="/";var Ce=class extends ce{constructor(e,r=Ce.ABS,o,i){super();this.nodeType="Math";this.a=e,typeof r!="string"?this.b=r:i=r,typeof o!="string"?this.c=o:i=o,this.method=i,this.hashProperties=["method"]}getNumInputs(e){switch(this.method){case Ce.MIX:case Ce.CLAMP:case Ce.REFRACT:case Ce.SMOOTHSTEP:case Ce.FACEFORWARD:return 3;case Ce.MIN:case Ce.MAX:case Ce.MOD:case Ce.STEP:case Ce.REFLECT:case Ce.DISTANCE:case Ce.DOT:case Ce.CROSS:case Ce.POW:return 2;default:return 1}}getInputType(e){let r=e.getTypeLength(this.a.getType(e)),o=this.b?e.getTypeLength(this.b.getType(e)):0,i=this.c?e.getTypeLength(this.c.getType(e)):0;return r>o&&r>i?this.a.getType(e):o>i?this.b.getType(e):this.c.getType(e)}getType(e){switch(this.method){case Ce.LENGTH:case Ce.DISTANCE:case Ce.DOT:return"f";case Ce.CROSS:return"v3"}return this.getInputType(e)}generate(e,r){let o,i,s,l=this.a?e.getTypeLength(this.a.getType(e)):0,c=this.b?e.getTypeLength(this.b.getType(e)):0,p=this.c?e.getTypeLength(this.c.getType(e)):0,a=this.getInputType(e),u=this.getType(e);switch(this.type=u,this.method){case Ce.NEGATE:return e.format("( -"+this.a.build(e,a)+" )",a,r);case Ce.INVERT:return e.format("( 1.0 - "+this.a.build(e,a)+" )",a,r);case Ce.CROSS:o=this.a.build(e,"v3"),i=this.b.build(e,"v3");break;case Ce.STEP:o=this.a.build(e,l===1?"f":a),i=this.b.build(e,a);break;case Ce.MIN:case Ce.MAX:case Ce.MOD:o=this.a.build(e,a),i=this.b.build(e,c===1?"f":a);break;case Ce.REFRACT:o=this.a.build(e,a),i=this.b.build(e,a),s=this.c.build(e,"f");break;case Ce.MIX:o=this.a.build(e,a),i=this.b.build(e,a),s=this.c.build(e,p===1?"f":a);break;default:o=this.a.build(e,a),this.b&&(i=this.b.build(e,a)),this.c&&(s=this.c.build(e,a));break}let d=[];d.push(o),i&&d.push(i),s&&d.push(s);let f=this.getNumInputs(e);if(d.length!==f)throw Error(`Arguments not match used in "${this.method}". Require ${f}, currently ${d.length}.`);return e.format(this.method+"( "+d.join(", ")+" )",u,r)}},fe=Ce;fe.RAD="radians",fe.DEG="degrees",fe.EXP="exp",fe.EXP2="exp2",fe.LOG="log",fe.LOG2="log2",fe.SQRT="sqrt",fe.INV_SQRT="inversesqrt",fe.FLOOR="floor",fe.CEIL="ceil",fe.NORMALIZE="normalize",fe.FRACT="fract",fe.SATURATE="saturate",fe.SIN="sin",fe.COS="cos",fe.TAN="tan",fe.ASIN="asin",fe.ACOS="acos",fe.ARCTAN="atan",fe.ABS="abs",fe.SIGN="sign",fe.LENGTH="length",fe.NEGATE="negate",fe.INVERT="invert",fe.MIN="min",fe.MAX="max",fe.MOD="mod",fe.STEP="step",fe.REFLECT="reflect",fe.DISTANCE="distance",fe.DOT="dot",fe.CROSS="cross",fe.POW="pow",fe.MIX="mix",fe.CLAMP="clamp",fe.REFRACT="refract",fe.SMOOTHSTEP="smoothstep",fe.FACEFORWARD="faceforward";var Dn=class extends ce{constructor(e,r,o){super("v4");this.nodeType="TextureCubeUV";this.value=e,this.uv=r,this.bias=o}bilinearCubeUV(e,r,o,i){let s=new Ci(Dn.Nodes.bilinearCubeUV,[r,o,i]);this.colorSpaceTL=this.colorSpaceTL??new St(new Ae("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(s.build(e)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new St(new Ae("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(s.build(e)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new St(new Ae("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(s.build(e)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new St(new Ae("","v4")),this.colorSpaceBR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(s.build(e)+".br");let l={include:e.isShader("vertex"),ignoreCache:!0};e.addContext(l),this.colorSpaceTLExp=new Ae(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new Ae(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new Ae(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new Ae(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let c=new Ae("mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )","v4");return c.keywords.cubeUV_TL=this.colorSpaceTLExp,c.keywords.cubeUV_TR=this.colorSpaceTRExp,c.keywords.cubeUV_BL=this.colorSpaceBLExp,c.keywords.cubeUV_BR=this.colorSpaceBRExp,c.keywords.cubeUV=s,c}generate(e,r){if(e.isShader("fragment")){let o=this.uv,i=this.bias||e.context.roughness,s=new Ci(Dn.Nodes.roughnessToMip,[i]),l=new fe(s,Dn.Nodes.m0,Dn.Nodes.cubeUV_maxMipLevel,fe.CLAMP),c=new fe(l,fe.FLOOR),p=new fe(l,fe.FRACT),a=this.bilinearCubeUV(e,this.value,o,c),u=this.bilinearCubeUV(e,this.value,o,new Ct(c,new Y(1).setReadonly(!0),Ct.ADD)),d=new fe(a,u,p,fe.MIX);return e.format(d.build(e),"v4",r)}else return console.warn("TextureCubeUVNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r)}},Gn=Dn;Gn.Nodes=function(){let e=new En(`struct TextureCubeUVData {
8
8
  vec4 tl;
9
9
  vec4 tr;
10
10
  vec4 br;
@@ -83,7 +83,7 @@ var Ah=Object.create;var ps=Object.defineProperty;var Nh=Object.getOwnPropertyDe
83
83
  mip = -2.0 * log2(1.16 * roughness);// 1.16 = 1.79^0.25
84
84
  }
85
85
  return mip;
86
- }`,P);return{bilinearCubeUV:p,roughnessToMip:A,m0:d,cubeUV_maxMipLevel:r}}();var Mo=class extends ce{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??Mo.VIEW}getShared(){return this.scope===Mo.WORLD}build(e,r,o,i){let s=e.context[this.scope+"Normal"];return s?s.build(e,r,o,i):super.build(e,r,o)}generate(e,r,o,i,s){let l;switch(this.scope){case Mo.VIEW:e.isShader("vertex")?l="transformedNormal":l="geometryNormal";break;case Mo.LOCAL:e.isShader("vertex")?l="objectNormal":(e.requires.normal=!0,l="vObjectNormal");break;case Mo.WORLD:e.isShader("vertex")?l="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,l="vWNormal");break}return e.format(l,this.getType(e),r)}},ct=Mo;ct.LOCAL="local",ct.WORLD="world",ct.VIEW="view",ct.NORMAL="normal";et.addKeyword("viewNormal",function(){return new ct(ct.VIEW)});et.addKeyword("localNormal",function(){return new ct(ct.NORMAL)});et.addKeyword("worldNormal",function(){return new ct(ct.WORLD)});var wr=class extends ce{constructor(e){super("v3");this.nodeType="Position";this.scope=e??wr.LOCAL}getType(){switch(this.scope){case wr.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case wr.LOCAL:case wr.WORLD:return!1}return!0}generate(e,r,o,i,s){let l;switch(this.scope){case wr.LOCAL:e.isShader("vertex")?l="transformed":(e.requires.position=!0,l="vPosition");break;case wr.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,l="vWPosition";break;case wr.VIEW:l=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case wr.PROJECTION:l=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(l,this.getType(),r)}},Lt=wr;Lt.LOCAL="local",Lt.WORLD="world",Lt.VIEW="view",Lt.PROJECTION="projection";et.addKeyword("position",function(){return new Lt});et.addKeyword("worldPosition",function(){return new Lt(Lt.WORLD)});et.addKeyword("viewPosition",function(){return new Lt(Lt.VIEW)});var tr=class extends ce{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e??tr.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case tr.SPHERE:return"v2"}return this.type}generate(e,r){let o=this.getUnique(e);if(e.isShader("fragment")){let i;switch(this.scope){case tr.VECTOR:{let s=new ct(ct.VIEW),l=e.context.roughness,c=s.build(e,"v3"),p=new Lt(Lt.VIEW).build(e,"v3"),a=l?l.build(e,"f"):void 0,u=`reflect( -normalize( ${p} ), ${c} )`;a&&(u=`normalize( mix( ${u}, ${c}, ${a} * ${a} ) )`);let d=`inverseTransformDirection( ${u}, viewMatrix )`;o?(e.addNodeCode(`vec3 reflectVec = ${d};`),i="reflectVec"):i=d;break}case tr.CUBE:{let s=new tr(tr.VECTOR).build(e,"v3"),l="vec3( -"+s+".x, "+s+".yz )";o?(e.addNodeCode(`vec3 reflectCubeVec = ${l};`),i="reflectCubeVec"):i=l;break}case tr.SPHERE:{let s=new tr(tr.VECTOR).build(e,"v3"),l="normalize( ( viewMatrix * vec4( "+s+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";o?(e.addNodeCode(`vec2 reflectSphereVec = ${l};`),i="reflectSphereVec"):i=l;break}}return e.format(i,this.getType(),r)}else return console.warn("ReflectNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.type,r)}},_r=tr;_r.CUBE="cube",_r.SPHERE="sphere",_r.VECTOR="vector";var Ea=class extends ce{constructor(e=new Ot,r,o){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new Gn(this.value,r??new _r(_r.VECTOR),o),this.irradianceNode=new Gn(this.value,new ct(ct.WORLD),new Y(1).setReadonly(!0))}generate(e,r){return e.isShader("fragment")?(e.require("irradiance"),e.context.bias&&e.context.bias.setTexture(this.value),(e.slot==="irradiance"?this.irradianceNode:this.radianceNode).build(e,r)):(console.warn("TextureCubeNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r))}};var fm=require("three");var Ba=class extends Ee{constructor(e=new fm.CubeTexture,r,o){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=r??new _r,this.bias=o}getTexture(e,r){return super.generate(e,r,this.value.uuid,"tc")}generate(e,r){if(r==="samplerCube")return this.getTexture(e,r);let o=this.getTexture(e,r),i=this.uv?.build(e,"v3"),s=this.bias?this.bias.build(e,"f"):void 0;s===void 0&&e.context.bias&&(s=e.context.bias.setTexture(this).build(e,"f"));let l;s?l="texCubeBias( "+o+", "+i+", "+s+" )":l="texCube( "+o+", "+i+" )";let c={include:e.isShader("vertex"),ignoreCache:!0},p=this.getType(e);return e.addContext(c),this.colorSpace=this.colorSpace??new St(new Ae("",p)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(l),l=this.colorSpace.build(e,p),e.removeContext(),e.format(l,p,r)}};var mm=["x","y","z","w"],US=["float","vec2","vec3","vec4"],jS={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},kS={t:"sampler2D",tc:"samplerCube",b:"bool",i:"int",f:"float",c:"vec3",v2:"vec2",v3:"vec3",v4:"vec4",m3:"mat3",m4:"mat4","f[]":"float[]","v4[]":"vec4[]"},Da=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};this.getIncludesCode=function(){function t(e,r){return e.deps.length-r.deps.length}return function(r,o){let i=this.getIncludes(r,o);if(!i)return"";let s="";i=i.sort(t);for(let l=0;l<i.length;l++)i[l].src&&(s+=i[l].src+`
86
+ }`,P);return{bilinearCubeUV:p,roughnessToMip:A,m0:d,cubeUV_maxMipLevel:r}}();var Mo=class extends ce{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??Mo.VIEW}getShared(){return this.scope===Mo.WORLD}build(e,r,o,i){let s=e.context[this.scope+"Normal"];return s?s.build(e,r,o,i):super.build(e,r,o)}generate(e,r,o,i,s){let l;switch(this.scope){case Mo.VIEW:e.isShader("vertex")?l="transformedNormal":l="geometryNormal";break;case Mo.LOCAL:e.isShader("vertex")?l="objectNormal":(e.requires.normal=!0,l="vObjectNormal");break;case Mo.WORLD:e.isShader("vertex")?l="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,l="vWNormal");break}return e.format(l,this.getType(e),r)}},ct=Mo;ct.LOCAL="local",ct.WORLD="world",ct.VIEW="view",ct.NORMAL="normal";et.addKeyword("viewNormal",function(){return new ct(ct.VIEW)});et.addKeyword("localNormal",function(){return new ct(ct.NORMAL)});et.addKeyword("worldNormal",function(){return new ct(ct.WORLD)});var _r=class extends ce{constructor(e){super("v3");this.nodeType="Position";this.scope=e??_r.LOCAL}getType(){switch(this.scope){case _r.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case _r.LOCAL:case _r.WORLD:return!1}return!0}generate(e,r,o,i,s){let l;switch(this.scope){case _r.LOCAL:e.isShader("vertex")?l="transformed":(e.requires.position=!0,l="vPosition");break;case _r.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,l="vWPosition";break;case _r.VIEW:l=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case _r.PROJECTION:l=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(l,this.getType(),r)}},Lt=_r;Lt.LOCAL="local",Lt.WORLD="world",Lt.VIEW="view",Lt.PROJECTION="projection";et.addKeyword("position",function(){return new Lt});et.addKeyword("worldPosition",function(){return new Lt(Lt.WORLD)});et.addKeyword("viewPosition",function(){return new Lt(Lt.VIEW)});var tr=class extends ce{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e??tr.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case tr.SPHERE:return"v2"}return this.type}generate(e,r){let o=this.getUnique(e);if(e.isShader("fragment")){let i;switch(this.scope){case tr.VECTOR:{let s=new ct(ct.VIEW),l=e.context.roughness,c=s.build(e,"v3"),p=new Lt(Lt.VIEW).build(e,"v3"),a=l?l.build(e,"f"):void 0,u=`reflect( -normalize( ${p} ), ${c} )`;a&&(u=`normalize( mix( ${u}, ${c}, ${a} * ${a} ) )`);let d=`inverseTransformDirection( ${u}, viewMatrix )`;o?(e.addNodeCode(`vec3 reflectVec = ${d};`),i="reflectVec"):i=d;break}case tr.CUBE:{let s=new tr(tr.VECTOR).build(e,"v3"),l="vec3( -"+s+".x, "+s+".yz )";o?(e.addNodeCode(`vec3 reflectCubeVec = ${l};`),i="reflectCubeVec"):i=l;break}case tr.SPHERE:{let s=new tr(tr.VECTOR).build(e,"v3"),l="normalize( ( viewMatrix * vec4( "+s+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";o?(e.addNodeCode(`vec2 reflectSphereVec = ${l};`),i="reflectSphereVec"):i=l;break}}return e.format(i,this.getType(),r)}else return console.warn("ReflectNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.type,r)}},Tr=tr;Tr.CUBE="cube",Tr.SPHERE="sphere",Tr.VECTOR="vector";var Da=class extends ce{constructor(e=new Ot,r,o){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new Gn(this.value,r??new Tr(Tr.VECTOR),o),this.irradianceNode=new Gn(this.value,new ct(ct.WORLD),new Y(1).setReadonly(!0))}generate(e,r){return e.isShader("fragment")?(e.require("irradiance"),e.context.bias&&e.context.bias.setTexture(this.value),(e.slot==="irradiance"?this.irradianceNode:this.radianceNode).build(e,r)):(console.warn("TextureCubeNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r))}};var mm=require("three");var Ga=class extends Ee{constructor(e=new mm.CubeTexture,r,o){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=r??new Tr,this.bias=o}getTexture(e,r){return super.generate(e,r,this.value.uuid,"tc")}generate(e,r){if(r==="samplerCube")return this.getTexture(e,r);let o=this.getTexture(e,r),i=this.uv?.build(e,"v3"),s=this.bias?this.bias.build(e,"f"):void 0;s===void 0&&e.context.bias&&(s=e.context.bias.setTexture(this).build(e,"f"));let l;s?l="texCubeBias( "+o+", "+i+", "+s+" )":l="texCube( "+o+", "+i+" )";let c={include:e.isShader("vertex"),ignoreCache:!0},p=this.getType(e);return e.addContext(c),this.colorSpace=this.colorSpace??new St(new Ae("",p)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(l),l=this.colorSpace.build(e,p),e.removeContext(),e.format(l,p,r)}};var hm=["x","y","z","w"],kS=["float","vec2","vec3","vec4"],HS={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},WS={t:"sampler2D",tc:"samplerCube",b:"bool",i:"int",f:"float",c:"vec3",v2:"vec2",v3:"vec3",v4:"vec4",m3:"mat3",m4:"mat4","f[]":"float[]","v4[]":"vec4[]"},Ra=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};this.getIncludesCode=function(){function t(e,r){return e.deps.length-r.deps.length}return function(r,o){let i=this.getIncludes(r,o);if(!i)return"";let s="";i=i.sort(t);for(let l=0;l<i.length;l++)i[l].src&&(s+=i[l].src+`
87
87
  `);return s}}();this.slots=[],this.caches=[],this.contexts=[],this.keywords={},this.nodeData={},this.fragmentVariables={},this.fragmentParsVariables={},this.vertexParsVariables={},this.requires={uv:[],color:[],transparent:!1,irradiance:!1,position:!1,worldPosition:!1,normal:!1,worldNormal:!1,vWorldViewDir:!1,modelMatrix:!1,viewMatrix:!1,projectionMatrix:!1},this.includes={consts:[],functions:[],structs:[]},this.attributes={},this.prefixCode=["#ifdef TEXTURE_LOD_EXT"," #define texCube(a, b) textureCube(a, b)"," #define texCubeBias(a, b, c) textureCubeLodEXT(a, b, c)"," #define tex2D(a, b) texture2D(a, b)"," #define tex2DBias(a, b, c) texture2DLodEXT(a, b, c)","#else"," #define texCube(a, b) textureCube(a, b)"," #define texCubeBias(a, b, c) textureCube(a, b, c)"," #define tex2D(a, b) texture2D(a, b)"," #define tex2DBias(a, b, c) texture2D(a, b, c)","#endif",`
88
88
  // NOTE: Include Spline's blending modes. This could be part of BlendNode
89
89
  #define SPE_BLENDING_NORMAL 0
@@ -128,7 +128,7 @@ var Ah=Object.create;var ps=Object.defineProperty;var Nh=Object.getOwnPropertyDe
128
128
  `}addVaryCode(t){this.addVertexParsCode(t),this.addFragmentParsCode(t)}isCache(t){return this.caches.indexOf(t)!==-1}isSlot(t){return this.slots.indexOf(t)!==-1}define(t,e){this.defines[t]=e===void 0?1:e}require(t){this.requires[t]=!0}isDefined(t){return this.defines[t]!==void 0}getVar(t,e,r,o="varying",i="V",s=""){let l=this.getVars(o),c=l[t];if(!c){let p=l.length;c={name:r||"node"+i+p+(s?"_"+s:""),type:e},l.push(c),l[t]=c}return c}getTempVar(t,e,r,o){return this.getVar(t,e,r,this.shader,"T",o)}getAttribute(t,e){if(!this.attributes[t]){let r=this.getVar(t,e);this.addVertexParsCode("attribute "+e+" "+t+";"),this.addVertexFinalCode(r.name+" = "+t+";"),this.attributes[t]={varying:r,name:t,type:e}}return this.attributes[t]}getCode(t){return[this.prefixCode,this.parsCode[t],this.getVarListCode(this.getVars("varying"),"varying"),this.getVarListCode(this.inputs.uniforms[t],"uniform"),this.getVarListCode(this.inputs.arrayUniforms[t],"uniform"),this.getIncludesCode("consts",t),this.getIncludesCode("structs",t),this.getIncludesCode("functions",t),"void main() {",this.getVarListCode(this.getVars(t)),this.code[t],this.resultCode[t],this.finalCode[t],"}"].join(`
129
129
  `)}getVarListCode(t,e){e=e??"";let r="";for(let o=0,i=t.length;o<i;++o){let s=t[o],l=s.type,c=s.name,p=s.size,a=this.getFormatByType(l);if(a===void 0)throw new Error("Node pars "+a+" not found.");a.includes("[]")?r+=e+" "+a.substring(0,a.length-2)+" "+c+`[${p}];
130
130
  `:r+=e+" "+a+" "+c+`;
131
- `}return r}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let e=t instanceof at?t.uuid:t;return this.nodeData[e]=this.nodeData[e]||{}}createUniform(t,e,r,o,i,s){if(e.includes("[]")){let l=this.inputs.arrayUniforms,c=l.list.length,p=new Oi({type:e,size:r.size,name:o||"nodeUA"+c+(s?"_"+s:""),node:r,needsUpdate:i});return l.list.push(p),l[t].push(p),l[t][p.name]=p,this.uniforms[p.name]=p,p}else{let l=this.inputs.uniforms,c=l.list.length,p=new Oi({type:e,name:o||"nodeU"+c+(s?"_"+s:""),node:r,needsUpdate:i});return l.list.push(p),l[t].push(p),l[t][p.name]=p,this.uniforms[p.name]=p,p}}createVertexUniform(t,e,r,o,i){return this.createUniform("vertex",t,e,r,o,i)}createFragmentUniform(t,e,r,o,i){return this.createUniform("fragment",t,e,r,o,i)}include(t,e,r){let o;if(t=typeof t=="string"?et.get(t):t,this.context.include===!1)return t.name;t instanceof $?o=this.includes.functions:t instanceof we?o=this.includes.consts:t instanceof En&&(o=this.includes.structs);let i=o[this.shader]=o[this.shader]||[];if(t){let s=i[t.name];if(s||(s=i[t.name]={node:t,deps:[]},i.push(s),s.src=t.build(this,"source")),t instanceof $&&e&&i[e.name]&&i[e.name].deps.indexOf(t)===-1&&(i[e.name].deps.push(t),t.includes?.length)){let l=0;do this.include(t.includes[l++],e);while(l<t.includes.length)}return r&&(s.src=r),t.name}else throw new Error("Include not found.")}colorToVectorProperties(t){return t.replace("r","x").replace("g","y").replace("b","z").replace("a","w")}colorToVector(t){return t.replace(/c/g,"v3")}getIncludes(t,e){return this.includes[t][e||this.shader]}getConstructorFromLength(t){return US[t-1]}isTypeMatrix(t){return/^m/.test(t)}getTypeLength(t){return t==="f"?1:parseInt(this.colorToVector(t).substr(1))}getTypeFromLength(t){return t===1?"f":"v"+t}findNode(...t){for(let e=0;e<arguments.length;e++){let r=t[e];if(r?.isNode)return r}}resolve(...t){for(let e=0;e<arguments.length;e++){let r=t[e];if(r!==void 0){if(r.isNode)return r;if(r.isTexture)switch(r.mapping){case rr.CubeReflectionMapping:case rr.CubeRefractionMapping:return new Ba(r);case rr.CubeUVReflectionMapping:return new Ea(new Ot(r));default:return new Ot(r)}else{if(r.isVector2)return new lt(r);if(r.isVector3)return new ft(r);if(r.isVector4)return new Xt(r)}}}}format(t,e,r){switch(this.colorToVector(r+" <- "+e)){case"f <- v2":return t+".x";case"f <- v3":return t+".x";case"f <- v4":return t+".x";case"f <- i":case"f <- b":return"float( "+t+" )";case"v2 <- f":return"vec2( "+t+" )";case"v2 <- v3":return t+".xy";case"v2 <- v4":return t+".xy";case"v2 <- i":case"v2 <- b":return"vec2( float( "+t+" ) )";case"v3 <- f":return"vec3( "+t+" )";case"v3 <- v2":return"vec3( "+t+", 0.0 )";case"v3 <- v4":return t+".xyz";case"v3 <- i":case"v3 <- b":return"vec2( float( "+t+" ) )";case"v4 <- f":return"vec4( "+t+" )";case"v4 <- v2":return"vec4( "+t+", 0.0, 1.0 )";case"v4 <- v3":return"vec4( "+t+", 1.0 )";case"v4 <- i":case"v4 <- b":return"vec4( float( "+t+" ) )";case"i <- f":case"i <- b":return"int( "+t+" )";case"i <- v2":return"int( "+t+".x )";case"i <- v3":return"int( "+t+".x )";case"i <- v4":return"int( "+t+".x )";case"b <- f":return"( "+t+" != 0.0 )";case"b <- v2":return"( "+t+" != vec2( 0.0 ) )";case"b <- v3":return"( "+t+" != vec3( 0.0 ) )";case"b <- v4":return"( "+t+" != vec4( 0.0 ) )";case"b <- i":return"( "+t+" != 0 )"}return t}getTypeByFormat(t){return jS[t]||t}getFormatByType(t){return kS[t]||t}getUUID(t,e){return e=e!==void 0?e:!0,e&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return mm[t]}getIndexByElement(t){return mm.indexOf(t)}isShader(t){return this.shader===t}setShader(t){return this.shader=t,this}mergeDefines(t){for(let e in t)this.defines[e]=t[e];return this.defines}mergeUniform(t){for(let e in t)this.uniforms[e]=t[e];return this.uniforms}getTextureEncodingFromMap(t){let e;return t?t.isTexture&&(e=t.encoding):e=rr.LinearEncoding,e===rr.LinearEncoding&&this.context.gamma&&(e=rr.sRGBEncoding),e}};var De=require("three");var Ie=class extends Ee{constructor(e=0,r,o,i){super("c");this.nodeType="Color";this.value=e instanceof tt?e:new tt(e||0,r,o,i)}setRGBA(e){this.value.setRGBA(e.r,e.g,e.b,e.a)}generate(e,r,o,i,s,l){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let c=e.getNodeData(o),p=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let a=this.alpha.build(e,"f");e.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${a};`)}return p?this.generateReadonly(e,r,o,i,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(i,this,s,l,this.getLabel())),e.format(c.vertex.name,i,r)):(c.fragment||(c.fragment=e.createFragmentUniform(i,this,s,l,this.getLabel())),e.format(c.fragment.name,i,r))}generateReadonly(e,r,o,i,s,l){return e.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",i,r)}};var ve=class extends Ee{constructor(e){super("i");this.nodeType="Int";this.value=Math.floor(e??0)}generateReadonly(e,r,o,i,s,l){return e.format(this.value.toString(),i,r)}};var Ga=require("three");var Eo=class extends at{constructor(){super("basic");this.nodeType="Basic";this.color=new Ie(5855577),this.shadingAlpha=new Y(1),this.shadingBlend=new ve(0)}generate(e){let r;if(e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(Ga.UniformsUtils.merge([Ga.UniformsLib.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
131
+ `}return r}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let e=t instanceof at?t.uuid:t;return this.nodeData[e]=this.nodeData[e]||{}}createUniform(t,e,r,o,i,s){if(e.includes("[]")){let l=this.inputs.arrayUniforms,c=l.list.length,p=new Oi({type:e,size:r.size,name:o||"nodeUA"+c+(s?"_"+s:""),node:r,needsUpdate:i});return l.list.push(p),l[t].push(p),l[t][p.name]=p,this.uniforms[p.name]=p,p}else{let l=this.inputs.uniforms,c=l.list.length,p=new Oi({type:e,name:o||"nodeU"+c+(s?"_"+s:""),node:r,needsUpdate:i});return l.list.push(p),l[t].push(p),l[t][p.name]=p,this.uniforms[p.name]=p,p}}createVertexUniform(t,e,r,o,i){return this.createUniform("vertex",t,e,r,o,i)}createFragmentUniform(t,e,r,o,i){return this.createUniform("fragment",t,e,r,o,i)}include(t,e,r){let o;if(t=typeof t=="string"?et.get(t):t,this.context.include===!1)return t.name;t instanceof $?o=this.includes.functions:t instanceof we?o=this.includes.consts:t instanceof En&&(o=this.includes.structs);let i=o[this.shader]=o[this.shader]||[];if(t){let s=i[t.name];if(s||(s=i[t.name]={node:t,deps:[]},i.push(s),s.src=t.build(this,"source")),t instanceof $&&e&&i[e.name]&&i[e.name].deps.indexOf(t)===-1&&(i[e.name].deps.push(t),t.includes?.length)){let l=0;do this.include(t.includes[l++],e);while(l<t.includes.length)}return r&&(s.src=r),t.name}else throw new Error("Include not found.")}colorToVectorProperties(t){return t.replace("r","x").replace("g","y").replace("b","z").replace("a","w")}colorToVector(t){return t.replace(/c/g,"v3")}getIncludes(t,e){return this.includes[t][e||this.shader]}getConstructorFromLength(t){return kS[t-1]}isTypeMatrix(t){return/^m/.test(t)}getTypeLength(t){return t==="f"?1:parseInt(this.colorToVector(t).substr(1))}getTypeFromLength(t){return t===1?"f":"v"+t}findNode(...t){for(let e=0;e<arguments.length;e++){let r=t[e];if(r?.isNode)return r}}resolve(...t){for(let e=0;e<arguments.length;e++){let r=t[e];if(r!==void 0){if(r.isNode)return r;if(r.isTexture)switch(r.mapping){case rr.CubeReflectionMapping:case rr.CubeRefractionMapping:return new Ga(r);case rr.CubeUVReflectionMapping:return new Da(new Ot(r));default:return new Ot(r)}else{if(r.isVector2)return new lt(r);if(r.isVector3)return new ft(r);if(r.isVector4)return new Xt(r)}}}}format(t,e,r){switch(this.colorToVector(r+" <- "+e)){case"f <- v2":return t+".x";case"f <- v3":return t+".x";case"f <- v4":return t+".x";case"f <- i":case"f <- b":return"float( "+t+" )";case"v2 <- f":return"vec2( "+t+" )";case"v2 <- v3":return t+".xy";case"v2 <- v4":return t+".xy";case"v2 <- i":case"v2 <- b":return"vec2( float( "+t+" ) )";case"v3 <- f":return"vec3( "+t+" )";case"v3 <- v2":return"vec3( "+t+", 0.0 )";case"v3 <- v4":return t+".xyz";case"v3 <- i":case"v3 <- b":return"vec2( float( "+t+" ) )";case"v4 <- f":return"vec4( "+t+" )";case"v4 <- v2":return"vec4( "+t+", 0.0, 1.0 )";case"v4 <- v3":return"vec4( "+t+", 1.0 )";case"v4 <- i":case"v4 <- b":return"vec4( float( "+t+" ) )";case"i <- f":case"i <- b":return"int( "+t+" )";case"i <- v2":return"int( "+t+".x )";case"i <- v3":return"int( "+t+".x )";case"i <- v4":return"int( "+t+".x )";case"b <- f":return"( "+t+" != 0.0 )";case"b <- v2":return"( "+t+" != vec2( 0.0 ) )";case"b <- v3":return"( "+t+" != vec3( 0.0 ) )";case"b <- v4":return"( "+t+" != vec4( 0.0 ) )";case"b <- i":return"( "+t+" != 0 )"}return t}getTypeByFormat(t){return HS[t]||t}getFormatByType(t){return WS[t]||t}getUUID(t,e){return e=e!==void 0?e:!0,e&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return hm[t]}getIndexByElement(t){return hm.indexOf(t)}isShader(t){return this.shader===t}setShader(t){return this.shader=t,this}mergeDefines(t){for(let e in t)this.defines[e]=t[e];return this.defines}mergeUniform(t){for(let e in t)this.uniforms[e]=t[e];return this.uniforms}getTextureEncodingFromMap(t){let e;return t?t.isTexture&&(e=t.encoding):e=rr.LinearEncoding,e===rr.LinearEncoding&&this.context.gamma&&(e=rr.sRGBEncoding),e}};var De=require("three");var Ie=class extends Ee{constructor(e=0,r,o,i){super("c");this.nodeType="Color";this.value=e instanceof tt?e:new tt(e||0,r,o,i)}setRGBA(e){this.value.setRGBA(e.r,e.g,e.b,e.a)}generate(e,r,o,i,s,l){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let c=e.getNodeData(o),p=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let a=this.alpha.build(e,"f");e.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${a};`)}return p?this.generateReadonly(e,r,o,i,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(i,this,s,l,this.getLabel())),e.format(c.vertex.name,i,r)):(c.fragment||(c.fragment=e.createFragmentUniform(i,this,s,l,this.getLabel())),e.format(c.fragment.name,i,r))}generateReadonly(e,r,o,i,s,l){return e.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",i,r)}};var ve=class extends Ee{constructor(e){super("i");this.nodeType="Int";this.value=Math.floor(e??0)}generateReadonly(e,r,o,i,s,l){return e.format(this.value.toString(),i,r)}};var Va=require("three");var Eo=class extends at{constructor(){super("basic");this.nodeType="Basic";this.color=new Ie(5855577),this.shadingAlpha=new Y(1),this.shadingBlend=new ve(0)}generate(e){let r;if(e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(Va.UniformsUtils.merge([Va.UniformsLib.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
132
132
  `));let i=["#include <beginnormal_vertex>",`
133
133
  #if !defined( USE_LAYER_DISPLACE )
134
134
  #include <defaultnormal_vertex>
@@ -148,7 +148,7 @@ var Ah=Object.create;var ps=Object.defineProperty;var Nh=Object.getOwnPropertyDe
148
148
  `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
149
149
  `)}else{this.color===void 0&&(this.color=new Ie(5855577)),this.color.analyze(e,{slot:"color"}),this.alpha&&this.alpha.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"});let o=this.color.flow(e,"c",{slot:"color"}),i=this.alpha?this.alpha.flow(e,"f"):void 0,s=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0;e.requires.transparent=i!==void 0,e.addParsCode(["varying vec3 vWPosition;","#include <fog_pars_fragment>","#include <dithering_pars_fragment>","varying vec3 vViewPosition;","#include <normal_pars_fragment>"].join(`
150
150
  `));let l=["#include <normal_fragment_begin>",o.code];i&&l.push(i.code,"#ifdef ALPHATEST"," if ( "+i.result+" <= ALPHATEST ) discard;","#endif"),s?l.push(s.code,`vec3 outgoingLight = ${o.result};`,`vec3 finalColor = spe_blend(outgoingLight, ${s.result}, 1.0, SPE_BLENDING_NORMAL);`):l.push(`vec3 finalColor = ${o.result};`),i?l.push(`gl_FragColor = vec4( finalColor, accumAlpha * ${i.result} );`):l.push("gl_FragColor = vec4("+o.result+", 1.0 );"),l.push("#include <fog_fragment>","#include <dithering_fragment>"),r=l.join(`
151
- `)}return r}};var Wi=require("three");var co=class extends Ee{constructor(e){super("b");this.nodeType="Bool";this.value=e??!1}generateReadonly(e,r,o,i){return e.format(this.value?"true":"false",i,r)}};var hm=require("three");var Rn=class extends Ee{constructor(e){super("m3");this.nodeType="Matrix3";this.value=e??new hm.Matrix3}generateReadonly(e,r,o,i,s,l){return e.format("mat3("+this.value.elements.join(", ")+")",i,r)}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};var or=class extends Ee{constructor(e=1,r){super("f[]");this.nodeType="FloatArray";this.size=e,this.value=Array.isArray(r)?r:typeof r=="number"?new Array(e).fill(r):new Array(e).fill(0)}};var uc=require("three");var nr=class extends Ee{constructor(e=1,r){super("v4[]");this.nodeType="Vector4Array";this.size=e,this.value=Array.isArray(r)?r:r instanceof uc.Vector4?new Array(e).fill(r):new Array(e).fill(new uc.Vector4(0))}};var Li=(i=>(i.SIMPLEX="simplex3d",i.SIMPLEX_FRACTAL="simplex3dFractal",i.ASHIMA="simplexAshima",i.FBM="fbm",i.PERLIN="perlin",i))(Li||{}),yt=function(){let t=new $(`vec3 random3(vec3 c) {
151
+ `)}return r}};var Wi=require("three");var co=class extends Ee{constructor(e){super("b");this.nodeType="Bool";this.value=e??!1}generateReadonly(e,r,o,i){return e.format(this.value?"true":"false",i,r)}};var gm=require("three");var Rn=class extends Ee{constructor(e){super("m3");this.nodeType="Matrix3";this.value=e??new gm.Matrix3}generateReadonly(e,r,o,i,s,l){return e.format("mat3("+this.value.elements.join(", ")+")",i,r)}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};var or=class extends Ee{constructor(e=1,r){super("f[]");this.nodeType="FloatArray";this.size=e,this.value=Array.isArray(r)?r:typeof r=="number"?new Array(e).fill(r):new Array(e).fill(0)}};var uc=require("three");var nr=class extends Ee{constructor(e=1,r){super("v4[]");this.nodeType="Vector4Array";this.size=e,this.value=Array.isArray(r)?r:r instanceof uc.Vector4?new Array(e).fill(r):new Array(e).fill(new uc.Vector4(0))}};var Li=(i=>(i.SIMPLEX="simplex3d",i.SIMPLEX_FRACTAL="simplex3dFractal",i.ASHIMA="simplexAshima",i.FBM="fbm",i.PERLIN="perlin",i))(Li||{}),yt=function(){let t=new $(`vec3 random3(vec3 c) {
152
152
  float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));
153
153
  vec3 r;
154
154
  r.z = fract(512.0*j);
@@ -345,7 +345,7 @@ var Ah=Object.create;var ps=Object.defineProperty;var Nh=Object.getOwnPropertyDe
345
345
 
346
346
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
347
347
  return clamp(color, 0.0, 1.0).rgb;
348
- }`,[yt.simplex,yt.simplexFractal,yt.simplexAshima,yt.fbm,yt.perlin]),p=e.include(c),a=[];return a.push(this.scale.build(e,"f")),a.push(this.size.build(e,"v3")),a.push(this.move.build(e,"f")),a.push(this.fA.build(e,"v2")),a.push(this.fB.build(e,"v2")),a.push(this.distortion.build(e,"v2")),a.push(this.colorA.build(e,"v4")),a.push(this.colorB.build(e,"v4")),a.push(this.colorC.build(e,"v4")),a.push(this.colorD.build(e,"v4")),a.push(this.alpha.build(e,"f")),a.push(this.calpha),e.format(p+"("+a.join(",")+")",this.getType(e),r)}};Mi.numOctaves=5;var Ei=require("three");var Ra=class extends at{constructor(){super("phong");this.nodeType="Phong";this.color=new Ie(5855577),this.specular=new Ie(1118481),this.shininess=new Y(30),this.shadingAlpha=new Y(1),this.shadingBlend=new ve(0)}build(e){let r;if(e.define("PHONG"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(Ei.UniformsUtils.merge([Ei.UniformsLib.fog,Ei.UniformsLib.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
348
+ }`,[yt.simplex,yt.simplexFractal,yt.simplexAshima,yt.fbm,yt.perlin]),p=e.include(c),a=[];return a.push(this.scale.build(e,"f")),a.push(this.size.build(e,"v3")),a.push(this.move.build(e,"f")),a.push(this.fA.build(e,"v2")),a.push(this.fB.build(e,"v2")),a.push(this.distortion.build(e,"v2")),a.push(this.colorA.build(e,"v4")),a.push(this.colorB.build(e,"v4")),a.push(this.colorC.build(e,"v4")),a.push(this.colorD.build(e,"v4")),a.push(this.alpha.build(e,"f")),a.push(this.calpha),e.format(p+"("+a.join(",")+")",this.getType(e),r)}};Mi.numOctaves=5;var Ei=require("three");var Fa=class extends at{constructor(){super("phong");this.nodeType="Phong";this.color=new Ie(5855577),this.specular=new Ie(1118481),this.shininess=new Y(30),this.shadingAlpha=new Y(1),this.shadingBlend=new ve(0)}build(e){let r;if(e.define("PHONG"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(Ei.UniformsUtils.merge([Ei.UniformsLib.fog,Ei.UniformsLib.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
349
349
  `));let i=["#include <beginnormal_vertex>",`
350
350
  #ifndef USE_LAYER_DISPLACE
351
351
  #include <defaultnormal_vertex>
@@ -1083,7 +1083,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1083
1083
  outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${c.result} );
1084
1084
  }
1085
1085
  `),p&&u.push(p.code,`outgoingLight = spe_blend(outgoingLight, ${p.result}, 1.0, SPE_BLENDING_NORMAL);`),a?u.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${a.result} );`):u.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),u.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=u.join(`
1086
- `)}return r}};var Xe=require("three");function gm(n,t){switch(n.type){case"fresnel":return qS(n,t);case"gradient":return $S(n);case"depth":return XS(n);case"normal":return YS(n);case"noise":return KS(n,t);case"rainbow":return QS(n);case"toon":return ZS(n,t);case"outline":return JS(n,t);case"transmission":return ew(n,t);case"color":return WS(n,t)}}function HS(n){return{type:n.type}}function Ar(n){let{alpha:t,mode:e}=n;return{...HS(n),alpha:t,mode:e}}function WS(n,t){return{...Ar(n),color:st(n.color,t)}}function qS(n,t){let{bias:e,scale:r,intensity:o,factor:i,color:s}=n;return{...Ar(n),color:st(s,t),bias:e,scale:r,intensity:o,factor:i}}function $S(n){let{gradientType:t,smooth:e,colors:r,steps:o,angle:i,offset:s,morph:l}=n;return{...Ar(n),gradientType:t,smooth:e,colors:r.map(c=>new Xe.Vector4(c[0],c[1],c[2],c[3])),num:r.length,steps:o,offset:new Xe.Vector2(...s),morph:new Xe.Vector2(...l),angle:i}}function XS(n){let{gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:s,direction:l,colors:c,steps:p,smooth:a}=n;return{...Ar(n),gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:new Xe.Vector3(...s),direction:l?new Xe.Vector3(...l):new Xe.Vector3(1,0,0),colors:c.map(u=>u!==void 0?new Xe.Vector4(u[0],u[1],u[2],u[3]):new Xe.Vector4(0,0,0,0)),steps:p.slice(0,c.length),smooth:a}}function YS(n){let{cnormal:t}=n;return{...Ar(n),cnormal:new Xe.Vector3(t[0],t[1],t[2])}}function KS(n,t){return{...Ar(n),scale:n.scale,move:n.move,fA:new Xe.Vector2(...n.fA),fB:new Xe.Vector2(...n.fB),size:new Xe.Vector3(...n.size),distortion:new Xe.Vector2(...n.distortion),colorA:st(n.colorA,t),colorB:st(n.colorB,t),colorC:st(n.colorC,t),colorD:st(n.colorD,t),noiseType:n.noiseType}}function QS(n){return{...Ar(n),filmThickness:n.filmThickness,movement:n.movement,wavelengths:new Xe.Vector3(...n.wavelengths),noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,offset:new Xe.Vector3(...n.offset)}}function ZS(n,t){return{...Ar(n),positioning:n.positioning,colors:n.colors.map(e=>new Xe.Vector4(e[0],e[1],e[2],e[3])),num:n.colors.length,steps:n.steps,source:new Xe.Vector3(...n.source),isWorldSpace:n.isWorldSpace,noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,shadowColor:st(n.shadowColor,t),offset:new Xe.Vector3(...n.offset)}}function JS(n,t){return{...Ar(n),outlineColor:st(n.outlineColor,t),contourColor:st(n.contourColor,t),outlineWidth:n.outlineWidth,contourWidth:n.contourWidth,outlineThreshold:n.outlineThreshold,contourThreshold:n.contourThreshold,outlineSmoothing:n.outlineSmoothing,contourFrequency:n.contourFrequency,contourDirection:n.contourDirection,positionalLines:n.positionalLines,compensation:n.compensation}}function ew(n,t){return{...Ar(n),thickness:n.thickness,ior:n.ior,roughness:n.roughness}}var uo=class extends tt{};var bm=require("three");var vm=require("three");var vc=new Map,Ki={url:"head",time:0,data:null,next:null,prev:null},zn={url:"tail",time:1/0,data:null,next:null,prev:null};Ki.next=zn;zn.prev=Ki;var ym=0;function xm(n){if(typeof n=="string")return n;let t=Date.now(),e=vc.get(n);return e===void 0?(e={url:URL.createObjectURL(new Blob([n])),data:n,time:t,next:null,prev:null},vc.set(n,e)):(e.time=t,e.prev.next=e.next,e.next.prev=e.prev),e.prev=zn.prev,e.next=zn,zn.prev.next=e,zn.prev=e,t-ym>1e3*10&&(ym=t+1e3,setTimeout(()=>{let r=Date.now(),o=Ki.next;for(;o.time<r-1e3*10;)URL.revokeObjectURL(o.url),vc.delete(o.data),o=o.next,o.prev=Ki,Ki.next=o},900)),e.url}var Un=class{constructor(t,e){this.data=t;this.onImageLoad=e;this.loaded=!1;this.updateSrc(t.data)}updateSrc(t){typeof document>"u"||(this.dispose(),this.loaded=!1,this.img=new Image,this.img.src=xm(t),this.img.onload=()=>{this.loaded=!0;let e=[1e3,1001,1002];for(let r of e){let o=this[r];o&&(o.image=this.img,o.needsUpdate=!0)}this.onImageLoad&&this.onImageLoad()})}getTexture(t){let e=this[t];if(e)return e;{let r=new vm.Texture(this.img,void 0,t,t);return this.loaded&&(r.needsUpdate=!0),this[t]=r,r}}dispose(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}};1e3,1001,1002;var Bo=class extends Un{};var po=class extends Ee{};var bc={noise:["noiseType"],texture:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},Sc={depth:["colors"]};function tw(n,t,e){let r=bc[n.type],o=Sc[n.type];if(o!==void 0){let i=n.color;if(o.includes(t)){let s=i[t]?.value?.length;if(s!==void 0&&s!==e.length)return!0}}return r!==void 0?r.includes(t):!1}function wc(n,t,e){let r=e.uniforms[`f${e.id}_texture`];if(!r)return!1;let o=!1,i=n;if("image"in i){let s=i.image,l=t.image(s),c=r;c instanceof Bo||c.image.dispose(),c.image=l}if("wrapping"in i){let s=r;s.wrap=i.wrapping}if("repeat"in i||"offset"in i){let s="mat",l=e.uniforms[`f${e.id}_${s}`];"repeat"in i&&(l.repeat=i.repeat),"offset"in i&&(l.offset=i.offset),l.updateMatrix()}return o}function Sm(n,t,e,r){let o=!1;for(let[i,s]of Object.entries(n)){if(!i||s===void 0||_c(i,e,r))continue;e.visible=r.visible;let l=e.uniforms[`f${e.id}_${i}`];if(!!l&&!(l instanceof po))switch(o=o||tw(e,i,s),l.constructor){case Ie:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof uo?l.value=new tt(c.r,c.g,c.b,c.a):l.setRGBA(c);break}case Xt:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof uo?l.value=new tt(c.r,c.g,c.b,c.a):l.value.setRGBA(c.r,c.g,c.b,c.a);break}case lt:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]);break}case ft:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]),l.value.setZ(c[2]);break}case Ot:{wc(s,t,e);break}case nr:{l.value=s.map(c=>new bm.Vector4(...c));break}default:{l.value=s;break}}}return o}var Tc=class extends ce{constructor(e,r,o){super("v3");this.nodeType="Matcap";this.texture=e,this.alpha=r,this.mode=o,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(Tc.Nodes.matcap);e.require("normal"),e.requires.normal=!0;let i=[];return i.push(this.texture.generate(e,"t")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("MatcapNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Qi=Tc;Qi.Nodes=function(){return{matcap:new $(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
1086
+ `)}return r}};var Xe=require("three");function ym(n,t){switch(n.type){case"fresnel":return XS(n,t);case"gradient":return YS(n);case"depth":return KS(n);case"normal":return QS(n);case"noise":return ZS(n,t);case"rainbow":return JS(n);case"toon":return ew(n,t);case"outline":return tw(n,t);case"transmission":return rw(n,t);case"color":return $S(n,t)}}function qS(n){return{type:n.type}}function Nr(n){let{alpha:t,mode:e}=n;return{...qS(n),alpha:t,mode:e}}function $S(n,t){return{...Nr(n),color:st(n.color,t)}}function XS(n,t){let{bias:e,scale:r,intensity:o,factor:i,color:s}=n;return{...Nr(n),color:st(s,t),bias:e,scale:r,intensity:o,factor:i}}function YS(n){let{gradientType:t,smooth:e,colors:r,steps:o,angle:i,offset:s,morph:l}=n;return{...Nr(n),gradientType:t,smooth:e,colors:r.map(c=>new Xe.Vector4(c[0],c[1],c[2],c[3])),num:r.length,steps:o,offset:new Xe.Vector2(...s),morph:new Xe.Vector2(...l),angle:i}}function KS(n){let{gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:s,direction:l,colors:c,steps:p,smooth:a}=n;return{...Nr(n),gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:new Xe.Vector3(...s),direction:l?new Xe.Vector3(...l):new Xe.Vector3(1,0,0),colors:c.map(u=>u!==void 0?new Xe.Vector4(u[0],u[1],u[2],u[3]):new Xe.Vector4(0,0,0,0)),steps:p.slice(0,c.length),smooth:a}}function QS(n){let{cnormal:t}=n;return{...Nr(n),cnormal:new Xe.Vector3(t[0],t[1],t[2])}}function ZS(n,t){return{...Nr(n),scale:n.scale,move:n.move,fA:new Xe.Vector2(...n.fA),fB:new Xe.Vector2(...n.fB),size:new Xe.Vector3(...n.size),distortion:new Xe.Vector2(...n.distortion),colorA:st(n.colorA,t),colorB:st(n.colorB,t),colorC:st(n.colorC,t),colorD:st(n.colorD,t),noiseType:n.noiseType}}function JS(n){return{...Nr(n),filmThickness:n.filmThickness,movement:n.movement,wavelengths:new Xe.Vector3(...n.wavelengths),noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,offset:new Xe.Vector3(...n.offset)}}function ew(n,t){return{...Nr(n),positioning:n.positioning,colors:n.colors.map(e=>new Xe.Vector4(e[0],e[1],e[2],e[3])),num:n.colors.length,steps:n.steps,source:new Xe.Vector3(...n.source),isWorldSpace:n.isWorldSpace,noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,shadowColor:st(n.shadowColor,t),offset:new Xe.Vector3(...n.offset)}}function tw(n,t){return{...Nr(n),outlineColor:st(n.outlineColor,t),contourColor:st(n.contourColor,t),outlineWidth:n.outlineWidth,contourWidth:n.contourWidth,outlineThreshold:n.outlineThreshold,contourThreshold:n.contourThreshold,outlineSmoothing:n.outlineSmoothing,contourFrequency:n.contourFrequency,contourDirection:n.contourDirection,positionalLines:n.positionalLines,compensation:n.compensation}}function rw(n,t){return{...Nr(n),thickness:n.thickness,ior:n.ior,roughness:n.roughness}}var uo=class extends tt{};var Sm=require("three");var bm=require("three");var vc=new Map,Ki={url:"head",time:0,data:null,next:null,prev:null},zn={url:"tail",time:1/0,data:null,next:null,prev:null};Ki.next=zn;zn.prev=Ki;var xm=0;function vm(n){if(typeof n=="string")return n;let t=Date.now(),e=vc.get(n);return e===void 0?(e={url:URL.createObjectURL(new Blob([n])),data:n,time:t,next:null,prev:null},vc.set(n,e)):(e.time=t,e.prev.next=e.next,e.next.prev=e.prev),e.prev=zn.prev,e.next=zn,zn.prev.next=e,zn.prev=e,t-xm>1e3*10&&(xm=t+1e3,setTimeout(()=>{let r=Date.now(),o=Ki.next;for(;o.time<r-1e3*10;)URL.revokeObjectURL(o.url),vc.delete(o.data),o=o.next,o.prev=Ki,Ki.next=o},900)),e.url}var Un=class{constructor(t,e){this.data=t;this.onImageLoad=e;this.loaded=!1;this.updateSrc(t.data)}updateSrc(t){typeof document>"u"||(this.dispose(),this.loaded=!1,this.img=new Image,this.img.src=vm(t),this.img.onload=()=>{this.loaded=!0;let e=[1e3,1001,1002];for(let r of e){let o=this[r];o&&(o.image=this.img,o.needsUpdate=!0)}this.onImageLoad&&this.onImageLoad()})}getTexture(t){let e=this[t];if(e)return e;{let r=new bm.Texture(this.img,void 0,t,t);return this.loaded&&(r.needsUpdate=!0),this[t]=r,r}}dispose(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}};1e3,1001,1002;var Bo=class extends Un{};var po=class extends Ee{};var bc={noise:["noiseType"],texture:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},Sc={depth:["colors"]};function ow(n,t,e){let r=bc[n.type],o=Sc[n.type];if(o!==void 0){let i=n.color;if(o.includes(t)){let s=i[t]?.value?.length;if(s!==void 0&&s!==e.length)return!0}}return r!==void 0?r.includes(t):!1}function wc(n,t,e){let r=e.uniforms[`f${e.id}_texture`];if(!r)return!1;let o=!1,i=n;if("image"in i){let s=i.image,l=t.image(s),c=r;c instanceof Bo||c.image.dispose(),c.image=l}if("wrapping"in i){let s=r;s.wrap=i.wrapping}if("repeat"in i||"offset"in i){let s="mat",l=e.uniforms[`f${e.id}_${s}`];"repeat"in i&&(l.repeat=i.repeat),"offset"in i&&(l.offset=i.offset),l.updateMatrix()}return o}function wm(n,t,e,r){let o=!1;for(let[i,s]of Object.entries(n)){if(!i||s===void 0)continue;if(_c(i,e,r)){i==="visible"&&e.type==="light"&&(o=!0);continue}e.visible=r.visible;let l=e.uniforms[`f${e.id}_${i}`];if(!!l&&!(l instanceof po))switch(o=o||ow(e,i,s),l.constructor){case Ie:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof uo?l.value=new tt(c.r,c.g,c.b,c.a):l.setRGBA(c);break}case Xt:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof uo?l.value=new tt(c.r,c.g,c.b,c.a):l.value.setRGBA(c.r,c.g,c.b,c.a);break}case lt:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]);break}case ft:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]),l.value.setZ(c[2]);break}case Ot:{wc(s,t,e);break}case nr:{l.value=s.map(c=>new Sm.Vector4(...c));break}default:{l.value=s;break}}}return o}var Tc=class extends ce{constructor(e,r,o){super("v3");this.nodeType="Matcap";this.texture=e,this.alpha=r,this.mode=o,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(Tc.Nodes.matcap);e.require("normal"),e.requires.normal=!0;let i=[];return i.push(this.texture.generate(e,"t")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("MatcapNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Qi=Tc;Qi.Nodes=function(){return{matcap:new $(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
1087
1087
  vec3 viewDir = normalize( vViewPosition );
1088
1088
  vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
1089
1089
  vec3 y = cross( viewDir, x );
@@ -1095,7 +1095,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1095
1095
 
1096
1096
  return matcapColor.rgb;
1097
1097
  }
1098
- `)}}();var Zi=class extends po{constructor(e,r){super("t");this.image=e;this.wrap=r}get value(){return this.image.getTexture(this.wrap)}};var wm=require("three");var Va=class extends po{constructor(e){super("v3");this.image=e;this._value=new wm.Vector3}get value(){return this._value.x=this.image.img.width,this._value.y=this.image.img.height,this._value}};var Ac=class extends ce{constructor(e,r,o,i,s,l,c,p,a,u){super("v3");this.nodeType="Toon";this.positioning=e,this.colors=r,this.steps=o,this.source=i,this.isWorldSpace=s,this.noiseStrength=l,this.noiseScale=c,this.shadowColor=p,this.offset=a,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("worldNormal"),e.require("worldPosition"),e.isShader("fragment")){e.define("COLORS_MAX",10),e.addFragmentVariable(this.calpha,"float");let o=e.include(Ac.Nodes.toon),i=[];return i.push(this.positioning.build(e,"i")),i.push(this.colors.build(e,"v4[]")),i.push(this.steps.build(e,"f[]")),i.push(this.source.build(e,"v3")),i.push(this.isWorldSpace.build(e,"b")),i.push(this.noiseStrength.build(e,"f")),i.push(this.noiseScale.build(e,"f")),i.push(this.shadowColor.build(e,"v4")),i.push(this.offset.build(e,"v3")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("ToonNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Ji=Ac;Ji.Nodes=function(){let e=new $(`float rand(float n) {
1098
+ `)}}();var Zi=class extends po{constructor(e,r){super("t");this.image=e;this.wrap=r}get value(){return this.image.getTexture(this.wrap)}};var _m=require("three");var za=class extends po{constructor(e){super("v3");this.image=e;this._value=new _m.Vector3}get value(){return this._value.x=this.image.img.width,this._value.y=this.image.img.height,this._value}};var Ac=class extends ce{constructor(e,r,o,i,s,l,c,p,a,u){super("v3");this.nodeType="Toon";this.positioning=e,this.colors=r,this.steps=o,this.source=i,this.isWorldSpace=s,this.noiseStrength=l,this.noiseScale=c,this.shadowColor=p,this.offset=a,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("worldNormal"),e.require("worldPosition"),e.isShader("fragment")){e.define("COLORS_MAX",10),e.addFragmentVariable(this.calpha,"float");let o=e.include(Ac.Nodes.toon),i=[];return i.push(this.positioning.build(e,"i")),i.push(this.colors.build(e,"v4[]")),i.push(this.steps.build(e,"f[]")),i.push(this.source.build(e,"v3")),i.push(this.isWorldSpace.build(e,"b")),i.push(this.noiseStrength.build(e,"f")),i.push(this.noiseScale.build(e,"f")),i.push(this.shadowColor.build(e,"v4")),i.push(this.offset.build(e,"v3")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("ToonNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Ji=Ac;Ji.Nodes=function(){let e=new $(`float rand(float n) {
1099
1099
  return fract(sin(n) * 43758.5453123);
1100
1100
  }`),r=new $(`float hash1(float p) {
1101
1101
  p = fract(p * 0.011);
@@ -1331,8 +1331,8 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1331
1331
 
1332
1332
  return color.xyz;
1333
1333
 
1334
- }`,[yt.simplex,e,o,s])}}();var Tm=require("three");function _m(n,t,e){n.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var Fa=class extends Rn{constructor(e,r){super(new Tm.Matrix3);this.repeat=e;this.offset=r;_m(this.value,e,r)}updateMatrix(){_m(this.value,this.repeat,this.offset)}};var Nr=class{constructor(t,e,r,o){this.id=t;this.uuid=e;this.data=r;this.uniforms={};for(let i in o)this.uniforms[`f${this.id}_${i}`]=o[i];for(let i in r)_c(i,this,r)}get type(){return this.data.type}static create(t,e,r,o){if(r.type==="light")return Ir.createLigherLayer(t,e,r,o);if(r.type==="texture"){let i=o.image(r.texture.image),s=new Zi(i,r.texture.wrapping),l=new Va(i),c=new Fa(r.texture.repeat,r.texture.offset),p=new Y(r.crop?1:0),a=new ve(r.projection??0),u=new ve(["x","y","z"].indexOf(r.axis)??0),d=new ve(r.side??0),f=new lt(r.size?new De.Vector2(r.size[0],r.size[1]):new De.Vector2(100,100)),m=new Y(r.alpha??1),h=new ve(r.mode??0),g=new ji(s,l,p,a,u,d,f,c,m,h),v=new Ae(g.calpha,"f");return new rt(t,e,r,{texture:s,textureSize:l,crop:p,projection:a,axis:u,side:d,size:f,mat:c,alpha:m,mode:h},g,h,v)}else if(r.type==="matcap"){let i=o.image(r.texture.image),s=new Zi(i,r.texture.wrapping),l=new Y(r.alpha??1),c=new ve(r.mode??0),p=new Qi(s,l,c),a=new Ae(p.calpha,"f");return new rt(t,e,r,{texture:s,alpha:l,mode:c},p,c,a)}else if(r.type==="displace")if(r.displacementType==="noise"){let i=new ft(new De.Vector3(...r.offset)),s=new Y(r.scale??10),l=new Y(r.intensity??8),c=new Y(r.movement??1),p=new ve(r.noiseType??0),a=new zi(l,c,i,s,p);return new es(t,e,r,{offset:i,scale:s,intensity:l,movement:c,noiseType:p},a)}else throw new Error;else return ow(t,e,r,o)}updateByOp(t,e,r){let o=t;if(o.path[0]===void 0){if(o.type===0)return"type"in o.props||"category"in o.props?!0:Sm(o.props,r,this,e)}else if(o.path[0]==="texture")return"texture"in e?wc(o.props,r,this):!0;return!1}dispose(){}hasValueByKey(t){return this.uniforms[t]!==void 0}hasValue(t){return this.hasValueByKey(`f${this.id}_${t}`)}setValue(t,e){let r=`f${this.id}_${t}`;this.hasValueByKey(r)&&e!==void 0&&(this.uniforms[r].value=e)}getNode(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e]}getValue(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e].value}getName(t){let r=/f\d+_(.*)/.exec(t);if(r&&r.length>1)return r[1];console.log(`Layer.getName: error ${t}`)}getNames(){let t=[];for(let e in this.uniforms){let r=this.getName(e);r&&t.push(r)}return t}},rt=class extends Nr{constructor(e,r,o,i,s,l,c){super(e,r,o,i);this.color=s;this.mode=l;this.alpha=c}},es=class extends Nr{constructor(e,r,o,i,s){super(e,r,o,i);this.position=s}},Ir=class extends Nr{constructor(e,r,o,i,s){super(e,r,o,s);this.data=o;this.node=i}static createLigherLayer(e,r,o,i){let s,l=new Y(o.alpha),c=new ve(o.mode),p;if(o.category==="lambert"){s=new qi;let a=new Ie(i.color(o.emissive)??0);p={emissive:a},s.emissive=a}else if(o.category==="phong"){s=new Ra;let a=new Y(o.shininess??30),u=new Ie(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}else if(o.category==="toon"){s=new Yi;let a=new Y(o.shininess??30),u=new Ie(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}else if(o.category==="physical"){s=new $i;let a=new Y(o.roughness??.3),u=new Y(o.metalness??0),d=new Y(o.reflectivity??.5);p={roughness:a,metalness:u,reflectivity:d},s.roughness=a,s.metalness=u,s.reflectivity=d}else s=new Eo,p={};return s.alpha=new Y(1),s.shadingAlpha=l,s.shadingBlend=c,p.alpha=s.shadingAlpha,p.mode=s.shadingBlend,new Ir(e,r,o,s,p)}};function Am(n){let t=n instanceof Nr?n.type:n;return t==="texture"||t==="displace_map"||t==="matcap"}function rw(n,t,e,r){switch(n.type){case"color":{let o=new Ie(r.color??5855577),i=new Y(r.alpha??1),s=new Ae("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new ve(r.mode??0);return o.alpha=i,new rt(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}case"fresnel":{let o=new Ie(r.color??16777215),i=new Y(r.bias??.1),s=new Y(r.scale??1),l=new Y(r.intensity??2),c=new Y(r.factor??1),p=new Y(r.alpha??1),a=new ve(r.mode??0),u=new Bi(o,i,s,l,c,p,a),d=new Ae(u.calpha,"f");return new rt(t,e,n,{color:o,bias:i,scale:s,intensity:l,factor:c,alpha:p,mode:a},u,a,d)}case"rainbow":{let o=new Y(r.filmThickness??30),i=new Y(r.movement??0),s=new ft(r.wavelengths??new De.Vector3(0,0,0)),l=new Y(r.noiseStrength??0),c=new Y(r.noiseScale??1),p=new ft(r.offset??new De.Vector3(0,0,0)),a=new Y(r.alpha??1),u=new Di(o,i,s,l,c,p,a),d=new Ae(u.calpha,"f"),f=new ve(r.mode??0);return new rt(t,e,n,{filmThickness:o,movement:i,wavelengths:s,noiseStrength:l,noiseScale:c,offset:p,alpha:a,mode:f},u,f,d)}case"transmission":{let o=new Y(r.thickness??10),i=new Y(r.ior??1.5),s=new Y(r.roughness??.5),l=mt.transmissionSize,c=mt.transmissionRenderTarget,p=mt.transmissionRenderTargetDepth,a=window.innerWidth,u=window.innerHeight,d=a>=u?new lt(u/a,1):new lt(1,a/u),f=new Y(r.alpha??1),m=new Ri(o,i,s,l,c,p,d,f),h=new Ae(m.calpha,"f"),g=new ve(r.mode??0);return new rt(t,e,n,{thickness:o,ior:i,roughness:s,aspectRatio:d,alpha:f,mode:g},m,g,h)}case"toon":{let o=new ve(r.positioning??0),i;r.colors?i=new nr(r.colors.length,r.colors):(i=new nr(10,new De.Vector4(0,0,0,1)),i.value[1]=new De.Vector4(1,1,1,1));let s;r.steps?s=new or(r.steps.length,r.steps):(s=new or(10,1),s.value[0]=0);let l=new ft(r.source??new De.Vector3(0,0,0)),c=new co(r.isWorldSpace??!0),p=new Y(r.noiseStrength??0),a=new Y(r.noiseScale??1),u=new Xt(r.shadowColor),d=new ft(r.offset??new De.Vector3(0,0,0)),f=new Y(r.alpha??1),m=new Ji(o,i,s,l,c,p,a,u,d,f),h=new Ae(m.calpha,"f"),g=new ve(r.mode??0);return new rt(t,e,n,{positioning:o,colors:i,steps:s,source:l,isWorldSpace:c,noiseStrength:p,noiseScale:a,shadowColor:u,offset:d,alpha:f,mode:g},m,g,h)}case"outline":{let o=new Ie(r.outlineColor??16777215),i=new Ie(r.contourColor??16777215),s=new Y(r.outlineWidth??.1),l=new Y(r.contourWidth??.1),c=new Y(r.outlineThreshold??.1),p=new Y(r.contourThreshold??.1),a=new Y(r.outlineSmoothing??.1),u=new Y(r.contourFrequency??.1),d=new ft(r.contourDirections??new De.Vector3(0,1,0)),f=new co(r.positionalLines??!1),m=new co(r.compensation??!0),h=mt.normalRenderTarget,g=mt.normalRenderTargetDepth,v=mt.pixelRatioNode,x=mt.resolution,w=new Y(r.alpha??1),S=new Gi(o,i,s,l,c,p,a,u,d,f,m,x,h,g,v,w),b=new Ae(S.calpha,"f"),I=new ve(r.mode??0);return new rt(t,e,n,{outlineColor:o,contourColor:i,outlineWidth:s,contourWidth:l,outlineThreshold:c,contourThreshold:p,outlineSmoothing:a,contourFrequency:u,contourDirection:d,positionalLines:f,compensation:m,alpha:w,mode:I},S,I,b)}case"depth":{let o=new ve(r.gradientType??0),i=new co(r.smooth??!1),s=new Y(r.near??50),l=new Y(r.far??200),c=new Y(r.isVector??1),p=new Y(r.isWorldSpace??0),a=new ft(r.origin??new De.Vector3),u=new ft(r.direction??new De.Vector3),d;r.colors?d=new nr(r.colors.length,r.colors):(d=new nr(2,new De.Vector4(0,0,0,1)),d.value[1]=new De.Vector4(1,1,1,1));let f;r.steps?f=new or(r.steps.length,r.steps):(f=new or(2,1),f.value[0]=0);let m=new Y(r.alpha??1),h=new ve(r.mode??0),g=new Vi(o,i,s,l,c,p,a,u,d,f,m),v=new Ae(g.calpha,"f");return new rt(t,e,n,{gradientType:o,smooth:i,near:s,far:l,isVector:c,isWorldSpace:p,origin:a,direction:u,colors:d,steps:f,alpha:m,mode:h},g,h,v)}case"noise":{let o=new Y(r.scale??1),i=new ft(r.size??new De.Vector3(100,100,100)),s=new Y(r.move??1),l=new lt(r.fA??new De.Vector2(1.7,9.2)),c=new lt(r.fB??new De.Vector2(8.3,2.8)),p=new lt(r.distortion??new De.Vector2(1,1)),a=new Xt(r.colorA),u=new Xt(r.colorB),d=new Xt(r.colorC),f=new Xt(r.colorD),m=new Y(r.alpha??1),h=new ve(r.mode??0),g=new ve(r.noiseType??0),v=new Mi(o,i,s,l,c,p,a,u,d,f,m,g),x=new Ae(v.calpha,"f");return new rt(t,e,n,{scale:o,size:i,move:s,fA:l,fB:c,distortion:p,colorA:a,colorB:u,colorC:d,colorD:f,alpha:m,mode:h,noiseType:g},v,h,x)}case"normal":{let o=new ft(r.cnormal??new De.Vector3(1,1,1)),i=new Y(r.alpha??1),s=new ve(r.mode??0),l=new Hi(o,i),c=new Ae("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return c.keywords.alpha=i,new rt(t,e,n,{cnormal:o,alpha:i,mode:s},l,s,c)}case"gradient":{let o=new ve(r.gradientType??0),i=new co(r.smooth??!1),s;r.colors?s=new nr(r.colors.length,r.colors):(s=new nr(10,new De.Vector4(0,0,0,1)),s.value[1]=new De.Vector4(1,1,1,1));let l;r.steps?l=new or(r.steps.length,r.steps):(l=new or(10,1),l.value[0]=0);let c=new lt(r.offset??new De.Vector2(0,0)),p=new lt(r.morph??new De.Vector2(0,0)),a=new Y(r.angle??0),u=new Y(r.alpha??1),d=new ve(r.mode??0),f=new Ui(o,i,s,l,c,p,a,u),m=new Ae(f.calpha,"f");return new rt(t,e,n,{gradientType:o,smooth:i,colors:s,steps:l,offset:c,morph:p,angle:a,alpha:u,mode:d},f,d,m)}default:{let o=new Ie(1,0,0,1),i=new Y(1),s=new Ae("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new ve(0);return o.alpha=i,new rt(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}}}function ow(n,t,e,r){let o=gm(e,r);return rw(e,n,t,o)}function _c(n,t,e){if(e.type==="displace"&&(n==="intensity"||n==="visible")){let r=t.uniforms[`f${t.id}_intensity`];return r?(r.value=e.intensity*(e.visible?1:0),r):void 0}if(e.type!=="displace"&&(n==="alpha"||n==="visible")){let r=t.uniforms[`f${t.id}_alpha`];if(!r)return;if(r.value=e.alpha*(e.visible?1:0),e.type==="outline"&&n=="visible"){let o=t.uniforms[`f${t.id}_compensation`];o&&(o.value=e.compensation&&e.visible)}return r}}var Ft=class extends za.ShaderMaterial{constructor(e,r){super(void 0);this.data=e;this.layerIdGen=0;this.type="NodeMaterial";this.uniformsBackup={};this.fog=!0,this.updaters=[],this.dithering=!0,this.vertexColors=!0,this.onBeforeCompile=this._onBeforeCompile,this.transparent=!0,this.reset(e,r)}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.data.category}reset(e,r){let o=e.layers??Rt.defaultTwoLayerData("phong").layers;this.layers=o.map(i=>Nr.create(this.layerIdGen++,i.id,i.data,r)),this.layers.reverse(),this.name=e.name??"Untitled Material",this.onUpdate(r)}getLayersOfType(e){return this.layers.filter(r=>r.type===e)}getLayerByUuid(e){return this.layers.find(r=>r.uuid===e)}onUpdate(e){this.lightLayer=this.layers.find(r=>r instanceof Ir),this.lightLayer===void 0&&(this.lightLayer=new Ir(0,"",Xr.defaultData("light","basic"),new Eo,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(e,r,o){if(this.data=r,e.path[0]==="layers"){let i=e.path[1];if(i===void 0){if(this.layers.reverse(),e.type===4){let s=Nr.create(this.layerIdGen++,e.id,e.data,o);this.layers.splice(e.localIndex,0,s)}else if(e.type===5)this.layers.splice(e.localIndex,1)[0].dispose();else if(e.type===6){let s=this.layers.findIndex(c=>c.uuid===e.id),l=this.layers[s];this.layers.splice(s,1),this.layers.splice(e.localIndex,0,l)}this.layers.reverse(),this.onUpdate(o)}else{let s=this.layers.find(l=>l.uuid===i);if(s){let l=r.layers.data(i);if(s.updateByOp({...e,path:e.path.slice(2)},l,o)){let p=Nr.create(this.layerIdGen++,i,l,o);this.layers.splice(this.layers.findIndex(a=>a.uuid===i),1,p),this.onUpdate(o)}}}}}blendColors(){let e=this.layers.findIndex(o=>o instanceof rt),r=this.layers.findIndex(o=>o instanceof Ir);if(e!==-1&&e<r){let o=this.layers[e].color;for(let i=e+1;i<r;++i){let s=this.layers[i];s instanceof rt&&(o=new Fi(o,s.color,s.alpha,s.mode))}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new Ae("outgoingLight","f"),r=this.layers.findIndex(o=>o instanceof Ir);if(this.layers.length>r+1){for(let o=r+1;o<this.layers.length;++o){let i=this.layers[o];i instanceof rt&&(e=new Fi(e,i.color,i.alpha,i.mode))}this.fragment.afterColor=e}else this.fragment.afterColor=void 0}blendPositions(){let e=this.layers.filter(r=>r instanceof es);if(e.length>0){let r=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(r=new Ct(r,e[o].position,Ct.ADD),r=new Ct(r,new Y(.5).setReadonly(!0),Ct.MUL));this.fragment.position=r}else this.fragment.position=void 0}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}_onBeforeCompile(e,r){this.build({renderer:r}),e.defines=this.defines,e.uniforms=this.uniforms,e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.extensionDerivatives=this.extensions.derivatives===!0,e.extensionFragDepth=this.extensions.fragDepth===!0,e.extensionDrawBuffers=this.extensions.drawBuffers===!0,e.extensionShaderTextureLOD=this.extensions.shaderTextureLOD===!0}clampUniformsForPreview(e,r){let o=(i,s,l)=>Math.min(Math.max(i,s),l);for(let i of this.layers)if(i.type==="displace"){this.uniformsBackup[`f${i.id}_intensity`]=i.uniforms[`f${i.id}_intensity`].value;let s=o(i.uniforms[`f${i.id}_intensity`].value,e,r);i.uniforms[`f${i.id}_intensity`].value=s}}restoreClampedUniforms(){for(let e of this.layers)e.type==="displace"&&(e.uniforms[`f${e.id}_intensity`].value=this.uniformsBackup[`f${e.id}_intensity`])}customProgramCacheKey(){let e="[";for(let{data:r}of this.data.layers)if(r.type==="light")e+=`"${r.category.toUpperCase()}",`;else{let o=(bc[r.type]??[]).map(l=>r[l]),i=(Sc[r.type]??[]).map(l=>r[l]?.length??0),s=[...o,...i];s.length?e+=`["${r.type}", "${s.join('","')}"],`:e+=`"${r.type}",`}return e=e.slice(0,-1)+"]",e}updateFrame(e){for(let r=0;r<this.updaters.length;++r)e.updateNode(this.updaters[r])}build(e){e=e??{};let r=e.builder??new Da;return this.lights=this.lightLayer.data.category!=="basic",r.setMaterial(this,e.renderer),r.build(this.fragment,this.fragment),this.vertexShader=r.getCode("vertex"),this.fragmentShader=r.getCode("fragment"),this.defines=r.defines,this.uniforms=r.uniforms,this.extensions=r.extensions,this.updaters=r.updaters,this.transparent=r.requires.transparent||this.blending>za.NormalBlending,this}dispose(){this.layers.forEach(e=>e.dispose()),super.dispose()}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(Ft.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(n){n===!0&&this.version++,this.needsCompile=n},get:function(){return this.needsCompile}}});var zt=require("three");function nw(n){if(n.geometry.attributes.extrudeNormal||!n.geometry.attributes.position||!n.geometry.attributes.normal)return;let t=new Map,e=n.geometry.attributes.position.array,r=n.geometry.attributes.normal.array,o=new Float32Array(e.length);for(let i=0;i<e.length;i+=3){let s=`${e[i]}_${e[i+1]}_${e[i+2]}`,l=new zt.Vector3(r[i],r[i+1],r[i+2]);t.has(s)?t.get(s)?.normals.push(l):t.set(s,{normals:[l],result:new zt.Vector3})}t.forEach((i,s)=>{for(let l of i.normals)i.result.add(l);i.result.divideScalar(i.normals.length)});for(let i=0;i<e.length;i+=3){let s=`${e[i]}_${e[i+1]}_${e[i+2]}`,l=t.get(s)?.result;l&&(o[i]=l.x,o[i+1]=l.y,o[i+2]=l.z)}n.geometry.setAttribute("extrudeNormal",new zt.Float32BufferAttribute(o,3))}function iw(n){if(n.geometry.attributes.extrudeNormals||!n.geometry.attributes.position)return;let t=n.geometry.attributes.position.array,e=new Float32Array(t.length),r=new zt.Vector3;for(let o=0;o<t.length;o+=3)r.set(t[o],t[o+1],t[o+2]).normalize(),e[o]=r.x,e[o+1]=r.y,e[o+2]=r.z;n.geometry.setAttribute("extrudeNormal",new zt.Float32BufferAttribute(e,3))}function Pr(n){if(Array.isArray(n.material)){for(let t of n.material)if(t.getLayersOfType("outline").length===0)return}else if(!(n.material instanceof Ft)||n.material.getLayersOfType("outline").length===0)return;n.objectType==="Mesh2D"||n.objectType==="TextFrame"&&n.data?.geometry?.depth===0?iw(n):nw(n)}function Or(n){if(!n.geometry.attributes.position)return;let t=n.geometry.attributes.position.array,e=new Float32Array(t.length),r=parseInt(n.uuid.replace(/\D/g,"")),o=[zt.MathUtils.seededRandom(r),zt.MathUtils.seededRandom(r+1e4),zt.MathUtils.seededRandom(r+2e4)];for(let i=0;i<t.length;i++)e[i]=o[i%3];n.geometry.setAttribute("randomColor",new zt.BufferAttribute(e,3))}var ut=class extends $t(Ua.Mesh){constructor(e,r){super(e,r);this.isAbstractMesh=!0;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new Ua.Matrix4;this.booleanExclude=null;Array.isArray(r)&&e.groups.length===0&&e.addGroup(0,Math.max(e.getIndex()?.count??0,e.getAttribute("position").count),0)}get isGroup(){return this._cloner?.parameters.hideBase===!0}get isMesh(){return!this.isGroup}set isMesh(e){}get cloner(){return this._cloner}set cloner(e){this._cloner&&this.remove(this._cloner),e&&this.add(e),this._cloner=e}updateGeometry(e,r){let o=this.geometry,i=tc[o.userData.type],s=this.objectType==="NonParametric"?Object.assign({},o.userData,{geometry:o}):o.userData,l=i.build(i.normalizeInputs(e,s)),c=o.uuid;this.geometry.dispose(),this.geometry=l,this.geometry.uuid=c,this.geometry.computeBoundingSphere(),Pr(this),o.getAttribute("randomColor")&&Or(this)}clone(e){let r=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,o=Ni(r),i=this.material;return new this.constructor(o,i).copy(this,e)}copy(e,r=!0){return super.copy(e,r),e.cloner&&(this.cloner=new No(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new No(this)),this.cloner.fromClonerState(e))}fromState(e,r){return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=e.castShadow??!0,this.receiveShadow=e.receiveShadow??!0,this.booleanExclude=e.booleanExclude??null),this}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(Jt.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),vr(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)xr(e)&&(e.freeBooleanPointer(),vr(e)&&e.invalidateUpstreamBooleanData())}};var sw=new fo.Vector3(0,0,1),Nm=new fo.Vector3,Im=new fo.Vector3,Pm=new fo.Matrix3,jn=class extends ut{constructor(e=dt.create({}),r){super(e,r);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new fo.EventDispatcher;this._onShapeUpdate=()=>{this.updateGeometry({}),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e,r){if(super.updateGeometry(e,r),"userData"in this.geometry){let o=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:o})}}setShape(e){this.shape&&this.shape.eventDispatcher?.removeEventListener("update",this._onShapeUpdate),this.shape=e,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),Pm.getNormalMatrix(this.matrixWorld),Nm.copy(sw).applyMatrix3(Pm).normalize(),Im.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(Nm,Im)}clone(e){let r=this.shape.clone(),o=this.material,i=this.geometry.userData,s=dt.create(Object.assign({},i,{shape:r})),l=new jn(s,o).copy(this,e);return l.shape=r,r.update(),l}raycast(e,r){ut.prototype.raycast.call(this,e,r)}};var Cr=(n,t)=>class extends n{constructor(){super(...arguments);this.objectHelper=new t(this)}get geometryHelper(){return t.geometryHelper}raycast(o,i){this.objectHelper.raycast(o,i)}fromLightState(o,i){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let s=this;o.color!==void 0&&(s.color=st(o.color,i)),o.intensity!==void 0&&(s.intensity=o.intensity),o.depth!==void 0&&(s.shadow.camera.far=o.depth,s.shadow.needsUpdate=!0),o.shadows!==void 0&&(this.castShadow=o.shadows)}return this}};var kn=new ze.Vector3,Nc=new ze.Vector3,zr=class extends Cr($t(ze.Camera),ma){constructor(e=window.innerWidth,r=window.innerHeight,o=45,i,s=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=So.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=r,this.orthoCamera=new ze.OrthographicCamera(e*-.5,e*.5,r*.5,r*-.5,i??-5e4,s),this.perspCamera=new ze.PerspectiveCamera(o,e/r,i??50,s),this.left=this.orthoCamera.left,this.right=this.orthoCamera.right,this.top=this.orthoCamera.top,this.bottom=this.orthoCamera.bottom,this.far=this.orthoCamera.far,this.view=this.orthoCamera.view,this.aspect=this.perspCamera.aspect,this.fov=this.perspCamera.fov,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.toOrthographic()}static createFromState(e,r){let o=new zr().fromState(r);return o.objectHelper.update(),o.uuid=e,o}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}setNear(e,r){e==="PerspectiveCamera"?this.perspCamera.near=r:this.orthoCamera.near=r}setZoom(e,r){r>=0&&(e==="PerspectiveCamera"?this.perspCamera.zoom=r:this.orthoCamera.zoom=r)}set cameraType(e){e==="PerspectiveCamera"?this.toPerspective():e==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(e){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=e:this.orthoCamera.near=e}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(e){e>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=e:this.orthoCamera.zoom=e)}lookAt(e){super.lookAt(e),this.getWorldPosition(kn),this.targetOffset=kn.distanceTo(e)}getTarget(e=new ze.Vector3){return this.getWorldDirection(Nc),this.getWorldPosition(kn),Nc.multiplyScalar(this.targetOffset),e.copy(kn).add(Nc),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(kn),kn.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new ze.Quaternion),r=new ze.Vector3(0,0,1).applyQuaternion(e),o=new ze.Vector3().copy(ze.Object3D.DefaultUp);this.isUpVectorFlipped&&o.negate(),o.applyQuaternion(e);let i=new ze.Vector3().copy(ze.Object3D.DefaultUp).projectOnPlane(r),s=new ze.Vector3().crossVectors(i,o).dot(r)>=0?1:-1;this.angleOffsetFromUp=i.angleTo(o)*s}getViewFrontToObject(e){let r=e.getWorldPosition(new ze.Vector3),i=e.getWorldDirection(new ze.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().add(i),target:r}}getViewToObject(e){let r=e.getWorldPosition(new ze.Vector3),i=this.getWorldDirection(new ze.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().sub(i),target:r}}setViewplaneSize(e,r){this.left=-e*.5,this.right=e*.5,this.top=r*.5,this.bottom=-r*.5,this.aspect=e/r,this.updateProjectionMatrix()}toOrthographic(){this.orthoCamera.left=this.left,this.orthoCamera.right=this.right,this.orthoCamera.top=this.top,this.orthoCamera.bottom=this.bottom,this.orthoCamera.view=this.view,this.orthoCamera.far=this.far,this.orthoCamera.updateProjectionMatrix(),this.projectionMatrix=this.orthoCamera.projectionMatrix,this.projectionMatrixInverse=this.orthoCamera.projectionMatrixInverse,this._cameraType="OrthographicCamera",this.objectHelper&&this.objectHelper.update()}toPerspective(){this.perspCamera.aspect=this.aspect,this.perspCamera.fov=this.fov,this.perspCamera.view=this.view,this.perspCamera.far=this.far,this.perspCamera.updateProjectionMatrix(),this.projectionMatrix=this.perspCamera.projectionMatrix,this.projectionMatrixInverse=this.perspCamera.projectionMatrixInverse,this._cameraType="PerspectiveCamera",this.objectHelper&&this.objectHelper.update()}setFocalLength(e){this.perspCamera.setFocalLength(e),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(e,r,o,i,s,l){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,r,o,i,s,l):this.orthoCamera.setViewOffset(e,r,o,i,s,l)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}updateProjectionMatrix(){this._cameraType==="PerspectiveCamera"?this.toPerspective():this._cameraType==="OrthographicCamera"&&this.toOrthographic()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,r){return super.copy(e,r),this.orthoCamera.copy(e.orthoCamera),this.perspCamera.copy(e.perspCamera),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.far=e.far,this.view=e.view===null?null:Object.assign({},e.view),this._cameraType=e._cameraType,this.aspect=e.aspect,this.fov=e.fov,this.focus=e.focus,this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this.targetOffset=e.targetOffset,this.updateProjectionMatrix(),this}toCameraState(e=[]){let r={type:this.cameraType,far:this.far,orthographic:{near:this.orthoCamera.near,zoom:this.orthoCamera.zoom},perspective:{near:this.perspCamera.near,fov:this.perspCamera.fov,zoom:this.perspCamera.zoom},up:this.up.toArray(),targetOffset:this.targetOffset,isUpVectorFlipped:this.isUpVectorFlipped};return fn(r,e)}fromCameraState(e){let{orthographic:r,perspective:o}=e;return e.type!==void 0&&(this.cameraType=e.type),e.far!==void 0&&(this.far=e.far),r!==void 0&&(r.near!==void 0&&(this.orthoCamera.near=r.near),r.zoom!==void 0&&(this.orthoCamera.zoom=r.zoom)),o!==void 0&&(o.near!==void 0&&(this.perspCamera.near=o.near),o.fov!==void 0&&(this.perspCamera.fov=o.fov),o.zoom!==void 0&&(this.perspCamera.zoom=o.zoom)),e.type==="PerspectiveCamera"?(this.zoom=this.perspCamera.zoom,this.fov=this.perspCamera.fov,this.near=this.perspCamera.near):(this.near=this.orthoCamera.near,this.zoom=this.orthoCamera.zoom),e.up!==void 0&&this.up.fromArray(e.up),e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateProjectionMatrix(),this}toState(e){return{...super.toState(e),...this.toCameraState(e),type:this.cameraType}}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};var ts=require("three");var Om=new ts.Matrix4;var ja=class extends ut{constructor(e=new ts.BufferGeometry,r){super(e,r);this.booleanOp=2;this.phongAngle=35;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.objectType="BooleanObject",this.castShadow=!0,this.receiveShadow=!0,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}reInit(){this.objectType="BooleanObject",this.meshSetAddresses=[],this.needsTransformForDownstream=!1,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}recomputeBoolean(e,r=!0){if(this.booleanMeshSetAddress!==-1)return;for(let i=0;i<this.children.length;i++){let s=this.children[i];vr(s)&&s.recomputeBoolean(e===!0,r)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let s=this.children[i];if(am(s)&&s.booleanExclude===!1&&s.geometry.attributes.position?.count>0&&s.geometry.drawRange.count>0){if(s.booleanMeshSetAddress===-1){if((s.geometry.index??s.geometry.getAttribute("position")).count/3<15e5&&(s.booleanMeshSetAddress=Jt.getMeshSet(s.geometry,e===!0,r)),s.booleanMeshSetAddress===-1)return;Jt.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1}else vr(s)&&s.needsTransformForDownstream===!0?(Jt.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.needsTransformForDownstream=!1):s.booleanWasTransformed===!0&&(Om.multiplyMatrices(s.matrix,s.booleanMatrixInvOld),Jt.transformMeshSet(s.booleanMeshSetAddress,Om),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1);this.meshSetAddresses.push(s.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setDrawRange(0,0);return}if(e===!0)return Jt.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let o=this.geometry;o.dispose(),this.geometry=new ts.BufferGeometry,this.geometry.userData=o.userData,this.geometry.boundingSphere=o.boundingSphere;try{this.booleanMeshSetAddress=Jt.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(i){this.booleanMeshSetAddress=0,console.error(i)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,Pr(this),Or(this)}updateGeometry(e,r){let o=e.parameters;o.operation!==void 0&&(this.booleanOp=o.operation),o.phongAngle!==void 0&&(this.phongAngle=o.phongAngle),this.invalidateDownstreamBooleanData().recomputeBoolean()}};var Cm=require("three");var Do=class extends Cr($t(Cm.Group),yn){constructor(){super(...arguments);this.objectType="EmptyObject"}static createFromState(e,r){let o=new Do().fromState(r);return o.uuid=e,o.objectHelper.update(),o}};var Go=require("three");var Hn=class extends Cr($t(Go.DirectionalLight),gn){constructor(...e){super(...e);this.objectType="LightDirectional";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.top=1250,o.bottom=-1250,o.right=1250,o.left=-1250,o.near=-1e4,o.far=2500;let i=new Go.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new Hn().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Go.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Go.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Go.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromDirectionalLightState(e,r){let o=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;return super.fromLightState(e,r),e.size!==void 0&&nm(this,e.size),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),o&&this.update(),this}fromState(e,r){return super.fromState(e),this.fromDirectionalLightState(e,r),this}};var xt=require("three");var Wn=class extends Cr($t(xt.PointLight),xn){constructor(...e){super(...e);this.objectType="LightPoint";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=90,o.aspect=1,o.near=100,o.far=2500;let i=new xt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new xt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z),l=new xt.Box3(i,s),c=new xt.Box3Helper(l,new xt.Color(16755200));c.visible=!1,this._gizmos.shadowmap=c,this.update()}static createFromState(e,r,o){let i=new Wn().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof xt.Box3Helper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof xt.Box3Helper&&(r.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let r=this._gizmos[e];if(r instanceof xt.Box3Helper){let o=this.shadow.camera,i=new xt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new xt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z);r.box.set(i,s),r.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromPointLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromPointLightState(e,r),this}};var Mt=require("three");var Lm=new Mt.Vector3,Mm=new Mt.Vector3,Em=new Mt.Quaternion,qn=class extends Cr($t(Mt.SpotLight),gi){constructor(...e){super(...e);this.objectType="LightSpot";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=Mt.MathUtils.RAD2DEG*2*this.angle,o.aspect=1,o.near=100,o.far=2500;let i=new Mt.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new qn().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Mt.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Mt.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Mt.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Mm.setFromMatrixPosition(this.matrixWorld),Em.setFromRotationMatrix(this.matrixWorld),Lm.copy(this.up).applyQuaternion(Em).negate().multiplyScalar(this.distance),this.target.position.copy(Mm).add(Lm),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}fromSpotLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.angle!==void 0&&(this.angle=e.angle),e.penumbra!==void 0&&(this.penumbra=e.penumbra),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromSpotLightState(e,r),this}};var Bm=n=>n.tagName==="VIDEO",$n=class{static resize(t,e,r){let o=t/e,i;if(!r.image)return;let s=r.image;Bm(s)?i=s.videoWidth/s.videoHeight:i=s.width/s.height,o>i&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*i/o):r.repeat.set(1,1*i/o)),o<i&&(r.imageType=="WEBCAM"?r.repeat.set(1*o/i*-1,1):r.repeat.set(1*o/i,1)),o==i&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1))}static resizeTextureLayer(t,e,r){let o=t/e,i=r.image!==void 0?r.image.width/r.image.height:1,s;o>i?s={x:1,y:i/o}:o<i?s={x:o/i,y:1}:s={x:1,y:1},r.repeat.set(s.x,s.y),r.updateMatrix()}static resizeTextureLayers(t,e,r){let o=r.layers;for(let i=0;i<o.length;i++){let s=o[i];Am(s)&&$n.resizeTextureLayer(t,e,s.uniforms[`f${s.id}_texture`].value)}}static resizeComplex(t,e,r,o){let i=t/e,s,l=r.image;Bm(l)?s=l.videoWidth/l.videoHeight:s=l.width/l.height,o.geometry.type.includes("Shape")?(i>s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e*s/i):r.repeat.set(1/t,1/e*s/i)),i<s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*i/s*-1,1/e):r.repeat.set(1/t*i/s,1/e)),i==s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e):r.repeat.set(1/t,1/e))):(i>s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*s/i):r.repeat.set(1,1*s/i)),i<s&&(r.imageType=="WEBCAM"?r.repeat.set(1*i/s*-1,1):r.repeat.set(1*i/s,1)),i==s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1)))}};var ka=class extends ut{constructor(e,r){super(e,r);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e,r){super.updateGeometry(e,r),this.material.layers&&$n.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var Xn=class extends ut{constructor(e,r){super(e,r);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var Ha=class extends Xn{constructor(e,r){super(e,r);this.objectType="NonParametric"}};var Gm,os=new Promise(n=>{Gm=n}),Dm=!1;async function Rm(){if(Dm)return;let n=await import("./opentype.js");Gm(n),Dm=!0}var ns=class{async load(t,e,r=()=>{}){let{load:o}=await os;o(t,(i,s)=>{i||!s?r(i??"Something went wrong"):e(s)})}async parse(t){let{parse:e}=await os;try{return e(t)}catch(r){console.error(r)}}};async function aw(n){return await(await fetch(n)).arrayBuffer()}var lw=new ns;async function Ic(n){let t,e,r=!1;if(n.url?(t=await aw(n.url),e=n.url,r=n.url.startsWith("/")):n.data&&(t=n.data.buffer),t){let o=await lw.parse(t);if(o)return{font:o,url:e,intercepted:r,arr:t}}}var Yn=require("three");var Vm=new Yn.Vector3,Fm=new Yn.Matrix4,zm=new Yn.Ray;function Um(n){let t=!1;return n.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="TextGeometry"&&(t=!0)}),t}var Wa=class extends ut{constructor(e,r,o){super(new On(r.geometry,o),o.material(r.material));this.data=r;this.objectType="TextFrame";this.wrappedText=[""];this.charWidths=[];this.charCoords=[];this.castShadow=r.castShadow,this.receiveShadow=r.receiveShadow,this.name=r.name,this.uuid=e,this.updateState(r,o)}async updateGeometry(e,r){let o=e.parameters,i={...this.geometry.userData.parameters,...o};this.geometry.userData={parameters:i,type:"TextGeometry"},r&&(o.font||!this.geometry.font&&r.getFont(i.font))&&await this.geometry.updateFont(o.font??i.font,r),await this.geometry.update(i),Pr(this),Or(this);let{wrappedText:s,charCoords:l,charWidths:c}=this.geometry;this.wrappedText=s,this.charWidths=c,this.charCoords=l,this.resetBBoxNeedsUpdate()}updateState(e,r){this.data=e,this.material=r.material(e.material),this.fromState(e,r),this.updateGeometry({parameters:e.geometry},r)}get font(){return this.geometry.font}get initialOffsetY(){return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,this.geometry.userData.parameters.height,this.fontScale,this.geometry.userData.parameters.verticalAlign)??0}get fontScale(){return this.font?this.geometry.userData.parameters.fontSize/this.font.unitsPerEm:1}get AD(){return Math.abs(this.ascender-this.descender)}get ascender(){return(this.font?.ascender??1)*this.fontScale}get descender(){return(this.font?.descender??1)*this.fontScale}get lineHeight(){return this.geometry.userData.parameters.fontSize*this.geometry.userData.parameters.lineHeight}raycast(e,r){let{matrixWorld:o}=this;if(Fm.copy(o).invert(),zm.copy(e.ray).applyMatrix4(Fm),zm.intersectBox(this.singleBBox,Vm)){let i=Vm.applyMatrix4(o),s=e.ray.origin.distanceTo(i);r.push({distance:s,point:i.clone(),object:this})}}};var wt=require("three");var Wm=Ja(km());var Pc;Na.then(n=>{Pc=n});var qm=new wt.Matrix4,cw=new wt.Matrix4,uw=new wt.Matrix4,ir=new wt.Box3,mo=new wt.Vector3,pw=new wt.Matrix4,dw=new wt.Matrix4;var Kn=class extends ut{constructor(e,r,o,i){super(o??r,i);this.subdivPointer=e;this.originalGeometry=r;this.subdividedGeometry=o;this.objectType="SubdivObject";this.hiddenMatrixOld=new wt.Matrix4;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new wt.Matrix4;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,r,o){let{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}=qt.build(r.geometry,void 0,void 0,!r.flatShading),c=o.material(r.material),p=new Kn(i,s,l||void 0,c);return r.geometry.phongAngle!==void 0&&(p.phongAngle=r.geometry.phongAngle),p.calcBoundingBox(),p.freeSubdivPointer(),p.uuid=e,p.fromState(r),p}buildFromStore(e,r){let{originalGeometry:o,subdividedGeometry:i,subdivPointer:s}=qt.build(e,r,this.subdivPointer,this.smoothShading,this.shearScale);e.phongAngle!==void 0&&(this.phongAngle=e.phongAngle),this.subdivPointer=s,o!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=o),i!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=i??void 0),this.geometry=this.subdividedGeometry??this.originalGeometry,Pr(this),Or(this),e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){qt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&qt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=qt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=qt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(e,r){this.geometry=this.originalGeometry,ut.prototype.raycast.call(this,e,r),this.geometry=this.subdividedGeometry??this.originalGeometry}updateMatrixWorldSVD(){let e=this.matrixWorld.elements,r=[[e[0],e[4],e[8]],[e[1],e[5],e[9]],[e[2],e[6],e[10]]],{u:o,v:i,q:s}=(0,Wm.SVD)(r),l=qm.set(o[0][0],o[0][1],o[0][2],0,o[1][0],o[1][1],o[1][2],0,o[2][0],o[2][1],o[2][2],0,0,0,0,1),c=cw.set(i[0][0],i[0][1],i[0][2],0,i[1][0],i[1][1],i[1][2],0,i[2][0],i[2][1],i[2][2],0,0,0,0,1),p=uw.copy(c).transpose();this.shearScale=pw.makeScale(s[0],s[1],s[2]).multiply(p).premultiply(c),this.shearScaleInv=dw.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(l,p),s.every(a=>Math.abs(s[0]-a)<.01)&&(this.shearScale=void 0,this.shearScaleInv=void 0)}activateSVDCompensation(){this.shearScale!==void 0&&(this.matrixAutoUpdate=!1,this.matrix.copy(this.matrixWorldRigid).copyPosition(this.matrixWorld),this.hiddenMatrixOld.copy(this.hiddenMatrix),this.hiddenMatrix.copy(this.parent.matrixWorld).invert())}deactivateSVDCompensation(){this.shearScale!==void 0&&(this.shearScale=void 0,this.shearScaleInv=void 0,this.matrixAutoUpdate=!0,this.hiddenMatrix.copy(this.hiddenMatrixOld))}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new wt.Sphere);let r=e.attributes.position,o=e.boundingSphere.center;ir.setFromBufferAttribute(r),ir.getCenter(o),e.boundingSphere.radius=o.distanceTo(ir.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ir.getSize(mo);let i={width:mo.x,height:mo.y,depth:mo.z};return this.geometry.userData.parameters=i,i}updateBoundingBox(e){let r=this.originalGeometry;ir.min.set(e[0],e[2],e[4]),ir.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(ir.min.applyMatrix4(this.shearScaleInv),ir.max.applyMatrix4(this.shearScaleInv)),r.boundingSphere===null&&(r.boundingSphere=new wt.Sphere);let o=r.boundingSphere.center;ir.getCenter(o),r.boundingSphere.radius=o.distanceTo(ir.max),isNaN(r.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ir.getSize(mo);let i={width:mo.x,height:mo.y,depth:mo.z};return this.geometry.userData.parameters=i,i}freeSubdivPointer(){this.subdivPointer&&(Pc.free_bvh(this.subdivPointer),Pc.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(e,r){this.geometry.userData.scale||(this.geometry.userData.scale=Array(3)),this.geometry.userData.scale[0]=this.geometry.userData.parameters.width===0?1:e.parameters.width/this.geometry.userData.parameters.width,this.geometry.userData.scale[1]=this.geometry.userData.parameters.height===0?1:e.parameters.height/this.geometry.userData.parameters.height,this.geometry.userData.scale[2]=this.geometry.userData.parameters.depth===0?1:e.parameters.depth/this.geometry.userData.parameters.depth,Hm(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(Hm(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters={...e.parameters}}};function Hm(n,t,e,r){let o=n.position.array,i=n.normal.array,s=qm.makeScale(t,e,r).invert().elements,l,c,p;for(var a=0,u=o.length;a<u;a+=3)o[a]*=t,o[a+1]*=e,o[a+2]*=r,l=i[a],c=i[a+1],p=i[a+2],i[a]=s[0]*l+s[4]*c+s[8]*p,i[a+1]=s[1]*l+s[5]*c+s[9]*p,i[a+2]=s[2]*l+s[6]*c+s[10]*p}var ho=require("three");function $m(n,t){t.flatShading!==void 0&&(n.flatShading=t.flatShading,n.needsUpdate=!0),t.wireframe!==void 0&&(n.wireframe=t.wireframe),t.side!==void 0&&(t.side===0?n.side=ho.FrontSide:t.side===1?n.side=ho.BackSide:n.side=ho.DoubleSide)}function fw(n,t){if(Array.isArray(n.material))for(let e of n.material)$m(e,t);else{let e=n.material;$m(e,t)}n.objectType==="SubdivObject"&&t.flatShading!==void 0&&(n.material.flatShading=!1,n.smoothShading=!t.flatShading,n.updateMesh())}function Xm(n,t,e){let r;if(t.geometry.type==="SubdivGeometry")r=Kn.createFromState(n,t,e);else{let o=t.geometry.type==="BooleanGeometry"?new ho.BufferGeometry:Ia(t.geometry,e),i="materials"in t?t.materials.map(s=>e.material(s)):e.material(t.material);Es.is2DParametricMesh(o.userData.type)?r=new ka(o,i):o?.userData.type==="VectorGeometry"?r=new jn(o,i):t.geometry.type==="NonParametricGeometry"?r=new Ha(o,i):t.geometry.type==="BooleanGeometry"?(r=new ja(void 0,i),r.booleanOp=t.geometry.operation,t.geometry.phongAngle!==void 0&&(r.phongAngle=t.geometry.phongAngle)):r=new Xn(o,i),r.uuid=n,r.fromState(t,e)}return fw(r,t),r}function Ym(n,t,e){return t.type==="Mesh"?t.geometry.type==="TextGeometry"?new Wa(n,t,e):Xm(n,t,e):t.type==="Empty"?Do.createFromState(n,t):t.type==="PointLight"?Wn.createFromState(n,t,e):t.type==="SpotLight"?qn.createFromState(n,t,e):t.type==="DirectionalLight"?Hn.createFromState(n,t,e):Wo.is(t.type)?zr.createFromState(n,t):(console.error(t),new Do)}var Ro=class extends Ft{};var Ur=require("three");function Km(n,t){let e=!1,r=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return o.length>0&&(n.layers.set(8),r.length>0&&n.layers.enable(3),e=!0,Or(n),Pr(n)),r.length===0&&o.length===0&&n.layers.set(0),e}function Qm(n,t){if(!t.layers)return!1;let e=!1,r=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return r.length>0&&(n.layers.set(3),o.length>0&&n.layers.enable(8),e=!0),r.length===0&&o.length===0&&n.layers.set(0),e}function Zm(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof Ur.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)Km(e,e.material[r])&&(t=!0);else Km(e,e.material)&&(t=!0)}),t}function Jm(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof Ur.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)Qm(e,e.material[r])&&(t=!0);else Qm(e,e.material)&&(t=!0)}),t}function eh(n){"material"in n&&hw(n.material),"geometry"in n&&n.geometry.dispose()}function hw(n){Bd(n).forEach(t=>{t instanceof Ro||t.dispose()})}var gw=new Ur.Raycaster,yw=new Ur.Matrix4,xw=new Ur.Ray;function th(n,t,e){let r=n.cloner;if(r)for(let o of r.children){let i=yw.copy(o.matrixWorld).invert(),s=xw.copy(t.ray).applyMatrix4(i),l=n.matrixWorld;s.applyMatrix4(l);let c=gw;c.set(s.origin,s.direction),c.near=t.near,c.far=t.far,c.intersectObject(n,!1).length>0&&e.push({object:n})}}var rh=new Lr.Vector3,Oc=class extends La(Lr.Scene){constructor(e,r){super();this.objectType="Scene";this.backupFog=new Lr.Fog(16777215,.1,2e3);this.fogUseBGColor=!1;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this.bgColor=new tt(1,1,1,1);this.entityByUuid={};this.ambientLight=new Lr.HemisphereLight(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.ambientLight.layers.enable(3),this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.postprocessing=e.postprocessing,this.init(e,r),this.matrixAutoUpdate=!1}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=Jm(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=Zm(this),this.needsNormalDirty=!1),this._needsNormal}find(e){if(e===""||e===void 0)return;let r=this.entityByUuid[e];return r===void 0?this.getObjectByProperty("uuid",e):r}get enableFog(){return this.fog!==null}set enableFog(e){this.fog=e===!0?this.backupFog:null}init(e,r){if(this.createChildrenObjects(e.objects,this,r),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(st(e.backgroundColor,r)),this.updateFog(e.fog,r),this.updateAmbientLight(e.environment.ambientLight,r),this.activeCamera=this.personalCamera,e.publish.playCamera!==null){let o=this.find(e.publish.playCamera);o instanceof zr&&this.switchActiveCamera(o)}this.traverse(o=>{vr(o)&&o.recomputeBoolean()})}clearScene(){this.traverseEntity(e=>{eh(e)});for(let e of this.children)Sr(e)&&e.removeFromParent()}resetAfterClear(e,r){this.init(e,r)}createPersonalCamera(){let e=zr.createFromState(Oc.PERSONAL_CAMERA_ID,{...aa.defaultData,name:"Personal Camera"});return e.objectHelper.visible=!1,delete e.isEntity,this.registerObjectCreatedInLegacy(e),e}raycast(e){let r=[],o=i=>{for(let s of i.children)Sr(s)&&!s.raycastLock&&s.visible&&((xr(s)||Oa(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,r),th(s,e,r)),o(s))};return o(this),r}traverseEntity(e){for(let r of this.children)Sr(r)&&r.traverseEntity(e)}traverseVisibleEntity(e){for(let r of this.children)Sr(r)&&r.visible&&r.traverseVisibleEntity(e)}updateFog(e,r){this.enableFog=e.enabled,this.fogUseBGColor=e.useBackgroundColor,e.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=st(e.color,r),this.backupFog.near=e.near,this.backupFog.far=e.far}dispose(){this.clearScene()}updateAmbientLight(e,r){om(this.ambientLight,e,r),e.groundColor!==void 0&&(this.ambientLight.groundColor=st(e.groundColor,r)),e.enabled!==void 0&&(this.ambientLight.visible=e.enabled)}switchActiveCamera(e){this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=e,e.objectHelper.visible=!1}setBackgroundColor(e){this.bgColor=e,this.fogUseBGColor===!0&&(this.backupFog.color=e)}createChildrenObjects(e,r,o){for(let i of e)this.createChildObject(i.id,i.data,i.children,r,o)}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let r of e.children)this.unregisterObject(r)}createChildObject(e,r,o,i,s){let l=Ym(e,r,s);return l&&(this.entityByUuid[e]=l,i.add(l),vr(i)&&xr(l)&&(l.prevBooleanObjectParent=i),this.createChildrenObjects(o,l,s)),l}getCenter(e){let r=[];for(let i=0,s=e.length;i<s;++i){let{id:l,recursive:c}=e[i],p=this.find(l),a=c?p.recursiveBBox:p.singleBBox;r.push(...a.vertices)}let o=new Lr.Box3;return o.setFromPoints(r),o.getCenter(rh),rh}copyMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e);o?r.copy(o.matrixWorld):r.identity()}copyParentMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e)?.parent;o?r.copy(o.matrixWorld):r.identity()}traverseMaterial(e){this.traverseEntity(r=>{if(r instanceof ut)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)r.material[o]instanceof Ft&&e(r.material[o]);else r.material instanceof Ft&&e(r.material)})}updateCanvasSize(e,r){this.activeCamera.setViewplaneSize(e,r);let o,i;e>=r?(o=r/e,i=1):(o=1,i=e/r),this.traverseMaterial(s=>{s.getLayersOfType("transmission").forEach(c=>{c.uniforms[`f${c.id}_aspectRatio`].value.x=o,c.uniforms[`f${c.id}_aspectRatio`].value.y=i})})}},is=Oc;is.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var sh=Ja(oh());var nh=new Map;function ih(n){if(typeof n=="string")return n;let t=nh.get(n);return t||(t={url:URL.createObjectURL(new Blob([n]))},nh.set(n,t)),t.url}var Qn=class{constructor({src:t,volume:e,delay:r,loop:o}){this._volume=1;this.delay=0;this._loop=1;this.loopsRemaining=0;this._status="stopped";this.onEnd=()=>{this.loopsRemaining===1/0?this.replay():this.loopsRemaining>1?(this.replay(),this.loopsRemaining--):(this._status="stopped",this.loopsRemaining=this._loop)};let i;typeof t=="string"?i={src:t}:i={src:ih(t),format:"wav"},this.sound=new sh.Howl(i),this.sound.on("end",this.onEnd),this.src=t,e!==void 0&&(this.volume=e),r!==void 0&&(this.delay=r),o!==void 0&&(this.loop=o)}get status(){return this._status}get volume(){return this._volume}set volume(t){this._volume=t,this.sound.volume(t)}get loop(){return this._loop}set loop(t){this._loop=t,this.loopsRemaining=t}replay(){this.clearDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.clearDelay()},this.delay)}fade(t,e=1e3){t?(this.sound.volume(this._volume),this.clearFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,e),this.clearFade()},t)):this.sound.fade(this._volume,0,e)}on(t,e,r){this.sound.on(t,e,r)}off(t,e,r){this.sound.off(t,e,r)}play(){this._status==="playing"||this.sound.playing()||(this._status==="paused"?(this.sound.seek()===0?this.replay():this.sound.play(),this._status="playing"):this._status==="stopped"&&(this.replay(),this._status="playing"))}pause(){this._status==="playing"&&(this.sound.pause(),this.clearFade(),this.clearDelay(),this._status="paused")}stop(){this.sound.stop(),this.loopsRemaining=this._loop,this.clearFade(),this.clearDelay(),this._status="stopped"}clearFade(){this.fadeTimerId&&(clearTimeout(this.fadeTimerId),delete this.fadeTimerId)}clearDelay(){this.delayTimerId&&(clearTimeout(this.delayTimerId),delete this.delayTimerId)}dispose(t=!1){this.off(),this.stop(),this.clearFade(),this.clearDelay()}};var ot=require("three"),Xa=class{constructor(){this.type="ShapePath";this.color=new ot.Color;this.subPaths=[];this.currentPath=null}moveTo(t,e){return this.currentPath=new ot.Path,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath?.lineTo(t,e),this}quadraticCurveTo(t,e,r,o){return this.currentPath?.quadraticCurveTo(t,e,r,o),this}bezierCurveTo(t,e,r,o,i,s){return this.currentPath?.bezierCurveTo(t,e,r,o,i,s),this}splineThru(t){return this.currentPath?.splineThru(t),this}toShapes(){let e={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:e.ORIGIN,t:0};function o(h,g,v,x){let w=h.x,S=g.x,b=v.x,I=x.x,_=h.y,y=g.y,P=v.y,A=x.y,O=(I-b)*(_-P)-(A-P)*(w-b),T=(S-w)*(_-P)-(y-_)*(w-b),L=(A-P)*(S-w)-(I-b)*(y-_),B=O/L,j=T/L;if(L===0&&O!==0||B<=0||B>=1||j<0||j>1)return null;if(O===0&&L===0){for(let te=0;te<2;te++)if(i(te===0?v:x,h,g),r.loc===e.ORIGIN){let ne=te===0?v:x;return{x:ne.x,y:ne.y,t:r.t}}else if(r.loc===e.BETWEEN){let ne=+(w+r.t*(S-w)).toPrecision(10),ae=+(_+r.t*(y-_)).toPrecision(10);return{x:ne,y:ae,t:r.t}}return null}else{for(let ae=0;ae<2;ae++)if(i(ae===0?v:x,h,g),r.loc===e.ORIGIN){let U=ae===0?v:x;return{x:U.x,y:U.y,t:r.t}}let te=+(w+B*(S-w)).toPrecision(10),ne=+(_+B*(y-_)).toPrecision(10);return{x:te,y:ne,t:B}}}function i(h,g,v){let x=v.x-g.x,w=v.y-g.y,S=h.x-g.x,b=h.y-g.y,I=x*b-S*w;if(h.x===g.x&&h.y===g.y){r.loc=e.ORIGIN,r.t=0;return}if(h.x===v.x&&h.y===v.y){r.loc=e.DESTINATION,r.t=1;return}if(I<-Number.EPSILON){r.loc=e.LEFT;return}if(I>Number.EPSILON){r.loc=e.RIGHT;return}if(x*S<0||w*b<0){r.loc=e.BEHIND;return}if(Math.sqrt(x*x+w*w)<Math.sqrt(S*S+b*b)){r.loc=e.BEYOND;return}let _;x!==0?_=S/x:_=b/w,r.loc=e.BETWEEN,r.t=_}function s(h,g){let v=[],x=[];for(let w=1;w<h.length;w++){let S=h[w-1],b=h[w];for(let I=1;I<g.length;I++){let _=g[I-1],y=g[I],P=o(S,b,_,y);P!==null&&v.find(A=>A.t<=P.t+Number.EPSILON&&A.t>=P.t-Number.EPSILON)===void 0&&(v.push(P),x.push(new ot.Vector2(P.x,P.y)))}}return x}function l(h,g,v){let x=new ot.Vector2;g.getCenter(x);let w=[];return v.forEach(S=>{S.boundingBox.containsPoint(x)&&s(h,S.points).forEach(I=>{w.push({identifier:S.identifier,isCW:S.isCW,point:I})})}),w.sort((S,b)=>S.point.x-b.point.x),w}function c(h,g,v,x,w){(w==null||w==="")&&(w="nonzero");let S=new ot.Vector2;h.boundingBox.getCenter(S);let b=[new ot.Vector2(v,S.y),new ot.Vector2(x,S.y)],I=l(b,h.boundingBox,g);I.sort((T,L)=>T.point.x-L.point.x);let _=[],y=[];I.forEach(T=>{T.identifier===h.identifier?_.push(T):y.push(T)});let P=_[0].point.x,A=[],O=0;for(;O<y.length&&y[O].point.x<P;)A.length>0&&A[A.length-1]===y[O].identifier?A.pop():A.push(y[O].identifier),O++;if(A.push(h.identifier),w==="evenodd"){let T=A.length%2===0,L=A[A.length-2];return{identifier:h.identifier,isHole:T,for:L}}else if(w==="nonzero"){let T=!0,L=null,B=null;for(let j=0;j<A.length;j++){let te=A[j];g[te]&&(T?(B=g[te].isCW,T=!1,L=te):B!==g[te].isCW&&(B=g[te].isCW,T=!0))}return{identifier:h.identifier,isHole:T,for:L}}else console.warn('fill-rule: "'+w+'" is currently not implemented.')}let p=0,a=999999999,u=-999999999,d=[];this.subPaths.forEach(h=>{let g=h.getPoints(),v=-999999999,x=999999999,w=-999999999,S=999999999;for(let b=0;b<g.length;b++){let I=g[b];I.y>v&&(v=I.y),I.y<x&&(x=I.y),I.x>w&&(w=I.x),I.x<S&&(S=I.x)}u<=w&&(u=w+1),a>=S&&(a=S-1),g.length&&d.push({curves:h.curves,points:g,isCW:ot.ShapeUtils.isClockWise(g),identifier:p++,boundingBox:new ot.Box2(new ot.Vector2(S,x),new ot.Vector2(w,v))})});let f=d.map(h=>c(h,d,a,u,this.userData?.style.fillRule)),m=[];return d.forEach(h=>{let g=f[h.identifier];if(g&&!g.isHole){let v=new ot.Shape;v.curves=h.curves,f.filter(w=>w?.isHole&&w.for===h.identifier).forEach(w=>{if(w){let S=d[w.identifier],b=new ot.Path;b.curves=S.curves,v.holes.push(b)}}),m.push(v)}}),m}};var Zn=require("three");var ah=require("three/examples/jsm/loaders/DRACOLoader.js");var go;function vw(){return go||(go=new ah.DRACOLoader,go.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),go.decoderPending}async function bw(n){if(go){let t={attributeIDs:go.defaultAttributeIDs,attributeTypes:go.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await go.decodeGeometry(new Int8Array(n).buffer,t)}catch(r){console.error(r)}if(e)return{index:e.index?{array:e.index.array}:void 0,attributes:Object.entries(e.attributes).map(([r,o])=>({name:r,itemSize:o.itemSize,array:o.array}))}}return null}async function lh(n,t){let[e,r]=ol(Is.deserialize(new Uint8Array(n)));zd(e);let o=[];e.scene.objects.traverse((i,s)=>{s.type==="Mesh"&&s.geometry.type==="NonParametricGeometry"&&s.geometry.data.draco!==void 0&&o.push(s)}),o.length&&await vw();for(let i of o){let s=await bw(Tt(i.geometry.data.draco));if(s){s.index&&(i.geometry.data.index={array:s.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let l={};s.attributes.forEach(({name:c,array:p,itemSize:a})=>{l[c]={array:p,itemSize:a,type:"Float32Array",normalized:!1}}),i.geometry.data.attributes=l,i.geometry.data.draco=void 0}}return t&&t(e),r.result().data}function Sw(n,t){return t.state.glyphIndex===n||t.state.fina===n||t.state.medi===n||t.state.init===n}var Ya=class{constructor(t,e){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=Ic(t).then(r=>{r&&(this._arrayBuffer=r.arr,this._url=r.url,this.font=r.font,this._intercepted=r.intercepted,this._isLoaded=!0,e())})}update(t,e){this._isLoaded=!1,this._isUserFont=t.isUserFont??!1,this._loadingPromise=Ic(t).then(r=>{r&&(this._arrayBuffer=r.arr,this._url=r.url,this.font=r.font,this._intercepted=r.intercepted,this._isLoaded=!0,e())})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}async reverseLigaturesTable(t,e,r){let{Bidi:o}=await os,i=new o,s=u=>t.charToGlyphIndex(u.char);i.registerModifier("glyphIndex",null,s),i.applyFeatures(t,t.defaultRenderOptions.features),i.getTextGlyphs(e);let l=i.tokenizer.tokens,c=[],p=0,a=r.length===l.length;for(let u=0;u<r.length;u++){let d=r[u].index,f=String.fromCharCode(r[u].unicode),m=l[p];if(Sw(d,m)||a)c.push({char:f,index:d,replacements:[m.state.glyphIndex],replacementChars:[m.char]}),p++;else{let h=m.char,g="",v=[m.state.glyphIndex],x=[],w=!1;for(;!w;)p++,g=e.charAt(p),h+=g,v.push(t.charToGlyphIndex(g)),x=t.stringToGlyphs(h),x.length===1&&x[0].index===d&&(w=!0),p>e.length&&(w=!0);c.push({char:f,index:d,replacements:v,replacementChars:Array.from(h)}),p++}}return c}async generateShapes(t,e){await this._loadingPromise;let r=this.font,o=e.fontSize/this.unitsPerEm,i=e.fontSize*e.lineHeight,s=t.map(x=>this.getTextWidth(x,e)),l=e.width,c=this.getCharWidth(`
1334
+ }`,[yt.simplex,e,o,s])}}();var Am=require("three");function Tm(n,t,e){n.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var Ua=class extends Rn{constructor(e,r){super(new Am.Matrix3);this.repeat=e;this.offset=r;Tm(this.value,e,r)}updateMatrix(){Tm(this.value,this.repeat,this.offset)}};var Ir=class{constructor(t,e,r,o){this.id=t;this.uuid=e;this.data=r;this.uniforms={};for(let i in o)this.uniforms[`f${this.id}_${i}`]=o[i];for(let i in r)_c(i,this,r)}get type(){return this.data.type}static create(t,e,r,o){if(r.type==="light")return Pr.createLigherLayer(t,e,r,o);if(r.type==="texture"){let i=o.image(r.texture.image),s=new Zi(i,r.texture.wrapping),l=new za(i),c=new Ua(r.texture.repeat,r.texture.offset),p=new Y(r.crop?1:0),a=new ve(r.projection??0),u=new ve(["x","y","z"].indexOf(r.axis)??0),d=new ve(r.side??0),f=new lt(r.size?new De.Vector2(r.size[0],r.size[1]):new De.Vector2(100,100)),m=new Y(r.alpha??1),h=new ve(r.mode??0),g=new ji(s,l,p,a,u,d,f,c,m,h),v=new Ae(g.calpha,"f");return new rt(t,e,r,{texture:s,textureSize:l,crop:p,projection:a,axis:u,side:d,size:f,mat:c,alpha:m,mode:h},g,h,v)}else if(r.type==="matcap"){let i=o.image(r.texture.image),s=new Zi(i,r.texture.wrapping),l=new Y(r.alpha??1),c=new ve(r.mode??0),p=new Qi(s,l,c),a=new Ae(p.calpha,"f");return new rt(t,e,r,{texture:s,alpha:l,mode:c},p,c,a)}else if(r.type==="displace")if(r.displacementType==="noise"){let i=new ft(new De.Vector3(...r.offset)),s=new Y(r.scale??10),l=new Y(r.intensity??8),c=new Y(r.movement??1),p=new ve(r.noiseType??0),a=new zi(l,c,i,s,p);return new es(t,e,r,{offset:i,scale:s,intensity:l,movement:c,noiseType:p},a)}else throw new Error;else return iw(t,e,r,o)}updateByOp(t,e,r){let o=t;if(o.path[0]===void 0){if(o.type===0)return"type"in o.props||"category"in o.props?!0:wm(o.props,r,this,e)}else if(o.path[0]==="texture")return"texture"in e?wc(o.props,r,this):!0;return!1}dispose(){}hasValueByKey(t){return this.uniforms[t]!==void 0}hasValue(t){return this.hasValueByKey(`f${this.id}_${t}`)}setValue(t,e){let r=`f${this.id}_${t}`;this.hasValueByKey(r)&&e!==void 0&&(this.uniforms[r].value=e)}getNode(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e]}getValue(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e].value}getName(t){let r=/f\d+_(.*)/.exec(t);if(r&&r.length>1)return r[1];console.log(`Layer.getName: error ${t}`)}getNames(){let t=[];for(let e in this.uniforms){let r=this.getName(e);r&&t.push(r)}return t}},rt=class extends Ir{constructor(e,r,o,i,s,l,c){super(e,r,o,i);this.color=s;this.mode=l;this.alpha=c}},es=class extends Ir{constructor(e,r,o,i,s){super(e,r,o,i);this.position=s}},Pr=class extends Ir{constructor(e,r,o,i,s){super(e,r,o,s);this.data=o;this.node=i}static createLigherLayer(e,r,o,i){let s,l=new Y(o.alpha),c=new ve(o.mode),p;if(!o.visible)s=new Eo,p={};else if(o.category==="lambert"){s=new qi;let a=new Ie(i.color(o.emissive)??0);p={emissive:a},s.emissive=a}else if(o.category==="toon"){s=new Yi;let a=new Y(o.shininess??30),u=new Ie(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}else if(o.category==="physical"){s=new $i;let a=new Y(o.roughness??.3),u=new Y(o.metalness??0),d=new Y(o.reflectivity??.5);p={roughness:a,metalness:u,reflectivity:d},s.roughness=a,s.metalness=u,s.reflectivity=d}else{s=new Fa;let a=new Y(o.shininess??30),u=new Ie(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}return s.alpha=new Y(1),s.shadingAlpha=l,s.shadingBlend=c,p.alpha=s.shadingAlpha,p.mode=s.shadingBlend,new Pr(e,r,o,s,p)}};function Nm(n){let t=n instanceof Ir?n.type:n;return t==="texture"||t==="displace_map"||t==="matcap"}function nw(n,t,e,r){switch(n.type){case"color":{let o=new Ie(r.color??5855577),i=new Y(r.alpha??1),s=new Ae("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new ve(r.mode??0);return o.alpha=i,new rt(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}case"fresnel":{let o=new Ie(r.color??16777215),i=new Y(r.bias??.1),s=new Y(r.scale??1),l=new Y(r.intensity??2),c=new Y(r.factor??1),p=new Y(r.alpha??1),a=new ve(r.mode??0),u=new Bi(o,i,s,l,c,p,a),d=new Ae(u.calpha,"f");return new rt(t,e,n,{color:o,bias:i,scale:s,intensity:l,factor:c,alpha:p,mode:a},u,a,d)}case"rainbow":{let o=new Y(r.filmThickness??30),i=new Y(r.movement??0),s=new ft(r.wavelengths??new De.Vector3(0,0,0)),l=new Y(r.noiseStrength??0),c=new Y(r.noiseScale??1),p=new ft(r.offset??new De.Vector3(0,0,0)),a=new Y(r.alpha??1),u=new Di(o,i,s,l,c,p,a),d=new Ae(u.calpha,"f"),f=new ve(r.mode??0);return new rt(t,e,n,{filmThickness:o,movement:i,wavelengths:s,noiseStrength:l,noiseScale:c,offset:p,alpha:a,mode:f},u,f,d)}case"transmission":{let o=new Y(r.thickness??10),i=new Y(r.ior??1.5),s=new Y(r.roughness??.5),l=mt.transmissionSize,c=mt.transmissionRenderTarget,p=mt.transmissionRenderTargetDepth,a=window.innerWidth,u=window.innerHeight,d=a>=u?new lt(u/a,1):new lt(1,a/u),f=new Y(r.alpha??1),m=new Ri(o,i,s,l,c,p,d,f),h=new Ae(m.calpha,"f"),g=new ve(r.mode??0);return new rt(t,e,n,{thickness:o,ior:i,roughness:s,aspectRatio:d,alpha:f,mode:g},m,g,h)}case"toon":{let o=new ve(r.positioning??0),i;r.colors?i=new nr(r.colors.length,r.colors):(i=new nr(10,new De.Vector4(0,0,0,1)),i.value[1]=new De.Vector4(1,1,1,1));let s;r.steps?s=new or(r.steps.length,r.steps):(s=new or(10,1),s.value[0]=0);let l=new ft(r.source??new De.Vector3(0,0,0)),c=new co(r.isWorldSpace??!0),p=new Y(r.noiseStrength??0),a=new Y(r.noiseScale??1),u=new Xt(r.shadowColor),d=new ft(r.offset??new De.Vector3(0,0,0)),f=new Y(r.alpha??1),m=new Ji(o,i,s,l,c,p,a,u,d,f),h=new Ae(m.calpha,"f"),g=new ve(r.mode??0);return new rt(t,e,n,{positioning:o,colors:i,steps:s,source:l,isWorldSpace:c,noiseStrength:p,noiseScale:a,shadowColor:u,offset:d,alpha:f,mode:g},m,g,h)}case"outline":{let o=new Ie(r.outlineColor??16777215),i=new Ie(r.contourColor??16777215),s=new Y(r.outlineWidth??.1),l=new Y(r.contourWidth??.1),c=new Y(r.outlineThreshold??.1),p=new Y(r.contourThreshold??.1),a=new Y(r.outlineSmoothing??.1),u=new Y(r.contourFrequency??.1),d=new ft(r.contourDirections??new De.Vector3(0,1,0)),f=new co(r.positionalLines??!1),m=new co(r.compensation??!0),h=mt.normalRenderTarget,g=mt.normalRenderTargetDepth,v=mt.pixelRatioNode,x=mt.resolution,w=new Y(r.alpha??1),S=new Gi(o,i,s,l,c,p,a,u,d,f,m,x,h,g,v,w),b=new Ae(S.calpha,"f"),I=new ve(r.mode??0);return new rt(t,e,n,{outlineColor:o,contourColor:i,outlineWidth:s,contourWidth:l,outlineThreshold:c,contourThreshold:p,outlineSmoothing:a,contourFrequency:u,contourDirection:d,positionalLines:f,compensation:m,alpha:w,mode:I},S,I,b)}case"depth":{let o=new ve(r.gradientType??0),i=new co(r.smooth??!1),s=new Y(r.near??50),l=new Y(r.far??200),c=new Y(r.isVector??1),p=new Y(r.isWorldSpace??0),a=new ft(r.origin??new De.Vector3),u=new ft(r.direction??new De.Vector3),d;r.colors?d=new nr(r.colors.length,r.colors):(d=new nr(2,new De.Vector4(0,0,0,1)),d.value[1]=new De.Vector4(1,1,1,1));let f;r.steps?f=new or(r.steps.length,r.steps):(f=new or(2,1),f.value[0]=0);let m=new Y(r.alpha??1),h=new ve(r.mode??0),g=new Vi(o,i,s,l,c,p,a,u,d,f,m),v=new Ae(g.calpha,"f");return new rt(t,e,n,{gradientType:o,smooth:i,near:s,far:l,isVector:c,isWorldSpace:p,origin:a,direction:u,colors:d,steps:f,alpha:m,mode:h},g,h,v)}case"noise":{let o=new Y(r.scale??1),i=new ft(r.size??new De.Vector3(100,100,100)),s=new Y(r.move??1),l=new lt(r.fA??new De.Vector2(1.7,9.2)),c=new lt(r.fB??new De.Vector2(8.3,2.8)),p=new lt(r.distortion??new De.Vector2(1,1)),a=new Xt(r.colorA),u=new Xt(r.colorB),d=new Xt(r.colorC),f=new Xt(r.colorD),m=new Y(r.alpha??1),h=new ve(r.mode??0),g=new ve(r.noiseType??0),v=new Mi(o,i,s,l,c,p,a,u,d,f,m,g),x=new Ae(v.calpha,"f");return new rt(t,e,n,{scale:o,size:i,move:s,fA:l,fB:c,distortion:p,colorA:a,colorB:u,colorC:d,colorD:f,alpha:m,mode:h,noiseType:g},v,h,x)}case"normal":{let o=new ft(r.cnormal??new De.Vector3(1,1,1)),i=new Y(r.alpha??1),s=new ve(r.mode??0),l=new Hi(o,i),c=new Ae("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return c.keywords.alpha=i,new rt(t,e,n,{cnormal:o,alpha:i,mode:s},l,s,c)}case"gradient":{let o=new ve(r.gradientType??0),i=new co(r.smooth??!1),s;r.colors?s=new nr(r.colors.length,r.colors):(s=new nr(10,new De.Vector4(0,0,0,1)),s.value[1]=new De.Vector4(1,1,1,1));let l;r.steps?l=new or(r.steps.length,r.steps):(l=new or(10,1),l.value[0]=0);let c=new lt(r.offset??new De.Vector2(0,0)),p=new lt(r.morph??new De.Vector2(0,0)),a=new Y(r.angle??0),u=new Y(r.alpha??1),d=new ve(r.mode??0),f=new Ui(o,i,s,l,c,p,a,u),m=new Ae(f.calpha,"f");return new rt(t,e,n,{gradientType:o,smooth:i,colors:s,steps:l,offset:c,morph:p,angle:a,alpha:u,mode:d},f,d,m)}default:{let o=new Ie(1,0,0,1),i=new Y(1),s=new Ae("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new ve(0);return o.alpha=i,new rt(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}}}function iw(n,t,e,r){let o=ym(e,r);return nw(e,n,t,o)}function _c(n,t,e){if(e.type==="displace"&&(n==="intensity"||n==="visible")){let r=t.uniforms[`f${t.id}_intensity`];return r?(r.value=e.intensity*(e.visible?1:0),r):void 0}if(e.type!=="displace"&&(n==="alpha"||n==="visible")){let r=t.uniforms[`f${t.id}_alpha`];if(!r)return;if(r.value=e.alpha*(e.visible?1:0),e.type==="outline"&&n==="visible"){let o=t.uniforms[`f${t.id}_compensation`];o&&(o.value=e.compensation&&e.visible)}return r}}var Ft=class extends ja.ShaderMaterial{constructor(e,r){super(void 0);this.data=e;this.layerIdGen=0;this.type="NodeMaterial";this.uniformsBackup={};this.fog=!0,this.updaters=[],this.dithering=!0,this.vertexColors=!0,this.onBeforeCompile=this._onBeforeCompile,this.transparent=!0,this.reset(e,r)}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.data.category}reset(e,r){let o=e.layers??Rt.defaultTwoLayerData("phong").layers;this.layers=o.map(i=>Ir.create(this.layerIdGen++,i.id,i.data,r)),this.layers.reverse(),this.name=e.name??"Untitled Material",this.onUpdate(r)}getLayersOfType(e){return this.layers.filter(r=>r.type===e)}getLayerByUuid(e){return this.layers.find(r=>r.uuid===e)}onUpdate(e){this.lightLayer=this.layers.find(r=>r instanceof Pr),this.lightLayer===void 0&&(this.lightLayer=new Pr(0,"",{...fr.defaultData("light","phong"),visible:!1},new Eo,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(e,r,o){if(this.data=r,e.path[0]==="layers"){let i=e.path[1];if(i===void 0){if(this.layers.reverse(),e.type===4){let s=Ir.create(this.layerIdGen++,e.id,e.data,o);this.layers.splice(e.localIndex,0,s)}else if(e.type===5)this.layers.splice(e.localIndex,1)[0].dispose();else if(e.type===6){let s=this.layers.findIndex(c=>c.uuid===e.id),l=this.layers[s];this.layers.splice(s,1),this.layers.splice(e.localIndex,0,l)}this.layers.reverse(),this.onUpdate(o)}else{let s=this.layers.find(l=>l.uuid===i);if(s){let l=r.layers.data(i);if(s.updateByOp({...e,path:e.path.slice(2)},l,o)){let p=Ir.create(this.layerIdGen++,i,l,o);this.layers.splice(this.layers.findIndex(a=>a.uuid===i),1,p),this.onUpdate(o)}}}}}blendColors(){let e=this.layers.findIndex(o=>o instanceof rt),r=this.layers.findIndex(o=>o instanceof Pr);if(e!==-1&&e<r){let o=this.layers[e].color;for(let i=e+1;i<r;++i){let s=this.layers[i];s instanceof rt&&(o=new Fi(o,s.color,s.alpha,s.mode))}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new Ae("outgoingLight","f"),r=this.layers.findIndex(o=>o instanceof Pr);if(this.layers.length>r+1){for(let o=r+1;o<this.layers.length;++o){let i=this.layers[o];i instanceof rt&&(e=new Fi(e,i.color,i.alpha,i.mode))}this.fragment.afterColor=e}else this.fragment.afterColor=void 0}blendPositions(){let e=this.layers.filter(r=>r instanceof es);if(e.length>0){let r=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(r=new Ct(r,e[o].position,Ct.ADD),r=new Ct(r,new Y(.5).setReadonly(!0),Ct.MUL));this.fragment.position=r}else this.fragment.position=void 0}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}_onBeforeCompile(e,r){this.build({renderer:r}),e.defines=this.defines,e.uniforms=this.uniforms,e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.extensionDerivatives=this.extensions.derivatives===!0,e.extensionFragDepth=this.extensions.fragDepth===!0,e.extensionDrawBuffers=this.extensions.drawBuffers===!0,e.extensionShaderTextureLOD=this.extensions.shaderTextureLOD===!0}clampUniformsForPreview(e,r){let o=(i,s,l)=>Math.min(Math.max(i,s),l);for(let i of this.layers)if(i.type==="displace"){this.uniformsBackup[`f${i.id}_intensity`]=i.uniforms[`f${i.id}_intensity`].value;let s=o(i.uniforms[`f${i.id}_intensity`].value,e,r);i.uniforms[`f${i.id}_intensity`].value=s}}restoreClampedUniforms(){for(let e of this.layers)e.type==="displace"&&(e.uniforms[`f${e.id}_intensity`].value=this.uniformsBackup[`f${e.id}_intensity`])}customProgramCacheKey(){let e="[";for(let{data:r}of this.data.layers)if(r.type==="light")e+=`"${r.visible?r.category.toUpperCase():"Basic"}"`;else{let o=(bc[r.type]??[]).map(l=>r[l]),i=(Sc[r.type]??[]).map(l=>r[l]?.length??0),s=[...o,...i];s.length?e+=`["${r.type}", "${s.join('","')}"],`:e+=`"${r.type}",`}return e=e.slice(0,-1)+"]",e}updateFrame(e){for(let r=0;r<this.updaters.length;++r)e.updateNode(this.updaters[r])}build(e){e=e??{};let r=e.builder??new Ra;return this.lights=this.lightLayer.data.visible,r.setMaterial(this,e.renderer),r.build(this.fragment,this.fragment),this.vertexShader=r.getCode("vertex"),this.fragmentShader=r.getCode("fragment"),this.defines=r.defines,this.uniforms=r.uniforms,this.extensions=r.extensions,this.updaters=r.updaters,this.transparent=r.requires.transparent||this.blending>ja.NormalBlending,this}dispose(){this.layers.forEach(e=>e.dispose()),super.dispose()}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(Ft.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(n){n===!0&&this.version++,this.needsCompile=n},get:function(){return this.needsCompile}}});var zt=require("three");function sw(n){if(n.geometry.attributes.extrudeNormal||!n.geometry.attributes.position||!n.geometry.attributes.normal)return;let t=new Map,e=n.geometry.attributes.position.array,r=n.geometry.attributes.normal.array,o=new Float32Array(e.length);for(let i=0;i<e.length;i+=3){let s=`${e[i]}_${e[i+1]}_${e[i+2]}`,l=new zt.Vector3(r[i],r[i+1],r[i+2]);t.has(s)?t.get(s)?.normals.push(l):t.set(s,{normals:[l],result:new zt.Vector3})}t.forEach((i,s)=>{for(let l of i.normals)i.result.add(l);i.result.divideScalar(i.normals.length)});for(let i=0;i<e.length;i+=3){let s=`${e[i]}_${e[i+1]}_${e[i+2]}`,l=t.get(s)?.result;l&&(o[i]=l.x,o[i+1]=l.y,o[i+2]=l.z)}n.geometry.setAttribute("extrudeNormal",new zt.Float32BufferAttribute(o,3))}function aw(n){if(n.geometry.attributes.extrudeNormals||!n.geometry.attributes.position)return;let t=n.geometry.attributes.position.array,e=new Float32Array(t.length),r=new zt.Vector3;for(let o=0;o<t.length;o+=3)r.set(t[o],t[o+1],t[o+2]).normalize(),e[o]=r.x,e[o+1]=r.y,e[o+2]=r.z;n.geometry.setAttribute("extrudeNormal",new zt.Float32BufferAttribute(e,3))}function Or(n){if(Array.isArray(n.material)){for(let t of n.material)if(t.getLayersOfType("outline").length===0)return}else if(!(n.material instanceof Ft)||n.material.getLayersOfType("outline").length===0)return;n.objectType==="Mesh2D"||n.objectType==="TextFrame"&&n.data?.geometry?.depth===0?aw(n):sw(n)}function Cr(n){if(!n.geometry.attributes.position)return;let t=n.geometry.attributes.position.array,e=new Float32Array(t.length),r=parseInt(n.uuid.replace(/\D/g,"")),o=[zt.MathUtils.seededRandom(r),zt.MathUtils.seededRandom(r+1e4),zt.MathUtils.seededRandom(r+2e4)];for(let i=0;i<t.length;i++)e[i]=o[i%3];n.geometry.setAttribute("randomColor",new zt.BufferAttribute(e,3))}var ut=class extends $t(ka.Mesh){constructor(e,r){super(e,r);this.isAbstractMesh=!0;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new ka.Matrix4;this.booleanExclude=null;Array.isArray(r)&&e.groups.length===0&&e.addGroup(0,Math.max(e.getIndex()?.count??0,e.getAttribute("position").count),0)}get isGroup(){return this._cloner?.parameters.hideBase===!0}get isMesh(){return!this.isGroup}set isMesh(e){}get cloner(){return this._cloner}set cloner(e){this._cloner&&this.remove(this._cloner),e&&this.add(e),this._cloner=e}updateGeometry(e,r){let o=this.geometry,i=tc[o.userData.type],s=this.objectType==="NonParametric"?Object.assign({},o.userData,{geometry:o}):o.userData,l=i.build(i.normalizeInputs(e,s)),c=o.uuid;this.geometry.dispose(),this.geometry=l,this.geometry.uuid=c,this.geometry.computeBoundingSphere(),Or(this),o.getAttribute("randomColor")&&Cr(this)}clone(e){let r=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,o=Ni(r),i=this.material;return new this.constructor(o,i).copy(this,e)}copy(e,r=!0){return super.copy(e,r),e.cloner&&(this.cloner=new No(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new No(this)),this.cloner.fromClonerState(e))}fromState(e,r){return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=e.castShadow??!0,this.receiveShadow=e.receiveShadow??!0,this.booleanExclude=e.booleanExclude??null),this}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(Jt.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),br(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)vr(e)&&(e.freeBooleanPointer(),br(e)&&e.invalidateUpstreamBooleanData())}};var lw=new fo.Vector3(0,0,1),Im=new fo.Vector3,Pm=new fo.Vector3,Om=new fo.Matrix3,jn=class extends ut{constructor(e=dt.create({}),r){super(e,r);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new fo.EventDispatcher;this._onShapeUpdate=()=>{this.updateGeometry({}),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e,r){if(super.updateGeometry(e,r),"userData"in this.geometry){let o=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:o})}}setShape(e){this.shape&&this.shape.eventDispatcher?.removeEventListener("update",this._onShapeUpdate),this.shape=e,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),Om.getNormalMatrix(this.matrixWorld),Im.copy(lw).applyMatrix3(Om).normalize(),Pm.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(Im,Pm)}clone(e){let r=this.shape.clone(),o=this.material,i=this.geometry.userData,s=dt.create(Object.assign({},i,{shape:r})),l=new jn(s,o).copy(this,e);return l.shape=r,r.update(),l}raycast(e,r){ut.prototype.raycast.call(this,e,r)}};var Lr=(n,t)=>class extends n{constructor(){super(...arguments);this.objectHelper=new t(this)}get geometryHelper(){return t.geometryHelper}raycast(o,i){this.objectHelper.raycast(o,i)}fromLightState(o,i){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let s=this;o.color!==void 0&&(s.color=st(o.color,i)),o.intensity!==void 0&&(s.intensity=o.intensity),o.depth!==void 0&&(s.shadow.camera.far=o.depth,s.shadow.needsUpdate=!0),o.shadows!==void 0&&(this.castShadow=o.shadows)}return this}};var kn=new ze.Vector3,Nc=new ze.Vector3,Ur=class extends Lr($t(ze.Camera),ga){constructor(e=window.innerWidth,r=window.innerHeight,o=45,i,s=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=So.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=r,this.orthoCamera=new ze.OrthographicCamera(e*-.5,e*.5,r*.5,r*-.5,i??-5e4,s),this.perspCamera=new ze.PerspectiveCamera(o,e/r,i??50,s),this.left=this.orthoCamera.left,this.right=this.orthoCamera.right,this.top=this.orthoCamera.top,this.bottom=this.orthoCamera.bottom,this.far=this.orthoCamera.far,this.view=this.orthoCamera.view,this.aspect=this.perspCamera.aspect,this.fov=this.perspCamera.fov,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.toOrthographic()}static createFromState(e,r){let o=new Ur().fromState(r);return o.objectHelper.update(),o.uuid=e,o}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}setNear(e,r){e==="PerspectiveCamera"?this.perspCamera.near=r:this.orthoCamera.near=r}setZoom(e,r){r>=0&&(e==="PerspectiveCamera"?this.perspCamera.zoom=r:this.orthoCamera.zoom=r)}set cameraType(e){e==="PerspectiveCamera"?this.toPerspective():e==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(e){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=e:this.orthoCamera.near=e}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(e){e>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=e:this.orthoCamera.zoom=e)}lookAt(e){super.lookAt(e),this.getWorldPosition(kn),this.targetOffset=kn.distanceTo(e)}getTarget(e=new ze.Vector3){return this.getWorldDirection(Nc),this.getWorldPosition(kn),Nc.multiplyScalar(this.targetOffset),e.copy(kn).add(Nc),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(kn),kn.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new ze.Quaternion),r=new ze.Vector3(0,0,1).applyQuaternion(e),o=new ze.Vector3().copy(ze.Object3D.DefaultUp);this.isUpVectorFlipped&&o.negate(),o.applyQuaternion(e);let i=new ze.Vector3().copy(ze.Object3D.DefaultUp).projectOnPlane(r),s=new ze.Vector3().crossVectors(i,o).dot(r)>=0?1:-1;this.angleOffsetFromUp=i.angleTo(o)*s}getViewFrontToObject(e){let r=e.getWorldPosition(new ze.Vector3),i=e.getWorldDirection(new ze.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().add(i),target:r}}getViewToObject(e){let r=e.getWorldPosition(new ze.Vector3),i=this.getWorldDirection(new ze.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().sub(i),target:r}}setViewplaneSize(e,r){this.left=-e*.5,this.right=e*.5,this.top=r*.5,this.bottom=-r*.5,this.aspect=e/r,this.updateProjectionMatrix()}toOrthographic(){this.orthoCamera.left=this.left,this.orthoCamera.right=this.right,this.orthoCamera.top=this.top,this.orthoCamera.bottom=this.bottom,this.orthoCamera.view=this.view,this.orthoCamera.far=this.far,this.orthoCamera.updateProjectionMatrix(),this.projectionMatrix=this.orthoCamera.projectionMatrix,this.projectionMatrixInverse=this.orthoCamera.projectionMatrixInverse,this._cameraType="OrthographicCamera",this.objectHelper&&this.objectHelper.update()}toPerspective(){this.perspCamera.aspect=this.aspect,this.perspCamera.fov=this.fov,this.perspCamera.view=this.view,this.perspCamera.far=this.far,this.perspCamera.updateProjectionMatrix(),this.projectionMatrix=this.perspCamera.projectionMatrix,this.projectionMatrixInverse=this.perspCamera.projectionMatrixInverse,this._cameraType="PerspectiveCamera",this.objectHelper&&this.objectHelper.update()}setFocalLength(e){this.perspCamera.setFocalLength(e),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(e,r,o,i,s,l){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,r,o,i,s,l):this.orthoCamera.setViewOffset(e,r,o,i,s,l)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}updateProjectionMatrix(){this._cameraType==="PerspectiveCamera"?this.toPerspective():this._cameraType==="OrthographicCamera"&&this.toOrthographic()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,r){return super.copy(e,r),this.orthoCamera.copy(e.orthoCamera),this.perspCamera.copy(e.perspCamera),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.far=e.far,this.view=e.view===null?null:Object.assign({},e.view),this._cameraType=e._cameraType,this.aspect=e.aspect,this.fov=e.fov,this.focus=e.focus,this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this.targetOffset=e.targetOffset,this.updateProjectionMatrix(),this}toCameraState(e=[]){let r={type:this.cameraType,far:this.far,orthographic:{near:this.orthoCamera.near,zoom:this.orthoCamera.zoom},perspective:{near:this.perspCamera.near,fov:this.perspCamera.fov,zoom:this.perspCamera.zoom},up:this.up.toArray(),targetOffset:this.targetOffset,isUpVectorFlipped:this.isUpVectorFlipped};return fn(r,e)}fromCameraState(e){let{orthographic:r,perspective:o}=e;return e.type!==void 0&&(this.cameraType=e.type),e.far!==void 0&&(this.far=e.far),r!==void 0&&(r.near!==void 0&&(this.orthoCamera.near=r.near),r.zoom!==void 0&&(this.orthoCamera.zoom=r.zoom)),o!==void 0&&(o.near!==void 0&&(this.perspCamera.near=o.near),o.fov!==void 0&&(this.perspCamera.fov=o.fov),o.zoom!==void 0&&(this.perspCamera.zoom=o.zoom)),e.type==="PerspectiveCamera"?(this.zoom=this.perspCamera.zoom,this.fov=this.perspCamera.fov,this.near=this.perspCamera.near):(this.near=this.orthoCamera.near,this.zoom=this.orthoCamera.zoom),e.up!==void 0&&this.up.fromArray(e.up),e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateProjectionMatrix(),this}toState(e){return{...super.toState(e),...this.toCameraState(e),type:this.cameraType}}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};var ts=require("three");var Cm=new ts.Matrix4;var Ha=class extends ut{constructor(e=new ts.BufferGeometry,r){super(e,r);this.booleanOp=2;this.phongAngle=35;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.objectType="BooleanObject",this.castShadow=!0,this.receiveShadow=!0,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}reInit(){this.objectType="BooleanObject",this.meshSetAddresses=[],this.needsTransformForDownstream=!1,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}recomputeBoolean(e,r=!0){if(this.booleanMeshSetAddress!==-1)return;for(let i=0;i<this.children.length;i++){let s=this.children[i];br(s)&&s.recomputeBoolean(e===!0,r)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let s=this.children[i];if(lm(s)&&s.booleanExclude===!1&&s.geometry.attributes.position?.count>0&&s.geometry.drawRange.count>0){if(s.booleanMeshSetAddress===-1){if((s.geometry.index??s.geometry.getAttribute("position")).count/3<15e5&&(s.booleanMeshSetAddress=Jt.getMeshSet(s.geometry,e===!0,r)),s.booleanMeshSetAddress===-1)return;Jt.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1}else br(s)&&s.needsTransformForDownstream===!0?(Jt.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.needsTransformForDownstream=!1):s.booleanWasTransformed===!0&&(Cm.multiplyMatrices(s.matrix,s.booleanMatrixInvOld),Jt.transformMeshSet(s.booleanMeshSetAddress,Cm),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1);this.meshSetAddresses.push(s.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setDrawRange(0,0);return}if(e===!0)return Jt.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let o=this.geometry;o.dispose(),this.geometry=new ts.BufferGeometry,this.geometry.userData=o.userData,this.geometry.boundingSphere=o.boundingSphere;try{this.booleanMeshSetAddress=Jt.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(i){this.booleanMeshSetAddress=0,console.error(i)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,Or(this),Cr(this)}updateGeometry(e,r){let o=e.parameters;o.operation!==void 0&&(this.booleanOp=o.operation),o.phongAngle!==void 0&&(this.phongAngle=o.phongAngle),this.invalidateDownstreamBooleanData().recomputeBoolean()}};var Lm=require("three");var Do=class extends Lr($t(Lm.Group),yn){constructor(){super(...arguments);this.objectType="EmptyObject"}static createFromState(e,r){let o=new Do().fromState(r);return o.uuid=e,o.objectHelper.update(),o}};var Go=require("three");var Hn=class extends Lr($t(Go.DirectionalLight),gn){constructor(...e){super(...e);this.objectType="LightDirectional";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.top=1250,o.bottom=-1250,o.right=1250,o.left=-1250,o.near=-1e4,o.far=2500;let i=new Go.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new Hn().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Go.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Go.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Go.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromDirectionalLightState(e,r){let o=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;return super.fromLightState(e,r),e.size!==void 0&&im(this,e.size),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),o&&this.update(),this}fromState(e,r){return super.fromState(e),this.fromDirectionalLightState(e,r),this}};var xt=require("three");var Wn=class extends Lr($t(xt.PointLight),xn){constructor(...e){super(...e);this.objectType="LightPoint";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=90,o.aspect=1,o.near=100,o.far=2500;let i=new xt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new xt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z),l=new xt.Box3(i,s),c=new xt.Box3Helper(l,new xt.Color(16755200));c.visible=!1,this._gizmos.shadowmap=c,this.update()}static createFromState(e,r,o){let i=new Wn().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof xt.Box3Helper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof xt.Box3Helper&&(r.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let r=this._gizmos[e];if(r instanceof xt.Box3Helper){let o=this.shadow.camera,i=new xt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new xt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z);r.box.set(i,s),r.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromPointLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromPointLightState(e,r),this}};var Mt=require("three");var Mm=new Mt.Vector3,Em=new Mt.Vector3,Bm=new Mt.Quaternion,qn=class extends Lr($t(Mt.SpotLight),gi){constructor(...e){super(...e);this.objectType="LightSpot";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=Mt.MathUtils.RAD2DEG*2*this.angle,o.aspect=1,o.near=100,o.far=2500;let i=new Mt.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new qn().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Mt.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Mt.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Mt.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Em.setFromMatrixPosition(this.matrixWorld),Bm.setFromRotationMatrix(this.matrixWorld),Mm.copy(this.up).applyQuaternion(Bm).negate().multiplyScalar(this.distance),this.target.position.copy(Em).add(Mm),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}fromSpotLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.angle!==void 0&&(this.angle=e.angle),e.penumbra!==void 0&&(this.penumbra=e.penumbra),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromSpotLightState(e,r),this}};var Dm=n=>n.tagName==="VIDEO",$n=class{static resize(t,e,r){let o=t/e,i;if(!r.image)return;let s=r.image;Dm(s)?i=s.videoWidth/s.videoHeight:i=s.width/s.height,o>i&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*i/o):r.repeat.set(1,1*i/o)),o<i&&(r.imageType=="WEBCAM"?r.repeat.set(1*o/i*-1,1):r.repeat.set(1*o/i,1)),o==i&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1))}static resizeTextureLayer(t,e,r){let o=t/e,i=r.image!==void 0?r.image.width/r.image.height:1,s;o>i?s={x:1,y:i/o}:o<i?s={x:o/i,y:1}:s={x:1,y:1},r.repeat.set(s.x,s.y),r.updateMatrix()}static resizeTextureLayers(t,e,r){let o=r.layers;for(let i=0;i<o.length;i++){let s=o[i];Nm(s)&&$n.resizeTextureLayer(t,e,s.uniforms[`f${s.id}_texture`].value)}}static resizeComplex(t,e,r,o){let i=t/e,s,l=r.image;Dm(l)?s=l.videoWidth/l.videoHeight:s=l.width/l.height,o.geometry.type.includes("Shape")?(i>s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e*s/i):r.repeat.set(1/t,1/e*s/i)),i<s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*i/s*-1,1/e):r.repeat.set(1/t*i/s,1/e)),i==s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e):r.repeat.set(1/t,1/e))):(i>s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*s/i):r.repeat.set(1,1*s/i)),i<s&&(r.imageType=="WEBCAM"?r.repeat.set(1*i/s*-1,1):r.repeat.set(1*i/s,1)),i==s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1)))}};var Wa=class extends ut{constructor(e,r){super(e,r);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e,r){super.updateGeometry(e,r),this.material.layers&&$n.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var Xn=class extends ut{constructor(e,r){super(e,r);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var qa=class extends Xn{constructor(e,r){super(e,r);this.objectType="NonParametric"}};var Rm,os=new Promise(n=>{Rm=n}),Gm=!1;async function Vm(){if(Gm)return;let n=await import("./opentype.js");Rm(n),Gm=!0}var ns=class{async load(t,e,r=()=>{}){let{load:o}=await os;o(t,(i,s)=>{i||!s?r(i??"Something went wrong"):e(s)})}async parse(t){let{parse:e}=await os;try{return e(t)}catch(r){console.error(r)}}};async function cw(n){return await(await fetch(n)).arrayBuffer()}var uw=new ns;async function Ic(n){let t,e,r=!1;if(n.url?(t=await cw(n.url),e=n.url,r=n.url.startsWith("/")):n.data&&(t=n.data.buffer),t){let o=await uw.parse(t);if(o)return{font:o,url:e,intercepted:r,arr:t}}}var Yn=require("three");var Fm=new Yn.Vector3,zm=new Yn.Matrix4,Um=new Yn.Ray;function jm(n){let t=!1;return n.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="TextGeometry"&&(t=!0)}),t}var $a=class extends ut{constructor(e,r,o){super(new On(r.geometry,o),o.material(r.material));this.data=r;this.objectType="TextFrame";this.wrappedText=[""];this.charWidths=[];this.charCoords=[];this.castShadow=r.castShadow,this.receiveShadow=r.receiveShadow,this.name=r.name,this.uuid=e,this.updateState(r,o)}async updateGeometry(e,r){let o=e.parameters,i={...this.geometry.userData.parameters,...o};this.geometry.userData={parameters:i,type:"TextGeometry"},r&&(o.font||!this.geometry.font&&r.getFont(i.font))&&await this.geometry.updateFont(o.font??i.font,r),await this.geometry.update(i),Or(this),Cr(this);let{wrappedText:s,charCoords:l,charWidths:c}=this.geometry;this.wrappedText=s,this.charWidths=c,this.charCoords=l,this.resetBBoxNeedsUpdate()}updateState(e,r){this.data=e,this.material=r.material(e.material),this.fromState(e,r),this.updateGeometry({parameters:e.geometry},r)}get font(){return this.geometry.font}get initialOffsetY(){return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,this.geometry.userData.parameters.height,this.fontScale,this.geometry.userData.parameters.verticalAlign)??0}get fontScale(){return this.font?this.geometry.userData.parameters.fontSize/this.font.unitsPerEm:1}get AD(){return Math.abs(this.ascender-this.descender)}get ascender(){return(this.font?.ascender??1)*this.fontScale}get descender(){return(this.font?.descender??1)*this.fontScale}get lineHeight(){return this.geometry.userData.parameters.fontSize*this.geometry.userData.parameters.lineHeight}raycast(e,r){let{matrixWorld:o}=this;if(zm.copy(o).invert(),Um.copy(e.ray).applyMatrix4(zm),Um.intersectBox(this.singleBBox,Fm)){let i=Fm.applyMatrix4(o),s=e.ray.origin.distanceTo(i);r.push({distance:s,point:i.clone(),object:this})}}};var wt=require("three");var qm=tl(Hm());var Pc;Pa.then(n=>{Pc=n});var $m=new wt.Matrix4,pw=new wt.Matrix4,dw=new wt.Matrix4,ir=new wt.Box3,mo=new wt.Vector3,fw=new wt.Matrix4,mw=new wt.Matrix4;var Kn=class extends ut{constructor(e,r,o,i){super(o??r,i);this.subdivPointer=e;this.originalGeometry=r;this.subdividedGeometry=o;this.objectType="SubdivObject";this.hiddenMatrixOld=new wt.Matrix4;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new wt.Matrix4;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,r,o){let{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}=qt.build(r.geometry,void 0,void 0,!r.flatShading),c=o.material(r.material),p=new Kn(i,s,l||void 0,c);return r.geometry.phongAngle!==void 0&&(p.phongAngle=r.geometry.phongAngle),p.calcBoundingBox(),p.freeSubdivPointer(),p.uuid=e,p.fromState(r),p}buildFromStore(e,r){let{originalGeometry:o,subdividedGeometry:i,subdivPointer:s}=qt.build(e,r,this.subdivPointer,this.smoothShading,this.shearScale);e.phongAngle!==void 0&&(this.phongAngle=e.phongAngle),this.subdivPointer=s,o!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=o),i!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=i??void 0),this.geometry=this.subdividedGeometry??this.originalGeometry,Or(this),Cr(this),e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){qt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&qt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=qt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=qt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(e,r){this.geometry=this.originalGeometry,ut.prototype.raycast.call(this,e,r),this.geometry=this.subdividedGeometry??this.originalGeometry}updateMatrixWorldSVD(){let e=this.matrixWorld.elements,r=[[e[0],e[4],e[8]],[e[1],e[5],e[9]],[e[2],e[6],e[10]]],{u:o,v:i,q:s}=(0,qm.SVD)(r),l=$m.set(o[0][0],o[0][1],o[0][2],0,o[1][0],o[1][1],o[1][2],0,o[2][0],o[2][1],o[2][2],0,0,0,0,1),c=pw.set(i[0][0],i[0][1],i[0][2],0,i[1][0],i[1][1],i[1][2],0,i[2][0],i[2][1],i[2][2],0,0,0,0,1),p=dw.copy(c).transpose();this.shearScale=fw.makeScale(s[0],s[1],s[2]).multiply(p).premultiply(c),this.shearScaleInv=mw.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(l,p),s.every(a=>Math.abs(s[0]-a)<.01)&&(this.shearScale=void 0,this.shearScaleInv=void 0)}activateSVDCompensation(){this.shearScale!==void 0&&(this.matrixAutoUpdate=!1,this.matrix.copy(this.matrixWorldRigid).copyPosition(this.matrixWorld),this.hiddenMatrixOld.copy(this.hiddenMatrix),this.hiddenMatrix.copy(this.parent.matrixWorld).invert())}deactivateSVDCompensation(){this.shearScale!==void 0&&(this.shearScale=void 0,this.shearScaleInv=void 0,this.matrixAutoUpdate=!0,this.hiddenMatrix.copy(this.hiddenMatrixOld))}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new wt.Sphere);let r=e.attributes.position,o=e.boundingSphere.center;ir.setFromBufferAttribute(r),ir.getCenter(o),e.boundingSphere.radius=o.distanceTo(ir.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ir.getSize(mo);let i={width:mo.x,height:mo.y,depth:mo.z};return this.geometry.userData.parameters=i,i}updateBoundingBox(e){let r=this.originalGeometry;ir.min.set(e[0],e[2],e[4]),ir.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(ir.min.applyMatrix4(this.shearScaleInv),ir.max.applyMatrix4(this.shearScaleInv)),r.boundingSphere===null&&(r.boundingSphere=new wt.Sphere);let o=r.boundingSphere.center;ir.getCenter(o),r.boundingSphere.radius=o.distanceTo(ir.max),isNaN(r.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ir.getSize(mo);let i={width:mo.x,height:mo.y,depth:mo.z};return this.geometry.userData.parameters=i,i}freeSubdivPointer(){this.subdivPointer&&(Pc.free_bvh(this.subdivPointer),Pc.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(e,r){this.geometry.userData.scale||(this.geometry.userData.scale=Array(3)),this.geometry.userData.scale[0]=this.geometry.userData.parameters.width===0?1:e.parameters.width/this.geometry.userData.parameters.width,this.geometry.userData.scale[1]=this.geometry.userData.parameters.height===0?1:e.parameters.height/this.geometry.userData.parameters.height,this.geometry.userData.scale[2]=this.geometry.userData.parameters.depth===0?1:e.parameters.depth/this.geometry.userData.parameters.depth,Wm(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(Wm(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters={...e.parameters}}};function Wm(n,t,e,r){let o=n.position.array,i=n.normal.array,s=$m.makeScale(t,e,r).invert().elements,l,c,p;for(var a=0,u=o.length;a<u;a+=3)o[a]*=t,o[a+1]*=e,o[a+2]*=r,l=i[a],c=i[a+1],p=i[a+2],i[a]=s[0]*l+s[4]*c+s[8]*p,i[a+1]=s[1]*l+s[5]*c+s[9]*p,i[a+2]=s[2]*l+s[6]*c+s[10]*p}var ho=require("three");function Xm(n,t){t.flatShading!==void 0&&(n.flatShading=t.flatShading,n.needsUpdate=!0),t.wireframe!==void 0&&(n.wireframe=t.wireframe),t.side!==void 0&&(t.side===0?n.side=ho.FrontSide:t.side===1?n.side=ho.BackSide:n.side=ho.DoubleSide)}function hw(n,t){if(Array.isArray(n.material))for(let e of n.material)Xm(e,t);else{let e=n.material;Xm(e,t)}n.objectType==="SubdivObject"&&t.flatShading!==void 0&&(n.material.flatShading=!1,n.smoothShading=!t.flatShading,n.updateMesh())}function Ym(n,t,e){let r;if(t.geometry.type==="SubdivGeometry")r=Kn.createFromState(n,t,e);else{let o=t.geometry.type==="BooleanGeometry"?new ho.BufferGeometry:Oa(t.geometry,e),i="materials"in t?t.materials.map(s=>e.material(s)):e.material(t.material);Es.is2DParametricMesh(o.userData.type)?r=new Wa(o,i):o?.userData.type==="VectorGeometry"?r=new jn(o,i):t.geometry.type==="NonParametricGeometry"?r=new qa(o,i):t.geometry.type==="BooleanGeometry"?(r=new Ha(void 0,i),r.booleanOp=t.geometry.operation,t.geometry.phongAngle!==void 0&&(r.phongAngle=t.geometry.phongAngle)):r=new Xn(o,i),r.uuid=n,r.fromState(t,e)}return hw(r,t),r}function Km(n,t,e){return t.type==="Mesh"?t.geometry.type==="TextGeometry"?new $a(n,t,e):Ym(n,t,e):t.type==="Empty"?Do.createFromState(n,t):t.type==="PointLight"?Wn.createFromState(n,t,e):t.type==="SpotLight"?qn.createFromState(n,t,e):t.type==="DirectionalLight"?Hn.createFromState(n,t,e):Wo.is(t.type)?Ur.createFromState(n,t):(console.error(t),new Do)}var Ro=class extends Ft{};var jr=require("three");function Qm(n,t){let e=!1,r=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return o.length>0&&(n.layers.set(8),r.length>0&&n.layers.enable(3),e=!0,Cr(n),Or(n)),r.length===0&&o.length===0&&n.layers.set(0),e}function Zm(n,t){if(!t.layers)return!1;let e=!1,r=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return r.length>0&&(n.layers.set(3),o.length>0&&n.layers.enable(8),e=!0),r.length===0&&o.length===0&&n.layers.set(0),e}function Jm(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof jr.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)Qm(e,e.material[r])&&(t=!0);else Qm(e,e.material)&&(t=!0)}),t}function eh(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof jr.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)Zm(e,e.material[r])&&(t=!0);else Zm(e,e.material)&&(t=!0)}),t}function th(n){"material"in n&&yw(n.material),"geometry"in n&&n.geometry.dispose()}function yw(n){Bd(n).forEach(t=>{t instanceof Ro||t.dispose()})}var xw=new jr.Raycaster,vw=new jr.Matrix4,bw=new jr.Ray;function rh(n,t,e){let r=n.cloner;if(r)for(let o of r.children){let i=vw.copy(o.matrixWorld).invert(),s=bw.copy(t.ray).applyMatrix4(i),l=n.matrixWorld;s.applyMatrix4(l);let c=xw;c.set(s.origin,s.direction),c.near=t.near,c.far=t.far,c.intersectObject(n,!1).length>0&&e.push({object:n})}}var oh=new Mr.Vector3,Oc=class extends Ea(Mr.Scene){constructor(e,r){super();this.objectType="Scene";this.backupFog=new Mr.Fog(16777215,.1,2e3);this.fogUseBGColor=!1;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this.bgColor=new tt(1,1,1,1);this.entityByUuid={};this.ambientLight=new Mr.HemisphereLight(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.ambientLight.layers.enable(3),this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.postprocessing=e.postprocessing,this.init(e,r),this.matrixAutoUpdate=!1}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=eh(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=Jm(this),this.needsNormalDirty=!1),this._needsNormal}find(e){if(e===""||e===void 0)return;let r=this.entityByUuid[e];return r===void 0?this.getObjectByProperty("uuid",e):r}get enableFog(){return this.fog!==null}set enableFog(e){this.fog=e===!0?this.backupFog:null}init(e,r){if(this.createChildrenObjects(e.objects,this,r),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(st(e.backgroundColor,r)),this.updateFog(e.fog,r),this.updateAmbientLight(e.environment.ambientLight,r),this.activeCamera=this.personalCamera,e.publish.playCamera!==null){let o=this.find(e.publish.playCamera);o instanceof Ur&&this.switchActiveCamera(o)}this.traverse(o=>{br(o)&&o.recomputeBoolean()})}clearScene(){this.traverseEntity(e=>{th(e)});for(let e of this.children)wr(e)&&e.removeFromParent()}resetAfterClear(e,r){this.init(e,r)}createPersonalCamera(){let e=Ur.createFromState(Oc.PERSONAL_CAMERA_ID,{...aa.defaultData,name:"Personal Camera"});return e.objectHelper.visible=!1,delete e.isEntity,this.registerObjectCreatedInLegacy(e),e}raycast(e){let r=[],o=i=>{for(let s of i.children)wr(s)&&!s.raycastLock&&s.visible&&((vr(s)||La(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,r),rh(s,e,r)),o(s))};return o(this),r}traverseEntity(e){for(let r of this.children)wr(r)&&r.traverseEntity(e)}traverseVisibleEntity(e){for(let r of this.children)wr(r)&&r.visible&&r.traverseVisibleEntity(e)}updateFog(e,r){this.enableFog=e.enabled,this.fogUseBGColor=e.useBackgroundColor,e.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=st(e.color,r),this.backupFog.near=e.near,this.backupFog.far=e.far}dispose(){this.clearScene()}updateAmbientLight(e,r){nm(this.ambientLight,e,r),e.groundColor!==void 0&&(this.ambientLight.groundColor=st(e.groundColor,r)),e.enabled!==void 0&&(this.ambientLight.visible=e.enabled)}switchActiveCamera(e){this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=e,e.objectHelper.visible=!1}setBackgroundColor(e){this.bgColor=e,this.fogUseBGColor===!0&&(this.backupFog.color=e)}createChildrenObjects(e,r,o){for(let i of e)this.createChildObject(i.id,i.data,i.children,r,o)}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let r of e.children)this.unregisterObject(r)}createChildObject(e,r,o,i,s){let l=Km(e,r,s);return l&&(this.entityByUuid[e]=l,i.add(l),br(i)&&vr(l)&&(l.prevBooleanObjectParent=i),this.createChildrenObjects(o,l,s)),l}getCenter(e){let r=[];for(let i=0,s=e.length;i<s;++i){let{id:l,recursive:c}=e[i],p=this.find(l),a=c?p.recursiveBBox:p.singleBBox;r.push(...a.vertices)}let o=new Mr.Box3;return o.setFromPoints(r),o.getCenter(oh),oh}copyMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e);o?r.copy(o.matrixWorld):r.identity()}copyParentMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e)?.parent;o?r.copy(o.matrixWorld):r.identity()}traverseMaterial(e){this.traverseEntity(r=>{if(r instanceof ut)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)r.material[o]instanceof Ft&&e(r.material[o]);else r.material instanceof Ft&&e(r.material)})}updateCanvasSize(e,r){this.activeCamera.setViewplaneSize(e,r);let o,i;e>=r?(o=r/e,i=1):(o=1,i=e/r),this.traverseMaterial(s=>{s.getLayersOfType("transmission").forEach(c=>{c.uniforms[`f${c.id}_aspectRatio`].value.x=o,c.uniforms[`f${c.id}_aspectRatio`].value.y=i})})}},is=Oc;is.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var ah=tl(nh());var ih=new Map;function sh(n){if(typeof n=="string")return n;let t=ih.get(n);return t||(t={url:URL.createObjectURL(new Blob([n]))},ih.set(n,t)),t.url}var Qn=class{constructor({src:t,volume:e,delay:r,loop:o}){this._volume=1;this.delay=0;this._loop=1;this.loopsRemaining=0;this._status="stopped";this.onEnd=()=>{this.loopsRemaining===1/0?this.replay():this.loopsRemaining>1?(this.replay(),this.loopsRemaining--):(this._status="stopped",this.loopsRemaining=this._loop)};let i;typeof t=="string"?i={src:t}:i={src:sh(t),format:"wav"},this.sound=new ah.Howl(i),this.sound.on("end",this.onEnd),this.src=t,e!==void 0&&(this.volume=e),r!==void 0&&(this.delay=r),o!==void 0&&(this.loop=o)}get status(){return this._status}get volume(){return this._volume}set volume(t){this._volume=t,this.sound.volume(t)}get loop(){return this._loop}set loop(t){this._loop=t,this.loopsRemaining=t}replay(){this.clearDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.clearDelay()},this.delay)}fade(t,e=1e3){t?(this.sound.volume(this._volume),this.clearFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,e),this.clearFade()},t)):this.sound.fade(this._volume,0,e)}on(t,e,r){this.sound.on(t,e,r)}off(t,e,r){this.sound.off(t,e,r)}play(){this._status==="playing"||this.sound.playing()||(this._status==="paused"?(this.sound.seek()===0?this.replay():this.sound.play(),this._status="playing"):this._status==="stopped"&&(this.replay(),this._status="playing"))}pause(){this._status==="playing"&&(this.sound.pause(),this.clearFade(),this.clearDelay(),this._status="paused")}stop(){this.sound.stop(),this.loopsRemaining=this._loop,this.clearFade(),this.clearDelay(),this._status="stopped"}clearFade(){this.fadeTimerId&&(clearTimeout(this.fadeTimerId),delete this.fadeTimerId)}clearDelay(){this.delayTimerId&&(clearTimeout(this.delayTimerId),delete this.delayTimerId)}dispose(t=!1){this.off(),this.stop(),this.clearFade(),this.clearDelay()}};var ot=require("three"),Ka=class{constructor(){this.type="ShapePath";this.color=new ot.Color;this.subPaths=[];this.currentPath=null}moveTo(t,e){return this.currentPath=new ot.Path,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath?.lineTo(t,e),this}quadraticCurveTo(t,e,r,o){return this.currentPath?.quadraticCurveTo(t,e,r,o),this}bezierCurveTo(t,e,r,o,i,s){return this.currentPath?.bezierCurveTo(t,e,r,o,i,s),this}splineThru(t){return this.currentPath?.splineThru(t),this}toShapes(){let e={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:e.ORIGIN,t:0};function o(h,g,v,x){let w=h.x,S=g.x,b=v.x,I=x.x,_=h.y,y=g.y,P=v.y,A=x.y,O=(I-b)*(_-P)-(A-P)*(w-b),T=(S-w)*(_-P)-(y-_)*(w-b),L=(A-P)*(S-w)-(I-b)*(y-_),B=O/L,j=T/L;if(L===0&&O!==0||B<=0||B>=1||j<0||j>1)return null;if(O===0&&L===0){for(let te=0;te<2;te++)if(i(te===0?v:x,h,g),r.loc===e.ORIGIN){let ne=te===0?v:x;return{x:ne.x,y:ne.y,t:r.t}}else if(r.loc===e.BETWEEN){let ne=+(w+r.t*(S-w)).toPrecision(10),ae=+(_+r.t*(y-_)).toPrecision(10);return{x:ne,y:ae,t:r.t}}return null}else{for(let ae=0;ae<2;ae++)if(i(ae===0?v:x,h,g),r.loc===e.ORIGIN){let U=ae===0?v:x;return{x:U.x,y:U.y,t:r.t}}let te=+(w+B*(S-w)).toPrecision(10),ne=+(_+B*(y-_)).toPrecision(10);return{x:te,y:ne,t:B}}}function i(h,g,v){let x=v.x-g.x,w=v.y-g.y,S=h.x-g.x,b=h.y-g.y,I=x*b-S*w;if(h.x===g.x&&h.y===g.y){r.loc=e.ORIGIN,r.t=0;return}if(h.x===v.x&&h.y===v.y){r.loc=e.DESTINATION,r.t=1;return}if(I<-Number.EPSILON){r.loc=e.LEFT;return}if(I>Number.EPSILON){r.loc=e.RIGHT;return}if(x*S<0||w*b<0){r.loc=e.BEHIND;return}if(Math.sqrt(x*x+w*w)<Math.sqrt(S*S+b*b)){r.loc=e.BEYOND;return}let _;x!==0?_=S/x:_=b/w,r.loc=e.BETWEEN,r.t=_}function s(h,g){let v=[],x=[];for(let w=1;w<h.length;w++){let S=h[w-1],b=h[w];for(let I=1;I<g.length;I++){let _=g[I-1],y=g[I],P=o(S,b,_,y);P!==null&&v.find(A=>A.t<=P.t+Number.EPSILON&&A.t>=P.t-Number.EPSILON)===void 0&&(v.push(P),x.push(new ot.Vector2(P.x,P.y)))}}return x}function l(h,g,v){let x=new ot.Vector2;g.getCenter(x);let w=[];return v.forEach(S=>{S.boundingBox.containsPoint(x)&&s(h,S.points).forEach(I=>{w.push({identifier:S.identifier,isCW:S.isCW,point:I})})}),w.sort((S,b)=>S.point.x-b.point.x),w}function c(h,g,v,x,w){(w==null||w==="")&&(w="nonzero");let S=new ot.Vector2;h.boundingBox.getCenter(S);let b=[new ot.Vector2(v,S.y),new ot.Vector2(x,S.y)],I=l(b,h.boundingBox,g);I.sort((T,L)=>T.point.x-L.point.x);let _=[],y=[];I.forEach(T=>{T.identifier===h.identifier?_.push(T):y.push(T)});let P=_[0].point.x,A=[],O=0;for(;O<y.length&&y[O].point.x<P;)A.length>0&&A[A.length-1]===y[O].identifier?A.pop():A.push(y[O].identifier),O++;if(A.push(h.identifier),w==="evenodd"){let T=A.length%2===0,L=A[A.length-2];return{identifier:h.identifier,isHole:T,for:L}}else if(w==="nonzero"){let T=!0,L=null,B=null;for(let j=0;j<A.length;j++){let te=A[j];g[te]&&(T?(B=g[te].isCW,T=!1,L=te):B!==g[te].isCW&&(B=g[te].isCW,T=!0))}return{identifier:h.identifier,isHole:T,for:L}}else console.warn('fill-rule: "'+w+'" is currently not implemented.')}let p=0,a=999999999,u=-999999999,d=[];this.subPaths.forEach(h=>{let g=h.getPoints(),v=-999999999,x=999999999,w=-999999999,S=999999999;for(let b=0;b<g.length;b++){let I=g[b];I.y>v&&(v=I.y),I.y<x&&(x=I.y),I.x>w&&(w=I.x),I.x<S&&(S=I.x)}u<=w&&(u=w+1),a>=S&&(a=S-1),g.length&&d.push({curves:h.curves,points:g,isCW:ot.ShapeUtils.isClockWise(g),identifier:p++,boundingBox:new ot.Box2(new ot.Vector2(S,x),new ot.Vector2(w,v))})});let f=d.map(h=>c(h,d,a,u,this.userData?.style.fillRule)),m=[];return d.forEach(h=>{let g=f[h.identifier];if(g&&!g.isHole){let v=new ot.Shape;v.curves=h.curves,f.filter(w=>w?.isHole&&w.for===h.identifier).forEach(w=>{if(w){let S=d[w.identifier],b=new ot.Path;b.curves=S.curves,v.holes.push(b)}}),m.push(v)}}),m}};var Zn=require("three");var lh=require("three/examples/jsm/loaders/DRACOLoader.js");var go;function Sw(){return go||(go=new lh.DRACOLoader,go.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),go.decoderPending}async function ww(n){if(go){let t={attributeIDs:go.defaultAttributeIDs,attributeTypes:go.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await go.decodeGeometry(new Int8Array(n).buffer,t)}catch(r){console.error(r)}if(e)return{index:e.index?{array:e.index.array}:void 0,attributes:Object.entries(e.attributes).map(([r,o])=>({name:r,itemSize:o.itemSize,array:o.array}))}}return null}async function ch(n,t){let[e,r]=il(Is.deserialize(new Uint8Array(n)));Ud(e);let o=[];e.scene.objects.traverse((i,s)=>{s.type==="Mesh"&&s.geometry.type==="NonParametricGeometry"&&s.geometry.data.draco!==void 0&&o.push(s)}),o.length&&await Sw();for(let i of o){let s=await ww(Tt(i.geometry.data.draco));if(s){s.index&&(i.geometry.data.index={array:s.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let l={};s.attributes.forEach(({name:c,array:p,itemSize:a})=>{l[c]={array:p,itemSize:a,type:"Float32Array",normalized:!1}}),i.geometry.data.attributes=l,i.geometry.data.draco=void 0}}return t&&t(e),r.result().data}function _w(n,t){return t.state.glyphIndex===n||t.state.fina===n||t.state.medi===n||t.state.init===n}var Qa=class{constructor(t,e){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=Ic(t).then(r=>{r&&(this._arrayBuffer=r.arr,this._url=r.url,this.font=r.font,this._intercepted=r.intercepted,this._isLoaded=!0,e())})}update(t,e){this._isLoaded=!1,this._isUserFont=t.isUserFont??!1,this._loadingPromise=Ic(t).then(r=>{r&&(this._arrayBuffer=r.arr,this._url=r.url,this.font=r.font,this._intercepted=r.intercepted,this._isLoaded=!0,e())})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}async reverseLigaturesTable(t,e,r){let{Bidi:o}=await os,i=new o,s=u=>t.charToGlyphIndex(u.char);i.registerModifier("glyphIndex",null,s),i.applyFeatures(t,t.defaultRenderOptions.features),i.getTextGlyphs(e);let l=i.tokenizer.tokens,c=[],p=0,a=r.length===l.length;for(let u=0;u<r.length;u++){let d=r[u].index,f=String.fromCharCode(r[u].unicode),m=l[p];if(_w(d,m)||a)c.push({char:f,index:d,replacements:[m.state.glyphIndex],replacementChars:[m.char]}),p++;else{let h=m.char,g="",v=[m.state.glyphIndex],x=[],w=!1;for(;!w;)p++,g=e.charAt(p),h+=g,v.push(t.charToGlyphIndex(g)),x=t.stringToGlyphs(h),x.length===1&&x[0].index===d&&(w=!0),p>e.length&&(w=!0);c.push({char:f,index:d,replacements:v,replacementChars:Array.from(h)}),p++}}return c}async generateShapes(t,e){await this._loadingPromise;let r=this.font,o=e.fontSize/this.unitsPerEm,i=e.fontSize*e.lineHeight,s=t.map(x=>this.getTextWidth(x,e)),l=e.width,c=this.getCharWidth(`
1335
1335
  `,e),p=e.horizontalAlign===1?c:0,a=this.computeSpaceWidthForLine(t,0,e),u=this.getLineInitialOffsetX(s[0],l,e.horizontalAlign,t[0],c),d=this.getLineInitialOffsetY(i,t.length,e.height,o,e.verticalAlign),f=[],m=t.map(x=>[]),h=t.map(x=>[]),g;for(let x=0;x<t.length;x++){let w=t[x],S={features:{liga:!0}},b=[];try{b=r.stringToGlyphs(w,S)}catch(_){console.warn(_)}u=this.getLineInitialOffsetX(s[x],l,e.horizontalAlign,w,c);let I=[];try{I=await this.reverseLigaturesTable(r,w,b)}catch(_){console.warn(_)}a=this.computeSpaceWidthForLine(t,x,e);for(let _=0;_<b.length;_++){let y=b[_],P=y.index===0?`
1336
1336
  `:y.unicode?String.fromCharCode(y.unicode):void 0,A=I[_],O=0,T=0;_===0&&e.horizontalAlign===2&&y.leftSideBearing!==void 0&&(T=-y.leftSideBearing*o),g&&(O=r.getKerningValue(y,g)*o),u+=T+O;let L=0;if(P===`
1337
1337
  `)L=p;else if(P===" ")L=a;else{let B=this.createPath(y,o,u,d,e);B&&(L=B.offsetX-(O+T),f.push(B.path))}if(A.replacements.length===1)h[x].push([u,d]),m[x].push(L);else{let B=A.replacements.map(ae=>(r.glyphs.get(ae).advanceWidth??0)*o),j=B.reduce((ae,U)=>ae+=U,0),te=B.map(ae=>ae/j),ne=u;for(let ae=0;ae<te.length;ae++){let U=L*te[ae];h[x].push([ne,d]),m[x].push(U),ne+=U}}u+=L,g=y}d-=i}let v=[];for(let x=0,w=f.length;x<w;x++)v.push(...f[x].toShapes());return{shapes:v,charWidths:m,lineWidths:s,charCoords:h}}get isUserFont(){return this._isUserFont}get arrayBuffer(){return this._arrayBuffer}get ascender(){return this.font?.ascender??0}get descender(){return this.font?.descender??0}get familyName(){return this.font?.names.fontFamily??""}get subfamilyName(){return this.font?.names.fontSubfamily??""}get unitsPerEm(){return this.font?.unitsPerEm??1}getLineInitialOffsetX(t,e,r,o,i){return(r===3||r===2)&&o.indexOf(`
1338
- `)>=0&&(t-=i),r===3?e*.5-t*.5:r===2?e-t:0}getLineInitialOffsetY(t,e,r,o,i){let s=e*t,l=Math.abs(this.ascender-this.descender)*o,c=t-l,p=-this.ascender*o-c/2;return i===3?-(r-s-p):i===2?-(r*.5-s*.5-p):p}createPath(t,e,r,o,i){let s=t.getPath(r,-o,i.fontSize,{kerning:!1,letterSpacing:i.letterSpacing});if(!s){console.error('THREE.Font: character "'+t+'" does not exists in font family '+this.familyName+".");return}let l=new Xa,c=(t.advanceWidth??1)*e;if(t)for(let p of s.commands){let a=l.currentPath?.currentPoint;if(!(a&&p.type!=="Z"&&a.x===p.x&&-a.y===p.y))switch(p.type){case"M":l.moveTo(p.x,-p.y);break;case"L":l.lineTo(p.x,-p.y);break;case"Q":l.quadraticCurveTo(p.x1,-p.y1,p.x,-p.y);break;case"C":l.bezierCurveTo(p.x1,-p.y1,p.x2,-p.y2,p.x,-p.y);break}}return l.subPaths.forEach(p=>{let a=ww(p.curves);a!==void 0&&p.currentPoint.distanceTo(a)>0&&p.lineTo(a.x,a.y)}),{offsetX:c+i.fontSize*i.letterSpacing,path:l}}getCharWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}getTextWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}computeSpaceWidthForLine(t,e,r){let o=this.getCharWidth(" ",r),i=t[e];if(i){let s=this.countSpaces(i.trimEnd());if(r.horizontalAlign===4&&e<t.length-1&&s){let l=r.width,c=this.getTextWidth(i,r);return(l-(c-s*o))/s}}return o}countSpaces(t){return(t.match(/ /g)||[]).length}};function ww(n){if(n.length){let t=n[0];if(t instanceof Zn.LineCurve)return t.v1;if(t instanceof Zn.CubicBezierCurve||t instanceof Zn.QuadraticBezierCurve)return t.v0}}var ss=class{constructor(t,e={}){this.deletedMaterial=new Ro(Rt.defaultTwoLayerData("basic"),this);this.deletedImage=new Bo(ua.emptyImage);this.materials={};this.images={};this.colors={};this.audios={};this.fonts={};this.penumbraSize=[];this.onImageLoad=()=>{this._onImageLoad&&this._onImageLoad()};this.onFontLoad=()=>{this._onFontLoad&&this._onFontLoad()};if(e.images)for(let[r,o]of Object.entries(e.images))this.addImage(r,o);if(e.audios)for(let[r,o]of Object.entries(e.audios))this.addAudio(r,o.data);this.reset(t)}setOnImageLoad(t){this._onImageLoad=t}setOnFontLoad(t){this._onFontLoad=t}reset(t){for(let[e,r]of Object.entries(t.images))this.addImage(e,r);for(let[e,r]of Object.entries(t.colors))this.addColor(e,r);for(let[e,r]of Object.entries(t.materials))this.addMaterial(e,new Ro(r,this));for(let[e,r]of Object.entries(t.audios))this.addAudio(e,r.data);for(let[e,r]of Object.entries(t.fonts))this.addFont(e,r);this.penumbraSize=t.penumbraSize}addMaterial(t,e){e.uuid=t,this.materials[t]=e}deleteMaterial(t){this.materials[t]&&(this.materials[t].dispose(),delete this.materials[t])}getMaterial(t){let e=this.materials[t];return e}getMaterialOrDeletedPlaceholder(t){return this.materials[t]??this.deletedMaterial}material(t){return typeof t=="string"?this.getMaterialOrDeletedPlaceholder(t):new Ft(t,this)}getMaterials(){return this.materials}addImage(t,e){return this.images[t]?(this.images[t].updateSrc(e.data),!0):(this.images[t]=new Bo(e,this.onImageLoad),!1)}deleteImage(t){this.images[t]&&delete this.images[t]}getDefaultImage(){return this.images.image_0}getImage(t){return this.images[t]??this.deletedImage}image(t){return typeof t=="string"?this.getImage(t):new Un(t,this.onImageLoad)}getImages(){return this.images}addColor(t,e){return this.colors[t]?("a"in e?this.colors[t].setRGBA(e.r,e.g,e.b,e.a):this.colors[t].setRGBA(e.r,e.g,e.b,1),!0):("a"in e?this.colors[t]=new uo(e.r,e.g,e.b,e.a):this.colors[t]=new uo(e.r,e.g,e.b,1),!1)}updateColor(t,e){if(this.colors[t]){let r=this.colors[t];return this.colors[t].r=e.r??r.r,this.colors[t].g=e.g??r.g,this.colors[t].b=e.b??r.b,this.colors[t].a=e.a??r.a,!0}return!1}deleteColor(t){this.colors[t]&&delete this.colors[t]}getColor(t){return this.colors[t]}color(t){let e;if(typeof t=="string"){let r=this.getColor(t);r?e=r:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),e=new tt(0,0,0,0))}else return"a"in t?new tt(t.r,t.g,t.b,t.a):new tt(t.r,t.g,t.b,1);return e}addAudio(t,e){this.audios[t]=e}getAudio(t){let e=this.audios[t];if(e instanceof Qn)return e;{let r=new Qn({src:e});return this.audios[t]=r,r}}deleteAudio(t){this.audios[t]&&delete this.audios[t]}addFont(t,e){this.fonts[t]=new Ya(e,this.onFontLoad)}getFont(t){return this.fonts[t]}deleteFont(t){this.fonts[t]&&delete this.fonts[t]}dispose(){Object.keys(this.materials).forEach(e=>this.deleteMaterial(e)),this._onImageLoad=void 0,Object.values(this.audios).forEach(e=>{e instanceof Qn&&e.dispose()}),this.audios={}}},i4=new ss(ca.emptyData());var _w=require("three"),Tw=require("three/examples/jsm/utils/BufferGeometryUtils.js");function ch(n){let t;if(!!n.index)for(let e=0;e<n.index.array.length;e+=3)t=n.index.array[e],n.index.array[e]=n.index.array[e+2],n.index.array[e+2]=t}var as=require("three");function uh(n){let t=new Set;return n.traverse(e=>{if(xr(e))if(je(e.material))e.material.forEach(r=>{let o=r;t.has(o)||t.add(o)});else{let r=e.material;t.has(r)||t.add(r)}}),t.forEach(e=>{if(e instanceof Array)return;let r=e.onBeforeCompile.bind(e);if(Aw(e)){Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new as.Color,specularColor:new as.Color});let o=0;e.onBeforeCompile=(i,s)=>{r&&r(i,s),i.uniforms=Object.assign({},as.ShaderLib.physical.uniforms,i.uniforms),e.getLayersOfType("transmission").forEach(l=>{if(i.uniforms.transmissionSamplerMap.value){let c=l.color;c&&(c.transmissionSamplerMap.value=i.uniforms.transmissionSamplerMap.value,c.transmissionSamplerSize.value=i.uniforms.transmissionSamplerSize.value)}else o++,o<2&&(e.needsUpdate=!0)})}}else Nw(e)||(e.onBeforeCompile=(o,i)=>{r&&r(o,i),e.transparent=!1})}),n}function Aw(n){return n.getLayersOfType("transmission").length>0}function Nw(n){let t=0;return n.layers.forEach(e=>{if(e.type!=="light"&&e.type!=="fresnel"){let r=e.uniforms["f"+e.id+"_alpha"];r&&(t+=(1-t)*r.value)}}),t<1}function ph(n){return n.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),n}function dh(n){let t=[],e=(r,o=0)=>{let i=o>0?r+o:r;return t.includes(i)?e(r,o+1):i};return n.traverse(r=>{if(t.includes(r.name)){let o=r.name,i=e(r.name);if(r.name=i,r.isMesh){let s=r;s.material instanceof Array?s.material.forEach(l=>{l.name=l.name.replace(o,i)}):s.material.isAsset||(s.material.name=s.material.name.replace(o,i))}}t.push(r.name)}),n}var fh=require("three/examples/jsm/utils/BufferGeometryUtils.js");function mh(n){let t=[];return n.traverse(e=>{e instanceof No&&t.push(e)}),t.forEach(e=>{let r=e.object,i=e.children.map(l=>{l.updateMatrix();let c=l.geometry.clone().applyMatrix4(l.matrix);return l.matrix.determinant()<0&&ch(c),c}),s=(0,fh.mergeBufferGeometries)(e.parameters.hideBase?i:[r.geometry,...i]);r.geometry=s,r.remove(e),r.cloner=void 0}),n}function hh(n){return n.traverse(t=>{t.matrixAutoUpdate=!0}),n}function gh(n){Object.values(n.shared.materials).forEach(t=>{Cc(t)}),n.scene.objects.traverse((t,e)=>{"material"in e?Cc(e.material):"materials"in e&&e.materials.forEach(r=>{Cc(r)})})}function Cc(n){if(typeof n=="string")return;let t=[];n.layers.forEach((e,r)=>{e.type==="outline"&&t.push(r)}),t.reverse().forEach(e=>{n.layers.delete(e)}),t.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var yh="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",Ka=class extends Qa.Loader{load(t,e,r,o=console.error){let i=new Qa.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(yh+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(yh),i.load(t,async s=>{try{if(typeof s=="string")throw new Error("The .spline file is not binary!");let l=await this.parse(s);e(l)}catch(l){o(l)}},r,o)}async parse(t){let e=await lh(t,gh);Um(e)&&await Rm();let r=new ss(e.shared);Object.values(r.getMaterials()).forEach(s=>Object.assign(s,{isAsset:!0}));let o=new is(e.scene,r);o.remove(o.personalCamera),e.scene.environment.ambientLight.enabled||o.remove(o.ambientLight);let i=e.scene.publish.playCamera;if(i){let s=o.find(i);s&&rm(s)&&Object.assign(s,{makeDefault:!0})}return o=mh(o),o=uh(o),o=ph(o),o=dh(o),o=hh(o),o}};
1338
+ `)>=0&&(t-=i),r===3?e*.5-t*.5:r===2?e-t:0}getLineInitialOffsetY(t,e,r,o,i){let s=e*t,l=Math.abs(this.ascender-this.descender)*o,c=t-l,p=-this.ascender*o-c/2;return i===3?-(r-s-p):i===2?-(r*.5-s*.5-p):p}createPath(t,e,r,o,i){let s=t.getPath(r,-o,i.fontSize,{kerning:!1,letterSpacing:i.letterSpacing});if(!s){console.error('THREE.Font: character "'+t+'" does not exists in font family '+this.familyName+".");return}let l=new Ka,c=(t.advanceWidth??1)*e;if(t)for(let p of s.commands){let a=l.currentPath?.currentPoint;if(!(a&&p.type!=="Z"&&a.x===p.x&&-a.y===p.y))switch(p.type){case"M":l.moveTo(p.x,-p.y);break;case"L":l.lineTo(p.x,-p.y);break;case"Q":l.quadraticCurveTo(p.x1,-p.y1,p.x,-p.y);break;case"C":l.bezierCurveTo(p.x1,-p.y1,p.x2,-p.y2,p.x,-p.y);break}}return l.subPaths.forEach(p=>{let a=Tw(p.curves);a!==void 0&&p.currentPoint.distanceTo(a)>0&&p.lineTo(a.x,a.y)}),{offsetX:c+i.fontSize*i.letterSpacing,path:l}}getCharWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}getTextWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}computeSpaceWidthForLine(t,e,r){let o=this.getCharWidth(" ",r),i=t[e];if(i){let s=this.countSpaces(i.trimEnd());if(r.horizontalAlign===4&&e<t.length-1&&s){let l=r.width,c=this.getTextWidth(i,r);return(l-(c-s*o))/s}}return o}countSpaces(t){return(t.match(/ /g)||[]).length}};function Tw(n){if(n.length){let t=n[0];if(t instanceof Zn.LineCurve)return t.v1;if(t instanceof Zn.CubicBezierCurve||t instanceof Zn.QuadraticBezierCurve)return t.v0}}var ss=class{constructor(t,e={}){this.deletedMaterial=new Ro(Rt.defaultTwoLayerData("phong"),this);this.deletedImage=new Bo(da.emptyImage);this.materials={};this.images={};this.colors={};this.audios={};this.fonts={};this.penumbraSize=[];this.onImageLoad=()=>{this._onImageLoad&&this._onImageLoad()};this.onFontLoad=()=>{this._onFontLoad&&this._onFontLoad()};if(e.images)for(let[r,o]of Object.entries(e.images))this.addImage(r,o);if(e.audios)for(let[r,o]of Object.entries(e.audios))this.addAudio(r,o.data);this.reset(t)}setOnImageLoad(t){this._onImageLoad=t}setOnFontLoad(t){this._onFontLoad=t}reset(t){for(let[e,r]of Object.entries(t.images))this.addImage(e,r);for(let[e,r]of Object.entries(t.colors))this.addColor(e,r);for(let[e,r]of Object.entries(t.materials))this.addMaterial(e,new Ro(r,this));for(let[e,r]of Object.entries(t.audios))this.addAudio(e,r.data);for(let[e,r]of Object.entries(t.fonts))this.addFont(e,r);this.penumbraSize=t.penumbraSize}addMaterial(t,e){e.uuid=t,this.materials[t]=e}deleteMaterial(t){this.materials[t]&&(this.materials[t].dispose(),delete this.materials[t])}getMaterial(t){let e=this.materials[t];return e}getMaterialOrDeletedPlaceholder(t){return this.materials[t]??this.deletedMaterial}material(t){return typeof t=="string"?this.getMaterialOrDeletedPlaceholder(t):new Ft(t,this)}getMaterials(){return this.materials}addImage(t,e){return this.images[t]?(this.images[t].updateSrc(e.data),!0):(this.images[t]=new Bo(e,this.onImageLoad),!1)}deleteImage(t){this.images[t]&&delete this.images[t]}getDefaultImage(){return this.images.image_0}getImage(t){return this.images[t]??this.deletedImage}image(t){return typeof t=="string"?this.getImage(t):new Un(t,this.onImageLoad)}getImages(){return this.images}addColor(t,e){return this.colors[t]?("a"in e?this.colors[t].setRGBA(e.r,e.g,e.b,e.a):this.colors[t].setRGBA(e.r,e.g,e.b,1),!0):("a"in e?this.colors[t]=new uo(e.r,e.g,e.b,e.a):this.colors[t]=new uo(e.r,e.g,e.b,1),!1)}updateColor(t,e){if(this.colors[t]){let r=this.colors[t];return this.colors[t].r=e.r??r.r,this.colors[t].g=e.g??r.g,this.colors[t].b=e.b??r.b,this.colors[t].a=e.a??r.a,!0}return!1}deleteColor(t){this.colors[t]&&delete this.colors[t]}getColor(t){return this.colors[t]}color(t){let e;if(typeof t=="string"){let r=this.getColor(t);r?e=r:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),e=new tt(0,0,0,0))}else return"a"in t?new tt(t.r,t.g,t.b,t.a):new tt(t.r,t.g,t.b,1);return e}addAudio(t,e){this.audios[t]=e}getAudio(t){let e=this.audios[t];if(e instanceof Qn)return e;{let r=new Qn({src:e});return this.audios[t]=r,r}}deleteAudio(t){this.audios[t]&&delete this.audios[t]}addFont(t,e){this.fonts[t]=new Qa(e,this.onFontLoad)}getFont(t){return this.fonts[t]}deleteFont(t){this.fonts[t]&&delete this.fonts[t]}dispose(){Object.keys(this.materials).forEach(e=>this.deleteMaterial(e)),this._onImageLoad=void 0,Object.values(this.audios).forEach(e=>{e instanceof Qn&&e.dispose()}),this.audios={}}},p4=new ss(ca.emptyData());var Aw=require("three"),Nw=require("three/examples/jsm/utils/BufferGeometryUtils.js");function uh(n){let t;if(!!n.index)for(let e=0;e<n.index.array.length;e+=3)t=n.index.array[e],n.index.array[e]=n.index.array[e+2],n.index.array[e+2]=t}var as=require("three");function ph(n){let t=new Set;return n.traverse(e=>{if(vr(e))if(je(e.material))e.material.forEach(r=>{let o=r;t.has(o)||t.add(o)});else{let r=e.material;t.has(r)||t.add(r)}}),t.forEach(e=>{if(e instanceof Array)return;let r=e.onBeforeCompile.bind(e);if(Iw(e)){Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new as.Color,specularColor:new as.Color});let o=0;e.onBeforeCompile=(i,s)=>{r&&r(i,s),i.uniforms=Object.assign({},as.ShaderLib.physical.uniforms,i.uniforms),e.getLayersOfType("transmission").forEach(l=>{if(i.uniforms.transmissionSamplerMap.value){let c=l.color;c&&(c.transmissionSamplerMap.value=i.uniforms.transmissionSamplerMap.value,c.transmissionSamplerSize.value=i.uniforms.transmissionSamplerSize.value)}else o++,o<2&&(e.needsUpdate=!0)})}}else Pw(e)||(e.onBeforeCompile=(o,i)=>{r&&r(o,i),e.transparent=!1})}),n}function Iw(n){return n.getLayersOfType("transmission").length>0}function Pw(n){let t=0;return n.layers.forEach(e=>{if(e.type!=="light"&&e.type!=="fresnel"){let r=e.uniforms["f"+e.id+"_alpha"];r&&(t+=(1-t)*r.value)}}),t<1}function dh(n){return n.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),n}function fh(n){let t=[],e=(r,o=0)=>{let i=o>0?r+o:r;return t.includes(i)?e(r,o+1):i};return n.traverse(r=>{if(t.includes(r.name)){let o=r.name,i=e(r.name);if(r.name=i,r.isMesh){let s=r;s.material instanceof Array?s.material.forEach(l=>{l.name=l.name.replace(o,i)}):s.material.isAsset||(s.material.name=s.material.name.replace(o,i))}}t.push(r.name)}),n}var mh=require("three/examples/jsm/utils/BufferGeometryUtils.js");function hh(n){let t=[];return n.traverse(e=>{e instanceof No&&t.push(e)}),t.forEach(e=>{let r=e.object,i=e.children.map(l=>{l.updateMatrix();let c=l.geometry.clone().applyMatrix4(l.matrix);return l.matrix.determinant()<0&&uh(c),c}),s=(0,mh.mergeBufferGeometries)(e.parameters.hideBase?i:[r.geometry,...i]);r.geometry=s,r.remove(e),r.cloner=void 0}),n}function gh(n){return n.traverse(t=>{t.matrixAutoUpdate=!0}),n}function yh(n){Object.values(n.shared.materials).forEach(t=>{Cc(t)}),n.scene.objects.traverse((t,e)=>{"material"in e?Cc(e.material):"materials"in e&&e.materials.forEach(r=>{Cc(r)})})}function Cc(n){if(typeof n=="string")return;let t=[];n.layers.forEach((e,r)=>{e.type==="outline"&&t.push(r)}),t.reverse().forEach(e=>{n.layers.delete(e)}),t.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var xh="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",Za=class extends Ja.Loader{load(t,e,r,o=console.error){let i=new Ja.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(xh+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(xh),i.load(t,async s=>{try{if(typeof s=="string")throw new Error("The .spline file is not binary!");let l=await this.parse(s);e(l)}catch(l){o(l)}},r,o)}async parse(t){let e=await ch(t,yh);jm(e)&&await Vm();let r=new ss(e.shared);Object.values(r.getMaterials()).forEach(s=>Object.assign(s,{isAsset:!0}));let o=new is(e.scene,r);o.remove(o.personalCamera),e.scene.environment.ambientLight.enabled||o.remove(o.ambientLight);let i=e.scene.publish.playCamera;if(i){let s=o.find(i);s&&om(s)&&Object.assign(s,{makeDefault:!0})}return o=hh(o),o=ph(o),o=dh(o),o=fh(o),o=gh(o),o}};