@splinetool/loader 0.9.149 → 0.9.150
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/SplineLoader.cjs +21 -21
- package/build/SplineLoader.js +10 -10
- package/package.json +1 -1
package/build/SplineLoader.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
var Pg=Object.create;var sl=Object.defineProperty;var Og=Object.getOwnPropertyDescriptor;var Cg=Object.getOwnPropertyNames;var Mg=Object.getPrototypeOf,Lg=Object.prototype.hasOwnProperty;var al=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),Eg=(n,t)=>{for(var e in t)sl(n,e,{get:t[e],enumerable:!0})},Bg=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Cg(t))!Lg.call(n,o)&&o!==e&&sl(n,o,{get:()=>t[o],enumerable:!(r=Og(t,o))||r.enumerable});return n};var ll=(n,t,e)=>(e=n!=null?Pg(Mg(n)):{},Bg(t||!n||!n.__esModule?sl(e,"default",{value:n,enumerable:!0}):e,n));var vf=al((Gl,bf)=>{(function(n,t){typeof Gl=="object"?bf.exports=t():typeof define=="function"&&define.amd?define(t):n.Alea=t()})(Gl,function(){"use strict";return n.importState=function(e){var r=new n;return r.importState(e),r},n;function n(){return function(e){var r=0,o=0,i=0,s=1;e.length==0&&(e=[+new Date]);var l=t();r=l(" "),o=l(" "),i=l(" ");for(var c=0;c<e.length;c++)r-=l(e[c]),r<0&&(r+=1),o-=l(e[c]),o<0&&(o+=1),i-=l(e[c]),i<0&&(i+=1);l=null;var p=function(){var a=2091639*r+s*23283064365386963e-26;return r=o,o=i,i=a-(s=a|0)};return p.next=p,p.uint32=function(){return p()*4294967296},p.fract53=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.version="Alea 0.9",p.args=e,p.exportState=function(){return[r,o,i,s]},p.importState=function(a){r=+a[0]||0,o=+a[1]||0,i=+a[2]||0,s=+a[3]||0},p}(Array.prototype.slice.call(arguments))}function t(){var e=4022871197,r=function(o){o=o.toString();for(var i=0;i<o.length;i++){e+=o.charCodeAt(i);var s=.02519603282416938*e;e=s>>>0,s-=e,s*=e,e=s>>>0,s-=e,e+=s*4294967296}return(e>>>0)*23283064365386963e-26};return r.version="Mash 0.9",r}})});var Hh=al((tl,kh)=>{(function(n,t){typeof tl=="object"&&typeof kh<"u"?t(tl):typeof define=="function"&&define.amd?define(["exports"],t):t((n=typeof globalThis<"u"?globalThis:n||self).SVDJS={})})(tl,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,b,x=t[0].length,S=t.length;if(S<x)throw new TypeError("Invalid matrix: m < n");for(var w=[],v=[],N=[],_=e==="f"?S:x,y=h=d=0;y<S;y++)v[y]=new Array(_).fill(0);for(y=0;y<x;y++)N[y]=new Array(x).fill(0);var I,A=new Array(x).fill(0);for(y=0;y<S;y++)for(s=0;s<x;s++)v[y][s]=t[y][s];for(y=0;y<x;y++){for(w[y]=d,m=0,c=y+1,s=y;s<S;s++)m+=Math.pow(v[s][y],2);if(m<i)d=0;else for(f=(u=v[y][y])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,v[y][y]=u-d,s=c;s<x;s++){for(m=0,l=y;l<S;l++)m+=v[l][y]*v[l][s];for(u=m/f,l=y;l<S;l++)v[l][s]=v[l][s]+u*v[l][y]}for(A[y]=d,m=0,s=c;s<x;s++)m+=Math.pow(v[y][s],2);if(m<i)d=0;else{for(f=(u=v[y][y+1])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,v[y][y+1]=u-d,s=c;s<x;s++)w[s]=v[y][s]/f;for(s=c;s<S;s++){for(m=0,l=c;l<x;l++)m+=v[s][l]*v[y][l];for(l=c;l<x;l++)v[s][l]=v[s][l]+m*w[l]}}h<(g=Math.abs(A[y])+Math.abs(w[y]))&&(h=g)}if(r)for(y=x-1;0<=y;y--){if(d!==0){for(f=v[y][y+1]*d,s=c;s<x;s++)N[s][y]=v[y][s]/f;for(s=c;s<x;s++){for(m=0,l=c;l<x;l++)m+=v[y][l]*N[l][s];for(l=c;l<x;l++)N[l][s]=N[l][s]+m*N[l][y]}}for(s=c;s<x;s++)N[y][s]=0,N[s][y]=0;N[y][y]=1,d=w[y],c=y}if(e){if(e==="f")for(y=x;y<S;y++){for(s=x;s<S;s++)v[y][s]=0;v[y][y]=1}for(y=x-1;0<=y;y--){for(c=y+1,d=A[y],s=c;s<_;s++)v[y][s]=0;if(d!==0){for(f=v[y][y]*d,s=c;s<_;s++){for(m=0,l=c;l<S;l++)m+=v[l][y]*v[l][s];for(u=m/f,l=y;l<S;l++)v[l][s]=v[l][s]+u*v[l][y]}for(s=y;s<S;s++)v[s][y]=v[s][y]/d}else for(s=y;s<S;s++)v[s][y]=0;v[y][y]=v[y][y]+1}}for(o*=h,l=x-1;0<=l;l--)for(var P=0;P<50;P++){for(I=!1,c=l;0<=c;c--){if(Math.abs(w[c])<=o){I=!0;break}if(Math.abs(A[c-1])<=o)break}if(!I){for(a=0,p=c-(m=1),y=c;y<l+1&&(u=m*w[y],w[y]=a*w[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<S;s++)g=v[s][p],b=v[s][y],v[s][p]=g*a+b*m,v[s][y]=-g*m+b*a}if(b=A[l],c===l){if(b<0&&(A[l]=-b,r))for(s=0;s<x;s++)N[s][l]=-N[s][l];break}for(h=A[c],u=(((g=A[l-1])-b)*(g+b)+((d=w[l-1])-(f=w[l]))*(d+f))/(2*f*g),d=Math.sqrt(u*u+1),u=((h-b)*(h+b)+f*(g/(u<0?u-d:u+d)-f))/h,y=c+(m=a=1);y<l+1;y++){if(d=w[y],g=A[y],f=m*d,d*=a,b=Math.sqrt(u*u+f*f),u=h*(a=u/(w[y-1]=b))+d*(m=f/b),d=-h*m+d*a,f=g*m,g*=a,r)for(s=0;s<x;s++)h=N[s][y-1],b=N[s][y],N[s][y-1]=h*a+b*m,N[s][y]=-h*m+b*a;if(b=Math.sqrt(u*u+f*f),u=(a=u/(A[y-1]=b))*d+(m=f/b)*g,h=-m*d+a*g,e)for(s=0;s<S;s++)g=v[s][y-1],b=v[s][y],v[s][y-1]=g*a+b*m,v[s][y]=-g*m+b*a}w[c]=0,w[l]=u,A[l]=h}for(y=0;y<x;y++)A[y]<o&&(A[y]=0);return{u:v,q:A,v:N}},n.VERSION="1.1.1",Object.defineProperty(n,"__esModule",{value:!0})})});var sg=al(rl=>{(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,b=f.match(/Version\/(.*?) /),x=g&&b&&parseInt(b[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 b=a._howls[m]._soundById(h[g]);b&&b._node&&!b._node._unlocked&&(b._node._unlocked=!0,b._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 S=0;S<a._howls.length;S++)a._howls[S]._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 b=g._id;return d._queue.push({event:"play",action:function(){d.play(b)}}),b}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),S=Math.max(0,(d._sprite[a][0]+d._sprite[a][1])/1e3-x),w=S*1e3/Math.abs(g._rate),v=d._sprite[a][0]/1e3,N=(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=v,g._stop=N,g._loop=!!(g._loop||d._sprite[a][2])};if(x>=N){d._ended(g);return}var y=g._node;if(d._webAudio){var I=function(){d._playLock=!1,_(),d._refreshBuffer(g);var C=g._muted||d._muted?0:g._volume;y.gain.setValueAtTime(C,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,S):g._loop?y.bufferSource.start(0,x,86400):y.bufferSource.start(0,x,S),w!==1/0&&(d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),w)),u||setTimeout(function(){d._emit("play",g._id),d._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?I():(d._playLock=!0,d.once("resume",I),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 C=y.play();if(C&&typeof Promise<"u"&&(C instanceof Promise||typeof C.then=="function")?(d._playLock=!0,_(),C.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),w):(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(L){d._emit("playerror",g._id,L)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=d._src,y.load());var P=window&&window.ejecta||!y.readyState&&t._navigator.isCocoonJS;if(y.readyState>=3||P)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 b=0;b<f.length;b++)g=a._soundById(f[b]),g&&(g._volume=d,u[2]||a._stopFade(f[b]),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 b=m._soundById(h[g]);if(b){if(f||m._stopFade(h[g]),m._webAudio&&!b._muted){var x=t.ctx.currentTime,S=x+d/1e3;b._volume=a,b._node.gain.setValueAtTime(a,x),b._node.gain.linearRampToValueAtTime(u,S)}m._startFadeInterval(b,a,u,d,h[g],typeof f>"u")}}return m},_startFadeInterval:function(a,u,d,f,m,h){var g=this,b=u,x=d-u,S=Math.abs(x/.01),w=Math.max(4,S>0?f/S:f),v=Date.now();a._fadeTo=d,a._interval=setInterval(function(){var N=(Date.now()-v)/f;v=Date.now(),b+=x*N,b=Math.round(b*100)/100,x<0?b=Math.max(d,b):b=Math.min(d,b),g._webAudio?a._volume=b:g.volume(b,a._id,!0),h&&(g._volume=b),(d<u&&b<=d||d>u&&b>=d)&&(clearInterval(a._interval),a._interval=null,a._fadeTo=null,g.volume(d,a._id),g._emit("fade",a._id))},w)},_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 b=0;b<f.length;b++)if(g=a._soundById(f[b]),g){a.playing(f[b])&&(g._rateSeek=a.seek(f[b]),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[b]),S=(a._sprite[g._sprite][0]+a._sprite[g._sprite][1])/1e3-x,w=S*1e3/Math.abs(g._rate);(a._endTimers[f[b]]||!g._paused)&&(a._clearTimer(f[b]),a._endTimers[f[b]]=setTimeout(a._ended.bind(a,g),w)),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 b=a.playing(f);b&&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(){b&&a.play(f,!0),a._emit("seek",f)};if(b&&!a._webAudio){var S=function(){a._playLock?setTimeout(S,0):x()};setTimeout(S,0)}else x()}else if(a._webAudio){var w=a.playing(f)?t.ctx.currentTime-g._playStart:0,v=g._rateSeek?g._rateSeek-g._seek:0;return g._seek+(v+w*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 b=Object.keys(f);for(h=0;h<b.length;h++)b[h].indexOf("_on")===0&&Array.isArray(f[b[h]])&&(f[b[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 rl<"u"&&(rl.Howler=t,rl.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)}})()});import{FileLoader as wA,Loader as _A}from"three";var Me=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,Me.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,Me.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,Me.prototype),delete i[r],{data:i,actual:t,reverse:{type:1,id:r,data:o}}}}return null}};function Qn(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"&&Qn(r)}return Object.freeze(n)}function cu(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 Bo=class extends Error{};var he=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,he.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Qn(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,he.prototype);let r=e;return uu()||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)}return null}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 er(0,r,r);{let i=o[0].fi;return er(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 er(l,l+r,r)}else return er(i.fi,s.fi,r)}}};function er(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 Jn(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 uu(){return typeof process<"u"}function cl(n){return typeof n!="object"||Jn(n)||Dg(n)}function us(n){return cl(n)||n instanceof he||n instanceof Ee||n instanceof Me}function Dg(n){return Array.isArray(n)&&n.every(t=>typeof t!="object")}function pu(n,t){for(let e of n)t(e.id,e.data)!==!0&&pu(e.children,t)}function du(n,t){if(t(n.id,n.data)!==!0)for(let e of n.children)du(e,t)}var Ee=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Ee.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Qn(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)]}nonExistOrDescendantOf(e,r){if(!this.has(e))return!0;for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!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&&du(o,r)}}traverse(e){pu(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,Ee.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)}return null}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 Bo("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)=>cu(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 er(0,o,o);{let s=i[0].fi;return er(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 er(c,c+o,o)}else return er(s.fi,l.fi,o)}}};var Do;(t=>{function n(e,r){if(r.type!==0)return null;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})(Do||(Do={}));var Go=class{unusedFun(t){}},wt=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 Ee||r instanceof he)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,wt.prototype),l={...t,props:i};return{data:s,actual:t,reverse:l}}},fu;(r=>{function n(o,i){return Ro(o,i)??o}r.apply=n;function t(o,i){return hu(o,i)}r.merge=t;function e(o,i){let s=0,l=i.path,c=o;for(;s<l.length&&c!==void 0;){if(c=Ir.zoomOnce(c,l[s]),c instanceof Ee||c instanceof he)return;s+=1}if(c===void 0)return i;if(us(c))return;if(i.type===0)if(c&&typeof c=="object"){let p={...i.props};for(let a of Object.keys(c))delete p[a];return{...i,props:p}}else return;else if(i.type===1||i.type===4||i.type===7)if(typeof c=="object"){let p={...i.data,...c};return{...i,data:p}}else return;else return i}r.filterOp=e})(fu||(fu={}));function mu(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=Ro(o.data,t[i]);e=e||s!==void 0,s===void 0&&(s=o.data);let l=mu(o.children,t);return l!==void 0?e=!0:l=o.children,{...o,id:i,data:s,children:l}});if(e)return r}function Gg(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=Ro(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 Ro(n,t){if(us(t)||t instanceof Go)return t;if(n instanceof Ee){let e=mu(n,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else{if(n instanceof he)return Gg(n,t);if(Array.isArray(n)){let e=!1,r=n.map((o,i)=>{let s=Ro(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=Ro(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}}}function hu(n,t){if(n===void 0)return t;if(t===void 0)return n;if(us(t)||cl(n))return t;if(n instanceof Ee||n instanceof he)return Ro(n,t);if(typeof n=="object"&&typeof t=="object"){let e=new Set;if(n)for(let o of Object.keys(n))e.add(o);if(t)for(let o of Object.keys(t))e.add(o);let r={};for(let o of e){let i=hu(n===void 0?void 0:n[o],t===void 0?void 0:t[o]);r[o]=i}return r}else return n}function gu(n,t){let e={cur:[],result:[],len:0};return n=ei(n,t,e)??n,[n,e.result]}function ps(n,t){return n===null?null:(n.cur[n.len]=t,n.len+=1,n)}function ds(n){n&&(n.len-=1)}function Rg(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function yu(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=ei(i.data,t,ps(e,s));ds(e),r=r||c!==void 0,c===void 0&&(c=i.data);let p=yu(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 Vg(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=ei(i.data,t,ps(e,s));return ds(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 ei(n,t,e){if(n instanceof Ee){let r=yu(n,t,e);return r!==void 0&&Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}else{if(n instanceof he)return Vg(n,t,e);if(Array.isArray(n)){let r=!1,o=n.map((i,s)=>{let l=ei(i,t,ps(e,s));return ds(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=ei(s,t,ps(e,i));ds(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");Rg(e)}return r}else return}}var xu;(t=>{function n(e,r){let o=Ir.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})(xu||(xu={}));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 wt&&p.type===0&&(d=c.runOp({...p,path:a.slice(u.length)}),d===null&&(d=void 0)),u.length===a.length&&(c instanceof Ee||c instanceof he||c instanceof Me?d=c.runOp(p):d=Do.runOp(c,p)),d!==void 0)if(d!==null){let h=d.data;for(let g=u.length-1;g>=0;g--){let b=a[g],x=u[g];if(x instanceof Ee){if(typeof b=="number")throw new Error("illegal arg");h=x.modifyById(b,h)}else if(x instanceof he){if(typeof b=="number")throw new Error("illegal arg");h=x.modifyById(b,h)}else if(x instanceof Me){if(typeof b=="number")throw new Error("illegal arg");h=x.modifyById(b,h)}else if(x instanceof wt){let S={...x,[b]:h};h=Object.setPrototypeOf(S,wt.prototype)}else if(typeof x=="object")if(Array.isArray(x)){if(typeof b=="string"&&(b=parseInt(b),isNaN(b)))throw new Error("Invalid path");let S=h;h=[...x],h[b]=S}else h={...x,[b]: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 Ee){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else if(c instanceof he){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 bu;(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=Ir.zoom(u,[...m.path,m.id]),g=kr.apply(u,{...m,type:2});if(g!==null){u=g.data;let[b,x]=gu(u,{[m.id]:h});u=b;for(let S of x){let w=S[S.length-1];S.splice(S.length-1,1),d.push({type:0,path:S,props:{[w]:h}}),f.push({type:0,path:S,props:{[w]: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 Bo)return null;throw h}return{data:u,actual:d,reverse:f.reverse()}}c.apply=l})(bu||(bu={}));var vu=Symbol(),ti=Symbol(),fo=class{reportOp(t,e,r=[]){let o=this;if(e===null)return;o._current=e.data;let i=r;for(;!(o instanceof ms);){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[ti];r&&r(),delete this._children[t]}}}},pl=class extends fo{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,Do.runOp(this._current,t),t.path)}},dl=class extends fo{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,Me.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Su={get(n,t){if(t===ti)return()=>{n._parent=null};if(t===vu)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=hs(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]}}},Fg={...Su,set(n,t,e){let r={type:0,props:{[t]:dt(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}},zg={...Su,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}},Vo=class extends fo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[ti]=()=>{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=hs(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)}},fs=class extends fo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r,this[ti]=()=>{this._parent=null}}feedOp(t){let{path:e,...r}=t;this.reportOp(r,kr.apply(this._current,t),e)}},Fo=class extends fo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[ti]=()=>{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=hs(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 ul(n,t,e){if(n.length>0){let r=n[n.length-1];if(r.type===0&&t.type===0&&Ir.equal(r.path,e)){Object.assign(r.props,t.props);return}}n.push({...t,path:e})}var ms=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){ul(this.ts,e,t),ul(this.actual,r,t),ul(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function hs(n,t,e){return e instanceof Ee?new Vo(n,t,e):e instanceof he?new Fo(n,t,e):e instanceof wt?new fs(n,t,e):e instanceof Me?new Proxy(new dl(n,t,e),zg):e!==null&&typeof e=="object"?Jn(e)?e:new Proxy(new pl(n,t,e),Fg):e}function fl(n){let t=new ms(n);return[hs(t,"",n),t]}function ml(n,t){let[e,r]=fl(n);return t(e),r.result()}function dt(n){return n instanceof Vo||n instanceof Fo||n instanceof fs?n._current:n!==null&&typeof n=="object"?n[vu]:n}var Ir;(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 Ee||i instanceof Vo)&&typeof s=="string")return i.data(s);if((i instanceof he||i instanceof Fo)&&typeof s=="string")return i.data(s);if(typeof s=="number"&&Array.isArray(i))return i[s];if(typeof s=="string"&&typeof i=="object"&&i!==null)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})(Ir||(Ir={}));var gs=class{},ri=class extends gs{constructor(e){super();this.id=e}},oi=class extends gs{constructor(e){super();this.data=e}};var gl;try{gl=new TextDecoder}catch{}var ne,Wr,O=0;var Ou=[],yl=Ou,xl=0,ft={},Se,Hr,Ot=0,tr=0,_t,Pr,at=[],Ne,wu={useRecords:!1,mapsAsObjects:!0},ni=class{},vl=new ni;vl.name="MessagePack 0xC1";var zo=!1,rr=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(ne)return Bu(()=>(xs(),this?this.unpack(t,e):rr.prototype.unpack.call(wu,t,e)));Wr=e>-1?e:t.length,O=0,xl=0,tr=0,Hr=null,yl=Ou,_t=null,ne=t;try{Ne=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw ne=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 rr){if(ft=this,this.structures)return Se=this.structures,ys();(!Se||Se.length>0)&&(Se=[])}else ft=wu,(!Se||Se.length>0)&&(Se=[]);return ys()}unpackMultiple(t,e){let r,o=0;try{zo=!0;let i=t.length,s=this?this.unpack(t,i):Ss.unpack(t,i);if(e){for(e(s);O<i;)if(o=O,e(ys())===!1)return}else{for(r=[s];O<i;)o=O,r.push(ys());return r}}catch(i){throw i.lastPosition=o,i.values=r,i}finally{zo=!1,xs()}}_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 ys(){try{if(!ft.trusted&&!zo){let t=Se.sharedLength||0;t<Se.length&&(Se.length=t)}let n=De();if(O==Wr)Se.restoreStructures&&_u(),Se=null,ne=null,Pr&&(Pr=null);else if(O>Wr){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!zo)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw Se.restoreStructures&&_u(),xs(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function _u(){for(let n in Se.restoreStructures)Se[n]=Se.restoreStructures[n];Se.restoreStructures=null}function De(){let n=ne[O++];if(n<160)if(n<128){if(n<64)return n;{let t=Se[n&63]||ft.getStructures&&Cu()[n&63];return t?(t.read||(t.read=Sl(t,n&63)),t.read()):n}}else if(n<144)if(n-=128,ft.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[Lu()]=De();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(De(),De());return t}else{n-=144;let t=new Array(n);for(let e=0;e<n;e++)t[e]=De();return t}else if(n<192){let t=n-160;if(tr>=O)return Hr.slice(O-Ot,(O+=t)-Ot);if(tr==0&&Wr<140){let e=t<16?wl(t):Mu(t);if(e!=null)return e}return bl(t)}else{let t;switch(n){case 192:return null;case 193:return _t?(t=De(),t>0?_t[1].slice(_t.position1,_t.position1+=t):_t[0].slice(_t.position0,_t.position0-=t)):vl;case 194:return!1;case 195:return!0;case 196:return hl(ne[O++]);case 197:return t=Ne.getUint16(O),O+=2,hl(t);case 198:return t=Ne.getUint32(O),O+=4,hl(t);case 199:return mo(ne[O++]);case 200:return t=Ne.getUint16(O),O+=2,mo(t);case 201:return t=Ne.getUint32(O),O+=4,mo(t);case 202:if(t=Ne.getFloat32(O),ft.useFloat32>2){let e=vs[(ne[O]&127)<<1|ne[O+1]>>7];return O+=4,(e*t+(t>0?.5:-.5)>>0)/e}return O+=4,t;case 203:return t=Ne.getFloat64(O),O+=8,t;case 204:return ne[O++];case 205:return t=Ne.getUint16(O),O+=2,t;case 206:return t=Ne.getUint32(O),O+=4,t;case 207:return ft.int64AsNumber?(t=Ne.getUint32(O)*4294967296,t+=Ne.getUint32(O+4)):t=Ne.getBigUint64(O),O+=8,t;case 208:return Ne.getInt8(O++);case 209:return t=Ne.getInt16(O),O+=2,t;case 210:return t=Ne.getInt32(O),O+=4,t;case 211:return ft.int64AsNumber?(t=Ne.getInt32(O)*4294967296,t+=Ne.getUint32(O+4)):t=Ne.getBigInt64(O),O+=8,t;case 212:if(t=ne[O++],t==114)return Pu(ne[O++]&63);{let e=at[t];if(e)return e.read?(O++,e.read(De())):e.noBuffer?(O++,e()):e(ne.subarray(O,++O));throw new Error("Unknown extension "+t)}case 213:return t=ne[O],t==114?(O++,Pu(ne[O++]&63,ne[O++])):mo(2);case 214:return mo(4);case 215:return mo(8);case 216:return mo(16);case 217:return t=ne[O++],tr>=O?Hr.slice(O-Ot,(O+=t)-Ot):Ug(t);case 218:return t=Ne.getUint16(O),O+=2,tr>=O?Hr.slice(O-Ot,(O+=t)-Ot):kg(t);case 219:return t=Ne.getUint32(O),O+=4,tr>=O?Hr.slice(O-Ot,(O+=t)-Ot):Hg(t);case 220:return t=Ne.getUint16(O),O+=2,Au(t);case 221:return t=Ne.getUint32(O),O+=4,Au(t);case 222:return t=Ne.getUint16(O),O+=2,Nu(t);case 223:return t=Ne.getUint32(O),O+=4,Nu(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 jg=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Sl(n,t){function e(){if(e.count++>2){let o=n.read=new Function("r","return function(){return {"+n.map(i=>jg.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(De);return n.highByte===0&&(n.read=Tu(t,n.read)),o()}let r={};for(let o=0,i=n.length;o<i;o++){let s=n[o];r[s]=De()}return r}return e.count=0,n.highByte===0?Tu(t,e):e}var Tu=(n,t)=>function(){let e=ne[O++];if(e===0)return t();let r=n<32?-(n+(e<<5)):n+(e<<5),o=Se[r]||Cu()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=Sl(o,n)),o.read()};function Cu(){let n=Bu(()=>(ne=null,ft.getStructures()));return Se=ft._mergeStructures(n,Se)}var bl=bs,Ug=bs,kg=bs,Hg=bs;function bs(n){let t;if(n<16&&(t=wl(n)))return t;if(n>64&&gl)return gl.decode(ne.subarray(O,O+=n));let e=O+n,r=[];for(t="";O<e;){let o=ne[O++];if((o&128)===0)r.push(o);else if((o&224)===192){let i=ne[O++]&63;r.push((o&31)<<6|i)}else if((o&240)===224){let i=ne[O++]&63,s=ne[O++]&63;r.push((o&31)<<12|i<<6|s)}else if((o&248)===240){let i=ne[O++]&63,s=ne[O++]&63,l=ne[O++]&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+=Ye.apply(String,r),r.length=0)}return r.length>0&&(t+=Ye.apply(String,r)),t}function Au(n){let t=new Array(n);for(let e=0;e<n;e++)t[e]=De();return t}function Nu(n){if(ft.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[Lu()]=De();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(De(),De());return t}}var Ye=String.fromCharCode;function Mu(n){let t=O,e=new Array(n);for(let r=0;r<n;r++){let o=ne[O++];if((o&128)>0){O=t;return}e[r]=o}return Ye.apply(String,e)}function wl(n){if(n<4)if(n<2){if(n===0)return"";{let t=ne[O++];if((t&128)>1){O-=1;return}return Ye(t)}}else{let t=ne[O++],e=ne[O++];if((t&128)>0||(e&128)>0){O-=2;return}if(n<3)return Ye(t,e);let r=ne[O++];if((r&128)>0){O-=3;return}return Ye(t,e,r)}else{let t=ne[O++],e=ne[O++],r=ne[O++],o=ne[O++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){O-=4;return}if(n<6){if(n===4)return Ye(t,e,r,o);{let i=ne[O++];if((i&128)>0){O-=5;return}return Ye(t,e,r,o,i)}}else if(n<8){let i=ne[O++],s=ne[O++];if((i&128)>0||(s&128)>0){O-=6;return}if(n<7)return Ye(t,e,r,o,i,s);let l=ne[O++];if((l&128)>0){O-=7;return}return Ye(t,e,r,o,i,s,l)}else{let i=ne[O++],s=ne[O++],l=ne[O++],c=ne[O++];if((i&128)>0||(s&128)>0||(l&128)>0||(c&128)>0){O-=8;return}if(n<10){if(n===8)return Ye(t,e,r,o,i,s,l,c);{let p=ne[O++];if((p&128)>0){O-=9;return}return Ye(t,e,r,o,i,s,l,c,p)}}else if(n<12){let p=ne[O++],a=ne[O++];if((p&128)>0||(a&128)>0){O-=10;return}if(n<11)return Ye(t,e,r,o,i,s,l,c,p,a);let u=ne[O++];if((u&128)>0){O-=11;return}return Ye(t,e,r,o,i,s,l,c,p,a,u)}else{let p=ne[O++],a=ne[O++],u=ne[O++],d=ne[O++];if((p&128)>0||(a&128)>0||(u&128)>0||(d&128)>0){O-=12;return}if(n<14){if(n===12)return Ye(t,e,r,o,i,s,l,c,p,a,u,d);{let f=ne[O++];if((f&128)>0){O-=13;return}return Ye(t,e,r,o,i,s,l,c,p,a,u,d,f)}}else{let f=ne[O++],m=ne[O++];if((f&128)>0||(m&128)>0){O-=14;return}if(n<15)return Ye(t,e,r,o,i,s,l,c,p,a,u,d,f,m);let h=ne[O++];if((h&128)>0){O-=15;return}return Ye(t,e,r,o,i,s,l,c,p,a,u,d,f,m,h)}}}}}function hl(n){return ft.copyBuffers?Uint8Array.prototype.slice.call(ne,O,O+=n):ne.subarray(O,O+=n)}function mo(n){let t=ne[O++];if(at[t])return at[t](ne.subarray(O,O+=n));throw new Error("Unknown extension type "+t)}var Iu=new Array(4096);function Lu(){let n=ne[O++];if(n>=160&&n<192){if(n=n-160,tr>=O)return Hr.slice(O-Ot,(O+=n)-Ot);if(!(tr==0&&Wr<180))return bl(n)}else return O--,De();let t=(n<<5^(n>1?Ne.getUint16(O):n>0?ne[O]:0))&4095,e=Iu[t],r=O,o=O+n-3,i,s=0;if(e&&e.bytes==n){for(;r<o;){if(i=Ne.getUint32(r),i!=e[s++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(i=ne[r++],i!=e[s++]){r=1879048192;break}if(r===o)return O=r,e.string;o-=3,r=O}for(e=[],Iu[t]=e,e.bytes=n;r<o;)i=Ne.getUint32(r),e.push(i),r+=4;for(o+=3;r<o;)i=ne[r++],e.push(i);let l=n<16?wl(n):Mu(n);return l!=null?e.string=l:e.string=bl(n)}var Pu=(n,t)=>{var e=De();let r=n;t!==void 0&&(n=n<32?-((t<<5)+n):(t<<5)+n,e.highByte=t);let o=Se[n];return o&&o.isShared&&((Se.restoreStructures||(Se.restoreStructures=[]))[n]=o),Se[n]=e,e.read=Sl(e,r),e.read()},Eu=typeof self=="object"?self:global;at[0]=()=>{};at[0].noBuffer=!0;at[101]=()=>{let n=De();return(Eu[n[0]]||Error)(n[1])};at[105]=n=>{let t=Ne.getUint32(O-4);Pr||(Pr=new Map);let e=ne[O],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};Pr.set(t,o);let i=De();return o.used?Object.assign(r,i):(o.target=i,i)};at[112]=n=>{let t=Ne.getUint32(O-4),e=Pr.get(t);return e.used=!0,e.target};at[115]=()=>new Set(De());var _l=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");at[116]=n=>{let t=n[0],e=_l[t];if(!e)throw new Error("Could not find typed array for code "+t);return new Eu[e](Uint8Array.prototype.slice.call(n,1).buffer)};at[120]=()=>{let n=De();return new RegExp(n[0],n[1])};at[98]=n=>{let t=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],e=O;O+=t-4,_t=[De(),De()],_t.position0=0,_t.position1=0;let r=O;O=e;try{return De()}finally{O=r}};at[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 Bu(n){let t=Wr,e=O,r=xl,o=Ot,i=tr,s=Hr,l=yl,c=Pr,p=_t,a=new Uint8Array(ne.slice(0,Wr)),u=Se,d=Se.slice(0,Se.length),f=ft,m=zo,h=n();return Wr=t,O=e,xl=r,Ot=o,tr=i,Hr=s,yl=l,Pr=c,_t=p,ne=a,zo=m,Se=u,Se.splice(0,Se.length,...d),ft=f,Ne=new DataView(ne.buffer,ne.byteOffset,ne.byteLength),h}function xs(){ne=null,Pr=null,Se=null}function Du(n){n.unpack?at[n.type]=n.unpack:at[n.type]=n}var vs=new Array(147);for(let n=0;n<256;n++)vs[n]=+("1e"+Math.floor(45.15-n*.30103));var Ss=new rr({useRecords:!1}),Wg=Ss.unpack,qg=Ss.unpackMultiple,$g=Ss.unpack,ws={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},Yg=new Float32Array(1),ON=new Uint8Array(Yg.buffer,0,4);var _s;try{_s=new TextEncoder}catch{}var Ts,Al,As=typeof Buffer<"u",Tl=As?Buffer.allocUnsafeSlow:Uint8Array,Fu=As?Buffer:Uint8Array,Gu=As?4294967296:2144337920,R,Ve,M=0,or,nr=null,Xg=/[\u0080-\uFFFF]/,ii=Symbol("record-id"),ho=class extends rr{constructor(t){super(t),this.offset=0;let e,r,o,i,s,l,c=0,p=Fu.prototype.utf8Write?function(y,I,A){return R.utf8Write(y,I,A)}:_s&&_s.encodeInto?function(y,I){return _s.encodeInto(y,R.subarray(I)).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,b=f+m+64;if(b>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],S=0,w=0;this.pack=this.encode=function(y,I){if(R||(R=new Tl(8192),Ve=new DataView(R.buffer,0,8192),M=0),or=R.length-10,or-M<2048?(R=new Tl(R.length),Ve=new DataView(R.buffer,0,R.length),or=R.length-10,M=0):M=M+7&2147483640,r=M,l=a.structuredClone?new Map:null,a.bundleStrings?(nr=["",""],R[M++]=214,R[M++]=98,nr.position=M-r,M+=4):nr=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 P=0;P<A;P++){let T=o[P];if(!T)continue;let C,L=o.transitions;for(let j=0,Y=T.length;j<Y;j++){let te=T[j];C=L[te],C||(C=L[te]=Object.create(null)),L=C}L[ii]=P+64}c=A}u||(o.nextId=A+64)}i&&(i=!1),s=o||[];try{if(v(y),nr){Ve.setUint32(nr.position+r,M-nr.position-r);let A=nr;nr=null,v(A[0]),v(A[1])}if(a.offset=M,l&&l.idsToInsert){M+=l.idsToInsert.length*6,M>or&&_(M),a.offset=M;let A=Zg(R.subarray(r,M),l.idsToInsert);return l=null,A}return I&ju?(R.start=r,R.end=M,R):R.subarray(r,M)}finally{if(o){if(w<10&&w++,S>1e4)o.transitions=null,w=0,S=0,x.length>0&&(x=[]);else if(x.length>0&&!u){for(let A=0,P=x.length;A<P;A++)x[A][ii]=0;x=[]}if(i&&a.saveStructures){let A=o.sharedLength||f;o.length>A&&(o=o.slice(0,A));let P=R.subarray(r,M);return a.saveStructures(o,c)===!1?(a._mergeStructures(a.getStructures()),a.pack(y)):(c=A,P)}}I&ny&&(M=r)}};let v=y=>{M>or&&(R=_(M));var I=typeof y,A;if(I==="string"){let P=y.length;if(nr&&P>=8&&P<4096){let L=Xg.test(y);nr[L?0:1]+=y,R[M++]=193,v(L?-P:P);return}let T;P<32?T=1:P<256?T=2:P<65536?T=3:T=5;let C=P*3;if(M+C>or&&(R=_(M+C)),P<64||!p){let L,j,Y,te=M+T;for(L=0;L<P;L++)j=y.charCodeAt(L),j<128?R[te++]=j:j<2048?(R[te++]=j>>6|192,R[te++]=j&63|128):(j&64512)===55296&&((Y=y.charCodeAt(L+1))&64512)===56320?(j=65536+((j&1023)<<10)+(Y&1023),L++,R[te++]=j>>18|240,R[te++]=j>>12&63|128,R[te++]=j>>6&63|128,R[te++]=j&63|128):(R[te++]=j>>12|224,R[te++]=j>>6&63|128,R[te++]=j&63|128);A=te-M-T}else A=p(y,M+T,C);A<32?R[M++]=160|A:A<256?(T<2&&R.copyWithin(M+2,M+1,M+1+A),R[M++]=217,R[M++]=A):A<65536?(T<3&&R.copyWithin(M+3,M+2,M+2+A),R[M++]=218,R[M++]=A>>8,R[M++]=A&255):(T<5&&R.copyWithin(M+5,M+3,M+3+A),R[M++]=219,Ve.setUint32(M,A),M+=4),M+=A}else if(I==="number")if(y>>>0===y)y<64?R[M++]=y:y<256?(R[M++]=204,R[M++]=y):y<65536?(R[M++]=205,R[M++]=y>>8,R[M++]=y&255):(R[M++]=206,Ve.setUint32(M,y),M+=4);else if(y>>0===y)y>=-32?R[M++]=256+y:y>=-128?(R[M++]=208,R[M++]=y+256):y>=-32768?(R[M++]=209,Ve.setInt16(M,y),M+=2):(R[M++]=210,Ve.setInt32(M,y),M+=4);else{let P;if((P=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){R[M++]=202,Ve.setFloat32(M,y);let T;if(P<4||(T=y*vs[(R[M]&127)<<1|R[M+1]>>7])>>0===T){M+=4;return}else M--}R[M++]=203,Ve.setFloat64(M,y),M+=8}else if(I==="object")if(!y)R[M++]=192;else{if(l){let T=l.get(y);if(T){if(!T.id){let C=l.idsToInsert||(l.idsToInsert=[]);T.id=C.push(T)}R[M++]=214,R[M++]=112,Ve.setUint32(M,T.id),M+=4;return}else l.set(y,{offset:M-r})}let P=y.constructor;if(P===Object)N(y,!0);else if(P===Array){A=y.length,A<16?R[M++]=144|A:A<65536?(R[M++]=220,R[M++]=A>>8,R[M++]=A&255):(R[M++]=221,Ve.setUint32(M,A),M+=4);for(let T=0;T<A;T++)v(y[T])}else if(P===Map){A=y.size,A<16?R[M++]=128|A:A<65536?(R[M++]=222,R[M++]=A>>8,R[M++]=A&255):(R[M++]=223,Ve.setUint32(M,A),M+=4);for(let[T,C]of y)v(T),v(C)}else{for(let T=0,C=Ts.length;T<C;T++){let L=Al[T];if(y instanceof L){let j=Ts[T];if(j.write){j.type&&(R[M++]=212,R[M++]=j.type,R[M++]=0),v(j.write.call(this,y));return}let Y=R,te=Ve,ie=M;R=null;let U;try{U=j.pack.call(this,y,W=>(R=Y,Y=null,M+=W,M>or&&_(M),{target:R,targetView:Ve,position:M-W}),v)}finally{Y&&(R=Y,Ve=te,M=ie,or=R.length-10)}U&&(U.length+M>or&&_(U.length+M),M=Kg(U,R,M,j.type));return}}N(y,!y.hasOwnProperty)}}else if(I==="boolean")R[M++]=y?195:194;else if(I==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))R[M++]=211,Ve.setBigInt64(M,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)R[M++]=207,Ve.setBigUint64(M,y);else if(this.largeBigIntToFloat)R[M++]=203,Ve.setFloat64(M,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");M+=8}else if(I==="undefined")this.encodeUndefinedAsNil?R[M++]=192:(R[M++]=212,R[M++]=0,R[M++]=0);else if(I==="function")v(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+I)},N=this.useRecords===!1?this.variableMapSize?y=>{let I=Object.keys(y),A=I.length;A<16?R[M++]=128|A:A<65536?(R[M++]=222,R[M++]=A>>8,R[M++]=A&255):(R[M++]=223,Ve.setUint32(M,A),M+=4);let P;for(let T=0;T<A;T++)v(P=I[T]),v(y[P])}:(y,I)=>{R[M++]=222;let A=M-r;M+=2;let P=0;for(let T in y)(I||y.hasOwnProperty(T))&&(v(T),v(y[T]),P++);R[A+++r]=P>>8,R[A+r]=P&255}:y=>{let I=Object.keys(y),A,P=s.transitions||(s.transitions=Object.create(null)),T=0;for(let L=0,j=I.length;L<j;L++){let Y=I[L];A=P[Y],A||(A=P[Y]=Object.create(null),T++),P=A}let C=P[ii];if(C)C>=96&&h?(R[M++]=((C-=96)&31)+96,R[M++]=C>>5):R[M++]=C;else{C=s.nextId,C||(C=64),C<g&&this.shouldShareStructure&&!this.shouldShareStructure(I)?(C=s.nextOwnId,C<b||(C=g),s.nextOwnId=C+1):(C>=b&&(C=g),s.nextId=C+1);let L=I.highByte=C>=96&&h?C-96>>5:-1;P[ii]=C,s[C-64]=I,C<g?(I.isShared=!0,s.sharedLength=C-63,i=!0,L>=0?(R[M++]=(C&31)+96,R[M++]=L):R[M++]=C):(L>=0?(R[M++]=213,R[M++]=114,R[M++]=(C&31)+96,R[M++]=L):(R[M++]=212,R[M++]=114,R[M++]=C),T&&(S+=w*T),x.length>=m&&(x.shift()[ii]=0),x.push(P),v(I))}for(let L=0,j=I.length;L<j;L++)v(y[I[L]])},_=y=>{let I;if(y>16777216){if(y-r>Gu)throw new Error("Packed buffer would be larger than maximum buffer size");I=Math.min(Gu,Math.round(Math.max((y-r)*(y>67108864?1.25:2),4194304)/4096)*4096)}else I=(Math.max(y-r<<2,R.length-1)>>12)+1<<12;let A=new Tl(I);return Ve=new DataView(A.buffer,0,I),R.copy?R.copy(A,0,r,y):A.set(R.slice(r,y)),M-=r,r=0,or=A.length-10,R=A}}useBuffer(t){R=t,Ve=new DataView(R.buffer,R.byteOffset,R.byteLength),M=0}};Al=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,ni];Ts=[{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?Ru(n,16,t):Vu(As?Buffer.from(n):new Uint8Array(n),t)}},{pack(n,t){let e=n.constructor;e!==Fu&&this.structuredClone?Ru(n,_l.indexOf(e.name),t):Vu(n,t)}},{pack(n,t){let{target:e,position:r}=t(1);e[r]=193}}];function Ru(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 Vu(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 Kg(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 Zg(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 Or(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)");Al.unshift(n.Class),Ts.unshift(n)}Du(n)}var zu=new ho({useRecords:!1}),Qg=zu.pack,Jg=zu.pack;var{NEVER:ey,ALWAYS:ty,DECIMAL_ROUND:ry,DECIMAL_FIT:oy}=ws,ju=512,ny=1024;var Uu=new ho({structuredClone:!0});Or({Class:Me.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Me.prototype),n}});Or({Class:he.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,he.prototype),n}});Or({Class:Ee.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,Ee.prototype),n}});Or({Class:ri.prototype.constructor,type:4,write(n){return n.id},read(n){return new ri(n)}});Or({Class:oi.prototype.constructor,type:5,write(n){return n.data},read(n){return new oi(n)}});Or({Class:wt.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,wt.prototype),n}});Or({Class:Go.prototype.constructor,type:7,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Go.prototype),n}});function iy(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 Nl(n){if(Jn(n))return n;if(Array.isArray(n))return n.map(Nl);if(typeof n=="object"&&n!==null){let t={};for(let e of Object.keys(n).sort())t[e]=Nl(n[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else return n}var Ns;(r=>{function n(o){return Uu.pack(o)}r.serialize=n;function t(o){return Uu.unpack(o)}r.deserialize=t;function e(o){return iy(n(Nl(o))).toString()}r.checksum=e})(Ns||(Ns={}));var ku;(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})(ku||(ku={}));var jo;(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})(jo||(jo={}));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 qr;(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})(qr||(qr={}));var mt;(p=>{function n(a){return typeof a=="object"&&typeof a.r=="number"&&typeof a.g=="number"&&typeof a.b=="number"}p.isRGB=n,p.white={r:1,g:1,b:1},p.red={r:1,g:0,b:0},p.black={r:0,g:0,b:0};function o(a){return{r:Math.round(a.r*255),g:Math.round(a.g*255),b:Math.round(a.b*255),a:1}}p.toRgb255a1=o;function i(a){return{r:a.r,g:a.g,b:a.b}}p.clone=i;function s(a){return a=Math.floor(a),{r:(a>>16&255)/255,g:(a>>8&255)/255,b:(a&255)/255}}p.fromHex=s;function l(a,u){return a.r===u.r&&a.g===u.g&&a.b===u.b}p.equals=l;function c(a,u,d){return{r:a.r+(u.r-a.r)*d,g:a.g+(u.g-a.g)*d,b:a.b+(u.b-a.b)*d}}p.lerp=c})(mt||(mt={}));var jt;(l=>{l.white={...mt.white,a:1},l.transparent={...mt.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{...mt.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 mt.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})(jt||(jt={}));var Is;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Is||(Is={}));var Wu;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(Wu||(Wu={}));var qu;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(qu||(qu={}));var Uo;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(Uo||(Uo={}));var go;(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})(go||(go={}));var yo;(e=>{function n(r,o=.1){return{disabled:!1,type:"linear",hideBase:!1,count:3,radial:{radius:Math.max(r[0],r[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},linear:{scale:[1,1,1],rotation:[0,0,0],position:[r[0]+r[0]*o,0,0]},grid:{count:[2,2,2],size:r.map(i=>i*(1+o)),useCenter:!0},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}}}e.defaultData=n;function t(r,o){let i={...r};if(sy.forEach(s=>{Object.assign(i,{[s]:o[s]??r[s]})}),i.radial={...r.radial},o.radial){let s=r.radial,l=o.radial;ay.forEach(c=>{Object.assign(i.radial,{[c]:l[c]??s[c]})})}if(i.linear={...r.linear},o.linear){let s=r.linear,l=o.linear;ly.forEach(c=>{Object.assign(i.linear,{[c]:l[c]??s[c]})})}if(i.grid={...r.grid},o.grid){let s=r.grid,l=o.grid;cy.forEach(c=>{Object.assign(i.grid,{[c]:l[c]??s[c]})})}if(i.toObject={...r.toObject},o.toObject){let s=r.toObject,l=o.toObject;uy.forEach(c=>{Object.assign(i.toObject,{[c]:l[c]??s[c]})})}if(i.randomnessObject={...r.randomnessObject},o.randomnessObject){let s=r.randomnessObject,l=o.randomnessObject;py.forEach(c=>{Object.assign(i.randomnessObject,{[c]:l[c]??s[c]})})}return i}e.merge=t})(yo||(yo={}));var $u;(t=>t.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}})($u||($u={}));var sy=["count"],ay=["radius","start","end","position","scale","rotation"],ly=["position","scale","rotation"],cy=["count","size"],uy=["count","position","scale","rotation"],py=["strength","scale","rotation","position","movement","seed","freqScale"];var Ps;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Ps||(Ps={}));var Os;(e=>{function n(r){return t(r)}e.defaultData=n;function t(r){if(r==="PointLight")return{type:r,color:jt.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(r==="SpotLight")return{type:r,color:jt.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:jt.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(Os||(Os={}));var Il;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(Il||(Il={}));var Pl;(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})(Pl||(Pl={}));var Cs;(t=>t.defaultData={...Pl.defaultData,...Il.defaultData,cloner:null,booleanExclude:null})(Cs||(Cs={}));var dy=typeof global=="object"&&global&&global.Object===Object&&global,Ms=dy;var fy=typeof self=="object"&&self&&self.Object===Object&&self,my=Ms||fy||Function("return this")(),ze=my;var hy=ze.Symbol,lt=hy;var Yu=Object.prototype,gy=Yu.hasOwnProperty,yy=Yu.toString,si=lt?lt.toStringTag:void 0;function xy(n){var t=gy.call(n,si),e=n[si];try{n[si]=void 0;var r=!0}catch{}var o=yy.call(n);return r&&(t?n[si]=e:delete n[si]),o}var Xu=xy;var by=Object.prototype,vy=by.toString;function Sy(n){return vy.call(n)}var Ku=Sy;var wy="[object Null]",_y="[object Undefined]",Zu=lt?lt.toStringTag:void 0;function Ty(n){return n==null?n===void 0?_y:wy:Zu&&Zu in Object(n)?Xu(n):Ku(n)}var Tt=Ty;function Ay(n){return n!=null&&typeof n=="object"}var ot=Ay;var Ny="[object Symbol]";function Iy(n){return typeof n=="symbol"||ot(n)&&Tt(n)==Ny}var ko=Iy;function Py(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 Ls=Py;var Oy=Array.isArray,Ge=Oy;var Cy=1/0,Qu=lt?lt.prototype:void 0,Ju=Qu?Qu.toString:void 0;function ep(n){if(typeof n=="string")return n;if(Ge(n))return Ls(n,ep)+"";if(ko(n))return Ju?Ju.call(n):"";var t=n+"";return t=="0"&&1/n==-Cy?"-0":t}var tp=ep;function My(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}var je=My;function Ly(n){return n}var Es=Ly;var Ey="[object AsyncFunction]",By="[object Function]",Dy="[object GeneratorFunction]",Gy="[object Proxy]";function Ry(n){if(!je(n))return!1;var t=Tt(n);return t==By||t==Dy||t==Ey||t==Gy}var Ho=Ry;var Vy=ze["__core-js_shared__"],Bs=Vy;var rp=function(){var n=/[^.]+$/.exec(Bs&&Bs.keys&&Bs.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function Fy(n){return!!rp&&rp in n}var op=Fy;var zy=Function.prototype,jy=zy.toString;function Uy(n){if(n!=null){try{return jy.call(n)}catch{}try{return n+""}catch{}}return""}var Cr=Uy;var ky=/[\\^$.*+?()[\]{}|]/g,Hy=/^\[object .+?Constructor\]$/,Wy=Function.prototype,qy=Object.prototype,$y=Wy.toString,Yy=qy.hasOwnProperty,Xy=RegExp("^"+$y.call(Yy).replace(ky,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ky(n){if(!je(n)||op(n))return!1;var t=Ho(n)?Xy:Hy;return t.test(Cr(n))}var np=Ky;function Zy(n,t){return n?.[t]}var ip=Zy;function Qy(n,t){var e=ip(n,t);return np(e)?e:void 0}var ht=Qy;var Jy=ht(ze,"WeakMap"),Ds=Jy;var sp=Object.create,e0=function(){function n(){}return function(t){if(!je(t))return{};if(sp)return sp(t);n.prototype=t;var e=new n;return n.prototype=void 0,e}}(),ap=e0;function t0(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 lp=t0;function r0(n,t){var e=-1,r=n.length;for(t||(t=Array(r));++e<r;)t[e]=n[e];return t}var Gs=r0;var o0=800,n0=16,i0=Date.now;function s0(n){var t=0,e=0;return function(){var r=i0(),o=n0-(r-e);if(e=r,o>0){if(++t>=o0)return arguments[0]}else t=0;return n.apply(void 0,arguments)}}var cp=s0;function a0(n){return function(){return n}}var up=a0;var l0=function(){try{var n=ht(Object,"defineProperty");return n({},"",{}),n}catch{}}(),Wo=l0;var c0=Wo?function(n,t){return Wo(n,"toString",{configurable:!0,enumerable:!1,value:up(t),writable:!0})}:Es,pp=c0;var u0=cp(pp),Rs=u0;function p0(n,t){for(var e=-1,r=n==null?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}var dp=p0;var d0=9007199254740991,f0=/^(?:0|[1-9]\d*)$/;function m0(n,t){var e=typeof n;return t=t??d0,!!t&&(e=="number"||e!="symbol"&&f0.test(n))&&n>-1&&n%1==0&&n<t}var $r=m0;function h0(n,t,e){t=="__proto__"&&Wo?Wo(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}var qo=h0;function g0(n,t){return n===t||n!==n&&t!==t}var Yr=g0;var y0=Object.prototype,x0=y0.hasOwnProperty;function b0(n,t,e){var r=n[t];(!(x0.call(n,t)&&Yr(r,e))||e===void 0&&!(t in n))&&qo(n,t,e)}var $o=b0;function v0(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?qo(e,l,c):$o(e,l,c)}return e}var Ct=v0;var fp=Math.max;function S0(n,t,e){return t=fp(t===void 0?n.length-1:t,0),function(){for(var r=arguments,o=-1,i=fp(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),lp(n,this,l)}}var Vs=S0;function w0(n,t){return Rs(Vs(n,t,Es),n+"")}var mp=w0;var _0=9007199254740991;function T0(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=_0}var Yo=T0;function A0(n){return n!=null&&Yo(n.length)&&!Ho(n)}var Xr=A0;function N0(n,t,e){if(!je(e))return!1;var r=typeof t;return(r=="number"?Xr(e)&&$r(t,e.length):r=="string"&&t in e)?Yr(e[t],n):!1}var hp=N0;function I0(n){return mp(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&&hp(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 gp=I0;var P0=Object.prototype;function O0(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||P0;return n===e}var Xo=O0;function C0(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}var yp=C0;var M0="[object Arguments]";function L0(n){return ot(n)&&Tt(n)==M0}var Ol=L0;var xp=Object.prototype,E0=xp.hasOwnProperty,B0=xp.propertyIsEnumerable,D0=Ol(function(){return arguments}())?Ol:function(n){return ot(n)&&E0.call(n,"callee")&&!B0.call(n,"callee")},Mr=D0;function G0(){return!1}var bp=G0;var wp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vp=wp&&typeof module=="object"&&module&&!module.nodeType&&module,R0=vp&&vp.exports===wp,Sp=R0?ze.Buffer:void 0,V0=Sp?Sp.isBuffer:void 0,F0=V0||bp,Ko=F0;var z0="[object Arguments]",j0="[object Array]",U0="[object Boolean]",k0="[object Date]",H0="[object Error]",W0="[object Function]",q0="[object Map]",$0="[object Number]",Y0="[object Object]",X0="[object RegExp]",K0="[object Set]",Z0="[object String]",Q0="[object WeakMap]",J0="[object ArrayBuffer]",ex="[object DataView]",tx="[object Float32Array]",rx="[object Float64Array]",ox="[object Int8Array]",nx="[object Int16Array]",ix="[object Int32Array]",sx="[object Uint8Array]",ax="[object Uint8ClampedArray]",lx="[object Uint16Array]",cx="[object Uint32Array]",Be={};Be[tx]=Be[rx]=Be[ox]=Be[nx]=Be[ix]=Be[sx]=Be[ax]=Be[lx]=Be[cx]=!0;Be[z0]=Be[j0]=Be[J0]=Be[U0]=Be[ex]=Be[k0]=Be[H0]=Be[W0]=Be[q0]=Be[$0]=Be[Y0]=Be[X0]=Be[K0]=Be[Z0]=Be[Q0]=!1;function ux(n){return ot(n)&&Yo(n.length)&&!!Be[Tt(n)]}var _p=ux;function px(n){return function(t){return n(t)}}var Zo=px;var Tp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ai=Tp&&typeof module=="object"&&module&&!module.nodeType&&module,dx=ai&&ai.exports===Tp,Cl=dx&&Ms.process,fx=function(){try{var n=ai&&ai.require&&ai.require("util").types;return n||Cl&&Cl.binding&&Cl.binding("util")}catch{}}(),Lr=fx;var Ap=Lr&&Lr.isTypedArray,mx=Ap?Zo(Ap):_p,Fs=mx;var hx=Object.prototype,gx=hx.hasOwnProperty;function yx(n,t){var e=Ge(n),r=!e&&Mr(n),o=!e&&!r&&Ko(n),i=!e&&!r&&!o&&Fs(n),s=e||r||o||i,l=s?yp(n.length,String):[],c=l.length;for(var p in n)(t||gx.call(n,p))&&!(s&&(p=="length"||o&&(p=="offset"||p=="parent")||i&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||$r(p,c)))&&l.push(p);return l}var zs=yx;function xx(n,t){return function(e){return n(t(e))}}var js=xx;var bx=js(Object.keys,Object),Np=bx;var vx=Object.prototype,Sx=vx.hasOwnProperty;function wx(n){if(!Xo(n))return Np(n);var t=[];for(var e in Object(n))Sx.call(n,e)&&e!="constructor"&&t.push(e);return t}var Ip=wx;function _x(n){return Xr(n)?zs(n):Ip(n)}var Qo=_x;function Tx(n){var t=[];if(n!=null)for(var e in Object(n))t.push(e);return t}var Pp=Tx;var Ax=Object.prototype,Nx=Ax.hasOwnProperty;function Ix(n){if(!je(n))return Pp(n);var t=Xo(n),e=[];for(var r in n)r=="constructor"&&(t||!Nx.call(n,r))||e.push(r);return e}var Op=Ix;function Px(n){return Xr(n)?zs(n,!0):Op(n)}var ir=Px;var Ox=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Cx=/^\w*$/;function Mx(n,t){if(Ge(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||ko(n)?!0:Cx.test(n)||!Ox.test(n)||t!=null&&n in Object(t)}var Cp=Mx;var Lx=ht(Object,"create"),Er=Lx;function Ex(){this.__data__=Er?Er(null):{},this.size=0}var Mp=Ex;function Bx(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}var Lp=Bx;var Dx="__lodash_hash_undefined__",Gx=Object.prototype,Rx=Gx.hasOwnProperty;function Vx(n){var t=this.__data__;if(Er){var e=t[n];return e===Dx?void 0:e}return Rx.call(t,n)?t[n]:void 0}var Ep=Vx;var Fx=Object.prototype,zx=Fx.hasOwnProperty;function jx(n){var t=this.__data__;return Er?t[n]!==void 0:zx.call(t,n)}var Bp=jx;var Ux="__lodash_hash_undefined__";function kx(n,t){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=Er&&t===void 0?Ux:t,this}var Dp=kx;function Jo(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])}}Jo.prototype.clear=Mp;Jo.prototype.delete=Lp;Jo.prototype.get=Ep;Jo.prototype.has=Bp;Jo.prototype.set=Dp;var Ml=Jo;function Hx(){this.__data__=[],this.size=0}var Gp=Hx;function Wx(n,t){for(var e=n.length;e--;)if(Yr(n[e][0],t))return e;return-1}var Kr=Wx;var qx=Array.prototype,$x=qx.splice;function Yx(n){var t=this.__data__,e=Kr(t,n);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():$x.call(t,e,1),--this.size,!0}var Rp=Yx;function Xx(n){var t=this.__data__,e=Kr(t,n);return e<0?void 0:t[e][1]}var Vp=Xx;function Kx(n){return Kr(this.__data__,n)>-1}var Fp=Kx;function Zx(n,t){var e=this.__data__,r=Kr(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}var zp=Zx;function en(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])}}en.prototype.clear=Gp;en.prototype.delete=Rp;en.prototype.get=Vp;en.prototype.has=Fp;en.prototype.set=zp;var Zr=en;var Qx=ht(ze,"Map"),Qr=Qx;function Jx(){this.size=0,this.__data__={hash:new Ml,map:new(Qr||Zr),string:new Ml}}var jp=Jx;function eb(n){var t=typeof n;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?n!=="__proto__":n===null}var Up=eb;function tb(n,t){var e=n.__data__;return Up(t)?e[typeof t=="string"?"string":"hash"]:e.map}var Jr=tb;function rb(n){var t=Jr(this,n).delete(n);return this.size-=t?1:0,t}var kp=rb;function ob(n){return Jr(this,n).get(n)}var Hp=ob;function nb(n){return Jr(this,n).has(n)}var Wp=nb;function ib(n,t){var e=Jr(this,n),r=e.size;return e.set(n,t),this.size+=e.size==r?0:1,this}var qp=ib;function tn(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])}}tn.prototype.clear=jp;tn.prototype.delete=kp;tn.prototype.get=Hp;tn.prototype.has=Wp;tn.prototype.set=qp;var li=tn;var sb="Expected a function";function Ll(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError(sb);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(Ll.Cache||li),e}Ll.Cache=li;var $p=Ll;var ab=500;function lb(n){var t=$p(n,function(r){return e.size===ab&&e.clear(),r}),e=t.cache;return t}var Yp=lb;var cb=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ub=/\\(\\)?/g,pb=Yp(function(n){var t=[];return n.charCodeAt(0)===46&&t.push(""),n.replace(cb,function(e,r,o,i){t.push(o?i.replace(ub,"$1"):r||e)}),t}),Xp=pb;function db(n){return n==null?"":tp(n)}var Kp=db;function fb(n,t){return Ge(n)?n:Cp(n,t)?[n]:Xp(Kp(n))}var Mt=fb;var mb=1/0;function hb(n){if(typeof n=="string"||ko(n))return n;var t=n+"";return t=="0"&&1/n==-mb?"-0":t}var eo=hb;function gb(n,t){t=Mt(t,n);for(var e=0,r=t.length;n!=null&&e<r;)n=n[eo(t[e++])];return e&&e==r?n:void 0}var Us=gb;function yb(n,t){for(var e=-1,r=t.length,o=n.length;++e<r;)n[o+e]=t[e];return n}var rn=yb;var Zp=lt?lt.isConcatSpreadable:void 0;function xb(n){return Ge(n)||Mr(n)||!!(Zp&&n&&n[Zp])}var Qp=xb;function Jp(n,t,e,r,o){var i=-1,s=n.length;for(e||(e=Qp),o||(o=[]);++i<s;){var l=n[i];t>0&&e(l)?t>1?Jp(l,t-1,e,r,o):rn(o,l):r||(o[o.length]=l)}return o}var ed=Jp;function bb(n){var t=n==null?0:n.length;return t?ed(n,1):[]}var td=bb;function vb(n){return Rs(Vs(n,void 0,td),n+"")}var ks=vb;var Sb=js(Object.getPrototypeOf,Object),on=Sb;var wb="[object Object]",_b=Function.prototype,Tb=Object.prototype,rd=_b.toString,Ab=Tb.hasOwnProperty,Nb=rd.call(Object);function Ib(n){if(!ot(n)||Tt(n)!=wb)return!1;var t=on(n);if(t===null)return!0;var e=Ab.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&rd.call(e)==Nb}var Hs=Ib;function Pb(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 od=Pb;function Ob(){this.__data__=new Zr,this.size=0}var nd=Ob;function Cb(n){var t=this.__data__,e=t.delete(n);return this.size=t.size,e}var id=Cb;function Mb(n){return this.__data__.get(n)}var sd=Mb;function Lb(n){return this.__data__.has(n)}var ad=Lb;var Eb=200;function Bb(n,t){var e=this.__data__;if(e instanceof Zr){var r=e.__data__;if(!Qr||r.length<Eb-1)return r.push([n,t]),this.size=++e.size,this;e=this.__data__=new li(r)}return e.set(n,t),this.size=e.size,this}var ld=Bb;function nn(n){var t=this.__data__=new Zr(n);this.size=t.size}nn.prototype.clear=nd;nn.prototype.delete=id;nn.prototype.get=sd;nn.prototype.has=ad;nn.prototype.set=ld;var Ws=nn;function Db(n,t){return n&&Ct(t,Qo(t),n)}var cd=Db;function Gb(n,t){return n&&Ct(t,ir(t),n)}var ud=Gb;var md=typeof exports=="object"&&exports&&!exports.nodeType&&exports,pd=md&&typeof module=="object"&&module&&!module.nodeType&&module,Rb=pd&&pd.exports===md,dd=Rb?ze.Buffer:void 0,fd=dd?dd.allocUnsafe:void 0;function Vb(n,t){if(t)return n.slice();var e=n.length,r=fd?fd(e):new n.constructor(e);return n.copy(r),r}var qs=Vb;function Fb(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 hd=Fb;function zb(){return[]}var $s=zb;var jb=Object.prototype,Ub=jb.propertyIsEnumerable,gd=Object.getOwnPropertySymbols,kb=gd?function(n){return n==null?[]:(n=Object(n),hd(gd(n),function(t){return Ub.call(n,t)}))}:$s,sn=kb;function Hb(n,t){return Ct(n,sn(n),t)}var yd=Hb;var Wb=Object.getOwnPropertySymbols,qb=Wb?function(n){for(var t=[];n;)rn(t,sn(n)),n=on(n);return t}:$s,Ys=qb;function $b(n,t){return Ct(n,Ys(n),t)}var xd=$b;function Yb(n,t,e){var r=t(n);return Ge(n)?r:rn(r,e(n))}var Xs=Yb;function Xb(n){return Xs(n,Qo,sn)}var bd=Xb;function Kb(n){return Xs(n,ir,Ys)}var Ks=Kb;var Zb=ht(ze,"DataView"),Zs=Zb;var Qb=ht(ze,"Promise"),Qs=Qb;var Jb=ht(ze,"Set"),Js=Jb;var vd="[object Map]",ev="[object Object]",Sd="[object Promise]",wd="[object Set]",_d="[object WeakMap]",Td="[object DataView]",tv=Cr(Zs),rv=Cr(Qr),ov=Cr(Qs),nv=Cr(Js),iv=Cr(Ds),xo=Tt;(Zs&&xo(new Zs(new ArrayBuffer(1)))!=Td||Qr&&xo(new Qr)!=vd||Qs&&xo(Qs.resolve())!=Sd||Js&&xo(new Js)!=wd||Ds&&xo(new Ds)!=_d)&&(xo=function(n){var t=Tt(n),e=t==ev?n.constructor:void 0,r=e?Cr(e):"";if(r)switch(r){case tv:return Td;case rv:return vd;case ov:return Sd;case nv:return wd;case iv:return _d}return t});var an=xo;var sv=Object.prototype,av=sv.hasOwnProperty;function lv(n){var t=n.length,e=new n.constructor(t);return t&&typeof n[0]=="string"&&av.call(n,"index")&&(e.index=n.index,e.input=n.input),e}var Ad=lv;var cv=ze.Uint8Array,El=cv;function uv(n){var t=new n.constructor(n.byteLength);return new El(t).set(new El(n)),t}var ln=uv;function pv(n,t){var e=t?ln(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var Nd=pv;var dv=/\w*$/;function fv(n){var t=new n.constructor(n.source,dv.exec(n));return t.lastIndex=n.lastIndex,t}var Id=fv;var Pd=lt?lt.prototype:void 0,Od=Pd?Pd.valueOf:void 0;function mv(n){return Od?Object(Od.call(n)):{}}var Cd=mv;function hv(n,t){var e=t?ln(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}var ea=hv;var gv="[object Boolean]",yv="[object Date]",xv="[object Map]",bv="[object Number]",vv="[object RegExp]",Sv="[object Set]",wv="[object String]",_v="[object Symbol]",Tv="[object ArrayBuffer]",Av="[object DataView]",Nv="[object Float32Array]",Iv="[object Float64Array]",Pv="[object Int8Array]",Ov="[object Int16Array]",Cv="[object Int32Array]",Mv="[object Uint8Array]",Lv="[object Uint8ClampedArray]",Ev="[object Uint16Array]",Bv="[object Uint32Array]";function Dv(n,t,e){var r=n.constructor;switch(t){case Tv:return ln(n);case gv:case yv:return new r(+n);case Av:return Nd(n,e);case Nv:case Iv:case Pv:case Ov:case Cv:case Mv:case Lv:case Ev:case Bv:return ea(n,e);case xv:return new r;case bv:case wv:return new r(n);case vv:return Id(n);case Sv:return new r;case _v:return Cd(n)}}var Md=Dv;function Gv(n){return typeof n.constructor=="function"&&!Xo(n)?ap(on(n)):{}}var ta=Gv;var Rv="[object Map]";function Vv(n){return ot(n)&&an(n)==Rv}var Ld=Vv;var Ed=Lr&&Lr.isMap,Fv=Ed?Zo(Ed):Ld,Bd=Fv;var zv="[object Set]";function jv(n){return ot(n)&&an(n)==zv}var Dd=jv;var Gd=Lr&&Lr.isSet,Uv=Gd?Zo(Gd):Dd,Rd=Uv;var kv=1,Hv=2,Wv=4,Vd="[object Arguments]",qv="[object Array]",$v="[object Boolean]",Yv="[object Date]",Xv="[object Error]",Fd="[object Function]",Kv="[object GeneratorFunction]",Zv="[object Map]",Qv="[object Number]",zd="[object Object]",Jv="[object RegExp]",eS="[object Set]",tS="[object String]",rS="[object Symbol]",oS="[object WeakMap]",nS="[object ArrayBuffer]",iS="[object DataView]",sS="[object Float32Array]",aS="[object Float64Array]",lS="[object Int8Array]",cS="[object Int16Array]",uS="[object Int32Array]",pS="[object Uint8Array]",dS="[object Uint8ClampedArray]",fS="[object Uint16Array]",mS="[object Uint32Array]",Le={};Le[Vd]=Le[qv]=Le[nS]=Le[iS]=Le[$v]=Le[Yv]=Le[sS]=Le[aS]=Le[lS]=Le[cS]=Le[uS]=Le[Zv]=Le[Qv]=Le[zd]=Le[Jv]=Le[eS]=Le[tS]=Le[rS]=Le[pS]=Le[dS]=Le[fS]=Le[mS]=!0;Le[Xv]=Le[Fd]=Le[oS]=!1;function ra(n,t,e,r,o,i){var s,l=t&kv,c=t&Hv,p=t&Wv;if(e&&(s=o?e(n,r,o,i):e(n)),s!==void 0)return s;if(!je(n))return n;var a=Ge(n);if(a){if(s=Ad(n),!l)return Gs(n,s)}else{var u=an(n),d=u==Fd||u==Kv;if(Ko(n))return qs(n,l);if(u==zd||u==Vd||d&&!o){if(s=c||d?{}:ta(n),!l)return c?xd(n,ud(s,n)):yd(n,cd(s,n))}else{if(!Le[u])return o?n:{};s=Md(n,u,l)}}i||(i=new Ws);var f=i.get(n);if(f)return f;i.set(n,s),Rd(n)?n.forEach(function(g){s.add(ra(g,t,e,g,n,i))}):Bd(n)&&n.forEach(function(g,b){s.set(b,ra(g,t,e,b,n,i))});var m=p?c?Ks:bd:c?ir:Qo,h=a?void 0:m(n);return dp(h||n,function(g,b){h&&(b=g,g=n[b]),$o(s,b,ra(g,t,e,b,n,i))}),s}var oa=ra;var hS=1,gS=4;function yS(n){return oa(n,hS|gS)}var ci=yS;function xS(n,t){return n!=null&&t in Object(n)}var jd=xS;function bS(n,t,e){t=Mt(t,n);for(var r=-1,o=t.length,i=!1;++r<o;){var s=eo(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&&Yo(o)&&$r(s,o)&&(Ge(n)||Mr(n)))}var Ud=bS;function vS(n,t){return n!=null&&Ud(n,t,jd)}var kd=vS;function SS(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 Hd=SS;var wS=Hd(),Wd=wS;function _S(n,t,e){(e!==void 0&&!Yr(n[t],e)||e===void 0&&!(t in n))&&qo(n,t,e)}var ui=_S;function TS(n){return ot(n)&&Xr(n)}var qd=TS;function AS(n,t){if(!(t==="constructor"&&typeof n[t]=="function")&&t!="__proto__")return n[t]}var pi=AS;function NS(n){return Ct(n,ir(n))}var $d=NS;function IS(n,t,e,r,o,i,s){var l=pi(n,e),c=pi(t,e),p=s.get(c);if(p){ui(n,e,p);return}var a=i?i(l,c,e+"",n,t,s):void 0,u=a===void 0;if(u){var d=Ge(c),f=!d&&Ko(c),m=!d&&!f&&Fs(c);a=c,d||f||m?Ge(l)?a=l:qd(l)?a=Gs(l):f?(u=!1,a=qs(c,!0)):m?(u=!1,a=ea(c,!0)):a=[]:Hs(c)||Mr(c)?(a=l,Mr(l)?a=$d(l):(!je(l)||Ho(l))&&(a=ta(c))):u=!1}u&&(s.set(c,a),o(a,c,r,i,s),s.delete(c)),ui(n,e,a)}var Yd=IS;function Xd(n,t,e,r,o){n!==t&&Wd(t,function(i,s){if(o||(o=new Ws),je(i))Yd(n,t,s,e,Xd,r,o);else{var l=r?r(pi(n,s),i,s+"",n,t,o):void 0;l===void 0&&(l=i),ui(n,s,l)}},ir)}var Kd=Xd;function PS(n){var t=n==null?0:n.length;return t?n[t-1]:void 0}var Zd=PS;function OS(n,t){return t.length<2?n:Us(n,od(t,0,-1))}var Qd=OS;var CS=gp(function(n,t,e){Kd(n,t,e)}),cn=CS;function MS(n,t){return t=Mt(t,n),n=Qd(n,t),n==null||delete n[eo(Zd(t))]}var Jd=MS;function LS(n){return Hs(n)?void 0:n}var ef=LS;var ES=1,BS=2,DS=4,GS=ks(function(n,t){var e={};if(n==null)return e;var r=!1;t=Ls(t,function(i){return i=Mt(i,n),r||(r=i.length>1),i}),Ct(n,Ks(n),e),r&&(e=oa(e,ES|BS|DS,ef));for(var o=t.length;o--;)Jd(e,t[o]);return e}),un=GS;function RS(n,t,e,r){if(!je(n))return n;t=Mt(t,n);for(var o=-1,i=t.length,s=i-1,l=n;l!=null&&++o<i;){var c=eo(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=je(a)?a:$r(t[o+1])?[]:{})}$o(l,c,p),l=l[c]}return n}var tf=RS;function VS(n,t,e){for(var r=-1,o=t.length,i={};++r<o;){var s=t[r],l=Us(n,s);e(l,s)&&tf(i,Mt(s,n),l)}return i}var rf=VS;function FS(n,t){return rf(n,t,function(e,r){return kd(n,r)})}var of=FS;var zS=ks(function(n,t){return n==null?{}:of(n,t)}),pn=zS;var nf=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],sf=["wrapping","image"],At;(o=>{function n(i,s){cn(i,s)}o.patch=n;function t(i,s){return i==="light"&&s?e(s):r(i)}o.defaultData=t;function e(i){switch(i){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 r(i){switch(i){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:mt.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:{...mt.fromHex(6710886),a:1},colorB:{...mt.fromHex(6710886),a:1},colorC:{...mt.fromHex(16777215),a:1},colorD:{...mt.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:jt.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:jt.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:jt.fromHexAndA(0,1),contourColor:jt.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}}}})(At||(At={}));var Nt;(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 he}}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 he;return u.push({fi:0,data:At.defaultData("light",c),id:p}),u.push({fi:1,data:At.defaultData("color"),id:a}),{layers:u}}l.defaultTwoLayerData=i;function s(c,p="phong",a="layer1",u="layer2"){let d=At.defaultData("texture");Object.assign(d.texture,{image:c});let f=new he;return f.push({fi:0,data:d,id:a}),f.push({fi:1,data:At.defaultData("light",p),id:u}),{layers:f}}l.defaultTwoLayerTextureData=s})(Nt||(Nt={}));var dn;(t=>{function n(){return{points:new he,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=n})(dn||(dn={}));var fn;(t=>{function n(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=n})(fn||(fn={}));var to;(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:dn.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})(to||(to={}));var di;(o=>{o.identity={...Is.identity,hiddenMatrix:qr.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:jo.isEqual(i.position,s.position)?null:s.position,rotation:jo.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:jo.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:qr.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}o.diff=r})(di||(di={}));var Bl;(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]})(Bl||(Bl={}));var Ut;(t=>t.defaultData={states:new he,events:new he,visible:!0,raycastLock:!1,physics:null,...di.identity})(Ut||(Ut={}));var af;(t=>t.defaultData={type:"Empty",cloner:null,...Ut.defaultData})(af||(af={}));var bo;(t=>t.defaultData={type:"Mesh",...Ut.defaultData,...Cs.defaultData})(bo||(bo={}));var na;(t=>t.defaultData={...Ut.defaultData,...di.identity,...go.defaultData})(na||(na={}));var lf;(t=>{function n(e){return{...Ut.defaultData,...Os.defaultData(e)}}t.defaultData=n})(lf||(lf={}));var cf;(o=>(o.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:qr.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Bl.defaultData,states:new he,events:new he,...go.defaultData},o.defaultMeshObject={name:"Rectangle",...Ut.defaultData,...bo.defaultData,geometry:to.defaultData("RectangleGeometry"),material:Nt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultBooleanObject={name:"Boolean",...Ut.defaultData,...bo.defaultData,geometry:to.defaultData("BooleanGeometry"),material:Nt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultTextObject={name:"Text",...Ut.defaultData,...bo.defaultData,geometry:to.defaultData("TextGeometry"),material:Nt.defaultTwoLayerData("phong","layer1","layer2")}))(cf||(cf={}));var uf;(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=ml(i.material,s=>{if(typeof s!="string")for(let[l,c]of Object.entries(o.material.layers)){let p=s.layers.data(l);p&&At.patch(p,c)}}).data),i.materials&&o.materials&&(i.materials=ml(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&&At.patch(u,a)}}}).data),i}e.patchMaterialState=n;function t(r,o){if(o===void 0)return r;let i={...r};if(Object.assign(i,di.merge(i,o)),Uo.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),i.cloner&&"cloner"in o&&Object.assign(i,{cloner:yo.merge(i.cloner,o.cloner)});else if(r.type==="Empty")i.cloner&&"cloner"in o&&Object.assign(i,{cloner:yo.merge(i.cloner,o.cloner)});else if(Ps.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=mt.clone(s.color))}return i}e.patch=t})(uf||(uf={}));var mn;(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,resetHoverEffectOnPointerLeave:!0})(mn||(mn={}));var ia;(t=>t.defaultData={orbitControls:mn.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})(ia||(ia={}));function vo(n,t){return Object.setPrototypeOf(n,t),n}function pf(n){return Array.isArray(n)?n:[n]}var sa;(e=>{function n(){let r={};return r["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},vo(r,Me.prototype)}e.defaultColors=n;function t(){return{materials:new Me,images:new Me,colors:new Me,audios:new Me,fonts:new Me,penumbraSize:[.5,.5,.5]}}e.emptyData=t})(sa||(sa={}));import{MathUtils as aa}from"three";function df(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={...pn(dt(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={...dt(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function la(n,t){Object.values(n.shared.materials).forEach(e=>t(e))}function ca(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 jS(n){Object.assign(n.scene.publish,{orbitControls:{...mn.defaultData,...dt(n.scene.publish.orbitControls)}})}function US(n){Object.assign(n.scene.publish.settings,{video:{...ia.defaultData.settings.video,...dt(n.scene.publish.settings.video)}})}function kS(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((nf.includes(o)||typeof i=="boolean")&&delete r[o],o==="texture")for(let[s,l]of Object.entries(i))(sf.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 HS(n){n.scene.publish.withBackground=!0}function WS(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function qS(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 $S(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 YS(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 ff(n){n.layers===void 0&&Object.assign(n,Nt.defaultTwoLayerData("lambert"))}function Dl(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={...dt(t),colors:e,steps:r};Object.assign(t,o)}})}function XS(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function mf(n){n.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&Dl(r)}):"material"in e&&typeof e.material!="string"&&Dl(e.material)}),Object.values(n.shared.materials).forEach(t=>Dl(t))}function KS(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 ZS(n){n.shared.audios=vo({},Me.prototype)}function QS(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 JS(n){Object.entries(dt(n.shared.images)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.images[r]}),Object.entries(dt(n.shared.audios)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.audios[r]})}function e1(n){n.scene.publish.settings.web.preload=!1}function hf(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 t1(n){n.shared.fonts=vo({},Me.prototype)}function r1(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 o1(n){let t=[];n.scene.objects.traverse((e,r)=>{let o=r;if(o.type==="TextFrame"){let i=Nt.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=r1(o.font);n.shared.fonts[l]===void 0&&(n.shared.fonts[l]={name:l});let c={name:o.name,...Ut.defaultData,...bo.defaultData,flatShading:!1,wireframe:!1,geometry:{...to.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:dt(o.states),events:dt(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},p=dt(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 n1(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 he,move:new he,jump:new he}});else{let i=new he;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:aa.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,pn(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 he({fi:0,id:aa.generateUUID(),data:p},{fi:1,id:aa.generateUUID(),data:d})};i.push({fi:c,id:l,data:f})}),delete o.targets)}})})}function i1(n){n.scene.objects.traverse((t,e)=>{function r(o,i){let s=new he,l=[];if(e.events.forEach((c,p,a)=>{if(c.type==="Audio"&&c.trigger===i){let u;l.push(p),c.interaction==="play"?u={...pn(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={...pn(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:aa.generateUUID(),data:{type:o,actions:s}}])}}r("Start","start"),r("MouseDown","mouseDown"),r("MouseUp","mouseUp"),r("KeyDown","keyDown"),r("KeyUp","keyUp")})}function gf(n){let t=n.layers.find(e=>e.type==="light")?.data;if(t?.category==="basic"){let e=At.defaultData("light","phong"),r=t;Object.assign(r,e),r.visible=!1}}function s1(n){la(n,gf),ca(n,gf)}function a1(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&e.geometry.type==="SubdivGeometry"&&(e.geometry.scaleBaked||(e.geometry.scaleBaked=[1,1,1]))})}function l1(n){n.scene.objects.traverse((t,e)=>{(e.type==="Empty"||e.type==="Mesh")&&e.cloner&&!e.cloner.randomnessObject&&!e.cloner.toObject&&!e.cloner.randomness&&(e.cloner={...e.cloner,toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}})})}var yf=24;function xf(n){let t=n.schema??0;t!==yf&&(console.warn("updating from ",t,"to ",yf),t<1&&(ca(n,df),la(n,df),n.schema=1),t<2&&(jS(n),n.schema=2),t<3&&(kS(n),n.schema=3),t<4&&(HS(n),n.schema=4),t<5&&(WS(n),n.schema=5),t<6&&(qS(n),n.schema=6),t<7&&($S(n),n.schema=7),t<8&&(YS(n),n.schema=8),t<9&&(mf(n),n.schema=9),t<10&&(XS(n),n.schema=10),t<11&&(KS(n),n.schema=11),t<12&&(mf(n),n.schema=12),t<13&&(ZS(n),n.schema=13),t<14&&(QS(n),n.schema=14),t<15&&(JS(n),n.schema=15),t<16&&(e1(n),n.schema=16),t<17&&(ca(n,hf),la(n,hf),n.schema=17),t<18&&(ca(n,ff),la(n,ff),n.schema=18),t<19&&(US(n),n.schema=19),t<20&&(t1(n),o1(n),n.schema=20),t<21&&(n1(n),i1(n),n.schema=21),t<22&&(s1(n),n.schema=22),t<23&&(a1(n),n.schema=23),t<24&&(l1(n),n.schema=24))}var ua;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(ua||(ua={}));var bn=ll(vf());import{Object3D as M1,Vector3 as gt,Euler as kl,MathUtils as zf,Matrix4 as bi}from"three";var c1=.5*(Math.sqrt(3)-1),mi=(3-Math.sqrt(3))/6,u1=1/3,sr=1/6,JB=(Math.sqrt(5)-1)/4,eD=(5-Math.sqrt(5))/20,hi=n=>Math.floor(n)|0,Sf=new Float64Array([1,1,-1,1,1,-1,-1,-1,1,0,-1,0,1,0,-1,0,0,1,0,-1,0,1,0,-1]),Rl=new Float64Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]);function pa(n=Math.random){let t=_f(n),e=new Float64Array(t).map(o=>Sf[o%12*2]),r=new Float64Array(t).map(o=>Sf[o%12*2+1]);return function(i,s){let l=0,c=0,p=0,a=(i+s)*c1,u=hi(i+a),d=hi(s+a),f=(u+d)*mi,m=u-f,h=d-f,g=i-m,b=s-h,x,S;g>b?(x=1,S=0):(x=0,S=1);let w=g-x+mi,v=b-S+mi,N=g-1+2*mi,_=b-1+2*mi,y=u&255,I=d&255,A=.5-g*g-b*b;if(A>=0){let C=y+t[I],L=e[C],j=r[C];A*=A,l=A*A*(L*g+j*b)}let P=.5-w*w-v*v;if(P>=0){let C=y+x+t[I+S],L=e[C],j=r[C];P*=P,c=P*P*(L*w+j*v)}let T=.5-N*N-_*_;if(T>=0){let C=y+1+t[I+1],L=e[C],j=r[C];T*=T,p=T*T*(L*N+j*_)}return 70*(l+c+p)}}function wf(n=Math.random){let t=_f(n),e=new Float64Array(t).map(i=>Rl[i%12*3]),r=new Float64Array(t).map(i=>Rl[i%12*3+1]),o=new Float64Array(t).map(i=>Rl[i%12*3+2]);return function(s,l,c){let p,a,u,d,f=(s+l+c)*u1,m=hi(s+f),h=hi(l+f),g=hi(c+f),b=(m+h+g)*sr,x=m-b,S=h-b,w=g-b,v=s-x,N=l-S,_=c-w,y,I,A,P,T,C;v>=N?N>=_?(y=1,I=0,A=0,P=1,T=1,C=0):v>=_?(y=1,I=0,A=0,P=1,T=0,C=1):(y=0,I=0,A=1,P=1,T=0,C=1):N<_?(y=0,I=0,A=1,P=0,T=1,C=1):v<_?(y=0,I=1,A=0,P=0,T=1,C=1):(y=0,I=1,A=0,P=1,T=1,C=0);let L=v-y+sr,j=N-I+sr,Y=_-A+sr,te=v-P+2*sr,ie=N-T+2*sr,U=_-C+2*sr,W=v-1+3*sr,q=N-1+3*sr,F=_-1+3*sr,E=m&255,D=h&255,B=g&255,k=.6-v*v-N*N-_*_;if(k<0)p=0;else{let G=E+t[D+t[B]];k*=k,p=k*k*(e[G]*v+r[G]*N+o[G]*_)}let $=.6-L*L-j*j-Y*Y;if($<0)a=0;else{let G=E+y+t[D+I+t[B+A]];$*=$,a=$*$*(e[G]*L+r[G]*j+o[G]*Y)}let H=.6-te*te-ie*ie-U*U;if(H<0)u=0;else{let G=E+P+t[D+T+t[B+C]];H*=H,u=H*H*(e[G]*te+r[G]*ie+o[G]*U)}let V=.6-W*W-q*q-F*F;if(V<0)d=0;else{let G=E+1+t[D+1+t[B+1]];V*=V,d=V*V*(e[G]*W+r[G]*q+o[G]*F)}return 32*(p+a+u+d)}}function _f(n){let e=new Uint8Array(512);for(let r=0;r<512/2;r++)e[r]=r;for(let r=0;r<512/2-1;r++){let o=r+~~(n()*(256-r)),i=e[r];e[r]=e[o],e[o]=i}for(let r=256;r<512;r++)e[r]=e[r-256];return e}import{Triangle as p1}from"three";var kt=new p1,da=class{constructor(t){this.weightAttribute=null;let e=t.geometry;if(!e.isBufferGeometry||e.attributes.position.itemSize!==3)throw new Error("THREE.MeshSurfaceSampler: Requires BufferGeometry triangle mesh.");e.index&&(e=e.toNonIndexed()),this.geometry=e,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.distribution=null}build(){let t=this.positionAttribute,e=new Float32Array(t.count/3);for(let o=0;o<t.count;o+=3){let i=1;kt.a.fromBufferAttribute(t,o),kt.b.fromBufferAttribute(t,o+1),kt.c.fromBufferAttribute(t,o+2),i*=kt.getArea(),e[o/3]=i}this.distribution=new Float32Array(t.count/3);let r=0;for(let o=0;o<e.length;o++)r+=e[o],this.distribution[o]=r;return this}setRandomGenerator(t){return this.randomFunction=t,this}sample(t,e){if(this.distribution){let r=this.distribution[this.distribution.length-1],o=this.binarySearch(this.randomFunction()*r);return this.sampleFace(o,t,e)}}binarySearch(t){if(!this.distribution)return 0;let e=this.distribution,r=0,o=e.length-1,i=-1;for(;r<=o;){let s=Math.ceil((r+o)/2);if(s===0||e[s-1]<=t&&e[s]>t){i=s;break}else t<e[s]?o=s-1:r=s+1}return i}sampleFace(t,e,r){let o=this.randomFunction(),i=this.randomFunction();return o+i>1&&(o=1-o,i=1-i),kt.a.fromBufferAttribute(this.positionAttribute,t*3),kt.b.fromBufferAttribute(this.positionAttribute,t*3+1),kt.c.fromBufferAttribute(this.positionAttribute,t*3+2),e.set(0,0,0).addScaledVector(kt.a,o).addScaledVector(kt.b,i).addScaledVector(kt.c,1-(o+i)),kt.getNormal(r),this}};import{Matrix4 as v1,Object3D as S1}from"three";import{Matrix4 as Mf}from"three";import{Object3D as m1,Matrix4 as h1}from"three";import{HemisphereLight as Tf}from"three";function Xe(n,t){return t.color(n)}var Vl=n=>"isEntity"in n,ar=n=>"isAbstractMesh"in n,lr=n=>n!==null&&n.objectType==="BooleanObject",Af=n=>n.objectType==="CombinedCamera";var fa=n=>"objectHelper"in n;function d1(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??qr.identity)),e&&(n.updateMatrix(),lr(n.parent)&&ar(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 f1(n,t){d1(n,t),t.name!==void 0&&(n.name=t.name),t.visible!==void 0&&(n.visible=t.visible)}function Nf(n,t,e){f1(n,t),t.color!==void 0&&(n.color=Xe(t.color,e)),t.intensity!==void 0&&(n.intensity=t.intensity),t.shadows!==void 0&&!(n instanceof Tf)&&(n.castShadow=t.shadows),n.shadow&&!(n instanceof Tf)&&t.depth!==void 0&&(n.shadow.camera.far=t.depth,n.shadow.needsUpdate=!0)}function If(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 ma=n=>class extends n{hasEntityChild(){return this.children.some(e=>Vl(e))}isDescendantOf(e){e instanceof m1&&(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 h1().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),Vl(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}};import{Box3 as Of,Line3 as g1,Matrix4 as Fl,Vector3 as Et}from"three";var hn=new Of,Lt=new Et,cr=new Et,gn=new Fl,Cf=[new Et(-1,1,1),new Et(-1,-1,1),new Et(1,-1,1),new Et(1,1,1),new Et(-1,1,-1),new Et(-1,-1,-1),new Et(1,-1,-1),new Et(1,1,-1)],y1=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],x1=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function b1(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 Pf=(n,t,e)=>{if(ar(n)){let r=n.geometry.userData.parameters,o=n.geometry.getAttribute("position"),i=n.geometry.userData.type;i==="SubdivGeometry"?Lt.copy(n.originalGeometry.boundingSphere.center):i==="TextGeometry"||fn.is2DParametricMesh(i)?Lt.set(0,0,r.depth*.5):i==="ConeGeometry"||i==="CubeGeometry"||i==="CylinderGeometry"||i==="DodecahedronGeometry"||i==="HelixGeometry"||i==="IcosahedronGeometry"||i==="PyramidGeometry"||i==="SphereGeometry"||i==="PlaneGeometry"||i==="BackdropGeometry"||i==="TorusGeometry"||i==="TorusKnotGeometry"?Lt.set(0,0,0):o!==void 0&&(b1(hn,o,n.geometry.drawRange.start,n.geometry.drawRange.count<1/0?n.geometry.drawRange.count:o.count),hn.getCenter(Lt)),n.forceComputeSize?hn.getSize(cr).multiplyScalar(.5):cr.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}else if(fa(n)&&n.objectHelper.visible){let r=n.geometryHelper.getAttribute("position");hn.setFromArray(r.array),hn.getCenter(Lt),hn.getSize(cr).multiplyScalar(.5)}else Lt.setScalar(0),cr.setScalar(0);gn.copy(t).multiply(n.matrixWorld),cr.x===0&&cr.y===0&&cr.z===0?e.push(new Et(Lt.x,Lt.y,Lt.z).applyMatrix4(gn)):Cf.forEach(r=>{e.push(r.clone().multiply(cr).add(Lt).applyMatrix4(gn))})},gi=class extends Of{constructor(){super(...arguments);this.matrix=new Fl;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 Fl().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&&Pf(s,r,i)}):Pf(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(gn.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(cr).multiplyScalar(.5),this.getCenter(Lt),gn.copy(this.matrix).setPosition(Lt),this.vertices=Cf.map(e=>e.clone().multiply(cr).applyMatrix4(gn))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=y1.map(([e,r])=>new g1(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new Et))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=x1.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var Bt=n=>"isEntity"in n,Lf=n=>"isAbstractMesh"in n,Dt=n=>class extends ma(n){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new Mf;this._singleBBox=new gi;this._recursiveBBox=new gi;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1;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=>{Bt(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)Bt(o)&&o.traverseEntity(r)}traverseVisibleEntity(r){r(this);for(let o of this.children)Bt(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)Bt(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let r=new Mf,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),r.copy(this.matrixWorld).invert(),r.multiply(o);for(let i of this.children)Bt(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 un(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 un(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 zl=class extends S1{},w1=n=>n.type==="Mesh",ur=class extends zl{constructor(e){super();this.object=e;this.hiddenMatrix=new v1;this.uuidOrigin=e.uuid,this.matrixAutoUpdate=!0;for(let r of this.object.children)if(Bt(r)){let o=new ur(r);o.visible=!0,this.add(o),o.matrixAutoUpdate=!1,o.matrix=r.matrix.clone(),o.matrix.premultiply(r.hiddenMatrix)}}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return w1(this.object)}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(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,e=!0);for(let r of this.children)r.updateMatrixWorld(e)}get isLight(){return this.object.isLight}get layers(){return this.object.layers}set layers(e){}get isCamera(){return!1}get geometry(){if(this.object.geometry)return this.object.geometry}get material(){if(this.object.material)return this.object.material}};var _1,yn=new Promise(n=>{_1=n});import{Triangle as T1,Vector3 as wo}from"three";var Ef=-1,A1=1,Bf={x:[1,0,0],"-x":[-1,0,0],y:[0,1,0],"-y":[0,-1,0],z:[0,0,1],"-z":[0,0,-1]},Df={polygon_center:0,edge:1,vertex:2},yi=(n,t)=>(e,r)=>!t||e===0||n===0?0:n*r/100,me=(n,t)=>{let e=Math.abs(t),r=e*-1;return(n-Ef)*(e-r)/(A1-Ef)+r};function Gf(n){let t=[],e={};for(var r=0,o=n.length;r<o;r++){var i=JSON.stringify(n[r].pos.map(s=>Math.round(s*1e4)/1e4));e[i]||(t.push(n[r]),e[i]=!0)}return t}var N1=new wo,ha=new wo,I1=new wo,P1=new wo;function xn(n,t){let e=I1.fromArray(n),r=P1.fromArray(t);ha.copy(r).sub(e);let o=ha.length();return ha.normalize().multiplyScalar(o*.5),N1.copy(e).add(ha).toArray()}var Gt=new T1,ga=new wo,ya=new wo,So=new wo;function Rf(n){let t=[];for(let e=0;e<=n.index.count;e++)if(ga.fromArray(n.index.array,e*3),Gt.setFromAttributeAndIndices(n.attributes.position,ga.x,ga.y,ga.z),Gt.getNormal(ya),Gt.getMidpoint(So),!(isNaN(So.x)||isNaN(So.y)||isNaN(So.z))){let{a:r,b:o,c:i}=Gt,s=r.toArray(),l=o.toArray(),c=i.toArray(),p=r.distanceTo(o),a=o.distanceTo(i),u=i.distanceTo(r),d=xn(s,l),f=xn(l,c),m=xn(c,s),h=[p,a,u],g=Math.max(...h),b=h.filter(w=>Math.round(w)===Math.round(g)).length>1,x=[],S=Gt.getMidpoint(So).toArray();g===p&&!b&&(x=[f,m,m],S=d),g===a&&!b&&(x=[d,m,m],S=f),g===u&&!b&&(x=[d,f,f],S=m),b&&(x=[d,f,m]),t.push({vertices:[s,l,c],faceCenters:x,midpoint:S,norm:Gt.getNormal(ya).toArray()})}return t}function Vf(n){let t=[],{position:e}=n.attributes;for(let r=0;r<e.count;r++){Gt.setFromAttributeAndIndices(e,r*3,r*3+1,r*3+2),Gt.getNormal(ya),Gt.getMidpoint(So);let o=Gt.a.toArray(),i=Gt.b.toArray(),s=Gt.c.toArray();t.push({vertices:[o,i,s],faceCenters:[xn(o,i),xn(i,s),xn(s,o)],midpoint:So.toArray(),norm:ya.toArray()})}return t}var O1=4,C1=.5,jl=n=>.5*(1-Math.cos(n*Math.PI)),Ul=class{constructor(){this.perlin=new Array(4095+1)}noise(t,e=0,r=0){if(this.perlin==null){this.perlin=new Array(4095+1);for(let b=0;b<4095+1;b++)this.perlin[b]=Math.random()}t<0&&(t=-t),e<0&&(e=-e),r<0&&(r=-r);let o=Math.floor(t),i=Math.floor(e),s=Math.floor(r),l=t-o,c=e-i,p=r-s,a,u,d=0,f=.5,m,h,g;for(let b=0;b<O1;b++){let x=o+(i<<4)+(s<<8);a=jl(l),u=jl(c),m=this.perlin[x&4095],m+=a*(this.perlin[x+1&4095]-m),h=this.perlin[x+16&4095],h+=a*(this.perlin[x+16+1&4095]-h),m+=u*(h-m),x+=256,h=this.perlin[x&4095],h+=a*(this.perlin[x+1&4095]-h),g=this.perlin[x+16&4095],g+=a*(this.perlin[x+16+1&4095]-g),h+=u*(g-h),m+=jl(p)*(h-m),d+=m*f,f*=C1,o<<=1,l*=2,i<<=1,c*=2,s<<=1,p*=2,l>=1&&(o++,l--),c>=1&&(i++,c--),p>=1&&(s++,p--)}return d}noiseSeed(t){let e=(()=>{let s,l;return{setSeed(c){l=s=(c??Math.random()*4294967296)>>>0},getSeed(){return s},rand(){return l=(1664525*l+1013904223)%4294967296,l/4294967296}}})();e.setSeed(t),this.perlin=new Array(4095+1);for(let r=0;r<4095+1;r++)this.perlin[r]=e.rand()}},Ff=Ul;var ct=1e-4,pr,kf,Hf,Wf,jf=new gt,Uf=new gt;yn.then(n=>{pr=n,kf=[pr.get_face_center,pr.get_edge_midpoint,pr.get_vertex_position],Hf=[pr.get_face_normal,pr.get_edge_normal,pr.get_vertex_normal],Wf=[pr.face_count,pr.edge_count,pr.vertex_count]});var L1=new bi,E1=new bi,ro=new gt,_o=new gt,xi=new gt,Hl=new gt,B1=new gt,D1=new gt;var Br=new Ff,Dr=class extends M1{constructor(e,r={}){super();this.objectForSample=void 0;this.object=e;let o=e.recursiveBBox.getSize(new gt),i=.1;this.parameters=yo.defaultData(o.toArray(),i),cn(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);break;case"toObject":this._updateToObject(this.parameters)}this.parameters.type==="toObject"?this.objectForSample&&this.objectForSample.children.forEach(e=>e.updateMatrix()):this.children.forEach(e=>e.updateMatrix())}_updateCount(e){let r;if(e!==void 0?r=e:r=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count,this.parameters.type==="toObject"&&!this.parameters.toObject.object&&(r=0),this.parameters.type==="toObject"&&this.objectForSample){for(let i=0,s=this.children.length;i<s;++i)this.remove(this.children[0]);let o=[...this.objectForSample.children].filter(i=>i instanceof ur&&i.uuidOrigin===this.object.uuid);if(o.length===r)return;if(o.length<r)for(let i=0,s=r-o.length;i<s;++i){let l=new ur(this.object);l.visible=!0,this.objectForSample.add(l),this.parameters.hideBase&&this.setHideBase(!0)}else for(let i=0,s=o.length-r;i<s;++i)this.objectForSample.remove(o[i])}else{if(this.children.length===r)return;if(this.children.length<r)for(let o=0,i=r-this.children.length;o<i;++o){let s=new ur(this.object);s.visible=!0,this.add(s),this.parameters.hideBase&&this.setHideBase(!0)}else for(let o=0,i=this.children.length-r;o<i;++o)this.remove(this.children[0])}}_updateRadial(e){let r=e.radial,o=r.start*zf.DEG2RAD,i=r.end*zf.DEG2RAD,s=o-i,l=new kl(r.rotation[0],r.rotation[1],r.rotation[2]),c;switch(r.axis){case"z":c=new gt(0,0,1);break;case"y":c=new gt(0,1,0);break;default:case"x":c=new gt(1,0,0);break}let p=e.randomnessObject,a=p.noiseType==="perlin";Br.noiseSeed(p.seed);let u=pa((0,bn.default)(p.seed)),d=yi(p.strength,this.parameters.randomness);for(let[f,m]of this.children.entries()){let h=f*(p.freqScale/10)+p.movement,g=a?Br.noise(h):u(h,h);m.scale.x=r.scale[0]+d(f,me(g,p.scale[0]))||ct,m.scale.y=r.scale[1]+d(f,me(g,p.scale[1]))||ct,m.scale.z=r.scale[2]+d(f,me(g,p.scale[2]))||ct,m.position.setScalar(0);let b=s/e.count*f-o;switch(r.axis){case"x":m.rotation.set(0,b,0);break;case"y":m.rotation.set(0,0,b);break;case"z":m.rotation.set(b,0,0);break}m.translateOnAxis(c,r.radius),m.position.x+=r.position[0]+d(f,me(g,p.position[0])),m.position.y+=r.position[1]+d(f,me(g,p.position[1])),m.position.z+=r.position[2]+d(f,me(g,p.position[2]));let x=d(f,me(g,p.rotation[0])),S=d(f,me(g,p.rotation[1])),w=d(f,me(g,p.rotation[2]));r.alignment===!0?(m.rotation.x+=l.x+x,m.rotation.y+=l.y+S,m.rotation.z+=l.z+w):m.rotation.set(l.x+x,l.y+S,l.z+w)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,o=new kl(r.rotation[0],r.rotation[1],r.rotation[2]),i=e.randomnessObject,s=i.noiseType==="perlin";Br.noiseSeed(i.seed);let l=pa((0,bn.default)(i.seed)),c=yi(i.strength,this.parameters.randomness);for(let[p,a]of this.children.entries()){let u=p*(i.freqScale/10)+i.movement,d=s?Br.noise(u):l(u,u),f=c(p,me(d,i.rotation[0])),m=c(p,me(d,i.rotation[1])),h=c(p,me(d,i.rotation[2]));a.scale.x=1+(r.scale[0]-1)*p+c(p,me(d,i.scale[0]))||ct,a.scale.y=1+(r.scale[1]-1)*p+c(p,me(d,i.scale[1]))||ct,a.scale.z=1+(r.scale[2]-1)*p+c(p,me(d,i.scale[2]))||ct,a.rotation.x=o.x*p+f,a.rotation.y=o.y*p+m,a.rotation.z=o.z*p+h,a.position.x=r.position[0]*p+c(p,me(d,i.position[0])),a.position.y=r.position[1]*p+c(p,me(d,i.position[1])),a.position.z=r.position[2]*p+c(p,me(d,i.position[2]))}}_updateGrid(e){let r=0,o=e.grid,i=e.randomnessObject,s=yi(i.strength,this.parameters.randomness),l=i.noiseType==="perlin";Br.noiseSeed(i.seed);let c=wf((0,bn.default)(i.seed));if(o.useCenter===!0){let p={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},a=new gt(o.size[0]*(o.count[0]-p.x)*.5,o.size[1]*(o.count[1]-p.y)*.5,o.size[2]*(o.count[2]-p.z)*.5);for(let u=0;u<o.count[0];u++)for(let d=0;d<o.count[1];d++)for(let f=0;f<o.count[2];f++){let m=[(u+1)*(i.freqScale/10)+i.movement,(d+1)*(i.freqScale/10)+i.movement,(f+1)*(i.freqScale/10)+i.movement],h=l?Br.noise(...m):c(...m),g=this.children[r++];g.scale.x=1+s(r,me(h,i.scale[0]))||ct,g.scale.y=1+s(r,me(h,i.scale[1]))||ct,g.scale.z=1+s(r,me(h,i.scale[2]))||ct;let b=s(r,me(h,i.rotation[0])),x=s(r,me(h,i.rotation[1])),S=s(r,me(h,i.rotation[2]));g.rotation.set(b,x,S),g.position.x=o.size[0]*u-a.x+s(r,me(h,i.position[0])),g.position.y=o.size[1]*d-a.y+s(r,me(h,i.position[1])),g.position.z=o.size[2]*f-a.z+s(r,me(h,i.position[2]))}}else for(let p=0;p<o.count[0];p++)for(let a=0;a<o.count[1];a++)for(let u=0;u<o.count[2];u++){let d=[(p+1)*(i.freqScale/10)+i.movement,(a+1)*(i.freqScale/10)+i.movement,(u+1)*(i.freqScale/10)+i.movement],f=l?Br.noise(...d):c(...d),m=this.children[r++];m.scale.x=1+s(r,me(f,i.scale[0]))||ct,m.scale.y=1+s(r,me(f,i.scale[1]))||ct,m.scale.z=1+s(r,me(f,i.scale[2]))||ct;let h=s(r,me(f,i.rotation[0])),g=s(r,me(f,i.rotation[1])),b=s(r,me(f,i.rotation[2]));m.rotation.set(h,g,b),m.position.x=o.size[0]*p+s(r,me(f,i.position[0])),m.position.y=-o.size[1]*a+s(r,me(f,i.position[1])),m.position.z=-o.size[2]*u+s(r,me(f,i.position[2]))}}_updateToObject(e){if(e.type!=="toObject")throw new Error;let{toObject:r}=e,o=new kl(r.rotation[0],r.rotation[1],r.rotation[2]),i=e.randomnessObject,s=i.noiseType==="perlin";Br.noiseSeed(i.seed);let l=pa((0,bn.default)(i.seed)),c=yi(i.strength,this.parameters.randomness);if(!r.object){for(let[,b]of this.children.entries())b.position.set(0,0,0),b.scale.setScalar(1),b.rotation.set(0,0,0);this.objectForSample=void 0;return}if(!this.objectForSample)return;let p=this.getSubdivData(),a=[],u=b=>{let x=b.length,S=b.map(N=>N[0]).reduce((N,_)=>N+_,0),w=b.map(N=>N[1]).reduce((N,_)=>N+_,0),v=b.map(N=>N[2]).reduce((N,_)=>N+_,0);return[S/x,w/x,v/x]},d=b=>Math.round(b*1e6)/1e6;p.forEach(b=>{let x=p.filter(S=>d(b.pos[0])===d(S.pos[0])&&d(b.pos[1])===d(S.pos[1])&&d(b.pos[2])===d(S.pos[2]));x.length>1?a.push({pos:b.pos,norm:u(x.map(S=>S.norm))}):a.push(b)});let f=Gf(a);if(p.length>0){let b=Math.round(f.length*r.count/100);this._updateCount(b)}this.objectForSample.updateMatrixWorld();let m=new da(this.objectForSample).build(),h=Bf[r.axis],g=this.objectForSample.children.filter(b=>b instanceof ur&&b.uuidOrigin===this.object.uuid);m.setRandomGenerator((0,bn.default)(this.object.uuid+r.seed));for(let[b,x]of g.entries()){let S=b*(i.freqScale/10)+i.movement,w=s?Br.noise(S):l(S,S),v=c(b,me(w,i.rotation[0])),N=c(b,me(w,i.rotation[1])),_=c(b,me(w,i.rotation[2]));r.spreadType==="random"?m.sample(xi,Hl):(f.length&&(xi.fromArray(f[b].pos),Hl.fromArray(f[b].norm)),this.objectForSample.objectType==="SubdivObject"&&xi.applyMatrix4(L1.copy(this.objectForSample.matrixWorld).invert())),xi.applyMatrix4(this.object.hiddenMatrix.clone().invert()),x.position.copy(xi),ro.fromArray(h);let y=r.align==="normal"?Hl:this.object.getWorldDirection(D1),I=_o.fromArray(r.position);_o.x+=_o.x+c(b,me(w,i.position[0])),_o.y+=_o.y+c(b,me(w,i.position[1])),_o.z+=_o.z+c(b,me(w,i.position[2]));let A=Math.acos(y.dot(ro)),P=B1.crossVectors(ro,y).normalize(),T=E1.makeRotationAxis(P,A),C=y.clone().cross(this.object.up).normalize(),L=C.clone().cross(y).normalize(),j=new bi().makeBasis(C,y,L),Y=new gt(ro.y,ro.z,ro.x).normalize(),te=Y.clone().cross(ro).normalize(),ie=new bi().makeBasis(Y,ro,te).invert(),U=new bi().multiplyMatrices(j,ie);x.rotation.setFromRotationMatrix(U),I.applyMatrix4(T),x.position.add(I),x.rotation.x=x.rotation.x+o.x+v,x.rotation.y=x.rotation.y+o.y+N,x.rotation.z=x.rotation.z+o.z+_,x.scale.setScalar(1),x.scale.x=x.scale.x+r.scale[0]+c(b,me(w,i.scale[0]))||ct,x.scale.y=x.scale.y+r.scale[1]+c(b,me(w,i.scale[1]))||ct,x.scale.z=x.scale.z+r.scale[2]+c(b,me(w,i.scale[2]))||ct,x.scale.multiply(this.object.scale),x.hiddenMatrix=this.object.hiddenMatrix}}setObjectForSample(e){this.objectForSample=e}getSubdivData(){if(!this.objectForSample)return[];let e=this.parameters.toObject.spreadType;if(e==="random")return[];if(this.objectForSample.objectType==="SubdivObject"){let r=this.objectForSample,o=Df[e],i=Wf[o],s=kf[o],l=Hf[o],c=[],p=i(r.subdivPointer);for(let a=0;a<=p-1;a++){let u=s(r.subdivPointer,a),d=l(r.subdivPointer,a);jf.fromArray(u).applyMatrix4(r.matrixWorld),Uf.fromArray(d),c.push({pos:jf.toArray(),norm:Uf.toArray()})}return c}else return(this.objectForSample.geometry.index?Rf(this.objectForSample.geometry):Vf(this.objectForSample.geometry)).map((o,i)=>e==="polygon_center"?{pos:o.midpoint,norm:o.norm}:e==="vertex"?[{pos:o.vertices[0],norm:o.norm},{pos:o.vertices[1],norm:o.norm},{pos:o.vertices[2],norm:o.norm}]:e==="edge"?[{pos:o.faceCenters[0],norm:o.norm},{pos:o.faceCenters[1],norm:o.norm},{pos:o.faceCenters[2],norm:o.norm}]:[]).flat()}removeSampleObjectClones(){if(this.objectForSample)for(var e=this.objectForSample.children.length-1;e>=0;e--){let r=this.objectForSample.children[e];r instanceof ur&&r.uuidOrigin===this.object.uuid&&this.objectForSample.remove(r)}}fromClonerState(e){if(!e)return this;e.hideBase!==void 0&&this.setHideBase(e.hideBase);let r=e.hasOwnProperty("type");return e.toObject?.hasOwnProperty("object")&&!!this.parameters.toObject.object&&!e.toObject.object&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),this.parameters.type==="toObject"&&(r?e.type!=="toObject":!1)&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),cn(this.parameters,e),this.update(),this}};import{HemisphereLight as tA,Scene as rA,Vector3 as oA,Fog as nA,Box3 as iA}from"three";import{Camera as bT,OrthographicCamera as vT,PerspectiveCamera as ST,Vector3 as Zt,Object3D as Ph,Quaternion as wT}from"three";import{BoxGeometry as G1}from"three";var dr=n=>{var t;return t=class extends n{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new G1(30,30,30),t};import{Camera as j1,LineSegments as U1,BufferGeometry as k1,LineBasicMaterial as H1,Color as ql,Vector3 as W1,Float32BufferAttribute as $f}from"three";import{Ray as R1,Sphere as V1,Matrix4 as F1,Vector3 as Gr}from"three";var xa=new R1,Wl=new V1,qf=new F1,fr=(n,t,e,r,o=!1)=>{let i=t,s=n.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),Wl.copy(i.boundingSphere),Wl.applyMatrix4(s),e.ray.intersectsSphere(Wl)===!1||(qf.copy(s).invert(),xa.copy(e.ray).applyMatrix4(qf),i.boundingBox!==null&&xa.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 b=Math.max(0,f.start),x=Math.min(u.count,f.start+f.count);for(m=b,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,xa,d,c,p,a),l){l.faceIndex=Math.floor(m/3),r.push(l);return}}else{let x=i.attributes.position,S=new Gr,w=new Gr,v=new Gr,N=new Gr,_=2,I=1/((n.scale.x+n.scale.y+n.scale.z)/3),A=I*I,P=Math.max(0,f.start),T=Math.min(x.count,f.start+f.count);for(let C=P,L=T-1;C<L;C+=_){if(S.fromBufferAttribute(x,C),w.fromBufferAttribute(x,C+1),xa.distanceSqToSegment(S,w,N,v)>A)continue;N.applyMatrix4(n.matrixWorld);let Y=e.ray.origin.distanceTo(N);Y<e.near||Y>e.far||r.push({distance:Y,point:v.clone().applyMatrix4(n.matrixWorld),object:n})}}function g(b,x,S,w,v,N,_){let y=new Gr,I=new Gr,A=new Gr,P=new Gr,T=new Gr;if(y.fromBufferAttribute(w,v),I.fromBufferAttribute(w,N),A.fromBufferAttribute(w,_),S.intersectTriangle(y,I,A,!1,P)===null)return null;T.copy(P),T.applyMatrix4(b.matrixWorld);let L=x.ray.origin.distanceTo(T);return L<x.near||L>x.far?null:{faceIndex:1,distance:L,point:T.clone(),object:b}}};var ba=new W1,Rt=new j1,$l=class extends U1{constructor(e){let r=new k1,o=new H1({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],s=[],l={},c=new ql(15711266),p=new ql(15711266),a=new ql(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 $f(i,3)),r.setAttribute("color",new $f(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;Rt.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;Ht("n1",r,e,Rt,-i,-s,l),Ht("n2",r,e,Rt,i,-s,l),Ht("n3",r,e,Rt,-i,s,l),Ht("n4",r,e,Rt,i,s,l);let c=l;Ht("f1",r,e,Rt,-i,-s,c),Ht("f2",r,e,Rt,i,-s,c),Ht("f3",r,e,Rt,-i,s,c),Ht("f4",r,e,Rt,i,s,c);let p=c,a=.5;Ht("u1",r,e,Rt,i*.7*a,s*1.1,p),Ht("u2",r,e,Rt,-i*.7*a,s*1.1,p),Ht("u3",r,e,Rt,0,s*(1.1+.9*a),p),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function Ht(n,t,e,r,o,i,s){ba.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],ba.x,ba.y,ba.z)}}var va=class extends dr($l){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){fr(this.object,this.geometry,e,r,!0)}};import{DirectionalLightHelper as q1}from"three";var vn=class extends dr(q1){constructor(e,r=15,o=10066329){super(e,r,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,r){fr(this.object,vn.geometryHelper,e,r)}};import{AxesHelper as $1}from"three";var Sn=class extends dr($1){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){fr(this.object,Sn.geometryHelper,e,r)}update(){}};import{PointLightHelper as Y1}from"three";var wn=class extends dr(Y1){constructor(e,r=15,o=6710886){super(e,r,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,r){fr(this.object,wn.geometryHelper,e,r)}};import{SpotLightHelper as X1,Vector3 as K1}from"three";var Sa=class extends dr(X1){constructor(e,r=6710886){super(e,r);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,r){fr(this.object,Sa.geometryHelper,e,r)}update(){if(this.object!==void 0){let e=Sa._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)}}},vi=Sa;vi._vector=new K1;import{CubicBezierCurve as wa,EllipseCurve as Z1,LineCurve as _a,LineCurve3 as Q1,MathUtils as J1,QuadraticBezierCurve as Xl,SplineCurve as ew,Vector2 as nt,Vector3 as Kf}from"three";var Si=1e-12,_n=class{constructor(t){this.position=new nt;this.startPosition=new nt;this.uuid=J1.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 _n(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Tn=class extends _n{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new Tn(this.parent).copy(this)}},Wt=class extends _n{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new Tn(this),new Tn(this))}static create(e,r){let o=new Wt(e,new nt(...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 Wt(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 nt,r=new nt){let[o,i]=this.computeTangents();return o&&i&&(Yf(o,e),Yf(i,r)),[e,r]}computeTangent(e=new nt){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new nt){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function Yf(n,t=new nt){let e=n.length();return t.set(-n.y/e,n.x/e)}var Kl=n=>n,An=new nt,Ta=new nt,tw=new nt,rw=new nt,ow=new nt,nw=new nt,Zf=new Kf,Qf=new Kf;function Jf(n){let t=new nt;t.addVectors(n.v0,An.subVectors(n.v1,n.v0).multiplyScalar(2/3));let e=new nt;return e.addVectors(n.v2,Ta.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new wa(n.v0,t,e,n.v2)}function wi(n,t,e=Number.EPSILON){return Math.abs(n-t)<e}function iw(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function sw(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function Zl(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 em(n,t,e){return Xf(n,t)&&Xf(t,e)&&Yl(n.position,t.position,e.position)}function Yl(n,t,e){return An.copy(t).sub(n).cross(Ta.copy(e).sub(n))===0}function tm(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 rm(n,t,e){let r=n.distanceTo(e),o=t.distanceTo(e);return r<o?t:n}function om(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 Zl(t,n,e)>Math.PI&&(a*=-1),wi(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 Ql(n,t){return n.position.equals(n.controls[1].position)&&t.position.equals(t.controls[0].position)}function Xf(n,t){return Yl(n.position,n.controls[1].position,t.position)&&Yl(n.position,t.controls[0].position,t.position)}function nm(n,t,e,r,o=.5){let i=An.subVectors(t,n).multiplyScalar(o).add(n),s=Ta.subVectors(e,t).multiplyScalar(o).add(t),l=tw.subVectors(r,e).multiplyScalar(o).add(e),c=i,p=rw.subVectors(s,i).multiplyScalar(o).add(i),a=ow.subVectors(l,s).multiplyScalar(o).add(s),u=l,d=nw.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 im(n,t,e=12,r=!0){let o=Qf.set(0,0,0),i,s=0,l=[];for(let c=0;c<t.length;c++){let p=Kl(t[c]),a=An,u=oo(p,e);l.push(u);for(let d=0;d<=u;d++)if(p instanceof wa||p instanceof Xl||p instanceof _a){if(p.getPoint(d/u,a),o.set(a.x,a.y,0),i!==void 0&&sw(i,o))continue;i===void 0&&(i=Zf),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 sm(n,t,e,r=12,o=!0){let i=Qf.set(0,0,0),s=0,l=[];for(let c=0;c<t.length;c++){if(e[c]===!1)continue;let p,a=Kl(t[c]),u=An,d=oo(a,r);l.push(d);for(let f=0;f<=d;f++)if(a instanceof wa||a instanceof Xl||a instanceof _a){if(a.getPoint(f/d,u),i.set(u.x,u.y,0),p?.equals(i))continue;p===void 0?p=Zf:(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 Jl(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=oo(s.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=c),l+=c}s.curveAfter!==void 0&&(l+=oo(s.curveAfter,t)),r.push(l)}return n.length>0&&e&&n[0].roundedCurveCorner!==void 0&&(r[n.length-1]+=oo(n[0].roundedCurveCorner,t)*.5),r}function oo(n,t=12){return n&&n instanceof Z1?t*2:n&&(n instanceof _a||n instanceof Q1)?1:n&&n instanceof ew?t*n.points.length:t}function am(n,t,e=12,r=!0){let o,i=0;for(let s=0;s<t.length;s++){let l=Kl(t[s]),c=oo(l,e),p=An;for(let a=0;a<=c;a++)if(l instanceof wa||l instanceof Xl||l instanceof _a){if(l.getPoint(a/c,p),o!==void 0&&iw(o,p,Si))continue;o===void 0&&(o=Ta),o.copy(p),n.push(p.x,p.y),i++}}return wi(n[0],n[n.length-2],Si)&&wi(n[1],n[n.length-1],Si)&&(n.pop(),n.pop()),r&&i>1&&!(wi(n[i-1],n[1],Si)&&wi(n[i-2],n[0],Si))&&(n.push(n[0],n[1]),i++),n}import{EventDispatcher as gT,Matrix3 as yT,Vector3 as tu}from"three";import{EventDispatcher as aw,Plane as lw,Shape as lm,Vector2 as Rr,Vector3 as cw,MathUtils as ec,LineCurve as tc,QuadraticBezierCurve as cm,CubicBezierCurve as Aa}from"three";var rc=new Rr,uw=new Rr,pw=new Rr,dw=new Rr,fw=new Rr,mw=new Rr,ve=class extends lm{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new aw;this.plane=new lw(new cw(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=ec.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,o){let i=new ve;return i.isClosed=e.isClosed,i.points=e.points.map(s=>Wt.create(s.id,s.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(s=>ve.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=rc.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=ec.generateUUID()){let i;e instanceof Rr?i=e:i=new Rr(e,r);let s=new Wt(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 im(e,o?this.roundedCurves:this.curves,r,this.autoClose),i.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Jl(this.points,e,!1),this.roundedCurveDivisions=Jl(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return sm(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),am(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=oo(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(Ql(i,s)){let u=i.position.distanceTo(s.position);return i.position.distanceTo(rc.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){Ql(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&&em(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(),b=f.getLength(),x=Math.min(a,g*.499),S=Math.min(a,b*.499),w=Math.min(x,S),v=1-w/g,N=w/b,_=d.getPointAt(v,rc),y=f.getPointAt(N,uw);this._subSplitCurve(d,m,v,_,void 0),this._subSplitCurve(f,h,N,void 0,y);let I;if(this.useCubicForRoundedCorners){let A=Zl(_,l.position,y)/2,P=Math.tan(A)*_.distanceTo(l.position),[T,C]=tm(_,y,P,pw,dw),L=rm(T,C,l.position),[j,Y]=om(L,_,y,P,fw,mw);I=new Aa(_.clone(),j.clone(),Y.clone(),y.clone())}else I=new cm(_.clone(),l.position.clone(),y.clone());l.roundedCurveCorner=I,this.roundedCurves.splice(i+o,0,I),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,r,o,i,s){if(e instanceof tc)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=nm(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 ve(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 Wt(ec.generateUUID(),new Rr(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 ve;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let r=(i,s)=>{s instanceof Aa&&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 cm&&(i[l]=Jf(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 Aa?(f=this.createPoint(u.v0),f.controls[1].position.copy(u.v1)):u instanceof tc&&(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 Aa?p.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(p.v2),a=!0):p instanceof tc&&p.v2.equals(s[0].position)&&(a=!0),this.isClosed=a,s};return this.points=o(e.curves),e instanceof lm&&(this.shapeHoles=e.holes.map(i=>{let s=new ve;return s.fromShape(i),s})),this.update(),this}};import{BufferAttribute as Ia,BufferGeometry as bw}from"three";var Oe;(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"})(Oe||(Oe={}));var Ue;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Ue||(Ue={}));function ce(n,t){if(!n)throw t||"Assertion Failed!"}var ae=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){ce(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){ce(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){ce(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){ce(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}(),_i=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}(),Na=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}(),Nn=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}(),um=function(){function n(){var t=new Nn,e=new _i,r=new Na(0),o=new Na(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 Na(0),r=new Na(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;ce(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;ce(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 Nn,e=new Nn,r=new _i,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 Nn;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!r){var s=new _i;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 _i;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 Nn;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 _i;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&&ae.vertCCW(r.Lprev.Org,r.Org,i.Lnext.Lnext.Org)&&ae.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){ce(o.prev===i),c=o.anEdge;do ce(c.Sym!==c),ce(c.Sym.Sym===c),ce(c.Lnext.Onext.Sym===c),ce(c.Onext.Sym.Lnext===c),ce(c.Lface===o),c=c.Lnext;while(c!==o.anEdge)}for(ce(o.prev===i&&o.anEdge===null),l=e,l=e;(s=l.next)!==e;l=s){ce(s.prev===l),c=s.anEdge;do ce(c.Sym!==c),ce(c.Sym.Sym===c),ce(c.Lnext.Onext.Sym===c),ce(c.Onext.Sym.Lnext===c),ce(c.Org===s),c=c.Onext;while(c!==s.anEdge)}for(ce(s.prev===l&&s.anEdge===null),p=r,p=r;(c=p.next)!==r;p=c)ce(c.Sym.next===p.Sym),ce(c.Sym!==c),ce(c.Sym.Sym===c),ce(c.Org!==null),ce(c.Dst!==null),ce(c.Lnext.Onext.Sym===c),ce(c.Onext.Sym.Lnext===c);ce(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}(),pm=function(){function n(){this.handle=null}return n}(),dm=function(){function n(){this.key=null,this.node=0}return n}(),hw=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 pm,this.handles[r]=new dm;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,ce(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 pm;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new dm}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;ce(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}(),oc=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}(),fm=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),gw=function(){function n(t,e){this.frame=t,this.leq=e,this.head=new fm,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 fm;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}(),yw=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?ae.vertLeq(i.Org,s.Org)?ae.edgeSign(s.Dst,i.Org,s.Org)<=0:ae.edgeSign(i.Dst,s.Org,i.Org)>=0:ae.edgeSign(s.Dst,o,s.Org)<=0;if(s.Dst===o)return ae.edgeSign(i.Dst,o,i.Org)>=0;var l=ae.edgeEval(i.Dst,o,i.Org),c=ae.edgeEval(s.Dst,o,s.Org);return l>=c},n.deleteRegion=function(t,e){e.fixUpperEdge&&ce(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},n.fixUpperEdge=function(t,e,r){ce(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 oc;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 Oe.ODD:return(e&1)!==0;case Oe.NONZERO:return e!==0;case Oe.POSITIVE:return e>0;case Oe.NEGATIVE:return e<0;case Oe.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 ce(ae.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,ce(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=ae.vertL1dist(e,t),i=ae.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(ae.vertLeq(o.Org,i.Org)){if(ae.edgeSign(i.Dst,o.Org,i.Org)>0)return!1;ae.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(ae.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(ce(!ae.vertEq(o.Dst,i.Dst)),ae.vertLeq(o.Dst,i.Dst)){if(ae.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(ae.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 Nn,f,m;if(ce(!ae.vertEq(p,c)),ce(ae.edgeSign(c,t.event,s)<=0),ce(ae.edgeSign(p,t.event,l)>=0),ce(s!==t.event&&l!==t.event),ce(!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(ae.vertLeq(s,l)){if(ae.edgeSign(p,s,l)>0)return!1}else if(ae.edgeSign(c,l,s)<0)return!1;return n.debugEvent(t),ae.intersect(c,s,p,l,d),ce(Math.min(s.t,c.t)<=d.t),ce(d.t<=Math.max(l.t,p.t)),ce(Math.min(p.s,c.s)<=d.s),ce(d.s<=Math.max(l.s,s.s)),ae.vertLeq(d,t.event)&&(d.s=t.event.s,d.t=t.event.t),f=ae.vertLeq(s,l)?s:l,ae.vertLeq(f,d)&&(d.s=f.s,d.t=f.t),ae.vertEq(d,s)||ae.vertEq(d,l)?(n.checkForRightSplice(t,e),!1):!ae.vertEq(c,t.event)&&ae.edgeSign(c,t.event,d)>=0||!ae.vertEq(p,t.event)&&ae.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):(ae.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),ae.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),ae.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),ae.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}ae.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,ae.vertEq(o.Org,r)){ce(!1),n.spliceMergeVertices(t,o,r.anEdge);return}if(!ae.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}ce(!1),e=n.topRightRegion(e),c=n.regionBelow(e),s=c.eUp.Sym,i=l=s.Onext,c.fixUpperEdge&&(ce(i!==s),n.deleteRegion(t,c),t.mesh.delete(s),s=i.Oprev),t.mesh.splice(r.anEdge,s),ae.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 oc;if(p.eUp=e.anEdge.Sym,r=t.dict.search(p).key,o=n.regionBelow(r),!!o){if(s=r.eUp,l=o.eUp,ae.edgeSign(s.Dst,e,s.Org)===0){n.connectLeftDegenerate(t,r,e);return}if(i=ae.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);ce(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 oc,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 gw(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||(ce(e.fixUpperEdge),ce(++r===1)),ce(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,ae.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 hw(i,ae.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,ce(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||!ae.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}(),xw=function(){function n(){this.mesh=new um,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=Oe.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 b=0;b<3;++b)i=e.coords[b],i<p[b]&&(p[b]=i,m[b]=e),i>c[b]&&(c[b]=i,f[b]=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(;ae.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;ae.vertLeq(r.Org,r.Dst);r=r.Lnext);o=r.Lprev;for(var i=void 0;r.Lnext!==o;)if(ae.vertLeq(r.Dst,o.Org)){for(;o.Lnext!==r&&(ae.edgeGoesLeft(o.Lnext)||ae.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&&(ae.edgeGoesRight(r.Lprev)||ae.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===Ue.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===Ue.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 um),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=Oe.ODD),e===void 0&&(e=Ue.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_(),yw.computeInterior(this,s);var l=this.mesh;return e===Ue.BOUNDARY_CONTOURS?this.setWindingNumber_(l,1,!0):this.tessellateInterior_(l),s&&l.check(),e===Ue.BOUNDARY_CONTOURS?this.outputContours_(l,o):this.outputPolymesh_(l,e,r,o),!0},n}();function To(n){var t=n.windingRule,e=t===void 0?Oe.ODD:t,r=n.elementType,o=r===void 0?Ue.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 b=new xw;n.edgeCreateCallback&&(b.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(b.vertexIdCallback=n.vertexIdCallback);for(var x=0;x<d.length;x++)b.addContour(c||2,d[x]);return b.tesselate(e,o,s,c,a,m),{vertices:b.vertices,vertexIndices:b.vertexIndices,vertexCount:b.vertexCount,elements:b.elements,elementCount:b.elementCount,mesh:g?b.mesh:void 0}}}var SR=Oe.ODD,wR=Oe.NONZERO,_R=Oe.POSITIVE,TR=Oe.NEGATIVE,AR=Oe.ABS_GEQ_TWO,NR=Ue.POLYGONS,IR=Ue.CONNECTED_POLYGONS,PR=Ue.BOUNDARY_CONTOURS;var In=class extends bw{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Oe.ODD;this.elementType=Ue.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:Oe.ODD,elementType:Ue.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,b=i[g+0],x=i[g+1];if(a!==void 0&&b!==a&&(c=!1),u!==void 0&&x!==u&&(p=!1),a=b,u=x,!c&&!p)break}!c&&!p&&(l=To({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 Ia(new Float32Array(d*3),3),this._normalAttribute=new Ia(new Float32Array(d*3),3),this._uvAttribute=new Ia(new Float32Array(d*2),2),this._indexAttribute=new Ia(new Uint32Array(f*3),1),l){let m=1/0,h=-1/0,g=1/0,b=-1/0;for(let w=0,v=d;w<v;w++){let N=w*2,_=l.vertices[N+0],y=l.vertices[N+1];_<m&&(m=_),_>h&&(h=_),y<g&&(g=y),y>b&&(b=y)}let x=h-m,S=b-g;for(let w=0,v=d;w<v;w++){let N=w*2,_=l.vertices[N+0],y=l.vertices[N+1],I=(_-m)/x,A=(y-g)/S;this._positionAttribute.setXYZ(w,_,y,0),this._normalAttribute.setXYZ(w,0,0,1),this._uvAttribute.setXY(w,I,A)}for(let w=0,v=f;w<v;w++){let N=w*3,_=l.elements[N+0],y=l.elements[N+1],I=l.elements[N+2];this._indexAttribute.setX(N+0,_),this._indexAttribute.setX(N+1,y),this._indexAttribute.setX(N+2,I)}}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 In(this._shape,this._curveSegments);return e.userData=ci(this.userData),e}};import{BufferAttribute as Oa,BufferGeometry as vw}from"three";var Pa=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*Pa.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*Pa.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)}},Ti=Pa;Ti.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var nc=(n,t)=>([e,r])=>(r<e&&(r+=t),(n>=e?n:n+t)<=r),Pn=class extends vw{constructor(e,r,o=0,i=12,s=3,l=Oe.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 I=y.extractShapePointsToFlatArray([],i),A=[];for(let P=I.length-1;P>=1;P-=2){let T=I[P-1],C=I[P-0];A.push(T,C)}return A}),a=To({windingRule:l,elementType:Ue.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[c]}),u=To({windingRule:Oe.ODD,elementType:Ue.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 I=u.elements[y],A=y%2===0?a.vertexCount:0;a.elements.push(I+A)}for(let y=0;y<u.vertexIndices.length;y++){let I=u.vertexIndices[y],A=a.vertexCount;a.vertexIndices.push(I+A)}for(let y=0;y<u.vertices.length;y++){let I=u.vertices[y];a.vertices.push(I)}}let f=1/0,m=-1/0,h=1/0,g=-1/0;for(let y=0,I=a.vertexCount;y<I;y++){let A=y*2,P=a.vertices[A+0],T=a.vertices[A+1];P<f&&(f=P),P>m&&(m=P),T<h&&(h=T),T>g&&(g=T)}this._minX=f,this._minY=h,this._width=m-f,this._height=g-h;let b=a.vertexCount*2*(2+this._bevelSegments);this._buffer=new Ti(b);let x=[],S=[];for(let y=a.elementCount-1;y>=0;y--){let I=y>=d,A=y*2,P=a.elements[A+0],T=a.elements[A+1],C=P+T,L={start:P,count:T,normals:[],continuous:[],concave:[]},j=P,Y=C-1,te=P+1,ie=this._shape.roundedCurves.length;do{let F=j-P,E=a.vertices[Y*2+0],D=a.vertices[Y*2+1],B=a.vertices[j*2+0],k=a.vertices[j*2+1],$=a.vertices[te*2+0],H=a.vertices[te*2+1],V=B-E,G=k-D,z=Math.sqrt(V*V+G*G);V/=z,G/=z;let J=B-$,oe=k-H,se=Math.sqrt(J*J+oe*oe);J/=se,oe/=se,L.normals[F*2+0]=-oe,L.normals[F*2+1]=J,L.concave[F]=V*oe-G*J>0;let re=a.vertexIndices[j];if(Array.isArray(re))L.continuous[F]=!1;else{let[ee,Q]=this._shape.getCurveIndexFromVertexId(re-1,!0);if(Q>0&&Q<1)L.continuous[F]=!0;else{let K=Q===1?ee+1:ee-1;K=(K+ie)%ie;let fe=Q===1?0:1,pe=this._shape.roundedCurves[ee].getTangent(Q),ye=this._shape.roundedCurves[K].getTangent(fe);L.continuous[F]=pe.dot(ye)>.95}}I&&(L.normals[F*2+0]*=-1,L.normals[F*2+1]*=-1),[Y,j,te]=[j,te,te+1],te>=C&&(te-=T)}while(te!==P+1);let U=[];U.push({bevelI:0,angle:0,size:0,boundary:{vertices:a.vertices.slice(P*2,C*2),vertexCount:T,vertexIndices:new Array(T).fill(!0).map((F,E)=>[E,E]),elements:[0,T],elementCount:1,mesh:null},reverseMap:[],insetPoints:a.vertices.slice(P*2,C*2)});for(let F=1;F<=this._bevelSegments;F++){let E=F/this._bevelSegments*Math.PI/2,D=(1-Math.cos(E))*this._bevelSize,B=[],k=[],$=[],H=[],V=0;for(let z=0;z<T;z++){let J=z*2,oe=(z-1+T)%T*2,se=a.vertices[L.start*2+J+0],re=a.vertices[L.start*2+J+1],ee=-L.normals[oe+0]*D,Q=-L.normals[oe+1]*D,K=-L.normals[J+0]*D,fe=-L.normals[J+1]*D;if(L.concave[z]||!L.concave[z]&&I){let pe=Math.atan2(Q,ee),ye=Math.atan2(fe,K);ye>pe&&(ye-=Math.PI*2);let $e=ye-pe;if(L.continuous[z]||I){let _e=pe+$e/2,Ae=Math.cos(_e)*D,Pe=Math.sin(_e)*D;B[2*V+0]=se+Ae*(I?-1:1),B[2*V+1]=re+Pe*(I?-1:1),H[V]=z,V++}else{let _e=Math.max(1,Math.floor(i/4*Math.abs($e)/Math.PI));for(let Ae=0;Ae<=_e;Ae++){let Pe=pe+$e*(Ae/_e),Pt=Math.cos(Pe)*D,Ur=Math.sin(Pe)*D;B[2*V+0]=se+Pt,B[2*V+1]=re+Ur,H[V]=z,V++}}}else B[2*V+0]=se+ee,B[2*V+1]=re+Q,H[V]=z,k[z]=V,V++,B[2*V+0]=se,B[2*V+1]=re,H[V]=z,V++,B[2*V+0]=se+K,B[2*V+1]=re+fe,H[V]=z,$[z]=V,V++}let G=To({windingRule:Oe.POSITIVE,elementType:Ue.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[B],edgeCreateCallback:z=>{let oe=z.Org.idx,se=H[oe],re=H[(oe+1)%H.length];z.idx=[se,re],z.Sym.idx=[re,se]},vertexIdCallback:z=>{let J=z.Lprev.idx;return[J?J[1]:0,z.idx[0]]}});if(!G)throw console.log("Error"),new Error(`error generating bevel geometry for ${F}'th loop`);if(!G.vertexCount)break;for(let z=0;z<G.vertexIndices.length;z++){let[J,oe]=G.vertexIndices[z];if(J===oe)continue;let se=oe;oe<J&&(se+=T);for(let re=J;re<se;re++){let ee=re%T,Q=(re+1)%T;if(!L.continuous[ee]||!L.continuous[Q]){G.vertexIndices[z]=[J,ee],G.vertexIndices.splice(z+1,0,[Q,oe]),G.vertices.splice((z+1)*2,0,G.vertices[z*2],G.vertices[z*2+1]);break}}}U.push({bevelI:F,angle:E,size:D,boundary:G,reverseMap:H,insetPoints:B})}let W=(F,E,D)=>{let B=0,k=F.boundary.vertexIndices.length;for(;B<k&&D(F.boundary.vertexIndices[E]);)E=(E+1)%k,B++;return B},q=x.length;for(let F=1;F<U.length;F++){let E=U[F-1],D=U[F],B=E.boundary.vertexIndices.length,k=D.boundary.vertexIndices.length;if(!B||!k)break;let $=L.concave.length,H=0,V=nc(H,T);for(;!E.boundary.vertexIndices.filter(V).length||!D.boundary.vertexIndices.filter(V).length;)H++,V=nc(H,T);let G=E.boundary.vertexIndices.findIndex(V),z=D.boundary.vertexIndices.findIndex(V);do G=(G+1)%B;while(V(E.boundary.vertexIndices[G]));do z=(z+1)%k;while(V(D.boundary.vertexIndices[z]));H=(H+1)%T;let J=H,oe=this.buildBevelVert(L,E,(G-1+B)%B),se=this.buildBevelVert(L,D,(z-1+k)%k),re=oe,ee=se,Q,K,fe=!1;do{V=nc(H,T);let pe=W(E,G,V),ye=W(D,z,V),$e=fe;if(fe=!1,pe&&!ye){for(let _e=0;_e<pe;_e++)Q=this.buildBevelVert(L,E,(G+_e)%B,_e/(pe-1)),x.push(re.topN,Q.topP,ee.topN),x.push(Q.bottomP,re.bottomN,ee.bottomN),re=Q;fe=!0}else if(!pe&&ye)for(let _e=0;_e<ye;_e++)K=this.buildBevelVert(L,D,(z+_e)%k,_e/(ye-1)),x.push(ee.topN,re.topP,K.topP),x.push(re.bottomP,ee.bottomN,K.bottomP),ee=K;else if(pe&&ye)if(Q=this.buildBevelVert(L,E,G,0),K=this.buildBevelVert(L,D,z,0),$e?(x.push(re.topN,K.topP,ee.topN),x.push(re.topN,Q.topP,K.topP),x.push(K.bottomP,re.bottomN,ee.bottomN),x.push(K.bottomP,Q.bottomP,re.bottomN)):(x.push(ee.topN,re.topN,Q.topP),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,re.bottomN,ee.bottomN),x.push(Q.bottomP,ee.bottomN,K.bottomP)),re=Q,ee=K,pe===ye)for(let _e=1;_e<pe;_e++)Q=this.buildBevelVert(L,E,(G+_e)%B,_e/(pe-1)),K=this.buildBevelVert(L,D,(z+_e)%k,_e/(ye-1)),x.push(re.topN,Q.topP,ee.topN),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,re.bottomN,ee.bottomN),x.push(Q.bottomP,ee.bottomN,K.bottomP),re=Q,ee=K;else if(pe>ye){let _e=pe/ye,Ae=0;for(let Pe=1;Pe<pe;Pe++)Q=this.buildBevelVert(L,E,(G+Pe)%B,Pe/(pe-1)),x.push(re.topN,Q.topP,ee.topN),x.push(Q.bottomP,re.bottomN,ee.bottomN),re=Q,Pe>(Ae+1)*_e&&(Ae++,K=this.buildBevelVert(L,D,(z+Ae)%k,Ae/(ye-1)),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,ee.bottomN,K.bottomP),ee=K)}else{let _e=ye/pe,Ae=0;for(let Pe=1;Pe<ye;Pe++)K=this.buildBevelVert(L,D,(z+Pe)%k,Pe/(ye-1)),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,ee.bottomN,K.bottomP),ee=K,Pe>(Ae+1)*_e&&(Ae++,Q=this.buildBevelVert(L,E,(G+Ae)%B,Ae/(pe-1)),x.push(re.topN,Q.topP,ee.topN),x.push(Q.bottomP,re.bottomN,ee.bottomN),re=Q)}G=(G+pe)%B,z=(z+ye)%k,H=(H+1)%$}while(H!==J)}{let F=U[0];for(let E=0,D=F.boundary.vertexCount;E<D;E++){let B=this.buildBevelVert(L,F,E),k=this.buildBevelVert(L,F,(E+1)%D);x.push(k.topP,B.topN,B.bottomN),x.push(k.topP,B.bottomN,k.bottomP)}}if(I){let F=[];for(let E=x.length-1;E>=q+2;E-=3){let D=x[E-2],B=x[E-1],k=x[E-0];F.push(k,B,D)}x.splice(q,x.length-q,...F)}if(I){let F=[];for(let E=U[U.length-1].boundary.vertices.length-1;E>=1;E-=2){let D=U[U.length-1].boundary.vertices[E-1],B=U[U.length-1].boundary.vertices[E-0];F.push(D,B)}S.push(F)}if(!I){let F=U[U.length-1],E=To({windingRule:U.length>1?Oe.POSITIVE:Oe.ODD,elementType:Ue.POLYGONS,vertexSize:2,strict:!0,contours:[F.insetPoints,...S]});if(!E)throw new Error("Error generating geometry for surface");p.length===0&&Object.assign(this,{capStartIndex:x.length});for(let D=0;D<E.elementCount*3;D+=3){let B=this.buildSurfaceVert(E,E.elements[D+0]),k=this.buildSurfaceVert(E,E.elements[D+1]),$=this.buildSurfaceVert(E,E.elements[D+2]);x.push(B.top,k.top,$.top),x.push($.bottom,k.bottom,B.bottom)}}this.vertexCache={}}this._buffer.shrink();let w=new Oa(Uint32Array.from(x),1),v=new Oa(this._buffer.positions,3),N=new Oa(this._buffer.normals,3),_=new Oa(this._buffer.uvs,2);v.needsUpdate=!0,N.needsUpdate=!0,_.needsUpdate=!0,w.needsUpdate=!0,this.setAttribute("position",v),this.setAttribute("normal",N),this.setAttribute("uv",_),this.setIndex(w)}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,b=a*2,x=r.boundary.vertices[h+0],S=r.boundary.vertices[h+1],w=(1-m)*this._bevelSize,v=(x-this._minX)/this._width,N=(S-this._minY)/this._height,_=e.normals[g+0],y=e.normals[g+1],I=e.normals[b+0],A=e.normals[b+1];if(d){let j=I-_,Y=A-y;_=_+j*(1-i),y=y+Y*(1-i);let te=Math.sqrt(_*_+y*y);_/=te,y/=te}let P=this._buffer.get(u?2:4),T=P*3,C=P*2,L={i:o,fi:p,topP:P+0,topN:P+0,bottomP:P+1,bottomN:P+1};return this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=S,this._buffer.positions[T+2]=this._depth-w,this._buffer.normals[T+0]=_*f,this._buffer.normals[T+1]=y*f,this._buffer.normals[T+2]=m,this._buffer.uvs[C+0]=v,this._buffer.uvs[C+1]=N,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=S,this._buffer.positions[T+5]=w,this._buffer.normals[T+3]=_*f,this._buffer.normals[T+4]=y*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[C+2]=N,this._buffer.uvs[C+3]=v,u||(P+=2,T+=6,C+=4,L.topP=P+0,L.bottomP=P+1,this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=S,this._buffer.positions[T+2]=this._depth-w,this._buffer.normals[T+0]=I*f,this._buffer.normals[T+1]=A*f,this._buffer.normals[T+2]=m,this._buffer.uvs[C+0]=v,this._buffer.uvs[C+1]=N,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=S,this._buffer.positions[T+5]=w,this._buffer.normals[T+3]=I*f,this._buffer.normals[T+4]=A*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[C+2]=N,this._buffer.uvs[C+3]=v),this.vertexCache[s]=L,L}clone(){let e=new Pn(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=ci(this.userData),e}};var et=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:Oe.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 ve?(s.width!==r||s.height!==o)&&s.applySize(r,o):s=new ve(r,o).fromJSON(s),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&s.update(!1));let c=s??new ve(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 In(n.shape,o,{windingRule:s}):l=new Pn(n.shape,t,e,o,r,s),Object.assign(l,{userData:{...n,type:"VectorGeometry"}})}};import{Mesh as fT,Matrix4 as mT}from"three";import{ConeGeometry as _w}from"three";import{BufferGeometry as Sw,CylinderGeometry as ww,Float32BufferAttribute as ic,Vector2 as qt,Vector3 as Ca}from"three";var hm=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 Ai(p,a,r,o,i,s,l,c*Math.PI/180,u,u,d,f):m=new ww(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 no(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function mm(n){return new qt(n.y,-n.x)}var Ai=class extends Sw{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=[],b=[],x=0,S=r/2,w=new Ca,v=new Ca;f&&t==0&&(t=p),f&&e==0&&(e=a);let N=new qt(t,S),_=new qt(e,-S),y=null,I=null,A=null,P=null,T=N.clone().sub(_),C=0,L=0,j=0;d>0&&(C=Math.min(t,e)*(1-d),L=t-C,j=e-C);let Y=N.clone();Y.x-=C;let te=Math.PI-T.angle(),ie=T.angle(),U=Math.tan(ie/2),W=Math.tan(te/2),q=U+W,F=d?q:W,E=d?q:U;if(p=Math.min(p,(t-L)/F,T.length()/q),a=Math.min(a,(e-j)/E,T.length()/q),p>0){let V=p/U;y=N.clone().sub(new qt(V,p)),d&&(A=y.clone(),A.x-=C-q*p),N.sub(T.clone().setLength(V))}if(a>0){let V=a/W;I=_.clone().sub(new qt(V,-a)),_.add(T.clone().setLength(V)),d&&(P=I.clone(),P.x-=C-q*a,Y.sub(T.clone().setLength(V)))}T=N.clone().sub(_);let D=T.length()<.5,B=[];for(let V=0;V<=o;V++){let G=[],z=V/o,J=z*c+l,oe=new qt(Math.sin(J),Math.cos(J));P&&I?(k(G,z,oe,te,a,P,-1,!0),k(G,z,oe,ie,a,I,-1,!1)):I?($(G,oe,I.x,0,-1),k(G,z,oe,ie,a,I,-1,!1)):s||$(G,oe,e,j,-1);let se=mm(T).normalize();if(no(se,oe,w),!D)for(let re=0;re<=i;re++){let ee=re/i,Q=T.clone().multiplyScalar(ee).add(_);no(Q,oe,v),h.push(v.x,v.y,v.z),g.push(w.x,w.y,w.z),b.push(z,.5+v.y/r),G.push(x++)}if(A&&y?(k(G,z,oe,te,p,y,1,!1),k(G,z,oe,ie,p,A,1,!0)):y?(k(G,z,oe,te,p,y,1,!1),$(G,oe,y.x,0,1)):s||$(G,oe,t,L,1),d&&!D){let re=mm(T).multiplyScalar(-1).normalize();no(re,oe,w);for(let ee=0;ee<=i;ee++){let Q=ee/i,K=T.clone().multiplyScalar(-Q).add(Y);no(K,oe,v),h.push(v.x,v.y,v.z),g.push(w.x,w.y,w.z),b.push(z,.5+v.y/r),G.push(x++)}}d&&!s&&G.push(G[0]),B.push(G)}for(let V=0;V<B.length-1;V++)for(let G=0;G<B[0].length-1;G++){if(s&&d&&G==i)continue;let z=B[V][G],J=B[V+1][G],oe=B[V+1][G+1],se=B[V][G+1],re=h[oe*3+0],ee=h[oe*3+2];m.push(z,J,se),(re!=0||ee!=0)&&m.push(J,oe,se)}c<Math.PI*2&&(H(-1,B[0],l),H(1,B[B.length-1],l+c)),this.setIndex(m),this.setAttribute("position",new ic(h,3)),this.setAttribute("normal",new ic(g,3)),this.setAttribute("uv",new ic(b,2));function k(V,G,z,J,oe,se,re,ee){for(let Q=0;Q<u+1;Q++){let K=Q/u,fe=re<0?K:1-K;ee&&(fe-=1),fe*=J;let pe=new qt(Math.sin(fe),Math.cos(fe)*re),ye=pe.clone().multiplyScalar(oe).add(se);no(ye,z,v),h.push(v.x,v.y,v.z),no(pe,z,w),g.push(w.x,w.y,w.z),b.push(G,.5+v.y/r),V.push(x++)}}function $(V,G,z,J,oe){let se=new Ca,re=new qt,ee=[z,J];oe<0&&ee.reverse();for(let Q of ee)re.set(Q,S*oe),no(re,G,se),h.push(se.x,se.y,se.z),g.push(0,oe,0),b.push(.5,.5),V.push(x++)}function H(V,G,z){let J=new qt(Math.sin(z),Math.cos(z)),oe=new qt(-Math.cos(z),Math.sin(z)),se=new Ca,re=V<0?(K,fe,pe)=>m.push(K,fe,pe):(K,fe,pe)=>m.push(K,pe,fe),ee=new qt((t+e+L+j)/4,0);no(ee,J,se),h.push(se.x,se.y,se.z),g.push(oe.x,0,oe.y),b.push(.5,.5);let Q=x++;for(let K of G){let fe=h.slice(K*3,K*3+3);h.push(...fe),g.push(oe.x,0,oe.y);let pe=b.slice(K*2,K*2+2);b.push(...pe),x++}for(let K=Q+1;K<x-1;K++)re(Q,K,K+1);re(Q,x-1,Q+1)}}};var gm=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 Ai(0,t/2,r,o,i,s,l,c*Math.PI/180,p,a,u,0,!0):d=new _w(t/2,r,o,i,s),d.scale(1,1,e/t),Object.assign(d,{userData:{...n,type:"ConeGeometry"}})}};import{BoxGeometry as Tw,BufferGeometry as Aw,Float32BufferAttribute as sc,Vector3 as Ni}from"three";var ym=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 Tw(t,e,r,o,i,s):p=new lc(t,e,r,o,i,s,l,c),Object.assign(p,{userData:{...n,type:"CubeGeometry"}})}},ac=Math.PI/2,lc=class extends Aw{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&&(b("z","y","x",-1,-1,1,r,e,t,s,0),b("z","y","x",1,-1,-1,r,e,t,s,1),b("z","y","x",-1,1,-1,r,e,t,s,1),b("z","y","x",1,1,1,r,e,t,s,0),b("x","y","z",-1,-1,-1,t,e,r,o,0),b("x","y","z",1,-1,1,t,e,r,o,1),b("x","y","z",-1,1,1,t,e,r,o,0),b("x","y","z",1,1,-1,t,e,r,o,1),b("y","x","z",-1,-1,1,e,t,r,i,0),b("y","x","z",1,-1,-1,e,t,r,i,1),b("y","x","z",1,1,1,e,t,r,i,1),b("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 sc(u,3)),this.setAttribute("normal",new sc(d,3)),this.setAttribute("uv",new sc(f,2));function g(S,w,v,N,_,y,I,A,P,T,C){let L=(y-2*l)/P,j=(I-2*l)/T,Y=y/2-l,te=I/2-l,ie=A/2,U=P+1,W=T+1,q=0,F=0,E=new Ni;for(let D=0;D<W;D++){let B=D*j-te;for(let k=0;k<U;k++){let $=k*L-Y;E[S]=$*N,E[w]=B*_,E[v]=ie,u.push(E.x,E.y,E.z),E[S]=0,E[w]=0,E[v]=A>0?1:-1,d.push(E.x,E.y,E.z),f.push(k/P),f.push(1-D/T),q+=1}}for(let D=0;D<T;D++)for(let B=0;B<P;B++){let k=m+B+U*D,$=m+B+U*(D+1),H=m+(B+1)+U*(D+1),V=m+(B+1)+U*D;a.push(k,$,V),a.push($,H,V),F+=6}p.addGroup(h,F,C),h+=F,m+=q}function b(S,w,v,N,_,y,I,A,P,T,C){let L=(I-2*l)/T,j=I/2-l,Y=A/2-l,te=P/2,ie=T+1,U=0,W=0,q=new Ni,F=new Ni;for(let E=0;E<c+1;E++){let D=E/c*ac,B=Math.sin(D)*l,k=(1-Math.cos(D))*l,$=Math.sin(D),H=Math.cos(D);q[w]=(Y+B)*_,q[v]=(te-k)*y,F[S]=0,F[w]=$*Math.sign(q[w]),F[v]=H*Math.sign(q[v]);for(let V=0;V<ie;V++){let G=V*L-j;q[S]=G*N,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 E=0;E<c;E++)for(let D=0;D<T;D++){let B=m+D+ie*E,k=m+D+ie*(E+1),$=m+(D+1)+ie*(E+1),H=m+(D+1)+ie*E;a.push(B,k,H),a.push(k,$,H),W+=6}p.addGroup(h,W,C),h+=W,m+=U}function x(S,w,v){let N=new Ni,_=new Ni(t/2,e/2,r/2);_.subScalar(l);let y=[],I=S*w*v>0?(P,T,C)=>a.push(P,T,C):(P,T,C)=>a.push(P,C,T);for(let P=0;P<=c;P++){let T=[],C=ac*(1-P/c),L=Math.cos(C),j=Math.sin(C),Y=0;for(let te=0;te<=P;te++){let ie=Math.cos(Y),U=Math.sin(Y);N.x=L*ie,N.y=j,N.z=L*U;let W=_.clone().addScaledVector(N,l);u.push(S*W.x,w*W.y,v*W.z),d.push(S*N.x,w*N.y,v*N.z),f.push(0,0),T.push(m++),Y+=ac/P}y.push(T)}let A=y.length-1;for(let P=0;P<A;P++){let T=y[P],C=y[P+1],L=T.length-1;I(T[0],C[1],C[0]);for(let j=1;j<=L;j++)I(T[j-1],T[j],C[j]),I(T[j],C[j+1],C[j])}}}};import{BufferGeometry as Nw,Float32BufferAttribute as cc,Triangle as Iw,Vector3 as Vr,Vector2 as uc}from"three";var io=class extends Nw{constructor(t=[],e=[],r="",o=1,i=.2,s=4){super(),this.type="PolyhedronGeometryRound";let l=[],c=[],p=[];a(),u(),this.setAttribute("position",new cc(l,3)),this.setAttribute("normal",new cc(p,3)),this.setAttribute("uv",new cc(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 Vr,h=m.clone(),g=new Iw,b=i*o,x=o-b,S=s+1,w=new Vr,v=(U,W)=>w.subVectors(U,W).normalize(),N=(U,W)=>Array(U).fill(void 0).map(W),_=N(t.length/3,(U,W)=>new Vr().fromArray(t,W*3).setLength(o)),y=[],I=1e6;for(let U=0;U<_.length;U++){let W=_[U],q=[],F,E,D,B=1e10,k=-1;for(;(k=e.indexOf(U,k+1))!=-1;){let G=k-k%3;F=e[G+(k+1)%3],E=e[G+(k+2)%3],D=W.distanceToSquared(_[F]),B=Math.min(B,D),q.push([F,E,D])}B+=1e-6;let $=[],H=0,V=q.length;for(let G=0;G<V;G++){[F,E,D]=q[H];let z=y[F]?.includes(U)==!0;D<=B&&$.push(F+ +z*I),H=q.findIndex(J=>J[0]==E)}y.push($)}let A=[];{let U=0,W=0,q,F,E=f==3;for(let D=0;D<=s;D++){q=D*(D+1)/2,F=(D+1)*(D+2)/2;for(let B=0;B<s-D;B++)[U,W]=[q+B+D+2,F+B+D+3],A.push(q,F,...E?[W,q]:[U,F],W,U),[q,F]=[U,W];A.push(q,F,q+s+2)}}let P=m.clone(),T=m.clone(),C=m.clone(),L=m.clone(),j=m.clone(),Y=[],te=N(_.length,()=>N(f,()=>m.clone()));for(let U=0;U<_.length;U++){m.copy(_[U]).normalize(),P.copy(m).multiplyScalar(x);let W=y[U];for(let $=0;$<W.length;$++){let H=W[$],V=W[($+1)%f];g.setFromPointsAndIndices(_,U,H%I,V%I),g.b.sub(g.a).setLength(1e10).add(g.a),g.c.sub(g.a).setLength(1e10).add(g.a),g.closestPointToPoint(P,te[U][$])}let q=[],F=[],E=[],D=new Vr;s==0&&[...te[U]].reduce(($,H)=>$.add(H),D).multiplyScalar(1/f);for(let $=0;$<f;$++){let H=[],V=($-1+f)%f,G=te[U][V],z=te[U][$];m.copy(G).sub(P),h.copy(z).sub(P);let J=P.angleTo(m),oe=m.angleTo(h),se=Math.cos(J)*b;s==0?T.copy(D):T.copy(P).setLength(x+se),F.push(se);let re=[T,G,z];for(let ee=0;ee<2;ee++){let Q=re[ee],K=re[ee+1];L.subVectors(Q,P),j.subVectors(K,P),C.crossVectors(L,j).normalize();for(let fe=0;fe<S;fe++){let pe=[J,oe][ee]*fe/S;m.copy(L).applyAxisAngle(C,pe).add(P),q.push(m.clone()),ee&&(v(m,P),H.push([fe==0?Q:m.clone(),w.clone()]))}ee&&(v(K,P),H.push([K,w.clone()]))}E.push(H)}Y.push(E);let B=2*S,k=2;for(let $=0;$<f;$++){let H=B*$,V=B*(($+1)%f),G=[q[H]];for(let J=1;J<S;J++){L=q[H+J],j=q[V+J],G.push(L);for(let oe=1,se=J-k+1;oe<=se;oe++)m.lerpVectors(L,j,oe/(se+1)),m.sub(P).setLength(F[$]).add(P),G.push(m.clone());G.push(j)}for(let J=0;J<S;J++)G.push(q[J+S+H]);G.push(q[V+S]);let z=A.map(J=>G[J]);l.push(...z.map(J=>[J.x,J.y,J.z]).flat()),p.push(...z.map(J=>(v(J,P),[w.x,w.y,w.z])).flat())}}let ie=[];for(let U=0;U<y.length;U++)for(let W=0;W<f;W++){let q=y[U][W];if(q<I){let F=y[q].findIndex(B=>B%I==U),E=Y[U][W],D=Y[q][F];for(let B=0;B<S;B++){let k=E[B],$=D[S-B],H=E[B+1],V=D[S-(B+1)];[k,$,H,H,$,V].forEach(G=>{l.push(G[0].x,G[0].y,G[0].z),p.push(G[1].x,G[1].y,G[1].z)})}ie.push(E[0][0],D[S][0],E[S][0],D[0][0])}}for(;ie.length;){let U,W,q,F;[U,W]=ie.splice(0,2);let E=[U];for(;U!=W;)E.push(W),q=ie.indexOf(W),F=q%2,W=ie.splice(q-F,2)[1-F];w.subVectors(E[0],E[1]).cross(m.subVectors(E[0],E[2])).normalize();let D=w.dot(E[0])<0;D&&w.negate();for(let B=1;B<=E.length-2;B++)[E[B+ +D],E[B+1-+D],E[0]].forEach(k=>{l.push(k.x,k.y,k.z),p.push(w.x,w.y,w.z)})}}function u(){let d=new Vr;for(let _=0;_<l.length;_+=3){d.x=l[_+0],d.y=l[_+1],d.z=l[_+2];let y=v(d)/2/Math.PI+.5,I=N(d)/Math.PI+.5;c.push(y,1-I)}let f=new Vr,m=new Vr,h=new Vr,g=new Vr,b=new uc,x=new uc,S=new uc,w=(_,y,I,A)=>{A<0&&_.x===1&&(c[y]=_.x-1),I.x===0&&I.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]),b.set(c[y+0],c[y+1]),x.set(c[y+2],c[y+3]),S.set(c[y+4],c[y+5]),g.copy(f).add(m).add(h).divideScalar(3);let I=v(g);w(b,y+0,f,I),w(x,y+2,m,I),w(S,y+4,h,I)}for(let _=0;_<c.length;_+=6){let y=c[_+0],I=c[_+2],A=c[_+4],P=Math.max(y,I,A),T=Math.min(y,I,A);P>.9&&T<.1&&(y<.2&&(c[_+0]+=1),I<.2&&(c[_+2]+=1),A<.2&&(c[_+4]+=1))}function v(_){return Math.atan2(_.z,-_.x)}function N(_){return Math.atan2(-_.y,Math.sqrt(_.x*_.x+_.z*_.z))}}}static fromJSON(t){return new io(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};import{DodecahedronGeometry as Pw}from"three";var xm=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 Ii(t*.5,i,s):new Pw(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"DodecahedronGeometry"}})}},Ii=class extends io{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 Ii(t.radius,t.corner,t.cornerSides)}};var dc=Math.PI*2;function pc({x:n,y:t},e,r,o,i){return{x:n*e+o,y:t*r+i}}function Ow(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 bm(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 Cw(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,b=h+(n+e)/2,x=g+(t+r)/2,S=(s-h)/o,w=(l-g)/i,v=(-s-h)/o,N=(-l-g)/i,_=bm(1,0,S,w),y=bm(S,w,v,N);return!p&&y>0&&(y-=dc),p&&y<0&&(y+=dc),{centerx:b,centery:x,ang1:_,ang2:y}}function vm({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=Cw(n,t,e,r,o,i,p,a,s,l),{ang1:f,ang2:m}=d,{centerx:h,centery:g}=d,b=Math.abs(m)/(dc/4);Math.abs(1-b)<1e-7&&(b=1);let x=Math.max(Math.ceil(b),1);m/=x;for(let S=0;S<x;S++)c.push(Ow(f,m)),f+=m;return c.map(S=>{let{x:w,y:v}=pc(S[0],o,i,h,g),{x:N,y:_}=pc(S[1],o,i,h,g),{x:y,y:I}=pc(S[2],o,i,h,g);return{x1:w,y1:v,x2:N,y2:_,x:y,y:I}})}import{MathUtils as wm,Vector2 as _m}from"three";var Tm=Math.PI*2,Am=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 ve?n.shape:new ve,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=Mw(p,a,u,o*Math.PI/180,r,i);p.isClosed=!0,p.update();let f=et.create({shape:p,parameters:{subdivisions:d,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(f,{userData:{...n,type:"EllipseGeometry"}})}};function Mw(n,t,e,r,o,i){if(r>=Tm)return o>30||o%4===0?(Ew(n,t,e,i),Math.round(o/4)):Sm(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=vm({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?Lw(n,s.x,s.y,p,o,t,e,i):Sm(n,r,o,t,e,i)}function Lw(n,t,e,r,o,i,s,l){let c=Math.round(o/r.length);n.addPoint(On(t,e));for(let p=0,a=r.length;p<a;p++){let u=r[p],d=n.points[p],f=On(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?Nm(n,i,s,l):n.addPoint(On(0,0)),c}function Sm(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(On(p,a))}return t<Tm?i>0?Nm(n,r,o,i):n.addPoint(On(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&Im(n,r,o,i)),1}function Ew(n,t,e,r=0,o=0,i=0){let s=.5522847498,l=t*s,c=e*s;n.addPoint(Ma(o-t,i,o-t,i-c,o-t,i+c)),n.addPoint(Ma(o,i+e,o-l,i+e,o+l,i+e)),n.addPoint(Ma(o+t,i,o+t,i+c,o+t,i-c)),n.addPoint(Ma(o,i-e,o+l,i-e,o-l,i-e)),r>0&&Im(n,t,e,r)}function On(n,t){return new Wt(wm.generateUUID(),new _m(n,t))}function Ma(n,t,e,r,o,i){let s=On(n,t);return s.controls[0].position.set(e,r),s.controls[1].position.set(o,i),s}function Nm(n,t,e,r){Pm(n,t,e,r).forEach(i=>n.addPoint(i))}function Im(n,t,e,r){let o=Pm(n,t,e,r),i=new ve;o.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function Pm(n,t,e,r){let o=r*t/100,i=o*(Math.abs(e)/Math.abs(t)),s=new _m(o/t,i/e),l=n.points.map(c=>{let p=c.clone();return p.uuid=wm.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}import{BufferGeometry as Bw,Float32BufferAttribute as fc,Vector3 as Om}from"three";var Cm=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 Pi(!1,t,e,r,o,i,s,l,c,p,a,u);return Object.assign(d,{userData:{...n,type:"HelixGeometry"}})}},Pi=class extends Bw{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 Om,h=new Om,g=m(),b=m(),x=m(),S,w,v,N,_,y,I,A,P=m(),T=m(),C=m(),L=m(),j=m(),Y=m(),te=m(),ie=m(),U=r-2*c+.001,W=U/s,q=Math.ceil(l*s),F=q+1,E=U/q,D=-U/2,B=a+1,k=2*Math.PI/a,$=Math.PI/2/d,H=.01,V=Math.min((1-u/100)*c,c-H),G=c-V,z=0,J=2,oe=d*J+J,se=B*oe/J,re=se+B*F,ee=B*(F+oe),[Q,K,fe]=[3,3,2].map(Re=>Array(ee*Re).fill(0)),pe=[],ye=i-c;function $e(Re,St){let Jt=Math.PI/2;y=St*E,A=2*Math.PI*(y%W)/W+Jt,y+=D,I=Math.sin(A)*ye,_=Math.cos(A)*ye,t?Re.set(_,I,y):Re.set(_,y,I)}$e(h,-1e-10),$e(g,0),P.copy(h),$e(h,1);let _e=h.distanceTo(g),Ae=G+V,Pe=_e*q+2*Ae,Pt=V,Ur=Pe-Ae;for(let Re=0;Re<=q;Re++){$e(b,Re),ie.subVectors(b,P).normalize(),P.copy(b),Y.copy(b).setComponent(+t+1,0).normalize(),te.crossVectors(ie,Y).normalize();let St=Re===0,Jt=Re===q,Sg=St?3*Math.PI/2:$,wg=St?Pt:Ur,_g=St?B:re,Tg=St?0:ee-B,Ag=ie.clone().multiplyScalar(St?-G:G).add(b),Ng=ie.clone().multiplyScalar(St?-1:1).normalize();for(let Nr=0;Nr<B;Nr++){let lu=Nr*k;if(T.addVectors(h.copy(Y).multiplyScalar(c*Math.cos(lu)),g.copy(te).multiplyScalar(c*Math.sin(lu))),C.copy(T).normalize(),St||Jt){f||(z=Tg+Nr,[0,1,2].forEach(pt=>{Q[z*3+pt]=Ag.getComponent(pt),K[z*3+pt]=Ng.getComponent(pt)}),fe[z*2]=+Jt,fe[z*2+1]=Nr/a),g.copy(C).multiplyScalar(V),x.addVectors(b,g);for(let pt=0;pt<d;pt++){let il=pt*$+Sg;L.addVectors(h.copy(ie).multiplyScalar(G*Math.sin(il)),g.copy(C).multiplyScalar(G*Math.cos(il))),j.copy(L).normalize(),g.addVectors(x,L),L.normalize(),z=_g+pt*B+Nr,[0,1,2].forEach(cs=>{Q[z*3+cs]=g.getComponent(cs),K[z*3+cs]=j.getComponent(cs)});let Ig=+St+Math.sin(il);fe[z*2]=(wg+G*Ig)/Pe,fe[z*2+1]=Nr/a}}g.addVectors(b,T),z=se+Re*B+Nr,[0,1,2].forEach(pt=>{Q[z*3+pt]=g.getComponent(pt),K[z*3+pt]=C.getComponent(pt)}),fe[z*2]=(Ae+Re*_e)/Pe,fe[z*2+1]=Nr/a}}let vt=F+2*d+J,Eo=1,[as,ls]=f?[Eo,Eo+F-1]:[0,vt-1];for(let Re=as;Re<=ls-1;Re++){let St=f&&Re===ls-1;for(let Jt=0;Jt<B-1;Jt++)S=Re*B+Jt,w=S+1,v=(St?Jt:S)+B,N=(St?Jt+1:w)+B,Re===0?pe.push(w,N,v):Re===vt-2?pe.push(S,w,v):pe.push(S,w,v,w,N,v)}this.setIndex(pe),this.setAttribute("position",new fc(Q,3)),this.setAttribute("normal",new fc(K,3)),this.setAttribute("uv",new fc(fe,2))}};import{IcosahedronGeometry as Dw}from"three";var Mm=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 Oi(t*.5,i,s):new Dw(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"IcosahedronGeometry"}})}},Oi=class extends io{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 Oi(t.radius,t.corner,t.cornerSides)}};import{LatheGeometry as Gw,Shape as Rw}from"three";var Lm=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 Rw;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 Gw(o.extractPoints(r).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};import{BufferGeometry as Vm,BufferGeometryLoader as $w,Vector3 as Yw,BoxGeometry as Fm}from"three";import{BufferGeometry as kw,Vector2 as gc,Vector3 as Rm}from"three";import{Box3 as Vw,BufferAttribute as Ci,BufferGeometry as Em,Color as Dm,EventDispatcher as Fw,Float32BufferAttribute as Cn,Matrix3 as Bm,Matrix4 as Gm,MathUtils as zw,Object3D as jw,Sphere as Uw,Vector2 as Vt,Vector3 as it}from"three";var mr=new Gm,mc=new jw,La=new it,so=class extends Fw{constructor(){super(),this.uuid=zw.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 Bm().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 mr.makeRotationX(t),this.applyMatrix4(mr),this}rotateY(t){return mr.makeRotationY(t),this.applyMatrix4(mr),this}rotateZ(t){return mr.makeRotationZ(t),this.applyMatrix4(mr),this}translate(t,e,r){return mr.makeTranslation(t,e,r),this.applyMatrix4(mr),this}scale(t,e,r){return mr.makeScale(t,e,r),this.applyMatrix4(mr),this}lookAt(t){return mc.lookAt(t),mc.updateMatrix(),this.applyMatrix4(mc.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 it().fromBufferAttribute(i,d)),l!==void 0&&e.colors.push(new Dm().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()],b=s===void 0?[]:[new it().fromBufferAttribute(s,d),new it().fromBufferAttribute(s,f),new it().fromBufferAttribute(s,m)],x=new Mn(d,f,m,b,g,h);e.faces.push(x),c!==void 0&&e.faceVertexUvs[0].push([new Vt().fromBufferAttribute(c,d),new Vt().fromBufferAttribute(c,f),new Vt().fromBufferAttribute(c,m)]),p!==void 0&&e.faceVertexUvs[1].push([new Vt().fromBufferAttribute(p,d),new Vt().fromBufferAttribute(p,f),new Vt().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,b=m+h;g<b;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(La).negate(),this.translate(La.x,La.y,La.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,r=e===0?1:1/e,o=new Gm;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 it,e=new it;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 it;if(t){let r=new it,o=new it;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 so;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 it,a={a:new it,b:new it,c:new it};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 Vw),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Uw),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 Bm().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,b=m.vertexNormals,x=m.vertexColors,S=new Mn(m.a+i,m.b+i,m.c+i);S.normal.copy(m.normal),o!==void 0&&S.normal.applyMatrix3(o).normalize();for(let w=0,v=b.length;w<v;w++)h=b[w].clone(),o!==void 0&&h.applyMatrix3(o).normalize(),S.vertexNormals.push(h);S.color.copy(m.color);for(let w=0,v=x.length;w<v;w++)g=x[w],S.vertexColors.push(g.clone());S.materialIndex=m.materialIndex+r,c.push(S)}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 b=m[h],x=[];for(let S=0,w=b.length;S<w;S++)x.push(b[S].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 it(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,b=!1,x=this.faceVertexUvs[0][m]!==void 0,S=h.normal.length()>0,w=h.vertexNormals.length>0,v=h.color.r!==1||h.color.g!==1||h.color.b!==1,N=h.vertexColors.length>0,_=0;if(_=a(_,0,0),_=a(_,1,g),_=a(_,2,b),_=a(_,3,x),_=a(_,4,S),_=a(_,5,w),_=a(_,6,v),_=a(_,7,N),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(S&&r.push(u(h.normal)),w){let y=h.vertexNormals;r.push(u(y[0]),u(y[1]),u(y[2]))}if(v&&r.push(d(h.color)),N){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 so().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 b=m[h],x=[];for(let S=0,w=b.length;S<w;S++){let v=b[S];x.push(v.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 b=s[d].vertexNormals[h],x={};x.a=b.a.clone(),x.b=b.b.clone(),x.c=b.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 hc().fromGeometry(this),e=new Em,r=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",new Ci(r,3).copyVector3sArray(t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",new Ci(o,3).copyVector3sArray(t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",new Ci(o,3).copyColorsArray(t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",new Ci(o,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",new Ci(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 Cn(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 Cn(t.skinIndices.length*4,4);e.setAttribute("skinIndex",o.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){let o=new Cn(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 Em,r=t.geometry;if(t.isPoints||t.isLine){let o=new Cn(r.vertices.length*3,3),i=new Cn(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 Cn(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}};so.prototype.isGeometry=!0;var hc=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 b=0;b<c;b++)p[b]={name:l[b].name,data:[]};this.morphTargets.position=p}let a=t.morphNormals,u=a.length,d;if(u>0){d=[];for(let b=0;b<u;b++)d[b]={name:a[b].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 b=0;b<e.length;b++){let x=e[b];this.vertices.push(r[x.a],r[x.b],r[x.c]);let S=x.vertexNormals;if(S.length===3)this.normals.push(S[0],S[1],S[2]);else{let v=x.normal;this.normals.push(v,v,v)}let w=x.vertexColors;if(w.length===3)this.colors.push(w[0],w[1],w[2]);else{let v=x.color;this.colors.push(v,v,v)}if(i===!0){let v=o[0][b];v!==void 0?this.uvs.push(v[0],v[1],v[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",b),this.uvs.push(new Vt,new Vt,new Vt))}if(s===!0){let v=o[1][b];v!==void 0?this.uvs2.push(v[0],v[1],v[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",b),this.uvs2.push(new Vt,new Vt,new Vt))}for(let v=0;v<c;v++){let N=l[v].vertices;p[v].data.push(N[x.a],N[x.b],N[x.c])}for(let v=0;v<u;v++){let N=a[v].vertexNormals[b];d[v].data.push(N.a,N.b,N.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}},Mn=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 it,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new Dm,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 Hw=["a","b","c"];function Ww(n,t){switch(t){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function yc(n,t,e){let r=Math.min(n,t),o=Math.max(n,t),i=r+"_"+o;return e.get(i)}function xc(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 qw(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],xc(s.a,s.b,n,r,s,e),xc(s.b,s.c,n,r,s,e),xc(s.c,s.a,n,r,s,e)}function Ea(n,t,e,r,o){n.push(new Mn(t,e,r,void 0,void 0,o))}function Ln(n,t){return Math.abs(t-n)/2+Math.min(n,t)}function Ba(n,t,e,r){n.push([t.clone(),e.clone(),r.clone()])}var Da=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof kw?t=new so().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 Rm,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;qw(c,p,d,f);let m=[],h,g,b,x,S,w,v;for(let H of Array.from(f.keys())){for(g=f.get(H),b=new Rm,S=3/8,w=1/8,v=g.faces.length,v!=2&&(S=.5,w=0,v!=1),b.addVectors(g.a,g.b).multiplyScalar(S),e.set(0,0,0),s=0;s<v;s++){for(x=g.faces[s],l=0;l<3&&(h=c[Ww(x,Hw[l])],!(h!==g.a&&h!==g.b));l++);h&&e.add(h)}e.multiplyScalar(w),b.add(e),g.newEdge=m.length,m.push(b)}let N,_,y,I,A,P,T,C=[];for(o=0,i=c.length;o<i;o++){for(P=c[o],A=d[o].edges,r=A.length,r==3?N=3/16:r>3&&(N=3/(8*r)),_=1-r*Number(N),y=N,r<=2&&(r==2?(_=3/4,y=1/8):r==1||r==0),T=P.clone().multiplyScalar(_),e.set(0,0,0),s=0;s<r;s++)I=A[s],h=I.a!==P?I.a:I.b,e.add(h);e.multiplyScalar(Number(y)),T.add(e),C.push(T)}let L=C.concat(m),j=C.length,Y,te,ie,U=[],W=[],q,F,E,D,B=new gc,k=new gc,$=new gc;for(o=0,i=p.length;o<i;o++)x=p[o],Y=Number(yc(x.a,x.b,f).newEdge)+j,te=Number(yc(x.b,x.c,f).newEdge)+j,ie=Number(yc(x.c,x.a,f).newEdge)+j,Ea(U,Y,te,ie,x.materialIndex),Ea(U,x.a,Y,ie,x.materialIndex),Ea(U,x.b,te,Y,x.materialIndex),Ea(U,x.c,ie,te,x.materialIndex),u&&(q=a[o],F=q[0],E=q[1],D=q[2],B.set(Ln(F.x,E.x),Ln(F.y,E.y)),k.set(Ln(E.x,D.x),Ln(E.y,D.y)),$.set(Ln(F.x,D.x),Ln(F.y,D.y)),Ba(W,B,k,$),Ba(W,F,B,$),Ba(W,E,k,B),Ba(W,D,$,k));t.vertices=L,t.faces=U,u&&(t.faceVertexUvs[0]=W)}};var ke=new Yw,zm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=n.geometry??t?.geometry??new Vm().copy(new Fm(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(ke),r={width:ke.x,height:ke.y,depth:ke.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 Vm().copy(new Fm(100,100,100)),s=i.userData.parameters;s===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(ke)):ke.set(s.width,s.height,s.depth),(t!==ke.x||e!==ke.y||r!==ke.z)&&i.scale(ke.x===0?1:t/ke.x,ke.y===0?1:e/ke.y,ke.z===0?1:r/ke.z);let l=i.originalGeometry;return o>0?(l===void 0||s?.subdivisions!==o)&&(l===void 0&&(l=i),i=new Da(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 $w(e).load(n,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(ke);let s=100/ke.x;Object.assign(i.parameters,{width:100,height:ke.y*s,depth:ke.z*s}),t(this.build(i))})}};var jm=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 ve?n.shape:new ve,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,b=u+Math.sin(g)*p,x=d+Math.cos(g)*a;c.addPoint(c.createPoint(b,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=et.create({shape:c,parameters:{roundness:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(m,{userData:{...n,type:"PolygonGeometry"}})}};import{BufferGeometry as Xw,Float32BufferAttribute as bc,Vector2 as hr,Vector3 as Ke}from"three";var Um=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 Sc(t*.5,e,o,i,s,l,c);return p.scale(1,1,r/t),Object.assign(p,{userData:{...n,type:"PyramidGeometry"}})}};function Mi(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function vc(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 Kw(n,t,e){let r=n.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var Sc=class extends Xw{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,b=(r-2)*Math.PI/r,x=Math.PI-b,S=new Ke(0,-f,0),w=new Ke(0,f,0),v=new hr(t,-f),N=new hr(h,-f),_=new hr(0,w.y).sub(N),y=new hr(0,w.y).sub(v),I=new hr(_.y,-_.x).normalize(),A=new hr(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 C;{let W=new Ke(I.x,I.y,0),q=new Ke(Math.cos(g)*W.x,W.y,Math.sin(g)*W.x);C=W.angleTo(q)}let L=s/Math.tan((Math.PI-_.angle())/2),j=s/Math.tan((Math.PI-C)/2),Y=new Ke;if(!i){p.push(S.x,S.y,S.z),a.push(0,-1,0),u.push(0,0);let W=d++,q=[],F=v.clone(),E=L/Math.cos(Math.PI/r);F.x-=E;for(let D=0;D<r;D++){let B=D/r*Math.PI*2+m,k=new hr(Math.sin(B),Math.cos(B));Mi(F,k,Y),p.push(Y.x,Y.y,Y.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 te=[];{let W=new Ke,q=new Ke,F=new Ke,E=new Ke,D=new Ke,B=new Ke;for(let k=0;k<r;k++){let $=k/r*Math.PI*2+m,H=(k+.5)/r*Math.PI*2+m,V=(k+1)/r*Math.PI*2+m,G=new hr(Math.sin($),Math.cos($)),z=new hr(Math.sin(H),Math.cos(H)),J=new hr(Math.sin(V),Math.cos(V));Mi(v,G,q),Mi(v,J,F),Mi(I,z,W),vc(w,q,F,j,j,E),p.push(E.x,E.y,E.z),vc(q,w,F,j,L,D),p.push(D.x,D.y,D.z),vc(F,q,w,L,j,B),p.push(B.x,B.y,B.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 oe=d++,se=d++,re=d++;if(c.push(oe,se,re),s>0){{let K=q.clone().add(F).multiplyScalar(.5),fe=w.clone().sub(K).normalize(),ye=S.clone().sub(K).normalize().add(fe).normalize().multiplyScalar(-1),$e=B.clone().sub(D);ie(K,$e,ye,_.angle())}let ee,Q;{let K=new Ke;Mi(A,J,K);let fe=B.clone().add(E).multiplyScalar(.5);fe=Kw(fe,F,w);let pe=B.clone().sub(E);[ee,Q]=ie(fe,pe,K,C,E.y)}{let K=ee,fe=K.clone().setY(0).normalize(),pe=new Ke(0,-1,0),ye=fe.clone().cross(pe);U(K,fe,pe,ye)}te.concat(Q);{let K=_.angle(),fe=Math.PI-K,pe=w.clone();pe.y-=s/Math.sin(K-Math.PI/2);let ye=new Ke,$e=[];for(let Ae=0;Ae<l;Ae++){let Pe=[],Pt=Math.PI/2-fe*Ae/l,Ur=Math.cos(Pt),vt=Math.sin(Pt),Eo=H;for(let as=0;as<=Ae;as++){let ls=Math.cos(Eo),Re=Math.sin(Eo);W.x=Ur*Re,W.y=vt,W.z=Ur*ls,ye.copy(pe).addScaledVector(W,s),p.push(ye.x,ye.y,ye.z),a.push(W.x,W.y,W.z),u.push(0,0),Pe.push(d++),Eo+=Math.PI*2/Ae/r}$e.push(Pe)}Q.reverse(),$e.push(Q);let _e=$e.length-1;for(let Ae=0;Ae<_e;Ae++){let Pe=$e[Ae],Pt=$e[Ae+1],Ur=Pe.length-1;c.push(Pt[1],Pe[0],Pt[0]);for(let vt=1;vt<=Ur;vt++)c.push(Pe[vt],Pe[vt-1],Pt[vt]),c.push(Pt[vt+1],Pe[vt],Pt[vt])}}}}}this.setIndex(c),this.setAttribute("position",new bc(p,3)),this.setAttribute("normal",new bc(a,3)),this.setAttribute("uv",new bc(u,2));function ie(W,q,F,E,D){let B=-E/2,k=(Math.PI-E)/2,$=q.clone().normalize().cross(F);W.addScaledVector(F,-s/Math.sin(k));let H=new Ke,V=new Ke,G=1,z=d,J=[];for(let oe=0;oe<=l;oe++){let se=B+oe/l*E;V.set(0,0,0),V.addScaledVector($,Math.sin(se)),V.addScaledVector(F,Math.cos(se));for(let re=0;re<=G;re++){let ee=re/G-.5;if(H.copy(W),H.addScaledVector(q,ee),H.addScaledVector(V,s),D!=null){let Q=Math.max(0,H.y-D);H.addScaledVector(q,-Q/q.y)}p.push(H.x,H.y,H.z),a.push(V.x,V.y,V.z),u.push(0,0),re===0&&J.push(d),d++}}for(let oe=0;oe<l;oe++)for(let se=0;se<G;se++){let re=z+se+(G+1)*oe,ee=re+(G+1),Q=ee+1,K=re+1;c.push(re,ee,K),c.push(ee,Q,K)}return[W.clone().addScaledVector(q,.5),J]}function U(W,q,F,E){let D=Math.PI/2,B=y.angle()-D,k=[],$=new Ke,H=new Ke;for(let G=0;G<=l;G++){let z=[],J=G/l;for(let oe=0;oe<=G;oe++){let re=((G?oe/G:0)-.5)*x,ee=Math.cos(re),Q=Math.sin(re),K=Math.atan(Math.tan(B)*ee),fe=(D+K)*J,pe=Math.cos(fe),ye=Math.sin(fe);$.set(0,0,0),$.addScaledVector(q,ye*ee),$.addScaledVector(F,pe),$.addScaledVector(E,ye*Q),H.copy(W).addScaledVector($,s),p.push(H.x,H.y,H.z),a.push($.x,$.y,$.z),u.push(0,0),z.push(d++)}k.push(z)}let V=k.length-1;for(let G=0;G<V;G++){let z=k[G],J=k[G+1],oe=z.length-1;c.push(z[0],J[1],J[0]);for(let se=1;se<=oe;se++)c.push(z[se-1],z[se],J[se]),c.push(z[se],J[se+1],J[se])}}}};var km=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 ve?n.shape:new ve,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(w,v,N){return v>e&&N>r?Math.min(w*e/v,w*r/N):v>e?w*e/v:N>r?w*r/N:w}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,b=a.y;t.addPoint(t.createPoint(m,g)),t.addPoint(t.createPoint(h,g)),t.addPoint(t.createPoint(h,b)),t.addPoint(t.createPoint(m,b)),t.isClosed=!0;let x=!0;for(let w=0,v=t.points.length;w<v;w++)t.points[w].roundness=f[w],w>0&&f[w]!==f[w-1]&&(x=!1);x&&(t.roundness=f[0]),t.useCubicForRoundedCorners=i!==1,t.update();let S=et.create({shape:t,parameters:{depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(S,{userData:{...n,type:"RectangleGeometry"}})}};import{SphereGeometry as Zw}from"three";var Hm=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 Zw(.5*t,o,i,s,l,c,p);return a.scale(1,e/t,r/t),Object.assign(a,{userData:{...n,type:"SphereGeometry"}})}};import{PlaneGeometry as Qw}from"three";var Wm=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 Qw(t,e,r,o);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};import{BufferGeometry as Jw,Float32BufferAttribute as wc,Vector3 as e_}from"three";var qm=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 _c(t,e,r,o,i,s);return Object.assign(l,{userData:{...n,type:"BackdropGeometry"}})}},_c=class extends Jw{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,G=0)=>new e_(H,V,G),m=f(),h=f(),[g,b,x]=[e/2,t/2,r/2],S=-b,w=+b,[v,N,_]=[f(S,-g,+x),f(S,-g,-x),f(S,+g,-x)],y=(H,V=!1)=>Math.sin(H-Math.PI/(1+ +V)),I=(H,V=!1)=>Math.cos(H-Math.PI/(1+ +V));_.y=Math.sin(o)*e-g;let A=Math.cos(o)*e-x,P=v.z-a;o<=d?(_.z=Math.min(A,P),_.z==P&&(_.y-=(A-P)/Math.tan(d-o))):N.z=Math.min(N.z-A-x,v.z-a),m.subVectors(v,N),h.subVectors(_,N);let T=Math.min(m.length(),h.length())*i/100,C=T*Math.tan(o/2),L=T/Math.cos(o/2),j=m.clone().normalize().add(h.normalize()).setLength(L).add(N);m.set(0,y(o,!0),I(o,!0)),u.push([_,m.clone()]);let Y=(Math.PI-o)/s;for(let H=0;H<=s;H++){let V=d+o+H*Y;m.set(0,Math.sin(V)*C,Math.cos(V)*C),m.add(j),h.set(0,y(V),I(V)),u.push([m.clone(),h.clone()])}u.push([v,f(0,1,0)]);let te=Math.sin(Y/2)*C*2,ie=u.length-1,U=u[0][0].distanceTo(u[1][0]),W=u[ie-1][0].distanceTo(u[ie][0]),q=U+te*s+W;u[0].push(1);for(let H=0;H<=s;H++)u[H+1].push(1-(U+H*te)/q);u[ie].push(0);let[F,E,D]=u[0],B,k,$;for(let H=1;H<u.length;H++)[B,k,$]=u[H],l.push(S,F.y,F.z,S,B.y,B.z,w,F.y,F.z,w,F.y,F.z,S,B.y,B.z,w,B.y,B.z),c.push(0,E.y,E.z,0,k.y,k.z,0,E.y,E.z,0,E.y,E.z,0,k.y,k.z,0,k.y,k.z),p.push(0,D,0,$,1,D,1,D,0,$,1,$),[F,E,D]=[B,k,$];this.setAttribute("position",new wc(l,3)),this.setAttribute("normal",new wc(c,3)),this.setAttribute("uv",new wc(p,2))}};var $m=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 ve?n.shape:new ve,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,b=u*r/100,x=d*r/100;if(o===3&&r===50){h=2*Math.PI/o;for(let w=0;w<o;w++){let v=h*w,N=f+Math.sin(v)*u,_=m+Math.cos(v)*d;a.addPoint(a.createPoint(N,_))}}else for(let w=0;w<o;w++){let v=f+Math.cos(g)*u,N=m+Math.sin(g)*d;a.addPoint(a.createPoint(v,N)),g+=h,v=f+Math.cos(g)*b,N=m+Math.sin(g)*x,w<=o,a.addPoint(a.createPoint(v,N)),g+=h}a.isClosed=!0;for(let w=0,v=a.points.length;w<v;w++)a.points[w].roundness=i;a.roundness=i,a.update();let S=et.create({shape:a,parameters:{roundness:i,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}});return Object.assign(S,{userData:{...n,type:"StarGeometry"}})}};import{PlaneGeometry as t_}from"three";var Ym=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 t_(t,e);return Object.assign(r,{userData:{...n,type:"TextFrameGeometry"}})}};var Xm=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.round(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=r_(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 r_(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 Pi(!0,n,t,e,r,o,i,s,l,c,p,a)}import{TorusKnotGeometry as o_}from"three";var Km=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 o_(l,e,r,o,i,s);return Object.assign(c,{userData:{...n,type:"TorusKnotGeometry"}})}};var Zm=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 ve?n.shape:new ve,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=et.create({shape:c,parameters:{roundness:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s}});return Object.assign(u,{userData:{...n,type:"TriangleGeometry"}})}};import{BufferAttribute as Qm,BufferGeometry as Tc}from"three";import{mergeBufferGeometries as n_}from"three/examples/jsm/utils/BufferGeometryUtils.js";function Jm(){let n=new Tc;return n.setAttribute("position",new Qm(new Float32Array([]),3)),n.setIndex(new Qm(new Uint16Array([]),1)),n}var i_=12;var En=class extends Tc{constructor(e,r){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let o=Jm();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=s_(e,r,d),{shapes:m,charWidths:h,charCoords:g}=await r.generateShapes(f,e),b=o*.5,x=i*.5,S=m.map(N=>new ve().fromShape(N));this.vectorShapes=S;let w=S.map(N=>et.create({shape:N,parameters:{depth:s,extrudeBevelSegments:c,extrudeBevelSize:l,windingRule:s<=0?Oe.NONZERO:Oe.ODD,subdivisions:u??i_}})),v=w.length?n_(w):Jm();v.translate(-b,x,0),this.dispose(),this.wrappedText=f,this.charCoords=g,this.charWidths=h,this.deleteAttribute("extrudeNormal"),Object.entries(v.attributes).forEach(([N,_])=>{this.setAttribute(N,_)}),this.setIndex(v.index),this.computeBoundingSphere()}clone(){let e=vo(new Tc,En.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 s_(n,t,e){e=e??n.text;let r=[""],o="";for(let i of e)o+=i,i===" "||i===`
|
|
1
|
+
var Pg=Object.create;var sl=Object.defineProperty;var Og=Object.getOwnPropertyDescriptor;var Cg=Object.getOwnPropertyNames;var Mg=Object.getPrototypeOf,Lg=Object.prototype.hasOwnProperty;var al=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),Eg=(n,t)=>{for(var e in t)sl(n,e,{get:t[e],enumerable:!0})},Bg=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Cg(t))!Lg.call(n,o)&&o!==e&&sl(n,o,{get:()=>t[o],enumerable:!(r=Og(t,o))||r.enumerable});return n};var ll=(n,t,e)=>(e=n!=null?Pg(Mg(n)):{},Bg(t||!n||!n.__esModule?sl(e,"default",{value:n,enumerable:!0}):e,n));var vf=al((Gl,bf)=>{(function(n,t){typeof Gl=="object"?bf.exports=t():typeof define=="function"&&define.amd?define(t):n.Alea=t()})(Gl,function(){"use strict";return n.importState=function(e){var r=new n;return r.importState(e),r},n;function n(){return function(e){var r=0,o=0,i=0,s=1;e.length==0&&(e=[+new Date]);var l=t();r=l(" "),o=l(" "),i=l(" ");for(var c=0;c<e.length;c++)r-=l(e[c]),r<0&&(r+=1),o-=l(e[c]),o<0&&(o+=1),i-=l(e[c]),i<0&&(i+=1);l=null;var p=function(){var a=2091639*r+s*23283064365386963e-26;return r=o,o=i,i=a-(s=a|0)};return p.next=p,p.uint32=function(){return p()*4294967296},p.fract53=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.version="Alea 0.9",p.args=e,p.exportState=function(){return[r,o,i,s]},p.importState=function(a){r=+a[0]||0,o=+a[1]||0,i=+a[2]||0,s=+a[3]||0},p}(Array.prototype.slice.call(arguments))}function t(){var e=4022871197,r=function(o){o=o.toString();for(var i=0;i<o.length;i++){e+=o.charCodeAt(i);var s=.02519603282416938*e;e=s>>>0,s-=e,s*=e,e=s>>>0,s-=e,e+=s*4294967296}return(e>>>0)*23283064365386963e-26};return r.version="Mash 0.9",r}})});var Hh=al((tl,kh)=>{(function(n,t){typeof tl=="object"&&typeof kh<"u"?t(tl):typeof define=="function"&&define.amd?define(["exports"],t):t((n=typeof globalThis<"u"?globalThis:n||self).SVDJS={})})(tl,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,b,x=t[0].length,S=t.length;if(S<x)throw new TypeError("Invalid matrix: m < n");for(var w=[],v=[],N=[],_=e==="f"?S:x,y=h=d=0;y<S;y++)v[y]=new Array(_).fill(0);for(y=0;y<x;y++)N[y]=new Array(x).fill(0);var I,A=new Array(x).fill(0);for(y=0;y<S;y++)for(s=0;s<x;s++)v[y][s]=t[y][s];for(y=0;y<x;y++){for(w[y]=d,m=0,c=y+1,s=y;s<S;s++)m+=Math.pow(v[s][y],2);if(m<i)d=0;else for(f=(u=v[y][y])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,v[y][y]=u-d,s=c;s<x;s++){for(m=0,l=y;l<S;l++)m+=v[l][y]*v[l][s];for(u=m/f,l=y;l<S;l++)v[l][s]=v[l][s]+u*v[l][y]}for(A[y]=d,m=0,s=c;s<x;s++)m+=Math.pow(v[y][s],2);if(m<i)d=0;else{for(f=(u=v[y][y+1])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,v[y][y+1]=u-d,s=c;s<x;s++)w[s]=v[y][s]/f;for(s=c;s<S;s++){for(m=0,l=c;l<x;l++)m+=v[s][l]*v[y][l];for(l=c;l<x;l++)v[s][l]=v[s][l]+m*w[l]}}h<(g=Math.abs(A[y])+Math.abs(w[y]))&&(h=g)}if(r)for(y=x-1;0<=y;y--){if(d!==0){for(f=v[y][y+1]*d,s=c;s<x;s++)N[s][y]=v[y][s]/f;for(s=c;s<x;s++){for(m=0,l=c;l<x;l++)m+=v[y][l]*N[l][s];for(l=c;l<x;l++)N[l][s]=N[l][s]+m*N[l][y]}}for(s=c;s<x;s++)N[y][s]=0,N[s][y]=0;N[y][y]=1,d=w[y],c=y}if(e){if(e==="f")for(y=x;y<S;y++){for(s=x;s<S;s++)v[y][s]=0;v[y][y]=1}for(y=x-1;0<=y;y--){for(c=y+1,d=A[y],s=c;s<_;s++)v[y][s]=0;if(d!==0){for(f=v[y][y]*d,s=c;s<_;s++){for(m=0,l=c;l<S;l++)m+=v[l][y]*v[l][s];for(u=m/f,l=y;l<S;l++)v[l][s]=v[l][s]+u*v[l][y]}for(s=y;s<S;s++)v[s][y]=v[s][y]/d}else for(s=y;s<S;s++)v[s][y]=0;v[y][y]=v[y][y]+1}}for(o*=h,l=x-1;0<=l;l--)for(var P=0;P<50;P++){for(I=!1,c=l;0<=c;c--){if(Math.abs(w[c])<=o){I=!0;break}if(Math.abs(A[c-1])<=o)break}if(!I){for(a=0,p=c-(m=1),y=c;y<l+1&&(u=m*w[y],w[y]=a*w[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<S;s++)g=v[s][p],b=v[s][y],v[s][p]=g*a+b*m,v[s][y]=-g*m+b*a}if(b=A[l],c===l){if(b<0&&(A[l]=-b,r))for(s=0;s<x;s++)N[s][l]=-N[s][l];break}for(h=A[c],u=(((g=A[l-1])-b)*(g+b)+((d=w[l-1])-(f=w[l]))*(d+f))/(2*f*g),d=Math.sqrt(u*u+1),u=((h-b)*(h+b)+f*(g/(u<0?u-d:u+d)-f))/h,y=c+(m=a=1);y<l+1;y++){if(d=w[y],g=A[y],f=m*d,d*=a,b=Math.sqrt(u*u+f*f),u=h*(a=u/(w[y-1]=b))+d*(m=f/b),d=-h*m+d*a,f=g*m,g*=a,r)for(s=0;s<x;s++)h=N[s][y-1],b=N[s][y],N[s][y-1]=h*a+b*m,N[s][y]=-h*m+b*a;if(b=Math.sqrt(u*u+f*f),u=(a=u/(A[y-1]=b))*d+(m=f/b)*g,h=-m*d+a*g,e)for(s=0;s<S;s++)g=v[s][y-1],b=v[s][y],v[s][y-1]=g*a+b*m,v[s][y]=-g*m+b*a}w[c]=0,w[l]=u,A[l]=h}for(y=0;y<x;y++)A[y]<o&&(A[y]=0);return{u:v,q:A,v:N}},n.VERSION="1.1.1",Object.defineProperty(n,"__esModule",{value:!0})})});var sg=al(rl=>{(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,b=f.match(/Version\/(.*?) /),x=g&&b&&parseInt(b[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 b=a._howls[m]._soundById(h[g]);b&&b._node&&!b._node._unlocked&&(b._node._unlocked=!0,b._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 S=0;S<a._howls.length;S++)a._howls[S]._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 b=g._id;return d._queue.push({event:"play",action:function(){d.play(b)}}),b}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),S=Math.max(0,(d._sprite[a][0]+d._sprite[a][1])/1e3-x),w=S*1e3/Math.abs(g._rate),v=d._sprite[a][0]/1e3,N=(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=v,g._stop=N,g._loop=!!(g._loop||d._sprite[a][2])};if(x>=N){d._ended(g);return}var y=g._node;if(d._webAudio){var I=function(){d._playLock=!1,_(),d._refreshBuffer(g);var C=g._muted||d._muted?0:g._volume;y.gain.setValueAtTime(C,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,S):g._loop?y.bufferSource.start(0,x,86400):y.bufferSource.start(0,x,S),w!==1/0&&(d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),w)),u||setTimeout(function(){d._emit("play",g._id),d._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?I():(d._playLock=!0,d.once("resume",I),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 C=y.play();if(C&&typeof Promise<"u"&&(C instanceof Promise||typeof C.then=="function")?(d._playLock=!0,_(),C.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),w):(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(L){d._emit("playerror",g._id,L)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=d._src,y.load());var P=window&&window.ejecta||!y.readyState&&t._navigator.isCocoonJS;if(y.readyState>=3||P)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 b=0;b<f.length;b++)g=a._soundById(f[b]),g&&(g._volume=d,u[2]||a._stopFade(f[b]),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 b=m._soundById(h[g]);if(b){if(f||m._stopFade(h[g]),m._webAudio&&!b._muted){var x=t.ctx.currentTime,S=x+d/1e3;b._volume=a,b._node.gain.setValueAtTime(a,x),b._node.gain.linearRampToValueAtTime(u,S)}m._startFadeInterval(b,a,u,d,h[g],typeof f>"u")}}return m},_startFadeInterval:function(a,u,d,f,m,h){var g=this,b=u,x=d-u,S=Math.abs(x/.01),w=Math.max(4,S>0?f/S:f),v=Date.now();a._fadeTo=d,a._interval=setInterval(function(){var N=(Date.now()-v)/f;v=Date.now(),b+=x*N,b=Math.round(b*100)/100,x<0?b=Math.max(d,b):b=Math.min(d,b),g._webAudio?a._volume=b:g.volume(b,a._id,!0),h&&(g._volume=b),(d<u&&b<=d||d>u&&b>=d)&&(clearInterval(a._interval),a._interval=null,a._fadeTo=null,g.volume(d,a._id),g._emit("fade",a._id))},w)},_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 b=0;b<f.length;b++)if(g=a._soundById(f[b]),g){a.playing(f[b])&&(g._rateSeek=a.seek(f[b]),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[b]),S=(a._sprite[g._sprite][0]+a._sprite[g._sprite][1])/1e3-x,w=S*1e3/Math.abs(g._rate);(a._endTimers[f[b]]||!g._paused)&&(a._clearTimer(f[b]),a._endTimers[f[b]]=setTimeout(a._ended.bind(a,g),w)),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 b=a.playing(f);b&&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(){b&&a.play(f,!0),a._emit("seek",f)};if(b&&!a._webAudio){var S=function(){a._playLock?setTimeout(S,0):x()};setTimeout(S,0)}else x()}else if(a._webAudio){var w=a.playing(f)?t.ctx.currentTime-g._playStart:0,v=g._rateSeek?g._rateSeek-g._seek:0;return g._seek+(v+w*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 b=Object.keys(f);for(h=0;h<b.length;h++)b[h].indexOf("_on")===0&&Array.isArray(f[b[h]])&&(f[b[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 rl<"u"&&(rl.Howler=t,rl.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)}})()});import{FileLoader as SA,Loader as wA}from"three";var Me=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,Me.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,Me.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,Me.prototype),delete i[r],{data:i,actual:t,reverse:{type:1,id:r,data:o}}}}return null}};function Qn(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"&&Qn(r)}return Object.freeze(n)}function cu(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 Bo=class extends Error{};var he=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,he.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Qn(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,he.prototype);let r=e;return uu()||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)}return null}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 er(0,r,r);{let i=o[0].fi;return er(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 er(l,l+r,r)}else return er(i.fi,s.fi,r)}}};function er(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 Jn(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 uu(){return typeof process<"u"}function cl(n){return typeof n!="object"||Jn(n)||Dg(n)}function us(n){return cl(n)||n instanceof he||n instanceof Ee||n instanceof Me}function Dg(n){return Array.isArray(n)&&n.every(t=>typeof t!="object")}function pu(n,t){for(let e of n)t(e.id,e.data)!==!0&&pu(e.children,t)}function du(n,t){if(t(n.id,n.data)!==!0)for(let e of n.children)du(e,t)}var Ee=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Ee.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Qn(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)]}nonExistOrDescendantOf(e,r){if(!this.has(e))return!0;for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!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&&du(o,r)}}traverse(e){pu(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,Ee.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)}return null}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 Bo("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)=>cu(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 er(0,o,o);{let s=i[0].fi;return er(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 er(c,c+o,o)}else return er(s.fi,l.fi,o)}}};var Do;(t=>{function n(e,r){if(r.type!==0)return null;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})(Do||(Do={}));var Go=class{unusedFun(t){}},_t=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 Ee||r instanceof he)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,_t.prototype),l={...t,props:i};return{data:s,actual:t,reverse:l}}},fu;(r=>{function n(o,i){return Ro(o,i)??o}r.apply=n;function t(o,i){return hu(o,i)}r.merge=t;function e(o,i){let s=0,l=i.path,c=o;for(;s<l.length&&c!==void 0;){if(c=Ir.zoomOnce(c,l[s]),c instanceof Ee||c instanceof he)return;s+=1}if(c===void 0)return i;if(us(c))return;if(i.type===0)if(c&&typeof c=="object"){let p={...i.props};for(let a of Object.keys(c))delete p[a];return{...i,props:p}}else return;else if(i.type===1||i.type===4||i.type===7)if(typeof c=="object"){let p={...i.data,...c};return{...i,data:p}}else return;else return i}r.filterOp=e})(fu||(fu={}));function mu(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=Ro(o.data,t[i]);e=e||s!==void 0,s===void 0&&(s=o.data);let l=mu(o.children,t);return l!==void 0?e=!0:l=o.children,{...o,id:i,data:s,children:l}});if(e)return r}function Gg(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=Ro(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 Ro(n,t){if(us(t)||t instanceof Go)return t;if(n instanceof Ee){let e=mu(n,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else{if(n instanceof he)return Gg(n,t);if(Array.isArray(n)){let e=!1,r=n.map((o,i)=>{let s=Ro(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=Ro(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}}}function hu(n,t){if(n===void 0)return t;if(t===void 0)return n;if(us(t)||cl(n))return t;if(n instanceof Ee||n instanceof he)return Ro(n,t);if(typeof n=="object"&&typeof t=="object"){let e=new Set;if(n)for(let o of Object.keys(n))e.add(o);if(t)for(let o of Object.keys(t))e.add(o);let r={};for(let o of e){let i=hu(n===void 0?void 0:n[o],t===void 0?void 0:t[o]);r[o]=i}return r}else return n}function gu(n,t){let e={cur:[],result:[],len:0};return n=ei(n,t,e)??n,[n,e.result]}function ps(n,t){return n===null?null:(n.cur[n.len]=t,n.len+=1,n)}function ds(n){n&&(n.len-=1)}function Rg(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function yu(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=ei(i.data,t,ps(e,s));ds(e),r=r||c!==void 0,c===void 0&&(c=i.data);let p=yu(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 Vg(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=ei(i.data,t,ps(e,s));return ds(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 ei(n,t,e){if(n instanceof Ee){let r=yu(n,t,e);return r!==void 0&&Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}else{if(n instanceof he)return Vg(n,t,e);if(Array.isArray(n)){let r=!1,o=n.map((i,s)=>{let l=ei(i,t,ps(e,s));return ds(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=ei(s,t,ps(e,i));ds(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");Rg(e)}return r}else return}}var xu;(t=>{function n(e,r){let o=Ir.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})(xu||(xu={}));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 _t&&p.type===0&&(d=c.runOp({...p,path:a.slice(u.length)}),d===null&&(d=void 0)),u.length===a.length&&(c instanceof Ee||c instanceof he||c instanceof Me?d=c.runOp(p):d=Do.runOp(c,p)),d!==void 0)if(d!==null){let h=d.data;for(let g=u.length-1;g>=0;g--){let b=a[g],x=u[g];if(x instanceof Ee){if(typeof b=="number")throw new Error("illegal arg");h=x.modifyById(b,h)}else if(x instanceof he){if(typeof b=="number")throw new Error("illegal arg");h=x.modifyById(b,h)}else if(x instanceof Me){if(typeof b=="number")throw new Error("illegal arg");h=x.modifyById(b,h)}else if(x instanceof _t){let S={...x,[b]:h};h=Object.setPrototypeOf(S,_t.prototype)}else if(typeof x=="object")if(Array.isArray(x)){if(typeof b=="string"&&(b=parseInt(b),isNaN(b)))throw new Error("Invalid path");let S=h;h=[...x],h[b]=S}else h={...x,[b]: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 Ee){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else if(c instanceof he){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 bu;(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=Ir.zoom(u,[...m.path,m.id]),g=kr.apply(u,{...m,type:2});if(g!==null){u=g.data;let[b,x]=gu(u,{[m.id]:h});u=b;for(let S of x){let w=S[S.length-1];S.splice(S.length-1,1),d.push({type:0,path:S,props:{[w]:h}}),f.push({type:0,path:S,props:{[w]: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 Bo)return null;throw h}return{data:u,actual:d,reverse:f.reverse()}}c.apply=l})(bu||(bu={}));var vu=Symbol(),ti=Symbol(),fo=class{reportOp(t,e,r=[]){let o=this;if(e===null)return;o._current=e.data;let i=r;for(;!(o instanceof ms);){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[ti];r&&r(),delete this._children[t]}}}},pl=class extends fo{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,Do.runOp(this._current,t),t.path)}},dl=class extends fo{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,Me.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Su={get(n,t){if(t===ti)return()=>{n._parent=null};if(t===vu)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=hs(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]}}},Fg={...Su,set(n,t,e){let r={type:0,props:{[t]:ft(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}},zg={...Su,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}},Vo=class extends fo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[ti]=()=>{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=hs(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)}},fs=class extends fo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r,this[ti]=()=>{this._parent=null}}feedOp(t){let{path:e,...r}=t;this.reportOp(r,kr.apply(this._current,t),e)}},Fo=class extends fo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[ti]=()=>{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=hs(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 ul(n,t,e){if(n.length>0){let r=n[n.length-1];if(r.type===0&&t.type===0&&Ir.equal(r.path,e)){Object.assign(r.props,t.props);return}}n.push({...t,path:e})}var ms=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){ul(this.ts,e,t),ul(this.actual,r,t),ul(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function hs(n,t,e){return e instanceof Ee?new Vo(n,t,e):e instanceof he?new Fo(n,t,e):e instanceof _t?new fs(n,t,e):e instanceof Me?new Proxy(new dl(n,t,e),zg):e!==null&&typeof e=="object"?Jn(e)?e:new Proxy(new pl(n,t,e),Fg):e}function fl(n){let t=new ms(n);return[hs(t,"",n),t]}function ml(n,t){let[e,r]=fl(n);return t(e),r.result()}function ft(n){return n instanceof Vo||n instanceof Fo||n instanceof fs?n._current:n!==null&&typeof n=="object"?n[vu]:n}var Ir;(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 Ee||i instanceof Vo)&&typeof s=="string")return i.data(s);if((i instanceof he||i instanceof Fo)&&typeof s=="string")return i.data(s);if(typeof s=="number"&&Array.isArray(i))return i[s];if(typeof s=="string"&&typeof i=="object"&&i!==null)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})(Ir||(Ir={}));var gs=class{},ri=class extends gs{constructor(e){super();this.id=e}},oi=class extends gs{constructor(e){super();this.data=e}};var gl;try{gl=new TextDecoder}catch{}var ne,Wr,O=0;var Ou=[],yl=Ou,xl=0,mt={},Se,Hr,Ot=0,tr=0,Tt,Pr,at=[],Ne,wu={useRecords:!1,mapsAsObjects:!0},ni=class{},vl=new ni;vl.name="MessagePack 0xC1";var zo=!1,rr=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(ne)return Bu(()=>(xs(),this?this.unpack(t,e):rr.prototype.unpack.call(wu,t,e)));Wr=e>-1?e:t.length,O=0,xl=0,tr=0,Hr=null,yl=Ou,Tt=null,ne=t;try{Ne=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw ne=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 rr){if(mt=this,this.structures)return Se=this.structures,ys();(!Se||Se.length>0)&&(Se=[])}else mt=wu,(!Se||Se.length>0)&&(Se=[]);return ys()}unpackMultiple(t,e){let r,o=0;try{zo=!0;let i=t.length,s=this?this.unpack(t,i):Ss.unpack(t,i);if(e){for(e(s);O<i;)if(o=O,e(ys())===!1)return}else{for(r=[s];O<i;)o=O,r.push(ys());return r}}catch(i){throw i.lastPosition=o,i.values=r,i}finally{zo=!1,xs()}}_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 ys(){try{if(!mt.trusted&&!zo){let t=Se.sharedLength||0;t<Se.length&&(Se.length=t)}let n=De();if(O==Wr)Se.restoreStructures&&_u(),Se=null,ne=null,Pr&&(Pr=null);else if(O>Wr){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!zo)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw Se.restoreStructures&&_u(),xs(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function _u(){for(let n in Se.restoreStructures)Se[n]=Se.restoreStructures[n];Se.restoreStructures=null}function De(){let n=ne[O++];if(n<160)if(n<128){if(n<64)return n;{let t=Se[n&63]||mt.getStructures&&Cu()[n&63];return t?(t.read||(t.read=Sl(t,n&63)),t.read()):n}}else if(n<144)if(n-=128,mt.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[Lu()]=De();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(De(),De());return t}else{n-=144;let t=new Array(n);for(let e=0;e<n;e++)t[e]=De();return t}else if(n<192){let t=n-160;if(tr>=O)return Hr.slice(O-Ot,(O+=t)-Ot);if(tr==0&&Wr<140){let e=t<16?wl(t):Mu(t);if(e!=null)return e}return bl(t)}else{let t;switch(n){case 192:return null;case 193:return Tt?(t=De(),t>0?Tt[1].slice(Tt.position1,Tt.position1+=t):Tt[0].slice(Tt.position0,Tt.position0-=t)):vl;case 194:return!1;case 195:return!0;case 196:return hl(ne[O++]);case 197:return t=Ne.getUint16(O),O+=2,hl(t);case 198:return t=Ne.getUint32(O),O+=4,hl(t);case 199:return mo(ne[O++]);case 200:return t=Ne.getUint16(O),O+=2,mo(t);case 201:return t=Ne.getUint32(O),O+=4,mo(t);case 202:if(t=Ne.getFloat32(O),mt.useFloat32>2){let e=vs[(ne[O]&127)<<1|ne[O+1]>>7];return O+=4,(e*t+(t>0?.5:-.5)>>0)/e}return O+=4,t;case 203:return t=Ne.getFloat64(O),O+=8,t;case 204:return ne[O++];case 205:return t=Ne.getUint16(O),O+=2,t;case 206:return t=Ne.getUint32(O),O+=4,t;case 207:return mt.int64AsNumber?(t=Ne.getUint32(O)*4294967296,t+=Ne.getUint32(O+4)):t=Ne.getBigUint64(O),O+=8,t;case 208:return Ne.getInt8(O++);case 209:return t=Ne.getInt16(O),O+=2,t;case 210:return t=Ne.getInt32(O),O+=4,t;case 211:return mt.int64AsNumber?(t=Ne.getInt32(O)*4294967296,t+=Ne.getUint32(O+4)):t=Ne.getBigInt64(O),O+=8,t;case 212:if(t=ne[O++],t==114)return Pu(ne[O++]&63);{let e=at[t];if(e)return e.read?(O++,e.read(De())):e.noBuffer?(O++,e()):e(ne.subarray(O,++O));throw new Error("Unknown extension "+t)}case 213:return t=ne[O],t==114?(O++,Pu(ne[O++]&63,ne[O++])):mo(2);case 214:return mo(4);case 215:return mo(8);case 216:return mo(16);case 217:return t=ne[O++],tr>=O?Hr.slice(O-Ot,(O+=t)-Ot):Ug(t);case 218:return t=Ne.getUint16(O),O+=2,tr>=O?Hr.slice(O-Ot,(O+=t)-Ot):kg(t);case 219:return t=Ne.getUint32(O),O+=4,tr>=O?Hr.slice(O-Ot,(O+=t)-Ot):Hg(t);case 220:return t=Ne.getUint16(O),O+=2,Au(t);case 221:return t=Ne.getUint32(O),O+=4,Au(t);case 222:return t=Ne.getUint16(O),O+=2,Nu(t);case 223:return t=Ne.getUint32(O),O+=4,Nu(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 jg=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Sl(n,t){function e(){if(e.count++>2){let o=n.read=new Function("r","return function(){return {"+n.map(i=>jg.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(De);return n.highByte===0&&(n.read=Tu(t,n.read)),o()}let r={};for(let o=0,i=n.length;o<i;o++){let s=n[o];r[s]=De()}return r}return e.count=0,n.highByte===0?Tu(t,e):e}var Tu=(n,t)=>function(){let e=ne[O++];if(e===0)return t();let r=n<32?-(n+(e<<5)):n+(e<<5),o=Se[r]||Cu()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=Sl(o,n)),o.read()};function Cu(){let n=Bu(()=>(ne=null,mt.getStructures()));return Se=mt._mergeStructures(n,Se)}var bl=bs,Ug=bs,kg=bs,Hg=bs;function bs(n){let t;if(n<16&&(t=wl(n)))return t;if(n>64&&gl)return gl.decode(ne.subarray(O,O+=n));let e=O+n,r=[];for(t="";O<e;){let o=ne[O++];if((o&128)===0)r.push(o);else if((o&224)===192){let i=ne[O++]&63;r.push((o&31)<<6|i)}else if((o&240)===224){let i=ne[O++]&63,s=ne[O++]&63;r.push((o&31)<<12|i<<6|s)}else if((o&248)===240){let i=ne[O++]&63,s=ne[O++]&63,l=ne[O++]&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+=Ye.apply(String,r),r.length=0)}return r.length>0&&(t+=Ye.apply(String,r)),t}function Au(n){let t=new Array(n);for(let e=0;e<n;e++)t[e]=De();return t}function Nu(n){if(mt.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[Lu()]=De();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(De(),De());return t}}var Ye=String.fromCharCode;function Mu(n){let t=O,e=new Array(n);for(let r=0;r<n;r++){let o=ne[O++];if((o&128)>0){O=t;return}e[r]=o}return Ye.apply(String,e)}function wl(n){if(n<4)if(n<2){if(n===0)return"";{let t=ne[O++];if((t&128)>1){O-=1;return}return Ye(t)}}else{let t=ne[O++],e=ne[O++];if((t&128)>0||(e&128)>0){O-=2;return}if(n<3)return Ye(t,e);let r=ne[O++];if((r&128)>0){O-=3;return}return Ye(t,e,r)}else{let t=ne[O++],e=ne[O++],r=ne[O++],o=ne[O++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){O-=4;return}if(n<6){if(n===4)return Ye(t,e,r,o);{let i=ne[O++];if((i&128)>0){O-=5;return}return Ye(t,e,r,o,i)}}else if(n<8){let i=ne[O++],s=ne[O++];if((i&128)>0||(s&128)>0){O-=6;return}if(n<7)return Ye(t,e,r,o,i,s);let l=ne[O++];if((l&128)>0){O-=7;return}return Ye(t,e,r,o,i,s,l)}else{let i=ne[O++],s=ne[O++],l=ne[O++],c=ne[O++];if((i&128)>0||(s&128)>0||(l&128)>0||(c&128)>0){O-=8;return}if(n<10){if(n===8)return Ye(t,e,r,o,i,s,l,c);{let p=ne[O++];if((p&128)>0){O-=9;return}return Ye(t,e,r,o,i,s,l,c,p)}}else if(n<12){let p=ne[O++],a=ne[O++];if((p&128)>0||(a&128)>0){O-=10;return}if(n<11)return Ye(t,e,r,o,i,s,l,c,p,a);let u=ne[O++];if((u&128)>0){O-=11;return}return Ye(t,e,r,o,i,s,l,c,p,a,u)}else{let p=ne[O++],a=ne[O++],u=ne[O++],d=ne[O++];if((p&128)>0||(a&128)>0||(u&128)>0||(d&128)>0){O-=12;return}if(n<14){if(n===12)return Ye(t,e,r,o,i,s,l,c,p,a,u,d);{let f=ne[O++];if((f&128)>0){O-=13;return}return Ye(t,e,r,o,i,s,l,c,p,a,u,d,f)}}else{let f=ne[O++],m=ne[O++];if((f&128)>0||(m&128)>0){O-=14;return}if(n<15)return Ye(t,e,r,o,i,s,l,c,p,a,u,d,f,m);let h=ne[O++];if((h&128)>0){O-=15;return}return Ye(t,e,r,o,i,s,l,c,p,a,u,d,f,m,h)}}}}}function hl(n){return mt.copyBuffers?Uint8Array.prototype.slice.call(ne,O,O+=n):ne.subarray(O,O+=n)}function mo(n){let t=ne[O++];if(at[t])return at[t](ne.subarray(O,O+=n));throw new Error("Unknown extension type "+t)}var Iu=new Array(4096);function Lu(){let n=ne[O++];if(n>=160&&n<192){if(n=n-160,tr>=O)return Hr.slice(O-Ot,(O+=n)-Ot);if(!(tr==0&&Wr<180))return bl(n)}else return O--,De();let t=(n<<5^(n>1?Ne.getUint16(O):n>0?ne[O]:0))&4095,e=Iu[t],r=O,o=O+n-3,i,s=0;if(e&&e.bytes==n){for(;r<o;){if(i=Ne.getUint32(r),i!=e[s++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(i=ne[r++],i!=e[s++]){r=1879048192;break}if(r===o)return O=r,e.string;o-=3,r=O}for(e=[],Iu[t]=e,e.bytes=n;r<o;)i=Ne.getUint32(r),e.push(i),r+=4;for(o+=3;r<o;)i=ne[r++],e.push(i);let l=n<16?wl(n):Mu(n);return l!=null?e.string=l:e.string=bl(n)}var Pu=(n,t)=>{var e=De();let r=n;t!==void 0&&(n=n<32?-((t<<5)+n):(t<<5)+n,e.highByte=t);let o=Se[n];return o&&o.isShared&&((Se.restoreStructures||(Se.restoreStructures=[]))[n]=o),Se[n]=e,e.read=Sl(e,r),e.read()},Eu=typeof self=="object"?self:global;at[0]=()=>{};at[0].noBuffer=!0;at[101]=()=>{let n=De();return(Eu[n[0]]||Error)(n[1])};at[105]=n=>{let t=Ne.getUint32(O-4);Pr||(Pr=new Map);let e=ne[O],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};Pr.set(t,o);let i=De();return o.used?Object.assign(r,i):(o.target=i,i)};at[112]=n=>{let t=Ne.getUint32(O-4),e=Pr.get(t);return e.used=!0,e.target};at[115]=()=>new Set(De());var _l=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");at[116]=n=>{let t=n[0],e=_l[t];if(!e)throw new Error("Could not find typed array for code "+t);return new Eu[e](Uint8Array.prototype.slice.call(n,1).buffer)};at[120]=()=>{let n=De();return new RegExp(n[0],n[1])};at[98]=n=>{let t=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],e=O;O+=t-4,Tt=[De(),De()],Tt.position0=0,Tt.position1=0;let r=O;O=e;try{return De()}finally{O=r}};at[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 Bu(n){let t=Wr,e=O,r=xl,o=Ot,i=tr,s=Hr,l=yl,c=Pr,p=Tt,a=new Uint8Array(ne.slice(0,Wr)),u=Se,d=Se.slice(0,Se.length),f=mt,m=zo,h=n();return Wr=t,O=e,xl=r,Ot=o,tr=i,Hr=s,yl=l,Pr=c,Tt=p,ne=a,zo=m,Se=u,Se.splice(0,Se.length,...d),mt=f,Ne=new DataView(ne.buffer,ne.byteOffset,ne.byteLength),h}function xs(){ne=null,Pr=null,Se=null}function Du(n){n.unpack?at[n.type]=n.unpack:at[n.type]=n}var vs=new Array(147);for(let n=0;n<256;n++)vs[n]=+("1e"+Math.floor(45.15-n*.30103));var Ss=new rr({useRecords:!1}),Wg=Ss.unpack,qg=Ss.unpackMultiple,$g=Ss.unpack,ws={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},Yg=new Float32Array(1),PN=new Uint8Array(Yg.buffer,0,4);var _s;try{_s=new TextEncoder}catch{}var Ts,Al,As=typeof Buffer<"u",Tl=As?Buffer.allocUnsafeSlow:Uint8Array,Fu=As?Buffer:Uint8Array,Gu=As?4294967296:2144337920,R,Ve,M=0,or,nr=null,Xg=/[\u0080-\uFFFF]/,ii=Symbol("record-id"),ho=class extends rr{constructor(t){super(t),this.offset=0;let e,r,o,i,s,l,c=0,p=Fu.prototype.utf8Write?function(y,I,A){return R.utf8Write(y,I,A)}:_s&&_s.encodeInto?function(y,I){return _s.encodeInto(y,R.subarray(I)).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,b=f+m+64;if(b>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],S=0,w=0;this.pack=this.encode=function(y,I){if(R||(R=new Tl(8192),Ve=new DataView(R.buffer,0,8192),M=0),or=R.length-10,or-M<2048?(R=new Tl(R.length),Ve=new DataView(R.buffer,0,R.length),or=R.length-10,M=0):M=M+7&2147483640,r=M,l=a.structuredClone?new Map:null,a.bundleStrings?(nr=["",""],R[M++]=214,R[M++]=98,nr.position=M-r,M+=4):nr=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 P=0;P<A;P++){let T=o[P];if(!T)continue;let C,L=o.transitions;for(let j=0,Y=T.length;j<Y;j++){let te=T[j];C=L[te],C||(C=L[te]=Object.create(null)),L=C}L[ii]=P+64}c=A}u||(o.nextId=A+64)}i&&(i=!1),s=o||[];try{if(v(y),nr){Ve.setUint32(nr.position+r,M-nr.position-r);let A=nr;nr=null,v(A[0]),v(A[1])}if(a.offset=M,l&&l.idsToInsert){M+=l.idsToInsert.length*6,M>or&&_(M),a.offset=M;let A=Zg(R.subarray(r,M),l.idsToInsert);return l=null,A}return I&ju?(R.start=r,R.end=M,R):R.subarray(r,M)}finally{if(o){if(w<10&&w++,S>1e4)o.transitions=null,w=0,S=0,x.length>0&&(x=[]);else if(x.length>0&&!u){for(let A=0,P=x.length;A<P;A++)x[A][ii]=0;x=[]}if(i&&a.saveStructures){let A=o.sharedLength||f;o.length>A&&(o=o.slice(0,A));let P=R.subarray(r,M);return a.saveStructures(o,c)===!1?(a._mergeStructures(a.getStructures()),a.pack(y)):(c=A,P)}}I&ny&&(M=r)}};let v=y=>{M>or&&(R=_(M));var I=typeof y,A;if(I==="string"){let P=y.length;if(nr&&P>=8&&P<4096){let L=Xg.test(y);nr[L?0:1]+=y,R[M++]=193,v(L?-P:P);return}let T;P<32?T=1:P<256?T=2:P<65536?T=3:T=5;let C=P*3;if(M+C>or&&(R=_(M+C)),P<64||!p){let L,j,Y,te=M+T;for(L=0;L<P;L++)j=y.charCodeAt(L),j<128?R[te++]=j:j<2048?(R[te++]=j>>6|192,R[te++]=j&63|128):(j&64512)===55296&&((Y=y.charCodeAt(L+1))&64512)===56320?(j=65536+((j&1023)<<10)+(Y&1023),L++,R[te++]=j>>18|240,R[te++]=j>>12&63|128,R[te++]=j>>6&63|128,R[te++]=j&63|128):(R[te++]=j>>12|224,R[te++]=j>>6&63|128,R[te++]=j&63|128);A=te-M-T}else A=p(y,M+T,C);A<32?R[M++]=160|A:A<256?(T<2&&R.copyWithin(M+2,M+1,M+1+A),R[M++]=217,R[M++]=A):A<65536?(T<3&&R.copyWithin(M+3,M+2,M+2+A),R[M++]=218,R[M++]=A>>8,R[M++]=A&255):(T<5&&R.copyWithin(M+5,M+3,M+3+A),R[M++]=219,Ve.setUint32(M,A),M+=4),M+=A}else if(I==="number")if(y>>>0===y)y<64?R[M++]=y:y<256?(R[M++]=204,R[M++]=y):y<65536?(R[M++]=205,R[M++]=y>>8,R[M++]=y&255):(R[M++]=206,Ve.setUint32(M,y),M+=4);else if(y>>0===y)y>=-32?R[M++]=256+y:y>=-128?(R[M++]=208,R[M++]=y+256):y>=-32768?(R[M++]=209,Ve.setInt16(M,y),M+=2):(R[M++]=210,Ve.setInt32(M,y),M+=4);else{let P;if((P=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){R[M++]=202,Ve.setFloat32(M,y);let T;if(P<4||(T=y*vs[(R[M]&127)<<1|R[M+1]>>7])>>0===T){M+=4;return}else M--}R[M++]=203,Ve.setFloat64(M,y),M+=8}else if(I==="object")if(!y)R[M++]=192;else{if(l){let T=l.get(y);if(T){if(!T.id){let C=l.idsToInsert||(l.idsToInsert=[]);T.id=C.push(T)}R[M++]=214,R[M++]=112,Ve.setUint32(M,T.id),M+=4;return}else l.set(y,{offset:M-r})}let P=y.constructor;if(P===Object)N(y,!0);else if(P===Array){A=y.length,A<16?R[M++]=144|A:A<65536?(R[M++]=220,R[M++]=A>>8,R[M++]=A&255):(R[M++]=221,Ve.setUint32(M,A),M+=4);for(let T=0;T<A;T++)v(y[T])}else if(P===Map){A=y.size,A<16?R[M++]=128|A:A<65536?(R[M++]=222,R[M++]=A>>8,R[M++]=A&255):(R[M++]=223,Ve.setUint32(M,A),M+=4);for(let[T,C]of y)v(T),v(C)}else{for(let T=0,C=Ts.length;T<C;T++){let L=Al[T];if(y instanceof L){let j=Ts[T];if(j.write){j.type&&(R[M++]=212,R[M++]=j.type,R[M++]=0),v(j.write.call(this,y));return}let Y=R,te=Ve,ie=M;R=null;let U;try{U=j.pack.call(this,y,W=>(R=Y,Y=null,M+=W,M>or&&_(M),{target:R,targetView:Ve,position:M-W}),v)}finally{Y&&(R=Y,Ve=te,M=ie,or=R.length-10)}U&&(U.length+M>or&&_(U.length+M),M=Kg(U,R,M,j.type));return}}N(y,!y.hasOwnProperty)}}else if(I==="boolean")R[M++]=y?195:194;else if(I==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))R[M++]=211,Ve.setBigInt64(M,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)R[M++]=207,Ve.setBigUint64(M,y);else if(this.largeBigIntToFloat)R[M++]=203,Ve.setFloat64(M,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");M+=8}else if(I==="undefined")this.encodeUndefinedAsNil?R[M++]=192:(R[M++]=212,R[M++]=0,R[M++]=0);else if(I==="function")v(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+I)},N=this.useRecords===!1?this.variableMapSize?y=>{let I=Object.keys(y),A=I.length;A<16?R[M++]=128|A:A<65536?(R[M++]=222,R[M++]=A>>8,R[M++]=A&255):(R[M++]=223,Ve.setUint32(M,A),M+=4);let P;for(let T=0;T<A;T++)v(P=I[T]),v(y[P])}:(y,I)=>{R[M++]=222;let A=M-r;M+=2;let P=0;for(let T in y)(I||y.hasOwnProperty(T))&&(v(T),v(y[T]),P++);R[A+++r]=P>>8,R[A+r]=P&255}:y=>{let I=Object.keys(y),A,P=s.transitions||(s.transitions=Object.create(null)),T=0;for(let L=0,j=I.length;L<j;L++){let Y=I[L];A=P[Y],A||(A=P[Y]=Object.create(null),T++),P=A}let C=P[ii];if(C)C>=96&&h?(R[M++]=((C-=96)&31)+96,R[M++]=C>>5):R[M++]=C;else{C=s.nextId,C||(C=64),C<g&&this.shouldShareStructure&&!this.shouldShareStructure(I)?(C=s.nextOwnId,C<b||(C=g),s.nextOwnId=C+1):(C>=b&&(C=g),s.nextId=C+1);let L=I.highByte=C>=96&&h?C-96>>5:-1;P[ii]=C,s[C-64]=I,C<g?(I.isShared=!0,s.sharedLength=C-63,i=!0,L>=0?(R[M++]=(C&31)+96,R[M++]=L):R[M++]=C):(L>=0?(R[M++]=213,R[M++]=114,R[M++]=(C&31)+96,R[M++]=L):(R[M++]=212,R[M++]=114,R[M++]=C),T&&(S+=w*T),x.length>=m&&(x.shift()[ii]=0),x.push(P),v(I))}for(let L=0,j=I.length;L<j;L++)v(y[I[L]])},_=y=>{let I;if(y>16777216){if(y-r>Gu)throw new Error("Packed buffer would be larger than maximum buffer size");I=Math.min(Gu,Math.round(Math.max((y-r)*(y>67108864?1.25:2),4194304)/4096)*4096)}else I=(Math.max(y-r<<2,R.length-1)>>12)+1<<12;let A=new Tl(I);return Ve=new DataView(A.buffer,0,I),R.copy?R.copy(A,0,r,y):A.set(R.slice(r,y)),M-=r,r=0,or=A.length-10,R=A}}useBuffer(t){R=t,Ve=new DataView(R.buffer,R.byteOffset,R.byteLength),M=0}};Al=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,ni];Ts=[{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?Ru(n,16,t):Vu(As?Buffer.from(n):new Uint8Array(n),t)}},{pack(n,t){let e=n.constructor;e!==Fu&&this.structuredClone?Ru(n,_l.indexOf(e.name),t):Vu(n,t)}},{pack(n,t){let{target:e,position:r}=t(1);e[r]=193}}];function Ru(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 Vu(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 Kg(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 Zg(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 Or(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)");Al.unshift(n.Class),Ts.unshift(n)}Du(n)}var zu=new ho({useRecords:!1}),Qg=zu.pack,Jg=zu.pack;var{NEVER:ey,ALWAYS:ty,DECIMAL_ROUND:ry,DECIMAL_FIT:oy}=ws,ju=512,ny=1024;var Uu=new ho({structuredClone:!0});Or({Class:Me.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Me.prototype),n}});Or({Class:he.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,he.prototype),n}});Or({Class:Ee.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,Ee.prototype),n}});Or({Class:ri.prototype.constructor,type:4,write(n){return n.id},read(n){return new ri(n)}});Or({Class:oi.prototype.constructor,type:5,write(n){return n.data},read(n){return new oi(n)}});Or({Class:_t.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,_t.prototype),n}});Or({Class:Go.prototype.constructor,type:7,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Go.prototype),n}});function iy(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 Nl(n){if(Jn(n))return n;if(Array.isArray(n))return n.map(Nl);if(typeof n=="object"&&n!==null){let t={};for(let e of Object.keys(n).sort())t[e]=Nl(n[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else return n}var Ns;(r=>{function n(o){return Uu.pack(o)}r.serialize=n;function t(o){return Uu.unpack(o)}r.deserialize=t;function e(o){return iy(n(Nl(o))).toString()}r.checksum=e})(Ns||(Ns={}));var ku;(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})(ku||(ku={}));var jo;(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})(jo||(jo={}));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 qr;(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})(qr||(qr={}));var ht;(p=>{function n(a){return typeof a=="object"&&typeof a.r=="number"&&typeof a.g=="number"&&typeof a.b=="number"}p.isRGB=n,p.white={r:1,g:1,b:1},p.red={r:1,g:0,b:0},p.black={r:0,g:0,b:0};function o(a){return{r:Math.round(a.r*255),g:Math.round(a.g*255),b:Math.round(a.b*255),a:1}}p.toRgb255a1=o;function i(a){return{r:a.r,g:a.g,b:a.b}}p.clone=i;function s(a){return a=Math.floor(a),{r:(a>>16&255)/255,g:(a>>8&255)/255,b:(a&255)/255}}p.fromHex=s;function l(a,u){return a.r===u.r&&a.g===u.g&&a.b===u.b}p.equals=l;function c(a,u,d){return{r:a.r+(u.r-a.r)*d,g:a.g+(u.g-a.g)*d,b:a.b+(u.b-a.b)*d}}p.lerp=c})(ht||(ht={}));var jt;(l=>{l.white={...ht.white,a:1},l.transparent={...ht.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{...ht.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 ht.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})(jt||(jt={}));var Is;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Is||(Is={}));var Wu;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(Wu||(Wu={}));var qu;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(qu||(qu={}));var Uo;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(Uo||(Uo={}));var go;(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})(go||(go={}));var yo;(e=>{function n(r,o=.1){return{disabled:!1,type:"linear",hideBase:!1,count:3,radial:{radius:Math.max(r[0],r[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},linear:{scale:[1,1,1],rotation:[0,0,0],position:[r[0]+r[0]*o,0,0]},grid:{count:[2,2,2],size:r.map(i=>i*(1+o)),useCenter:!0},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}}}e.defaultData=n;function t(r,o){let i={...r};if(sy.forEach(s=>{Object.assign(i,{[s]:o[s]??r[s]})}),i.radial={...r.radial},o.radial){let s=r.radial,l=o.radial;ay.forEach(c=>{Object.assign(i.radial,{[c]:l[c]??s[c]})})}if(i.linear={...r.linear},o.linear){let s=r.linear,l=o.linear;ly.forEach(c=>{Object.assign(i.linear,{[c]:l[c]??s[c]})})}if(i.grid={...r.grid},o.grid){let s=r.grid,l=o.grid;cy.forEach(c=>{Object.assign(i.grid,{[c]:l[c]??s[c]})})}if(i.toObject={...r.toObject},o.toObject){let s=r.toObject,l=o.toObject;uy.forEach(c=>{Object.assign(i.toObject,{[c]:l[c]??s[c]})})}if(i.randomnessObject={...r.randomnessObject},o.randomnessObject){let s=r.randomnessObject,l=o.randomnessObject;py.forEach(c=>{Object.assign(i.randomnessObject,{[c]:l[c]??s[c]})})}return i}e.merge=t})(yo||(yo={}));var $u;(t=>t.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}})($u||($u={}));var sy=["count"],ay=["radius","start","end","position","scale","rotation"],ly=["position","scale","rotation"],cy=["count","size"],uy=["count","position","scale","rotation"],py=["strength","scale","rotation","position","movement","seed","freqScale"];var Ps;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Ps||(Ps={}));var Os;(e=>{function n(r){return t(r)}e.defaultData=n;function t(r){if(r==="PointLight")return{type:r,color:jt.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(r==="SpotLight")return{type:r,color:jt.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:jt.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(Os||(Os={}));var Il;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(Il||(Il={}));var Pl;(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})(Pl||(Pl={}));var Cs;(t=>t.defaultData={...Pl.defaultData,...Il.defaultData,cloner:null,booleanExclude:null})(Cs||(Cs={}));var dy=typeof global=="object"&&global&&global.Object===Object&&global,Ms=dy;var fy=typeof self=="object"&&self&&self.Object===Object&&self,my=Ms||fy||Function("return this")(),ze=my;var hy=ze.Symbol,lt=hy;var Yu=Object.prototype,gy=Yu.hasOwnProperty,yy=Yu.toString,si=lt?lt.toStringTag:void 0;function xy(n){var t=gy.call(n,si),e=n[si];try{n[si]=void 0;var r=!0}catch{}var o=yy.call(n);return r&&(t?n[si]=e:delete n[si]),o}var Xu=xy;var by=Object.prototype,vy=by.toString;function Sy(n){return vy.call(n)}var Ku=Sy;var wy="[object Null]",_y="[object Undefined]",Zu=lt?lt.toStringTag:void 0;function Ty(n){return n==null?n===void 0?_y:wy:Zu&&Zu in Object(n)?Xu(n):Ku(n)}var At=Ty;function Ay(n){return n!=null&&typeof n=="object"}var ot=Ay;var Ny="[object Symbol]";function Iy(n){return typeof n=="symbol"||ot(n)&&At(n)==Ny}var ko=Iy;function Py(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 Ls=Py;var Oy=Array.isArray,Ge=Oy;var Cy=1/0,Qu=lt?lt.prototype:void 0,Ju=Qu?Qu.toString:void 0;function ep(n){if(typeof n=="string")return n;if(Ge(n))return Ls(n,ep)+"";if(ko(n))return Ju?Ju.call(n):"";var t=n+"";return t=="0"&&1/n==-Cy?"-0":t}var tp=ep;function My(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}var je=My;function Ly(n){return n}var Es=Ly;var Ey="[object AsyncFunction]",By="[object Function]",Dy="[object GeneratorFunction]",Gy="[object Proxy]";function Ry(n){if(!je(n))return!1;var t=At(n);return t==By||t==Dy||t==Ey||t==Gy}var Ho=Ry;var Vy=ze["__core-js_shared__"],Bs=Vy;var rp=function(){var n=/[^.]+$/.exec(Bs&&Bs.keys&&Bs.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function Fy(n){return!!rp&&rp in n}var op=Fy;var zy=Function.prototype,jy=zy.toString;function Uy(n){if(n!=null){try{return jy.call(n)}catch{}try{return n+""}catch{}}return""}var Cr=Uy;var ky=/[\\^$.*+?()[\]{}|]/g,Hy=/^\[object .+?Constructor\]$/,Wy=Function.prototype,qy=Object.prototype,$y=Wy.toString,Yy=qy.hasOwnProperty,Xy=RegExp("^"+$y.call(Yy).replace(ky,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ky(n){if(!je(n)||op(n))return!1;var t=Ho(n)?Xy:Hy;return t.test(Cr(n))}var np=Ky;function Zy(n,t){return n?.[t]}var ip=Zy;function Qy(n,t){var e=ip(n,t);return np(e)?e:void 0}var gt=Qy;var Jy=gt(ze,"WeakMap"),Ds=Jy;var sp=Object.create,e0=function(){function n(){}return function(t){if(!je(t))return{};if(sp)return sp(t);n.prototype=t;var e=new n;return n.prototype=void 0,e}}(),ap=e0;function t0(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 lp=t0;function r0(n,t){var e=-1,r=n.length;for(t||(t=Array(r));++e<r;)t[e]=n[e];return t}var Gs=r0;var o0=800,n0=16,i0=Date.now;function s0(n){var t=0,e=0;return function(){var r=i0(),o=n0-(r-e);if(e=r,o>0){if(++t>=o0)return arguments[0]}else t=0;return n.apply(void 0,arguments)}}var cp=s0;function a0(n){return function(){return n}}var up=a0;var l0=function(){try{var n=gt(Object,"defineProperty");return n({},"",{}),n}catch{}}(),Wo=l0;var c0=Wo?function(n,t){return Wo(n,"toString",{configurable:!0,enumerable:!1,value:up(t),writable:!0})}:Es,pp=c0;var u0=cp(pp),Rs=u0;function p0(n,t){for(var e=-1,r=n==null?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}var dp=p0;var d0=9007199254740991,f0=/^(?:0|[1-9]\d*)$/;function m0(n,t){var e=typeof n;return t=t??d0,!!t&&(e=="number"||e!="symbol"&&f0.test(n))&&n>-1&&n%1==0&&n<t}var $r=m0;function h0(n,t,e){t=="__proto__"&&Wo?Wo(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}var qo=h0;function g0(n,t){return n===t||n!==n&&t!==t}var Yr=g0;var y0=Object.prototype,x0=y0.hasOwnProperty;function b0(n,t,e){var r=n[t];(!(x0.call(n,t)&&Yr(r,e))||e===void 0&&!(t in n))&&qo(n,t,e)}var $o=b0;function v0(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?qo(e,l,c):$o(e,l,c)}return e}var Ct=v0;var fp=Math.max;function S0(n,t,e){return t=fp(t===void 0?n.length-1:t,0),function(){for(var r=arguments,o=-1,i=fp(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),lp(n,this,l)}}var Vs=S0;function w0(n,t){return Rs(Vs(n,t,Es),n+"")}var mp=w0;var _0=9007199254740991;function T0(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=_0}var Yo=T0;function A0(n){return n!=null&&Yo(n.length)&&!Ho(n)}var Xr=A0;function N0(n,t,e){if(!je(e))return!1;var r=typeof t;return(r=="number"?Xr(e)&&$r(t,e.length):r=="string"&&t in e)?Yr(e[t],n):!1}var hp=N0;function I0(n){return mp(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&&hp(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 gp=I0;var P0=Object.prototype;function O0(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||P0;return n===e}var Xo=O0;function C0(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}var yp=C0;var M0="[object Arguments]";function L0(n){return ot(n)&&At(n)==M0}var Ol=L0;var xp=Object.prototype,E0=xp.hasOwnProperty,B0=xp.propertyIsEnumerable,D0=Ol(function(){return arguments}())?Ol:function(n){return ot(n)&&E0.call(n,"callee")&&!B0.call(n,"callee")},Mr=D0;function G0(){return!1}var bp=G0;var wp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vp=wp&&typeof module=="object"&&module&&!module.nodeType&&module,R0=vp&&vp.exports===wp,Sp=R0?ze.Buffer:void 0,V0=Sp?Sp.isBuffer:void 0,F0=V0||bp,Ko=F0;var z0="[object Arguments]",j0="[object Array]",U0="[object Boolean]",k0="[object Date]",H0="[object Error]",W0="[object Function]",q0="[object Map]",$0="[object Number]",Y0="[object Object]",X0="[object RegExp]",K0="[object Set]",Z0="[object String]",Q0="[object WeakMap]",J0="[object ArrayBuffer]",ex="[object DataView]",tx="[object Float32Array]",rx="[object Float64Array]",ox="[object Int8Array]",nx="[object Int16Array]",ix="[object Int32Array]",sx="[object Uint8Array]",ax="[object Uint8ClampedArray]",lx="[object Uint16Array]",cx="[object Uint32Array]",Be={};Be[tx]=Be[rx]=Be[ox]=Be[nx]=Be[ix]=Be[sx]=Be[ax]=Be[lx]=Be[cx]=!0;Be[z0]=Be[j0]=Be[J0]=Be[U0]=Be[ex]=Be[k0]=Be[H0]=Be[W0]=Be[q0]=Be[$0]=Be[Y0]=Be[X0]=Be[K0]=Be[Z0]=Be[Q0]=!1;function ux(n){return ot(n)&&Yo(n.length)&&!!Be[At(n)]}var _p=ux;function px(n){return function(t){return n(t)}}var Zo=px;var Tp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ai=Tp&&typeof module=="object"&&module&&!module.nodeType&&module,dx=ai&&ai.exports===Tp,Cl=dx&&Ms.process,fx=function(){try{var n=ai&&ai.require&&ai.require("util").types;return n||Cl&&Cl.binding&&Cl.binding("util")}catch{}}(),Lr=fx;var Ap=Lr&&Lr.isTypedArray,mx=Ap?Zo(Ap):_p,Fs=mx;var hx=Object.prototype,gx=hx.hasOwnProperty;function yx(n,t){var e=Ge(n),r=!e&&Mr(n),o=!e&&!r&&Ko(n),i=!e&&!r&&!o&&Fs(n),s=e||r||o||i,l=s?yp(n.length,String):[],c=l.length;for(var p in n)(t||gx.call(n,p))&&!(s&&(p=="length"||o&&(p=="offset"||p=="parent")||i&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||$r(p,c)))&&l.push(p);return l}var zs=yx;function xx(n,t){return function(e){return n(t(e))}}var js=xx;var bx=js(Object.keys,Object),Np=bx;var vx=Object.prototype,Sx=vx.hasOwnProperty;function wx(n){if(!Xo(n))return Np(n);var t=[];for(var e in Object(n))Sx.call(n,e)&&e!="constructor"&&t.push(e);return t}var Ip=wx;function _x(n){return Xr(n)?zs(n):Ip(n)}var Qo=_x;function Tx(n){var t=[];if(n!=null)for(var e in Object(n))t.push(e);return t}var Pp=Tx;var Ax=Object.prototype,Nx=Ax.hasOwnProperty;function Ix(n){if(!je(n))return Pp(n);var t=Xo(n),e=[];for(var r in n)r=="constructor"&&(t||!Nx.call(n,r))||e.push(r);return e}var Op=Ix;function Px(n){return Xr(n)?zs(n,!0):Op(n)}var ir=Px;var Ox=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Cx=/^\w*$/;function Mx(n,t){if(Ge(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||ko(n)?!0:Cx.test(n)||!Ox.test(n)||t!=null&&n in Object(t)}var Cp=Mx;var Lx=gt(Object,"create"),Er=Lx;function Ex(){this.__data__=Er?Er(null):{},this.size=0}var Mp=Ex;function Bx(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}var Lp=Bx;var Dx="__lodash_hash_undefined__",Gx=Object.prototype,Rx=Gx.hasOwnProperty;function Vx(n){var t=this.__data__;if(Er){var e=t[n];return e===Dx?void 0:e}return Rx.call(t,n)?t[n]:void 0}var Ep=Vx;var Fx=Object.prototype,zx=Fx.hasOwnProperty;function jx(n){var t=this.__data__;return Er?t[n]!==void 0:zx.call(t,n)}var Bp=jx;var Ux="__lodash_hash_undefined__";function kx(n,t){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=Er&&t===void 0?Ux:t,this}var Dp=kx;function Jo(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])}}Jo.prototype.clear=Mp;Jo.prototype.delete=Lp;Jo.prototype.get=Ep;Jo.prototype.has=Bp;Jo.prototype.set=Dp;var Ml=Jo;function Hx(){this.__data__=[],this.size=0}var Gp=Hx;function Wx(n,t){for(var e=n.length;e--;)if(Yr(n[e][0],t))return e;return-1}var Kr=Wx;var qx=Array.prototype,$x=qx.splice;function Yx(n){var t=this.__data__,e=Kr(t,n);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():$x.call(t,e,1),--this.size,!0}var Rp=Yx;function Xx(n){var t=this.__data__,e=Kr(t,n);return e<0?void 0:t[e][1]}var Vp=Xx;function Kx(n){return Kr(this.__data__,n)>-1}var Fp=Kx;function Zx(n,t){var e=this.__data__,r=Kr(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}var zp=Zx;function en(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])}}en.prototype.clear=Gp;en.prototype.delete=Rp;en.prototype.get=Vp;en.prototype.has=Fp;en.prototype.set=zp;var Zr=en;var Qx=gt(ze,"Map"),Qr=Qx;function Jx(){this.size=0,this.__data__={hash:new Ml,map:new(Qr||Zr),string:new Ml}}var jp=Jx;function eb(n){var t=typeof n;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?n!=="__proto__":n===null}var Up=eb;function tb(n,t){var e=n.__data__;return Up(t)?e[typeof t=="string"?"string":"hash"]:e.map}var Jr=tb;function rb(n){var t=Jr(this,n).delete(n);return this.size-=t?1:0,t}var kp=rb;function ob(n){return Jr(this,n).get(n)}var Hp=ob;function nb(n){return Jr(this,n).has(n)}var Wp=nb;function ib(n,t){var e=Jr(this,n),r=e.size;return e.set(n,t),this.size+=e.size==r?0:1,this}var qp=ib;function tn(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])}}tn.prototype.clear=jp;tn.prototype.delete=kp;tn.prototype.get=Hp;tn.prototype.has=Wp;tn.prototype.set=qp;var li=tn;var sb="Expected a function";function Ll(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError(sb);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(Ll.Cache||li),e}Ll.Cache=li;var $p=Ll;var ab=500;function lb(n){var t=$p(n,function(r){return e.size===ab&&e.clear(),r}),e=t.cache;return t}var Yp=lb;var cb=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ub=/\\(\\)?/g,pb=Yp(function(n){var t=[];return n.charCodeAt(0)===46&&t.push(""),n.replace(cb,function(e,r,o,i){t.push(o?i.replace(ub,"$1"):r||e)}),t}),Xp=pb;function db(n){return n==null?"":tp(n)}var Kp=db;function fb(n,t){return Ge(n)?n:Cp(n,t)?[n]:Xp(Kp(n))}var Mt=fb;var mb=1/0;function hb(n){if(typeof n=="string"||ko(n))return n;var t=n+"";return t=="0"&&1/n==-mb?"-0":t}var eo=hb;function gb(n,t){t=Mt(t,n);for(var e=0,r=t.length;n!=null&&e<r;)n=n[eo(t[e++])];return e&&e==r?n:void 0}var Us=gb;function yb(n,t){for(var e=-1,r=t.length,o=n.length;++e<r;)n[o+e]=t[e];return n}var rn=yb;var Zp=lt?lt.isConcatSpreadable:void 0;function xb(n){return Ge(n)||Mr(n)||!!(Zp&&n&&n[Zp])}var Qp=xb;function Jp(n,t,e,r,o){var i=-1,s=n.length;for(e||(e=Qp),o||(o=[]);++i<s;){var l=n[i];t>0&&e(l)?t>1?Jp(l,t-1,e,r,o):rn(o,l):r||(o[o.length]=l)}return o}var ed=Jp;function bb(n){var t=n==null?0:n.length;return t?ed(n,1):[]}var td=bb;function vb(n){return Rs(Vs(n,void 0,td),n+"")}var ks=vb;var Sb=js(Object.getPrototypeOf,Object),on=Sb;var wb="[object Object]",_b=Function.prototype,Tb=Object.prototype,rd=_b.toString,Ab=Tb.hasOwnProperty,Nb=rd.call(Object);function Ib(n){if(!ot(n)||At(n)!=wb)return!1;var t=on(n);if(t===null)return!0;var e=Ab.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&rd.call(e)==Nb}var Hs=Ib;function Pb(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 od=Pb;function Ob(){this.__data__=new Zr,this.size=0}var nd=Ob;function Cb(n){var t=this.__data__,e=t.delete(n);return this.size=t.size,e}var id=Cb;function Mb(n){return this.__data__.get(n)}var sd=Mb;function Lb(n){return this.__data__.has(n)}var ad=Lb;var Eb=200;function Bb(n,t){var e=this.__data__;if(e instanceof Zr){var r=e.__data__;if(!Qr||r.length<Eb-1)return r.push([n,t]),this.size=++e.size,this;e=this.__data__=new li(r)}return e.set(n,t),this.size=e.size,this}var ld=Bb;function nn(n){var t=this.__data__=new Zr(n);this.size=t.size}nn.prototype.clear=nd;nn.prototype.delete=id;nn.prototype.get=sd;nn.prototype.has=ad;nn.prototype.set=ld;var Ws=nn;function Db(n,t){return n&&Ct(t,Qo(t),n)}var cd=Db;function Gb(n,t){return n&&Ct(t,ir(t),n)}var ud=Gb;var md=typeof exports=="object"&&exports&&!exports.nodeType&&exports,pd=md&&typeof module=="object"&&module&&!module.nodeType&&module,Rb=pd&&pd.exports===md,dd=Rb?ze.Buffer:void 0,fd=dd?dd.allocUnsafe:void 0;function Vb(n,t){if(t)return n.slice();var e=n.length,r=fd?fd(e):new n.constructor(e);return n.copy(r),r}var qs=Vb;function Fb(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 hd=Fb;function zb(){return[]}var $s=zb;var jb=Object.prototype,Ub=jb.propertyIsEnumerable,gd=Object.getOwnPropertySymbols,kb=gd?function(n){return n==null?[]:(n=Object(n),hd(gd(n),function(t){return Ub.call(n,t)}))}:$s,sn=kb;function Hb(n,t){return Ct(n,sn(n),t)}var yd=Hb;var Wb=Object.getOwnPropertySymbols,qb=Wb?function(n){for(var t=[];n;)rn(t,sn(n)),n=on(n);return t}:$s,Ys=qb;function $b(n,t){return Ct(n,Ys(n),t)}var xd=$b;function Yb(n,t,e){var r=t(n);return Ge(n)?r:rn(r,e(n))}var Xs=Yb;function Xb(n){return Xs(n,Qo,sn)}var bd=Xb;function Kb(n){return Xs(n,ir,Ys)}var Ks=Kb;var Zb=gt(ze,"DataView"),Zs=Zb;var Qb=gt(ze,"Promise"),Qs=Qb;var Jb=gt(ze,"Set"),Js=Jb;var vd="[object Map]",ev="[object Object]",Sd="[object Promise]",wd="[object Set]",_d="[object WeakMap]",Td="[object DataView]",tv=Cr(Zs),rv=Cr(Qr),ov=Cr(Qs),nv=Cr(Js),iv=Cr(Ds),xo=At;(Zs&&xo(new Zs(new ArrayBuffer(1)))!=Td||Qr&&xo(new Qr)!=vd||Qs&&xo(Qs.resolve())!=Sd||Js&&xo(new Js)!=wd||Ds&&xo(new Ds)!=_d)&&(xo=function(n){var t=At(n),e=t==ev?n.constructor:void 0,r=e?Cr(e):"";if(r)switch(r){case tv:return Td;case rv:return vd;case ov:return Sd;case nv:return wd;case iv:return _d}return t});var an=xo;var sv=Object.prototype,av=sv.hasOwnProperty;function lv(n){var t=n.length,e=new n.constructor(t);return t&&typeof n[0]=="string"&&av.call(n,"index")&&(e.index=n.index,e.input=n.input),e}var Ad=lv;var cv=ze.Uint8Array,El=cv;function uv(n){var t=new n.constructor(n.byteLength);return new El(t).set(new El(n)),t}var ln=uv;function pv(n,t){var e=t?ln(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var Nd=pv;var dv=/\w*$/;function fv(n){var t=new n.constructor(n.source,dv.exec(n));return t.lastIndex=n.lastIndex,t}var Id=fv;var Pd=lt?lt.prototype:void 0,Od=Pd?Pd.valueOf:void 0;function mv(n){return Od?Object(Od.call(n)):{}}var Cd=mv;function hv(n,t){var e=t?ln(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}var ea=hv;var gv="[object Boolean]",yv="[object Date]",xv="[object Map]",bv="[object Number]",vv="[object RegExp]",Sv="[object Set]",wv="[object String]",_v="[object Symbol]",Tv="[object ArrayBuffer]",Av="[object DataView]",Nv="[object Float32Array]",Iv="[object Float64Array]",Pv="[object Int8Array]",Ov="[object Int16Array]",Cv="[object Int32Array]",Mv="[object Uint8Array]",Lv="[object Uint8ClampedArray]",Ev="[object Uint16Array]",Bv="[object Uint32Array]";function Dv(n,t,e){var r=n.constructor;switch(t){case Tv:return ln(n);case gv:case yv:return new r(+n);case Av:return Nd(n,e);case Nv:case Iv:case Pv:case Ov:case Cv:case Mv:case Lv:case Ev:case Bv:return ea(n,e);case xv:return new r;case bv:case wv:return new r(n);case vv:return Id(n);case Sv:return new r;case _v:return Cd(n)}}var Md=Dv;function Gv(n){return typeof n.constructor=="function"&&!Xo(n)?ap(on(n)):{}}var ta=Gv;var Rv="[object Map]";function Vv(n){return ot(n)&&an(n)==Rv}var Ld=Vv;var Ed=Lr&&Lr.isMap,Fv=Ed?Zo(Ed):Ld,Bd=Fv;var zv="[object Set]";function jv(n){return ot(n)&&an(n)==zv}var Dd=jv;var Gd=Lr&&Lr.isSet,Uv=Gd?Zo(Gd):Dd,Rd=Uv;var kv=1,Hv=2,Wv=4,Vd="[object Arguments]",qv="[object Array]",$v="[object Boolean]",Yv="[object Date]",Xv="[object Error]",Fd="[object Function]",Kv="[object GeneratorFunction]",Zv="[object Map]",Qv="[object Number]",zd="[object Object]",Jv="[object RegExp]",eS="[object Set]",tS="[object String]",rS="[object Symbol]",oS="[object WeakMap]",nS="[object ArrayBuffer]",iS="[object DataView]",sS="[object Float32Array]",aS="[object Float64Array]",lS="[object Int8Array]",cS="[object Int16Array]",uS="[object Int32Array]",pS="[object Uint8Array]",dS="[object Uint8ClampedArray]",fS="[object Uint16Array]",mS="[object Uint32Array]",Le={};Le[Vd]=Le[qv]=Le[nS]=Le[iS]=Le[$v]=Le[Yv]=Le[sS]=Le[aS]=Le[lS]=Le[cS]=Le[uS]=Le[Zv]=Le[Qv]=Le[zd]=Le[Jv]=Le[eS]=Le[tS]=Le[rS]=Le[pS]=Le[dS]=Le[fS]=Le[mS]=!0;Le[Xv]=Le[Fd]=Le[oS]=!1;function ra(n,t,e,r,o,i){var s,l=t&kv,c=t&Hv,p=t&Wv;if(e&&(s=o?e(n,r,o,i):e(n)),s!==void 0)return s;if(!je(n))return n;var a=Ge(n);if(a){if(s=Ad(n),!l)return Gs(n,s)}else{var u=an(n),d=u==Fd||u==Kv;if(Ko(n))return qs(n,l);if(u==zd||u==Vd||d&&!o){if(s=c||d?{}:ta(n),!l)return c?xd(n,ud(s,n)):yd(n,cd(s,n))}else{if(!Le[u])return o?n:{};s=Md(n,u,l)}}i||(i=new Ws);var f=i.get(n);if(f)return f;i.set(n,s),Rd(n)?n.forEach(function(g){s.add(ra(g,t,e,g,n,i))}):Bd(n)&&n.forEach(function(g,b){s.set(b,ra(g,t,e,b,n,i))});var m=p?c?Ks:bd:c?ir:Qo,h=a?void 0:m(n);return dp(h||n,function(g,b){h&&(b=g,g=n[b]),$o(s,b,ra(g,t,e,b,n,i))}),s}var oa=ra;var hS=1,gS=4;function yS(n){return oa(n,hS|gS)}var ci=yS;function xS(n,t){return n!=null&&t in Object(n)}var jd=xS;function bS(n,t,e){t=Mt(t,n);for(var r=-1,o=t.length,i=!1;++r<o;){var s=eo(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&&Yo(o)&&$r(s,o)&&(Ge(n)||Mr(n)))}var Ud=bS;function vS(n,t){return n!=null&&Ud(n,t,jd)}var kd=vS;function SS(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 Hd=SS;var wS=Hd(),Wd=wS;function _S(n,t,e){(e!==void 0&&!Yr(n[t],e)||e===void 0&&!(t in n))&&qo(n,t,e)}var ui=_S;function TS(n){return ot(n)&&Xr(n)}var qd=TS;function AS(n,t){if(!(t==="constructor"&&typeof n[t]=="function")&&t!="__proto__")return n[t]}var pi=AS;function NS(n){return Ct(n,ir(n))}var $d=NS;function IS(n,t,e,r,o,i,s){var l=pi(n,e),c=pi(t,e),p=s.get(c);if(p){ui(n,e,p);return}var a=i?i(l,c,e+"",n,t,s):void 0,u=a===void 0;if(u){var d=Ge(c),f=!d&&Ko(c),m=!d&&!f&&Fs(c);a=c,d||f||m?Ge(l)?a=l:qd(l)?a=Gs(l):f?(u=!1,a=qs(c,!0)):m?(u=!1,a=ea(c,!0)):a=[]:Hs(c)||Mr(c)?(a=l,Mr(l)?a=$d(l):(!je(l)||Ho(l))&&(a=ta(c))):u=!1}u&&(s.set(c,a),o(a,c,r,i,s),s.delete(c)),ui(n,e,a)}var Yd=IS;function Xd(n,t,e,r,o){n!==t&&Wd(t,function(i,s){if(o||(o=new Ws),je(i))Yd(n,t,s,e,Xd,r,o);else{var l=r?r(pi(n,s),i,s+"",n,t,o):void 0;l===void 0&&(l=i),ui(n,s,l)}},ir)}var Kd=Xd;function PS(n){var t=n==null?0:n.length;return t?n[t-1]:void 0}var Zd=PS;function OS(n,t){return t.length<2?n:Us(n,od(t,0,-1))}var Qd=OS;var CS=gp(function(n,t,e){Kd(n,t,e)}),cn=CS;function MS(n,t){return t=Mt(t,n),n=Qd(n,t),n==null||delete n[eo(Zd(t))]}var Jd=MS;function LS(n){return Hs(n)?void 0:n}var ef=LS;var ES=1,BS=2,DS=4,GS=ks(function(n,t){var e={};if(n==null)return e;var r=!1;t=Ls(t,function(i){return i=Mt(i,n),r||(r=i.length>1),i}),Ct(n,Ks(n),e),r&&(e=oa(e,ES|BS|DS,ef));for(var o=t.length;o--;)Jd(e,t[o]);return e}),un=GS;function RS(n,t,e,r){if(!je(n))return n;t=Mt(t,n);for(var o=-1,i=t.length,s=i-1,l=n;l!=null&&++o<i;){var c=eo(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=je(a)?a:$r(t[o+1])?[]:{})}$o(l,c,p),l=l[c]}return n}var tf=RS;function VS(n,t,e){for(var r=-1,o=t.length,i={};++r<o;){var s=t[r],l=Us(n,s);e(l,s)&&tf(i,Mt(s,n),l)}return i}var rf=VS;function FS(n,t){return rf(n,t,function(e,r){return kd(n,r)})}var of=FS;var zS=ks(function(n,t){return n==null?{}:of(n,t)}),pn=zS;var nf=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],sf=["wrapping","image"],Nt;(o=>{function n(i,s){cn(i,s)}o.patch=n;function t(i,s){return i==="light"&&s?e(s):r(i)}o.defaultData=t;function e(i){switch(i){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 r(i){switch(i){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:ht.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:{...ht.fromHex(6710886),a:1},colorB:{...ht.fromHex(6710886),a:1},colorC:{...ht.fromHex(16777215),a:1},colorD:{...ht.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:jt.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:jt.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:jt.fromHexAndA(0,1),contourColor:jt.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}}}})(Nt||(Nt={}));var ct;(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")}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,p){let a=0;for(let u of c.layers)if(u.data.type!=="displace"&&"alpha"in u.data&&u.data.type!=="light"&&u.data.type!=="fresnel"&&u.data.type!=="texture"&&u.data.type!=="matcap"&&u.data.type!=="rainbow"&&u.data.type!=="outline"){let d=u.data.visible?u.data.alpha:0;if(d==1&&u.data.type=="depth"||u.data.type=="gradient"){for(let f of u.data.colors)if(f[3]<1){d=f[3];break}}else if(d==1&&u.data.type=="noise"){let f=p.color(u.data.colorA).a,m=p.color(u.data.colorB).a,h=p.color(u.data.colorC).a,g=p.color(u.data.colorD).a,b=Math.min(f,Math.min(m,Math.min(h,g)));b<1&&(d=b)}a+=(1-a)*d}return a<1}l.isTransparent=e;function r(){return{layers:new he}}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 he;return u.push({fi:0,data:Nt.defaultData("light",c),id:p}),u.push({fi:1,data:Nt.defaultData("color"),id:a}),{layers:u}}l.defaultTwoLayerData=i;function s(c,p="phong",a="layer1",u="layer2"){let d=Nt.defaultData("texture");Object.assign(d.texture,{image:c});let f=new he;return f.push({fi:0,data:d,id:a}),f.push({fi:1,data:Nt.defaultData("light",p),id:u}),{layers:f}}l.defaultTwoLayerTextureData=s})(ct||(ct={}));var dn;(t=>{function n(){return{points:new he,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=n})(dn||(dn={}));var fn;(t=>{function n(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=n})(fn||(fn={}));var to;(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:dn.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})(to||(to={}));var di;(o=>{o.identity={...Is.identity,hiddenMatrix:qr.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:jo.isEqual(i.position,s.position)?null:s.position,rotation:jo.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:jo.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:qr.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}o.diff=r})(di||(di={}));var Bl;(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]})(Bl||(Bl={}));var Ut;(t=>t.defaultData={states:new he,events:new he,visible:!0,raycastLock:!1,physics:null,...di.identity})(Ut||(Ut={}));var af;(t=>t.defaultData={type:"Empty",cloner:null,...Ut.defaultData})(af||(af={}));var bo;(t=>t.defaultData={type:"Mesh",...Ut.defaultData,...Cs.defaultData})(bo||(bo={}));var na;(t=>t.defaultData={...Ut.defaultData,...di.identity,...go.defaultData})(na||(na={}));var lf;(t=>{function n(e){return{...Ut.defaultData,...Os.defaultData(e)}}t.defaultData=n})(lf||(lf={}));var cf;(o=>(o.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:qr.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Bl.defaultData,states:new he,events:new he,...go.defaultData},o.defaultMeshObject={name:"Rectangle",...Ut.defaultData,...bo.defaultData,geometry:to.defaultData("RectangleGeometry"),material:ct.defaultTwoLayerData("phong","layer1","layer2")},o.defaultBooleanObject={name:"Boolean",...Ut.defaultData,...bo.defaultData,geometry:to.defaultData("BooleanGeometry"),material:ct.defaultTwoLayerData("phong","layer1","layer2")},o.defaultTextObject={name:"Text",...Ut.defaultData,...bo.defaultData,geometry:to.defaultData("TextGeometry"),material:ct.defaultTwoLayerData("phong","layer1","layer2")}))(cf||(cf={}));var uf;(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=ml(i.material,s=>{if(typeof s!="string")for(let[l,c]of Object.entries(o.material.layers)){let p=s.layers.data(l);p&&Nt.patch(p,c)}}).data),i.materials&&o.materials&&(i.materials=ml(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&&Nt.patch(u,a)}}}).data),i}e.patchMaterialState=n;function t(r,o){if(o===void 0)return r;let i={...r};if(Object.assign(i,di.merge(i,o)),Uo.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),i.cloner&&"cloner"in o&&Object.assign(i,{cloner:yo.merge(i.cloner,o.cloner)});else if(r.type==="Empty")i.cloner&&"cloner"in o&&Object.assign(i,{cloner:yo.merge(i.cloner,o.cloner)});else if(Ps.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=ht.clone(s.color))}return i}e.patch=t})(uf||(uf={}));var mn;(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,resetHoverEffectOnPointerLeave:!0})(mn||(mn={}));var ia;(t=>t.defaultData={orbitControls:mn.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})(ia||(ia={}));function vo(n,t){return Object.setPrototypeOf(n,t),n}function pf(n){return Array.isArray(n)?n:[n]}var sa;(e=>{function n(){let r={};return r["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},vo(r,Me.prototype)}e.defaultColors=n;function t(){return{materials:new Me,images:new Me,colors:new Me,audios:new Me,fonts:new Me,penumbraSize:[.5,.5,.5]}}e.emptyData=t})(sa||(sa={}));import{MathUtils as aa}from"three";function df(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={...pn(ft(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={...ft(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function la(n,t){Object.values(n.shared.materials).forEach(e=>t(e))}function ca(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 jS(n){Object.assign(n.scene.publish,{orbitControls:{...mn.defaultData,...ft(n.scene.publish.orbitControls)}})}function US(n){Object.assign(n.scene.publish.settings,{video:{...ia.defaultData.settings.video,...ft(n.scene.publish.settings.video)}})}function kS(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((nf.includes(o)||typeof i=="boolean")&&delete r[o],o==="texture")for(let[s,l]of Object.entries(i))(sf.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 HS(n){n.scene.publish.withBackground=!0}function WS(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function qS(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 $S(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 YS(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 ff(n){n.layers===void 0&&Object.assign(n,ct.defaultTwoLayerData("lambert"))}function Dl(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={...ft(t),colors:e,steps:r};Object.assign(t,o)}})}function XS(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function mf(n){n.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&Dl(r)}):"material"in e&&typeof e.material!="string"&&Dl(e.material)}),Object.values(n.shared.materials).forEach(t=>Dl(t))}function KS(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 ZS(n){n.shared.audios=vo({},Me.prototype)}function QS(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 JS(n){Object.entries(ft(n.shared.images)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.images[r]}),Object.entries(ft(n.shared.audios)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.audios[r]})}function e1(n){n.scene.publish.settings.web.preload=!1}function hf(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 t1(n){n.shared.fonts=vo({},Me.prototype)}function r1(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 o1(n){let t=[];n.scene.objects.traverse((e,r)=>{let o=r;if(o.type==="TextFrame"){let i=ct.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=r1(o.font);n.shared.fonts[l]===void 0&&(n.shared.fonts[l]={name:l});let c={name:o.name,...Ut.defaultData,...bo.defaultData,flatShading:!1,wireframe:!1,geometry:{...to.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:ft(o.states),events:ft(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},p=ft(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 n1(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 he,move:new he,jump:new he}});else{let i=new he;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:aa.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,pn(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 he({fi:0,id:aa.generateUUID(),data:p},{fi:1,id:aa.generateUUID(),data:d})};i.push({fi:c,id:l,data:f})}),delete o.targets)}})})}function i1(n){n.scene.objects.traverse((t,e)=>{function r(o,i){let s=new he,l=[];if(e.events.forEach((c,p,a)=>{if(c.type==="Audio"&&c.trigger===i){let u;l.push(p),c.interaction==="play"?u={...pn(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={...pn(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:aa.generateUUID(),data:{type:o,actions:s}}])}}r("Start","start"),r("MouseDown","mouseDown"),r("MouseUp","mouseUp"),r("KeyDown","keyDown"),r("KeyUp","keyUp")})}function gf(n){let t=n.layers.find(e=>e.type==="light")?.data;if(t?.category==="basic"){let e=Nt.defaultData("light","phong"),r=t;Object.assign(r,e),r.visible=!1}}function s1(n){la(n,gf),ca(n,gf)}function a1(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&e.geometry.type==="SubdivGeometry"&&(e.geometry.scaleBaked||(e.geometry.scaleBaked=[1,1,1]))})}function l1(n){n.scene.objects.traverse((t,e)=>{(e.type==="Empty"||e.type==="Mesh")&&e.cloner&&!e.cloner.randomnessObject&&!e.cloner.toObject&&!e.cloner.randomness&&(e.cloner={...e.cloner,toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}})})}var yf=24;function xf(n){let t=n.schema??0;t!==yf&&(console.warn("updating from ",t,"to ",yf),t<1&&(ca(n,df),la(n,df),n.schema=1),t<2&&(jS(n),n.schema=2),t<3&&(kS(n),n.schema=3),t<4&&(HS(n),n.schema=4),t<5&&(WS(n),n.schema=5),t<6&&(qS(n),n.schema=6),t<7&&($S(n),n.schema=7),t<8&&(YS(n),n.schema=8),t<9&&(mf(n),n.schema=9),t<10&&(XS(n),n.schema=10),t<11&&(KS(n),n.schema=11),t<12&&(mf(n),n.schema=12),t<13&&(ZS(n),n.schema=13),t<14&&(QS(n),n.schema=14),t<15&&(JS(n),n.schema=15),t<16&&(e1(n),n.schema=16),t<17&&(ca(n,hf),la(n,hf),n.schema=17),t<18&&(ca(n,ff),la(n,ff),n.schema=18),t<19&&(US(n),n.schema=19),t<20&&(t1(n),o1(n),n.schema=20),t<21&&(n1(n),i1(n),n.schema=21),t<22&&(s1(n),n.schema=22),t<23&&(a1(n),n.schema=23),t<24&&(l1(n),n.schema=24))}var ua;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(ua||(ua={}));var bn=ll(vf());import{Object3D as M1,Vector3 as yt,Euler as kl,MathUtils as zf,Matrix4 as bi}from"three";var c1=.5*(Math.sqrt(3)-1),mi=(3-Math.sqrt(3))/6,u1=1/3,sr=1/6,QB=(Math.sqrt(5)-1)/4,JB=(5-Math.sqrt(5))/20,hi=n=>Math.floor(n)|0,Sf=new Float64Array([1,1,-1,1,1,-1,-1,-1,1,0,-1,0,1,0,-1,0,0,1,0,-1,0,1,0,-1]),Rl=new Float64Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]);function pa(n=Math.random){let t=_f(n),e=new Float64Array(t).map(o=>Sf[o%12*2]),r=new Float64Array(t).map(o=>Sf[o%12*2+1]);return function(i,s){let l=0,c=0,p=0,a=(i+s)*c1,u=hi(i+a),d=hi(s+a),f=(u+d)*mi,m=u-f,h=d-f,g=i-m,b=s-h,x,S;g>b?(x=1,S=0):(x=0,S=1);let w=g-x+mi,v=b-S+mi,N=g-1+2*mi,_=b-1+2*mi,y=u&255,I=d&255,A=.5-g*g-b*b;if(A>=0){let C=y+t[I],L=e[C],j=r[C];A*=A,l=A*A*(L*g+j*b)}let P=.5-w*w-v*v;if(P>=0){let C=y+x+t[I+S],L=e[C],j=r[C];P*=P,c=P*P*(L*w+j*v)}let T=.5-N*N-_*_;if(T>=0){let C=y+1+t[I+1],L=e[C],j=r[C];T*=T,p=T*T*(L*N+j*_)}return 70*(l+c+p)}}function wf(n=Math.random){let t=_f(n),e=new Float64Array(t).map(i=>Rl[i%12*3]),r=new Float64Array(t).map(i=>Rl[i%12*3+1]),o=new Float64Array(t).map(i=>Rl[i%12*3+2]);return function(s,l,c){let p,a,u,d,f=(s+l+c)*u1,m=hi(s+f),h=hi(l+f),g=hi(c+f),b=(m+h+g)*sr,x=m-b,S=h-b,w=g-b,v=s-x,N=l-S,_=c-w,y,I,A,P,T,C;v>=N?N>=_?(y=1,I=0,A=0,P=1,T=1,C=0):v>=_?(y=1,I=0,A=0,P=1,T=0,C=1):(y=0,I=0,A=1,P=1,T=0,C=1):N<_?(y=0,I=0,A=1,P=0,T=1,C=1):v<_?(y=0,I=1,A=0,P=0,T=1,C=1):(y=0,I=1,A=0,P=1,T=1,C=0);let L=v-y+sr,j=N-I+sr,Y=_-A+sr,te=v-P+2*sr,ie=N-T+2*sr,U=_-C+2*sr,W=v-1+3*sr,q=N-1+3*sr,F=_-1+3*sr,E=m&255,D=h&255,B=g&255,k=.6-v*v-N*N-_*_;if(k<0)p=0;else{let G=E+t[D+t[B]];k*=k,p=k*k*(e[G]*v+r[G]*N+o[G]*_)}let $=.6-L*L-j*j-Y*Y;if($<0)a=0;else{let G=E+y+t[D+I+t[B+A]];$*=$,a=$*$*(e[G]*L+r[G]*j+o[G]*Y)}let H=.6-te*te-ie*ie-U*U;if(H<0)u=0;else{let G=E+P+t[D+T+t[B+C]];H*=H,u=H*H*(e[G]*te+r[G]*ie+o[G]*U)}let V=.6-W*W-q*q-F*F;if(V<0)d=0;else{let G=E+1+t[D+1+t[B+1]];V*=V,d=V*V*(e[G]*W+r[G]*q+o[G]*F)}return 32*(p+a+u+d)}}function _f(n){let e=new Uint8Array(512);for(let r=0;r<512/2;r++)e[r]=r;for(let r=0;r<512/2-1;r++){let o=r+~~(n()*(256-r)),i=e[r];e[r]=e[o],e[o]=i}for(let r=256;r<512;r++)e[r]=e[r-256];return e}import{Triangle as p1}from"three";var kt=new p1,da=class{constructor(t){this.weightAttribute=null;let e=t.geometry;if(!e.isBufferGeometry||e.attributes.position.itemSize!==3)throw new Error("THREE.MeshSurfaceSampler: Requires BufferGeometry triangle mesh.");e.index&&(e=e.toNonIndexed()),this.geometry=e,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.distribution=null}build(){let t=this.positionAttribute,e=new Float32Array(t.count/3);for(let o=0;o<t.count;o+=3){let i=1;kt.a.fromBufferAttribute(t,o),kt.b.fromBufferAttribute(t,o+1),kt.c.fromBufferAttribute(t,o+2),i*=kt.getArea(),e[o/3]=i}this.distribution=new Float32Array(t.count/3);let r=0;for(let o=0;o<e.length;o++)r+=e[o],this.distribution[o]=r;return this}setRandomGenerator(t){return this.randomFunction=t,this}sample(t,e){if(this.distribution){let r=this.distribution[this.distribution.length-1],o=this.binarySearch(this.randomFunction()*r);return this.sampleFace(o,t,e)}}binarySearch(t){if(!this.distribution)return 0;let e=this.distribution,r=0,o=e.length-1,i=-1;for(;r<=o;){let s=Math.ceil((r+o)/2);if(s===0||e[s-1]<=t&&e[s]>t){i=s;break}else t<e[s]?o=s-1:r=s+1}return i}sampleFace(t,e,r){let o=this.randomFunction(),i=this.randomFunction();return o+i>1&&(o=1-o,i=1-i),kt.a.fromBufferAttribute(this.positionAttribute,t*3),kt.b.fromBufferAttribute(this.positionAttribute,t*3+1),kt.c.fromBufferAttribute(this.positionAttribute,t*3+2),e.set(0,0,0).addScaledVector(kt.a,o).addScaledVector(kt.b,i).addScaledVector(kt.c,1-(o+i)),kt.getNormal(r),this}};import{Matrix4 as v1,Object3D as S1}from"three";import{Matrix4 as Mf}from"three";import{Object3D as m1,Matrix4 as h1}from"three";import{HemisphereLight as Tf}from"three";function Xe(n,t){return t.color(n)}var Vl=n=>"isEntity"in n,ar=n=>"isAbstractMesh"in n,lr=n=>n!==null&&n.objectType==="BooleanObject",Af=n=>n.objectType==="CombinedCamera";var fa=n=>"objectHelper"in n;function d1(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??qr.identity)),e&&(n.updateMatrix(),lr(n.parent)&&ar(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 f1(n,t){d1(n,t),t.name!==void 0&&(n.name=t.name),t.visible!==void 0&&(n.visible=t.visible)}function Nf(n,t,e){f1(n,t),t.color!==void 0&&(n.color=Xe(t.color,e)),t.intensity!==void 0&&(n.intensity=t.intensity),t.shadows!==void 0&&!(n instanceof Tf)&&(n.castShadow=t.shadows),n.shadow&&!(n instanceof Tf)&&t.depth!==void 0&&(n.shadow.camera.far=t.depth,n.shadow.needsUpdate=!0)}function If(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 ma=n=>class extends n{hasEntityChild(){return this.children.some(e=>Vl(e))}isDescendantOf(e){e instanceof m1&&(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 h1().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),Vl(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}};import{Box3 as Of,Line3 as g1,Matrix4 as Fl,Vector3 as Et}from"three";var hn=new Of,Lt=new Et,cr=new Et,gn=new Fl,Cf=[new Et(-1,1,1),new Et(-1,-1,1),new Et(1,-1,1),new Et(1,1,1),new Et(-1,1,-1),new Et(-1,-1,-1),new Et(1,-1,-1),new Et(1,1,-1)],y1=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],x1=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function b1(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 Pf=(n,t,e)=>{if(ar(n)){let r=n.geometry.userData.parameters,o=n.geometry.getAttribute("position"),i=n.geometry.userData.type;i==="SubdivGeometry"?Lt.copy(n.originalGeometry.boundingSphere.center):i==="TextGeometry"||fn.is2DParametricMesh(i)?Lt.set(0,0,r.depth*.5):i==="ConeGeometry"||i==="CubeGeometry"||i==="CylinderGeometry"||i==="DodecahedronGeometry"||i==="HelixGeometry"||i==="IcosahedronGeometry"||i==="PyramidGeometry"||i==="SphereGeometry"||i==="PlaneGeometry"||i==="BackdropGeometry"||i==="TorusGeometry"||i==="TorusKnotGeometry"?Lt.set(0,0,0):o!==void 0&&(b1(hn,o,n.geometry.drawRange.start,n.geometry.drawRange.count<1/0?n.geometry.drawRange.count:o.count),hn.getCenter(Lt)),n.forceComputeSize?hn.getSize(cr).multiplyScalar(.5):cr.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}else if(fa(n)&&n.objectHelper.visible){let r=n.geometryHelper.getAttribute("position");hn.setFromArray(r.array),hn.getCenter(Lt),hn.getSize(cr).multiplyScalar(.5)}else Lt.setScalar(0),cr.setScalar(0);gn.copy(t).multiply(n.matrixWorld),cr.x===0&&cr.y===0&&cr.z===0?e.push(new Et(Lt.x,Lt.y,Lt.z).applyMatrix4(gn)):Cf.forEach(r=>{e.push(r.clone().multiply(cr).add(Lt).applyMatrix4(gn))})},gi=class extends Of{constructor(){super(...arguments);this.matrix=new Fl;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 Fl().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&&Pf(s,r,i)}):Pf(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(gn.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(cr).multiplyScalar(.5),this.getCenter(Lt),gn.copy(this.matrix).setPosition(Lt),this.vertices=Cf.map(e=>e.clone().multiply(cr).applyMatrix4(gn))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=y1.map(([e,r])=>new g1(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new Et))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=x1.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var Bt=n=>"isEntity"in n,Lf=n=>"isAbstractMesh"in n,Dt=n=>class extends ma(n){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new Mf;this._singleBBox=new gi;this._recursiveBBox=new gi;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1;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=>{Bt(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)Bt(o)&&o.traverseEntity(r)}traverseVisibleEntity(r){r(this);for(let o of this.children)Bt(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)Bt(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let r=new Mf,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),r.copy(this.matrixWorld).invert(),r.multiply(o);for(let i of this.children)Bt(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 un(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 un(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 zl=class extends S1{},w1=n=>n.type==="Mesh",ur=class extends zl{constructor(e){super();this.object=e;this.hiddenMatrix=new v1;this.uuidOrigin=e.uuid,this.matrixAutoUpdate=!0;for(let r of this.object.children)if(Bt(r)){let o=new ur(r);o.visible=!0,this.add(o),o.matrixAutoUpdate=!1,o.matrix=r.matrix.clone(),o.matrix.premultiply(r.hiddenMatrix)}}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return w1(this.object)}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(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,e=!0);for(let r of this.children)r.updateMatrixWorld(e)}get isLight(){return this.object.isLight}get layers(){return this.object.layers}set layers(e){}get isCamera(){return!1}get geometry(){if(this.object.geometry)return this.object.geometry}get material(){if(this.object.material)return this.object.material}};var _1,yn=new Promise(n=>{_1=n});import{Triangle as T1,Vector3 as wo}from"three";var Ef=-1,A1=1,Bf={x:[1,0,0],"-x":[-1,0,0],y:[0,1,0],"-y":[0,-1,0],z:[0,0,1],"-z":[0,0,-1]},Df={polygon_center:0,edge:1,vertex:2},yi=(n,t)=>(e,r)=>!t||e===0||n===0?0:n*r/100,me=(n,t)=>{let e=Math.abs(t),r=e*-1;return(n-Ef)*(e-r)/(A1-Ef)+r};function Gf(n){let t=[],e={};for(var r=0,o=n.length;r<o;r++){var i=JSON.stringify(n[r].pos.map(s=>Math.round(s*1e4)/1e4));e[i]||(t.push(n[r]),e[i]=!0)}return t}var N1=new wo,ha=new wo,I1=new wo,P1=new wo;function xn(n,t){let e=I1.fromArray(n),r=P1.fromArray(t);ha.copy(r).sub(e);let o=ha.length();return ha.normalize().multiplyScalar(o*.5),N1.copy(e).add(ha).toArray()}var Gt=new T1,ga=new wo,ya=new wo,So=new wo;function Rf(n){let t=[];for(let e=0;e<=n.index.count;e++)if(ga.fromArray(n.index.array,e*3),Gt.setFromAttributeAndIndices(n.attributes.position,ga.x,ga.y,ga.z),Gt.getNormal(ya),Gt.getMidpoint(So),!(isNaN(So.x)||isNaN(So.y)||isNaN(So.z))){let{a:r,b:o,c:i}=Gt,s=r.toArray(),l=o.toArray(),c=i.toArray(),p=r.distanceTo(o),a=o.distanceTo(i),u=i.distanceTo(r),d=xn(s,l),f=xn(l,c),m=xn(c,s),h=[p,a,u],g=Math.max(...h),b=h.filter(w=>Math.round(w)===Math.round(g)).length>1,x=[],S=Gt.getMidpoint(So).toArray();g===p&&!b&&(x=[f,m,m],S=d),g===a&&!b&&(x=[d,m,m],S=f),g===u&&!b&&(x=[d,f,f],S=m),b&&(x=[d,f,m]),t.push({vertices:[s,l,c],faceCenters:x,midpoint:S,norm:Gt.getNormal(ya).toArray()})}return t}function Vf(n){let t=[],{position:e}=n.attributes;for(let r=0;r<e.count;r++){Gt.setFromAttributeAndIndices(e,r*3,r*3+1,r*3+2),Gt.getNormal(ya),Gt.getMidpoint(So);let o=Gt.a.toArray(),i=Gt.b.toArray(),s=Gt.c.toArray();t.push({vertices:[o,i,s],faceCenters:[xn(o,i),xn(i,s),xn(s,o)],midpoint:So.toArray(),norm:ya.toArray()})}return t}var O1=4,C1=.5,jl=n=>.5*(1-Math.cos(n*Math.PI)),Ul=class{constructor(){this.perlin=new Array(4095+1)}noise(t,e=0,r=0){if(this.perlin==null){this.perlin=new Array(4095+1);for(let b=0;b<4095+1;b++)this.perlin[b]=Math.random()}t<0&&(t=-t),e<0&&(e=-e),r<0&&(r=-r);let o=Math.floor(t),i=Math.floor(e),s=Math.floor(r),l=t-o,c=e-i,p=r-s,a,u,d=0,f=.5,m,h,g;for(let b=0;b<O1;b++){let x=o+(i<<4)+(s<<8);a=jl(l),u=jl(c),m=this.perlin[x&4095],m+=a*(this.perlin[x+1&4095]-m),h=this.perlin[x+16&4095],h+=a*(this.perlin[x+16+1&4095]-h),m+=u*(h-m),x+=256,h=this.perlin[x&4095],h+=a*(this.perlin[x+1&4095]-h),g=this.perlin[x+16&4095],g+=a*(this.perlin[x+16+1&4095]-g),h+=u*(g-h),m+=jl(p)*(h-m),d+=m*f,f*=C1,o<<=1,l*=2,i<<=1,c*=2,s<<=1,p*=2,l>=1&&(o++,l--),c>=1&&(i++,c--),p>=1&&(s++,p--)}return d}noiseSeed(t){let e=(()=>{let s,l;return{setSeed(c){l=s=(c??Math.random()*4294967296)>>>0},getSeed(){return s},rand(){return l=(1664525*l+1013904223)%4294967296,l/4294967296}}})();e.setSeed(t),this.perlin=new Array(4095+1);for(let r=0;r<4095+1;r++)this.perlin[r]=e.rand()}},Ff=Ul;var ut=1e-4,pr,kf,Hf,Wf,jf=new yt,Uf=new yt;yn.then(n=>{pr=n,kf=[pr.get_face_center,pr.get_edge_midpoint,pr.get_vertex_position],Hf=[pr.get_face_normal,pr.get_edge_normal,pr.get_vertex_normal],Wf=[pr.face_count,pr.edge_count,pr.vertex_count]});var L1=new bi,E1=new bi,ro=new yt,_o=new yt,xi=new yt,Hl=new yt,B1=new yt,D1=new yt;var Br=new Ff,Dr=class extends M1{constructor(e,r={}){super();this.objectForSample=void 0;this.object=e;let o=e.recursiveBBox.getSize(new yt),i=.1;this.parameters=yo.defaultData(o.toArray(),i),cn(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);break;case"toObject":this._updateToObject(this.parameters)}this.parameters.type==="toObject"?this.objectForSample&&this.objectForSample.children.forEach(e=>e.updateMatrix()):this.children.forEach(e=>e.updateMatrix())}_updateCount(e){let r;if(e!==void 0?r=e:r=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count,this.parameters.type==="toObject"&&!this.parameters.toObject.object&&(r=0),this.parameters.type==="toObject"&&this.objectForSample){for(let i=0,s=this.children.length;i<s;++i)this.remove(this.children[0]);let o=[...this.objectForSample.children].filter(i=>i instanceof ur&&i.uuidOrigin===this.object.uuid);if(o.length===r)return;if(o.length<r)for(let i=0,s=r-o.length;i<s;++i){let l=new ur(this.object);l.visible=!0,this.objectForSample.add(l),this.parameters.hideBase&&this.setHideBase(!0)}else for(let i=0,s=o.length-r;i<s;++i)this.objectForSample.remove(o[i])}else{if(this.children.length===r)return;if(this.children.length<r)for(let o=0,i=r-this.children.length;o<i;++o){let s=new ur(this.object);s.visible=!0,this.add(s),this.parameters.hideBase&&this.setHideBase(!0)}else for(let o=0,i=this.children.length-r;o<i;++o)this.remove(this.children[0])}}_updateRadial(e){let r=e.radial,o=r.start*zf.DEG2RAD,i=r.end*zf.DEG2RAD,s=o-i,l=new kl(r.rotation[0],r.rotation[1],r.rotation[2]),c;switch(r.axis){case"z":c=new yt(0,0,1);break;case"y":c=new yt(0,1,0);break;default:case"x":c=new yt(1,0,0);break}let p=e.randomnessObject,a=p.noiseType==="perlin";Br.noiseSeed(p.seed);let u=pa((0,bn.default)(p.seed)),d=yi(p.strength,this.parameters.randomness);for(let[f,m]of this.children.entries()){let h=f*(p.freqScale/10)+p.movement,g=a?Br.noise(h):u(h,h);m.scale.x=r.scale[0]+d(f,me(g,p.scale[0]))||ut,m.scale.y=r.scale[1]+d(f,me(g,p.scale[1]))||ut,m.scale.z=r.scale[2]+d(f,me(g,p.scale[2]))||ut,m.position.setScalar(0);let b=s/e.count*f-o;switch(r.axis){case"x":m.rotation.set(0,b,0);break;case"y":m.rotation.set(0,0,b);break;case"z":m.rotation.set(b,0,0);break}m.translateOnAxis(c,r.radius),m.position.x+=r.position[0]+d(f,me(g,p.position[0])),m.position.y+=r.position[1]+d(f,me(g,p.position[1])),m.position.z+=r.position[2]+d(f,me(g,p.position[2]));let x=d(f,me(g,p.rotation[0])),S=d(f,me(g,p.rotation[1])),w=d(f,me(g,p.rotation[2]));r.alignment===!0?(m.rotation.x+=l.x+x,m.rotation.y+=l.y+S,m.rotation.z+=l.z+w):m.rotation.set(l.x+x,l.y+S,l.z+w)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,o=new kl(r.rotation[0],r.rotation[1],r.rotation[2]),i=e.randomnessObject,s=i.noiseType==="perlin";Br.noiseSeed(i.seed);let l=pa((0,bn.default)(i.seed)),c=yi(i.strength,this.parameters.randomness);for(let[p,a]of this.children.entries()){let u=p*(i.freqScale/10)+i.movement,d=s?Br.noise(u):l(u,u),f=c(p,me(d,i.rotation[0])),m=c(p,me(d,i.rotation[1])),h=c(p,me(d,i.rotation[2]));a.scale.x=1+(r.scale[0]-1)*p+c(p,me(d,i.scale[0]))||ut,a.scale.y=1+(r.scale[1]-1)*p+c(p,me(d,i.scale[1]))||ut,a.scale.z=1+(r.scale[2]-1)*p+c(p,me(d,i.scale[2]))||ut,a.rotation.x=o.x*p+f,a.rotation.y=o.y*p+m,a.rotation.z=o.z*p+h,a.position.x=r.position[0]*p+c(p,me(d,i.position[0])),a.position.y=r.position[1]*p+c(p,me(d,i.position[1])),a.position.z=r.position[2]*p+c(p,me(d,i.position[2]))}}_updateGrid(e){let r=0,o=e.grid,i=e.randomnessObject,s=yi(i.strength,this.parameters.randomness),l=i.noiseType==="perlin";Br.noiseSeed(i.seed);let c=wf((0,bn.default)(i.seed));if(o.useCenter===!0){let p={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},a=new yt(o.size[0]*(o.count[0]-p.x)*.5,o.size[1]*(o.count[1]-p.y)*.5,o.size[2]*(o.count[2]-p.z)*.5);for(let u=0;u<o.count[0];u++)for(let d=0;d<o.count[1];d++)for(let f=0;f<o.count[2];f++){let m=[(u+1)*(i.freqScale/10)+i.movement,(d+1)*(i.freqScale/10)+i.movement,(f+1)*(i.freqScale/10)+i.movement],h=l?Br.noise(...m):c(...m),g=this.children[r++];g.scale.x=1+s(r,me(h,i.scale[0]))||ut,g.scale.y=1+s(r,me(h,i.scale[1]))||ut,g.scale.z=1+s(r,me(h,i.scale[2]))||ut;let b=s(r,me(h,i.rotation[0])),x=s(r,me(h,i.rotation[1])),S=s(r,me(h,i.rotation[2]));g.rotation.set(b,x,S),g.position.x=o.size[0]*u-a.x+s(r,me(h,i.position[0])),g.position.y=o.size[1]*d-a.y+s(r,me(h,i.position[1])),g.position.z=o.size[2]*f-a.z+s(r,me(h,i.position[2]))}}else for(let p=0;p<o.count[0];p++)for(let a=0;a<o.count[1];a++)for(let u=0;u<o.count[2];u++){let d=[(p+1)*(i.freqScale/10)+i.movement,(a+1)*(i.freqScale/10)+i.movement,(u+1)*(i.freqScale/10)+i.movement],f=l?Br.noise(...d):c(...d),m=this.children[r++];m.scale.x=1+s(r,me(f,i.scale[0]))||ut,m.scale.y=1+s(r,me(f,i.scale[1]))||ut,m.scale.z=1+s(r,me(f,i.scale[2]))||ut;let h=s(r,me(f,i.rotation[0])),g=s(r,me(f,i.rotation[1])),b=s(r,me(f,i.rotation[2]));m.rotation.set(h,g,b),m.position.x=o.size[0]*p+s(r,me(f,i.position[0])),m.position.y=-o.size[1]*a+s(r,me(f,i.position[1])),m.position.z=-o.size[2]*u+s(r,me(f,i.position[2]))}}_updateToObject(e){if(e.type!=="toObject")throw new Error;let{toObject:r}=e,o=new kl(r.rotation[0],r.rotation[1],r.rotation[2]),i=e.randomnessObject,s=i.noiseType==="perlin";Br.noiseSeed(i.seed);let l=pa((0,bn.default)(i.seed)),c=yi(i.strength,this.parameters.randomness);if(!r.object){for(let[,b]of this.children.entries())b.position.set(0,0,0),b.scale.setScalar(1),b.rotation.set(0,0,0);this.objectForSample=void 0;return}if(!this.objectForSample)return;let p=this.getSubdivData(),a=[],u=b=>{let x=b.length,S=b.map(N=>N[0]).reduce((N,_)=>N+_,0),w=b.map(N=>N[1]).reduce((N,_)=>N+_,0),v=b.map(N=>N[2]).reduce((N,_)=>N+_,0);return[S/x,w/x,v/x]},d=b=>Math.round(b*1e6)/1e6;p.forEach(b=>{let x=p.filter(S=>d(b.pos[0])===d(S.pos[0])&&d(b.pos[1])===d(S.pos[1])&&d(b.pos[2])===d(S.pos[2]));x.length>1?a.push({pos:b.pos,norm:u(x.map(S=>S.norm))}):a.push(b)});let f=Gf(a);if(p.length>0){let b=Math.round(f.length*r.count/100);this._updateCount(b)}this.objectForSample.updateMatrixWorld();let m=new da(this.objectForSample).build(),h=Bf[r.axis],g=this.objectForSample.children.filter(b=>b instanceof ur&&b.uuidOrigin===this.object.uuid);m.setRandomGenerator((0,bn.default)(this.object.uuid+r.seed));for(let[b,x]of g.entries()){let S=b*(i.freqScale/10)+i.movement,w=s?Br.noise(S):l(S,S),v=c(b,me(w,i.rotation[0])),N=c(b,me(w,i.rotation[1])),_=c(b,me(w,i.rotation[2]));r.spreadType==="random"?m.sample(xi,Hl):(f.length&&(xi.fromArray(f[b].pos),Hl.fromArray(f[b].norm)),this.objectForSample.objectType==="SubdivObject"&&xi.applyMatrix4(L1.copy(this.objectForSample.matrixWorld).invert())),xi.applyMatrix4(this.object.hiddenMatrix.clone().invert()),x.position.copy(xi),ro.fromArray(h);let y=r.align==="normal"?Hl:this.object.getWorldDirection(D1),I=_o.fromArray(r.position);_o.x+=_o.x+c(b,me(w,i.position[0])),_o.y+=_o.y+c(b,me(w,i.position[1])),_o.z+=_o.z+c(b,me(w,i.position[2]));let A=Math.acos(y.dot(ro)),P=B1.crossVectors(ro,y).normalize(),T=E1.makeRotationAxis(P,A),C=y.clone().cross(this.object.up).normalize(),L=C.clone().cross(y).normalize(),j=new bi().makeBasis(C,y,L),Y=new yt(ro.y,ro.z,ro.x).normalize(),te=Y.clone().cross(ro).normalize(),ie=new bi().makeBasis(Y,ro,te).invert(),U=new bi().multiplyMatrices(j,ie);x.rotation.setFromRotationMatrix(U),I.applyMatrix4(T),x.position.add(I),x.rotation.x=x.rotation.x+o.x+v,x.rotation.y=x.rotation.y+o.y+N,x.rotation.z=x.rotation.z+o.z+_,x.scale.setScalar(1),x.scale.x=x.scale.x+r.scale[0]+c(b,me(w,i.scale[0]))||ut,x.scale.y=x.scale.y+r.scale[1]+c(b,me(w,i.scale[1]))||ut,x.scale.z=x.scale.z+r.scale[2]+c(b,me(w,i.scale[2]))||ut,x.scale.multiply(this.object.scale),x.hiddenMatrix=this.object.hiddenMatrix}}setObjectForSample(e){this.objectForSample=e}getSubdivData(){if(!this.objectForSample)return[];let e=this.parameters.toObject.spreadType;if(e==="random")return[];if(this.objectForSample.objectType==="SubdivObject"){let r=this.objectForSample,o=Df[e],i=Wf[o],s=kf[o],l=Hf[o],c=[],p=i(r.subdivPointer);for(let a=0;a<=p-1;a++){let u=s(r.subdivPointer,a),d=l(r.subdivPointer,a);jf.fromArray(u).applyMatrix4(r.matrixWorld),Uf.fromArray(d),c.push({pos:jf.toArray(),norm:Uf.toArray()})}return c}else return(this.objectForSample.geometry.index?Rf(this.objectForSample.geometry):Vf(this.objectForSample.geometry)).map((o,i)=>e==="polygon_center"?{pos:o.midpoint,norm:o.norm}:e==="vertex"?[{pos:o.vertices[0],norm:o.norm},{pos:o.vertices[1],norm:o.norm},{pos:o.vertices[2],norm:o.norm}]:e==="edge"?[{pos:o.faceCenters[0],norm:o.norm},{pos:o.faceCenters[1],norm:o.norm},{pos:o.faceCenters[2],norm:o.norm}]:[]).flat()}removeSampleObjectClones(){if(this.objectForSample)for(var e=this.objectForSample.children.length-1;e>=0;e--){let r=this.objectForSample.children[e];r instanceof ur&&r.uuidOrigin===this.object.uuid&&this.objectForSample.remove(r)}}fromClonerState(e){if(!e)return this;e.hideBase!==void 0&&this.setHideBase(e.hideBase);let r=e.hasOwnProperty("type");return e.toObject?.hasOwnProperty("object")&&!!this.parameters.toObject.object&&!e.toObject.object&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),this.parameters.type==="toObject"&&(r?e.type!=="toObject":!1)&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),cn(this.parameters,e),this.update(),this}};import{HemisphereLight as eA,Scene as tA,Vector3 as rA,Fog as oA,Box3 as nA}from"three";import{Camera as xT,OrthographicCamera as bT,PerspectiveCamera as vT,Vector3 as Zt,Object3D as Ph,Quaternion as ST}from"three";import{BoxGeometry as G1}from"three";var dr=n=>{var t;return t=class extends n{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new G1(30,30,30),t};import{Camera as j1,LineSegments as U1,BufferGeometry as k1,LineBasicMaterial as H1,Color as ql,Vector3 as W1,Float32BufferAttribute as $f}from"three";import{Ray as R1,Sphere as V1,Matrix4 as F1,Vector3 as Gr}from"three";var xa=new R1,Wl=new V1,qf=new F1,fr=(n,t,e,r,o=!1)=>{let i=t,s=n.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),Wl.copy(i.boundingSphere),Wl.applyMatrix4(s),e.ray.intersectsSphere(Wl)===!1||(qf.copy(s).invert(),xa.copy(e.ray).applyMatrix4(qf),i.boundingBox!==null&&xa.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 b=Math.max(0,f.start),x=Math.min(u.count,f.start+f.count);for(m=b,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,xa,d,c,p,a),l){l.faceIndex=Math.floor(m/3),r.push(l);return}}else{let x=i.attributes.position,S=new Gr,w=new Gr,v=new Gr,N=new Gr,_=2,I=1/((n.scale.x+n.scale.y+n.scale.z)/3),A=I*I,P=Math.max(0,f.start),T=Math.min(x.count,f.start+f.count);for(let C=P,L=T-1;C<L;C+=_){if(S.fromBufferAttribute(x,C),w.fromBufferAttribute(x,C+1),xa.distanceSqToSegment(S,w,N,v)>A)continue;N.applyMatrix4(n.matrixWorld);let Y=e.ray.origin.distanceTo(N);Y<e.near||Y>e.far||r.push({distance:Y,point:v.clone().applyMatrix4(n.matrixWorld),object:n})}}function g(b,x,S,w,v,N,_){let y=new Gr,I=new Gr,A=new Gr,P=new Gr,T=new Gr;if(y.fromBufferAttribute(w,v),I.fromBufferAttribute(w,N),A.fromBufferAttribute(w,_),S.intersectTriangle(y,I,A,!1,P)===null)return null;T.copy(P),T.applyMatrix4(b.matrixWorld);let L=x.ray.origin.distanceTo(T);return L<x.near||L>x.far?null:{faceIndex:1,distance:L,point:T.clone(),object:b}}};var ba=new W1,Rt=new j1,$l=class extends U1{constructor(e){let r=new k1,o=new H1({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],s=[],l={},c=new ql(15711266),p=new ql(15711266),a=new ql(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 $f(i,3)),r.setAttribute("color",new $f(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;Rt.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;Ht("n1",r,e,Rt,-i,-s,l),Ht("n2",r,e,Rt,i,-s,l),Ht("n3",r,e,Rt,-i,s,l),Ht("n4",r,e,Rt,i,s,l);let c=l;Ht("f1",r,e,Rt,-i,-s,c),Ht("f2",r,e,Rt,i,-s,c),Ht("f3",r,e,Rt,-i,s,c),Ht("f4",r,e,Rt,i,s,c);let p=c,a=.5;Ht("u1",r,e,Rt,i*.7*a,s*1.1,p),Ht("u2",r,e,Rt,-i*.7*a,s*1.1,p),Ht("u3",r,e,Rt,0,s*(1.1+.9*a),p),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function Ht(n,t,e,r,o,i,s){ba.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],ba.x,ba.y,ba.z)}}var va=class extends dr($l){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){fr(this.object,this.geometry,e,r,!0)}};import{DirectionalLightHelper as q1}from"three";var vn=class extends dr(q1){constructor(e,r=15,o=10066329){super(e,r,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,r){fr(this.object,vn.geometryHelper,e,r)}};import{AxesHelper as $1}from"three";var Sn=class extends dr($1){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){fr(this.object,Sn.geometryHelper,e,r)}update(){}};import{PointLightHelper as Y1}from"three";var wn=class extends dr(Y1){constructor(e,r=15,o=6710886){super(e,r,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,r){fr(this.object,wn.geometryHelper,e,r)}};import{SpotLightHelper as X1,Vector3 as K1}from"three";var Sa=class extends dr(X1){constructor(e,r=6710886){super(e,r);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,r){fr(this.object,Sa.geometryHelper,e,r)}update(){if(this.object!==void 0){let e=Sa._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)}}},vi=Sa;vi._vector=new K1;import{CubicBezierCurve as wa,EllipseCurve as Z1,LineCurve as _a,LineCurve3 as Q1,MathUtils as J1,QuadraticBezierCurve as Xl,SplineCurve as ew,Vector2 as nt,Vector3 as Kf}from"three";var Si=1e-12,_n=class{constructor(t){this.position=new nt;this.startPosition=new nt;this.uuid=J1.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 _n(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Tn=class extends _n{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new Tn(this.parent).copy(this)}},Wt=class extends _n{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new Tn(this),new Tn(this))}static create(e,r){let o=new Wt(e,new nt(...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 Wt(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 nt,r=new nt){let[o,i]=this.computeTangents();return o&&i&&(Yf(o,e),Yf(i,r)),[e,r]}computeTangent(e=new nt){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new nt){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function Yf(n,t=new nt){let e=n.length();return t.set(-n.y/e,n.x/e)}var Kl=n=>n,An=new nt,Ta=new nt,tw=new nt,rw=new nt,ow=new nt,nw=new nt,Zf=new Kf,Qf=new Kf;function Jf(n){let t=new nt;t.addVectors(n.v0,An.subVectors(n.v1,n.v0).multiplyScalar(2/3));let e=new nt;return e.addVectors(n.v2,Ta.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new wa(n.v0,t,e,n.v2)}function wi(n,t,e=Number.EPSILON){return Math.abs(n-t)<e}function iw(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function sw(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function Zl(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 em(n,t,e){return Xf(n,t)&&Xf(t,e)&&Yl(n.position,t.position,e.position)}function Yl(n,t,e){return An.copy(t).sub(n).cross(Ta.copy(e).sub(n))===0}function tm(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 rm(n,t,e){let r=n.distanceTo(e),o=t.distanceTo(e);return r<o?t:n}function om(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 Zl(t,n,e)>Math.PI&&(a*=-1),wi(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 Ql(n,t){return n.position.equals(n.controls[1].position)&&t.position.equals(t.controls[0].position)}function Xf(n,t){return Yl(n.position,n.controls[1].position,t.position)&&Yl(n.position,t.controls[0].position,t.position)}function nm(n,t,e,r,o=.5){let i=An.subVectors(t,n).multiplyScalar(o).add(n),s=Ta.subVectors(e,t).multiplyScalar(o).add(t),l=tw.subVectors(r,e).multiplyScalar(o).add(e),c=i,p=rw.subVectors(s,i).multiplyScalar(o).add(i),a=ow.subVectors(l,s).multiplyScalar(o).add(s),u=l,d=nw.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 im(n,t,e=12,r=!0){let o=Qf.set(0,0,0),i,s=0,l=[];for(let c=0;c<t.length;c++){let p=Kl(t[c]),a=An,u=oo(p,e);l.push(u);for(let d=0;d<=u;d++)if(p instanceof wa||p instanceof Xl||p instanceof _a){if(p.getPoint(d/u,a),o.set(a.x,a.y,0),i!==void 0&&sw(i,o))continue;i===void 0&&(i=Zf),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 sm(n,t,e,r=12,o=!0){let i=Qf.set(0,0,0),s=0,l=[];for(let c=0;c<t.length;c++){if(e[c]===!1)continue;let p,a=Kl(t[c]),u=An,d=oo(a,r);l.push(d);for(let f=0;f<=d;f++)if(a instanceof wa||a instanceof Xl||a instanceof _a){if(a.getPoint(f/d,u),i.set(u.x,u.y,0),p?.equals(i))continue;p===void 0?p=Zf:(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 Jl(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=oo(s.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=c),l+=c}s.curveAfter!==void 0&&(l+=oo(s.curveAfter,t)),r.push(l)}return n.length>0&&e&&n[0].roundedCurveCorner!==void 0&&(r[n.length-1]+=oo(n[0].roundedCurveCorner,t)*.5),r}function oo(n,t=12){return n&&n instanceof Z1?t*2:n&&(n instanceof _a||n instanceof Q1)?1:n&&n instanceof ew?t*n.points.length:t}function am(n,t,e=12,r=!0){let o,i=0;for(let s=0;s<t.length;s++){let l=Kl(t[s]),c=oo(l,e),p=An;for(let a=0;a<=c;a++)if(l instanceof wa||l instanceof Xl||l instanceof _a){if(l.getPoint(a/c,p),o!==void 0&&iw(o,p,Si))continue;o===void 0&&(o=Ta),o.copy(p),n.push(p.x,p.y),i++}}return wi(n[0],n[n.length-2],Si)&&wi(n[1],n[n.length-1],Si)&&(n.pop(),n.pop()),r&&i>1&&!(wi(n[i-1],n[1],Si)&&wi(n[i-2],n[0],Si))&&(n.push(n[0],n[1]),i++),n}import{EventDispatcher as hT,Matrix3 as gT,Vector3 as tu}from"three";import{EventDispatcher as aw,Plane as lw,Shape as lm,Vector2 as Rr,Vector3 as cw,MathUtils as ec,LineCurve as tc,QuadraticBezierCurve as cm,CubicBezierCurve as Aa}from"three";var rc=new Rr,uw=new Rr,pw=new Rr,dw=new Rr,fw=new Rr,mw=new Rr,ve=class extends lm{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new aw;this.plane=new lw(new cw(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=ec.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,o){let i=new ve;return i.isClosed=e.isClosed,i.points=e.points.map(s=>Wt.create(s.id,s.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(s=>ve.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=rc.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=ec.generateUUID()){let i;e instanceof Rr?i=e:i=new Rr(e,r);let s=new Wt(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 im(e,o?this.roundedCurves:this.curves,r,this.autoClose),i.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Jl(this.points,e,!1),this.roundedCurveDivisions=Jl(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return sm(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),am(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=oo(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(Ql(i,s)){let u=i.position.distanceTo(s.position);return i.position.distanceTo(rc.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){Ql(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&&em(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(),b=f.getLength(),x=Math.min(a,g*.499),S=Math.min(a,b*.499),w=Math.min(x,S),v=1-w/g,N=w/b,_=d.getPointAt(v,rc),y=f.getPointAt(N,uw);this._subSplitCurve(d,m,v,_,void 0),this._subSplitCurve(f,h,N,void 0,y);let I;if(this.useCubicForRoundedCorners){let A=Zl(_,l.position,y)/2,P=Math.tan(A)*_.distanceTo(l.position),[T,C]=tm(_,y,P,pw,dw),L=rm(T,C,l.position),[j,Y]=om(L,_,y,P,fw,mw);I=new Aa(_.clone(),j.clone(),Y.clone(),y.clone())}else I=new cm(_.clone(),l.position.clone(),y.clone());l.roundedCurveCorner=I,this.roundedCurves.splice(i+o,0,I),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,r,o,i,s){if(e instanceof tc)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=nm(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 ve(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 Wt(ec.generateUUID(),new Rr(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 ve;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let r=(i,s)=>{s instanceof Aa&&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 cm&&(i[l]=Jf(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 Aa?(f=this.createPoint(u.v0),f.controls[1].position.copy(u.v1)):u instanceof tc&&(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 Aa?p.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(p.v2),a=!0):p instanceof tc&&p.v2.equals(s[0].position)&&(a=!0),this.isClosed=a,s};return this.points=o(e.curves),e instanceof lm&&(this.shapeHoles=e.holes.map(i=>{let s=new ve;return s.fromShape(i),s})),this.update(),this}};import{BufferAttribute as Ia,BufferGeometry as bw}from"three";var Oe;(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"})(Oe||(Oe={}));var Ue;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Ue||(Ue={}));function ce(n,t){if(!n)throw t||"Assertion Failed!"}var ae=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){ce(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){ce(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){ce(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){ce(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}(),_i=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}(),Na=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}(),Nn=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}(),um=function(){function n(){var t=new Nn,e=new _i,r=new Na(0),o=new Na(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 Na(0),r=new Na(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;ce(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;ce(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 Nn,e=new Nn,r=new _i,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 Nn;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!r){var s=new _i;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 _i;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 Nn;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 _i;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&&ae.vertCCW(r.Lprev.Org,r.Org,i.Lnext.Lnext.Org)&&ae.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){ce(o.prev===i),c=o.anEdge;do ce(c.Sym!==c),ce(c.Sym.Sym===c),ce(c.Lnext.Onext.Sym===c),ce(c.Onext.Sym.Lnext===c),ce(c.Lface===o),c=c.Lnext;while(c!==o.anEdge)}for(ce(o.prev===i&&o.anEdge===null),l=e,l=e;(s=l.next)!==e;l=s){ce(s.prev===l),c=s.anEdge;do ce(c.Sym!==c),ce(c.Sym.Sym===c),ce(c.Lnext.Onext.Sym===c),ce(c.Onext.Sym.Lnext===c),ce(c.Org===s),c=c.Onext;while(c!==s.anEdge)}for(ce(s.prev===l&&s.anEdge===null),p=r,p=r;(c=p.next)!==r;p=c)ce(c.Sym.next===p.Sym),ce(c.Sym!==c),ce(c.Sym.Sym===c),ce(c.Org!==null),ce(c.Dst!==null),ce(c.Lnext.Onext.Sym===c),ce(c.Onext.Sym.Lnext===c);ce(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}(),pm=function(){function n(){this.handle=null}return n}(),dm=function(){function n(){this.key=null,this.node=0}return n}(),hw=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 pm,this.handles[r]=new dm;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,ce(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 pm;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new dm}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;ce(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}(),oc=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}(),fm=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),gw=function(){function n(t,e){this.frame=t,this.leq=e,this.head=new fm,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 fm;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}(),yw=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?ae.vertLeq(i.Org,s.Org)?ae.edgeSign(s.Dst,i.Org,s.Org)<=0:ae.edgeSign(i.Dst,s.Org,i.Org)>=0:ae.edgeSign(s.Dst,o,s.Org)<=0;if(s.Dst===o)return ae.edgeSign(i.Dst,o,i.Org)>=0;var l=ae.edgeEval(i.Dst,o,i.Org),c=ae.edgeEval(s.Dst,o,s.Org);return l>=c},n.deleteRegion=function(t,e){e.fixUpperEdge&&ce(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},n.fixUpperEdge=function(t,e,r){ce(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 oc;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 Oe.ODD:return(e&1)!==0;case Oe.NONZERO:return e!==0;case Oe.POSITIVE:return e>0;case Oe.NEGATIVE:return e<0;case Oe.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 ce(ae.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,ce(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=ae.vertL1dist(e,t),i=ae.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(ae.vertLeq(o.Org,i.Org)){if(ae.edgeSign(i.Dst,o.Org,i.Org)>0)return!1;ae.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(ae.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(ce(!ae.vertEq(o.Dst,i.Dst)),ae.vertLeq(o.Dst,i.Dst)){if(ae.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(ae.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 Nn,f,m;if(ce(!ae.vertEq(p,c)),ce(ae.edgeSign(c,t.event,s)<=0),ce(ae.edgeSign(p,t.event,l)>=0),ce(s!==t.event&&l!==t.event),ce(!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(ae.vertLeq(s,l)){if(ae.edgeSign(p,s,l)>0)return!1}else if(ae.edgeSign(c,l,s)<0)return!1;return n.debugEvent(t),ae.intersect(c,s,p,l,d),ce(Math.min(s.t,c.t)<=d.t),ce(d.t<=Math.max(l.t,p.t)),ce(Math.min(p.s,c.s)<=d.s),ce(d.s<=Math.max(l.s,s.s)),ae.vertLeq(d,t.event)&&(d.s=t.event.s,d.t=t.event.t),f=ae.vertLeq(s,l)?s:l,ae.vertLeq(f,d)&&(d.s=f.s,d.t=f.t),ae.vertEq(d,s)||ae.vertEq(d,l)?(n.checkForRightSplice(t,e),!1):!ae.vertEq(c,t.event)&&ae.edgeSign(c,t.event,d)>=0||!ae.vertEq(p,t.event)&&ae.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):(ae.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),ae.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),ae.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),ae.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}ae.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,ae.vertEq(o.Org,r)){ce(!1),n.spliceMergeVertices(t,o,r.anEdge);return}if(!ae.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}ce(!1),e=n.topRightRegion(e),c=n.regionBelow(e),s=c.eUp.Sym,i=l=s.Onext,c.fixUpperEdge&&(ce(i!==s),n.deleteRegion(t,c),t.mesh.delete(s),s=i.Oprev),t.mesh.splice(r.anEdge,s),ae.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 oc;if(p.eUp=e.anEdge.Sym,r=t.dict.search(p).key,o=n.regionBelow(r),!!o){if(s=r.eUp,l=o.eUp,ae.edgeSign(s.Dst,e,s.Org)===0){n.connectLeftDegenerate(t,r,e);return}if(i=ae.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);ce(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 oc,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 gw(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||(ce(e.fixUpperEdge),ce(++r===1)),ce(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,ae.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 hw(i,ae.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,ce(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||!ae.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}(),xw=function(){function n(){this.mesh=new um,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=Oe.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 b=0;b<3;++b)i=e.coords[b],i<p[b]&&(p[b]=i,m[b]=e),i>c[b]&&(c[b]=i,f[b]=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(;ae.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;ae.vertLeq(r.Org,r.Dst);r=r.Lnext);o=r.Lprev;for(var i=void 0;r.Lnext!==o;)if(ae.vertLeq(r.Dst,o.Org)){for(;o.Lnext!==r&&(ae.edgeGoesLeft(o.Lnext)||ae.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&&(ae.edgeGoesRight(r.Lprev)||ae.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===Ue.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===Ue.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 um),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=Oe.ODD),e===void 0&&(e=Ue.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_(),yw.computeInterior(this,s);var l=this.mesh;return e===Ue.BOUNDARY_CONTOURS?this.setWindingNumber_(l,1,!0):this.tessellateInterior_(l),s&&l.check(),e===Ue.BOUNDARY_CONTOURS?this.outputContours_(l,o):this.outputPolymesh_(l,e,r,o),!0},n}();function To(n){var t=n.windingRule,e=t===void 0?Oe.ODD:t,r=n.elementType,o=r===void 0?Ue.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 b=new xw;n.edgeCreateCallback&&(b.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(b.vertexIdCallback=n.vertexIdCallback);for(var x=0;x<d.length;x++)b.addContour(c||2,d[x]);return b.tesselate(e,o,s,c,a,m),{vertices:b.vertices,vertexIndices:b.vertexIndices,vertexCount:b.vertexCount,elements:b.elements,elementCount:b.elementCount,mesh:g?b.mesh:void 0}}}var vR=Oe.ODD,SR=Oe.NONZERO,wR=Oe.POSITIVE,_R=Oe.NEGATIVE,TR=Oe.ABS_GEQ_TWO,AR=Ue.POLYGONS,NR=Ue.CONNECTED_POLYGONS,IR=Ue.BOUNDARY_CONTOURS;var In=class extends bw{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Oe.ODD;this.elementType=Ue.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:Oe.ODD,elementType:Ue.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,b=i[g+0],x=i[g+1];if(a!==void 0&&b!==a&&(c=!1),u!==void 0&&x!==u&&(p=!1),a=b,u=x,!c&&!p)break}!c&&!p&&(l=To({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 Ia(new Float32Array(d*3),3),this._normalAttribute=new Ia(new Float32Array(d*3),3),this._uvAttribute=new Ia(new Float32Array(d*2),2),this._indexAttribute=new Ia(new Uint32Array(f*3),1),l){let m=1/0,h=-1/0,g=1/0,b=-1/0;for(let w=0,v=d;w<v;w++){let N=w*2,_=l.vertices[N+0],y=l.vertices[N+1];_<m&&(m=_),_>h&&(h=_),y<g&&(g=y),y>b&&(b=y)}let x=h-m,S=b-g;for(let w=0,v=d;w<v;w++){let N=w*2,_=l.vertices[N+0],y=l.vertices[N+1],I=(_-m)/x,A=(y-g)/S;this._positionAttribute.setXYZ(w,_,y,0),this._normalAttribute.setXYZ(w,0,0,1),this._uvAttribute.setXY(w,I,A)}for(let w=0,v=f;w<v;w++){let N=w*3,_=l.elements[N+0],y=l.elements[N+1],I=l.elements[N+2];this._indexAttribute.setX(N+0,_),this._indexAttribute.setX(N+1,y),this._indexAttribute.setX(N+2,I)}}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 In(this._shape,this._curveSegments);return e.userData=ci(this.userData),e}};import{BufferAttribute as Oa,BufferGeometry as vw}from"three";var Pa=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*Pa.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*Pa.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)}},Ti=Pa;Ti.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var nc=(n,t)=>([e,r])=>(r<e&&(r+=t),(n>=e?n:n+t)<=r),Pn=class extends vw{constructor(e,r,o=0,i=12,s=3,l=Oe.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 I=y.extractShapePointsToFlatArray([],i),A=[];for(let P=I.length-1;P>=1;P-=2){let T=I[P-1],C=I[P-0];A.push(T,C)}return A}),a=To({windingRule:l,elementType:Ue.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[c]}),u=To({windingRule:Oe.ODD,elementType:Ue.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 I=u.elements[y],A=y%2===0?a.vertexCount:0;a.elements.push(I+A)}for(let y=0;y<u.vertexIndices.length;y++){let I=u.vertexIndices[y],A=a.vertexCount;a.vertexIndices.push(I+A)}for(let y=0;y<u.vertices.length;y++){let I=u.vertices[y];a.vertices.push(I)}}let f=1/0,m=-1/0,h=1/0,g=-1/0;for(let y=0,I=a.vertexCount;y<I;y++){let A=y*2,P=a.vertices[A+0],T=a.vertices[A+1];P<f&&(f=P),P>m&&(m=P),T<h&&(h=T),T>g&&(g=T)}this._minX=f,this._minY=h,this._width=m-f,this._height=g-h;let b=a.vertexCount*2*(2+this._bevelSegments);this._buffer=new Ti(b);let x=[],S=[];for(let y=a.elementCount-1;y>=0;y--){let I=y>=d,A=y*2,P=a.elements[A+0],T=a.elements[A+1],C=P+T,L={start:P,count:T,normals:[],continuous:[],concave:[]},j=P,Y=C-1,te=P+1,ie=this._shape.roundedCurves.length;do{let F=j-P,E=a.vertices[Y*2+0],D=a.vertices[Y*2+1],B=a.vertices[j*2+0],k=a.vertices[j*2+1],$=a.vertices[te*2+0],H=a.vertices[te*2+1],V=B-E,G=k-D,z=Math.sqrt(V*V+G*G);V/=z,G/=z;let J=B-$,oe=k-H,se=Math.sqrt(J*J+oe*oe);J/=se,oe/=se,L.normals[F*2+0]=-oe,L.normals[F*2+1]=J,L.concave[F]=V*oe-G*J>0;let re=a.vertexIndices[j];if(Array.isArray(re))L.continuous[F]=!1;else{let[ee,Q]=this._shape.getCurveIndexFromVertexId(re-1,!0);if(Q>0&&Q<1)L.continuous[F]=!0;else{let K=Q===1?ee+1:ee-1;K=(K+ie)%ie;let fe=Q===1?0:1,pe=this._shape.roundedCurves[ee].getTangent(Q),ye=this._shape.roundedCurves[K].getTangent(fe);L.continuous[F]=pe.dot(ye)>.95}}I&&(L.normals[F*2+0]*=-1,L.normals[F*2+1]*=-1),[Y,j,te]=[j,te,te+1],te>=C&&(te-=T)}while(te!==P+1);let U=[];U.push({bevelI:0,angle:0,size:0,boundary:{vertices:a.vertices.slice(P*2,C*2),vertexCount:T,vertexIndices:new Array(T).fill(!0).map((F,E)=>[E,E]),elements:[0,T],elementCount:1,mesh:null},reverseMap:[],insetPoints:a.vertices.slice(P*2,C*2)});for(let F=1;F<=this._bevelSegments;F++){let E=F/this._bevelSegments*Math.PI/2,D=(1-Math.cos(E))*this._bevelSize,B=[],k=[],$=[],H=[],V=0;for(let z=0;z<T;z++){let J=z*2,oe=(z-1+T)%T*2,se=a.vertices[L.start*2+J+0],re=a.vertices[L.start*2+J+1],ee=-L.normals[oe+0]*D,Q=-L.normals[oe+1]*D,K=-L.normals[J+0]*D,fe=-L.normals[J+1]*D;if(L.concave[z]||!L.concave[z]&&I){let pe=Math.atan2(Q,ee),ye=Math.atan2(fe,K);ye>pe&&(ye-=Math.PI*2);let $e=ye-pe;if(L.continuous[z]||I){let _e=pe+$e/2,Ae=Math.cos(_e)*D,Pe=Math.sin(_e)*D;B[2*V+0]=se+Ae*(I?-1:1),B[2*V+1]=re+Pe*(I?-1:1),H[V]=z,V++}else{let _e=Math.max(1,Math.floor(i/4*Math.abs($e)/Math.PI));for(let Ae=0;Ae<=_e;Ae++){let Pe=pe+$e*(Ae/_e),Pt=Math.cos(Pe)*D,Ur=Math.sin(Pe)*D;B[2*V+0]=se+Pt,B[2*V+1]=re+Ur,H[V]=z,V++}}}else B[2*V+0]=se+ee,B[2*V+1]=re+Q,H[V]=z,k[z]=V,V++,B[2*V+0]=se,B[2*V+1]=re,H[V]=z,V++,B[2*V+0]=se+K,B[2*V+1]=re+fe,H[V]=z,$[z]=V,V++}let G=To({windingRule:Oe.POSITIVE,elementType:Ue.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[B],edgeCreateCallback:z=>{let oe=z.Org.idx,se=H[oe],re=H[(oe+1)%H.length];z.idx=[se,re],z.Sym.idx=[re,se]},vertexIdCallback:z=>{let J=z.Lprev.idx;return[J?J[1]:0,z.idx[0]]}});if(!G)throw console.log("Error"),new Error(`error generating bevel geometry for ${F}'th loop`);if(!G.vertexCount)break;for(let z=0;z<G.vertexIndices.length;z++){let[J,oe]=G.vertexIndices[z];if(J===oe)continue;let se=oe;oe<J&&(se+=T);for(let re=J;re<se;re++){let ee=re%T,Q=(re+1)%T;if(!L.continuous[ee]||!L.continuous[Q]){G.vertexIndices[z]=[J,ee],G.vertexIndices.splice(z+1,0,[Q,oe]),G.vertices.splice((z+1)*2,0,G.vertices[z*2],G.vertices[z*2+1]);break}}}U.push({bevelI:F,angle:E,size:D,boundary:G,reverseMap:H,insetPoints:B})}let W=(F,E,D)=>{let B=0,k=F.boundary.vertexIndices.length;for(;B<k&&D(F.boundary.vertexIndices[E]);)E=(E+1)%k,B++;return B},q=x.length;for(let F=1;F<U.length;F++){let E=U[F-1],D=U[F],B=E.boundary.vertexIndices.length,k=D.boundary.vertexIndices.length;if(!B||!k)break;let $=L.concave.length,H=0,V=nc(H,T);for(;!E.boundary.vertexIndices.filter(V).length||!D.boundary.vertexIndices.filter(V).length;)H++,V=nc(H,T);let G=E.boundary.vertexIndices.findIndex(V),z=D.boundary.vertexIndices.findIndex(V);do G=(G+1)%B;while(V(E.boundary.vertexIndices[G]));do z=(z+1)%k;while(V(D.boundary.vertexIndices[z]));H=(H+1)%T;let J=H,oe=this.buildBevelVert(L,E,(G-1+B)%B),se=this.buildBevelVert(L,D,(z-1+k)%k),re=oe,ee=se,Q,K,fe=!1;do{V=nc(H,T);let pe=W(E,G,V),ye=W(D,z,V),$e=fe;if(fe=!1,pe&&!ye){for(let _e=0;_e<pe;_e++)Q=this.buildBevelVert(L,E,(G+_e)%B,_e/(pe-1)),x.push(re.topN,Q.topP,ee.topN),x.push(Q.bottomP,re.bottomN,ee.bottomN),re=Q;fe=!0}else if(!pe&&ye)for(let _e=0;_e<ye;_e++)K=this.buildBevelVert(L,D,(z+_e)%k,_e/(ye-1)),x.push(ee.topN,re.topP,K.topP),x.push(re.bottomP,ee.bottomN,K.bottomP),ee=K;else if(pe&&ye)if(Q=this.buildBevelVert(L,E,G,0),K=this.buildBevelVert(L,D,z,0),$e?(x.push(re.topN,K.topP,ee.topN),x.push(re.topN,Q.topP,K.topP),x.push(K.bottomP,re.bottomN,ee.bottomN),x.push(K.bottomP,Q.bottomP,re.bottomN)):(x.push(ee.topN,re.topN,Q.topP),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,re.bottomN,ee.bottomN),x.push(Q.bottomP,ee.bottomN,K.bottomP)),re=Q,ee=K,pe===ye)for(let _e=1;_e<pe;_e++)Q=this.buildBevelVert(L,E,(G+_e)%B,_e/(pe-1)),K=this.buildBevelVert(L,D,(z+_e)%k,_e/(ye-1)),x.push(re.topN,Q.topP,ee.topN),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,re.bottomN,ee.bottomN),x.push(Q.bottomP,ee.bottomN,K.bottomP),re=Q,ee=K;else if(pe>ye){let _e=pe/ye,Ae=0;for(let Pe=1;Pe<pe;Pe++)Q=this.buildBevelVert(L,E,(G+Pe)%B,Pe/(pe-1)),x.push(re.topN,Q.topP,ee.topN),x.push(Q.bottomP,re.bottomN,ee.bottomN),re=Q,Pe>(Ae+1)*_e&&(Ae++,K=this.buildBevelVert(L,D,(z+Ae)%k,Ae/(ye-1)),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,ee.bottomN,K.bottomP),ee=K)}else{let _e=ye/pe,Ae=0;for(let Pe=1;Pe<ye;Pe++)K=this.buildBevelVert(L,D,(z+Pe)%k,Pe/(ye-1)),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,ee.bottomN,K.bottomP),ee=K,Pe>(Ae+1)*_e&&(Ae++,Q=this.buildBevelVert(L,E,(G+Ae)%B,Ae/(pe-1)),x.push(re.topN,Q.topP,ee.topN),x.push(Q.bottomP,re.bottomN,ee.bottomN),re=Q)}G=(G+pe)%B,z=(z+ye)%k,H=(H+1)%$}while(H!==J)}{let F=U[0];for(let E=0,D=F.boundary.vertexCount;E<D;E++){let B=this.buildBevelVert(L,F,E),k=this.buildBevelVert(L,F,(E+1)%D);x.push(k.topP,B.topN,B.bottomN),x.push(k.topP,B.bottomN,k.bottomP)}}if(I){let F=[];for(let E=x.length-1;E>=q+2;E-=3){let D=x[E-2],B=x[E-1],k=x[E-0];F.push(k,B,D)}x.splice(q,x.length-q,...F)}if(I){let F=[];for(let E=U[U.length-1].boundary.vertices.length-1;E>=1;E-=2){let D=U[U.length-1].boundary.vertices[E-1],B=U[U.length-1].boundary.vertices[E-0];F.push(D,B)}S.push(F)}if(!I){let F=U[U.length-1],E=To({windingRule:U.length>1?Oe.POSITIVE:Oe.ODD,elementType:Ue.POLYGONS,vertexSize:2,strict:!0,contours:[F.insetPoints,...S]});if(!E)throw new Error("Error generating geometry for surface");p.length===0&&Object.assign(this,{capStartIndex:x.length});for(let D=0;D<E.elementCount*3;D+=3){let B=this.buildSurfaceVert(E,E.elements[D+0]),k=this.buildSurfaceVert(E,E.elements[D+1]),$=this.buildSurfaceVert(E,E.elements[D+2]);x.push(B.top,k.top,$.top),x.push($.bottom,k.bottom,B.bottom)}}this.vertexCache={}}this._buffer.shrink();let w=new Oa(Uint32Array.from(x),1),v=new Oa(this._buffer.positions,3),N=new Oa(this._buffer.normals,3),_=new Oa(this._buffer.uvs,2);v.needsUpdate=!0,N.needsUpdate=!0,_.needsUpdate=!0,w.needsUpdate=!0,this.setAttribute("position",v),this.setAttribute("normal",N),this.setAttribute("uv",_),this.setIndex(w)}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,b=a*2,x=r.boundary.vertices[h+0],S=r.boundary.vertices[h+1],w=(1-m)*this._bevelSize,v=(x-this._minX)/this._width,N=(S-this._minY)/this._height,_=e.normals[g+0],y=e.normals[g+1],I=e.normals[b+0],A=e.normals[b+1];if(d){let j=I-_,Y=A-y;_=_+j*(1-i),y=y+Y*(1-i);let te=Math.sqrt(_*_+y*y);_/=te,y/=te}let P=this._buffer.get(u?2:4),T=P*3,C=P*2,L={i:o,fi:p,topP:P+0,topN:P+0,bottomP:P+1,bottomN:P+1};return this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=S,this._buffer.positions[T+2]=this._depth-w,this._buffer.normals[T+0]=_*f,this._buffer.normals[T+1]=y*f,this._buffer.normals[T+2]=m,this._buffer.uvs[C+0]=v,this._buffer.uvs[C+1]=N,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=S,this._buffer.positions[T+5]=w,this._buffer.normals[T+3]=_*f,this._buffer.normals[T+4]=y*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[C+2]=N,this._buffer.uvs[C+3]=v,u||(P+=2,T+=6,C+=4,L.topP=P+0,L.bottomP=P+1,this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=S,this._buffer.positions[T+2]=this._depth-w,this._buffer.normals[T+0]=I*f,this._buffer.normals[T+1]=A*f,this._buffer.normals[T+2]=m,this._buffer.uvs[C+0]=v,this._buffer.uvs[C+1]=N,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=S,this._buffer.positions[T+5]=w,this._buffer.normals[T+3]=I*f,this._buffer.normals[T+4]=A*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[C+2]=N,this._buffer.uvs[C+3]=v),this.vertexCache[s]=L,L}clone(){let e=new Pn(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=ci(this.userData),e}};var et=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:Oe.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 ve?(s.width!==r||s.height!==o)&&s.applySize(r,o):s=new ve(r,o).fromJSON(s),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&s.update(!1));let c=s??new ve(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 In(n.shape,o,{windingRule:s}):l=new Pn(n.shape,t,e,o,r,s),Object.assign(l,{userData:{...n,type:"VectorGeometry"}})}};import{Mesh as dT,Matrix4 as fT}from"three";import{ConeGeometry as _w}from"three";import{BufferGeometry as Sw,CylinderGeometry as ww,Float32BufferAttribute as ic,Vector2 as qt,Vector3 as Ca}from"three";var hm=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 Ai(p,a,r,o,i,s,l,c*Math.PI/180,u,u,d,f):m=new ww(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 no(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function mm(n){return new qt(n.y,-n.x)}var Ai=class extends Sw{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=[],b=[],x=0,S=r/2,w=new Ca,v=new Ca;f&&t==0&&(t=p),f&&e==0&&(e=a);let N=new qt(t,S),_=new qt(e,-S),y=null,I=null,A=null,P=null,T=N.clone().sub(_),C=0,L=0,j=0;d>0&&(C=Math.min(t,e)*(1-d),L=t-C,j=e-C);let Y=N.clone();Y.x-=C;let te=Math.PI-T.angle(),ie=T.angle(),U=Math.tan(ie/2),W=Math.tan(te/2),q=U+W,F=d?q:W,E=d?q:U;if(p=Math.min(p,(t-L)/F,T.length()/q),a=Math.min(a,(e-j)/E,T.length()/q),p>0){let V=p/U;y=N.clone().sub(new qt(V,p)),d&&(A=y.clone(),A.x-=C-q*p),N.sub(T.clone().setLength(V))}if(a>0){let V=a/W;I=_.clone().sub(new qt(V,-a)),_.add(T.clone().setLength(V)),d&&(P=I.clone(),P.x-=C-q*a,Y.sub(T.clone().setLength(V)))}T=N.clone().sub(_);let D=T.length()<.5,B=[];for(let V=0;V<=o;V++){let G=[],z=V/o,J=z*c+l,oe=new qt(Math.sin(J),Math.cos(J));P&&I?(k(G,z,oe,te,a,P,-1,!0),k(G,z,oe,ie,a,I,-1,!1)):I?($(G,oe,I.x,0,-1),k(G,z,oe,ie,a,I,-1,!1)):s||$(G,oe,e,j,-1);let se=mm(T).normalize();if(no(se,oe,w),!D)for(let re=0;re<=i;re++){let ee=re/i,Q=T.clone().multiplyScalar(ee).add(_);no(Q,oe,v),h.push(v.x,v.y,v.z),g.push(w.x,w.y,w.z),b.push(z,.5+v.y/r),G.push(x++)}if(A&&y?(k(G,z,oe,te,p,y,1,!1),k(G,z,oe,ie,p,A,1,!0)):y?(k(G,z,oe,te,p,y,1,!1),$(G,oe,y.x,0,1)):s||$(G,oe,t,L,1),d&&!D){let re=mm(T).multiplyScalar(-1).normalize();no(re,oe,w);for(let ee=0;ee<=i;ee++){let Q=ee/i,K=T.clone().multiplyScalar(-Q).add(Y);no(K,oe,v),h.push(v.x,v.y,v.z),g.push(w.x,w.y,w.z),b.push(z,.5+v.y/r),G.push(x++)}}d&&!s&&G.push(G[0]),B.push(G)}for(let V=0;V<B.length-1;V++)for(let G=0;G<B[0].length-1;G++){if(s&&d&&G==i)continue;let z=B[V][G],J=B[V+1][G],oe=B[V+1][G+1],se=B[V][G+1],re=h[oe*3+0],ee=h[oe*3+2];m.push(z,J,se),(re!=0||ee!=0)&&m.push(J,oe,se)}c<Math.PI*2&&(H(-1,B[0],l),H(1,B[B.length-1],l+c)),this.setIndex(m),this.setAttribute("position",new ic(h,3)),this.setAttribute("normal",new ic(g,3)),this.setAttribute("uv",new ic(b,2));function k(V,G,z,J,oe,se,re,ee){for(let Q=0;Q<u+1;Q++){let K=Q/u,fe=re<0?K:1-K;ee&&(fe-=1),fe*=J;let pe=new qt(Math.sin(fe),Math.cos(fe)*re),ye=pe.clone().multiplyScalar(oe).add(se);no(ye,z,v),h.push(v.x,v.y,v.z),no(pe,z,w),g.push(w.x,w.y,w.z),b.push(G,.5+v.y/r),V.push(x++)}}function $(V,G,z,J,oe){let se=new Ca,re=new qt,ee=[z,J];oe<0&&ee.reverse();for(let Q of ee)re.set(Q,S*oe),no(re,G,se),h.push(se.x,se.y,se.z),g.push(0,oe,0),b.push(.5,.5),V.push(x++)}function H(V,G,z){let J=new qt(Math.sin(z),Math.cos(z)),oe=new qt(-Math.cos(z),Math.sin(z)),se=new Ca,re=V<0?(K,fe,pe)=>m.push(K,fe,pe):(K,fe,pe)=>m.push(K,pe,fe),ee=new qt((t+e+L+j)/4,0);no(ee,J,se),h.push(se.x,se.y,se.z),g.push(oe.x,0,oe.y),b.push(.5,.5);let Q=x++;for(let K of G){let fe=h.slice(K*3,K*3+3);h.push(...fe),g.push(oe.x,0,oe.y);let pe=b.slice(K*2,K*2+2);b.push(...pe),x++}for(let K=Q+1;K<x-1;K++)re(Q,K,K+1);re(Q,x-1,Q+1)}}};var gm=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 Ai(0,t/2,r,o,i,s,l,c*Math.PI/180,p,a,u,0,!0):d=new _w(t/2,r,o,i,s),d.scale(1,1,e/t),Object.assign(d,{userData:{...n,type:"ConeGeometry"}})}};import{BoxGeometry as Tw,BufferGeometry as Aw,Float32BufferAttribute as sc,Vector3 as Ni}from"three";var ym=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 Tw(t,e,r,o,i,s):p=new lc(t,e,r,o,i,s,l,c),Object.assign(p,{userData:{...n,type:"CubeGeometry"}})}},ac=Math.PI/2,lc=class extends Aw{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&&(b("z","y","x",-1,-1,1,r,e,t,s,0),b("z","y","x",1,-1,-1,r,e,t,s,1),b("z","y","x",-1,1,-1,r,e,t,s,1),b("z","y","x",1,1,1,r,e,t,s,0),b("x","y","z",-1,-1,-1,t,e,r,o,0),b("x","y","z",1,-1,1,t,e,r,o,1),b("x","y","z",-1,1,1,t,e,r,o,0),b("x","y","z",1,1,-1,t,e,r,o,1),b("y","x","z",-1,-1,1,e,t,r,i,0),b("y","x","z",1,-1,-1,e,t,r,i,1),b("y","x","z",1,1,1,e,t,r,i,1),b("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 sc(u,3)),this.setAttribute("normal",new sc(d,3)),this.setAttribute("uv",new sc(f,2));function g(S,w,v,N,_,y,I,A,P,T,C){let L=(y-2*l)/P,j=(I-2*l)/T,Y=y/2-l,te=I/2-l,ie=A/2,U=P+1,W=T+1,q=0,F=0,E=new Ni;for(let D=0;D<W;D++){let B=D*j-te;for(let k=0;k<U;k++){let $=k*L-Y;E[S]=$*N,E[w]=B*_,E[v]=ie,u.push(E.x,E.y,E.z),E[S]=0,E[w]=0,E[v]=A>0?1:-1,d.push(E.x,E.y,E.z),f.push(k/P),f.push(1-D/T),q+=1}}for(let D=0;D<T;D++)for(let B=0;B<P;B++){let k=m+B+U*D,$=m+B+U*(D+1),H=m+(B+1)+U*(D+1),V=m+(B+1)+U*D;a.push(k,$,V),a.push($,H,V),F+=6}p.addGroup(h,F,C),h+=F,m+=q}function b(S,w,v,N,_,y,I,A,P,T,C){let L=(I-2*l)/T,j=I/2-l,Y=A/2-l,te=P/2,ie=T+1,U=0,W=0,q=new Ni,F=new Ni;for(let E=0;E<c+1;E++){let D=E/c*ac,B=Math.sin(D)*l,k=(1-Math.cos(D))*l,$=Math.sin(D),H=Math.cos(D);q[w]=(Y+B)*_,q[v]=(te-k)*y,F[S]=0,F[w]=$*Math.sign(q[w]),F[v]=H*Math.sign(q[v]);for(let V=0;V<ie;V++){let G=V*L-j;q[S]=G*N,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 E=0;E<c;E++)for(let D=0;D<T;D++){let B=m+D+ie*E,k=m+D+ie*(E+1),$=m+(D+1)+ie*(E+1),H=m+(D+1)+ie*E;a.push(B,k,H),a.push(k,$,H),W+=6}p.addGroup(h,W,C),h+=W,m+=U}function x(S,w,v){let N=new Ni,_=new Ni(t/2,e/2,r/2);_.subScalar(l);let y=[],I=S*w*v>0?(P,T,C)=>a.push(P,T,C):(P,T,C)=>a.push(P,C,T);for(let P=0;P<=c;P++){let T=[],C=ac*(1-P/c),L=Math.cos(C),j=Math.sin(C),Y=0;for(let te=0;te<=P;te++){let ie=Math.cos(Y),U=Math.sin(Y);N.x=L*ie,N.y=j,N.z=L*U;let W=_.clone().addScaledVector(N,l);u.push(S*W.x,w*W.y,v*W.z),d.push(S*N.x,w*N.y,v*N.z),f.push(0,0),T.push(m++),Y+=ac/P}y.push(T)}let A=y.length-1;for(let P=0;P<A;P++){let T=y[P],C=y[P+1],L=T.length-1;I(T[0],C[1],C[0]);for(let j=1;j<=L;j++)I(T[j-1],T[j],C[j]),I(T[j],C[j+1],C[j])}}}};import{BufferGeometry as Nw,Float32BufferAttribute as cc,Triangle as Iw,Vector3 as Vr,Vector2 as uc}from"three";var io=class extends Nw{constructor(t=[],e=[],r="",o=1,i=.2,s=4){super(),this.type="PolyhedronGeometryRound";let l=[],c=[],p=[];a(),u(),this.setAttribute("position",new cc(l,3)),this.setAttribute("normal",new cc(p,3)),this.setAttribute("uv",new cc(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 Vr,h=m.clone(),g=new Iw,b=i*o,x=o-b,S=s+1,w=new Vr,v=(U,W)=>w.subVectors(U,W).normalize(),N=(U,W)=>Array(U).fill(void 0).map(W),_=N(t.length/3,(U,W)=>new Vr().fromArray(t,W*3).setLength(o)),y=[],I=1e6;for(let U=0;U<_.length;U++){let W=_[U],q=[],F,E,D,B=1e10,k=-1;for(;(k=e.indexOf(U,k+1))!=-1;){let G=k-k%3;F=e[G+(k+1)%3],E=e[G+(k+2)%3],D=W.distanceToSquared(_[F]),B=Math.min(B,D),q.push([F,E,D])}B+=1e-6;let $=[],H=0,V=q.length;for(let G=0;G<V;G++){[F,E,D]=q[H];let z=y[F]?.includes(U)==!0;D<=B&&$.push(F+ +z*I),H=q.findIndex(J=>J[0]==E)}y.push($)}let A=[];{let U=0,W=0,q,F,E=f==3;for(let D=0;D<=s;D++){q=D*(D+1)/2,F=(D+1)*(D+2)/2;for(let B=0;B<s-D;B++)[U,W]=[q+B+D+2,F+B+D+3],A.push(q,F,...E?[W,q]:[U,F],W,U),[q,F]=[U,W];A.push(q,F,q+s+2)}}let P=m.clone(),T=m.clone(),C=m.clone(),L=m.clone(),j=m.clone(),Y=[],te=N(_.length,()=>N(f,()=>m.clone()));for(let U=0;U<_.length;U++){m.copy(_[U]).normalize(),P.copy(m).multiplyScalar(x);let W=y[U];for(let $=0;$<W.length;$++){let H=W[$],V=W[($+1)%f];g.setFromPointsAndIndices(_,U,H%I,V%I),g.b.sub(g.a).setLength(1e10).add(g.a),g.c.sub(g.a).setLength(1e10).add(g.a),g.closestPointToPoint(P,te[U][$])}let q=[],F=[],E=[],D=new Vr;s==0&&[...te[U]].reduce(($,H)=>$.add(H),D).multiplyScalar(1/f);for(let $=0;$<f;$++){let H=[],V=($-1+f)%f,G=te[U][V],z=te[U][$];m.copy(G).sub(P),h.copy(z).sub(P);let J=P.angleTo(m),oe=m.angleTo(h),se=Math.cos(J)*b;s==0?T.copy(D):T.copy(P).setLength(x+se),F.push(se);let re=[T,G,z];for(let ee=0;ee<2;ee++){let Q=re[ee],K=re[ee+1];L.subVectors(Q,P),j.subVectors(K,P),C.crossVectors(L,j).normalize();for(let fe=0;fe<S;fe++){let pe=[J,oe][ee]*fe/S;m.copy(L).applyAxisAngle(C,pe).add(P),q.push(m.clone()),ee&&(v(m,P),H.push([fe==0?Q:m.clone(),w.clone()]))}ee&&(v(K,P),H.push([K,w.clone()]))}E.push(H)}Y.push(E);let B=2*S,k=2;for(let $=0;$<f;$++){let H=B*$,V=B*(($+1)%f),G=[q[H]];for(let J=1;J<S;J++){L=q[H+J],j=q[V+J],G.push(L);for(let oe=1,se=J-k+1;oe<=se;oe++)m.lerpVectors(L,j,oe/(se+1)),m.sub(P).setLength(F[$]).add(P),G.push(m.clone());G.push(j)}for(let J=0;J<S;J++)G.push(q[J+S+H]);G.push(q[V+S]);let z=A.map(J=>G[J]);l.push(...z.map(J=>[J.x,J.y,J.z]).flat()),p.push(...z.map(J=>(v(J,P),[w.x,w.y,w.z])).flat())}}let ie=[];for(let U=0;U<y.length;U++)for(let W=0;W<f;W++){let q=y[U][W];if(q<I){let F=y[q].findIndex(B=>B%I==U),E=Y[U][W],D=Y[q][F];for(let B=0;B<S;B++){let k=E[B],$=D[S-B],H=E[B+1],V=D[S-(B+1)];[k,$,H,H,$,V].forEach(G=>{l.push(G[0].x,G[0].y,G[0].z),p.push(G[1].x,G[1].y,G[1].z)})}ie.push(E[0][0],D[S][0],E[S][0],D[0][0])}}for(;ie.length;){let U,W,q,F;[U,W]=ie.splice(0,2);let E=[U];for(;U!=W;)E.push(W),q=ie.indexOf(W),F=q%2,W=ie.splice(q-F,2)[1-F];w.subVectors(E[0],E[1]).cross(m.subVectors(E[0],E[2])).normalize();let D=w.dot(E[0])<0;D&&w.negate();for(let B=1;B<=E.length-2;B++)[E[B+ +D],E[B+1-+D],E[0]].forEach(k=>{l.push(k.x,k.y,k.z),p.push(w.x,w.y,w.z)})}}function u(){let d=new Vr;for(let _=0;_<l.length;_+=3){d.x=l[_+0],d.y=l[_+1],d.z=l[_+2];let y=v(d)/2/Math.PI+.5,I=N(d)/Math.PI+.5;c.push(y,1-I)}let f=new Vr,m=new Vr,h=new Vr,g=new Vr,b=new uc,x=new uc,S=new uc,w=(_,y,I,A)=>{A<0&&_.x===1&&(c[y]=_.x-1),I.x===0&&I.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]),b.set(c[y+0],c[y+1]),x.set(c[y+2],c[y+3]),S.set(c[y+4],c[y+5]),g.copy(f).add(m).add(h).divideScalar(3);let I=v(g);w(b,y+0,f,I),w(x,y+2,m,I),w(S,y+4,h,I)}for(let _=0;_<c.length;_+=6){let y=c[_+0],I=c[_+2],A=c[_+4],P=Math.max(y,I,A),T=Math.min(y,I,A);P>.9&&T<.1&&(y<.2&&(c[_+0]+=1),I<.2&&(c[_+2]+=1),A<.2&&(c[_+4]+=1))}function v(_){return Math.atan2(_.z,-_.x)}function N(_){return Math.atan2(-_.y,Math.sqrt(_.x*_.x+_.z*_.z))}}}static fromJSON(t){return new io(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};import{DodecahedronGeometry as Pw}from"three";var xm=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 Ii(t*.5,i,s):new Pw(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"DodecahedronGeometry"}})}},Ii=class extends io{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 Ii(t.radius,t.corner,t.cornerSides)}};var dc=Math.PI*2;function pc({x:n,y:t},e,r,o,i){return{x:n*e+o,y:t*r+i}}function Ow(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 bm(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 Cw(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,b=h+(n+e)/2,x=g+(t+r)/2,S=(s-h)/o,w=(l-g)/i,v=(-s-h)/o,N=(-l-g)/i,_=bm(1,0,S,w),y=bm(S,w,v,N);return!p&&y>0&&(y-=dc),p&&y<0&&(y+=dc),{centerx:b,centery:x,ang1:_,ang2:y}}function vm({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=Cw(n,t,e,r,o,i,p,a,s,l),{ang1:f,ang2:m}=d,{centerx:h,centery:g}=d,b=Math.abs(m)/(dc/4);Math.abs(1-b)<1e-7&&(b=1);let x=Math.max(Math.ceil(b),1);m/=x;for(let S=0;S<x;S++)c.push(Ow(f,m)),f+=m;return c.map(S=>{let{x:w,y:v}=pc(S[0],o,i,h,g),{x:N,y:_}=pc(S[1],o,i,h,g),{x:y,y:I}=pc(S[2],o,i,h,g);return{x1:w,y1:v,x2:N,y2:_,x:y,y:I}})}import{MathUtils as wm,Vector2 as _m}from"three";var Tm=Math.PI*2,Am=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 ve?n.shape:new ve,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=Mw(p,a,u,o*Math.PI/180,r,i);p.isClosed=!0,p.update();let f=et.create({shape:p,parameters:{subdivisions:d,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(f,{userData:{...n,type:"EllipseGeometry"}})}};function Mw(n,t,e,r,o,i){if(r>=Tm)return o>30||o%4===0?(Ew(n,t,e,i),Math.round(o/4)):Sm(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=vm({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?Lw(n,s.x,s.y,p,o,t,e,i):Sm(n,r,o,t,e,i)}function Lw(n,t,e,r,o,i,s,l){let c=Math.round(o/r.length);n.addPoint(On(t,e));for(let p=0,a=r.length;p<a;p++){let u=r[p],d=n.points[p],f=On(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?Nm(n,i,s,l):n.addPoint(On(0,0)),c}function Sm(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(On(p,a))}return t<Tm?i>0?Nm(n,r,o,i):n.addPoint(On(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&Im(n,r,o,i)),1}function Ew(n,t,e,r=0,o=0,i=0){let s=.5522847498,l=t*s,c=e*s;n.addPoint(Ma(o-t,i,o-t,i-c,o-t,i+c)),n.addPoint(Ma(o,i+e,o-l,i+e,o+l,i+e)),n.addPoint(Ma(o+t,i,o+t,i+c,o+t,i-c)),n.addPoint(Ma(o,i-e,o+l,i-e,o-l,i-e)),r>0&&Im(n,t,e,r)}function On(n,t){return new Wt(wm.generateUUID(),new _m(n,t))}function Ma(n,t,e,r,o,i){let s=On(n,t);return s.controls[0].position.set(e,r),s.controls[1].position.set(o,i),s}function Nm(n,t,e,r){Pm(n,t,e,r).forEach(i=>n.addPoint(i))}function Im(n,t,e,r){let o=Pm(n,t,e,r),i=new ve;o.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function Pm(n,t,e,r){let o=r*t/100,i=o*(Math.abs(e)/Math.abs(t)),s=new _m(o/t,i/e),l=n.points.map(c=>{let p=c.clone();return p.uuid=wm.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}import{BufferGeometry as Bw,Float32BufferAttribute as fc,Vector3 as Om}from"three";var Cm=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 Pi(!1,t,e,r,o,i,s,l,c,p,a,u);return Object.assign(d,{userData:{...n,type:"HelixGeometry"}})}},Pi=class extends Bw{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 Om,h=new Om,g=m(),b=m(),x=m(),S,w,v,N,_,y,I,A,P=m(),T=m(),C=m(),L=m(),j=m(),Y=m(),te=m(),ie=m(),U=r-2*c+.001,W=U/s,q=Math.ceil(l*s),F=q+1,E=U/q,D=-U/2,B=a+1,k=2*Math.PI/a,$=Math.PI/2/d,H=.01,V=Math.min((1-u/100)*c,c-H),G=c-V,z=0,J=2,oe=d*J+J,se=B*oe/J,re=se+B*F,ee=B*(F+oe),[Q,K,fe]=[3,3,2].map(Re=>Array(ee*Re).fill(0)),pe=[],ye=i-c;function $e(Re,wt){let Jt=Math.PI/2;y=wt*E,A=2*Math.PI*(y%W)/W+Jt,y+=D,I=Math.sin(A)*ye,_=Math.cos(A)*ye,t?Re.set(_,I,y):Re.set(_,y,I)}$e(h,-1e-10),$e(g,0),P.copy(h),$e(h,1);let _e=h.distanceTo(g),Ae=G+V,Pe=_e*q+2*Ae,Pt=V,Ur=Pe-Ae;for(let Re=0;Re<=q;Re++){$e(b,Re),ie.subVectors(b,P).normalize(),P.copy(b),Y.copy(b).setComponent(+t+1,0).normalize(),te.crossVectors(ie,Y).normalize();let wt=Re===0,Jt=Re===q,Sg=wt?3*Math.PI/2:$,wg=wt?Pt:Ur,_g=wt?B:re,Tg=wt?0:ee-B,Ag=ie.clone().multiplyScalar(wt?-G:G).add(b),Ng=ie.clone().multiplyScalar(wt?-1:1).normalize();for(let Nr=0;Nr<B;Nr++){let lu=Nr*k;if(T.addVectors(h.copy(Y).multiplyScalar(c*Math.cos(lu)),g.copy(te).multiplyScalar(c*Math.sin(lu))),C.copy(T).normalize(),wt||Jt){f||(z=Tg+Nr,[0,1,2].forEach(dt=>{Q[z*3+dt]=Ag.getComponent(dt),K[z*3+dt]=Ng.getComponent(dt)}),fe[z*2]=+Jt,fe[z*2+1]=Nr/a),g.copy(C).multiplyScalar(V),x.addVectors(b,g);for(let dt=0;dt<d;dt++){let il=dt*$+Sg;L.addVectors(h.copy(ie).multiplyScalar(G*Math.sin(il)),g.copy(C).multiplyScalar(G*Math.cos(il))),j.copy(L).normalize(),g.addVectors(x,L),L.normalize(),z=_g+dt*B+Nr,[0,1,2].forEach(cs=>{Q[z*3+cs]=g.getComponent(cs),K[z*3+cs]=j.getComponent(cs)});let Ig=+wt+Math.sin(il);fe[z*2]=(wg+G*Ig)/Pe,fe[z*2+1]=Nr/a}}g.addVectors(b,T),z=se+Re*B+Nr,[0,1,2].forEach(dt=>{Q[z*3+dt]=g.getComponent(dt),K[z*3+dt]=C.getComponent(dt)}),fe[z*2]=(Ae+Re*_e)/Pe,fe[z*2+1]=Nr/a}}let St=F+2*d+J,Eo=1,[as,ls]=f?[Eo,Eo+F-1]:[0,St-1];for(let Re=as;Re<=ls-1;Re++){let wt=f&&Re===ls-1;for(let Jt=0;Jt<B-1;Jt++)S=Re*B+Jt,w=S+1,v=(wt?Jt:S)+B,N=(wt?Jt+1:w)+B,Re===0?pe.push(w,N,v):Re===St-2?pe.push(S,w,v):pe.push(S,w,v,w,N,v)}this.setIndex(pe),this.setAttribute("position",new fc(Q,3)),this.setAttribute("normal",new fc(K,3)),this.setAttribute("uv",new fc(fe,2))}};import{IcosahedronGeometry as Dw}from"three";var Mm=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 Oi(t*.5,i,s):new Dw(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"IcosahedronGeometry"}})}},Oi=class extends io{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 Oi(t.radius,t.corner,t.cornerSides)}};import{LatheGeometry as Gw,Shape as Rw}from"three";var Lm=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 Rw;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 Gw(o.extractPoints(r).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};import{BufferGeometry as Vm,BufferGeometryLoader as $w,Vector3 as Yw,BoxGeometry as Fm}from"three";import{BufferGeometry as kw,Vector2 as gc,Vector3 as Rm}from"three";import{Box3 as Vw,BufferAttribute as Ci,BufferGeometry as Em,Color as Dm,EventDispatcher as Fw,Float32BufferAttribute as Cn,Matrix3 as Bm,Matrix4 as Gm,MathUtils as zw,Object3D as jw,Sphere as Uw,Vector2 as Vt,Vector3 as it}from"three";var mr=new Gm,mc=new jw,La=new it,so=class extends Fw{constructor(){super(),this.uuid=zw.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 Bm().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 mr.makeRotationX(t),this.applyMatrix4(mr),this}rotateY(t){return mr.makeRotationY(t),this.applyMatrix4(mr),this}rotateZ(t){return mr.makeRotationZ(t),this.applyMatrix4(mr),this}translate(t,e,r){return mr.makeTranslation(t,e,r),this.applyMatrix4(mr),this}scale(t,e,r){return mr.makeScale(t,e,r),this.applyMatrix4(mr),this}lookAt(t){return mc.lookAt(t),mc.updateMatrix(),this.applyMatrix4(mc.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 it().fromBufferAttribute(i,d)),l!==void 0&&e.colors.push(new Dm().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()],b=s===void 0?[]:[new it().fromBufferAttribute(s,d),new it().fromBufferAttribute(s,f),new it().fromBufferAttribute(s,m)],x=new Mn(d,f,m,b,g,h);e.faces.push(x),c!==void 0&&e.faceVertexUvs[0].push([new Vt().fromBufferAttribute(c,d),new Vt().fromBufferAttribute(c,f),new Vt().fromBufferAttribute(c,m)]),p!==void 0&&e.faceVertexUvs[1].push([new Vt().fromBufferAttribute(p,d),new Vt().fromBufferAttribute(p,f),new Vt().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,b=m+h;g<b;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(La).negate(),this.translate(La.x,La.y,La.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,r=e===0?1:1/e,o=new Gm;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 it,e=new it;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 it;if(t){let r=new it,o=new it;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 so;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 it,a={a:new it,b:new it,c:new it};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 Vw),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Uw),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 Bm().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,b=m.vertexNormals,x=m.vertexColors,S=new Mn(m.a+i,m.b+i,m.c+i);S.normal.copy(m.normal),o!==void 0&&S.normal.applyMatrix3(o).normalize();for(let w=0,v=b.length;w<v;w++)h=b[w].clone(),o!==void 0&&h.applyMatrix3(o).normalize(),S.vertexNormals.push(h);S.color.copy(m.color);for(let w=0,v=x.length;w<v;w++)g=x[w],S.vertexColors.push(g.clone());S.materialIndex=m.materialIndex+r,c.push(S)}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 b=m[h],x=[];for(let S=0,w=b.length;S<w;S++)x.push(b[S].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 it(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,b=!1,x=this.faceVertexUvs[0][m]!==void 0,S=h.normal.length()>0,w=h.vertexNormals.length>0,v=h.color.r!==1||h.color.g!==1||h.color.b!==1,N=h.vertexColors.length>0,_=0;if(_=a(_,0,0),_=a(_,1,g),_=a(_,2,b),_=a(_,3,x),_=a(_,4,S),_=a(_,5,w),_=a(_,6,v),_=a(_,7,N),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(S&&r.push(u(h.normal)),w){let y=h.vertexNormals;r.push(u(y[0]),u(y[1]),u(y[2]))}if(v&&r.push(d(h.color)),N){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 so().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 b=m[h],x=[];for(let S=0,w=b.length;S<w;S++){let v=b[S];x.push(v.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 b=s[d].vertexNormals[h],x={};x.a=b.a.clone(),x.b=b.b.clone(),x.c=b.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 hc().fromGeometry(this),e=new Em,r=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",new Ci(r,3).copyVector3sArray(t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",new Ci(o,3).copyVector3sArray(t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",new Ci(o,3).copyColorsArray(t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",new Ci(o,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",new Ci(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 Cn(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 Cn(t.skinIndices.length*4,4);e.setAttribute("skinIndex",o.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){let o=new Cn(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 Em,r=t.geometry;if(t.isPoints||t.isLine){let o=new Cn(r.vertices.length*3,3),i=new Cn(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 Cn(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}};so.prototype.isGeometry=!0;var hc=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 b=0;b<c;b++)p[b]={name:l[b].name,data:[]};this.morphTargets.position=p}let a=t.morphNormals,u=a.length,d;if(u>0){d=[];for(let b=0;b<u;b++)d[b]={name:a[b].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 b=0;b<e.length;b++){let x=e[b];this.vertices.push(r[x.a],r[x.b],r[x.c]);let S=x.vertexNormals;if(S.length===3)this.normals.push(S[0],S[1],S[2]);else{let v=x.normal;this.normals.push(v,v,v)}let w=x.vertexColors;if(w.length===3)this.colors.push(w[0],w[1],w[2]);else{let v=x.color;this.colors.push(v,v,v)}if(i===!0){let v=o[0][b];v!==void 0?this.uvs.push(v[0],v[1],v[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",b),this.uvs.push(new Vt,new Vt,new Vt))}if(s===!0){let v=o[1][b];v!==void 0?this.uvs2.push(v[0],v[1],v[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",b),this.uvs2.push(new Vt,new Vt,new Vt))}for(let v=0;v<c;v++){let N=l[v].vertices;p[v].data.push(N[x.a],N[x.b],N[x.c])}for(let v=0;v<u;v++){let N=a[v].vertexNormals[b];d[v].data.push(N.a,N.b,N.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}},Mn=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 it,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new Dm,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 Hw=["a","b","c"];function Ww(n,t){switch(t){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function yc(n,t,e){let r=Math.min(n,t),o=Math.max(n,t),i=r+"_"+o;return e.get(i)}function xc(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 qw(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],xc(s.a,s.b,n,r,s,e),xc(s.b,s.c,n,r,s,e),xc(s.c,s.a,n,r,s,e)}function Ea(n,t,e,r,o){n.push(new Mn(t,e,r,void 0,void 0,o))}function Ln(n,t){return Math.abs(t-n)/2+Math.min(n,t)}function Ba(n,t,e,r){n.push([t.clone(),e.clone(),r.clone()])}var Da=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof kw?t=new so().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 Rm,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;qw(c,p,d,f);let m=[],h,g,b,x,S,w,v;for(let H of Array.from(f.keys())){for(g=f.get(H),b=new Rm,S=3/8,w=1/8,v=g.faces.length,v!=2&&(S=.5,w=0,v!=1),b.addVectors(g.a,g.b).multiplyScalar(S),e.set(0,0,0),s=0;s<v;s++){for(x=g.faces[s],l=0;l<3&&(h=c[Ww(x,Hw[l])],!(h!==g.a&&h!==g.b));l++);h&&e.add(h)}e.multiplyScalar(w),b.add(e),g.newEdge=m.length,m.push(b)}let N,_,y,I,A,P,T,C=[];for(o=0,i=c.length;o<i;o++){for(P=c[o],A=d[o].edges,r=A.length,r==3?N=3/16:r>3&&(N=3/(8*r)),_=1-r*Number(N),y=N,r<=2&&(r==2?(_=3/4,y=1/8):r==1||r==0),T=P.clone().multiplyScalar(_),e.set(0,0,0),s=0;s<r;s++)I=A[s],h=I.a!==P?I.a:I.b,e.add(h);e.multiplyScalar(Number(y)),T.add(e),C.push(T)}let L=C.concat(m),j=C.length,Y,te,ie,U=[],W=[],q,F,E,D,B=new gc,k=new gc,$=new gc;for(o=0,i=p.length;o<i;o++)x=p[o],Y=Number(yc(x.a,x.b,f).newEdge)+j,te=Number(yc(x.b,x.c,f).newEdge)+j,ie=Number(yc(x.c,x.a,f).newEdge)+j,Ea(U,Y,te,ie,x.materialIndex),Ea(U,x.a,Y,ie,x.materialIndex),Ea(U,x.b,te,Y,x.materialIndex),Ea(U,x.c,ie,te,x.materialIndex),u&&(q=a[o],F=q[0],E=q[1],D=q[2],B.set(Ln(F.x,E.x),Ln(F.y,E.y)),k.set(Ln(E.x,D.x),Ln(E.y,D.y)),$.set(Ln(F.x,D.x),Ln(F.y,D.y)),Ba(W,B,k,$),Ba(W,F,B,$),Ba(W,E,k,B),Ba(W,D,$,k));t.vertices=L,t.faces=U,u&&(t.faceVertexUvs[0]=W)}};var ke=new Yw,zm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=n.geometry??t?.geometry??new Vm().copy(new Fm(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(ke),r={width:ke.x,height:ke.y,depth:ke.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 Vm().copy(new Fm(100,100,100)),s=i.userData.parameters;s===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(ke)):ke.set(s.width,s.height,s.depth),(t!==ke.x||e!==ke.y||r!==ke.z)&&i.scale(ke.x===0?1:t/ke.x,ke.y===0?1:e/ke.y,ke.z===0?1:r/ke.z);let l=i.originalGeometry;return o>0?(l===void 0||s?.subdivisions!==o)&&(l===void 0&&(l=i),i=new Da(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 $w(e).load(n,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(ke);let s=100/ke.x;Object.assign(i.parameters,{width:100,height:ke.y*s,depth:ke.z*s}),t(this.build(i))})}};var jm=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 ve?n.shape:new ve,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,b=u+Math.sin(g)*p,x=d+Math.cos(g)*a;c.addPoint(c.createPoint(b,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=et.create({shape:c,parameters:{roundness:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(m,{userData:{...n,type:"PolygonGeometry"}})}};import{BufferGeometry as Xw,Float32BufferAttribute as bc,Vector2 as hr,Vector3 as Ke}from"three";var Um=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 Sc(t*.5,e,o,i,s,l,c);return p.scale(1,1,r/t),Object.assign(p,{userData:{...n,type:"PyramidGeometry"}})}};function Mi(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function vc(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 Kw(n,t,e){let r=n.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var Sc=class extends Xw{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,b=(r-2)*Math.PI/r,x=Math.PI-b,S=new Ke(0,-f,0),w=new Ke(0,f,0),v=new hr(t,-f),N=new hr(h,-f),_=new hr(0,w.y).sub(N),y=new hr(0,w.y).sub(v),I=new hr(_.y,-_.x).normalize(),A=new hr(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 C;{let W=new Ke(I.x,I.y,0),q=new Ke(Math.cos(g)*W.x,W.y,Math.sin(g)*W.x);C=W.angleTo(q)}let L=s/Math.tan((Math.PI-_.angle())/2),j=s/Math.tan((Math.PI-C)/2),Y=new Ke;if(!i){p.push(S.x,S.y,S.z),a.push(0,-1,0),u.push(0,0);let W=d++,q=[],F=v.clone(),E=L/Math.cos(Math.PI/r);F.x-=E;for(let D=0;D<r;D++){let B=D/r*Math.PI*2+m,k=new hr(Math.sin(B),Math.cos(B));Mi(F,k,Y),p.push(Y.x,Y.y,Y.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 te=[];{let W=new Ke,q=new Ke,F=new Ke,E=new Ke,D=new Ke,B=new Ke;for(let k=0;k<r;k++){let $=k/r*Math.PI*2+m,H=(k+.5)/r*Math.PI*2+m,V=(k+1)/r*Math.PI*2+m,G=new hr(Math.sin($),Math.cos($)),z=new hr(Math.sin(H),Math.cos(H)),J=new hr(Math.sin(V),Math.cos(V));Mi(v,G,q),Mi(v,J,F),Mi(I,z,W),vc(w,q,F,j,j,E),p.push(E.x,E.y,E.z),vc(q,w,F,j,L,D),p.push(D.x,D.y,D.z),vc(F,q,w,L,j,B),p.push(B.x,B.y,B.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 oe=d++,se=d++,re=d++;if(c.push(oe,se,re),s>0){{let K=q.clone().add(F).multiplyScalar(.5),fe=w.clone().sub(K).normalize(),ye=S.clone().sub(K).normalize().add(fe).normalize().multiplyScalar(-1),$e=B.clone().sub(D);ie(K,$e,ye,_.angle())}let ee,Q;{let K=new Ke;Mi(A,J,K);let fe=B.clone().add(E).multiplyScalar(.5);fe=Kw(fe,F,w);let pe=B.clone().sub(E);[ee,Q]=ie(fe,pe,K,C,E.y)}{let K=ee,fe=K.clone().setY(0).normalize(),pe=new Ke(0,-1,0),ye=fe.clone().cross(pe);U(K,fe,pe,ye)}te.concat(Q);{let K=_.angle(),fe=Math.PI-K,pe=w.clone();pe.y-=s/Math.sin(K-Math.PI/2);let ye=new Ke,$e=[];for(let Ae=0;Ae<l;Ae++){let Pe=[],Pt=Math.PI/2-fe*Ae/l,Ur=Math.cos(Pt),St=Math.sin(Pt),Eo=H;for(let as=0;as<=Ae;as++){let ls=Math.cos(Eo),Re=Math.sin(Eo);W.x=Ur*Re,W.y=St,W.z=Ur*ls,ye.copy(pe).addScaledVector(W,s),p.push(ye.x,ye.y,ye.z),a.push(W.x,W.y,W.z),u.push(0,0),Pe.push(d++),Eo+=Math.PI*2/Ae/r}$e.push(Pe)}Q.reverse(),$e.push(Q);let _e=$e.length-1;for(let Ae=0;Ae<_e;Ae++){let Pe=$e[Ae],Pt=$e[Ae+1],Ur=Pe.length-1;c.push(Pt[1],Pe[0],Pt[0]);for(let St=1;St<=Ur;St++)c.push(Pe[St],Pe[St-1],Pt[St]),c.push(Pt[St+1],Pe[St],Pt[St])}}}}}this.setIndex(c),this.setAttribute("position",new bc(p,3)),this.setAttribute("normal",new bc(a,3)),this.setAttribute("uv",new bc(u,2));function ie(W,q,F,E,D){let B=-E/2,k=(Math.PI-E)/2,$=q.clone().normalize().cross(F);W.addScaledVector(F,-s/Math.sin(k));let H=new Ke,V=new Ke,G=1,z=d,J=[];for(let oe=0;oe<=l;oe++){let se=B+oe/l*E;V.set(0,0,0),V.addScaledVector($,Math.sin(se)),V.addScaledVector(F,Math.cos(se));for(let re=0;re<=G;re++){let ee=re/G-.5;if(H.copy(W),H.addScaledVector(q,ee),H.addScaledVector(V,s),D!=null){let Q=Math.max(0,H.y-D);H.addScaledVector(q,-Q/q.y)}p.push(H.x,H.y,H.z),a.push(V.x,V.y,V.z),u.push(0,0),re===0&&J.push(d),d++}}for(let oe=0;oe<l;oe++)for(let se=0;se<G;se++){let re=z+se+(G+1)*oe,ee=re+(G+1),Q=ee+1,K=re+1;c.push(re,ee,K),c.push(ee,Q,K)}return[W.clone().addScaledVector(q,.5),J]}function U(W,q,F,E){let D=Math.PI/2,B=y.angle()-D,k=[],$=new Ke,H=new Ke;for(let G=0;G<=l;G++){let z=[],J=G/l;for(let oe=0;oe<=G;oe++){let re=((G?oe/G:0)-.5)*x,ee=Math.cos(re),Q=Math.sin(re),K=Math.atan(Math.tan(B)*ee),fe=(D+K)*J,pe=Math.cos(fe),ye=Math.sin(fe);$.set(0,0,0),$.addScaledVector(q,ye*ee),$.addScaledVector(F,pe),$.addScaledVector(E,ye*Q),H.copy(W).addScaledVector($,s),p.push(H.x,H.y,H.z),a.push($.x,$.y,$.z),u.push(0,0),z.push(d++)}k.push(z)}let V=k.length-1;for(let G=0;G<V;G++){let z=k[G],J=k[G+1],oe=z.length-1;c.push(z[0],J[1],J[0]);for(let se=1;se<=oe;se++)c.push(z[se-1],z[se],J[se]),c.push(z[se],J[se+1],J[se])}}}};var km=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 ve?n.shape:new ve,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(w,v,N){return v>e&&N>r?Math.min(w*e/v,w*r/N):v>e?w*e/v:N>r?w*r/N:w}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,b=a.y;t.addPoint(t.createPoint(m,g)),t.addPoint(t.createPoint(h,g)),t.addPoint(t.createPoint(h,b)),t.addPoint(t.createPoint(m,b)),t.isClosed=!0;let x=!0;for(let w=0,v=t.points.length;w<v;w++)t.points[w].roundness=f[w],w>0&&f[w]!==f[w-1]&&(x=!1);x&&(t.roundness=f[0]),t.useCubicForRoundedCorners=i!==1,t.update();let S=et.create({shape:t,parameters:{depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(S,{userData:{...n,type:"RectangleGeometry"}})}};import{SphereGeometry as Zw}from"three";var Hm=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 Zw(.5*t,o,i,s,l,c,p);return a.scale(1,e/t,r/t),Object.assign(a,{userData:{...n,type:"SphereGeometry"}})}};import{PlaneGeometry as Qw}from"three";var Wm=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 Qw(t,e,r,o);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};import{BufferGeometry as Jw,Float32BufferAttribute as wc,Vector3 as e_}from"three";var qm=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 _c(t,e,r,o,i,s);return Object.assign(l,{userData:{...n,type:"BackdropGeometry"}})}},_c=class extends Jw{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,G=0)=>new e_(H,V,G),m=f(),h=f(),[g,b,x]=[e/2,t/2,r/2],S=-b,w=+b,[v,N,_]=[f(S,-g,+x),f(S,-g,-x),f(S,+g,-x)],y=(H,V=!1)=>Math.sin(H-Math.PI/(1+ +V)),I=(H,V=!1)=>Math.cos(H-Math.PI/(1+ +V));_.y=Math.sin(o)*e-g;let A=Math.cos(o)*e-x,P=v.z-a;o<=d?(_.z=Math.min(A,P),_.z==P&&(_.y-=(A-P)/Math.tan(d-o))):N.z=Math.min(N.z-A-x,v.z-a),m.subVectors(v,N),h.subVectors(_,N);let T=Math.min(m.length(),h.length())*i/100,C=T*Math.tan(o/2),L=T/Math.cos(o/2),j=m.clone().normalize().add(h.normalize()).setLength(L).add(N);m.set(0,y(o,!0),I(o,!0)),u.push([_,m.clone()]);let Y=(Math.PI-o)/s;for(let H=0;H<=s;H++){let V=d+o+H*Y;m.set(0,Math.sin(V)*C,Math.cos(V)*C),m.add(j),h.set(0,y(V),I(V)),u.push([m.clone(),h.clone()])}u.push([v,f(0,1,0)]);let te=Math.sin(Y/2)*C*2,ie=u.length-1,U=u[0][0].distanceTo(u[1][0]),W=u[ie-1][0].distanceTo(u[ie][0]),q=U+te*s+W;u[0].push(1);for(let H=0;H<=s;H++)u[H+1].push(1-(U+H*te)/q);u[ie].push(0);let[F,E,D]=u[0],B,k,$;for(let H=1;H<u.length;H++)[B,k,$]=u[H],l.push(S,F.y,F.z,S,B.y,B.z,w,F.y,F.z,w,F.y,F.z,S,B.y,B.z,w,B.y,B.z),c.push(0,E.y,E.z,0,k.y,k.z,0,E.y,E.z,0,E.y,E.z,0,k.y,k.z,0,k.y,k.z),p.push(0,D,0,$,1,D,1,D,0,$,1,$),[F,E,D]=[B,k,$];this.setAttribute("position",new wc(l,3)),this.setAttribute("normal",new wc(c,3)),this.setAttribute("uv",new wc(p,2))}};var $m=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 ve?n.shape:new ve,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,b=u*r/100,x=d*r/100;if(o===3&&r===50){h=2*Math.PI/o;for(let w=0;w<o;w++){let v=h*w,N=f+Math.sin(v)*u,_=m+Math.cos(v)*d;a.addPoint(a.createPoint(N,_))}}else for(let w=0;w<o;w++){let v=f+Math.cos(g)*u,N=m+Math.sin(g)*d;a.addPoint(a.createPoint(v,N)),g+=h,v=f+Math.cos(g)*b,N=m+Math.sin(g)*x,w<=o,a.addPoint(a.createPoint(v,N)),g+=h}a.isClosed=!0;for(let w=0,v=a.points.length;w<v;w++)a.points[w].roundness=i;a.roundness=i,a.update();let S=et.create({shape:a,parameters:{roundness:i,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}});return Object.assign(S,{userData:{...n,type:"StarGeometry"}})}};import{PlaneGeometry as t_}from"three";var Ym=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 t_(t,e);return Object.assign(r,{userData:{...n,type:"TextFrameGeometry"}})}};var Xm=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.round(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=r_(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 r_(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 Pi(!0,n,t,e,r,o,i,s,l,c,p,a)}import{TorusKnotGeometry as o_}from"three";var Km=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 o_(l,e,r,o,i,s);return Object.assign(c,{userData:{...n,type:"TorusKnotGeometry"}})}};var Zm=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 ve?n.shape:new ve,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=et.create({shape:c,parameters:{roundness:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s}});return Object.assign(u,{userData:{...n,type:"TriangleGeometry"}})}};import{BufferAttribute as Qm,BufferGeometry as Tc}from"three";import{mergeBufferGeometries as n_}from"three/examples/jsm/utils/BufferGeometryUtils.js";function Jm(){let n=new Tc;return n.setAttribute("position",new Qm(new Float32Array([]),3)),n.setIndex(new Qm(new Uint16Array([]),1)),n}var i_=12;var En=class extends Tc{constructor(e,r){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let o=Jm();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=s_(e,r,d),{shapes:m,charWidths:h,charCoords:g}=await r.generateShapes(f,e),b=o*.5,x=i*.5,S=m.map(N=>new ve().fromShape(N));this.vectorShapes=S;let w=S.map(N=>et.create({shape:N,parameters:{depth:s,extrudeBevelSegments:c,extrudeBevelSize:l,windingRule:s<=0?Oe.NONZERO:Oe.ODD,subdivisions:u??i_}})),v=w.length?n_(w):Jm();v.translate(-b,x,0),this.dispose(),this.wrappedText=f,this.charCoords=g,this.charWidths=h,this.deleteAttribute("extrudeNormal"),Object.entries(v.attributes).forEach(([N,_])=>{this.setAttribute(N,_)}),this.setIndex(v.index),this.computeBoundingSphere()}clone(){let e=vo(new Tc,En.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 s_(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}import{BufferGeometry as eh,BufferAttribute as th,Uint32BufferAttribute as Ac,Float32BufferAttribute as Nc,Matrix4 as c_,Vector3 as Va}from"three";import{BufferGeometryLoader as a_}from"three";function Ga(n,t){return l_(n)}function l_(n){let t={parameters:n,type:n.type};if(n.type==="VectorGeometry"){let r=ve.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 a_().parse(n));let e;try{e=Li(t)}catch(r){console.error(r)}if(!e){let r=ve.createFromState(dn.defaultData(),100,100);t.shape=r,e=Li(t)}return e}var ue;yn.then(n=>{ue=n});var rh=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),oh=new Uint32Array([0,1,2,3]),nh=new Uint8Array([4]),Ft=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&&(ue.free_bvh(e),ue.free_subdivision_surface(e));try{i=Ft.allocate(n,o)}catch(p){console.error(p,n),i=Ft.allocate({positionWASM:rh,indexWASM:oh,verticesPerFaceWASM:nh},o)}ue.set_destination_refinement_level(i,0),s=Ft.buildLevel(i,!0,c)}else i=e,n.phongAngle!==void 0&&(s=Ft.buildLevel(i,!0,c));return n.subdivisions!==void 0&&(ue.set_destination_refinement_level(i,n.subdivisions),n.subdivisions>0?l=Ft.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:Ga(n),r,o,i,s;({positions:r,triIndices:s}=Cc(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}=Mc(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=rh,r=oh,o=nh);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=ue._malloc(d),g=new Float32Array(ue.HEAPF32.buffer,h,a),b=new Uint32Array(ue.HEAPU32.buffer,h+f,u);g.set(e,0),g.set(i,e.length),g.set(s,e.length+i.length),b.set(r,0),b.set(o,r.length);let x;n?.scaleBaked?.some(w=>w!==1)&&(x=new c_().makeScale(...n.scaleBaked)),t&&(x?x.premultiply(t):x=t);let S=x?ue.alloc_subdivision_surface2(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p,x.elements):ue.alloc_subdivision_surface(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p);return ue._free(h),S}static buildLevel(n,t,e,r,o){let i=o?ue.get_mesh_data2(n,t?ue.Level.CONTROL:ue.Level.REFINED,e,o.elements):ue.get_mesh_data(n,t?ue.Level.CONTROL:ue.Level.REFINED,e),s=8,l=ue.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(4,4+4),p=0,a=ue.HEAPU32[l[p]>>2],u=ue.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=ue.HEAPU32[l[p]>>2],f=ue.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=ue.HEAPU32[l[p]>>2],h=ue.HEAPU32.subarray(m>>2,(m>>2)+c[p]);p++;let g=ue.HEAPU32[l[p]>>2],b=ue.HEAPU32.subarray(g>>2,(g>>2)+c[p]);if(p++,r===void 0){let x=new eh;if(x.setIndex(new Ac(b,1)),x.setAttribute("position",new Nc(u,3)),x.setAttribute("normal",new Nc(f,3)),t){x.setAttribute("faceMap",new Ac(h,1));let S=new Float32Array(f.length/3*4).fill(0);x.setAttribute("color",new th(S,4))}return ue.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,ue.free_mesh_data(i)}static buildControlCageWireframe(n,t,e){let r=ue.get_wireframe_data_for_base_level(n),o=4,i=ue.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(2,2+2),l=0,c=ue.HEAPU32[i[l]>>2],p=ue.HEAPF32.subarray(c>>2,(c>>2)+s[l]);l++;let a=ue.HEAPU32[i[l]>>2],u=ue.HEAPU32.subarray(a>>2,(a>>2)+s[l]);if(t===void 0){let d=new eh;d.setAttribute("position",new Nc(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 th(f,3)),d.setIndex(new Ac(u,1)),ue.free_wireframe_data_for_base_level(r),d}t.getAttribute("position").copyArray(p),t.attributes.position.needsUpdate=!0,ue.free_wireframe_data_for_base_level(r)}static updateCollabMesh(n,t,e){let r=t===0;r||ue.set_destination_refinement_level(n,t);let o=e?ue.get_topological_data2(n,r?ue.Level.CONTROL:ue.Level.REFINED,e.elements):ue.get_topological_data(n,r?ue.Level.CONTROL:ue.Level.REFINED),i=6,s=ue.HEAPU32.subarray(o>>2,(o>>2)+i),l=s.subarray(3,3+3),c=0,p=ue.HEAPU32[s[c]>>2],a=new Float32Array(ue.HEAPF32.subarray(p>>2,(p>>2)+l[c]));c++;let u=ue.HEAPU32[s[c]>>2],d=new Uint32Array(ue.HEAPU32.subarray(u>>2,(u>>2)+l[c]));c++;let f=ue.HEAPU32[s[c]>>2],m=new Uint8Array(ue.HEAPU32.subarray(f>>2,(f>>2)+l[c]));return ue.free_topological_data(o),{positions:a,indices:d,verticesPerFace:m}}};var ih=["getX","getY","getZ"];function Cc(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[ih[d]](a)*l)},`;if(u in e)i.push(e[u]);else{for(let d=0;d<3;d++)s.push(n[ih[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 Ra=new Va,Ic=new Va,Pc=new Va,Oc=new Va;function Mc(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=e.userData.parameters.spikes;if(e.userData.type==="EllipseGeometry"&&l<=24&&l%4===0&&e.userData.parameters.angle>=360){let a=s.length/2/l;s=s.filter((u,d)=>Math.floor(d/2)%a===0)}let c=0;for(let a=0;a<s.length;a+=2)c+=(s[a]-s[(a===0?s.length:a)-2])*(s[a+1]+s[(a===0?s.length:a)-1]);n.length=0;let p=0;if(c<0)for(let a=0;a<s.length;a+=2)n.push(s[a],s[a+1],0),o.push(p++);else for(let a=s.length-2;a>=0;a-=2)n.push(s[a],s[a+1],0),o.push(p++);return i.push(p),{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]){Ra.set(n[t[s]*3],n[t[s]*3+1],n[t[s]*3+2]),Ic.set(n[t[s+1]*3],n[t[s+1]*3+1],n[t[s+1]*3+2]),Pc.set(n[t[s+4]*3],n[t[s+4]*3+1],n[t[s+4]*3+2]),Oc.set(n[t[s+5]*3],n[t[s+5]*3+1],n[t[s+5]*3+2]),Ic.sub(Ra).normalize(),Pc.sub(Ra).normalize(),Oc.sub(Ra).normalize();let c=Ic.cross(Pc).dot(Oc);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 $t={};Eg($t,{calcBoolean:()=>m_,calcBooleanTopological:()=>f_,freeMeshSet:()=>y_,getMeshSet:()=>h_,transformMeshSet:()=>g_});var u_,sh=new Promise(n=>{u_=n});import{Float32BufferAttribute as ah,Sphere as p_}from"three";var ge,Bn;sh.then(n=>ge=n);function d_(n,t,e){let r,{positions:o,triIndices:i}=Cc(n.getAttribute("position"),n.getIndex()),s;if(t&&e){let{indices:l,verticesPerFace:c}=Mc(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 lh(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=ge._malloc(o);return(Number.isInteger(n[0])?new Uint32Array(ge.HEAPU32.buffer,i,t):new Float32Array(ge.HEAPF32.buffer,i,t)).set(n,0),i}function ch(n){switch(n){case 0:return ge.OP.UNION;case 1:return ge.OP.INTERSECTION;case 2:return ge.OP.A_MINUS_B;case 3:return ge.OP.B_MINUS_A;case 4:return ge.OP.SYMMETRIC_DIFFERENCE;case 5:return ge.OP.ALL;default:throw new Error("Unknown boolean operation "+n)}}function f_(n,t){Bn===void 0&&(Bn=ge.init_csg());let e=lh(n),r=ge.csg_calc_topological(Bn,e,n.length,ch(t));ge._free(e);let o=6,i=ge.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(3,3+3),l=0,c=ge.HEAPU32[i[l]>>2],p=new Float32Array(ge.HEAPF32.subarray(c>>2,(c>>2)+s[l]));l++;let a=ge.HEAPU32[i[l]>>2],u=new Uint32Array(ge.HEAPU32.subarray(a>>2,(a>>2)+s[l]));l++;let d=ge.HEAPU32[i[l]>>2],f=new Uint8Array(ge.HEAPU32.subarray(d>>2,(d>>2)+s[l]));return ge.free_mesh_data(r),{positions:p,indices:u,verticesPerFace:f}}function m_(n,t,e,r){Bn===void 0&&(Bn=ge.init_csg());let o=lh(n),i=ge.csg_calc(Bn,o,n.length,r,ch(t));ge._free(o);let s=5,l=ge.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(2,2+3),p=0,a=ge.HEAPU32[l[p]>>2],u=ge.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=ge.HEAPU32[l[p]>>2],f=ge.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=c[p];e.setAttribute("position",new ah(u,3)),e.setAttribute("normal",new ah(f,3));let h=ge.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new p_),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},ge.free_mesh_data(i),m}function h_(n,t,e){if(ge===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((b,x)=>b+x,0)+i);for(let b=0,x=0,S=0;b<g.verticesPerFace.length;b++){o[S++]=g.verticesPerFace[b];for(let w=0;w<g.verticesPerFace[b];w++)o[S++]=g.indices[x++]}}else({positions:r,faceIndices:o,nFaces:i}=d_(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=ge._malloc(a),m=new Float32Array(ge.HEAPF32.buffer,f,c),h=new Uint32Array(ge.HEAPU32.buffer,f+u,p);return m.set(r,0),h.set(o,0),ge.get_csg_mesh(f,s,f+u,l,i)}function g_(n,t){ge.transform_csg_mesh(n,t.elements)}function y_(n){ge.free_csg_mesh(n)}var Lc={ConeGeometry:gm,CubeGeometry:ym,CylinderGeometry:hm,DodecahedronGeometry:xm,EllipseGeometry:Am,HelixGeometry:Cm,IcosahedronGeometry:Mm,LatheGeometry:Lm,NonParametricGeometry:zm,PolygonGeometry:jm,PyramidGeometry:Um,RectangleGeometry:km,SphereGeometry:Hm,PlaneGeometry:Wm,BackdropGeometry:qm,StarGeometry:$m,TextFrameGeometry:Ym,TorusGeometry:Xm,TorusKnotGeometry:Km,TriangleGeometry:Zm,VectorGeometry:et},Li=n=>Lc[n.type].create(n);import{NormalBlending as aT,ShaderMaterial as lT}from"three";import{CubeReflectionMapping as O_,CubeRefractionMapping as C_,CubeUVReflectionMapping as M_,LinearEncoding as fh,sRGBEncoding as L_}from"three";var Ei=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}};import{MathUtils as x_}from"three";var Ze=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=x_.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 Ze&&(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 Ec=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}},He=new Ec;import{Vector2 as uh}from"three";import{MathUtils as b_}from"three";var le=class extends Ze{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=b_.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 Ce=class extends le{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 Qe=class extends Ce{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof uh?e:new uh(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)}};import{Vector3 as ph}from"three";var tt=class extends Ce{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof ph?e:new ph(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)}};import{Color as v_}from"three";var We=class extends v_{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 zt=class extends Ce{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof We?e:new We(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 S_=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,dh=/[a-z_0-9]+/gi,X=class extends le{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=dh.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&&He.containsKeyword(f)){let g=this.keywords[f];if(!g){let b=He.getKeywordData(f);b.cache&&(g=e.keywords[f]),g=g||He.getKeyword(f,e),b.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&&He.contains(h)&&e.include(He.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=S_.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(dh);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 w_=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Bc=class extends le{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||Bc.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=w_.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)}},be=Bc;be.PI="PI",be.PI2="PI2",be.RECIPROCAL_PI="RECIPROCAL_PI",be.RECIPROCAL_PI2="RECIPROCAL_PI2",be.LOG2="LOG2",be.EPSILON="EPSILON";var __=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
|
|
4
|
-
)*?)}`,"gim"),T_=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Dn=class extends le{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=__.exec(e);if(r){let o=r[2],i;for(;i=T_.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=r[1]}else this.name="";this.type=this.name}};var Gn=class extends le{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)}};He.addKeyword("uv",function(){return new Gn});He.addKeyword("uv2",function(){return new Gn(1)});import{LinearEncoding as A_,sRGBEncoding as N_}from"three";var Ao=class extends le{constructor(e,r){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=r??Ao.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case A_:return["Linear"];case N_:return["sRGB"];default:return[]}}generate(e,r){let o=this.input.build(e,"v4"),i=this.getType(e),s=Ao.Nodes[this.method],l=e.include(s);if(l===Ao.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=Ao.getEncodingComponents(e);this.method="LinearTo"+r[0],this.factor=r[1]}fromDecoding(e){let r=Ao.getEncodingComponents(e);this.method=r[0]+"ToLinear",this.factor=r[1]}},
|
|
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}import{BufferGeometry as eh,BufferAttribute as th,Uint32BufferAttribute as Ac,Float32BufferAttribute as Nc,Matrix4 as c_,Vector3 as Va}from"three";import{BufferGeometryLoader as a_}from"three";function Ga(n,t){return l_(n)}function l_(n){let t={parameters:n,type:n.type};if(n.type==="VectorGeometry"){let r=ve.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 a_().parse(n));let e;try{e=Li(t)}catch(r){console.error(r)}if(!e){let r=ve.createFromState(dn.defaultData(),100,100);t.shape=r,e=Li(t)}return e}var ue;yn.then(n=>{ue=n});var rh=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),oh=new Uint32Array([0,1,2,3]),nh=new Uint8Array([4]),Ft=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&&(ue.free_bvh(e),ue.free_subdivision_surface(e));try{i=Ft.allocate(n,o)}catch(p){console.error(p,n),i=Ft.allocate({positionWASM:rh,indexWASM:oh,verticesPerFaceWASM:nh},o)}ue.set_destination_refinement_level(i,0),s=Ft.buildLevel(i,!0,c)}else i=e,n.phongAngle!==void 0&&(s=Ft.buildLevel(i,!0,c));return n.subdivisions!==void 0&&(ue.set_destination_refinement_level(i,n.subdivisions),n.subdivisions>0?l=Ft.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:Ga(n),r,o,i,s;({positions:r,triIndices:s}=Cc(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}=Mc(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=rh,r=oh,o=nh);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=ue._malloc(d),g=new Float32Array(ue.HEAPF32.buffer,h,a),b=new Uint32Array(ue.HEAPU32.buffer,h+f,u);g.set(e,0),g.set(i,e.length),g.set(s,e.length+i.length),b.set(r,0),b.set(o,r.length);let x;n?.scaleBaked?.some(w=>w!==1)&&(x=new c_().makeScale(...n.scaleBaked)),t&&(x?x.premultiply(t):x=t);let S=x?ue.alloc_subdivision_surface2(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p,x.elements):ue.alloc_subdivision_surface(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p);return ue._free(h),S}static buildLevel(n,t,e,r,o){let i=o?ue.get_mesh_data2(n,t?ue.Level.CONTROL:ue.Level.REFINED,e,o.elements):ue.get_mesh_data(n,t?ue.Level.CONTROL:ue.Level.REFINED,e),s=8,l=ue.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(4,4+4),p=0,a=ue.HEAPU32[l[p]>>2],u=ue.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=ue.HEAPU32[l[p]>>2],f=ue.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=ue.HEAPU32[l[p]>>2],h=ue.HEAPU32.subarray(m>>2,(m>>2)+c[p]);p++;let g=ue.HEAPU32[l[p]>>2],b=ue.HEAPU32.subarray(g>>2,(g>>2)+c[p]);if(p++,r===void 0){let x=new eh;if(x.setIndex(new Ac(b,1)),x.setAttribute("position",new Nc(u,3)),x.setAttribute("normal",new Nc(f,3)),t){x.setAttribute("faceMap",new Ac(h,1));let S=new Float32Array(f.length/3*4).fill(0);x.setAttribute("color",new th(S,4))}return ue.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,ue.free_mesh_data(i)}static buildControlCageWireframe(n,t,e){let r=ue.get_wireframe_data_for_base_level(n),o=4,i=ue.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(2,2+2),l=0,c=ue.HEAPU32[i[l]>>2],p=ue.HEAPF32.subarray(c>>2,(c>>2)+s[l]);l++;let a=ue.HEAPU32[i[l]>>2],u=ue.HEAPU32.subarray(a>>2,(a>>2)+s[l]);if(t===void 0){let d=new eh;d.setAttribute("position",new Nc(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 th(f,3)),d.setIndex(new Ac(u,1)),ue.free_wireframe_data_for_base_level(r),d}t.getAttribute("position").copyArray(p),t.attributes.position.needsUpdate=!0,ue.free_wireframe_data_for_base_level(r)}static updateCollabMesh(n,t,e){let r=t===0;r||ue.set_destination_refinement_level(n,t);let o=e?ue.get_topological_data2(n,r?ue.Level.CONTROL:ue.Level.REFINED,e.elements):ue.get_topological_data(n,r?ue.Level.CONTROL:ue.Level.REFINED),i=6,s=ue.HEAPU32.subarray(o>>2,(o>>2)+i),l=s.subarray(3,3+3),c=0,p=ue.HEAPU32[s[c]>>2],a=new Float32Array(ue.HEAPF32.subarray(p>>2,(p>>2)+l[c]));c++;let u=ue.HEAPU32[s[c]>>2],d=new Uint32Array(ue.HEAPU32.subarray(u>>2,(u>>2)+l[c]));c++;let f=ue.HEAPU32[s[c]>>2],m=new Uint8Array(ue.HEAPU32.subarray(f>>2,(f>>2)+l[c]));return ue.free_topological_data(o),{positions:a,indices:d,verticesPerFace:m}}};var ih=["getX","getY","getZ"];function Cc(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[ih[d]](a)*l)},`;if(u in e)i.push(e[u]);else{for(let d=0;d<3;d++)s.push(n[ih[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 Ra=new Va,Ic=new Va,Pc=new Va,Oc=new Va;function Mc(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=e.userData.parameters.spikes;if(e.userData.type==="EllipseGeometry"&&l<=24&&l%4===0&&e.userData.parameters.angle>=360){let a=s.length/2/l;s=s.filter((u,d)=>Math.floor(d/2)%a===0)}let c=0;for(let a=0;a<s.length;a+=2)c+=(s[a]-s[(a===0?s.length:a)-2])*(s[a+1]+s[(a===0?s.length:a)-1]);n.length=0;let p=0;if(c<0)for(let a=0;a<s.length;a+=2)n.push(s[a],s[a+1],0),o.push(p++);else for(let a=s.length-2;a>=0;a-=2)n.push(s[a],s[a+1],0),o.push(p++);return i.push(p),{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]){Ra.set(n[t[s]*3],n[t[s]*3+1],n[t[s]*3+2]),Ic.set(n[t[s+1]*3],n[t[s+1]*3+1],n[t[s+1]*3+2]),Pc.set(n[t[s+4]*3],n[t[s+4]*3+1],n[t[s+4]*3+2]),Oc.set(n[t[s+5]*3],n[t[s+5]*3+1],n[t[s+5]*3+2]),Ic.sub(Ra).normalize(),Pc.sub(Ra).normalize(),Oc.sub(Ra).normalize();let c=Ic.cross(Pc).dot(Oc);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 $t={};Eg($t,{calcBoolean:()=>m_,calcBooleanTopological:()=>f_,freeMeshSet:()=>y_,getMeshSet:()=>h_,transformMeshSet:()=>g_});var u_,sh=new Promise(n=>{u_=n});import{Float32BufferAttribute as ah,Sphere as p_}from"three";var ge,Bn;sh.then(n=>ge=n);function d_(n,t,e){let r,{positions:o,triIndices:i}=Cc(n.getAttribute("position"),n.getIndex()),s;if(t&&e){let{indices:l,verticesPerFace:c}=Mc(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 lh(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=ge._malloc(o);return(Number.isInteger(n[0])?new Uint32Array(ge.HEAPU32.buffer,i,t):new Float32Array(ge.HEAPF32.buffer,i,t)).set(n,0),i}function ch(n){switch(n){case 0:return ge.OP.UNION;case 1:return ge.OP.INTERSECTION;case 2:return ge.OP.A_MINUS_B;case 3:return ge.OP.B_MINUS_A;case 4:return ge.OP.SYMMETRIC_DIFFERENCE;case 5:return ge.OP.ALL;default:throw new Error("Unknown boolean operation "+n)}}function f_(n,t){Bn===void 0&&(Bn=ge.init_csg());let e=lh(n),r=ge.csg_calc_topological(Bn,e,n.length,ch(t));ge._free(e);let o=6,i=ge.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(3,3+3),l=0,c=ge.HEAPU32[i[l]>>2],p=new Float32Array(ge.HEAPF32.subarray(c>>2,(c>>2)+s[l]));l++;let a=ge.HEAPU32[i[l]>>2],u=new Uint32Array(ge.HEAPU32.subarray(a>>2,(a>>2)+s[l]));l++;let d=ge.HEAPU32[i[l]>>2],f=new Uint8Array(ge.HEAPU32.subarray(d>>2,(d>>2)+s[l]));return ge.free_mesh_data(r),{positions:p,indices:u,verticesPerFace:f}}function m_(n,t,e,r){Bn===void 0&&(Bn=ge.init_csg());let o=lh(n),i=ge.csg_calc(Bn,o,n.length,r,ch(t));ge._free(o);let s=5,l=ge.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(2,2+3),p=0,a=ge.HEAPU32[l[p]>>2],u=ge.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=ge.HEAPU32[l[p]>>2],f=ge.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=c[p];e.setAttribute("position",new ah(u,3)),e.setAttribute("normal",new ah(f,3));let h=ge.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new p_),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},ge.free_mesh_data(i),m}function h_(n,t,e){if(ge===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((b,x)=>b+x,0)+i);for(let b=0,x=0,S=0;b<g.verticesPerFace.length;b++){o[S++]=g.verticesPerFace[b];for(let w=0;w<g.verticesPerFace[b];w++)o[S++]=g.indices[x++]}}else({positions:r,faceIndices:o,nFaces:i}=d_(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=ge._malloc(a),m=new Float32Array(ge.HEAPF32.buffer,f,c),h=new Uint32Array(ge.HEAPU32.buffer,f+u,p);return m.set(r,0),h.set(o,0),ge.get_csg_mesh(f,s,f+u,l,i)}function g_(n,t){ge.transform_csg_mesh(n,t.elements)}function y_(n){ge.free_csg_mesh(n)}var Lc={ConeGeometry:gm,CubeGeometry:ym,CylinderGeometry:hm,DodecahedronGeometry:xm,EllipseGeometry:Am,HelixGeometry:Cm,IcosahedronGeometry:Mm,LatheGeometry:Lm,NonParametricGeometry:zm,PolygonGeometry:jm,PyramidGeometry:Um,RectangleGeometry:km,SphereGeometry:Hm,PlaneGeometry:Wm,BackdropGeometry:qm,StarGeometry:$m,TextFrameGeometry:Ym,TorusGeometry:Xm,TorusKnotGeometry:Km,TriangleGeometry:Zm,VectorGeometry:et},Li=n=>Lc[n.type].create(n);import{ShaderMaterial as aT}from"three";import{CubeReflectionMapping as O_,CubeRefractionMapping as C_,CubeUVReflectionMapping as M_,LinearEncoding as fh,sRGBEncoding as L_}from"three";var Ei=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}};import{MathUtils as x_}from"three";var Ze=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=x_.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 Ze&&(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 Ec=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}},He=new Ec;import{Vector2 as uh}from"three";import{MathUtils as b_}from"three";var le=class extends Ze{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=b_.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 Ce=class extends le{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 Qe=class extends Ce{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof uh?e:new uh(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)}};import{Vector3 as ph}from"three";var tt=class extends Ce{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof ph?e:new ph(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)}};import{Color as v_}from"three";var We=class extends v_{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 zt=class extends Ce{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof We?e:new We(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 S_=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,dh=/[a-z_0-9]+/gi,X=class extends le{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=dh.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&&He.containsKeyword(f)){let g=this.keywords[f];if(!g){let b=He.getKeywordData(f);b.cache&&(g=e.keywords[f]),g=g||He.getKeyword(f,e),b.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&&He.contains(h)&&e.include(He.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=S_.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(dh);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 w_=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Bc=class extends le{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||Bc.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=w_.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)}},be=Bc;be.PI="PI",be.PI2="PI2",be.RECIPROCAL_PI="RECIPROCAL_PI",be.RECIPROCAL_PI2="RECIPROCAL_PI2",be.LOG2="LOG2",be.EPSILON="EPSILON";var __=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
|
|
4
|
+
)*?)}`,"gim"),T_=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Dn=class extends le{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=__.exec(e);if(r){let o=r[2],i;for(;i=T_.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=r[1]}else this.name="";this.type=this.name}};var Gn=class extends le{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)}};He.addKeyword("uv",function(){return new Gn});He.addKeyword("uv2",function(){return new Gn(1)});import{LinearEncoding as A_,sRGBEncoding as N_}from"three";var Ao=class extends le{constructor(e,r){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=r??Ao.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case A_:return["Linear"];case N_:return["sRGB"];default:return[]}}generate(e,r){let o=this.input.build(e,"v4"),i=this.getType(e),s=Ao.Nodes[this.method],l=e.include(s);if(l===Ao.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=Ao.getEncodingComponents(e);this.method="LinearTo"+r[0],this.factor=r[1]}fromDecoding(e){let r=Ao.getEncodingComponents(e);this.method=r[0]+"ToLinear",this.factor=r[1]}},pt=Ao;pt.Nodes={LinearToLinear:new X(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
|
|
5
5
|
`)),sRGBToLinear:new X(["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 X(["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
|
-
`))},
|
|
7
|
+
`))},pt.LINEAR_TO_LINEAR="LinearToLinear",pt.SRGB_TO_LINEAR="sRGBToLinear",pt.LINEAR_TO_SRGB="LinearTosRGB";var we=class extends X{constructor(e="",r,o,i,s){super(e,s,i,o,r);this.nodeType="Expression"}};import{Texture as I_}from"three";var xt=class extends Ce{constructor(e=new I_,r,o,i){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=r??new Gn,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 pt(new we("",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 Z=class extends Ce{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 Bi=class extends le{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 Dc=class extends le{constructor(e,r,o=Dc.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)}},bt=Dc;bt.ADD="+",bt.SUB="-",bt.MUL="*",bt.DIV="/";var Ie=class extends le{constructor(e,r=Ie.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 Ie.MIX:case Ie.CLAMP:case Ie.REFRACT:case Ie.SMOOTHSTEP:case Ie.FACEFORWARD:return 3;case Ie.MIN:case Ie.MAX:case Ie.MOD:case Ie.STEP:case Ie.REFLECT:case Ie.DISTANCE:case Ie.DOT:case Ie.CROSS:case Ie.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 Ie.LENGTH:case Ie.DISTANCE:case Ie.DOT:return"f";case Ie.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 Ie.NEGATE:return e.format("( -"+this.a.build(e,a)+" )",a,r);case Ie.INVERT:return e.format("( 1.0 - "+this.a.build(e,a)+" )",a,r);case Ie.CROSS:o=this.a.build(e,"v3"),i=this.b.build(e,"v3");break;case Ie.STEP:o=this.a.build(e,l===1?"f":a),i=this.b.build(e,a);break;case Ie.MIN:case Ie.MAX:case Ie.MOD:o=this.a.build(e,a),i=this.b.build(e,c===1?"f":a);break;case Ie.REFRACT:o=this.a.build(e,a),i=this.b.build(e,a),s=this.c.build(e,"f");break;case Ie.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)}},de=Ie;de.RAD="radians",de.DEG="degrees",de.EXP="exp",de.EXP2="exp2",de.LOG="log",de.LOG2="log2",de.SQRT="sqrt",de.INV_SQRT="inversesqrt",de.FLOOR="floor",de.CEIL="ceil",de.NORMALIZE="normalize",de.FRACT="fract",de.SATURATE="saturate",de.SIN="sin",de.COS="cos",de.TAN="tan",de.ASIN="asin",de.ACOS="acos",de.ARCTAN="atan",de.ABS="abs",de.SIGN="sign",de.LENGTH="length",de.NEGATE="negate",de.INVERT="invert",de.MIN="min",de.MAX="max",de.MOD="mod",de.STEP="step",de.REFLECT="reflect",de.DISTANCE="distance",de.DOT="dot",de.CROSS="cross",de.POW="pow",de.MIX="mix",de.CLAMP="clamp",de.REFRACT="refract",de.SMOOTHSTEP="smoothstep",de.FACEFORWARD="faceforward";var Rn=class extends le{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 Bi(Rn.Nodes.bilinearCubeUV,[r,o,i]);this.colorSpaceTL=this.colorSpaceTL??new pt(new we("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(s.build(e)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new pt(new we("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(s.build(e)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new pt(new we("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(s.build(e)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new pt(new we("","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 we(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new we(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new we(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new we(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let c=new we("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 Bi(Rn.Nodes.roughnessToMip,[i]),l=new de(s,Rn.Nodes.m0,Rn.Nodes.cubeUV_maxMipLevel,de.CLAMP),c=new de(l,de.FLOOR),p=new de(l,de.FRACT),a=this.bilinearCubeUV(e,this.value,o,c),u=this.bilinearCubeUV(e,this.value,o,new bt(c,new Z(1).setReadonly(!0),bt.ADD)),d=new de(a,u,p,de.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)}},Vn=Rn;Vn.Nodes=function(){let e=new Dn(`struct TextureCubeUVData {
|
|
8
8
|
vec4 tl;
|
|
9
9
|
vec4 tr;
|
|
10
10
|
vec4 br;
|
|
@@ -83,7 +83,7 @@ var Pg=Object.create;var sl=Object.defineProperty;var Og=Object.getOwnPropertyDe
|
|
|
83
83
|
mip = -2.0 * log2(1.16 * roughness);// 1.16 = 1.79^0.25
|
|
84
84
|
}
|
|
85
85
|
return mip;
|
|
86
|
-
}`,I);return{bilinearCubeUV:p,roughnessToMip:A,m0:d,cubeUV_maxMipLevel:r}}();var No=class extends le{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??No.VIEW}getShared(){return this.scope===No.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 No.VIEW:e.isShader("vertex")?l="transformedNormal":l="geometryNormal";break;case No.LOCAL:e.isShader("vertex")?l="objectNormal":(e.requires.normal=!0,l="vObjectNormal");break;case No.WORLD:e.isShader("vertex")?l="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,l="vWNormal");break}return e.format(l,this.getType(e),r)}},Je=No;Je.LOCAL="local",Je.WORLD="world",Je.VIEW="view",Je.NORMAL="normal";He.addKeyword("viewNormal",function(){return new Je(Je.VIEW)});He.addKeyword("localNormal",function(){return new Je(Je.NORMAL)});He.addKeyword("worldNormal",function(){return new Je(Je.WORLD)});var gr=class extends le{constructor(e){super("v3");this.nodeType="Position";this.scope=e??gr.LOCAL}getType(){switch(this.scope){case gr.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case gr.LOCAL:case gr.WORLD:return!1}return!0}generate(e,r,o,i,s){let l;switch(this.scope){case gr.LOCAL:e.isShader("vertex")?l="transformed":(e.requires.position=!0,l="vPosition");break;case gr.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,l="vWPosition";break;case gr.VIEW:l=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case gr.PROJECTION:l=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(l,this.getType(),r)}},
|
|
86
|
+
}`,I);return{bilinearCubeUV:p,roughnessToMip:A,m0:d,cubeUV_maxMipLevel:r}}();var No=class extends le{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??No.VIEW}getShared(){return this.scope===No.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 No.VIEW:e.isShader("vertex")?l="transformedNormal":l="geometryNormal";break;case No.LOCAL:e.isShader("vertex")?l="objectNormal":(e.requires.normal=!0,l="vObjectNormal");break;case No.WORLD:e.isShader("vertex")?l="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,l="vWNormal");break}return e.format(l,this.getType(e),r)}},Je=No;Je.LOCAL="local",Je.WORLD="world",Je.VIEW="view",Je.NORMAL="normal";He.addKeyword("viewNormal",function(){return new Je(Je.VIEW)});He.addKeyword("localNormal",function(){return new Je(Je.NORMAL)});He.addKeyword("worldNormal",function(){return new Je(Je.WORLD)});var gr=class extends le{constructor(e){super("v3");this.nodeType="Position";this.scope=e??gr.LOCAL}getType(){switch(this.scope){case gr.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case gr.LOCAL:case gr.WORLD:return!1}return!0}generate(e,r,o,i,s){let l;switch(this.scope){case gr.LOCAL:e.isShader("vertex")?l="transformed":(e.requires.position=!0,l="vPosition");break;case gr.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,l="vWPosition";break;case gr.VIEW:l=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case gr.PROJECTION:l=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(l,this.getType(),r)}},vt=gr;vt.LOCAL="local",vt.WORLD="world",vt.VIEW="view",vt.PROJECTION="projection";He.addKeyword("position",function(){return new vt});He.addKeyword("worldPosition",function(){return new vt(vt.WORLD)});He.addKeyword("viewPosition",function(){return new vt(vt.VIEW)});var Yt=class extends le{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e??Yt.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case Yt.SPHERE:return"v2"}return this.type}generate(e,r){let o=this.getUnique(e);if(e.isShader("fragment")){let i;switch(this.scope){case Yt.VECTOR:{let s=new Je(Je.VIEW),l=e.context.roughness,c=s.build(e,"v3"),p=new vt(vt.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 Yt.CUBE:{let s=new Yt(Yt.VECTOR).build(e,"v3"),l="vec3( -"+s+".x, "+s+".yz )";o?(e.addNodeCode(`vec3 reflectCubeVec = ${l};`),i="reflectCubeVec"):i=l;break}case Yt.SPHERE:{let l="normalize( ( viewMatrix * vec4( "+new Yt(Yt.VECTOR).build(e,"v3")+", 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)}},yr=Yt;yr.CUBE="cube",yr.SPHERE="sphere",yr.VECTOR="vector";var Fa=class extends le{constructor(e=new xt,r,o){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new Vn(this.value,r??new yr(yr.VECTOR),o),this.irradianceNode=new Vn(this.value,new Je(Je.WORLD),new Z(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))}};import{CubeTexture as P_}from"three";var za=class extends Ce{constructor(e=new P_,r,o){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=r??new yr,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 pt(new we("",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 mh=["x","y","z","w"],E_=["float","vec2","vec3","vec4"],B_={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},D_={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[]"},ja=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 Pg=Object.create;var sl=Object.defineProperty;var Og=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 Ze?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 Ei({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 Ei({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"?He.get(t):t,this.context.include===!1)return t.name;t instanceof X?o=this.includes.functions:t instanceof be?o=this.includes.consts:t instanceof Dn&&(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 X&&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 E_[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 O_:case C_:return new za(r);case M_:return new Fa(new
|
|
131
|
+
`}return r}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let e=t instanceof Ze?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 Ei({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 Ei({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"?He.get(t):t,this.context.include===!1)return t.name;t instanceof X?o=this.includes.functions:t instanceof be?o=this.includes.consts:t instanceof Dn&&(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 X&&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 E_[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 O_:case C_:return new za(r);case M_:return new Fa(new xt(r));default:return new xt(r)}else{if(r.isVector2)return new Qe(r);if(r.isVector3)return new tt(r);if(r.isVector4)return new zt(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 B_[t]||t}getFormatByType(t){return D_[t]||t}getUUID(t,e){return e=e!==void 0?e:!0,e&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return mh[t]}getIndexByElement(t){return mh.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=fh,e===fh&&this.context.gamma&&(e=L_),e}};import{Vector2 as Oo,Vector3 as vr,Vector4 as Un}from"three";var Te=class extends Ce{constructor(e=0,r,o,i){super("c");this.nodeType="Color";this.value=e instanceof We?e:new We(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 xe=class extends Ce{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)}};import{UniformsLib as G_,UniformsUtils as R_}from"three";var Io=class extends Ze{constructor(){super("basic");this.nodeType="Basic";this.color=new Te(5855577),this.shadingAlpha=new Z(1),this.shadingBlend=new xe(0)}generate(e){let r;if(e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(R_.merge([G_.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>
|
|
@@ -889,7 +889,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
889
889
|
accumAlpha += ( 1.0 - accumAlpha ) * alpha;
|
|
890
890
|
|
|
891
891
|
return normal;
|
|
892
|
-
}`)}}();var rt={normalRenderTarget:new
|
|
892
|
+
}`)}}();var rt={normalRenderTarget:new xt,normalRenderTargetDepth:new xt,transmissionRenderTarget:new xt,transmissionSize:new Qe(2048,2048),transmissionRenderTargetDepth:new xt,pixelRatioNode:new Z(1),resolution:new Qe,penumbraSize:new Xt(5,.5)};for(let n of Object.values(rt))n.isRenderGlobal=!0;var Yi=class extends Ze{constructor(){super("lambert");this.nodeType="Lambert";this.color=new Te(5855577),this.emissive=new Te(0),this.emissiveIntensity=new Z(1),this.shadingAlpha=new Z(1),this.shadingBlend=new xe(0)}build(e){let r;if(e.define("LAMBERT"),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(z_.merge([yh.fog,yh.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <color_pars_vertex>","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
|
|
893
893
|
`));let i=["#include <beginnormal_vertex>",`
|
|
894
894
|
#ifndef USE_LAYER_DISPLACE
|
|
895
895
|
#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}};import{Vector2 as Zi,Vector3 as Fr,Vector4 as ka}from"three";function bh(n,t){switch(n.type){case"fresnel":return W_(n,t);case"gradient":return q_(n);case"depth":return $_(n);case"normal":return Y_(n);case"noise":return X_(n,t);case"rainbow":return K_(n);case"toon":return Z_(n,t);case"outline":return Q_(n,t);case"transmission":return J_(n,t);case"color":return H_(n,t)}}function k_(n){return{type:n.type}}function br(n){let{alpha:t,mode:e}=n;return{...k_(n),alpha:t,mode:e}}function H_(n,t){return{...br(n),color:Xe(n.color,t)}}function W_(n,t){let{bias:e,scale:r,intensity:o,factor:i,color:s}=n;return{...br(n),color:Xe(s,t),bias:e,scale:r,intensity:o,factor:i}}function q_(n){let{gradientType:t,smooth:e,colors:r,steps:o,angle:i,offset:s,morph:l}=n;return{...br(n),gradientType:t,smooth:e,colors:r.map(c=>new ka(c[0],c[1],c[2],c[3])),num:r.length,steps:o,offset:new Zi(...s),morph:new Zi(...l),angle:i}}function $_(n){let{gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:s,direction:l,colors:c,steps:p,smooth:a}=n;return{...br(n),gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:new Fr(...s),direction:l?new Fr(...l):new Fr(1,0,0),colors:c.map(u=>u!==void 0?new ka(u[0],u[1],u[2],u[3]):new ka(0,0,0,0)),steps:p.slice(0,c.length),smooth:a}}function Y_(n){let{cnormal:t}=n;return{...br(n),cnormal:new Fr(t[0],t[1],t[2])}}function X_(n,t){return{...br(n),scale:n.scale,move:n.move,fA:new Zi(...n.fA),fB:new Zi(...n.fB),size:new Fr(...n.size),distortion:new Zi(...n.distortion),colorA:Xe(n.colorA,t),colorB:Xe(n.colorB,t),colorC:Xe(n.colorC,t),colorD:Xe(n.colorD,t),noiseType:n.noiseType}}function K_(n){return{...br(n),filmThickness:n.filmThickness,movement:n.movement,wavelengths:new Fr(...n.wavelengths),noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,offset:new Fr(...n.offset)}}function Z_(n,t){return{...br(n),positioning:n.positioning,colors:n.colors.map(e=>new ka(e[0],e[1],e[2],e[3])),num:n.colors.length,steps:n.steps,source:new Fr(...n.source),isWorldSpace:n.isWorldSpace,noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,shadowColor:Xe(n.shadowColor,t),offset:new Fr(...n.offset)}}function Q_(n,t){return{...br(n),outlineColor:Xe(n.outlineColor,t),contourColor:Xe(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 J_(n,t){return{...br(n),thickness:n.thickness,ior:n.ior,roughness:n.roughness}}var lo=class extends We{};import{Vector4 as tT}from"three";import{Texture as eT}from"three";var Ha=class{constructor(t=1e3*10){this.timeout=t;this.cache=new Map;this.head={data:null,time:0,src:null,next:null,prev:null};this.tail={data:null,time:1/0,src:null,next:null,prev:null};this.hasClean=!1;this.head.next=this.tail,this.tail.prev=this.head}log(...t){}scheduleCleanup(){this.hasClean||(this.log("scheduled cleanup"),this.hasClean=!0,setTimeout(()=>{this.hasClean=!1,this.log("cleaning");let t=Date.now(),e=this.head.next;for(;e.time<t-this.timeout;)this.dispose(e.src,e.data),this.cache.delete(e.src),e=e.next,e.prev=this.head,this.head.next=e;this.head.next!==this.tail?this.scheduleCleanup():this.log("no more cleanup")},this.timeout+1e3))}load(t){let e=Date.now(),r=this.cache.get(t);return r===void 0?(r={data:this.create(t),src:t,time:e,next:null,prev:null},this.cache.set(t,r)):(r.time=e,r.prev.next=r.next,r.next.prev=r.prev),r.prev=this.tail.prev,r.next=this.tail,this.tail.prev.next=r,this.tail.prev=r,this.scheduleCleanup(),r.data}};var qc=class extends Ha{create(t){return URL.createObjectURL(new Blob([t]))}dispose(t,e){URL.revokeObjectURL(e)}},Wc;function vh(n){return typeof n=="string"?n:(Wc||(Wc=new qc),Wc.load(n))}var jn=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=vh(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 eT(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 Po=class extends jn{};var co=class extends Ce{};var $c={noise:["noiseType"],texture:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},Yc={depth:["colors"]};function rT(n,t,e){let r=$c[n.type],o=Yc[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 Xc(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 Po||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 Sh(n,t,e,r){let o=!1;for(let[i,s]of Object.entries(n)){if(!i||s===void 0)continue;if(Kc(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 co))switch(o=o||rT(e,i,s),l.constructor){case Te:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof lo?l.value=new We(c.r,c.g,c.b,c.a):l.setRGBA(c);break}case zt:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof lo?l.value=new We(c.r,c.g,c.b,c.a):l.value.setRGBA(c.r,c.g,c.b,c.a);break}case Qe:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]);break}case tt:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]),l.value.setZ(c[2]);break}case
|
|
1086
|
+
`)}return r}};import{Vector2 as Zi,Vector3 as Fr,Vector4 as ka}from"three";function bh(n,t){switch(n.type){case"fresnel":return W_(n,t);case"gradient":return q_(n);case"depth":return $_(n);case"normal":return Y_(n);case"noise":return X_(n,t);case"rainbow":return K_(n);case"toon":return Z_(n,t);case"outline":return Q_(n,t);case"transmission":return J_(n,t);case"color":return H_(n,t)}}function k_(n){return{type:n.type}}function br(n){let{alpha:t,mode:e}=n;return{...k_(n),alpha:t,mode:e}}function H_(n,t){return{...br(n),color:Xe(n.color,t)}}function W_(n,t){let{bias:e,scale:r,intensity:o,factor:i,color:s}=n;return{...br(n),color:Xe(s,t),bias:e,scale:r,intensity:o,factor:i}}function q_(n){let{gradientType:t,smooth:e,colors:r,steps:o,angle:i,offset:s,morph:l}=n;return{...br(n),gradientType:t,smooth:e,colors:r.map(c=>new ka(c[0],c[1],c[2],c[3])),num:r.length,steps:o,offset:new Zi(...s),morph:new Zi(...l),angle:i}}function $_(n){let{gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:s,direction:l,colors:c,steps:p,smooth:a}=n;return{...br(n),gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:new Fr(...s),direction:l?new Fr(...l):new Fr(1,0,0),colors:c.map(u=>u!==void 0?new ka(u[0],u[1],u[2],u[3]):new ka(0,0,0,0)),steps:p.slice(0,c.length),smooth:a}}function Y_(n){let{cnormal:t}=n;return{...br(n),cnormal:new Fr(t[0],t[1],t[2])}}function X_(n,t){return{...br(n),scale:n.scale,move:n.move,fA:new Zi(...n.fA),fB:new Zi(...n.fB),size:new Fr(...n.size),distortion:new Zi(...n.distortion),colorA:Xe(n.colorA,t),colorB:Xe(n.colorB,t),colorC:Xe(n.colorC,t),colorD:Xe(n.colorD,t),noiseType:n.noiseType}}function K_(n){return{...br(n),filmThickness:n.filmThickness,movement:n.movement,wavelengths:new Fr(...n.wavelengths),noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,offset:new Fr(...n.offset)}}function Z_(n,t){return{...br(n),positioning:n.positioning,colors:n.colors.map(e=>new ka(e[0],e[1],e[2],e[3])),num:n.colors.length,steps:n.steps,source:new Fr(...n.source),isWorldSpace:n.isWorldSpace,noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,shadowColor:Xe(n.shadowColor,t),offset:new Fr(...n.offset)}}function Q_(n,t){return{...br(n),outlineColor:Xe(n.outlineColor,t),contourColor:Xe(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 J_(n,t){return{...br(n),thickness:n.thickness,ior:n.ior,roughness:n.roughness}}var lo=class extends We{};import{Vector4 as tT}from"three";import{Texture as eT}from"three";var Ha=class{constructor(t=1e3*10){this.timeout=t;this.cache=new Map;this.head={data:null,time:0,src:null,next:null,prev:null};this.tail={data:null,time:1/0,src:null,next:null,prev:null};this.hasClean=!1;this.head.next=this.tail,this.tail.prev=this.head}log(...t){}scheduleCleanup(){this.hasClean||(this.log("scheduled cleanup"),this.hasClean=!0,setTimeout(()=>{this.hasClean=!1,this.log("cleaning");let t=Date.now(),e=this.head.next;for(;e.time<t-this.timeout;)this.dispose(e.src,e.data),this.cache.delete(e.src),e=e.next,e.prev=this.head,this.head.next=e;this.head.next!==this.tail?this.scheduleCleanup():this.log("no more cleanup")},this.timeout+1e3))}load(t){let e=Date.now(),r=this.cache.get(t);return r===void 0?(r={data:this.create(t),src:t,time:e,next:null,prev:null},this.cache.set(t,r)):(r.time=e,r.prev.next=r.next,r.next.prev=r.prev),r.prev=this.tail.prev,r.next=this.tail,this.tail.prev.next=r,this.tail.prev=r,this.scheduleCleanup(),r.data}};var qc=class extends Ha{create(t){return URL.createObjectURL(new Blob([t]))}dispose(t,e){URL.revokeObjectURL(e)}},Wc;function vh(n){return typeof n=="string"?n:(Wc||(Wc=new qc),Wc.load(n))}var jn=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=vh(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 eT(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 Po=class extends jn{};var co=class extends Ce{};var $c={noise:["noiseType"],texture:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},Yc={depth:["colors"]};function rT(n,t,e){let r=$c[n.type],o=Yc[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 Xc(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 Po||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 Sh(n,t,e,r){let o=!1;for(let[i,s]of Object.entries(n)){if(!i||s===void 0)continue;if(Kc(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 co))switch(o=o||rT(e,i,s),l.constructor){case Te:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof lo?l.value=new We(c.r,c.g,c.b,c.a):l.setRGBA(c);break}case zt:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof lo?l.value=new We(c.r,c.g,c.b,c.a):l.value.setRGBA(c.r,c.g,c.b,c.a);break}case Qe:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]);break}case tt:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]),l.value.setZ(c[2]);break}case xt:{Xc(s,t,e);break}case Kt:{l.value=s.map(c=>new tT(...c));break}default:{l.value=s;break}}}return o}var Zc=class extends le{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(Zc.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=Zc;Qi.Nodes=function(){return{matcap:new X(`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 );
|
|
@@ -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
|
-
}`,[st.simplex,e,o,s])}}();import{Matrix3 as nT}from"three";function wh(n,t,e){n.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var qa=class extends Fn{constructor(e,r){super(new nT);this.repeat=e;this.offset=r;wh(this.value,e,r)}updateMatrix(){wh(this.value,this.repeat,this.offset)}};var Sr=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)Kc(i,this,r)}get type(){return this.data.type}static create(t,e,r,o){if(r.type==="light")return wr.createLigherLayer(t,e,r,o);if(r.type==="texture"){let i=o.image(r.texture.image),s=new Ji(i,r.texture.wrapping),l=new Wa(i),c=new qa(r.texture.repeat,r.texture.offset),p=new Z(r.crop?1:0),a=new xe(r.projection??0),u=new xe(["x","y","z"].indexOf(r.axis)??0),d=new xe(r.side??0),f=new Qe(r.size?new Oo(r.size[0],r.size[1]):new Oo(100,100)),m=new Z(r.alpha??1),h=new xe(r.mode??0),g=new Wi(s,l,p,a,u,d,f,c,m,h),b=new we(g.calpha,"f");return new qe(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,b)}else if(r.type==="matcap"){let i=o.image(r.texture.image),s=new Ji(i,r.texture.wrapping),l=new Z(r.alpha??1),c=new xe(r.mode??0),p=new Qi(s,l,c),a=new we(p.calpha,"f");return new qe(t,e,r,{texture:s,alpha:l,mode:c},p,c,a)}else if(r.type==="displace")if(r.displacementType==="noise"){let i=new tt(new vr(...r.offset)),s=new Z(r.scale??10),l=new Z(r.intensity??8),c=new Z(r.movement??1),p=new xe(r.noiseType??0),a=new ki(l,c,i,s,p);return new ts(t,e,r,{offset:i,scale:s,intensity:l,movement:c,noiseType:p},a)}else throw new Error;else return sT(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:Sh(o.props,r,this,e)}else if(o.path[0]==="texture")return"texture"in e?Xc(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}},qe=class extends Sr{constructor(e,r,o,i,s,l,c){super(e,r,o,i);this.color=s;this.mode=l;this.alpha=c}},ts=class extends Sr{constructor(e,r,o,i,s){super(e,r,o,i);this.position=s}},wr=class extends Sr{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 Z(o.alpha),c=new xe(o.mode),p;if(!o.visible)s=new Io,p={};else if(o.category==="lambert"){s=new Yi;let a=new Te(i.color(o.emissive)??0);p={emissive:a},s.emissive=a}else if(o.category==="toon"){s=new Ki;let a=new Z(o.shininess??30),u=new Te(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}else if(o.category==="physical"){s=new Xi;let a=new Z(o.roughness??.3),u=new Z(o.metalness??0),d=new Z(o.reflectivity??.5);p={roughness:a,metalness:u,reflectivity:d},s.roughness=a,s.metalness=u,s.reflectivity=d}else{s=new Ua;let a=new Z(o.shininess??30),u=new Te(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}return s.alpha=new Z(1),s.shadingAlpha=l,s.shadingBlend=c,p.alpha=s.shadingAlpha,p.mode=s.shadingBlend,new wr(e,r,o,s,p)}};function _h(n){let t=n instanceof Sr?n.type:n;return t==="texture"||t==="displace_map"||t==="matcap"}function iT(n,t,e,r){switch(n.type){case"color":{let o=new Te(r.color??5855577),i=new Z(r.alpha??1),s=new we("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new xe(r.mode??0);return o.alpha=i,new qe(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}case"fresnel":{let o=new Te(r.color??16777215),i=new Z(r.bias??.1),s=new Z(r.scale??1),l=new Z(r.intensity??2),c=new Z(r.factor??1),p=new Z(r.alpha??1),a=new xe(r.mode??0),u=new Ri(o,i,s,l,c,p,a),d=new we(u.calpha,"f");return new qe(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 Z(r.filmThickness??30),i=new Z(r.movement??0),s=new tt(r.wavelengths??new vr(0,0,0)),l=new Z(r.noiseStrength??0),c=new Z(r.noiseScale??1),p=new tt(r.offset??new vr(0,0,0)),a=new Z(r.alpha??1),u=new Vi(o,i,s,l,c,p,a),d=new we(u.calpha,"f"),f=new xe(r.mode??0);return new qe(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 Z(r.thickness??10),i=new Z(r.ior??1.5),s=new Z(r.roughness??.5),l=rt.transmissionSize,c=rt.transmissionRenderTarget,p=rt.transmissionRenderTargetDepth,a=window.innerWidth,u=window.innerHeight,d=a>=u?new Qe(u/a,1):new Qe(1,a/u),f=new Z(r.alpha??1),m=new zi(o,i,s,l,c,p,d,f),h=new we(m.calpha,"f"),g=new xe(r.mode??0);return new qe(t,e,n,{thickness:o,ior:i,roughness:s,aspectRatio:d,alpha:f,mode:g},m,g,h)}case"toon":{let o=new xe(r.positioning??0),i;r.colors?i=new Kt(r.colors.length,r.colors):(i=new Kt(10,new Un(0,0,0,1)),i.value[1]=new Un(1,1,1,1));let s;r.steps?s=new Xt(r.steps.length,r.steps):(s=new Xt(10,1),s.value[0]=0);let l=new tt(r.source??new vr(0,0,0)),c=new ao(r.isWorldSpace??!0),p=new Z(r.noiseStrength??0),a=new Z(r.noiseScale??1),u=new zt(r.shadowColor),d=new tt(r.offset??new vr(0,0,0)),f=new Z(r.alpha??1),m=new es(o,i,s,l,c,p,a,u,d,f),h=new we(m.calpha,"f"),g=new xe(r.mode??0);return new qe(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 Te(r.outlineColor??16777215),i=new Te(r.contourColor??16777215),s=new Z(r.outlineWidth??.1),l=new Z(r.contourWidth??.1),c=new Z(r.outlineThreshold??.1),p=new Z(r.contourThreshold??.1),a=new Z(r.outlineSmoothing??.1),u=new Z(r.contourFrequency??.1),d=new tt(r.contourDirections??new vr(0,1,0)),f=new ao(r.positionalLines??!1),m=new ao(r.compensation??!0),h=rt.normalRenderTarget,g=rt.normalRenderTargetDepth,b=rt.pixelRatioNode,x=rt.resolution,S=new Z(r.alpha??1),w=new Fi(o,i,s,l,c,p,a,u,d,f,m,x,h,g,b,S),v=new we(w.calpha,"f"),N=new xe(r.mode??0);return new qe(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:S,mode:N},w,N,v)}case"depth":{let o=new xe(r.gradientType??0),i=new ao(r.smooth??!1),s=new Z(r.near??50),l=new Z(r.far??200),c=new Z(r.isVector??1),p=new Z(r.isWorldSpace??0),a=new tt(r.origin??new vr),u=new tt(r.direction??new vr),d;r.colors?d=new Kt(r.colors.length,r.colors):(d=new Kt(2,new Un(0,0,0,1)),d.value[1]=new Un(1,1,1,1));let f;r.steps?f=new Xt(r.steps.length,r.steps):(f=new Xt(2,1),f.value[0]=0);let m=new Z(r.alpha??1),h=new xe(r.mode??0),g=new ji(o,i,s,l,c,p,a,u,d,f,m),b=new we(g.calpha,"f");return new qe(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,b)}case"noise":{let o=new Z(r.scale??1),i=new tt(r.size??new vr(100,100,100)),s=new Z(r.move??1),l=new Qe(r.fA??new Oo(1.7,9.2)),c=new Qe(r.fB??new Oo(8.3,2.8)),p=new Qe(r.distortion??new Oo(1,1)),a=new zt(r.colorA),u=new zt(r.colorB),d=new zt(r.colorC),f=new zt(r.colorD),m=new Z(r.alpha??1),h=new xe(r.mode??0),g=new xe(r.noiseType??0),b=new Gi(o,i,s,l,c,p,a,u,d,f,m,g),x=new we(b.calpha,"f");return new qe(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},b,h,x)}case"normal":{let o=new tt(r.cnormal??new vr(1,1,1)),i=new Z(r.alpha??1),s=new xe(r.mode??0),l=new $i(o,i),c=new we("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return c.keywords.alpha=i,new qe(t,e,n,{cnormal:o,alpha:i,mode:s},l,s,c)}case"gradient":{let o=new xe(r.gradientType??0),i=new ao(r.smooth??!1),s;r.colors?s=new Kt(r.colors.length,r.colors):(s=new Kt(10,new Un(0,0,0,1)),s.value[1]=new Un(1,1,1,1));let l;r.steps?l=new Xt(r.steps.length,r.steps):(l=new Xt(10,1),l.value[0]=0);let c=new Qe(r.offset??new Oo(0,0)),p=new Qe(r.morph??new Oo(0,0)),a=new Z(r.angle??0),u=new Z(r.alpha??1),d=new xe(r.mode??0),f=new Hi(o,i,s,l,c,p,a,u),m=new we(f.calpha,"f");return new qe(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 Te(1,0,0,1),i=new Z(1),s=new we("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new xe(0);return o.alpha=i,new qe(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}}}function sT(n,t,e,r){let o=bh(e,r);return iT(e,n,t,o)}function Kc(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 It=class extends lT{constructor(e,r){super(void 0);this.data=e;this.layerIdGen=0;this.type="NodeMaterial";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??Nt.defaultTwoLayerData("phong").layers;this.layers=o.map(i=>Sr.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 wr),this.lightLayer===void 0&&(this.lightLayer=new wr(0,"",{...At.defaultData("light","phong"),visible:!1},new Io,{})),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=Sr.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=Sr.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 qe),r=this.layers.findIndex(o=>o instanceof wr);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 qe&&(o=new Ui(o,s.color,s.alpha,s.mode))}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new we("outgoingLight","f"),r=this.layers.findIndex(o=>o instanceof wr);if(this.layers.length>r+1){for(let o=r+1;o<this.layers.length;++o){let i=this.layers[o];i instanceof qe&&(e=new Ui(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 ts);if(e.length>0){let r=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(r=new xt(r,e[o].position,xt.ADD),r=new xt(r,new Z(.5).setReadonly(!0),xt.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"){let s=o(i.uniforms[`f${i.id}_intensity`].value,e,r);i.uniforms[`f${i.id}_intensity`].value=s}}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=($c[r.type]??[]).map(l=>r[l]),i=(Yc[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 ja;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>aT,this}dispose(){this.layers.forEach(e=>e.dispose()),super.dispose()}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(It.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(n){n===!0&&this.version++,this.needsCompile=n},get:function(){return this.needsCompile}}});import{MathUtils as Jc,BufferAttribute as cT,Vector3 as eu,Float32BufferAttribute as Th}from"three";function uT(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 eu(r[i],r[i+1],r[i+2]);t.has(s)?t.get(s)?.normals.push(l):t.set(s,{normals:[l],result:new eu})}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 Th(o,3))}function pT(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 eu;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 Th(e,3))}function _r(n){if(Array.isArray(n.material)){for(let t of n.material)if(t.getLayersOfType("outline").length===0)return}else if(!(n.material instanceof It)||n.material.getLayersOfType("outline").length===0)return;n.objectType==="Mesh2D"||n.objectType==="TextFrame"&&n.data?.geometry?.depth===0?pT(n):uT(n)}function Tr(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=[Jc.seededRandom(r),Jc.seededRandom(r+1e4),Jc.seededRandom(r+2e4)];for(let i=0;i<t.length;i++)e[i]=o[i%3];n.geometry.setAttribute("randomColor",new cT(e,3))}import{Group as dT}from"three";var Ar=(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=Xe(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 zr=class extends Ar(Dt(dT),Sn){constructor(){super(...arguments);this.objectType="EmptyObject"}createFromState(e,r){let o=new zr().fromState(r);return o.uuid=e,o.objectHelper.update(),o.setFromClonerState(r.cloner||null),o}get cloner(){return this._cloner}set cloner(e){this._cloner&&(this.remove(this._cloner),this._cloner.removeSampleObjectClones()),e&&this.add(e),this._cloner=e}setFromClonerState(e){e===null||e.disabled?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Dr(this,e)),this.cloner.fromClonerState(e))}};function hT(n){let t=n.parent;for(;t;){if(t instanceof zr&&t.cloner?.parameters.hideBase)return!0;t=t.parent}return!1}var Fe=class extends Dt(fT){constructor(e,r){super(e,r);this.isAbstractMesh=!0;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new mT;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||hT(this)}get isMesh(){return!this.isGroup}set isMesh(e){}get cloner(){return this._cloner}set cloner(e){this._cloner&&(this.remove(this._cloner),this._cloner.removeSampleObjectClones()),e&&this.add(e),this._cloner=e}updateGeometry(e,r){let o=this.geometry,i=Lc[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(),_r(this),o.getAttribute("randomColor")&&Tr(this)}clone(e){let r=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,o=Li(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 Dr(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null||e.disabled?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Dr(this,e)),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&&($t.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),lr(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)ar(e)&&(e.freeBooleanPointer(),lr(e)&&e.invalidateUpstreamBooleanData())}};var xT=new tu(0,0,1),Ah=new tu,Nh=new tu,Ih=new yT,kn=class extends Fe{constructor(e=et.create({}),r){super(e,r);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new gT;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),Ih.getNormalMatrix(this.matrixWorld),Ah.copy(xT).applyMatrix3(Ih).normalize(),Nh.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(Ah,Nh)}clone(e){let r=this.shape.clone(),o=this.material,i=this.geometry.userData,s=et.create(Object.assign({},i,{shape:r})),l=new kn(s,o).copy(this,e);return l.shape=r,r.update(),l}raycast(e,r){Fe.prototype.raycast.call(this,e,r)}};var Hn=new Zt,ru=new Zt,jr=class extends Ar(Dt(bT),va){constructor(e=window.innerWidth,r=window.innerHeight,o=45,i,s=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=go.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=r,this.orthoCamera=new vT(e*-.5,e*.5,r*.5,r*-.5,i??-5e4,s),this.perspCamera=new ST(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 jr().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(Hn),this.targetOffset=Hn.distanceTo(e)}getTarget(e=new Zt){return this.getWorldDirection(ru),this.getWorldPosition(Hn),ru.multiplyScalar(this.targetOffset),e.copy(Hn).add(ru),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(Hn),Hn.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new wT),r=new Zt(0,0,1).applyQuaternion(e),o=new Zt().copy(Ph.DefaultUp);this.isUpVectorFlipped&&o.negate(),o.applyQuaternion(e);let i=new Zt().copy(Ph.DefaultUp).projectOnPlane(r),s=new Zt().crossVectors(i,o).dot(r)>=0?1:-1;this.angleOffsetFromUp=i.angleTo(o)*s}getViewFrontToObject(e){let r=e.getWorldPosition(new Zt),i=e.getWorldDirection(new Zt).multiplyScalar(this.targetOffset);return{position:r.clone().add(i),target:r}}getViewToObject(e){let r=e.getWorldPosition(new Zt),i=this.getWorldDirection(new Zt).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 un(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}};import{BufferGeometry as Oh,Matrix4 as _T}from"three";var Ch=new _T;var $a=class extends Fe{constructor(e=new Oh,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];lr(s)&&s.recomputeBoolean(e===!0,r)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let s=this.children[i];if(Lf(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=$t.getMeshSet(s.geometry,e===!0,r)),s.booleanMeshSetAddress===-1)return;$t.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1}else lr(s)&&s.needsTransformForDownstream===!0?($t.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.needsTransformForDownstream=!1):s.booleanWasTransformed===!0&&(Ch.multiplyMatrices(s.matrix,s.booleanMatrixInvOld),$t.transformMeshSet(s.booleanMeshSetAddress,Ch),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 $t.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let o=this.geometry;o.dispose(),this.geometry=new Oh,this.geometry.userData=o.userData,this.geometry.boundingSphere=o.boundingSphere;try{this.booleanMeshSetAddress=$t.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,_r(this),Tr(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()}};import{DirectionalLight as TT,CameraHelper as Ya}from"three";var Wn=class extends Ar(Dt(TT),vn){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 Ya(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,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 Ya&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Ya&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Ya&&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&&If(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}};import{PointLight as AT,Vector3 as Xa,Box3 as NT,Box3Helper as Ka,Color as IT}from"three";var qn=class extends Ar(Dt(AT),wn){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 Xa(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new Xa(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z),l=new NT(i,s),c=new Ka(l,new IT(16755200));c.visible=!1,this._gizmos.shadowmap=c,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 Ka&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Ka&&(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 Ka){let o=this.shadow.camera,i=new Xa(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new Xa(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}};import{SpotLight as PT,CameraHelper as Za,MathUtils as OT,Vector3 as Bh,Quaternion as CT}from"three";var Mh=new Bh,Lh=new Bh,Eh=new CT,$n=class extends Ar(Dt(PT),vi){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=OT.RAD2DEG*2*this.angle,o.aspect=1,o.near=100,o.far=2500;let i=new Za(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new $n().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 Za&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Za&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Za&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Lh.setFromMatrixPosition(this.matrixWorld),Eh.setFromRotationMatrix(this.matrixWorld),Mh.copy(this.up).applyQuaternion(Eh).negate().multiplyScalar(this.distance),this.target.position.copy(Lh).add(Mh),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 Dh=n=>n.tagName==="VIDEO",Yn=class{static resize(t,e,r){let o=t/e,i;if(!r.image)return;let s=r.image;Dh(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];_h(s)&&Yn.resizeTextureLayer(t,e,s.uniforms[`f${s.id}_texture`].value)}}static resizeComplex(t,e,r,o){let i=t/e,s,l=r.image;Dh(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 Qa=class extends Fe{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&&Yn.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var Xn=class extends Fe{constructor(e,r){super(e,r);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var Ja=class extends Xn{constructor(e,r){super(e,r);this.objectType="NonParametric"}};var Rh,os=new Promise(n=>{Rh=n}),Gh=!1;async function Vh(){if(Gh)return;let n=await import("./opentype.js");Rh(n),Gh=!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 MT(n){return await(await fetch(n)).arrayBuffer()}var LT=new ns;async function ou(n){let t,e,r=!1;if(n.url?(t=await MT(n.url),e=n.url,r=n.url.startsWith("/")):n.data&&(t=n.data.buffer),t){let o=await LT.parse(t);if(o)return{font:o,url:e,intercepted:r,arr:t}}}import{Vector3 as ET,Matrix4 as BT,Ray as DT}from"three";var Fh=new ET,zh=new BT,jh=new DT;function Uh(n){let t=!1;return n.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="TextGeometry"&&(t=!0)}),t}var el=class extends Fe{constructor(e,r,o){super(new En(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),_r(this),Tr(this);let{wrappedText:s,charCoords:l,charWidths:c}=this.geometry;this.wrappedText=s,this.charWidths=c,this.charCoords=l,this.resetBBoxNeedsUpdate(),this.invalidateDownstreamBooleanData()}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(zh.copy(o).invert(),jh.copy(e.ray).applyMatrix4(zh),jh.intersectBox(this.singleBBox,Fh)){let i=Fh.applyMatrix4(o),s=e.ray.origin.distanceTo(i);r.push({distance:s,point:i.clone(),object:this})}}};import{Box3 as GT,Matrix4 as Co,Sphere as Wh,Vector3 as RT}from"three";var $h=ll(Hh());var nu;yn.then(n=>{nu=n});var Yh=new Co,VT=new Co,FT=new Co,Qt=new GT,uo=new RT,zT=new Co,jT=new Co;var Kn=class extends Fe{constructor(e,r,o,i){super(o??r,i);this.subdivPointer=e;this.originalGeometry=r;this.subdividedGeometry=o;this.objectType="SubdivObject";this.hiddenMatrixOld=new Co;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new Co;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,r,o){let{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}=Ft.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}=Ft.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,_r(this),Tr(this),e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){Ft.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&Ft.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=Ft.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=Ft.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(e,r){this.geometry=this.originalGeometry,Fe.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,$h.SVD)(r),l=Yh.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=VT.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=FT.copy(c).transpose();this.shearScale=zT.makeScale(s[0],s[1],s[2]).multiply(p).premultiply(c),this.shearScaleInv=jT.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 Wh);let r=e.attributes.position,o=e.boundingSphere.center;Qt.setFromBufferAttribute(r),Qt.getCenter(o),e.boundingSphere.radius=o.distanceTo(Qt.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Qt.getSize(uo);let i={width:uo.x,height:uo.y,depth:uo.z};return this.geometry.userData.parameters=i,i}updateBoundingBox(e){let r=this.originalGeometry;Qt.min.set(e[0],e[2],e[4]),Qt.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(Qt.min.applyMatrix4(this.shearScaleInv),Qt.max.applyMatrix4(this.shearScaleInv)),r.boundingSphere===null&&(r.boundingSphere=new Wh);let o=r.boundingSphere.center;Qt.getCenter(o),r.boundingSphere.radius=o.distanceTo(Qt.max),isNaN(r.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Qt.getSize(uo);let i={width:uo.x,height:uo.y,depth:uo.z};return this.geometry.userData.parameters=i,i}freeSubdivPointer(){this.subdivPointer&&(nu.free_bvh(this.subdivPointer),nu.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,qh(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(qh(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 qh(n,t,e,r){let o=n.position.array,i=n.normal.array,s=Yh.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}import{BackSide as UT,BufferGeometry as kT,DoubleSide as HT,FrontSide as WT}from"three";function Xh(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=WT:t.side===1?n.side=UT:n.side=HT)}function qT(n,t){if(Array.isArray(n.material))for(let e of n.material)Xh(e,t);else{let e=n.material;Xh(e,t)}n.objectType==="SubdivObject"&&t.flatShading!==void 0&&(n.material.flatShading=!1,n.smoothShading=!t.flatShading,n.updateMesh())}function Kh(n,t,e){let r;if(t.geometry.type==="SubdivGeometry")r=Kn.createFromState(n,t,e);else{let o=t.geometry.type==="BooleanGeometry"?new kT:Ga(t.geometry,e),i="materials"in t?t.materials.map(s=>e.material(s)):e.material(t.material);fn.is2DParametricMesh(o.userData.type)?r=new Qa(o,i):o?.userData.type==="VectorGeometry"?r=new kn(o,i):t.geometry.type==="NonParametricGeometry"?r=new Ja(o,i):t.geometry.type==="BooleanGeometry"?(r=new $a(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 qT(r,t),r}function Zh(n,t,e){return t.type==="Mesh"?t.geometry.type==="TextGeometry"?new el(n,t,e):Kh(n,t,e):t.type==="Empty"?new zr().createFromState(n,t):t.type==="PointLight"?qn.createFromState(n,t,e):t.type==="SpotLight"?$n.createFromState(n,t,e):t.type==="DirectionalLight"?Wn.createFromState(n,t,e):Uo.is(t.type)?jr.createFromState(n,t):(console.error(t),new zr)}var Mo=class extends It{};import{Mesh as eg,Ray as YT,Matrix4 as XT,Raycaster as KT}from"three";function Qh(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,Tr(n),_r(n)),r.length===0&&o.length===0&&n.layers.set(0),e}function Jh(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 tg(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof eg)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)Qh(e,e.material[r])&&(t=!0);else Qh(e,e.material)&&(t=!0)}),t}function rg(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof eg)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)Jh(e,e.material[r])&&(t=!0);else Jh(e,e.material)&&(t=!0)}),t}function og(n){"material"in n&&ZT(n.material),"geometry"in n&&n.geometry.dispose()}function ZT(n){pf(n).forEach(t=>{t instanceof Mo||t.dispose()})}var QT=new KT,JT=new XT,eA=new YT;function ng(n,t,e){let r=n.cloner;if(r)for(let o of r.children){let i=JT.copy(o.matrixWorld).invert(),s=eA.copy(t.ray).applyMatrix4(i),l=n.matrixWorld;s.applyMatrix4(l);let c=QT;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 ig=new oA,iu=class extends ma(rA){constructor(e,r){super();this.objectType="Scene";this.backupFog=new nA(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 We(1,1,1,1);this.entityByUuid={};this.ambientLight=new tA(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.objectsData=e.objects.map(({data:o,id:i})=>({data:o,id:i})),this.init(e,r),this.matrixAutoUpdate=!1}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=rg(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=tg(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(Xe(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 jr&&this.switchActiveCamera(o)}this.traverse(o=>{lr(o)&&o.recomputeBoolean()}),setTimeout(()=>this.updateCloner())}clearScene(){this.traverseEntity(e=>{og(e)});for(let e of this.children)Bt(e)&&e.removeFromParent()}resetAfterClear(e,r){this.init(e,r)}createPersonalCamera(){let e=jr.createFromState(iu.PERSONAL_CAMERA_ID,{...na.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)Bt(s)&&!s.raycastLock&&s.visible&&((ar(s)||fa(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,r),ng(s,e,r)),o(s))};return o(this),r}traverseEntity(e){for(let r of this.children)Bt(r)&&r.traverseEntity(e)}traverseVisibleEntity(e){for(let r of this.children)Bt(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=Xe(e.color,r),this.backupFog.near=e.near,this.backupFog.far=e.far}dispose(){this.clearScene()}updateAmbientLight(e,r){Nf(this.ambientLight,e,r),e.groundColor!==void 0&&(this.ambientLight.groundColor=Xe(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)}updateObjectCloner(e){if(e.parameters.type==="toObject"){let r=e.parameters.toObject.object;if(!r)return;let o=this.find(r);if(o){let i,s=this.objectsData.find(l=>l.id===o.uuid);if(s&&(i=s.data),o.objectType==="SubdivObject"){let l=o;i&&!l.subdivPointer&&l.buildFromStore(i.geometry)}e.setObjectForSample(o),e.update()}}}updateCloner(){this.traverse(e=>{let r=e;r.cloner&&(r.cloner._updateCount(0),r.cloner.update(),this.updateObjectCloner(r.cloner))})}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=Zh(e,r,s);return l&&(this.entityByUuid[e]=l,i.add(l),lr(i)&&ar(l)&&(l.prevBooleanObjectParent=i),this.createChildrenObjects(o,l,s)),"cloner"in l&&(l.cloner?._updateCount(0),l.cloner?.update()),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 iA;return o.setFromPoints(r),o.getCenter(ig),ig}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 Fe)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)r.material[o]instanceof It&&e(r.material[o]);else r.material instanceof It&&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=iu;is.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var cg=ll(sg());var ag=new Map;function lg(n){if(typeof n=="string")return n;let t=ag.get(n);return t||(t={url:URL.createObjectURL(new Blob([n]))},ag.set(n,t)),t.url}var Zn=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:lg(t),format:"wav"},this.sound=new cg.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()}};import{Box2 as sA,Vector2 as Lo,Path as ug,Shape as aA,ShapeUtils as lA,Color as cA}from"three";var ol=class{constructor(){this.type="ShapePath";this.color=new cA;this.subPaths=[];this.currentPath=null}moveTo(t,e){return this.currentPath=new ug,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,b,x){let S=h.x,w=g.x,v=b.x,N=x.x,_=h.y,y=g.y,I=b.y,A=x.y,P=(N-v)*(_-I)-(A-I)*(S-v),T=(w-S)*(_-I)-(y-_)*(S-v),C=(A-I)*(w-S)-(N-v)*(y-_),L=P/C,j=T/C;if(C===0&&P!==0||L<=0||L>=1||j<0||j>1)return null;if(P===0&&C===0){for(let Y=0;Y<2;Y++)if(i(Y===0?b:x,h,g),r.loc===e.ORIGIN){let te=Y===0?b:x;return{x:te.x,y:te.y,t:r.t}}else if(r.loc===e.BETWEEN){let te=+(S+r.t*(w-S)).toPrecision(10),ie=+(_+r.t*(y-_)).toPrecision(10);return{x:te,y:ie,t:r.t}}return null}else{for(let ie=0;ie<2;ie++)if(i(ie===0?b:x,h,g),r.loc===e.ORIGIN){let U=ie===0?b:x;return{x:U.x,y:U.y,t:r.t}}let Y=+(S+L*(w-S)).toPrecision(10),te=+(_+L*(y-_)).toPrecision(10);return{x:Y,y:te,t:L}}}function i(h,g,b){let x=b.x-g.x,S=b.y-g.y,w=h.x-g.x,v=h.y-g.y,N=x*v-w*S;if(h.x===g.x&&h.y===g.y){r.loc=e.ORIGIN,r.t=0;return}if(h.x===b.x&&h.y===b.y){r.loc=e.DESTINATION,r.t=1;return}if(N<-Number.EPSILON){r.loc=e.LEFT;return}if(N>Number.EPSILON){r.loc=e.RIGHT;return}if(x*w<0||S*v<0){r.loc=e.BEHIND;return}if(Math.sqrt(x*x+S*S)<Math.sqrt(w*w+v*v)){r.loc=e.BEYOND;return}let _;x!==0?_=w/x:_=v/S,r.loc=e.BETWEEN,r.t=_}function s(h,g){let b=[],x=[];for(let S=1;S<h.length;S++){let w=h[S-1],v=h[S];for(let N=1;N<g.length;N++){let _=g[N-1],y=g[N],I=o(w,v,_,y);I!==null&&b.find(A=>A.t<=I.t+Number.EPSILON&&A.t>=I.t-Number.EPSILON)===void 0&&(b.push(I),x.push(new Lo(I.x,I.y)))}}return x}function l(h,g,b){let x=new Lo;g.getCenter(x);let S=[];return b.forEach(w=>{w.boundingBox.containsPoint(x)&&s(h,w.points).forEach(N=>{S.push({identifier:w.identifier,isCW:w.isCW,point:N})})}),S.sort((w,v)=>w.point.x-v.point.x),S}function c(h,g,b,x,S){(S==null||S==="")&&(S="nonzero");let w=new Lo;h.boundingBox.getCenter(w);let v=[new Lo(b,w.y),new Lo(x,w.y)],N=l(v,h.boundingBox,g);N.sort((T,C)=>T.point.x-C.point.x);let _=[],y=[];N.forEach(T=>{T.identifier===h.identifier?_.push(T):y.push(T)});let I=_[0].point.x,A=[],P=0;for(;P<y.length&&y[P].point.x<I;)A.length>0&&A[A.length-1]===y[P].identifier?A.pop():A.push(y[P].identifier),P++;if(A.push(h.identifier),S==="evenodd"){let T=A.length%2===0,C=A[A.length-2];return{identifier:h.identifier,isHole:T,for:C}}else if(S==="nonzero"){let T=!0,C=null,L=null;for(let j=0;j<A.length;j++){let Y=A[j];g[Y]&&(T?(L=g[Y].isCW,T=!1,C=Y):L!==g[Y].isCW&&(L=g[Y].isCW,T=!0))}return{identifier:h.identifier,isHole:T,for:C}}else console.warn('fill-rule: "'+S+'" is currently not implemented.')}let p=0,a=999999999,u=-999999999,d=[];this.subPaths.forEach(h=>{let g=h.getPoints(),b=-999999999,x=999999999,S=-999999999,w=999999999;for(let v=0;v<g.length;v++){let N=g[v];N.y>b&&(b=N.y),N.y<x&&(x=N.y),N.x>S&&(S=N.x),N.x<w&&(w=N.x)}u<=S&&(u=S+1),a>=w&&(a=w-1),g.length&&d.push({curves:h.curves,points:g,isCW:lA.isClockWise(g),identifier:p++,boundingBox:new sA(new Lo(w,x),new Lo(S,b))})});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 b=new aA;b.curves=h.curves,f.filter(S=>S?.isHole&&S.for===h.identifier).forEach(S=>{if(S){let w=d[S.identifier],v=new ug;v.curves=w.curves,b.holes.push(v)}}),m.push(b)}}),m}};import{CubicBezierCurve as fA,LineCurve as mA,QuadraticBezierCurve as hA}from"three";import{DRACOLoader as uA}from"three/examples/jsm/loaders/DRACOLoader.js";var po;function pA(){return po||(po=new uA,po.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),po.decoderPending}async function dA(n){if(po){let t={attributeIDs:po.defaultAttributeIDs,attributeTypes:po.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await po.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 pg(n,t){let[e,r]=fl(Ns.deserialize(new Uint8Array(n)));xf(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 pA();for(let i of o){let s=await dA(dt(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 gA(n,t){return t.state.glyphIndex===n||t.state.fina===n||t.state.medi===n||t.state.init===n}var nl=class{constructor(t,e){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=ou(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=ou(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(gA(d,m)||a)c.push({char:f,index:d,replacements:[m.state.glyphIndex],replacementChars:[m.char]}),p++;else{let h=m.char,g="",b=[m.state.glyphIndex],x=[],S=!1;for(;!S;)p++,g=e.charAt(p),h+=g,b.push(t.charToGlyphIndex(g)),x=t.stringToGlyphs(h),x.length===1&&x[0].index===d&&(S=!0),p>e.length&&(S=!0);c.push({char:f,index:d,replacements:b,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
|
+
}`,[st.simplex,e,o,s])}}();import{Matrix3 as nT}from"three";function wh(n,t,e){n.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var qa=class extends Fn{constructor(e,r){super(new nT);this.repeat=e;this.offset=r;wh(this.value,e,r)}updateMatrix(){wh(this.value,this.repeat,this.offset)}};var Sr=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)Kc(i,this,r)}get type(){return this.data.type}static create(t,e,r,o){if(r.type==="light")return wr.createLigherLayer(t,e,r,o);if(r.type==="texture"){let i=o.image(r.texture.image),s=new Ji(i,r.texture.wrapping),l=new Wa(i),c=new qa(r.texture.repeat,r.texture.offset),p=new Z(r.crop?1:0),a=new xe(r.projection??0),u=new xe(["x","y","z"].indexOf(r.axis)??0),d=new xe(r.side??0),f=new Qe(r.size?new Oo(r.size[0],r.size[1]):new Oo(100,100)),m=new Z(r.alpha??1),h=new xe(r.mode??0),g=new Wi(s,l,p,a,u,d,f,c,m,h),b=new we(g.calpha,"f");return new qe(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,b)}else if(r.type==="matcap"){let i=o.image(r.texture.image),s=new Ji(i,r.texture.wrapping),l=new Z(r.alpha??1),c=new xe(r.mode??0),p=new Qi(s,l,c),a=new we(p.calpha,"f");return new qe(t,e,r,{texture:s,alpha:l,mode:c},p,c,a)}else if(r.type==="displace")if(r.displacementType==="noise"){let i=new tt(new vr(...r.offset)),s=new Z(r.scale??10),l=new Z(r.intensity??8),c=new Z(r.movement??1),p=new xe(r.noiseType??0),a=new ki(l,c,i,s,p);return new ts(t,e,r,{offset:i,scale:s,intensity:l,movement:c,noiseType:p},a)}else throw new Error;else return sT(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:Sh(o.props,r,this,e)}else if(o.path[0]==="texture")return"texture"in e?Xc(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}},qe=class extends Sr{constructor(e,r,o,i,s,l,c){super(e,r,o,i);this.color=s;this.mode=l;this.alpha=c}},ts=class extends Sr{constructor(e,r,o,i,s){super(e,r,o,i);this.position=s}},wr=class extends Sr{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 Z(o.alpha),c=new xe(o.mode),p;if(!o.visible)s=new Io,p={};else if(o.category==="lambert"){s=new Yi;let a=new Te(i.color(o.emissive)??0);p={emissive:a},s.emissive=a}else if(o.category==="toon"){s=new Ki;let a=new Z(o.shininess??30),u=new Te(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}else if(o.category==="physical"){s=new Xi;let a=new Z(o.roughness??.3),u=new Z(o.metalness??0),d=new Z(o.reflectivity??.5);p={roughness:a,metalness:u,reflectivity:d},s.roughness=a,s.metalness=u,s.reflectivity=d}else{s=new Ua;let a=new Z(o.shininess??30),u=new Te(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}return s.alpha=new Z(1),s.shadingAlpha=l,s.shadingBlend=c,p.alpha=s.shadingAlpha,p.mode=s.shadingBlend,new wr(e,r,o,s,p)}};function _h(n){let t=n instanceof Sr?n.type:n;return t==="texture"||t==="displace_map"||t==="matcap"}function iT(n,t,e,r){switch(n.type){case"color":{let o=new Te(r.color??5855577),i=new Z(r.alpha??1),s=new we("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new xe(r.mode??0);return o.alpha=i,new qe(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}case"fresnel":{let o=new Te(r.color??16777215),i=new Z(r.bias??.1),s=new Z(r.scale??1),l=new Z(r.intensity??2),c=new Z(r.factor??1),p=new Z(r.alpha??1),a=new xe(r.mode??0),u=new Ri(o,i,s,l,c,p,a),d=new we(u.calpha,"f");return new qe(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 Z(r.filmThickness??30),i=new Z(r.movement??0),s=new tt(r.wavelengths??new vr(0,0,0)),l=new Z(r.noiseStrength??0),c=new Z(r.noiseScale??1),p=new tt(r.offset??new vr(0,0,0)),a=new Z(r.alpha??1),u=new Vi(o,i,s,l,c,p,a),d=new we(u.calpha,"f"),f=new xe(r.mode??0);return new qe(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 Z(r.thickness??10),i=new Z(r.ior??1.5),s=new Z(r.roughness??.5),l=rt.transmissionSize,c=rt.transmissionRenderTarget,p=rt.transmissionRenderTargetDepth,a=window.innerWidth,u=window.innerHeight,d=a>=u?new Qe(u/a,1):new Qe(1,a/u),f=new Z(r.alpha??1),m=new zi(o,i,s,l,c,p,d,f),h=new we(m.calpha,"f"),g=new xe(r.mode??0);return new qe(t,e,n,{thickness:o,ior:i,roughness:s,aspectRatio:d,alpha:f,mode:g},m,g,h)}case"toon":{let o=new xe(r.positioning??0),i;r.colors?i=new Kt(r.colors.length,r.colors):(i=new Kt(10,new Un(0,0,0,1)),i.value[1]=new Un(1,1,1,1));let s;r.steps?s=new Xt(r.steps.length,r.steps):(s=new Xt(10,1),s.value[0]=0);let l=new tt(r.source??new vr(0,0,0)),c=new ao(r.isWorldSpace??!0),p=new Z(r.noiseStrength??0),a=new Z(r.noiseScale??1),u=new zt(r.shadowColor),d=new tt(r.offset??new vr(0,0,0)),f=new Z(r.alpha??1),m=new es(o,i,s,l,c,p,a,u,d,f),h=new we(m.calpha,"f"),g=new xe(r.mode??0);return new qe(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 Te(r.outlineColor??16777215),i=new Te(r.contourColor??16777215),s=new Z(r.outlineWidth??.1),l=new Z(r.contourWidth??.1),c=new Z(r.outlineThreshold??.1),p=new Z(r.contourThreshold??.1),a=new Z(r.outlineSmoothing??.1),u=new Z(r.contourFrequency??.1),d=new tt(r.contourDirections??new vr(0,1,0)),f=new ao(r.positionalLines??!1),m=new ao(r.compensation??!0),h=rt.normalRenderTarget,g=rt.normalRenderTargetDepth,b=rt.pixelRatioNode,x=rt.resolution,S=new Z(r.alpha??1),w=new Fi(o,i,s,l,c,p,a,u,d,f,m,x,h,g,b,S),v=new we(w.calpha,"f"),N=new xe(r.mode??0);return new qe(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:S,mode:N},w,N,v)}case"depth":{let o=new xe(r.gradientType??0),i=new ao(r.smooth??!1),s=new Z(r.near??50),l=new Z(r.far??200),c=new Z(r.isVector??1),p=new Z(r.isWorldSpace??0),a=new tt(r.origin??new vr),u=new tt(r.direction??new vr),d;r.colors?d=new Kt(r.colors.length,r.colors):(d=new Kt(2,new Un(0,0,0,1)),d.value[1]=new Un(1,1,1,1));let f;r.steps?f=new Xt(r.steps.length,r.steps):(f=new Xt(2,1),f.value[0]=0);let m=new Z(r.alpha??1),h=new xe(r.mode??0),g=new ji(o,i,s,l,c,p,a,u,d,f,m),b=new we(g.calpha,"f");return new qe(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,b)}case"noise":{let o=new Z(r.scale??1),i=new tt(r.size??new vr(100,100,100)),s=new Z(r.move??1),l=new Qe(r.fA??new Oo(1.7,9.2)),c=new Qe(r.fB??new Oo(8.3,2.8)),p=new Qe(r.distortion??new Oo(1,1)),a=new zt(r.colorA),u=new zt(r.colorB),d=new zt(r.colorC),f=new zt(r.colorD),m=new Z(r.alpha??1),h=new xe(r.mode??0),g=new xe(r.noiseType??0),b=new Gi(o,i,s,l,c,p,a,u,d,f,m,g),x=new we(b.calpha,"f");return new qe(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},b,h,x)}case"normal":{let o=new tt(r.cnormal??new vr(1,1,1)),i=new Z(r.alpha??1),s=new xe(r.mode??0),l=new $i(o,i),c=new we("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return c.keywords.alpha=i,new qe(t,e,n,{cnormal:o,alpha:i,mode:s},l,s,c)}case"gradient":{let o=new xe(r.gradientType??0),i=new ao(r.smooth??!1),s;r.colors?s=new Kt(r.colors.length,r.colors):(s=new Kt(10,new Un(0,0,0,1)),s.value[1]=new Un(1,1,1,1));let l;r.steps?l=new Xt(r.steps.length,r.steps):(l=new Xt(10,1),l.value[0]=0);let c=new Qe(r.offset??new Oo(0,0)),p=new Qe(r.morph??new Oo(0,0)),a=new Z(r.angle??0),u=new Z(r.alpha??1),d=new xe(r.mode??0),f=new Hi(o,i,s,l,c,p,a,u),m=new we(f.calpha,"f");return new qe(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 Te(1,0,0,1),i=new Z(1),s=new we("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new xe(0);return o.alpha=i,new qe(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}}}function sT(n,t,e,r){let o=bh(e,r);return iT(e,n,t,o)}function Kc(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 It=class extends aT{constructor(e,r){super(void 0);this.data=e;this.layerIdGen=0;this.type="NodeMaterial";this.fog=!0,this.updaters=[],this.dithering=!0,this.vertexColors=!0,this.onBeforeCompile=this._onBeforeCompile,this.reset(e,r)}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.data.category}reset(e,r){let o=e.layers??ct.defaultTwoLayerData("phong").layers;this.layers=o.map(i=>Sr.create(this.layerIdGen++,i.id,i.data,r)),this.layers.reverse(),this.name=e.name??"Untitled Material",this.onUpdate(r),this.transparent=ct.isTransparent(e,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 wr),this.lightLayer===void 0&&(this.lightLayer=new wr(0,"",{...Nt.defaultData("light","phong"),visible:!1},new Io,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(e,r,o){if(this.data=r,this.transparent=ct.isTransparent(r,o),e.path[0]==="layers"){let i=e.path[1];if(i===void 0){if(this.layers.reverse(),e.type===4){let s=Sr.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=Sr.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 qe),r=this.layers.findIndex(o=>o instanceof wr);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 qe&&(o=new Ui(o,s.color,s.alpha,s.mode))}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new we("outgoingLight","f"),r=this.layers.findIndex(o=>o instanceof wr);if(this.layers.length>r+1){for(let o=r+1;o<this.layers.length;++o){let i=this.layers[o];i instanceof qe&&(e=new Ui(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 ts);if(e.length>0){let r=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(r=new bt(r,e[o].position,bt.ADD),r=new bt(r,new Z(.5).setReadonly(!0),bt.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"){let s=o(i.uniforms[`f${i.id}_intensity`].value,e,r);i.uniforms[`f${i.id}_intensity`].value=s}}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=($c[r.type]??[]).map(l=>r[l]),i=(Yc[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 ja;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}dispose(){this.layers.forEach(e=>e.dispose()),super.dispose()}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(It.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(n){n===!0&&this.version++,this.needsCompile=n},get:function(){return this.needsCompile}}});import{MathUtils as Jc,BufferAttribute as lT,Vector3 as eu,Float32BufferAttribute as Th}from"three";function cT(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 eu(r[i],r[i+1],r[i+2]);t.has(s)?t.get(s)?.normals.push(l):t.set(s,{normals:[l],result:new eu})}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 Th(o,3))}function uT(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 eu;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 Th(e,3))}function _r(n){if(Array.isArray(n.material)){for(let t of n.material)if(t.getLayersOfType("outline").length===0)return}else if(!(n.material instanceof It)||n.material.getLayersOfType("outline").length===0)return;n.objectType==="Mesh2D"||n.objectType==="TextFrame"&&n.data?.geometry?.depth===0?uT(n):cT(n)}function Tr(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=[Jc.seededRandom(r),Jc.seededRandom(r+1e4),Jc.seededRandom(r+2e4)];for(let i=0;i<t.length;i++)e[i]=o[i%3];n.geometry.setAttribute("randomColor",new lT(e,3))}import{Group as pT}from"three";var Ar=(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=Xe(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 zr=class extends Ar(Dt(pT),Sn){constructor(){super(...arguments);this.objectType="EmptyObject"}createFromState(e,r){let o=new zr().fromState(r);return o.uuid=e,o.objectHelper.update(),o.setFromClonerState(r.cloner||null),o}get cloner(){return this._cloner}set cloner(e){this._cloner&&(this.remove(this._cloner),this._cloner.removeSampleObjectClones()),e&&this.add(e),this._cloner=e}setFromClonerState(e){e===null||e.disabled?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Dr(this,e)),this.cloner.fromClonerState(e))}};function mT(n){let t=n.parent;for(;t;){if(t instanceof zr&&t.cloner?.parameters.hideBase)return!0;t=t.parent}return!1}var Fe=class extends Dt(dT){constructor(e,r){super(e,r);this.isAbstractMesh=!0;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new fT;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||mT(this)}get isMesh(){return!this.isGroup}set isMesh(e){}get cloner(){return this._cloner}set cloner(e){this._cloner&&(this.remove(this._cloner),this._cloner.removeSampleObjectClones()),e&&this.add(e),this._cloner=e}updateGeometry(e,r){let o=this.geometry,i=Lc[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(),_r(this),o.getAttribute("randomColor")&&Tr(this)}clone(e){let r=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,o=Li(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 Dr(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null||e.disabled?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Dr(this,e)),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&&($t.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),lr(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)ar(e)&&(e.freeBooleanPointer(),lr(e)&&e.invalidateUpstreamBooleanData())}};var yT=new tu(0,0,1),Ah=new tu,Nh=new tu,Ih=new gT,kn=class extends Fe{constructor(e=et.create({}),r){super(e,r);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new hT;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),Ih.getNormalMatrix(this.matrixWorld),Ah.copy(yT).applyMatrix3(Ih).normalize(),Nh.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(Ah,Nh)}clone(e){let r=this.shape.clone(),o=this.material,i=this.geometry.userData,s=et.create(Object.assign({},i,{shape:r})),l=new kn(s,o).copy(this,e);return l.shape=r,r.update(),l}raycast(e,r){Fe.prototype.raycast.call(this,e,r)}};var Hn=new Zt,ru=new Zt,jr=class extends Ar(Dt(xT),va){constructor(e=window.innerWidth,r=window.innerHeight,o=45,i,s=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=go.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=r,this.orthoCamera=new bT(e*-.5,e*.5,r*.5,r*-.5,i??-5e4,s),this.perspCamera=new vT(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 jr().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(Hn),this.targetOffset=Hn.distanceTo(e)}getTarget(e=new Zt){return this.getWorldDirection(ru),this.getWorldPosition(Hn),ru.multiplyScalar(this.targetOffset),e.copy(Hn).add(ru),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(Hn),Hn.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new ST),r=new Zt(0,0,1).applyQuaternion(e),o=new Zt().copy(Ph.DefaultUp);this.isUpVectorFlipped&&o.negate(),o.applyQuaternion(e);let i=new Zt().copy(Ph.DefaultUp).projectOnPlane(r),s=new Zt().crossVectors(i,o).dot(r)>=0?1:-1;this.angleOffsetFromUp=i.angleTo(o)*s}getViewFrontToObject(e){let r=e.getWorldPosition(new Zt),i=e.getWorldDirection(new Zt).multiplyScalar(this.targetOffset);return{position:r.clone().add(i),target:r}}getViewToObject(e){let r=e.getWorldPosition(new Zt),i=this.getWorldDirection(new Zt).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 un(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}};import{BufferGeometry as Oh,Matrix4 as wT}from"three";var Ch=new wT;var $a=class extends Fe{constructor(e=new Oh,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];lr(s)&&s.recomputeBoolean(e===!0,r)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let s=this.children[i];if(Lf(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=$t.getMeshSet(s.geometry,e===!0,r)),s.booleanMeshSetAddress===-1)return;$t.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1}else lr(s)&&s.needsTransformForDownstream===!0?($t.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.needsTransformForDownstream=!1):s.booleanWasTransformed===!0&&(Ch.multiplyMatrices(s.matrix,s.booleanMatrixInvOld),$t.transformMeshSet(s.booleanMeshSetAddress,Ch),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 $t.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let o=this.geometry;o.dispose(),this.geometry=new Oh,this.geometry.userData=o.userData,this.geometry.boundingSphere=o.boundingSphere;try{this.booleanMeshSetAddress=$t.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,_r(this),Tr(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()}};import{DirectionalLight as _T,CameraHelper as Ya}from"three";var Wn=class extends Ar(Dt(_T),vn){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 Ya(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,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 Ya&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Ya&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Ya&&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&&If(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}};import{PointLight as TT,Vector3 as Xa,Box3 as AT,Box3Helper as Ka,Color as NT}from"three";var qn=class extends Ar(Dt(TT),wn){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 Xa(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new Xa(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z),l=new AT(i,s),c=new Ka(l,new NT(16755200));c.visible=!1,this._gizmos.shadowmap=c,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 Ka&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Ka&&(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 Ka){let o=this.shadow.camera,i=new Xa(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new Xa(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}};import{SpotLight as IT,CameraHelper as Za,MathUtils as PT,Vector3 as Bh,Quaternion as OT}from"three";var Mh=new Bh,Lh=new Bh,Eh=new OT,$n=class extends Ar(Dt(IT),vi){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=PT.RAD2DEG*2*this.angle,o.aspect=1,o.near=100,o.far=2500;let i=new Za(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new $n().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 Za&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Za&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Za&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Lh.setFromMatrixPosition(this.matrixWorld),Eh.setFromRotationMatrix(this.matrixWorld),Mh.copy(this.up).applyQuaternion(Eh).negate().multiplyScalar(this.distance),this.target.position.copy(Lh).add(Mh),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 Dh=n=>n.tagName==="VIDEO",Yn=class{static resize(t,e,r){let o=t/e,i;if(!r.image)return;let s=r.image;Dh(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];_h(s)&&Yn.resizeTextureLayer(t,e,s.uniforms[`f${s.id}_texture`].value)}}static resizeComplex(t,e,r,o){let i=t/e,s,l=r.image;Dh(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 Qa=class extends Fe{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&&Yn.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var Xn=class extends Fe{constructor(e,r){super(e,r);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var Ja=class extends Xn{constructor(e,r){super(e,r);this.objectType="NonParametric"}};var Rh,os=new Promise(n=>{Rh=n}),Gh=!1;async function Vh(){if(Gh)return;let n=await import("./opentype.js");Rh(n),Gh=!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 CT(n){return await(await fetch(n)).arrayBuffer()}var MT=new ns;async function ou(n){let t,e,r=!1;if(n.url?(t=await CT(n.url),e=n.url,r=n.url.startsWith("/")):n.data&&(t=n.data.buffer),t){let o=await MT.parse(t);if(o)return{font:o,url:e,intercepted:r,arr:t}}}import{Vector3 as LT,Matrix4 as ET,Ray as BT}from"three";var Fh=new LT,zh=new ET,jh=new BT;function Uh(n){let t=!1;return n.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="TextGeometry"&&(t=!0)}),t}var el=class extends Fe{constructor(e,r,o){super(new En(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),_r(this),Tr(this);let{wrappedText:s,charCoords:l,charWidths:c}=this.geometry;this.wrappedText=s,this.charWidths=c,this.charCoords=l,this.resetBBoxNeedsUpdate(),this.invalidateDownstreamBooleanData()}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(zh.copy(o).invert(),jh.copy(e.ray).applyMatrix4(zh),jh.intersectBox(this.singleBBox,Fh)){let i=Fh.applyMatrix4(o),s=e.ray.origin.distanceTo(i);r.push({distance:s,point:i.clone(),object:this})}}};import{Box3 as DT,Matrix4 as Co,Sphere as Wh,Vector3 as GT}from"three";var $h=ll(Hh());var nu;yn.then(n=>{nu=n});var Yh=new Co,RT=new Co,VT=new Co,Qt=new DT,uo=new GT,FT=new Co,zT=new Co;var Kn=class extends Fe{constructor(e,r,o,i){super(o??r,i);this.subdivPointer=e;this.originalGeometry=r;this.subdividedGeometry=o;this.objectType="SubdivObject";this.hiddenMatrixOld=new Co;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new Co;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,r,o){let{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}=Ft.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}=Ft.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,_r(this),Tr(this),e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){Ft.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&Ft.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=Ft.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=Ft.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(e,r){this.geometry=this.originalGeometry,Fe.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,$h.SVD)(r),l=Yh.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=RT.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=VT.copy(c).transpose();this.shearScale=FT.makeScale(s[0],s[1],s[2]).multiply(p).premultiply(c),this.shearScaleInv=zT.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 Wh);let r=e.attributes.position,o=e.boundingSphere.center;Qt.setFromBufferAttribute(r),Qt.getCenter(o),e.boundingSphere.radius=o.distanceTo(Qt.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Qt.getSize(uo);let i={width:uo.x,height:uo.y,depth:uo.z};return this.geometry.userData.parameters=i,i}updateBoundingBox(e){let r=this.originalGeometry;Qt.min.set(e[0],e[2],e[4]),Qt.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(Qt.min.applyMatrix4(this.shearScaleInv),Qt.max.applyMatrix4(this.shearScaleInv)),r.boundingSphere===null&&(r.boundingSphere=new Wh);let o=r.boundingSphere.center;Qt.getCenter(o),r.boundingSphere.radius=o.distanceTo(Qt.max),isNaN(r.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Qt.getSize(uo);let i={width:uo.x,height:uo.y,depth:uo.z};return this.geometry.userData.parameters=i,i}freeSubdivPointer(){this.subdivPointer&&(nu.free_bvh(this.subdivPointer),nu.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,qh(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(qh(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 qh(n,t,e,r){let o=n.position.array,i=n.normal.array,s=Yh.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}import{BackSide as jT,BufferGeometry as UT,DoubleSide as kT,FrontSide as HT}from"three";function Xh(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=HT:t.side===1?n.side=jT:n.side=kT)}function WT(n,t){if(Array.isArray(n.material))for(let e of n.material)Xh(e,t);else{let e=n.material;Xh(e,t)}n.objectType==="SubdivObject"&&t.flatShading!==void 0&&(n.material.flatShading=!1,n.smoothShading=!t.flatShading,n.updateMesh())}function Kh(n,t,e){let r;if(t.geometry.type==="SubdivGeometry")r=Kn.createFromState(n,t,e);else{let o=t.geometry.type==="BooleanGeometry"?new UT:Ga(t.geometry,e),i="materials"in t?t.materials.map(s=>e.material(s)):e.material(t.material);fn.is2DParametricMesh(o.userData.type)?r=new Qa(o,i):o?.userData.type==="VectorGeometry"?r=new kn(o,i):t.geometry.type==="NonParametricGeometry"?r=new Ja(o,i):t.geometry.type==="BooleanGeometry"?(r=new $a(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 WT(r,t),r}function Zh(n,t,e){return t.type==="Mesh"?t.geometry.type==="TextGeometry"?new el(n,t,e):Kh(n,t,e):t.type==="Empty"?new zr().createFromState(n,t):t.type==="PointLight"?qn.createFromState(n,t,e):t.type==="SpotLight"?$n.createFromState(n,t,e):t.type==="DirectionalLight"?Wn.createFromState(n,t,e):Uo.is(t.type)?jr.createFromState(n,t):(console.error(t),new zr)}var Mo=class extends It{};import{Mesh as eg,Ray as $T,Matrix4 as YT,Raycaster as XT}from"three";function Qh(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,Tr(n),_r(n)),r.length===0&&o.length===0&&n.layers.set(0),e}function Jh(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 tg(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof eg)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)Qh(e,e.material[r])&&(t=!0);else Qh(e,e.material)&&(t=!0)}),t}function rg(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof eg)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)Jh(e,e.material[r])&&(t=!0);else Jh(e,e.material)&&(t=!0)}),t}function og(n){"material"in n&&KT(n.material),"geometry"in n&&n.geometry.dispose()}function KT(n){pf(n).forEach(t=>{t instanceof Mo||t.dispose()})}var ZT=new XT,QT=new YT,JT=new $T;function ng(n,t,e){let r=n.cloner;if(r)for(let o of r.children){let i=QT.copy(o.matrixWorld).invert(),s=JT.copy(t.ray).applyMatrix4(i),l=n.matrixWorld;s.applyMatrix4(l);let c=ZT;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 ig=new rA,iu=class extends ma(tA){constructor(e,r){super();this.objectType="Scene";this.backupFog=new oA(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 We(1,1,1,1);this.entityByUuid={};this.ambientLight=new eA(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.objectsData=e.objects.map(({data:o,id:i})=>({data:o,id:i})),this.init(e,r),this.matrixAutoUpdate=!1}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=rg(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=tg(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(Xe(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 jr&&this.switchActiveCamera(o)}this.traverse(o=>{lr(o)&&o.recomputeBoolean()}),setTimeout(()=>this.updateCloner())}clearScene(){this.traverseEntity(e=>{og(e)});for(let e of this.children)Bt(e)&&e.removeFromParent()}resetAfterClear(e,r){this.init(e,r)}createPersonalCamera(){let e=jr.createFromState(iu.PERSONAL_CAMERA_ID,{...na.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)Bt(s)&&!s.raycastLock&&s.visible&&((ar(s)||fa(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,r),ng(s,e,r)),o(s))};return o(this),r}traverseEntity(e){for(let r of this.children)Bt(r)&&r.traverseEntity(e)}traverseVisibleEntity(e){for(let r of this.children)Bt(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=Xe(e.color,r),this.backupFog.near=e.near,this.backupFog.far=e.far}dispose(){this.clearScene()}updateAmbientLight(e,r){Nf(this.ambientLight,e,r),e.groundColor!==void 0&&(this.ambientLight.groundColor=Xe(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)}updateObjectCloner(e){if(e.parameters.type==="toObject"){let r=e.parameters.toObject.object;if(!r)return;let o=this.find(r);if(o){let i,s=this.objectsData.find(l=>l.id===o.uuid);if(s&&(i=s.data),o.objectType==="SubdivObject"){let l=o;i&&!l.subdivPointer&&l.buildFromStore(i.geometry)}e.setObjectForSample(o),e.update()}}}updateCloner(){this.traverse(e=>{let r=e;r.cloner&&(r.cloner._updateCount(0),r.cloner.update(),this.updateObjectCloner(r.cloner))})}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=Zh(e,r,s);return l&&(this.entityByUuid[e]=l,i.add(l),lr(i)&&ar(l)&&(l.prevBooleanObjectParent=i),this.createChildrenObjects(o,l,s)),"cloner"in l&&(l.cloner?._updateCount(0),l.cloner?.update()),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 nA;return o.setFromPoints(r),o.getCenter(ig),ig}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 Fe)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)r.material[o]instanceof It&&e(r.material[o]);else r.material instanceof It&&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=iu;is.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var cg=ll(sg());var ag=new Map;function lg(n){if(typeof n=="string")return n;let t=ag.get(n);return t||(t={url:URL.createObjectURL(new Blob([n]))},ag.set(n,t)),t.url}var Zn=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:lg(t),format:"wav"},this.sound=new cg.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()}};import{Box2 as iA,Vector2 as Lo,Path as ug,Shape as sA,ShapeUtils as aA,Color as lA}from"three";var ol=class{constructor(){this.type="ShapePath";this.color=new lA;this.subPaths=[];this.currentPath=null}moveTo(t,e){return this.currentPath=new ug,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,b,x){let S=h.x,w=g.x,v=b.x,N=x.x,_=h.y,y=g.y,I=b.y,A=x.y,P=(N-v)*(_-I)-(A-I)*(S-v),T=(w-S)*(_-I)-(y-_)*(S-v),C=(A-I)*(w-S)-(N-v)*(y-_),L=P/C,j=T/C;if(C===0&&P!==0||L<=0||L>=1||j<0||j>1)return null;if(P===0&&C===0){for(let Y=0;Y<2;Y++)if(i(Y===0?b:x,h,g),r.loc===e.ORIGIN){let te=Y===0?b:x;return{x:te.x,y:te.y,t:r.t}}else if(r.loc===e.BETWEEN){let te=+(S+r.t*(w-S)).toPrecision(10),ie=+(_+r.t*(y-_)).toPrecision(10);return{x:te,y:ie,t:r.t}}return null}else{for(let ie=0;ie<2;ie++)if(i(ie===0?b:x,h,g),r.loc===e.ORIGIN){let U=ie===0?b:x;return{x:U.x,y:U.y,t:r.t}}let Y=+(S+L*(w-S)).toPrecision(10),te=+(_+L*(y-_)).toPrecision(10);return{x:Y,y:te,t:L}}}function i(h,g,b){let x=b.x-g.x,S=b.y-g.y,w=h.x-g.x,v=h.y-g.y,N=x*v-w*S;if(h.x===g.x&&h.y===g.y){r.loc=e.ORIGIN,r.t=0;return}if(h.x===b.x&&h.y===b.y){r.loc=e.DESTINATION,r.t=1;return}if(N<-Number.EPSILON){r.loc=e.LEFT;return}if(N>Number.EPSILON){r.loc=e.RIGHT;return}if(x*w<0||S*v<0){r.loc=e.BEHIND;return}if(Math.sqrt(x*x+S*S)<Math.sqrt(w*w+v*v)){r.loc=e.BEYOND;return}let _;x!==0?_=w/x:_=v/S,r.loc=e.BETWEEN,r.t=_}function s(h,g){let b=[],x=[];for(let S=1;S<h.length;S++){let w=h[S-1],v=h[S];for(let N=1;N<g.length;N++){let _=g[N-1],y=g[N],I=o(w,v,_,y);I!==null&&b.find(A=>A.t<=I.t+Number.EPSILON&&A.t>=I.t-Number.EPSILON)===void 0&&(b.push(I),x.push(new Lo(I.x,I.y)))}}return x}function l(h,g,b){let x=new Lo;g.getCenter(x);let S=[];return b.forEach(w=>{w.boundingBox.containsPoint(x)&&s(h,w.points).forEach(N=>{S.push({identifier:w.identifier,isCW:w.isCW,point:N})})}),S.sort((w,v)=>w.point.x-v.point.x),S}function c(h,g,b,x,S){(S==null||S==="")&&(S="nonzero");let w=new Lo;h.boundingBox.getCenter(w);let v=[new Lo(b,w.y),new Lo(x,w.y)],N=l(v,h.boundingBox,g);N.sort((T,C)=>T.point.x-C.point.x);let _=[],y=[];N.forEach(T=>{T.identifier===h.identifier?_.push(T):y.push(T)});let I=_[0].point.x,A=[],P=0;for(;P<y.length&&y[P].point.x<I;)A.length>0&&A[A.length-1]===y[P].identifier?A.pop():A.push(y[P].identifier),P++;if(A.push(h.identifier),S==="evenodd"){let T=A.length%2===0,C=A[A.length-2];return{identifier:h.identifier,isHole:T,for:C}}else if(S==="nonzero"){let T=!0,C=null,L=null;for(let j=0;j<A.length;j++){let Y=A[j];g[Y]&&(T?(L=g[Y].isCW,T=!1,C=Y):L!==g[Y].isCW&&(L=g[Y].isCW,T=!0))}return{identifier:h.identifier,isHole:T,for:C}}else console.warn('fill-rule: "'+S+'" is currently not implemented.')}let p=0,a=999999999,u=-999999999,d=[];this.subPaths.forEach(h=>{let g=h.getPoints(),b=-999999999,x=999999999,S=-999999999,w=999999999;for(let v=0;v<g.length;v++){let N=g[v];N.y>b&&(b=N.y),N.y<x&&(x=N.y),N.x>S&&(S=N.x),N.x<w&&(w=N.x)}u<=S&&(u=S+1),a>=w&&(a=w-1),g.length&&d.push({curves:h.curves,points:g,isCW:aA.isClockWise(g),identifier:p++,boundingBox:new iA(new Lo(w,x),new Lo(S,b))})});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 b=new sA;b.curves=h.curves,f.filter(S=>S?.isHole&&S.for===h.identifier).forEach(S=>{if(S){let w=d[S.identifier],v=new ug;v.curves=w.curves,b.holes.push(v)}}),m.push(b)}}),m}};import{CubicBezierCurve as dA,LineCurve as fA,QuadraticBezierCurve as mA}from"three";import{DRACOLoader as cA}from"three/examples/jsm/loaders/DRACOLoader.js";var po;function uA(){return po||(po=new cA,po.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),po.decoderPending}async function pA(n){if(po){let t={attributeIDs:po.defaultAttributeIDs,attributeTypes:po.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await po.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 pg(n,t){let[e,r]=fl(Ns.deserialize(new Uint8Array(n)));xf(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 uA();for(let i of o){let s=await pA(ft(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 hA(n,t){return t.state.glyphIndex===n||t.state.fina===n||t.state.medi===n||t.state.init===n}var nl=class{constructor(t,e){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=ou(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=ou(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(hA(d,m)||a)c.push({char:f,index:d,replacements:[m.state.glyphIndex],replacementChars:[m.char]}),p++;else{let h=m.char,g="",b=[m.state.glyphIndex],x=[],S=!1;for(;!S;)p++,g=e.charAt(p),h+=g,b.push(t.charToGlyphIndex(g)),x=t.stringToGlyphs(h),x.length===1&&x[0].index===d&&(S=!0),p>e.length&&(S=!0);c.push({char:f,index:d,replacements:b,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 S=t[x],w={features:{liga:!0}},v=[];try{v=r.stringToGlyphs(S,w)}catch(_){console.warn(_)}u=this.getLineInitialOffsetX(s[x],l,e.horizontalAlign,S,c);let N=[];try{N=await this.reverseLigaturesTable(r,S,v)}catch(_){console.warn(_)}a=this.computeSpaceWidthForLine(t,x,e);for(let _=0;_<v.length;_++){let y=v[_],I=y.index===0?`
|
|
1336
1336
|
`:y.unicode?String.fromCharCode(y.unicode):void 0,A=N[_],P=0,T=0;_===0&&e.horizontalAlign===2&&y.leftSideBearing!==void 0&&(T=-y.leftSideBearing*o),g&&(P=r.getKerningValue(y,g)*o),u+=T+P;let C=0;if(I===`
|
|
1337
1337
|
`)C=p;else if(I===" ")C=a;else{let L=this.createPath(y,o,u,d,e);L&&(C=L.offsetX-(P+T),f.push(L.path))}if(A.replacements.length===1)h[x].push([u,d]),m[x].push(C);else{let L=A.replacements.map(ie=>(r.glyphs.get(ie).advanceWidth??0)*o),j=L.reduce((ie,U)=>ie+=U,0),Y=L.map(ie=>ie/j),te=u;for(let ie=0;ie<Y.length;ie++){let U=C*Y[ie];h[x].push([te,d]),m[x].push(U),te+=U}}u+=C,g=y}d-=i}let b=[];for(let x=0,S=f.length;x<S;x++)b.push(...f[x].toShapes());return{shapes:b,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 ol,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=
|
|
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 ol,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=gA(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 gA(n){if(n.length){let t=n[0];if(t instanceof fA)return t.v1;if(t instanceof dA||t instanceof mA)return t.v0}}var ss=class{constructor(t,e={}){this.deletedMaterial=new Mo(ct.defaultTwoLayerData("phong"),this);this.deletedImage=new Po(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 Mo(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 It(t,this)}getMaterials(){return this.materials}addImage(t,e){return this.images[t]?(this.images[t].updateSrc(e.data),!0):(this.images[t]=new Po(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 jn(t,this.onImageLoad)}addColor(t,e){return this.colors[t]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(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 lo(e.r,e.g,e.b,e.a):this.colors[t]=new lo(e.r,e.g,e.b,1),!1)}updateColor(t,e){if(this.colors[t]){this.onColorOrImageUpdate&&this.onColorOrImageUpdate(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 We(0,0,0,0))}else return"a"in t?new We(t.r,t.g,t.b,t.a):new We(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 Zn)return e;{let r=new Zn({src:e});return this.audios[t]=r,r}}deleteAudio(t){this.audios[t]&&delete this.audios[t]}addFont(t,e){this.fonts[t]=new nl(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,this._onFontLoad=void 0,Object.values(this.audios).forEach(e=>{e instanceof Zn&&e.dispose()}),this.audios={}}},m8=new ss(sa.emptyData());import{Mesh as x8}from"three";import{mergeBufferGeometries as S8}from"three/examples/jsm/utils/BufferGeometryUtils.js";function dg(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}import{Color as fg,ShaderLib as yA}from"three";function mg(n){let t=new Set;return n.traverse(e=>{if(ar(e))if(Ge(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(xA(e)){Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new fg,specularColor:new fg});let o=0;e.onBeforeCompile=(i,s)=>{r&&r(i,s),i.uniforms=Object.assign({},yA.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 bA(e)||(e.onBeforeCompile=(o,i)=>{r&&r(o,i),e.transparent=!1})}),n}function xA(n){return n.getLayersOfType("transmission").length>0}function bA(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 hg(n){return n.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),n}function gg(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}import{mergeBufferGeometries as vA}from"three/examples/jsm/utils/BufferGeometryUtils.js";function yg(n){let t=[];return n.traverse(e=>{e instanceof Dr&&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&&dg(c),c}),s=vA(e.parameters.hideBase?i:[r instanceof Fe?r.geometry:[],...i]);r instanceof Fe&&(r.geometry=s),r.remove(e),r.cloner=void 0}),n}function xg(n){return n.traverse(t=>{t.matrixAutoUpdate=!0}),n}function bg(n){Object.values(n.shared.materials).forEach(t=>{su(t)}),n.scene.objects.traverse((t,e)=>{"material"in e?su(e.material):"materials"in e&&e.materials.forEach(r=>{su(r)})})}function su(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 vg="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",au=class extends wA{load(t,e,r,o=console.error){let i=new SA(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(vg+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(vg),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 pg(t,bg);Uh(e)&&await Vh();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&&Af(s)&&Object.assign(s,{makeDefault:!0})}return o=yg(o),o=mg(o),o=hg(o),o=gg(o),o=xg(o),o}};export{au as default};
|