@splinetool/loader 0.9.77 → 0.9.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- var Vf=Object.create;var Hi=Object.defineProperty;var zf=Object.getOwnPropertyDescriptor;var Uf=Object.getOwnPropertyNames;var kf=Object.getPrototypeOf,jf=Object.prototype.hasOwnProperty;var yc=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),xc=(i,t)=>{for(var e in t)Hi(i,e,{get:t[e],enumerable:!0})},vc=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Uf(t))!jf.call(i,o)&&o!==e&&Hi(i,o,{get:()=>t[o],enumerable:!(r=zf(t,o))||r.enumerable});return i};var bc=(i,t,e)=>(e=i!=null?Vf(kf(i)):{},vc(t||!i||!i.__esModule?Hi(e,"default",{value:i,enumerable:!0}):e,i)),Hf=i=>vc(Hi({},"__esModule",{value:!0}),i);var tf=yc(Da=>{(function(){"use strict";var i=function(){this.init()};i.prototype={init:function(){var l=this||t;return l._counter=1e3,l._html5AudioPool=[],l.html5PoolSize=10,l._codecs={},l._howls=[],l._muted=!1,l._volume=1,l._canPlayEvent="canplaythrough",l._navigator=typeof window<"u"&&window.navigator?window.navigator:null,l.masterGain=null,l.noAudio=!1,l.usingWebAudio=!0,l.autoSuspend=!0,l.ctx=null,l.autoUnlock=!0,l._setup(),l},volume:function(l){var u=this||t;if(l=parseFloat(l),u.ctx||p(),typeof l<"u"&&l>=0&&l<=1){if(u._volume=l,u._muted)return u;u.usingWebAudio&&u.masterGain.gain.setValueAtTime(l,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var m=u._howls[d]._getSoundIds(),f=0;f<m.length;f++){var h=u._howls[d]._soundById(m[f]);h&&h._node&&(h._node.volume=h._volume*l)}return u}return u._volume},mute:function(l){var u=this||t;u.ctx||p(),u._muted=l,u.usingWebAudio&&u.masterGain.gain.setValueAtTime(l?0:u._volume,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var m=u._howls[d]._getSoundIds(),f=0;f<m.length;f++){var h=u._howls[d]._soundById(m[f]);h&&h._node&&(h._node.muted=l?!0:h._muted)}return u},stop:function(){for(var l=this||t,u=0;u<l._howls.length;u++)l._howls[u].stop();return l},unload:function(){for(var l=this||t,u=l._howls.length-1;u>=0;u--)l._howls[u].unload();return l.usingWebAudio&&l.ctx&&typeof l.ctx.close<"u"&&(l.ctx.close(),l.ctx=null,p()),l},codecs:function(l){return(this||t)._codecs[l.replace(/^x-/,"")]},_setup:function(){var l=this||t;if(l.state=l.ctx&&l.ctx.state||"suspended",l._autoSuspend(),!l.usingWebAudio)if(typeof Audio<"u")try{var u=new Audio;typeof u.oncanplaythrough>"u"&&(l._canPlayEvent="canplay")}catch{l.noAudio=!0}else l.noAudio=!0;try{var u=new Audio;u.muted&&(l.noAudio=!0)}catch{}return l.noAudio||l._setupCodecs(),l},_setupCodecs:function(){var l=this||t,u=null;try{u=typeof Audio<"u"?new Audio:null}catch{return l}if(!u||typeof u.canPlayType!="function")return l;var d=u.canPlayType("audio/mpeg;").replace(/^no$/,""),m=l._navigator?l._navigator.userAgent:"",f=m.match(/OPR\/([0-6].)/g),h=f&&parseInt(f[0].split("/")[1],10)<33,g=m.indexOf("Safari")!==-1&&m.indexOf("Chrome")===-1,x=m.match(/Version\/(.*?) /),v=g&&x&&parseInt(x[1],10)<15;return l._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:!!(!v&&u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!v&&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$/,"")},l},_unlockAudio:function(){var l=this||t;if(!(l._audioUnlocked||!l.ctx)){l._audioUnlocked=!1,l.autoUnlock=!1,!l._mobileUnloaded&&l.ctx.sampleRate!==44100&&(l._mobileUnloaded=!0,l.unload()),l._scratchBuffer=l.ctx.createBuffer(1,1,22050);var u=function(d){for(;l._html5AudioPool.length<l.html5PoolSize;)try{var m=new Audio;m._unlocked=!0,l._releaseHtml5Audio(m)}catch{l.noAudio=!0;break}for(var f=0;f<l._howls.length;f++)if(!l._howls[f]._webAudio)for(var h=l._howls[f]._getSoundIds(),g=0;g<h.length;g++){var x=l._howls[f]._soundById(h[g]);x&&x._node&&!x._node._unlocked&&(x._node._unlocked=!0,x._node.load())}l._autoResume();var v=l.ctx.createBufferSource();v.buffer=l._scratchBuffer,v.connect(l.ctx.destination),typeof v.start>"u"?v.noteOn(0):v.start(0),typeof l.ctx.resume=="function"&&l.ctx.resume(),v.onended=function(){v.disconnect(0),l._audioUnlocked=!0,document.removeEventListener("touchstart",u,!0),document.removeEventListener("touchend",u,!0),document.removeEventListener("click",u,!0),document.removeEventListener("keydown",u,!0);for(var A=0;A<l._howls.length;A++)l._howls[A]._emit("unlock")}};return document.addEventListener("touchstart",u,!0),document.addEventListener("touchend",u,!0),document.addEventListener("click",u,!0),document.addEventListener("keydown",u,!0),l}},_obtainHtml5Audio:function(){var l=this||t;if(l._html5AudioPool.length)return l._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(l){var u=this||t;return l._unlocked&&u._html5AudioPool.push(l),u},_autoSuspend:function(){var l=this;if(!(!l.autoSuspend||!l.ctx||typeof l.ctx.suspend>"u"||!t.usingWebAudio)){for(var u=0;u<l._howls.length;u++)if(l._howls[u]._webAudio){for(var d=0;d<l._howls[u]._sounds.length;d++)if(!l._howls[u]._sounds[d]._paused)return l}return l._suspendTimer&&clearTimeout(l._suspendTimer),l._suspendTimer=setTimeout(function(){if(!!l.autoSuspend){l._suspendTimer=null,l.state="suspending";var m=function(){l.state="suspended",l._resumeAfterSuspend&&(delete l._resumeAfterSuspend,l._autoResume())};l.ctx.suspend().then(m,m)}},3e4),l}},_autoResume:function(){var l=this;if(!(!l.ctx||typeof l.ctx.resume>"u"||!t.usingWebAudio))return l.state==="running"&&l.ctx.state!=="interrupted"&&l._suspendTimer?(clearTimeout(l._suspendTimer),l._suspendTimer=null):l.state==="suspended"||l.state==="running"&&l.ctx.state==="interrupted"?(l.ctx.resume().then(function(){l.state="running";for(var u=0;u<l._howls.length;u++)l._howls[u]._emit("resume")}),l._suspendTimer&&(clearTimeout(l._suspendTimer),l._suspendTimer=null)):l.state==="suspending"&&(l._resumeAfterSuspend=!0),l}};var t=new i,e=function(l){var u=this;if(!l.src||l.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}u.init(l)};e.prototype={init:function(l){var u=this;return t.ctx||p(),u._autoplay=l.autoplay||!1,u._format=typeof l.format!="string"?l.format:[l.format],u._html5=l.html5||!1,u._muted=l.mute||!1,u._loop=l.loop||!1,u._pool=l.pool||5,u._preload=typeof l.preload=="boolean"||l.preload==="metadata"?l.preload:!0,u._rate=l.rate||1,u._sprite=l.sprite||{},u._src=typeof l.src!="string"?l.src:[l.src],u._volume=l.volume!==void 0?l.volume:1,u._xhr={method:l.xhr&&l.xhr.method?l.xhr.method:"GET",headers:l.xhr&&l.xhr.headers?l.xhr.headers:null,withCredentials:l.xhr&&l.xhr.withCredentials?l.xhr.withCredentials:!1},u._duration=0,u._state="unloaded",u._sounds=[],u._endTimers={},u._queue=[],u._playLock=!1,u._onend=l.onend?[{fn:l.onend}]:[],u._onfade=l.onfade?[{fn:l.onfade}]:[],u._onload=l.onload?[{fn:l.onload}]:[],u._onloaderror=l.onloaderror?[{fn:l.onloaderror}]:[],u._onplayerror=l.onplayerror?[{fn:l.onplayerror}]:[],u._onpause=l.onpause?[{fn:l.onpause}]:[],u._onplay=l.onplay?[{fn:l.onplay}]:[],u._onstop=l.onstop?[{fn:l.onstop}]:[],u._onmute=l.onmute?[{fn:l.onmute}]:[],u._onvolume=l.onvolume?[{fn:l.onvolume}]:[],u._onrate=l.onrate?[{fn:l.onrate}]:[],u._onseek=l.onseek?[{fn:l.onseek}]:[],u._onunlock=l.onunlock?[{fn:l.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 l=this,u=null;if(t.noAudio){l._emit("loaderror",null,"No audio support.");return}typeof l._src=="string"&&(l._src=[l._src]);for(var d=0;d<l._src.length;d++){var m,f;if(l._format&&l._format[d])m=l._format[d];else{if(f=l._src[d],typeof f!="string"){l._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}m=/^data:audio\/([^;,]+);/i.exec(f),m||(m=/\.([^.]+)$/.exec(f.split("?",1)[0])),m&&(m=m[1].toLowerCase())}if(m||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),m&&t.codecs(m)){u=l._src[d];break}}if(!u){l._emit("loaderror",null,"No codec support for selected audio sources.");return}return l._src=u,l._state="loading",window.location.protocol==="https:"&&u.slice(0,5)==="http:"&&(l._html5=!0,l._webAudio=!1),new r(l),l._webAudio&&n(l),l},play:function(l,u){var d=this,m=null;if(typeof l=="number")m=l,l=null;else{if(typeof l=="string"&&d._state==="loaded"&&!d._sprite[l])return null;if(typeof l>"u"&&(l="__default",!d._playLock)){for(var f=0,h=0;h<d._sounds.length;h++)d._sounds[h]._paused&&!d._sounds[h]._ended&&(f++,m=d._sounds[h]._id);f===1?l=null:m=null}}var g=m?d._soundById(m):d._inactiveSound();if(!g)return null;if(m&&!l&&(l=g._sprite||"__default"),d._state!=="loaded"){g._sprite=l,g._ended=!1;var x=g._id;return d._queue.push({event:"play",action:function(){d.play(x)}}),x}if(m&&!g._paused)return u||d._loadQueue("play"),g._id;d._webAudio&&t._autoResume();var v=Math.max(0,g._seek>0?g._seek:d._sprite[l][0]/1e3),A=Math.max(0,(d._sprite[l][0]+d._sprite[l][1])/1e3-v),_=A*1e3/Math.abs(g._rate),b=d._sprite[l][0]/1e3,D=(d._sprite[l][0]+d._sprite[l][1])/1e3;g._sprite=l,g._ended=!1;var S=function(){g._paused=!1,g._seek=v,g._start=b,g._stop=D,g._loop=!!(g._loop||d._sprite[l][2])};if(v>=D){d._ended(g);return}var y=g._node;if(d._webAudio){var I=function(){d._playLock=!1,S(),d._refreshBuffer(g);var N=g._muted||d._muted?0:g._volume;y.gain.setValueAtTime(N,t.ctx.currentTime),g._playStart=t.ctx.currentTime,typeof y.bufferSource.start>"u"?g._loop?y.bufferSource.noteGrainOn(0,v,86400):y.bufferSource.noteGrainOn(0,v,A):g._loop?y.bufferSource.start(0,v,86400):y.bufferSource.start(0,v,A),_!==1/0&&(d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),_)),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 T=function(){y.currentTime=v,y.muted=g._muted||d._muted||t._muted||y.muted,y.volume=g._volume*t.volume(),y.playbackRate=g._rate;try{var N=y.play();if(N&&typeof Promise<"u"&&(N instanceof Promise||typeof N.then=="function")?(d._playLock=!0,S(),N.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,S(),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}l!=="__default"||g._loop?d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),_):(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(j){d._emit("playerror",g._id,j)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=d._src,y.load());var L=window&&window.ejecta||!y.readyState&&t._navigator.isCocoonJS;if(y.readyState>=3||L)T();else{d._playLock=!0,d._state="loading";var C=function(){d._state="loaded",T(),y.removeEventListener(t._canPlayEvent,C,!1)};y.addEventListener(t._canPlayEvent,C,!1),d._clearTimer(g._id)}}return g._id},pause:function(l){var u=this;if(u._state!=="loaded"||u._playLock)return u._queue.push({event:"pause",action:function(){u.pause(l)}}),u;for(var d=u._getSoundIds(l),m=0;m<d.length;m++){u._clearTimer(d[m]);var f=u._soundById(d[m]);if(f&&!f._paused&&(f._seek=u.seek(d[m]),f._rateSeek=0,f._paused=!0,u._stopFade(d[m]),f._node))if(u._webAudio){if(!f._node.bufferSource)continue;typeof f._node.bufferSource.stop>"u"?f._node.bufferSource.noteOff(0):f._node.bufferSource.stop(0),u._cleanBuffer(f._node)}else(!isNaN(f._node.duration)||f._node.duration===1/0)&&f._node.pause();arguments[1]||u._emit("pause",f?f._id:null)}return u},stop:function(l,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"stop",action:function(){d.stop(l)}}),d;for(var m=d._getSoundIds(l),f=0;f<m.length;f++){d._clearTimer(m[f]);var h=d._soundById(m[f]);h&&(h._seek=h._start||0,h._rateSeek=0,h._paused=!0,h._ended=!0,d._stopFade(m[f]),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(l,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"mute",action:function(){d.mute(l,u)}}),d;if(typeof u>"u")if(typeof l=="boolean")d._muted=l;else return d._muted;for(var m=d._getSoundIds(u),f=0;f<m.length;f++){var h=d._soundById(m[f]);h&&(h._muted=l,h._interval&&d._stopFade(h._id),d._webAudio&&h._node?h._node.gain.setValueAtTime(l?0:h._volume,t.ctx.currentTime):h._node&&(h._node.muted=t._muted?!0:l),d._emit("mute",h._id))}return d},volume:function(){var l=this,u=arguments,d,m;if(u.length===0)return l._volume;if(u.length===1||u.length===2&&typeof u[1]>"u"){var f=l._getSoundIds(),h=f.indexOf(u[0]);h>=0?m=parseInt(u[0],10):d=parseFloat(u[0])}else u.length>=2&&(d=parseFloat(u[0]),m=parseInt(u[1],10));var g;if(typeof d<"u"&&d>=0&&d<=1){if(l._state!=="loaded"||l._playLock)return l._queue.push({event:"volume",action:function(){l.volume.apply(l,u)}}),l;typeof m>"u"&&(l._volume=d),m=l._getSoundIds(m);for(var x=0;x<m.length;x++)g=l._soundById(m[x]),g&&(g._volume=d,u[2]||l._stopFade(m[x]),l._webAudio&&g._node&&!g._muted?g._node.gain.setValueAtTime(d,t.ctx.currentTime):g._node&&!g._muted&&(g._node.volume=d*t.volume()),l._emit("volume",g._id))}else return g=m?l._soundById(m):l._sounds[0],g?g._volume:0;return l},fade:function(l,u,d,m){var f=this;if(f._state!=="loaded"||f._playLock)return f._queue.push({event:"fade",action:function(){f.fade(l,u,d,m)}}),f;l=Math.min(Math.max(0,parseFloat(l)),1),u=Math.min(Math.max(0,parseFloat(u)),1),d=parseFloat(d),f.volume(l,m);for(var h=f._getSoundIds(m),g=0;g<h.length;g++){var x=f._soundById(h[g]);if(x){if(m||f._stopFade(h[g]),f._webAudio&&!x._muted){var v=t.ctx.currentTime,A=v+d/1e3;x._volume=l,x._node.gain.setValueAtTime(l,v),x._node.gain.linearRampToValueAtTime(u,A)}f._startFadeInterval(x,l,u,d,h[g],typeof m>"u")}}return f},_startFadeInterval:function(l,u,d,m,f,h){var g=this,x=u,v=d-u,A=Math.abs(v/.01),_=Math.max(4,A>0?m/A:m),b=Date.now();l._fadeTo=d,l._interval=setInterval(function(){var D=(Date.now()-b)/m;b=Date.now(),x+=v*D,x=Math.round(x*100)/100,v<0?x=Math.max(d,x):x=Math.min(d,x),g._webAudio?l._volume=x:g.volume(x,l._id,!0),h&&(g._volume=x),(d<u&&x<=d||d>u&&x>=d)&&(clearInterval(l._interval),l._interval=null,l._fadeTo=null,g.volume(d,l._id),g._emit("fade",l._id))},_)},_stopFade:function(l){var u=this,d=u._soundById(l);return d&&d._interval&&(u._webAudio&&d._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(d._interval),d._interval=null,u.volume(d._fadeTo,l),d._fadeTo=null,u._emit("fade",l)),u},loop:function(){var l=this,u=arguments,d,m,f;if(u.length===0)return l._loop;if(u.length===1)if(typeof u[0]=="boolean")d=u[0],l._loop=d;else return f=l._soundById(parseInt(u[0],10)),f?f._loop:!1;else u.length===2&&(d=u[0],m=parseInt(u[1],10));for(var h=l._getSoundIds(m),g=0;g<h.length;g++)f=l._soundById(h[g]),f&&(f._loop=d,l._webAudio&&f._node&&f._node.bufferSource&&(f._node.bufferSource.loop=d,d&&(f._node.bufferSource.loopStart=f._start||0,f._node.bufferSource.loopEnd=f._stop,l.playing(h[g])&&(l.pause(h[g],!0),l.play(h[g],!0)))));return l},rate:function(){var l=this,u=arguments,d,m;if(u.length===0)m=l._sounds[0]._id;else if(u.length===1){var f=l._getSoundIds(),h=f.indexOf(u[0]);h>=0?m=parseInt(u[0],10):d=parseFloat(u[0])}else u.length===2&&(d=parseFloat(u[0]),m=parseInt(u[1],10));var g;if(typeof d=="number"){if(l._state!=="loaded"||l._playLock)return l._queue.push({event:"rate",action:function(){l.rate.apply(l,u)}}),l;typeof m>"u"&&(l._rate=d),m=l._getSoundIds(m);for(var x=0;x<m.length;x++)if(g=l._soundById(m[x]),g){l.playing(m[x])&&(g._rateSeek=l.seek(m[x]),g._playStart=l._webAudio?t.ctx.currentTime:g._playStart),g._rate=d,l._webAudio&&g._node&&g._node.bufferSource?g._node.bufferSource.playbackRate.setValueAtTime(d,t.ctx.currentTime):g._node&&(g._node.playbackRate=d);var v=l.seek(m[x]),A=(l._sprite[g._sprite][0]+l._sprite[g._sprite][1])/1e3-v,_=A*1e3/Math.abs(g._rate);(l._endTimers[m[x]]||!g._paused)&&(l._clearTimer(m[x]),l._endTimers[m[x]]=setTimeout(l._ended.bind(l,g),_)),l._emit("rate",g._id)}}else return g=l._soundById(m),g?g._rate:l._rate;return l},seek:function(){var l=this,u=arguments,d,m;if(u.length===0)l._sounds.length&&(m=l._sounds[0]._id);else if(u.length===1){var f=l._getSoundIds(),h=f.indexOf(u[0]);h>=0?m=parseInt(u[0],10):l._sounds.length&&(m=l._sounds[0]._id,d=parseFloat(u[0]))}else u.length===2&&(d=parseFloat(u[0]),m=parseInt(u[1],10));if(typeof m>"u")return 0;if(typeof d=="number"&&(l._state!=="loaded"||l._playLock))return l._queue.push({event:"seek",action:function(){l.seek.apply(l,u)}}),l;var g=l._soundById(m);if(g)if(typeof d=="number"&&d>=0){var x=l.playing(m);x&&l.pause(m,!0),g._seek=d,g._ended=!1,l._clearTimer(m),!l._webAudio&&g._node&&!isNaN(g._node.duration)&&(g._node.currentTime=d);var v=function(){x&&l.play(m,!0),l._emit("seek",m)};if(x&&!l._webAudio){var A=function(){l._playLock?setTimeout(A,0):v()};setTimeout(A,0)}else v()}else if(l._webAudio){var _=l.playing(m)?t.ctx.currentTime-g._playStart:0,b=g._rateSeek?g._rateSeek-g._seek:0;return g._seek+(b+_*Math.abs(g._rate))}else return g._node.currentTime;return l},playing:function(l){var u=this;if(typeof l=="number"){var d=u._soundById(l);return d?!d._paused:!1}for(var m=0;m<u._sounds.length;m++)if(!u._sounds[m]._paused)return!0;return!1},duration:function(l){var u=this,d=u._duration,m=u._soundById(l);return m&&(d=u._sprite[m._sprite][1]/1e3),d},state:function(){return this._state},unload:function(){for(var l=this,u=l._sounds,d=0;d<u.length;d++)u[d]._paused||l.stop(u[d]._id),l._webAudio||(l._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,l._clearTimer(u[d]._id);var m=t._howls.indexOf(l);m>=0&&t._howls.splice(m,1);var f=!0;for(d=0;d<t._howls.length;d++)if(t._howls[d]._src===l._src||l._src.indexOf(t._howls[d]._src)>=0){f=!1;break}return o&&f&&delete o[l._src],t.noAudio=!1,l._state="unloaded",l._sounds=[],l=null,null},on:function(l,u,d,m){var f=this,h=f["_on"+l];return typeof u=="function"&&h.push(m?{id:d,fn:u,once:m}:{id:d,fn:u}),f},off:function(l,u,d){var m=this,f=m["_on"+l],h=0;if(typeof u=="number"&&(d=u,u=null),u||d)for(h=0;h<f.length;h++){var g=d===f[h].id;if(u===f[h].fn&&g||!u&&g){f.splice(h,1);break}}else if(l)m["_on"+l]=[];else{var x=Object.keys(m);for(h=0;h<x.length;h++)x[h].indexOf("_on")===0&&Array.isArray(m[x[h]])&&(m[x[h]]=[])}return m},once:function(l,u,d){var m=this;return m.on(l,u,d,1),m},_emit:function(l,u,d){for(var m=this,f=m["_on"+l],h=f.length-1;h>=0;h--)(!f[h].id||f[h].id===u||l==="load")&&(setTimeout(function(g){g.call(this,u,d)}.bind(m,f[h].fn),0),f[h].once&&m.off(l,f[h].fn,f[h].id));return m._loadQueue(l),m},_loadQueue:function(l){var u=this;if(u._queue.length>0){var d=u._queue[0];d.event===l&&(u._queue.shift(),u._loadQueue()),l||d.action()}return u},_ended:function(l){var u=this,d=l._sprite;if(!u._webAudio&&l._node&&!l._node.paused&&!l._node.ended&&l._node.currentTime<l._stop)return setTimeout(u._ended.bind(u,l),100),u;var m=!!(l._loop||u._sprite[d][2]);if(u._emit("end",l._id),!u._webAudio&&m&&u.stop(l._id,!0).play(l._id),u._webAudio&&m){u._emit("play",l._id),l._seek=l._start||0,l._rateSeek=0,l._playStart=t.ctx.currentTime;var f=(l._stop-l._start)*1e3/Math.abs(l._rate);u._endTimers[l._id]=setTimeout(u._ended.bind(u,l),f)}return u._webAudio&&!m&&(l._paused=!0,l._ended=!0,l._seek=l._start||0,l._rateSeek=0,u._clearTimer(l._id),u._cleanBuffer(l._node),t._autoSuspend()),!u._webAudio&&!m&&u.stop(l._id,!0),u},_clearTimer:function(l){var u=this;if(u._endTimers[l]){if(typeof u._endTimers[l]!="function")clearTimeout(u._endTimers[l]);else{var d=u._soundById(l);d&&d._node&&d._node.removeEventListener("ended",u._endTimers[l],!1)}delete u._endTimers[l]}return u},_soundById:function(l){for(var u=this,d=0;d<u._sounds.length;d++)if(l===u._sounds[d]._id)return u._sounds[d];return null},_inactiveSound:function(){var l=this;l._drain();for(var u=0;u<l._sounds.length;u++)if(l._sounds[u]._ended)return l._sounds[u].reset();return new r(l)},_drain:function(){var l=this,u=l._pool,d=0,m=0;if(!(l._sounds.length<u)){for(m=0;m<l._sounds.length;m++)l._sounds[m]._ended&&d++;for(m=l._sounds.length-1;m>=0;m--){if(d<=u)return;l._sounds[m]._ended&&(l._webAudio&&l._sounds[m]._node&&l._sounds[m]._node.disconnect(0),l._sounds.splice(m,1),d--)}}},_getSoundIds:function(l){var u=this;if(typeof l>"u"){for(var d=[],m=0;m<u._sounds.length;m++)d.push(u._sounds[m]._id);return d}else return[l]},_refreshBuffer:function(l){var u=this;return l._node.bufferSource=t.ctx.createBufferSource(),l._node.bufferSource.buffer=o[u._src],l._panner?l._node.bufferSource.connect(l._panner):l._node.bufferSource.connect(l._node),l._node.bufferSource.loop=l._loop,l._loop&&(l._node.bufferSource.loopStart=l._start||0,l._node.bufferSource.loopEnd=l._stop||0),l._node.bufferSource.playbackRate.setValueAtTime(l._rate,t.ctx.currentTime),u},_cleanBuffer:function(l){var u=this,d=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&l.bufferSource&&(l.bufferSource.onended=null,l.bufferSource.disconnect(0),d))try{l.bufferSource.buffer=t._scratchBuffer}catch{}return l.bufferSource=null,u},_clearSound:function(l){var u=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);u||(l.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(l){this._parent=l,this.init()};r.prototype={init:function(){var l=this,u=l._parent;return l._muted=u._muted,l._loop=u._loop,l._volume=u._volume,l._rate=u._rate,l._seek=0,l._paused=!0,l._ended=!0,l._sprite="__default",l._id=++t._counter,u._sounds.push(l),l.create(),l},create:function(){var l=this,u=l._parent,d=t._muted||l._muted||l._parent._muted?0:l._volume;return u._webAudio?(l._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),l._node.gain.setValueAtTime(d,t.ctx.currentTime),l._node.paused=!0,l._node.connect(t.masterGain)):t.noAudio||(l._node=t._obtainHtml5Audio(),l._errorFn=l._errorListener.bind(l),l._node.addEventListener("error",l._errorFn,!1),l._loadFn=l._loadListener.bind(l),l._node.addEventListener(t._canPlayEvent,l._loadFn,!1),l._endFn=l._endListener.bind(l),l._node.addEventListener("ended",l._endFn,!1),l._node.src=u._src,l._node.preload=u._preload===!0?"auto":u._preload,l._node.volume=d*t.volume(),l._node.load()),l},reset:function(){var l=this,u=l._parent;return l._muted=u._muted,l._loop=u._loop,l._volume=u._volume,l._rate=u._rate,l._seek=0,l._rateSeek=0,l._paused=!0,l._ended=!0,l._sprite="__default",l._id=++t._counter,l},_errorListener:function(){var l=this;l._parent._emit("loaderror",l._id,l._node.error?l._node.error.code:0),l._node.removeEventListener("error",l._errorFn,!1)},_loadListener:function(){var l=this,u=l._parent;u._duration=Math.ceil(l._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()),l._node.removeEventListener(t._canPlayEvent,l._loadFn,!1)},_endListener:function(){var l=this,u=l._parent;u._duration===1/0&&(u._duration=Math.ceil(l._node.duration*10)/10,u._sprite.__default[1]===1/0&&(u._sprite.__default[1]=u._duration*1e3),u._ended(l)),l._node.removeEventListener("ended",l._endFn,!1)}};var o={},n=function(l){var u=l._src;if(o[u]){l._duration=o[u].duration,c(l);return}if(/^data:[^;]+;base64,/.test(u)){for(var d=atob(u.split(",")[1]),m=new Uint8Array(d.length),f=0;f<d.length;++f)m[f]=d.charCodeAt(f);a(m.buffer,l)}else{var h=new XMLHttpRequest;h.open(l._xhr.method,u,!0),h.withCredentials=l._xhr.withCredentials,h.responseType="arraybuffer",l._xhr.headers&&Object.keys(l._xhr.headers).forEach(function(g){h.setRequestHeader(g,l._xhr.headers[g])}),h.onload=function(){var g=(h.status+"")[0];if(g!=="0"&&g!=="2"&&g!=="3"){l._emit("loaderror",null,"Failed loading audio file with status: "+h.status+".");return}a(h.response,l)},h.onerror=function(){l._webAudio&&(l._html5=!0,l._webAudio=!1,l._sounds=[],delete o[u],l.load())},s(h)}},s=function(l){try{l.send()}catch{l.onerror()}},a=function(l,u){var d=function(){u._emit("loaderror",null,"Decoding audio data failed.")},m=function(f){f&&u._sounds.length>0?(o[u._src]=f,c(u,f)):d()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(l).then(m).catch(d):t.ctx.decodeAudioData(l,m,d)},c=function(l,u){u&&!l._duration&&(l._duration=u.duration),Object.keys(l._sprite).length===0&&(l._sprite={__default:[0,l._duration*1e3]}),l._state!=="loaded"&&(l._state="loaded",l._emit("load"),l._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 l=/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(l&&d&&d<9){var m=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!m&&(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 Da<"u"&&(Da.Howler=t,Da.Howl=e),typeof global<"u"?(global.HowlerGlobal=i,global.Howler=t,global.Howl=e,global.Sound=r):typeof window<"u"&&(window.HowlerGlobal=i,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,n,s){var a=this;if(!a.ctx||!a.ctx.listener)return a;var c=a._orientation;if(e=typeof e!="number"?c[1]:e,r=typeof r!="number"?c[2]:r,o=typeof o!="number"?c[3]:o,n=typeof n!="number"?c[4]:n,s=typeof s!="number"?c[5]:s,typeof t=="number")a._orientation=[t,e,r,o,n,s],typeof a.ctx.listener.forwardX<"u"?(a.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(s,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(t,e,r,o,n,s);else return c;return a},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 n=r._getSoundIds(e),s=0;s<n.length;s++){var a=r._soundById(n[s]);if(a)if(typeof t=="number")a._stereo=t,a._pos=[t,0,0],a._node&&(a._pannerAttr.panningModel="equalpower",(!a._panner||!a._panner.pan)&&i(a,o),o==="spatial"?typeof a._panner.positionX<"u"?(a._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),a._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),a._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):a._panner.setPosition(t,0,0):a._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),r._emit("stereo",a._id);else return a._stereo}return r},Howl.prototype.pos=function(t,e,r,o){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"pos",action:function(){n.pos(t,e,r,o)}}),n;if(e=typeof e!="number"?0:e,r=typeof r!="number"?-.5:r,typeof o>"u")if(typeof t=="number")n._pos=[t,e,r];else return n._pos;for(var s=n._getSoundIds(o),a=0;a<s.length;a++){var c=n._soundById(s[a]);if(c)if(typeof t=="number")c._pos=[t,e,r],c._node&&((!c._panner||c._panner.pan)&&i(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)),n._emit("pos",c._id);else return c._pos}return n},Howl.prototype.orientation=function(t,e,r,o){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"orientation",action:function(){n.orientation(t,e,r,o)}}),n;if(e=typeof e!="number"?n._orientation[1]:e,r=typeof r!="number"?n._orientation[2]:r,typeof o>"u")if(typeof t=="number")n._orientation=[t,e,r];else return n._orientation;for(var s=n._getSoundIds(o),a=0;a<s.length;a++){var c=n._soundById(s[a]);if(c)if(typeof t=="number")c._orientation=[t,e,r],c._node&&(c._panner||(c._pos||(c._pos=n._pos||[0,0,-.5]),i(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)),n._emit("orientation",c._id);else return c._orientation}return n},Howl.prototype.pannerAttr=function(){var t=this,e=arguments,r,o,n;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 n=t._soundById(parseInt(e[0],10)),n?n._pannerAttr:t._pannerAttr;else e.length===2&&(r=e[0],o=parseInt(e[1],10));for(var s=t._getSoundIds(o),a=0;a<s.length;a++)if(n=t._soundById(s[a]),n){var c=n._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=n._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):(n._pos||(n._pos=t._pos||[0,0,-.5]),i(n,"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 i=function(t,e){e=e||"spatial",e==="spatial"?(t._panner=Howler.ctx.createPanner(),t._panner.coneInnerAngle=t._pannerAttr.coneInnerAngle,t._panner.coneOuterAngle=t._pannerAttr.coneOuterAngle,t._panner.coneOuterGain=t._pannerAttr.coneOuterGain,t._panner.distanceModel=t._pannerAttr.distanceModel,t._panner.maxDistance=t._pannerAttr.maxDistance,t._panner.refDistance=t._pannerAttr.refDistance,t._panner.rolloffFactor=t._pannerAttr.rolloffFactor,t._panner.panningModel=t._pannerAttr.panningModel,typeof t._panner.positionX<"u"?(t._panner.positionX.setValueAtTime(t._pos[0],Howler.ctx.currentTime),t._panner.positionY.setValueAtTime(t._pos[1],Howler.ctx.currentTime),t._panner.positionZ.setValueAtTime(t._pos[2],Howler.ctx.currentTime)):t._panner.setPosition(t._pos[0],t._pos[1],t._pos[2]),typeof t._panner.orientationX<"u"?(t._panner.orientationX.setValueAtTime(t._orientation[0],Howler.ctx.currentTime),t._panner.orientationY.setValueAtTime(t._orientation[1],Howler.ctx.currentTime),t._panner.orientationZ.setValueAtTime(t._orientation[2],Howler.ctx.currentTime)):t._panner.setOrientation(t._orientation[0],t._orientation[1],t._orientation[2])):(t._panner=Howler.ctx.createStereoPanner(),t._panner.pan.setValueAtTime(t._stereo,Howler.ctx.currentTime)),t._panner.connect(t._node),t._paused||t._parent.pause(t._id,!0).play(t._id,!0)}})()});var cf=yc((Ea,lf)=>{(function(i,t){typeof Ea=="object"&&typeof lf<"u"?t(Ea):typeof define=="function"&&define.amd?define(["exports"],t):t((i=typeof globalThis<"u"?globalThis:i||self).SVDJS={})})(Ea,function(i){"use strict";i.SVD=function(t,e,r,o,n){if(e=e===void 0||e,r=r===void 0||r,n=1e-64/(o=o||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var s,a,c,p,l,u,d,m,f,h,g,x,v=t[0].length,A=t.length;if(A<v)throw new TypeError("Invalid matrix: m < n");for(var _=[],b=[],D=[],S=e==="f"?A:v,y=h=d=0;y<A;y++)b[y]=new Array(S).fill(0);for(y=0;y<v;y++)D[y]=new Array(v).fill(0);var I,T=new Array(v).fill(0);for(y=0;y<A;y++)for(s=0;s<v;s++)b[y][s]=t[y][s];for(y=0;y<v;y++){for(_[y]=d,f=0,c=y+1,s=y;s<A;s++)f+=Math.pow(b[s][y],2);if(f<n)d=0;else for(m=(u=b[y][y])*(d=u<0?Math.sqrt(f):-Math.sqrt(f))-f,b[y][y]=u-d,s=c;s<v;s++){for(f=0,a=y;a<A;a++)f+=b[a][y]*b[a][s];for(u=f/m,a=y;a<A;a++)b[a][s]=b[a][s]+u*b[a][y]}for(T[y]=d,f=0,s=c;s<v;s++)f+=Math.pow(b[y][s],2);if(f<n)d=0;else{for(m=(u=b[y][y+1])*(d=u<0?Math.sqrt(f):-Math.sqrt(f))-f,b[y][y+1]=u-d,s=c;s<v;s++)_[s]=b[y][s]/m;for(s=c;s<A;s++){for(f=0,a=c;a<v;a++)f+=b[s][a]*b[y][a];for(a=c;a<v;a++)b[s][a]=b[s][a]+f*_[a]}}h<(g=Math.abs(T[y])+Math.abs(_[y]))&&(h=g)}if(r)for(y=v-1;0<=y;y--){if(d!==0){for(m=b[y][y+1]*d,s=c;s<v;s++)D[s][y]=b[y][s]/m;for(s=c;s<v;s++){for(f=0,a=c;a<v;a++)f+=b[y][a]*D[a][s];for(a=c;a<v;a++)D[a][s]=D[a][s]+f*D[a][y]}}for(s=c;s<v;s++)D[y][s]=0,D[s][y]=0;D[y][y]=1,d=_[y],c=y}if(e){if(e==="f")for(y=v;y<A;y++){for(s=v;s<A;s++)b[y][s]=0;b[y][y]=1}for(y=v-1;0<=y;y--){for(c=y+1,d=T[y],s=c;s<S;s++)b[y][s]=0;if(d!==0){for(m=b[y][y]*d,s=c;s<S;s++){for(f=0,a=c;a<A;a++)f+=b[a][y]*b[a][s];for(u=f/m,a=y;a<A;a++)b[a][s]=b[a][s]+u*b[a][y]}for(s=y;s<A;s++)b[s][y]=b[s][y]/d}else for(s=y;s<A;s++)b[s][y]=0;b[y][y]=b[y][y]+1}}for(o*=h,a=v-1;0<=a;a--)for(var L=0;L<50;L++){for(I=!1,c=a;0<=c;c--){if(Math.abs(_[c])<=o){I=!0;break}if(Math.abs(T[c-1])<=o)break}if(!I){for(l=0,p=c-(f=1),y=c;y<a+1&&(u=f*_[y],_[y]=l*_[y],!(Math.abs(u)<=o));y++)if(d=T[y],T[y]=Math.sqrt(u*u+d*d),l=d/(m=T[y]),f=-u/m,e)for(s=0;s<A;s++)g=b[s][p],x=b[s][y],b[s][p]=g*l+x*f,b[s][y]=-g*f+x*l}if(x=T[a],c===a){if(x<0&&(T[a]=-x,r))for(s=0;s<v;s++)D[s][a]=-D[s][a];break}for(h=T[c],u=(((g=T[a-1])-x)*(g+x)+((d=_[a-1])-(m=_[a]))*(d+m))/(2*m*g),d=Math.sqrt(u*u+1),u=((h-x)*(h+x)+m*(g/(u<0?u-d:u+d)-m))/h,y=c+(f=l=1);y<a+1;y++){if(d=_[y],g=T[y],m=f*d,d*=l,x=Math.sqrt(u*u+m*m),u=h*(l=u/(_[y-1]=x))+d*(f=m/x),d=-h*f+d*l,m=g*f,g*=l,r)for(s=0;s<v;s++)h=D[s][y-1],x=D[s][y],D[s][y-1]=h*l+x*f,D[s][y]=-h*f+x*l;if(x=Math.sqrt(u*u+m*m),u=(l=u/(T[y-1]=x))*d+(f=m/x)*g,h=-f*d+l*g,e)for(s=0;s<A;s++)g=b[s][y-1],x=b[s][y],b[s][y-1]=g*l+x*f,b[s][y]=-g*f+x*l}_[c]=0,_[a]=u,T[a]=h}for(y=0;y<v;y++)T[y]<o&&(T[y]=0);return{u:b,q:T,v:D}},i.VERSION="1.1.1",Object.defineProperty(i,"__esModule",{value:!0})})});var p_={};xc(p_,{default:()=>Ga});module.exports=Hf(p_);var Ra=require("three");function Wi(i,t){return Object.setPrototypeOf(i,t),i}function _c(i){return Array.isArray(i)?i:[i]}var Wf=typeof global=="object"&&global&&global.Object===Object&&global,qi=Wf;var qf=typeof self=="object"&&self&&self.Object===Object&&self,$f=qi||qf||Function("return this")(),$e=$f;var Xf=$e.Symbol,yt=Xf;var Sc=Object.prototype,Yf=Sc.hasOwnProperty,Kf=Sc.toString,Vn=yt?yt.toStringTag:void 0;function Qf(i){var t=Yf.call(i,Vn),e=i[Vn];try{i[Vn]=void 0;var r=!0}catch{}var o=Kf.call(i);return r&&(t?i[Vn]=e:delete i[Vn]),o}var wc=Qf;var Zf=Object.prototype,Jf=Zf.toString;function eh(i){return Jf.call(i)}var Tc=eh;var th="[object Null]",rh="[object Undefined]",Ac=yt?yt.toStringTag:void 0;function oh(i){return i==null?i===void 0?rh:th:Ac&&Ac in Object(i)?wc(i):Tc(i)}var Dt=oh;function nh(i){return i!=null&&typeof i=="object"}var dt=nh;var ih="[object Symbol]";function sh(i){return typeof i=="symbol"||dt(i)&&Dt(i)==ih}var Mo=sh;function ah(i,t){for(var e=-1,r=i==null?0:i.length,o=Array(r);++e<r;)o[e]=t(i[e],e,i);return o}var $i=ah;var lh=Array.isArray,Xe=lh;var ch=1/0,Cc=yt?yt.prototype:void 0,Nc=Cc?Cc.toString:void 0;function Oc(i){if(typeof i=="string")return i;if(Xe(i))return $i(i,Oc)+"";if(Mo(i))return Nc?Nc.call(i):"";var t=i+"";return t=="0"&&1/i==-ch?"-0":t}var Lc=Oc;function uh(i){var t=typeof i;return i!=null&&(t=="object"||t=="function")}var mt=uh;function ph(i){return i}var Xi=ph;var dh="[object AsyncFunction]",mh="[object Function]",fh="[object GeneratorFunction]",hh="[object Proxy]";function gh(i){if(!mt(i))return!1;var t=Dt(i);return t==mh||t==fh||t==dh||t==hh}var Do=gh;var yh=$e["__core-js_shared__"],Yi=yh;var Ic=function(){var i=/[^.]+$/.exec(Yi&&Yi.keys&&Yi.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function xh(i){return!!Ic&&Ic in i}var Pc=xh;var vh=Function.prototype,bh=vh.toString;function _h(i){if(i!=null){try{return bh.call(i)}catch{}try{return i+""}catch{}}return""}var Or=_h;var Sh=/[\\^$.*+?()[\]{}|]/g,wh=/^\[object .+?Constructor\]$/,Th=Function.prototype,Ah=Object.prototype,Ch=Th.toString,Nh=Ah.hasOwnProperty,Oh=RegExp("^"+Ch.call(Nh).replace(Sh,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Lh(i){if(!mt(i)||Pc(i))return!1;var t=Do(i)?Oh:wh;return t.test(Or(i))}var Mc=Lh;function Ih(i,t){return i?.[t]}var Dc=Ih;function Ph(i,t){var e=Dc(i,t);return Mc(e)?e:void 0}var Tt=Ph;var Mh=Tt($e,"WeakMap"),Ki=Mh;var Bc=Object.create,Dh=function(){function i(){}return function(t){if(!mt(t))return{};if(Bc)return Bc(t);i.prototype=t;var e=new i;return i.prototype=void 0,e}}(),Ec=Dh;function Bh(i,t,e){switch(e.length){case 0:return i.call(t);case 1:return i.call(t,e[0]);case 2:return i.call(t,e[0],e[1]);case 3:return i.call(t,e[0],e[1],e[2])}return i.apply(t,e)}var Gc=Bh;function Eh(i,t){var e=-1,r=i.length;for(t||(t=Array(r));++e<r;)t[e]=i[e];return t}var Qi=Eh;var Gh=800,Rh=16,Fh=Date.now;function Vh(i){var t=0,e=0;return function(){var r=Fh(),o=Rh-(r-e);if(e=r,o>0){if(++t>=Gh)return arguments[0]}else t=0;return i.apply(void 0,arguments)}}var Rc=Vh;function zh(i){return function(){return i}}var Fc=zh;var Uh=function(){try{var i=Tt(Object,"defineProperty");return i({},"",{}),i}catch{}}(),Bo=Uh;var kh=Bo?function(i,t){return Bo(i,"toString",{configurable:!0,enumerable:!1,value:Fc(t),writable:!0})}:Xi,Vc=kh;var jh=Rc(Vc),Zi=jh;function Hh(i,t){for(var e=-1,r=i==null?0:i.length;++e<r&&t(i[e],e,i)!==!1;);return i}var zc=Hh;var Wh=9007199254740991,qh=/^(?:0|[1-9]\d*)$/;function $h(i,t){var e=typeof i;return t=t??Wh,!!t&&(e=="number"||e!="symbol"&&qh.test(i))&&i>-1&&i%1==0&&i<t}var Ji=$h;function Xh(i,t,e){t=="__proto__"&&Bo?Bo(i,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):i[t]=e}var Eo=Xh;function Yh(i,t){return i===t||i!==i&&t!==t}var Vr=Yh;var Kh=Object.prototype,Qh=Kh.hasOwnProperty;function Zh(i,t,e){var r=i[t];(!(Qh.call(i,t)&&Vr(r,e))||e===void 0&&!(t in i))&&Eo(i,t,e)}var es=Zh;function Jh(i,t,e,r){var o=!e;e||(e={});for(var n=-1,s=t.length;++n<s;){var a=t[n],c=r?r(e[a],i[a],a,e,i):void 0;c===void 0&&(c=i[a]),o?Eo(e,a,c):es(e,a,c)}return e}var zt=Jh;var Uc=Math.max;function eg(i,t,e){return t=Uc(t===void 0?i.length-1:t,0),function(){for(var r=arguments,o=-1,n=Uc(r.length-t,0),s=Array(n);++o<n;)s[o]=r[t+o];o=-1;for(var a=Array(t+1);++o<t;)a[o]=r[o];return a[t]=e(s),Gc(i,this,a)}}var ts=eg;function tg(i,t){return Zi(ts(i,t,Xi),i+"")}var kc=tg;var rg=9007199254740991;function og(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=rg}var rs=og;function ng(i){return i!=null&&rs(i.length)&&!Do(i)}var zr=ng;function ig(i,t,e){if(!mt(e))return!1;var r=typeof t;return(r=="number"?zr(e)&&Ji(t,e.length):r=="string"&&t in e)?Vr(e[t],i):!1}var jc=ig;function sg(i){return kc(function(t,e){var r=-1,o=e.length,n=o>1?e[o-1]:void 0,s=o>2?e[2]:void 0;for(n=i.length>3&&typeof n=="function"?(o--,n):void 0,s&&jc(e[0],e[1],s)&&(n=o<3?void 0:n,o=1),t=Object(t);++r<o;){var a=e[r];a&&i(t,a,r,n)}return t})}var Hc=sg;var ag=Object.prototype;function lg(i){var t=i&&i.constructor,e=typeof t=="function"&&t.prototype||ag;return i===e}var Go=lg;function cg(i,t){for(var e=-1,r=Array(i);++e<i;)r[e]=t(e);return r}var Wc=cg;var ug="[object Arguments]";function pg(i){return dt(i)&&Dt(i)==ug}var Va=pg;var qc=Object.prototype,dg=qc.hasOwnProperty,mg=qc.propertyIsEnumerable,fg=Va(function(){return arguments}())?Va:function(i){return dt(i)&&dg.call(i,"callee")&&!mg.call(i,"callee")},uo=fg;function hg(){return!1}var $c=hg;var Kc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xc=Kc&&typeof module=="object"&&module&&!module.nodeType&&module,gg=Xc&&Xc.exports===Kc,Yc=gg?$e.Buffer:void 0,yg=Yc?Yc.isBuffer:void 0,xg=yg||$c,Ro=xg;var vg="[object Arguments]",bg="[object Array]",_g="[object Boolean]",Sg="[object Date]",wg="[object Error]",Tg="[object Function]",Ag="[object Map]",Cg="[object Number]",Ng="[object Object]",Og="[object RegExp]",Lg="[object Set]",Ig="[object String]",Pg="[object WeakMap]",Mg="[object ArrayBuffer]",Dg="[object DataView]",Bg="[object Float32Array]",Eg="[object Float64Array]",Gg="[object Int8Array]",Rg="[object Int16Array]",Fg="[object Int32Array]",Vg="[object Uint8Array]",zg="[object Uint8ClampedArray]",Ug="[object Uint16Array]",kg="[object Uint32Array]",Me={};Me[Bg]=Me[Eg]=Me[Gg]=Me[Rg]=Me[Fg]=Me[Vg]=Me[zg]=Me[Ug]=Me[kg]=!0;Me[vg]=Me[bg]=Me[Mg]=Me[_g]=Me[Dg]=Me[Sg]=Me[wg]=Me[Tg]=Me[Ag]=Me[Cg]=Me[Ng]=Me[Og]=Me[Lg]=Me[Ig]=Me[Pg]=!1;function jg(i){return dt(i)&&rs(i.length)&&!!Me[Dt(i)]}var Qc=jg;function Hg(i){return function(t){return i(t)}}var Fo=Hg;var Zc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zn=Zc&&typeof module=="object"&&module&&!module.nodeType&&module,Wg=zn&&zn.exports===Zc,za=Wg&&qi.process,qg=function(){try{var i=zn&&zn.require&&zn.require("util").types;return i||za&&za.binding&&za.binding("util")}catch{}}(),Lr=qg;var Jc=Lr&&Lr.isTypedArray,$g=Jc?Fo(Jc):Qc,os=$g;var Xg=Object.prototype,Yg=Xg.hasOwnProperty;function Kg(i,t){var e=Xe(i),r=!e&&uo(i),o=!e&&!r&&Ro(i),n=!e&&!r&&!o&&os(i),s=e||r||o||n,a=s?Wc(i.length,String):[],c=a.length;for(var p in i)(t||Yg.call(i,p))&&!(s&&(p=="length"||o&&(p=="offset"||p=="parent")||n&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||Ji(p,c)))&&a.push(p);return a}var ns=Kg;function Qg(i,t){return function(e){return i(t(e))}}var is=Qg;var Zg=is(Object.keys,Object),eu=Zg;var Jg=Object.prototype,ey=Jg.hasOwnProperty;function ty(i){if(!Go(i))return eu(i);var t=[];for(var e in Object(i))ey.call(i,e)&&e!="constructor"&&t.push(e);return t}var tu=ty;function ry(i){return zr(i)?ns(i):tu(i)}var Vo=ry;function oy(i){var t=[];if(i!=null)for(var e in Object(i))t.push(e);return t}var ru=oy;var ny=Object.prototype,iy=ny.hasOwnProperty;function sy(i){if(!mt(i))return ru(i);var t=Go(i),e=[];for(var r in i)r=="constructor"&&(t||!iy.call(i,r))||e.push(r);return e}var ou=sy;function ay(i){return zr(i)?ns(i,!0):ou(i)}var nr=ay;var ly=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,cy=/^\w*$/;function uy(i,t){if(Xe(i))return!1;var e=typeof i;return e=="number"||e=="symbol"||e=="boolean"||i==null||Mo(i)?!0:cy.test(i)||!ly.test(i)||t!=null&&i in Object(t)}var nu=uy;var py=Tt(Object,"create"),Ir=py;function dy(){this.__data__=Ir?Ir(null):{},this.size=0}var iu=dy;function my(i){var t=this.has(i)&&delete this.__data__[i];return this.size-=t?1:0,t}var su=my;var fy="__lodash_hash_undefined__",hy=Object.prototype,gy=hy.hasOwnProperty;function yy(i){var t=this.__data__;if(Ir){var e=t[i];return e===fy?void 0:e}return gy.call(t,i)?t[i]:void 0}var au=yy;var xy=Object.prototype,vy=xy.hasOwnProperty;function by(i){var t=this.__data__;return Ir?t[i]!==void 0:vy.call(t,i)}var lu=by;var _y="__lodash_hash_undefined__";function Sy(i,t){var e=this.__data__;return this.size+=this.has(i)?0:1,e[i]=Ir&&t===void 0?_y:t,this}var cu=Sy;function zo(i){var t=-1,e=i==null?0:i.length;for(this.clear();++t<e;){var r=i[t];this.set(r[0],r[1])}}zo.prototype.clear=iu;zo.prototype.delete=su;zo.prototype.get=au;zo.prototype.has=lu;zo.prototype.set=cu;var Ua=zo;function wy(){this.__data__=[],this.size=0}var uu=wy;function Ty(i,t){for(var e=i.length;e--;)if(Vr(i[e][0],t))return e;return-1}var Ur=Ty;var Ay=Array.prototype,Cy=Ay.splice;function Ny(i){var t=this.__data__,e=Ur(t,i);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():Cy.call(t,e,1),--this.size,!0}var pu=Ny;function Oy(i){var t=this.__data__,e=Ur(t,i);return e<0?void 0:t[e][1]}var du=Oy;function Ly(i){return Ur(this.__data__,i)>-1}var mu=Ly;function Iy(i,t){var e=this.__data__,r=Ur(e,i);return r<0?(++this.size,e.push([i,t])):e[r][1]=t,this}var fu=Iy;function Uo(i){var t=-1,e=i==null?0:i.length;for(this.clear();++t<e;){var r=i[t];this.set(r[0],r[1])}}Uo.prototype.clear=uu;Uo.prototype.delete=pu;Uo.prototype.get=du;Uo.prototype.has=mu;Uo.prototype.set=fu;var kr=Uo;var Py=Tt($e,"Map"),jr=Py;function My(){this.size=0,this.__data__={hash:new Ua,map:new(jr||kr),string:new Ua}}var hu=My;function Dy(i){var t=typeof i;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?i!=="__proto__":i===null}var gu=Dy;function By(i,t){var e=i.__data__;return gu(t)?e[typeof t=="string"?"string":"hash"]:e.map}var Hr=By;function Ey(i){var t=Hr(this,i).delete(i);return this.size-=t?1:0,t}var yu=Ey;function Gy(i){return Hr(this,i).get(i)}var xu=Gy;function Ry(i){return Hr(this,i).has(i)}var vu=Ry;function Fy(i,t){var e=Hr(this,i),r=e.size;return e.set(i,t),this.size+=e.size==r?0:1,this}var bu=Fy;function ko(i){var t=-1,e=i==null?0:i.length;for(this.clear();++t<e;){var r=i[t];this.set(r[0],r[1])}}ko.prototype.clear=hu;ko.prototype.delete=yu;ko.prototype.get=xu;ko.prototype.has=vu;ko.prototype.set=bu;var Un=ko;var Vy="Expected a function";function ka(i,t){if(typeof i!="function"||t!=null&&typeof t!="function")throw new TypeError(Vy);var e=function(){var r=arguments,o=t?t.apply(this,r):r[0],n=e.cache;if(n.has(o))return n.get(o);var s=i.apply(this,r);return e.cache=n.set(o,s)||n,s};return e.cache=new(ka.Cache||Un),e}ka.Cache=Un;var _u=ka;var zy=500;function Uy(i){var t=_u(i,function(r){return e.size===zy&&e.clear(),r}),e=t.cache;return t}var Su=Uy;var ky=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,jy=/\\(\\)?/g,Hy=Su(function(i){var t=[];return i.charCodeAt(0)===46&&t.push(""),i.replace(ky,function(e,r,o,n){t.push(o?n.replace(jy,"$1"):r||e)}),t}),wu=Hy;function Wy(i){return i==null?"":Lc(i)}var Tu=Wy;function qy(i,t){return Xe(i)?i:nu(i,t)?[i]:wu(Tu(i))}var jo=qy;var $y=1/0;function Xy(i){if(typeof i=="string"||Mo(i))return i;var t=i+"";return t=="0"&&1/i==-$y?"-0":t}var ss=Xy;function Yy(i,t){t=jo(t,i);for(var e=0,r=t.length;i!=null&&e<r;)i=i[ss(t[e++])];return e&&e==r?i:void 0}var Au=Yy;function Ky(i,t){for(var e=-1,r=t.length,o=i.length;++e<r;)i[o+e]=t[e];return i}var Ho=Ky;var Cu=yt?yt.isConcatSpreadable:void 0;function Qy(i){return Xe(i)||uo(i)||!!(Cu&&i&&i[Cu])}var Nu=Qy;function Ou(i,t,e,r,o){var n=-1,s=i.length;for(e||(e=Nu),o||(o=[]);++n<s;){var a=i[n];t>0&&e(a)?t>1?Ou(a,t-1,e,r,o):Ho(o,a):r||(o[o.length]=a)}return o}var Lu=Ou;function Zy(i){var t=i==null?0:i.length;return t?Lu(i,1):[]}var Iu=Zy;function Jy(i){return Zi(ts(i,void 0,Iu),i+"")}var Pu=Jy;var e0=is(Object.getPrototypeOf,Object),Wo=e0;var t0="[object Object]",r0=Function.prototype,o0=Object.prototype,Mu=r0.toString,n0=o0.hasOwnProperty,i0=Mu.call(Object);function s0(i){if(!dt(i)||Dt(i)!=t0)return!1;var t=Wo(i);if(t===null)return!0;var e=n0.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Mu.call(e)==i0}var as=s0;function a0(i,t,e){var r=-1,o=i.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 n=Array(o);++r<o;)n[r]=i[r+t];return n}var Du=a0;function l0(){this.__data__=new kr,this.size=0}var Bu=l0;function c0(i){var t=this.__data__,e=t.delete(i);return this.size=t.size,e}var Eu=c0;function u0(i){return this.__data__.get(i)}var Gu=u0;function p0(i){return this.__data__.has(i)}var Ru=p0;var d0=200;function m0(i,t){var e=this.__data__;if(e instanceof kr){var r=e.__data__;if(!jr||r.length<d0-1)return r.push([i,t]),this.size=++e.size,this;e=this.__data__=new Un(r)}return e.set(i,t),this.size=e.size,this}var Fu=m0;function qo(i){var t=this.__data__=new kr(i);this.size=t.size}qo.prototype.clear=Bu;qo.prototype.delete=Eu;qo.prototype.get=Gu;qo.prototype.has=Ru;qo.prototype.set=Fu;var ls=qo;function f0(i,t){return i&&zt(t,Vo(t),i)}var Vu=f0;function h0(i,t){return i&&zt(t,nr(t),i)}var zu=h0;var Hu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Uu=Hu&&typeof module=="object"&&module&&!module.nodeType&&module,g0=Uu&&Uu.exports===Hu,ku=g0?$e.Buffer:void 0,ju=ku?ku.allocUnsafe:void 0;function y0(i,t){if(t)return i.slice();var e=i.length,r=ju?ju(e):new i.constructor(e);return i.copy(r),r}var cs=y0;function x0(i,t){for(var e=-1,r=i==null?0:i.length,o=0,n=[];++e<r;){var s=i[e];t(s,e,i)&&(n[o++]=s)}return n}var Wu=x0;function v0(){return[]}var us=v0;var b0=Object.prototype,_0=b0.propertyIsEnumerable,qu=Object.getOwnPropertySymbols,S0=qu?function(i){return i==null?[]:(i=Object(i),Wu(qu(i),function(t){return _0.call(i,t)}))}:us,$o=S0;function w0(i,t){return zt(i,$o(i),t)}var $u=w0;var T0=Object.getOwnPropertySymbols,A0=T0?function(i){for(var t=[];i;)Ho(t,$o(i)),i=Wo(i);return t}:us,ps=A0;function C0(i,t){return zt(i,ps(i),t)}var Xu=C0;function N0(i,t,e){var r=t(i);return Xe(i)?r:Ho(r,e(i))}var ds=N0;function O0(i){return ds(i,Vo,$o)}var Yu=O0;function L0(i){return ds(i,nr,ps)}var ms=L0;var I0=Tt($e,"DataView"),fs=I0;var P0=Tt($e,"Promise"),hs=P0;var M0=Tt($e,"Set"),gs=M0;var Ku="[object Map]",D0="[object Object]",Qu="[object Promise]",Zu="[object Set]",Ju="[object WeakMap]",ep="[object DataView]",B0=Or(fs),E0=Or(jr),G0=Or(hs),R0=Or(gs),F0=Or(Ki),po=Dt;(fs&&po(new fs(new ArrayBuffer(1)))!=ep||jr&&po(new jr)!=Ku||hs&&po(hs.resolve())!=Qu||gs&&po(new gs)!=Zu||Ki&&po(new Ki)!=Ju)&&(po=function(i){var t=Dt(i),e=t==D0?i.constructor:void 0,r=e?Or(e):"";if(r)switch(r){case B0:return ep;case E0:return Ku;case G0:return Qu;case R0:return Zu;case F0:return Ju}return t});var Xo=po;var V0=Object.prototype,z0=V0.hasOwnProperty;function U0(i){var t=i.length,e=new i.constructor(t);return t&&typeof i[0]=="string"&&z0.call(i,"index")&&(e.index=i.index,e.input=i.input),e}var tp=U0;var k0=$e.Uint8Array,ja=k0;function j0(i){var t=new i.constructor(i.byteLength);return new ja(t).set(new ja(i)),t}var Yo=j0;function H0(i,t){var e=t?Yo(i.buffer):i.buffer;return new i.constructor(e,i.byteOffset,i.byteLength)}var rp=H0;var W0=/\w*$/;function q0(i){var t=new i.constructor(i.source,W0.exec(i));return t.lastIndex=i.lastIndex,t}var op=q0;var np=yt?yt.prototype:void 0,ip=np?np.valueOf:void 0;function $0(i){return ip?Object(ip.call(i)):{}}var sp=$0;function X0(i,t){var e=t?Yo(i.buffer):i.buffer;return new i.constructor(e,i.byteOffset,i.length)}var ys=X0;var Y0="[object Boolean]",K0="[object Date]",Q0="[object Map]",Z0="[object Number]",J0="[object RegExp]",ex="[object Set]",tx="[object String]",rx="[object Symbol]",ox="[object ArrayBuffer]",nx="[object DataView]",ix="[object Float32Array]",sx="[object Float64Array]",ax="[object Int8Array]",lx="[object Int16Array]",cx="[object Int32Array]",ux="[object Uint8Array]",px="[object Uint8ClampedArray]",dx="[object Uint16Array]",mx="[object Uint32Array]";function fx(i,t,e){var r=i.constructor;switch(t){case ox:return Yo(i);case Y0:case K0:return new r(+i);case nx:return rp(i,e);case ix:case sx:case ax:case lx:case cx:case ux:case px:case dx:case mx:return ys(i,e);case Q0:return new r;case Z0:case tx:return new r(i);case J0:return op(i);case ex:return new r;case rx:return sp(i)}}var ap=fx;function hx(i){return typeof i.constructor=="function"&&!Go(i)?Ec(Wo(i)):{}}var xs=hx;var gx="[object Map]";function yx(i){return dt(i)&&Xo(i)==gx}var lp=yx;var cp=Lr&&Lr.isMap,xx=cp?Fo(cp):lp,up=xx;var vx="[object Set]";function bx(i){return dt(i)&&Xo(i)==vx}var pp=bx;var dp=Lr&&Lr.isSet,_x=dp?Fo(dp):pp,mp=_x;var Sx=1,wx=2,Tx=4,fp="[object Arguments]",Ax="[object Array]",Cx="[object Boolean]",Nx="[object Date]",Ox="[object Error]",hp="[object Function]",Lx="[object GeneratorFunction]",Ix="[object Map]",Px="[object Number]",gp="[object Object]",Mx="[object RegExp]",Dx="[object Set]",Bx="[object String]",Ex="[object Symbol]",Gx="[object WeakMap]",Rx="[object ArrayBuffer]",Fx="[object DataView]",Vx="[object Float32Array]",zx="[object Float64Array]",Ux="[object Int8Array]",kx="[object Int16Array]",jx="[object Int32Array]",Hx="[object Uint8Array]",Wx="[object Uint8ClampedArray]",qx="[object Uint16Array]",$x="[object Uint32Array]",Pe={};Pe[fp]=Pe[Ax]=Pe[Rx]=Pe[Fx]=Pe[Cx]=Pe[Nx]=Pe[Vx]=Pe[zx]=Pe[Ux]=Pe[kx]=Pe[jx]=Pe[Ix]=Pe[Px]=Pe[gp]=Pe[Mx]=Pe[Dx]=Pe[Bx]=Pe[Ex]=Pe[Hx]=Pe[Wx]=Pe[qx]=Pe[$x]=!0;Pe[Ox]=Pe[hp]=Pe[Gx]=!1;function vs(i,t,e,r,o,n){var s,a=t&Sx,c=t&wx,p=t&Tx;if(e&&(s=o?e(i,r,o,n):e(i)),s!==void 0)return s;if(!mt(i))return i;var l=Xe(i);if(l){if(s=tp(i),!a)return Qi(i,s)}else{var u=Xo(i),d=u==hp||u==Lx;if(Ro(i))return cs(i,a);if(u==gp||u==fp||d&&!o){if(s=c||d?{}:xs(i),!a)return c?Xu(i,zu(s,i)):$u(i,Vu(s,i))}else{if(!Pe[u])return o?i:{};s=ap(i,u,a)}}n||(n=new ls);var m=n.get(i);if(m)return m;n.set(i,s),mp(i)?i.forEach(function(g){s.add(vs(g,t,e,g,i,n))}):up(i)&&i.forEach(function(g,x){s.set(x,vs(g,t,e,x,i,n))});var f=p?c?ms:Yu:c?nr:Vo,h=l?void 0:f(i);return zc(h||i,function(g,x){h&&(x=g,g=i[x]),es(s,x,vs(g,t,e,x,i,n))}),s}var bs=vs;var Xx=1,Yx=4;function Kx(i){return bs(i,Xx|Yx)}var kn=Kx;function Qx(i){return function(t,e,r){for(var o=-1,n=Object(t),s=r(t),a=s.length;a--;){var c=s[i?a:++o];if(e(n[c],c,n)===!1)break}return t}}var yp=Qx;var Zx=yp(),xp=Zx;function Jx(i,t,e){(e!==void 0&&!Vr(i[t],e)||e===void 0&&!(t in i))&&Eo(i,t,e)}var jn=Jx;function ev(i){return dt(i)&&zr(i)}var vp=ev;function tv(i,t){if(!(t==="constructor"&&typeof i[t]=="function")&&t!="__proto__")return i[t]}var Hn=tv;function rv(i){return zt(i,nr(i))}var bp=rv;function ov(i,t,e,r,o,n,s){var a=Hn(i,e),c=Hn(t,e),p=s.get(c);if(p){jn(i,e,p);return}var l=n?n(a,c,e+"",i,t,s):void 0,u=l===void 0;if(u){var d=Xe(c),m=!d&&Ro(c),f=!d&&!m&&os(c);l=c,d||m||f?Xe(a)?l=a:vp(a)?l=Qi(a):m?(u=!1,l=cs(c,!0)):f?(u=!1,l=ys(c,!0)):l=[]:as(c)||uo(c)?(l=a,uo(a)?l=bp(a):(!mt(a)||Do(a))&&(l=xs(c))):u=!1}u&&(s.set(c,l),o(l,c,r,n,s),s.delete(c)),jn(i,e,l)}var _p=ov;function Sp(i,t,e,r,o){i!==t&&xp(t,function(n,s){if(o||(o=new ls),mt(n))_p(i,t,s,e,Sp,r,o);else{var a=r?r(Hn(i,s),n,s+"",i,t,o):void 0;a===void 0&&(a=n),jn(i,s,a)}},nr)}var wp=Sp;function nv(i){var t=i==null?0:i.length;return t?i[t-1]:void 0}var Tp=nv;function iv(i,t){return t.length<2?i:Au(i,Du(t,0,-1))}var Ap=iv;var sv=Hc(function(i,t,e){wp(i,t,e)}),mo=sv;function av(i,t){return t=jo(t,i),i=Ap(i,t),i==null||delete i[ss(Tp(t))]}var Cp=av;function lv(i){return as(i)?void 0:i}var Np=lv;var cv=1,uv=2,pv=4,dv=Pu(function(i,t){var e={};if(i==null)return e;var r=!1;t=$i(t,function(n){return n=jo(n,i),r||(r=n.length>1),n}),zt(i,ms(i),e),r&&(e=bs(e,cv|uv|pv,Np));for(var o=t.length;o--;)Cp(e,t[o]);return e}),Ko=dv;var Qo;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(Qo||(Qo={}));var fo;(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(n){return n.type==="PerspectiveCamera"?n.perspective.zoom:n.orthographic.zoom}o.getZoom=r})(fo||(fo={}));var Op;(e=>{function i(r,o){return r[0]===o[0]&&r[1]===o[1]}e.isEqual=i;function t(r,o,n){return[r[0]+(o[0]-r[0])*n,r[1]+(o[1]-r[1])*n]}e.lerp=t})(Op||(Op={}));var Zo;(o=>{function i(n,s){return n[0]===s[0]&&n[1]===s[1]&&n[2]===s[2]}o.isEqual=i;function t(n,s){return[n[0]+s[0],n[1]+s[1],n[2]+s[2]]}o.add=t;function e(n,s){return[n[0]-s[0],n[1]-s[1],n[2]-s[2]]}o.sub=e;function r(n,s,a){return[n[0]+(s[0]-n[0])*a,n[1]+(s[1]-n[1])*a,n[2]+(s[2]-n[2])*a]}o.lerp=r})(Zo||(Zo={}));var Lp;(e=>{function i(r,o){return r[0]===o[0]&&r[1]===o[1]&&r[2]===o[2]&&r[3]===o[3]}e.isEqual=i;function t(r,o,n){return[r[0]+(o[0]-r[0])*n,r[1]+(o[1]-r[1])*n,r[2]+(o[2]-r[2])*n,r[3]+(o[3]-r[3])*n]}e.lerp=t})(Lp||(Lp={}));var Wr;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(n,s){for(let a=0;a<16;a++)if(n[a]!==s[a])return!1;return!0}o.isEqual=t;function e(n){return n??o.identity}o.simplify=e;function r(n,s){let a=s.slice(0);for(var c=0,p=s.length;c<p;c+=3){let l=n[3]*s[c]+n[7]*s[c+1]+n[11]*s[c+2]+n[15];a[c]=(n[0]*s[c]+n[4]*s[c+1]+n[8]*s[c+2]+n[12])/l,a[c+1]=(n[1]*s[c]+n[5]*s[c+1]+n[9]*s[c+2]+n[13])/l,a[c+2]=(n[2]*s[c]+n[6]*s[c+1]+n[10]*s[c+2]+n[14])/l}return a}o.applyMatrix4=r})(Wr||(Wr={}));var Bt;(c=>{c.white={r:1,g:1,b:1},c.red={r:1,g:0,b:0},c.black={r:0,g:0,b:0};function r(p){return{r:Math.round(p.r*255),g:Math.round(p.g*255),b:Math.round(p.b*255),a:1}}c.toRgb255a1=r;function o(p){return{r:p.r,g:p.g,b:p.b}}c.clone=o;function n(p){return p=Math.floor(p),{r:(p>>16&255)/255,g:(p>>8&255)/255,b:(p&255)/255}}c.fromHex=n;function s(p,l){return p.r===l.r&&p.g===l.g&&p.b===l.b}c.equals=s;function a(p,l,u){return{r:p.r+(l.r-p.r)*u,g:p.g+(l.g-p.g)*u,b:p.b+(l.b-p.b)*u}}c.lerp=a})(Bt||(Bt={}));var Et;(s=>{s.white={...Bt.white,a:1};function t(a){return{r:a[0],g:a[1],b:a[2],a:a[3]}}s.from0to1=t;function e(a,c){return{...Bt.fromHex(a),a:c}}s.fromHexAndA=e;function r(a){return{r:Math.round(a.r*255),g:Math.round(a.g*255),b:Math.round(a.b*255),a:a.a}}s.toRgb255a1=r;function o(a,c){return Bt.equals(a,c)&&a.a===c.a}s.equals=o;function n(a,c,p){return{r:a.r+(c.r-a.r)*p,g:a.g+(c.g-a.g)*p,b:a.b+(c.b-a.b)*p,a:a.a+(c.a-a.a)*p}}s.lerp=n})(Et||(Et={}));var _s;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(_s||(_s={}));var Ip;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(Ip||(Ip={}));var Pp;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(Pp||(Pp={}));var Ss;(t=>{function i(e,r=.1){return{type:"radial",hideBase:!1,count:3,radial:{radius:Math.max(e[0],e[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},linear:{scale:[1,1,1],rotation:[0,0,0],position:[e[0]+e[0]*r,0,0]},grid:{count:[2,2,2],size:e.map(o=>o*(1+r)),useCenter:!0}}}t.defaultData=i})(Ss||(Ss={}));var ke=class{modifyById(t,e){let r=this;if(r[t]===void 0)throw new Error("not expected");{let n={...r,[t]:e};return Object.setPrototypeOf(n,ke.prototype),n}}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:n,data:s}=t,a={...e,[n]:s};return Object.setPrototypeOf(a,ke.prototype),{data:a,actual:t,reverse:o}}else if(t.type===2){let{id:r}=t,o=e[r];if(o===void 0)return null;{let n={...e};return Object.setPrototypeOf(n,ke.prototype),delete n[r],{data:n,actual:t,reverse:{type:1,id:r,data:o}}}}throw new Error("illegal arg")}};function Wn(i){if(i.deepFreeze!==void 0){i.deepFreeze(i);return}let t=Object.getOwnPropertyNames(i);for(let e of t){let r=i[e];r&&typeof r=="object"&&Wn(r)}return Object.freeze(i)}function Mp(i,t){let e=0;for(;e<i.length&&e<t.length;){if(i[e]<t[e])return-1;if(i[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==i.length?1:0}var ws=class extends Error{};function ir(i,t,e){if(i===void 0?t===void 0?(i=0,t=10):i=t-10:t===void 0&&(t=i+10),i>t){let n=i;i=t,t=n}let r=[],o=1/(e+1);for(let n=0;n<e;n++){let s=i+(t-i)*(n+.75+Math.random()*.5)*o;r.push(s)}return r}function Ts(i){return i instanceof Uint8Array||i instanceof Uint16Array||i instanceof Uint32Array||i instanceof Int8Array||i instanceof Int16Array||i instanceof Int32Array||i instanceof Float32Array||i instanceof Float64Array}function Dp(){return typeof process<"u"}function Bp(i,t){for(let e of i)t(e.id,e.data),Bp(e.children,t)}function Ep(i,t){t(i.id,i.data);for(let e of i.children)Ep(e,t)}var Ut=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Ut.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Wn(this[e]),e++}fillCaches0(e,r){this.objCaches.set(e.id,e),this.parentCaches.set(e.id,r);for(let o of e.children)this.fillCaches0(o,e.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let e of this)this.fillCaches0(e,null)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}isDescendantOf(e,r){for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}data(e){return this.get(e)?.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){return e===null?this:this.get(e)?.children}traverseFrom(e,r){if(e===null)this.traverse(r);else{let o=this.get(e);o&&Ep(o,r)}}traverse(e){Bp(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 n=this.parent(e),s=this.childrenArray(n),a=s.findIndex(l=>l.id===e);if(a<0)throw new Error("not expected");let c=s[a];return s=[...s],s[a]={...c,data:r},this.modifyArrayBy(n,s)}}modifyArrayBy(e,r){let o=e,n=r;for(;o!==null;){let a=n,c=o;if(o=this.parent(o),o===void 0)throw new Error;n=this.childrenArray(o);let p=n.findIndex(l=>l.id===c);if(p<0)throw new Error;n=[...n],n[p]={...n[p],children:a}}Object.setPrototypeOf(n,Ut.prototype);let s=n;return s.fillCaches(),s}runOp(e){switch(e.type){case 7:return this.addOp(e);case 8:return this.deleteOp(e);case 9:return this.moveOp(e)}}checkDuplicatedIdRec({id:e,children:r}){if(this.get(e)!==void 0)return!0;for(let o of r)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:r,fi:o,id:n,data:s,children:a}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let c=r,p=this.childrenArray(c),l={fi:o,id:n,data:s,children:a};return p=[...p,l],p.sort((d,m)=>d.fi-m.fi),e.localIndex=p.indexOf(l),{data:this.modifyArrayBy(c,p),actual:e,reverse:{type:8,id:n}}}}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 n=this.childrenArray(o),s=n.findIndex(p=>p.id===r);e.localIndex=s,n=[...n];let a=n.splice(s,1)[0];return{data:this.modifyArrayBy(o,n),actual:e,reverse:{type:7,...a,parent:o}}}}moveOp(e){let{parent:r,fi:o,id:n}=e;if(r!==null&&this.get(r)===void 0)return this.deleteOp({type:8,id:n});if(r!==null){let m=r;for(;m!==null;){if(m===void 0)throw new Error;if(m===n)throw new ws("cyclic tree");m=this.parent(m)}}let s=this.parent(n);if(s===void 0)return null;let a=s,c=this.childrenArray(s),p=c.findIndex(m=>m.id===n);c=[...c];let l=c.splice(p,1)[0],u=this.modifyArrayBy(s,c);s=r,c=u.childrenArray(s);let d=l.fi;return l={...l,fi:o},c=[...c,l],c.sort((m,f)=>m.fi-f.fi),e.localIndex=c.indexOf(l),u=u.modifyArrayBy(s,c),{data:u,actual:e,reverse:{type:9,parent:a,fi:d,id:n}}}previous(e,r){if(r===null){let n=this.childrenArray(e);return n.length===0?null:n[n.length-1].id}let o=null;for(let n of this.childrenArray(e)){if(n.id===r)return o;o=n.id}return null}traverseSortNext(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),n=o.findIndex(s=>s.id===e)+1;if(n<o.length)return o[n].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),n=o.findIndex(s=>s.id===e)-1;return n>=0?this.traverseSortPrevious(o[n].id):r}}getAllSorted(e){let r=[];for(let o of e){let n=this.getWithSortKey(o.id);n!==void 0&&r.push({...o,...n})}r.sort((o,n)=>Mp(o.sortKey,n.sortKey));for(let o of r)delete o.sortKey;return r}getWithSortKey(e){var r=e;let o=[],n=this.get(r),s=n;if(n!==void 0){for(;r;)o.splice(0,0,n.fi),r=this.parent(r),r!==null&&(n=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 n=this.childrenArray(e);if(r===null){if(n.length===0)return ir(0,o,o);{let s=n[0].fi;return ir(s-o,s,o)}}else{let s=this.get(r);if(s===void 0||this.parent(r)!==e)throw new Error("illegal args");let a=n.find(c=>c.fi>s.fi);if(a===void 0){let c=n[n.length-1].fi;return ir(c,c+o,o)}else return ir(s.fi,a.fi,o)}}};var As;(t=>{function i(e,r){if(Array.isArray(e)){let o=r.props,n={},s=[...e],a=!1;if(o)for(let c of Object.keys(o)){let p=parseInt(c);if(isNaN(p))throw new Error("wrong index");n[c]=s[p],s[p]=o[c],a=!0}return a?{data:s,actual:r,reverse:{type:0,props:n}}:null}else{let o=r.props,n={},s={...e},a=!1;if(o)for(let c of Object.keys(o)){n[c]=s[c];let p=o[c];p===void 0?delete s[c]:s[c]=p,a=!0}return a?{data:s,actual:r,reverse:{type:0,props:n}}:null}}t.runOp=i})(As||(As={}));var Ee=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Ee.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Wn(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 n=this,s=n.findIndex(p=>p.id===e);if(s<0)throw new Error("not expected");let a=n[s];return n=[...n],n[s]={...a,data:r},this.modifyArrayBy(n)}}modifyArrayBy(e){Object.setPrototypeOf(e,Ee.prototype);let r=e;return Dp()||r.fillCaches(),r}runOp(e){switch(e.type){case 4:return this.addOp(e);case 5:return this.deleteOp(e);case 6:return this.moveOp(e)}}addOp(e){let{fi:r,id:o,data:n}=e,s=this,a={fi:r,id:o,data:n};return s=[...s,a],s.sort((p,l)=>p.fi-l.fi),e.localIndex=s.indexOf(a),{data:this.modifyArrayBy(s),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:r}=e,o=this,n=o.findIndex(c=>c.id===r);if(n===-1)return null;e.localIndex=n,o=[...o];let s=o.splice(n,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...s}}}moveOp(e){let{fi:r,id:o}=e,n=this;n=[...n];let s=n.findIndex(l=>l.id===o);if(s===-1)return null;let a=n[s].fi,c={...n[s],fi:r};return n[s]=c,n.sort((l,u)=>l.fi-u.fi),e.localIndex=n.indexOf(c),{data:this.modifyArrayBy(n),actual:e,reverse:{type:6,fi:a,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 ir(0,r,r);{let n=o[0].fi;return ir(n-r,n,r)}}else{let n=this.get(e);if(n===void 0)throw new Error("illegal args");let s=o.find(a=>a.fi>n.fi);if(s===void 0){let a=o[o.length-1].fi;return ir(a,a+r,r)}else return ir(n.fi,s.fi,r)}}};var Gp=Symbol(),Ns=Symbol(),Jo=class{reportOp(t,e){let r=this;if(e===null)return;r._current=e.data;let o=[];for(;!(r instanceof Cs);){let n=r._path,s=r._current;if(n!==""&&o.splice(0,0,n),r=r._parent,r===null)return;r.update(n,s)}r.push(o,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[Ns];r&&r(),delete this._children[t]}}}},Wa=class extends Jo{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,As.runOp(this._current,t))}},qa=class extends Jo{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,ke.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Rp={get(i,t){if(t===Ns)return()=>{i._parent=null};if(t===Gp)return i._current;let{_current:e,_children:r}=i;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 n=e[t],s=Os(i,t,n);return s!==n?(r===void 0&&(r={},i._children=r),r[t]=s,s):n},has(i,t){return t in i._current},ownKeys(i){return Reflect.ownKeys(i._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(i){return Object.getPrototypeOf(i._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(i,t){let e=i._current,r=Reflect.getOwnPropertyDescriptor(e,t);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:e[t]}}},mv={...Rp,set(i,t,e){let r={type:0,props:{[t]:Ya(e)??e}};return i.deleteChildren(t),i.runOp(r),!0},deleteProperty(i,t){let e={type:0,props:{[t]:void 0}};return i.deleteChildren(t),i.runOp(e),!0}},fv={...Rp,set(i,t,e){return e===void 0?this.deleteProperty(i,t):(i.deleteChildren(t),i.runOp({type:1,id:t,data:e})),!0},deleteProperty(i,t){return i.runOp({type:2,id:t}),!0}},en=class extends Jo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[Ns]=()=>{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 n=e.get(t)?.data,s=Os(this,t,n);return s!==n?(r===void 0&&(r={},this._children=r),r[t]=s,s):n}add(t,e,r,o,n){this.runOp({type:7,parent:t,fi:e,id:r,data:o,children:n})}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 n=0;n<r.length;n++){let s=r[n];this.add(t,o[n],s.id,s.data,s.children)}}insertBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let n=0;n<r.length;n++){let s=r[n];this.add(t,o[n],s.id,s.data,s.children)}}moveAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let n=0;n<r.length;n++){let s=r[n];this.move(t,o[n],s)}}moveBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let n=0;n<r.length;n++){let s=r[n];this.move(t,o[n],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)}},tn=class extends Jo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[Ns]=()=>{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;t(this.data(this._current[r].id),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 n=e.get(t)?.data,s=Os(this,t,n);return s!==n?(r===void 0&&(r={},this._children=r),r[t]=s,s):n}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 n=e[o];this.add(r[o],n.id,n.data)}}insertBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let n=e[o];this.add(r[o],n.id,n.data)}}moveAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let n=e[o];this.move(r[o],n)}}moveBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let n=e[o];this.move(r[o],n)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function Ha(i,t,e){if(i.length>0){let r=i[i.length-1];if(r.type===0&&t.type===0&&Ls.equal(r.path,e)){Object.assign(r.props,t.props);return}}i.push({...t,path:e})}var Cs=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){Ha(this.ts,e,t),Ha(this.actual,r,t),Ha(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Os(i,t,e){return e instanceof Ut?new en(i,t,e):e instanceof Ee?new tn(i,t,e):e instanceof ke?new Proxy(new qa(i,t,e),fv):e!==null&&typeof e=="object"?Ts(e)?e:new Proxy(new Wa(i,t,e),mv):e}function $a(i){let t=new Cs(i);return[Os(t,"",i),t]}function Xa(i,t){let[e,r]=$a(i);return t(e),r.result()}function Ya(i){return i instanceof en||i instanceof tn?i._current:i!==null&&typeof i=="object"?i[Gp]:i}var Ls;(r=>{function i(o,n){if(n.length===o.length)for(var s=0;s<o.length;){if(o[s]!==n[s])return!1;s+=1}else return!1;return!0}r.equal=i;function t(o,n,s){let a=e(s,o);if(a!==void 0&&typeof a=="object"&&a!==null){let c={...n};return Object.keys(a).forEach(p=>{delete c[p]}),c}else return n}r.removeOverridden=t;function e(o,n,s=0){if(n.length<=s)return o;if((o instanceof Ut||o instanceof en)&&typeof n[s]=="string")return e(o.data(n[s]),n,s+1);if((o instanceof Ee||o instanceof tn)&&typeof n[s]=="string")return e(o.data(n[s]),n,s+1);if(typeof n[s]=="number"&&Array.isArray(o))return e(o[n[s]],n,s+1);if(typeof n[s]=="string"&&typeof o=="object")return e(o[n[s]],n,s+1)}r.zoom=e})(Ls||(Ls={}));var Is=class{},qn=class extends Is{constructor(e){super();this.id=e}},$n=class extends Is{constructor(e){super();this.data=e}};var Qa;try{Qa=new TextDecoder}catch{}var te,$r,w=0;var Wp=[],Za=Wp,Ja=0,At={},we,qr,kt=0,sr=0,Gt,Pr,xt=[],Oe,Fp={useRecords:!1,mapsAsObjects:!0},Xn=class{},tl=new Xn;tl.name="MessagePack 0xC1";var rn=!1,ar=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(te)return Kp(()=>(Ms(),this?this.unpack(t,e):ar.prototype.unpack.call(Fp,t,e)));$r=e>-1?e:t.length,w=0,Ja=0,sr=0,qr=null,Za=Wp,Gt=null,te=t;try{Oe=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw te=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 ar){if(At=this,this.structures)return we=this.structures,Ps();(!we||we.length>0)&&(we=[])}else At=Fp,(!we||we.length>0)&&(we=[]);return Ps()}unpackMultiple(t,e){let r,o=0;try{rn=!0;let n=t.length,s=this?this.unpack(t,n):Es.unpack(t,n);if(e){for(e(s);w<n;)if(o=w,e(Ps())===!1)return}else{for(r=[s];w<n;)o=w,r.push(Ps());return r}}catch(n){throw n.lastPosition=o,n.values=r,n}finally{rn=!1,Ms()}}_mergeStructures(t,e){t=t||[];for(let r=0,o=t.length;r<o;r++){let n=t[r];n&&(n.isShared=!0,r>=32&&(n.highByte=r-32>>5))}t.sharedLength=t.length;for(let r in e||[])if(r>=0){let o=t[r],n=e[r];n&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[r]=o),t[r]=n)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function Ps(){try{if(!At.trusted&&!rn){let t=we.sharedLength||0;t<we.length&&(we.length=t)}let i=Fe();if(w==$r)we.restoreStructures&&Vp(),we=null,te=null,Pr&&(Pr=null);else if(w>$r){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!rn)throw new Error("Data read, but end of buffer not reached");return i}catch(i){throw we.restoreStructures&&Vp(),Ms(),(i instanceof RangeError||i.message.startsWith("Unexpected end of buffer"))&&(i.incomplete=!0),i}}function Vp(){for(let i in we.restoreStructures)we[i]=we.restoreStructures[i];we.restoreStructures=null}function Fe(){let i=te[w++];if(i<160)if(i<128){if(i<64)return i;{let t=we[i&63]||At.getStructures&&qp()[i&63];return t?(t.read||(t.read=rl(t,i&63)),t.read()):i}}else if(i<144)if(i-=128,At.mapsAsObjects){let t={};for(let e=0;e<i;e++)t[Xp()]=Fe();return t}else{let t=new Map;for(let e=0;e<i;e++)t.set(Fe(),Fe());return t}else{i-=144;let t=new Array(i);for(let e=0;e<i;e++)t[e]=Fe();return t}else if(i<192){let t=i-160;if(sr>=w)return qr.slice(w-kt,(w+=t)-kt);if(sr==0&&$r<140){let e=t<16?ol(t):$p(t);if(e!=null)return e}return el(t)}else{let t;switch(i){case 192:return null;case 193:return Gt?(t=Fe(),t>0?Gt[1].slice(Gt.position1,Gt.position1+=t):Gt[0].slice(Gt.position0,Gt.position0-=t)):tl;case 194:return!1;case 195:return!0;case 196:return Ka(te[w++]);case 197:return t=Oe.getUint16(w),w+=2,Ka(t);case 198:return t=Oe.getUint32(w),w+=4,Ka(t);case 199:return ho(te[w++]);case 200:return t=Oe.getUint16(w),w+=2,ho(t);case 201:return t=Oe.getUint32(w),w+=4,ho(t);case 202:if(t=Oe.getFloat32(w),At.useFloat32>2){let e=Bs[(te[w]&127)<<1|te[w+1]>>7];return w+=4,(e*t+(t>0?.5:-.5)>>0)/e}return w+=4,t;case 203:return t=Oe.getFloat64(w),w+=8,t;case 204:return te[w++];case 205:return t=Oe.getUint16(w),w+=2,t;case 206:return t=Oe.getUint32(w),w+=4,t;case 207:return At.int64AsNumber?(t=Oe.getUint32(w)*4294967296,t+=Oe.getUint32(w+4)):t=Oe.getBigUint64(w),w+=8,t;case 208:return Oe.getInt8(w++);case 209:return t=Oe.getInt16(w),w+=2,t;case 210:return t=Oe.getInt32(w),w+=4,t;case 211:return At.int64AsNumber?(t=Oe.getInt32(w)*4294967296,t+=Oe.getUint32(w+4)):t=Oe.getBigInt64(w),w+=8,t;case 212:if(t=te[w++],t==114)return Hp(te[w++]&63);{let e=xt[t];if(e)return e.read?(w++,e.read(Fe())):e.noBuffer?(w++,e()):e(te.subarray(w,++w));throw new Error("Unknown extension "+t)}case 213:return t=te[w],t==114?(w++,Hp(te[w++]&63,te[w++])):ho(2);case 214:return ho(4);case 215:return ho(8);case 216:return ho(16);case 217:return t=te[w++],sr>=w?qr.slice(w-kt,(w+=t)-kt):gv(t);case 218:return t=Oe.getUint16(w),w+=2,sr>=w?qr.slice(w-kt,(w+=t)-kt):yv(t);case 219:return t=Oe.getUint32(w),w+=4,sr>=w?qr.slice(w-kt,(w+=t)-kt):xv(t);case 220:return t=Oe.getUint16(w),w+=2,Up(t);case 221:return t=Oe.getUint32(w),w+=4,Up(t);case 222:return t=Oe.getUint16(w),w+=2,kp(t);case 223:return t=Oe.getUint32(w),w+=4,kp(t);default:if(i>=224)return i-256;if(i===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+i)}}}var hv=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function rl(i,t){function e(){if(e.count++>2){let o=i.read=new Function("r","return function(){return {"+i.map(n=>hv.test(n)?n+":r()":"["+JSON.stringify(n)+"]:r()").join(",")+"}}")(Fe);return i.highByte===0&&(i.read=zp(t,i.read)),o()}let r={};for(let o=0,n=i.length;o<n;o++){let s=i[o];r[s]=Fe()}return r}return e.count=0,i.highByte===0?zp(t,e):e}var zp=(i,t)=>function(){let e=te[w++];if(e===0)return t();let r=i<32?-(i+(e<<5)):i+(e<<5),o=we[r]||qp()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=rl(o,i)),o.read()};function qp(){let i=Kp(()=>(te=null,At.getStructures()));return we=At._mergeStructures(i,we)}var el=Ds,gv=Ds,yv=Ds,xv=Ds;function Ds(i){let t;if(i<16&&(t=ol(i)))return t;if(i>64&&Qa)return Qa.decode(te.subarray(w,w+=i));let e=w+i,r=[];for(t="";w<e;){let o=te[w++];if((o&128)===0)r.push(o);else if((o&224)===192){let n=te[w++]&63;r.push((o&31)<<6|n)}else if((o&240)===224){let n=te[w++]&63,s=te[w++]&63;r.push((o&31)<<12|n<<6|s)}else if((o&248)===240){let n=te[w++]&63,s=te[w++]&63,a=te[w++]&63,c=(o&7)<<18|n<<12|s<<6|a;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+=nt.apply(String,r),r.length=0)}return r.length>0&&(t+=nt.apply(String,r)),t}function Up(i){let t=new Array(i);for(let e=0;e<i;e++)t[e]=Fe();return t}function kp(i){if(At.mapsAsObjects){let t={};for(let e=0;e<i;e++)t[Xp()]=Fe();return t}else{let t=new Map;for(let e=0;e<i;e++)t.set(Fe(),Fe());return t}}var nt=String.fromCharCode;function $p(i){let t=w,e=new Array(i);for(let r=0;r<i;r++){let o=te[w++];if((o&128)>0){w=t;return}e[r]=o}return nt.apply(String,e)}function ol(i){if(i<4)if(i<2){if(i===0)return"";{let t=te[w++];if((t&128)>1){w-=1;return}return nt(t)}}else{let t=te[w++],e=te[w++];if((t&128)>0||(e&128)>0){w-=2;return}if(i<3)return nt(t,e);let r=te[w++];if((r&128)>0){w-=3;return}return nt(t,e,r)}else{let t=te[w++],e=te[w++],r=te[w++],o=te[w++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){w-=4;return}if(i<6){if(i===4)return nt(t,e,r,o);{let n=te[w++];if((n&128)>0){w-=5;return}return nt(t,e,r,o,n)}}else if(i<8){let n=te[w++],s=te[w++];if((n&128)>0||(s&128)>0){w-=6;return}if(i<7)return nt(t,e,r,o,n,s);let a=te[w++];if((a&128)>0){w-=7;return}return nt(t,e,r,o,n,s,a)}else{let n=te[w++],s=te[w++],a=te[w++],c=te[w++];if((n&128)>0||(s&128)>0||(a&128)>0||(c&128)>0){w-=8;return}if(i<10){if(i===8)return nt(t,e,r,o,n,s,a,c);{let p=te[w++];if((p&128)>0){w-=9;return}return nt(t,e,r,o,n,s,a,c,p)}}else if(i<12){let p=te[w++],l=te[w++];if((p&128)>0||(l&128)>0){w-=10;return}if(i<11)return nt(t,e,r,o,n,s,a,c,p,l);let u=te[w++];if((u&128)>0){w-=11;return}return nt(t,e,r,o,n,s,a,c,p,l,u)}else{let p=te[w++],l=te[w++],u=te[w++],d=te[w++];if((p&128)>0||(l&128)>0||(u&128)>0||(d&128)>0){w-=12;return}if(i<14){if(i===12)return nt(t,e,r,o,n,s,a,c,p,l,u,d);{let m=te[w++];if((m&128)>0){w-=13;return}return nt(t,e,r,o,n,s,a,c,p,l,u,d,m)}}else{let m=te[w++],f=te[w++];if((m&128)>0||(f&128)>0){w-=14;return}if(i<15)return nt(t,e,r,o,n,s,a,c,p,l,u,d,m,f);let h=te[w++];if((h&128)>0){w-=15;return}return nt(t,e,r,o,n,s,a,c,p,l,u,d,m,f,h)}}}}}function Ka(i){return At.copyBuffers?Uint8Array.prototype.slice.call(te,w,w+=i):te.subarray(w,w+=i)}function ho(i){let t=te[w++];if(xt[t])return xt[t](te.subarray(w,w+=i));throw new Error("Unknown extension type "+t)}var jp=new Array(4096);function Xp(){let i=te[w++];if(i>=160&&i<192){if(i=i-160,sr>=w)return qr.slice(w-kt,(w+=i)-kt);if(!(sr==0&&$r<180))return el(i)}else return w--,Fe();let t=(i<<5^(i>1?Oe.getUint16(w):i>0?te[w]:0))&4095,e=jp[t],r=w,o=w+i-3,n,s=0;if(e&&e.bytes==i){for(;r<o;){if(n=Oe.getUint32(r),n!=e[s++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(n=te[r++],n!=e[s++]){r=1879048192;break}if(r===o)return w=r,e.string;o-=3,r=w}for(e=[],jp[t]=e,e.bytes=i;r<o;)n=Oe.getUint32(r),e.push(n),r+=4;for(o+=3;r<o;)n=te[r++],e.push(n);let a=i<16?ol(i):$p(i);return a!=null?e.string=a:e.string=el(i)}var Hp=(i,t)=>{var e=Fe();let r=i;t!==void 0&&(i=i<32?-((t<<5)+i):(t<<5)+i,e.highByte=t);let o=we[i];return o&&o.isShared&&((we.restoreStructures||(we.restoreStructures=[]))[i]=o),we[i]=e,e.read=rl(e,r),e.read()},Yp=typeof self=="object"?self:global;xt[0]=()=>{};xt[0].noBuffer=!0;xt[101]=()=>{let i=Fe();return(Yp[i[0]]||Error)(i[1])};xt[105]=i=>{let t=Oe.getUint32(w-4);Pr||(Pr=new Map);let e=te[w],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};Pr.set(t,o);let n=Fe();return o.used?Object.assign(r,n):(o.target=n,n)};xt[112]=i=>{let t=Oe.getUint32(w-4),e=Pr.get(t);return e.used=!0,e.target};xt[115]=()=>new Set(Fe());var nl=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(i=>i+"Array");xt[116]=i=>{let t=i[0],e=nl[t];if(!e)throw new Error("Could not find typed array for code "+t);return new Yp[e](Uint8Array.prototype.slice.call(i,1).buffer)};xt[120]=()=>{let i=Fe();return new RegExp(i[0],i[1])};xt[98]=i=>{let t=(i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3],e=w;w+=t-4,Gt=[Fe(),Fe()],Gt.position0=0,Gt.position1=0;let r=w;w=e;try{return Fe()}finally{w=r}};xt[255]=i=>i.length==4?new Date((i[0]*16777216+(i[1]<<16)+(i[2]<<8)+i[3])*1e3):i.length==8?new Date(((i[0]<<22)+(i[1]<<14)+(i[2]<<6)+(i[3]>>2))/1e6+((i[3]&3)*4294967296+i[4]*16777216+(i[5]<<16)+(i[6]<<8)+i[7])*1e3):i.length==12?new Date(((i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3])/1e6+((i[4]&128?-281474976710656:0)+i[6]*1099511627776+i[7]*4294967296+i[8]*16777216+(i[9]<<16)+(i[10]<<8)+i[11])*1e3):new Date("invalid");function Kp(i){let t=$r,e=w,r=Ja,o=kt,n=sr,s=qr,a=Za,c=Pr,p=Gt,l=new Uint8Array(te.slice(0,$r)),u=we,d=we.slice(0,we.length),m=At,f=rn,h=i();return $r=t,w=e,Ja=r,kt=o,sr=n,qr=s,Za=a,Pr=c,Gt=p,te=l,rn=f,we=u,we.splice(0,we.length,...d),At=m,Oe=new DataView(te.buffer,te.byteOffset,te.byteLength),h}function Ms(){te=null,Pr=null,we=null}function Qp(i){i.unpack?xt[i.type]=i.unpack:xt[i.type]=i}var Bs=new Array(147);for(let i=0;i<256;i++)Bs[i]=+("1e"+Math.floor(45.15-i*.30103));var Es=new ar({useRecords:!1}),vv=Es.unpack,bv=Es.unpackMultiple,_v=Es.unpack,Gs={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},Sv=new Float32Array(1),kO=new Uint8Array(Sv.buffer,0,4);var Rs;try{Rs=new TextEncoder}catch{}var Fs,sl,Vs=typeof Buffer<"u",il=Vs?Buffer.allocUnsafeSlow:Uint8Array,td=Vs?Buffer:Uint8Array,Zp=Vs?4294967296:2144337920,R,je,O=0,lr,cr=null,wv=/[\u0080-\uFFFF]/,Yn=Symbol("record-id"),go=class extends ar{constructor(t){super(t),this.offset=0;let e,r,o,n,s,a,c=0,p=td.prototype.utf8Write?function(y,I,T){return R.utf8Write(y,I,T)}:Rs&&Rs.encodeInto?function(y,I){return Rs.encodeInto(y,R.subarray(I)).written}:!1,l=this;t||(t={});let u=t&&t.sequential,d=t.structures||t.saveStructures,m=t.maxSharedStructures;if(m==null&&(m=d?32:0),m>8160)throw new Error("Maximum maxSharedStructure is 8160");let f=t.maxOwnStructures;f==null&&(f=d?32:64),u&&!t.saveStructures&&(this.structures=[]);let h=m>32||f+m>64,g=m+64,x=m+f+64;if(x>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let v=[],A=0,_=0;this.pack=this.encode=function(y,I){if(R||(R=new il(8192),je=new DataView(R.buffer,0,8192),O=0),lr=R.length-10,lr-O<2048?(R=new il(R.length),je=new DataView(R.buffer,0,R.length),lr=R.length-10,O=0):O=O+7&2147483640,r=O,a=l.structuredClone?new Map:null,l.bundleStrings?(cr=["",""],R[O++]=214,R[O++]=98,cr.position=O-r,O+=4):cr=null,o=l.structures,o){o.uninitialized&&(o=l._mergeStructures(l.getStructures()));let T=o.sharedLength||0;if(T>m)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 L=0;L<T;L++){let C=o[L];if(!C)continue;let N,j=o.transitions;for(let W=0,ne=C.length;W<ne;W++){let ue=C[W];N=j[ue],N||(N=j[ue]=Object.create(null)),j=N}j[Yn]=L+64}c=T}u||(o.nextId=T+64)}n&&(n=!1),s=o||[];try{if(b(y),cr){je.setUint32(cr.position+r,O-cr.position-r);let T=cr;cr=null,b(T[0]),b(T[1])}if(l.offset=O,a&&a.idsToInsert){O+=a.idsToInsert.length*6,O>lr&&S(O),l.offset=O;let T=Av(R.subarray(r,O),a.idsToInsert);return a=null,T}return I&od?(R.start=r,R.end=O,R):R.subarray(r,O)}finally{if(o){if(_<10&&_++,A>1e4)o.transitions=null,_=0,A=0,v.length>0&&(v=[]);else if(v.length>0&&!u){for(let T=0,L=v.length;T<L;T++)v[T][Yn]=0;v=[]}if(n&&l.saveStructures){let T=o.sharedLength||m;o.length>T&&(o=o.slice(0,T));let L=R.subarray(r,O);return l.saveStructures(o,c)===!1?(l._mergeStructures(l.getStructures()),l.pack(y)):(c=T,L)}}I&Mv&&(O=r)}};let b=y=>{O>lr&&(R=S(O));var I=typeof y,T;if(I==="string"){let L=y.length;if(cr&&L>=8&&L<4096){let j=wv.test(y);cr[j?0:1]+=y,R[O++]=193,b(j?-L:L);return}let C;L<32?C=1:L<256?C=2:L<65536?C=3:C=5;let N=L*3;if(O+N>lr&&(R=S(O+N)),L<64||!p){let j,W,ne,ue=O+C;for(j=0;j<L;j++)W=y.charCodeAt(j),W<128?R[ue++]=W:W<2048?(R[ue++]=W>>6|192,R[ue++]=W&63|128):(W&64512)===55296&&((ne=y.charCodeAt(j+1))&64512)===56320?(W=65536+((W&1023)<<10)+(ne&1023),j++,R[ue++]=W>>18|240,R[ue++]=W>>12&63|128,R[ue++]=W>>6&63|128,R[ue++]=W&63|128):(R[ue++]=W>>12|224,R[ue++]=W>>6&63|128,R[ue++]=W&63|128);T=ue-O-C}else T=p(y,O+C,N);T<32?R[O++]=160|T:T<256?(C<2&&R.copyWithin(O+2,O+1,O+1+T),R[O++]=217,R[O++]=T):T<65536?(C<3&&R.copyWithin(O+3,O+2,O+2+T),R[O++]=218,R[O++]=T>>8,R[O++]=T&255):(C<5&&R.copyWithin(O+5,O+3,O+3+T),R[O++]=219,je.setUint32(O,T),O+=4),O+=T}else if(I==="number")if(y>>>0===y)y<64?R[O++]=y:y<256?(R[O++]=204,R[O++]=y):y<65536?(R[O++]=205,R[O++]=y>>8,R[O++]=y&255):(R[O++]=206,je.setUint32(O,y),O+=4);else if(y>>0===y)y>=-32?R[O++]=256+y:y>=-128?(R[O++]=208,R[O++]=y+256):y>=-32768?(R[O++]=209,je.setInt16(O,y),O+=2):(R[O++]=210,je.setInt32(O,y),O+=4);else{let L;if((L=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){R[O++]=202,je.setFloat32(O,y);let C;if(L<4||(C=y*Bs[(R[O]&127)<<1|R[O+1]>>7])>>0===C){O+=4;return}else O--}R[O++]=203,je.setFloat64(O,y),O+=8}else if(I==="object")if(!y)R[O++]=192;else{if(a){let C=a.get(y);if(C){if(!C.id){let N=a.idsToInsert||(a.idsToInsert=[]);C.id=N.push(C)}R[O++]=214,R[O++]=112,je.setUint32(O,C.id),O+=4;return}else a.set(y,{offset:O-r})}let L=y.constructor;if(L===Object)D(y,!0);else if(L===Array){T=y.length,T<16?R[O++]=144|T:T<65536?(R[O++]=220,R[O++]=T>>8,R[O++]=T&255):(R[O++]=221,je.setUint32(O,T),O+=4);for(let C=0;C<T;C++)b(y[C])}else if(L===Map){T=y.size,T<16?R[O++]=128|T:T<65536?(R[O++]=222,R[O++]=T>>8,R[O++]=T&255):(R[O++]=223,je.setUint32(O,T),O+=4);for(let[C,N]of y)b(C),b(N)}else{for(let C=0,N=Fs.length;C<N;C++){let j=sl[C];if(y instanceof j){let W=Fs[C];if(W.write){W.type&&(R[O++]=212,R[O++]=W.type,R[O++]=0),b(W.write.call(this,y));return}let ne=R,ue=je,se=O;R=null;let K;try{K=W.pack.call(this,y,U=>(R=ne,ne=null,O+=U,O>lr&&S(O),{target:R,targetView:je,position:O-U}),b)}finally{ne&&(R=ne,je=ue,O=se,lr=R.length-10)}K&&(K.length+O>lr&&S(K.length+O),O=Tv(K,R,O,W.type));return}}D(y,!y.hasOwnProperty)}}else if(I==="boolean")R[O++]=y?195:194;else if(I==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))R[O++]=211,je.setBigInt64(O,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)R[O++]=207,je.setBigUint64(O,y);else if(this.largeBigIntToFloat)R[O++]=203,je.setFloat64(O,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");O+=8}else if(I==="undefined")this.encodeUndefinedAsNil?R[O++]=192:(R[O++]=212,R[O++]=0,R[O++]=0);else if(I==="function")b(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+I)},D=this.useRecords===!1?this.variableMapSize?y=>{let I=Object.keys(y),T=I.length;T<16?R[O++]=128|T:T<65536?(R[O++]=222,R[O++]=T>>8,R[O++]=T&255):(R[O++]=223,je.setUint32(O,T),O+=4);let L;for(let C=0;C<T;C++)b(L=I[C]),b(y[L])}:(y,I)=>{R[O++]=222;let T=O-r;O+=2;let L=0;for(let C in y)(I||y.hasOwnProperty(C))&&(b(C),b(y[C]),L++);R[T+++r]=L>>8,R[T+r]=L&255}:y=>{let I=Object.keys(y),T,L=s.transitions||(s.transitions=Object.create(null)),C=0;for(let j=0,W=I.length;j<W;j++){let ne=I[j];T=L[ne],T||(T=L[ne]=Object.create(null),C++),L=T}let N=L[Yn];if(N)N>=96&&h?(R[O++]=((N-=96)&31)+96,R[O++]=N>>5):R[O++]=N;else{N=s.nextId,N||(N=64),N<g&&this.shouldShareStructure&&!this.shouldShareStructure(I)?(N=s.nextOwnId,N<x||(N=g),s.nextOwnId=N+1):(N>=x&&(N=g),s.nextId=N+1);let j=I.highByte=N>=96&&h?N-96>>5:-1;L[Yn]=N,s[N-64]=I,N<g?(I.isShared=!0,s.sharedLength=N-63,n=!0,j>=0?(R[O++]=(N&31)+96,R[O++]=j):R[O++]=N):(j>=0?(R[O++]=213,R[O++]=114,R[O++]=(N&31)+96,R[O++]=j):(R[O++]=212,R[O++]=114,R[O++]=N),C&&(A+=_*C),v.length>=f&&(v.shift()[Yn]=0),v.push(L),b(I))}for(let j=0,W=I.length;j<W;j++)b(y[I[j]])},S=y=>{let I;if(y>16777216){if(y-r>Zp)throw new Error("Packed buffer would be larger than maximum buffer size");I=Math.min(Zp,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 T=new il(I);return je=new DataView(T.buffer,0,I),R.copy?R.copy(T,0,r,y):T.set(R.slice(r,y)),O-=r,r=0,lr=T.length-10,R=T}}useBuffer(t){R=t,je=new DataView(R.buffer,R.byteOffset,R.byteLength),O=0}};sl=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,Xn];Fs=[{pack(i,t,e){let r=i.getTime()/1e3;if((this.useTimestamp32||i.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:o,targetView:n,position:s}=t(6);o[s++]=214,o[s++]=255,n.setUint32(s,r)}else if(r>0&&r<17179869184){let{target:o,targetView:n,position:s}=t(10);o[s++]=215,o[s++]=255,n.setUint32(s,i.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),n.setUint32(s+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:n,position:s}=t(3);o[s++]=212,o[s++]=255,o[s++]=255}else{let{target:o,targetView:n,position:s}=t(15);o[s++]=199,o[s++]=12,o[s++]=255,n.setUint32(s,i.getMilliseconds()*1e6),n.setBigInt64(s+4,BigInt(Math.floor(r)))}}},{pack(i,t,e){let r=Array.from(i),{target:o,position:n}=t(this.structuredClone?3:0);this.structuredClone&&(o[n++]=212,o[n++]=115,o[n++]=0),e(r)}},{pack(i,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=101,r[o++]=0),e([i.name,i.message])}},{pack(i,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=120,r[o++]=0),e([i.source,i.flags])}},{pack(i,t){this.structuredClone?Jp(i,16,t):ed(Vs?Buffer.from(i):new Uint8Array(i),t)}},{pack(i,t){let e=i.constructor;e!==td&&this.structuredClone?Jp(i,nl.indexOf(e.name),t):ed(i,t)}},{pack(i,t){let{target:e,position:r}=t(1);e[r]=193}}];function Jp(i,t,e,r){let o=i.byteLength;if(o+1<256){var{target:n,position:s}=e(4+o);n[s++]=199,n[s++]=o+1}else if(o+1<65536){var{target:n,position:s}=e(5+o);n[s++]=200,n[s++]=o+1>>8,n[s++]=o+1&255}else{var{target:n,position:s,targetView:a}=e(7+o);n[s++]=201,a.setUint32(s,o+1),s+=4}n[s++]=116,n[s++]=t,n.set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength),s)}function ed(i,t){let e=i.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:n}=t(e+5);r[o++]=198,n.setUint32(o,e),o+=4}r.set(i,o)}function Tv(i,t,e,r){let o=i.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(i,e),e+=o,e}function Av(i,t){let e,r=t.length*6,o=i.length-r;for(t.sort((n,s)=>n.offset>s.offset?1:-1);e=t.pop();){let n=e.offset,s=e.id;i.copyWithin(n+r,n,o),r-=6;let a=n+r;i[a++]=214,i[a++]=105,i[a++]=s>>24,i[a++]=s>>16&255,i[a++]=s>>8&255,i[a++]=s&255,o=n}return i}function yo(i){if(i.Class){if(!i.pack&&!i.write)throw new Error("Extension has no pack or write function");if(i.pack&&!i.type)throw new Error("Extension has no type (numeric code to identify the extension)");sl.unshift(i.Class),Fs.unshift(i)}Qp(i)}var rd=new go({useRecords:!1}),Cv=rd.pack,Nv=rd.pack;var{NEVER:Ov,ALWAYS:Lv,DECIMAL_ROUND:Iv,DECIMAL_FIT:Pv}=Gs,od=512,Mv=1024;var nd=new go({structuredClone:!0});yo({Class:ke.prototype.constructor,type:1,write(i){return{...i}},read(i){return Object.setPrototypeOf(i,ke.prototype),i}});yo({Class:Ee.prototype.constructor,type:2,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,Ee.prototype),i}});yo({Class:Ut.prototype.constructor,type:3,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,Ut.prototype),i}});yo({Class:qn.prototype.constructor,type:4,write(i){return i.id},read(i){return new qn(i)}});yo({Class:$n.prototype.constructor,type:5,write(i){return i.data},read(i){return new $n(i)}});function Dv(i){var t=0;if(i.length===0)return t;for(let e=0;e<i.length;e++){let r=i[e];t=(t<<5)-t+r,t=t&t}return t}function al(i){if(Ts(i))return i;if(Array.isArray(i))return i.map(al);if(typeof i=="object"&&i!==null){let t={};for(let e of Object.keys(i).sort())t[e]=al(i[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(i)),t}else return i}var zs;(r=>{function i(o){return nd.pack(o)}r.serialize=i;function t(o){return nd.unpack(o)}r.deserialize=t;function e(o){return Dv(i(al(o))).toString()}r.checksum=e})(zs||(zs={}));var Us;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Us||(Us={}));var ks;(e=>{function i(r){return t(r)}e.defaultData=i;function t(r){if(r==="PointLight")return{type:r,color:Et.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(r==="SpotLight")return{type:r,color:Et.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:Et.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(ks||(ks={}));var ll;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(ll||(ll={}));var cl;(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})(cl||(cl={}));var js;(t=>t.defaultData={...cl.defaultData,...ll.defaultData,cloner:null,booleanExclude:null})(js||(js={}));var ul=(o=>(o[o.Left=1]="Left",o[o.Right=2]="Right",o[o.Center=3]="Center",o[o.Justify=4]="Justify",o))(ul||{}),pl=(r=>(r[r.Top=1]="Top",r[r.Center=2]="Center",r[r.Bottom=3]="Bottom",r))(pl||{}),dl=(r=>(r[r.None=1]="None",r[r.Upper=2]="Upper",r[r.Lower=3]="Lower",r))(dl||{}),Hs;(t=>t.defaultData={width:100,height:100,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.5,letterSpacing:1,text:"",textTransform:1,color:Et.fromHexAndA(6974058,1),alpha:1,font:"roboto_regular"})(Hs||(Hs={}));var Xr;(r=>{function i(o,n){return o==="light"&&n?t(n):e(o)}r.defaultData=i;function t(o){switch(o){case"basic":return{type:"light",category:"basic",alpha:1,visible:!0,mode:0};case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"toon":return{category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"lambert":return{category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0};case"physical":return{category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0}}}function e(o){switch(o){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"texture",projection:0,texture:{image:"image_0",wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:Bt.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],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],steps:[0,1,1,1,1,1,1,1,1,1,1],num:2,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:{...Bt.fromHex(6710886),a:1},colorB:{...Bt.fromHex(6710886),a:1},colorC:{...Bt.fromHex(16777215),a:1},colorD:{...Bt.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:Et.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:Et.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:Et.fromHexAndA(0,1),contourColor:Et.fromHexAndA(0,1),outlineWidth:2,contourWidth:5,outlineThreshold:.4,contourThreshold:0,outlineSmoothing:0,contourFrequency:10,contourDirection:[0,1,0],positionalLines:!1,compensation:!0};case"matcap":return{type:"matcap",alpha:1,visible:!0,mode:0,texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0]}};case"transmission":return{type:"transmission",alpha:1,visible:!0,mode:0,thickness:10,ior:1.5,roughness:1};case"displace":return{type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,visible:!0}}}})(Xr||(Xr={}));var Mr;(a=>{function i(c){return!c.layers.some(l=>{if(l.data.type==="texture"&&l.data.projection!==0||l.data.type==="depth"&&!l.data.isWorldSpace||l.data.type==="noise"||l.data.type==="displace")return!0})&&!e(c)}a.isMergable=i;function t(c){let p="";return c.layers.forEach(l=>{Object.entries(l.data).forEach(([u,d])=>{p+=`${u}${d}`,Array.isArray(d)?d.forEach(m=>p+=`${m}`):typeof d=="object"?Object.values(d).forEach(m=>{typeof m=="number"?p+=`${m.toFixed(4)}`:p+=`${m}`}):p+=`${d}`})}),p}a.getHash=t;function e(c){let p=0;for(let l of c.layers)"alpha"in l.data&&l.data.type!=="light"&&l.data.type!=="fresnel"&&(p+=(1-p)*l.data.alpha);return p<1}a.isTransparent=e;function r(){return{layers:new Ee}}a.defaultEmptyData=r;function o(c="layer1",p="layer2"){return n("phong",c,p)}a.defaultData=o;function n(c,p="layer1",l="layer2"){let u=new Ee;return u.push({fi:0,data:Xr.defaultData("light",c),id:p}),u.push({fi:1,data:Xr.defaultData("color"),id:l}),{layers:u}}a.defaultTwoLayerData=n;function s(c,p="basic",l="layer1",u="layer2"){let d=Xr.defaultData("texture");Object.assign(d.texture,{image:c});let m=new Ee;return m.push({fi:0,data:d,id:l}),m.push({fi:1,data:Xr.defaultData("light",p),id:u}),{layers:m}}a.defaultTwoLayerTextureData=s})(Mr||(Mr={}));var on;(t=>{function i(){return{points:new Ee,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=i})(on||(on={}));var Ws;(t=>{function i(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=i})(Ws||(Ws={}));var Kn;(t=>{function i(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:on.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="BooleanGeometry")return{type:e,operation:2,width:0,height:0,depth:0,phongAngle:35};throw new Error("not implemented")}t.defaultData=i})(Kn||(Kn={}));var Qn;(o=>{o.identity={..._s.identity,hiddenMatrix:Wr.identity};function t(n){return{position:n.position,rotation:n.rotation,scale:n.scale,hiddenMatrix:n.hiddenMatrix}}o.fromObject=t;function e(n,s){return{position:s?.position||n.position,rotation:s?.rotation||n.rotation,scale:s?.scale||n.scale,hiddenMatrix:s?.hiddenMatrix||n.hiddenMatrix}}o.merge=e;function r(n,s){return{position:Zo.isEqual(n.position,s.position)?null:s.position,rotation:Zo.isEqual(n.rotation,s.rotation)?null:s.rotation,scale:Zo.isEqual(n.scale,s.scale)?null:s.scale,hiddenMatrix:Wr.isEqual(n.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}o.diff=r})(Qn||(Qn={}));var Dr;(t=>t.defaultData={states:new Ee,events:new Ee,visible:!0,raycastLock:!1,...Qn.identity})(Dr||(Dr={}));var id;(t=>t.defaultData={type:"Empty",...Dr.defaultData})(id||(id={}));var qs;(t=>t.defaultData={type:"Mesh",...Dr.defaultData,...js.defaultData})(qs||(qs={}));var sd;(t=>t.defaultData={type:"TextFrame",...Dr.defaultData,...Hs.defaultData})(sd||(sd={}));var $s;(t=>t.defaultData={...Dr.defaultData,...Qn.identity,...fo.defaultData})($s||($s={}));var ad;(t=>{function i(e){return{...Dr.defaultData,...ks.defaultData(e)}}t.defaultData=i})(ad||(ad={}));var ld;(r=>(r.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:Wr.identity,name:"Play Camera",visible:!0,raycastLock:!1,states:new Ee,events:new Ee,...fo.defaultData},r.defaultMeshObject={name:"Rectangle",...Dr.defaultData,...qs.defaultData,geometry:Kn.defaultData("RectangleGeometry"),material:Mr.defaultTwoLayerData("basic","layer1","layer2")},r.defaultBooleanObject={name:"Boolean",...Dr.defaultData,...qs.defaultData,geometry:Kn.defaultData("BooleanGeometry"),material:Mr.defaultTwoLayerData("phong","layer1","layer2")}))(ld||(ld={}));var cd;(e=>{function i(r,o){if(o===void 0)return r;let n={...r};return"material"in n&&"material"in o&&o.material&&(n.material=Xa(n.material,s=>{if(typeof s!="string")for(let[a,c]of Object.entries(o.material.layers)){let p=s.layers.data(a);p&&mo(p,c)}}).data),n.materials&&o.materials&&(n.materials=Xa(n.materials,s=>{for(let a=0;a<n.materials.length;a++){let c=o.materials[a];if(typeof c!="string")for(let[p,l]of Object.entries(c.layers)){let u=s[a]?.layers?.data(p);u&&mo(u,l)}}}).data),n}e.patchMaterialState=i;function t(r,o){if(o===void 0)return r;let n={...r};if(Object.assign(n,Qn.merge(n,o)),Qo.is(r.type)){n.orthographic={...n.orthographic},n.perspective={...n.perspective};let s=o;s.orthographic?.zoom!==void 0&&(n.orthographic.zoom=s.orthographic.zoom),s.perspective?.zoom!==void 0&&(n.perspective.zoom=s.perspective.zoom),s.isUpVectorFlipped!==void 0&&(n.isUpVectorFlipped=s.isUpVectorFlipped),s.targetOffset!==void 0&&(n.targetOffset=s.targetOffset)}else if(r.type==="Mesh")n.geometry={...n.geometry},Object.assign(n.geometry,o.geometry),n=i(n,o);else if(Us.is(r.type)){let s=o;s.intensity!==void 0&&(n.intensity=s.intensity),s.color!==void 0&&(typeof s.color=="string"?n.color=s.color:n.color=Bt.clone(s.color))}return n}e.patch=t})(cd||(cd={}));var Bv={Bell:"/_assets/_audios/CC0/bell_1.mp3","Bell 2":"/_assets/_audios/CC0/bell_2.wav",Bubble:"/_assets/_audios/CC0/bubble.wav",Click:"/_assets/_audios/CC0/click.mp3",Jump:"/_assets/_audios/CC0/jump.wav",Pop:"/_assets/_audios/CC0/pop.mp3","Pop 2":"/_assets/_audios/CC0/pop_2.mp3","Pop Double":"/_assets/_audios/CC0/pop_double_1.mp3","Pop Double 2":"/_assets/_audios/CC0/pop_double_2.mp3",Success:"/_assets/_audios/CC0/success.mp3",Suction:"/_assets/_audios/CC0/suction.wav",Tip:"/_assets/_audios/CC0/tip.mp3",Water:"/_assets/_audios/CC0/water.wav"},Ev={"Bells 01":"/_assets/_audios/Originals/spe_bells_01.mp3","Bells 02":"/_assets/_audios/Originals/spe_bells_02.mp3","Bells 03":"/_assets/_audios/Originals/spe_bells_03.mp3","Book Closing 01":"/_assets/_audios/Originals/spe_book_closing_01.mp3","Book Closing 02":"/_assets/_audios/Originals/spe_book_closing_02.mp3","Book Opening 01":"/_assets/_audios/Originals/spe_book_opening_01.mp3","Book Opening 02":"/_assets/_audios/Originals/spe_book_opening_02.mp3","Breathing Strange":"/_assets/_audios/Originals/spe_breathing_strange.mp3",Bubble:"/_assets/_audios/Originals/spe_bubble.mp3","Bubble Double":"/_assets/_audios/Originals/spe_bubble_double.mp3","Cards 01":"/_assets/_audios/Originals/spe_cards_01.mp3","Cards 02":"/_assets/_audios/Originals/spe_cards_02.mp3","Ceramic 01":"/_assets/_audios/Originals/spe_ceramic_01.mp3","Ceramic 02":"/_assets/_audios/Originals/spe_ceramic_02.mp3","Ceramic 03":"/_assets/_audios/Originals/spe_ceramic_03.mp3","Ceramic 04":"/_assets/_audios/Originals/spe_ceramic_04.mp3","Ceramic 05":"/_assets/_audios/Originals/spe_ceramic_05.mp3","Ceramic 06":"/_assets/_audios/Originals/spe_ceramic_06.mp3","Ceramic 07":"/_assets/_audios/Originals/spe_ceramic_07.mp3","Click 01":"/_assets/_audios/Originals/spe_click_01.mp3","Click 02":"/_assets/_audios/Originals/spe_click_02.mp3","Click 03":"/_assets/_audios/Originals/spe_click_03.mp3","Click 04":"/_assets/_audios/Originals/spe_click_04.mp3","Click 05":"/_assets/_audios/Originals/spe_click_05.mp3","Click Double":"/_assets/_audios/Originals/spe_click_double_1.mp3","Device Close 01":"/_assets/_audios/Originals/spe_device_close_01.mp3","Device Open 01":"/_assets/_audios/Originals/spe_device_open_01.mp3","Door Closing":"/_assets/_audios/Originals/spe_door_closing.mp3","Door Garage":"/_assets/_audios/Originals/spe_door_garage.mp3","Door Opening":"/_assets/_audios/Originals/spe_door_opening.mp3","Drop 01":"/_assets/_audios/Originals/spe_drop_01.mp3","Drop 02":"/_assets/_audios/Originals/spe_drop_02.mp3","Drop 03":"/_assets/_audios/Originals/spe_drop_03.mp3","Drop 04":"/_assets/_audios/Originals/spe_drop_04.mp3","Drop 05":"/_assets/_audios/Originals/spe_drop_05.mp3","Face Slap 01":"/_assets/_audios/Originals/spe_face_slap_01.mp3","Face Slap 02":"/_assets/_audios/Originals/spe_face_slap_02.mp3","Falling Bounce":"/_assets/_audios/Originals/spe_falling_bounce.mp3","Falling Box":"/_assets/_audios/Originals/spe_falling_box.mp3","Finger Snap 01":"/_assets/_audios/Originals/spe_finger_snap_01.mp3","Finger Snap 02":"/_assets/_audios/Originals/spe_finger_snap_02.mp3","Finger Snap 03":"/_assets/_audios/Originals/spe_finger_snap_03.mp3","Finger Snap 04":"/_assets/_audios/Originals/spe_finger_snap_04.mp3","Jump 01":"/_assets/_audios/Originals/spe_jump_01.mp3","Jump 02":"/_assets/_audios/Originals/spe_jump_02.mp3","Key Press":"/_assets/_audios/Originals/spe_key_press.mp3","Key Press 02":"/_assets/_audios/Originals/spe_key_press_02.mp3","Key Press 03":"/_assets/_audios/Originals/spe_key_press_03.mp3","Key Press 04":"/_assets/_audios/Originals/spe_key_press_04.mp3","Key Press 05":"/_assets/_audios/Originals/spe_key_press_05.mp3","Key Press 06":"/_assets/_audios/Originals/spe_key_press_06.mp3","Key Typing 01":"/_assets/_audios/Originals/spe_key_typing_01.mp3","Knock Knock":"/_assets/_audios/Originals/spe_knock_knock.mp3","Marker 01":"/_assets/_audios/Originals/spe_marker_01.mp3","Marker 02":"/_assets/_audios/Originals/spe_marker_02.mp3","Marker 03":"/_assets/_audios/Originals/spe_marker_03.mp3","Marker 04":"/_assets/_audios/Originals/spe_marker_04.mp3","Match 01":"/_assets/_audios/Originals/spe_match_01.mp3","Measure Close 01":"/_assets/_audios/Originals/spe_measure_close_01.mp3","Measure Close 02":"/_assets/_audios/Originals/spe_measure_close_02.mp3","Measure Open 01":"/_assets/_audios/Originals/spe_measure_open_01.mp3","Measure Open 02":"/_assets/_audios/Originals/spe_measure_open_02.mp3","Metal Rolling":"/_assets/_audios/Originals/spe_metal_rolling.mp3","Motor 01":"/_assets/_audios/Originals/spe_motor_01.mp3","Motor 02":"/_assets/_audios/Originals/spe_motor_02.mp3","Noise 01":"/_assets/_audios/Originals/spe_noise_01.mp3","Notch 01":"/_assets/_audios/Originals/spe_notch_01.mp3","Notch 02":"/_assets/_audios/Originals/spe_notch_02.mp3","Paper Cut 01":"/_assets/_audios/Originals/spe_paper_cut_01.mp3","Paper Cut 02":"/_assets/_audios/Originals/spe_paper_cut_02.mp3","Paper Folding":"/_assets/_audios/Originals/spe_paper_folding.mp3","Paper Scratch 01":"/_assets/_audios/Originals/spe_paper_scratch_01.mp3","Paper Scratch 02":"/_assets/_audios/Originals/spe_paper_scratch_02.mp3","Paper Scratch 03":"/_assets/_audios/Originals/spe_paper_scratch_03.mp3","Pen 01":"/_assets/_audios/Originals/spe_pen_01.mp3","Pen 02":"/_assets/_audios/Originals/spe_pen_02.mp3","Punch 01":"/_assets/_audios/Originals/spe_punch_01.mp3","Punch 02":"/_assets/_audios/Originals/spe_punch_02.mp3","Punch Deep":"/_assets/_audios/Originals/spe_punch_deep.mp3","Radio Noise 01":"/_assets/_audios/Originals/spe_radio_noise_01.mp3","Radio Noise 02":"/_assets/_audios/Originals/spe_radio_noise_02.mp3","Radio Noise 03":"/_assets/_audios/Originals/spe_radio_noise_03.mp3","Rain 01":"/_assets/_audios/Originals/spe_rain_01.mp3","Rain 02":"/_assets/_audios/Originals/spe_rain_02.mp3","Scratch 01":"/_assets/_audios/Originals/spe_scratch_01.mp3","Scratch 02":"/_assets/_audios/Originals/spe_scratch_02.mp3","Scratch 03":"/_assets/_audios/Originals/spe_scratch_03.mp3","Seeds Shaking 01":"/_assets/_audios/Originals/spe_seeds_shaking_01.mp3","Seeds Shaking 02":"/_assets/_audios/Originals/spe_seeds_shaking_02.mp3","Song Scifi 01":"/_assets/_audios/Originals/spe_song_scifi_01.mp3",Spinner:"/_assets/_audios/Originals/spe_spinner.mp3","Spray Body":"/_assets/_audios/Originals/spe_spray_body.mp3","Suction 01":"/_assets/_audios/Originals/spe_suction_01.mp3","Suction 02":"/_assets/_audios/Originals/spe_suction_02.mp3","Suction 03":"/_assets/_audios/Originals/spe_suction_03.mp3","Suction 04":"/_assets/_audios/Originals/spe_suction_04.mp3","Switch 01":"/_assets/_audios/Originals/spe_switch_01.mp3","Switch 02":"/_assets/_audios/Originals/spe_switch_02.mp3","Switch 03":"/_assets/_audios/Originals/spe_switch_03.mp3","Switch 04":"/_assets/_audios/Originals/spe_switch_04.mp3","Switch 05":"/_assets/_audios/Originals/spe_switch_05.mp3","Switch 06":"/_assets/_audios/Originals/spe_switch_06.mp3","Switch 07":"/_assets/_audios/Originals/spe_switch_07.mp3","Switch 08":"/_assets/_audios/Originals/spe_switch_08.mp3","Switch 09":"/_assets/_audios/Originals/spe_switch_09.mp3","Switch 10":"/_assets/_audios/Originals/spe_switch_10.mp3","Swoosh 01":"/_assets/_audios/Originals/spe_swoosh_01.mp3","Swoosh 02":"/_assets/_audios/Originals/spe_swoosh_02.mp3","Swoosh 03":"/_assets/_audios/Originals/spe_swoosh_03.mp3","Swoosh 04":"/_assets/_audios/Originals/spe_swoosh_04.mp3","Tap Ceramic 01":"/_assets/_audios/Originals/spe_tap_ceramic_01.mp3","Tap Ceramic 02":"/_assets/_audios/Originals/spe_tap_ceramic_02.mp3","Tap Metal":"/_assets/_audios/Originals/spe_tap_metal_1.mp3","Tap Metal 2":"/_assets/_audios/Originals/spe_tap_metal_2.mp3","Tap Metal 3":"/_assets/_audios/Originals/spe_tap_metal_3.mp3","Tap Metal 4":"/_assets/_audios/Originals/spe_tap_metal_4.mp3","Tap Plastic":"/_assets/_audios/Originals/spe_tap_plastic.mp3","Tap Wood 01":"/_assets/_audios/Originals/spe_tap_wood_01.mp3","Tap Wood 02":"/_assets/_audios/Originals/spe_tap_wood_02.mp3","Trumbling 01":"/_assets/_audios/Originals/spe_trumbling_01.mp3","Trumbling 02":"/_assets/_audios/Originals/spe_trumbling_02.mp3","Voice Ouch":"/_assets/_audios/Originals/spe_voice_ouch.mp3","Voice Surprise 01":"/_assets/_audios/Originals/spe_voice_surprise_01.mp3","Voice Surprise 02":"/_assets/_audios/Originals/spe_voice_surprise_02.mp3","Walk Steps 01":"/_assets/_audios/Originals/spe_walk_steps_01.mp3","Walk Steps 02":"/_assets/_audios/Originals/spe_walk_steps_02.mp3","Walk Steps 03":"/_assets/_audios/Originals/spe_walk_steps_03.mp3","Water 01":"/_assets/_audios/Originals/spe_water_01.mp3","Water 02":"/_assets/_audios/Originals/spe_water_02.mp3","Water 03":"/_assets/_audios/Originals/spe_water_03.mp3","Water Bath":"/_assets/_audios/Originals/spe_water_bath.mp3","Water Drops":"/_assets/_audios/Originals/spe_water_drops.mp3",Wc:"/_assets/_audios/Originals/spe_wc.mp3","Xylophone Note A":"/_assets/_audios/Originals/spe_xylophone_note_a.mp3","Xylophone Note B":"/_assets/_audios/Originals/spe_xylophone_note_b.mp3","Xylophone Note C":"/_assets/_audios/Originals/spe_xylophone_note_c.mp3","Xylophone Note C Minor":"/_assets/_audios/Originals/spe_xylophone_note_c_minor.mp3","Xylophone Note D":"/_assets/_audios/Originals/spe_xylophone_note_d.mp3","Xylophone Note E":"/_assets/_audios/Originals/spe_xylophone_note_e.mp3","Xylophone Note F":"/_assets/_audios/Originals/spe_xylophone_note_f.mp3","Xylophone Note G":"/_assets/_audios/Originals/spe_xylophone_note_g.mp3","Xylophone Notes All 01":"/_assets/_audios/Originals/spe_xylophone_notes_all_01.mp3","Xylophone Notes All 02":"/_assets/_audios/Originals/spe_xylophone_notes_all_02.mp3"},Xs={CC0:Bv,Originals:Ev};var Ys;(c=>{let i=["/_assets/_textures/texture_checkboard_default.png","/_assets/_textures/texture_dots_01.png","/_assets/_textures/texture_wood_01.jpg","/_assets/_textures/texture_wood_02.jpg","/_assets/_textures/texture_rock_01.jpg","/_assets/_textures/texture_rock_02.jpg","/_assets/_textures/texture_grass_01.jpg","/_assets/_textures/texture_grass_02.jpg","/_assets/_textures/texture_concrete_01.jpg","/_assets/_textures/texture_concrete_02.jpg","/_assets/_textures/texture_paper_01.jpg","/_assets/_textures/texture_roof_01.jpg","/_assets/_textures/texture_wall_02.jpg","/_assets/_textures/texture_planet_earth_color.jpg","/_assets/_textures/texture_planet_earth_clouds.jpg","/_assets/_textures/texture_planet_mars.jpg","/_assets/_textures/texture_space.jpg"],t=["/_assets/_textures/matcap_5_18.png","/_assets/_textures/matcap_5_1.png","/_assets/_textures/matcap_4_3.png","/_assets/_textures/matcap_2_7.png","/_assets/_textures/matcap_2_4.png","/_assets/_textures/matcap_1_11.png"];function e(){let p={},l=0;for(let u of i)p[`image_${l}`]={data:u,name:`Image ${l}`,asset:!1},l++;l=0;for(let u of t)p[`matcap_${l}`]={data:u,name:`Matcap ${l}`,asset:!1},l++;return p}c.defaultImages=e;function r(){let p={};return p["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},p}c.defaultColors=r;function o(){let p={},l={...Xs.CC0,...Xs.Originals},u=0;for(let[d,m]of Object.entries(l)){let f=m.split("/").pop()??"unknown",h=m.split(".").pop(),g="";if(h==="mp3")g="audio/mpeg";else if(h==="wav")g="audio/wav";else continue;p[`audio_${u}`]={name:d,filename:f,data:m,mimeType:g,asset:!1,free:d in Xs.CC0},u++}return p}c.defaultAudios=o,c.defaultAudio={name:"Untitled Audio",data:"/_assets/_audios/CC0/success.mp3",filename:"success.mp3",mimeType:"audio/mpeg",asset:!0};function s(){return{materials:new ke,images:new ke,colors:new ke,audios:new ke,penumbraSize:[.5,.5,.5]}}c.emptyData=s;function a(){return{materials:new ke,images:Wi(e(),ke.prototype),colors:Wi(r(),ke.prototype),audios:Wi(o(),ke.prototype),penumbraSize:new Array(5).fill(.5)}}c.defaultData=a})(Ys||(Ys={}));var Ks;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=",asset:!1})(Ks||(Ks={}));var ud=require("three"),ct=class extends ud.Color{constructor(e,r,o,n){super(e,r,o);this.isColorA=!0;this.a=n}setRGBA(e,r,o,n){super.setRGB(e,r,o),this.a=n}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 md=require("three");var De=require("three"),dd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,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},i.parameters),r=e.width/2,o=e.radiusTop??r,n=e.radiusBottom??r;return o===n?(o=r,n=r):o>n?(o=r,n=n*r/o):(o=o*r/n,n=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:n})}}static build(i){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:n,openEnded:s,thetaStart:a,thetaLength:c,radiusTop:p,radiusBottom:l,cornerRadius:u,cornerSegments:d,hollow:m}=i.parameters,f;return u||m?f=new Zn(p,l,r,o,n,s,a,c*Math.PI/180,u,u,d,m):f=new De.CylinderBufferGeometry(p,l,r,o,n,s,a,c*Math.PI/180),f.scale(1,1,e/t),Object.assign(f,{userData:{...i,type:"CylinderGeometry"}})}};function Yr(i,t,e){e.x=i.x*t.x,e.y=i.y,e.z=i.x*t.y}function pd(i){return new De.Vector2(i.y,-i.x)}var Zn=class extends De.BufferGeometry{constructor(t,e,r,o,n,s,a,c,p,l,u,d,m=!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,n=Math.floor(n)||1,s=s!==void 0?s:!1,a=a!==void 0?a:0,c=c!==void 0?c:Math.PI*2,s&&(p=0,l=0);let f=[],h=[],g=[],x=[],v=0,A=r/2,_=new De.Vector3,b=new De.Vector3;m&&t==0&&(t=p),m&&e==0&&(e=l);let D=new De.Vector2(t,A),S=new De.Vector2(e,-A),y=null,I=null,T=null,L=null,C=D.clone().sub(S),N=0,j=0,W=0;d>0&&(N=Math.min(t,e)*(1-d),j=t-N,W=e-N);let ne=D.clone();ne.x-=N;let ue=Math.PI-C.angle(),se=C.angle(),K=Math.tan(se/2),U=Math.tan(ue/2),F=K+U,E=d?F:U,B=d?F:K;if(p=Math.min(p,(t-j)/E,C.length()/F),l=Math.min(l,(e-W)/B,C.length()/F),p>0){let z=p/K;y=D.clone().sub(new De.Vector2(z,p)),d&&(T=y.clone(),T.x-=N-F*p),D.sub(C.clone().setLength(z))}if(l>0){let z=l/U;I=S.clone().sub(new De.Vector2(z,-l)),S.add(C.clone().setLength(z)),d&&(L=I.clone(),L.x-=N-F*l,ne.sub(C.clone().setLength(z)))}C=D.clone().sub(S);let P=C.length()<.5,G=[];for(let z=0;z<=o;z++){let M=[],q=z/o,J=q*c+a,ee=new De.Vector2(Math.sin(J),Math.cos(J));L&&I?(Q(M,q,ee,ue,l,L,-1,!0),Q(M,q,ee,se,l,I,-1,!1)):I?(k(M,ee,I.x,0,-1),Q(M,q,ee,se,l,I,-1,!1)):s||k(M,ee,e,W,-1);let H=pd(C).normalize();if(Yr(H,ee,_),!P)for(let Z=0;Z<=n;Z++){let $=Z/n,re=C.clone().multiplyScalar($).add(S);Yr(re,ee,b),h.push(b.x,b.y,b.z),g.push(_.x,_.y,_.z),x.push(q,.5+b.y/r),M.push(v++)}if(T&&y?(Q(M,q,ee,ue,p,y,1,!1),Q(M,q,ee,se,p,T,1,!0)):y?(Q(M,q,ee,ue,p,y,1,!1),k(M,ee,y.x,0,1)):s||k(M,ee,t,j,1),d&&!P){let Z=pd(C).multiplyScalar(-1).normalize();Yr(Z,ee,_);for(let $=0;$<=n;$++){let re=$/n,ce=C.clone().multiplyScalar(-re).add(ne);Yr(ce,ee,b),h.push(b.x,b.y,b.z),g.push(_.x,_.y,_.z),x.push(q,.5+b.y/r),M.push(v++)}}d&&!s&&M.push(M[0]),G.push(M)}for(let z=0;z<G.length-1;z++)for(let M=0;M<G[0].length-1;M++){if(s&&d&&M==n)continue;let q=G[z][M],J=G[z+1][M],ee=G[z+1][M+1],H=G[z][M+1],Z=h[ee*3+0],$=h[ee*3+2];f.push(q,J,H),(Z!=0||$!=0)&&f.push(J,ee,H)}c<Math.PI*2&&(V(-1,G[0],a),V(1,G[G.length-1],a+c)),this.setIndex(f),this.setAttribute("position",new De.Float32BufferAttribute(h,3)),this.setAttribute("normal",new De.Float32BufferAttribute(g,3)),this.setAttribute("uv",new De.Float32BufferAttribute(x,2));function Q(z,M,q,J,ee,H,Z,$){for(let re=0;re<u+1;re++){let ce=re/u,ie=Z<0?ce:1-ce;$&&(ie-=1),ie*=J;let fe=new De.Vector2(Math.sin(ie),Math.cos(ie)*Z),Re=fe.clone().multiplyScalar(ee).add(H);Yr(Re,q,b),h.push(b.x,b.y,b.z),Yr(fe,q,_),g.push(_.x,_.y,_.z),x.push(M,.5+b.y/r),z.push(v++)}}function k(z,M,q,J,ee){let H=new De.Vector3,Z=new De.Vector2,$=[q,J];ee<0&&$.reverse();for(let re of $)Z.set(re,A*ee),Yr(Z,M,H),h.push(H.x,H.y,H.z),g.push(0,ee,0),x.push(.5,.5),z.push(v++)}function V(z,M,q){let J=new De.Vector2(Math.sin(q),Math.cos(q)),ee=new De.Vector2(-Math.cos(q),Math.sin(q)),H=new De.Vector3,Z=z<0?(ce,ie,fe)=>f.push(ce,ie,fe):(ce,ie,fe)=>f.push(ce,fe,ie),$=new De.Vector2((t+e+j+W)/4,0);Yr($,J,H),h.push(H.x,H.y,H.z),g.push(ee.x,0,ee.y),x.push(.5,.5);let re=v++;for(let ce of M){let ie=h.slice(ce*3,ce*3+3);h.push(...ie),g.push(ee.x,0,ee.y);let fe=x.slice(ce*2,ce*2+2);x.push(...fe),v++}for(let ce=re+1;ce<v-1;ce++)Z(re,ce,ce+1);Z(re,v-1,re+1)}}};var fd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,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},i.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(i){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:n,openEnded:s,thetaStart:a,thetaLength:c,cornerRadiusTop:p,cornerRadiusBottom:l,cornerSegments:u}=i.parameters,d;return p>0||l>0||c<360?d=new Zn(0,t/2,r,o,n,s,a,c*Math.PI/180,p,l,u,0,!0):d=new md.ConeBufferGeometry(t/2,r,o,n,s),d.scale(1,1,e/t),Object.assign(d,{userData:{...i,type:"ConeGeometry"}})}};var Ct=require("three"),hd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},i.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(i){let{width:t,height:e,depth:r,widthSegments:o,heightSegments:n,depthSegments:s,cornerRadius:a,cornerSegments:c}=i.parameters,p;return a==0?p=new Ct.BoxBufferGeometry(t,e,r,o,n,s):p=new hl(t,e,r,o,n,s,a,c),Object.assign(p,{userData:{...i,type:"CubeGeometry"}})}},fl=Math.PI/2,hl=class extends Ct.BufferGeometry{constructor(t=1,e=1,r=1,o=1,n=1,s=1,a=0,c=4){super(),this.type="BoxBufferGeometry";let p=this;o=Math.floor(o),n=Math.floor(n),s=Math.floor(s),c=Math.floor(c),a=Math.min(a,t/2,e/2,r/2);let l=[],u=[],d=[],m=[],f=0,h=0;g("z","y","x",-1,-1,r,e,t,s,n,0),g("z","y","x",1,-1,r,e,-t,s,n,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,n,4),g("x","y","z",-1,-1,t,e,-r,o,n,5),a>0&&(x("z","y","x",-1,-1,1,r,e,t,s,0),x("z","y","x",1,-1,-1,r,e,t,s,1),x("z","y","x",-1,1,-1,r,e,t,s,1),x("z","y","x",1,1,1,r,e,t,s,0),x("x","y","z",-1,-1,-1,t,e,r,o,0),x("x","y","z",1,-1,1,t,e,r,o,1),x("x","y","z",-1,1,1,t,e,r,o,0),x("x","y","z",1,1,-1,t,e,r,o,1),x("y","x","z",-1,-1,1,e,t,r,n,0),x("y","x","z",1,-1,-1,e,t,r,n,1),x("y","x","z",1,1,1,e,t,r,n,1),x("y","x","z",-1,1,-1,e,t,r,n,0),v(1,1,1),v(-1,1,1),v(1,-1,1),v(-1,-1,1),v(1,1,-1),v(-1,1,-1),v(1,-1,-1),v(-1,-1,-1)),this.setIndex(l),this.setAttribute("position",new Ct.Float32BufferAttribute(u,3)),this.setAttribute("normal",new Ct.Float32BufferAttribute(d,3)),this.setAttribute("uv",new Ct.Float32BufferAttribute(m,2));function g(A,_,b,D,S,y,I,T,L,C,N){let j=(y-2*a)/L,W=(I-2*a)/C,ne=y/2-a,ue=I/2-a,se=T/2,K=L+1,U=C+1,F=0,E=0,B=new Ct.Vector3;for(let P=0;P<U;P++){let G=P*W-ue;for(let Q=0;Q<K;Q++){let k=Q*j-ne;B[A]=k*D,B[_]=G*S,B[b]=se,u.push(B.x,B.y,B.z),B[A]=0,B[_]=0,B[b]=T>0?1:-1,d.push(B.x,B.y,B.z),m.push(Q/L),m.push(1-P/C),F+=1}}for(let P=0;P<C;P++)for(let G=0;G<L;G++){let Q=f+G+K*P,k=f+G+K*(P+1),V=f+(G+1)+K*(P+1),z=f+(G+1)+K*P;l.push(Q,k,z),l.push(k,V,z),E+=6}p.addGroup(h,E,N),h+=E,f+=F}function x(A,_,b,D,S,y,I,T,L,C,N){let j=(I-2*a)/C,W=I/2-a,ne=T/2-a,ue=L/2,se=C+1,K=0,U=0,F=new Ct.Vector3,E=new Ct.Vector3;for(let B=0;B<c+1;B++){let P=B/c*fl,G=Math.sin(P)*a,Q=(1-Math.cos(P))*a,k=Math.sin(P),V=Math.cos(P);F[_]=(ne+G)*S,F[b]=(ue-Q)*y,E[A]=0,E[_]=k*Math.sign(F[_]),E[b]=V*Math.sign(F[b]);for(let z=0;z<se;z++){let M=z*j-W;F[A]=M*D,u.push(F.x,F.y,F.z),d.push(E.x,E.y,E.z),m.push(z/C),m.push(0),K+=1}}for(let B=0;B<c;B++)for(let P=0;P<C;P++){let G=f+P+se*B,Q=f+P+se*(B+1),k=f+(P+1)+se*(B+1),V=f+(P+1)+se*B;l.push(G,Q,V),l.push(Q,k,V),U+=6}p.addGroup(h,U,N),h+=U,f+=K}function v(A,_,b){let D=new Ct.Vector3,S=new Ct.Vector3(t/2,e/2,r/2);S.subScalar(a);let y=[],I=A*_*b>0?(L,C,N)=>l.push(L,C,N):(L,C,N)=>l.push(L,N,C);for(let L=0;L<=c;L++){let C=[],N=fl*(1-L/c),j=Math.cos(N),W=Math.sin(N),ne=0;for(let ue=0;ue<=L;ue++){let se=Math.cos(ne),K=Math.sin(ne);D.x=j*se,D.y=W,D.z=j*K;let U=S.clone().addScaledVector(D,a);u.push(A*U.x,_*U.y,b*U.z),d.push(A*D.x,_*D.y,b*D.z),m.push(0,0),C.push(f++),ne+=fl/L}y.push(C)}let T=y.length-1;for(let L=0;L<T;L++){let C=y[L],N=y[L+1],j=C.length-1;I(C[0],N[1],N[0]);for(let W=1;W<=j;W++)I(C[W-1],C[W],N[W]),I(C[W],N[W+1],N[W])}}}};var Ve=require("three"),Kr=class extends Ve.BufferGeometry{constructor(t=[],e=[],r="",o=1,n=.2,s=4){super(),this.type="PolyhedronGeometryRound";let a=[],c=[],p=[];l(),u(),this.setAttribute("position",new Ve.Float32BufferAttribute(a,3)),this.setAttribute("normal",new Ve.Float32BufferAttribute(p,3)),this.setAttribute("uv",new Ve.Float32BufferAttribute(c,2));return;function l(){n=Math.min(1-1e-5,n),n==0&&(s=0);let m={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],f=new Ve.Vector3,h=f.clone(),g=new Ve.Triangle,x=n*o,v=o-x,A=s+1,_=new Ve.Vector3,b=(K,U)=>_.subVectors(K,U).normalize(),D=(K,U)=>Array(K).fill(void 0).map(U),S=D(t.length/3,(K,U)=>new Ve.Vector3().fromArray(t,U*3).setLength(o)),y=[],I=1e6;for(let K=0;K<S.length;K++){let U=S[K],F=[],E,B,P,G=1e10,Q=-1;for(;(Q=e.indexOf(K,Q+1))!=-1;){let M=Q-Q%3;E=e[M+(Q+1)%3],B=e[M+(Q+2)%3],P=U.distanceToSquared(S[E]),G=Math.min(G,P),F.push([E,B,P])}G+=1e-6;let k=[],V=0,z=F.length;for(let M=0;M<z;M++){[E,B,P]=F[V];let q=y[E]?.includes(K)==!0;P<=G&&k.push(E+ +q*I),V=F.findIndex(J=>J[0]==B)}y.push(k)}let T=[];{let K=0,U=0,F,E,B=m==3;for(let P=0;P<=s;P++){F=P*(P+1)/2,E=(P+1)*(P+2)/2;for(let G=0;G<s-P;G++)[K,U]=[F+G+P+2,E+G+P+3],T.push(F,E,...B?[U,F]:[K,E],U,K),[F,E]=[K,U];T.push(F,E,F+s+2)}}let L=f.clone(),C=f.clone(),N=f.clone(),j=f.clone(),W=f.clone(),ne=[],ue=D(S.length,()=>D(m,()=>f.clone()));for(let K=0;K<S.length;K++){f.copy(S[K]).normalize(),L.copy(f).multiplyScalar(v);let U=y[K];for(let k=0;k<U.length;k++){let V=U[k],z=U[(k+1)%m];g.setFromPointsAndIndices(S,K,V%I,z%I),g.b.sub(g.a).setLength(1e10).add(g.a),g.c.sub(g.a).setLength(1e10).add(g.a),g.closestPointToPoint(L,ue[K][k])}let F=[],E=[],B=[],P=new Ve.Vector3;s==0&&[...ue[K]].reduce((k,V)=>k.add(V),P).multiplyScalar(1/m);for(let k=0;k<m;k++){let V=[],z=(k-1+m)%m,M=ue[K][z],q=ue[K][k];f.copy(M).sub(L),h.copy(q).sub(L);let J=L.angleTo(f),ee=f.angleTo(h),H=Math.cos(J)*x;s==0?C.copy(P):C.copy(L).setLength(v+H),E.push(H);let Z=[C,M,q];for(let $=0;$<2;$++){let re=Z[$],ce=Z[$+1];j.subVectors(re,L),W.subVectors(ce,L),N.crossVectors(j,W).normalize();for(let ie=0;ie<A;ie++){let fe=[J,ee][$]*ie/A;f.copy(j).applyAxisAngle(N,fe).add(L),F.push(f.clone()),$&&(b(f,L),V.push([ie==0?re:f.clone(),_.clone()]))}$&&(b(ce,L),V.push([ce,_.clone()]))}B.push(V)}ne.push(B);let G=2*A,Q=2;for(let k=0;k<m;k++){let V=G*k,z=G*((k+1)%m),M=[F[V]];for(let J=1;J<A;J++){j=F[V+J],W=F[z+J],M.push(j);for(let ee=1,H=J-Q+1;ee<=H;ee++)f.lerpVectors(j,W,ee/(H+1)),f.sub(L).setLength(E[k]).add(L),M.push(f.clone());M.push(W)}for(let J=0;J<A;J++)M.push(F[J+A+V]);M.push(F[z+A]);let q=T.map(J=>M[J]);a.push(...q.map(J=>[J.x,J.y,J.z]).flat()),p.push(...q.map(J=>(b(J,L),[_.x,_.y,_.z])).flat())}}let se=[];for(let K=0;K<y.length;K++)for(let U=0;U<m;U++){let F=y[K][U];if(F<I){let E=y[F].findIndex(G=>G%I==K),B=ne[K][U],P=ne[F][E];for(let G=0;G<A;G++){let Q=B[G],k=P[A-G],V=B[G+1],z=P[A-(G+1)];[Q,k,V,V,k,z].forEach(M=>{a.push(M[0].x,M[0].y,M[0].z),p.push(M[1].x,M[1].y,M[1].z)})}se.push(B[0][0],P[A][0],B[A][0],P[0][0])}}for(;se.length;){let K,U,F,E;[K,U]=se.splice(0,2);let B=[K];for(;K!=U;)B.push(U),F=se.indexOf(U),E=F%2,U=se.splice(F-E,2)[1-E];_.subVectors(B[0],B[1]).cross(f.subVectors(B[0],B[2])).normalize();let P=_.dot(B[0])<0;P&&_.negate();for(let G=1;G<=B.length-2;G++)[B[G+ +P],B[G+1-+P],B[0]].forEach(Q=>{a.push(Q.x,Q.y,Q.z),p.push(_.x,_.y,_.z)})}}function u(){let d=new Ve.Vector3;for(let S=0;S<a.length;S+=3){d.x=a[S+0],d.y=a[S+1],d.z=a[S+2];let y=b(d)/2/Math.PI+.5,I=D(d)/Math.PI+.5;c.push(y,1-I)}let m=new Ve.Vector3,f=new Ve.Vector3,h=new Ve.Vector3,g=new Ve.Vector3,x=new Ve.Vector2,v=new Ve.Vector2,A=new Ve.Vector2,_=(S,y,I,T)=>{T<0&&S.x===1&&(c[y]=S.x-1),I.x===0&&I.z===0&&(c[y]=T/2/Math.PI+.5)};for(let S=0,y=0;S<a.length;S+=9,y+=6){m.set(a[S+0],a[S+1],a[S+2]),f.set(a[S+3],a[S+4],a[S+5]),h.set(a[S+6],a[S+7],a[S+8]),x.set(c[y+0],c[y+1]),v.set(c[y+2],c[y+3]),A.set(c[y+4],c[y+5]),g.copy(m).add(f).add(h).divideScalar(3);let I=b(g);_(x,y+0,m,I),_(v,y+2,f,I),_(A,y+4,h,I)}for(let S=0;S<c.length;S+=6){let y=c[S+0],I=c[S+2],T=c[S+4],L=Math.max(y,I,T),C=Math.min(y,I,T);L>.9&&C<.1&&(y<.2&&(c[S+0]+=1),I<.2&&(c[S+2]+=1),T<.2&&(c[S+4]+=1))}function b(S){return Math.atan2(S.z,-S.x)}function D(S){return Math.atan2(-S.y,Math.sqrt(S.x*S.x+S.z*S.z))}}}static fromJSON(t){return new Kr(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};var gd=require("three"),yd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},i.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(i){let{width:t,height:e,depth:r,detail:o,corner:n,cornerSides:s}=i.parameters,a=o===0&&n!==0?new Jn(t*.5,n,s):new gd.DodecahedronBufferGeometry(t*.5,o);return a.scale(1,e/t,r/t),Object.assign(a,{userData:{...i,type:"DodecahedronGeometry"}})}},Jn=class extends Kr{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,n=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,-n,-o,0,-n,o,0,n,-o,0,n,o,-n,-o,0,-n,o,0,n,-o,0,n,o,0,-o,0,-n,o,0,-n,-o,0,n,o,0,n],a=[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,a,c,t,e,r),this.type=c}static fromJSON(t){return new Jn(t.radius,t.corner,t.cornerSides)}};var be=require("three");var he=require("three"),ei=1e-12,nn=class{constructor(t){this.position=new he.Vector2;this.startPosition=new he.Vector2;this.uuid=he.MathUtils.generateUUID();this.position=t.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(t){this.position.copy(this.startPosition).add(t)}copy(t){return this.position.copy(t.position),this.startPosition.copy(t.startPosition),this}clone(){return new nn(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},sn=class extends nn{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new sn(this.parent).copy(this)}},Xt=class extends nn{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new sn(this),new sn(this))}static create(e,r){let o=new Xt(e,new he.Vector2(...r.position));return o.controls[0].position.set(...r.controlPrevious.position),o.controls[1].position.set(...r.controlNext.position),o.roundness=r.roundness,o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored,o}getOppositeControl(e){let r=this.controls.indexOf(e);return r===0?this.controls[1]:r===1?this.controls[0]:null}applyOffsetToControls(e,r=1){for(let o=0,n=this.controls.length;o<n;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 Xt(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let e=this.curveBefore?.getTangentAt(1),r=this.curveAfter?.getTangentAt(0);return[e,r]}computeNormals(e=new he.Vector2,r=new he.Vector2){let[o,n]=this.computeTangents();return o&&n&&(xd(o,e),xd(n,r)),[e,r]}computeTangent(e=new he.Vector2){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new he.Vector2){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function xd(i,t=new he.Vector2){let e=i.length();return t.set(-i.y/e,i.x/e)}var yl=i=>i,an=new he.Vector2,Qs=new he.Vector2,Gv=new he.Vector2,Rv=new he.Vector2,Fv=new he.Vector2,Vv=new he.Vector2,bd=new he.Vector3,_d=new he.Vector3;function Sd(i){let t=new he.Vector2;t.addVectors(i.v0,an.subVectors(i.v1,i.v0).multiplyScalar(2/3));let e=new he.Vector2;return e.addVectors(i.v2,Qs.subVectors(i.v1,i.v2).multiplyScalar(2/3)),new he.CubicBezierCurve(i.v0,t,e,i.v2)}function ti(i,t,e=Number.EPSILON){return Math.abs(i-t)<e}function zv(i,t,e=Number.EPSILON){return i.distanceTo(t)<e}function Uv(i,t,e=Number.EPSILON){return i.distanceTo(t)<e}function xl(i,t,e){let r=Math.sqrt(Math.pow(t.x-i.x,2)+Math.pow(t.y-i.y,2)),o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),n=Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2));return Math.acos((o*o+r*r-n*n)/(2*o*r))}function wd(i,t,e){return vd(i,t)&&vd(t,e)&&gl(i.position,t.position,e.position)}function gl(i,t,e){return an.copy(t).sub(i).cross(Qs.copy(e).sub(i))===0}function Td(i,t,e,r,o){let n=Math.sqrt(Math.pow(t.x-i.x,2)+Math.pow(t.y-i.y,2)),s=(i.y+t.y)/2,a=(i.x+t.x)/2,c=Math.sqrt(Math.pow(e,2)-Math.pow(n/2,2))*(i.y-t.y)/n,p=Math.sqrt(Math.pow(e,2)-Math.pow(n/2,2))*(t.x-i.x)/n;return r.set(a+c,s+p),o.set(a-c,s-p),[r,o]}function Ad(i,t,e){let r=i.distanceTo(e),o=t.distanceTo(e);return r<o?t:i}function Cd(i,t,e,r,o,n){let s=t.x-i.x,a=t.y-i.y,c=e.x-i.x,p=e.y-i.y,l=Math.sqrt((s+c)*(s+c)+(a+p)*(a+p)),u;return xl(t,i,e)>Math.PI&&(l*=-1),ti(p,a)?u=(a+p)*(r/l-.5)*8/3/(s-c):u=(s+c)*(r/l-.5)*8/3/(p-a),o.set(t.x-u*a,t.y+u*s),n.set(e.x+u*p,e.y-u*c),[o,n]}function vl(i,t){return i.position.equals(i.controls[1].position)&&t.position.equals(t.controls[0].position)}function vd(i,t){return gl(i.position,i.controls[1].position,t.position)&&gl(i.position,t.controls[0].position,t.position)}function Nd(i,t,e,r,o=.5){let n=an.subVectors(t,i).multiplyScalar(o).add(i),s=Qs.subVectors(e,t).multiplyScalar(o).add(t),a=Gv.subVectors(r,e).multiplyScalar(o).add(e),c=n,p=Rv.subVectors(s,n).multiplyScalar(o).add(n),l=Fv.subVectors(a,s).multiplyScalar(o).add(s),u=a,d=Vv.subVectors(l,p).multiplyScalar(o).add(p);return[i.x,i.y,c.x,c.y,p.x,p.y,d.x,d.y,l.x,l.y,u.x,u.y,r.x,r.y]}function Od(i,t,e=12,r=!0){let o=_d.set(0,0,0),n,s=0,a=[];for(let c=0;c<t.length;c++){let p=yl(t[c]),l=an,u=Qr(p,e);a.push(u);for(let d=0;d<=u;d++)if(p instanceof he.CubicBezierCurve||p instanceof he.QuadraticBezierCurve||p instanceof he.LineCurve){if(p.getPoint(d/u,l),o.set(l.x,l.y,0),n!==void 0&&Uv(n,o))continue;n===void 0&&(n=bd),n.copy(o),i.setXYZ(s,o.x,o.y,o.z),s++}}return r&&s>1&&!(i.getX(s-1)===i.getX(0)&&i.getY(s-1)===i.getY(0)&&i.getZ(s-1)===i.getZ(0))&&(i.setXYZ(s,i.getX(0),i.getY(0),i.getZ(0)),s++),i}function Ld(i,t,e,r=12,o=!0){let n=_d.set(0,0,0),s=0,a=[];for(let c=0;c<t.length;c++){if(e[c]===!1)continue;let p,l=yl(t[c]),u=an,d=Qr(l,r);a.push(d);for(let m=0;m<=d;m++)if(l instanceof he.CubicBezierCurve||l instanceof he.QuadraticBezierCurve||l instanceof he.LineCurve){if(l.getPoint(m/d,u),n.set(u.x,u.y,0),p?.equals(n))continue;p===void 0?p=bd:(i.setXYZ(s,p.x,p.y,p.z),s++,i.setXYZ(s,n.x,n.y,n.z),s++),p.copy(n)}}return o&&s>1&&!(i.getX(s-1)===i.getX(0)&&i.getY(s-1)===i.getY(0)&&i.getZ(s-1)===i.getZ(0))&&(i.setXYZ(s,i.getX(0),i.getY(0),i.getZ(0)),s++),a}function bl(i,t=12,e=!1){let r=[];for(let o=0,n=i.length;o<n;o++){let s=i[o],a=0;if(e&&s.roundedCurveCorner!==void 0){let c=Qr(s.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=c),a+=c}s.curveAfter!==void 0&&(a+=Qr(s.curveAfter,t)),r.push(a)}return i.length>0&&e&&i[0].roundedCurveCorner!==void 0&&(r[i.length-1]+=Qr(i[0].roundedCurveCorner,t)*.5),r}function Qr(i,t=12){return i&&i instanceof he.EllipseCurve?t*2:i&&(i instanceof he.LineCurve||i instanceof he.LineCurve3)?1:i&&i instanceof he.SplineCurve?t*i.points.length:t}function Id(i,t,e=12,r=!0){let o,n=0;for(let s=0;s<t.length;s++){let a=yl(t[s]),c=Qr(a,e),p=an;for(let l=0;l<=c;l++)if(a instanceof he.CubicBezierCurve||a instanceof he.QuadraticBezierCurve||a instanceof he.LineCurve){if(a.getPoint(l/c,p),o!==void 0&&zv(o,p,ei))continue;o===void 0&&(o=Qs),o.copy(p),i.push(p.x,p.y),n++}}return ti(i[0],i[i.length-2],ei)&&ti(i[1],i[i.length-1],ei)&&(i.pop(),i.pop()),r&&n>1&&!(ti(i[n-1],i[1],ei)&&ti(i[n-2],i[0],ei))&&(i.push(i[0],i[1]),n++),i}var _l=new be.Vector2,kv=new be.Vector2,jv=new be.Vector2,Hv=new be.Vector2,Wv=new be.Vector2,qv=new be.Vector2,Ce=class extends be.Shape{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new be.EventDispatcher;this.plane=new be.Plane(new be.Vector3(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=be.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,o){let n=new Ce;return n.isClosed=e.isClosed,n.points=e.points.map(s=>Xt.create(s.id,s.data)),typeof e.roundness=="number"&&(n.roundness=e.roundness),n.shapeHoles=e.shapeHoles.map(s=>Ce.createFromState(s)),r!==void 0&&o!==void 0&&n.applySize(r,o),n.update(),n}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(n=>n.uuid===e);if(o<0){let n=r;for(let s=0,a=this.shapeHoles.length;s<a;s++){let c=this.shapeHoles[s],p=c.points.length-1,l=c.getPointIndexById(e);if(l<0)n+=p;else return l+n}}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)for(let r=0,o=this.shapeHoles.length;r<o;r++){let n=this.shapeHoles[r],s=e-this.points.length;if(s<=n.points.length-1)return n.points[s]}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,n=this.shapeHoles.length;o<n;o++){let s=this.shapeHoles[o],a=s.points.indexOf(e);if(a>=0)return r+a;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=_l.set(e,r);for(let n=0,s=this.points.length;n<s;n++){let a=this.points[n];a.position.multiply(o),a.controls[0].position.multiply(o),a.controls[1].position.multiply(o)}for(let n=0,s=this.shapeHoles.length;n<s;n++)this.shapeHoles[n].applyScale(e,r);this._update(!1)}createPoint(e,r=0,o=be.MathUtils.generateUUID()){let n;e instanceof be.Vector2?n=e:n=new be.Vector2(e,r);let s=new Xt(o,n);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 n=this.points[r];if(n.uuid===e)return n}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 n=o?this.roundedCurveDivisions:this.curveDivisions;return Od(e,o?this.roundedCurves:this.curves,r,this.autoClose),n.reduce((s,a)=>s+a,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=bl(this.points,e,!1),this.roundedCurveDivisions=bl(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return Ld(e,this.curves,r,o,this.autoClose).reduce((s,a)=>s+a,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),Id(e,this.roundedCurves,r,this.autoClose)}getCurveIndexFromVertexId(e,r=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let n=r?this.roundedCurveDivisions:this.curveDivisions,s=0;r&&this.points[0].roundedCurveCorner!==void 0&&(s=Qr(this.points[0].roundedCurveCorner,this.subdivision)*.5);let a=e-s;a<0&&(a+=n.reduce((c,p)=>c+p,0));for(let c=0,p=n.length;c<p;c++){let l=n[c];if(a<o+l)return[c,(a-o+1)/l];o+=l}return[0,1]}getCurveT(e,r,o){let n=this.points[e],s=this.points[e>=this.points.length-1?0:e+1],a=this.curveDivisions,c=a[e];if(vl(n,s)){let u=n.position.distanceTo(s.position);return n.position.distanceTo(_l.set(o.x,o.y))/u}let p=0;for(let u=0;u<e;u++)p+=a[u];return(r-p)/c}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,r){vl(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 n=o.clone();e.roundedCurveBefore=n,r.roundedCurveAfter=n,e.roundedCurveCorner=void 0,this.roundedCurves.push(n)}_update(e=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let o=0,n=this.points.length;o<n;o++){let s=this.points[o];if(o===0)this.moveTo(s.position.x,s.position.y);else{let a=this.points[o-1];this._applyCurveForPoint(s,a)}}let r=this.getLastPoint();if(r?.curveAfter&&(r.curveAfter=void 0),this.isClosed){let o=this.points[0],n=this.points[this.points.length-1];this._applyCurveForPoint(o,n)}if(this.points.length>2){let o=0;for(let n=0,s=this.points.length;n<s;n++){let a=this.points[n],c=this.points[n-1]??this.points[this.points.length-1],p=this.points[n+1]??this.points[0],l=a.roundness,u=c&&p&&wd(c,a,p);if(!a.controlsMoved()&&l>0&&!u){let d=a.curveBefore,m=a.curveAfter;if(d===void 0||m===void 0)continue;let f=a.roundedCurveBefore,h=a.roundedCurveAfter,g=d.getLength(),x=m.getLength(),v=Math.min(l,g*.499),A=Math.min(l,x*.499),_=Math.min(v,A),b=1-_/g,D=_/x,S=d.getPointAt(b,_l),y=m.getPointAt(D,kv);this._subSplitCurve(d,f,b,S,void 0),this._subSplitCurve(m,h,D,void 0,y);let I;if(this.useCubicForRoundedCorners){let T=xl(S,a.position,y)/2,L=Math.tan(T)*S.distanceTo(a.position),[C,N]=Td(S,y,L,jv,Hv),j=Ad(C,N,a.position),[W,ne]=Cd(j,S,y,L,Wv,qv);I=new be.CubicBezierCurve(S.clone(),W.clone(),ne.clone(),y.clone())}else I=new be.QuadraticBezierCurve(S.clone(),a.position.clone(),y.clone());a.roundedCurveCorner=I,this.roundedCurves.splice(n+o,0,I),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,r,o,n,s){if(e instanceof be.LineCurve)n!==void 0&&r.v2.copy(n),s!==void 0&&r.v1.copy(s);else{let a=e,c=r,p=a.getUtoTmapping(o,0),l=Nd(a.v0,a.v1,a.v2,a.v3,p);return n!==void 0&&(c.v0.set(l[0],l[1]),c.v1.set(l[2],l[3]),c.v2.set(l[4],l[5]),c.v3.set(l[6],l[7])),s!==void 0&&(c.v0.set(l[6],l[7]),c.v1.set(l[8],l[9]),c.v2.set(l[10],l[11]),c.v3.set(l[12],l[13])),c}return r}clone(){let e=new Ce(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 n=o*7,s=e.points[n+0],a=e.points[n+1],c=e.points[n+2],p=e.points[n+3],l=e.points[n+4],u=e.points[n+5],d=e.points[n+6],m=new Xt(be.MathUtils.generateUUID(),new be.Vector2(s,a));m.controls[0].position.set(c,p),m.controls[1].position.set(l,u),m.roundness=d,this.points.push(m)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let n=new Ce;return n.fromJSON(o),n}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let r=(n,s)=>{s instanceof be.CubicBezierCurve&&s.v3.equals(n.position)&&n.controls[0].position.copy(s.v2)},o=n=>{let s=[],a,c;for(a=0,c=n.length;a<c;a++)n[a]instanceof be.QuadraticBezierCurve&&(n[a]=Sd(n[a]));for(a=0,c=n.length;a<c;a++){let u=n[a],d=a>0?n[a-1]:null,m;u instanceof be.CubicBezierCurve?(m=this.createPoint(u.v0),m.controls[1].position.copy(u.v1)):u instanceof be.LineCurve&&(m=this.createPoint(u.v1)),m!==void 0&&(d!==null&&r(m,d),s.push(m))}let p=n[n.length-1],l=!1;return p instanceof be.CubicBezierCurve?p.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(p.v2),l=!0):p instanceof be.LineCurve&&p.v2.equals(s[0].position)&&(l=!0),this.isClosed=l,s};return this.points=o(e.curves),e instanceof be.Shape&&(this.shapeHoles=e.holes.map(n=>{let s=new Ce;return s.fromShape(n),s})),this.update(),this}};var wl=Math.PI*2;function Sl({x:i,y:t},e,r,o,n){return{x:i*e+o,y:t*r+n}}function $v(i,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=Math.cos(i),o=Math.sin(i),n=Math.cos(i+t),s=Math.sin(i+t);return[{x:r-o*e,y:o+r*e},{x:n+s*e,y:s-n*e},{x:n,y:s}]}function Pd(i,t,e,r){let o=i*r-t*e<0?-1:1,n=Math.min(1,Math.max(-1,i*e+t*r));return o*Math.acos(n)}function Xv(i,t,e,r,o,n,s,a,c,p){let l=Math.pow(o,2),u=Math.pow(n,2),d=Math.pow(s,2),m=Math.pow(a,2),f=l*u-l*m-u*d;f<0&&(f=0),f/=l*m+u*d,f=Math.sqrt(f)*(c===p?-1:1);let h=f*o/n*a,g=f*-n/o*s,x=h+(i+e)/2,v=g+(t+r)/2,A=(s-h)/o,_=(a-g)/n,b=(-s-h)/o,D=(-a-g)/n,S=Pd(1,0,A,_),y=Pd(A,_,b,D);return!p&&y>0&&(y-=wl),p&&y<0&&(y+=wl),{centerx:x,centery:v,ang1:S,ang2:y}}function Md({px:i,py:t,cx:e,cy:r,rx:o,ry:n,largeArcFlag:s,sweepFlag:a}){let c=[];if(o===0||n===0)return[];let p=(i-e)/2,l=(t-r)/2;if(p===0&&l===0)return[];o=Math.abs(o),n=Math.abs(n);let u=Math.pow(p,2)/Math.pow(o,2)+Math.pow(l,2)/Math.pow(n,2);u>1&&(o*=Math.sqrt(u),n*=Math.sqrt(u));let d=Xv(i,t,e,r,o,n,p,l,s,a),{ang1:m,ang2:f}=d,{centerx:h,centery:g}=d,x=Math.abs(f)/(wl/4);Math.abs(1-x)<1e-7&&(x=1);let v=Math.max(Math.ceil(x),1);f/=v;for(let A=0;A<v;A++)c.push($v(m,f)),m+=f;return c.map(A=>{let{x:_,y:b}=Sl(A[0],o,n,h,g),{x:D,y:S}=Sl(A[1],o,n,h,g),{x:y,y:I}=Sl(A[2],o,n,h,g);return{x1:_,y1:b,x2:D,y2:S,x:y,y:I}})}var vo=require("three");var Be;(function(i){i[i.ODD=0]="ODD",i[i.NONZERO=1]="NONZERO",i[i.POSITIVE=2]="POSITIVE",i[i.NEGATIVE=3]="NEGATIVE",i[i.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Be||(Be={}));var Ze;(function(i){i[i.POLYGONS=0]="POLYGONS",i[i.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",i[i.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Ze||(Ze={}));function pe(i,t){if(!i)throw t||"Assertion Failed!"}var ae=function(){function i(){}return i.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},i.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},i.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},i.edgeGoesLeft=function(t){return i.vertLeq(t.Dst,t.Org)},i.edgeGoesRight=function(t){return i.vertLeq(t.Org,t.Dst)},i.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},i.edgeEval=function(t,e,r){pe(i.vertLeq(t,e)&&i.vertLeq(e,r));var o=e.s-t.s,n=r.s-e.s;return o+n>0?o<n?e.t-t.t+(t.t-r.t)*(o/(o+n)):e.t-r.t+(r.t-t.t)*(n/(o+n)):0},i.edgeSign=function(t,e,r){pe(i.vertLeq(t,e)&&i.vertLeq(e,r));var o=e.s-t.s,n=r.s-e.s;return o+n>0?(e.t-r.t)*o+(e.t-t.t)*n:0},i.transEval=function(t,e,r){pe(i.transLeq(t,e)&&i.transLeq(e,r));var o=e.t-t.t,n=r.t-e.t;return o+n>0?o<n?e.s-t.s+(t.s-r.s)*(o/(o+n)):e.s-r.s+(r.s-t.s)*(n/(o+n)):0},i.transSign=function(t,e,r){pe(i.transLeq(t,e)&&i.transLeq(e,r));var o=e.t-t.t,n=r.t-e.t;return o+n>0?(e.s-r.s)*o+(e.s-t.s)*n:0},i.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},i.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))},i.intersect=function(t,e,r,o,n){var s,a,c;i.vertLeq(t,e)||(c=t,t=e,e=c),i.vertLeq(r,o)||(c=r,r=o,o=c),i.vertLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),i.vertLeq(r,e)?i.vertLeq(e,o)?(s=i.edgeEval(t,r,e),a=i.edgeEval(r,e,o),s+a<0&&(s=-s,a=-a),n.s=i.interpolate(s,r.s,a,e.s)):(s=i.edgeSign(t,r,e),a=-i.edgeSign(t,o,e),s+a<0&&(s=-s,a=-a),n.s=i.interpolate(s,r.s,a,o.s)):n.s=(r.s+e.s)/2,i.transLeq(t,e)||(c=t,t=e,e=c),i.transLeq(r,o)||(c=r,r=o,o=c),i.transLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),i.transLeq(r,e)?i.transLeq(e,o)?(s=i.transEval(t,r,e),a=i.transEval(r,e,o),s+a<0&&(s=-s,a=-a),n.t=i.interpolate(s,r.t,a,e.t)):(s=i.transSign(t,r,e),a=-i.transSign(t,o,e),s+a<0&&(s=-s,a=-a),n.t=i.interpolate(s,r.t,a,o.t)):n.t=(r.t+e.t)/2},i}(),ri=function(){function i(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return i}(),Zs=function(){function i(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(i.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),i}(),ln=function(){function i(){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 i}(),Dd=function(){function i(){var t=new ln,e=new ri,r=new Zs(0),o=new Zs(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 i.prototype.makeEdge_=function(t){var e=new Zs(0),r=new Zs(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},i.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},i.prototype.makeVertex_=function(t,e,r){var o=t;pe(o,"Vertex can't be null!");var n=r.prev;o.prev=n,n.next=o,o.next=r,r.prev=o,o.anEdge=e;var s=e;do s.Org=o,s=s.Onext;while(s!==e)},i.prototype.makeFace_=function(t,e,r){var o=t;pe(o,"Face can't be null");var n=r.prev;o.prev=n,n.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)},i.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},i.prototype.killVertex_=function(t,e){var r=t.anEdge,o=r;do o.Org=e,o=o.Onext;while(o!==r);var n=t.prev,s=t.next;s.prev=n,n.next=s},i.prototype.killFace_=function(t,e){var r=t.anEdge,o=r;do o.Lface=e,o=o.Lnext;while(o!==r);var n=t.prev,s=t.next;s.prev=n,n.next=s},i.prototype.makeEdge=function(){var t=new ln,e=new ln,r=new ri,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},i.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 n=new ln;this.makeVertex_(n,e,t.Org),t.Org.anEdge=t}if(!r){var s=new ri;this.makeFace_(s,e,t.Lface),t.Lface.anEdge=t}}},i.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 ri;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)},i.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),r=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new ln;return this.makeVertex_(o,r,e.Org),e.Lface=r.Lface=t.Lface,e},i.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},i.prototype.connect=function(t,e){var r=!1,o=this.makeEdge_(t),n=o.Sym;if(e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(o,t.Lnext),this.splice_(n,e),o.Org=t.Dst,n.Org=e.Org,o.Lface=n.Lface=t.Lface,t.Lface.anEdge=n,!r){var s=new ri;this.makeFace_(s,o,t.Lface)}return o},i.prototype.zapFace=function(t){var e=t.anEdge,r,o,n,s,a;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)),n=r.Sym,n.Onext===n?this.killVertex_(n.Org,null):(n.Org.anEdge=n.Onext,this.splice_(n,n.Oprev)),this.killEdge_(r));while(r!=e);s=t.prev,a=t.next,a.prev=s,s.next=a},i.prototype.countFaceVerts_=function(t){var e=t.anEdge,r=0;do r++,e=e.Lnext;while(e!==t.anEdge);return r},i.prototype.mergeConvexFaces=function(t){var e,r,o,n,s,a,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,n=r.Sym,n&&n.Lface&&n.Lface.inside&&(a=this.countFaceVerts_(e),c=this.countFaceVerts_(n.Lface),a+c-2<=t&&ae.vertCCW(r.Lprev.Org,r.Org,n.Lnext.Lnext.Org)&&ae.vertCCW(n.Lprev.Org,n.Org,r.Lnext.Lnext.Org)&&(o=n.Lnext,this.delete(n),r=null,n=null)),!(r&&r.Lnext.Org===s);)r=o;return!0},i.prototype.check=function(){var t=this.fHead,e=this.vHead,r=this.eHead,o,n,s,a,c,p;for(n=t,n=t;(o=n.next)!==t;n=o){pe(o.prev===n),c=o.anEdge;do pe(c.Sym!==c),pe(c.Sym.Sym===c),pe(c.Lnext.Onext.Sym===c),pe(c.Onext.Sym.Lnext===c),pe(c.Lface===o),c=c.Lnext;while(c!==o.anEdge)}for(pe(o.prev===n&&o.anEdge===null),a=e,a=e;(s=a.next)!==e;a=s){pe(s.prev===a),c=s.anEdge;do pe(c.Sym!==c),pe(c.Sym.Sym===c),pe(c.Lnext.Onext.Sym===c),pe(c.Onext.Sym.Lnext===c),pe(c.Org===s),c=c.Onext;while(c!==s.anEdge)}for(pe(s.prev===a&&s.anEdge===null),p=r,p=r;(c=p.next)!==r;p=c)pe(c.Sym.next===p.Sym),pe(c.Sym!==c),pe(c.Sym.Sym===c),pe(c.Org!==null),pe(c.Dst!==null),pe(c.Lnext.Onext.Sym===c),pe(c.Onext.Sym.Lnext===c);pe(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)},i}(),Bd=function(){function i(){this.handle=null}return i}(),Ed=function(){function i(){this.key=null,this.node=0}return i}(),Yv=function(){function i(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 Bd,this.handles[r]=new Ed;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return i.prototype.floatDown_=function(t){var e=this.nodes,r=this.handles,o,n,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,pe(s<=this.max),n=e[s].handle,s>this.size||this.leq(r[o].key,r[n].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=n,r[n].node=t,t=s}},i.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,o,n,s;for(o=e[t].handle;;){if(s=t>>1,n=e[s].handle,s===0||this.leq(r[n].key,r[o].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=n,r[n].node=t,t=s}},i.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},i.prototype.min=function(){return this.handles[this.nodes[1].handle].key},i.prototype.insert=function(t){var e,r;if(e=++this.size,e*2>this.max){this.max*=2;var o,n;for(n=this.nodes.length,this.nodes.length=this.max+1,o=n;o<this.nodes.length;o++)this.nodes[o]=new Bd;for(n=this.handles.length,this.handles.length=this.max+1,o=n;o<this.handles.length;o++)this.handles[o]=new Ed}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},i.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},i.prototype.delete=function(t){var e=this.nodes,r=this.handles,o;pe(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},i}(),Tl=function(){function i(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return i}(),Gd=function(){function i(){this.key=null,this.next=null,this.prev=null}return i}(),Kv=function(){function i(t,e){this.frame=t,this.leq=e,this.head=new Gd,this.head.next=this.head,this.head.prev=this.head}return i.prototype.min=function(){return this.head.next},i.prototype.max=function(){return this.head.prev},i.prototype.insert=function(t){return this.insertBefore(this.head,t)},i.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},i.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var r=new Gd;return r.key=e,r.next=t.next,t.next.prev=r,r.prev=t,t.next=r,r},i.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},i}(),Qv=function(){function i(){}return i.regionBelow=function(t){return t.nodeUp.prev.key},i.regionAbove=function(t){return t.nodeUp.next.key},i.debugEvent=function(t){},i.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},i.edgeLeq=function(t,e,r){var o=t.event,n=e.eUp,s=r.eUp;if(n.Dst===o)return s.Dst===o?ae.vertLeq(n.Org,s.Org)?ae.edgeSign(s.Dst,n.Org,s.Org)<=0:ae.edgeSign(n.Dst,s.Org,n.Org)>=0:ae.edgeSign(s.Dst,o,s.Org)<=0;if(s.Dst===o)return ae.edgeSign(n.Dst,o,n.Org)>=0;var a=ae.edgeEval(n.Dst,o,n.Org),c=ae.edgeEval(s.Dst,o,s.Org);return a>=c},i.deleteRegion=function(t,e){e.fixUpperEdge&&pe(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},i.fixUpperEdge=function(t,e,r){pe(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=r,r.activeRegion=e},i.topLeftRegion=function(t,e){var r=e.eUp.Org,o;do e=i.regionAbove(e);while(e.eUp.Org===r);if(e.fixUpperEdge){if(o=t.mesh.connect(i.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;i.fixUpperEdge(t,e,o),e=i.regionAbove(e)}return e},i.topRightRegion=function(t){var e=t.eUp.Dst;do t=i.regionAbove(t);while(t.eUp.Dst===e);return t},i.addRegionBelow=function(t,e,r){var o=new Tl;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},i.isWindingInside=function(t,e){switch(t.windingRule){case Be.ODD:return(e&1)!==0;case Be.NONZERO:return e!==0;case Be.POSITIVE:return e>0;case Be.NEGATIVE:return e<0;case Be.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},i.computeWinding=function(t,e){e.windingNumber=i.regionAbove(e).windingNumber+e.eUp.winding,e.inside=i.isWindingInside(t,e.windingNumber)},i.finishRegion=function(t,e){var r=e.eUp,o=r.Lface;o.inside=e.inside,o.anEdge=r,i.deleteRegion(t,e)},i.finishLeftRegions=function(t,e,r){for(var o,n=null,s=e,a=e.eUp;s!==r;){if(s.fixUpperEdge=!1,n=i.regionBelow(s),o=n.eUp,o.Org!=a.Org){if(!n.fixUpperEdge){i.finishRegion(t,s);break}o=t.mesh.connect(a.Lprev,o.Sym),i.fixUpperEdge(t,n,o)}a.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(a,o)),i.finishRegion(t,s),a=n.eUp,s=n}return a},i.addRightEdges=function(t,e,r,o,n,s){var a,c,p,l,u=!0;p=r;do pe(ae.vertLeq(p.Org,p.Dst)),i.addRegionBelow(t,e,p.Sym),p=p.Onext;while(p!==o);for(n===null&&(n=i.regionBelow(e).eUp.Rprev),c=e,l=n;a=i.regionBelow(c),p=a.eUp.Sym,p.Org===l.Org;)p.Onext!==l&&(t.mesh.splice(p.Oprev,p),t.mesh.splice(l.Oprev,p)),a.windingNumber=c.windingNumber-p.winding,a.inside=i.isWindingInside(t,a.windingNumber),c.dirty=!0,!u&&i.checkForRightSplice(t,c)&&(i.addWinding(p,l),i.deleteRegion(t,c),t.mesh.delete(l)),u=!1,c=a,l=p;c.dirty=!0,pe(c.windingNumber-p.winding===a.windingNumber),s&&i.walkDirtyRegions(t,c)},i.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},i.vertexWeights=function(t,e,r){var o=ae.vertL1dist(e,t),n=ae.vertL1dist(r,t),s=.5*n/(o+n),a=.5*o/(o+n);t.coords[0]+=s*e.coords[0]+a*r.coords[0],t.coords[1]+=s*e.coords[1]+a*r.coords[1],t.coords[2]+=s*e.coords[2]+a*r.coords[2]},i.getIntersectData=function(t,e,r,o,n,s){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,i.vertexWeights(e,r,o),i.vertexWeights(e,n,s)},i.checkForRightSplice=function(t,e){var r=i.regionBelow(e),o=e.eUp,n=r.eUp;if(ae.vertLeq(o.Org,n.Org)){if(ae.edgeSign(n.Dst,o.Org,n.Org)>0)return!1;ae.vertEq(o.Org,n.Org)?o.Org!==n.Org&&(t.pq.delete(o.Org.pqHandle),i.spliceMergeVertices(t,n.Oprev,o)):(t.mesh.splitEdge(n.Sym),t.mesh.splice(o,n.Oprev),e.dirty=r.dirty=!0)}else{if(ae.edgeSign(o.Dst,n.Org,o.Org)<0)return!1;i.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),t.mesh.splice(n.Oprev,o)}return!0},i.checkForLeftSplice=function(t,e){var r=i.regionBelow(e),o=e.eUp,n=r.eUp,s;if(pe(!ae.vertEq(o.Dst,n.Dst)),ae.vertLeq(o.Dst,n.Dst)){if(ae.edgeSign(o.Dst,n.Dst,o.Org)<0)return!1;i.regionAbove(e).dirty=e.dirty=!0,s=t.mesh.splitEdge(o),t.mesh.splice(n.Sym,s),s.Lface.inside=e.inside}else{if(ae.edgeSign(n.Dst,o.Dst,n.Org)>0)return!1;e.dirty=r.dirty=!0,s=t.mesh.splitEdge(n),t.mesh.splice(o.Lnext,n.Sym),s.Rface.inside=e.inside}return!0},i.checkForIntersect=function(t,e){var r=i.regionBelow(e),o=e.eUp,n=r.eUp,s=o.Org,a=n.Org,c=o.Dst,p=n.Dst,l,u,d=new ln,m,f;if(pe(!ae.vertEq(p,c)),pe(ae.edgeSign(c,t.event,s)<=0),pe(ae.edgeSign(p,t.event,a)>=0),pe(s!==t.event&&a!==t.event),pe(!e.fixUpperEdge&&!r.fixUpperEdge),s===a||(l=Math.min(s.t,c.t),u=Math.max(a.t,p.t),l>u))return!1;if(ae.vertLeq(s,a)){if(ae.edgeSign(p,s,a)>0)return!1}else if(ae.edgeSign(c,a,s)<0)return!1;return i.debugEvent(t),ae.intersect(c,s,p,a,d),pe(Math.min(s.t,c.t)<=d.t),pe(d.t<=Math.max(a.t,p.t)),pe(Math.min(p.s,c.s)<=d.s),pe(d.s<=Math.max(a.s,s.s)),ae.vertLeq(d,t.event)&&(d.s=t.event.s,d.t=t.event.t),m=ae.vertLeq(s,a)?s:a,ae.vertLeq(m,d)&&(d.s=m.s,d.t=m.t),ae.vertEq(d,s)||ae.vertEq(d,a)?(i.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(n.Sym,o),e=i.topLeftRegion(t,e),o=i.regionBelow(e).eUp,i.finishLeftRegions(t,i.regionBelow(e),r),i.addRightEdges(t,e,o.Oprev,o,o,!0),!0):c===t.event?(t.mesh.splitEdge(n.Sym),t.mesh.splice(o.Lnext,n.Oprev),r=e,e=i.topRightRegion(e),f=i.regionBelow(e).eUp.Rprev,r.eUp=n.Oprev,n=i.finishLeftRegions(t,r,null),i.addRightEdges(t,e,n.Onext,o.Rprev,f,!0),!0):(ae.edgeSign(c,t.event,d)>=0&&(i.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(n.Sym),n.Org.s=t.event.s,n.Org.t=t.event.t),!1):(t.mesh.splitEdge(o.Sym),t.mesh.splitEdge(n.Sym),t.mesh.splice(n.Oprev,o),o.Org.s=d.s,o.Org.t=d.t,o.Org.pqHandle=t.pq.insert(o.Org),i.getIntersectData(t,o.Org,s,c,a,p),i.regionAbove(e).dirty=e.dirty=r.dirty=!0,!1)},i.walkDirtyRegions=function(t,e){for(var r=i.regionBelow(e),o,n;;){for(;r.dirty;)e=r,r=i.regionBelow(r);if(!e.dirty&&(r=e,e=i.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,n=r.eUp,o.Dst!==n.Dst&&i.checkForLeftSplice(t,e)&&(r.fixUpperEdge?(i.deleteRegion(t,r),t.mesh.delete(n),r=i.regionBelow(e),n=r.eUp):e.fixUpperEdge&&(i.deleteRegion(t,e),t.mesh.delete(o),e=i.regionAbove(r),o=e.eUp)),o.Org!==n.Org)if(o.Dst!==n.Dst&&!e.fixUpperEdge&&!r.fixUpperEdge&&(o.Dst===t.event||n.Dst===t.event)){if(i.checkForIntersect(t,e))return}else i.checkForRightSplice(t,e);o.Org===n.Org&&o.Dst===n.Dst&&(i.addWinding(n,o),i.deleteRegion(t,e),t.mesh.delete(o),e=i.regionAbove(r))}},i.connectRightVertex=function(t,e,r){var o,n=r.Onext,s=i.regionBelow(e),a=e.eUp,c=s.eUp,p=!1;if(a.Dst!==c.Dst&&i.checkForIntersect(t,e),ae.vertEq(a.Org,t.event)&&(t.mesh.splice(n.Oprev,a),e=i.topLeftRegion(t,e),n=i.regionBelow(e).eUp,i.finishLeftRegions(t,i.regionBelow(e),s),p=!0),ae.vertEq(c.Org,t.event)&&(t.mesh.splice(r,c.Oprev),r=i.finishLeftRegions(t,s,null),p=!0),p){i.addRightEdges(t,e,r.Onext,n,n,!0);return}ae.vertLeq(c.Org,a.Org)?o=c.Oprev:o=a,o=t.mesh.connect(r.Lprev,o),i.addRightEdges(t,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,i.walkDirtyRegions(t,e)},i.connectLeftDegenerate=function(t,e,r){var o,n,s,a,c;if(o=e.eUp,ae.vertEq(o.Org,r)){pe(!1),i.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),i.sweepEvent(t,r);return}pe(!1),e=i.topRightRegion(e),c=i.regionBelow(e),s=c.eUp.Sym,n=a=s.Onext,c.fixUpperEdge&&(pe(n!==s),i.deleteRegion(t,c),t.mesh.delete(s),s=n.Oprev),t.mesh.splice(r.anEdge,s),ae.edgeGoesLeft(n)||(n=null),i.addRightEdges(t,e,s.Onext,a,n,!0)},i.connectLeftVertex=function(t,e){var r,o,n,s,a,c,p=new Tl;if(p.eUp=e.anEdge.Sym,r=t.dict.search(p).key,o=i.regionBelow(r),!!o){if(s=r.eUp,a=o.eUp,ae.edgeSign(s.Dst,e,s.Org)===0){i.connectLeftDegenerate(t,r,e);return}if(n=ae.vertLeq(a.Dst,s.Dst)?r:o,r.inside||n.fixUpperEdge){if(n===r)c=t.mesh.connect(e.anEdge.Sym,s.Lnext);else{var l=t.mesh.connect(a.Dnext,e.anEdge);c=l.Sym}n.fixUpperEdge?i.fixUpperEdge(t,n,c):i.computeWinding(t,i.addRegionBelow(t,r,c)),i.sweepEvent(t,e)}else i.addRightEdges(t,r,e.anEdge,e.anEdge,null,!0)}},i.sweepEvent=function(t,e){t.event=e,i.debugEvent(t);for(var r=e.anEdge;r.activeRegion===null;)if(r=r.Onext,r===e.anEdge){i.connectLeftVertex(t,e);return}var o=i.topLeftRegion(t,r.activeRegion);pe(o!==null);var n=i.regionBelow(o),s=n.eUp,a=i.finishLeftRegions(t,n,null);a.Onext===s?i.connectRightVertex(t,o,a):i.addRightEdges(t,o,a.Onext,s,s,!0)},i.addSentinel=function(t,e,r,o){var n=new Tl,s=t.mesh.makeEdge();s.Org.s=r,s.Org.t=o,s.Dst.s=e,s.Dst.t=o,t.event=s.Dst,n.eUp=s,n.windingNumber=0,n.inside=!1,n.fixUpperEdge=!1,n.sentinel=!0,n.dirty=!1,n.nodeUp=t.dict.insert(n)},i.initEdgeDict=function(t){t.dict=new Kv(t,i.edgeLeq);var e=t.bmax[0]-t.bmin[0],r=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,n=t.bmax[0]+e,s=t.bmin[1]-r,a=t.bmax[1]+r;i.addSentinel(t,o,n,s),i.addSentinel(t,o,n,a)},i.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(pe(e.fixUpperEdge),pe(++r===1)),pe(e.windingNumber===0),i.deleteRegion(t,e)},i.removeDegenerateEdges=function(t){var e,r,o,n=t.mesh.eHead;for(e=n.next;e!==n;e=r)r=e.next,o=e.Lnext,ae.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(i.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))},i.initPriorityQ=function(t){var e,r,o,n=0;for(o=t.mesh.vHead,r=o.next;r!==o;r=r.next)n++;for(n+=8,e=t.pq=new Yv(n,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)},i.donePriorityQ=function(t){t.pq=null},i.removeDegenerateFaces=function(t,e){var r,o,n;for(r=e.fHead.next;r!==e.fHead;r=o)o=r.next,n=r.anEdge,pe(n.Lnext!==n),n.Lnext.Lnext===n&&(i.addWinding(n.Onext,n),t.mesh.delete(n));return!0},i.computeInterior=function(t,e){e===void 0&&(e=!0);var r,o;if(i.removeDegenerateEdges(t),!i.initPriorityQ(t))return!1;for(i.initEdgeDict(t);(r=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!ae.vertEq(o,r));)o=t.pq.extractMin(),i.spliceMergeVertices(t,r.anEdge,o.anEdge);i.sweepEvent(t,r)}return t.event=t.dict.min().key.eUp.Org,i.debugEvent(t),i.doneEdgeDict(t),i.donePriorityQ(t),i.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},i}(),Zv=function(){function i(){this.mesh=new Dd,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=Be.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 i.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},i.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},i.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},i.prototype.computeNormal_=function(t){var e,r,o,n,s,a,c=[0,0,0],p=[0,0,0],l=[0,0,0],u=[0,0,0],d=[0,0,0],m=[null,null,null],f=[null,null,null],h=this.mesh.vHead;e=h.next;for(var g=0;g<3;++g)n=e.coords[g],p[g]=n,f[g]=e,c[g]=n,m[g]=e;for(e=h.next;e!==h;e=e.next)for(var x=0;x<3;++x)n=e.coords[x],n<p[x]&&(p[x]=n,f[x]=e),n>c[x]&&(c[x]=n,m[x]=e);var v=0;if(c[1]-p[1]>c[0]-p[0]&&(v=1),c[2]-p[2]>c[v]-p[v]&&(v=2),p[v]>=c[v]){t[0]=0,t[1]=0,t[2]=1;return}for(a=0,r=f[v],o=m[v],l[0]=r.coords[0]-o.coords[0],l[1]=r.coords[1]-o.coords[1],l[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]=l[1]*u[2]-l[2]*u[1],d[1]=l[2]*u[0]-l[0]*u[2],d[2]=l[0]*u[1]-l[1]*u[0],s=d[0]*d[0]+d[1]*d[1]+d[2]*d[2],s>a&&(a=s,t[0]=d[0],t[1]=d[1],t[2]=d[2]);a<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(l)]=1)},i.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,r=this.mesh.vHead,o,n=0,s=t.next;s!==t;s=s.next)if(o=s.anEdge,!(o.winding<=0))do n+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==s.anEdge);if(n<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]}},i.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],r,o,n=!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),n=!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 a=t.next;a!==t;a=a.next)a.s=this.dot_(a.coords,r),a.t=this.dot_(a.coords,o);n&&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))},i.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},i.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 n=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);)n=t.connect(o.Lnext,o),o=n.Sym;o=o.Lprev}else{for(;o.Lnext!==r&&(ae.edgeGoesRight(r.Lprev)||ae.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)n=t.connect(r,r.Lprev),r=n.Sym;r=r.Lnext}if(o.Lnext===r)throw"Mono region invalid";for(;o.Lnext.Lnext!==r;)n=t.connect(o.Lnext,o),o=n.Sym;return!0},i.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},i.prototype.discardExterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)e=r.next,r.inside||t.zapFace(r)},i.prototype.setWindingNumber_=function(t,e,r){for(var o,n=t.eHead.next;n!==t.eHead;n=o)o=n.next,n.Rface.inside!==n.Lface.inside?n.winding=n.Lface.inside?e:-e:r?t.delete(n):n.winding=0},i.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},i.prototype.outputPolymesh_=function(t,e,r,o){var n,s=0,a=0,c;r>3&&t.mergeConvexFaces(r);for(var p=t.vHead.next;p!==t.vHead;p=p.next)p.n=-1;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(l.n=-1,!!l.inside){n=l.anEdge,c=0;do{var p=n.Org;p.n===-1&&(p.n=a,a++),c++,n=n.Lnext}while(n!==l.anEdge);if(c>r)throw"Face vertex greater that support polygon";l.n=s,++s}this.elementCount=s,e===Ze.CONNECTED_POLYGONS&&(s*=2),this.elements=[],this.elements.length=s*r,this.vertexCount=a,this.vertices=[],this.vertices.length=a*o,this.vertexIndices=[],this.vertexIndices.length=a;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,l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){n=l.anEdge,c=0;do{var p=n.Org;this.elements[d++]=p.n,c++,n=n.Lnext}while(n!==l.anEdge);for(var m=c;m<r;++m)this.elements[d++]=-1;if(e===Ze.CONNECTED_POLYGONS){n=l.anEdge;do this.elements[d++]=this.getNeighbourFace_(n),n=n.Lnext;while(n!==l.anEdge);for(var f=c;f<r;++f)this.elements[d++]=-1}}},i.prototype.outputContours_=function(t,e){var r,o,n=0,s=0;this.vertexCount=0,this.elementCount=0;for(var a=t.fHead.next;a!==t.fHead;a=a.next)if(!!a.inside){o=r=a.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,l=0;n=0;for(var a=t.fHead.next;a!==t.fHead;a=a.next)if(!!a.inside){s=0,o=r=a.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[l++]=n,this.elements[l++]=s,n+=s}},i.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new Dd),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},i.prototype.tesselate=function(t,e,r,o,n,s){if(t===void 0&&(t=Be.ODD),e===void 0&&(e=Ze.POLYGONS),s===void 0&&(s=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,n&&(this.normal[0]=n[0],this.normal[1]=n[1],this.normal[2]=n[2]),this.windingRule=t,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),Qv.computeInterior(this,s);var a=this.mesh;return e===Ze.BOUNDARY_CONTOURS?this.setWindingNumber_(a,1,!0):this.tessellateInterior_(a),s&&a.check(),e===Ze.BOUNDARY_CONTOURS?this.outputContours_(a,o):this.outputPolymesh_(a,e,r,o),!0},i}();function xo(i){var t=i.windingRule,e=t===void 0?Be.ODD:t,r=i.elementType,o=r===void 0?Ze.POLYGONS:r,n=i.polySize,s=n===void 0?3:n,a=i.vertexSize,c=a===void 0?2:a,p=i.normal,l=p===void 0?[0,0,1]:p,u=i.contours,d=u===void 0?[]:u,m=i.strict,f=m===void 0?!0:m,h=i.debug,g=h===void 0?!1:h;if(!d&&f)throw new Error("Contours can't be empty");if(!!d){var x=new Zv;i.edgeCreateCallback&&(x.edgeCreateCallback=i.edgeCreateCallback),i.vertexIdCallback&&(x.vertexIdCallback=i.vertexIdCallback);for(var v=0;v<d.length;v++)x.addContour(c||2,d[v]);return x.tesselate(e,o,s,c,l,f),{vertices:x.vertices,vertexIndices:x.vertexIndices,vertexCount:x.vertexCount,elements:x.elements,elementCount:x.elementCount,mesh:g?x.mesh:void 0}}}var II=Be.ODD,PI=Be.NONZERO,MI=Be.POSITIVE,DI=Be.NEGATIVE,BI=Be.ABS_GEQ_TWO,EI=Ze.POLYGONS,GI=Ze.CONNECTED_POLYGONS,RI=Ze.BOUNDARY_CONTOURS;var cn=class extends vo.BufferGeometry{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Be.ODD;this.elementType=Ze.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:Be.ODD,elementType:Ze.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let n=this._shape.extractShapePointsToFlatArray([],this._curveSegments),s=this._shape.shapeHoles.map(f=>f.extractShapePointsToFlatArray([],this._curveSegments)),a,c=!0,p=!0,l,u;for(let f=0,h=n.length/2;f<h;f++){let g=f*2,x=n[g+0],v=n[g+1];if(l!==void 0&&x!==l&&(c=!1),u!==void 0&&v!==u&&(p=!1),l=x,u=v,!c&&!p)break}!c&&!p&&(a=xo({contours:[n,...s],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let d=a?.vertexCount??1,m=a?.elementCount??1;if(this._positionAttribute=new vo.BufferAttribute(new Float32Array(d*3),3),this._normalAttribute=new vo.BufferAttribute(new Float32Array(d*3),3),this._uvAttribute=new vo.BufferAttribute(new Float32Array(d*2),2),this._indexAttribute=new vo.BufferAttribute(new Uint32Array(m*3),1),a){let f=1/0,h=-1/0,g=1/0,x=-1/0;for(let _=0,b=d;_<b;_++){let D=_*2,S=a.vertices[D+0],y=a.vertices[D+1];S<f&&(f=S),S>h&&(h=S),y<g&&(g=y),y>x&&(x=y)}let v=h-f,A=x-g;for(let _=0,b=d;_<b;_++){let D=_*2,S=a.vertices[D+0],y=a.vertices[D+1],I=(S-f)/v,T=(y-g)/A;this._positionAttribute.setXYZ(_,S,y,0),this._normalAttribute.setXYZ(_,0,0,1),this._uvAttribute.setXY(_,I,T)}for(let _=0,b=m;_<b;_++){let D=_*3,S=a.elements[D+0],y=a.elements[D+1],I=a.elements[D+2];this._indexAttribute.setX(D+0,S),this._indexAttribute.setX(D+1,y),this._indexAttribute.setX(D+2,I)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(a?.elementCount??1)*3)}clone(){let e=new cn(this._shape,this._curveSegments);return e.userData=kn(this.userData),e}};var bo=require("three");var Js=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*Js.eSize;this.buffer=new ArrayBuffer(r);let o=Float32Array.BYTES_PER_ELEMENT,n=0;this.positions=new Float32Array(this.buffer,n*o,3*t),n+=3*t,this.normals=new Float32Array(this.buffer,n*o,3*t),n+=3*t,this.uvs=new Float32Array(this.buffer,n*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*Js.eSize,o=new ArrayBuffer(r),n=Float32Array.BYTES_PER_ELEMENT,s=0,a=new Float32Array(o,s*n,3*t);s+=3*t;let c=new Float32Array(o,s*n,3*t);s+=3*t;let p=new Float32Array(o,s*n,2*t);a.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=a,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)}},oi=Js;oi.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Al=(i,t)=>([e,r])=>(r<e&&(r+=t),(i>=e?i:i+t)<=r),un=class extends bo.BufferGeometry{constructor(e,r,o=0,n=12,s=3){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=r,this._bevel=o,this._curveSegments=n,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 a=this._shape.extractShapePointsToFlatArray([],n),c=this._shape.shapeHoles.map(S=>{let y=S.extractShapePointsToFlatArray([],n),I=[];for(let T=y.length-1;T>=1;T-=2){let L=y[T-1],C=y[T-0];I.push(L,C)}return I}),p=xo({windingRule:Be.ODD,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[a]}),l=xo({windingRule:Be.ODD,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...c]});if(!p)throw new Error("error generating geometry");let u=p.elementCount;if(l){p.elementCount+=l.elementCount;for(let S=0;S<l.elements.length;S++){let y=l.elements[S],I=S%2===0?p.vertexCount:0;p.elements.push(y+I)}for(let S=0;S<l.vertexIndices.length;S++){let y=l.vertexIndices[S],I=p.vertexCount;p.vertexIndices.push(y+I)}for(let S=0;S<l.vertices.length;S++){let y=l.vertices[S];p.vertices.push(y)}}let d=1/0,m=-1/0,f=1/0,h=-1/0;for(let S=0,y=p.vertexCount;S<y;S++){let I=S*2,T=p.vertices[I+0],L=p.vertices[I+1];T<d&&(d=T),T>m&&(m=T),L<f&&(f=L),L>h&&(h=L)}this._minX=d,this._minY=f,this._width=m-d,this._height=h-f;let g=p.vertexCount*2*(2+this._bevelSegments);this._buffer=new oi(g);let x=[],v=[];for(let S=p.elementCount-1;S>=0;S--){let y=S>=u,I=S*2,T=p.elements[I+0],L=p.elements[I+1],C=T+L,N={start:T,count:L,normals:[],continuous:[],concave:[]},j=T,W=C-1,ne=T+1,ue=this._shape.roundedCurves.length;do{let F=j-T,E=p.vertices[W*2+0],B=p.vertices[W*2+1],P=p.vertices[j*2+0],G=p.vertices[j*2+1],Q=p.vertices[ne*2+0],k=p.vertices[ne*2+1],V=P-E,z=G-B,M=Math.sqrt(V*V+z*z);V/=M,z/=M;let q=P-Q,J=G-k,ee=Math.sqrt(q*q+J*J);q/=ee,J/=ee,N.normals[F*2+0]=-J,N.normals[F*2+1]=q,N.concave[F]=V*J-z*q>0;let H=p.vertexIndices[j];if(Array.isArray(H))N.continuous[F]=!1;else{let[Z,$]=this._shape.getCurveIndexFromVertexId(H-1,!0);if($>0&&$<1)N.continuous[F]=!0;else{let re=$===1?Z+1:Z-1;re=(re+ue)%ue;let ce=$===1?0:1,ie=this._shape.roundedCurves[Z].getTangent($),fe=this._shape.roundedCurves[re].getTangent(ce);N.continuous[F]=ie.dot(fe)>.95}}y&&(N.normals[F*2+0]*=-1,N.normals[F*2+1]*=-1),[W,j,ne]=[j,ne,ne+1],ne>=C&&(ne-=L)}while(ne!==T+1);let se=[];se.push({bevelI:0,angle:0,size:0,boundary:{vertices:p.vertices.slice(T*2,C*2),vertexCount:L,vertexIndices:new Array(L).fill(!0).map((F,E)=>[E,E]),elements:[0,L],elementCount:1,mesh:null},reverseMap:[],insetPoints:p.vertices.slice(T*2,C*2)});for(let F=1;F<=this._bevelSegments;F++){let E=F/this._bevelSegments*Math.PI/2,B=(1-Math.cos(E))*this._bevelSize,P=[],G=[],Q=[],k=[],V=0;for(let M=0;M<L;M++){let q=M*2,J=(M-1+L)%L*2,ee=p.vertices[N.start*2+q+0],H=p.vertices[N.start*2+q+1],Z=-N.normals[J+0]*B,$=-N.normals[J+1]*B,re=-N.normals[q+0]*B,ce=-N.normals[q+1]*B;if(N.concave[M]||!N.concave[M]&&y){let ie=Math.atan2($,Z),fe=Math.atan2(ce,re);fe>ie&&(fe-=Math.PI*2);let Re=fe-ie;if(N.continuous[M]||y){let ge=ie+Re/2,qe=Math.cos(ge)*B,Ae=Math.sin(ge)*B;P[2*V+0]=ee+qe*(y?-1:1),P[2*V+1]=H+Ae*(y?-1:1),k[V]=M,V++}else{let ge=Math.max(1,Math.floor(n/4*Math.abs(Re)/Math.PI));for(let qe=0;qe<=ge;qe++){let Ae=ie+Re*(qe/ge),St=Math.cos(Ae)*B,Vt=Math.sin(Ae)*B;P[2*V+0]=ee+St,P[2*V+1]=H+Vt,k[V]=M,V++}}}else P[2*V+0]=ee+Z,P[2*V+1]=H+$,k[V]=M,G[M]=V,V++,P[2*V+0]=ee,P[2*V+1]=H,k[V]=M,V++,P[2*V+0]=ee+re,P[2*V+1]=H+ce,k[V]=M,Q[M]=V,V++}let z=xo({windingRule:Be.POSITIVE,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[P],edgeCreateCallback:M=>{let J=M.Org.idx,ee=k[J],H=k[(J+1)%k.length];M.idx=[ee,H],M.Sym.idx=[H,ee]},vertexIdCallback:M=>{let q=M.Lprev.idx;return[q?q[1]:0,M.idx[0]]}});if(!z)throw console.log("Error"),new Error(`error generating bevel geometry for ${F}'th loop`);if(!z.vertexCount)break;for(let M=0;M<z.vertexIndices.length;M++){let[q,J]=z.vertexIndices[M];if(q===J)continue;let ee=J;J<q&&(ee+=L);for(let H=q;H<ee;H++){let Z=H%L,$=(H+1)%L;if(!N.continuous[Z]||!N.continuous[$]){z.vertexIndices[M]=[q,Z],z.vertexIndices.splice(M+1,0,[$,J]),z.vertices.splice((M+1)*2,0,z.vertices[M*2],z.vertices[M*2+1]);break}}}se.push({bevelI:F,angle:E,size:B,boundary:z,reverseMap:k,insetPoints:P})}let K=(F,E,B)=>{let P=0,G=F.boundary.vertexIndices.length;for(;P<G&&B(F.boundary.vertexIndices[E]);)E=(E+1)%G,P++;return P},U=x.length;for(let F=1;F<se.length;F++){let E=se[F-1],B=se[F],P=E.boundary.vertexIndices.length,G=B.boundary.vertexIndices.length;if(!P||!G)break;let Q=N.concave.length,k=0,V=Al(k,L);for(;!E.boundary.vertexIndices.filter(V).length||!B.boundary.vertexIndices.filter(V).length;)k++,V=Al(k,L);let z=E.boundary.vertexIndices.findIndex(V),M=B.boundary.vertexIndices.findIndex(V);do z=(z+1)%P;while(V(E.boundary.vertexIndices[z]));do M=(M+1)%G;while(V(B.boundary.vertexIndices[M]));k=(k+1)%L;let q=k,J=this.buildBevelVert(N,E,(z-1+P)%P),ee=this.buildBevelVert(N,B,(M-1+G)%G),H=J,Z=ee,$,re,ce=!1;do{V=Al(k,L);let ie=K(E,z,V),fe=K(B,M,V),Re=ce;if(ce=!1,ie&&!fe){for(let ge=0;ge<ie;ge++)$=this.buildBevelVert(N,E,(z+ge)%P,ge/(ie-1)),x.push(H.topN,$.topP,Z.topN),x.push($.bottomP,H.bottomN,Z.bottomN),H=$;ce=!0}else if(!ie&&fe)for(let ge=0;ge<fe;ge++)re=this.buildBevelVert(N,B,(M+ge)%G,ge/(fe-1)),x.push(Z.topN,H.topP,re.topP),x.push(H.bottomP,Z.bottomN,re.bottomP),Z=re;else if(ie&&fe)if($=this.buildBevelVert(N,E,z,0),re=this.buildBevelVert(N,B,M,0),Re?(x.push(H.topN,re.topP,Z.topN),x.push(H.topN,$.topP,re.topP),x.push(re.bottomP,H.bottomN,Z.bottomN),x.push(re.bottomP,$.bottomP,H.bottomN)):(x.push(Z.topN,H.topN,$.topP),x.push(Z.topN,$.topP,re.topP),x.push($.bottomP,H.bottomN,Z.bottomN),x.push($.bottomP,Z.bottomN,re.bottomP)),H=$,Z=re,ie===fe)for(let ge=1;ge<ie;ge++)$=this.buildBevelVert(N,E,(z+ge)%P,ge/(ie-1)),re=this.buildBevelVert(N,B,(M+ge)%G,ge/(fe-1)),x.push(H.topN,$.topP,Z.topN),x.push(Z.topN,$.topP,re.topP),x.push($.bottomP,H.bottomN,Z.bottomN),x.push($.bottomP,Z.bottomN,re.bottomP),H=$,Z=re;else if(ie>fe){let ge=ie/fe,qe=0;for(let Ae=1;Ae<ie;Ae++)$=this.buildBevelVert(N,E,(z+Ae)%P,Ae/(ie-1)),x.push(H.topN,$.topP,Z.topN),x.push($.bottomP,H.bottomN,Z.bottomN),H=$,Ae>(qe+1)*ge&&(qe++,re=this.buildBevelVert(N,B,(M+qe)%G,qe/(fe-1)),x.push(Z.topN,$.topP,re.topP),x.push($.bottomP,Z.bottomN,re.bottomP),Z=re)}else{let ge=fe/ie,qe=0;for(let Ae=1;Ae<fe;Ae++)re=this.buildBevelVert(N,B,(M+Ae)%G,Ae/(fe-1)),x.push(Z.topN,$.topP,re.topP),x.push($.bottomP,Z.bottomN,re.bottomP),Z=re,Ae>(qe+1)*ge&&(qe++,$=this.buildBevelVert(N,E,(z+qe)%P,qe/(ie-1)),x.push(H.topN,$.topP,Z.topN),x.push($.bottomP,H.bottomN,Z.bottomN),H=$)}z=(z+ie)%P,M=(M+fe)%G,k=(k+1)%Q}while(k!==q)}{let F=se[0];for(let E=0,B=F.boundary.vertexCount;E<B;E++){let P=this.buildBevelVert(N,F,E),G=this.buildBevelVert(N,F,(E+1)%B);x.push(G.topP,P.topN,P.bottomN),x.push(G.topP,P.bottomN,G.bottomP)}}if(y){let F=[];for(let E=x.length-1;E>=U+2;E-=3){let B=x[E-2],P=x[E-1],G=x[E-0];F.push(G,P,B)}x.splice(U,x.length-U,...F)}if(y){let F=[];for(let E=se[se.length-1].boundary.vertices.length-1;E>=1;E-=2){let B=se[se.length-1].boundary.vertices[E-1],P=se[se.length-1].boundary.vertices[E-0];F.push(B,P)}v.push(F)}if(!y){let F=se[se.length-1],E=xo({windingRule:se.length>1?Be.POSITIVE:Be.ODD,elementType:Ze.POLYGONS,vertexSize:2,strict:!0,contours:[F.insetPoints,...v]});if(!E)throw new Error("Error generating geometry for surface");c.length===0&&Object.assign(this,{capStartIndex:x.length});for(let B=0;B<E.elementCount*3;B+=3){let P=this.buildSurfaceVert(E,E.elements[B+0]),G=this.buildSurfaceVert(E,E.elements[B+1]),Q=this.buildSurfaceVert(E,E.elements[B+2]);x.push(P.top,G.top,Q.top),x.push(Q.bottom,G.bottom,P.bottom)}}this.vertexCache={}}this._buffer.shrink();let A=new bo.BufferAttribute(Uint32Array.from(x),1),_=new bo.BufferAttribute(this._buffer.positions,3),b=new bo.BufferAttribute(this._buffer.normals,3),D=new bo.BufferAttribute(this._buffer.uvs,2);_.needsUpdate=!0,b.needsUpdate=!0,D.needsUpdate=!0,A.needsUpdate=!0,this.setAttribute("position",_),this.setAttribute("normal",b),this.setAttribute("uv",D),this.setIndex(A)}buildSurfaceVert(e,r){let o=r.toString();if(o in this.vertexCache)return this.vertexCache[o];let n=e.vertices[r*2+0],s=e.vertices[r*2+1],a=(n-this._minX)/this._width,c=(s-this._minY)/this._height,p=this._buffer.get(2),l=p*3,u=p*2,d={top:p+0,bottom:p+1};return this._buffer.positions[l+0]=n,this._buffer.positions[l+1]=s,this._buffer.positions[l+2]=this._depth,this._buffer.normals[l+0]=0,this._buffer.normals[l+1]=0,this._buffer.normals[l+2]=1,this._buffer.uvs[u+0]=a,this._buffer.uvs[u+1]=c,this._buffer.positions[l+3]=n,this._buffer.positions[l+4]=s,this._buffer.positions[l+5]=0,this._buffer.normals[l+3]=0,this._buffer.normals[l+4]=0,this._buffer.normals[l+5]=-1,this._buffer.uvs[u+2]=a,this._buffer.uvs[u+3]=c,this.vertexCache[o]=d,d}buildBevelVert(e,r,o,n=1){let s=`${r.bevelI}:${o}`;if(s in this.vertexCache)return this.vertexCache[s];let[a,c]=r.boundary.vertexIndices[o],p,l,u,d;a!==c?(l=a,p=c,d=!1,u=e.continuous[l]&&e.continuous[p]):(p=a,l=(p-1+e.count)%e.count,d=e.concave[p]&&r.bevelI>0,u=e.continuous[p]||d);let m=Math.cos(r.angle),f=Math.sin(r.angle),h=o*2,g=p*2,x=l*2,v=r.boundary.vertices[h+0],A=r.boundary.vertices[h+1],_=(1-f)*this._bevelSize,b=(v-this._minX)/this._width,D=(A-this._minY)/this._height,S=e.normals[g+0],y=e.normals[g+1],I=e.normals[x+0],T=e.normals[x+1];if(d){let W=I-S,ne=T-y;S=S+W*(1-n),y=y+ne*(1-n);let ue=Math.sqrt(S*S+y*y);S/=ue,y/=ue}let L=this._buffer.get(u?2:4),C=L*3,N=L*2,j={i:o,fi:p,topP:L+0,topN:L+0,bottomP:L+1,bottomN:L+1};return this._buffer.positions[C+0]=v,this._buffer.positions[C+1]=A,this._buffer.positions[C+2]=this._depth-_,this._buffer.normals[C+0]=S*m,this._buffer.normals[C+1]=y*m,this._buffer.normals[C+2]=f,this._buffer.uvs[N+0]=b,this._buffer.uvs[N+1]=D,this._buffer.positions[C+3]=v,this._buffer.positions[C+4]=A,this._buffer.positions[C+5]=_,this._buffer.normals[C+3]=S*m,this._buffer.normals[C+4]=y*m,this._buffer.normals[C+5]=-f,this._buffer.uvs[N+2]=D,this._buffer.uvs[N+3]=b,u||(L+=2,C+=6,N+=4,j.topP=L+0,j.bottomP=L+1,this._buffer.positions[C+0]=v,this._buffer.positions[C+1]=A,this._buffer.positions[C+2]=this._depth-_,this._buffer.normals[C+0]=I*m,this._buffer.normals[C+1]=T*m,this._buffer.normals[C+2]=f,this._buffer.uvs[N+0]=b,this._buffer.uvs[N+1]=D,this._buffer.positions[C+3]=v,this._buffer.positions[C+4]=A,this._buffer.positions[C+5]=_,this._buffer.normals[C+3]=I*m,this._buffer.normals[C+4]=T*m,this._buffer.normals[C+5]=-f,this._buffer.uvs[N+2]=D,this._buffer.uvs[N+3]=b),this.vertexCache[s]=j,j}clone(){let e=new un(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=kn(this.userData),e}};var vt=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3},i.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),n=Math.abs(e.depth??0),s=i.shape??t?.shape,a=s?.roundness??e.roundness;s!==void 0&&(s instanceof Ce?(s.width!==r||s.height!==o)&&s.applySize(r,o):s=new Ce(r,o).fromJSON(s),i.parameters?.roundness!==void 0&&i.parameters?.roundness>0&&s.update(!1));let c=s??new Ce(r,o);return{parameters:Object.assign(e,{width:r,height:o,depth:n,roundness:a}),shape:c}}static build(i){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:r,subdivisions:o,roundness:n}=i.parameters;i.shape.roundness=n;let s;return t<=0?s=new cn(i.shape,o):s=new un(i.shape,t,e,o,r),Object.assign(s,{userData:{...i,type:"VectorGeometry"}})}};var dn=require("three"),Fd=Math.PI*2,Vd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters);return{shape:i.shape&&i.shape instanceof Ce?i.shape:new Ce,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(i){let{width:t,height:e,spikes:r,angle:o,innerRadius:n,depth:s,extrudeBevelSize:a,extrudeBevelSegments:c}=i.parameters,p=i.shape,l=t*.5,u=e*.5,d=Jv(p,l,u,o*Math.PI/180,r,n);p.isClosed=!0,p.update();let m=vt.create({shape:p,parameters:{subdivisions:d,depth:s,extrudeBevelSize:a,extrudeBevelSegments:c}});return Object.assign(m,{userData:{...i,type:"EllipseGeometry"}})}};function Jv(i,t,e,r,o,n){if(r>=Fd)return o>30||o%4===0?(tb(i,t,e,n),Math.round(o/4)):Rd(i,r,o,t,e,n);let s={x:0,y:e},a=r+Math.PI*.5,c={x:Math.cos(a)*t,y:Math.sin(a)*e},p=Md({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?eb(i,s.x,s.y,p,o,t,e,n):Rd(i,r,o,t,e,n)}function eb(i,t,e,r,o,n,s,a){let c=Math.round(o/r.length);i.addPoint(pn(t,e));for(let p=0,l=r.length;p<l;p++){let u=r[p],d=i.points[p],m=pn(u.x,u.y);d.controls[1].position.set(u.x1,u.y1),m.controls[0].position.set(u.x2,u.y2),i.addPoint(m)}return a>0?zd(i,n,s,a):i.addPoint(pn(0,0)),c}function Rd(i,t,e,r,o,n){let s=-t/e;for(let a=0;a<=e;a++){let c=s*a,p=Math.sin(c)*r,l=Math.cos(c)*o;i.addPoint(pn(p,l))}return t<Fd?n>0?zd(i,r,o,n):i.addPoint(pn(0,0)):(i.removePoint(i.points[i.points.length-1]),n>0&&Ud(i,r,o,n)),1}function tb(i,t,e,r=0,o=0,n=0){let s=.5522847498,a=t*s,c=e*s;i.addPoint(ea(o-t,n,o-t,n-c,o-t,n+c)),i.addPoint(ea(o,n+e,o-a,n+e,o+a,n+e)),i.addPoint(ea(o+t,n,o+t,n+c,o+t,n-c)),i.addPoint(ea(o,n-e,o+a,n-e,o-a,n-e)),r>0&&Ud(i,t,e,r)}function pn(i,t){return new Xt(dn.MathUtils.generateUUID(),new dn.Vector2(i,t))}function ea(i,t,e,r,o,n){let s=pn(i,t);return s.controls[0].position.set(e,r),s.controls[1].position.set(o,n),s}function zd(i,t,e,r){kd(i,t,e,r).forEach(n=>i.addPoint(n))}function Ud(i,t,e,r){let o=kd(i,t,e,r),n=new Ce;o.forEach(s=>n.addPoint(s)),n.isClosed=!0,i.shapeHoles.push(n)}function kd(i,t,e,r){let o=r*t/100,n=o*(Math.abs(e)/Math.abs(t)),s=new dn.Vector2(o/t,n/e),a=i.points.map(c=>{let p=c.clone();return p.uuid=dn.MathUtils.generateUUID(),p}).reverse();return a.forEach(c=>{c.position.multiply(s);let p=c.controls[0].position.clone().multiply(s),l=c.controls[1].position.clone().multiply(s);c.controls[0].position.copy(l),c.controls[1].position.copy(p)}),a}var Er=require("three"),jd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},i.parameters),r=Math.abs(e.width),o=Math.abs(e.height??r),n=Math.abs(e.depth??r),s=Math.abs(Math.min(r,n))/2;return{parameters:Object.assign(e,{width:r,height:o,depth:n,radius:s,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(i){let{width:t,height:e,depth:r,radius:o,revolutions:n,segments:s,pathRadius:a,pathType:c,pathSegments:p,cornerRadius:l,cornerSegments:u}=i.parameters,d=new ni(!1,t,e,r,o,n,s,a,c,p,l,u);return Object.assign(d,{userData:{...i,type:"HelixGeometry"}})}},ni=class extends Er.BufferGeometry{constructor(t=!0,e=1,r=1,o=1,n=1,s=1,a=1,c=1,p=1,l=1,u=1,d=1){super();let m=t&&s===1;m&&(d=0),u>100&&(u=100);let f=()=>new Er.Vector3,h=new Er.Vector3,g=f(),x=f(),v=f(),A,_,b,D,S,y,I,T,L=f(),C=f(),N=f(),j=f(),W=f(),ne=f(),ue=f(),se=f(),K=r-2*c+.001,U=K/s,F=Math.ceil(a*s),E=F+1,B=K/F,P=-K/2,G=l+1,Q=2*Math.PI/l,k=Math.PI/2/d,V=.01,z=Math.min((1-u/100)*c,c-V),M=c-z,q=0,J=2,ee=d*J+J,H=G*ee/J,Z=H+G*E,$=G*(E+ee),[re,ce,ie]=[3,3,2].map(Ue=>Array($*Ue).fill(0)),fe=[],Re=n-c;function ge(Ue,Mt){let or=Math.PI/2;y=Mt*B,T=2*Math.PI*(y%U)/U+or,y+=P,I=Math.sin(T)*Re,S=Math.cos(T)*Re,t?Ue.set(S,I,y):Ue.set(S,y,I)}ge(h,-1e-10),ge(g,0),L.copy(h),ge(h,1);let qe=h.distanceTo(g),Ae=M+z,St=qe*F+2*Ae,Vt=z,Io=St-Ae;for(let Ue=0;Ue<=F;Ue++){ge(x,Ue),se.subVectors(x,L).normalize(),L.copy(x),ne.copy(x).setComponent(+t+1,0).normalize(),ue.crossVectors(se,ne).normalize();let Mt=Ue===0,or=Ue===F,Mf=Mt?3*Math.PI/2:k,Df=Mt?Vt:Io,Bf=Mt?G:Z,Ef=Mt?0:$-G,Gf=se.clone().multiplyScalar(Mt?-M:M).add(x),Rf=se.clone().multiplyScalar(Mt?-1:1).normalize();for(let Nr=0;Nr<G;Nr++){let gc=Nr*Q;if(C.addVectors(h.copy(ne).multiplyScalar(c*Math.cos(gc)),g.copy(ue).multiplyScalar(c*Math.sin(gc))),N.copy(C).normalize(),Mt||or){m||(q=Ef+Nr,[0,1,2].forEach(wt=>{re[q*3+wt]=Gf.getComponent(wt),ce[q*3+wt]=Rf.getComponent(wt)}),ie[q*2]=+or,ie[q*2+1]=Nr/l),g.copy(N).multiplyScalar(z),v.addVectors(x,g);for(let wt=0;wt<d;wt++){let Fa=wt*k+Mf;j.addVectors(h.copy(se).multiplyScalar(M*Math.sin(Fa)),g.copy(N).multiplyScalar(M*Math.cos(Fa))),W.copy(j).normalize(),g.addVectors(v,j),j.normalize(),q=Bf+wt*G+Nr,[0,1,2].forEach(ji=>{re[q*3+ji]=g.getComponent(ji),ce[q*3+ji]=W.getComponent(ji)});let Ff=+Mt+Math.sin(Fa);ie[q*2]=(Df+M*Ff)/St,ie[q*2+1]=Nr/l}}g.addVectors(x,C),q=H+Ue*G+Nr,[0,1,2].forEach(wt=>{re[q*3+wt]=g.getComponent(wt),ce[q*3+wt]=N.getComponent(wt)}),ie[q*2]=(Ae+Ue*qe)/St,ie[q*2+1]=Nr/l}}let Pt=E+2*d+J,Po=1,[Ui,ki]=m?[Po,Po+E-1]:[0,Pt-1];for(let Ue=Ui;Ue<=ki-1;Ue++){let Mt=m&&Ue===ki-1;for(let or=0;or<G-1;or++)A=Ue*G+or,_=A+1,b=(Mt?or:A)+G,D=(Mt?or+1:_)+G,Ue===0?fe.push(_,D,b):Ue===Pt-2?fe.push(A,_,b):fe.push(A,_,b,_,D,b)}this.setIndex(fe),this.setAttribute("position",new Er.Float32BufferAttribute(re,3)),this.setAttribute("normal",new Er.Float32BufferAttribute(ce,3)),this.setAttribute("uv",new Er.Float32BufferAttribute(ie,2))}};var Hd=require("three");var Wd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},i.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(i){let{width:t,height:e,depth:r,detail:o,corner:n,cornerSides:s}=i.parameters,a=o===0&&n!==0?new ii(t*.5,n,s):new Hd.IcosahedronBufferGeometry(t*.5,o);return a.scale(1,e/t,r/t),Object.assign(a,{userData:{...i,type:"IcosahedronGeometry"}})}},ii=class extends Kr{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,n=[-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],a="IcosahedronGeometry";super(n,s,a,t,e,r),this.type=a}static fromJSON(t){return new ii(t.radius,t.corner,t.cornerSides)}};var ta=require("three"),qd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){(i.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}]},i.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(i){let{points:t,segments:e,verticalSegments:r}=i.parameters,o=new ta.Shape;o.moveTo(t[0].x,t[0].y),o.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let n=new ta.LatheBufferGeometry(o.extractPoints(r).shape,e);return n.rotateZ(Math.PI),Object.assign(n,{userData:{...i,type:"LatheGeometry"}})}};var pr=require("three");var Gr=require("three");var oe=require("three"),ur=new oe.Matrix4,Cl=new oe.Object3D,ra=new oe.Vector3,Zr=class extends oe.EventDispatcher{constructor(){super(),this.uuid=oe.MathUtils.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(t){let e=new oe.Matrix3().getNormalMatrix(t);for(let r=0,o=this.vertices.length;r<o;r++)this.vertices[r].applyMatrix4(t);for(let r=0,o=this.faces.length;r<o;r++){let n=this.faces[r];n.normal.applyMatrix3(e).normalize();for(let s=0,a=n.vertexNormals.length;s<a;s++)n.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 ur.makeRotationX(t),this.applyMatrix4(ur),this}rotateY(t){return ur.makeRotationY(t),this.applyMatrix4(ur),this}rotateZ(t){return ur.makeRotationZ(t),this.applyMatrix4(ur),this}translate(t,e,r){return ur.makeTranslation(t,e,r),this.applyMatrix4(ur),this}scale(t,e,r){return ur.makeScale(t,e,r),this.applyMatrix4(ur),this}lookAt(t){return Cl.lookAt(t),Cl.updateMatrix(),this.applyMatrix4(Cl.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 n=o.position,s=o.normal,a=o.color,c=o.uv,p=o.uv2;p!==void 0&&(this.faceVertexUvs[1]=[]);for(let d=0;d<n.count;d++)e.vertices.push(new oe.Vector3().fromBufferAttribute(n,d)),a!==void 0&&e.colors.push(new oe.Color().fromBufferAttribute(a,d));function l(d,m,f,h){let g=a===void 0?[]:[e.colors[d].clone(),e.colors[m].clone(),e.colors[f].clone()],x=s===void 0?[]:[new oe.Vector3().fromBufferAttribute(s,d),new oe.Vector3().fromBufferAttribute(s,m),new oe.Vector3().fromBufferAttribute(s,f)],v=new mn(d,m,f,x,g,h);e.faces.push(v),c!==void 0&&e.faceVertexUvs[0].push([new oe.Vector2().fromBufferAttribute(c,d),new oe.Vector2().fromBufferAttribute(c,m),new oe.Vector2().fromBufferAttribute(c,f)]),p!==void 0&&e.faceVertexUvs[1].push([new oe.Vector2().fromBufferAttribute(p,d),new oe.Vector2().fromBufferAttribute(p,m),new oe.Vector2().fromBufferAttribute(p,f)])}let u=t.groups;if(u.length>0)for(let d=0;d<u.length;d++){let m=u[d],f=m.start,h=m.count;for(let g=f,x=f+h;g<x;g+=3)r!==void 0?l(r.getX(g),r.getX(g+1),r.getX(g+2),m.materialIndex):l(g,g+1,g+2,m.materialIndex)}else if(r!==void 0)for(let d=0;d<r.count;d+=3)l(r.getX(d),r.getX(d+1),r.getX(d+2));else for(let d=0;d<n.count;d+=3)l(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(ra).negate(),this.translate(ra.x,ra.y,ra.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,r=e===0?1:1/e,o=new oe.Matrix4;return o.set(r,0,0,-r*t.x,0,r,0,-r*t.y,0,0,r,-r*t.z,0,0,0,1),this.applyMatrix4(o),this}computeFaceNormals(){let t=new oe.Vector3,e=new oe.Vector3;for(let r=0,o=this.faces.length;r<o;r++){let n=this.faces[r],s=this.vertices[n.a],a=this.vertices[n.b],c=this.vertices[n.c];t.subVectors(c,a),e.subVectors(s,a),t.cross(e),t.normalize(),n.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 oe.Vector3;if(t){let r=new oe.Vector3,o=new oe.Vector3;for(let n=0,s=this.faces.length;n<s;n++){let a=this.faces[n],c=this.vertices[a.a],p=this.vertices[a.b],l=this.vertices[a.c];r.subVectors(l,p),o.subVectors(c,p),r.cross(o),e[a.a].add(r),e[a.b].add(r),e[a.c].add(r)}}else{this.computeFaceNormals();for(let r=0,o=this.faces.length;r<o;r++){let n=this.faces[r];e[n.a].add(n.normal),e[n.b].add(n.normal),e[n.c].add(n.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 n=this.faces[r],s=n.vertexNormals;s.length===3?(s[0].copy(e[n.a]),s[1].copy(e[n.b]),s[2].copy(e[n.c])):(s[0]=e[n.a].clone(),s[1]=e[n.b].clone(),s[2]=e[n.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 n=0,s=o.vertexNormals.length;n<s;n++)o.__originalVertexNormals[n]?o.__originalVertexNormals[n].copy(o.vertexNormals[n]):o.__originalVertexNormals[n]=o.vertexNormals[n].clone()}let t=new Zr;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 n=this.morphNormals[e].faceNormals,s=this.morphNormals[e].vertexNormals;for(let a=0,c=this.faces.length;a<c;a++){let p=new oe.Vector3,l={a:new oe.Vector3,b:new oe.Vector3,c:new oe.Vector3};n.push(p),s.push(l)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let n=0,s=this.faces.length;n<s;n++){let a=this.faces[n],c=o.faceNormals[n],p=o.vertexNormals[n];c.copy(a.normal),p.a.copy(a.vertexNormals[0]),p.b.copy(a.vertexNormals[1]),p.c.copy(a.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 oe.Box3),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new oe.Sphere),this.boundingSphere.setFromPoints(this.vertices)}merge(t,e,r=0){if(!(t&&t.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t);return}let o,n=this.vertices.length,s=this.vertices,a=t.vertices,c=this.faces,p=t.faces,l=this.colors,u=t.colors;e!==void 0&&(o=new oe.Matrix3().getNormalMatrix(e));for(let d=0,m=a.length;d<m;d++){let h=a[d].clone();e!==void 0&&h.applyMatrix4(e),s.push(h)}for(let d=0,m=u.length;d<m;d++)l.push(u[d].clone());for(let d=0,m=p.length;d<m;d++){let f=p[d],h,g,x=f.vertexNormals,v=f.vertexColors,A=new mn(f.a+n,f.b+n,f.c+n);A.normal.copy(f.normal),o!==void 0&&A.normal.applyMatrix3(o).normalize();for(let _=0,b=x.length;_<b;_++)h=x[_].clone(),o!==void 0&&h.applyMatrix3(o).normalize(),A.vertexNormals.push(h);A.color.copy(f.color);for(let _=0,b=v.length;_<b;_++)g=v[_],A.vertexColors.push(g.clone());A.materialIndex=f.materialIndex+r,c.push(A)}for(let d=0,m=t.faceVertexUvs.length;d<m;d++){let f=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=f.length;h<g;h++){let x=f[h],v=[];for(let A=0,_=x.length;A<_;A++)v.push(x[A].clone());this.faceVertexUvs[d].push(v)}}}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=[],n=Math.pow(10,t);for(let c=0,p=this.vertices.length;c<p;c++){let l=this.vertices[c],u=Math.round(l.x*n)+"_"+Math.round(l.y*n)+"_"+Math.round(l.z*n);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 l=this.faces[c];l.a=o[l.a],l.b=o[l.b],l.c=o[l.c];let u=[l.a,l.b,l.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 l=0,u=this.faceVertexUvs.length;l<u;l++)this.faceVertexUvs[l].splice(p,1)}let a=this.vertices.length-r.length;return this.vertices=r,a}setFromPoints(t){this.vertices=[];for(let e=0,r=t.length;e<r;e++){let o=t[e];this.vertices.push(new oe.Vector3(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,e=t.length;for(let c=0;c<e;c++)t[c]._id=c;function r(c,p){return c.materialIndex-p.materialIndex}t.sort(r);let o=this.faceVertexUvs[0],n=this.faceVertexUvs[1],s,a;o&&o.length===e&&(s=[]),n&&n.length===e&&(a=[]);for(let c=0;c<e;c++){let p=t[c]._id;s&&s.push(o[p]),a&&a.push(n[p])}s&&(this.faceVertexUvs[0]=s),a&&(this.faceVertexUvs[1]=a)}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 f=this.parameters;for(let h in f)f[h]!==void 0&&(t[h]=f[h]);return t}let e=[];for(let f=0;f<this.vertices.length;f++){let h=this.vertices[f];e.push(h.x,h.y,h.z)}let r=[],o=[],n={},s=[],a={},c=[],p={};for(let f=0;f<this.faces.length;f++){let h=this.faces[f],g=!0,x=!1,v=this.faceVertexUvs[0][f]!==void 0,A=h.normal.length()>0,_=h.vertexNormals.length>0,b=h.color.r!==1||h.color.g!==1||h.color.b!==1,D=h.vertexColors.length>0,S=0;if(S=l(S,0,0),S=l(S,1,g),S=l(S,2,x),S=l(S,3,v),S=l(S,4,A),S=l(S,5,_),S=l(S,6,b),S=l(S,7,D),r.push(S),r.push(h.a,h.b,h.c),r.push(h.materialIndex),v){let y=this.faceVertexUvs[0][f];r.push(m(y[0]),m(y[1]),m(y[2]))}if(A&&r.push(u(h.normal)),_){let y=h.vertexNormals;r.push(u(y[0]),u(y[1]),u(y[2]))}if(b&&r.push(d(h.color)),D){let y=h.vertexColors;r.push(d(y[0]),d(y[1]),d(y[2]))}}function l(f,h,g){return g?f|1<<h:f&~(1<<h)}function u(f){let h=f.x.toString()+f.y.toString()+f.z.toString();return n[h]!==void 0||(n[h]=o.length/3,o.push(f.x,f.y,f.z)),n[h]}function d(f){let h=f.r.toString()+f.g.toString()+f.b.toString();return a[h]!==void 0||(a[h]=s.length,s.push(f.getHex())),a[h]}function m(f){let h=f.x.toString()+f.y.toString();return p[h]!==void 0||(p[h]=c.length/2,c.push(f.x,f.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 Zr().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,m=e.length;d<m;d++)this.vertices.push(e[d].clone());let r=t.colors;for(let d=0,m=r.length;d<m;d++)this.colors.push(r[d].clone());let o=t.faces;for(let d=0,m=o.length;d<m;d++)this.faces.push(o[d].clone());for(let d=0,m=t.faceVertexUvs.length;d<m;d++){let f=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=f.length;h<g;h++){let x=f[h],v=[];for(let A=0,_=x.length;A<_;A++){let b=x[A];v.push(b.clone())}this.faceVertexUvs[d].push(v)}}let n=t.morphTargets;for(let d=0,m=n.length;d<m;d++){let f={};if(f.name=n[d].name,n[d].vertices!==void 0){f.vertices=[];for(let h=0,g=n[d].vertices.length;h<g;h++)f.vertices.push(n[d].vertices[h].clone())}if(n[d].normals!==void 0){f.normals=[];for(let h=0,g=n[d].normals.length;h<g;h++)f.normals.push(n[d].normals[h].clone())}this.morphTargets.push(f)}let s=t.morphNormals;for(let d=0,m=s.length;d<m;d++){let f={};if(s[d].vertexNormals!==void 0){f.vertexNormals=[];for(let h=0,g=s[d].vertexNormals.length;h<g;h++){let x=s[d].vertexNormals[h],v={};v.a=x.a.clone(),v.b=x.b.clone(),v.c=x.c.clone(),f.vertexNormals.push(v)}}if(s[d].faceNormals!==void 0){f.faceNormals=[];for(let h=0,g=s[d].faceNormals.length;h<g;h++)f.faceNormals.push(s[d].faceNormals[h].clone())}this.morphNormals.push(f)}let a=t.skinWeights;for(let d=0,m=a.length;d<m;d++)this.skinWeights.push(a[d].clone());let c=t.skinIndices;for(let d=0,m=c.length;d<m;d++)this.skinIndices.push(c[d].clone());let p=t.lineDistances;for(let d=0,m=p.length;d<m;d++)this.lineDistances.push(p[d]);let l=t.boundingBox;l!==null&&(this.boundingBox=l.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 Nl().fromGeometry(this),e=new oe.BufferGeometry,r=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",new oe.BufferAttribute(r,3).copyVector3sArray(t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",new oe.BufferAttribute(o,3).copyVector3sArray(t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",new oe.BufferAttribute(o,3).copyColorsArray(t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",new oe.BufferAttribute(o,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",new oe.BufferAttribute(o,2).copyVector2sArray(t.uvs2))}e.groups=t.groups;for(let o in t.morphTargets){let n=[],s=t.morphTargets[o];for(let a=0,c=s.length;a<c;a++){let p=s[a],l=new oe.Float32BufferAttribute(p.data.length*3,3);l.name=p.name,n.push(l.copyVector3sArray(p.data))}e.morphAttributes[o]=n}if(t.skinIndices.length>0){let o=new oe.Float32BufferAttribute(t.skinIndices.length*4,4);e.setAttribute("skinIndex",o.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){let o=new oe.Float32BufferAttribute(t.skinWeights.length*4,4);e.setAttribute("skinWeight",o.copyVector4sArray(t.skinWeights))}return t.boundingSphere!==null&&(e.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(e.boundingBox=t.boundingBox.clone()),e}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(t){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(t){let e=new oe.BufferGeometry,r=t.geometry;if(t.isPoints||t.isLine){let o=new oe.Float32BufferAttribute(r.vertices.length*3,3),n=new oe.Float32BufferAttribute(r.colors.length*3,3);if(e.setAttribute("position",o.copyVector3sArray(r.vertices)),e.setAttribute("color",n.copyColorsArray(r.colors)),r.lineDistances&&r.lineDistances.length===r.vertices.length){let s=new oe.Float32BufferAttribute(r.lineDistances.length,1);e.setAttribute("lineDistance",s.copyArray(r.lineDistances))}r.boundingSphere!==null&&(e.boundingSphere=r.boundingSphere.clone()),r.boundingBox!==null&&(e.boundingBox=r.boundingBox.clone())}else t.isMesh&&(e=r.toBufferGeometry());return e}};Zr.prototype.isGeometry=!0;var Nl=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,n,s=t.faces;for(o=0;o<s.length;o++){let a=s[o];a.materialIndex!==n&&(n=a.materialIndex,r!==void 0&&(r.count=o*3-r.start,e.push(r)),r={start:o*3,materialIndex:n})}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,n=o[0]&&o[0].length>0,s=o[1]&&o[1].length>0,a=t.morphTargets,c=a.length,p;if(c>0){p=[];for(let x=0;x<c;x++)p[x]={name:a[x].name,data:[]};this.morphTargets.position=p}let l=t.morphNormals,u=l.length,d;if(u>0){d=[];for(let x=0;x<u;x++)d[x]={name:l[x].name,data:[]};this.morphTargets.normal=d}let m=t.skinIndices,f=t.skinWeights,h=m.length===r.length,g=f.length===r.length;r.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let x=0;x<e.length;x++){let v=e[x];this.vertices.push(r[v.a],r[v.b],r[v.c]);let A=v.vertexNormals;if(A.length===3)this.normals.push(A[0],A[1],A[2]);else{let b=v.normal;this.normals.push(b,b,b)}let _=v.vertexColors;if(_.length===3)this.colors.push(_[0],_[1],_[2]);else{let b=v.color;this.colors.push(b,b,b)}if(n===!0){let b=o[0][x];b!==void 0?this.uvs.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",x),this.uvs.push(new oe.Vector2,new oe.Vector2,new oe.Vector2))}if(s===!0){let b=o[1][x];b!==void 0?this.uvs2.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",x),this.uvs2.push(new oe.Vector2,new oe.Vector2,new oe.Vector2))}for(let b=0;b<c;b++){let D=a[b].vertices;p[b].data.push(D[v.a],D[v.b],D[v.c])}for(let b=0;b<u;b++){let D=l[b].vertexNormals[x];d[b].data.push(D.a,D.b,D.c)}h&&this.skinIndices.push(m[v.a],m[v.b],m[v.c]),g&&this.skinWeights.push(f[v.a],f[v.b],f[v.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,n,s=0){this.a=t,this.b=e,this.c=r,this.normal=o&&o.isVector3?o:new oe.Vector3,this.vertexNormals=Array.isArray(o)?o:[],this.color=n&&n.isColor?n:new oe.Color,this.vertexColors=Array.isArray(n)?n:[],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 rb=["a","b","c"];function ob(i,t){switch(t){case"c":return i.c;case"b":return i.b;case"a":default:return i.a}}function Ol(i,t,e){let r=Math.min(i,t),o=Math.max(i,t),n=r+"_"+o;return e.get(n)}function Ll(i,t,e,r,o,n){let s=Math.min(i,t),a=Math.max(i,t),c=s+"_"+a,p;if(r.has(c))p=r.get(c);else{let l=e[s],u=e[a];p={a:l,b:u,newEdge:null,faces:[]},r.set(c,p)}p.faces.push(o),n[i].edges.push(p),n[t].edges.push(p)}function nb(i,t,e,r){let o,n,s;for(o=0,n=i.length;o<n;o++)e[o]={edges:[]};for(o=0,n=t.length;o<n;o++)s=t[o],Ll(s.a,s.b,i,r,s,e),Ll(s.b,s.c,i,r,s,e),Ll(s.c,s.a,i,r,s,e)}function oa(i,t,e,r,o){i.push(new mn(t,e,r,void 0,void 0,o))}function fn(i,t){return Math.abs(t-i)/2+Math.min(i,t)}function na(i,t,e,r){i.push([t.clone(),e.clone(),r.clone()])}var ia=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof Gr.BufferGeometry?t=new Zr().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 Gr.Vector3,r,o,n,s,a,c=t.vertices,p=t.faces,l=t.faceVertexUvs[0],u=l!==void 0&&l.length>0,d=[],m=new Map;nb(c,p,d,m);let f=[],h,g,x,v,A,_,b;for(let V of Array.from(m.keys())){for(g=m.get(V),x=new Gr.Vector3,A=3/8,_=1/8,b=g.faces.length,b!=2&&(A=.5,_=0,b!=1),x.addVectors(g.a,g.b).multiplyScalar(A),e.set(0,0,0),s=0;s<b;s++){for(v=g.faces[s],a=0;a<3&&(h=c[ob(v,rb[a])],!(h!==g.a&&h!==g.b));a++);h&&e.add(h)}e.multiplyScalar(_),x.add(e),g.newEdge=f.length,f.push(x)}let D,S,y,I,T,L,C,N=[];for(o=0,n=c.length;o<n;o++){for(L=c[o],T=d[o].edges,r=T.length,r==3?D=3/16:r>3&&(D=3/(8*r)),S=1-r*Number(D),y=D,r<=2&&(r==2?(S=3/4,y=1/8):r==1||r==0),C=L.clone().multiplyScalar(S),e.set(0,0,0),s=0;s<r;s++)I=T[s],h=I.a!==L?I.a:I.b,e.add(h);e.multiplyScalar(Number(y)),C.add(e),N.push(C)}let j=N.concat(f),W=N.length,ne,ue,se,K=[],U=[],F,E,B,P,G=new Gr.Vector2,Q=new Gr.Vector2,k=new Gr.Vector2;for(o=0,n=p.length;o<n;o++)v=p[o],ne=Number(Ol(v.a,v.b,m).newEdge)+W,ue=Number(Ol(v.b,v.c,m).newEdge)+W,se=Number(Ol(v.c,v.a,m).newEdge)+W,oa(K,ne,ue,se,v.materialIndex),oa(K,v.a,ne,se,v.materialIndex),oa(K,v.b,ue,ne,v.materialIndex),oa(K,v.c,se,ue,v.materialIndex),u&&(F=l[o],E=F[0],B=F[1],P=F[2],G.set(fn(E.x,B.x),fn(E.y,B.y)),Q.set(fn(B.x,P.x),fn(B.y,P.y)),k.set(fn(E.x,P.x),fn(E.y,P.y)),na(U,G,Q,k),na(U,E,G,k),na(U,B,Q,G),na(U,P,k,Q));t.vertices=j,t.faces=K,u&&(t.faceVertexUvs[0]=U)}};var Je=new pr.Vector3,$d=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=i.geometry??t?.geometry??new pr.BufferGeometry().copy(new pr.BoxBufferGeometry(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(Je),r={width:Je.x,height:Je.y,depth:Je.z,subdivisions:0}):r=t.parameters;let o={...r,...i.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(i){let{width:t,height:e,depth:r,subdivisions:o}=i.parameters,n=i.geometry??new pr.BufferGeometry().copy(new pr.BoxBufferGeometry(100,100,100)),s=n.userData.parameters;s===void 0?(n.computeBoundingBox(),n.boundingBox.getSize(Je)):Je.set(s.width,s.height,s.depth),(t!==Je.x||e!==Je.y||r!==Je.z)&&n.scale(Je.x===0?1:t/Je.x,Je.y===0?1:e/Je.y,Je.z===0?1:r/Je.z);let a=n.originalGeometry;return o>0?(a===void 0||s?.subdivisions!==o)&&(a===void 0&&(a=n),n=new ia(o).modify(a).toBufferGeometry()):(a!==void 0&&(n=a),a=void 0,n.getAttribute("normal")===void 0&&n.computeVertexNormals()),a!==void 0&&Object.assign(n,{originalGeometry:a}),delete i.geometry,Object.assign(n,{userData:{...i,type:"NonParametricGeometry"}})}static loadFromUrl(i,t,e){new pr.BufferGeometryLoader(e).load(i,o=>{let n=this.normalizeInputs({geometry:o});o.boundingBox.getSize(Je);let s=100/Je.x;Object.assign(n.parameters,{width:100,height:Je.y*s,depth:Je.z*s}),t(this.build(n))})}};var Xd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},i.parameters);return{shape:i.shape&&i.shape instanceof Ce?i.shape:new Ce,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(i){let{width:t,height:e,spikes:r,cornerRadius:o,depth:n,extrudeBevelSize:s,extrudeBevelSegments:a}=i.parameters,c=i.shape,p=t*.5,l=e*.5,u=0,d=0,m=2*Math.PI/r;for(let h=0;h<r;h++){let g=m*h,x=u+Math.sin(g)*p,v=d+Math.cos(g)*l;c.addPoint(c.createPoint(x,v))}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 f=vt.create({shape:c,parameters:{roundness:o,depth:n,extrudeBevelSize:s,extrudeBevelSegments:a}});return Object.assign(f,{userData:{...i,type:"PolygonGeometry"}})}};var ve=require("three"),Yd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},i.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(i){let{width:t,height:e,depth:r,radialSegments:o,heightSegments:n,openEnded:s,cornerRadius:a,cornerSegments:c}=i.parameters,p=new Pl(t*.5,e,o,n,s,a,c);return p.scale(1,1,r/t),Object.assign(p,{userData:{...i,type:"PyramidGeometry"}})}};function si(i,t,e){e.x=i.x*t.x,e.y=i.y,e.z=i.x*t.y}function Il(i,t,e,r,o,n){let s=t.clone().sub(i),a=e.clone().sub(i),c=s.angleTo(a);if(s.normalize(),a.normalize(),r===o){let p=s.add(a).normalize();n.copy(i).addScaledVector(p,r/Math.sin(c/2))}else{let p=s.angleTo(a);n.copy(i),n.addScaledVector(s,o/Math.sin(p)),n.addScaledVector(a,r/Math.sin(p))}}function ib(i,t,e){let r=i.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var Pl=class extends ve.BufferGeometry{constructor(t=.5,e=1,r=4,o=1,n=!1,s=0,a=4){super(),r=Math.floor(Math.max(3,r)),o=Math.floor(o),a=Math.floor(a);let c=[],p=[],l=[],u=[],d=0,m=e/2,f=Math.PI/r,h=t*Math.cos(Math.PI/r),g=2*Math.PI/r,x=(r-2)*Math.PI/r,v=Math.PI-x,A=new ve.Vector3(0,-m,0),_=new ve.Vector3(0,m,0),b=new ve.Vector2(t,-m),D=new ve.Vector2(h,-m),S=new ve.Vector2(0,_.y).sub(D),y=new ve.Vector2(0,_.y).sub(b),I=new ve.Vector2(S.y,-S.x).normalize(),T=new ve.Vector2(y.y,-y.x).normalize(),C=t*Math.cos(Math.PI/r)*Math.tan((Math.PI-S.angle())/2)-1e-8;s=Math.min(s,C);let N;{let U=new ve.Vector3(I.x,I.y,0),F=new ve.Vector3(Math.cos(g)*U.x,U.y,Math.sin(g)*U.x);N=U.angleTo(F)}let j=s/Math.tan((Math.PI-S.angle())/2),W=s/Math.tan((Math.PI-N)/2),ne=new ve.Vector3;if(!n){p.push(A.x,A.y,A.z),l.push(0,-1,0),u.push(0,0);let U=d++,F=[],E=b.clone(),B=j/Math.cos(Math.PI/r);E.x-=B;for(let P=0;P<r;P++){let G=P/r*Math.PI*2+f,Q=new ve.Vector2(Math.sin(G),Math.cos(G));si(E,Q,ne),p.push(ne.x,ne.y,ne.z),l.push(0,-1,0),u.push(0,0),F.push(d++)}for(let P=0;P<F.length;P++)c.push(F[P],U,F[(P+1)%F.length])}let ue=[];{let U=new ve.Vector3,F=new ve.Vector3,E=new ve.Vector3,B=new ve.Vector3,P=new ve.Vector3,G=new ve.Vector3;for(let Q=0;Q<r;Q++){let k=Q/r*Math.PI*2+f,V=(Q+.5)/r*Math.PI*2+f,z=(Q+1)/r*Math.PI*2+f,M=new ve.Vector2(Math.sin(k),Math.cos(k)),q=new ve.Vector2(Math.sin(V),Math.cos(V)),J=new ve.Vector2(Math.sin(z),Math.cos(z));si(b,M,F),si(b,J,E),si(I,q,U),Il(_,F,E,W,W,B),p.push(B.x,B.y,B.z),Il(F,_,E,W,j,P),p.push(P.x,P.y,P.z),Il(E,F,_,j,W,G),p.push(G.x,G.y,G.z),l.push(U.x,U.y,U.z),l.push(U.x,U.y,U.z),l.push(U.x,U.y,U.z),u.push(0,0),u.push(0,0),u.push(0,0);let ee=d++,H=d++,Z=d++;if(c.push(ee,H,Z),s>0){{let ce=F.clone().add(E).multiplyScalar(.5),ie=_.clone().sub(ce).normalize(),Re=A.clone().sub(ce).normalize().add(ie).normalize().multiplyScalar(-1),ge=G.clone().sub(P);se(ce,ge,Re,S.angle())}let $,re;{let ce=new ve.Vector3;si(T,J,ce);let ie=G.clone().add(B).multiplyScalar(.5);ie=ib(ie,E,_);let fe=G.clone().sub(B);[$,re]=se(ie,fe,ce,N,B.y)}{let ce=$,ie=ce.clone().setY(0).normalize(),fe=new ve.Vector3(0,-1,0),Re=ie.clone().cross(fe);K(ce,ie,fe,Re)}ue.concat(re);{let ce=S.angle(),ie=Math.PI-ce,fe=_.clone();fe.y-=s/Math.sin(ce-Math.PI/2);let Re=new ve.Vector3,ge=[];for(let Ae=0;Ae<a;Ae++){let St=[],Vt=Math.PI/2-ie*Ae/a,Io=Math.cos(Vt),Pt=Math.sin(Vt),Po=V;for(let Ui=0;Ui<=Ae;Ui++){let ki=Math.cos(Po),Ue=Math.sin(Po);U.x=Io*Ue,U.y=Pt,U.z=Io*ki,Re.copy(fe).addScaledVector(U,s),p.push(Re.x,Re.y,Re.z),l.push(U.x,U.y,U.z),u.push(0,0),St.push(d++),Po+=Math.PI*2/Ae/r}ge.push(St)}re.reverse(),ge.push(re);let qe=ge.length-1;for(let Ae=0;Ae<qe;Ae++){let St=ge[Ae],Vt=ge[Ae+1],Io=St.length-1;c.push(Vt[1],St[0],Vt[0]);for(let Pt=1;Pt<=Io;Pt++)c.push(St[Pt],St[Pt-1],Vt[Pt]),c.push(Vt[Pt+1],St[Pt],Vt[Pt])}}}}}this.setIndex(c),this.setAttribute("position",new ve.Float32BufferAttribute(p,3)),this.setAttribute("normal",new ve.Float32BufferAttribute(l,3)),this.setAttribute("uv",new ve.Float32BufferAttribute(u,2));function se(U,F,E,B,P){let G=-B/2,Q=(Math.PI-B)/2,k=F.clone().normalize().cross(E);U.addScaledVector(E,-s/Math.sin(Q));let V=new ve.Vector3,z=new ve.Vector3,M=1,q=d,J=[];for(let ee=0;ee<=a;ee++){let H=G+ee/a*B;z.set(0,0,0),z.addScaledVector(k,Math.sin(H)),z.addScaledVector(E,Math.cos(H));for(let Z=0;Z<=M;Z++){let $=Z/M-.5;if(V.copy(U),V.addScaledVector(F,$),V.addScaledVector(z,s),P!=null){let re=Math.max(0,V.y-P);V.addScaledVector(F,-re/F.y)}p.push(V.x,V.y,V.z),l.push(z.x,z.y,z.z),u.push(0,0),Z===0&&J.push(d),d++}}for(let ee=0;ee<a;ee++)for(let H=0;H<M;H++){let Z=q+H+(M+1)*ee,$=Z+(M+1),re=$+1,ce=Z+1;c.push(Z,$,ce),c.push($,re,ce)}return[U.clone().addScaledVector(F,.5),J]}function K(U,F,E,B){let P=Math.PI/2,G=y.angle()-P,Q=[],k=new ve.Vector3,V=new ve.Vector3;for(let M=0;M<=a;M++){let q=[],J=M/a;for(let ee=0;ee<=M;ee++){let Z=((M?ee/M:0)-.5)*v,$=Math.cos(Z),re=Math.sin(Z),ce=Math.atan(Math.tan(G)*$),ie=(P+ce)*J,fe=Math.cos(ie),Re=Math.sin(ie);k.set(0,0,0),k.addScaledVector(F,Re*$),k.addScaledVector(E,fe),k.addScaledVector(B,Re*re),V.copy(U).addScaledVector(k,s),p.push(V.x,V.y,V.z),l.push(k.x,k.y,k.z),u.push(0,0),q.push(d++)}Q.push(q)}let z=Q.length-1;for(let M=0;M<z;M++){let q=Q[M],J=Q[M+1],ee=q.length-1;c.push(q[0],J[1],J[0]);for(let H=1;H<=ee;H++)c.push(q[H-1],q[H],J[H]),c.push(q[H],J[H+1],J[H])}}}};var Kd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters),r=Object.assign(t?.ui??{enabledIndieCorners:!1},i.ui);return{shape:i.shape&&i.shape instanceof Ce?i.shape:new Ce,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(i){let t=i.shape,{width:e,height:r,cornerRadius:o,cornerType:n,depth:s,extrudeBevelSize:a,extrudeBevelSegments:c}=i.parameters,p={x:e*.5,y:r*.5},l={x:-p.x,y:-p.y},u={x:p.x,y:p.y};function d(_,b,D){return b>e&&D>r?Math.min(_*e/b,_*r/D):b>e?_*e/b:D>r?_*r/D:_}let m=[];m[0]=o[0]===0?0:d(o[0],o[0]+o[3],o[0]+o[1]),m[1]=o[1]===0?0:d(o[1],o[1]+o[2],o[1]+o[0]),m[2]=o[2]===0?0:d(o[2],o[2]+o[1],o[2]+o[3]),m[3]=o[3]===0?0:d(o[3],o[3]+o[0],o[3]+o[2]);let f=l.x,h=u.x,g=u.y,x=l.y;t.addPoint(t.createPoint(f,g)),t.addPoint(t.createPoint(h,g)),t.addPoint(t.createPoint(h,x)),t.addPoint(t.createPoint(f,x)),t.isClosed=!0;let v=!0;for(let _=0,b=t.points.length;_<b;_++)t.points[_].roundness=m[_],_>0&&m[_]!==m[_-1]&&(v=!1);v&&(t.roundness=m[0]),t.useCubicForRoundedCorners=n!==1,t.update();let A=vt.create({shape:t,parameters:{depth:s,extrudeBevelSize:a,extrudeBevelSegments:c}});return Object.assign(A,{userData:{...i,type:"RectangleGeometry"}})}};var Qd=require("three"),Zd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},i.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(i){let{width:t=100,height:e=t,depth:r=t,widthSegments:o=64,heightSegments:n=64,phiStart:s,phiLength:a,thetaStart:c,thetaLength:p}=i.parameters,l=new Qd.SphereBufferGeometry(.5*t,o,n,s,a,c,p);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...i,type:"SphereGeometry"}})}};var Jd=require("three"),em=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:0})}}static build(i){let{width:t=100,height:e=t,widthSegments:r=8,heightSegments:o=8}=i.parameters,n=new Jd.PlaneBufferGeometry(t,e,r,o);return n.scale(1,1,1),Object.assign(n,{userData:{...i,type:"PlaneGeometry"}})}};var Jr=require("three"),tm=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},i.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(i){let{width:t,height:e,depth:r,angle:o,cornerRadius:n,cornerSegments:s}=i.parameters,a=new Ml(t,e,r,o,n,s);return Object.assign(a,{userData:{...i,type:"BackdropGeometry"}})}},Ml=class extends Jr.BufferGeometry{constructor(t=1,e=1,r=1,o=90,n=10,s=24){super(),this.type="BackdropGeometry";let a=[],c=[],p=[],l=.001;n==0&&(s=1),s=Math.max(1,Math.floor(s)),n=Math.min(n,100),o=Math.min(180-l,o),o*=Math.PI/180;let u=[],d=Math.PI/2,m=(V=0,z=0,M=0)=>new Jr.Vector3(V,z,M),f=m(),h=m(),[g,x,v]=[e/2,t/2,r/2],A=-x,_=+x,[b,D,S]=[m(A,-g,+v),m(A,-g,-v),m(A,+g,-v)],y=(V,z=!1)=>Math.sin(V-Math.PI/(1+ +z)),I=(V,z=!1)=>Math.cos(V-Math.PI/(1+ +z));S.y=Math.sin(o)*e-g;let T=Math.cos(o)*e-v,L=b.z-l;o<=d?(S.z=Math.min(T,L),S.z==L&&(S.y-=(T-L)/Math.tan(d-o))):D.z=Math.min(D.z-T-v,b.z-l),f.subVectors(b,D),h.subVectors(S,D);let C=Math.min(f.length(),h.length())*n/100,N=C*Math.tan(o/2),j=C/Math.cos(o/2),W=f.clone().normalize().add(h.normalize()).setLength(j).add(D);f.set(0,y(o,!0),I(o,!0)),u.push([S,f.clone()]);let ne=(Math.PI-o)/s;for(let V=0;V<=s;V++){let z=d+o+V*ne;f.set(0,Math.sin(z)*N,Math.cos(z)*N),f.add(W),h.set(0,y(z),I(z)),u.push([f.clone(),h.clone()])}u.push([b,m(0,1,0)]);let ue=Math.sin(ne/2)*N*2,se=u.length-1,K=u[0][0].distanceTo(u[1][0]),U=u[se-1][0].distanceTo(u[se][0]),F=K+ue*s+U;u[0].push(1);for(let V=0;V<=s;V++)u[V+1].push(1-(K+V*ue)/F);u[se].push(0);let[E,B,P]=u[0],G,Q,k;for(let V=1;V<u.length;V++)[G,Q,k]=u[V],a.push(A,E.y,E.z,A,G.y,G.z,_,E.y,E.z,_,E.y,E.z,A,G.y,G.z,_,G.y,G.z),c.push(0,B.y,B.z,0,Q.y,Q.z,0,B.y,B.z,0,B.y,B.z,0,Q.y,Q.z,0,Q.y,Q.z),p.push(0,P,0,k,1,P,1,P,0,k,1,k),[E,B,P]=[G,Q,k];this.setAttribute("position",new Jr.Float32BufferAttribute(a,3)),this.setAttribute("normal",new Jr.Float32BufferAttribute(c,3)),this.setAttribute("uv",new Jr.Float32BufferAttribute(p,2))}};var rm=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters);return{shape:i.shape&&i.shape instanceof Ce?i.shape:new Ce,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(i){let{width:t,height:e,innerRadiusPercent:r,spikes:o,cornerRadius:n,angle:s,depth:a,extrudeBevelSize:c,extrudeBevelSegments:p}=i.parameters,l=i.shape,u=t*.5,d=e*.5,m=0,f=0,h=s*Math.PI/360/o,g=Math.PI/2*3*-1,x=u*r/100,v=d*r/100;if(o===3&&r===50){h=2*Math.PI/o;for(let _=0;_<o;_++){let b=h*_,D=m+Math.sin(b)*u,S=f+Math.cos(b)*d;l.addPoint(l.createPoint(D,S))}}else for(let _=0;_<o;_++){let b=m+Math.cos(g)*u,D=f+Math.sin(g)*d;l.addPoint(l.createPoint(b,D)),g+=h,b=m+Math.cos(g)*x,D=f+Math.sin(g)*v,_<=o,l.addPoint(l.createPoint(b,D)),g+=h}l.isClosed=!0;for(let _=0,b=l.points.length;_<b;_++)l.points[_].roundness=n;l.roundness=n,l.update();let A=vt.create({shape:l,parameters:{roundness:n,depth:a,extrudeBevelSize:c,extrudeBevelSegments:p}});return Object.assign(A,{userData:{...i,type:"StarGeometry"}})}};var om=require("three"),sa=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0},i.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(i){let{width:t,height:e}=i.parameters,r=new om.PlaneBufferGeometry(t,e);return Object.assign(r,{userData:{...i,type:"TextFrameGeometry"}})}};var nm=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},i.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),n=Math.abs(e.depth??e.width*.25);return{parameters:Object.assign(e,{width:r,height:o,depth:n})}}static build(i){let{width:t,height:e,depth:r,radialSegments:o,tubularSegments:n,arc:s,cornerRadius:a,cornerSegments:c}=i.parameters,p=sb(t,e,r,t*.5,s,n,0,0,o,a,c);return p.scale(1,e/t,1),Object.assign(p,{userData:{...i,type:"TorusGeometry"}})}};function sb(i,t,e,r,o,n,s,a,c,p,l){return[t,e]=[e,t],s=t/2,o/=2*Math.PI,o==1&&(p=0),new ni(!0,i,t,e,r,o,n,s,a,c,p,l)}var im=require("three"),sm=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},i.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(i){let{width:t,tube:e,tubularSegments:r,radialSegments:o,p:n,q:s}=i.parameters,a=t*.5;a!==e&&(a-=e);let c=new im.TorusKnotBufferGeometry(a,e,r,o,n,s);return Object.assign(c,{userData:{...i,type:"TorusKnotGeometry"}})}};var am=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},i.parameters);return{shape:i.shape&&i.shape instanceof Ce?i.shape:new Ce,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(i){let{width:t=100,height:e,cornerRadius:r,depth:o,extrudeBevelSize:n,extrudeBevelSegments:s,isRect:a}=i.parameters,c=i.shape,p=t*.5,l=e*.5;a?(c.addPoint(c.createPoint(-p,l)),c.addPoint(c.createPoint(p,-l)),c.addPoint(c.createPoint(-p,-l))):(c.addPoint(c.createPoint(0,l)),c.addPoint(c.createPoint(p,-l)),c.addPoint(c.createPoint(-p,-l))),c.isClosed=!0;for(let d=0,m=c.points.length;d<m;d++)c.points[d].roundness=r;c.roundness=r,c.update();let u=vt.create({shape:c,parameters:{roundness:r,depth:o,extrudeBevelSize:n,extrudeBevelSegments:s}});return Object.assign(u,{userData:{...i,type:"TriangleGeometry"}})}};var He=require("three");var ab,aa=new Promise(i=>{ab=i});var xm=require("three");var ro=require("three");var da=require("three");var El=require("three");var ca=require("three");var Dl=require("three");function Ye(i,t){return t.color(i)}var Bl=i=>"isEntity"in i,dr=i=>"isAbstractMesh"in i,mr=i=>i!==null&&i.isBooleanMesh,lm=i=>i.objectType==="CombinedCamera";var la=i=>"objectHelper"in i;function lb(i,t){let e=!1;t.position&&(i.position.fromArray(t.position),e=!0),t.rotation&&(i.rotation.fromArray(t.rotation),e=!0),t.scale&&(e=!0,i.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&"hiddenMatrix"in i&&(e=!0,i.hiddenMatrix.fromArray(t.hiddenMatrix??Wr.identity)),e&&(i.updateMatrix(),mr(i.parent)&&dr(i)&&i.invalidateDownstreamBooleanData(!0).recomputeBoolean()),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&i.updateWorldMatrix(!1,!0),i.objectType==="CombinedCamera"&&(t.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=t.isUpVectorFlipped),i.updateUp())}function cb(i,t){lb(i,t),t.name!==void 0&&(i.name=t.name),t.visible!==void 0&&(i.visible=t.visible)}function cm(i,t,e){cb(i,t),t.color!==void 0&&(i.color=Ye(t.color,e)),t.intensity!==void 0&&(i.intensity=t.intensity),t.shadows!==void 0&&!(i instanceof Dl.HemisphereLight)&&(i.castShadow=t.shadows),i.shadow&&!(i instanceof Dl.HemisphereLight)&&t.depth!==void 0&&(i.shadow.camera.far=t.depth,i.shadow.needsUpdate=!0)}function um(i,t){i.shadow.camera.right=t/2,i.shadow.camera.left=-t/2,i.shadow.camera.top=t/2,i.shadow.camera.bottom=-t/2,i.shadow.needsUpdate=!0}var ua=i=>class extends i{hasEntityChild(){return this.children.some(e=>Bl(e))}isDescendantOf(e){e instanceof ca.Object3D&&(e=e.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===e)return!0;r=r.parent}return!1}attach(e,r){this.updateWorldMatrix(!0,!1);let o=new ca.Matrix4().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),Bl(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 n=e.children[o];this.add(n.clone())}return this}};var ze=require("three");var hn=new ze.Box3,fr=new ze.Vector3,hr=new ze.Vector3,gn=new ze.Matrix4,dm=[new ze.Vector3(-1,1,1),new ze.Vector3(-1,-1,1),new ze.Vector3(1,-1,1),new ze.Vector3(1,1,1),new ze.Vector3(-1,1,-1),new ze.Vector3(-1,-1,-1),new ze.Vector3(1,-1,-1),new ze.Vector3(1,1,-1)],ub=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],pb=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function db(i,t,e=0,r=t.count){let o=1/0,n=1/0,s=1/0,a=-1/0,c=-1/0,p=-1/0;for(let l=e;l<r;l++){let u=t.getX(l),d=t.getY(l),m=t.getZ(l);u<o&&(o=u),d<n&&(n=d),m<s&&(s=m),u>a&&(a=u),d>c&&(c=d),m>p&&(p=m)}return i.min.set(o,n,s),i.max.set(a,c,p),i}var pm=(i,t,e)=>{if(dr(i)){let r=i.geometry.userData.parameters,o=i.geometry.getAttribute("position");i.geometry.userData.type==="SubdivGeometry"?fr.copy(i.originalGeometry.boundingSphere.center):o!==void 0&&(db(hn,o,i.geometry.drawRange.start,i.geometry.drawRange.count<1/0?i.geometry.drawRange.count:o.count),hn.getCenter(fr)),i.forceComputeSize?hn.getSize(hr).multiplyScalar(.5):hr.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}else if(la(i)&&i.objectHelper.visible){let r=i.geometryHelper.getAttribute("position");hn.setFromArray(r.array),hn.getCenter(fr),hn.getSize(hr).multiplyScalar(.5)}else fr.setScalar(0),hr.setScalar(0);gn.copy(t).multiply(i.matrixWorld),hr.x===0&&hr.y===0&&hr.z===0?e.push(new ze.Vector3(fr.x,fr.y,fr.z).applyMatrix4(gn)):dm.forEach(r=>{e.push(r.clone().multiply(hr).add(fr).applyMatrix4(gn))})},ai=class extends ze.Box3{constructor(){super(...arguments);this.matrix=new ze.Matrix4;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(e){return super.copy(e),this.matrix.copy(e.matrix),this.vertices=e.vertices.map(r=>r.clone()),this.faces=e.faces.map(r=>r.clone()),this.edges=e.edges.map(r=>r.clone()),this.centerEdges=e.centerEdges.map(r=>r.clone()),this}setFromObjectSize(e,r=!1){e.updateWorldMatrix(!1,r),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let o=new ze.Matrix4().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,r)}expandByObjectSize(e,r,o=!1){let n=[];return o===!0?e.traverseEntity(s=>{s.visible&&pm(s,r,n)}):pm(e,r,n),this.setFromPoints(n)}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(hr).multiplyScalar(.5),this.getCenter(fr),gn.copy(this.matrix).setPosition(fr),this.vertices=dm.map(e=>e.clone().multiply(hr).applyMatrix4(gn))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=ub.map(([e,r])=>new ze.Line3(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new ze.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=pb.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var gr=i=>"isEntity"in i,mm=i=>"isAbstractMesh"in i,jt=i=>class extends ua(i){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new El.Matrix4;this._singleBBox=new ai;this._recursiveBBox=new ai;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1}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=>{gr(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)gr(o)&&o.traverseEntity(r)}traverseVisibleEntity(r){r(this);for(let o of this.children)gr(o)&&o.visible&&o.traverseVisibleEntity(r)}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 n=this.parent;if(r&&n!==null&&n.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 n of r.children)gr(n)&&this.add(n.clone());return this}keepChildrenMatrixWorld(){let r=new El.Matrix4,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),r.copy(this.matrixWorld).invert(),r.multiply(o);for(let n of this.children)gr(n)&&n.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 Ko(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 Ko(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 Ke=require("three");var fm=require("three"),Gl=class extends fm.Object3D{},pa=class extends Gl{constructor(e){super();this.object=e;this.matrixAutoUpdate=!0}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return!0}get isLight(){return!1}get layers(){return this.object.layers}set layers(e){}get isCamera(){return!1}get geometry(){return this.object.geometry}get material(){return this.object.material}};var _o=class extends Ke.Object3D{constructor(e,r={}){super();this.object=e;let o=e.recursiveBBox.getSize(new Ke.Vector3),n=.1;this.parameters=Ss.defaultData(o.toArray(),n),mo(this.parameters,r),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(e){this.parameters.hideBase=e}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters)}this.children.forEach(e=>e.updateMatrix())}_updateCount(){let e=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count;if(this.children.length!==e)if(this.children.length<e)for(let r=0,o=e-this.children.length;r<o;++r){let n=new pa(this.object);n.visible=!0,this.add(n),this.parameters.hideBase&&this.setHideBase(!0)}else for(let r=0,o=this.children.length-e;r<o;++r)this.remove(this.children[0])}_updateRadial(e){let r=e.radial,o=r.start*Ke.MathUtils.DEG2RAD,n=r.end*Ke.MathUtils.DEG2RAD,s=o-n,a=new Ke.Euler(r.rotation[0]*Ke.MathUtils.DEG2RAD,r.rotation[1]*Ke.MathUtils.DEG2RAD,r.rotation[2]*Ke.MathUtils.DEG2RAD),c;switch(r.axis){case"z":c=new Ke.Vector3(0,0,1);break;case"y":c=new Ke.Vector3(0,1,0);break;default:case"x":c=new Ke.Vector3(1,0,0);break}for(let[p,l]of this.children.entries()){l.scale.x=r.scale[0],l.scale.y=r.scale[1],l.scale.z=r.scale[2],l.position.setScalar(0);let u=s/e.count*p-o;switch(r.axis){case"x":l.rotation.set(0,u,0);break;case"y":l.rotation.set(0,0,u);break;case"z":l.rotation.set(u,0,0);break}l.translateOnAxis(c,r.radius),l.position.x+=r.position[0],l.position.y+=r.position[1],l.position.z+=r.position[2],r.alignment===!0?(l.rotation.x+=a.x,l.rotation.y+=a.y,l.rotation.z+=a.z):l.rotation.copy(a)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,o=new Ke.Euler(r.rotation[0]*Ke.MathUtils.DEG2RAD,r.rotation[1]*Ke.MathUtils.DEG2RAD,r.rotation[2]*Ke.MathUtils.DEG2RAD);for(let[n,s]of this.children.entries())s.scale.x=1+(r.scale[0]-1)*n,s.scale.y=1+(r.scale[1]-1)*n,s.scale.z=1+(r.scale[2]-1)*n,s.rotation.x=o.x*n,s.rotation.y=o.y*n,s.rotation.z=o.z*n,s.position.x=r.position[0]*n,s.position.y=r.position[1]*n,s.position.z=r.position[2]*n}_updateGrid(e){let r=0,o=e.grid;if(o.useCenter===!0){let n={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},s=new Ke.Vector3(o.size[0]*(o.count[0]-n.x)*.5,o.size[1]*(o.count[1]-n.y)*.5,o.size[2]*(o.count[2]-n.z)*.5);for(let a=0;a<o.count[0];a++)for(let c=0;c<o.count[1];c++)for(let p=0;p<o.count[2];p++){let l=this.children[r++];l.scale.setScalar(1),l.rotation.set(0,0,0),l.position.x=o.size[0]*a-s.x,l.position.y=o.size[1]*c-s.y,l.position.z=o.size[2]*p-s.z}}else for(let n=0;n<o.count[0];n++)for(let s=0;s<o.count[1];s++)for(let a=0;a<o.count[2];a++){let c=this.children[r++];c.scale.setScalar(1),c.rotation.set(0,0,0),c.position.x=o.size[0]*n,c.position.y=-o.size[1]*s,c.position.z=-o.size[2]*a}}fromClonerState(e){return e.hideBase!==void 0&&this.setHideBase(e.hideBase),mo(this.parameters,e),this.update(),this}};var Rt=require("three");function mb(i){if(i.geometry.attributes.extrudeNormals||!i.geometry.attributes.position)return;let t=new Map,e=i.geometry.attributes.position.array,r=i.geometry.attributes.normal.array,o=new Float32Array(e.length);for(let n=0;n<e.length;n+=3){let s=`${e[n]}_${e[n+1]}_${e[n+2]}`,a=new Rt.Vector3(r[n],r[n+1],r[n+2]);t.has(s)?t.get(s)?.normals.push(a):t.set(s,{normals:[a],result:new Rt.Vector3})}t.forEach((n,s)=>{for(let a of n.normals)n.result.add(a);n.result.divideScalar(n.normals.length)});for(let n=0;n<e.length;n+=3){let s=`${e[n]}_${e[n+1]}_${e[n+2]}`,a=t.get(s)?.result;a&&(o[n]=a.x,o[n+1]=a.y,o[n+2]=a.z)}i.geometry.setAttribute("extrudeNormal",new Rt.Float32BufferAttribute(o,3))}function fb(i){if(i.geometry.attributes.extrudeNormals||!i.geometry.attributes.position)return;let t=i.geometry.attributes.position.array,e=new Float32Array(t.length),r=new Rt.Vector3;for(let o=0;o<t.length;o+=3)r.set(t[o],t[o+1],t[o+2]).normalize(),e[o]=r.x,e[o+1]=r.y,e[o+2]=r.z;i.geometry.setAttribute("extrudeNormal",new Rt.Float32BufferAttribute(e,3))}function eo(i){if(i.objectType!=="TextFrame"){if(Array.isArray(i.material)){for(let t of i.material)if(t.getLayersOfType("outline").length===0)return}else if(i.material.getLayersOfType("outline").length===0)return;i.objectType==="Mesh2D"?fb(i):mb(i)}}function to(i){if(!i.geometry.attributes.position)return;let t=i.geometry.attributes.position.array,e=new Float32Array(t.length),r=parseInt(i.uuid.replace(/\D/g,"")),o=[Rt.MathUtils.seededRandom(r),Rt.MathUtils.seededRandom(r+1e4),Rt.MathUtils.seededRandom(r+2e4)];for(let n=0;n<t.length;n++)e[n]=o[n%3];i.geometry.setAttribute("randomColor",new Rt.BufferAttribute(e,3))}var it=class extends jt(da.Mesh){constructor(e,r){super(e,r);this.isAbstractMesh=!0;this.isBooleanMesh=!1;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new da.Matrix4;this.booleanExclude=null;Array.isArray(r)&&e.groups.length===0&&e.addGroup(0,e.getAttribute("position").count,0)}get isGroup(){return this._cloner?.parameters.hideBase===!0}get isMesh(){return!this.isGroup}set isMesh(e){}get cloner(){return this._cloner}set cloner(e){this._cloner&&this.remove(this._cloner),e&&this.add(e),this._cloner=e}updateGeometry(e){let r=this.geometry,o=Rl[r.userData.type],n=this.objectType==="NonParametric"?Object.assign({},r.userData,{geometry:r}):r.userData,s=o.build(o.normalizeInputs(e,n)),a=r.uuid;this.geometry.dispose(),this.geometry=s,this.geometry.uuid=a,this.geometry.computeBoundingSphere(),eo(this),r.getAttribute("randomColor")&&to(this)}clone(e){let r=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,o=li(r),n=this.material;return new this.constructor(o,n).copy(this,e)}copy(e,r=!0){return super.copy(e,r),e.cloner&&(this.cloner=new _o(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new _o(this)),this.cloner.fromClonerState(e))}fromState(e,r){return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=e.castShadow??!0,this.receiveShadow=e.receiveShadow??!0,this.booleanExclude=e.booleanExclude??null),this}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(Yt.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),mr(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)dr(e)&&(e.freeBooleanPointer(),mr(e)&&e.invalidateUpstreamBooleanData())}};var hb=new ro.Vector3(0,0,1),hm=new ro.Vector3,gm=new ro.Vector3,ym=new ro.Matrix3,yn=class extends it{constructor(e=vt.create({}),r){super(e,r);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new ro.EventDispatcher;this._onShapeUpdate=()=>{this.updateGeometry({}),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e){if(super.updateGeometry(e),"userData"in this.geometry){let r=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:r})}}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),ym.getNormalMatrix(this.matrixWorld),hm.copy(hb).applyMatrix3(ym).normalize(),gm.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(hm,gm)}clone(e){let r=this.shape.clone(),o=this.material,n=this.geometry.userData,s=vt.create(Object.assign({},n,{shape:r})),a=new yn(s,o).copy(this,e);return a.shape=r,r.update(),a}raycast(e,r){it.prototype.raycast.call(this,e,r)}};function ma(i,t){return gb(i)}function gb(i){let t={parameters:i,type:i.type};if(i.type==="VectorGeometry"){let r=Ce.createFromState(i.shape,i.width,i.height);t.shape=r}else i.type==="NonParametricGeometry"&&(i.data.groups&&i.data.groups.forEach(r=>r.materialIndex=Math.max(r.materialIndex??0,0)),t.geometry=new xm.BufferGeometryLoader().parse(i));let e;try{e=li(t)}catch(r){console.error(r)}if(!e){let r=Ce.createFromState(on.defaultData(),100,100);t.shape=r,e=li(t)}return e}var de;aa.then(i=>{de=i});var vm=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),bm=new Uint32Array([0,1,2,3]),_m=new Uint8Array([4]),Ht=class{static build(i,t,e,r,o){let n,s,a,c=i?.phongAngle??t?.phongAngle??35;if(r===!1&&(c=-1),i.positionWASM!==void 0){e&&e!==0&&(de.free_bvh(e),de.free_subdivision_surface(e));try{n=Ht.allocate(i,o)}catch(p){console.error(p,i),n=Ht.allocate({positionWASM:vm,indexWASM:bm,verticesPerFaceWASM:_m},o)}de.set_destination_refinement_level(n,0),s=Ht.buildLevel(n,!0,c)}else n=e,i.phongAngle!==void 0&&(s=Ht.buildLevel(n,!0,c));return i.subdivisions!==void 0&&(de.set_destination_refinement_level(n,i.subdivisions),i.subdivisions>0?a=Ht.buildLevel(n,!1,c):a=null),{subdivPointer:n,originalGeometry:s,subdividedGeometry:a}}static primitiveToQuads(i,t){i.widthSegments>16&&(i.widthSegments=16),i.heightSegments>16&&(i.heightSegments=16),i.depthSegments>16&&(i.depthSegments=16),i.radialSegments>16&&(i.radialSegments=16),i.type==="DodecahedronGeometry"&&(i.detail=0);let e=i.shape!==void 0?t.geometry:ma(i),r,o,n,s;return{positions:r,triIndices:s}=Ul(e.getAttribute("position"),e.getIndex()),{indices:o,verticesPerFace:n}=kl(r,s,e),{positions:r,indices:o,verticesPerFace:n}}static allocate(i,t){let e,r,o,n=[],s=[];i.positionWASM&&i.positionWASM.length>0?(e=i.positionWASM,r=i.indexWASM,o=i.verticesPerFaceWASM):(e=vm,r=bm,o=_m);let a=e.length,c=r.length,p=o.length,l=e.length+n.length+s.length,u=r.length+o.length,d=l*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,m=l*Float32Array.BYTES_PER_ELEMENT,f=u*Uint32Array.BYTES_PER_ELEMENT,h=de._malloc(d),g=new Float32Array(de.HEAPF32.buffer,h,l),x=new Uint32Array(de.HEAPU32.buffer,h+m,u);g.set(e,0),g.set(n,e.length),g.set(s,e.length+n.length),x.set(r,0),x.set(o,r.length);let v;i?.scaleBaked?.some(_=>_!==1)&&(v=new He.Matrix4().makeScale(...i.scaleBaked)),t&&(v?v.premultiply(t):v=t);let A=v?de.alloc_subdivision_surface2(h,a,h+m,c,h+m+r.length*Uint32Array.BYTES_PER_ELEMENT,p,v.elements):de.alloc_subdivision_surface(h,a,h+m,c,h+m+r.length*Uint32Array.BYTES_PER_ELEMENT,p);return de._free(h),A}static buildLevel(i,t,e,r,o){let n=o?de.get_mesh_data2(i,t?de.Level.CONTROL:de.Level.REFINED,e,o.elements):de.get_mesh_data(i,t?de.Level.CONTROL:de.Level.REFINED,e),s=8,a=de.HEAPU32.subarray(n>>2,(n>>2)+s),c=a.subarray(4,4+4),p=0,l=de.HEAPU32[a[p]>>2],u=de.HEAPF32.subarray(l>>2,(l>>2)+c[p]);p++;let d=de.HEAPU32[a[p]>>2],m=de.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let f=de.HEAPU32[a[p]>>2],h=de.HEAPU32.subarray(f>>2,(f>>2)+c[p]);p++;let g=de.HEAPU32[a[p]>>2],x=de.HEAPU32.subarray(g>>2,(g>>2)+c[p]);if(p++,r===void 0){let v=new He.BufferGeometry;if(v.setIndex(new He.Uint32BufferAttribute(x,1)),v.setAttribute("position",new He.Float32BufferAttribute(u,3)),v.setAttribute("normal",new He.Float32BufferAttribute(m,3)),t){v.setAttribute("faceMap",new He.Uint32BufferAttribute(h,1));let A=new Float32Array(m.length/3*4).fill(0);v.setAttribute("color",new He.BufferAttribute(A,4))}return de.free_mesh_data(n),v.userData.type="SubdivGeometry",v}r.getAttribute("position").copyArray(u),r.getAttribute("normal").copyArray(m),r.attributes.position.needsUpdate=!0,r.attributes.normal.needsUpdate=!0,de.free_mesh_data(n)}static buildControlCageWireframe(i,t,e){let r=de.get_wireframe_data_for_base_level(i),o=4,n=de.HEAPU32.subarray(r>>2,(r>>2)+o),s=n.subarray(2,2+2),a=0,c=de.HEAPU32[n[a]>>2],p=de.HEAPF32.subarray(c>>2,(c>>2)+s[a]);a++;let l=de.HEAPU32[n[a]>>2],u=de.HEAPU32.subarray(l>>2,(l>>2)+s[a]);if(t===void 0){let d=new He.BufferGeometry;d.setAttribute("position",new He.Float32BufferAttribute(p,3));let m=new Float32Array(p.length);for(let f=0,h=p.length;f<h;)m[f++]=e.r,m[f++]=e.g,m[f++]=e.b;return d.setAttribute("color",new He.BufferAttribute(m,3)),d.setIndex(new He.Uint32BufferAttribute(u,1)),de.free_wireframe_data_for_base_level(r),d}t.getAttribute("position").copyArray(p),t.attributes.position.needsUpdate=!0,de.free_wireframe_data_for_base_level(r)}static updateCollabMesh(i,t,e){t||de.set_destination_refinement_level(i,1);let r=e?de.get_topological_data2(i,t?de.Level.CONTROL:de.Level.REFINED,e.elements):de.get_topological_data(i,t?de.Level.CONTROL:de.Level.REFINED),o=6,n=de.HEAPU32.subarray(r>>2,(r>>2)+o),s=n.subarray(3,3+3),a=0,c=de.HEAPU32[n[a]>>2],p=new Float32Array(de.HEAPF32.subarray(c>>2,(c>>2)+s[a]));a++;let l=de.HEAPU32[n[a]>>2],u=new Uint32Array(de.HEAPU32.subarray(l>>2,(l>>2)+s[a]));a++;let d=de.HEAPU32[n[a]>>2],m=new Uint8Array(de.HEAPU32.subarray(d>>2,(d>>2)+s[a]));return de.free_topological_data(r),{positions:p,indices:u,verticesPerFace:m}}};var Sm=["getX","getY","getZ"];function Ul(i,t){let e={},r=t?t.count:i.count,o=0,n=[],s=[],a=1e4;for(let p=0;p<r;p++){let l=t?t.getX(p):p,u="";for(let d=0;d<3;d++)u+=`${~~(i[Sm[d]](l)*a)},`;if(u in e)n.push(e[u]);else{for(let d=0;d<3;d++)s.push(i[Sm[d]](l));e[u]=o,n.push(o),o++}}let c=[];for(let p=0;p<n.length;p+=3)n[p]===n[p+1]||n[p]===n[p+2]||n[p+1]===n[p+2]||c.push(n[p],n[p+1],n[p+2]);return{positions:s,triIndices:c}}var fa=new He.Vector3,Fl=new He.Vector3,Vl=new He.Vector3,zl=new He.Vector3;function kl(i,t,e){let r=[],o=[];if(e.userData.shape!==void 0&&e.userData.parameters.depth===0&&e.userData.shape.shapeHoles.length===0){let n=e.userData.shape.extractShapePointsToFlatArray([]),s=0;for(let c=0;c<n.length;c+=2)s+=(n[c]-n[(c===0?n.length:c)-2])*(n[c+1]+n[(c===0?n.length:c)-1]);i.length=0;let a=0;if(s<0)for(let c=0;c<n.length;c+=2)i.push(n[c],n[c+1],0),r.push(a++);else for(let c=n.length-2;c>=0;c-=2)i.push(n[c],n[c+1],0),r.push(a++);return o.push(a),{indices:r,verticesPerFace:o}}for(let n=0,s=e.capStartIndex??t.length;n<s;)if(t[n+1]===t[n+3]&&t[n+2]===t[n+5]||t[n+0]===t[n+3]&&t[n+2]===t[n+4]){fa.set(i[t[n]*3],i[t[n]*3+1],i[t[n]*3+2]),Fl.set(i[t[n+1]*3],i[t[n+1]*3+1],i[t[n+1]*3+2]),Vl.set(i[t[n+4]*3],i[t[n+4]*3+1],i[t[n+4]*3+2]),zl.set(i[t[n+5]*3],i[t[n+5]*3+1],i[t[n+5]*3+2]),Fl.sub(fa).normalize(),Vl.sub(fa).normalize(),zl.sub(fa).normalize();let a=Fl.cross(Vl).dot(zl);Math.abs(a)>.005?(r.push(t[n],t[n+1],t[n+2]),o.push(3),n+=3):(r.push(t[n],t[n+1],t[n+4],t[n+5]),o.push(4),n+=6)}else r.push(t[n],t[n+1],t[n+2]),o.push(3),n+=3;if(e.capStartIndex!==void 0){let n=[],s=[],a=0;for(let c=0,p=0;c<i.length;c+=3,p++)i[c+2]===0&&(n.push(p),a++),i[c+2]===e.userData.parameters.depth&&s.push(p);if(e.userData.parameters.extrudeBevelSize===0){let c=s[0];s[0]=s[1],s[1]=c}n.reverse(),r.push(...n,...s),o.push(a,a)}return{indices:r,verticesPerFace:o}}var Yt={};xc(Yt,{calcBoolean:()=>bb,calcBooleanTopological:()=>vb,freeMeshSet:()=>wb,getMeshSet:()=>_b,transformMeshSet:()=>Sb});var yb,wm=new Promise(i=>{yb=i});var ci=require("three");var ye,xn;wm.then(i=>ye=i);function xb(i,t){let e,{positions:r,triIndices:o}=Ul(i.getAttribute("position"),i.getIndex()),n;if(t){let{indices:s,verticesPerFace:a}=kl(r,o,i);n=a.length,e=[];for(let c=0,p=0;c<n;c++){e.push(a[c]);for(let l=0;l<a[c];l++)e.push(s[p++])}}else{let s=o.length;e=Array(s+s/3),n=0;for(let a=0,c=0;c<e.length;)e[c++]=3,n++,e[c++]=o[a++],e[c++]=o[a++],e[c++]=o[a++]}return{positions:r,faceIndices:e,nFaces:n}}function Tm(i){let t=i.length,e=t*Uint32Array.BYTES_PER_ELEMENT,r=t*Float32Array.BYTES_PER_ELEMENT,o=Number.isInteger(i[0])?e:r,n=ye._malloc(o);return(Number.isInteger(i[0])?new Uint32Array(ye.HEAPU32.buffer,n,t):new Float32Array(ye.HEAPF32.buffer,n,t)).set(i,0),n}function Am(i){switch(i){case 0:return ye.OP.UNION;case 1:return ye.OP.INTERSECTION;case 2:return ye.OP.A_MINUS_B;case 3:return ye.OP.B_MINUS_A;case 4:return ye.OP.SYMMETRIC_DIFFERENCE;case 5:return ye.OP.ALL;default:throw new Error("Unknown boolean operation "+i)}}function vb(i,t){xn===void 0&&(xn=ye.init_csg());let e=Tm(i),r=ye.csg_calc_topological(xn,e,i.length,Am(t));ye._free(e);let o=6,n=ye.HEAPU32.subarray(r>>2,(r>>2)+o),s=n.subarray(3,3+3),a=0,c=ye.HEAPU32[n[a]>>2],p=new Float32Array(ye.HEAPF32.subarray(c>>2,(c>>2)+s[a]));a++;let l=ye.HEAPU32[n[a]>>2],u=new Uint32Array(ye.HEAPU32.subarray(l>>2,(l>>2)+s[a]));a++;let d=ye.HEAPU32[n[a]>>2],m=new Uint8Array(ye.HEAPU32.subarray(d>>2,(d>>2)+s[a]));return ye.free_mesh_data(r),{positions:p,indices:u,verticesPerFace:m}}function bb(i,t,e,r){xn===void 0&&(xn=ye.init_csg());let o=Tm(i),n=ye.csg_calc(xn,o,i.length,r,Am(t));ye._free(o);let s=5,a=ye.HEAPU32.subarray(n>>2,(n>>2)+s),c=a.subarray(2,2+3),p=0,l=ye.HEAPU32[a[p]>>2],u=ye.HEAPF32.subarray(l>>2,(l>>2)+c[p]);p++;let d=ye.HEAPU32[a[p]>>2],m=ye.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let f=c[p];e.setAttribute("position",new ci.Float32BufferAttribute(u,3)),e.setAttribute("normal",new ci.Float32BufferAttribute(m,3));let h=ye.HEAPF32.subarray((n>>2)+5,(n>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new ci.Sphere),e.boundingSphere.center.set(h[0],h[1],h[2]),e.boundingSphere.radius=(h[3]**2+h[4]**2+h[5]**2)**.5,e.userData.parameters={width:h[3]*2,height:h[4]*2,depth:h[5]*2},ye.free_mesh_data(n),f}function _b(i,t){if(ye===void 0)return-1;let e,r,o;if(t&&i.userData.positions!==void 0){let h=i.userData;o=h.verticesPerFace.length,e=h.positions,r=Array(h.verticesPerFace.reduce((g,x)=>g+x,0)+o);for(let g=0,x=0,v=0;g<h.verticesPerFace.length;g++){r[v++]=h.verticesPerFace[g];for(let A=0;A<h.verticesPerFace[g];A++)r[v++]=h.indices[x++]}}else({positions:e,faceIndices:r,nFaces:o}=xb(i,t));let n=e.length,s=r.length,a=e.length,c=r.length,p=a*Float32Array.BYTES_PER_ELEMENT+c*Uint32Array.BYTES_PER_ELEMENT,l=a*Float32Array.BYTES_PER_ELEMENT,u=c*Uint32Array.BYTES_PER_ELEMENT,d=ye._malloc(p),m=new Float32Array(ye.HEAPF32.buffer,d,a),f=new Uint32Array(ye.HEAPU32.buffer,d+l,c);return m.set(e,0),f.set(r,0),ye.get_csg_mesh(d,n,d+l,s,o)}function Sb(i,t){ye.transform_csg_mesh(i,t.elements)}function wb(i){ye.free_csg_mesh(i)}var Rl={ConeGeometry:fd,CubeGeometry:hd,CylinderGeometry:dd,DodecahedronGeometry:yd,EllipseGeometry:Vd,HelixGeometry:jd,IcosahedronGeometry:Wd,LatheGeometry:qd,NonParametricGeometry:$d,PolygonGeometry:Xd,PyramidGeometry:Yd,RectangleGeometry:Kd,SphereGeometry:Zd,PlaneGeometry:em,BackdropGeometry:tm,StarGeometry:rm,TextFrameGeometry:sa,TorusGeometry:nm,TorusKnotGeometry:sm,TriangleGeometry:am,VectorGeometry:vt},li=i=>Rl[i.type].create(i);var ui=require("three");var Cm=new ui.Matrix4;var ha=class extends it{constructor(e=new ui.BufferGeometry,r){super(e,r);this.booleanOp=2;this.phongAngle=35;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.isBooleanMesh=!0,this.castShadow=!0,this.receiveShadow=!0,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}reInit(){this.isBooleanMesh=!0,this.meshSetAddresses=[],this.needsTransformForDownstream=!1,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}recomputeBoolean(e){if(this.booleanMeshSetAddress!==-1)return;for(let o=0;o<this.children.length;o++){let n=this.children[o];mr(n)&&n.recomputeBoolean(e===!0)}this.meshSetAddresses=[];for(let o=0;o<this.children.length;o++){let n=this.children[o];if(mm(n)&&n.booleanExclude===!1&&n.geometry.attributes.position?.count>0&&n.geometry.drawRange.count>0){if(n.booleanMeshSetAddress===-1){if(n.booleanMeshSetAddress=Yt.getMeshSet(n.geometry,e===!0),n.booleanMeshSetAddress===-1)return;Yt.transformMeshSet(n.booleanMeshSetAddress,n.matrix),n.booleanMatrixInvOld.copy(n.matrix).invert(),n.booleanWasTransformed=!1}else mr(n)&&n.needsTransformForDownstream===!0?(Yt.transformMeshSet(n.booleanMeshSetAddress,n.matrix),n.needsTransformForDownstream=!1):n.booleanWasTransformed===!0&&(Cm.multiplyMatrices(n.matrix,n.booleanMatrixInvOld),Yt.transformMeshSet(n.booleanMeshSetAddress,Cm),n.booleanMatrixInvOld.copy(n.matrix).invert(),n.booleanWasTransformed=!1);this.meshSetAddresses.push(n.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setDrawRange(0,0);return}if(e===!0)return Yt.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let r=this.geometry;r.dispose(),this.geometry=new ui.BufferGeometry,this.geometry.userData=r.userData,this.geometry.boundingSphere=r.boundingSphere;try{this.booleanMeshSetAddress=Yt.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(o){this.booleanMeshSetAddress=0,console.error(o)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,eo(this),to(this)}updateGeometry(e){let r=e.parameters;r.operation!==void 0&&(this.booleanOp=r.operation),r.phongAngle!==void 0&&(this.phongAngle=r.phongAngle),this.invalidateDownstreamBooleanData().recomputeBoolean()}};var Ge=require("three");var Nm=require("three"),yr=i=>{var t;return t=class extends i{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new Nm.BoxBufferGeometry(30,30,30),t};var ut=require("three");var ft=require("three"),ga=new ft.Ray,jl=new ft.Sphere,Om=new ft.Matrix4,xr=(i,t,e,r,o=!1)=>{let n=t,s=i.matrixWorld;if(n.boundingSphere===null&&n.computeBoundingSphere(),jl.copy(n.boundingSphere),jl.applyMatrix4(s),e.ray.intersectsSphere(jl)===!1||(Om.copy(s).invert(),ga.copy(e.ray).applyMatrix4(Om),n.boundingBox!==null&&ga.intersectsBox(n.boundingBox)===!1))return;let a,c,p,l,u=n.index,d=n.attributes.position,m=n.drawRange,f,h;if(o===!1){let x=Math.max(0,m.start),v=Math.min(u.count,m.start+m.count);for(f=x,h=v;f<h;f+=3)if(c=u.getX(f),p=u.getX(f+1),l=u.getX(f+2),a=g(i,e,ga,d,c,p,l),a){a.faceIndex=Math.floor(f/3),r.push(a);return}}else{let v=n.attributes.position,A=new ft.Vector3,_=new ft.Vector3,b=new ft.Vector3,D=new ft.Vector3,S=2,I=1/((i.scale.x+i.scale.y+i.scale.z)/3),T=I*I,L=Math.max(0,m.start),C=Math.min(v.count,m.start+m.count);for(let N=L,j=C-1;N<j;N+=S){if(A.fromBufferAttribute(v,N),_.fromBufferAttribute(v,N+1),ga.distanceSqToSegment(A,_,D,b)>T)continue;D.applyMatrix4(i.matrixWorld);let ne=e.ray.origin.distanceTo(D);ne<e.near||ne>e.far||r.push({distance:ne,point:b.clone().applyMatrix4(i.matrixWorld),object:i})}}function g(x,v,A,_,b,D,S){let y=new ft.Vector3,I=new ft.Vector3,T=new ft.Vector3,L=new ft.Vector3,C=new ft.Vector3;if(y.fromBufferAttribute(_,b),I.fromBufferAttribute(_,D),T.fromBufferAttribute(_,S),A.intersectTriangle(y,I,T,!1,L)===null)return null;C.copy(L),C.applyMatrix4(x.matrixWorld);let j=v.ray.origin.distanceTo(C);return j<v.near||j>v.far?null:{faceIndex:1,distance:j,point:C.clone(),object:x}}};var ya=new ut.Vector3,Wt=new ut.Camera,Hl=class extends ut.LineSegments{constructor(e){let r=new ut.BufferGeometry,o=new ut.LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),n=[],s=[],a={},c=new ut.Color(15711266),p=new ut.Color(15711266),l=new ut.Color(2857471);u("n1","n2",c),u("n2","n4",c),u("n4","n3",c),u("n3","n1",c),u("f1","f2",c),u("f2","f4",c),u("f4","f3",c),u("f3","f1",c),u("n1","f1",c),u("n2","f2",c),u("n3","f3",c),u("n4","f4",c),u("p","n1",p),u("p","n2",p),u("p","n3",p),u("p","n4",p),u("u1","u2",l),u("u2","u3",l),u("u3","u1",l);function u(m,f,h){d(m,h),d(f,h)}function d(m,f){n.push(0,0,0),s.push(f.r,f.g,f.b),a[m]===void 0&&(a[m]=[]),a[m].push(n.length/3-1)}r.setAttribute("position",new ut.Float32BufferAttribute(n,3)),r.setAttribute("color",new ut.Float32BufferAttribute(s,3));super(r,o);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=a,this.update()}update(){let e=this.geometry,r=this.pointMap,o=!0;Wt.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let n=1,s=1,a=o?.8:1e-4;Kt("n1",r,e,Wt,-n,-s,a),Kt("n2",r,e,Wt,n,-s,a),Kt("n3",r,e,Wt,-n,s,a),Kt("n4",r,e,Wt,n,s,a);let c=a;Kt("f1",r,e,Wt,-n,-s,c),Kt("f2",r,e,Wt,n,-s,c),Kt("f3",r,e,Wt,-n,s,c),Kt("f4",r,e,Wt,n,s,c);let p=c,l=.5;Kt("u1",r,e,Wt,n*.7*l,s*1.1,p),Kt("u2",r,e,Wt,-n*.7*l,s*1.1,p),Kt("u3",r,e,Wt,0,s*(1.1+.9*l),p),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function Kt(i,t,e,r,o,n,s){ya.set(o,n,s).unproject(r);let a=t[i];if(a!==void 0){let c=e.getAttribute("position");for(let p=0,l=a.length;p<l;p++)c.setXYZ(a[p],ya.x,ya.y,ya.z)}}var xa=class extends yr(Hl){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){xr(this.object,this.geometry,e,r,!0)}};var Lm=require("three");var vn=class extends yr(Lm.DirectionalLightHelper){constructor(e,r=15,o=10066329){super(e,r,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,r){xr(this.object,vn.geometryHelper,e,r)}};var Im=require("three");var bn=class extends yr(Im.AxesHelper){constructor(e,r=15){super(r);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,r){xr(this.object,bn.geometryHelper,e,r)}update(){}};var Pm=require("three");var _n=class extends yr(Pm.PointLightHelper){constructor(e,r=15,o=6710886){super(e,r,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,r){xr(this.object,_n.geometryHelper,e,r)}};var ba=require("three");var va=class extends yr(ba.SpotLightHelper){constructor(e,r=6710886){super(e,r);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,r){xr(this.object,va.geometryHelper,e,r)}update(){if(this.object!==void 0){let e=va._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 n=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let s=0,a=this.cone.material.length;s<a;s++)this.cone.material[s].color.set(n);else this.cone.material.color.set(n)}}},pi=va;pi._vector=new ba.Vector3;var vr=(i,t)=>class extends i{constructor(){super(...arguments);this.objectHelper=new t(this)}get geometryHelper(){return t.geometryHelper}raycast(o,n){this.objectHelper.raycast(o,n)}fromLightState(o,n){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let s=this;o.color!==void 0&&(s.color=Ye(o.color,n)),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 Sn=new Ge.Vector3,Wl=new Ge.Vector3,Rr=class extends vr(jt(Ge.Camera),xa){constructor(e=window.innerWidth,r=window.innerHeight,o=45,n,s=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=fo.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=r,this.orthoCamera=new Ge.OrthographicCamera(e*-.5,e*.5,r*.5,r*-.5,n??-5e4,s),this.perspCamera=new Ge.PerspectiveCamera(o,e/r,n??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 Rr().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(Sn),this.targetOffset=Sn.distanceTo(e)}getTarget(e=new Ge.Vector3){return this.getWorldDirection(Wl),this.getWorldPosition(Sn),Wl.multiplyScalar(this.targetOffset),e.copy(Sn).add(Wl),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(Sn),Sn.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new Ge.Quaternion),r=new Ge.Vector3(0,0,1).applyQuaternion(e),o=new Ge.Vector3().copy(Ge.Object3D.DefaultUp);this.isUpVectorFlipped&&o.negate(),o.applyQuaternion(e);let n=new Ge.Vector3().copy(Ge.Object3D.DefaultUp).projectOnPlane(r),s=new Ge.Vector3().crossVectors(n,o).dot(r)>=0?1:-1;this.angleOffsetFromUp=n.angleTo(o)*s}getViewFrontToObject(e){let r=e.getWorldPosition(new Ge.Vector3),n=e.getWorldDirection(new Ge.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().add(n),target:r}}getViewToObject(e){let r=e.getWorldPosition(new Ge.Vector3),n=this.getWorldDirection(new Ge.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().sub(n),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,n,s,a){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,r,o,n,s,a):this.orthoCamera.setViewOffset(e,r,o,n,s,a)}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 Ko(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.up!==void 0&&this.up.fromArray(e.up),e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateProjectionMatrix(),this}toState(e){return{...super.toState(e),...this.toCameraState(e),type:this.cameraType}}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};var Mm=require("three");var So=class extends vr(jt(Mm.Group),bn){constructor(){super(...arguments);this.objectType="EmptyObject"}static createFromState(e,r){let o=new So().fromState(r);return o.uuid=e,o.objectHelper.update(),o}};var wo=require("three");var wn=class extends vr(jt(wo.DirectionalLight),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;let o=this.shadow.camera;o.top=1250,o.bottom=-1250,o.right=1250,o.left=-1250,o.near=-1e4,o.far=2500;let n=new wo.CameraHelper(this.shadow.camera);n.visible=!1,this._gizmos.shadowmap=n,this.update()}static createFromState(e,r,o){let n=new wn().fromState(r,o);return n.uuid=e,n}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof wo.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof wo.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof wo.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromDirectionalLightState(e,r){let o=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;return super.fromLightState(e,r),e.size!==void 0&&um(this,e.size),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),o&&this.update(),this}fromState(e,r){return super.fromState(e),this.fromDirectionalLightState(e,r),this}};var ht=require("three");var Tn=class extends vr(jt(ht.PointLight),_n){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;let o=this.shadow.camera;o.fov=90,o.aspect=1,o.near=100,o.far=2500;let n=new ht.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new ht.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z),a=new ht.Box3(n,s),c=new ht.Box3Helper(a,new ht.Color(16755200));c.visible=!1,this._gizmos.shadowmap=c,this.update()}static createFromState(e,r,o){let n=new Tn().fromState(r,o);return n.uuid=e,n}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof ht.Box3Helper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof ht.Box3Helper&&(r.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let r=this._gizmos[e];if(r instanceof ht.Box3Helper){let o=this.shadow.camera,n=new ht.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new ht.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z);r.box.set(n,s),r.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromPointLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromPointLightState(e,r),this}};var Nt=require("three");var Dm=new Nt.Vector3,Bm=new Nt.Vector3,Em=new Nt.Quaternion,An=class extends vr(jt(Nt.SpotLight),pi){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;let o=this.shadow.camera;o.fov=Nt.MathUtils.RAD2DEG*2*this.angle,o.aspect=1,o.near=100,o.far=2500;let n=new Nt.CameraHelper(this.shadow.camera);n.visible=!1,this._gizmos.shadowmap=n,this.update()}static createFromState(e,r,o){let n=new An().fromState(r,o);return n.uuid=e,n}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Nt.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Nt.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Nt.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Bm.setFromMatrixPosition(this.matrixWorld),Em.setFromRotationMatrix(this.matrixWorld),Dm.copy(this.up).applyQuaternion(Em).negate().multiplyScalar(this.distance),this.target.position.copy(Bm).add(Dm),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 Se=require("three");var Gm=require("three"),st=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=Gm.MathUtils.generateUUID(),this.type=t,this.name=""}analyze(t,e){e=e??{},t.analyzing=!0,this.build(t.addFlow(e.slot,e.cache,e.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,e,r){return r=r??{},this.analyze(t,r),this.flow(t,e,r)}flow(t,e,r){r=r??{},t.addFlow(r.slot,r.cache,r.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,r){e=e??this.getType(t,e);let o=t.getNodeData(r??this);return t.analyzing&&this.appendDepsNode(t,o,e),t.nodes.indexOf(this)===-1&&t.nodes.push(this),this.updateFrame!==void 0&&t.updaters.indexOf(this)===-1&&t.updaters.push(this),this.generate(t,e,r)}updateFrame(t){}generateReadonly(t,e,r,o,n,s){return""}generate(t,e,r,o,n){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 st&&(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 Rm=require("three"),le=class extends st{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,n){if(r=r??this.getType(e),this.getShared(e,r)){let s=this.getUnique(e,r);s&&this.uuid===void 0&&(this.uuid=Rm.MathUtils.generateUUID()),o=e.getUUID(o??this.getUUID(),!s);let a=e.getNodeData(o),c=a.output||this.getType(e);if(e.analyzing)return(a.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,a,r),this.generate(e,r,o)):super.build(e,r,o);if(s)return a.name=a.name||super.build(e,r,o),a.name;if(!this.getLabel()&&(!this.getShared(e,c)||e.context.ignoreCache||a.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,a.output,n);let l=this.generate(e,c,o);return e.addNodeCode(p+" = "+l+";"),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,n,s){return this.getShared(e,r)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,n??this.getType(e),s,this.getLabel()).name}};var Ie=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,n,s,a){o=e.getUUID(o??this.getUUID()),n=n??this.getType(e);let c=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,r,o,n,s,a):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(n,this,s,a,this.getLabel())),e.format(c.vertex.name,n,r)):(c.fragment||(c.fragment=e.createFragmentUniform(n,this,s,a,this.getLabel())),e.format(c.fragment.name,n,r))}};var Ne=class extends Ie{constructor(e=0,r,o,n){super("c");this.nodeType="Color";this.value=e instanceof ct?e:new ct(e||0,r,o,n)}setRGBA(e){this.value.setRGBA(e.r,e.g,e.b,e.a)}generate(e,r,o,n,s,a){o=e.getUUID(o??this.getUUID()),n=n??this.getType(e);let c=e.getNodeData(o),p=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let l=this.alpha.build(e,"f");e.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${l};`)}return p?this.generateReadonly(e,r,o,n,s,a):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(n,this,s,a,this.getLabel())),e.format(c.vertex.name,n,r)):(c.fragment||(c.fragment=e.createFragmentUniform(n,this,s,a,this.getLabel())),e.format(c.fragment.name,n,r))}generateReadonly(e,r,o,n,s,a){return e.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",n,r)}};var X=class extends Ie{constructor(e){super("f");this.nodeType="Float";this.value=e??0}generateReadonly(e,r,o,n,s,a){return e.format(this.value+(this.value%1?"":".0"),n,r)}};var xe=class extends Ie{constructor(e){super("i");this.nodeType="Int";this.value=Math.floor(e??0)}generateReadonly(e,r,o,n,s,a){return e.format(this.value.toString(),n,r)}};var _a=require("three");var oo=class extends st{constructor(){super("basic");this.nodeType="Basic";this.color=new Ne(5855577),this.shadingAlpha=new X(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(_a.UniformsUtils.merge([_a.UniformsLib.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
1
+ var Ff=Object.create;var Hi=Object.defineProperty;var Vf=Object.getOwnPropertyDescriptor;var zf=Object.getOwnPropertyNames;var Uf=Object.getPrototypeOf,kf=Object.prototype.hasOwnProperty;var gc=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),yc=(i,t)=>{for(var e in t)Hi(i,e,{get:t[e],enumerable:!0})},xc=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of zf(t))!kf.call(i,o)&&o!==e&&Hi(i,o,{get:()=>t[o],enumerable:!(r=Vf(t,o))||r.enumerable});return i};var vc=(i,t,e)=>(e=i!=null?Ff(Uf(i)):{},xc(t||!i||!i.__esModule?Hi(e,"default",{value:i,enumerable:!0}):e,i)),jf=i=>xc(Hi({},"__esModule",{value:!0}),i);var ef=gc(Da=>{(function(){"use strict";var i=function(){this.init()};i.prototype={init:function(){var l=this||t;return l._counter=1e3,l._html5AudioPool=[],l.html5PoolSize=10,l._codecs={},l._howls=[],l._muted=!1,l._volume=1,l._canPlayEvent="canplaythrough",l._navigator=typeof window<"u"&&window.navigator?window.navigator:null,l.masterGain=null,l.noAudio=!1,l.usingWebAudio=!0,l.autoSuspend=!0,l.ctx=null,l.autoUnlock=!0,l._setup(),l},volume:function(l){var u=this||t;if(l=parseFloat(l),u.ctx||p(),typeof l<"u"&&l>=0&&l<=1){if(u._volume=l,u._muted)return u;u.usingWebAudio&&u.masterGain.gain.setValueAtTime(l,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var m=u._howls[d]._getSoundIds(),f=0;f<m.length;f++){var h=u._howls[d]._soundById(m[f]);h&&h._node&&(h._node.volume=h._volume*l)}return u}return u._volume},mute:function(l){var u=this||t;u.ctx||p(),u._muted=l,u.usingWebAudio&&u.masterGain.gain.setValueAtTime(l?0:u._volume,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var m=u._howls[d]._getSoundIds(),f=0;f<m.length;f++){var h=u._howls[d]._soundById(m[f]);h&&h._node&&(h._node.muted=l?!0:h._muted)}return u},stop:function(){for(var l=this||t,u=0;u<l._howls.length;u++)l._howls[u].stop();return l},unload:function(){for(var l=this||t,u=l._howls.length-1;u>=0;u--)l._howls[u].unload();return l.usingWebAudio&&l.ctx&&typeof l.ctx.close<"u"&&(l.ctx.close(),l.ctx=null,p()),l},codecs:function(l){return(this||t)._codecs[l.replace(/^x-/,"")]},_setup:function(){var l=this||t;if(l.state=l.ctx&&l.ctx.state||"suspended",l._autoSuspend(),!l.usingWebAudio)if(typeof Audio<"u")try{var u=new Audio;typeof u.oncanplaythrough>"u"&&(l._canPlayEvent="canplay")}catch{l.noAudio=!0}else l.noAudio=!0;try{var u=new Audio;u.muted&&(l.noAudio=!0)}catch{}return l.noAudio||l._setupCodecs(),l},_setupCodecs:function(){var l=this||t,u=null;try{u=typeof Audio<"u"?new Audio:null}catch{return l}if(!u||typeof u.canPlayType!="function")return l;var d=u.canPlayType("audio/mpeg;").replace(/^no$/,""),m=l._navigator?l._navigator.userAgent:"",f=m.match(/OPR\/([0-6].)/g),h=f&&parseInt(f[0].split("/")[1],10)<33,g=m.indexOf("Safari")!==-1&&m.indexOf("Chrome")===-1,x=m.match(/Version\/(.*?) /),v=g&&x&&parseInt(x[1],10)<15;return l._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:!!(!v&&u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!v&&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$/,"")},l},_unlockAudio:function(){var l=this||t;if(!(l._audioUnlocked||!l.ctx)){l._audioUnlocked=!1,l.autoUnlock=!1,!l._mobileUnloaded&&l.ctx.sampleRate!==44100&&(l._mobileUnloaded=!0,l.unload()),l._scratchBuffer=l.ctx.createBuffer(1,1,22050);var u=function(d){for(;l._html5AudioPool.length<l.html5PoolSize;)try{var m=new Audio;m._unlocked=!0,l._releaseHtml5Audio(m)}catch{l.noAudio=!0;break}for(var f=0;f<l._howls.length;f++)if(!l._howls[f]._webAudio)for(var h=l._howls[f]._getSoundIds(),g=0;g<h.length;g++){var x=l._howls[f]._soundById(h[g]);x&&x._node&&!x._node._unlocked&&(x._node._unlocked=!0,x._node.load())}l._autoResume();var v=l.ctx.createBufferSource();v.buffer=l._scratchBuffer,v.connect(l.ctx.destination),typeof v.start>"u"?v.noteOn(0):v.start(0),typeof l.ctx.resume=="function"&&l.ctx.resume(),v.onended=function(){v.disconnect(0),l._audioUnlocked=!0,document.removeEventListener("touchstart",u,!0),document.removeEventListener("touchend",u,!0),document.removeEventListener("click",u,!0),document.removeEventListener("keydown",u,!0);for(var A=0;A<l._howls.length;A++)l._howls[A]._emit("unlock")}};return document.addEventListener("touchstart",u,!0),document.addEventListener("touchend",u,!0),document.addEventListener("click",u,!0),document.addEventListener("keydown",u,!0),l}},_obtainHtml5Audio:function(){var l=this||t;if(l._html5AudioPool.length)return l._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(l){var u=this||t;return l._unlocked&&u._html5AudioPool.push(l),u},_autoSuspend:function(){var l=this;if(!(!l.autoSuspend||!l.ctx||typeof l.ctx.suspend>"u"||!t.usingWebAudio)){for(var u=0;u<l._howls.length;u++)if(l._howls[u]._webAudio){for(var d=0;d<l._howls[u]._sounds.length;d++)if(!l._howls[u]._sounds[d]._paused)return l}return l._suspendTimer&&clearTimeout(l._suspendTimer),l._suspendTimer=setTimeout(function(){if(!!l.autoSuspend){l._suspendTimer=null,l.state="suspending";var m=function(){l.state="suspended",l._resumeAfterSuspend&&(delete l._resumeAfterSuspend,l._autoResume())};l.ctx.suspend().then(m,m)}},3e4),l}},_autoResume:function(){var l=this;if(!(!l.ctx||typeof l.ctx.resume>"u"||!t.usingWebAudio))return l.state==="running"&&l.ctx.state!=="interrupted"&&l._suspendTimer?(clearTimeout(l._suspendTimer),l._suspendTimer=null):l.state==="suspended"||l.state==="running"&&l.ctx.state==="interrupted"?(l.ctx.resume().then(function(){l.state="running";for(var u=0;u<l._howls.length;u++)l._howls[u]._emit("resume")}),l._suspendTimer&&(clearTimeout(l._suspendTimer),l._suspendTimer=null)):l.state==="suspending"&&(l._resumeAfterSuspend=!0),l}};var t=new i,e=function(l){var u=this;if(!l.src||l.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}u.init(l)};e.prototype={init:function(l){var u=this;return t.ctx||p(),u._autoplay=l.autoplay||!1,u._format=typeof l.format!="string"?l.format:[l.format],u._html5=l.html5||!1,u._muted=l.mute||!1,u._loop=l.loop||!1,u._pool=l.pool||5,u._preload=typeof l.preload=="boolean"||l.preload==="metadata"?l.preload:!0,u._rate=l.rate||1,u._sprite=l.sprite||{},u._src=typeof l.src!="string"?l.src:[l.src],u._volume=l.volume!==void 0?l.volume:1,u._xhr={method:l.xhr&&l.xhr.method?l.xhr.method:"GET",headers:l.xhr&&l.xhr.headers?l.xhr.headers:null,withCredentials:l.xhr&&l.xhr.withCredentials?l.xhr.withCredentials:!1},u._duration=0,u._state="unloaded",u._sounds=[],u._endTimers={},u._queue=[],u._playLock=!1,u._onend=l.onend?[{fn:l.onend}]:[],u._onfade=l.onfade?[{fn:l.onfade}]:[],u._onload=l.onload?[{fn:l.onload}]:[],u._onloaderror=l.onloaderror?[{fn:l.onloaderror}]:[],u._onplayerror=l.onplayerror?[{fn:l.onplayerror}]:[],u._onpause=l.onpause?[{fn:l.onpause}]:[],u._onplay=l.onplay?[{fn:l.onplay}]:[],u._onstop=l.onstop?[{fn:l.onstop}]:[],u._onmute=l.onmute?[{fn:l.onmute}]:[],u._onvolume=l.onvolume?[{fn:l.onvolume}]:[],u._onrate=l.onrate?[{fn:l.onrate}]:[],u._onseek=l.onseek?[{fn:l.onseek}]:[],u._onunlock=l.onunlock?[{fn:l.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 l=this,u=null;if(t.noAudio){l._emit("loaderror",null,"No audio support.");return}typeof l._src=="string"&&(l._src=[l._src]);for(var d=0;d<l._src.length;d++){var m,f;if(l._format&&l._format[d])m=l._format[d];else{if(f=l._src[d],typeof f!="string"){l._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}m=/^data:audio\/([^;,]+);/i.exec(f),m||(m=/\.([^.]+)$/.exec(f.split("?",1)[0])),m&&(m=m[1].toLowerCase())}if(m||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),m&&t.codecs(m)){u=l._src[d];break}}if(!u){l._emit("loaderror",null,"No codec support for selected audio sources.");return}return l._src=u,l._state="loading",window.location.protocol==="https:"&&u.slice(0,5)==="http:"&&(l._html5=!0,l._webAudio=!1),new r(l),l._webAudio&&n(l),l},play:function(l,u){var d=this,m=null;if(typeof l=="number")m=l,l=null;else{if(typeof l=="string"&&d._state==="loaded"&&!d._sprite[l])return null;if(typeof l>"u"&&(l="__default",!d._playLock)){for(var f=0,h=0;h<d._sounds.length;h++)d._sounds[h]._paused&&!d._sounds[h]._ended&&(f++,m=d._sounds[h]._id);f===1?l=null:m=null}}var g=m?d._soundById(m):d._inactiveSound();if(!g)return null;if(m&&!l&&(l=g._sprite||"__default"),d._state!=="loaded"){g._sprite=l,g._ended=!1;var x=g._id;return d._queue.push({event:"play",action:function(){d.play(x)}}),x}if(m&&!g._paused)return u||d._loadQueue("play"),g._id;d._webAudio&&t._autoResume();var v=Math.max(0,g._seek>0?g._seek:d._sprite[l][0]/1e3),A=Math.max(0,(d._sprite[l][0]+d._sprite[l][1])/1e3-v),_=A*1e3/Math.abs(g._rate),b=d._sprite[l][0]/1e3,D=(d._sprite[l][0]+d._sprite[l][1])/1e3;g._sprite=l,g._ended=!1;var S=function(){g._paused=!1,g._seek=v,g._start=b,g._stop=D,g._loop=!!(g._loop||d._sprite[l][2])};if(v>=D){d._ended(g);return}var y=g._node;if(d._webAudio){var I=function(){d._playLock=!1,S(),d._refreshBuffer(g);var N=g._muted||d._muted?0:g._volume;y.gain.setValueAtTime(N,t.ctx.currentTime),g._playStart=t.ctx.currentTime,typeof y.bufferSource.start>"u"?g._loop?y.bufferSource.noteGrainOn(0,v,86400):y.bufferSource.noteGrainOn(0,v,A):g._loop?y.bufferSource.start(0,v,86400):y.bufferSource.start(0,v,A),_!==1/0&&(d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),_)),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 T=function(){y.currentTime=v,y.muted=g._muted||d._muted||t._muted||y.muted,y.volume=g._volume*t.volume(),y.playbackRate=g._rate;try{var N=y.play();if(N&&typeof Promise<"u"&&(N instanceof Promise||typeof N.then=="function")?(d._playLock=!0,S(),N.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,S(),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}l!=="__default"||g._loop?d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),_):(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(j){d._emit("playerror",g._id,j)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=d._src,y.load());var L=window&&window.ejecta||!y.readyState&&t._navigator.isCocoonJS;if(y.readyState>=3||L)T();else{d._playLock=!0,d._state="loading";var C=function(){d._state="loaded",T(),y.removeEventListener(t._canPlayEvent,C,!1)};y.addEventListener(t._canPlayEvent,C,!1),d._clearTimer(g._id)}}return g._id},pause:function(l){var u=this;if(u._state!=="loaded"||u._playLock)return u._queue.push({event:"pause",action:function(){u.pause(l)}}),u;for(var d=u._getSoundIds(l),m=0;m<d.length;m++){u._clearTimer(d[m]);var f=u._soundById(d[m]);if(f&&!f._paused&&(f._seek=u.seek(d[m]),f._rateSeek=0,f._paused=!0,u._stopFade(d[m]),f._node))if(u._webAudio){if(!f._node.bufferSource)continue;typeof f._node.bufferSource.stop>"u"?f._node.bufferSource.noteOff(0):f._node.bufferSource.stop(0),u._cleanBuffer(f._node)}else(!isNaN(f._node.duration)||f._node.duration===1/0)&&f._node.pause();arguments[1]||u._emit("pause",f?f._id:null)}return u},stop:function(l,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"stop",action:function(){d.stop(l)}}),d;for(var m=d._getSoundIds(l),f=0;f<m.length;f++){d._clearTimer(m[f]);var h=d._soundById(m[f]);h&&(h._seek=h._start||0,h._rateSeek=0,h._paused=!0,h._ended=!0,d._stopFade(m[f]),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(l,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"mute",action:function(){d.mute(l,u)}}),d;if(typeof u>"u")if(typeof l=="boolean")d._muted=l;else return d._muted;for(var m=d._getSoundIds(u),f=0;f<m.length;f++){var h=d._soundById(m[f]);h&&(h._muted=l,h._interval&&d._stopFade(h._id),d._webAudio&&h._node?h._node.gain.setValueAtTime(l?0:h._volume,t.ctx.currentTime):h._node&&(h._node.muted=t._muted?!0:l),d._emit("mute",h._id))}return d},volume:function(){var l=this,u=arguments,d,m;if(u.length===0)return l._volume;if(u.length===1||u.length===2&&typeof u[1]>"u"){var f=l._getSoundIds(),h=f.indexOf(u[0]);h>=0?m=parseInt(u[0],10):d=parseFloat(u[0])}else u.length>=2&&(d=parseFloat(u[0]),m=parseInt(u[1],10));var g;if(typeof d<"u"&&d>=0&&d<=1){if(l._state!=="loaded"||l._playLock)return l._queue.push({event:"volume",action:function(){l.volume.apply(l,u)}}),l;typeof m>"u"&&(l._volume=d),m=l._getSoundIds(m);for(var x=0;x<m.length;x++)g=l._soundById(m[x]),g&&(g._volume=d,u[2]||l._stopFade(m[x]),l._webAudio&&g._node&&!g._muted?g._node.gain.setValueAtTime(d,t.ctx.currentTime):g._node&&!g._muted&&(g._node.volume=d*t.volume()),l._emit("volume",g._id))}else return g=m?l._soundById(m):l._sounds[0],g?g._volume:0;return l},fade:function(l,u,d,m){var f=this;if(f._state!=="loaded"||f._playLock)return f._queue.push({event:"fade",action:function(){f.fade(l,u,d,m)}}),f;l=Math.min(Math.max(0,parseFloat(l)),1),u=Math.min(Math.max(0,parseFloat(u)),1),d=parseFloat(d),f.volume(l,m);for(var h=f._getSoundIds(m),g=0;g<h.length;g++){var x=f._soundById(h[g]);if(x){if(m||f._stopFade(h[g]),f._webAudio&&!x._muted){var v=t.ctx.currentTime,A=v+d/1e3;x._volume=l,x._node.gain.setValueAtTime(l,v),x._node.gain.linearRampToValueAtTime(u,A)}f._startFadeInterval(x,l,u,d,h[g],typeof m>"u")}}return f},_startFadeInterval:function(l,u,d,m,f,h){var g=this,x=u,v=d-u,A=Math.abs(v/.01),_=Math.max(4,A>0?m/A:m),b=Date.now();l._fadeTo=d,l._interval=setInterval(function(){var D=(Date.now()-b)/m;b=Date.now(),x+=v*D,x=Math.round(x*100)/100,v<0?x=Math.max(d,x):x=Math.min(d,x),g._webAudio?l._volume=x:g.volume(x,l._id,!0),h&&(g._volume=x),(d<u&&x<=d||d>u&&x>=d)&&(clearInterval(l._interval),l._interval=null,l._fadeTo=null,g.volume(d,l._id),g._emit("fade",l._id))},_)},_stopFade:function(l){var u=this,d=u._soundById(l);return d&&d._interval&&(u._webAudio&&d._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(d._interval),d._interval=null,u.volume(d._fadeTo,l),d._fadeTo=null,u._emit("fade",l)),u},loop:function(){var l=this,u=arguments,d,m,f;if(u.length===0)return l._loop;if(u.length===1)if(typeof u[0]=="boolean")d=u[0],l._loop=d;else return f=l._soundById(parseInt(u[0],10)),f?f._loop:!1;else u.length===2&&(d=u[0],m=parseInt(u[1],10));for(var h=l._getSoundIds(m),g=0;g<h.length;g++)f=l._soundById(h[g]),f&&(f._loop=d,l._webAudio&&f._node&&f._node.bufferSource&&(f._node.bufferSource.loop=d,d&&(f._node.bufferSource.loopStart=f._start||0,f._node.bufferSource.loopEnd=f._stop,l.playing(h[g])&&(l.pause(h[g],!0),l.play(h[g],!0)))));return l},rate:function(){var l=this,u=arguments,d,m;if(u.length===0)m=l._sounds[0]._id;else if(u.length===1){var f=l._getSoundIds(),h=f.indexOf(u[0]);h>=0?m=parseInt(u[0],10):d=parseFloat(u[0])}else u.length===2&&(d=parseFloat(u[0]),m=parseInt(u[1],10));var g;if(typeof d=="number"){if(l._state!=="loaded"||l._playLock)return l._queue.push({event:"rate",action:function(){l.rate.apply(l,u)}}),l;typeof m>"u"&&(l._rate=d),m=l._getSoundIds(m);for(var x=0;x<m.length;x++)if(g=l._soundById(m[x]),g){l.playing(m[x])&&(g._rateSeek=l.seek(m[x]),g._playStart=l._webAudio?t.ctx.currentTime:g._playStart),g._rate=d,l._webAudio&&g._node&&g._node.bufferSource?g._node.bufferSource.playbackRate.setValueAtTime(d,t.ctx.currentTime):g._node&&(g._node.playbackRate=d);var v=l.seek(m[x]),A=(l._sprite[g._sprite][0]+l._sprite[g._sprite][1])/1e3-v,_=A*1e3/Math.abs(g._rate);(l._endTimers[m[x]]||!g._paused)&&(l._clearTimer(m[x]),l._endTimers[m[x]]=setTimeout(l._ended.bind(l,g),_)),l._emit("rate",g._id)}}else return g=l._soundById(m),g?g._rate:l._rate;return l},seek:function(){var l=this,u=arguments,d,m;if(u.length===0)l._sounds.length&&(m=l._sounds[0]._id);else if(u.length===1){var f=l._getSoundIds(),h=f.indexOf(u[0]);h>=0?m=parseInt(u[0],10):l._sounds.length&&(m=l._sounds[0]._id,d=parseFloat(u[0]))}else u.length===2&&(d=parseFloat(u[0]),m=parseInt(u[1],10));if(typeof m>"u")return 0;if(typeof d=="number"&&(l._state!=="loaded"||l._playLock))return l._queue.push({event:"seek",action:function(){l.seek.apply(l,u)}}),l;var g=l._soundById(m);if(g)if(typeof d=="number"&&d>=0){var x=l.playing(m);x&&l.pause(m,!0),g._seek=d,g._ended=!1,l._clearTimer(m),!l._webAudio&&g._node&&!isNaN(g._node.duration)&&(g._node.currentTime=d);var v=function(){x&&l.play(m,!0),l._emit("seek",m)};if(x&&!l._webAudio){var A=function(){l._playLock?setTimeout(A,0):v()};setTimeout(A,0)}else v()}else if(l._webAudio){var _=l.playing(m)?t.ctx.currentTime-g._playStart:0,b=g._rateSeek?g._rateSeek-g._seek:0;return g._seek+(b+_*Math.abs(g._rate))}else return g._node.currentTime;return l},playing:function(l){var u=this;if(typeof l=="number"){var d=u._soundById(l);return d?!d._paused:!1}for(var m=0;m<u._sounds.length;m++)if(!u._sounds[m]._paused)return!0;return!1},duration:function(l){var u=this,d=u._duration,m=u._soundById(l);return m&&(d=u._sprite[m._sprite][1]/1e3),d},state:function(){return this._state},unload:function(){for(var l=this,u=l._sounds,d=0;d<u.length;d++)u[d]._paused||l.stop(u[d]._id),l._webAudio||(l._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,l._clearTimer(u[d]._id);var m=t._howls.indexOf(l);m>=0&&t._howls.splice(m,1);var f=!0;for(d=0;d<t._howls.length;d++)if(t._howls[d]._src===l._src||l._src.indexOf(t._howls[d]._src)>=0){f=!1;break}return o&&f&&delete o[l._src],t.noAudio=!1,l._state="unloaded",l._sounds=[],l=null,null},on:function(l,u,d,m){var f=this,h=f["_on"+l];return typeof u=="function"&&h.push(m?{id:d,fn:u,once:m}:{id:d,fn:u}),f},off:function(l,u,d){var m=this,f=m["_on"+l],h=0;if(typeof u=="number"&&(d=u,u=null),u||d)for(h=0;h<f.length;h++){var g=d===f[h].id;if(u===f[h].fn&&g||!u&&g){f.splice(h,1);break}}else if(l)m["_on"+l]=[];else{var x=Object.keys(m);for(h=0;h<x.length;h++)x[h].indexOf("_on")===0&&Array.isArray(m[x[h]])&&(m[x[h]]=[])}return m},once:function(l,u,d){var m=this;return m.on(l,u,d,1),m},_emit:function(l,u,d){for(var m=this,f=m["_on"+l],h=f.length-1;h>=0;h--)(!f[h].id||f[h].id===u||l==="load")&&(setTimeout(function(g){g.call(this,u,d)}.bind(m,f[h].fn),0),f[h].once&&m.off(l,f[h].fn,f[h].id));return m._loadQueue(l),m},_loadQueue:function(l){var u=this;if(u._queue.length>0){var d=u._queue[0];d.event===l&&(u._queue.shift(),u._loadQueue()),l||d.action()}return u},_ended:function(l){var u=this,d=l._sprite;if(!u._webAudio&&l._node&&!l._node.paused&&!l._node.ended&&l._node.currentTime<l._stop)return setTimeout(u._ended.bind(u,l),100),u;var m=!!(l._loop||u._sprite[d][2]);if(u._emit("end",l._id),!u._webAudio&&m&&u.stop(l._id,!0).play(l._id),u._webAudio&&m){u._emit("play",l._id),l._seek=l._start||0,l._rateSeek=0,l._playStart=t.ctx.currentTime;var f=(l._stop-l._start)*1e3/Math.abs(l._rate);u._endTimers[l._id]=setTimeout(u._ended.bind(u,l),f)}return u._webAudio&&!m&&(l._paused=!0,l._ended=!0,l._seek=l._start||0,l._rateSeek=0,u._clearTimer(l._id),u._cleanBuffer(l._node),t._autoSuspend()),!u._webAudio&&!m&&u.stop(l._id,!0),u},_clearTimer:function(l){var u=this;if(u._endTimers[l]){if(typeof u._endTimers[l]!="function")clearTimeout(u._endTimers[l]);else{var d=u._soundById(l);d&&d._node&&d._node.removeEventListener("ended",u._endTimers[l],!1)}delete u._endTimers[l]}return u},_soundById:function(l){for(var u=this,d=0;d<u._sounds.length;d++)if(l===u._sounds[d]._id)return u._sounds[d];return null},_inactiveSound:function(){var l=this;l._drain();for(var u=0;u<l._sounds.length;u++)if(l._sounds[u]._ended)return l._sounds[u].reset();return new r(l)},_drain:function(){var l=this,u=l._pool,d=0,m=0;if(!(l._sounds.length<u)){for(m=0;m<l._sounds.length;m++)l._sounds[m]._ended&&d++;for(m=l._sounds.length-1;m>=0;m--){if(d<=u)return;l._sounds[m]._ended&&(l._webAudio&&l._sounds[m]._node&&l._sounds[m]._node.disconnect(0),l._sounds.splice(m,1),d--)}}},_getSoundIds:function(l){var u=this;if(typeof l>"u"){for(var d=[],m=0;m<u._sounds.length;m++)d.push(u._sounds[m]._id);return d}else return[l]},_refreshBuffer:function(l){var u=this;return l._node.bufferSource=t.ctx.createBufferSource(),l._node.bufferSource.buffer=o[u._src],l._panner?l._node.bufferSource.connect(l._panner):l._node.bufferSource.connect(l._node),l._node.bufferSource.loop=l._loop,l._loop&&(l._node.bufferSource.loopStart=l._start||0,l._node.bufferSource.loopEnd=l._stop||0),l._node.bufferSource.playbackRate.setValueAtTime(l._rate,t.ctx.currentTime),u},_cleanBuffer:function(l){var u=this,d=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&l.bufferSource&&(l.bufferSource.onended=null,l.bufferSource.disconnect(0),d))try{l.bufferSource.buffer=t._scratchBuffer}catch{}return l.bufferSource=null,u},_clearSound:function(l){var u=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);u||(l.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(l){this._parent=l,this.init()};r.prototype={init:function(){var l=this,u=l._parent;return l._muted=u._muted,l._loop=u._loop,l._volume=u._volume,l._rate=u._rate,l._seek=0,l._paused=!0,l._ended=!0,l._sprite="__default",l._id=++t._counter,u._sounds.push(l),l.create(),l},create:function(){var l=this,u=l._parent,d=t._muted||l._muted||l._parent._muted?0:l._volume;return u._webAudio?(l._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),l._node.gain.setValueAtTime(d,t.ctx.currentTime),l._node.paused=!0,l._node.connect(t.masterGain)):t.noAudio||(l._node=t._obtainHtml5Audio(),l._errorFn=l._errorListener.bind(l),l._node.addEventListener("error",l._errorFn,!1),l._loadFn=l._loadListener.bind(l),l._node.addEventListener(t._canPlayEvent,l._loadFn,!1),l._endFn=l._endListener.bind(l),l._node.addEventListener("ended",l._endFn,!1),l._node.src=u._src,l._node.preload=u._preload===!0?"auto":u._preload,l._node.volume=d*t.volume(),l._node.load()),l},reset:function(){var l=this,u=l._parent;return l._muted=u._muted,l._loop=u._loop,l._volume=u._volume,l._rate=u._rate,l._seek=0,l._rateSeek=0,l._paused=!0,l._ended=!0,l._sprite="__default",l._id=++t._counter,l},_errorListener:function(){var l=this;l._parent._emit("loaderror",l._id,l._node.error?l._node.error.code:0),l._node.removeEventListener("error",l._errorFn,!1)},_loadListener:function(){var l=this,u=l._parent;u._duration=Math.ceil(l._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()),l._node.removeEventListener(t._canPlayEvent,l._loadFn,!1)},_endListener:function(){var l=this,u=l._parent;u._duration===1/0&&(u._duration=Math.ceil(l._node.duration*10)/10,u._sprite.__default[1]===1/0&&(u._sprite.__default[1]=u._duration*1e3),u._ended(l)),l._node.removeEventListener("ended",l._endFn,!1)}};var o={},n=function(l){var u=l._src;if(o[u]){l._duration=o[u].duration,c(l);return}if(/^data:[^;]+;base64,/.test(u)){for(var d=atob(u.split(",")[1]),m=new Uint8Array(d.length),f=0;f<d.length;++f)m[f]=d.charCodeAt(f);a(m.buffer,l)}else{var h=new XMLHttpRequest;h.open(l._xhr.method,u,!0),h.withCredentials=l._xhr.withCredentials,h.responseType="arraybuffer",l._xhr.headers&&Object.keys(l._xhr.headers).forEach(function(g){h.setRequestHeader(g,l._xhr.headers[g])}),h.onload=function(){var g=(h.status+"")[0];if(g!=="0"&&g!=="2"&&g!=="3"){l._emit("loaderror",null,"Failed loading audio file with status: "+h.status+".");return}a(h.response,l)},h.onerror=function(){l._webAudio&&(l._html5=!0,l._webAudio=!1,l._sounds=[],delete o[u],l.load())},s(h)}},s=function(l){try{l.send()}catch{l.onerror()}},a=function(l,u){var d=function(){u._emit("loaderror",null,"Decoding audio data failed.")},m=function(f){f&&u._sounds.length>0?(o[u._src]=f,c(u,f)):d()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(l).then(m).catch(d):t.ctx.decodeAudioData(l,m,d)},c=function(l,u){u&&!l._duration&&(l._duration=u.duration),Object.keys(l._sprite).length===0&&(l._sprite={__default:[0,l._duration*1e3]}),l._state!=="loaded"&&(l._state="loaded",l._emit("load"),l._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 l=/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(l&&d&&d<9){var m=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!m&&(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 Da<"u"&&(Da.Howler=t,Da.Howl=e),typeof global<"u"?(global.HowlerGlobal=i,global.Howler=t,global.Howl=e,global.Sound=r):typeof window<"u"&&(window.HowlerGlobal=i,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,n,s){var a=this;if(!a.ctx||!a.ctx.listener)return a;var c=a._orientation;if(e=typeof e!="number"?c[1]:e,r=typeof r!="number"?c[2]:r,o=typeof o!="number"?c[3]:o,n=typeof n!="number"?c[4]:n,s=typeof s!="number"?c[5]:s,typeof t=="number")a._orientation=[t,e,r,o,n,s],typeof a.ctx.listener.forwardX<"u"?(a.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(s,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(t,e,r,o,n,s);else return c;return a},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 n=r._getSoundIds(e),s=0;s<n.length;s++){var a=r._soundById(n[s]);if(a)if(typeof t=="number")a._stereo=t,a._pos=[t,0,0],a._node&&(a._pannerAttr.panningModel="equalpower",(!a._panner||!a._panner.pan)&&i(a,o),o==="spatial"?typeof a._panner.positionX<"u"?(a._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),a._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),a._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):a._panner.setPosition(t,0,0):a._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),r._emit("stereo",a._id);else return a._stereo}return r},Howl.prototype.pos=function(t,e,r,o){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"pos",action:function(){n.pos(t,e,r,o)}}),n;if(e=typeof e!="number"?0:e,r=typeof r!="number"?-.5:r,typeof o>"u")if(typeof t=="number")n._pos=[t,e,r];else return n._pos;for(var s=n._getSoundIds(o),a=0;a<s.length;a++){var c=n._soundById(s[a]);if(c)if(typeof t=="number")c._pos=[t,e,r],c._node&&((!c._panner||c._panner.pan)&&i(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)),n._emit("pos",c._id);else return c._pos}return n},Howl.prototype.orientation=function(t,e,r,o){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"orientation",action:function(){n.orientation(t,e,r,o)}}),n;if(e=typeof e!="number"?n._orientation[1]:e,r=typeof r!="number"?n._orientation[2]:r,typeof o>"u")if(typeof t=="number")n._orientation=[t,e,r];else return n._orientation;for(var s=n._getSoundIds(o),a=0;a<s.length;a++){var c=n._soundById(s[a]);if(c)if(typeof t=="number")c._orientation=[t,e,r],c._node&&(c._panner||(c._pos||(c._pos=n._pos||[0,0,-.5]),i(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)),n._emit("orientation",c._id);else return c._orientation}return n},Howl.prototype.pannerAttr=function(){var t=this,e=arguments,r,o,n;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 n=t._soundById(parseInt(e[0],10)),n?n._pannerAttr:t._pannerAttr;else e.length===2&&(r=e[0],o=parseInt(e[1],10));for(var s=t._getSoundIds(o),a=0;a<s.length;a++)if(n=t._soundById(s[a]),n){var c=n._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=n._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):(n._pos||(n._pos=t._pos||[0,0,-.5]),i(n,"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 i=function(t,e){e=e||"spatial",e==="spatial"?(t._panner=Howler.ctx.createPanner(),t._panner.coneInnerAngle=t._pannerAttr.coneInnerAngle,t._panner.coneOuterAngle=t._pannerAttr.coneOuterAngle,t._panner.coneOuterGain=t._pannerAttr.coneOuterGain,t._panner.distanceModel=t._pannerAttr.distanceModel,t._panner.maxDistance=t._pannerAttr.maxDistance,t._panner.refDistance=t._pannerAttr.refDistance,t._panner.rolloffFactor=t._pannerAttr.rolloffFactor,t._panner.panningModel=t._pannerAttr.panningModel,typeof t._panner.positionX<"u"?(t._panner.positionX.setValueAtTime(t._pos[0],Howler.ctx.currentTime),t._panner.positionY.setValueAtTime(t._pos[1],Howler.ctx.currentTime),t._panner.positionZ.setValueAtTime(t._pos[2],Howler.ctx.currentTime)):t._panner.setPosition(t._pos[0],t._pos[1],t._pos[2]),typeof t._panner.orientationX<"u"?(t._panner.orientationX.setValueAtTime(t._orientation[0],Howler.ctx.currentTime),t._panner.orientationY.setValueAtTime(t._orientation[1],Howler.ctx.currentTime),t._panner.orientationZ.setValueAtTime(t._orientation[2],Howler.ctx.currentTime)):t._panner.setOrientation(t._orientation[0],t._orientation[1],t._orientation[2])):(t._panner=Howler.ctx.createStereoPanner(),t._panner.pan.setValueAtTime(t._stereo,Howler.ctx.currentTime)),t._panner.connect(t._node),t._paused||t._parent.pause(t._id,!0).play(t._id,!0)}})()});var lf=gc((Ba,af)=>{(function(i,t){typeof Ba=="object"&&typeof af<"u"?t(Ba):typeof define=="function"&&define.amd?define(["exports"],t):t((i=typeof globalThis<"u"?globalThis:i||self).SVDJS={})})(Ba,function(i){"use strict";i.SVD=function(t,e,r,o,n){if(e=e===void 0||e,r=r===void 0||r,n=1e-64/(o=o||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var s,a,c,p,l,u,d,m,f,h,g,x,v=t[0].length,A=t.length;if(A<v)throw new TypeError("Invalid matrix: m < n");for(var _=[],b=[],D=[],S=e==="f"?A:v,y=h=d=0;y<A;y++)b[y]=new Array(S).fill(0);for(y=0;y<v;y++)D[y]=new Array(v).fill(0);var I,T=new Array(v).fill(0);for(y=0;y<A;y++)for(s=0;s<v;s++)b[y][s]=t[y][s];for(y=0;y<v;y++){for(_[y]=d,f=0,c=y+1,s=y;s<A;s++)f+=Math.pow(b[s][y],2);if(f<n)d=0;else for(m=(u=b[y][y])*(d=u<0?Math.sqrt(f):-Math.sqrt(f))-f,b[y][y]=u-d,s=c;s<v;s++){for(f=0,a=y;a<A;a++)f+=b[a][y]*b[a][s];for(u=f/m,a=y;a<A;a++)b[a][s]=b[a][s]+u*b[a][y]}for(T[y]=d,f=0,s=c;s<v;s++)f+=Math.pow(b[y][s],2);if(f<n)d=0;else{for(m=(u=b[y][y+1])*(d=u<0?Math.sqrt(f):-Math.sqrt(f))-f,b[y][y+1]=u-d,s=c;s<v;s++)_[s]=b[y][s]/m;for(s=c;s<A;s++){for(f=0,a=c;a<v;a++)f+=b[s][a]*b[y][a];for(a=c;a<v;a++)b[s][a]=b[s][a]+f*_[a]}}h<(g=Math.abs(T[y])+Math.abs(_[y]))&&(h=g)}if(r)for(y=v-1;0<=y;y--){if(d!==0){for(m=b[y][y+1]*d,s=c;s<v;s++)D[s][y]=b[y][s]/m;for(s=c;s<v;s++){for(f=0,a=c;a<v;a++)f+=b[y][a]*D[a][s];for(a=c;a<v;a++)D[a][s]=D[a][s]+f*D[a][y]}}for(s=c;s<v;s++)D[y][s]=0,D[s][y]=0;D[y][y]=1,d=_[y],c=y}if(e){if(e==="f")for(y=v;y<A;y++){for(s=v;s<A;s++)b[y][s]=0;b[y][y]=1}for(y=v-1;0<=y;y--){for(c=y+1,d=T[y],s=c;s<S;s++)b[y][s]=0;if(d!==0){for(m=b[y][y]*d,s=c;s<S;s++){for(f=0,a=c;a<A;a++)f+=b[a][y]*b[a][s];for(u=f/m,a=y;a<A;a++)b[a][s]=b[a][s]+u*b[a][y]}for(s=y;s<A;s++)b[s][y]=b[s][y]/d}else for(s=y;s<A;s++)b[s][y]=0;b[y][y]=b[y][y]+1}}for(o*=h,a=v-1;0<=a;a--)for(var L=0;L<50;L++){for(I=!1,c=a;0<=c;c--){if(Math.abs(_[c])<=o){I=!0;break}if(Math.abs(T[c-1])<=o)break}if(!I){for(l=0,p=c-(f=1),y=c;y<a+1&&(u=f*_[y],_[y]=l*_[y],!(Math.abs(u)<=o));y++)if(d=T[y],T[y]=Math.sqrt(u*u+d*d),l=d/(m=T[y]),f=-u/m,e)for(s=0;s<A;s++)g=b[s][p],x=b[s][y],b[s][p]=g*l+x*f,b[s][y]=-g*f+x*l}if(x=T[a],c===a){if(x<0&&(T[a]=-x,r))for(s=0;s<v;s++)D[s][a]=-D[s][a];break}for(h=T[c],u=(((g=T[a-1])-x)*(g+x)+((d=_[a-1])-(m=_[a]))*(d+m))/(2*m*g),d=Math.sqrt(u*u+1),u=((h-x)*(h+x)+m*(g/(u<0?u-d:u+d)-m))/h,y=c+(f=l=1);y<a+1;y++){if(d=_[y],g=T[y],m=f*d,d*=l,x=Math.sqrt(u*u+m*m),u=h*(l=u/(_[y-1]=x))+d*(f=m/x),d=-h*f+d*l,m=g*f,g*=l,r)for(s=0;s<v;s++)h=D[s][y-1],x=D[s][y],D[s][y-1]=h*l+x*f,D[s][y]=-h*f+x*l;if(x=Math.sqrt(u*u+m*m),u=(l=u/(T[y-1]=x))*d+(f=m/x)*g,h=-f*d+l*g,e)for(s=0;s<A;s++)g=b[s][y-1],x=b[s][y],b[s][y-1]=g*l+x*f,b[s][y]=-g*f+x*l}_[c]=0,_[a]=u,T[a]=h}for(y=0;y<v;y++)T[y]<o&&(T[y]=0);return{u:b,q:T,v:D}},i.VERSION="1.1.1",Object.defineProperty(i,"__esModule",{value:!0})})});var u_={};yc(u_,{default:()=>Ea});module.exports=jf(u_);var Ga=require("three");function Wi(i,t){return Object.setPrototypeOf(i,t),i}function bc(i){return Array.isArray(i)?i:[i]}var Hf=typeof global=="object"&&global&&global.Object===Object&&global,qi=Hf;var Wf=typeof self=="object"&&self&&self.Object===Object&&self,qf=qi||Wf||Function("return this")(),$e=qf;var $f=$e.Symbol,yt=$f;var _c=Object.prototype,Xf=_c.hasOwnProperty,Yf=_c.toString,Vn=yt?yt.toStringTag:void 0;function Kf(i){var t=Xf.call(i,Vn),e=i[Vn];try{i[Vn]=void 0;var r=!0}catch{}var o=Yf.call(i);return r&&(t?i[Vn]=e:delete i[Vn]),o}var Sc=Kf;var Qf=Object.prototype,Zf=Qf.toString;function Jf(i){return Zf.call(i)}var wc=Jf;var eh="[object Null]",th="[object Undefined]",Tc=yt?yt.toStringTag:void 0;function rh(i){return i==null?i===void 0?th:eh:Tc&&Tc in Object(i)?Sc(i):wc(i)}var Dt=rh;function oh(i){return i!=null&&typeof i=="object"}var dt=oh;var nh="[object Symbol]";function ih(i){return typeof i=="symbol"||dt(i)&&Dt(i)==nh}var Mo=ih;function sh(i,t){for(var e=-1,r=i==null?0:i.length,o=Array(r);++e<r;)o[e]=t(i[e],e,i);return o}var $i=sh;var ah=Array.isArray,Xe=ah;var lh=1/0,Ac=yt?yt.prototype:void 0,Cc=Ac?Ac.toString:void 0;function Nc(i){if(typeof i=="string")return i;if(Xe(i))return $i(i,Nc)+"";if(Mo(i))return Cc?Cc.call(i):"";var t=i+"";return t=="0"&&1/i==-lh?"-0":t}var Oc=Nc;function ch(i){var t=typeof i;return i!=null&&(t=="object"||t=="function")}var mt=ch;function uh(i){return i}var Xi=uh;var ph="[object AsyncFunction]",dh="[object Function]",mh="[object GeneratorFunction]",fh="[object Proxy]";function hh(i){if(!mt(i))return!1;var t=Dt(i);return t==dh||t==mh||t==ph||t==fh}var Do=hh;var gh=$e["__core-js_shared__"],Yi=gh;var Lc=function(){var i=/[^.]+$/.exec(Yi&&Yi.keys&&Yi.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function yh(i){return!!Lc&&Lc in i}var Ic=yh;var xh=Function.prototype,vh=xh.toString;function bh(i){if(i!=null){try{return vh.call(i)}catch{}try{return i+""}catch{}}return""}var Or=bh;var _h=/[\\^$.*+?()[\]{}|]/g,Sh=/^\[object .+?Constructor\]$/,wh=Function.prototype,Th=Object.prototype,Ah=wh.toString,Ch=Th.hasOwnProperty,Nh=RegExp("^"+Ah.call(Ch).replace(_h,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Oh(i){if(!mt(i)||Ic(i))return!1;var t=Do(i)?Nh:Sh;return t.test(Or(i))}var Pc=Oh;function Lh(i,t){return i?.[t]}var Mc=Lh;function Ih(i,t){var e=Mc(i,t);return Pc(e)?e:void 0}var Tt=Ih;var Ph=Tt($e,"WeakMap"),Ki=Ph;var Dc=Object.create,Mh=function(){function i(){}return function(t){if(!mt(t))return{};if(Dc)return Dc(t);i.prototype=t;var e=new i;return i.prototype=void 0,e}}(),Bc=Mh;function Dh(i,t,e){switch(e.length){case 0:return i.call(t);case 1:return i.call(t,e[0]);case 2:return i.call(t,e[0],e[1]);case 3:return i.call(t,e[0],e[1],e[2])}return i.apply(t,e)}var Ec=Dh;function Bh(i,t){var e=-1,r=i.length;for(t||(t=Array(r));++e<r;)t[e]=i[e];return t}var Qi=Bh;var Eh=800,Gh=16,Rh=Date.now;function Fh(i){var t=0,e=0;return function(){var r=Rh(),o=Gh-(r-e);if(e=r,o>0){if(++t>=Eh)return arguments[0]}else t=0;return i.apply(void 0,arguments)}}var Gc=Fh;function Vh(i){return function(){return i}}var Rc=Vh;var zh=function(){try{var i=Tt(Object,"defineProperty");return i({},"",{}),i}catch{}}(),Bo=zh;var Uh=Bo?function(i,t){return Bo(i,"toString",{configurable:!0,enumerable:!1,value:Rc(t),writable:!0})}:Xi,Fc=Uh;var kh=Gc(Fc),Zi=kh;function jh(i,t){for(var e=-1,r=i==null?0:i.length;++e<r&&t(i[e],e,i)!==!1;);return i}var Vc=jh;var Hh=9007199254740991,Wh=/^(?:0|[1-9]\d*)$/;function qh(i,t){var e=typeof i;return t=t??Hh,!!t&&(e=="number"||e!="symbol"&&Wh.test(i))&&i>-1&&i%1==0&&i<t}var Ji=qh;function $h(i,t,e){t=="__proto__"&&Bo?Bo(i,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):i[t]=e}var Eo=$h;function Xh(i,t){return i===t||i!==i&&t!==t}var Vr=Xh;var Yh=Object.prototype,Kh=Yh.hasOwnProperty;function Qh(i,t,e){var r=i[t];(!(Kh.call(i,t)&&Vr(r,e))||e===void 0&&!(t in i))&&Eo(i,t,e)}var es=Qh;function Zh(i,t,e,r){var o=!e;e||(e={});for(var n=-1,s=t.length;++n<s;){var a=t[n],c=r?r(e[a],i[a],a,e,i):void 0;c===void 0&&(c=i[a]),o?Eo(e,a,c):es(e,a,c)}return e}var zt=Zh;var zc=Math.max;function Jh(i,t,e){return t=zc(t===void 0?i.length-1:t,0),function(){for(var r=arguments,o=-1,n=zc(r.length-t,0),s=Array(n);++o<n;)s[o]=r[t+o];o=-1;for(var a=Array(t+1);++o<t;)a[o]=r[o];return a[t]=e(s),Ec(i,this,a)}}var ts=Jh;function eg(i,t){return Zi(ts(i,t,Xi),i+"")}var Uc=eg;var tg=9007199254740991;function rg(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=tg}var rs=rg;function og(i){return i!=null&&rs(i.length)&&!Do(i)}var zr=og;function ng(i,t,e){if(!mt(e))return!1;var r=typeof t;return(r=="number"?zr(e)&&Ji(t,e.length):r=="string"&&t in e)?Vr(e[t],i):!1}var kc=ng;function ig(i){return Uc(function(t,e){var r=-1,o=e.length,n=o>1?e[o-1]:void 0,s=o>2?e[2]:void 0;for(n=i.length>3&&typeof n=="function"?(o--,n):void 0,s&&kc(e[0],e[1],s)&&(n=o<3?void 0:n,o=1),t=Object(t);++r<o;){var a=e[r];a&&i(t,a,r,n)}return t})}var jc=ig;var sg=Object.prototype;function ag(i){var t=i&&i.constructor,e=typeof t=="function"&&t.prototype||sg;return i===e}var Go=ag;function lg(i,t){for(var e=-1,r=Array(i);++e<i;)r[e]=t(e);return r}var Hc=lg;var cg="[object Arguments]";function ug(i){return dt(i)&&Dt(i)==cg}var Fa=ug;var Wc=Object.prototype,pg=Wc.hasOwnProperty,dg=Wc.propertyIsEnumerable,mg=Fa(function(){return arguments}())?Fa:function(i){return dt(i)&&pg.call(i,"callee")&&!dg.call(i,"callee")},uo=mg;function fg(){return!1}var qc=fg;var Yc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$c=Yc&&typeof module=="object"&&module&&!module.nodeType&&module,hg=$c&&$c.exports===Yc,Xc=hg?$e.Buffer:void 0,gg=Xc?Xc.isBuffer:void 0,yg=gg||qc,Ro=yg;var xg="[object Arguments]",vg="[object Array]",bg="[object Boolean]",_g="[object Date]",Sg="[object Error]",wg="[object Function]",Tg="[object Map]",Ag="[object Number]",Cg="[object Object]",Ng="[object RegExp]",Og="[object Set]",Lg="[object String]",Ig="[object WeakMap]",Pg="[object ArrayBuffer]",Mg="[object DataView]",Dg="[object Float32Array]",Bg="[object Float64Array]",Eg="[object Int8Array]",Gg="[object Int16Array]",Rg="[object Int32Array]",Fg="[object Uint8Array]",Vg="[object Uint8ClampedArray]",zg="[object Uint16Array]",Ug="[object Uint32Array]",Me={};Me[Dg]=Me[Bg]=Me[Eg]=Me[Gg]=Me[Rg]=Me[Fg]=Me[Vg]=Me[zg]=Me[Ug]=!0;Me[xg]=Me[vg]=Me[Pg]=Me[bg]=Me[Mg]=Me[_g]=Me[Sg]=Me[wg]=Me[Tg]=Me[Ag]=Me[Cg]=Me[Ng]=Me[Og]=Me[Lg]=Me[Ig]=!1;function kg(i){return dt(i)&&rs(i.length)&&!!Me[Dt(i)]}var Kc=kg;function jg(i){return function(t){return i(t)}}var Fo=jg;var Qc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zn=Qc&&typeof module=="object"&&module&&!module.nodeType&&module,Hg=zn&&zn.exports===Qc,Va=Hg&&qi.process,Wg=function(){try{var i=zn&&zn.require&&zn.require("util").types;return i||Va&&Va.binding&&Va.binding("util")}catch{}}(),Lr=Wg;var Zc=Lr&&Lr.isTypedArray,qg=Zc?Fo(Zc):Kc,os=qg;var $g=Object.prototype,Xg=$g.hasOwnProperty;function Yg(i,t){var e=Xe(i),r=!e&&uo(i),o=!e&&!r&&Ro(i),n=!e&&!r&&!o&&os(i),s=e||r||o||n,a=s?Hc(i.length,String):[],c=a.length;for(var p in i)(t||Xg.call(i,p))&&!(s&&(p=="length"||o&&(p=="offset"||p=="parent")||n&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||Ji(p,c)))&&a.push(p);return a}var ns=Yg;function Kg(i,t){return function(e){return i(t(e))}}var is=Kg;var Qg=is(Object.keys,Object),Jc=Qg;var Zg=Object.prototype,Jg=Zg.hasOwnProperty;function ey(i){if(!Go(i))return Jc(i);var t=[];for(var e in Object(i))Jg.call(i,e)&&e!="constructor"&&t.push(e);return t}var eu=ey;function ty(i){return zr(i)?ns(i):eu(i)}var Vo=ty;function ry(i){var t=[];if(i!=null)for(var e in Object(i))t.push(e);return t}var tu=ry;var oy=Object.prototype,ny=oy.hasOwnProperty;function iy(i){if(!mt(i))return tu(i);var t=Go(i),e=[];for(var r in i)r=="constructor"&&(t||!ny.call(i,r))||e.push(r);return e}var ru=iy;function sy(i){return zr(i)?ns(i,!0):ru(i)}var nr=sy;var ay=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ly=/^\w*$/;function cy(i,t){if(Xe(i))return!1;var e=typeof i;return e=="number"||e=="symbol"||e=="boolean"||i==null||Mo(i)?!0:ly.test(i)||!ay.test(i)||t!=null&&i in Object(t)}var ou=cy;var uy=Tt(Object,"create"),Ir=uy;function py(){this.__data__=Ir?Ir(null):{},this.size=0}var nu=py;function dy(i){var t=this.has(i)&&delete this.__data__[i];return this.size-=t?1:0,t}var iu=dy;var my="__lodash_hash_undefined__",fy=Object.prototype,hy=fy.hasOwnProperty;function gy(i){var t=this.__data__;if(Ir){var e=t[i];return e===my?void 0:e}return hy.call(t,i)?t[i]:void 0}var su=gy;var yy=Object.prototype,xy=yy.hasOwnProperty;function vy(i){var t=this.__data__;return Ir?t[i]!==void 0:xy.call(t,i)}var au=vy;var by="__lodash_hash_undefined__";function _y(i,t){var e=this.__data__;return this.size+=this.has(i)?0:1,e[i]=Ir&&t===void 0?by:t,this}var lu=_y;function zo(i){var t=-1,e=i==null?0:i.length;for(this.clear();++t<e;){var r=i[t];this.set(r[0],r[1])}}zo.prototype.clear=nu;zo.prototype.delete=iu;zo.prototype.get=su;zo.prototype.has=au;zo.prototype.set=lu;var za=zo;function Sy(){this.__data__=[],this.size=0}var cu=Sy;function wy(i,t){for(var e=i.length;e--;)if(Vr(i[e][0],t))return e;return-1}var Ur=wy;var Ty=Array.prototype,Ay=Ty.splice;function Cy(i){var t=this.__data__,e=Ur(t,i);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():Ay.call(t,e,1),--this.size,!0}var uu=Cy;function Ny(i){var t=this.__data__,e=Ur(t,i);return e<0?void 0:t[e][1]}var pu=Ny;function Oy(i){return Ur(this.__data__,i)>-1}var du=Oy;function Ly(i,t){var e=this.__data__,r=Ur(e,i);return r<0?(++this.size,e.push([i,t])):e[r][1]=t,this}var mu=Ly;function Uo(i){var t=-1,e=i==null?0:i.length;for(this.clear();++t<e;){var r=i[t];this.set(r[0],r[1])}}Uo.prototype.clear=cu;Uo.prototype.delete=uu;Uo.prototype.get=pu;Uo.prototype.has=du;Uo.prototype.set=mu;var kr=Uo;var Iy=Tt($e,"Map"),jr=Iy;function Py(){this.size=0,this.__data__={hash:new za,map:new(jr||kr),string:new za}}var fu=Py;function My(i){var t=typeof i;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?i!=="__proto__":i===null}var hu=My;function Dy(i,t){var e=i.__data__;return hu(t)?e[typeof t=="string"?"string":"hash"]:e.map}var Hr=Dy;function By(i){var t=Hr(this,i).delete(i);return this.size-=t?1:0,t}var gu=By;function Ey(i){return Hr(this,i).get(i)}var yu=Ey;function Gy(i){return Hr(this,i).has(i)}var xu=Gy;function Ry(i,t){var e=Hr(this,i),r=e.size;return e.set(i,t),this.size+=e.size==r?0:1,this}var vu=Ry;function ko(i){var t=-1,e=i==null?0:i.length;for(this.clear();++t<e;){var r=i[t];this.set(r[0],r[1])}}ko.prototype.clear=fu;ko.prototype.delete=gu;ko.prototype.get=yu;ko.prototype.has=xu;ko.prototype.set=vu;var Un=ko;var Fy="Expected a function";function Ua(i,t){if(typeof i!="function"||t!=null&&typeof t!="function")throw new TypeError(Fy);var e=function(){var r=arguments,o=t?t.apply(this,r):r[0],n=e.cache;if(n.has(o))return n.get(o);var s=i.apply(this,r);return e.cache=n.set(o,s)||n,s};return e.cache=new(Ua.Cache||Un),e}Ua.Cache=Un;var bu=Ua;var Vy=500;function zy(i){var t=bu(i,function(r){return e.size===Vy&&e.clear(),r}),e=t.cache;return t}var _u=zy;var Uy=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ky=/\\(\\)?/g,jy=_u(function(i){var t=[];return i.charCodeAt(0)===46&&t.push(""),i.replace(Uy,function(e,r,o,n){t.push(o?n.replace(ky,"$1"):r||e)}),t}),Su=jy;function Hy(i){return i==null?"":Oc(i)}var wu=Hy;function Wy(i,t){return Xe(i)?i:ou(i,t)?[i]:Su(wu(i))}var jo=Wy;var qy=1/0;function $y(i){if(typeof i=="string"||Mo(i))return i;var t=i+"";return t=="0"&&1/i==-qy?"-0":t}var ss=$y;function Xy(i,t){t=jo(t,i);for(var e=0,r=t.length;i!=null&&e<r;)i=i[ss(t[e++])];return e&&e==r?i:void 0}var Tu=Xy;function Yy(i,t){for(var e=-1,r=t.length,o=i.length;++e<r;)i[o+e]=t[e];return i}var Ho=Yy;var Au=yt?yt.isConcatSpreadable:void 0;function Ky(i){return Xe(i)||uo(i)||!!(Au&&i&&i[Au])}var Cu=Ky;function Nu(i,t,e,r,o){var n=-1,s=i.length;for(e||(e=Cu),o||(o=[]);++n<s;){var a=i[n];t>0&&e(a)?t>1?Nu(a,t-1,e,r,o):Ho(o,a):r||(o[o.length]=a)}return o}var Ou=Nu;function Qy(i){var t=i==null?0:i.length;return t?Ou(i,1):[]}var Lu=Qy;function Zy(i){return Zi(ts(i,void 0,Lu),i+"")}var Iu=Zy;var Jy=is(Object.getPrototypeOf,Object),Wo=Jy;var e0="[object Object]",t0=Function.prototype,r0=Object.prototype,Pu=t0.toString,o0=r0.hasOwnProperty,n0=Pu.call(Object);function i0(i){if(!dt(i)||Dt(i)!=e0)return!1;var t=Wo(i);if(t===null)return!0;var e=o0.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Pu.call(e)==n0}var as=i0;function s0(i,t,e){var r=-1,o=i.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 n=Array(o);++r<o;)n[r]=i[r+t];return n}var Mu=s0;function a0(){this.__data__=new kr,this.size=0}var Du=a0;function l0(i){var t=this.__data__,e=t.delete(i);return this.size=t.size,e}var Bu=l0;function c0(i){return this.__data__.get(i)}var Eu=c0;function u0(i){return this.__data__.has(i)}var Gu=u0;var p0=200;function d0(i,t){var e=this.__data__;if(e instanceof kr){var r=e.__data__;if(!jr||r.length<p0-1)return r.push([i,t]),this.size=++e.size,this;e=this.__data__=new Un(r)}return e.set(i,t),this.size=e.size,this}var Ru=d0;function qo(i){var t=this.__data__=new kr(i);this.size=t.size}qo.prototype.clear=Du;qo.prototype.delete=Bu;qo.prototype.get=Eu;qo.prototype.has=Gu;qo.prototype.set=Ru;var ls=qo;function m0(i,t){return i&&zt(t,Vo(t),i)}var Fu=m0;function f0(i,t){return i&&zt(t,nr(t),i)}var Vu=f0;var ju=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zu=ju&&typeof module=="object"&&module&&!module.nodeType&&module,h0=zu&&zu.exports===ju,Uu=h0?$e.Buffer:void 0,ku=Uu?Uu.allocUnsafe:void 0;function g0(i,t){if(t)return i.slice();var e=i.length,r=ku?ku(e):new i.constructor(e);return i.copy(r),r}var cs=g0;function y0(i,t){for(var e=-1,r=i==null?0:i.length,o=0,n=[];++e<r;){var s=i[e];t(s,e,i)&&(n[o++]=s)}return n}var Hu=y0;function x0(){return[]}var us=x0;var v0=Object.prototype,b0=v0.propertyIsEnumerable,Wu=Object.getOwnPropertySymbols,_0=Wu?function(i){return i==null?[]:(i=Object(i),Hu(Wu(i),function(t){return b0.call(i,t)}))}:us,$o=_0;function S0(i,t){return zt(i,$o(i),t)}var qu=S0;var w0=Object.getOwnPropertySymbols,T0=w0?function(i){for(var t=[];i;)Ho(t,$o(i)),i=Wo(i);return t}:us,ps=T0;function A0(i,t){return zt(i,ps(i),t)}var $u=A0;function C0(i,t,e){var r=t(i);return Xe(i)?r:Ho(r,e(i))}var ds=C0;function N0(i){return ds(i,Vo,$o)}var Xu=N0;function O0(i){return ds(i,nr,ps)}var ms=O0;var L0=Tt($e,"DataView"),fs=L0;var I0=Tt($e,"Promise"),hs=I0;var P0=Tt($e,"Set"),gs=P0;var Yu="[object Map]",M0="[object Object]",Ku="[object Promise]",Qu="[object Set]",Zu="[object WeakMap]",Ju="[object DataView]",D0=Or(fs),B0=Or(jr),E0=Or(hs),G0=Or(gs),R0=Or(Ki),po=Dt;(fs&&po(new fs(new ArrayBuffer(1)))!=Ju||jr&&po(new jr)!=Yu||hs&&po(hs.resolve())!=Ku||gs&&po(new gs)!=Qu||Ki&&po(new Ki)!=Zu)&&(po=function(i){var t=Dt(i),e=t==M0?i.constructor:void 0,r=e?Or(e):"";if(r)switch(r){case D0:return Ju;case B0:return Yu;case E0:return Ku;case G0:return Qu;case R0:return Zu}return t});var Xo=po;var F0=Object.prototype,V0=F0.hasOwnProperty;function z0(i){var t=i.length,e=new i.constructor(t);return t&&typeof i[0]=="string"&&V0.call(i,"index")&&(e.index=i.index,e.input=i.input),e}var ep=z0;var U0=$e.Uint8Array,ka=U0;function k0(i){var t=new i.constructor(i.byteLength);return new ka(t).set(new ka(i)),t}var Yo=k0;function j0(i,t){var e=t?Yo(i.buffer):i.buffer;return new i.constructor(e,i.byteOffset,i.byteLength)}var tp=j0;var H0=/\w*$/;function W0(i){var t=new i.constructor(i.source,H0.exec(i));return t.lastIndex=i.lastIndex,t}var rp=W0;var op=yt?yt.prototype:void 0,np=op?op.valueOf:void 0;function q0(i){return np?Object(np.call(i)):{}}var ip=q0;function $0(i,t){var e=t?Yo(i.buffer):i.buffer;return new i.constructor(e,i.byteOffset,i.length)}var ys=$0;var X0="[object Boolean]",Y0="[object Date]",K0="[object Map]",Q0="[object Number]",Z0="[object RegExp]",J0="[object Set]",ex="[object String]",tx="[object Symbol]",rx="[object ArrayBuffer]",ox="[object DataView]",nx="[object Float32Array]",ix="[object Float64Array]",sx="[object Int8Array]",ax="[object Int16Array]",lx="[object Int32Array]",cx="[object Uint8Array]",ux="[object Uint8ClampedArray]",px="[object Uint16Array]",dx="[object Uint32Array]";function mx(i,t,e){var r=i.constructor;switch(t){case rx:return Yo(i);case X0:case Y0:return new r(+i);case ox:return tp(i,e);case nx:case ix:case sx:case ax:case lx:case cx:case ux:case px:case dx:return ys(i,e);case K0:return new r;case Q0:case ex:return new r(i);case Z0:return rp(i);case J0:return new r;case tx:return ip(i)}}var sp=mx;function fx(i){return typeof i.constructor=="function"&&!Go(i)?Bc(Wo(i)):{}}var xs=fx;var hx="[object Map]";function gx(i){return dt(i)&&Xo(i)==hx}var ap=gx;var lp=Lr&&Lr.isMap,yx=lp?Fo(lp):ap,cp=yx;var xx="[object Set]";function vx(i){return dt(i)&&Xo(i)==xx}var up=vx;var pp=Lr&&Lr.isSet,bx=pp?Fo(pp):up,dp=bx;var _x=1,Sx=2,wx=4,mp="[object Arguments]",Tx="[object Array]",Ax="[object Boolean]",Cx="[object Date]",Nx="[object Error]",fp="[object Function]",Ox="[object GeneratorFunction]",Lx="[object Map]",Ix="[object Number]",hp="[object Object]",Px="[object RegExp]",Mx="[object Set]",Dx="[object String]",Bx="[object Symbol]",Ex="[object WeakMap]",Gx="[object ArrayBuffer]",Rx="[object DataView]",Fx="[object Float32Array]",Vx="[object Float64Array]",zx="[object Int8Array]",Ux="[object Int16Array]",kx="[object Int32Array]",jx="[object Uint8Array]",Hx="[object Uint8ClampedArray]",Wx="[object Uint16Array]",qx="[object Uint32Array]",Pe={};Pe[mp]=Pe[Tx]=Pe[Gx]=Pe[Rx]=Pe[Ax]=Pe[Cx]=Pe[Fx]=Pe[Vx]=Pe[zx]=Pe[Ux]=Pe[kx]=Pe[Lx]=Pe[Ix]=Pe[hp]=Pe[Px]=Pe[Mx]=Pe[Dx]=Pe[Bx]=Pe[jx]=Pe[Hx]=Pe[Wx]=Pe[qx]=!0;Pe[Nx]=Pe[fp]=Pe[Ex]=!1;function vs(i,t,e,r,o,n){var s,a=t&_x,c=t&Sx,p=t&wx;if(e&&(s=o?e(i,r,o,n):e(i)),s!==void 0)return s;if(!mt(i))return i;var l=Xe(i);if(l){if(s=ep(i),!a)return Qi(i,s)}else{var u=Xo(i),d=u==fp||u==Ox;if(Ro(i))return cs(i,a);if(u==hp||u==mp||d&&!o){if(s=c||d?{}:xs(i),!a)return c?$u(i,Vu(s,i)):qu(i,Fu(s,i))}else{if(!Pe[u])return o?i:{};s=sp(i,u,a)}}n||(n=new ls);var m=n.get(i);if(m)return m;n.set(i,s),dp(i)?i.forEach(function(g){s.add(vs(g,t,e,g,i,n))}):cp(i)&&i.forEach(function(g,x){s.set(x,vs(g,t,e,x,i,n))});var f=p?c?ms:Xu:c?nr:Vo,h=l?void 0:f(i);return Vc(h||i,function(g,x){h&&(x=g,g=i[x]),es(s,x,vs(g,t,e,x,i,n))}),s}var bs=vs;var $x=1,Xx=4;function Yx(i){return bs(i,$x|Xx)}var kn=Yx;function Kx(i){return function(t,e,r){for(var o=-1,n=Object(t),s=r(t),a=s.length;a--;){var c=s[i?a:++o];if(e(n[c],c,n)===!1)break}return t}}var gp=Kx;var Qx=gp(),yp=Qx;function Zx(i,t,e){(e!==void 0&&!Vr(i[t],e)||e===void 0&&!(t in i))&&Eo(i,t,e)}var jn=Zx;function Jx(i){return dt(i)&&zr(i)}var xp=Jx;function ev(i,t){if(!(t==="constructor"&&typeof i[t]=="function")&&t!="__proto__")return i[t]}var Hn=ev;function tv(i){return zt(i,nr(i))}var vp=tv;function rv(i,t,e,r,o,n,s){var a=Hn(i,e),c=Hn(t,e),p=s.get(c);if(p){jn(i,e,p);return}var l=n?n(a,c,e+"",i,t,s):void 0,u=l===void 0;if(u){var d=Xe(c),m=!d&&Ro(c),f=!d&&!m&&os(c);l=c,d||m||f?Xe(a)?l=a:xp(a)?l=Qi(a):m?(u=!1,l=cs(c,!0)):f?(u=!1,l=ys(c,!0)):l=[]:as(c)||uo(c)?(l=a,uo(a)?l=vp(a):(!mt(a)||Do(a))&&(l=xs(c))):u=!1}u&&(s.set(c,l),o(l,c,r,n,s),s.delete(c)),jn(i,e,l)}var bp=rv;function _p(i,t,e,r,o){i!==t&&yp(t,function(n,s){if(o||(o=new ls),mt(n))bp(i,t,s,e,_p,r,o);else{var a=r?r(Hn(i,s),n,s+"",i,t,o):void 0;a===void 0&&(a=n),jn(i,s,a)}},nr)}var Sp=_p;function ov(i){var t=i==null?0:i.length;return t?i[t-1]:void 0}var wp=ov;function nv(i,t){return t.length<2?i:Tu(i,Mu(t,0,-1))}var Tp=nv;var iv=jc(function(i,t,e){Sp(i,t,e)}),mo=iv;function sv(i,t){return t=jo(t,i),i=Tp(i,t),i==null||delete i[ss(wp(t))]}var Ap=sv;function av(i){return as(i)?void 0:i}var Cp=av;var lv=1,cv=2,uv=4,pv=Iu(function(i,t){var e={};if(i==null)return e;var r=!1;t=$i(t,function(n){return n=jo(n,i),r||(r=n.length>1),n}),zt(i,ms(i),e),r&&(e=bs(e,lv|cv|uv,Cp));for(var o=t.length;o--;)Ap(e,t[o]);return e}),Ko=pv;var Qo;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(Qo||(Qo={}));var fo;(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(n){return n.type==="PerspectiveCamera"?n.perspective.zoom:n.orthographic.zoom}o.getZoom=r})(fo||(fo={}));var Np;(e=>{function i(r,o){return r[0]===o[0]&&r[1]===o[1]}e.isEqual=i;function t(r,o,n){return[r[0]+(o[0]-r[0])*n,r[1]+(o[1]-r[1])*n]}e.lerp=t})(Np||(Np={}));var Zo;(o=>{function i(n,s){return n[0]===s[0]&&n[1]===s[1]&&n[2]===s[2]}o.isEqual=i;function t(n,s){return[n[0]+s[0],n[1]+s[1],n[2]+s[2]]}o.add=t;function e(n,s){return[n[0]-s[0],n[1]-s[1],n[2]-s[2]]}o.sub=e;function r(n,s,a){return[n[0]+(s[0]-n[0])*a,n[1]+(s[1]-n[1])*a,n[2]+(s[2]-n[2])*a]}o.lerp=r})(Zo||(Zo={}));var Op;(e=>{function i(r,o){return r[0]===o[0]&&r[1]===o[1]&&r[2]===o[2]&&r[3]===o[3]}e.isEqual=i;function t(r,o,n){return[r[0]+(o[0]-r[0])*n,r[1]+(o[1]-r[1])*n,r[2]+(o[2]-r[2])*n,r[3]+(o[3]-r[3])*n]}e.lerp=t})(Op||(Op={}));var Wr;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(n,s){for(let a=0;a<16;a++)if(n[a]!==s[a])return!1;return!0}o.isEqual=t;function e(n){return n??o.identity}o.simplify=e;function r(n,s){let a=s.slice(0);for(var c=0,p=s.length;c<p;c+=3){let l=n[3]*s[c]+n[7]*s[c+1]+n[11]*s[c+2]+n[15];a[c]=(n[0]*s[c]+n[4]*s[c+1]+n[8]*s[c+2]+n[12])/l,a[c+1]=(n[1]*s[c]+n[5]*s[c+1]+n[9]*s[c+2]+n[13])/l,a[c+2]=(n[2]*s[c]+n[6]*s[c+1]+n[10]*s[c+2]+n[14])/l}return a}o.applyMatrix4=r})(Wr||(Wr={}));var Bt;(c=>{c.white={r:1,g:1,b:1},c.red={r:1,g:0,b:0},c.black={r:0,g:0,b:0};function r(p){return{r:Math.round(p.r*255),g:Math.round(p.g*255),b:Math.round(p.b*255),a:1}}c.toRgb255a1=r;function o(p){return{r:p.r,g:p.g,b:p.b}}c.clone=o;function n(p){return p=Math.floor(p),{r:(p>>16&255)/255,g:(p>>8&255)/255,b:(p&255)/255}}c.fromHex=n;function s(p,l){return p.r===l.r&&p.g===l.g&&p.b===l.b}c.equals=s;function a(p,l,u){return{r:p.r+(l.r-p.r)*u,g:p.g+(l.g-p.g)*u,b:p.b+(l.b-p.b)*u}}c.lerp=a})(Bt||(Bt={}));var Et;(s=>{s.white={...Bt.white,a:1};function t(a){return{r:a[0],g:a[1],b:a[2],a:a[3]}}s.from0to1=t;function e(a,c){return{...Bt.fromHex(a),a:c}}s.fromHexAndA=e;function r(a){return{r:Math.round(a.r*255),g:Math.round(a.g*255),b:Math.round(a.b*255),a:a.a}}s.toRgb255a1=r;function o(a,c){return Bt.equals(a,c)&&a.a===c.a}s.equals=o;function n(a,c,p){return{r:a.r+(c.r-a.r)*p,g:a.g+(c.g-a.g)*p,b:a.b+(c.b-a.b)*p,a:a.a+(c.a-a.a)*p}}s.lerp=n})(Et||(Et={}));var _s;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(_s||(_s={}));var Lp;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(Lp||(Lp={}));var Ip;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(Ip||(Ip={}));var Ss;(t=>{function i(e,r=.1){return{type:"radial",hideBase:!1,count:3,radial:{radius:Math.max(e[0],e[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},linear:{scale:[1,1,1],rotation:[0,0,0],position:[e[0]+e[0]*r,0,0]},grid:{count:[2,2,2],size:e.map(o=>o*(1+r)),useCenter:!0}}}t.defaultData=i})(Ss||(Ss={}));var ke=class{modifyById(t,e){let r=this;if(r[t]===void 0)throw new Error("not expected");{let n={...r,[t]:e};return Object.setPrototypeOf(n,ke.prototype),n}}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:n,data:s}=t,a={...e,[n]:s};return Object.setPrototypeOf(a,ke.prototype),{data:a,actual:t,reverse:o}}else if(t.type===2){let{id:r}=t,o=e[r];if(o===void 0)return null;{let n={...e};return Object.setPrototypeOf(n,ke.prototype),delete n[r],{data:n,actual:t,reverse:{type:1,id:r,data:o}}}}throw new Error("illegal arg")}};function Wn(i){if(i.deepFreeze!==void 0){i.deepFreeze(i);return}let t=Object.getOwnPropertyNames(i);for(let e of t){let r=i[e];r&&typeof r=="object"&&Wn(r)}return Object.freeze(i)}function Pp(i,t){let e=0;for(;e<i.length&&e<t.length;){if(i[e]<t[e])return-1;if(i[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==i.length?1:0}var ws=class extends Error{};function ir(i,t,e){if(i===void 0?t===void 0?(i=0,t=10):i=t-10:t===void 0&&(t=i+10),i>t){let n=i;i=t,t=n}let r=[],o=1/(e+1);for(let n=0;n<e;n++){let s=i+(t-i)*(n+.75+Math.random()*.5)*o;r.push(s)}return r}function Ts(i){return i instanceof Uint8Array||i instanceof Uint16Array||i instanceof Uint32Array||i instanceof Int8Array||i instanceof Int16Array||i instanceof Int32Array||i instanceof Float32Array||i instanceof Float64Array}function Mp(){return typeof process<"u"}function Dp(i,t){for(let e of i)t(e.id,e.data),Dp(e.children,t)}function Bp(i,t){t(i.id,i.data);for(let e of i.children)Bp(e,t)}var Ut=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Ut.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Wn(this[e]),e++}fillCaches0(e,r){this.objCaches.set(e.id,e),this.parentCaches.set(e.id,r);for(let o of e.children)this.fillCaches0(o,e.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let e of this)this.fillCaches0(e,null)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}isDescendantOf(e,r){for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}data(e){return this.get(e)?.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){return e===null?this:this.get(e)?.children}traverseFrom(e,r){if(e===null)this.traverse(r);else{let o=this.get(e);o&&Bp(o,r)}}traverse(e){Dp(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 n=this.parent(e),s=this.childrenArray(n),a=s.findIndex(l=>l.id===e);if(a<0)throw new Error("not expected");let c=s[a];return s=[...s],s[a]={...c,data:r},this.modifyArrayBy(n,s)}}modifyArrayBy(e,r){let o=e,n=r;for(;o!==null;){let a=n,c=o;if(o=this.parent(o),o===void 0)throw new Error;n=this.childrenArray(o);let p=n.findIndex(l=>l.id===c);if(p<0)throw new Error;n=[...n],n[p]={...n[p],children:a}}Object.setPrototypeOf(n,Ut.prototype);let s=n;return s.fillCaches(),s}runOp(e){switch(e.type){case 7:return this.addOp(e);case 8:return this.deleteOp(e);case 9:return this.moveOp(e)}}checkDuplicatedIdRec({id:e,children:r}){if(this.get(e)!==void 0)return!0;for(let o of r)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:r,fi:o,id:n,data:s,children:a}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let c=r,p=this.childrenArray(c),l={fi:o,id:n,data:s,children:a};return p=[...p,l],p.sort((d,m)=>d.fi-m.fi),e.localIndex=p.indexOf(l),{data:this.modifyArrayBy(c,p),actual:e,reverse:{type:8,id:n}}}}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 n=this.childrenArray(o),s=n.findIndex(p=>p.id===r);e.localIndex=s,n=[...n];let a=n.splice(s,1)[0];return{data:this.modifyArrayBy(o,n),actual:e,reverse:{type:7,...a,parent:o}}}}moveOp(e){let{parent:r,fi:o,id:n}=e;if(r!==null&&this.get(r)===void 0)return this.deleteOp({type:8,id:n});if(r!==null){let m=r;for(;m!==null;){if(m===void 0)throw new Error;if(m===n)throw new ws("cyclic tree");m=this.parent(m)}}let s=this.parent(n);if(s===void 0)return null;let a=s,c=this.childrenArray(s),p=c.findIndex(m=>m.id===n);c=[...c];let l=c.splice(p,1)[0],u=this.modifyArrayBy(s,c);s=r,c=u.childrenArray(s);let d=l.fi;return l={...l,fi:o},c=[...c,l],c.sort((m,f)=>m.fi-f.fi),e.localIndex=c.indexOf(l),u=u.modifyArrayBy(s,c),{data:u,actual:e,reverse:{type:9,parent:a,fi:d,id:n}}}previous(e,r){if(r===null){let n=this.childrenArray(e);return n.length===0?null:n[n.length-1].id}let o=null;for(let n of this.childrenArray(e)){if(n.id===r)return o;o=n.id}return null}traverseSortNext(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),n=o.findIndex(s=>s.id===e)+1;if(n<o.length)return o[n].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),n=o.findIndex(s=>s.id===e)-1;return n>=0?this.traverseSortPrevious(o[n].id):r}}getAllSorted(e){let r=[];for(let o of e){let n=this.getWithSortKey(o.id);n!==void 0&&r.push({...o,...n})}r.sort((o,n)=>Pp(o.sortKey,n.sortKey));for(let o of r)delete o.sortKey;return r}getWithSortKey(e){var r=e;let o=[],n=this.get(r),s=n;if(n!==void 0){for(;r;)o.splice(0,0,n.fi),r=this.parent(r),r!==null&&(n=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 n=this.childrenArray(e);if(r===null){if(n.length===0)return ir(0,o,o);{let s=n[0].fi;return ir(s-o,s,o)}}else{let s=this.get(r);if(s===void 0||this.parent(r)!==e)throw new Error("illegal args");let a=n.find(c=>c.fi>s.fi);if(a===void 0){let c=n[n.length-1].fi;return ir(c,c+o,o)}else return ir(s.fi,a.fi,o)}}};var As;(t=>{function i(e,r){if(Array.isArray(e)){let o=r.props,n={},s=[...e],a=!1;if(o)for(let c of Object.keys(o)){let p=parseInt(c);if(isNaN(p))throw new Error("wrong index");n[c]=s[p],s[p]=o[c],a=!0}return a?{data:s,actual:r,reverse:{type:0,props:n}}:null}else{let o=r.props,n={},s={...e},a=!1;if(o)for(let c of Object.keys(o)){n[c]=s[c];let p=o[c];p===void 0?delete s[c]:s[c]=p,a=!0}return a?{data:s,actual:r,reverse:{type:0,props:n}}:null}}t.runOp=i})(As||(As={}));var Ee=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Ee.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Wn(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 n=this,s=n.findIndex(p=>p.id===e);if(s<0)throw new Error("not expected");let a=n[s];return n=[...n],n[s]={...a,data:r},this.modifyArrayBy(n)}}modifyArrayBy(e){Object.setPrototypeOf(e,Ee.prototype);let r=e;return Mp()||r.fillCaches(),r}runOp(e){switch(e.type){case 4:return this.addOp(e);case 5:return this.deleteOp(e);case 6:return this.moveOp(e)}}addOp(e){let{fi:r,id:o,data:n}=e,s=this,a={fi:r,id:o,data:n};return s=[...s,a],s.sort((p,l)=>p.fi-l.fi),e.localIndex=s.indexOf(a),{data:this.modifyArrayBy(s),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:r}=e,o=this,n=o.findIndex(c=>c.id===r);if(n===-1)return null;e.localIndex=n,o=[...o];let s=o.splice(n,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...s}}}moveOp(e){let{fi:r,id:o}=e,n=this;n=[...n];let s=n.findIndex(l=>l.id===o);if(s===-1)return null;let a=n[s].fi,c={...n[s],fi:r};return n[s]=c,n.sort((l,u)=>l.fi-u.fi),e.localIndex=n.indexOf(c),{data:this.modifyArrayBy(n),actual:e,reverse:{type:6,fi:a,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 ir(0,r,r);{let n=o[0].fi;return ir(n-r,n,r)}}else{let n=this.get(e);if(n===void 0)throw new Error("illegal args");let s=o.find(a=>a.fi>n.fi);if(s===void 0){let a=o[o.length-1].fi;return ir(a,a+r,r)}else return ir(n.fi,s.fi,r)}}};var Ep=Symbol(),Ns=Symbol(),Jo=class{reportOp(t,e){let r=this;if(e===null)return;r._current=e.data;let o=[];for(;!(r instanceof Cs);){let n=r._path,s=r._current;if(n!==""&&o.splice(0,0,n),r=r._parent,r===null)return;r.update(n,s)}r.push(o,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[Ns];r&&r(),delete this._children[t]}}}},Ha=class extends Jo{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,As.runOp(this._current,t))}},Wa=class extends Jo{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,ke.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Gp={get(i,t){if(t===Ns)return()=>{i._parent=null};if(t===Ep)return i._current;let{_current:e,_children:r}=i;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 n=e[t],s=Os(i,t,n);return s!==n?(r===void 0&&(r={},i._children=r),r[t]=s,s):n},has(i,t){return t in i._current},ownKeys(i){return Reflect.ownKeys(i._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(i){return Object.getPrototypeOf(i._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(i,t){let e=i._current,r=Reflect.getOwnPropertyDescriptor(e,t);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:e[t]}}},dv={...Gp,set(i,t,e){let r={type:0,props:{[t]:Xa(e)??e}};return i.deleteChildren(t),i.runOp(r),!0},deleteProperty(i,t){let e={type:0,props:{[t]:void 0}};return i.deleteChildren(t),i.runOp(e),!0}},mv={...Gp,set(i,t,e){return e===void 0?this.deleteProperty(i,t):(i.deleteChildren(t),i.runOp({type:1,id:t,data:e})),!0},deleteProperty(i,t){return i.runOp({type:2,id:t}),!0}},en=class extends Jo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[Ns]=()=>{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 n=e.get(t)?.data,s=Os(this,t,n);return s!==n?(r===void 0&&(r={},this._children=r),r[t]=s,s):n}add(t,e,r,o,n){this.runOp({type:7,parent:t,fi:e,id:r,data:o,children:n})}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 n=0;n<r.length;n++){let s=r[n];this.add(t,o[n],s.id,s.data,s.children)}}insertBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let n=0;n<r.length;n++){let s=r[n];this.add(t,o[n],s.id,s.data,s.children)}}moveAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let n=0;n<r.length;n++){let s=r[n];this.move(t,o[n],s)}}moveBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let n=0;n<r.length;n++){let s=r[n];this.move(t,o[n],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)}},tn=class extends Jo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[Ns]=()=>{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;t(this.data(this._current[r].id),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 n=e.get(t)?.data,s=Os(this,t,n);return s!==n?(r===void 0&&(r={},this._children=r),r[t]=s,s):n}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 n=e[o];this.add(r[o],n.id,n.data)}}insertBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let n=e[o];this.add(r[o],n.id,n.data)}}moveAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let n=e[o];this.move(r[o],n)}}moveBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let n=e[o];this.move(r[o],n)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function ja(i,t,e){if(i.length>0){let r=i[i.length-1];if(r.type===0&&t.type===0&&Ls.equal(r.path,e)){Object.assign(r.props,t.props);return}}i.push({...t,path:e})}var Cs=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){ja(this.ts,e,t),ja(this.actual,r,t),ja(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Os(i,t,e){return e instanceof Ut?new en(i,t,e):e instanceof Ee?new tn(i,t,e):e instanceof ke?new Proxy(new Wa(i,t,e),mv):e!==null&&typeof e=="object"?Ts(e)?e:new Proxy(new Ha(i,t,e),dv):e}function qa(i){let t=new Cs(i);return[Os(t,"",i),t]}function $a(i,t){let[e,r]=qa(i);return t(e),r.result()}function Xa(i){return i instanceof en||i instanceof tn?i._current:i!==null&&typeof i=="object"?i[Ep]:i}var Ls;(r=>{function i(o,n){if(n.length===o.length)for(var s=0;s<o.length;){if(o[s]!==n[s])return!1;s+=1}else return!1;return!0}r.equal=i;function t(o,n,s){let a=e(s,o);if(a!==void 0&&typeof a=="object"&&a!==null){let c={...n};return Object.keys(a).forEach(p=>{delete c[p]}),c}else return n}r.removeOverridden=t;function e(o,n,s=0){if(n.length<=s)return o;if((o instanceof Ut||o instanceof en)&&typeof n[s]=="string")return e(o.data(n[s]),n,s+1);if((o instanceof Ee||o instanceof tn)&&typeof n[s]=="string")return e(o.data(n[s]),n,s+1);if(typeof n[s]=="number"&&Array.isArray(o))return e(o[n[s]],n,s+1);if(typeof n[s]=="string"&&typeof o=="object")return e(o[n[s]],n,s+1)}r.zoom=e})(Ls||(Ls={}));var Is=class{},qn=class extends Is{constructor(e){super();this.id=e}},$n=class extends Is{constructor(e){super();this.data=e}};var Ka;try{Ka=new TextDecoder}catch{}var te,$r,w=0;var Hp=[],Qa=Hp,Za=0,At={},we,qr,kt=0,sr=0,Gt,Pr,xt=[],Oe,Rp={useRecords:!1,mapsAsObjects:!0},Xn=class{},el=new Xn;el.name="MessagePack 0xC1";var rn=!1,ar=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(te)return Yp(()=>(Ms(),this?this.unpack(t,e):ar.prototype.unpack.call(Rp,t,e)));$r=e>-1?e:t.length,w=0,Za=0,sr=0,qr=null,Qa=Hp,Gt=null,te=t;try{Oe=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw te=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 ar){if(At=this,this.structures)return we=this.structures,Ps();(!we||we.length>0)&&(we=[])}else At=Rp,(!we||we.length>0)&&(we=[]);return Ps()}unpackMultiple(t,e){let r,o=0;try{rn=!0;let n=t.length,s=this?this.unpack(t,n):Es.unpack(t,n);if(e){for(e(s);w<n;)if(o=w,e(Ps())===!1)return}else{for(r=[s];w<n;)o=w,r.push(Ps());return r}}catch(n){throw n.lastPosition=o,n.values=r,n}finally{rn=!1,Ms()}}_mergeStructures(t,e){t=t||[];for(let r=0,o=t.length;r<o;r++){let n=t[r];n&&(n.isShared=!0,r>=32&&(n.highByte=r-32>>5))}t.sharedLength=t.length;for(let r in e||[])if(r>=0){let o=t[r],n=e[r];n&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[r]=o),t[r]=n)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function Ps(){try{if(!At.trusted&&!rn){let t=we.sharedLength||0;t<we.length&&(we.length=t)}let i=Fe();if(w==$r)we.restoreStructures&&Fp(),we=null,te=null,Pr&&(Pr=null);else if(w>$r){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!rn)throw new Error("Data read, but end of buffer not reached");return i}catch(i){throw we.restoreStructures&&Fp(),Ms(),(i instanceof RangeError||i.message.startsWith("Unexpected end of buffer"))&&(i.incomplete=!0),i}}function Fp(){for(let i in we.restoreStructures)we[i]=we.restoreStructures[i];we.restoreStructures=null}function Fe(){let i=te[w++];if(i<160)if(i<128){if(i<64)return i;{let t=we[i&63]||At.getStructures&&Wp()[i&63];return t?(t.read||(t.read=tl(t,i&63)),t.read()):i}}else if(i<144)if(i-=128,At.mapsAsObjects){let t={};for(let e=0;e<i;e++)t[$p()]=Fe();return t}else{let t=new Map;for(let e=0;e<i;e++)t.set(Fe(),Fe());return t}else{i-=144;let t=new Array(i);for(let e=0;e<i;e++)t[e]=Fe();return t}else if(i<192){let t=i-160;if(sr>=w)return qr.slice(w-kt,(w+=t)-kt);if(sr==0&&$r<140){let e=t<16?rl(t):qp(t);if(e!=null)return e}return Ja(t)}else{let t;switch(i){case 192:return null;case 193:return Gt?(t=Fe(),t>0?Gt[1].slice(Gt.position1,Gt.position1+=t):Gt[0].slice(Gt.position0,Gt.position0-=t)):el;case 194:return!1;case 195:return!0;case 196:return Ya(te[w++]);case 197:return t=Oe.getUint16(w),w+=2,Ya(t);case 198:return t=Oe.getUint32(w),w+=4,Ya(t);case 199:return ho(te[w++]);case 200:return t=Oe.getUint16(w),w+=2,ho(t);case 201:return t=Oe.getUint32(w),w+=4,ho(t);case 202:if(t=Oe.getFloat32(w),At.useFloat32>2){let e=Bs[(te[w]&127)<<1|te[w+1]>>7];return w+=4,(e*t+(t>0?.5:-.5)>>0)/e}return w+=4,t;case 203:return t=Oe.getFloat64(w),w+=8,t;case 204:return te[w++];case 205:return t=Oe.getUint16(w),w+=2,t;case 206:return t=Oe.getUint32(w),w+=4,t;case 207:return At.int64AsNumber?(t=Oe.getUint32(w)*4294967296,t+=Oe.getUint32(w+4)):t=Oe.getBigUint64(w),w+=8,t;case 208:return Oe.getInt8(w++);case 209:return t=Oe.getInt16(w),w+=2,t;case 210:return t=Oe.getInt32(w),w+=4,t;case 211:return At.int64AsNumber?(t=Oe.getInt32(w)*4294967296,t+=Oe.getUint32(w+4)):t=Oe.getBigInt64(w),w+=8,t;case 212:if(t=te[w++],t==114)return jp(te[w++]&63);{let e=xt[t];if(e)return e.read?(w++,e.read(Fe())):e.noBuffer?(w++,e()):e(te.subarray(w,++w));throw new Error("Unknown extension "+t)}case 213:return t=te[w],t==114?(w++,jp(te[w++]&63,te[w++])):ho(2);case 214:return ho(4);case 215:return ho(8);case 216:return ho(16);case 217:return t=te[w++],sr>=w?qr.slice(w-kt,(w+=t)-kt):hv(t);case 218:return t=Oe.getUint16(w),w+=2,sr>=w?qr.slice(w-kt,(w+=t)-kt):gv(t);case 219:return t=Oe.getUint32(w),w+=4,sr>=w?qr.slice(w-kt,(w+=t)-kt):yv(t);case 220:return t=Oe.getUint16(w),w+=2,zp(t);case 221:return t=Oe.getUint32(w),w+=4,zp(t);case 222:return t=Oe.getUint16(w),w+=2,Up(t);case 223:return t=Oe.getUint32(w),w+=4,Up(t);default:if(i>=224)return i-256;if(i===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+i)}}}var fv=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function tl(i,t){function e(){if(e.count++>2){let o=i.read=new Function("r","return function(){return {"+i.map(n=>fv.test(n)?n+":r()":"["+JSON.stringify(n)+"]:r()").join(",")+"}}")(Fe);return i.highByte===0&&(i.read=Vp(t,i.read)),o()}let r={};for(let o=0,n=i.length;o<n;o++){let s=i[o];r[s]=Fe()}return r}return e.count=0,i.highByte===0?Vp(t,e):e}var Vp=(i,t)=>function(){let e=te[w++];if(e===0)return t();let r=i<32?-(i+(e<<5)):i+(e<<5),o=we[r]||Wp()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=tl(o,i)),o.read()};function Wp(){let i=Yp(()=>(te=null,At.getStructures()));return we=At._mergeStructures(i,we)}var Ja=Ds,hv=Ds,gv=Ds,yv=Ds;function Ds(i){let t;if(i<16&&(t=rl(i)))return t;if(i>64&&Ka)return Ka.decode(te.subarray(w,w+=i));let e=w+i,r=[];for(t="";w<e;){let o=te[w++];if((o&128)===0)r.push(o);else if((o&224)===192){let n=te[w++]&63;r.push((o&31)<<6|n)}else if((o&240)===224){let n=te[w++]&63,s=te[w++]&63;r.push((o&31)<<12|n<<6|s)}else if((o&248)===240){let n=te[w++]&63,s=te[w++]&63,a=te[w++]&63,c=(o&7)<<18|n<<12|s<<6|a;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+=nt.apply(String,r),r.length=0)}return r.length>0&&(t+=nt.apply(String,r)),t}function zp(i){let t=new Array(i);for(let e=0;e<i;e++)t[e]=Fe();return t}function Up(i){if(At.mapsAsObjects){let t={};for(let e=0;e<i;e++)t[$p()]=Fe();return t}else{let t=new Map;for(let e=0;e<i;e++)t.set(Fe(),Fe());return t}}var nt=String.fromCharCode;function qp(i){let t=w,e=new Array(i);for(let r=0;r<i;r++){let o=te[w++];if((o&128)>0){w=t;return}e[r]=o}return nt.apply(String,e)}function rl(i){if(i<4)if(i<2){if(i===0)return"";{let t=te[w++];if((t&128)>1){w-=1;return}return nt(t)}}else{let t=te[w++],e=te[w++];if((t&128)>0||(e&128)>0){w-=2;return}if(i<3)return nt(t,e);let r=te[w++];if((r&128)>0){w-=3;return}return nt(t,e,r)}else{let t=te[w++],e=te[w++],r=te[w++],o=te[w++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){w-=4;return}if(i<6){if(i===4)return nt(t,e,r,o);{let n=te[w++];if((n&128)>0){w-=5;return}return nt(t,e,r,o,n)}}else if(i<8){let n=te[w++],s=te[w++];if((n&128)>0||(s&128)>0){w-=6;return}if(i<7)return nt(t,e,r,o,n,s);let a=te[w++];if((a&128)>0){w-=7;return}return nt(t,e,r,o,n,s,a)}else{let n=te[w++],s=te[w++],a=te[w++],c=te[w++];if((n&128)>0||(s&128)>0||(a&128)>0||(c&128)>0){w-=8;return}if(i<10){if(i===8)return nt(t,e,r,o,n,s,a,c);{let p=te[w++];if((p&128)>0){w-=9;return}return nt(t,e,r,o,n,s,a,c,p)}}else if(i<12){let p=te[w++],l=te[w++];if((p&128)>0||(l&128)>0){w-=10;return}if(i<11)return nt(t,e,r,o,n,s,a,c,p,l);let u=te[w++];if((u&128)>0){w-=11;return}return nt(t,e,r,o,n,s,a,c,p,l,u)}else{let p=te[w++],l=te[w++],u=te[w++],d=te[w++];if((p&128)>0||(l&128)>0||(u&128)>0||(d&128)>0){w-=12;return}if(i<14){if(i===12)return nt(t,e,r,o,n,s,a,c,p,l,u,d);{let m=te[w++];if((m&128)>0){w-=13;return}return nt(t,e,r,o,n,s,a,c,p,l,u,d,m)}}else{let m=te[w++],f=te[w++];if((m&128)>0||(f&128)>0){w-=14;return}if(i<15)return nt(t,e,r,o,n,s,a,c,p,l,u,d,m,f);let h=te[w++];if((h&128)>0){w-=15;return}return nt(t,e,r,o,n,s,a,c,p,l,u,d,m,f,h)}}}}}function Ya(i){return At.copyBuffers?Uint8Array.prototype.slice.call(te,w,w+=i):te.subarray(w,w+=i)}function ho(i){let t=te[w++];if(xt[t])return xt[t](te.subarray(w,w+=i));throw new Error("Unknown extension type "+t)}var kp=new Array(4096);function $p(){let i=te[w++];if(i>=160&&i<192){if(i=i-160,sr>=w)return qr.slice(w-kt,(w+=i)-kt);if(!(sr==0&&$r<180))return Ja(i)}else return w--,Fe();let t=(i<<5^(i>1?Oe.getUint16(w):i>0?te[w]:0))&4095,e=kp[t],r=w,o=w+i-3,n,s=0;if(e&&e.bytes==i){for(;r<o;){if(n=Oe.getUint32(r),n!=e[s++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(n=te[r++],n!=e[s++]){r=1879048192;break}if(r===o)return w=r,e.string;o-=3,r=w}for(e=[],kp[t]=e,e.bytes=i;r<o;)n=Oe.getUint32(r),e.push(n),r+=4;for(o+=3;r<o;)n=te[r++],e.push(n);let a=i<16?rl(i):qp(i);return a!=null?e.string=a:e.string=Ja(i)}var jp=(i,t)=>{var e=Fe();let r=i;t!==void 0&&(i=i<32?-((t<<5)+i):(t<<5)+i,e.highByte=t);let o=we[i];return o&&o.isShared&&((we.restoreStructures||(we.restoreStructures=[]))[i]=o),we[i]=e,e.read=tl(e,r),e.read()},Xp=typeof self=="object"?self:global;xt[0]=()=>{};xt[0].noBuffer=!0;xt[101]=()=>{let i=Fe();return(Xp[i[0]]||Error)(i[1])};xt[105]=i=>{let t=Oe.getUint32(w-4);Pr||(Pr=new Map);let e=te[w],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};Pr.set(t,o);let n=Fe();return o.used?Object.assign(r,n):(o.target=n,n)};xt[112]=i=>{let t=Oe.getUint32(w-4),e=Pr.get(t);return e.used=!0,e.target};xt[115]=()=>new Set(Fe());var ol=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(i=>i+"Array");xt[116]=i=>{let t=i[0],e=ol[t];if(!e)throw new Error("Could not find typed array for code "+t);return new Xp[e](Uint8Array.prototype.slice.call(i,1).buffer)};xt[120]=()=>{let i=Fe();return new RegExp(i[0],i[1])};xt[98]=i=>{let t=(i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3],e=w;w+=t-4,Gt=[Fe(),Fe()],Gt.position0=0,Gt.position1=0;let r=w;w=e;try{return Fe()}finally{w=r}};xt[255]=i=>i.length==4?new Date((i[0]*16777216+(i[1]<<16)+(i[2]<<8)+i[3])*1e3):i.length==8?new Date(((i[0]<<22)+(i[1]<<14)+(i[2]<<6)+(i[3]>>2))/1e6+((i[3]&3)*4294967296+i[4]*16777216+(i[5]<<16)+(i[6]<<8)+i[7])*1e3):i.length==12?new Date(((i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3])/1e6+((i[4]&128?-281474976710656:0)+i[6]*1099511627776+i[7]*4294967296+i[8]*16777216+(i[9]<<16)+(i[10]<<8)+i[11])*1e3):new Date("invalid");function Yp(i){let t=$r,e=w,r=Za,o=kt,n=sr,s=qr,a=Qa,c=Pr,p=Gt,l=new Uint8Array(te.slice(0,$r)),u=we,d=we.slice(0,we.length),m=At,f=rn,h=i();return $r=t,w=e,Za=r,kt=o,sr=n,qr=s,Qa=a,Pr=c,Gt=p,te=l,rn=f,we=u,we.splice(0,we.length,...d),At=m,Oe=new DataView(te.buffer,te.byteOffset,te.byteLength),h}function Ms(){te=null,Pr=null,we=null}function Kp(i){i.unpack?xt[i.type]=i.unpack:xt[i.type]=i}var Bs=new Array(147);for(let i=0;i<256;i++)Bs[i]=+("1e"+Math.floor(45.15-i*.30103));var Es=new ar({useRecords:!1}),xv=Es.unpack,vv=Es.unpackMultiple,bv=Es.unpack,Gs={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},_v=new Float32Array(1),UO=new Uint8Array(_v.buffer,0,4);var Rs;try{Rs=new TextEncoder}catch{}var Fs,il,Vs=typeof Buffer<"u",nl=Vs?Buffer.allocUnsafeSlow:Uint8Array,ed=Vs?Buffer:Uint8Array,Qp=Vs?4294967296:2144337920,R,je,O=0,lr,cr=null,Sv=/[\u0080-\uFFFF]/,Yn=Symbol("record-id"),go=class extends ar{constructor(t){super(t),this.offset=0;let e,r,o,n,s,a,c=0,p=ed.prototype.utf8Write?function(y,I,T){return R.utf8Write(y,I,T)}:Rs&&Rs.encodeInto?function(y,I){return Rs.encodeInto(y,R.subarray(I)).written}:!1,l=this;t||(t={});let u=t&&t.sequential,d=t.structures||t.saveStructures,m=t.maxSharedStructures;if(m==null&&(m=d?32:0),m>8160)throw new Error("Maximum maxSharedStructure is 8160");let f=t.maxOwnStructures;f==null&&(f=d?32:64),u&&!t.saveStructures&&(this.structures=[]);let h=m>32||f+m>64,g=m+64,x=m+f+64;if(x>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let v=[],A=0,_=0;this.pack=this.encode=function(y,I){if(R||(R=new nl(8192),je=new DataView(R.buffer,0,8192),O=0),lr=R.length-10,lr-O<2048?(R=new nl(R.length),je=new DataView(R.buffer,0,R.length),lr=R.length-10,O=0):O=O+7&2147483640,r=O,a=l.structuredClone?new Map:null,l.bundleStrings?(cr=["",""],R[O++]=214,R[O++]=98,cr.position=O-r,O+=4):cr=null,o=l.structures,o){o.uninitialized&&(o=l._mergeStructures(l.getStructures()));let T=o.sharedLength||0;if(T>m)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 L=0;L<T;L++){let C=o[L];if(!C)continue;let N,j=o.transitions;for(let W=0,ne=C.length;W<ne;W++){let ue=C[W];N=j[ue],N||(N=j[ue]=Object.create(null)),j=N}j[Yn]=L+64}c=T}u||(o.nextId=T+64)}n&&(n=!1),s=o||[];try{if(b(y),cr){je.setUint32(cr.position+r,O-cr.position-r);let T=cr;cr=null,b(T[0]),b(T[1])}if(l.offset=O,a&&a.idsToInsert){O+=a.idsToInsert.length*6,O>lr&&S(O),l.offset=O;let T=Tv(R.subarray(r,O),a.idsToInsert);return a=null,T}return I&rd?(R.start=r,R.end=O,R):R.subarray(r,O)}finally{if(o){if(_<10&&_++,A>1e4)o.transitions=null,_=0,A=0,v.length>0&&(v=[]);else if(v.length>0&&!u){for(let T=0,L=v.length;T<L;T++)v[T][Yn]=0;v=[]}if(n&&l.saveStructures){let T=o.sharedLength||m;o.length>T&&(o=o.slice(0,T));let L=R.subarray(r,O);return l.saveStructures(o,c)===!1?(l._mergeStructures(l.getStructures()),l.pack(y)):(c=T,L)}}I&Pv&&(O=r)}};let b=y=>{O>lr&&(R=S(O));var I=typeof y,T;if(I==="string"){let L=y.length;if(cr&&L>=8&&L<4096){let j=Sv.test(y);cr[j?0:1]+=y,R[O++]=193,b(j?-L:L);return}let C;L<32?C=1:L<256?C=2:L<65536?C=3:C=5;let N=L*3;if(O+N>lr&&(R=S(O+N)),L<64||!p){let j,W,ne,ue=O+C;for(j=0;j<L;j++)W=y.charCodeAt(j),W<128?R[ue++]=W:W<2048?(R[ue++]=W>>6|192,R[ue++]=W&63|128):(W&64512)===55296&&((ne=y.charCodeAt(j+1))&64512)===56320?(W=65536+((W&1023)<<10)+(ne&1023),j++,R[ue++]=W>>18|240,R[ue++]=W>>12&63|128,R[ue++]=W>>6&63|128,R[ue++]=W&63|128):(R[ue++]=W>>12|224,R[ue++]=W>>6&63|128,R[ue++]=W&63|128);T=ue-O-C}else T=p(y,O+C,N);T<32?R[O++]=160|T:T<256?(C<2&&R.copyWithin(O+2,O+1,O+1+T),R[O++]=217,R[O++]=T):T<65536?(C<3&&R.copyWithin(O+3,O+2,O+2+T),R[O++]=218,R[O++]=T>>8,R[O++]=T&255):(C<5&&R.copyWithin(O+5,O+3,O+3+T),R[O++]=219,je.setUint32(O,T),O+=4),O+=T}else if(I==="number")if(y>>>0===y)y<64?R[O++]=y:y<256?(R[O++]=204,R[O++]=y):y<65536?(R[O++]=205,R[O++]=y>>8,R[O++]=y&255):(R[O++]=206,je.setUint32(O,y),O+=4);else if(y>>0===y)y>=-32?R[O++]=256+y:y>=-128?(R[O++]=208,R[O++]=y+256):y>=-32768?(R[O++]=209,je.setInt16(O,y),O+=2):(R[O++]=210,je.setInt32(O,y),O+=4);else{let L;if((L=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){R[O++]=202,je.setFloat32(O,y);let C;if(L<4||(C=y*Bs[(R[O]&127)<<1|R[O+1]>>7])>>0===C){O+=4;return}else O--}R[O++]=203,je.setFloat64(O,y),O+=8}else if(I==="object")if(!y)R[O++]=192;else{if(a){let C=a.get(y);if(C){if(!C.id){let N=a.idsToInsert||(a.idsToInsert=[]);C.id=N.push(C)}R[O++]=214,R[O++]=112,je.setUint32(O,C.id),O+=4;return}else a.set(y,{offset:O-r})}let L=y.constructor;if(L===Object)D(y,!0);else if(L===Array){T=y.length,T<16?R[O++]=144|T:T<65536?(R[O++]=220,R[O++]=T>>8,R[O++]=T&255):(R[O++]=221,je.setUint32(O,T),O+=4);for(let C=0;C<T;C++)b(y[C])}else if(L===Map){T=y.size,T<16?R[O++]=128|T:T<65536?(R[O++]=222,R[O++]=T>>8,R[O++]=T&255):(R[O++]=223,je.setUint32(O,T),O+=4);for(let[C,N]of y)b(C),b(N)}else{for(let C=0,N=Fs.length;C<N;C++){let j=il[C];if(y instanceof j){let W=Fs[C];if(W.write){W.type&&(R[O++]=212,R[O++]=W.type,R[O++]=0),b(W.write.call(this,y));return}let ne=R,ue=je,se=O;R=null;let K;try{K=W.pack.call(this,y,U=>(R=ne,ne=null,O+=U,O>lr&&S(O),{target:R,targetView:je,position:O-U}),b)}finally{ne&&(R=ne,je=ue,O=se,lr=R.length-10)}K&&(K.length+O>lr&&S(K.length+O),O=wv(K,R,O,W.type));return}}D(y,!y.hasOwnProperty)}}else if(I==="boolean")R[O++]=y?195:194;else if(I==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))R[O++]=211,je.setBigInt64(O,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)R[O++]=207,je.setBigUint64(O,y);else if(this.largeBigIntToFloat)R[O++]=203,je.setFloat64(O,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");O+=8}else if(I==="undefined")this.encodeUndefinedAsNil?R[O++]=192:(R[O++]=212,R[O++]=0,R[O++]=0);else if(I==="function")b(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+I)},D=this.useRecords===!1?this.variableMapSize?y=>{let I=Object.keys(y),T=I.length;T<16?R[O++]=128|T:T<65536?(R[O++]=222,R[O++]=T>>8,R[O++]=T&255):(R[O++]=223,je.setUint32(O,T),O+=4);let L;for(let C=0;C<T;C++)b(L=I[C]),b(y[L])}:(y,I)=>{R[O++]=222;let T=O-r;O+=2;let L=0;for(let C in y)(I||y.hasOwnProperty(C))&&(b(C),b(y[C]),L++);R[T+++r]=L>>8,R[T+r]=L&255}:y=>{let I=Object.keys(y),T,L=s.transitions||(s.transitions=Object.create(null)),C=0;for(let j=0,W=I.length;j<W;j++){let ne=I[j];T=L[ne],T||(T=L[ne]=Object.create(null),C++),L=T}let N=L[Yn];if(N)N>=96&&h?(R[O++]=((N-=96)&31)+96,R[O++]=N>>5):R[O++]=N;else{N=s.nextId,N||(N=64),N<g&&this.shouldShareStructure&&!this.shouldShareStructure(I)?(N=s.nextOwnId,N<x||(N=g),s.nextOwnId=N+1):(N>=x&&(N=g),s.nextId=N+1);let j=I.highByte=N>=96&&h?N-96>>5:-1;L[Yn]=N,s[N-64]=I,N<g?(I.isShared=!0,s.sharedLength=N-63,n=!0,j>=0?(R[O++]=(N&31)+96,R[O++]=j):R[O++]=N):(j>=0?(R[O++]=213,R[O++]=114,R[O++]=(N&31)+96,R[O++]=j):(R[O++]=212,R[O++]=114,R[O++]=N),C&&(A+=_*C),v.length>=f&&(v.shift()[Yn]=0),v.push(L),b(I))}for(let j=0,W=I.length;j<W;j++)b(y[I[j]])},S=y=>{let I;if(y>16777216){if(y-r>Qp)throw new Error("Packed buffer would be larger than maximum buffer size");I=Math.min(Qp,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 T=new nl(I);return je=new DataView(T.buffer,0,I),R.copy?R.copy(T,0,r,y):T.set(R.slice(r,y)),O-=r,r=0,lr=T.length-10,R=T}}useBuffer(t){R=t,je=new DataView(R.buffer,R.byteOffset,R.byteLength),O=0}};il=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,Xn];Fs=[{pack(i,t,e){let r=i.getTime()/1e3;if((this.useTimestamp32||i.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:o,targetView:n,position:s}=t(6);o[s++]=214,o[s++]=255,n.setUint32(s,r)}else if(r>0&&r<17179869184){let{target:o,targetView:n,position:s}=t(10);o[s++]=215,o[s++]=255,n.setUint32(s,i.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),n.setUint32(s+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:n,position:s}=t(3);o[s++]=212,o[s++]=255,o[s++]=255}else{let{target:o,targetView:n,position:s}=t(15);o[s++]=199,o[s++]=12,o[s++]=255,n.setUint32(s,i.getMilliseconds()*1e6),n.setBigInt64(s+4,BigInt(Math.floor(r)))}}},{pack(i,t,e){let r=Array.from(i),{target:o,position:n}=t(this.structuredClone?3:0);this.structuredClone&&(o[n++]=212,o[n++]=115,o[n++]=0),e(r)}},{pack(i,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=101,r[o++]=0),e([i.name,i.message])}},{pack(i,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=120,r[o++]=0),e([i.source,i.flags])}},{pack(i,t){this.structuredClone?Zp(i,16,t):Jp(Vs?Buffer.from(i):new Uint8Array(i),t)}},{pack(i,t){let e=i.constructor;e!==ed&&this.structuredClone?Zp(i,ol.indexOf(e.name),t):Jp(i,t)}},{pack(i,t){let{target:e,position:r}=t(1);e[r]=193}}];function Zp(i,t,e,r){let o=i.byteLength;if(o+1<256){var{target:n,position:s}=e(4+o);n[s++]=199,n[s++]=o+1}else if(o+1<65536){var{target:n,position:s}=e(5+o);n[s++]=200,n[s++]=o+1>>8,n[s++]=o+1&255}else{var{target:n,position:s,targetView:a}=e(7+o);n[s++]=201,a.setUint32(s,o+1),s+=4}n[s++]=116,n[s++]=t,n.set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength),s)}function Jp(i,t){let e=i.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:n}=t(e+5);r[o++]=198,n.setUint32(o,e),o+=4}r.set(i,o)}function wv(i,t,e,r){let o=i.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(i,e),e+=o,e}function Tv(i,t){let e,r=t.length*6,o=i.length-r;for(t.sort((n,s)=>n.offset>s.offset?1:-1);e=t.pop();){let n=e.offset,s=e.id;i.copyWithin(n+r,n,o),r-=6;let a=n+r;i[a++]=214,i[a++]=105,i[a++]=s>>24,i[a++]=s>>16&255,i[a++]=s>>8&255,i[a++]=s&255,o=n}return i}function yo(i){if(i.Class){if(!i.pack&&!i.write)throw new Error("Extension has no pack or write function");if(i.pack&&!i.type)throw new Error("Extension has no type (numeric code to identify the extension)");il.unshift(i.Class),Fs.unshift(i)}Kp(i)}var td=new go({useRecords:!1}),Av=td.pack,Cv=td.pack;var{NEVER:Nv,ALWAYS:Ov,DECIMAL_ROUND:Lv,DECIMAL_FIT:Iv}=Gs,rd=512,Pv=1024;var od=new go({structuredClone:!0});yo({Class:ke.prototype.constructor,type:1,write(i){return{...i}},read(i){return Object.setPrototypeOf(i,ke.prototype),i}});yo({Class:Ee.prototype.constructor,type:2,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,Ee.prototype),i}});yo({Class:Ut.prototype.constructor,type:3,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,Ut.prototype),i}});yo({Class:qn.prototype.constructor,type:4,write(i){return i.id},read(i){return new qn(i)}});yo({Class:$n.prototype.constructor,type:5,write(i){return i.data},read(i){return new $n(i)}});function Mv(i){var t=0;if(i.length===0)return t;for(let e=0;e<i.length;e++){let r=i[e];t=(t<<5)-t+r,t=t&t}return t}function sl(i){if(Ts(i))return i;if(Array.isArray(i))return i.map(sl);if(typeof i=="object"&&i!==null){let t={};for(let e of Object.keys(i).sort())t[e]=sl(i[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(i)),t}else return i}var zs;(r=>{function i(o){return od.pack(o)}r.serialize=i;function t(o){return od.unpack(o)}r.deserialize=t;function e(o){return Mv(i(sl(o))).toString()}r.checksum=e})(zs||(zs={}));var Us;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Us||(Us={}));var ks;(e=>{function i(r){return t(r)}e.defaultData=i;function t(r){if(r==="PointLight")return{type:r,color:Et.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(r==="SpotLight")return{type:r,color:Et.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:Et.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(ks||(ks={}));var al;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(al||(al={}));var ll;(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})(ll||(ll={}));var js;(t=>t.defaultData={...ll.defaultData,...al.defaultData,cloner:null,booleanExclude:null})(js||(js={}));var cl=(o=>(o[o.Left=1]="Left",o[o.Right=2]="Right",o[o.Center=3]="Center",o[o.Justify=4]="Justify",o))(cl||{}),ul=(r=>(r[r.Top=1]="Top",r[r.Center=2]="Center",r[r.Bottom=3]="Bottom",r))(ul||{}),pl=(r=>(r[r.None=1]="None",r[r.Upper=2]="Upper",r[r.Lower=3]="Lower",r))(pl||{}),Hs;(t=>t.defaultData={width:100,height:100,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.5,letterSpacing:1,text:"",textTransform:1,color:Et.fromHexAndA(6974058,1),alpha:1,font:"roboto_regular"})(Hs||(Hs={}));var Xr;(r=>{function i(o,n){return o==="light"&&n?t(n):e(o)}r.defaultData=i;function t(o){switch(o){case"basic":return{type:"light",category:"basic",alpha:1,visible:!0,mode:0};case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"toon":return{category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"lambert":return{category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0};case"physical":return{category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0}}}function e(o){switch(o){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"texture",projection:0,texture:{image:"image_0",wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:Bt.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],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],steps:[0,1,1,1,1,1,1,1,1,1,1],num:2,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:{...Bt.fromHex(6710886),a:1},colorB:{...Bt.fromHex(6710886),a:1},colorC:{...Bt.fromHex(16777215),a:1},colorD:{...Bt.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:Et.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:Et.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:Et.fromHexAndA(0,1),contourColor:Et.fromHexAndA(0,1),outlineWidth:2,contourWidth:5,outlineThreshold:.4,contourThreshold:0,outlineSmoothing:0,contourFrequency:10,contourDirection:[0,1,0],positionalLines:!1,compensation:!0};case"matcap":return{type:"matcap",alpha:1,visible:!0,mode:0,texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0]}};case"transmission":return{type:"transmission",alpha:1,visible:!0,mode:0,thickness:10,ior:1.5,roughness:1};case"displace":return{type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,visible:!0}}}})(Xr||(Xr={}));var Mr;(a=>{function i(c){return!c.layers.some(l=>{if(l.data.type==="texture"&&l.data.projection!==0||l.data.type==="depth"&&!l.data.isWorldSpace||l.data.type==="noise"||l.data.type==="displace")return!0})&&!e(c)}a.isMergable=i;function t(c){let p="";return c.layers.forEach(l=>{Object.entries(l.data).forEach(([u,d])=>{p+=`${u}${d}`,Array.isArray(d)?d.forEach(m=>p+=`${m}`):typeof d=="object"?Object.values(d).forEach(m=>{typeof m=="number"?p+=`${m.toFixed(4)}`:p+=`${m}`}):p+=`${d}`})}),p}a.getHash=t;function e(c){let p=0;for(let l of c.layers)"alpha"in l.data&&l.data.type!=="light"&&l.data.type!=="fresnel"&&(p+=(1-p)*l.data.alpha);return p<1}a.isTransparent=e;function r(){return{layers:new Ee}}a.defaultEmptyData=r;function o(c="layer1",p="layer2"){return n("phong",c,p)}a.defaultData=o;function n(c,p="layer1",l="layer2"){let u=new Ee;return u.push({fi:0,data:Xr.defaultData("light",c),id:p}),u.push({fi:1,data:Xr.defaultData("color"),id:l}),{layers:u}}a.defaultTwoLayerData=n;function s(c,p="basic",l="layer1",u="layer2"){let d=Xr.defaultData("texture");Object.assign(d.texture,{image:c});let m=new Ee;return m.push({fi:0,data:d,id:l}),m.push({fi:1,data:Xr.defaultData("light",p),id:u}),{layers:m}}a.defaultTwoLayerTextureData=s})(Mr||(Mr={}));var on;(t=>{function i(){return{points:new Ee,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=i})(on||(on={}));var Ws;(t=>{function i(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=i})(Ws||(Ws={}));var Kn;(t=>{function i(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:on.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="BooleanGeometry")return{type:e,operation:2,width:0,height:0,depth:0,phongAngle:35};throw new Error("not implemented")}t.defaultData=i})(Kn||(Kn={}));var Qn;(o=>{o.identity={..._s.identity,hiddenMatrix:Wr.identity};function t(n){return{position:n.position,rotation:n.rotation,scale:n.scale,hiddenMatrix:n.hiddenMatrix}}o.fromObject=t;function e(n,s){return{position:s?.position||n.position,rotation:s?.rotation||n.rotation,scale:s?.scale||n.scale,hiddenMatrix:s?.hiddenMatrix||n.hiddenMatrix}}o.merge=e;function r(n,s){return{position:Zo.isEqual(n.position,s.position)?null:s.position,rotation:Zo.isEqual(n.rotation,s.rotation)?null:s.rotation,scale:Zo.isEqual(n.scale,s.scale)?null:s.scale,hiddenMatrix:Wr.isEqual(n.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}o.diff=r})(Qn||(Qn={}));var Dr;(t=>t.defaultData={states:new Ee,events:new Ee,visible:!0,raycastLock:!1,...Qn.identity})(Dr||(Dr={}));var nd;(t=>t.defaultData={type:"Empty",...Dr.defaultData})(nd||(nd={}));var qs;(t=>t.defaultData={type:"Mesh",...Dr.defaultData,...js.defaultData})(qs||(qs={}));var id;(t=>t.defaultData={type:"TextFrame",...Dr.defaultData,...Hs.defaultData})(id||(id={}));var $s;(t=>t.defaultData={...Dr.defaultData,...Qn.identity,...fo.defaultData})($s||($s={}));var sd;(t=>{function i(e){return{...Dr.defaultData,...ks.defaultData(e)}}t.defaultData=i})(sd||(sd={}));var ad;(r=>(r.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:Wr.identity,name:"Play Camera",visible:!0,raycastLock:!1,states:new Ee,events:new Ee,...fo.defaultData},r.defaultMeshObject={name:"Rectangle",...Dr.defaultData,...qs.defaultData,geometry:Kn.defaultData("RectangleGeometry"),material:Mr.defaultTwoLayerData("basic","layer1","layer2")},r.defaultBooleanObject={name:"Boolean",...Dr.defaultData,...qs.defaultData,geometry:Kn.defaultData("BooleanGeometry"),material:Mr.defaultTwoLayerData("phong","layer1","layer2")}))(ad||(ad={}));var ld;(e=>{function i(r,o){if(o===void 0)return r;let n={...r};return"material"in n&&"material"in o&&o.material&&(n.material=$a(n.material,s=>{if(typeof s!="string")for(let[a,c]of Object.entries(o.material.layers)){let p=s.layers.data(a);p&&mo(p,c)}}).data),n.materials&&o.materials&&(n.materials=$a(n.materials,s=>{for(let a=0;a<n.materials.length;a++){let c=o.materials[a];if(typeof c!="string")for(let[p,l]of Object.entries(c.layers)){let u=s[a]?.layers?.data(p);u&&mo(u,l)}}}).data),n}e.patchMaterialState=i;function t(r,o){if(o===void 0)return r;let n={...r};if(Object.assign(n,Qn.merge(n,o)),Qo.is(r.type)){n.orthographic={...n.orthographic},n.perspective={...n.perspective};let s=o;s.orthographic?.zoom!==void 0&&(n.orthographic.zoom=s.orthographic.zoom),s.perspective?.zoom!==void 0&&(n.perspective.zoom=s.perspective.zoom),s.isUpVectorFlipped!==void 0&&(n.isUpVectorFlipped=s.isUpVectorFlipped),s.targetOffset!==void 0&&(n.targetOffset=s.targetOffset)}else if(r.type==="Mesh")n.geometry={...n.geometry},Object.assign(n.geometry,o.geometry),n=i(n,o);else if(Us.is(r.type)){let s=o;s.intensity!==void 0&&(n.intensity=s.intensity),s.color!==void 0&&(typeof s.color=="string"?n.color=s.color:n.color=Bt.clone(s.color))}return n}e.patch=t})(ld||(ld={}));var Dv={Bell:"/_assets/_audios/CC0/bell_1.mp3","Bell 2":"/_assets/_audios/CC0/bell_2.wav",Bubble:"/_assets/_audios/CC0/bubble.wav",Click:"/_assets/_audios/CC0/click.mp3",Jump:"/_assets/_audios/CC0/jump.wav",Pop:"/_assets/_audios/CC0/pop.mp3","Pop 2":"/_assets/_audios/CC0/pop_2.mp3","Pop Double":"/_assets/_audios/CC0/pop_double_1.mp3","Pop Double 2":"/_assets/_audios/CC0/pop_double_2.mp3",Success:"/_assets/_audios/CC0/success.mp3",Suction:"/_assets/_audios/CC0/suction.wav",Tip:"/_assets/_audios/CC0/tip.mp3",Water:"/_assets/_audios/CC0/water.wav"},Bv={"Bells 01":"/_assets/_audios/Originals/spe_bells_01.mp3","Bells 02":"/_assets/_audios/Originals/spe_bells_02.mp3","Bells 03":"/_assets/_audios/Originals/spe_bells_03.mp3","Book Closing 01":"/_assets/_audios/Originals/spe_book_closing_01.mp3","Book Closing 02":"/_assets/_audios/Originals/spe_book_closing_02.mp3","Book Opening 01":"/_assets/_audios/Originals/spe_book_opening_01.mp3","Book Opening 02":"/_assets/_audios/Originals/spe_book_opening_02.mp3","Breathing Strange":"/_assets/_audios/Originals/spe_breathing_strange.mp3",Bubble:"/_assets/_audios/Originals/spe_bubble.mp3","Bubble Double":"/_assets/_audios/Originals/spe_bubble_double.mp3","Cards 01":"/_assets/_audios/Originals/spe_cards_01.mp3","Cards 02":"/_assets/_audios/Originals/spe_cards_02.mp3","Ceramic 01":"/_assets/_audios/Originals/spe_ceramic_01.mp3","Ceramic 02":"/_assets/_audios/Originals/spe_ceramic_02.mp3","Ceramic 03":"/_assets/_audios/Originals/spe_ceramic_03.mp3","Ceramic 04":"/_assets/_audios/Originals/spe_ceramic_04.mp3","Ceramic 05":"/_assets/_audios/Originals/spe_ceramic_05.mp3","Ceramic 06":"/_assets/_audios/Originals/spe_ceramic_06.mp3","Ceramic 07":"/_assets/_audios/Originals/spe_ceramic_07.mp3","Click 01":"/_assets/_audios/Originals/spe_click_01.mp3","Click 02":"/_assets/_audios/Originals/spe_click_02.mp3","Click 03":"/_assets/_audios/Originals/spe_click_03.mp3","Click 04":"/_assets/_audios/Originals/spe_click_04.mp3","Click 05":"/_assets/_audios/Originals/spe_click_05.mp3","Click Double":"/_assets/_audios/Originals/spe_click_double_1.mp3","Device Close 01":"/_assets/_audios/Originals/spe_device_close_01.mp3","Device Open 01":"/_assets/_audios/Originals/spe_device_open_01.mp3","Door Closing":"/_assets/_audios/Originals/spe_door_closing.mp3","Door Garage":"/_assets/_audios/Originals/spe_door_garage.mp3","Door Opening":"/_assets/_audios/Originals/spe_door_opening.mp3","Drop 01":"/_assets/_audios/Originals/spe_drop_01.mp3","Drop 02":"/_assets/_audios/Originals/spe_drop_02.mp3","Drop 03":"/_assets/_audios/Originals/spe_drop_03.mp3","Drop 04":"/_assets/_audios/Originals/spe_drop_04.mp3","Drop 05":"/_assets/_audios/Originals/spe_drop_05.mp3","Face Slap 01":"/_assets/_audios/Originals/spe_face_slap_01.mp3","Face Slap 02":"/_assets/_audios/Originals/spe_face_slap_02.mp3","Falling Bounce":"/_assets/_audios/Originals/spe_falling_bounce.mp3","Falling Box":"/_assets/_audios/Originals/spe_falling_box.mp3","Finger Snap 01":"/_assets/_audios/Originals/spe_finger_snap_01.mp3","Finger Snap 02":"/_assets/_audios/Originals/spe_finger_snap_02.mp3","Finger Snap 03":"/_assets/_audios/Originals/spe_finger_snap_03.mp3","Finger Snap 04":"/_assets/_audios/Originals/spe_finger_snap_04.mp3","Jump 01":"/_assets/_audios/Originals/spe_jump_01.mp3","Jump 02":"/_assets/_audios/Originals/spe_jump_02.mp3","Key Press":"/_assets/_audios/Originals/spe_key_press.mp3","Key Press 02":"/_assets/_audios/Originals/spe_key_press_02.mp3","Key Press 03":"/_assets/_audios/Originals/spe_key_press_03.mp3","Key Press 04":"/_assets/_audios/Originals/spe_key_press_04.mp3","Key Press 05":"/_assets/_audios/Originals/spe_key_press_05.mp3","Key Press 06":"/_assets/_audios/Originals/spe_key_press_06.mp3","Key Typing 01":"/_assets/_audios/Originals/spe_key_typing_01.mp3","Knock Knock":"/_assets/_audios/Originals/spe_knock_knock.mp3","Marker 01":"/_assets/_audios/Originals/spe_marker_01.mp3","Marker 02":"/_assets/_audios/Originals/spe_marker_02.mp3","Marker 03":"/_assets/_audios/Originals/spe_marker_03.mp3","Marker 04":"/_assets/_audios/Originals/spe_marker_04.mp3","Match 01":"/_assets/_audios/Originals/spe_match_01.mp3","Measure Close 01":"/_assets/_audios/Originals/spe_measure_close_01.mp3","Measure Close 02":"/_assets/_audios/Originals/spe_measure_close_02.mp3","Measure Open 01":"/_assets/_audios/Originals/spe_measure_open_01.mp3","Measure Open 02":"/_assets/_audios/Originals/spe_measure_open_02.mp3","Metal Rolling":"/_assets/_audios/Originals/spe_metal_rolling.mp3","Motor 01":"/_assets/_audios/Originals/spe_motor_01.mp3","Motor 02":"/_assets/_audios/Originals/spe_motor_02.mp3","Noise 01":"/_assets/_audios/Originals/spe_noise_01.mp3","Notch 01":"/_assets/_audios/Originals/spe_notch_01.mp3","Notch 02":"/_assets/_audios/Originals/spe_notch_02.mp3","Paper Cut 01":"/_assets/_audios/Originals/spe_paper_cut_01.mp3","Paper Cut 02":"/_assets/_audios/Originals/spe_paper_cut_02.mp3","Paper Folding":"/_assets/_audios/Originals/spe_paper_folding.mp3","Paper Scratch 01":"/_assets/_audios/Originals/spe_paper_scratch_01.mp3","Paper Scratch 02":"/_assets/_audios/Originals/spe_paper_scratch_02.mp3","Paper Scratch 03":"/_assets/_audios/Originals/spe_paper_scratch_03.mp3","Pen 01":"/_assets/_audios/Originals/spe_pen_01.mp3","Pen 02":"/_assets/_audios/Originals/spe_pen_02.mp3","Punch 01":"/_assets/_audios/Originals/spe_punch_01.mp3","Punch 02":"/_assets/_audios/Originals/spe_punch_02.mp3","Punch Deep":"/_assets/_audios/Originals/spe_punch_deep.mp3","Radio Noise 01":"/_assets/_audios/Originals/spe_radio_noise_01.mp3","Radio Noise 02":"/_assets/_audios/Originals/spe_radio_noise_02.mp3","Radio Noise 03":"/_assets/_audios/Originals/spe_radio_noise_03.mp3","Rain 01":"/_assets/_audios/Originals/spe_rain_01.mp3","Rain 02":"/_assets/_audios/Originals/spe_rain_02.mp3","Scratch 01":"/_assets/_audios/Originals/spe_scratch_01.mp3","Scratch 02":"/_assets/_audios/Originals/spe_scratch_02.mp3","Scratch 03":"/_assets/_audios/Originals/spe_scratch_03.mp3","Seeds Shaking 01":"/_assets/_audios/Originals/spe_seeds_shaking_01.mp3","Seeds Shaking 02":"/_assets/_audios/Originals/spe_seeds_shaking_02.mp3","Song Scifi 01":"/_assets/_audios/Originals/spe_song_scifi_01.mp3",Spinner:"/_assets/_audios/Originals/spe_spinner.mp3","Spray Body":"/_assets/_audios/Originals/spe_spray_body.mp3","Suction 01":"/_assets/_audios/Originals/spe_suction_01.mp3","Suction 02":"/_assets/_audios/Originals/spe_suction_02.mp3","Suction 03":"/_assets/_audios/Originals/spe_suction_03.mp3","Suction 04":"/_assets/_audios/Originals/spe_suction_04.mp3","Switch 01":"/_assets/_audios/Originals/spe_switch_01.mp3","Switch 02":"/_assets/_audios/Originals/spe_switch_02.mp3","Switch 03":"/_assets/_audios/Originals/spe_switch_03.mp3","Switch 04":"/_assets/_audios/Originals/spe_switch_04.mp3","Switch 05":"/_assets/_audios/Originals/spe_switch_05.mp3","Switch 06":"/_assets/_audios/Originals/spe_switch_06.mp3","Switch 07":"/_assets/_audios/Originals/spe_switch_07.mp3","Switch 08":"/_assets/_audios/Originals/spe_switch_08.mp3","Switch 09":"/_assets/_audios/Originals/spe_switch_09.mp3","Switch 10":"/_assets/_audios/Originals/spe_switch_10.mp3","Swoosh 01":"/_assets/_audios/Originals/spe_swoosh_01.mp3","Swoosh 02":"/_assets/_audios/Originals/spe_swoosh_02.mp3","Swoosh 03":"/_assets/_audios/Originals/spe_swoosh_03.mp3","Swoosh 04":"/_assets/_audios/Originals/spe_swoosh_04.mp3","Tap Ceramic 01":"/_assets/_audios/Originals/spe_tap_ceramic_01.mp3","Tap Ceramic 02":"/_assets/_audios/Originals/spe_tap_ceramic_02.mp3","Tap Metal":"/_assets/_audios/Originals/spe_tap_metal_1.mp3","Tap Metal 2":"/_assets/_audios/Originals/spe_tap_metal_2.mp3","Tap Metal 3":"/_assets/_audios/Originals/spe_tap_metal_3.mp3","Tap Metal 4":"/_assets/_audios/Originals/spe_tap_metal_4.mp3","Tap Plastic":"/_assets/_audios/Originals/spe_tap_plastic.mp3","Tap Wood 01":"/_assets/_audios/Originals/spe_tap_wood_01.mp3","Tap Wood 02":"/_assets/_audios/Originals/spe_tap_wood_02.mp3","Trumbling 01":"/_assets/_audios/Originals/spe_trumbling_01.mp3","Trumbling 02":"/_assets/_audios/Originals/spe_trumbling_02.mp3","Voice Ouch":"/_assets/_audios/Originals/spe_voice_ouch.mp3","Voice Surprise 01":"/_assets/_audios/Originals/spe_voice_surprise_01.mp3","Voice Surprise 02":"/_assets/_audios/Originals/spe_voice_surprise_02.mp3","Walk Steps 01":"/_assets/_audios/Originals/spe_walk_steps_01.mp3","Walk Steps 02":"/_assets/_audios/Originals/spe_walk_steps_02.mp3","Walk Steps 03":"/_assets/_audios/Originals/spe_walk_steps_03.mp3","Water 01":"/_assets/_audios/Originals/spe_water_01.mp3","Water 02":"/_assets/_audios/Originals/spe_water_02.mp3","Water 03":"/_assets/_audios/Originals/spe_water_03.mp3","Water Bath":"/_assets/_audios/Originals/spe_water_bath.mp3","Water Drops":"/_assets/_audios/Originals/spe_water_drops.mp3",Wc:"/_assets/_audios/Originals/spe_wc.mp3","Xylophone Note A":"/_assets/_audios/Originals/spe_xylophone_note_a.mp3","Xylophone Note B":"/_assets/_audios/Originals/spe_xylophone_note_b.mp3","Xylophone Note C":"/_assets/_audios/Originals/spe_xylophone_note_c.mp3","Xylophone Note C Minor":"/_assets/_audios/Originals/spe_xylophone_note_c_minor.mp3","Xylophone Note D":"/_assets/_audios/Originals/spe_xylophone_note_d.mp3","Xylophone Note E":"/_assets/_audios/Originals/spe_xylophone_note_e.mp3","Xylophone Note F":"/_assets/_audios/Originals/spe_xylophone_note_f.mp3","Xylophone Note G":"/_assets/_audios/Originals/spe_xylophone_note_g.mp3","Xylophone Notes All 01":"/_assets/_audios/Originals/spe_xylophone_notes_all_01.mp3","Xylophone Notes All 02":"/_assets/_audios/Originals/spe_xylophone_notes_all_02.mp3"},Xs={CC0:Dv,Originals:Bv};var Ys;(c=>{let i=["/_assets/_textures/texture_checkboard_default.png","/_assets/_textures/texture_dots_01.png","/_assets/_textures/texture_wood_01.jpg","/_assets/_textures/texture_wood_02.jpg","/_assets/_textures/texture_rock_01.jpg","/_assets/_textures/texture_rock_02.jpg","/_assets/_textures/texture_grass_01.jpg","/_assets/_textures/texture_grass_02.jpg","/_assets/_textures/texture_concrete_01.jpg","/_assets/_textures/texture_concrete_02.jpg","/_assets/_textures/texture_paper_01.jpg","/_assets/_textures/texture_roof_01.jpg","/_assets/_textures/texture_wall_02.jpg","/_assets/_textures/texture_planet_earth_color.jpg","/_assets/_textures/texture_planet_earth_clouds.jpg","/_assets/_textures/texture_planet_mars.jpg","/_assets/_textures/texture_space.jpg"],t=["/_assets/_textures/matcap_5_18.png","/_assets/_textures/matcap_5_1.png","/_assets/_textures/matcap_4_3.png","/_assets/_textures/matcap_2_7.png","/_assets/_textures/matcap_2_4.png","/_assets/_textures/matcap_1_11.png"];function e(){let p={},l=0;for(let u of i)p[`image_${l}`]={data:u,name:`Image ${l}`,asset:!1},l++;l=0;for(let u of t)p[`matcap_${l}`]={data:u,name:`Matcap ${l}`,asset:!1},l++;return p}c.defaultImages=e;function r(){let p={};return p["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},p}c.defaultColors=r;function o(){let p={},l={...Xs.CC0,...Xs.Originals},u=0;for(let[d,m]of Object.entries(l)){let f=m.split("/").pop()??"unknown",h=m.split(".").pop(),g="";if(h==="mp3")g="audio/mpeg";else if(h==="wav")g="audio/wav";else continue;p[`audio_${u}`]={name:d,filename:f,data:m,mimeType:g,asset:!1,free:d in Xs.CC0},u++}return p}c.defaultAudios=o,c.defaultAudio={name:"Untitled Audio",data:"/_assets/_audios/CC0/success.mp3",filename:"success.mp3",mimeType:"audio/mpeg",asset:!0};function s(){return{materials:new ke,images:new ke,colors:new ke,audios:new ke,penumbraSize:[.5,.5,.5]}}c.emptyData=s;function a(){return{materials:new ke,images:Wi(e(),ke.prototype),colors:Wi(r(),ke.prototype),audios:Wi(o(),ke.prototype),penumbraSize:new Array(5).fill(.5)}}c.defaultData=a})(Ys||(Ys={}));var Ks;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=",asset:!1})(Ks||(Ks={}));var cd=require("three"),ct=class extends cd.Color{constructor(e,r,o,n){super(e,r,o);this.isColorA=!0;this.a=n}setRGBA(e,r,o,n){super.setRGB(e,r,o),this.a=n}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 dd=require("three");var De=require("three"),pd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,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},i.parameters),r=e.width/2,o=e.radiusTop??r,n=e.radiusBottom??r;return o===n?(o=r,n=r):o>n?(o=r,n=n*r/o):(o=o*r/n,n=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:n})}}static build(i){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:n,openEnded:s,thetaStart:a,thetaLength:c,radiusTop:p,radiusBottom:l,cornerRadius:u,cornerSegments:d,hollow:m}=i.parameters,f;return u||m?f=new Zn(p,l,r,o,n,s,a,c*Math.PI/180,u,u,d,m):f=new De.CylinderBufferGeometry(p,l,r,o,n,s,a,c*Math.PI/180),f.scale(1,1,e/t),Object.assign(f,{userData:{...i,type:"CylinderGeometry"}})}};function Yr(i,t,e){e.x=i.x*t.x,e.y=i.y,e.z=i.x*t.y}function ud(i){return new De.Vector2(i.y,-i.x)}var Zn=class extends De.BufferGeometry{constructor(t,e,r,o,n,s,a,c,p,l,u,d,m=!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,n=Math.floor(n)||1,s=s!==void 0?s:!1,a=a!==void 0?a:0,c=c!==void 0?c:Math.PI*2,s&&(p=0,l=0);let f=[],h=[],g=[],x=[],v=0,A=r/2,_=new De.Vector3,b=new De.Vector3;m&&t==0&&(t=p),m&&e==0&&(e=l);let D=new De.Vector2(t,A),S=new De.Vector2(e,-A),y=null,I=null,T=null,L=null,C=D.clone().sub(S),N=0,j=0,W=0;d>0&&(N=Math.min(t,e)*(1-d),j=t-N,W=e-N);let ne=D.clone();ne.x-=N;let ue=Math.PI-C.angle(),se=C.angle(),K=Math.tan(se/2),U=Math.tan(ue/2),F=K+U,E=d?F:U,B=d?F:K;if(p=Math.min(p,(t-j)/E,C.length()/F),l=Math.min(l,(e-W)/B,C.length()/F),p>0){let z=p/K;y=D.clone().sub(new De.Vector2(z,p)),d&&(T=y.clone(),T.x-=N-F*p),D.sub(C.clone().setLength(z))}if(l>0){let z=l/U;I=S.clone().sub(new De.Vector2(z,-l)),S.add(C.clone().setLength(z)),d&&(L=I.clone(),L.x-=N-F*l,ne.sub(C.clone().setLength(z)))}C=D.clone().sub(S);let P=C.length()<.5,G=[];for(let z=0;z<=o;z++){let M=[],q=z/o,J=q*c+a,ee=new De.Vector2(Math.sin(J),Math.cos(J));L&&I?(Q(M,q,ee,ue,l,L,-1,!0),Q(M,q,ee,se,l,I,-1,!1)):I?(k(M,ee,I.x,0,-1),Q(M,q,ee,se,l,I,-1,!1)):s||k(M,ee,e,W,-1);let H=ud(C).normalize();if(Yr(H,ee,_),!P)for(let Z=0;Z<=n;Z++){let $=Z/n,re=C.clone().multiplyScalar($).add(S);Yr(re,ee,b),h.push(b.x,b.y,b.z),g.push(_.x,_.y,_.z),x.push(q,.5+b.y/r),M.push(v++)}if(T&&y?(Q(M,q,ee,ue,p,y,1,!1),Q(M,q,ee,se,p,T,1,!0)):y?(Q(M,q,ee,ue,p,y,1,!1),k(M,ee,y.x,0,1)):s||k(M,ee,t,j,1),d&&!P){let Z=ud(C).multiplyScalar(-1).normalize();Yr(Z,ee,_);for(let $=0;$<=n;$++){let re=$/n,ce=C.clone().multiplyScalar(-re).add(ne);Yr(ce,ee,b),h.push(b.x,b.y,b.z),g.push(_.x,_.y,_.z),x.push(q,.5+b.y/r),M.push(v++)}}d&&!s&&M.push(M[0]),G.push(M)}for(let z=0;z<G.length-1;z++)for(let M=0;M<G[0].length-1;M++){if(s&&d&&M==n)continue;let q=G[z][M],J=G[z+1][M],ee=G[z+1][M+1],H=G[z][M+1],Z=h[ee*3+0],$=h[ee*3+2];f.push(q,J,H),(Z!=0||$!=0)&&f.push(J,ee,H)}c<Math.PI*2&&(V(-1,G[0],a),V(1,G[G.length-1],a+c)),this.setIndex(f),this.setAttribute("position",new De.Float32BufferAttribute(h,3)),this.setAttribute("normal",new De.Float32BufferAttribute(g,3)),this.setAttribute("uv",new De.Float32BufferAttribute(x,2));function Q(z,M,q,J,ee,H,Z,$){for(let re=0;re<u+1;re++){let ce=re/u,ie=Z<0?ce:1-ce;$&&(ie-=1),ie*=J;let fe=new De.Vector2(Math.sin(ie),Math.cos(ie)*Z),Re=fe.clone().multiplyScalar(ee).add(H);Yr(Re,q,b),h.push(b.x,b.y,b.z),Yr(fe,q,_),g.push(_.x,_.y,_.z),x.push(M,.5+b.y/r),z.push(v++)}}function k(z,M,q,J,ee){let H=new De.Vector3,Z=new De.Vector2,$=[q,J];ee<0&&$.reverse();for(let re of $)Z.set(re,A*ee),Yr(Z,M,H),h.push(H.x,H.y,H.z),g.push(0,ee,0),x.push(.5,.5),z.push(v++)}function V(z,M,q){let J=new De.Vector2(Math.sin(q),Math.cos(q)),ee=new De.Vector2(-Math.cos(q),Math.sin(q)),H=new De.Vector3,Z=z<0?(ce,ie,fe)=>f.push(ce,ie,fe):(ce,ie,fe)=>f.push(ce,fe,ie),$=new De.Vector2((t+e+j+W)/4,0);Yr($,J,H),h.push(H.x,H.y,H.z),g.push(ee.x,0,ee.y),x.push(.5,.5);let re=v++;for(let ce of M){let ie=h.slice(ce*3,ce*3+3);h.push(...ie),g.push(ee.x,0,ee.y);let fe=x.slice(ce*2,ce*2+2);x.push(...fe),v++}for(let ce=re+1;ce<v-1;ce++)Z(re,ce,ce+1);Z(re,v-1,re+1)}}};var md=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,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},i.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(i){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:n,openEnded:s,thetaStart:a,thetaLength:c,cornerRadiusTop:p,cornerRadiusBottom:l,cornerSegments:u}=i.parameters,d;return p>0||l>0||c<360?d=new Zn(0,t/2,r,o,n,s,a,c*Math.PI/180,p,l,u,0,!0):d=new dd.ConeBufferGeometry(t/2,r,o,n,s),d.scale(1,1,e/t),Object.assign(d,{userData:{...i,type:"ConeGeometry"}})}};var Ct=require("three"),fd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},i.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(i){let{width:t,height:e,depth:r,widthSegments:o,heightSegments:n,depthSegments:s,cornerRadius:a,cornerSegments:c}=i.parameters,p;return a==0?p=new Ct.BoxBufferGeometry(t,e,r,o,n,s):p=new fl(t,e,r,o,n,s,a,c),Object.assign(p,{userData:{...i,type:"CubeGeometry"}})}},ml=Math.PI/2,fl=class extends Ct.BufferGeometry{constructor(t=1,e=1,r=1,o=1,n=1,s=1,a=0,c=4){super(),this.type="BoxBufferGeometry";let p=this;o=Math.floor(o),n=Math.floor(n),s=Math.floor(s),c=Math.floor(c),a=Math.min(a,t/2,e/2,r/2);let l=[],u=[],d=[],m=[],f=0,h=0;g("z","y","x",-1,-1,r,e,t,s,n,0),g("z","y","x",1,-1,r,e,-t,s,n,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,n,4),g("x","y","z",-1,-1,t,e,-r,o,n,5),a>0&&(x("z","y","x",-1,-1,1,r,e,t,s,0),x("z","y","x",1,-1,-1,r,e,t,s,1),x("z","y","x",-1,1,-1,r,e,t,s,1),x("z","y","x",1,1,1,r,e,t,s,0),x("x","y","z",-1,-1,-1,t,e,r,o,0),x("x","y","z",1,-1,1,t,e,r,o,1),x("x","y","z",-1,1,1,t,e,r,o,0),x("x","y","z",1,1,-1,t,e,r,o,1),x("y","x","z",-1,-1,1,e,t,r,n,0),x("y","x","z",1,-1,-1,e,t,r,n,1),x("y","x","z",1,1,1,e,t,r,n,1),x("y","x","z",-1,1,-1,e,t,r,n,0),v(1,1,1),v(-1,1,1),v(1,-1,1),v(-1,-1,1),v(1,1,-1),v(-1,1,-1),v(1,-1,-1),v(-1,-1,-1)),this.setIndex(l),this.setAttribute("position",new Ct.Float32BufferAttribute(u,3)),this.setAttribute("normal",new Ct.Float32BufferAttribute(d,3)),this.setAttribute("uv",new Ct.Float32BufferAttribute(m,2));function g(A,_,b,D,S,y,I,T,L,C,N){let j=(y-2*a)/L,W=(I-2*a)/C,ne=y/2-a,ue=I/2-a,se=T/2,K=L+1,U=C+1,F=0,E=0,B=new Ct.Vector3;for(let P=0;P<U;P++){let G=P*W-ue;for(let Q=0;Q<K;Q++){let k=Q*j-ne;B[A]=k*D,B[_]=G*S,B[b]=se,u.push(B.x,B.y,B.z),B[A]=0,B[_]=0,B[b]=T>0?1:-1,d.push(B.x,B.y,B.z),m.push(Q/L),m.push(1-P/C),F+=1}}for(let P=0;P<C;P++)for(let G=0;G<L;G++){let Q=f+G+K*P,k=f+G+K*(P+1),V=f+(G+1)+K*(P+1),z=f+(G+1)+K*P;l.push(Q,k,z),l.push(k,V,z),E+=6}p.addGroup(h,E,N),h+=E,f+=F}function x(A,_,b,D,S,y,I,T,L,C,N){let j=(I-2*a)/C,W=I/2-a,ne=T/2-a,ue=L/2,se=C+1,K=0,U=0,F=new Ct.Vector3,E=new Ct.Vector3;for(let B=0;B<c+1;B++){let P=B/c*ml,G=Math.sin(P)*a,Q=(1-Math.cos(P))*a,k=Math.sin(P),V=Math.cos(P);F[_]=(ne+G)*S,F[b]=(ue-Q)*y,E[A]=0,E[_]=k*Math.sign(F[_]),E[b]=V*Math.sign(F[b]);for(let z=0;z<se;z++){let M=z*j-W;F[A]=M*D,u.push(F.x,F.y,F.z),d.push(E.x,E.y,E.z),m.push(z/C),m.push(0),K+=1}}for(let B=0;B<c;B++)for(let P=0;P<C;P++){let G=f+P+se*B,Q=f+P+se*(B+1),k=f+(P+1)+se*(B+1),V=f+(P+1)+se*B;l.push(G,Q,V),l.push(Q,k,V),U+=6}p.addGroup(h,U,N),h+=U,f+=K}function v(A,_,b){let D=new Ct.Vector3,S=new Ct.Vector3(t/2,e/2,r/2);S.subScalar(a);let y=[],I=A*_*b>0?(L,C,N)=>l.push(L,C,N):(L,C,N)=>l.push(L,N,C);for(let L=0;L<=c;L++){let C=[],N=ml*(1-L/c),j=Math.cos(N),W=Math.sin(N),ne=0;for(let ue=0;ue<=L;ue++){let se=Math.cos(ne),K=Math.sin(ne);D.x=j*se,D.y=W,D.z=j*K;let U=S.clone().addScaledVector(D,a);u.push(A*U.x,_*U.y,b*U.z),d.push(A*D.x,_*D.y,b*D.z),m.push(0,0),C.push(f++),ne+=ml/L}y.push(C)}let T=y.length-1;for(let L=0;L<T;L++){let C=y[L],N=y[L+1],j=C.length-1;I(C[0],N[1],N[0]);for(let W=1;W<=j;W++)I(C[W-1],C[W],N[W]),I(C[W],N[W+1],N[W])}}}};var Ve=require("three"),Kr=class extends Ve.BufferGeometry{constructor(t=[],e=[],r="",o=1,n=.2,s=4){super(),this.type="PolyhedronGeometryRound";let a=[],c=[],p=[];l(),u(),this.setAttribute("position",new Ve.Float32BufferAttribute(a,3)),this.setAttribute("normal",new Ve.Float32BufferAttribute(p,3)),this.setAttribute("uv",new Ve.Float32BufferAttribute(c,2));return;function l(){n=Math.min(1-1e-5,n),n==0&&(s=0);let m={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],f=new Ve.Vector3,h=f.clone(),g=new Ve.Triangle,x=n*o,v=o-x,A=s+1,_=new Ve.Vector3,b=(K,U)=>_.subVectors(K,U).normalize(),D=(K,U)=>Array(K).fill(void 0).map(U),S=D(t.length/3,(K,U)=>new Ve.Vector3().fromArray(t,U*3).setLength(o)),y=[],I=1e6;for(let K=0;K<S.length;K++){let U=S[K],F=[],E,B,P,G=1e10,Q=-1;for(;(Q=e.indexOf(K,Q+1))!=-1;){let M=Q-Q%3;E=e[M+(Q+1)%3],B=e[M+(Q+2)%3],P=U.distanceToSquared(S[E]),G=Math.min(G,P),F.push([E,B,P])}G+=1e-6;let k=[],V=0,z=F.length;for(let M=0;M<z;M++){[E,B,P]=F[V];let q=y[E]?.includes(K)==!0;P<=G&&k.push(E+ +q*I),V=F.findIndex(J=>J[0]==B)}y.push(k)}let T=[];{let K=0,U=0,F,E,B=m==3;for(let P=0;P<=s;P++){F=P*(P+1)/2,E=(P+1)*(P+2)/2;for(let G=0;G<s-P;G++)[K,U]=[F+G+P+2,E+G+P+3],T.push(F,E,...B?[U,F]:[K,E],U,K),[F,E]=[K,U];T.push(F,E,F+s+2)}}let L=f.clone(),C=f.clone(),N=f.clone(),j=f.clone(),W=f.clone(),ne=[],ue=D(S.length,()=>D(m,()=>f.clone()));for(let K=0;K<S.length;K++){f.copy(S[K]).normalize(),L.copy(f).multiplyScalar(v);let U=y[K];for(let k=0;k<U.length;k++){let V=U[k],z=U[(k+1)%m];g.setFromPointsAndIndices(S,K,V%I,z%I),g.b.sub(g.a).setLength(1e10).add(g.a),g.c.sub(g.a).setLength(1e10).add(g.a),g.closestPointToPoint(L,ue[K][k])}let F=[],E=[],B=[],P=new Ve.Vector3;s==0&&[...ue[K]].reduce((k,V)=>k.add(V),P).multiplyScalar(1/m);for(let k=0;k<m;k++){let V=[],z=(k-1+m)%m,M=ue[K][z],q=ue[K][k];f.copy(M).sub(L),h.copy(q).sub(L);let J=L.angleTo(f),ee=f.angleTo(h),H=Math.cos(J)*x;s==0?C.copy(P):C.copy(L).setLength(v+H),E.push(H);let Z=[C,M,q];for(let $=0;$<2;$++){let re=Z[$],ce=Z[$+1];j.subVectors(re,L),W.subVectors(ce,L),N.crossVectors(j,W).normalize();for(let ie=0;ie<A;ie++){let fe=[J,ee][$]*ie/A;f.copy(j).applyAxisAngle(N,fe).add(L),F.push(f.clone()),$&&(b(f,L),V.push([ie==0?re:f.clone(),_.clone()]))}$&&(b(ce,L),V.push([ce,_.clone()]))}B.push(V)}ne.push(B);let G=2*A,Q=2;for(let k=0;k<m;k++){let V=G*k,z=G*((k+1)%m),M=[F[V]];for(let J=1;J<A;J++){j=F[V+J],W=F[z+J],M.push(j);for(let ee=1,H=J-Q+1;ee<=H;ee++)f.lerpVectors(j,W,ee/(H+1)),f.sub(L).setLength(E[k]).add(L),M.push(f.clone());M.push(W)}for(let J=0;J<A;J++)M.push(F[J+A+V]);M.push(F[z+A]);let q=T.map(J=>M[J]);a.push(...q.map(J=>[J.x,J.y,J.z]).flat()),p.push(...q.map(J=>(b(J,L),[_.x,_.y,_.z])).flat())}}let se=[];for(let K=0;K<y.length;K++)for(let U=0;U<m;U++){let F=y[K][U];if(F<I){let E=y[F].findIndex(G=>G%I==K),B=ne[K][U],P=ne[F][E];for(let G=0;G<A;G++){let Q=B[G],k=P[A-G],V=B[G+1],z=P[A-(G+1)];[Q,k,V,V,k,z].forEach(M=>{a.push(M[0].x,M[0].y,M[0].z),p.push(M[1].x,M[1].y,M[1].z)})}se.push(B[0][0],P[A][0],B[A][0],P[0][0])}}for(;se.length;){let K,U,F,E;[K,U]=se.splice(0,2);let B=[K];for(;K!=U;)B.push(U),F=se.indexOf(U),E=F%2,U=se.splice(F-E,2)[1-E];_.subVectors(B[0],B[1]).cross(f.subVectors(B[0],B[2])).normalize();let P=_.dot(B[0])<0;P&&_.negate();for(let G=1;G<=B.length-2;G++)[B[G+ +P],B[G+1-+P],B[0]].forEach(Q=>{a.push(Q.x,Q.y,Q.z),p.push(_.x,_.y,_.z)})}}function u(){let d=new Ve.Vector3;for(let S=0;S<a.length;S+=3){d.x=a[S+0],d.y=a[S+1],d.z=a[S+2];let y=b(d)/2/Math.PI+.5,I=D(d)/Math.PI+.5;c.push(y,1-I)}let m=new Ve.Vector3,f=new Ve.Vector3,h=new Ve.Vector3,g=new Ve.Vector3,x=new Ve.Vector2,v=new Ve.Vector2,A=new Ve.Vector2,_=(S,y,I,T)=>{T<0&&S.x===1&&(c[y]=S.x-1),I.x===0&&I.z===0&&(c[y]=T/2/Math.PI+.5)};for(let S=0,y=0;S<a.length;S+=9,y+=6){m.set(a[S+0],a[S+1],a[S+2]),f.set(a[S+3],a[S+4],a[S+5]),h.set(a[S+6],a[S+7],a[S+8]),x.set(c[y+0],c[y+1]),v.set(c[y+2],c[y+3]),A.set(c[y+4],c[y+5]),g.copy(m).add(f).add(h).divideScalar(3);let I=b(g);_(x,y+0,m,I),_(v,y+2,f,I),_(A,y+4,h,I)}for(let S=0;S<c.length;S+=6){let y=c[S+0],I=c[S+2],T=c[S+4],L=Math.max(y,I,T),C=Math.min(y,I,T);L>.9&&C<.1&&(y<.2&&(c[S+0]+=1),I<.2&&(c[S+2]+=1),T<.2&&(c[S+4]+=1))}function b(S){return Math.atan2(S.z,-S.x)}function D(S){return Math.atan2(-S.y,Math.sqrt(S.x*S.x+S.z*S.z))}}}static fromJSON(t){return new Kr(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};var hd=require("three"),gd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},i.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(i){let{width:t,height:e,depth:r,detail:o,corner:n,cornerSides:s}=i.parameters,a=o===0&&n!==0?new Jn(t*.5,n,s):new hd.DodecahedronBufferGeometry(t*.5,o);return a.scale(1,e/t,r/t),Object.assign(a,{userData:{...i,type:"DodecahedronGeometry"}})}},Jn=class extends Kr{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,n=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,-n,-o,0,-n,o,0,n,-o,0,n,o,-n,-o,0,-n,o,0,n,-o,0,n,o,0,-o,0,-n,o,0,-n,-o,0,n,o,0,n],a=[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,a,c,t,e,r),this.type=c}static fromJSON(t){return new Jn(t.radius,t.corner,t.cornerSides)}};var be=require("three");var he=require("three"),ei=1e-12,nn=class{constructor(t){this.position=new he.Vector2;this.startPosition=new he.Vector2;this.uuid=he.MathUtils.generateUUID();this.position=t.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(t){this.position.copy(this.startPosition).add(t)}copy(t){return this.position.copy(t.position),this.startPosition.copy(t.startPosition),this}clone(){return new nn(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},sn=class extends nn{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new sn(this.parent).copy(this)}},Xt=class extends nn{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new sn(this),new sn(this))}static create(e,r){let o=new Xt(e,new he.Vector2(...r.position));return o.controls[0].position.set(...r.controlPrevious.position),o.controls[1].position.set(...r.controlNext.position),o.roundness=r.roundness,o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored,o}getOppositeControl(e){let r=this.controls.indexOf(e);return r===0?this.controls[1]:r===1?this.controls[0]:null}applyOffsetToControls(e,r=1){for(let o=0,n=this.controls.length;o<n;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 Xt(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let e=this.curveBefore?.getTangentAt(1),r=this.curveAfter?.getTangentAt(0);return[e,r]}computeNormals(e=new he.Vector2,r=new he.Vector2){let[o,n]=this.computeTangents();return o&&n&&(yd(o,e),yd(n,r)),[e,r]}computeTangent(e=new he.Vector2){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new he.Vector2){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function yd(i,t=new he.Vector2){let e=i.length();return t.set(-i.y/e,i.x/e)}var gl=i=>i,an=new he.Vector2,Qs=new he.Vector2,Ev=new he.Vector2,Gv=new he.Vector2,Rv=new he.Vector2,Fv=new he.Vector2,vd=new he.Vector3,bd=new he.Vector3;function _d(i){let t=new he.Vector2;t.addVectors(i.v0,an.subVectors(i.v1,i.v0).multiplyScalar(2/3));let e=new he.Vector2;return e.addVectors(i.v2,Qs.subVectors(i.v1,i.v2).multiplyScalar(2/3)),new he.CubicBezierCurve(i.v0,t,e,i.v2)}function ti(i,t,e=Number.EPSILON){return Math.abs(i-t)<e}function Vv(i,t,e=Number.EPSILON){return i.distanceTo(t)<e}function zv(i,t,e=Number.EPSILON){return i.distanceTo(t)<e}function yl(i,t,e){let r=Math.sqrt(Math.pow(t.x-i.x,2)+Math.pow(t.y-i.y,2)),o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),n=Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2));return Math.acos((o*o+r*r-n*n)/(2*o*r))}function Sd(i,t,e){return xd(i,t)&&xd(t,e)&&hl(i.position,t.position,e.position)}function hl(i,t,e){return an.copy(t).sub(i).cross(Qs.copy(e).sub(i))===0}function wd(i,t,e,r,o){let n=Math.sqrt(Math.pow(t.x-i.x,2)+Math.pow(t.y-i.y,2)),s=(i.y+t.y)/2,a=(i.x+t.x)/2,c=Math.sqrt(Math.pow(e,2)-Math.pow(n/2,2))*(i.y-t.y)/n,p=Math.sqrt(Math.pow(e,2)-Math.pow(n/2,2))*(t.x-i.x)/n;return r.set(a+c,s+p),o.set(a-c,s-p),[r,o]}function Td(i,t,e){let r=i.distanceTo(e),o=t.distanceTo(e);return r<o?t:i}function Ad(i,t,e,r,o,n){let s=t.x-i.x,a=t.y-i.y,c=e.x-i.x,p=e.y-i.y,l=Math.sqrt((s+c)*(s+c)+(a+p)*(a+p)),u;return yl(t,i,e)>Math.PI&&(l*=-1),ti(p,a)?u=(a+p)*(r/l-.5)*8/3/(s-c):u=(s+c)*(r/l-.5)*8/3/(p-a),o.set(t.x-u*a,t.y+u*s),n.set(e.x+u*p,e.y-u*c),[o,n]}function xl(i,t){return i.position.equals(i.controls[1].position)&&t.position.equals(t.controls[0].position)}function xd(i,t){return hl(i.position,i.controls[1].position,t.position)&&hl(i.position,t.controls[0].position,t.position)}function Cd(i,t,e,r,o=.5){let n=an.subVectors(t,i).multiplyScalar(o).add(i),s=Qs.subVectors(e,t).multiplyScalar(o).add(t),a=Ev.subVectors(r,e).multiplyScalar(o).add(e),c=n,p=Gv.subVectors(s,n).multiplyScalar(o).add(n),l=Rv.subVectors(a,s).multiplyScalar(o).add(s),u=a,d=Fv.subVectors(l,p).multiplyScalar(o).add(p);return[i.x,i.y,c.x,c.y,p.x,p.y,d.x,d.y,l.x,l.y,u.x,u.y,r.x,r.y]}function Nd(i,t,e=12,r=!0){let o=bd.set(0,0,0),n,s=0,a=[];for(let c=0;c<t.length;c++){let p=gl(t[c]),l=an,u=Qr(p,e);a.push(u);for(let d=0;d<=u;d++)if(p instanceof he.CubicBezierCurve||p instanceof he.QuadraticBezierCurve||p instanceof he.LineCurve){if(p.getPoint(d/u,l),o.set(l.x,l.y,0),n!==void 0&&zv(n,o))continue;n===void 0&&(n=vd),n.copy(o),i.setXYZ(s,o.x,o.y,o.z),s++}}return r&&s>1&&!(i.getX(s-1)===i.getX(0)&&i.getY(s-1)===i.getY(0)&&i.getZ(s-1)===i.getZ(0))&&(i.setXYZ(s,i.getX(0),i.getY(0),i.getZ(0)),s++),i}function Od(i,t,e,r=12,o=!0){let n=bd.set(0,0,0),s=0,a=[];for(let c=0;c<t.length;c++){if(e[c]===!1)continue;let p,l=gl(t[c]),u=an,d=Qr(l,r);a.push(d);for(let m=0;m<=d;m++)if(l instanceof he.CubicBezierCurve||l instanceof he.QuadraticBezierCurve||l instanceof he.LineCurve){if(l.getPoint(m/d,u),n.set(u.x,u.y,0),p?.equals(n))continue;p===void 0?p=vd:(i.setXYZ(s,p.x,p.y,p.z),s++,i.setXYZ(s,n.x,n.y,n.z),s++),p.copy(n)}}return o&&s>1&&!(i.getX(s-1)===i.getX(0)&&i.getY(s-1)===i.getY(0)&&i.getZ(s-1)===i.getZ(0))&&(i.setXYZ(s,i.getX(0),i.getY(0),i.getZ(0)),s++),a}function vl(i,t=12,e=!1){let r=[];for(let o=0,n=i.length;o<n;o++){let s=i[o],a=0;if(e&&s.roundedCurveCorner!==void 0){let c=Qr(s.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=c),a+=c}s.curveAfter!==void 0&&(a+=Qr(s.curveAfter,t)),r.push(a)}return i.length>0&&e&&i[0].roundedCurveCorner!==void 0&&(r[i.length-1]+=Qr(i[0].roundedCurveCorner,t)*.5),r}function Qr(i,t=12){return i&&i instanceof he.EllipseCurve?t*2:i&&(i instanceof he.LineCurve||i instanceof he.LineCurve3)?1:i&&i instanceof he.SplineCurve?t*i.points.length:t}function Ld(i,t,e=12,r=!0){let o,n=0;for(let s=0;s<t.length;s++){let a=gl(t[s]),c=Qr(a,e),p=an;for(let l=0;l<=c;l++)if(a instanceof he.CubicBezierCurve||a instanceof he.QuadraticBezierCurve||a instanceof he.LineCurve){if(a.getPoint(l/c,p),o!==void 0&&Vv(o,p,ei))continue;o===void 0&&(o=Qs),o.copy(p),i.push(p.x,p.y),n++}}return ti(i[0],i[i.length-2],ei)&&ti(i[1],i[i.length-1],ei)&&(i.pop(),i.pop()),r&&n>1&&!(ti(i[n-1],i[1],ei)&&ti(i[n-2],i[0],ei))&&(i.push(i[0],i[1]),n++),i}var bl=new be.Vector2,Uv=new be.Vector2,kv=new be.Vector2,jv=new be.Vector2,Hv=new be.Vector2,Wv=new be.Vector2,Ce=class extends be.Shape{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new be.EventDispatcher;this.plane=new be.Plane(new be.Vector3(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=be.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,o){let n=new Ce;return n.isClosed=e.isClosed,n.points=e.points.map(s=>Xt.create(s.id,s.data)),typeof e.roundness=="number"&&(n.roundness=e.roundness),n.shapeHoles=e.shapeHoles.map(s=>Ce.createFromState(s)),r!==void 0&&o!==void 0&&n.applySize(r,o),n.update(),n}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(n=>n.uuid===e);if(o<0){let n=r;for(let s=0,a=this.shapeHoles.length;s<a;s++){let c=this.shapeHoles[s],p=c.points.length-1,l=c.getPointIndexById(e);if(l<0)n+=p;else return l+n}}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)for(let r=0,o=this.shapeHoles.length;r<o;r++){let n=this.shapeHoles[r],s=e-this.points.length;if(s<=n.points.length-1)return n.points[s]}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,n=this.shapeHoles.length;o<n;o++){let s=this.shapeHoles[o],a=s.points.indexOf(e);if(a>=0)return r+a;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=bl.set(e,r);for(let n=0,s=this.points.length;n<s;n++){let a=this.points[n];a.position.multiply(o),a.controls[0].position.multiply(o),a.controls[1].position.multiply(o)}for(let n=0,s=this.shapeHoles.length;n<s;n++)this.shapeHoles[n].applyScale(e,r);this._update(!1)}createPoint(e,r=0,o=be.MathUtils.generateUUID()){let n;e instanceof be.Vector2?n=e:n=new be.Vector2(e,r);let s=new Xt(o,n);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 n=this.points[r];if(n.uuid===e)return n}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 n=o?this.roundedCurveDivisions:this.curveDivisions;return Nd(e,o?this.roundedCurves:this.curves,r,this.autoClose),n.reduce((s,a)=>s+a,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=vl(this.points,e,!1),this.roundedCurveDivisions=vl(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return Od(e,this.curves,r,o,this.autoClose).reduce((s,a)=>s+a,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),Ld(e,this.roundedCurves,r,this.autoClose)}getCurveIndexFromVertexId(e,r=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let n=r?this.roundedCurveDivisions:this.curveDivisions,s=0;r&&this.points[0].roundedCurveCorner!==void 0&&(s=Qr(this.points[0].roundedCurveCorner,this.subdivision)*.5);let a=e-s;a<0&&(a+=n.reduce((c,p)=>c+p,0));for(let c=0,p=n.length;c<p;c++){let l=n[c];if(a<o+l)return[c,(a-o+1)/l];o+=l}return[0,1]}getCurveT(e,r,o){let n=this.points[e],s=this.points[e>=this.points.length-1?0:e+1],a=this.curveDivisions,c=a[e];if(xl(n,s)){let u=n.position.distanceTo(s.position);return n.position.distanceTo(bl.set(o.x,o.y))/u}let p=0;for(let u=0;u<e;u++)p+=a[u];return(r-p)/c}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,r){xl(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 n=o.clone();e.roundedCurveBefore=n,r.roundedCurveAfter=n,e.roundedCurveCorner=void 0,this.roundedCurves.push(n)}_update(e=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let o=0,n=this.points.length;o<n;o++){let s=this.points[o];if(o===0)this.moveTo(s.position.x,s.position.y);else{let a=this.points[o-1];this._applyCurveForPoint(s,a)}}let r=this.getLastPoint();if(r?.curveAfter&&(r.curveAfter=void 0),this.isClosed){let o=this.points[0],n=this.points[this.points.length-1];this._applyCurveForPoint(o,n)}if(this.points.length>2){let o=0;for(let n=0,s=this.points.length;n<s;n++){let a=this.points[n],c=this.points[n-1]??this.points[this.points.length-1],p=this.points[n+1]??this.points[0],l=a.roundness,u=c&&p&&Sd(c,a,p);if(!a.controlsMoved()&&l>0&&!u){let d=a.curveBefore,m=a.curveAfter;if(d===void 0||m===void 0)continue;let f=a.roundedCurveBefore,h=a.roundedCurveAfter,g=d.getLength(),x=m.getLength(),v=Math.min(l,g*.499),A=Math.min(l,x*.499),_=Math.min(v,A),b=1-_/g,D=_/x,S=d.getPointAt(b,bl),y=m.getPointAt(D,Uv);this._subSplitCurve(d,f,b,S,void 0),this._subSplitCurve(m,h,D,void 0,y);let I;if(this.useCubicForRoundedCorners){let T=yl(S,a.position,y)/2,L=Math.tan(T)*S.distanceTo(a.position),[C,N]=wd(S,y,L,kv,jv),j=Td(C,N,a.position),[W,ne]=Ad(j,S,y,L,Hv,Wv);I=new be.CubicBezierCurve(S.clone(),W.clone(),ne.clone(),y.clone())}else I=new be.QuadraticBezierCurve(S.clone(),a.position.clone(),y.clone());a.roundedCurveCorner=I,this.roundedCurves.splice(n+o,0,I),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,r,o,n,s){if(e instanceof be.LineCurve)n!==void 0&&r.v2.copy(n),s!==void 0&&r.v1.copy(s);else{let a=e,c=r,p=a.getUtoTmapping(o,0),l=Cd(a.v0,a.v1,a.v2,a.v3,p);return n!==void 0&&(c.v0.set(l[0],l[1]),c.v1.set(l[2],l[3]),c.v2.set(l[4],l[5]),c.v3.set(l[6],l[7])),s!==void 0&&(c.v0.set(l[6],l[7]),c.v1.set(l[8],l[9]),c.v2.set(l[10],l[11]),c.v3.set(l[12],l[13])),c}return r}clone(){let e=new Ce(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 n=o*7,s=e.points[n+0],a=e.points[n+1],c=e.points[n+2],p=e.points[n+3],l=e.points[n+4],u=e.points[n+5],d=e.points[n+6],m=new Xt(be.MathUtils.generateUUID(),new be.Vector2(s,a));m.controls[0].position.set(c,p),m.controls[1].position.set(l,u),m.roundness=d,this.points.push(m)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let n=new Ce;return n.fromJSON(o),n}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let r=(n,s)=>{s instanceof be.CubicBezierCurve&&s.v3.equals(n.position)&&n.controls[0].position.copy(s.v2)},o=n=>{let s=[],a,c;for(a=0,c=n.length;a<c;a++)n[a]instanceof be.QuadraticBezierCurve&&(n[a]=_d(n[a]));for(a=0,c=n.length;a<c;a++){let u=n[a],d=a>0?n[a-1]:null,m;u instanceof be.CubicBezierCurve?(m=this.createPoint(u.v0),m.controls[1].position.copy(u.v1)):u instanceof be.LineCurve&&(m=this.createPoint(u.v1)),m!==void 0&&(d!==null&&r(m,d),s.push(m))}let p=n[n.length-1],l=!1;return p instanceof be.CubicBezierCurve?p.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(p.v2),l=!0):p instanceof be.LineCurve&&p.v2.equals(s[0].position)&&(l=!0),this.isClosed=l,s};return this.points=o(e.curves),e instanceof be.Shape&&(this.shapeHoles=e.holes.map(n=>{let s=new Ce;return s.fromShape(n),s})),this.update(),this}};var Sl=Math.PI*2;function _l({x:i,y:t},e,r,o,n){return{x:i*e+o,y:t*r+n}}function qv(i,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=Math.cos(i),o=Math.sin(i),n=Math.cos(i+t),s=Math.sin(i+t);return[{x:r-o*e,y:o+r*e},{x:n+s*e,y:s-n*e},{x:n,y:s}]}function Id(i,t,e,r){let o=i*r-t*e<0?-1:1,n=Math.min(1,Math.max(-1,i*e+t*r));return o*Math.acos(n)}function $v(i,t,e,r,o,n,s,a,c,p){let l=Math.pow(o,2),u=Math.pow(n,2),d=Math.pow(s,2),m=Math.pow(a,2),f=l*u-l*m-u*d;f<0&&(f=0),f/=l*m+u*d,f=Math.sqrt(f)*(c===p?-1:1);let h=f*o/n*a,g=f*-n/o*s,x=h+(i+e)/2,v=g+(t+r)/2,A=(s-h)/o,_=(a-g)/n,b=(-s-h)/o,D=(-a-g)/n,S=Id(1,0,A,_),y=Id(A,_,b,D);return!p&&y>0&&(y-=Sl),p&&y<0&&(y+=Sl),{centerx:x,centery:v,ang1:S,ang2:y}}function Pd({px:i,py:t,cx:e,cy:r,rx:o,ry:n,largeArcFlag:s,sweepFlag:a}){let c=[];if(o===0||n===0)return[];let p=(i-e)/2,l=(t-r)/2;if(p===0&&l===0)return[];o=Math.abs(o),n=Math.abs(n);let u=Math.pow(p,2)/Math.pow(o,2)+Math.pow(l,2)/Math.pow(n,2);u>1&&(o*=Math.sqrt(u),n*=Math.sqrt(u));let d=$v(i,t,e,r,o,n,p,l,s,a),{ang1:m,ang2:f}=d,{centerx:h,centery:g}=d,x=Math.abs(f)/(Sl/4);Math.abs(1-x)<1e-7&&(x=1);let v=Math.max(Math.ceil(x),1);f/=v;for(let A=0;A<v;A++)c.push(qv(m,f)),m+=f;return c.map(A=>{let{x:_,y:b}=_l(A[0],o,n,h,g),{x:D,y:S}=_l(A[1],o,n,h,g),{x:y,y:I}=_l(A[2],o,n,h,g);return{x1:_,y1:b,x2:D,y2:S,x:y,y:I}})}var vo=require("three");var Be;(function(i){i[i.ODD=0]="ODD",i[i.NONZERO=1]="NONZERO",i[i.POSITIVE=2]="POSITIVE",i[i.NEGATIVE=3]="NEGATIVE",i[i.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Be||(Be={}));var Ze;(function(i){i[i.POLYGONS=0]="POLYGONS",i[i.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",i[i.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Ze||(Ze={}));function pe(i,t){if(!i)throw t||"Assertion Failed!"}var ae=function(){function i(){}return i.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},i.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},i.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},i.edgeGoesLeft=function(t){return i.vertLeq(t.Dst,t.Org)},i.edgeGoesRight=function(t){return i.vertLeq(t.Org,t.Dst)},i.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},i.edgeEval=function(t,e,r){pe(i.vertLeq(t,e)&&i.vertLeq(e,r));var o=e.s-t.s,n=r.s-e.s;return o+n>0?o<n?e.t-t.t+(t.t-r.t)*(o/(o+n)):e.t-r.t+(r.t-t.t)*(n/(o+n)):0},i.edgeSign=function(t,e,r){pe(i.vertLeq(t,e)&&i.vertLeq(e,r));var o=e.s-t.s,n=r.s-e.s;return o+n>0?(e.t-r.t)*o+(e.t-t.t)*n:0},i.transEval=function(t,e,r){pe(i.transLeq(t,e)&&i.transLeq(e,r));var o=e.t-t.t,n=r.t-e.t;return o+n>0?o<n?e.s-t.s+(t.s-r.s)*(o/(o+n)):e.s-r.s+(r.s-t.s)*(n/(o+n)):0},i.transSign=function(t,e,r){pe(i.transLeq(t,e)&&i.transLeq(e,r));var o=e.t-t.t,n=r.t-e.t;return o+n>0?(e.s-r.s)*o+(e.s-t.s)*n:0},i.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},i.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))},i.intersect=function(t,e,r,o,n){var s,a,c;i.vertLeq(t,e)||(c=t,t=e,e=c),i.vertLeq(r,o)||(c=r,r=o,o=c),i.vertLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),i.vertLeq(r,e)?i.vertLeq(e,o)?(s=i.edgeEval(t,r,e),a=i.edgeEval(r,e,o),s+a<0&&(s=-s,a=-a),n.s=i.interpolate(s,r.s,a,e.s)):(s=i.edgeSign(t,r,e),a=-i.edgeSign(t,o,e),s+a<0&&(s=-s,a=-a),n.s=i.interpolate(s,r.s,a,o.s)):n.s=(r.s+e.s)/2,i.transLeq(t,e)||(c=t,t=e,e=c),i.transLeq(r,o)||(c=r,r=o,o=c),i.transLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),i.transLeq(r,e)?i.transLeq(e,o)?(s=i.transEval(t,r,e),a=i.transEval(r,e,o),s+a<0&&(s=-s,a=-a),n.t=i.interpolate(s,r.t,a,e.t)):(s=i.transSign(t,r,e),a=-i.transSign(t,o,e),s+a<0&&(s=-s,a=-a),n.t=i.interpolate(s,r.t,a,o.t)):n.t=(r.t+e.t)/2},i}(),ri=function(){function i(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return i}(),Zs=function(){function i(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(i.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),i}(),ln=function(){function i(){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 i}(),Md=function(){function i(){var t=new ln,e=new ri,r=new Zs(0),o=new Zs(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 i.prototype.makeEdge_=function(t){var e=new Zs(0),r=new Zs(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},i.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},i.prototype.makeVertex_=function(t,e,r){var o=t;pe(o,"Vertex can't be null!");var n=r.prev;o.prev=n,n.next=o,o.next=r,r.prev=o,o.anEdge=e;var s=e;do s.Org=o,s=s.Onext;while(s!==e)},i.prototype.makeFace_=function(t,e,r){var o=t;pe(o,"Face can't be null");var n=r.prev;o.prev=n,n.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)},i.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},i.prototype.killVertex_=function(t,e){var r=t.anEdge,o=r;do o.Org=e,o=o.Onext;while(o!==r);var n=t.prev,s=t.next;s.prev=n,n.next=s},i.prototype.killFace_=function(t,e){var r=t.anEdge,o=r;do o.Lface=e,o=o.Lnext;while(o!==r);var n=t.prev,s=t.next;s.prev=n,n.next=s},i.prototype.makeEdge=function(){var t=new ln,e=new ln,r=new ri,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},i.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 n=new ln;this.makeVertex_(n,e,t.Org),t.Org.anEdge=t}if(!r){var s=new ri;this.makeFace_(s,e,t.Lface),t.Lface.anEdge=t}}},i.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 ri;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)},i.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),r=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new ln;return this.makeVertex_(o,r,e.Org),e.Lface=r.Lface=t.Lface,e},i.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},i.prototype.connect=function(t,e){var r=!1,o=this.makeEdge_(t),n=o.Sym;if(e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(o,t.Lnext),this.splice_(n,e),o.Org=t.Dst,n.Org=e.Org,o.Lface=n.Lface=t.Lface,t.Lface.anEdge=n,!r){var s=new ri;this.makeFace_(s,o,t.Lface)}return o},i.prototype.zapFace=function(t){var e=t.anEdge,r,o,n,s,a;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)),n=r.Sym,n.Onext===n?this.killVertex_(n.Org,null):(n.Org.anEdge=n.Onext,this.splice_(n,n.Oprev)),this.killEdge_(r));while(r!=e);s=t.prev,a=t.next,a.prev=s,s.next=a},i.prototype.countFaceVerts_=function(t){var e=t.anEdge,r=0;do r++,e=e.Lnext;while(e!==t.anEdge);return r},i.prototype.mergeConvexFaces=function(t){var e,r,o,n,s,a,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,n=r.Sym,n&&n.Lface&&n.Lface.inside&&(a=this.countFaceVerts_(e),c=this.countFaceVerts_(n.Lface),a+c-2<=t&&ae.vertCCW(r.Lprev.Org,r.Org,n.Lnext.Lnext.Org)&&ae.vertCCW(n.Lprev.Org,n.Org,r.Lnext.Lnext.Org)&&(o=n.Lnext,this.delete(n),r=null,n=null)),!(r&&r.Lnext.Org===s);)r=o;return!0},i.prototype.check=function(){var t=this.fHead,e=this.vHead,r=this.eHead,o,n,s,a,c,p;for(n=t,n=t;(o=n.next)!==t;n=o){pe(o.prev===n),c=o.anEdge;do pe(c.Sym!==c),pe(c.Sym.Sym===c),pe(c.Lnext.Onext.Sym===c),pe(c.Onext.Sym.Lnext===c),pe(c.Lface===o),c=c.Lnext;while(c!==o.anEdge)}for(pe(o.prev===n&&o.anEdge===null),a=e,a=e;(s=a.next)!==e;a=s){pe(s.prev===a),c=s.anEdge;do pe(c.Sym!==c),pe(c.Sym.Sym===c),pe(c.Lnext.Onext.Sym===c),pe(c.Onext.Sym.Lnext===c),pe(c.Org===s),c=c.Onext;while(c!==s.anEdge)}for(pe(s.prev===a&&s.anEdge===null),p=r,p=r;(c=p.next)!==r;p=c)pe(c.Sym.next===p.Sym),pe(c.Sym!==c),pe(c.Sym.Sym===c),pe(c.Org!==null),pe(c.Dst!==null),pe(c.Lnext.Onext.Sym===c),pe(c.Onext.Sym.Lnext===c);pe(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)},i}(),Dd=function(){function i(){this.handle=null}return i}(),Bd=function(){function i(){this.key=null,this.node=0}return i}(),Xv=function(){function i(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 Dd,this.handles[r]=new Bd;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return i.prototype.floatDown_=function(t){var e=this.nodes,r=this.handles,o,n,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,pe(s<=this.max),n=e[s].handle,s>this.size||this.leq(r[o].key,r[n].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=n,r[n].node=t,t=s}},i.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,o,n,s;for(o=e[t].handle;;){if(s=t>>1,n=e[s].handle,s===0||this.leq(r[n].key,r[o].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=n,r[n].node=t,t=s}},i.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},i.prototype.min=function(){return this.handles[this.nodes[1].handle].key},i.prototype.insert=function(t){var e,r;if(e=++this.size,e*2>this.max){this.max*=2;var o,n;for(n=this.nodes.length,this.nodes.length=this.max+1,o=n;o<this.nodes.length;o++)this.nodes[o]=new Dd;for(n=this.handles.length,this.handles.length=this.max+1,o=n;o<this.handles.length;o++)this.handles[o]=new Bd}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},i.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},i.prototype.delete=function(t){var e=this.nodes,r=this.handles,o;pe(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},i}(),wl=function(){function i(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return i}(),Ed=function(){function i(){this.key=null,this.next=null,this.prev=null}return i}(),Yv=function(){function i(t,e){this.frame=t,this.leq=e,this.head=new Ed,this.head.next=this.head,this.head.prev=this.head}return i.prototype.min=function(){return this.head.next},i.prototype.max=function(){return this.head.prev},i.prototype.insert=function(t){return this.insertBefore(this.head,t)},i.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},i.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var r=new Ed;return r.key=e,r.next=t.next,t.next.prev=r,r.prev=t,t.next=r,r},i.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},i}(),Kv=function(){function i(){}return i.regionBelow=function(t){return t.nodeUp.prev.key},i.regionAbove=function(t){return t.nodeUp.next.key},i.debugEvent=function(t){},i.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},i.edgeLeq=function(t,e,r){var o=t.event,n=e.eUp,s=r.eUp;if(n.Dst===o)return s.Dst===o?ae.vertLeq(n.Org,s.Org)?ae.edgeSign(s.Dst,n.Org,s.Org)<=0:ae.edgeSign(n.Dst,s.Org,n.Org)>=0:ae.edgeSign(s.Dst,o,s.Org)<=0;if(s.Dst===o)return ae.edgeSign(n.Dst,o,n.Org)>=0;var a=ae.edgeEval(n.Dst,o,n.Org),c=ae.edgeEval(s.Dst,o,s.Org);return a>=c},i.deleteRegion=function(t,e){e.fixUpperEdge&&pe(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},i.fixUpperEdge=function(t,e,r){pe(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=r,r.activeRegion=e},i.topLeftRegion=function(t,e){var r=e.eUp.Org,o;do e=i.regionAbove(e);while(e.eUp.Org===r);if(e.fixUpperEdge){if(o=t.mesh.connect(i.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;i.fixUpperEdge(t,e,o),e=i.regionAbove(e)}return e},i.topRightRegion=function(t){var e=t.eUp.Dst;do t=i.regionAbove(t);while(t.eUp.Dst===e);return t},i.addRegionBelow=function(t,e,r){var o=new wl;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},i.isWindingInside=function(t,e){switch(t.windingRule){case Be.ODD:return(e&1)!==0;case Be.NONZERO:return e!==0;case Be.POSITIVE:return e>0;case Be.NEGATIVE:return e<0;case Be.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},i.computeWinding=function(t,e){e.windingNumber=i.regionAbove(e).windingNumber+e.eUp.winding,e.inside=i.isWindingInside(t,e.windingNumber)},i.finishRegion=function(t,e){var r=e.eUp,o=r.Lface;o.inside=e.inside,o.anEdge=r,i.deleteRegion(t,e)},i.finishLeftRegions=function(t,e,r){for(var o,n=null,s=e,a=e.eUp;s!==r;){if(s.fixUpperEdge=!1,n=i.regionBelow(s),o=n.eUp,o.Org!=a.Org){if(!n.fixUpperEdge){i.finishRegion(t,s);break}o=t.mesh.connect(a.Lprev,o.Sym),i.fixUpperEdge(t,n,o)}a.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(a,o)),i.finishRegion(t,s),a=n.eUp,s=n}return a},i.addRightEdges=function(t,e,r,o,n,s){var a,c,p,l,u=!0;p=r;do pe(ae.vertLeq(p.Org,p.Dst)),i.addRegionBelow(t,e,p.Sym),p=p.Onext;while(p!==o);for(n===null&&(n=i.regionBelow(e).eUp.Rprev),c=e,l=n;a=i.regionBelow(c),p=a.eUp.Sym,p.Org===l.Org;)p.Onext!==l&&(t.mesh.splice(p.Oprev,p),t.mesh.splice(l.Oprev,p)),a.windingNumber=c.windingNumber-p.winding,a.inside=i.isWindingInside(t,a.windingNumber),c.dirty=!0,!u&&i.checkForRightSplice(t,c)&&(i.addWinding(p,l),i.deleteRegion(t,c),t.mesh.delete(l)),u=!1,c=a,l=p;c.dirty=!0,pe(c.windingNumber-p.winding===a.windingNumber),s&&i.walkDirtyRegions(t,c)},i.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},i.vertexWeights=function(t,e,r){var o=ae.vertL1dist(e,t),n=ae.vertL1dist(r,t),s=.5*n/(o+n),a=.5*o/(o+n);t.coords[0]+=s*e.coords[0]+a*r.coords[0],t.coords[1]+=s*e.coords[1]+a*r.coords[1],t.coords[2]+=s*e.coords[2]+a*r.coords[2]},i.getIntersectData=function(t,e,r,o,n,s){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,i.vertexWeights(e,r,o),i.vertexWeights(e,n,s)},i.checkForRightSplice=function(t,e){var r=i.regionBelow(e),o=e.eUp,n=r.eUp;if(ae.vertLeq(o.Org,n.Org)){if(ae.edgeSign(n.Dst,o.Org,n.Org)>0)return!1;ae.vertEq(o.Org,n.Org)?o.Org!==n.Org&&(t.pq.delete(o.Org.pqHandle),i.spliceMergeVertices(t,n.Oprev,o)):(t.mesh.splitEdge(n.Sym),t.mesh.splice(o,n.Oprev),e.dirty=r.dirty=!0)}else{if(ae.edgeSign(o.Dst,n.Org,o.Org)<0)return!1;i.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),t.mesh.splice(n.Oprev,o)}return!0},i.checkForLeftSplice=function(t,e){var r=i.regionBelow(e),o=e.eUp,n=r.eUp,s;if(pe(!ae.vertEq(o.Dst,n.Dst)),ae.vertLeq(o.Dst,n.Dst)){if(ae.edgeSign(o.Dst,n.Dst,o.Org)<0)return!1;i.regionAbove(e).dirty=e.dirty=!0,s=t.mesh.splitEdge(o),t.mesh.splice(n.Sym,s),s.Lface.inside=e.inside}else{if(ae.edgeSign(n.Dst,o.Dst,n.Org)>0)return!1;e.dirty=r.dirty=!0,s=t.mesh.splitEdge(n),t.mesh.splice(o.Lnext,n.Sym),s.Rface.inside=e.inside}return!0},i.checkForIntersect=function(t,e){var r=i.regionBelow(e),o=e.eUp,n=r.eUp,s=o.Org,a=n.Org,c=o.Dst,p=n.Dst,l,u,d=new ln,m,f;if(pe(!ae.vertEq(p,c)),pe(ae.edgeSign(c,t.event,s)<=0),pe(ae.edgeSign(p,t.event,a)>=0),pe(s!==t.event&&a!==t.event),pe(!e.fixUpperEdge&&!r.fixUpperEdge),s===a||(l=Math.min(s.t,c.t),u=Math.max(a.t,p.t),l>u))return!1;if(ae.vertLeq(s,a)){if(ae.edgeSign(p,s,a)>0)return!1}else if(ae.edgeSign(c,a,s)<0)return!1;return i.debugEvent(t),ae.intersect(c,s,p,a,d),pe(Math.min(s.t,c.t)<=d.t),pe(d.t<=Math.max(a.t,p.t)),pe(Math.min(p.s,c.s)<=d.s),pe(d.s<=Math.max(a.s,s.s)),ae.vertLeq(d,t.event)&&(d.s=t.event.s,d.t=t.event.t),m=ae.vertLeq(s,a)?s:a,ae.vertLeq(m,d)&&(d.s=m.s,d.t=m.t),ae.vertEq(d,s)||ae.vertEq(d,a)?(i.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(n.Sym,o),e=i.topLeftRegion(t,e),o=i.regionBelow(e).eUp,i.finishLeftRegions(t,i.regionBelow(e),r),i.addRightEdges(t,e,o.Oprev,o,o,!0),!0):c===t.event?(t.mesh.splitEdge(n.Sym),t.mesh.splice(o.Lnext,n.Oprev),r=e,e=i.topRightRegion(e),f=i.regionBelow(e).eUp.Rprev,r.eUp=n.Oprev,n=i.finishLeftRegions(t,r,null),i.addRightEdges(t,e,n.Onext,o.Rprev,f,!0),!0):(ae.edgeSign(c,t.event,d)>=0&&(i.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(n.Sym),n.Org.s=t.event.s,n.Org.t=t.event.t),!1):(t.mesh.splitEdge(o.Sym),t.mesh.splitEdge(n.Sym),t.mesh.splice(n.Oprev,o),o.Org.s=d.s,o.Org.t=d.t,o.Org.pqHandle=t.pq.insert(o.Org),i.getIntersectData(t,o.Org,s,c,a,p),i.regionAbove(e).dirty=e.dirty=r.dirty=!0,!1)},i.walkDirtyRegions=function(t,e){for(var r=i.regionBelow(e),o,n;;){for(;r.dirty;)e=r,r=i.regionBelow(r);if(!e.dirty&&(r=e,e=i.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,n=r.eUp,o.Dst!==n.Dst&&i.checkForLeftSplice(t,e)&&(r.fixUpperEdge?(i.deleteRegion(t,r),t.mesh.delete(n),r=i.regionBelow(e),n=r.eUp):e.fixUpperEdge&&(i.deleteRegion(t,e),t.mesh.delete(o),e=i.regionAbove(r),o=e.eUp)),o.Org!==n.Org)if(o.Dst!==n.Dst&&!e.fixUpperEdge&&!r.fixUpperEdge&&(o.Dst===t.event||n.Dst===t.event)){if(i.checkForIntersect(t,e))return}else i.checkForRightSplice(t,e);o.Org===n.Org&&o.Dst===n.Dst&&(i.addWinding(n,o),i.deleteRegion(t,e),t.mesh.delete(o),e=i.regionAbove(r))}},i.connectRightVertex=function(t,e,r){var o,n=r.Onext,s=i.regionBelow(e),a=e.eUp,c=s.eUp,p=!1;if(a.Dst!==c.Dst&&i.checkForIntersect(t,e),ae.vertEq(a.Org,t.event)&&(t.mesh.splice(n.Oprev,a),e=i.topLeftRegion(t,e),n=i.regionBelow(e).eUp,i.finishLeftRegions(t,i.regionBelow(e),s),p=!0),ae.vertEq(c.Org,t.event)&&(t.mesh.splice(r,c.Oprev),r=i.finishLeftRegions(t,s,null),p=!0),p){i.addRightEdges(t,e,r.Onext,n,n,!0);return}ae.vertLeq(c.Org,a.Org)?o=c.Oprev:o=a,o=t.mesh.connect(r.Lprev,o),i.addRightEdges(t,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,i.walkDirtyRegions(t,e)},i.connectLeftDegenerate=function(t,e,r){var o,n,s,a,c;if(o=e.eUp,ae.vertEq(o.Org,r)){pe(!1),i.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),i.sweepEvent(t,r);return}pe(!1),e=i.topRightRegion(e),c=i.regionBelow(e),s=c.eUp.Sym,n=a=s.Onext,c.fixUpperEdge&&(pe(n!==s),i.deleteRegion(t,c),t.mesh.delete(s),s=n.Oprev),t.mesh.splice(r.anEdge,s),ae.edgeGoesLeft(n)||(n=null),i.addRightEdges(t,e,s.Onext,a,n,!0)},i.connectLeftVertex=function(t,e){var r,o,n,s,a,c,p=new wl;if(p.eUp=e.anEdge.Sym,r=t.dict.search(p).key,o=i.regionBelow(r),!!o){if(s=r.eUp,a=o.eUp,ae.edgeSign(s.Dst,e,s.Org)===0){i.connectLeftDegenerate(t,r,e);return}if(n=ae.vertLeq(a.Dst,s.Dst)?r:o,r.inside||n.fixUpperEdge){if(n===r)c=t.mesh.connect(e.anEdge.Sym,s.Lnext);else{var l=t.mesh.connect(a.Dnext,e.anEdge);c=l.Sym}n.fixUpperEdge?i.fixUpperEdge(t,n,c):i.computeWinding(t,i.addRegionBelow(t,r,c)),i.sweepEvent(t,e)}else i.addRightEdges(t,r,e.anEdge,e.anEdge,null,!0)}},i.sweepEvent=function(t,e){t.event=e,i.debugEvent(t);for(var r=e.anEdge;r.activeRegion===null;)if(r=r.Onext,r===e.anEdge){i.connectLeftVertex(t,e);return}var o=i.topLeftRegion(t,r.activeRegion);pe(o!==null);var n=i.regionBelow(o),s=n.eUp,a=i.finishLeftRegions(t,n,null);a.Onext===s?i.connectRightVertex(t,o,a):i.addRightEdges(t,o,a.Onext,s,s,!0)},i.addSentinel=function(t,e,r,o){var n=new wl,s=t.mesh.makeEdge();s.Org.s=r,s.Org.t=o,s.Dst.s=e,s.Dst.t=o,t.event=s.Dst,n.eUp=s,n.windingNumber=0,n.inside=!1,n.fixUpperEdge=!1,n.sentinel=!0,n.dirty=!1,n.nodeUp=t.dict.insert(n)},i.initEdgeDict=function(t){t.dict=new Yv(t,i.edgeLeq);var e=t.bmax[0]-t.bmin[0],r=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,n=t.bmax[0]+e,s=t.bmin[1]-r,a=t.bmax[1]+r;i.addSentinel(t,o,n,s),i.addSentinel(t,o,n,a)},i.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(pe(e.fixUpperEdge),pe(++r===1)),pe(e.windingNumber===0),i.deleteRegion(t,e)},i.removeDegenerateEdges=function(t){var e,r,o,n=t.mesh.eHead;for(e=n.next;e!==n;e=r)r=e.next,o=e.Lnext,ae.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(i.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))},i.initPriorityQ=function(t){var e,r,o,n=0;for(o=t.mesh.vHead,r=o.next;r!==o;r=r.next)n++;for(n+=8,e=t.pq=new Xv(n,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)},i.donePriorityQ=function(t){t.pq=null},i.removeDegenerateFaces=function(t,e){var r,o,n;for(r=e.fHead.next;r!==e.fHead;r=o)o=r.next,n=r.anEdge,pe(n.Lnext!==n),n.Lnext.Lnext===n&&(i.addWinding(n.Onext,n),t.mesh.delete(n));return!0},i.computeInterior=function(t,e){e===void 0&&(e=!0);var r,o;if(i.removeDegenerateEdges(t),!i.initPriorityQ(t))return!1;for(i.initEdgeDict(t);(r=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!ae.vertEq(o,r));)o=t.pq.extractMin(),i.spliceMergeVertices(t,r.anEdge,o.anEdge);i.sweepEvent(t,r)}return t.event=t.dict.min().key.eUp.Org,i.debugEvent(t),i.doneEdgeDict(t),i.donePriorityQ(t),i.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},i}(),Qv=function(){function i(){this.mesh=new Md,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=Be.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 i.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},i.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},i.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},i.prototype.computeNormal_=function(t){var e,r,o,n,s,a,c=[0,0,0],p=[0,0,0],l=[0,0,0],u=[0,0,0],d=[0,0,0],m=[null,null,null],f=[null,null,null],h=this.mesh.vHead;e=h.next;for(var g=0;g<3;++g)n=e.coords[g],p[g]=n,f[g]=e,c[g]=n,m[g]=e;for(e=h.next;e!==h;e=e.next)for(var x=0;x<3;++x)n=e.coords[x],n<p[x]&&(p[x]=n,f[x]=e),n>c[x]&&(c[x]=n,m[x]=e);var v=0;if(c[1]-p[1]>c[0]-p[0]&&(v=1),c[2]-p[2]>c[v]-p[v]&&(v=2),p[v]>=c[v]){t[0]=0,t[1]=0,t[2]=1;return}for(a=0,r=f[v],o=m[v],l[0]=r.coords[0]-o.coords[0],l[1]=r.coords[1]-o.coords[1],l[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]=l[1]*u[2]-l[2]*u[1],d[1]=l[2]*u[0]-l[0]*u[2],d[2]=l[0]*u[1]-l[1]*u[0],s=d[0]*d[0]+d[1]*d[1]+d[2]*d[2],s>a&&(a=s,t[0]=d[0],t[1]=d[1],t[2]=d[2]);a<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(l)]=1)},i.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,r=this.mesh.vHead,o,n=0,s=t.next;s!==t;s=s.next)if(o=s.anEdge,!(o.winding<=0))do n+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==s.anEdge);if(n<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]}},i.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],r,o,n=!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),n=!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 a=t.next;a!==t;a=a.next)a.s=this.dot_(a.coords,r),a.t=this.dot_(a.coords,o);n&&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))},i.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},i.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 n=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);)n=t.connect(o.Lnext,o),o=n.Sym;o=o.Lprev}else{for(;o.Lnext!==r&&(ae.edgeGoesRight(r.Lprev)||ae.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)n=t.connect(r,r.Lprev),r=n.Sym;r=r.Lnext}if(o.Lnext===r)throw"Mono region invalid";for(;o.Lnext.Lnext!==r;)n=t.connect(o.Lnext,o),o=n.Sym;return!0},i.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},i.prototype.discardExterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)e=r.next,r.inside||t.zapFace(r)},i.prototype.setWindingNumber_=function(t,e,r){for(var o,n=t.eHead.next;n!==t.eHead;n=o)o=n.next,n.Rface.inside!==n.Lface.inside?n.winding=n.Lface.inside?e:-e:r?t.delete(n):n.winding=0},i.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},i.prototype.outputPolymesh_=function(t,e,r,o){var n,s=0,a=0,c;r>3&&t.mergeConvexFaces(r);for(var p=t.vHead.next;p!==t.vHead;p=p.next)p.n=-1;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(l.n=-1,!!l.inside){n=l.anEdge,c=0;do{var p=n.Org;p.n===-1&&(p.n=a,a++),c++,n=n.Lnext}while(n!==l.anEdge);if(c>r)throw"Face vertex greater that support polygon";l.n=s,++s}this.elementCount=s,e===Ze.CONNECTED_POLYGONS&&(s*=2),this.elements=[],this.elements.length=s*r,this.vertexCount=a,this.vertices=[],this.vertices.length=a*o,this.vertexIndices=[],this.vertexIndices.length=a;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,l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){n=l.anEdge,c=0;do{var p=n.Org;this.elements[d++]=p.n,c++,n=n.Lnext}while(n!==l.anEdge);for(var m=c;m<r;++m)this.elements[d++]=-1;if(e===Ze.CONNECTED_POLYGONS){n=l.anEdge;do this.elements[d++]=this.getNeighbourFace_(n),n=n.Lnext;while(n!==l.anEdge);for(var f=c;f<r;++f)this.elements[d++]=-1}}},i.prototype.outputContours_=function(t,e){var r,o,n=0,s=0;this.vertexCount=0,this.elementCount=0;for(var a=t.fHead.next;a!==t.fHead;a=a.next)if(!!a.inside){o=r=a.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,l=0;n=0;for(var a=t.fHead.next;a!==t.fHead;a=a.next)if(!!a.inside){s=0,o=r=a.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[l++]=n,this.elements[l++]=s,n+=s}},i.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new Md),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},i.prototype.tesselate=function(t,e,r,o,n,s){if(t===void 0&&(t=Be.ODD),e===void 0&&(e=Ze.POLYGONS),s===void 0&&(s=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,n&&(this.normal[0]=n[0],this.normal[1]=n[1],this.normal[2]=n[2]),this.windingRule=t,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),Kv.computeInterior(this,s);var a=this.mesh;return e===Ze.BOUNDARY_CONTOURS?this.setWindingNumber_(a,1,!0):this.tessellateInterior_(a),s&&a.check(),e===Ze.BOUNDARY_CONTOURS?this.outputContours_(a,o):this.outputPolymesh_(a,e,r,o),!0},i}();function xo(i){var t=i.windingRule,e=t===void 0?Be.ODD:t,r=i.elementType,o=r===void 0?Ze.POLYGONS:r,n=i.polySize,s=n===void 0?3:n,a=i.vertexSize,c=a===void 0?2:a,p=i.normal,l=p===void 0?[0,0,1]:p,u=i.contours,d=u===void 0?[]:u,m=i.strict,f=m===void 0?!0:m,h=i.debug,g=h===void 0?!1:h;if(!d&&f)throw new Error("Contours can't be empty");if(!!d){var x=new Qv;i.edgeCreateCallback&&(x.edgeCreateCallback=i.edgeCreateCallback),i.vertexIdCallback&&(x.vertexIdCallback=i.vertexIdCallback);for(var v=0;v<d.length;v++)x.addContour(c||2,d[v]);return x.tesselate(e,o,s,c,l,f),{vertices:x.vertices,vertexIndices:x.vertexIndices,vertexCount:x.vertexCount,elements:x.elements,elementCount:x.elementCount,mesh:g?x.mesh:void 0}}}var LI=Be.ODD,II=Be.NONZERO,PI=Be.POSITIVE,MI=Be.NEGATIVE,DI=Be.ABS_GEQ_TWO,BI=Ze.POLYGONS,EI=Ze.CONNECTED_POLYGONS,GI=Ze.BOUNDARY_CONTOURS;var cn=class extends vo.BufferGeometry{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Be.ODD;this.elementType=Ze.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:Be.ODD,elementType:Ze.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let n=this._shape.extractShapePointsToFlatArray([],this._curveSegments),s=this._shape.shapeHoles.map(f=>f.extractShapePointsToFlatArray([],this._curveSegments)),a,c=!0,p=!0,l,u;for(let f=0,h=n.length/2;f<h;f++){let g=f*2,x=n[g+0],v=n[g+1];if(l!==void 0&&x!==l&&(c=!1),u!==void 0&&v!==u&&(p=!1),l=x,u=v,!c&&!p)break}!c&&!p&&(a=xo({contours:[n,...s],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let d=a?.vertexCount??1,m=a?.elementCount??1;if(this._positionAttribute=new vo.BufferAttribute(new Float32Array(d*3),3),this._normalAttribute=new vo.BufferAttribute(new Float32Array(d*3),3),this._uvAttribute=new vo.BufferAttribute(new Float32Array(d*2),2),this._indexAttribute=new vo.BufferAttribute(new Uint32Array(m*3),1),a){let f=1/0,h=-1/0,g=1/0,x=-1/0;for(let _=0,b=d;_<b;_++){let D=_*2,S=a.vertices[D+0],y=a.vertices[D+1];S<f&&(f=S),S>h&&(h=S),y<g&&(g=y),y>x&&(x=y)}let v=h-f,A=x-g;for(let _=0,b=d;_<b;_++){let D=_*2,S=a.vertices[D+0],y=a.vertices[D+1],I=(S-f)/v,T=(y-g)/A;this._positionAttribute.setXYZ(_,S,y,0),this._normalAttribute.setXYZ(_,0,0,1),this._uvAttribute.setXY(_,I,T)}for(let _=0,b=m;_<b;_++){let D=_*3,S=a.elements[D+0],y=a.elements[D+1],I=a.elements[D+2];this._indexAttribute.setX(D+0,S),this._indexAttribute.setX(D+1,y),this._indexAttribute.setX(D+2,I)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(a?.elementCount??1)*3)}clone(){let e=new cn(this._shape,this._curveSegments);return e.userData=kn(this.userData),e}};var bo=require("three");var Js=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*Js.eSize;this.buffer=new ArrayBuffer(r);let o=Float32Array.BYTES_PER_ELEMENT,n=0;this.positions=new Float32Array(this.buffer,n*o,3*t),n+=3*t,this.normals=new Float32Array(this.buffer,n*o,3*t),n+=3*t,this.uvs=new Float32Array(this.buffer,n*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*Js.eSize,o=new ArrayBuffer(r),n=Float32Array.BYTES_PER_ELEMENT,s=0,a=new Float32Array(o,s*n,3*t);s+=3*t;let c=new Float32Array(o,s*n,3*t);s+=3*t;let p=new Float32Array(o,s*n,2*t);a.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=a,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)}},oi=Js;oi.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Tl=(i,t)=>([e,r])=>(r<e&&(r+=t),(i>=e?i:i+t)<=r),un=class extends bo.BufferGeometry{constructor(e,r,o=0,n=12,s=3){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=r,this._bevel=o,this._curveSegments=n,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 a=this._shape.extractShapePointsToFlatArray([],n),c=this._shape.shapeHoles.map(S=>{let y=S.extractShapePointsToFlatArray([],n),I=[];for(let T=y.length-1;T>=1;T-=2){let L=y[T-1],C=y[T-0];I.push(L,C)}return I}),p=xo({windingRule:Be.ODD,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[a]}),l=xo({windingRule:Be.ODD,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...c]});if(!p)throw new Error("error generating geometry");let u=p.elementCount;if(l){p.elementCount+=l.elementCount;for(let S=0;S<l.elements.length;S++){let y=l.elements[S],I=S%2===0?p.vertexCount:0;p.elements.push(y+I)}for(let S=0;S<l.vertexIndices.length;S++){let y=l.vertexIndices[S],I=p.vertexCount;p.vertexIndices.push(y+I)}for(let S=0;S<l.vertices.length;S++){let y=l.vertices[S];p.vertices.push(y)}}let d=1/0,m=-1/0,f=1/0,h=-1/0;for(let S=0,y=p.vertexCount;S<y;S++){let I=S*2,T=p.vertices[I+0],L=p.vertices[I+1];T<d&&(d=T),T>m&&(m=T),L<f&&(f=L),L>h&&(h=L)}this._minX=d,this._minY=f,this._width=m-d,this._height=h-f;let g=p.vertexCount*2*(2+this._bevelSegments);this._buffer=new oi(g);let x=[],v=[];for(let S=p.elementCount-1;S>=0;S--){let y=S>=u,I=S*2,T=p.elements[I+0],L=p.elements[I+1],C=T+L,N={start:T,count:L,normals:[],continuous:[],concave:[]},j=T,W=C-1,ne=T+1,ue=this._shape.roundedCurves.length;do{let F=j-T,E=p.vertices[W*2+0],B=p.vertices[W*2+1],P=p.vertices[j*2+0],G=p.vertices[j*2+1],Q=p.vertices[ne*2+0],k=p.vertices[ne*2+1],V=P-E,z=G-B,M=Math.sqrt(V*V+z*z);V/=M,z/=M;let q=P-Q,J=G-k,ee=Math.sqrt(q*q+J*J);q/=ee,J/=ee,N.normals[F*2+0]=-J,N.normals[F*2+1]=q,N.concave[F]=V*J-z*q>0;let H=p.vertexIndices[j];if(Array.isArray(H))N.continuous[F]=!1;else{let[Z,$]=this._shape.getCurveIndexFromVertexId(H-1,!0);if($>0&&$<1)N.continuous[F]=!0;else{let re=$===1?Z+1:Z-1;re=(re+ue)%ue;let ce=$===1?0:1,ie=this._shape.roundedCurves[Z].getTangent($),fe=this._shape.roundedCurves[re].getTangent(ce);N.continuous[F]=ie.dot(fe)>.95}}y&&(N.normals[F*2+0]*=-1,N.normals[F*2+1]*=-1),[W,j,ne]=[j,ne,ne+1],ne>=C&&(ne-=L)}while(ne!==T+1);let se=[];se.push({bevelI:0,angle:0,size:0,boundary:{vertices:p.vertices.slice(T*2,C*2),vertexCount:L,vertexIndices:new Array(L).fill(!0).map((F,E)=>[E,E]),elements:[0,L],elementCount:1,mesh:null},reverseMap:[],insetPoints:p.vertices.slice(T*2,C*2)});for(let F=1;F<=this._bevelSegments;F++){let E=F/this._bevelSegments*Math.PI/2,B=(1-Math.cos(E))*this._bevelSize,P=[],G=[],Q=[],k=[],V=0;for(let M=0;M<L;M++){let q=M*2,J=(M-1+L)%L*2,ee=p.vertices[N.start*2+q+0],H=p.vertices[N.start*2+q+1],Z=-N.normals[J+0]*B,$=-N.normals[J+1]*B,re=-N.normals[q+0]*B,ce=-N.normals[q+1]*B;if(N.concave[M]||!N.concave[M]&&y){let ie=Math.atan2($,Z),fe=Math.atan2(ce,re);fe>ie&&(fe-=Math.PI*2);let Re=fe-ie;if(N.continuous[M]||y){let ge=ie+Re/2,qe=Math.cos(ge)*B,Ae=Math.sin(ge)*B;P[2*V+0]=ee+qe*(y?-1:1),P[2*V+1]=H+Ae*(y?-1:1),k[V]=M,V++}else{let ge=Math.max(1,Math.floor(n/4*Math.abs(Re)/Math.PI));for(let qe=0;qe<=ge;qe++){let Ae=ie+Re*(qe/ge),St=Math.cos(Ae)*B,Vt=Math.sin(Ae)*B;P[2*V+0]=ee+St,P[2*V+1]=H+Vt,k[V]=M,V++}}}else P[2*V+0]=ee+Z,P[2*V+1]=H+$,k[V]=M,G[M]=V,V++,P[2*V+0]=ee,P[2*V+1]=H,k[V]=M,V++,P[2*V+0]=ee+re,P[2*V+1]=H+ce,k[V]=M,Q[M]=V,V++}let z=xo({windingRule:Be.POSITIVE,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[P],edgeCreateCallback:M=>{let J=M.Org.idx,ee=k[J],H=k[(J+1)%k.length];M.idx=[ee,H],M.Sym.idx=[H,ee]},vertexIdCallback:M=>{let q=M.Lprev.idx;return[q?q[1]:0,M.idx[0]]}});if(!z)throw console.log("Error"),new Error(`error generating bevel geometry for ${F}'th loop`);if(!z.vertexCount)break;for(let M=0;M<z.vertexIndices.length;M++){let[q,J]=z.vertexIndices[M];if(q===J)continue;let ee=J;J<q&&(ee+=L);for(let H=q;H<ee;H++){let Z=H%L,$=(H+1)%L;if(!N.continuous[Z]||!N.continuous[$]){z.vertexIndices[M]=[q,Z],z.vertexIndices.splice(M+1,0,[$,J]),z.vertices.splice((M+1)*2,0,z.vertices[M*2],z.vertices[M*2+1]);break}}}se.push({bevelI:F,angle:E,size:B,boundary:z,reverseMap:k,insetPoints:P})}let K=(F,E,B)=>{let P=0,G=F.boundary.vertexIndices.length;for(;P<G&&B(F.boundary.vertexIndices[E]);)E=(E+1)%G,P++;return P},U=x.length;for(let F=1;F<se.length;F++){let E=se[F-1],B=se[F],P=E.boundary.vertexIndices.length,G=B.boundary.vertexIndices.length;if(!P||!G)break;let Q=N.concave.length,k=0,V=Tl(k,L);for(;!E.boundary.vertexIndices.filter(V).length||!B.boundary.vertexIndices.filter(V).length;)k++,V=Tl(k,L);let z=E.boundary.vertexIndices.findIndex(V),M=B.boundary.vertexIndices.findIndex(V);do z=(z+1)%P;while(V(E.boundary.vertexIndices[z]));do M=(M+1)%G;while(V(B.boundary.vertexIndices[M]));k=(k+1)%L;let q=k,J=this.buildBevelVert(N,E,(z-1+P)%P),ee=this.buildBevelVert(N,B,(M-1+G)%G),H=J,Z=ee,$,re,ce=!1;do{V=Tl(k,L);let ie=K(E,z,V),fe=K(B,M,V),Re=ce;if(ce=!1,ie&&!fe){for(let ge=0;ge<ie;ge++)$=this.buildBevelVert(N,E,(z+ge)%P,ge/(ie-1)),x.push(H.topN,$.topP,Z.topN),x.push($.bottomP,H.bottomN,Z.bottomN),H=$;ce=!0}else if(!ie&&fe)for(let ge=0;ge<fe;ge++)re=this.buildBevelVert(N,B,(M+ge)%G,ge/(fe-1)),x.push(Z.topN,H.topP,re.topP),x.push(H.bottomP,Z.bottomN,re.bottomP),Z=re;else if(ie&&fe)if($=this.buildBevelVert(N,E,z,0),re=this.buildBevelVert(N,B,M,0),Re?(x.push(H.topN,re.topP,Z.topN),x.push(H.topN,$.topP,re.topP),x.push(re.bottomP,H.bottomN,Z.bottomN),x.push(re.bottomP,$.bottomP,H.bottomN)):(x.push(Z.topN,H.topN,$.topP),x.push(Z.topN,$.topP,re.topP),x.push($.bottomP,H.bottomN,Z.bottomN),x.push($.bottomP,Z.bottomN,re.bottomP)),H=$,Z=re,ie===fe)for(let ge=1;ge<ie;ge++)$=this.buildBevelVert(N,E,(z+ge)%P,ge/(ie-1)),re=this.buildBevelVert(N,B,(M+ge)%G,ge/(fe-1)),x.push(H.topN,$.topP,Z.topN),x.push(Z.topN,$.topP,re.topP),x.push($.bottomP,H.bottomN,Z.bottomN),x.push($.bottomP,Z.bottomN,re.bottomP),H=$,Z=re;else if(ie>fe){let ge=ie/fe,qe=0;for(let Ae=1;Ae<ie;Ae++)$=this.buildBevelVert(N,E,(z+Ae)%P,Ae/(ie-1)),x.push(H.topN,$.topP,Z.topN),x.push($.bottomP,H.bottomN,Z.bottomN),H=$,Ae>(qe+1)*ge&&(qe++,re=this.buildBevelVert(N,B,(M+qe)%G,qe/(fe-1)),x.push(Z.topN,$.topP,re.topP),x.push($.bottomP,Z.bottomN,re.bottomP),Z=re)}else{let ge=fe/ie,qe=0;for(let Ae=1;Ae<fe;Ae++)re=this.buildBevelVert(N,B,(M+Ae)%G,Ae/(fe-1)),x.push(Z.topN,$.topP,re.topP),x.push($.bottomP,Z.bottomN,re.bottomP),Z=re,Ae>(qe+1)*ge&&(qe++,$=this.buildBevelVert(N,E,(z+qe)%P,qe/(ie-1)),x.push(H.topN,$.topP,Z.topN),x.push($.bottomP,H.bottomN,Z.bottomN),H=$)}z=(z+ie)%P,M=(M+fe)%G,k=(k+1)%Q}while(k!==q)}{let F=se[0];for(let E=0,B=F.boundary.vertexCount;E<B;E++){let P=this.buildBevelVert(N,F,E),G=this.buildBevelVert(N,F,(E+1)%B);x.push(G.topP,P.topN,P.bottomN),x.push(G.topP,P.bottomN,G.bottomP)}}if(y){let F=[];for(let E=x.length-1;E>=U+2;E-=3){let B=x[E-2],P=x[E-1],G=x[E-0];F.push(G,P,B)}x.splice(U,x.length-U,...F)}if(y){let F=[];for(let E=se[se.length-1].boundary.vertices.length-1;E>=1;E-=2){let B=se[se.length-1].boundary.vertices[E-1],P=se[se.length-1].boundary.vertices[E-0];F.push(B,P)}v.push(F)}if(!y){let F=se[se.length-1],E=xo({windingRule:se.length>1?Be.POSITIVE:Be.ODD,elementType:Ze.POLYGONS,vertexSize:2,strict:!0,contours:[F.insetPoints,...v]});if(!E)throw new Error("Error generating geometry for surface");c.length===0&&Object.assign(this,{capStartIndex:x.length});for(let B=0;B<E.elementCount*3;B+=3){let P=this.buildSurfaceVert(E,E.elements[B+0]),G=this.buildSurfaceVert(E,E.elements[B+1]),Q=this.buildSurfaceVert(E,E.elements[B+2]);x.push(P.top,G.top,Q.top),x.push(Q.bottom,G.bottom,P.bottom)}}this.vertexCache={}}this._buffer.shrink();let A=new bo.BufferAttribute(Uint32Array.from(x),1),_=new bo.BufferAttribute(this._buffer.positions,3),b=new bo.BufferAttribute(this._buffer.normals,3),D=new bo.BufferAttribute(this._buffer.uvs,2);_.needsUpdate=!0,b.needsUpdate=!0,D.needsUpdate=!0,A.needsUpdate=!0,this.setAttribute("position",_),this.setAttribute("normal",b),this.setAttribute("uv",D),this.setIndex(A)}buildSurfaceVert(e,r){let o=r.toString();if(o in this.vertexCache)return this.vertexCache[o];let n=e.vertices[r*2+0],s=e.vertices[r*2+1],a=(n-this._minX)/this._width,c=(s-this._minY)/this._height,p=this._buffer.get(2),l=p*3,u=p*2,d={top:p+0,bottom:p+1};return this._buffer.positions[l+0]=n,this._buffer.positions[l+1]=s,this._buffer.positions[l+2]=this._depth,this._buffer.normals[l+0]=0,this._buffer.normals[l+1]=0,this._buffer.normals[l+2]=1,this._buffer.uvs[u+0]=a,this._buffer.uvs[u+1]=c,this._buffer.positions[l+3]=n,this._buffer.positions[l+4]=s,this._buffer.positions[l+5]=0,this._buffer.normals[l+3]=0,this._buffer.normals[l+4]=0,this._buffer.normals[l+5]=-1,this._buffer.uvs[u+2]=a,this._buffer.uvs[u+3]=c,this.vertexCache[o]=d,d}buildBevelVert(e,r,o,n=1){let s=`${r.bevelI}:${o}`;if(s in this.vertexCache)return this.vertexCache[s];let[a,c]=r.boundary.vertexIndices[o],p,l,u,d;a!==c?(l=a,p=c,d=!1,u=e.continuous[l]&&e.continuous[p]):(p=a,l=(p-1+e.count)%e.count,d=e.concave[p]&&r.bevelI>0,u=e.continuous[p]||d);let m=Math.cos(r.angle),f=Math.sin(r.angle),h=o*2,g=p*2,x=l*2,v=r.boundary.vertices[h+0],A=r.boundary.vertices[h+1],_=(1-f)*this._bevelSize,b=(v-this._minX)/this._width,D=(A-this._minY)/this._height,S=e.normals[g+0],y=e.normals[g+1],I=e.normals[x+0],T=e.normals[x+1];if(d){let W=I-S,ne=T-y;S=S+W*(1-n),y=y+ne*(1-n);let ue=Math.sqrt(S*S+y*y);S/=ue,y/=ue}let L=this._buffer.get(u?2:4),C=L*3,N=L*2,j={i:o,fi:p,topP:L+0,topN:L+0,bottomP:L+1,bottomN:L+1};return this._buffer.positions[C+0]=v,this._buffer.positions[C+1]=A,this._buffer.positions[C+2]=this._depth-_,this._buffer.normals[C+0]=S*m,this._buffer.normals[C+1]=y*m,this._buffer.normals[C+2]=f,this._buffer.uvs[N+0]=b,this._buffer.uvs[N+1]=D,this._buffer.positions[C+3]=v,this._buffer.positions[C+4]=A,this._buffer.positions[C+5]=_,this._buffer.normals[C+3]=S*m,this._buffer.normals[C+4]=y*m,this._buffer.normals[C+5]=-f,this._buffer.uvs[N+2]=D,this._buffer.uvs[N+3]=b,u||(L+=2,C+=6,N+=4,j.topP=L+0,j.bottomP=L+1,this._buffer.positions[C+0]=v,this._buffer.positions[C+1]=A,this._buffer.positions[C+2]=this._depth-_,this._buffer.normals[C+0]=I*m,this._buffer.normals[C+1]=T*m,this._buffer.normals[C+2]=f,this._buffer.uvs[N+0]=b,this._buffer.uvs[N+1]=D,this._buffer.positions[C+3]=v,this._buffer.positions[C+4]=A,this._buffer.positions[C+5]=_,this._buffer.normals[C+3]=I*m,this._buffer.normals[C+4]=T*m,this._buffer.normals[C+5]=-f,this._buffer.uvs[N+2]=D,this._buffer.uvs[N+3]=b),this.vertexCache[s]=j,j}clone(){let e=new un(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=kn(this.userData),e}};var vt=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3},i.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),n=Math.abs(e.depth??0),s=i.shape??t?.shape,a=s?.roundness??e.roundness;s!==void 0&&(s instanceof Ce?(s.width!==r||s.height!==o)&&s.applySize(r,o):s=new Ce(r,o).fromJSON(s),i.parameters?.roundness!==void 0&&i.parameters?.roundness>0&&s.update(!1));let c=s??new Ce(r,o);return{parameters:Object.assign(e,{width:r,height:o,depth:n,roundness:a}),shape:c}}static build(i){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:r,subdivisions:o,roundness:n}=i.parameters;i.shape.roundness=n;let s;return t<=0?s=new cn(i.shape,o):s=new un(i.shape,t,e,o,r),Object.assign(s,{userData:{...i,type:"VectorGeometry"}})}};var dn=require("three"),Rd=Math.PI*2,Fd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters);return{shape:i.shape&&i.shape instanceof Ce?i.shape:new Ce,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(i){let{width:t,height:e,spikes:r,angle:o,innerRadius:n,depth:s,extrudeBevelSize:a,extrudeBevelSegments:c}=i.parameters,p=i.shape,l=t*.5,u=e*.5,d=Zv(p,l,u,o*Math.PI/180,r,n);p.isClosed=!0,p.update();let m=vt.create({shape:p,parameters:{subdivisions:d,depth:s,extrudeBevelSize:a,extrudeBevelSegments:c}});return Object.assign(m,{userData:{...i,type:"EllipseGeometry"}})}};function Zv(i,t,e,r,o,n){if(r>=Rd)return o>30||o%4===0?(eb(i,t,e,n),Math.round(o/4)):Gd(i,r,o,t,e,n);let s={x:0,y:e},a=r+Math.PI*.5,c={x:Math.cos(a)*t,y:Math.sin(a)*e},p=Pd({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?Jv(i,s.x,s.y,p,o,t,e,n):Gd(i,r,o,t,e,n)}function Jv(i,t,e,r,o,n,s,a){let c=Math.round(o/r.length);i.addPoint(pn(t,e));for(let p=0,l=r.length;p<l;p++){let u=r[p],d=i.points[p],m=pn(u.x,u.y);d.controls[1].position.set(u.x1,u.y1),m.controls[0].position.set(u.x2,u.y2),i.addPoint(m)}return a>0?Vd(i,n,s,a):i.addPoint(pn(0,0)),c}function Gd(i,t,e,r,o,n){let s=-t/e;for(let a=0;a<=e;a++){let c=s*a,p=Math.sin(c)*r,l=Math.cos(c)*o;i.addPoint(pn(p,l))}return t<Rd?n>0?Vd(i,r,o,n):i.addPoint(pn(0,0)):(i.removePoint(i.points[i.points.length-1]),n>0&&zd(i,r,o,n)),1}function eb(i,t,e,r=0,o=0,n=0){let s=.5522847498,a=t*s,c=e*s;i.addPoint(ea(o-t,n,o-t,n-c,o-t,n+c)),i.addPoint(ea(o,n+e,o-a,n+e,o+a,n+e)),i.addPoint(ea(o+t,n,o+t,n+c,o+t,n-c)),i.addPoint(ea(o,n-e,o+a,n-e,o-a,n-e)),r>0&&zd(i,t,e,r)}function pn(i,t){return new Xt(dn.MathUtils.generateUUID(),new dn.Vector2(i,t))}function ea(i,t,e,r,o,n){let s=pn(i,t);return s.controls[0].position.set(e,r),s.controls[1].position.set(o,n),s}function Vd(i,t,e,r){Ud(i,t,e,r).forEach(n=>i.addPoint(n))}function zd(i,t,e,r){let o=Ud(i,t,e,r),n=new Ce;o.forEach(s=>n.addPoint(s)),n.isClosed=!0,i.shapeHoles.push(n)}function Ud(i,t,e,r){let o=r*t/100,n=o*(Math.abs(e)/Math.abs(t)),s=new dn.Vector2(o/t,n/e),a=i.points.map(c=>{let p=c.clone();return p.uuid=dn.MathUtils.generateUUID(),p}).reverse();return a.forEach(c=>{c.position.multiply(s);let p=c.controls[0].position.clone().multiply(s),l=c.controls[1].position.clone().multiply(s);c.controls[0].position.copy(l),c.controls[1].position.copy(p)}),a}var Er=require("three"),kd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},i.parameters),r=Math.abs(e.width),o=Math.abs(e.height??r),n=Math.abs(e.depth??r),s=Math.abs(Math.min(r,n))/2;return{parameters:Object.assign(e,{width:r,height:o,depth:n,radius:s,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(i){let{width:t,height:e,depth:r,radius:o,revolutions:n,segments:s,pathRadius:a,pathType:c,pathSegments:p,cornerRadius:l,cornerSegments:u}=i.parameters,d=new ni(!1,t,e,r,o,n,s,a,c,p,l,u);return Object.assign(d,{userData:{...i,type:"HelixGeometry"}})}},ni=class extends Er.BufferGeometry{constructor(t=!0,e=1,r=1,o=1,n=1,s=1,a=1,c=1,p=1,l=1,u=1,d=1){super();let m=t&&s===1;m&&(d=0),u>100&&(u=100);let f=()=>new Er.Vector3,h=new Er.Vector3,g=f(),x=f(),v=f(),A,_,b,D,S,y,I,T,L=f(),C=f(),N=f(),j=f(),W=f(),ne=f(),ue=f(),se=f(),K=r-2*c+.001,U=K/s,F=Math.ceil(a*s),E=F+1,B=K/F,P=-K/2,G=l+1,Q=2*Math.PI/l,k=Math.PI/2/d,V=.01,z=Math.min((1-u/100)*c,c-V),M=c-z,q=0,J=2,ee=d*J+J,H=G*ee/J,Z=H+G*E,$=G*(E+ee),[re,ce,ie]=[3,3,2].map(Ue=>Array($*Ue).fill(0)),fe=[],Re=n-c;function ge(Ue,Mt){let or=Math.PI/2;y=Mt*B,T=2*Math.PI*(y%U)/U+or,y+=P,I=Math.sin(T)*Re,S=Math.cos(T)*Re,t?Ue.set(S,I,y):Ue.set(S,y,I)}ge(h,-1e-10),ge(g,0),L.copy(h),ge(h,1);let qe=h.distanceTo(g),Ae=M+z,St=qe*F+2*Ae,Vt=z,Io=St-Ae;for(let Ue=0;Ue<=F;Ue++){ge(x,Ue),se.subVectors(x,L).normalize(),L.copy(x),ne.copy(x).setComponent(+t+1,0).normalize(),ue.crossVectors(se,ne).normalize();let Mt=Ue===0,or=Ue===F,Pf=Mt?3*Math.PI/2:k,Mf=Mt?Vt:Io,Df=Mt?G:Z,Bf=Mt?0:$-G,Ef=se.clone().multiplyScalar(Mt?-M:M).add(x),Gf=se.clone().multiplyScalar(Mt?-1:1).normalize();for(let Nr=0;Nr<G;Nr++){let hc=Nr*Q;if(C.addVectors(h.copy(ne).multiplyScalar(c*Math.cos(hc)),g.copy(ue).multiplyScalar(c*Math.sin(hc))),N.copy(C).normalize(),Mt||or){m||(q=Bf+Nr,[0,1,2].forEach(wt=>{re[q*3+wt]=Ef.getComponent(wt),ce[q*3+wt]=Gf.getComponent(wt)}),ie[q*2]=+or,ie[q*2+1]=Nr/l),g.copy(N).multiplyScalar(z),v.addVectors(x,g);for(let wt=0;wt<d;wt++){let Ra=wt*k+Pf;j.addVectors(h.copy(se).multiplyScalar(M*Math.sin(Ra)),g.copy(N).multiplyScalar(M*Math.cos(Ra))),W.copy(j).normalize(),g.addVectors(v,j),j.normalize(),q=Df+wt*G+Nr,[0,1,2].forEach(ji=>{re[q*3+ji]=g.getComponent(ji),ce[q*3+ji]=W.getComponent(ji)});let Rf=+Mt+Math.sin(Ra);ie[q*2]=(Mf+M*Rf)/St,ie[q*2+1]=Nr/l}}g.addVectors(x,C),q=H+Ue*G+Nr,[0,1,2].forEach(wt=>{re[q*3+wt]=g.getComponent(wt),ce[q*3+wt]=N.getComponent(wt)}),ie[q*2]=(Ae+Ue*qe)/St,ie[q*2+1]=Nr/l}}let Pt=E+2*d+J,Po=1,[Ui,ki]=m?[Po,Po+E-1]:[0,Pt-1];for(let Ue=Ui;Ue<=ki-1;Ue++){let Mt=m&&Ue===ki-1;for(let or=0;or<G-1;or++)A=Ue*G+or,_=A+1,b=(Mt?or:A)+G,D=(Mt?or+1:_)+G,Ue===0?fe.push(_,D,b):Ue===Pt-2?fe.push(A,_,b):fe.push(A,_,b,_,D,b)}this.setIndex(fe),this.setAttribute("position",new Er.Float32BufferAttribute(re,3)),this.setAttribute("normal",new Er.Float32BufferAttribute(ce,3)),this.setAttribute("uv",new Er.Float32BufferAttribute(ie,2))}};var jd=require("three");var Hd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},i.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(i){let{width:t,height:e,depth:r,detail:o,corner:n,cornerSides:s}=i.parameters,a=o===0&&n!==0?new ii(t*.5,n,s):new jd.IcosahedronBufferGeometry(t*.5,o);return a.scale(1,e/t,r/t),Object.assign(a,{userData:{...i,type:"IcosahedronGeometry"}})}},ii=class extends Kr{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,n=[-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],a="IcosahedronGeometry";super(n,s,a,t,e,r),this.type=a}static fromJSON(t){return new ii(t.radius,t.corner,t.cornerSides)}};var ta=require("three"),Wd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){(i.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}]},i.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(i){let{points:t,segments:e,verticalSegments:r}=i.parameters,o=new ta.Shape;o.moveTo(t[0].x,t[0].y),o.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let n=new ta.LatheBufferGeometry(o.extractPoints(r).shape,e);return n.rotateZ(Math.PI),Object.assign(n,{userData:{...i,type:"LatheGeometry"}})}};var pr=require("three");var Gr=require("three");var oe=require("three"),ur=new oe.Matrix4,Al=new oe.Object3D,ra=new oe.Vector3,Zr=class extends oe.EventDispatcher{constructor(){super(),this.uuid=oe.MathUtils.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(t){let e=new oe.Matrix3().getNormalMatrix(t);for(let r=0,o=this.vertices.length;r<o;r++)this.vertices[r].applyMatrix4(t);for(let r=0,o=this.faces.length;r<o;r++){let n=this.faces[r];n.normal.applyMatrix3(e).normalize();for(let s=0,a=n.vertexNormals.length;s<a;s++)n.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 ur.makeRotationX(t),this.applyMatrix4(ur),this}rotateY(t){return ur.makeRotationY(t),this.applyMatrix4(ur),this}rotateZ(t){return ur.makeRotationZ(t),this.applyMatrix4(ur),this}translate(t,e,r){return ur.makeTranslation(t,e,r),this.applyMatrix4(ur),this}scale(t,e,r){return ur.makeScale(t,e,r),this.applyMatrix4(ur),this}lookAt(t){return Al.lookAt(t),Al.updateMatrix(),this.applyMatrix4(Al.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 n=o.position,s=o.normal,a=o.color,c=o.uv,p=o.uv2;p!==void 0&&(this.faceVertexUvs[1]=[]);for(let d=0;d<n.count;d++)e.vertices.push(new oe.Vector3().fromBufferAttribute(n,d)),a!==void 0&&e.colors.push(new oe.Color().fromBufferAttribute(a,d));function l(d,m,f,h){let g=a===void 0?[]:[e.colors[d].clone(),e.colors[m].clone(),e.colors[f].clone()],x=s===void 0?[]:[new oe.Vector3().fromBufferAttribute(s,d),new oe.Vector3().fromBufferAttribute(s,m),new oe.Vector3().fromBufferAttribute(s,f)],v=new mn(d,m,f,x,g,h);e.faces.push(v),c!==void 0&&e.faceVertexUvs[0].push([new oe.Vector2().fromBufferAttribute(c,d),new oe.Vector2().fromBufferAttribute(c,m),new oe.Vector2().fromBufferAttribute(c,f)]),p!==void 0&&e.faceVertexUvs[1].push([new oe.Vector2().fromBufferAttribute(p,d),new oe.Vector2().fromBufferAttribute(p,m),new oe.Vector2().fromBufferAttribute(p,f)])}let u=t.groups;if(u.length>0)for(let d=0;d<u.length;d++){let m=u[d],f=m.start,h=m.count;for(let g=f,x=f+h;g<x;g+=3)r!==void 0?l(r.getX(g),r.getX(g+1),r.getX(g+2),m.materialIndex):l(g,g+1,g+2,m.materialIndex)}else if(r!==void 0)for(let d=0;d<r.count;d+=3)l(r.getX(d),r.getX(d+1),r.getX(d+2));else for(let d=0;d<n.count;d+=3)l(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(ra).negate(),this.translate(ra.x,ra.y,ra.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,r=e===0?1:1/e,o=new oe.Matrix4;return o.set(r,0,0,-r*t.x,0,r,0,-r*t.y,0,0,r,-r*t.z,0,0,0,1),this.applyMatrix4(o),this}computeFaceNormals(){let t=new oe.Vector3,e=new oe.Vector3;for(let r=0,o=this.faces.length;r<o;r++){let n=this.faces[r],s=this.vertices[n.a],a=this.vertices[n.b],c=this.vertices[n.c];t.subVectors(c,a),e.subVectors(s,a),t.cross(e),t.normalize(),n.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 oe.Vector3;if(t){let r=new oe.Vector3,o=new oe.Vector3;for(let n=0,s=this.faces.length;n<s;n++){let a=this.faces[n],c=this.vertices[a.a],p=this.vertices[a.b],l=this.vertices[a.c];r.subVectors(l,p),o.subVectors(c,p),r.cross(o),e[a.a].add(r),e[a.b].add(r),e[a.c].add(r)}}else{this.computeFaceNormals();for(let r=0,o=this.faces.length;r<o;r++){let n=this.faces[r];e[n.a].add(n.normal),e[n.b].add(n.normal),e[n.c].add(n.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 n=this.faces[r],s=n.vertexNormals;s.length===3?(s[0].copy(e[n.a]),s[1].copy(e[n.b]),s[2].copy(e[n.c])):(s[0]=e[n.a].clone(),s[1]=e[n.b].clone(),s[2]=e[n.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 n=0,s=o.vertexNormals.length;n<s;n++)o.__originalVertexNormals[n]?o.__originalVertexNormals[n].copy(o.vertexNormals[n]):o.__originalVertexNormals[n]=o.vertexNormals[n].clone()}let t=new Zr;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 n=this.morphNormals[e].faceNormals,s=this.morphNormals[e].vertexNormals;for(let a=0,c=this.faces.length;a<c;a++){let p=new oe.Vector3,l={a:new oe.Vector3,b:new oe.Vector3,c:new oe.Vector3};n.push(p),s.push(l)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let n=0,s=this.faces.length;n<s;n++){let a=this.faces[n],c=o.faceNormals[n],p=o.vertexNormals[n];c.copy(a.normal),p.a.copy(a.vertexNormals[0]),p.b.copy(a.vertexNormals[1]),p.c.copy(a.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 oe.Box3),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new oe.Sphere),this.boundingSphere.setFromPoints(this.vertices)}merge(t,e,r=0){if(!(t&&t.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t);return}let o,n=this.vertices.length,s=this.vertices,a=t.vertices,c=this.faces,p=t.faces,l=this.colors,u=t.colors;e!==void 0&&(o=new oe.Matrix3().getNormalMatrix(e));for(let d=0,m=a.length;d<m;d++){let h=a[d].clone();e!==void 0&&h.applyMatrix4(e),s.push(h)}for(let d=0,m=u.length;d<m;d++)l.push(u[d].clone());for(let d=0,m=p.length;d<m;d++){let f=p[d],h,g,x=f.vertexNormals,v=f.vertexColors,A=new mn(f.a+n,f.b+n,f.c+n);A.normal.copy(f.normal),o!==void 0&&A.normal.applyMatrix3(o).normalize();for(let _=0,b=x.length;_<b;_++)h=x[_].clone(),o!==void 0&&h.applyMatrix3(o).normalize(),A.vertexNormals.push(h);A.color.copy(f.color);for(let _=0,b=v.length;_<b;_++)g=v[_],A.vertexColors.push(g.clone());A.materialIndex=f.materialIndex+r,c.push(A)}for(let d=0,m=t.faceVertexUvs.length;d<m;d++){let f=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=f.length;h<g;h++){let x=f[h],v=[];for(let A=0,_=x.length;A<_;A++)v.push(x[A].clone());this.faceVertexUvs[d].push(v)}}}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=[],n=Math.pow(10,t);for(let c=0,p=this.vertices.length;c<p;c++){let l=this.vertices[c],u=Math.round(l.x*n)+"_"+Math.round(l.y*n)+"_"+Math.round(l.z*n);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 l=this.faces[c];l.a=o[l.a],l.b=o[l.b],l.c=o[l.c];let u=[l.a,l.b,l.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 l=0,u=this.faceVertexUvs.length;l<u;l++)this.faceVertexUvs[l].splice(p,1)}let a=this.vertices.length-r.length;return this.vertices=r,a}setFromPoints(t){this.vertices=[];for(let e=0,r=t.length;e<r;e++){let o=t[e];this.vertices.push(new oe.Vector3(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,e=t.length;for(let c=0;c<e;c++)t[c]._id=c;function r(c,p){return c.materialIndex-p.materialIndex}t.sort(r);let o=this.faceVertexUvs[0],n=this.faceVertexUvs[1],s,a;o&&o.length===e&&(s=[]),n&&n.length===e&&(a=[]);for(let c=0;c<e;c++){let p=t[c]._id;s&&s.push(o[p]),a&&a.push(n[p])}s&&(this.faceVertexUvs[0]=s),a&&(this.faceVertexUvs[1]=a)}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 f=this.parameters;for(let h in f)f[h]!==void 0&&(t[h]=f[h]);return t}let e=[];for(let f=0;f<this.vertices.length;f++){let h=this.vertices[f];e.push(h.x,h.y,h.z)}let r=[],o=[],n={},s=[],a={},c=[],p={};for(let f=0;f<this.faces.length;f++){let h=this.faces[f],g=!0,x=!1,v=this.faceVertexUvs[0][f]!==void 0,A=h.normal.length()>0,_=h.vertexNormals.length>0,b=h.color.r!==1||h.color.g!==1||h.color.b!==1,D=h.vertexColors.length>0,S=0;if(S=l(S,0,0),S=l(S,1,g),S=l(S,2,x),S=l(S,3,v),S=l(S,4,A),S=l(S,5,_),S=l(S,6,b),S=l(S,7,D),r.push(S),r.push(h.a,h.b,h.c),r.push(h.materialIndex),v){let y=this.faceVertexUvs[0][f];r.push(m(y[0]),m(y[1]),m(y[2]))}if(A&&r.push(u(h.normal)),_){let y=h.vertexNormals;r.push(u(y[0]),u(y[1]),u(y[2]))}if(b&&r.push(d(h.color)),D){let y=h.vertexColors;r.push(d(y[0]),d(y[1]),d(y[2]))}}function l(f,h,g){return g?f|1<<h:f&~(1<<h)}function u(f){let h=f.x.toString()+f.y.toString()+f.z.toString();return n[h]!==void 0||(n[h]=o.length/3,o.push(f.x,f.y,f.z)),n[h]}function d(f){let h=f.r.toString()+f.g.toString()+f.b.toString();return a[h]!==void 0||(a[h]=s.length,s.push(f.getHex())),a[h]}function m(f){let h=f.x.toString()+f.y.toString();return p[h]!==void 0||(p[h]=c.length/2,c.push(f.x,f.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 Zr().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,m=e.length;d<m;d++)this.vertices.push(e[d].clone());let r=t.colors;for(let d=0,m=r.length;d<m;d++)this.colors.push(r[d].clone());let o=t.faces;for(let d=0,m=o.length;d<m;d++)this.faces.push(o[d].clone());for(let d=0,m=t.faceVertexUvs.length;d<m;d++){let f=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=f.length;h<g;h++){let x=f[h],v=[];for(let A=0,_=x.length;A<_;A++){let b=x[A];v.push(b.clone())}this.faceVertexUvs[d].push(v)}}let n=t.morphTargets;for(let d=0,m=n.length;d<m;d++){let f={};if(f.name=n[d].name,n[d].vertices!==void 0){f.vertices=[];for(let h=0,g=n[d].vertices.length;h<g;h++)f.vertices.push(n[d].vertices[h].clone())}if(n[d].normals!==void 0){f.normals=[];for(let h=0,g=n[d].normals.length;h<g;h++)f.normals.push(n[d].normals[h].clone())}this.morphTargets.push(f)}let s=t.morphNormals;for(let d=0,m=s.length;d<m;d++){let f={};if(s[d].vertexNormals!==void 0){f.vertexNormals=[];for(let h=0,g=s[d].vertexNormals.length;h<g;h++){let x=s[d].vertexNormals[h],v={};v.a=x.a.clone(),v.b=x.b.clone(),v.c=x.c.clone(),f.vertexNormals.push(v)}}if(s[d].faceNormals!==void 0){f.faceNormals=[];for(let h=0,g=s[d].faceNormals.length;h<g;h++)f.faceNormals.push(s[d].faceNormals[h].clone())}this.morphNormals.push(f)}let a=t.skinWeights;for(let d=0,m=a.length;d<m;d++)this.skinWeights.push(a[d].clone());let c=t.skinIndices;for(let d=0,m=c.length;d<m;d++)this.skinIndices.push(c[d].clone());let p=t.lineDistances;for(let d=0,m=p.length;d<m;d++)this.lineDistances.push(p[d]);let l=t.boundingBox;l!==null&&(this.boundingBox=l.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 Cl().fromGeometry(this),e=new oe.BufferGeometry,r=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",new oe.BufferAttribute(r,3).copyVector3sArray(t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",new oe.BufferAttribute(o,3).copyVector3sArray(t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",new oe.BufferAttribute(o,3).copyColorsArray(t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",new oe.BufferAttribute(o,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",new oe.BufferAttribute(o,2).copyVector2sArray(t.uvs2))}e.groups=t.groups;for(let o in t.morphTargets){let n=[],s=t.morphTargets[o];for(let a=0,c=s.length;a<c;a++){let p=s[a],l=new oe.Float32BufferAttribute(p.data.length*3,3);l.name=p.name,n.push(l.copyVector3sArray(p.data))}e.morphAttributes[o]=n}if(t.skinIndices.length>0){let o=new oe.Float32BufferAttribute(t.skinIndices.length*4,4);e.setAttribute("skinIndex",o.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){let o=new oe.Float32BufferAttribute(t.skinWeights.length*4,4);e.setAttribute("skinWeight",o.copyVector4sArray(t.skinWeights))}return t.boundingSphere!==null&&(e.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(e.boundingBox=t.boundingBox.clone()),e}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(t){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(t){let e=new oe.BufferGeometry,r=t.geometry;if(t.isPoints||t.isLine){let o=new oe.Float32BufferAttribute(r.vertices.length*3,3),n=new oe.Float32BufferAttribute(r.colors.length*3,3);if(e.setAttribute("position",o.copyVector3sArray(r.vertices)),e.setAttribute("color",n.copyColorsArray(r.colors)),r.lineDistances&&r.lineDistances.length===r.vertices.length){let s=new oe.Float32BufferAttribute(r.lineDistances.length,1);e.setAttribute("lineDistance",s.copyArray(r.lineDistances))}r.boundingSphere!==null&&(e.boundingSphere=r.boundingSphere.clone()),r.boundingBox!==null&&(e.boundingBox=r.boundingBox.clone())}else t.isMesh&&(e=r.toBufferGeometry());return e}};Zr.prototype.isGeometry=!0;var Cl=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,n,s=t.faces;for(o=0;o<s.length;o++){let a=s[o];a.materialIndex!==n&&(n=a.materialIndex,r!==void 0&&(r.count=o*3-r.start,e.push(r)),r={start:o*3,materialIndex:n})}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,n=o[0]&&o[0].length>0,s=o[1]&&o[1].length>0,a=t.morphTargets,c=a.length,p;if(c>0){p=[];for(let x=0;x<c;x++)p[x]={name:a[x].name,data:[]};this.morphTargets.position=p}let l=t.morphNormals,u=l.length,d;if(u>0){d=[];for(let x=0;x<u;x++)d[x]={name:l[x].name,data:[]};this.morphTargets.normal=d}let m=t.skinIndices,f=t.skinWeights,h=m.length===r.length,g=f.length===r.length;r.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let x=0;x<e.length;x++){let v=e[x];this.vertices.push(r[v.a],r[v.b],r[v.c]);let A=v.vertexNormals;if(A.length===3)this.normals.push(A[0],A[1],A[2]);else{let b=v.normal;this.normals.push(b,b,b)}let _=v.vertexColors;if(_.length===3)this.colors.push(_[0],_[1],_[2]);else{let b=v.color;this.colors.push(b,b,b)}if(n===!0){let b=o[0][x];b!==void 0?this.uvs.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",x),this.uvs.push(new oe.Vector2,new oe.Vector2,new oe.Vector2))}if(s===!0){let b=o[1][x];b!==void 0?this.uvs2.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",x),this.uvs2.push(new oe.Vector2,new oe.Vector2,new oe.Vector2))}for(let b=0;b<c;b++){let D=a[b].vertices;p[b].data.push(D[v.a],D[v.b],D[v.c])}for(let b=0;b<u;b++){let D=l[b].vertexNormals[x];d[b].data.push(D.a,D.b,D.c)}h&&this.skinIndices.push(m[v.a],m[v.b],m[v.c]),g&&this.skinWeights.push(f[v.a],f[v.b],f[v.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,n,s=0){this.a=t,this.b=e,this.c=r,this.normal=o&&o.isVector3?o:new oe.Vector3,this.vertexNormals=Array.isArray(o)?o:[],this.color=n&&n.isColor?n:new oe.Color,this.vertexColors=Array.isArray(n)?n:[],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 tb=["a","b","c"];function rb(i,t){switch(t){case"c":return i.c;case"b":return i.b;case"a":default:return i.a}}function Nl(i,t,e){let r=Math.min(i,t),o=Math.max(i,t),n=r+"_"+o;return e.get(n)}function Ol(i,t,e,r,o,n){let s=Math.min(i,t),a=Math.max(i,t),c=s+"_"+a,p;if(r.has(c))p=r.get(c);else{let l=e[s],u=e[a];p={a:l,b:u,newEdge:null,faces:[]},r.set(c,p)}p.faces.push(o),n[i].edges.push(p),n[t].edges.push(p)}function ob(i,t,e,r){let o,n,s;for(o=0,n=i.length;o<n;o++)e[o]={edges:[]};for(o=0,n=t.length;o<n;o++)s=t[o],Ol(s.a,s.b,i,r,s,e),Ol(s.b,s.c,i,r,s,e),Ol(s.c,s.a,i,r,s,e)}function oa(i,t,e,r,o){i.push(new mn(t,e,r,void 0,void 0,o))}function fn(i,t){return Math.abs(t-i)/2+Math.min(i,t)}function na(i,t,e,r){i.push([t.clone(),e.clone(),r.clone()])}var ia=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof Gr.BufferGeometry?t=new Zr().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 Gr.Vector3,r,o,n,s,a,c=t.vertices,p=t.faces,l=t.faceVertexUvs[0],u=l!==void 0&&l.length>0,d=[],m=new Map;ob(c,p,d,m);let f=[],h,g,x,v,A,_,b;for(let V of Array.from(m.keys())){for(g=m.get(V),x=new Gr.Vector3,A=3/8,_=1/8,b=g.faces.length,b!=2&&(A=.5,_=0,b!=1),x.addVectors(g.a,g.b).multiplyScalar(A),e.set(0,0,0),s=0;s<b;s++){for(v=g.faces[s],a=0;a<3&&(h=c[rb(v,tb[a])],!(h!==g.a&&h!==g.b));a++);h&&e.add(h)}e.multiplyScalar(_),x.add(e),g.newEdge=f.length,f.push(x)}let D,S,y,I,T,L,C,N=[];for(o=0,n=c.length;o<n;o++){for(L=c[o],T=d[o].edges,r=T.length,r==3?D=3/16:r>3&&(D=3/(8*r)),S=1-r*Number(D),y=D,r<=2&&(r==2?(S=3/4,y=1/8):r==1||r==0),C=L.clone().multiplyScalar(S),e.set(0,0,0),s=0;s<r;s++)I=T[s],h=I.a!==L?I.a:I.b,e.add(h);e.multiplyScalar(Number(y)),C.add(e),N.push(C)}let j=N.concat(f),W=N.length,ne,ue,se,K=[],U=[],F,E,B,P,G=new Gr.Vector2,Q=new Gr.Vector2,k=new Gr.Vector2;for(o=0,n=p.length;o<n;o++)v=p[o],ne=Number(Nl(v.a,v.b,m).newEdge)+W,ue=Number(Nl(v.b,v.c,m).newEdge)+W,se=Number(Nl(v.c,v.a,m).newEdge)+W,oa(K,ne,ue,se,v.materialIndex),oa(K,v.a,ne,se,v.materialIndex),oa(K,v.b,ue,ne,v.materialIndex),oa(K,v.c,se,ue,v.materialIndex),u&&(F=l[o],E=F[0],B=F[1],P=F[2],G.set(fn(E.x,B.x),fn(E.y,B.y)),Q.set(fn(B.x,P.x),fn(B.y,P.y)),k.set(fn(E.x,P.x),fn(E.y,P.y)),na(U,G,Q,k),na(U,E,G,k),na(U,B,Q,G),na(U,P,k,Q));t.vertices=j,t.faces=K,u&&(t.faceVertexUvs[0]=U)}};var Je=new pr.Vector3,qd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=i.geometry??t?.geometry??new pr.BufferGeometry().copy(new pr.BoxBufferGeometry(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(Je),r={width:Je.x,height:Je.y,depth:Je.z,subdivisions:0}):r=t.parameters;let o={...r,...i.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(i){let{width:t,height:e,depth:r,subdivisions:o}=i.parameters,n=i.geometry??new pr.BufferGeometry().copy(new pr.BoxBufferGeometry(100,100,100)),s=n.userData.parameters;s===void 0?(n.computeBoundingBox(),n.boundingBox.getSize(Je)):Je.set(s.width,s.height,s.depth),(t!==Je.x||e!==Je.y||r!==Je.z)&&n.scale(Je.x===0?1:t/Je.x,Je.y===0?1:e/Je.y,Je.z===0?1:r/Je.z);let a=n.originalGeometry;return o>0?(a===void 0||s?.subdivisions!==o)&&(a===void 0&&(a=n),n=new ia(o).modify(a).toBufferGeometry()):(a!==void 0&&(n=a),a=void 0,n.getAttribute("normal")===void 0&&n.computeVertexNormals()),a!==void 0&&Object.assign(n,{originalGeometry:a}),delete i.geometry,Object.assign(n,{userData:{...i,type:"NonParametricGeometry"}})}static loadFromUrl(i,t,e){new pr.BufferGeometryLoader(e).load(i,o=>{let n=this.normalizeInputs({geometry:o});o.boundingBox.getSize(Je);let s=100/Je.x;Object.assign(n.parameters,{width:100,height:Je.y*s,depth:Je.z*s}),t(this.build(n))})}};var $d=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},i.parameters);return{shape:i.shape&&i.shape instanceof Ce?i.shape:new Ce,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(i){let{width:t,height:e,spikes:r,cornerRadius:o,depth:n,extrudeBevelSize:s,extrudeBevelSegments:a}=i.parameters,c=i.shape,p=t*.5,l=e*.5,u=0,d=0,m=2*Math.PI/r;for(let h=0;h<r;h++){let g=m*h,x=u+Math.sin(g)*p,v=d+Math.cos(g)*l;c.addPoint(c.createPoint(x,v))}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 f=vt.create({shape:c,parameters:{roundness:o,depth:n,extrudeBevelSize:s,extrudeBevelSegments:a}});return Object.assign(f,{userData:{...i,type:"PolygonGeometry"}})}};var ve=require("three"),Xd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},i.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(i){let{width:t,height:e,depth:r,radialSegments:o,heightSegments:n,openEnded:s,cornerRadius:a,cornerSegments:c}=i.parameters,p=new Il(t*.5,e,o,n,s,a,c);return p.scale(1,1,r/t),Object.assign(p,{userData:{...i,type:"PyramidGeometry"}})}};function si(i,t,e){e.x=i.x*t.x,e.y=i.y,e.z=i.x*t.y}function Ll(i,t,e,r,o,n){let s=t.clone().sub(i),a=e.clone().sub(i),c=s.angleTo(a);if(s.normalize(),a.normalize(),r===o){let p=s.add(a).normalize();n.copy(i).addScaledVector(p,r/Math.sin(c/2))}else{let p=s.angleTo(a);n.copy(i),n.addScaledVector(s,o/Math.sin(p)),n.addScaledVector(a,r/Math.sin(p))}}function nb(i,t,e){let r=i.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var Il=class extends ve.BufferGeometry{constructor(t=.5,e=1,r=4,o=1,n=!1,s=0,a=4){super(),r=Math.floor(Math.max(3,r)),o=Math.floor(o),a=Math.floor(a);let c=[],p=[],l=[],u=[],d=0,m=e/2,f=Math.PI/r,h=t*Math.cos(Math.PI/r),g=2*Math.PI/r,x=(r-2)*Math.PI/r,v=Math.PI-x,A=new ve.Vector3(0,-m,0),_=new ve.Vector3(0,m,0),b=new ve.Vector2(t,-m),D=new ve.Vector2(h,-m),S=new ve.Vector2(0,_.y).sub(D),y=new ve.Vector2(0,_.y).sub(b),I=new ve.Vector2(S.y,-S.x).normalize(),T=new ve.Vector2(y.y,-y.x).normalize(),C=t*Math.cos(Math.PI/r)*Math.tan((Math.PI-S.angle())/2)-1e-8;s=Math.min(s,C);let N;{let U=new ve.Vector3(I.x,I.y,0),F=new ve.Vector3(Math.cos(g)*U.x,U.y,Math.sin(g)*U.x);N=U.angleTo(F)}let j=s/Math.tan((Math.PI-S.angle())/2),W=s/Math.tan((Math.PI-N)/2),ne=new ve.Vector3;if(!n){p.push(A.x,A.y,A.z),l.push(0,-1,0),u.push(0,0);let U=d++,F=[],E=b.clone(),B=j/Math.cos(Math.PI/r);E.x-=B;for(let P=0;P<r;P++){let G=P/r*Math.PI*2+f,Q=new ve.Vector2(Math.sin(G),Math.cos(G));si(E,Q,ne),p.push(ne.x,ne.y,ne.z),l.push(0,-1,0),u.push(0,0),F.push(d++)}for(let P=0;P<F.length;P++)c.push(F[P],U,F[(P+1)%F.length])}let ue=[];{let U=new ve.Vector3,F=new ve.Vector3,E=new ve.Vector3,B=new ve.Vector3,P=new ve.Vector3,G=new ve.Vector3;for(let Q=0;Q<r;Q++){let k=Q/r*Math.PI*2+f,V=(Q+.5)/r*Math.PI*2+f,z=(Q+1)/r*Math.PI*2+f,M=new ve.Vector2(Math.sin(k),Math.cos(k)),q=new ve.Vector2(Math.sin(V),Math.cos(V)),J=new ve.Vector2(Math.sin(z),Math.cos(z));si(b,M,F),si(b,J,E),si(I,q,U),Ll(_,F,E,W,W,B),p.push(B.x,B.y,B.z),Ll(F,_,E,W,j,P),p.push(P.x,P.y,P.z),Ll(E,F,_,j,W,G),p.push(G.x,G.y,G.z),l.push(U.x,U.y,U.z),l.push(U.x,U.y,U.z),l.push(U.x,U.y,U.z),u.push(0,0),u.push(0,0),u.push(0,0);let ee=d++,H=d++,Z=d++;if(c.push(ee,H,Z),s>0){{let ce=F.clone().add(E).multiplyScalar(.5),ie=_.clone().sub(ce).normalize(),Re=A.clone().sub(ce).normalize().add(ie).normalize().multiplyScalar(-1),ge=G.clone().sub(P);se(ce,ge,Re,S.angle())}let $,re;{let ce=new ve.Vector3;si(T,J,ce);let ie=G.clone().add(B).multiplyScalar(.5);ie=nb(ie,E,_);let fe=G.clone().sub(B);[$,re]=se(ie,fe,ce,N,B.y)}{let ce=$,ie=ce.clone().setY(0).normalize(),fe=new ve.Vector3(0,-1,0),Re=ie.clone().cross(fe);K(ce,ie,fe,Re)}ue.concat(re);{let ce=S.angle(),ie=Math.PI-ce,fe=_.clone();fe.y-=s/Math.sin(ce-Math.PI/2);let Re=new ve.Vector3,ge=[];for(let Ae=0;Ae<a;Ae++){let St=[],Vt=Math.PI/2-ie*Ae/a,Io=Math.cos(Vt),Pt=Math.sin(Vt),Po=V;for(let Ui=0;Ui<=Ae;Ui++){let ki=Math.cos(Po),Ue=Math.sin(Po);U.x=Io*Ue,U.y=Pt,U.z=Io*ki,Re.copy(fe).addScaledVector(U,s),p.push(Re.x,Re.y,Re.z),l.push(U.x,U.y,U.z),u.push(0,0),St.push(d++),Po+=Math.PI*2/Ae/r}ge.push(St)}re.reverse(),ge.push(re);let qe=ge.length-1;for(let Ae=0;Ae<qe;Ae++){let St=ge[Ae],Vt=ge[Ae+1],Io=St.length-1;c.push(Vt[1],St[0],Vt[0]);for(let Pt=1;Pt<=Io;Pt++)c.push(St[Pt],St[Pt-1],Vt[Pt]),c.push(Vt[Pt+1],St[Pt],Vt[Pt])}}}}}this.setIndex(c),this.setAttribute("position",new ve.Float32BufferAttribute(p,3)),this.setAttribute("normal",new ve.Float32BufferAttribute(l,3)),this.setAttribute("uv",new ve.Float32BufferAttribute(u,2));function se(U,F,E,B,P){let G=-B/2,Q=(Math.PI-B)/2,k=F.clone().normalize().cross(E);U.addScaledVector(E,-s/Math.sin(Q));let V=new ve.Vector3,z=new ve.Vector3,M=1,q=d,J=[];for(let ee=0;ee<=a;ee++){let H=G+ee/a*B;z.set(0,0,0),z.addScaledVector(k,Math.sin(H)),z.addScaledVector(E,Math.cos(H));for(let Z=0;Z<=M;Z++){let $=Z/M-.5;if(V.copy(U),V.addScaledVector(F,$),V.addScaledVector(z,s),P!=null){let re=Math.max(0,V.y-P);V.addScaledVector(F,-re/F.y)}p.push(V.x,V.y,V.z),l.push(z.x,z.y,z.z),u.push(0,0),Z===0&&J.push(d),d++}}for(let ee=0;ee<a;ee++)for(let H=0;H<M;H++){let Z=q+H+(M+1)*ee,$=Z+(M+1),re=$+1,ce=Z+1;c.push(Z,$,ce),c.push($,re,ce)}return[U.clone().addScaledVector(F,.5),J]}function K(U,F,E,B){let P=Math.PI/2,G=y.angle()-P,Q=[],k=new ve.Vector3,V=new ve.Vector3;for(let M=0;M<=a;M++){let q=[],J=M/a;for(let ee=0;ee<=M;ee++){let Z=((M?ee/M:0)-.5)*v,$=Math.cos(Z),re=Math.sin(Z),ce=Math.atan(Math.tan(G)*$),ie=(P+ce)*J,fe=Math.cos(ie),Re=Math.sin(ie);k.set(0,0,0),k.addScaledVector(F,Re*$),k.addScaledVector(E,fe),k.addScaledVector(B,Re*re),V.copy(U).addScaledVector(k,s),p.push(V.x,V.y,V.z),l.push(k.x,k.y,k.z),u.push(0,0),q.push(d++)}Q.push(q)}let z=Q.length-1;for(let M=0;M<z;M++){let q=Q[M],J=Q[M+1],ee=q.length-1;c.push(q[0],J[1],J[0]);for(let H=1;H<=ee;H++)c.push(q[H-1],q[H],J[H]),c.push(q[H],J[H+1],J[H])}}}};var Yd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters),r=Object.assign(t?.ui??{enabledIndieCorners:!1},i.ui);return{shape:i.shape&&i.shape instanceof Ce?i.shape:new Ce,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(i){let t=i.shape,{width:e,height:r,cornerRadius:o,cornerType:n,depth:s,extrudeBevelSize:a,extrudeBevelSegments:c}=i.parameters,p={x:e*.5,y:r*.5},l={x:-p.x,y:-p.y},u={x:p.x,y:p.y};function d(_,b,D){return b>e&&D>r?Math.min(_*e/b,_*r/D):b>e?_*e/b:D>r?_*r/D:_}let m=[];m[0]=o[0]===0?0:d(o[0],o[0]+o[3],o[0]+o[1]),m[1]=o[1]===0?0:d(o[1],o[1]+o[2],o[1]+o[0]),m[2]=o[2]===0?0:d(o[2],o[2]+o[1],o[2]+o[3]),m[3]=o[3]===0?0:d(o[3],o[3]+o[0],o[3]+o[2]);let f=l.x,h=u.x,g=u.y,x=l.y;t.addPoint(t.createPoint(f,g)),t.addPoint(t.createPoint(h,g)),t.addPoint(t.createPoint(h,x)),t.addPoint(t.createPoint(f,x)),t.isClosed=!0;let v=!0;for(let _=0,b=t.points.length;_<b;_++)t.points[_].roundness=m[_],_>0&&m[_]!==m[_-1]&&(v=!1);v&&(t.roundness=m[0]),t.useCubicForRoundedCorners=n!==1,t.update();let A=vt.create({shape:t,parameters:{depth:s,extrudeBevelSize:a,extrudeBevelSegments:c}});return Object.assign(A,{userData:{...i,type:"RectangleGeometry"}})}};var Kd=require("three"),Qd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},i.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(i){let{width:t=100,height:e=t,depth:r=t,widthSegments:o=64,heightSegments:n=64,phiStart:s,phiLength:a,thetaStart:c,thetaLength:p}=i.parameters,l=new Kd.SphereBufferGeometry(.5*t,o,n,s,a,c,p);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...i,type:"SphereGeometry"}})}};var Zd=require("three"),Jd=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:0})}}static build(i){let{width:t=100,height:e=t,widthSegments:r=8,heightSegments:o=8}=i.parameters,n=new Zd.PlaneBufferGeometry(t,e,r,o);return n.scale(1,1,1),Object.assign(n,{userData:{...i,type:"PlaneGeometry"}})}};var Jr=require("three"),em=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},i.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(i){let{width:t,height:e,depth:r,angle:o,cornerRadius:n,cornerSegments:s}=i.parameters,a=new Pl(t,e,r,o,n,s);return Object.assign(a,{userData:{...i,type:"BackdropGeometry"}})}},Pl=class extends Jr.BufferGeometry{constructor(t=1,e=1,r=1,o=90,n=10,s=24){super(),this.type="BackdropGeometry";let a=[],c=[],p=[],l=.001;n==0&&(s=1),s=Math.max(1,Math.floor(s)),n=Math.min(n,100),o=Math.min(180-l,o),o*=Math.PI/180;let u=[],d=Math.PI/2,m=(V=0,z=0,M=0)=>new Jr.Vector3(V,z,M),f=m(),h=m(),[g,x,v]=[e/2,t/2,r/2],A=-x,_=+x,[b,D,S]=[m(A,-g,+v),m(A,-g,-v),m(A,+g,-v)],y=(V,z=!1)=>Math.sin(V-Math.PI/(1+ +z)),I=(V,z=!1)=>Math.cos(V-Math.PI/(1+ +z));S.y=Math.sin(o)*e-g;let T=Math.cos(o)*e-v,L=b.z-l;o<=d?(S.z=Math.min(T,L),S.z==L&&(S.y-=(T-L)/Math.tan(d-o))):D.z=Math.min(D.z-T-v,b.z-l),f.subVectors(b,D),h.subVectors(S,D);let C=Math.min(f.length(),h.length())*n/100,N=C*Math.tan(o/2),j=C/Math.cos(o/2),W=f.clone().normalize().add(h.normalize()).setLength(j).add(D);f.set(0,y(o,!0),I(o,!0)),u.push([S,f.clone()]);let ne=(Math.PI-o)/s;for(let V=0;V<=s;V++){let z=d+o+V*ne;f.set(0,Math.sin(z)*N,Math.cos(z)*N),f.add(W),h.set(0,y(z),I(z)),u.push([f.clone(),h.clone()])}u.push([b,m(0,1,0)]);let ue=Math.sin(ne/2)*N*2,se=u.length-1,K=u[0][0].distanceTo(u[1][0]),U=u[se-1][0].distanceTo(u[se][0]),F=K+ue*s+U;u[0].push(1);for(let V=0;V<=s;V++)u[V+1].push(1-(K+V*ue)/F);u[se].push(0);let[E,B,P]=u[0],G,Q,k;for(let V=1;V<u.length;V++)[G,Q,k]=u[V],a.push(A,E.y,E.z,A,G.y,G.z,_,E.y,E.z,_,E.y,E.z,A,G.y,G.z,_,G.y,G.z),c.push(0,B.y,B.z,0,Q.y,Q.z,0,B.y,B.z,0,B.y,B.z,0,Q.y,Q.z,0,Q.y,Q.z),p.push(0,P,0,k,1,P,1,P,0,k,1,k),[E,B,P]=[G,Q,k];this.setAttribute("position",new Jr.Float32BufferAttribute(a,3)),this.setAttribute("normal",new Jr.Float32BufferAttribute(c,3)),this.setAttribute("uv",new Jr.Float32BufferAttribute(p,2))}};var tm=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters);return{shape:i.shape&&i.shape instanceof Ce?i.shape:new Ce,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(i){let{width:t,height:e,innerRadiusPercent:r,spikes:o,cornerRadius:n,angle:s,depth:a,extrudeBevelSize:c,extrudeBevelSegments:p}=i.parameters,l=i.shape,u=t*.5,d=e*.5,m=0,f=0,h=s*Math.PI/360/o,g=Math.PI/2*3*-1,x=u*r/100,v=d*r/100;if(o===3&&r===50){h=2*Math.PI/o;for(let _=0;_<o;_++){let b=h*_,D=m+Math.sin(b)*u,S=f+Math.cos(b)*d;l.addPoint(l.createPoint(D,S))}}else for(let _=0;_<o;_++){let b=m+Math.cos(g)*u,D=f+Math.sin(g)*d;l.addPoint(l.createPoint(b,D)),g+=h,b=m+Math.cos(g)*x,D=f+Math.sin(g)*v,_<=o,l.addPoint(l.createPoint(b,D)),g+=h}l.isClosed=!0;for(let _=0,b=l.points.length;_<b;_++)l.points[_].roundness=n;l.roundness=n,l.update();let A=vt.create({shape:l,parameters:{roundness:n,depth:a,extrudeBevelSize:c,extrudeBevelSegments:p}});return Object.assign(A,{userData:{...i,type:"StarGeometry"}})}};var rm=require("three"),sa=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0},i.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(i){let{width:t,height:e}=i.parameters,r=new rm.PlaneBufferGeometry(t,e);return Object.assign(r,{userData:{...i,type:"TextFrameGeometry"}})}};var om=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},i.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),n=Math.abs(e.depth??e.width*.25);return{parameters:Object.assign(e,{width:r,height:o,depth:n})}}static build(i){let{width:t,height:e,depth:r,radialSegments:o,tubularSegments:n,arc:s,cornerRadius:a,cornerSegments:c}=i.parameters,p=ib(t,e,r,t*.5,s,n,0,0,o,a,c);return p.scale(1,e/t,1),Object.assign(p,{userData:{...i,type:"TorusGeometry"}})}};function ib(i,t,e,r,o,n,s,a,c,p,l){return[t,e]=[e,t],s=t/2,o/=2*Math.PI,o==1&&(p=0),new ni(!0,i,t,e,r,o,n,s,a,c,p,l)}var nm=require("three"),im=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},i.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(i){let{width:t,tube:e,tubularSegments:r,radialSegments:o,p:n,q:s}=i.parameters,a=t*.5;a!==e&&(a-=e);let c=new nm.TorusKnotBufferGeometry(a,e,r,o,n,s);return Object.assign(c,{userData:{...i,type:"TorusKnotGeometry"}})}};var sm=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},i.parameters);return{shape:i.shape&&i.shape instanceof Ce?i.shape:new Ce,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(i){let{width:t=100,height:e,cornerRadius:r,depth:o,extrudeBevelSize:n,extrudeBevelSegments:s,isRect:a}=i.parameters,c=i.shape,p=t*.5,l=e*.5;a?(c.addPoint(c.createPoint(-p,l)),c.addPoint(c.createPoint(p,-l)),c.addPoint(c.createPoint(-p,-l))):(c.addPoint(c.createPoint(0,l)),c.addPoint(c.createPoint(p,-l)),c.addPoint(c.createPoint(-p,-l))),c.isClosed=!0;for(let d=0,m=c.points.length;d<m;d++)c.points[d].roundness=r;c.roundness=r,c.update();let u=vt.create({shape:c,parameters:{roundness:r,depth:o,extrudeBevelSize:n,extrudeBevelSegments:s}});return Object.assign(u,{userData:{...i,type:"TriangleGeometry"}})}};var He=require("three");var sb,aa=new Promise(i=>{sb=i});var ym=require("three");var ro=require("three");var da=require("three");var Bl=require("three");var ca=require("three");var Ml=require("three");function Ye(i,t){return t.color(i)}var Dl=i=>"isEntity"in i,dr=i=>"isAbstractMesh"in i,mr=i=>i!==null&&i.isBooleanMesh,am=i=>i.objectType==="CombinedCamera";var la=i=>"objectHelper"in i;function ab(i,t){let e=!1;t.position&&(i.position.fromArray(t.position),e=!0),t.rotation&&(i.rotation.fromArray(t.rotation),e=!0),t.scale&&(e=!0,i.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&"hiddenMatrix"in i&&(e=!0,i.hiddenMatrix.fromArray(t.hiddenMatrix??Wr.identity)),e&&(i.updateMatrix(),mr(i.parent)&&dr(i)&&i.invalidateDownstreamBooleanData(!0).recomputeBoolean()),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&i.updateWorldMatrix(!1,!0),i.objectType==="CombinedCamera"&&(t.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=t.isUpVectorFlipped),i.updateUp())}function lb(i,t){ab(i,t),t.name!==void 0&&(i.name=t.name),t.visible!==void 0&&(i.visible=t.visible)}function lm(i,t,e){lb(i,t),t.color!==void 0&&(i.color=Ye(t.color,e)),t.intensity!==void 0&&(i.intensity=t.intensity),t.shadows!==void 0&&!(i instanceof Ml.HemisphereLight)&&(i.castShadow=t.shadows),i.shadow&&!(i instanceof Ml.HemisphereLight)&&t.depth!==void 0&&(i.shadow.camera.far=t.depth,i.shadow.needsUpdate=!0)}function cm(i,t){i.shadow.camera.right=t/2,i.shadow.camera.left=-t/2,i.shadow.camera.top=t/2,i.shadow.camera.bottom=-t/2,i.shadow.needsUpdate=!0}var ua=i=>class extends i{hasEntityChild(){return this.children.some(e=>Dl(e))}isDescendantOf(e){e instanceof ca.Object3D&&(e=e.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===e)return!0;r=r.parent}return!1}attach(e,r){this.updateWorldMatrix(!0,!1);let o=new ca.Matrix4().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),Dl(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 n=e.children[o];this.add(n.clone())}return this}};var ze=require("three");var hn=new ze.Box3,fr=new ze.Vector3,hr=new ze.Vector3,gn=new ze.Matrix4,pm=[new ze.Vector3(-1,1,1),new ze.Vector3(-1,-1,1),new ze.Vector3(1,-1,1),new ze.Vector3(1,1,1),new ze.Vector3(-1,1,-1),new ze.Vector3(-1,-1,-1),new ze.Vector3(1,-1,-1),new ze.Vector3(1,1,-1)],cb=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],ub=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function pb(i,t,e=0,r=t.count){let o=1/0,n=1/0,s=1/0,a=-1/0,c=-1/0,p=-1/0;for(let l=e;l<r;l++){let u=t.getX(l),d=t.getY(l),m=t.getZ(l);u<o&&(o=u),d<n&&(n=d),m<s&&(s=m),u>a&&(a=u),d>c&&(c=d),m>p&&(p=m)}return i.min.set(o,n,s),i.max.set(a,c,p),i}var um=(i,t,e)=>{if(dr(i)){let r=i.geometry.userData.parameters,o=i.geometry.getAttribute("position");i.geometry.userData.type==="SubdivGeometry"?fr.copy(i.originalGeometry.boundingSphere.center):o!==void 0&&(pb(hn,o,i.geometry.drawRange.start,i.geometry.drawRange.count<1/0?i.geometry.drawRange.count:o.count),hn.getCenter(fr)),i.forceComputeSize?hn.getSize(hr).multiplyScalar(.5):hr.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}else if(la(i)&&i.objectHelper.visible){let r=i.geometryHelper.getAttribute("position");hn.setFromArray(r.array),hn.getCenter(fr),hn.getSize(hr).multiplyScalar(.5)}else fr.setScalar(0),hr.setScalar(0);gn.copy(t).multiply(i.matrixWorld),hr.x===0&&hr.y===0&&hr.z===0?e.push(new ze.Vector3(fr.x,fr.y,fr.z).applyMatrix4(gn)):pm.forEach(r=>{e.push(r.clone().multiply(hr).add(fr).applyMatrix4(gn))})},ai=class extends ze.Box3{constructor(){super(...arguments);this.matrix=new ze.Matrix4;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(e){return super.copy(e),this.matrix.copy(e.matrix),this.vertices=e.vertices.map(r=>r.clone()),this.faces=e.faces.map(r=>r.clone()),this.edges=e.edges.map(r=>r.clone()),this.centerEdges=e.centerEdges.map(r=>r.clone()),this}setFromObjectSize(e,r=!1){e.updateWorldMatrix(!1,r),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let o=new ze.Matrix4().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,r)}expandByObjectSize(e,r,o=!1){let n=[];return o===!0?e.traverseEntity(s=>{s.visible&&um(s,r,n)}):um(e,r,n),this.setFromPoints(n)}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(hr).multiplyScalar(.5),this.getCenter(fr),gn.copy(this.matrix).setPosition(fr),this.vertices=pm.map(e=>e.clone().multiply(hr).applyMatrix4(gn))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=cb.map(([e,r])=>new ze.Line3(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new ze.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=ub.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var gr=i=>"isEntity"in i,dm=i=>"isAbstractMesh"in i,jt=i=>class extends ua(i){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new Bl.Matrix4;this._singleBBox=new ai;this._recursiveBBox=new ai;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1}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=>{gr(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)gr(o)&&o.traverseEntity(r)}traverseVisibleEntity(r){r(this);for(let o of this.children)gr(o)&&o.visible&&o.traverseVisibleEntity(r)}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 n=this.parent;if(r&&n!==null&&n.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 n of r.children)gr(n)&&this.add(n.clone());return this}keepChildrenMatrixWorld(){let r=new Bl.Matrix4,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),r.copy(this.matrixWorld).invert(),r.multiply(o);for(let n of this.children)gr(n)&&n.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 Ko(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 Ko(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 Ke=require("three");var mm=require("three"),El=class extends mm.Object3D{},pa=class extends El{constructor(e){super();this.object=e;this.matrixAutoUpdate=!0}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return!0}get isLight(){return!1}get layers(){return this.object.layers}set layers(e){}get isCamera(){return!1}get geometry(){return this.object.geometry}get material(){return this.object.material}};var _o=class extends Ke.Object3D{constructor(e,r={}){super();this.object=e;let o=e.recursiveBBox.getSize(new Ke.Vector3),n=.1;this.parameters=Ss.defaultData(o.toArray(),n),mo(this.parameters,r),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(e){this.parameters.hideBase=e}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters)}this.children.forEach(e=>e.updateMatrix())}_updateCount(){let e=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count;if(this.children.length!==e)if(this.children.length<e)for(let r=0,o=e-this.children.length;r<o;++r){let n=new pa(this.object);n.visible=!0,this.add(n),this.parameters.hideBase&&this.setHideBase(!0)}else for(let r=0,o=this.children.length-e;r<o;++r)this.remove(this.children[0])}_updateRadial(e){let r=e.radial,o=r.start*Ke.MathUtils.DEG2RAD,n=r.end*Ke.MathUtils.DEG2RAD,s=o-n,a=new Ke.Euler(r.rotation[0]*Ke.MathUtils.DEG2RAD,r.rotation[1]*Ke.MathUtils.DEG2RAD,r.rotation[2]*Ke.MathUtils.DEG2RAD),c;switch(r.axis){case"z":c=new Ke.Vector3(0,0,1);break;case"y":c=new Ke.Vector3(0,1,0);break;default:case"x":c=new Ke.Vector3(1,0,0);break}for(let[p,l]of this.children.entries()){l.scale.x=r.scale[0],l.scale.y=r.scale[1],l.scale.z=r.scale[2],l.position.setScalar(0);let u=s/e.count*p-o;switch(r.axis){case"x":l.rotation.set(0,u,0);break;case"y":l.rotation.set(0,0,u);break;case"z":l.rotation.set(u,0,0);break}l.translateOnAxis(c,r.radius),l.position.x+=r.position[0],l.position.y+=r.position[1],l.position.z+=r.position[2],r.alignment===!0?(l.rotation.x+=a.x,l.rotation.y+=a.y,l.rotation.z+=a.z):l.rotation.copy(a)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,o=new Ke.Euler(r.rotation[0]*Ke.MathUtils.DEG2RAD,r.rotation[1]*Ke.MathUtils.DEG2RAD,r.rotation[2]*Ke.MathUtils.DEG2RAD);for(let[n,s]of this.children.entries())s.scale.x=1+(r.scale[0]-1)*n,s.scale.y=1+(r.scale[1]-1)*n,s.scale.z=1+(r.scale[2]-1)*n,s.rotation.x=o.x*n,s.rotation.y=o.y*n,s.rotation.z=o.z*n,s.position.x=r.position[0]*n,s.position.y=r.position[1]*n,s.position.z=r.position[2]*n}_updateGrid(e){let r=0,o=e.grid;if(o.useCenter===!0){let n={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},s=new Ke.Vector3(o.size[0]*(o.count[0]-n.x)*.5,o.size[1]*(o.count[1]-n.y)*.5,o.size[2]*(o.count[2]-n.z)*.5);for(let a=0;a<o.count[0];a++)for(let c=0;c<o.count[1];c++)for(let p=0;p<o.count[2];p++){let l=this.children[r++];l.scale.setScalar(1),l.rotation.set(0,0,0),l.position.x=o.size[0]*a-s.x,l.position.y=o.size[1]*c-s.y,l.position.z=o.size[2]*p-s.z}}else for(let n=0;n<o.count[0];n++)for(let s=0;s<o.count[1];s++)for(let a=0;a<o.count[2];a++){let c=this.children[r++];c.scale.setScalar(1),c.rotation.set(0,0,0),c.position.x=o.size[0]*n,c.position.y=-o.size[1]*s,c.position.z=-o.size[2]*a}}fromClonerState(e){return e.hideBase!==void 0&&this.setHideBase(e.hideBase),mo(this.parameters,e),this.update(),this}};var Rt=require("three");function db(i){if(i.geometry.attributes.extrudeNormals||!i.geometry.attributes.position)return;let t=new Map,e=i.geometry.attributes.position.array,r=i.geometry.attributes.normal.array,o=new Float32Array(e.length);for(let n=0;n<e.length;n+=3){let s=`${e[n]}_${e[n+1]}_${e[n+2]}`,a=new Rt.Vector3(r[n],r[n+1],r[n+2]);t.has(s)?t.get(s)?.normals.push(a):t.set(s,{normals:[a],result:new Rt.Vector3})}t.forEach((n,s)=>{for(let a of n.normals)n.result.add(a);n.result.divideScalar(n.normals.length)});for(let n=0;n<e.length;n+=3){let s=`${e[n]}_${e[n+1]}_${e[n+2]}`,a=t.get(s)?.result;a&&(o[n]=a.x,o[n+1]=a.y,o[n+2]=a.z)}i.geometry.setAttribute("extrudeNormal",new Rt.Float32BufferAttribute(o,3))}function mb(i){if(i.geometry.attributes.extrudeNormals||!i.geometry.attributes.position)return;let t=i.geometry.attributes.position.array,e=new Float32Array(t.length),r=new Rt.Vector3;for(let o=0;o<t.length;o+=3)r.set(t[o],t[o+1],t[o+2]).normalize(),e[o]=r.x,e[o+1]=r.y,e[o+2]=r.z;i.geometry.setAttribute("extrudeNormal",new Rt.Float32BufferAttribute(e,3))}function eo(i){if(i.objectType!=="TextFrame"){if(Array.isArray(i.material)){for(let t of i.material)if(t.getLayersOfType("outline").length===0)return}else if(i.material.getLayersOfType("outline").length===0)return;i.objectType==="Mesh2D"?mb(i):db(i)}}function to(i){if(!i.geometry.attributes.position)return;let t=i.geometry.attributes.position.array,e=new Float32Array(t.length),r=parseInt(i.uuid.replace(/\D/g,"")),o=[Rt.MathUtils.seededRandom(r),Rt.MathUtils.seededRandom(r+1e4),Rt.MathUtils.seededRandom(r+2e4)];for(let n=0;n<t.length;n++)e[n]=o[n%3];i.geometry.setAttribute("randomColor",new Rt.BufferAttribute(e,3))}var it=class extends jt(da.Mesh){constructor(e,r){super(e,r);this.isAbstractMesh=!0;this.isBooleanMesh=!1;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new da.Matrix4;this.booleanExclude=null;Array.isArray(r)&&e.groups.length===0&&e.addGroup(0,e.getAttribute("position").count,0)}get isGroup(){return this._cloner?.parameters.hideBase===!0}get isMesh(){return!this.isGroup}set isMesh(e){}get cloner(){return this._cloner}set cloner(e){this._cloner&&this.remove(this._cloner),e&&this.add(e),this._cloner=e}updateGeometry(e){let r=this.geometry,o=Gl[r.userData.type],n=this.objectType==="NonParametric"?Object.assign({},r.userData,{geometry:r}):r.userData,s=o.build(o.normalizeInputs(e,n)),a=r.uuid;this.geometry.dispose(),this.geometry=s,this.geometry.uuid=a,this.geometry.computeBoundingSphere(),eo(this),r.getAttribute("randomColor")&&to(this)}clone(e){let r=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,o=li(r),n=this.material;return new this.constructor(o,n).copy(this,e)}copy(e,r=!0){return super.copy(e,r),e.cloner&&(this.cloner=new _o(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new _o(this)),this.cloner.fromClonerState(e))}fromState(e,r){return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=e.castShadow??!0,this.receiveShadow=e.receiveShadow??!0,this.booleanExclude=e.booleanExclude??null),this}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(Yt.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),mr(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)dr(e)&&(e.freeBooleanPointer(),mr(e)&&e.invalidateUpstreamBooleanData())}};var fb=new ro.Vector3(0,0,1),fm=new ro.Vector3,hm=new ro.Vector3,gm=new ro.Matrix3,yn=class extends it{constructor(e=vt.create({}),r){super(e,r);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new ro.EventDispatcher;this._onShapeUpdate=()=>{this.updateGeometry({}),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e){if(super.updateGeometry(e),"userData"in this.geometry){let r=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:r})}}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),gm.getNormalMatrix(this.matrixWorld),fm.copy(fb).applyMatrix3(gm).normalize(),hm.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(fm,hm)}clone(e){let r=this.shape.clone(),o=this.material,n=this.geometry.userData,s=vt.create(Object.assign({},n,{shape:r})),a=new yn(s,o).copy(this,e);return a.shape=r,r.update(),a}raycast(e,r){it.prototype.raycast.call(this,e,r)}};function ma(i,t){return hb(i)}function hb(i){let t={parameters:i,type:i.type};if(i.type==="VectorGeometry"){let r=Ce.createFromState(i.shape,i.width,i.height);t.shape=r}else i.type==="NonParametricGeometry"&&(i.data.groups&&i.data.groups.forEach(r=>r.materialIndex=Math.max(r.materialIndex??0,0)),t.geometry=new ym.BufferGeometryLoader().parse(i));let e;try{e=li(t)}catch(r){console.error(r)}if(!e){let r=Ce.createFromState(on.defaultData(),100,100);t.shape=r,e=li(t)}return e}var de;aa.then(i=>{de=i});var xm=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),vm=new Uint32Array([0,1,2,3]),bm=new Uint8Array([4]),Ht=class{static build(i,t,e,r,o){let n,s,a,c=i?.phongAngle??t?.phongAngle??35;if(r===!1&&(c=-1),i.positionWASM!==void 0){e&&e!==0&&(de.free_bvh(e),de.free_subdivision_surface(e));try{n=Ht.allocate(i,o)}catch(p){console.error(p,i),n=Ht.allocate({positionWASM:xm,indexWASM:vm,verticesPerFaceWASM:bm},o)}de.set_destination_refinement_level(n,0),s=Ht.buildLevel(n,!0,c)}else n=e,i.phongAngle!==void 0&&(s=Ht.buildLevel(n,!0,c));return i.subdivisions!==void 0&&(de.set_destination_refinement_level(n,i.subdivisions),i.subdivisions>0?a=Ht.buildLevel(n,!1,c):a=null),{subdivPointer:n,originalGeometry:s,subdividedGeometry:a}}static primitiveToQuads(i,t){i.widthSegments>16&&(i.widthSegments=16),i.heightSegments>16&&(i.heightSegments=16),i.depthSegments>16&&(i.depthSegments=16),i.radialSegments>16&&(i.radialSegments=16),i.type==="DodecahedronGeometry"&&(i.detail=0);let e=i.shape!==void 0?t.geometry:ma(i),r,o,n,s;return{positions:r,triIndices:s}=zl(e.getAttribute("position"),e.getIndex()),{indices:o,verticesPerFace:n}=Ul(r,s,e),{positions:r,indices:o,verticesPerFace:n}}static allocate(i,t){let e,r,o,n=[],s=[];i.positionWASM&&i.positionWASM.length>0?(e=i.positionWASM,r=i.indexWASM,o=i.verticesPerFaceWASM):(e=xm,r=vm,o=bm);let a=e.length,c=r.length,p=o.length,l=e.length+n.length+s.length,u=r.length+o.length,d=l*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,m=l*Float32Array.BYTES_PER_ELEMENT,f=u*Uint32Array.BYTES_PER_ELEMENT,h=de._malloc(d),g=new Float32Array(de.HEAPF32.buffer,h,l),x=new Uint32Array(de.HEAPU32.buffer,h+m,u);g.set(e,0),g.set(n,e.length),g.set(s,e.length+n.length),x.set(r,0),x.set(o,r.length);let v;i?.scaleBaked?.some(_=>_!==1)&&(v=new He.Matrix4().makeScale(...i.scaleBaked)),t&&(v?v.premultiply(t):v=t);let A=v?de.alloc_subdivision_surface2(h,a,h+m,c,h+m+r.length*Uint32Array.BYTES_PER_ELEMENT,p,v.elements):de.alloc_subdivision_surface(h,a,h+m,c,h+m+r.length*Uint32Array.BYTES_PER_ELEMENT,p);return de._free(h),A}static buildLevel(i,t,e,r,o){let n=o?de.get_mesh_data2(i,t?de.Level.CONTROL:de.Level.REFINED,e,o.elements):de.get_mesh_data(i,t?de.Level.CONTROL:de.Level.REFINED,e),s=8,a=de.HEAPU32.subarray(n>>2,(n>>2)+s),c=a.subarray(4,4+4),p=0,l=de.HEAPU32[a[p]>>2],u=de.HEAPF32.subarray(l>>2,(l>>2)+c[p]);p++;let d=de.HEAPU32[a[p]>>2],m=de.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let f=de.HEAPU32[a[p]>>2],h=de.HEAPU32.subarray(f>>2,(f>>2)+c[p]);p++;let g=de.HEAPU32[a[p]>>2],x=de.HEAPU32.subarray(g>>2,(g>>2)+c[p]);if(p++,r===void 0){let v=new He.BufferGeometry;if(v.setIndex(new He.Uint32BufferAttribute(x,1)),v.setAttribute("position",new He.Float32BufferAttribute(u,3)),v.setAttribute("normal",new He.Float32BufferAttribute(m,3)),t){v.setAttribute("faceMap",new He.Uint32BufferAttribute(h,1));let A=new Float32Array(m.length/3*4).fill(0);v.setAttribute("color",new He.BufferAttribute(A,4))}return de.free_mesh_data(n),v.userData.type="SubdivGeometry",v}r.getAttribute("position").copyArray(u),r.getAttribute("normal").copyArray(m),r.attributes.position.needsUpdate=!0,r.attributes.normal.needsUpdate=!0,de.free_mesh_data(n)}static buildControlCageWireframe(i,t,e){let r=de.get_wireframe_data_for_base_level(i),o=4,n=de.HEAPU32.subarray(r>>2,(r>>2)+o),s=n.subarray(2,2+2),a=0,c=de.HEAPU32[n[a]>>2],p=de.HEAPF32.subarray(c>>2,(c>>2)+s[a]);a++;let l=de.HEAPU32[n[a]>>2],u=de.HEAPU32.subarray(l>>2,(l>>2)+s[a]);if(t===void 0){let d=new He.BufferGeometry;d.setAttribute("position",new He.Float32BufferAttribute(p,3));let m=new Float32Array(p.length);for(let f=0,h=p.length;f<h;)m[f++]=e.r,m[f++]=e.g,m[f++]=e.b;return d.setAttribute("color",new He.BufferAttribute(m,3)),d.setIndex(new He.Uint32BufferAttribute(u,1)),de.free_wireframe_data_for_base_level(r),d}t.getAttribute("position").copyArray(p),t.attributes.position.needsUpdate=!0,de.free_wireframe_data_for_base_level(r)}static updateCollabMesh(i,t,e){t||de.set_destination_refinement_level(i,1);let r=e?de.get_topological_data2(i,t?de.Level.CONTROL:de.Level.REFINED,e.elements):de.get_topological_data(i,t?de.Level.CONTROL:de.Level.REFINED),o=6,n=de.HEAPU32.subarray(r>>2,(r>>2)+o),s=n.subarray(3,3+3),a=0,c=de.HEAPU32[n[a]>>2],p=new Float32Array(de.HEAPF32.subarray(c>>2,(c>>2)+s[a]));a++;let l=de.HEAPU32[n[a]>>2],u=new Uint32Array(de.HEAPU32.subarray(l>>2,(l>>2)+s[a]));a++;let d=de.HEAPU32[n[a]>>2],m=new Uint8Array(de.HEAPU32.subarray(d>>2,(d>>2)+s[a]));return de.free_topological_data(r),{positions:p,indices:u,verticesPerFace:m}}};var _m=["getX","getY","getZ"];function zl(i,t){let e={},r=t?t.count:i.count,o=0,n=[],s=[],a=1e4;for(let p=0;p<r;p++){let l=t?t.getX(p):p,u="";for(let d=0;d<3;d++)u+=`${~~(i[_m[d]](l)*a)},`;if(u in e)n.push(e[u]);else{for(let d=0;d<3;d++)s.push(i[_m[d]](l));e[u]=o,n.push(o),o++}}let c=[];for(let p=0;p<n.length;p+=3)n[p]===n[p+1]||n[p]===n[p+2]||n[p+1]===n[p+2]||c.push(n[p],n[p+1],n[p+2]);return{positions:s,triIndices:c}}var fa=new He.Vector3,Rl=new He.Vector3,Fl=new He.Vector3,Vl=new He.Vector3;function Ul(i,t,e){let r=[],o=[];if(e.userData.shape!==void 0&&e.userData.parameters.depth===0&&e.userData.shape.shapeHoles.length===0){let n=e.userData.shape.extractShapePointsToFlatArray([]),s=0;for(let c=0;c<n.length;c+=2)s+=(n[c]-n[(c===0?n.length:c)-2])*(n[c+1]+n[(c===0?n.length:c)-1]);i.length=0;let a=0;if(s<0)for(let c=0;c<n.length;c+=2)i.push(n[c],n[c+1],0),r.push(a++);else for(let c=n.length-2;c>=0;c-=2)i.push(n[c],n[c+1],0),r.push(a++);return o.push(a),{indices:r,verticesPerFace:o}}for(let n=0,s=e.capStartIndex??t.length;n<s;)if(t[n+1]===t[n+3]&&t[n+2]===t[n+5]||t[n+0]===t[n+3]&&t[n+2]===t[n+4]){fa.set(i[t[n]*3],i[t[n]*3+1],i[t[n]*3+2]),Rl.set(i[t[n+1]*3],i[t[n+1]*3+1],i[t[n+1]*3+2]),Fl.set(i[t[n+4]*3],i[t[n+4]*3+1],i[t[n+4]*3+2]),Vl.set(i[t[n+5]*3],i[t[n+5]*3+1],i[t[n+5]*3+2]),Rl.sub(fa).normalize(),Fl.sub(fa).normalize(),Vl.sub(fa).normalize();let a=Rl.cross(Fl).dot(Vl);Math.abs(a)>.005?(r.push(t[n],t[n+1],t[n+2]),o.push(3),n+=3):(r.push(t[n],t[n+1],t[n+4],t[n+5]),o.push(4),n+=6)}else r.push(t[n],t[n+1],t[n+2]),o.push(3),n+=3;if(e.capStartIndex!==void 0){let n=[],s=[],a=0;for(let c=0,p=0;c<i.length;c+=3,p++)i[c+2]===0&&(n.push(p),a++),i[c+2]===e.userData.parameters.depth&&s.push(p);if(e.userData.parameters.extrudeBevelSize===0){let c=s[0];s[0]=s[1],s[1]=c}n.reverse(),r.push(...n,...s),o.push(a,a)}return{indices:r,verticesPerFace:o}}var Yt={};yc(Yt,{calcBoolean:()=>vb,calcBooleanTopological:()=>xb,freeMeshSet:()=>Sb,getMeshSet:()=>bb,transformMeshSet:()=>_b});var gb,Sm=new Promise(i=>{gb=i});var ci=require("three");var ye,xn;Sm.then(i=>ye=i);function yb(i,t){let e,{positions:r,triIndices:o}=zl(i.getAttribute("position"),i.getIndex()),n;if(t){let{indices:s,verticesPerFace:a}=Ul(r,o,i);n=a.length,e=[];for(let c=0,p=0;c<n;c++){e.push(a[c]);for(let l=0;l<a[c];l++)e.push(s[p++])}}else{let s=o.length;e=Array(s+s/3),n=0;for(let a=0,c=0;c<e.length;)e[c++]=3,n++,e[c++]=o[a++],e[c++]=o[a++],e[c++]=o[a++]}return{positions:r,faceIndices:e,nFaces:n}}function wm(i){let t=i.length,e=t*Uint32Array.BYTES_PER_ELEMENT,r=t*Float32Array.BYTES_PER_ELEMENT,o=Number.isInteger(i[0])?e:r,n=ye._malloc(o);return(Number.isInteger(i[0])?new Uint32Array(ye.HEAPU32.buffer,n,t):new Float32Array(ye.HEAPF32.buffer,n,t)).set(i,0),n}function Tm(i){switch(i){case 0:return ye.OP.UNION;case 1:return ye.OP.INTERSECTION;case 2:return ye.OP.A_MINUS_B;case 3:return ye.OP.B_MINUS_A;case 4:return ye.OP.SYMMETRIC_DIFFERENCE;case 5:return ye.OP.ALL;default:throw new Error("Unknown boolean operation "+i)}}function xb(i,t){xn===void 0&&(xn=ye.init_csg());let e=wm(i),r=ye.csg_calc_topological(xn,e,i.length,Tm(t));ye._free(e);let o=6,n=ye.HEAPU32.subarray(r>>2,(r>>2)+o),s=n.subarray(3,3+3),a=0,c=ye.HEAPU32[n[a]>>2],p=new Float32Array(ye.HEAPF32.subarray(c>>2,(c>>2)+s[a]));a++;let l=ye.HEAPU32[n[a]>>2],u=new Uint32Array(ye.HEAPU32.subarray(l>>2,(l>>2)+s[a]));a++;let d=ye.HEAPU32[n[a]>>2],m=new Uint8Array(ye.HEAPU32.subarray(d>>2,(d>>2)+s[a]));return ye.free_mesh_data(r),{positions:p,indices:u,verticesPerFace:m}}function vb(i,t,e,r){xn===void 0&&(xn=ye.init_csg());let o=wm(i),n=ye.csg_calc(xn,o,i.length,r,Tm(t));ye._free(o);let s=5,a=ye.HEAPU32.subarray(n>>2,(n>>2)+s),c=a.subarray(2,2+3),p=0,l=ye.HEAPU32[a[p]>>2],u=ye.HEAPF32.subarray(l>>2,(l>>2)+c[p]);p++;let d=ye.HEAPU32[a[p]>>2],m=ye.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let f=c[p];e.setAttribute("position",new ci.Float32BufferAttribute(u,3)),e.setAttribute("normal",new ci.Float32BufferAttribute(m,3));let h=ye.HEAPF32.subarray((n>>2)+5,(n>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new ci.Sphere),e.boundingSphere.center.set(h[0],h[1],h[2]),e.boundingSphere.radius=(h[3]**2+h[4]**2+h[5]**2)**.5,e.userData.parameters={width:h[3]*2,height:h[4]*2,depth:h[5]*2},ye.free_mesh_data(n),f}function bb(i,t){if(ye===void 0)return-1;let e,r,o;if(t&&i.userData.positions!==void 0){let h=i.userData;o=h.verticesPerFace.length,e=h.positions,r=Array(h.verticesPerFace.reduce((g,x)=>g+x,0)+o);for(let g=0,x=0,v=0;g<h.verticesPerFace.length;g++){r[v++]=h.verticesPerFace[g];for(let A=0;A<h.verticesPerFace[g];A++)r[v++]=h.indices[x++]}}else({positions:e,faceIndices:r,nFaces:o}=yb(i,t));let n=e.length,s=r.length,a=e.length,c=r.length,p=a*Float32Array.BYTES_PER_ELEMENT+c*Uint32Array.BYTES_PER_ELEMENT,l=a*Float32Array.BYTES_PER_ELEMENT,u=c*Uint32Array.BYTES_PER_ELEMENT,d=ye._malloc(p),m=new Float32Array(ye.HEAPF32.buffer,d,a),f=new Uint32Array(ye.HEAPU32.buffer,d+l,c);return m.set(e,0),f.set(r,0),ye.get_csg_mesh(d,n,d+l,s,o)}function _b(i,t){ye.transform_csg_mesh(i,t.elements)}function Sb(i){ye.free_csg_mesh(i)}var Gl={ConeGeometry:md,CubeGeometry:fd,CylinderGeometry:pd,DodecahedronGeometry:gd,EllipseGeometry:Fd,HelixGeometry:kd,IcosahedronGeometry:Hd,LatheGeometry:Wd,NonParametricGeometry:qd,PolygonGeometry:$d,PyramidGeometry:Xd,RectangleGeometry:Yd,SphereGeometry:Qd,PlaneGeometry:Jd,BackdropGeometry:em,StarGeometry:tm,TextFrameGeometry:sa,TorusGeometry:om,TorusKnotGeometry:im,TriangleGeometry:sm,VectorGeometry:vt},li=i=>Gl[i.type].create(i);var ui=require("three");var Am=new ui.Matrix4;var ha=class extends it{constructor(e=new ui.BufferGeometry,r){super(e,r);this.booleanOp=2;this.phongAngle=35;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.isBooleanMesh=!0,this.castShadow=!0,this.receiveShadow=!0,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}reInit(){this.isBooleanMesh=!0,this.meshSetAddresses=[],this.needsTransformForDownstream=!1,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}recomputeBoolean(e){if(this.booleanMeshSetAddress!==-1)return;for(let o=0;o<this.children.length;o++){let n=this.children[o];mr(n)&&n.recomputeBoolean(e===!0)}this.meshSetAddresses=[];for(let o=0;o<this.children.length;o++){let n=this.children[o];if(dm(n)&&n.booleanExclude===!1&&n.geometry.attributes.position?.count>0&&n.geometry.drawRange.count>0){if(n.booleanMeshSetAddress===-1){if(n.booleanMeshSetAddress=Yt.getMeshSet(n.geometry,e===!0),n.booleanMeshSetAddress===-1)return;Yt.transformMeshSet(n.booleanMeshSetAddress,n.matrix),n.booleanMatrixInvOld.copy(n.matrix).invert(),n.booleanWasTransformed=!1}else mr(n)&&n.needsTransformForDownstream===!0?(Yt.transformMeshSet(n.booleanMeshSetAddress,n.matrix),n.needsTransformForDownstream=!1):n.booleanWasTransformed===!0&&(Am.multiplyMatrices(n.matrix,n.booleanMatrixInvOld),Yt.transformMeshSet(n.booleanMeshSetAddress,Am),n.booleanMatrixInvOld.copy(n.matrix).invert(),n.booleanWasTransformed=!1);this.meshSetAddresses.push(n.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setDrawRange(0,0);return}if(e===!0)return Yt.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let r=this.geometry;r.dispose(),this.geometry=new ui.BufferGeometry,this.geometry.userData=r.userData,this.geometry.boundingSphere=r.boundingSphere;try{this.booleanMeshSetAddress=Yt.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(o){this.booleanMeshSetAddress=0,console.error(o)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,eo(this),to(this)}updateGeometry(e){let r=e.parameters;r.operation!==void 0&&(this.booleanOp=r.operation),r.phongAngle!==void 0&&(this.phongAngle=r.phongAngle),this.invalidateDownstreamBooleanData().recomputeBoolean()}};var Ge=require("three");var Cm=require("three"),yr=i=>{var t;return t=class extends i{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new Cm.BoxBufferGeometry(30,30,30),t};var ut=require("three");var ft=require("three"),ga=new ft.Ray,kl=new ft.Sphere,Nm=new ft.Matrix4,xr=(i,t,e,r,o=!1)=>{let n=t,s=i.matrixWorld;if(n.boundingSphere===null&&n.computeBoundingSphere(),kl.copy(n.boundingSphere),kl.applyMatrix4(s),e.ray.intersectsSphere(kl)===!1||(Nm.copy(s).invert(),ga.copy(e.ray).applyMatrix4(Nm),n.boundingBox!==null&&ga.intersectsBox(n.boundingBox)===!1))return;let a,c,p,l,u=n.index,d=n.attributes.position,m=n.drawRange,f,h;if(o===!1){let x=Math.max(0,m.start),v=Math.min(u.count,m.start+m.count);for(f=x,h=v;f<h;f+=3)if(c=u.getX(f),p=u.getX(f+1),l=u.getX(f+2),a=g(i,e,ga,d,c,p,l),a){a.faceIndex=Math.floor(f/3),r.push(a);return}}else{let v=n.attributes.position,A=new ft.Vector3,_=new ft.Vector3,b=new ft.Vector3,D=new ft.Vector3,S=2,I=1/((i.scale.x+i.scale.y+i.scale.z)/3),T=I*I,L=Math.max(0,m.start),C=Math.min(v.count,m.start+m.count);for(let N=L,j=C-1;N<j;N+=S){if(A.fromBufferAttribute(v,N),_.fromBufferAttribute(v,N+1),ga.distanceSqToSegment(A,_,D,b)>T)continue;D.applyMatrix4(i.matrixWorld);let ne=e.ray.origin.distanceTo(D);ne<e.near||ne>e.far||r.push({distance:ne,point:b.clone().applyMatrix4(i.matrixWorld),object:i})}}function g(x,v,A,_,b,D,S){let y=new ft.Vector3,I=new ft.Vector3,T=new ft.Vector3,L=new ft.Vector3,C=new ft.Vector3;if(y.fromBufferAttribute(_,b),I.fromBufferAttribute(_,D),T.fromBufferAttribute(_,S),A.intersectTriangle(y,I,T,!1,L)===null)return null;C.copy(L),C.applyMatrix4(x.matrixWorld);let j=v.ray.origin.distanceTo(C);return j<v.near||j>v.far?null:{faceIndex:1,distance:j,point:C.clone(),object:x}}};var ya=new ut.Vector3,Wt=new ut.Camera,jl=class extends ut.LineSegments{constructor(e){let r=new ut.BufferGeometry,o=new ut.LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),n=[],s=[],a={},c=new ut.Color(15711266),p=new ut.Color(15711266),l=new ut.Color(2857471);u("n1","n2",c),u("n2","n4",c),u("n4","n3",c),u("n3","n1",c),u("f1","f2",c),u("f2","f4",c),u("f4","f3",c),u("f3","f1",c),u("n1","f1",c),u("n2","f2",c),u("n3","f3",c),u("n4","f4",c),u("p","n1",p),u("p","n2",p),u("p","n3",p),u("p","n4",p),u("u1","u2",l),u("u2","u3",l),u("u3","u1",l);function u(m,f,h){d(m,h),d(f,h)}function d(m,f){n.push(0,0,0),s.push(f.r,f.g,f.b),a[m]===void 0&&(a[m]=[]),a[m].push(n.length/3-1)}r.setAttribute("position",new ut.Float32BufferAttribute(n,3)),r.setAttribute("color",new ut.Float32BufferAttribute(s,3));super(r,o);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=a,this.update()}update(){let e=this.geometry,r=this.pointMap,o=!0;Wt.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let n=1,s=1,a=o?.8:1e-4;Kt("n1",r,e,Wt,-n,-s,a),Kt("n2",r,e,Wt,n,-s,a),Kt("n3",r,e,Wt,-n,s,a),Kt("n4",r,e,Wt,n,s,a);let c=a;Kt("f1",r,e,Wt,-n,-s,c),Kt("f2",r,e,Wt,n,-s,c),Kt("f3",r,e,Wt,-n,s,c),Kt("f4",r,e,Wt,n,s,c);let p=c,l=.5;Kt("u1",r,e,Wt,n*.7*l,s*1.1,p),Kt("u2",r,e,Wt,-n*.7*l,s*1.1,p),Kt("u3",r,e,Wt,0,s*(1.1+.9*l),p),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function Kt(i,t,e,r,o,n,s){ya.set(o,n,s).unproject(r);let a=t[i];if(a!==void 0){let c=e.getAttribute("position");for(let p=0,l=a.length;p<l;p++)c.setXYZ(a[p],ya.x,ya.y,ya.z)}}var xa=class extends yr(jl){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){xr(this.object,this.geometry,e,r,!0)}};var Om=require("three");var vn=class extends yr(Om.DirectionalLightHelper){constructor(e,r=15,o=10066329){super(e,r,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,r){xr(this.object,vn.geometryHelper,e,r)}};var Lm=require("three");var bn=class extends yr(Lm.AxesHelper){constructor(e,r=15){super(r);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,r){xr(this.object,bn.geometryHelper,e,r)}update(){}};var Im=require("three");var _n=class extends yr(Im.PointLightHelper){constructor(e,r=15,o=6710886){super(e,r,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,r){xr(this.object,_n.geometryHelper,e,r)}};var ba=require("three");var va=class extends yr(ba.SpotLightHelper){constructor(e,r=6710886){super(e,r);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,r){xr(this.object,va.geometryHelper,e,r)}update(){if(this.object!==void 0){let e=va._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 n=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let s=0,a=this.cone.material.length;s<a;s++)this.cone.material[s].color.set(n);else this.cone.material.color.set(n)}}},pi=va;pi._vector=new ba.Vector3;var vr=(i,t)=>class extends i{constructor(){super(...arguments);this.objectHelper=new t(this)}get geometryHelper(){return t.geometryHelper}raycast(o,n){this.objectHelper.raycast(o,n)}fromLightState(o,n){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let s=this;o.color!==void 0&&(s.color=Ye(o.color,n)),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 Sn=new Ge.Vector3,Hl=new Ge.Vector3,Rr=class extends vr(jt(Ge.Camera),xa){constructor(e=window.innerWidth,r=window.innerHeight,o=45,n,s=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=fo.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=r,this.orthoCamera=new Ge.OrthographicCamera(e*-.5,e*.5,r*.5,r*-.5,n??-5e4,s),this.perspCamera=new Ge.PerspectiveCamera(o,e/r,n??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 Rr().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(Sn),this.targetOffset=Sn.distanceTo(e)}getTarget(e=new Ge.Vector3){return this.getWorldDirection(Hl),this.getWorldPosition(Sn),Hl.multiplyScalar(this.targetOffset),e.copy(Sn).add(Hl),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(Sn),Sn.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new Ge.Quaternion),r=new Ge.Vector3(0,0,1).applyQuaternion(e),o=new Ge.Vector3().copy(Ge.Object3D.DefaultUp);this.isUpVectorFlipped&&o.negate(),o.applyQuaternion(e);let n=new Ge.Vector3().copy(Ge.Object3D.DefaultUp).projectOnPlane(r),s=new Ge.Vector3().crossVectors(n,o).dot(r)>=0?1:-1;this.angleOffsetFromUp=n.angleTo(o)*s}getViewFrontToObject(e){let r=e.getWorldPosition(new Ge.Vector3),n=e.getWorldDirection(new Ge.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().add(n),target:r}}getViewToObject(e){let r=e.getWorldPosition(new Ge.Vector3),n=this.getWorldDirection(new Ge.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().sub(n),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,n,s,a){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,r,o,n,s,a):this.orthoCamera.setViewOffset(e,r,o,n,s,a)}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 Ko(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.up!==void 0&&this.up.fromArray(e.up),e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateProjectionMatrix(),this}toState(e){return{...super.toState(e),...this.toCameraState(e),type:this.cameraType}}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};var Pm=require("three");var So=class extends vr(jt(Pm.Group),bn){constructor(){super(...arguments);this.objectType="EmptyObject"}static createFromState(e,r){let o=new So().fromState(r);return o.uuid=e,o.objectHelper.update(),o}};var wo=require("three");var wn=class extends vr(jt(wo.DirectionalLight),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;let o=this.shadow.camera;o.top=1250,o.bottom=-1250,o.right=1250,o.left=-1250,o.near=-1e4,o.far=2500;let n=new wo.CameraHelper(this.shadow.camera);n.visible=!1,this._gizmos.shadowmap=n,this.update()}static createFromState(e,r,o){let n=new wn().fromState(r,o);return n.uuid=e,n}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof wo.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof wo.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof wo.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromDirectionalLightState(e,r){let o=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;return super.fromLightState(e,r),e.size!==void 0&&cm(this,e.size),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),o&&this.update(),this}fromState(e,r){return super.fromState(e),this.fromDirectionalLightState(e,r),this}};var ht=require("three");var Tn=class extends vr(jt(ht.PointLight),_n){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;let o=this.shadow.camera;o.fov=90,o.aspect=1,o.near=100,o.far=2500;let n=new ht.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new ht.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z),a=new ht.Box3(n,s),c=new ht.Box3Helper(a,new ht.Color(16755200));c.visible=!1,this._gizmos.shadowmap=c,this.update()}static createFromState(e,r,o){let n=new Tn().fromState(r,o);return n.uuid=e,n}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof ht.Box3Helper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof ht.Box3Helper&&(r.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let r=this._gizmos[e];if(r instanceof ht.Box3Helper){let o=this.shadow.camera,n=new ht.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new ht.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z);r.box.set(n,s),r.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromPointLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromPointLightState(e,r),this}};var Nt=require("three");var Mm=new Nt.Vector3,Dm=new Nt.Vector3,Bm=new Nt.Quaternion,An=class extends vr(jt(Nt.SpotLight),pi){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;let o=this.shadow.camera;o.fov=Nt.MathUtils.RAD2DEG*2*this.angle,o.aspect=1,o.near=100,o.far=2500;let n=new Nt.CameraHelper(this.shadow.camera);n.visible=!1,this._gizmos.shadowmap=n,this.update()}static createFromState(e,r,o){let n=new An().fromState(r,o);return n.uuid=e,n}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Nt.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Nt.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Nt.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Dm.setFromMatrixPosition(this.matrixWorld),Bm.setFromRotationMatrix(this.matrixWorld),Mm.copy(this.up).applyQuaternion(Bm).negate().multiplyScalar(this.distance),this.target.position.copy(Dm).add(Mm),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}fromSpotLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.angle!==void 0&&(this.angle=e.angle),e.penumbra!==void 0&&(this.penumbra=e.penumbra),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromSpotLightState(e,r),this}};var Se=require("three");var Em=require("three"),st=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=Em.MathUtils.generateUUID(),this.type=t,this.name=""}analyze(t,e){e=e??{},t.analyzing=!0,this.build(t.addFlow(e.slot,e.cache,e.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,e,r){return r=r??{},this.analyze(t,r),this.flow(t,e,r)}flow(t,e,r){r=r??{},t.addFlow(r.slot,r.cache,r.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,r){e=e??this.getType(t,e);let o=t.getNodeData(r??this);return t.analyzing&&this.appendDepsNode(t,o,e),t.nodes.indexOf(this)===-1&&t.nodes.push(this),this.updateFrame!==void 0&&t.updaters.indexOf(this)===-1&&t.updaters.push(this),this.generate(t,e,r)}updateFrame(t){}generateReadonly(t,e,r,o,n,s){return""}generate(t,e,r,o,n){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 st&&(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 Gm=require("three"),le=class extends st{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,n){if(r=r??this.getType(e),this.getShared(e,r)){let s=this.getUnique(e,r);s&&this.uuid===void 0&&(this.uuid=Gm.MathUtils.generateUUID()),o=e.getUUID(o??this.getUUID(),!s);let a=e.getNodeData(o),c=a.output||this.getType(e);if(e.analyzing)return(a.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,a,r),this.generate(e,r,o)):super.build(e,r,o);if(s)return a.name=a.name||super.build(e,r,o),a.name;if(!this.getLabel()&&(!this.getShared(e,c)||e.context.ignoreCache||a.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,a.output,n);let l=this.generate(e,c,o);return e.addNodeCode(p+" = "+l+";"),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,n,s){return this.getShared(e,r)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,n??this.getType(e),s,this.getLabel()).name}};var Ie=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,n,s,a){o=e.getUUID(o??this.getUUID()),n=n??this.getType(e);let c=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,r,o,n,s,a):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(n,this,s,a,this.getLabel())),e.format(c.vertex.name,n,r)):(c.fragment||(c.fragment=e.createFragmentUniform(n,this,s,a,this.getLabel())),e.format(c.fragment.name,n,r))}};var Ne=class extends Ie{constructor(e=0,r,o,n){super("c");this.nodeType="Color";this.value=e instanceof ct?e:new ct(e||0,r,o,n)}setRGBA(e){this.value.setRGBA(e.r,e.g,e.b,e.a)}generate(e,r,o,n,s,a){o=e.getUUID(o??this.getUUID()),n=n??this.getType(e);let c=e.getNodeData(o),p=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let l=this.alpha.build(e,"f");e.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${l};`)}return p?this.generateReadonly(e,r,o,n,s,a):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(n,this,s,a,this.getLabel())),e.format(c.vertex.name,n,r)):(c.fragment||(c.fragment=e.createFragmentUniform(n,this,s,a,this.getLabel())),e.format(c.fragment.name,n,r))}generateReadonly(e,r,o,n,s,a){return e.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",n,r)}};var X=class extends Ie{constructor(e){super("f");this.nodeType="Float";this.value=e??0}generateReadonly(e,r,o,n,s,a){return e.format(this.value+(this.value%1?"":".0"),n,r)}};var xe=class extends Ie{constructor(e){super("i");this.nodeType="Int";this.value=Math.floor(e??0)}generateReadonly(e,r,o,n,s,a){return e.format(this.value.toString(),n,r)}};var _a=require("three");var oo=class extends st{constructor(){super("basic");this.nodeType="Basic";this.color=new Ne(5855577),this.shadingAlpha=new X(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(_a.UniformsUtils.merge([_a.UniformsLib.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
2
2
  `));let n=["#include <beginnormal_vertex>",`
3
3
  #if !defined( USE_LAYER_DISPLACE )
4
4
  #include <defaultnormal_vertex>
@@ -247,11 +247,11 @@ var Vf=Object.create;var Hi=Object.defineProperty;var zf=Object.getOwnPropertyDe
247
247
  outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${c.result} );
248
248
  }
249
249
  `),p&&u.push(p.code,`outgoingLight = spe_blend(outgoingLight, ${p.result}, 1.0, SPE_BLENDING_NORMAL);`),l?u.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${l.result} );`):u.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),u.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=u.join(`
250
- `)}return r}};var Ab=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,ql=class extends le{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||ql.PI,void 0,void 0,void 0,r)}getType(e){return e.getTypeByFormat(this.type)}parse(e,r,o,n,s){this.src=e||"";let a,c,p="",l=Ab.exec(e);this.useDefine=s??this.src.charAt(0)==="#",l&&l.length>1?(c=l[1],a=l[2],p=l[3]):(a=this.src,c="f"),this.name=a,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,n,s){return e.format(this.name,this.getType(e),r)}},_e=ql;_e.PI="PI",_e.PI2="PI2",_e.RECIPROCAL_PI="RECIPROCAL_PI",_e.RECIPROCAL_PI2="RECIPROCAL_PI2",_e.LOG2="LOG2",_e.EPSILON="EPSILON";var Cb=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
251
- )*?)}`,"gim"),Nb=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Nn=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,n,s){return r==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),r)}parse(e=""){this.src=e,this.inputs=[];let r=Cb.exec(e);if(r){let o=r[2],n;for(;n=Nb.exec(o);)this.inputs.push({type:n[1],name:n[2]});this.name=r[1]}else this.name="";this.type=this.name}};var $l=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}},tt=new $l;var Ob=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,Fm=/[a-z_0-9]+/gi,Y=class extends le{constructor(e,r,o,n,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,n)}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,n,s){let a,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 l=[];for(;a=Fm.exec(this.src);)l.push(a);for(let u=0;u<l.length;u++){let d=l[u],m=d[0],f=this.isMethod?!this.getInputByName(m):!0,h=m;if(this.keywords[m]||this.useKeywords&&f&&tt.containsKeyword(m)){let g=this.keywords[m];if(!g){let x=tt.getKeywordData(m);x.cache&&(g=e.keywords[m]),g=g||tt.getKeyword(m,e),x.cache&&(e.keywords[m]=g)}h=g.build(e)}m!==h&&p[d.index+c-1]!=="."&&(p=p.substring(0,d.index+c)+h+p.substring(d.index+m.length+c),c+=h.length-m.length),this.getIncludeByName(h)===void 0&&tt.contains(h)&&e.include(tt.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,n){if(this.src=e||"",this.includes=r??[],this.extensions=o??{},this.keywords=n??{},this.isMethod){let s=Ob.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let a=s[3].match(Fm);if(a){let c=0;for(;c<a.length;){let p=a[c++],l;p==="in"||p==="out"||p==="inout"?l=a[c++]:(l=p,p="");let u=a[c++];this.inputs.push({name:u,type:l,qualifier:p})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var Te=class extends Y{constructor(e="",r,o,n,s){super(e,s,n,o,r);this.nodeType="Expression"}};var xi=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,n,s){n=this.getType(e);let a=this.value,c=a.build(e,r)+"( ",p=[];if(a.inputs){for(let l=0;l<a.inputs.length;l++){let u=a.inputs[l],d=this.inputs[l]||this.inputs[u.name];p.push(d.build(e,e.getTypeByFormat(u.type)))}c+=p.join(", ")+" )"}return e.format(c,n,r)}};var vi=class{constructor(t){t=t??{},this.name=t.name,this.type=t.type,this.node=t.node,this.size=t.size,this.needsUpdate=t.needsUpdate}get value(){return this.node.value}set value(t){this.node.value=t}};var Zt=require("three");var Xl=require("three");var rt=class extends Ie{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof Xl.Vector2?e:new Xl.Vector2(e,r)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,r,o,n,s,a){return e.format("vec2("+this.value.x+", "+this.value.y+")",n,r)}};var Yl=require("three");var pt=class extends Ie{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof Yl.Vector3?e:new Yl.Vector3(e,r,o)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,r,o,n,s,a){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",n,r)}};var qt=class extends Ie{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof ct?e:new ct(e.r,e.g,e.b,e.a)}generateReadonly(e,r,o,n,s,a){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",n,r)}};var On=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:"",n=e.isShader("vertex")?"uv"+o:"vUv"+o;return e.format(n,this.getType(e),r)}};tt.addKeyword("uv",function(){return new On});tt.addKeyword("uv2",function(){return new On(1)});var wa=require("three");var To=class extends le{constructor(e,r){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=r??To.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case wa.LinearEncoding:return["Linear"];case wa.sRGBEncoding:return["sRGB"];default:return[]}}generate(e,r){let o=this.input.build(e,"v4"),n=this.getType(e),s=To.Nodes[this.method],a=e.include(s);if(a===To.LINEAR_TO_LINEAR)return e.format(o,n,r);if(s.inputs?.length===2){let c=this.factor.build(e,"f");return e.format(a+"( "+o+", "+c+" )",n,r)}else return e.format(a+"( "+o+" )",n,r)}fromEncoding(e){let r=To.getEncodingComponents(e);this.method="LinearTo"+r[0],this.factor=r[1]}fromDecoding(e){let r=To.getEncodingComponents(e);this.method=r[0]+"ToLinear",this.factor=r[1]}},bt=To;bt.Nodes={LinearToLinear:new Y(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
250
+ `)}return r}};var Tb=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Wl=class extends le{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||Wl.PI,void 0,void 0,void 0,r)}getType(e){return e.getTypeByFormat(this.type)}parse(e,r,o,n,s){this.src=e||"";let a,c,p="",l=Tb.exec(e);this.useDefine=s??this.src.charAt(0)==="#",l&&l.length>1?(c=l[1],a=l[2],p=l[3]):(a=this.src,c="f"),this.name=a,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,n,s){return e.format(this.name,this.getType(e),r)}},_e=Wl;_e.PI="PI",_e.PI2="PI2",_e.RECIPROCAL_PI="RECIPROCAL_PI",_e.RECIPROCAL_PI2="RECIPROCAL_PI2",_e.LOG2="LOG2",_e.EPSILON="EPSILON";var Ab=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
251
+ )*?)}`,"gim"),Cb=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Nn=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,n,s){return r==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),r)}parse(e=""){this.src=e,this.inputs=[];let r=Ab.exec(e);if(r){let o=r[2],n;for(;n=Cb.exec(o);)this.inputs.push({type:n[1],name:n[2]});this.name=r[1]}else this.name="";this.type=this.name}};var ql=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}},tt=new ql;var Nb=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,Rm=/[a-z_0-9]+/gi,Y=class extends le{constructor(e,r,o,n,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,n)}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,n,s){let a,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 l=[];for(;a=Rm.exec(this.src);)l.push(a);for(let u=0;u<l.length;u++){let d=l[u],m=d[0],f=this.isMethod?!this.getInputByName(m):!0,h=m;if(this.keywords[m]||this.useKeywords&&f&&tt.containsKeyword(m)){let g=this.keywords[m];if(!g){let x=tt.getKeywordData(m);x.cache&&(g=e.keywords[m]),g=g||tt.getKeyword(m,e),x.cache&&(e.keywords[m]=g)}h=g.build(e)}m!==h&&p[d.index+c-1]!=="."&&(p=p.substring(0,d.index+c)+h+p.substring(d.index+m.length+c),c+=h.length-m.length),this.getIncludeByName(h)===void 0&&tt.contains(h)&&e.include(tt.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,n){if(this.src=e||"",this.includes=r??[],this.extensions=o??{},this.keywords=n??{},this.isMethod){let s=Nb.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let a=s[3].match(Rm);if(a){let c=0;for(;c<a.length;){let p=a[c++],l;p==="in"||p==="out"||p==="inout"?l=a[c++]:(l=p,p="");let u=a[c++];this.inputs.push({name:u,type:l,qualifier:p})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var Te=class extends Y{constructor(e="",r,o,n,s){super(e,s,n,o,r);this.nodeType="Expression"}};var xi=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,n,s){n=this.getType(e);let a=this.value,c=a.build(e,r)+"( ",p=[];if(a.inputs){for(let l=0;l<a.inputs.length;l++){let u=a.inputs[l],d=this.inputs[l]||this.inputs[u.name];p.push(d.build(e,e.getTypeByFormat(u.type)))}c+=p.join(", ")+" )"}return e.format(c,n,r)}};var vi=class{constructor(t){t=t??{},this.name=t.name,this.type=t.type,this.node=t.node,this.size=t.size,this.needsUpdate=t.needsUpdate}get value(){return this.node.value}set value(t){this.node.value=t}};var Zt=require("three");var $l=require("three");var rt=class extends Ie{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof $l.Vector2?e:new $l.Vector2(e,r)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,r,o,n,s,a){return e.format("vec2("+this.value.x+", "+this.value.y+")",n,r)}};var Xl=require("three");var pt=class extends Ie{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof Xl.Vector3?e:new Xl.Vector3(e,r,o)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,r,o,n,s,a){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",n,r)}};var qt=class extends Ie{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof ct?e:new ct(e.r,e.g,e.b,e.a)}generateReadonly(e,r,o,n,s,a){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",n,r)}};var On=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:"",n=e.isShader("vertex")?"uv"+o:"vUv"+o;return e.format(n,this.getType(e),r)}};tt.addKeyword("uv",function(){return new On});tt.addKeyword("uv2",function(){return new On(1)});var wa=require("three");var To=class extends le{constructor(e,r){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=r??To.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case wa.LinearEncoding:return["Linear"];case wa.sRGBEncoding:return["sRGB"];default:return[]}}generate(e,r){let o=this.input.build(e,"v4"),n=this.getType(e),s=To.Nodes[this.method],a=e.include(s);if(a===To.LINEAR_TO_LINEAR)return e.format(o,n,r);if(s.inputs?.length===2){let c=this.factor.build(e,"f");return e.format(a+"( "+o+", "+c+" )",n,r)}else return e.format(a+"( "+o+" )",n,r)}fromEncoding(e){let r=To.getEncodingComponents(e);this.method="LinearTo"+r[0],this.factor=r[1]}fromDecoding(e){let r=To.getEncodingComponents(e);this.method=r[0]+"ToLinear",this.factor=r[1]}},bt=To;bt.Nodes={LinearToLinear:new Y(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
252
252
  `)),sRGBToLinear:new Y(["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(`
253
253
  `)),LinearTosRGB:new Y(["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(`
254
- `))},bt.LINEAR_TO_LINEAR="LinearToLinear",bt.SRGB_TO_LINEAR="sRGBToLinear",bt.LINEAR_TO_SRGB="LinearTosRGB";var Vm=require("three"),Ot=class extends Ie{constructor(e=new Vm.Texture,r,o,n){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=r??new On,this.bias=o,this.project=n!==void 0?n:!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),n=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 a,c;this.project?a="texture2DProj":a=s?"tex2DBias":"tex2D",s?c=a+"( "+o+", "+n+", "+s+" )":c=a+"( "+o+", "+n+" )";let p={include:e.isShader("vertex"),ignoreCache:!0},l=this.getType(e);return e.addContext(p),this.colorSpace=this.colorSpace??new bt(new Te("",l)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(c),c=this.colorSpace.build(e,l),e.removeContext(),e.format(c,l,r)}};var Kl=class extends le{constructor(e,r,o=Kl.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 n=this.a.build(e,o),s=this.b.build(e,o);return e.format("( "+n+" "+this.op+" "+s+" )",o,r)}},Lt=Kl;Lt.ADD="+",Lt.SUB="-",Lt.MUL="*",Lt.DIV="/";var Le=class extends le{constructor(e,r=Le.ABS,o,n){super();this.nodeType="Math";this.a=e,typeof r!="string"?this.b=r:n=r,typeof o!="string"?this.c=o:n=o,this.method=n,this.hashProperties=["method"]}getNumInputs(e){switch(this.method){case Le.MIX:case Le.CLAMP:case Le.REFRACT:case Le.SMOOTHSTEP:case Le.FACEFORWARD:return 3;case Le.MIN:case Le.MAX:case Le.MOD:case Le.STEP:case Le.REFLECT:case Le.DISTANCE:case Le.DOT:case Le.CROSS:case Le.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,n=this.c?e.getTypeLength(this.c.getType(e)):0;return r>o&&r>n?this.a.getType(e):o>n?this.b.getType(e):this.c.getType(e)}getType(e){switch(this.method){case Le.LENGTH:case Le.DISTANCE:case Le.DOT:return"f";case Le.CROSS:return"v3"}return this.getInputType(e)}generate(e,r){let o,n,s,a=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,l=this.getInputType(e),u=this.getType(e);switch(this.type=u,this.method){case Le.NEGATE:return e.format("( -"+this.a.build(e,l)+" )",l,r);case Le.INVERT:return e.format("( 1.0 - "+this.a.build(e,l)+" )",l,r);case Le.CROSS:o=this.a.build(e,"v3"),n=this.b.build(e,"v3");break;case Le.STEP:o=this.a.build(e,a===1?"f":l),n=this.b.build(e,l);break;case Le.MIN:case Le.MAX:case Le.MOD:o=this.a.build(e,l),n=this.b.build(e,c===1?"f":l);break;case Le.REFRACT:o=this.a.build(e,l),n=this.b.build(e,l),s=this.c.build(e,"f");break;case Le.MIX:o=this.a.build(e,l),n=this.b.build(e,l),s=this.c.build(e,p===1?"f":l);break;default:o=this.a.build(e,l),this.b&&(n=this.b.build(e,l)),this.c&&(s=this.c.build(e,l));break}let d=[];d.push(o),n&&d.push(n),s&&d.push(s);let m=this.getNumInputs(e);if(d.length!==m)throw Error(`Arguments not match used in "${this.method}". Require ${m}, currently ${d.length}.`);return e.format(this.method+"( "+d.join(", ")+" )",u,r)}},me=Le;me.RAD="radians",me.DEG="degrees",me.EXP="exp",me.EXP2="exp2",me.LOG="log",me.LOG2="log2",me.SQRT="sqrt",me.INV_SQRT="inversesqrt",me.FLOOR="floor",me.CEIL="ceil",me.NORMALIZE="normalize",me.FRACT="fract",me.SATURATE="saturate",me.SIN="sin",me.COS="cos",me.TAN="tan",me.ASIN="asin",me.ACOS="acos",me.ARCTAN="atan",me.ABS="abs",me.SIGN="sign",me.LENGTH="length",me.NEGATE="negate",me.INVERT="invert",me.MIN="min",me.MAX="max",me.MOD="mod",me.STEP="step",me.REFLECT="reflect",me.DISTANCE="distance",me.DOT="dot",me.CROSS="cross",me.POW="pow",me.MIX="mix",me.CLAMP="clamp",me.REFRACT="refract",me.SMOOTHSTEP="smoothstep",me.FACEFORWARD="faceforward";var Ln=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,n){let s=new xi(Ln.Nodes.bilinearCubeUV,[r,o,n]);this.colorSpaceTL=this.colorSpaceTL??new bt(new Te("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(s.build(e)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new bt(new Te("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(s.build(e)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new bt(new Te("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(s.build(e)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new bt(new Te("","v4")),this.colorSpaceBR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(s.build(e)+".br");let a={include:e.isShader("vertex"),ignoreCache:!0};e.addContext(a),this.colorSpaceTLExp=new Te(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new Te(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new Te(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new Te(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let c=new Te("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,n=this.bias||e.context.roughness,s=new xi(Ln.Nodes.roughnessToMip,[n]),a=new me(s,Ln.Nodes.m0,Ln.Nodes.cubeUV_maxMipLevel,me.CLAMP),c=new me(a,me.FLOOR),p=new me(a,me.FRACT),l=this.bilinearCubeUV(e,this.value,o,c),u=this.bilinearCubeUV(e,this.value,o,new Lt(c,new X(1).setReadonly(!0),Lt.ADD)),d=new me(l,u,p,me.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)}},In=Ln;In.Nodes=function(){let e=new Nn(`struct TextureCubeUVData {
254
+ `))},bt.LINEAR_TO_LINEAR="LinearToLinear",bt.SRGB_TO_LINEAR="sRGBToLinear",bt.LINEAR_TO_SRGB="LinearTosRGB";var Fm=require("three"),Ot=class extends Ie{constructor(e=new Fm.Texture,r,o,n){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=r??new On,this.bias=o,this.project=n!==void 0?n:!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),n=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 a,c;this.project?a="texture2DProj":a=s?"tex2DBias":"tex2D",s?c=a+"( "+o+", "+n+", "+s+" )":c=a+"( "+o+", "+n+" )";let p={include:e.isShader("vertex"),ignoreCache:!0},l=this.getType(e);return e.addContext(p),this.colorSpace=this.colorSpace??new bt(new Te("",l)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(c),c=this.colorSpace.build(e,l),e.removeContext(),e.format(c,l,r)}};var Yl=class extends le{constructor(e,r,o=Yl.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 n=this.a.build(e,o),s=this.b.build(e,o);return e.format("( "+n+" "+this.op+" "+s+" )",o,r)}},Lt=Yl;Lt.ADD="+",Lt.SUB="-",Lt.MUL="*",Lt.DIV="/";var Le=class extends le{constructor(e,r=Le.ABS,o,n){super();this.nodeType="Math";this.a=e,typeof r!="string"?this.b=r:n=r,typeof o!="string"?this.c=o:n=o,this.method=n,this.hashProperties=["method"]}getNumInputs(e){switch(this.method){case Le.MIX:case Le.CLAMP:case Le.REFRACT:case Le.SMOOTHSTEP:case Le.FACEFORWARD:return 3;case Le.MIN:case Le.MAX:case Le.MOD:case Le.STEP:case Le.REFLECT:case Le.DISTANCE:case Le.DOT:case Le.CROSS:case Le.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,n=this.c?e.getTypeLength(this.c.getType(e)):0;return r>o&&r>n?this.a.getType(e):o>n?this.b.getType(e):this.c.getType(e)}getType(e){switch(this.method){case Le.LENGTH:case Le.DISTANCE:case Le.DOT:return"f";case Le.CROSS:return"v3"}return this.getInputType(e)}generate(e,r){let o,n,s,a=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,l=this.getInputType(e),u=this.getType(e);switch(this.type=u,this.method){case Le.NEGATE:return e.format("( -"+this.a.build(e,l)+" )",l,r);case Le.INVERT:return e.format("( 1.0 - "+this.a.build(e,l)+" )",l,r);case Le.CROSS:o=this.a.build(e,"v3"),n=this.b.build(e,"v3");break;case Le.STEP:o=this.a.build(e,a===1?"f":l),n=this.b.build(e,l);break;case Le.MIN:case Le.MAX:case Le.MOD:o=this.a.build(e,l),n=this.b.build(e,c===1?"f":l);break;case Le.REFRACT:o=this.a.build(e,l),n=this.b.build(e,l),s=this.c.build(e,"f");break;case Le.MIX:o=this.a.build(e,l),n=this.b.build(e,l),s=this.c.build(e,p===1?"f":l);break;default:o=this.a.build(e,l),this.b&&(n=this.b.build(e,l)),this.c&&(s=this.c.build(e,l));break}let d=[];d.push(o),n&&d.push(n),s&&d.push(s);let m=this.getNumInputs(e);if(d.length!==m)throw Error(`Arguments not match used in "${this.method}". Require ${m}, currently ${d.length}.`);return e.format(this.method+"( "+d.join(", ")+" )",u,r)}},me=Le;me.RAD="radians",me.DEG="degrees",me.EXP="exp",me.EXP2="exp2",me.LOG="log",me.LOG2="log2",me.SQRT="sqrt",me.INV_SQRT="inversesqrt",me.FLOOR="floor",me.CEIL="ceil",me.NORMALIZE="normalize",me.FRACT="fract",me.SATURATE="saturate",me.SIN="sin",me.COS="cos",me.TAN="tan",me.ASIN="asin",me.ACOS="acos",me.ARCTAN="atan",me.ABS="abs",me.SIGN="sign",me.LENGTH="length",me.NEGATE="negate",me.INVERT="invert",me.MIN="min",me.MAX="max",me.MOD="mod",me.STEP="step",me.REFLECT="reflect",me.DISTANCE="distance",me.DOT="dot",me.CROSS="cross",me.POW="pow",me.MIX="mix",me.CLAMP="clamp",me.REFRACT="refract",me.SMOOTHSTEP="smoothstep",me.FACEFORWARD="faceforward";var Ln=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,n){let s=new xi(Ln.Nodes.bilinearCubeUV,[r,o,n]);this.colorSpaceTL=this.colorSpaceTL??new bt(new Te("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(s.build(e)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new bt(new Te("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(s.build(e)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new bt(new Te("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(s.build(e)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new bt(new Te("","v4")),this.colorSpaceBR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(s.build(e)+".br");let a={include:e.isShader("vertex"),ignoreCache:!0};e.addContext(a),this.colorSpaceTLExp=new Te(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new Te(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new Te(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new Te(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let c=new Te("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,n=this.bias||e.context.roughness,s=new xi(Ln.Nodes.roughnessToMip,[n]),a=new me(s,Ln.Nodes.m0,Ln.Nodes.cubeUV_maxMipLevel,me.CLAMP),c=new me(a,me.FLOOR),p=new me(a,me.FRACT),l=this.bilinearCubeUV(e,this.value,o,c),u=this.bilinearCubeUV(e,this.value,o,new Lt(c,new X(1).setReadonly(!0),Lt.ADD)),d=new me(l,u,p,me.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)}},In=Ln;In.Nodes=function(){let e=new Nn(`struct TextureCubeUVData {
255
255
  vec4 tl;
256
256
  vec4 tr;
257
257
  vec4 br;
@@ -330,7 +330,7 @@ var Vf=Object.create;var Hi=Object.defineProperty;var zf=Object.getOwnPropertyDe
330
330
  mip = -2.0 * log2(1.16 * roughness);// 1.16 = 1.79^0.25
331
331
  }
332
332
  return mip;
333
- }`,I);return{bilinearCubeUV:p,roughnessToMip:T,m0:d,cubeUV_maxMipLevel:r}}();var Ao=class extends le{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??Ao.VIEW}getShared(){return this.scope===Ao.WORLD}build(e,r,o,n){let s=e.context[this.scope+"Normal"];return s?s.build(e,r,o,n):super.build(e,r,o)}generate(e,r,o,n,s){let a;switch(this.scope){case Ao.VIEW:e.isShader("vertex")?a="transformedNormal":a="geometryNormal";break;case Ao.LOCAL:e.isShader("vertex")?a="objectNormal":(e.requires.normal=!0,a="vObjectNormal");break;case Ao.WORLD:e.isShader("vertex")?a="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,a="vWNormal");break}return e.format(a,this.getType(e),r)}},at=Ao;at.LOCAL="local",at.WORLD="world",at.VIEW="view",at.NORMAL="normal";tt.addKeyword("viewNormal",function(){return new at(at.VIEW)});tt.addKeyword("localNormal",function(){return new at(at.NORMAL)});tt.addKeyword("worldNormal",function(){return new at(at.WORLD)});var _r=class extends le{constructor(e){super("v3");this.nodeType="Position";this.scope=e??_r.LOCAL}getType(){switch(this.scope){case _r.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case _r.LOCAL:case _r.WORLD:return!1}return!0}generate(e,r,o,n,s){let a;switch(this.scope){case _r.LOCAL:e.isShader("vertex")?a="transformed":(e.requires.position=!0,a="vPosition");break;case _r.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,a="vWPosition";break;case _r.VIEW:a=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case _r.PROJECTION:a=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(a,this.getType(),r)}},It=_r;It.LOCAL="local",It.WORLD="world",It.VIEW="view",It.PROJECTION="projection";tt.addKeyword("position",function(){return new It});tt.addKeyword("worldPosition",function(){return new It(It.WORLD)});tt.addKeyword("viewPosition",function(){return new It(It.VIEW)});var Qt=class extends le{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e??Qt.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case Qt.SPHERE:return"v2"}return this.type}generate(e,r){let o=this.getUnique(e);if(e.isShader("fragment")){let n;switch(this.scope){case Qt.VECTOR:{let s=new at(at.VIEW),a=e.context.roughness,c=s.build(e,"v3"),p=new It(It.VIEW).build(e,"v3"),l=a?a.build(e,"f"):void 0,u=`reflect( -normalize( ${p} ), ${c} )`;l&&(u=`normalize( mix( ${u}, ${c}, ${l} * ${l} ) )`);let d=`inverseTransformDirection( ${u}, viewMatrix )`;o?(e.addNodeCode(`vec3 reflectVec = ${d};`),n="reflectVec"):n=d;break}case Qt.CUBE:{let s=new Qt(Qt.VECTOR).build(e,"v3"),a="vec3( -"+s+".x, "+s+".yz )";o?(e.addNodeCode(`vec3 reflectCubeVec = ${a};`),n="reflectCubeVec"):n=a;break}case Qt.SPHERE:{let s=new Qt(Qt.VECTOR).build(e,"v3"),a="normalize( ( viewMatrix * vec4( "+s+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";o?(e.addNodeCode(`vec2 reflectSphereVec = ${a};`),n="reflectSphereVec"):n=a;break}}return e.format(n,this.getType(),r)}else return console.warn("ReflectNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.type,r)}},Sr=Qt;Sr.CUBE="cube",Sr.SPHERE="sphere",Sr.VECTOR="vector";var Ta=class extends le{constructor(e=new Ot,r,o){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new In(this.value,r??new Sr(Sr.VECTOR),o),this.irradianceNode=new In(this.value,new at(at.WORLD),new X(1).setReadonly(!0))}generate(e,r){return e.isShader("fragment")?(e.require("irradiance"),e.context.bias&&e.context.bias.setTexture(this.value),(e.slot==="irradiance"?this.irradianceNode:this.radianceNode).build(e,r)):(console.warn("TextureCubeNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r))}};var zm=require("three");var Aa=class extends Ie{constructor(e=new zm.CubeTexture,r,o){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=r??new Sr,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),n=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 a;s?a="texCubeBias( "+o+", "+n+", "+s+" )":a="texCube( "+o+", "+n+" )";let c={include:e.isShader("vertex"),ignoreCache:!0},p=this.getType(e);return e.addContext(c),this.colorSpace=this.colorSpace??new bt(new Te("",p)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(a),a=this.colorSpace.build(e,p),e.removeContext(),e.format(a,p,r)}};var Um=["x","y","z","w"],Lb=["float","vec2","vec3","vec4"],Ib={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},Pb={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[]"},Ca=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 n=this.getIncludes(r,o);if(!n)return"";let s="";n=n.sort(t);for(let a=0;a<n.length;a++)n[a].src&&(s+=n[a].src+`
333
+ }`,I);return{bilinearCubeUV:p,roughnessToMip:T,m0:d,cubeUV_maxMipLevel:r}}();var Ao=class extends le{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??Ao.VIEW}getShared(){return this.scope===Ao.WORLD}build(e,r,o,n){let s=e.context[this.scope+"Normal"];return s?s.build(e,r,o,n):super.build(e,r,o)}generate(e,r,o,n,s){let a;switch(this.scope){case Ao.VIEW:e.isShader("vertex")?a="transformedNormal":a="geometryNormal";break;case Ao.LOCAL:e.isShader("vertex")?a="objectNormal":(e.requires.normal=!0,a="vObjectNormal");break;case Ao.WORLD:e.isShader("vertex")?a="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,a="vWNormal");break}return e.format(a,this.getType(e),r)}},at=Ao;at.LOCAL="local",at.WORLD="world",at.VIEW="view",at.NORMAL="normal";tt.addKeyword("viewNormal",function(){return new at(at.VIEW)});tt.addKeyword("localNormal",function(){return new at(at.NORMAL)});tt.addKeyword("worldNormal",function(){return new at(at.WORLD)});var _r=class extends le{constructor(e){super("v3");this.nodeType="Position";this.scope=e??_r.LOCAL}getType(){switch(this.scope){case _r.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case _r.LOCAL:case _r.WORLD:return!1}return!0}generate(e,r,o,n,s){let a;switch(this.scope){case _r.LOCAL:e.isShader("vertex")?a="transformed":(e.requires.position=!0,a="vPosition");break;case _r.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,a="vWPosition";break;case _r.VIEW:a=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case _r.PROJECTION:a=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(a,this.getType(),r)}},It=_r;It.LOCAL="local",It.WORLD="world",It.VIEW="view",It.PROJECTION="projection";tt.addKeyword("position",function(){return new It});tt.addKeyword("worldPosition",function(){return new It(It.WORLD)});tt.addKeyword("viewPosition",function(){return new It(It.VIEW)});var Qt=class extends le{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e??Qt.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case Qt.SPHERE:return"v2"}return this.type}generate(e,r){let o=this.getUnique(e);if(e.isShader("fragment")){let n;switch(this.scope){case Qt.VECTOR:{let s=new at(at.VIEW),a=e.context.roughness,c=s.build(e,"v3"),p=new It(It.VIEW).build(e,"v3"),l=a?a.build(e,"f"):void 0,u=`reflect( -normalize( ${p} ), ${c} )`;l&&(u=`normalize( mix( ${u}, ${c}, ${l} * ${l} ) )`);let d=`inverseTransformDirection( ${u}, viewMatrix )`;o?(e.addNodeCode(`vec3 reflectVec = ${d};`),n="reflectVec"):n=d;break}case Qt.CUBE:{let s=new Qt(Qt.VECTOR).build(e,"v3"),a="vec3( -"+s+".x, "+s+".yz )";o?(e.addNodeCode(`vec3 reflectCubeVec = ${a};`),n="reflectCubeVec"):n=a;break}case Qt.SPHERE:{let s=new Qt(Qt.VECTOR).build(e,"v3"),a="normalize( ( viewMatrix * vec4( "+s+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";o?(e.addNodeCode(`vec2 reflectSphereVec = ${a};`),n="reflectSphereVec"):n=a;break}}return e.format(n,this.getType(),r)}else return console.warn("ReflectNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.type,r)}},Sr=Qt;Sr.CUBE="cube",Sr.SPHERE="sphere",Sr.VECTOR="vector";var Ta=class extends le{constructor(e=new Ot,r,o){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new In(this.value,r??new Sr(Sr.VECTOR),o),this.irradianceNode=new In(this.value,new at(at.WORLD),new X(1).setReadonly(!0))}generate(e,r){return e.isShader("fragment")?(e.require("irradiance"),e.context.bias&&e.context.bias.setTexture(this.value),(e.slot==="irradiance"?this.irradianceNode:this.radianceNode).build(e,r)):(console.warn("TextureCubeNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r))}};var Vm=require("three");var Aa=class extends Ie{constructor(e=new Vm.CubeTexture,r,o){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=r??new Sr,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),n=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 a;s?a="texCubeBias( "+o+", "+n+", "+s+" )":a="texCube( "+o+", "+n+" )";let c={include:e.isShader("vertex"),ignoreCache:!0},p=this.getType(e);return e.addContext(c),this.colorSpace=this.colorSpace??new bt(new Te("",p)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(a),a=this.colorSpace.build(e,p),e.removeContext(),e.format(a,p,r)}};var zm=["x","y","z","w"],Ob=["float","vec2","vec3","vec4"],Lb={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},Ib={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[]"},Ca=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 n=this.getIncludes(r,o);if(!n)return"";let s="";n=n.sort(t);for(let a=0;a<n.length;a++)n[a].src&&(s+=n[a].src+`
334
334
  `);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",`
335
335
  // NOTE: Include Spline's blending modes. This could be part of BlendNode
336
336
  #define SPE_BLENDING_NORMAL 0
@@ -375,7 +375,7 @@ var Vf=Object.create;var Hi=Object.defineProperty;var zf=Object.getOwnPropertyDe
375
375
  `}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",n="V",s=""){let a=this.getVars(o),c=a[t];if(!c){let p=a.length;c={name:r||"node"+n+p+(s?"_"+s:""),type:e},a.push(c),a[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(`
376
376
  `)}getVarListCode(t,e){e=e??"";let r="";for(let o=0,n=t.length;o<n;++o){let s=t[o],a=s.type,c=s.name,p=s.size,l=this.getFormatByType(a);if(l===void 0)throw new Error("Node pars "+l+" not found.");l.includes("[]")?r+=e+" "+l.substring(0,l.length-2)+" "+c+`[${p}];
377
377
  `:r+=e+" "+l+" "+c+`;
378
- `}return r}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let e=t instanceof st?t.uuid:t;return this.nodeData[e]=this.nodeData[e]||{}}createUniform(t,e,r,o,n,s){if(e.includes("[]")){let a=this.inputs.arrayUniforms,c=a.list.length,p=new vi({type:e,size:r.size,name:o||"nodeUA"+c+(s?"_"+s:""),node:r,needsUpdate:n});return a.list.push(p),a[t].push(p),a[t][p.name]=p,this.uniforms[p.name]=p,p}else{let a=this.inputs.uniforms,c=a.list.length,p=new vi({type:e,name:o||"nodeU"+c+(s?"_"+s:""),node:r,needsUpdate:n});return a.list.push(p),a[t].push(p),a[t][p.name]=p,this.uniforms[p.name]=p,p}}createVertexUniform(t,e,r,o,n){return this.createUniform("vertex",t,e,r,o,n)}createFragmentUniform(t,e,r,o,n){return this.createUniform("fragment",t,e,r,o,n)}include(t,e,r){let o;if(t=typeof t=="string"?tt.get(t):t,this.context.include===!1)return t.name;t instanceof Y?o=this.includes.functions:t instanceof _e?o=this.includes.consts:t instanceof Nn&&(o=this.includes.structs);let n=o[this.shader]=o[this.shader]||[];if(t){let s=n[t.name];if(s||(s=n[t.name]={node:t,deps:[]},n.push(s),s.src=t.build(this,"source")),t instanceof Y&&e&&n[e.name]&&n[e.name].deps.indexOf(t)===-1&&(n[e.name].deps.push(t),t.includes?.length)){let a=0;do this.include(t.includes[a++],e);while(a<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 Lb[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 Zt.CubeReflectionMapping:case Zt.CubeRefractionMapping:return new Aa(r);case Zt.CubeUVReflectionMapping:return new Ta(new Ot(r));default:return new Ot(r)}else{if(r.isVector2)return new rt(r);if(r.isVector3)return new pt(r);if(r.isVector4)return new qt(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 Ib[t]||t}getFormatByType(t){return Pb[t]||t}getUUID(t,e){return e=e!==void 0?e:!0,e&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return Um[t]}getIndexByElement(t){return Um.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=Zt.LinearEncoding,e===Zt.LinearEncoding&&this.context.gamma&&(e=Zt.sRGBEncoding),e}};var no=class extends Ie{constructor(e){super("b");this.nodeType="Bool";this.value=e??!1}generateReadonly(e,r,o,n){return e.format(this.value?"true":"false",n,r)}};var km=require("three");var Pn=class extends Ie{constructor(e){super("m3");this.nodeType="Matrix3";this.value=e??new km.Matrix3}generateReadonly(e,r,o,n,s,a){return e.format("mat3("+this.value.elements.join(", ")+")",n,r)}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};var Ql=require("three");var Jt=class extends Ie{constructor(e=1,r){super("v4[]");this.nodeType="Vector4Array";this.size=e,this.value=Array.isArray(r)?r:r instanceof Ql.Vector4?new Array(e).fill(r):new Array(e).fill(new Ql.Vector4(0))}};var bi=(n=>(n.SIMPLEX="simplex3d",n.SIMPLEX_FRACTAL="simplex3dFractal",n.ASHIMA="simplexAshima",n.FBM="fbm",n.PERLIN="perlin",n))(bi||{}),gt=function(){let t=new Y(`vec3 random3(vec3 c) {
378
+ `}return r}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let e=t instanceof st?t.uuid:t;return this.nodeData[e]=this.nodeData[e]||{}}createUniform(t,e,r,o,n,s){if(e.includes("[]")){let a=this.inputs.arrayUniforms,c=a.list.length,p=new vi({type:e,size:r.size,name:o||"nodeUA"+c+(s?"_"+s:""),node:r,needsUpdate:n});return a.list.push(p),a[t].push(p),a[t][p.name]=p,this.uniforms[p.name]=p,p}else{let a=this.inputs.uniforms,c=a.list.length,p=new vi({type:e,name:o||"nodeU"+c+(s?"_"+s:""),node:r,needsUpdate:n});return a.list.push(p),a[t].push(p),a[t][p.name]=p,this.uniforms[p.name]=p,p}}createVertexUniform(t,e,r,o,n){return this.createUniform("vertex",t,e,r,o,n)}createFragmentUniform(t,e,r,o,n){return this.createUniform("fragment",t,e,r,o,n)}include(t,e,r){let o;if(t=typeof t=="string"?tt.get(t):t,this.context.include===!1)return t.name;t instanceof Y?o=this.includes.functions:t instanceof _e?o=this.includes.consts:t instanceof Nn&&(o=this.includes.structs);let n=o[this.shader]=o[this.shader]||[];if(t){let s=n[t.name];if(s||(s=n[t.name]={node:t,deps:[]},n.push(s),s.src=t.build(this,"source")),t instanceof Y&&e&&n[e.name]&&n[e.name].deps.indexOf(t)===-1&&(n[e.name].deps.push(t),t.includes?.length)){let a=0;do this.include(t.includes[a++],e);while(a<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 Ob[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 Zt.CubeReflectionMapping:case Zt.CubeRefractionMapping:return new Aa(r);case Zt.CubeUVReflectionMapping:return new Ta(new Ot(r));default:return new Ot(r)}else{if(r.isVector2)return new rt(r);if(r.isVector3)return new pt(r);if(r.isVector4)return new qt(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 Lb[t]||t}getFormatByType(t){return Ib[t]||t}getUUID(t,e){return e=e!==void 0?e:!0,e&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return zm[t]}getIndexByElement(t){return zm.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=Zt.LinearEncoding,e===Zt.LinearEncoding&&this.context.gamma&&(e=Zt.sRGBEncoding),e}};var no=class extends Ie{constructor(e){super("b");this.nodeType="Bool";this.value=e??!1}generateReadonly(e,r,o,n){return e.format(this.value?"true":"false",n,r)}};var Um=require("three");var Pn=class extends Ie{constructor(e){super("m3");this.nodeType="Matrix3";this.value=e??new Um.Matrix3}generateReadonly(e,r,o,n,s,a){return e.format("mat3("+this.value.elements.join(", ")+")",n,r)}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};var Kl=require("three");var Jt=class extends Ie{constructor(e=1,r){super("v4[]");this.nodeType="Vector4Array";this.size=e,this.value=Array.isArray(r)?r:r instanceof Kl.Vector4?new Array(e).fill(r):new Array(e).fill(new Kl.Vector4(0))}};var bi=(n=>(n.SIMPLEX="simplex3d",n.SIMPLEX_FRACTAL="simplex3dFractal",n.ASHIMA="simplexAshima",n.FBM="fbm",n.PERLIN="perlin",n))(bi||{}),gt=function(){let t=new Y(`vec3 random3(vec3 c) {
379
379
  float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));
380
380
  vec3 r;
381
381
  r.z = fract(512.0*j);
@@ -572,14 +572,14 @@ var Vf=Object.create;var Hi=Object.defineProperty;var zf=Object.getOwnPropertyDe
572
572
 
573
573
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
574
574
  return clamp(color, 0.0, 1.0).rgb;
575
- }`,[gt.simplex,gt.simplexFractal,gt.simplexAshima,gt.fbm,gt.perlin]),p=e.include(c),l=[];return l.push(this.scale.build(e,"f")),l.push(this.size.build(e,"v3")),l.push(this.move.build(e,"f")),l.push(this.fA.build(e,"v2")),l.push(this.fB.build(e,"v2")),l.push(this.distortion.build(e,"v2")),l.push(this.colorA.build(e,"v4")),l.push(this.colorB.build(e,"v4")),l.push(this.colorC.build(e,"v4")),l.push(this.colorD.build(e,"v4")),l.push(this.alpha.build(e,"f")),l.push(this.calpha),e.format(p+"("+l.join(",")+")",this.getType(e),r)}};_i.numOctaves=5;var Zl=class extends le{constructor(e,r,o,n,s,a,c){super("v3");this.nodeType="Fresnel";this.color=e,this.bias=r,this.scale=o,this.intensity=n,this.factor=s,this.alpha=a,this.mode=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(Zl.Nodes.fresnel),n=[];return n.push(this.color.build(e,"c")),n.push(this.bias.build(e,"f")),n.push(this.scale.build(e,"f")),n.push(this.intensity.build(e,"f")),n.push(this.factor.build(e,"f")),n.push(this.alpha.build(e,"f")),n.push(this.mode.build(e,"i")),n.push(this.calpha),e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("FresnelNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Si=Zl;Si.Nodes=function(){return{fresnel:new Y(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, float alpha, int mode, out float calpha) {
575
+ }`,[gt.simplex,gt.simplexFractal,gt.simplexAshima,gt.fbm,gt.perlin]),p=e.include(c),l=[];return l.push(this.scale.build(e,"f")),l.push(this.size.build(e,"v3")),l.push(this.move.build(e,"f")),l.push(this.fA.build(e,"v2")),l.push(this.fB.build(e,"v2")),l.push(this.distortion.build(e,"v2")),l.push(this.colorA.build(e,"v4")),l.push(this.colorB.build(e,"v4")),l.push(this.colorC.build(e,"v4")),l.push(this.colorD.build(e,"v4")),l.push(this.alpha.build(e,"f")),l.push(this.calpha),e.format(p+"("+l.join(",")+")",this.getType(e),r)}};_i.numOctaves=5;var Ql=class extends le{constructor(e,r,o,n,s,a,c){super("v3");this.nodeType="Fresnel";this.color=e,this.bias=r,this.scale=o,this.intensity=n,this.factor=s,this.alpha=a,this.mode=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(Ql.Nodes.fresnel),n=[];return n.push(this.color.build(e,"c")),n.push(this.bias.build(e,"f")),n.push(this.scale.build(e,"f")),n.push(this.intensity.build(e,"f")),n.push(this.factor.build(e,"f")),n.push(this.alpha.build(e,"f")),n.push(this.mode.build(e,"i")),n.push(this.calpha),e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("FresnelNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Si=Ql;Si.Nodes=function(){return{fresnel:new Y(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, float alpha, int mode, out float calpha) {
576
576
  float fresnel = bias + scale * pow( abs( factor + dot( normalize( vWorldViewDir ), normalize( vWNormal ) ) ), intensity );
577
577
 
578
578
  float lalpha = clamp( fresnel, 0.0, 1.0 ) * alpha;
579
579
  calpha = lalpha / clamp(lalpha + accumAlpha, 0.001, 1.0);
580
580
  accumAlpha += (1.0 - accumAlpha) * lalpha;
581
581
  return color;
582
- }`)}}();var Jl=class extends le{constructor(e,r,o,n,s,a,c){super("v3");this.nodeType="Rainbow";this.filmThickness=e,this.movement=r,this.wavelengths=o,this.noiseStrength=n,this.noiseScale=s,this.offset=a,this.alpha=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(Jl.Nodes.rainbow),n=[];return n.push(this.filmThickness.build(e,"f")),n.push(this.movement.build(e,"f")),n.push(this.wavelengths.build(e,"v3")),n.push(this.noiseStrength.build(e,"f")),n.push(this.noiseScale.build(e,"f")),n.push(this.offset.build(e,"v3")),n.push(this.alpha.build(e,"f")),n.push(this.calpha),e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("RainbowNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},wi=Jl;wi.Nodes=function(){let e=new Y(`vec3 attenuation(vec3 wavelengths, float filmThickness, float movement, float noiseStrength, float noiseScale, vec3 offset) {
582
+ }`)}}();var Zl=class extends le{constructor(e,r,o,n,s,a,c){super("v3");this.nodeType="Rainbow";this.filmThickness=e,this.movement=r,this.wavelengths=o,this.noiseStrength=n,this.noiseScale=s,this.offset=a,this.alpha=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(Zl.Nodes.rainbow),n=[];return n.push(this.filmThickness.build(e,"f")),n.push(this.movement.build(e,"f")),n.push(this.wavelengths.build(e,"v3")),n.push(this.noiseStrength.build(e,"f")),n.push(this.noiseScale.build(e,"f")),n.push(this.offset.build(e,"v3")),n.push(this.alpha.build(e,"f")),n.push(this.calpha),e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("RainbowNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},wi=Zl;wi.Nodes=function(){let e=new Y(`vec3 attenuation(vec3 wavelengths, float filmThickness, float movement, float noiseStrength, float noiseScale, vec3 offset) {
583
583
  vec3 st = position / noiseScale;
584
584
  vec3 q = vec3(simplex3d(st),
585
585
  simplex3d(st + vec3(1.0)),
@@ -601,7 +601,7 @@ var Vf=Object.create;var Hi=Object.defineProperty;var zf=Object.getOwnPropertyDe
601
601
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
602
602
 
603
603
  return res;
604
- }`,[e])}}();var ec=class extends le{constructor(e,r,o,n,s,a,c,p,l,u,d,m,f,h,g,x){super("v3");this.nodeType="Outline";this.firstTime=!0,this.outlineColor=e,this.contourColor=r,this.outlineWidth=o,this.contourWidth=n,this.contourThreshold=s,this.outlineThreshold=a,this.contourFrequency=c,this.outlineSmoothing=p,this.contourDirection=l,this.positionalLines=u,this.compensation=d,this.resolution=m,this.normalMap=f,this.depthMap=h,this.pixelRatio=g,this.alpha=x,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.extensions.derivatives=!0,this.firstTime){let o=this.outlineWidth.build(e,"f"),n=this.resolution.build(e,"v2"),s=this.compensation.build(e,"b"),a=this.pixelRatio.build(e,"f");e.addVertexParsVariable("randomColor","attribute vec3"),e.addVertexParsVariable("extrudeNormal","attribute vec3"),e.addVertexParsVariable(o,"uniform float"),e.addVertexParsVariable(n,"uniform vec2"),e.addVertexParsVariable(s,"uniform bool"),e.addVertexParsVariable(a,"uniform float"),e.addVertexParsVariable("vID","flat out float"),e.addFragmentParsVariable("vID","flat in float");let c=`g${this.uuid.toString().replace(/-/g,"")}`;e.addVertexFinalCode(`
604
+ }`,[e])}}();var Jl=class extends le{constructor(e,r,o,n,s,a,c,p,l,u,d,m,f,h,g,x){super("v3");this.nodeType="Outline";this.firstTime=!0,this.outlineColor=e,this.contourColor=r,this.outlineWidth=o,this.contourWidth=n,this.contourThreshold=s,this.outlineThreshold=a,this.contourFrequency=c,this.outlineSmoothing=p,this.contourDirection=l,this.positionalLines=u,this.compensation=d,this.resolution=m,this.normalMap=f,this.depthMap=h,this.pixelRatio=g,this.alpha=x,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.extensions.derivatives=!0,this.firstTime){let o=this.outlineWidth.build(e,"f"),n=this.resolution.build(e,"v2"),s=this.compensation.build(e,"b"),a=this.pixelRatio.build(e,"f");e.addVertexParsVariable("randomColor","attribute vec3"),e.addVertexParsVariable("extrudeNormal","attribute vec3"),e.addVertexParsVariable(o,"uniform float"),e.addVertexParsVariable(n,"uniform vec2"),e.addVertexParsVariable(s,"uniform bool"),e.addVertexParsVariable(a,"uniform float"),e.addVertexParsVariable("vID","flat out float"),e.addFragmentParsVariable("vID","flat in float");let c=`g${this.uuid.toString().replace(/-/g,"")}`;e.addVertexFinalCode(`
605
605
  vID = randomColor.r;
606
606
  if (${s}) {
607
607
  vec4 ${c}_clipPosition = projectionMatrix * (modelViewMatrix * vec4(position, 1.0));
@@ -612,7 +612,7 @@ var Vf=Object.create;var Hi=Object.defineProperty;var zf=Object.getOwnPropertyDe
612
612
  // if this offset is the biggest of all the potential offsets
613
613
  gl_Position = ${c}_clipPosition;
614
614
  }
615
- `)}if(e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(ec.Nodes.outline),n=[];return n.push(this.outlineColor.build(e,"c")),n.push(this.contourColor.build(e,"c")),n.push(this.outlineWidth.build(e,"f")),n.push(this.contourWidth.build(e,"f")),n.push(this.contourThreshold.build(e,"f")),n.push(this.outlineThreshold.build(e,"f")),n.push(this.contourFrequency.build(e,"f")),n.push(this.outlineSmoothing.build(e,"f")),n.push(this.contourDirection.build(e,"v3")),n.push(this.positionalLines.build(e,"b")),n.push(this.resolution.build(e,"v2")),n.push(this.normalMap.getTexture(e,"t")),n.push(this.depthMap.getTexture(e,"t")),n.push(this.pixelRatio.build(e,"f")),n.push(this.compensation.build(e,"b")),n.push(this.alpha.build(e,"f")),n.push(this.calpha),this.firstTime=!this.firstTime,e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("OutlineNode is not compatible with "+e.shader+" shader."),""}},Ti=ec;Ti.Nodes=function(){let e=new Y(`
615
+ `)}if(e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(Jl.Nodes.outline),n=[];return n.push(this.outlineColor.build(e,"c")),n.push(this.contourColor.build(e,"c")),n.push(this.outlineWidth.build(e,"f")),n.push(this.contourWidth.build(e,"f")),n.push(this.contourThreshold.build(e,"f")),n.push(this.outlineThreshold.build(e,"f")),n.push(this.contourFrequency.build(e,"f")),n.push(this.outlineSmoothing.build(e,"f")),n.push(this.contourDirection.build(e,"v3")),n.push(this.positionalLines.build(e,"b")),n.push(this.resolution.build(e,"v2")),n.push(this.normalMap.getTexture(e,"t")),n.push(this.depthMap.getTexture(e,"t")),n.push(this.pixelRatio.build(e,"f")),n.push(this.compensation.build(e,"b")),n.push(this.alpha.build(e,"f")),n.push(this.calpha),this.firstTime=!this.firstTime,e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("OutlineNode is not compatible with "+e.shader+" shader."),""}},Ti=Jl;Ti.Nodes=function(){let e=new Y(`
616
616
  float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outlineWidth, float pixelRatio)
617
617
  {
618
618
  vec2 texelSize = (vec2(1.0) / resolution) * outlineWidth * pixelRatio;
@@ -752,7 +752,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
752
752
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
753
753
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
754
754
  return result;
755
- }`,[e])}}();var tc=class extends le{constructor(e,r,o,n,s,a,c,p){super("v3");this.nodeType="Transmission";this.thickness=e,this.ior=r,this.roughness=o,this.transmissionSamplerSize=n,this.transmissionSamplerMap=s,this.transmissionDepthMap=a,this.aspectRatio=c,this.alpha=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.extensions.shaderTextureLOD=!0,e.extensions.derivatives=!0,e.isShader("fragment")){e.define("NUM_SAMPLES",30),e.require("worldPosition"),e.requires.worldNormal=!0,e.requires.modelMatrix=!0,e.requires.projectionMatrix=!0,e.addFragmentVariable(this.calpha,"float");let o=e.include(tc.Nodes.transmission),n=[];return n.push(this.thickness.build(e,"f")),n.push(this.ior.build(e,"f")),n.push(this.roughness.build(e,"f")),n.push(this.transmissionSamplerSize.build(e,"v2")),n.push(this.transmissionSamplerMap.getTexture(e,"t")),n.push(this.transmissionDepthMap.getTexture(e,"t")),n.push(this.aspectRatio.build(e,"v2")),n.push("normal"),n.push(this.alpha.build(e,"f")),n.push(this.calpha),e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("TransmissionNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Ai=tc;Ai.Nodes=function(){let e=new Y(`
755
+ }`,[e])}}();var ec=class extends le{constructor(e,r,o,n,s,a,c,p){super("v3");this.nodeType="Transmission";this.thickness=e,this.ior=r,this.roughness=o,this.transmissionSamplerSize=n,this.transmissionSamplerMap=s,this.transmissionDepthMap=a,this.aspectRatio=c,this.alpha=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.extensions.shaderTextureLOD=!0,e.extensions.derivatives=!0,e.isShader("fragment")){e.define("NUM_SAMPLES",30),e.require("worldPosition"),e.requires.worldNormal=!0,e.requires.modelMatrix=!0,e.requires.projectionMatrix=!0,e.addFragmentVariable(this.calpha,"float");let o=e.include(ec.Nodes.transmission),n=[];return n.push(this.thickness.build(e,"f")),n.push(this.ior.build(e,"f")),n.push(this.roughness.build(e,"f")),n.push(this.transmissionSamplerSize.build(e,"v2")),n.push(this.transmissionSamplerMap.getTexture(e,"t")),n.push(this.transmissionDepthMap.getTexture(e,"t")),n.push(this.aspectRatio.build(e,"v2")),n.push("normal"),n.push(this.alpha.build(e,"f")),n.push(this.calpha),e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("TransmissionNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Ai=ec;Ai.Nodes=function(){let e=new Y(`
756
756
  float gaussian(vec2 i) {
757
757
  const float sigma = float(NUM_SAMPLES) * .25;
758
758
  return exp( -.5* dot(i/=sigma,i) ) / ( 6.28 * sigma*sigma );
@@ -893,7 +893,7 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
893
893
  }`),n=new Y(`float vectorSphericalObjectSpaceDepth(vec3 origin, float near, float far) {
894
894
  float dist = length(position - origin);
895
895
  return ( dist - near ) / ( far - near );
896
- }`);return{vectorLinearWorldSpaceDepth:e,vectorLinearObjectSpaceDepth:r,vectorSphericalWorldSpaceDepth:o,vectorSphericalObjectSpaceDepth:n}}();var Ni=class extends le{constructor(e,r,o,n){super("v3");this.nodeType="Blend";this.a=e,this.b=r,this.alpha=o,this.mode=n}generate(e,r){if(e.isShader("fragment")){let o=[];return o.push(this.a.build(e,"c")),o.push(this.b.build(e,"c")),o.push(this.alpha.build(e,"f")),o.push(this.mode.build(e,"i")),e.format("spe_blend("+o.join(",")+")",this.getType(e),r)}else return console.warn("BlendNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}};var rc=(e=>(e.NOISE="noise",e.MAP="map",e))(rc||{}),oc=class extends le{constructor(e,r,o,n,s){super("v3");this.displacementTypeIndex=new xe(0);this.nodeType="VertexDisplacement";this.intensity=e,this.movementOrTexture=r,Object.values(rc)[this.displacementTypeIndex.value]==="map"&&(this.mat=new Pn(this.movementOrTexture.value.matrix)),this.cropOrOffset=o,this.scale=n,this.noiseFunctionIndex=s}generate(e,r){if(e.isShader("vertex")){e.define("USE_LAYER_DISPLACE");let o,n=[];switch(n.push("displaced_position"),n.push("displaced_normal"),Object.values(rc)[this.displacementTypeIndex.value]){case"map":{o=e.include(oc.Nodes.map),n.push(this.movementOrTexture.getTexture(e,"t")),n.push("uv"),n.push(this.cropOrOffset.build(e,"f")),this.mat&&n.push(this.mat.build(e,"mat3"));break}case"noise":{let a=Object.values(bi)[this.noiseFunctionIndex.value],c=new Y(`vec3 orthogonal(vec3 v) {
896
+ }`);return{vectorLinearWorldSpaceDepth:e,vectorLinearObjectSpaceDepth:r,vectorSphericalWorldSpaceDepth:o,vectorSphericalObjectSpaceDepth:n}}();var Ni=class extends le{constructor(e,r,o,n){super("v3");this.nodeType="Blend";this.a=e,this.b=r,this.alpha=o,this.mode=n}generate(e,r){if(e.isShader("fragment")){let o=[];return o.push(this.a.build(e,"c")),o.push(this.b.build(e,"c")),o.push(this.alpha.build(e,"f")),o.push(this.mode.build(e,"i")),e.format("spe_blend("+o.join(",")+")",this.getType(e),r)}else return console.warn("BlendNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}};var tc=(e=>(e.NOISE="noise",e.MAP="map",e))(tc||{}),rc=class extends le{constructor(e,r,o,n,s){super("v3");this.displacementTypeIndex=new xe(0);this.nodeType="VertexDisplacement";this.intensity=e,this.movementOrTexture=r,Object.values(tc)[this.displacementTypeIndex.value]==="map"&&(this.mat=new Pn(this.movementOrTexture.value.matrix)),this.cropOrOffset=o,this.scale=n,this.noiseFunctionIndex=s}generate(e,r){if(e.isShader("vertex")){e.define("USE_LAYER_DISPLACE");let o,n=[];switch(n.push("displaced_position"),n.push("displaced_normal"),Object.values(tc)[this.displacementTypeIndex.value]){case"map":{o=e.include(rc.Nodes.map),n.push(this.movementOrTexture.getTexture(e,"t")),n.push("uv"),n.push(this.cropOrOffset.build(e,"f")),this.mat&&n.push(this.mat.build(e,"mat3"));break}case"noise":{let a=Object.values(bi)[this.noiseFunctionIndex.value],c=new Y(`vec3 orthogonal(vec3 v) {
897
897
  return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
898
898
  }`),p=new Y(`vec3 distorted(vec3 p, vec3 n, float scale, float intensity, vec3 offset, float neighbour_offset, float movement) {
899
899
  return p + n * ${a}((p + offset) * scale * 0.001 + neighbour_offset + (movement * 0.1)) * intensity;
@@ -913,7 +913,7 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
913
913
  vec3 distorted2 = distorted(nearby2, normal, scale, intensity, offset, neighbor_offset, movement);
914
914
  displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
915
915
  return displaced_position;
916
- }`,[p,c]);o=e.include(l),n.push(this.scale.build(e,"f")),n.push(this.cropOrOffset.build(e,"v3")),n.push(this.movementOrTexture.build(e,"f"));break}}return n.push(this.intensity.build(e,"f")),n.push("displaced_normal"),e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("VertexDisplacementNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Oi=oc;Oi.Nodes=function(){let e=new Y(`vec3 orthogonal(vec3 v) {
916
+ }`,[p,c]);o=e.include(l),n.push(this.scale.build(e,"f")),n.push(this.cropOrOffset.build(e,"v3")),n.push(this.movementOrTexture.build(e,"f"));break}}return n.push(this.intensity.build(e,"f")),n.push("displaced_normal"),e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("VertexDisplacementNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Oi=rc;Oi.Nodes=function(){let e=new Y(`vec3 orthogonal(vec3 v) {
917
917
  return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
918
918
  }`),r=new Y(`float displacementMapTexture(sampler2D tex, float crop, vec2 uv, mat3 mat, vec2 offset) {
919
919
  vec2 uvs = (mat * vec3(uv * 2.0 - 1.0, 1.0) / 2.0 + 0.5).xy + offset;
@@ -935,7 +935,7 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
935
935
  vec3 distorted2 = nearby2 + normal * displacementMapTexture(tex, crop, uv, mat, vec2(neighbor_offset)) * intensity;
936
936
  displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
937
937
  return displaced_position;
938
- }`,[e,r])}}();var nc=class extends le{constructor(e,r,o,n,s,a,c,p){super("v3");this.nodeType="Gradient";this.gradientType=e,this.smooth=r,this.colors=o,this.steps=n,this.offset=s,this.morph=a,this.angle=c,this.alpha=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.isShader("fragment")){e.define("GRAD_MAX",10),e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(nc.Nodes.gradient),n=[];return n.push(this.gradientType.build(e,"i")),n.push(this.smooth.build(e,"b")),n.push(this.colors.build(e,"v4[]")),n.push(this.steps.build(e,"f[]")),n.push(this.offset.build(e,"v2")),n.push(this.morph.build(e,"v2")),n.push(this.angle.build(e,"f")),n.push(this.alpha.build(e,"f")),n.push(this.calpha),e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("GradientNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Li=nc;Li.Nodes=function(){return{gradient:new Y(`vec3 gradient(int gradientType, bool smoothed, vec4 colors[GRAD_MAX], float steps[GRAD_MAX], vec2 offset, vec2 morph, float angle, float alpha, out float calpha) {
938
+ }`,[e,r])}}();var oc=class extends le{constructor(e,r,o,n,s,a,c,p){super("v3");this.nodeType="Gradient";this.gradientType=e,this.smooth=r,this.colors=o,this.steps=n,this.offset=s,this.morph=a,this.angle=c,this.alpha=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.isShader("fragment")){e.define("GRAD_MAX",10),e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(oc.Nodes.gradient),n=[];return n.push(this.gradientType.build(e,"i")),n.push(this.smooth.build(e,"b")),n.push(this.colors.build(e,"v4[]")),n.push(this.steps.build(e,"f[]")),n.push(this.offset.build(e,"v2")),n.push(this.morph.build(e,"v2")),n.push(this.angle.build(e,"f")),n.push(this.alpha.build(e,"f")),n.push(this.calpha),e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("GradientNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Li=oc;Li.Nodes=function(){return{gradient:new Y(`vec3 gradient(int gradientType, bool smoothed, vec4 colors[GRAD_MAX], float steps[GRAD_MAX], vec2 offset, vec2 morph, float angle, float alpha, out float calpha) {
939
939
  vec4 color = colors[0];
940
940
  vec2 m = morph / vUv.xy;
941
941
  vec2 rot = vec2( 0.5 + m.x, m.y );
@@ -1070,14 +1070,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1070
1070
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
1071
1071
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
1072
1072
  return col;
1073
- }`);return{cylindrical:e,spherical:r,uv:o}}();var ic=class extends le{constructor(e,r){super("v3");this.nodeType="CustomNormal";this.cnormal=e,this.alpha=r}generate(e,r){if(e.isShader("fragment")){let o=e.include(ic.Nodes.customNormal),n=[];return n.push(this.cnormal.build(e,"v3")),n.push("normal"),n.push(this.alpha.build(e,"f")),e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("CustomNormalNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Mi=ic;Mi.Nodes=function(){return{customNormal:new Y(`vec3 customNormal(vec3 cnormal, vec3 norm, float alpha) {
1073
+ }`);return{cylindrical:e,spherical:r,uv:o}}();var nc=class extends le{constructor(e,r){super("v3");this.nodeType="CustomNormal";this.cnormal=e,this.alpha=r}generate(e,r){if(e.isShader("fragment")){let o=e.include(nc.Nodes.customNormal),n=[];return n.push(this.cnormal.build(e,"v3")),n.push("normal"),n.push(this.alpha.build(e,"f")),e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("CustomNormalNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Mi=nc;Mi.Nodes=function(){return{customNormal:new Y(`vec3 customNormal(vec3 cnormal, vec3 norm, float alpha) {
1074
1074
  vec3 normal = packNormalToRGB( norm ).rgb;
1075
1075
  normal *= step( vec3(0.5), cnormal );
1076
1076
 
1077
1077
  accumAlpha += ( 1.0 - accumAlpha ) * alpha;
1078
1078
 
1079
1079
  return normal;
1080
- }`)}}();var Qe=require("three");function jm(i,t){switch(i.type){case"fresnel":return Bb(i,t);case"gradient":return Eb(i);case"depth":return Gb(i);case"normal":return Rb(i);case"noise":return Fb(i,t);case"rainbow":return Vb(i);case"toon":return zb(i,t);case"outline":return Ub(i,t);case"transmission":return kb(i,t);case"color":return Db(i,t)}}function Mb(i){return{type:i.type}}function wr(i){let{alpha:t,mode:e}=i;return{...Mb(i),alpha:t,mode:e}}function Db(i,t){return{...wr(i),color:Ye(i.color,t)}}function Bb(i,t){let{bias:e,scale:r,intensity:o,factor:n,color:s}=i;return{...wr(i),color:Ye(s,t),bias:e,scale:r,intensity:o,factor:n}}function Eb(i){let{gradientType:t,smooth:e,colors:r,steps:o,angle:n,offset:s,morph:a}=i;return{...wr(i),gradientType:t,smooth:e,colors:r.map(c=>new Qe.Vector4(c[0],c[1],c[2],c[3])),num:r.length,steps:o,offset:new Qe.Vector2(...s),morph:new Qe.Vector2(...a),angle:n}}function Gb(i){let{gradientType:t,near:e,far:r,isVector:o,isWorldSpace:n,origin:s,direction:a,colors:c,steps:p,smooth:l,num:u}=i;return{...wr(i),gradientType:t,near:e,far:r,isVector:o,isWorldSpace:n,origin:new Qe.Vector3(...s),direction:a?new Qe.Vector3(...a):new Qe.Vector3(1,0,0),num:u,colors:c.map(d=>new Qe.Vector4(d[0],d[1],d[2],d[3])),steps:p,smooth:l}}function Rb(i){let{cnormal:t}=i;return{...wr(i),cnormal:new Qe.Vector3(t[0],t[1],t[2])}}function Fb(i,t){return{...wr(i),scale:i.scale,move:i.move,fA:new Qe.Vector2(...i.fA),fB:new Qe.Vector2(...i.fB),size:new Qe.Vector3(...i.size),distortion:new Qe.Vector2(...i.distortion),colorA:Ye(i.colorA,t),colorB:Ye(i.colorB,t),colorC:Ye(i.colorC,t),colorD:Ye(i.colorD,t),noiseType:i.noiseType}}function Vb(i){return{...wr(i),filmThickness:i.filmThickness,movement:i.movement,wavelengths:new Qe.Vector3(...i.wavelengths),noiseStrength:i.noiseStrength,noiseScale:i.noiseScale,offset:new Qe.Vector3(...i.offset)}}function zb(i,t){return{...wr(i),positioning:i.positioning,colors:i.colors.map(e=>new Qe.Vector4(e[0],e[1],e[2],e[3])),num:i.colors.length,steps:i.steps,source:new Qe.Vector3(...i.source),isWorldSpace:i.isWorldSpace,noiseStrength:i.noiseStrength,noiseScale:i.noiseScale,shadowColor:Ye(i.shadowColor,t),offset:new Qe.Vector3(...i.offset)}}function Ub(i,t){return{...wr(i),outlineColor:Ye(i.outlineColor,t),contourColor:Ye(i.contourColor,t),outlineWidth:i.outlineWidth,contourWidth:i.contourWidth,outlineThreshold:i.outlineThreshold,contourThreshold:i.contourThreshold,outlineSmoothing:i.outlineSmoothing,contourFrequency:i.contourFrequency,contourDirection:i.contourDirection,positionalLines:i.positionalLines,compensation:i.compensation,resolution:t.resolutionNode,normalMap:t.normalMap,depthMap:t.normalRenderTarget.depthTexture,pixelRatio:t.pixelRatioNode}}function kb(i,t){return{...wr(i),thickness:i.thickness,ior:i.ior,roughness:i.roughness,transmissionSamplerMap:t.transmissionSamplerMap,transmissionDepthMap:t.transmissionDepthMap}}var io=class extends ct{};var $m=require("three");var qm=require("three");var sc=new Map,Di={url:"head",time:0,data:null,next:null,prev:null},Dn={url:"tail",time:1/0,data:null,next:null,prev:null};Di.next=Dn;Dn.prev=Di;var Hm=0;function Wm(i){if(typeof i=="string")return i;let t=Date.now(),e=sc.get(i);return e===void 0?(e={url:URL.createObjectURL(new Blob([i])),data:i,time:t,next:null,prev:null},sc.set(i,e)):(e.time=t,e.prev.next=e.next,e.next.prev=e.prev),e.prev=Dn.prev,e.next=Dn,Dn.prev.next=e,Dn.prev=e,t-Hm>1e3*10&&(Hm=t+1e3,setTimeout(()=>{let r=Date.now(),o=Di.next;for(;o.time<r-1e3*10;)URL.revokeObjectURL(o.url),sc.delete(o.data),o=o.next,o.prev=Di,Di.next=o},900)),e.url}var Bn=class{constructor(t,e){this.data=t;this.onImageLoad=e;this.loaded=!1;this.updateSrc(t.data)}updateSrc(t){this.dispose(),this.loaded=!1,this.img=new Image,this.img.src=Wm(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 qm.Texture(this.img,void 0,t,t);return this.loaded&&(r.needsUpdate=!0),this[t]=r,r}}dispose(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}};1e3,1001,1002;var Co=class extends Bn{};var so=class extends Ie{};function jb(i,t){switch(i.type){case"noise":return t==="noiseType";case"texture":return t==="projection"||t==="axis"||t==="side";case"displace":return t==="noiseType";case"depth":return t==="num"||t==="smooth"||t==="isWorldSpace"||t==="gradientType"||t==="isVector";default:return!1}}function ac(i,t,e){let r=e.uniforms[`f${e.id}_texture`];if(!r)return!1;let o=!1,n=i;if("image"in n){let s=n.image,a=t.image(s),c=r;c instanceof Co||c.image.dispose(),c.image=a}if("wrapping"in n){let s=r;s.wrap=n.wrapping}if("repeat"in n||"offset"in n){let s="mat",a=e.uniforms[`f${e.id}_${s}`];"repeat"in n&&(a.repeat=n.repeat),"offset"in n&&(a.offset=n.offset),a.updateMatrix()}return o}function Xm(i,t,e,r){let o=!1;for(let[n,s]of Object.entries(i)){if(!n||s===void 0||lc(n,e,r))continue;e.visible=r.visible;let a=e.uniforms[`f${e.id}_${n}`];if(!!a&&!(a instanceof so))switch(o=o||jb(e,n),a.constructor){case Ne:if(typeof s=="string"){let c=t.getColor(s);c&&(a.value=c);break}else{let c=s;a.value instanceof io?a.value=new ct(c.r,c.g,c.b,c.a):a.setRGBA(c);break}case qt:if(typeof s=="string"){let c=t.getColor(s);c&&(a.value=c);break}else{let c=s;a.value instanceof io?a.value=new ct(c.r,c.g,c.b,c.a):a.value.setRGBA(c.r,c.g,c.b,c.a);break}case rt:{let c=s;a.value.setX(c[0]),a.value.setY(c[1]);break}case pt:{let c=s;a.value.setX(c[0]),a.value.setY(c[1]),a.value.setZ(c[2]);break}case Ot:{ac(s,t,e);break}case Jt:{a.value=s.map(c=>new $m.Vector4(...c));break}default:{a.value=s;break}}}return o}var cc=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(cc.Nodes.matcap);e.require("normal"),e.requires.normal=!0;let n=[];return n.push(this.texture.generate(e,"t")),n.push("normal"),n.push(this.alpha.build(e,"f")),n.push(this.mode.build(e,"i")),n.push(this.calpha),e.format(o+"("+n.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)}},Bi=cc;Bi.Nodes=function(){return{matcap:new Y(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
1080
+ }`)}}();var Qe=require("three");function km(i,t){switch(i.type){case"fresnel":return Db(i,t);case"gradient":return Bb(i);case"depth":return Eb(i);case"normal":return Gb(i);case"noise":return Rb(i,t);case"rainbow":return Fb(i);case"toon":return Vb(i,t);case"outline":return zb(i,t);case"transmission":return Ub(i,t);case"color":return Mb(i,t)}}function Pb(i){return{type:i.type}}function wr(i){let{alpha:t,mode:e}=i;return{...Pb(i),alpha:t,mode:e}}function Mb(i,t){return{...wr(i),color:Ye(i.color,t)}}function Db(i,t){let{bias:e,scale:r,intensity:o,factor:n,color:s}=i;return{...wr(i),color:Ye(s,t),bias:e,scale:r,intensity:o,factor:n}}function Bb(i){let{gradientType:t,smooth:e,colors:r,steps:o,angle:n,offset:s,morph:a}=i;return{...wr(i),gradientType:t,smooth:e,colors:r.map(c=>new Qe.Vector4(c[0],c[1],c[2],c[3])),num:r.length,steps:o,offset:new Qe.Vector2(...s),morph:new Qe.Vector2(...a),angle:n}}function Eb(i){let{gradientType:t,near:e,far:r,isVector:o,isWorldSpace:n,origin:s,direction:a,colors:c,steps:p,smooth:l,num:u}=i;return{...wr(i),gradientType:t,near:e,far:r,isVector:o,isWorldSpace:n,origin:new Qe.Vector3(...s),direction:a?new Qe.Vector3(...a):new Qe.Vector3(1,0,0),num:u,colors:c.map(d=>new Qe.Vector4(d[0],d[1],d[2],d[3])),steps:p,smooth:l}}function Gb(i){let{cnormal:t}=i;return{...wr(i),cnormal:new Qe.Vector3(t[0],t[1],t[2])}}function Rb(i,t){return{...wr(i),scale:i.scale,move:i.move,fA:new Qe.Vector2(...i.fA),fB:new Qe.Vector2(...i.fB),size:new Qe.Vector3(...i.size),distortion:new Qe.Vector2(...i.distortion),colorA:Ye(i.colorA,t),colorB:Ye(i.colorB,t),colorC:Ye(i.colorC,t),colorD:Ye(i.colorD,t),noiseType:i.noiseType}}function Fb(i){return{...wr(i),filmThickness:i.filmThickness,movement:i.movement,wavelengths:new Qe.Vector3(...i.wavelengths),noiseStrength:i.noiseStrength,noiseScale:i.noiseScale,offset:new Qe.Vector3(...i.offset)}}function Vb(i,t){return{...wr(i),positioning:i.positioning,colors:i.colors.map(e=>new Qe.Vector4(e[0],e[1],e[2],e[3])),num:i.colors.length,steps:i.steps,source:new Qe.Vector3(...i.source),isWorldSpace:i.isWorldSpace,noiseStrength:i.noiseStrength,noiseScale:i.noiseScale,shadowColor:Ye(i.shadowColor,t),offset:new Qe.Vector3(...i.offset)}}function zb(i,t){return{...wr(i),outlineColor:Ye(i.outlineColor,t),contourColor:Ye(i.contourColor,t),outlineWidth:i.outlineWidth,contourWidth:i.contourWidth,outlineThreshold:i.outlineThreshold,contourThreshold:i.contourThreshold,outlineSmoothing:i.outlineSmoothing,contourFrequency:i.contourFrequency,contourDirection:i.contourDirection,positionalLines:i.positionalLines,compensation:i.compensation,resolution:t.resolutionNode,normalMap:t.normalMap,depthMap:t.normalRenderTarget.depthTexture,pixelRatio:t.pixelRatioNode}}function Ub(i,t){return{...wr(i),thickness:i.thickness,ior:i.ior,roughness:i.roughness,transmissionSamplerMap:t.transmissionSamplerMap,transmissionDepthMap:t.transmissionDepthMap}}var io=class extends ct{};var qm=require("three");var Wm=require("three");var ic=new Map,Di={url:"head",time:0,data:null,next:null,prev:null},Dn={url:"tail",time:1/0,data:null,next:null,prev:null};Di.next=Dn;Dn.prev=Di;var jm=0;function Hm(i){if(typeof i=="string")return i;let t=Date.now(),e=ic.get(i);return e===void 0?(e={url:URL.createObjectURL(new Blob([i])),data:i,time:t,next:null,prev:null},ic.set(i,e)):(e.time=t,e.prev.next=e.next,e.next.prev=e.prev),e.prev=Dn.prev,e.next=Dn,Dn.prev.next=e,Dn.prev=e,t-jm>1e3*10&&(jm=t+1e3,setTimeout(()=>{let r=Date.now(),o=Di.next;for(;o.time<r-1e3*10;)URL.revokeObjectURL(o.url),ic.delete(o.data),o=o.next,o.prev=Di,Di.next=o},900)),e.url}var Bn=class{constructor(t,e){this.data=t;this.onImageLoad=e;this.loaded=!1;this.updateSrc(t.data)}updateSrc(t){this.dispose(),this.loaded=!1,this.img=new Image,this.img.src=Hm(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 Wm.Texture(this.img,void 0,t,t);return this.loaded&&(r.needsUpdate=!0),this[t]=r,r}}dispose(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}};1e3,1001,1002;var Co=class extends Bn{};var so=class extends Ie{};function kb(i,t){switch(i.type){case"noise":return t==="noiseType";case"texture":return t==="projection"||t==="axis"||t==="side";case"displace":return t==="noiseType";case"depth":return t==="num"||t==="smooth"||t==="isWorldSpace"||t==="gradientType"||t==="isVector";default:return!1}}function sc(i,t,e){let r=e.uniforms[`f${e.id}_texture`];if(!r)return!1;let o=!1,n=i;if("image"in n){let s=n.image,a=t.image(s),c=r;c instanceof Co||c.image.dispose(),c.image=a}if("wrapping"in n){let s=r;s.wrap=n.wrapping}if("repeat"in n||"offset"in n){let s="mat",a=e.uniforms[`f${e.id}_${s}`];"repeat"in n&&(a.repeat=n.repeat),"offset"in n&&(a.offset=n.offset),a.updateMatrix()}return o}function $m(i,t,e,r){let o=!1;for(let[n,s]of Object.entries(i)){if(!n||s===void 0||ac(n,e,r))continue;e.visible=r.visible;let a=e.uniforms[`f${e.id}_${n}`];if(!!a&&!(a instanceof so))switch(o=o||kb(e,n),a.constructor){case Ne:if(typeof s=="string"){let c=t.getColor(s);c&&(a.value=c);break}else{let c=s;a.value instanceof io?a.value=new ct(c.r,c.g,c.b,c.a):a.setRGBA(c);break}case qt:if(typeof s=="string"){let c=t.getColor(s);c&&(a.value=c);break}else{let c=s;a.value instanceof io?a.value=new ct(c.r,c.g,c.b,c.a):a.value.setRGBA(c.r,c.g,c.b,c.a);break}case rt:{let c=s;a.value.setX(c[0]),a.value.setY(c[1]);break}case pt:{let c=s;a.value.setX(c[0]),a.value.setY(c[1]),a.value.setZ(c[2]);break}case Ot:{sc(s,t,e);break}case Jt:{a.value=s.map(c=>new qm.Vector4(...c));break}default:{a.value=s;break}}}return o}var lc=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(lc.Nodes.matcap);e.require("normal"),e.requires.normal=!0;let n=[];return n.push(this.texture.generate(e,"t")),n.push("normal"),n.push(this.alpha.build(e,"f")),n.push(this.mode.build(e,"i")),n.push(this.calpha),e.format(o+"("+n.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)}},Bi=lc;Bi.Nodes=function(){return{matcap:new Y(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
1081
1081
  vec3 viewDir = normalize( vViewPosition );
1082
1082
  vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
1083
1083
  vec3 y = cross( viewDir, x );
@@ -1089,7 +1089,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1089
1089
 
1090
1090
  return matcapColor.rgb;
1091
1091
  }
1092
- `)}}();var Ei=class extends so{constructor(e,r){super("t");this.image=e;this.wrap=r}get value(){return this.image.getTexture(this.wrap)}};var Ym=require("three");var Na=class extends so{constructor(e){super("v3");this.image=e;this._value=new Ym.Vector3}get value(){return this._value.x=this.image.img.width,this._value.y=this.image.img.height,this._value}};var uc=class extends le{constructor(e,r,o,n,s,a,c,p,l,u){super("v3");this.nodeType="Toon";this.positioning=e,this.colors=r,this.steps=o,this.source=n,this.isWorldSpace=s,this.noiseStrength=a,this.noiseScale=c,this.shadowColor=p,this.offset=l,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("worldNormal"),e.require("worldPosition"),e.isShader("fragment")){e.define("COLORS_MAX",10),e.addFragmentVariable(this.calpha,"float");let o=e.include(uc.Nodes.toon),n=[];return n.push(this.positioning.build(e,"i")),n.push(this.colors.build(e,"v4[]")),n.push(this.steps.build(e,"f[]")),n.push(this.source.build(e,"v3")),n.push(this.isWorldSpace.build(e,"b")),n.push(this.noiseStrength.build(e,"f")),n.push(this.noiseScale.build(e,"f")),n.push(this.shadowColor.build(e,"v4")),n.push(this.offset.build(e,"v3")),n.push(this.alpha.build(e,"f")),n.push(this.calpha),e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("ToonNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Gi=uc;Gi.Nodes=function(){let e=new Y(`float rand(float n) {
1092
+ `)}}();var Ei=class extends so{constructor(e,r){super("t");this.image=e;this.wrap=r}get value(){return this.image.getTexture(this.wrap)}};var Xm=require("three");var Na=class extends so{constructor(e){super("v3");this.image=e;this._value=new Xm.Vector3}get value(){return this._value.x=this.image.img.width,this._value.y=this.image.img.height,this._value}};var cc=class extends le{constructor(e,r,o,n,s,a,c,p,l,u){super("v3");this.nodeType="Toon";this.positioning=e,this.colors=r,this.steps=o,this.source=n,this.isWorldSpace=s,this.noiseStrength=a,this.noiseScale=c,this.shadowColor=p,this.offset=l,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("worldNormal"),e.require("worldPosition"),e.isShader("fragment")){e.define("COLORS_MAX",10),e.addFragmentVariable(this.calpha,"float");let o=e.include(cc.Nodes.toon),n=[];return n.push(this.positioning.build(e,"i")),n.push(this.colors.build(e,"v4[]")),n.push(this.steps.build(e,"f[]")),n.push(this.source.build(e,"v3")),n.push(this.isWorldSpace.build(e,"b")),n.push(this.noiseStrength.build(e,"f")),n.push(this.noiseScale.build(e,"f")),n.push(this.shadowColor.build(e,"v4")),n.push(this.offset.build(e,"v3")),n.push(this.alpha.build(e,"f")),n.push(this.calpha),e.format(o+"("+n.join(",")+")",this.getType(e),r)}else return console.warn("ToonNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Gi=cc;Gi.Nodes=function(){let e=new Y(`float rand(float n) {
1093
1093
  return fract(sin(n) * 43758.5453123);
1094
1094
  }`),r=new Y(`float hash1(float p) {
1095
1095
  p = fract(p * 0.011);
@@ -1325,5 +1325,5 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1325
1325
 
1326
1326
  return color.xyz;
1327
1327
 
1328
- }`,[gt.simplex,e,o,s])}}();var Qm=require("three");function Km(i,t,e){i.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var Oa=class extends Pn{constructor(e,r){super(new Qm.Matrix3);this.repeat=e;this.offset=r;Km(this.value,e,r)}updateMatrix(){Km(this.value,this.repeat,this.offset)}};var Tr=class{constructor(t,e,r,o){this.type=t;this.id=e;this.uuid=r;this.uniforms={};for(let n in o)this.uniforms[`f${this.id}_${n}`]=o[n]}static create(t,e,r,o){if(r.type==="light")return Ar.createLigherLayer(t,e,r,o);if(r.type==="texture"){let n=o.image(r.texture.image),s=new Ei(n,r.texture.wrapping),a=new Na(n),c=new Oa(r.texture.repeat,r.texture.offset),p=new X(r.crop?1:0),l=new xe(r.projection??0),u=new xe(["x","y","z"].indexOf(r.axis)??0),d=new xe(r.side??0),m=new rt(r.size?new Se.Vector2(r.size[0],r.size[1]):new Se.Vector2(100,100)),f=new X(r.alpha??1),h=new xe(r.mode??0),g=new Ii(s,a,p,l,u,d,m,c,f,h),x=new Te(g.calpha,"f");return new ot("texture",t,e,{texture:s,textureSize:a,crop:p,projection:l,axis:u,side:d,size:m,mat:c,alpha:f,mode:h},g,h,x)}else if(r.type==="matcap"){let n=o.image(r.texture.image),s=new Ei(n,r.texture.wrapping),a=new X(r.alpha??1),c=new xe(r.mode??0),p=new Bi(s,a,c),l=new Te(p.calpha,"f");return new ot("matcap",t,e,{texture:s,alpha:a,mode:c},p,c,l)}else if(r.type==="displace")if(r.displacementType==="noise"){let n=new pt(new Se.Vector3(...r.offset)),s=new X(r.scale??10),a=new X(r.intensity??8),c=new X(r.movement??1),p=new xe(r.noiseType??0),l=new Oi(a,c,n,s,p);return new Ri(r.type,t,e,{offset:n,scale:s,intensity:a,movement:c,noiseType:p},l)}else throw new Error;else{let n=Wb(t,e,r,o);for(let s in r)lc(s,n,r);return n}}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:Xm(o.props,r,this,e)}else if(o.path[0]==="texture")return"texture"in e?ac(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}},ot=class extends Tr{constructor(e,r,o,n,s,a,c){super(e,r,o,n);this.color=s;this.mode=a;this.alpha=c}},Ri=class extends Tr{constructor(e,r,o,n,s){super(e,r,o,n);this.position=s}},Ar=class extends Tr{constructor(e,r,o,n,s){super("light",e,r,s);this.data=o;this.node=n}static createLigherLayer(e,r,o,n){let s,a=new X(o.alpha),c=new xe(o.mode),p;if(o.category==="lambert"){s=new mi;let l=new Ne(n.color(o.emissive)??0);p={emissive:l},s.emissive=l}else if(o.category==="phong"){s=new Sa;let l=new X(o.shininess??30),u=new Ne(n.color(o.specular)??1118481);p={shininess:l,specular:u},s.shininess=l,s.specular=u}else if(o.category==="toon"){s=new yi;let l=new X(o.shininess??30),u=new Ne(n.color(o.specular)??1118481);p={shininess:l,specular:u},s.shininess=l,s.specular=u}else if(o.category==="physical"){s=new hi;let l=new X(o.roughness??.3),u=new X(o.metalness??0),d=new X(o.reflectivity??.5);p={roughness:l,metalness:u,reflectivity:d},s.roughness=l,s.metalness=u,s.reflectivity=d}else s=new oo,p={};return s.alpha=new X(1),s.shadingAlpha=a,s.shadingBlend=c,p.alpha=s.shadingAlpha,p.mode=s.shadingBlend,new Ar(e,r,o,s,p)}};function Zm(i){let t=i instanceof Tr?i.type:i;return t==="texture"||t==="displace_map"||t==="matcap"}function Hb(i,t,e,r){switch(i){case"color":{let o=new Ne(r.color??5855577),n=new X(r.alpha??1),s=new Te("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=n;let a=new xe(r.mode??0);return o.alpha=n,new ot(i,t,e,{color:o,alpha:n,mode:a},o,a,s)}case"fresnel":{let o=new Ne(r.color??16777215),n=new X(r.bias??.1),s=new X(r.scale??1),a=new X(r.intensity??2),c=new X(r.factor??1),p=new X(r.alpha??1),l=new xe(r.mode??0),u=new Si(o,n,s,a,c,p,l),d=new Te(u.calpha,"f");return new ot(i,t,e,{color:o,bias:n,scale:s,intensity:a,factor:c,alpha:p,mode:l},u,l,d)}case"rainbow":{let o=new X(r.filmThickness??30),n=new X(r.movement??0),s=new pt(r.wavelengths??new Se.Vector3(0,0,0)),a=new X(r.noiseStrength??0),c=new X(r.noiseScale??1),p=new pt(r.offset??new Se.Vector3(0,0,0)),l=new X(r.alpha??1),u=new wi(o,n,s,a,c,p,l),d=new Te(u.calpha,"f"),m=new xe(r.mode??0);return new ot(i,t,e,{filmThickness:o,movement:n,wavelengths:s,noiseStrength:a,noiseScale:c,offset:p,alpha:l,mode:m},u,m,d)}case"transmission":{let o=new X(r.thickness??10),n=new X(r.ior??1.5),s=new X(r.roughness??.5),a=new rt(r.transmissionSamplerSize??new Se.Vector2(2048,2048)),c=r.transmissionSamplerMap??new Se.Texture,p=r.transmissionDepthMap??new Se.Texture,l=new Ot(c),u=new Ot(p),d=window.innerWidth,m=window.innerHeight,f=d>=m?new rt(m/d,1):new rt(1,d/m),h=new X(r.alpha??1),g=new Ai(o,n,s,a,l,u,f,h),x=new Te(g.calpha,"f"),v=new xe(r.mode??0);return new ot(i,t,e,{thickness:o,ior:n,roughness:s,transmissionSamplerSize:a,transmissionSamplerMap:l,transmissionDepthMap:u,aspectRatio:f,alpha:h,mode:v},g,v,x)}case"toon":{let o=new xe(r.positioning??0),n;r.colors?n=new Jt(r.colors.length,r.colors):(n=new Jt(10,new Se.Vector4(0,0,0,1)),n.value[1]=new Se.Vector4(1,1,1,1));let s;r.steps?s=new et(r.steps.length,r.steps):(s=new et(10,1),s.value[0]=0);let a=new pt(r.source??new Se.Vector3(0,0,0)),c=new no(r.isWorldSpace??!0),p=new X(r.noiseStrength??0),l=new X(r.noiseScale??1),u=new qt(r.shadowColor),d=new pt(r.offset??new Se.Vector3(0,0,0)),m=new X(r.alpha??1),f=new Gi(o,n,s,a,c,p,l,u,d,m),h=new Te(f.calpha,"f"),g=new xe(r.mode??0);return new ot(i,t,e,{positioning:o,colors:n,steps:s,source:a,isWorldSpace:c,noiseStrength:p,noiseScale:l,shadowColor:u,offset:d,alpha:m,mode:g},f,g,h)}case"outline":{let o=new Ne(r.outlineColor??16777215),n=new Ne(r.contourColor??16777215),s=new X(r.outlineWidth??.1),a=new X(r.contourWidth??.1),c=new X(r.outlineThreshold??.1),p=new X(r.contourThreshold??.1),l=new X(r.outlineSmoothing??.1),u=new X(r.contourFrequency??.1),d=new pt(r.contourDirections??new Se.Vector3(0,1,0)),m=new no(r.positionalLines??!1),f=new no(r.compensation??!0),h=r.normalMap??new Se.Texture,g=new Ot(h),x=r.depthMap??new Se.Texture,v=new Ot(x),A=r.pixelRatio??new X(window.devicePixelRatio),_=r.resolution??new rt(new Se.Vector2(1,1)),b=new X(r.alpha??1),D=new Ti(o,n,s,a,c,p,l,u,d,m,f,_,g,v,A,b),S=new Te(D.calpha,"f"),y=new xe(r.mode??0);return new ot(i,t,e,{outlineColor:o,contourColor:n,outlineWidth:s,contourWidth:a,outlineThreshold:c,contourThreshold:p,outlineSmoothing:l,contourFrequency:u,contourDirection:d,positionalLines:m,compensation:f,resolution:_,normalMap:g,depthMap:v,pixelRatio:A,alpha:b,mode:y},D,y,S)}case"depth":{let o=new xe(r.gradientType??0),n=new no(r.smooth??!1),s=new X(r.near??50),a=new X(r.far??200),c=new X(r.isVector??1),p=new X(r.isWorldSpace??0),l=new pt(r.origin??new Se.Vector3),u=new pt(r.direction??new Se.Vector3),d=new xe(r.num??0),m;r.colors?m=new Jt(d.value+1,r.colors):(m=new Jt(d.value+1,new Se.Vector4(0,0,0,1)),m.value[1]=new Se.Vector4(1,1,1,1));let f;r.steps?f=new et(d.value+1,r.steps):(f=new et(d.value+1,1),f.value[0]=0);let h=new X(r.alpha??1),g=new xe(r.mode??0),x=new Ci(o,n,s,a,c,p,l,u,m,f,d,h),v=new Te(x.calpha,"f");return new ot(i,t,e,{gradientType:o,smooth:n,near:s,far:a,isVector:c,isWorldSpace:p,origin:l,direction:u,colors:m,steps:f,num:d,alpha:h,mode:g},x,g,v)}case"noise":{let o=new X(r.scale??1),n=new pt(r.size??new Se.Vector3(100,100,100)),s=new X(r.move??1),a=new rt(r.fA??new Se.Vector2(1.7,9.2)),c=new rt(r.fB??new Se.Vector2(8.3,2.8)),p=new rt(r.distortion??new Se.Vector2(1,1)),l=new qt(r.colorA),u=new qt(r.colorB),d=new qt(r.colorC),m=new qt(r.colorD),f=new X(r.alpha??1),h=new xe(r.mode??0),g=new xe(r.noiseType??0),x=new _i(o,n,s,a,c,p,l,u,d,m,f,g),v=new Te(x.calpha,"f");return new ot(i,t,e,{scale:o,size:n,move:s,fA:a,fB:c,distortion:p,colorA:l,colorB:u,colorC:d,colorD:m,alpha:f,mode:h,noiseType:g},x,h,v)}case"normal":{let o=new pt(r.cnormal??new Se.Vector3(1,1,1)),n=new X(r.alpha??1),s=new xe(r.mode??0),a=new Mi(o,n),c=new Te("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return c.keywords.alpha=n,new ot(i,t,e,{cnormal:o,alpha:n,mode:s},a,s,c)}case"gradient":{let o=new xe(r.gradientType??0),n=new no(r.smooth??!1),s;r.colors?s=new Jt(r.colors.length,r.colors):(s=new Jt(10,new Se.Vector4(0,0,0,1)),s.value[1]=new Se.Vector4(1,1,1,1));let a;r.steps?a=new et(r.steps.length,r.steps):(a=new et(10,1),a.value[0]=0);let c=new rt(r.offset??new Se.Vector2(0,0)),p=new rt(r.morph??new Se.Vector2(0,0)),l=new X(r.angle??0),u=new X(r.alpha??1),d=new xe(r.mode??0),m=new Li(o,n,s,a,c,p,l,u),f=new Te(m.calpha,"f");return new ot(i,t,e,{gradientType:o,smooth:n,colors:s,steps:a,offset:c,morph:p,angle:l,alpha:u,mode:d},m,d,f)}default:{let o=new Ne(1,0,0,1),n=new X(1),s=new Te("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=n;let a=new xe(0);return o.alpha=n,new ot(i,t,e,{color:o,alpha:n,mode:a},o,a,s)}}}function Wb(i,t,e,r){let o=jm(e,r);return Hb(e.type,i,t,o)}function lc(i,t,e){if(e.type==="displace"&&(i==="intensity"||i==="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"&&(i==="alpha"||i==="visible")){let r=t.uniforms[`f${t.id}_alpha`];if(!r)return;if(r.value=e.alpha*(e.visible?1:0),e.type==="outline"&&i=="visible"){let o=t.uniforms[`f${t.id}_compensation`];o&&(o.value=e.compensation&&e.visible)}return r}}var Jm=i=>i.tagName==="VIDEO",En=class{static resize(t,e,r){let o=t/e,n;if(!r.image)return;let s=r.image;Jm(s)?n=s.videoWidth/s.videoHeight:n=s.width/s.height,o>n&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*n/o):r.repeat.set(1,1*n/o)),o<n&&(r.imageType=="WEBCAM"?r.repeat.set(1*o/n*-1,1):r.repeat.set(1*o/n,1)),o==n&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1))}static resizeTextureLayer(t,e,r){let o=t/e,n=r.image!==void 0?r.image.width/r.image.height:1,s;o>n?s={x:1,y:n/o}:o<n?s={x:o/n,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 n=0;n<o.length;n++){let s=o[n];Zm(s)&&En.resizeTextureLayer(t,e,s.uniforms[`f${s.id}_texture`].value)}}static resizeComplex(t,e,r,o){let n=t/e,s,a=r.image;Jm(a)?s=a.videoWidth/a.videoHeight:s=a.width/a.height,o.geometry.type.includes("Shape")?(n>s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e*s/n):r.repeat.set(1/t,1/e*s/n)),n<s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*n/s*-1,1/e):r.repeat.set(1/t*n/s,1/e)),n==s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e):r.repeat.set(1/t,1/e))):(n>s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*s/n):r.repeat.set(1,1*s/n)),n<s&&(r.imageType=="WEBCAM"?r.repeat.set(1*n/s*-1,1):r.repeat.set(1*n/s,1)),n==s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1)))}};var La=class extends it{constructor(e,r){super(e,r);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e){super.updateGeometry(e),this.material.layers&&En.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var Gn=class extends it{constructor(e,r){super(e,r);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var Ia=class extends Gn{constructor(e,r){super(e,r);this.objectType="NonParametric"}};var $t=require("three"),ef=require("three/examples/jsm/loaders/FontLoader.js"),We=class extends $t.Mesh{constructor({char:e,originalChar:r,fontFamily:o,letterSpacing:n,fontSize:s,LOD:a=16},c=new $t.MeshBasicMaterial({color:0,opacity:1,visible:!0,transparent:!0,side:$t.DoubleSide})){let p=We.loadChar(e,o,a);super(p.geometry,c);this.char=e,this.originalChar=r??e,this.fontFamily=o,this.letterSpacing=n,this.fontSize=s,this.LOD=a,this.resolution=p.resolution,this.glyphsHa=p.glyphsHa,this.localPosition=new $t.Vector2,this.charSize=0,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}static get FONTS_PATH(){return We._fontPath}static set FONTS_PATH(e){We._fontPath=e}updatePosition(e,r){this.localPosition.copy(e);let o=new $t.Vector3(this.localPosition.x,-this.localPosition.y,0);this.position.copy(o).add(r)}updateFontSize(e){let r=e/this.resolution;this.fontSize=e,this.scale.set(this.fontSize,this.fontSize,1),this.charSize=this.glyphsHa*r*this.letterSpacing}updateFontFamily(e){if(this.fontFamily===e)return;this.fontFamily=e;let r=We.loadChar(this.char,e,this.LOD);this.geometry=r.geometry,this.resolution=r.resolution,this.glyphsHa=r.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}updateChar(e){if(this.char===e)return;this.char=e;let r=We.loadChar(e,this.fontFamily,this.LOD);this.geometry=r.geometry,this.resolution=r.resolution,this.glyphsHa=r.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}updateLetterSpacing(e){this.letterSpacing!==e&&(this.letterSpacing=e,this.updateFontSize(this.fontSize))}updateLOD(e){if(this.LOD===e)return;this.LOD=e;let r=We.loadChar(this.char,this.fontFamily,this.LOD);this.geometry=r.geometry,this.resolution=r.resolution,this.glyphsHa=r.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}clone(){let e={char:this.char,originalChar:this.originalChar,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,LOD:this.LOD};return new We(e).copy(this)}static loadFont(e){return new Promise(function(r,o){We.fontCache[e]?r(We.fontCache[e]):new ef.FontLoader().load(We.FONTS_PATH+e+".json",s=>{We.fontCache[e]=s,r(s)},void 0,o)})}static loadChar(e,r,o){if(We.charCache[e]){if(We.charCache[e][o]&&We.charCache[e][o].fontFamily===r)return We.charCache[e][o]}else We.charCache[e]={};let n=We.fontCache[r],s=n.generateShapes(e,1);return We.charCache[e][o]={geometry:new $t.ShapeBufferGeometry(s,o),fontFamily:r,resolution:n.data.resolution,glyphsHa:n.data.glyphs[e].ha},We.charCache[e][o]}},er=We;er.charCache={},er.fontCache={},er._fontPath="/_assets/_fonts/";var Cr=require("three");var pc=require("three"),Pa=new pc.Vector2,No=class{constructor(t,e,r){this.message=[];this.endLine=!0;this.yLinePos=t,this.lineHeight=e,this.maxCharSize=r,this.nextChar3DPos=new pc.Vector2(0,this.yLinePos+this.maxCharSize*this.lineHeight),this.align=1}addChar3D(t,e,r=this.message.length){this.message.splice(r,0,t),t.fontSize>this.maxCharSize?(this.maxCharSize=t.fontSize,this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight,this.fullUpdate(e)):(t.updatePosition(this.nextChar3DPos,e),this.nextChar3DPos.x+=t.charSize)}deleteChar3D(t=this.message.length-1){let e=this.message[t];if(e)return this.message.splice(t,1),this.nextChar3DPos.x-=e.charSize,e}isEndLine(t){this.endLine=t}fullUpdate(t,e=0){this.nextChar3DPos.x=0;for(let r=e,o=this.message.length;r<o;r+=1)this.message[r].updatePosition(this.nextChar3DPos,t),this.nextChar3DPos.x+=this.message[r].charSize}checkOverFlow(t){let e,r=this.message.length-1;if(r<=0)return!1;for(;r>=0;){if(this.message[r].char!==" "){e=this.message[r];break}r-=1}return!!(r>=0&&e&&e.localPosition.x+e.charSize>t)}containSpaceOverFlow(t=this.message.length-1){for(let e=t;e>=0;e-=1)if(this.message[e].char===" ")return!0;return!1}containSpace(t=this.message.length-1){if(this.endLine)return!0;for(let e=t;e>=0;e-=1)if(this.message[e].char===" ")return!0;return!1}popWord(t=this.message.length-1){let e=[],r=!0,o;for(o=t;o>=0;o-=1)if(this.message[o].char===" "){r=!1,e.length===0&&(o-=1,e.splice(0,0,this.message[o]));break}else e.splice(0,0,this.message[o]);return r?e=[]:this.message.splice(o+1,e.length),e}getWord(t=0,e=1){let r=[],o=t;for(o=t;;o+=e){if(!this.message[o]||this.message[o].char===" "){r.length===0&&this.message[o]&&(r.push(this.message[o]),this.message.splice(o,1));break}e>0?(r.push(this.message[o]),this.message.splice(o,1),o-=e):(r.splice(0,0,this.message[o]),this.message.splice(o,1))}return r}getWordAtIndex(t){let e=[];for(let r=t;r<this.message.length&&this.message[r].char!==" ";r++)e.push(this.message[r]);for(let r=t-1;r>=0&&this.message[r].char!==" ";r--)e.splice(0,0,this.message[r]);return e}wordSize(t=0,e=-1){let r=0,o=t;for(;o>=0&&o<this.message.length;){if(this.message[o].char===" "){r===0&&(r=this.message[o].charSize);break}r+=this.message[o].charSize,o+=e}return(o<0||o>=this.message.length)&&!this.endLine?this.message[t]?this.message[t].charSize:999999999:r===0?999999999:r}spaceLeft(t){return t-this.nextChar3DPos.x}popChar(t=this.message.length-1){return this.nextChar3DPos.x-=this.message[t].charSize,this.message.splice(t,1)}isEmpty(){return!this.message.length}updateNextCharPosY(){this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight}updateYLinePos(t){this.yLinePos=t,this.updateNextCharPosY()}updatelineHeight(t){this.lineHeight=t,this.updateNextCharPosY()}updateFontSize(t,e=0,r=this.message.length-1){for(let o=e;o<=r;o+=1)this.message[o].updateFontSize(t);this.maxCharSize=t,this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight}countSpaces(){let t=0;for(let e=0;e<this.message.length;e++)this.message[e].char===" "&&(t+=1);return t}alignText(t,e,r,o,n){switch(r){case 1:this.leftAlign(t,n);break;case 3:this.centerAlign(this.spaceLeft(e),t,n);break;case 2:this.rightAlign(this.spaceLeft(e),t,n);break;case 4:this.justifyAlign(this.spaceLeft(e),t,n);break}}offsetCharacters(t,e,r){Pa.set(e,r);let o=this.message.length;for(let n=0;n<o;n++)this.message[n].updatePosition(this.message[n].localPosition.add(Pa),t)}leftAlign(t,e){this.align=1,this.offsetCharacters(t,0,e)}centerAlign(t,e,r){this.align=3,this.offsetCharacters(e,t/2,r)}rightAlign(t,e,r){this.align=2,this.offsetCharacters(e,t,r)}justifyAlign(t,e,r){if(this.align=4,this.endLine){this.offsetCharacters(e,0,r);return}let o=this.countSpaces();if(o===0){this.offsetCharacters(e,0,r);return}let n=t/o,s=0;for(let a=0;a<this.message.length;a++)this.message[a].char===" "&&(s+=n),Pa.set(s,r),this.message[a].updatePosition(this.message[a].localPosition.add(Pa),e)}clone(){let t=new No(this.yLinePos,this.lineHeight,this.maxCharSize);t.nextChar3DPos=this.nextChar3DPos.clone(),t.align=this.align,t.endLine=this.endLine;for(let e=0;e<this.message.length;e++)t.message.push(this.message[e].clone());return t}};var dc=class extends it{constructor(e){super(e,new Cr.MeshBasicMaterial({transparent:!0,opacity:1,visible:!1,side:Cr.DoubleSide}));this.objectType="TextFrame";this.charContainer=new Cr.Object3D,this.add(this.charContainer),this.material.visible=!1,this._geometryUserData=e.userData,this.userData.textFrame={hexColor:null,opacity:1,visible:!0,text:"",fontSize:16,lineHeight:1.5,letterSpacing:1,fontFamily:"roboto_regular",textTransform:1,horizontalAlignment:1,verticalAlignment:1,LOD:16,maxLineSize:this._geometryUserData.parameters.width,textOrigin:new Cr.Vector3(this._geometryUserData.parameters.width*-.5,this._geometryUserData.parameters.height*.5,0),textLines:[]},this.createTextLine()}static createFromState(e,r,o){let n=sa.create({parameters:{width:r.width,height:r.height}}),s=new dc(n).fromState(r,o);return s.uuid=e,s}async updateText(e){this.clearText();let r=this.userData.textFrame,o=r.fontFamily;await er.loadFont(o),r.text=e;let n=r.textOrigin,s=new Cr.MeshBasicMaterial({visible:r.visible,transparent:!0,side:Cr.DoubleSide}),a=e.split(`
1329
- `),c=0;this.userData.textFrame.textLines=a.map((p,l)=>{let u=new No(c,r.lineHeight,r.fontSize);return u.message=p.split("").map(d=>{let m={char:d,fontFamily:o,letterSpacing:r.letterSpacing,fontSize:r.fontSize,LOD:16},f=s.clone();f.color=r.hexColor,f.opacity=r.opacity;let h=new er(m,f);return u.addChar3D(h,n),this.charContainer.add(h),h}),c+=u.maxCharSize*u.lineHeight,u}),this.textFullUpdate(),this.checkOverFlow()}clearText(){let e=this.userData.textFrame.textLines;for(;this.charContainer.children.length;){let r=this.charContainer.children[0];this.charContainer.remove(r)}for(;e.length;)e.pop()}raycast(e,r){let o=[];if(super.raycast(e,o),o.length>0){r.push(o[0]);return}let n=[];for(let s=0,a=this.charContainer.children.length;s<a;++s)if(this.charContainer.children[s]instanceof er&&(e.intersectObject(this.charContainer.children[s],!1,n),n.length>0)){n[0].object=this,r.push(n[0]);return}}updateGeometry(e){let r=this.userData,o=this.geometry.userData,n=o.parameters.width,s=o.parameters.height,a=e.parameters?.width??n,c=e.parameters?.height??s,p=r.textFrame;super.updateGeometry(e),p.maxLineSize=a,p.textOrigin.set(-.5*a,.5*c,0),c!==s?(this.checkOverFlow(),this.checkCapacity()):a!==n&&(n<a?this.checkCapacity():n>a&&this.checkOverFlow())}checkOverFlow(e=0){let r=this.userData,o=r.textFrame.textOrigin,n=r.textFrame.textLines;for(let s=e;s<n.length;s++){n[s].updateYLinePos(this.getNewLinePosition(s)),n[s].fullUpdate(o);let a=[];for(;n[s].checkOverFlow(r.textFrame.maxLineSize);)n[s].containSpaceOverFlow()?a.unshift(n[s].getWord(n[s].message.length-1,-1)):a.unshift(n[s].popChar());if(a.length>0){n[s+1]===void 0?(n[s].isEndLine(!1),this.createTextLine()):n[s].endLine&&(this.createTextLine(s+1),n[s].isEndLine(!1),n[s+1].isEndLine(!0));let c=0;for(let p=0;p<a.length;p+=1)for(let l=0;l<a[p].length;l+=1)n[s+1].addChar3D(a[p][l],o,c),c+=1;n[s+1].fullUpdate(o)}n[s].fullUpdate(o)}this.textFullUpdate(e)}checkCapacity(e=0){let r=this.userData,o=r.textFrame.textOrigin,n=r.textFrame.maxLineSize,s=r.textFrame.textLines;for(let a=e;a<s.length;a+=1)if(s[a].updateYLinePos(this.getNewLinePosition(a)),s[a].fullUpdate(o),!!s[a-1])for(;!s[a-1].endLine;){let c,p=s[a-1].spaceLeft(n);if(s[a].wordSize(0,1)<=p){s[a].containSpace()?c=s[a].getWord(0,1):c=s[a].popChar(0);for(let l=0;l<c.length;l+=1)c[l]&&s[a-1].addChar3D(c[l],o)}else{s[a].isEmpty()?(s[a].endLine&&s[a-1].isEndLine(!0),s.splice(a,1),a-=1):(s[a].updateYLinePos(this.getNewLinePosition(a)),s[a].fullUpdate(o));break}}this.textFullUpdate(e)}createTextLine(e=this.userData.textFrame.textLines.length){let o=this.userData.textFrame;o.textLines.splice(e,0,new No(this.getNewLinePosition(e),o.lineHeight,o.fontSize))}textFullUpdate(e=0){let o=this.userData.textFrame,n=o.textLines,s=this.getVerticalAlignmentOffSet();for(let a=e;a<n.length;a++)n[a].updateYLinePos(this.getNewLinePosition(a)),n[a].fullUpdate(o.textOrigin),n[a].alignText(o.textOrigin,o.maxLineSize,o.horizontalAlignment,o.verticalAlignment,s)}getVerticalAlignmentOffSet(){switch(this.userData.textFrame.verticalAlignment){case 1:return 0;case 2:return this.getRemainingVerticalSpace()/2;case 3:return this.getRemainingVerticalSpace();default:return 0}}getRemainingVerticalSpace(){let r=this.userData.textFrame.textLines;return this.geometry.userData.parameters.height-this.getNewLinePosition(r.length)}getNewLinePosition(e){let o=this.userData.textFrame.textLines,n=0;for(let s=0;s<e;s+=1)n+=o[s].maxCharSize*o[s].lineHeight;return n}updateColor(e){let r=this.userData;r.textFrame.hexColor=e;let o=r.textFrame.textLines;for(let n=0;n<o.length;n++){let s=o[n].message;for(let a=0;a<s.length;a++){let c=s[a].material;c.color?.isColor&&(c.color=e)}}}updateOpacity(e){let r=this.userData;r.textFrame.opacity=e;let o=r.textFrame.textLines;for(let n=0;n<o.length;n++){let s=o[n].message;for(let a=0;a<s.length;a++){let c=s[a].material;c.opacity=e}}}updateVisible(e){let r=this.userData;r.textFrame.visible=e;let o=r.textFrame.textLines;for(let n=0;n<o.length;n++){let s=o[n].message;for(let a=0;a<s.length;a++){let c=s[a].material;c.visible=e}}}async updateFontFamily(e){await er.loadFont(e);let o=this.userData.textFrame,n=o.textLines;o.fontFamily=e;for(let s=0;s<n.length;s++){let a=n[s].message;for(let c=0;c<a.length;c++)a[c].updateFontFamily(e)}this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateFontSize(e){let o=this.userData.textFrame,n=o.textLines,s=o.fontSize;o.fontSize=e;for(let a=0;a<n.length;a++)n[a].updateFontSize(e);this.textFullUpdate(),e>s?this.checkOverFlow():e<s&&this.checkCapacity()}async updateTextTransform(e){let o=this.userData.textFrame;await er.loadFont(o.fontFamily);let n=o.textLines;switch(o.textTransform=e,e){case 2:for(let s=0;s<n.length;s++){let a=n[s].message;for(let c=0;c<a.length;c++)n[s].message[c].updateChar(a[c].char.toUpperCase())}break;case 3:for(let s=0;s<n.length;s++){let a=n[s].message;for(let c=0;c<a.length;c++)n[s].message[c].updateChar(a[c].char.toLowerCase())}break;default:for(let s=0;s<n.length;s++){let a=n[s].message;for(let c=0;c<a.length;c++)n[s].message[c].updateChar(a[c].originalChar)}}this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateLetterSpacing(e){let r=this.userData,o=r.textFrame.textLines;r.textFrame.letterSpacing=e;for(let n=0;n<o.length;n++){let s=o[n].message;for(let a=0;a<s.length;a++)s[a].updateLetterSpacing(e)}this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateLOD(e){let r=this.userData;r.textFrame.LOD=e;let o=r.textFrame.textLines;for(let n=0;n<o.length;n++);this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateLineHeight(e){let r=this.userData,o=r.textFrame.textLines;r.textFrame.lineHeight=e;for(let n=0;n<o.length;n++)o[n].updatelineHeight(e);this.textFullUpdate()}updateVerticalAlignment(e){let r=this.userData;r.textFrame.verticalAlignment=e,this.textFullUpdate()}updateHorizontalAlignment(e){let r=this.userData;r.textFrame.horizontalAlignment=e,this.textFullUpdate()}fromTextFrameData(e,r){if(e.color!==void 0){let o=Ye(e.color,r);this.updateColor(o),this.updateOpacity(o.a)}e.alpha!==void 0&&this.updateOpacity(e.alpha),e.font!==void 0&&this.updateFontFamily(e.font),e.horizontalAlign!==void 0&&this.updateHorizontalAlignment(e.horizontalAlign),e.verticalAlign!==void 0&&this.updateVerticalAlignment(e.verticalAlign),e.textTransform!==void 0&&this.updateTextTransform(e.textTransform),e.fontSize!==void 0&&this.updateFontSize(e.fontSize),e.lineHeight!==void 0&&this.updateLineHeight(e.lineHeight),e.letterSpacing!==void 0&&this.updateLetterSpacing(e.letterSpacing),e.text!==void 0&&e.text!==""&&this.updateText(e.text),(e.width!==void 0||e.height!==void 0)&&this.updateGeometry({parameters:{width:e.width,height:e.height}})}fromState(e,r){return super.fromState(e),this.fromTextFrameData(e,r),this}},Oo=dc;Oo.VerticalAlign=pl,Oo.HorizontalAlign=ul,Oo.TextTransform=dl;var Ma=require("three");var tr=class extends Ma.ShaderMaterial{constructor(e,r){super(void 0);this.data=e;this.layerIdGen=0;this.type="NodeMaterial";this.uniformsBackup={};this.fog=!0,this.updaters=[],this.dithering=!0,this.vertexColors=!0,this.onBeforeCompile=this._onBeforeCompile,this.reset(e,r)}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.data.category}reset(e,r){let o=e.layers??Mr.defaultTwoLayerData("phong").layers;this.layers=o.map(n=>Tr.create(this.layerIdGen++,n.id,n.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 Ar),this.lightLayer===void 0&&(this.lightLayer=new Ar(0,"",Xr.defaultData("light","basic"),new oo,{})),this.lightLayer.node instanceof oo||(this.lightLayer.node.penumbraSize=e.penumbraSizeNode),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(e,r,o){if(this.data=r,e.path[0]==="layers"){let n=e.path[1];if(n===void 0){if(this.layers.reverse(),e.type===4){let s=Tr.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),a=this.layers[s];this.layers.splice(s,1),this.layers.splice(e.localIndex,0,a)}this.layers.reverse(),this.onUpdate(o)}else{let s=this.layers.find(a=>a.uuid===n);if(s){let a=r.layers.data(n);if(s.updateByOp({...e,path:e.path.slice(2)},a,o)){let p=Tr.create(this.layerIdGen++,n,a,o);this.layers.splice(this.layers.findIndex(l=>l.uuid===n),1,p),this.onUpdate(o)}}}}}blendColors(){let e=this.layers.findIndex(o=>o instanceof ot),r=this.layers.findIndex(o=>o instanceof Ar);if(e!==-1&&e<r){let o=this.layers[e].color;for(let n=e+1;n<r;++n){let s=this.layers[n];s instanceof ot&&(o=new Ni(o,s.color,s.alpha,s.mode))}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new Te("outgoingLight","f"),r=this.layers.findIndex(o=>o instanceof Ar);if(this.layers.length>r+1){for(let o=r+1;o<this.layers.length;++o){let n=this.layers[o];n instanceof ot&&(e=new Ni(e,n.color,n.alpha,n.mode))}this.fragment.afterColor=e}else this.fragment.afterColor=void 0}blendPositions(){let e=this.layers.filter(r=>r instanceof Ri);if(e.length>0){let r=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(r=new Lt(r,e[o].position,Lt.ADD),r=new Lt(r,new X(.5).setReadonly(!0),Lt.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=(n,s,a)=>Math.min(Math.max(n,s),a);for(let n of this.layers)if(n.type==="displace"){this.uniformsBackup[`f${n.id}_intensity`]=n.uniforms[`f${n.id}_intensity`].value;let s=o(n.uniforms[`f${n.id}_intensity`].value,e,r);n.uniforms[`f${n.id}_intensity`].value=s}}restoreClampedUniforms(){for(let e of this.layers)e.type==="displace"&&(e.uniforms[`f${e.id}_intensity`].value=this.uniformsBackup[`f${e.id}_intensity`])}customProgramCacheKey(){return this.getHash()}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 Ca;return this.lights=this.lightLayer.data.category!=="basic",r.setMaterial(this,e.renderer),r.build(this.fragment,this.fragment),this.vertexShader=r.getCode("vertex"),this.fragmentShader=r.getCode("fragment"),this.defines=r.defines,this.uniforms=r.uniforms,this.extensions=r.extensions,this.updaters=r.updaters,this.transparent=r.requires.transparent||this.blending>Ma.NormalBlending,this}dispose(){this.layers.forEach(e=>e.dispose()),super.dispose()}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(tr.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(i){i===!0&&this.version++,this.needsCompile=i},get:function(){return this.needsCompile}}});var lt=require("three");var Lo=class extends tr{};var nf=bc(tf());var Ba=new Map;function rf(i){if(typeof i=="string")return i;let t=URL.createObjectURL(new Blob([i])),e={url:t};return Ba.set(i,e),t}function of(i){Ba.has(i)&&(URL.revokeObjectURL(Ba.get(i).url),Ba.delete(i))}var Rn=class{constructor(t,e){this._volume=1;this.delay=0;this._loop=1;this.loopsRemaining=0;this._isStarted=!1;this.onEnd=()=>{this._loop>1?this.loopsRemaining===1/0?this.play():this.loopsRemaining>1?(this.play(),this.loopsRemaining--):this._isStarted=!1:this._isStarted=!1};let r={src:rf(t)};typeof t!="string"&&(r.format="wav"),this.audioSrc=t,this.sound=new nf.Howl(r),e&&this.setOptions(e)}get isStarted(){return this._isStarted}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}setOptions(t){Object.assign(this,t),this.sound.on("end",this.onEnd)}fade(t,e=1e3){t&&(this.sound.volume(this._volume),this.disposeFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,e),this.disposeFade()},t))}on(t,e,r){this.sound.on(t,e,r)}off(t,e,r){this.sound.off(t,e,r)}play(){this._isStarted=!0,this.delay?(this.disposeDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.disposeDelay()},this.delay)):this.sound.play()}pause(){this._isStarted=!1,this.sound.pause(),this.disposeFade(),this.disposeDelay()}stop(){this._isStarted=!1,this.sound.stop(),this.loopsRemaining=this._loop,this.disposeFade(),this.disposeDelay()}disposeFade(){this.fadeTimerId&&(clearTimeout(this.fadeTimerId),delete this.fadeTimerId)}disposeDelay(){this.delayTimerId&&(clearTimeout(this.delayTimerId),delete this.delayTimerId)}dispose(t=!1){this.off(),this.stop(),this.disposeFade(),this.disposeDelay(),t&&of(this.audioSrc)}};var Fi=class{constructor(t){this.deletedMaterial=new Lo(Mr.defaultTwoLayerData("basic"),this);this.deletedImage=new Co(Ks.emptyImage);this.materials={};this.images={};this.colors={};this.audios={};this.onImageLoad=()=>{this._onImageLoad&&this._onImageLoad()};this.transmissionRenderTarget=new lt.WebGLRenderTarget(2048,2048,{generateMipmaps:!0,minFilter:lt.LinearMipmapLinearFilter,magFilter:lt.LinearFilter,wrapS:lt.ClampToEdgeWrapping,wrapT:lt.ClampToEdgeWrapping}),this.transmissionRenderTarget.depthTexture=new lt.DepthTexture(2048,2048),this.normalRenderTarget=new lt.WebGLRenderTarget(1024,1024,{generateMipmaps:!1,minFilter:lt.NearestFilter,magFilter:lt.NearestFilter,type:lt.FloatType}),this.normalRenderTarget.depthTexture=new lt.DepthTexture(1024,1024),this.penumbraSizeNode=new et(5,t.penumbraSize),this.resolutionNode=new rt(1,1),this.pixelRatioNode=new X(window.devicePixelRatio),this.reset(t)}setOnImageLoad(t){this._onImageLoad=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 Lo(r,this));for(let[e,r]of Object.entries(t.audios))this.addAudio(e,r.data)}get transmissionSamplerMap(){return this.transmissionRenderTarget.texture}get transmissionDepthMap(){return this.transmissionRenderTarget.depthTexture}get normalMap(){return this.normalRenderTarget.texture}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 tr(t,this)}getMaterials(){return this.materials}addImage(t,e){return this.images[t]?(this.images[t].updateSrc(e.data),!0):(this.images[t]=new Co(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 Bn(t,this.onImageLoad)}getImages(){return this.images}addColor(t,e){return this.colors[t]?("a"in e?this.colors[t].setRGBA(e.r,e.g,e.b,e.a):this.colors[t].setRGBA(e.r,e.g,e.b,1),!0):("a"in e?this.colors[t]=new io(e.r,e.g,e.b,e.a):this.colors[t]=new io(e.r,e.g,e.b,1),!1)}updateColor(t,e){if(this.colors[t]){let r=this.colors[t];return this.colors[t].r=e.r??r.r,this.colors[t].g=e.g??r.g,this.colors[t].b=e.b??r.b,this.colors[t].a=e.a??r.a,!0}return!1}deleteColor(t){this.colors[t]&&delete this.colors[t]}getColor(t){return this.colors[t]}color(t){let e;if(typeof t=="string"){let r=this.getColor(t);r?e=r:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),e=new ct(0,0,0,0))}else return"a"in t?new ct(t.r,t.g,t.b,t.a):new ct(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 Rn)return e;{let r=new Rn(e);return this.audios[t]=r,r}}deleteAudio(t){this.audios[t]&&delete this.audios[t]}dispose(){Object.keys(this.materials).forEach(e=>this.deleteMaterial(e)),this.transmissionRenderTarget.depthTexture.dispose(),this.transmissionRenderTarget.dispose(),this._onImageLoad=void 0,Object.values(this.audios).forEach(e=>{e instanceof Rn&&e.dispose()}),this.audios={}}},QV=new Fi(Ys.emptyData());var sf=require("three/examples/jsm/loaders/DRACOLoader.js");var ao;function qb(){return ao||(ao=new sf.DRACOLoader,ao.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),ao.decoderPending}async function $b(i){if(ao){let t={attributeIDs:ao.defaultAttributeIDs,attributeTypes:ao.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await ao.decodeGeometry(new Int8Array(i).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 af(i,t){let[e,r]=$a(zs.deserialize(new Uint8Array(i))),o=[];e.scene.objects.traverse((n,s)=>{s.type==="Mesh"&&s.geometry.type==="NonParametricGeometry"&&s.geometry.data.draco!==void 0&&o.push(s)}),o.length&&await qb();for(let n of o){let s=await $b(Ya(n.geometry.data.draco));if(s){s.index&&(n.geometry.data.index={array:s.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let a={};s.attributes.forEach(({name:c,array:p,itemSize:l})=>{a[c]={array:p,itemSize:l,type:"Float32Array",normalized:!1}}),n.geometry.data.attributes=a,n.geometry.data.draco=void 0}}return t&&t(e),r.result().data}var Ft=require("three");var _t=require("three");var pf=bc(cf());var mc;aa.then(i=>{mc=i});var df=new _t.Matrix4,Xb=new _t.Matrix4,Yb=new _t.Matrix4,rr=new _t.Box3,lo=new _t.Vector3,Kb=new _t.Matrix4,Qb=new _t.Matrix4,Fn=class extends it{constructor(e,r,o,n){super(o??r,n);this.subdivPointer=e;this.originalGeometry=r;this.subdividedGeometry=o;this.objectType="SubdivObject";this.hiddenMatrixOld=new _t.Matrix4;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new _t.Matrix4;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,r,o){let{subdivPointer:n,originalGeometry:s,subdividedGeometry:a}=Ht.build(r.geometry,void 0,void 0,!r.flatShading),c=o.material(r.material),p=new Fn(n,s,a||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:n,subdivPointer:s}=Ht.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),n!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=n??void 0),this.geometry=this.subdividedGeometry??this.originalGeometry,eo(this),to(this),e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){Ht.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&Ht.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=Ht.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=Ht.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(e,r){this.geometry=this.originalGeometry,it.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:n,q:s}=(0,pf.SVD)(r),a=df.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=Xb.set(n[0][0],n[0][1],n[0][2],0,n[1][0],n[1][1],n[1][2],0,n[2][0],n[2][1],n[2][2],0,0,0,0,1),p=Yb.copy(c).transpose();this.shearScale=Kb.makeScale(s[0],s[1],s[2]).multiply(p).premultiply(c),this.shearScaleInv=Qb.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(a,p),s.every(l=>Math.abs(s[0]-l)<.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 _t.Sphere);let r=e.attributes.position,o=e.boundingSphere.center;rr.setFromBufferAttribute(r),rr.getCenter(o),e.boundingSphere.radius=o.distanceTo(rr.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),rr.getSize(lo);let n={width:lo.x,height:lo.y,depth:lo.z};return this.geometry.userData.parameters=n,n}updateBoundingBox(e){let r=this.originalGeometry;rr.min.set(e[0],e[2],e[4]),rr.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(rr.min.applyMatrix4(this.shearScaleInv),rr.max.applyMatrix4(this.shearScaleInv)),r.boundingSphere===null&&(r.boundingSphere=new _t.Sphere);let o=r.boundingSphere.center;rr.getCenter(o),r.boundingSphere.radius=o.distanceTo(rr.max),isNaN(r.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),rr.getSize(lo);let n={width:lo.x,height:lo.y,depth:lo.z};return this.geometry.userData.parameters=n,n}freeSubdivPointer(){this.subdivPointer&&(mc.free_bvh(this.subdivPointer),mc.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(e){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,uf(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(uf(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 uf(i,t,e,r){let o=i.position.array,n=i.normal.array,s=df.makeScale(t,e,r).invert().elements,a,c,p;for(var l=0,u=o.length;l<u;l+=3)o[l]*=t,o[l+1]*=e,o[l+2]*=r,a=n[l],c=n[l+1],p=n[l+2],n[l]=s[0]*a+s[4]*c+s[8]*p,n[l+1]=s[1]*a+s[5]*c+s[9]*p,n[l+2]=s[2]*a+s[6]*c+s[10]*p}var co=require("three");function mf(i,t){t.flatShading!==void 0&&(i.flatShading=t.flatShading,i.needsUpdate=!0),t.wireframe!==void 0&&(i.wireframe=t.wireframe),t.side!==void 0&&(t.side===0?i.side=co.FrontSide:t.side===1?i.side=co.BackSide:i.side=co.DoubleSide)}function Zb(i,t){if(Array.isArray(i.material))for(let e of i.material)mf(e,t);else{let e=i.material;mf(e,t)}i.objectType==="SubdivObject"&&t.flatShading!==void 0&&(i.material.flatShading=!1,i.smoothShading=!t.flatShading,i.updateMesh())}function ff(i,t,e){let r;if(t.geometry.type==="SubdivGeometry")r=Fn.createFromState(i,t,e);else{let o=t.geometry.type==="BooleanGeometry"?new co.BufferGeometry:ma(t.geometry,e),n="materials"in t?t.materials.map(s=>e.material(s)):e.material(t.material);Ws.is2DParametricMesh(o.userData.type)?r=new La(o,n):o?.userData.type==="VectorGeometry"?r=new yn(o,n):t.geometry.type==="NonParametricGeometry"?r=new Ia(o,n):t.geometry.type==="BooleanGeometry"?(r=new ha(void 0,n),r.booleanOp=t.geometry.operation,t.geometry.phongAngle!==void 0&&(r.phongAngle=t.geometry.phongAngle)):r=new Gn(o,n),r.uuid=i,r.fromState(t,e)}return Zb(r,t),r}function hf(i,t,e){return t.type==="Mesh"?ff(i,t,e):t.type==="TextFrame"?Oo.createFromState(i,t,e):t.type==="Empty"?So.createFromState(i,t):t.type==="PointLight"?Tn.createFromState(i,t,e):t.type==="SpotLight"?An.createFromState(i,t,e):t.type==="DirectionalLight"?wn.createFromState(i,t,e):Qo.is(t.type)?Rr.createFromState(i,t):(console.error(t),new So)}var Fr=require("three");function t_(i,t){t.uniforms[`f${t.id}_transmissionSamplerMap`].value=i.texture,t.uniforms[`f${t.id}_transmissionDepthMap`].value=i.depthTexture}function r_(i,t){t.uniforms[`f${t.id}_normalMap`].value=i.texture,t.uniforms[`f${t.id}_depthMap`].value=i.depthTexture}function gf(i,t,e){let r=!1,o=e.getLayersOfType("transmission"),n=e.getLayersOfType("outline");return n.length>0&&(t.layers.set(8),o.length===0&&t.layers.enable(3),r=!0,i!==void 0&&n.forEach(s=>r_(i,s)),to(t),eo(t)),o.length===0&&n.length===0&&t.layers.set(0),r}function yf(i,t,e){if(!e.layers)return!1;let r=!1,o=e.getLayersOfType("transmission"),n=e.getLayersOfType("outline");return o.length>0&&(t.layers.set(3),n.length>0&&t.layers.enable(8),r=!0,i!==void 0&&o.forEach(s=>t_(i,s))),o.length===0&&n.length===0&&t.layers.set(0),r}function xf(i,t){let e=!1;return t.traverseEntity(r=>{if(r instanceof Fr.Mesh&&r.objectType!=="TextFrame")if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)gf(i,r,r.material[o])&&(e=!0);else gf(i,r,r.material)&&(e=!0)}),e}function vf(i,t){let e=!1;return t.traverseEntity(r=>{if(r instanceof Fr.Mesh)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)yf(i,r,r.material[o])&&(e=!0);else yf(i,r,r.material)&&(e=!0)}),e}function bf(i){"material"in i&&o_(i.material),"geometry"in i&&i.geometry.dispose()}function o_(i){_c(i).forEach(t=>{t instanceof Lo||t.dispose()})}var n_=new Fr.Raycaster,i_=new Fr.Matrix4,s_=new Fr.Ray;function _f(i,t,e){let r=i.cloner;if(r)for(let o of r.children){let n=i_.copy(o.matrixWorld).invert(),s=s_.copy(t.ray).applyMatrix4(n),a=i.matrixWorld;s.applyMatrix4(a);let c=n_;c.set(s.origin,s.direction),c.near=t.near,c.far=t.far,c.intersectObject(i,!1).length>0&&e.push({object:i})}}var Sf=new Ft.Vector3,fc=class extends ua(Ft.Scene){constructor(e,r){super();this.objectType="Scene";this.alpha=1;this.backupFog=new Ft.Fog(16777215,.1,2e3);this.fogUseBGColor=!1;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this._color=new Ft.Color(1,0,0);this.bgColor=new Ft.Color(1,1,1);this.entityByUuid={};this.ambientLight=new Ft.HemisphereLight(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.init(e,r)}needsTransmission(e){return this.needsTransmissionDirty&&(this._needsTransmission=vf(e,this),e!==void 0&&(this.needsTransmissionDirty=!1)),this._needsTransmission}needsNormal(e){return this.needsNormalDirty&&(this._needsNormal=xf(e,this),e!==void 0&&(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 color(){return this._color}set color(e){this.fogUseBGColor===!0&&this.backupFog.color.copy(e),this._color.copy(e)}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(Ye(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 Rr&&this.switchActiveCamera(o)}this.traverse(o=>{mr(o)&&o.recomputeBoolean()})}clearScene(){this.traverseEntity(e=>{bf(e)});for(let e of this.children)gr(e)&&e.removeFromParent()}resetAfterClear(e,r){this.init(e,r)}createPersonalCamera(){let e=Rr.createFromState(fc.PERSONAL_CAMERA_ID,{...$s.defaultData,name:"Personal Camera"});return e.objectHelper.visible=!1,delete e.isEntity,this.registerObjectCreatedInLegacy(e),e}raycast(e){let r=[],o=n=>{for(let s of n.children)gr(s)&&!s.raycastLock&&s.visible&&((dr(s)||la(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,r),_f(s,e,r)),o(s))};return o(this),r}traverseEntity(e){for(let r of this.children)gr(r)&&r.traverseEntity(e)}traverseVisibleEntity(e){for(let r of this.children)gr(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=Ye(e.color,r),this.backupFog.near=e.near,this.backupFog.far=e.far}dispose(){this.clearScene()}updateAmbientLight(e,r){cm(this.ambientLight,e,r),e.groundColor!==void 0&&(this.ambientLight.groundColor=Ye(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.alpha=e.a}createChildrenObjects(e,r,o){for(let n of e)this.createChildObject(n.id,n.data,n.children,r,o)}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let r of e.children)this.unregisterObject(r)}createChildObject(e,r,o,n,s){let a=hf(e,r,s);return a&&(this.entityByUuid[e]=a,n.add(a),mr(n)&&dr(a)&&(a.prevBooleanObjectParent=n),this.createChildrenObjects(o,a,s)),a}getCenter(e){let r=[];for(let n=0,s=e.length;n<s;++n){let{id:a,recursive:c}=e[n],p=this.find(a),l=c?p.recursiveBBox:p.singleBBox;r.push(...l.vertices)}let o=new Ft.Box3;return o.setFromPoints(r),o.getCenter(Sf),Sf}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 it)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)r.material[o]instanceof tr&&e(r.material[o]);else r.material instanceof tr&&e(r.material)})}updateCanvasSize(e,r){this.activeCamera.setViewplaneSize(e,r);let o,n;e>=r?(o=r/e,n=1):(o=1,n=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=n})})}},Vi=fc;Vi.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var a_=require("three"),l_=require("three/examples/jsm/utils/BufferGeometryUtils.js");function wf(i){let t;if(!!i.index)for(let e=0;e<i.index.array.length;e+=3)t=i.index.array[e],i.index.array[e]=i.index.array[e+2],i.index.array[e+2]=t}var zi=require("three");function Tf(i){let t=new Set;return i.traverse(e=>{if(dr(e))if(Xe(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);c_(e)?(Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new zi.Color,specularColor:new zi.Color}),e.onBeforeCompile=(o,n)=>{r&&r(o,n),o.uniforms=Object.assign(zi.ShaderLib.physical.uniforms,o.uniforms),e.getLayersOfType("transmission").forEach(s=>{o.uniforms.transmissionSamplerMap.value&&(s.uniforms["f"+s.id+"_transmissionSamplerMap"].value=o.uniforms.transmissionSamplerMap.value,s.uniforms["f"+s.id+"_transmissionSamplerSize"].value=o.uniforms.transmissionSamplerSize.value)})}):u_(e)||(e.onBeforeCompile=(o,n)=>{r&&r(o,n),e.transparent=!1})}),i}function c_(i){return i.getLayersOfType("transmission").length>0}function u_(i){let t=0;return i.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 Af(i){return i.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),i}function Cf(i){let t=[],e=(r,o=0)=>{let n=o>0?r+o:r;return t.includes(n)?e(r,o+1):n};return i.traverse(r=>{if(t.includes(r.name)){let o=r.name,n=e(r.name);if(r.name=n,r.isMesh){let s=r;s.material instanceof Array?s.material.forEach(a=>{a.name=a.name.replace(o,n)}):s.material.isAsset||(s.material.name=s.material.name.replace(o,n))}}t.push(r.name)}),i}var Nf=require("three/examples/jsm/utils/BufferGeometryUtils.js");function Of(i){let t=[];return i.traverse(e=>{e instanceof _o&&t.push(e)}),t.forEach(e=>{let r=e.object,o=e.children,n=o.map(a=>{a.updateMatrix();let c=a.geometry.clone().applyMatrix4(a.matrix);return a.matrix.determinant()<0&&wf(c),c}),s=(0,Nf.mergeBufferGeometries)(e.parameters.hideBase?n:[r.geometry,...n]);r.geometry=s,r.material=o[0].material,r.remove(e)}),i}function Lf(i){return i.traverse(t=>{t.matrixAutoUpdate=!0}),i}function If(i){Object.values(i.shared.materials).forEach(t=>{hc(t)}),i.scene.objects.traverse((t,e)=>{"material"in e?hc(e.material):"materials"in e&&e.materials.forEach(r=>{hc(r)})})}function hc(i){if(typeof i=="string")return;let t=[];i.layers.forEach((e,r)=>{e.type==="outline"&&t.push(r)}),t.reverse().forEach(e=>{i.layers.delete(e)}),t.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var Pf="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",Ga=class extends Ra.Loader{load(t,e,r,o=console.error){let n=new Ra.FileLoader(this.manager);n.setPath(this.path),n.setResponseType("arraybuffer"),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(Pf+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(Pf),n.load(t,async s=>{try{if(typeof s=="string")throw new Error("The .spline file is not binary!");let a=await this.parse(s);e(a)}catch(a){o(a)}},r,o)}async parse(t){let e=await af(t,If),r=new Fi(e.shared);Object.values(r.getMaterials()).forEach(s=>Object.assign(s,{isAsset:!0}));let o=new Vi(e.scene,r);o.remove(o.personalCamera),e.scene.environment.ambientLight.enabled||o.remove(o.ambientLight);let n=e.scene.publish.playCamera;if(n){let s=o.find(n);s&&lm(s)&&Object.assign(s,{makeDefault:!0})}return o=Of(o),o=Tf(o),o=Af(o),o=Cf(o),o=Lf(o),o}};
1328
+ }`,[gt.simplex,e,o,s])}}();var Km=require("three");function Ym(i,t,e){i.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var Oa=class extends Pn{constructor(e,r){super(new Km.Matrix3);this.repeat=e;this.offset=r;Ym(this.value,e,r)}updateMatrix(){Ym(this.value,this.repeat,this.offset)}};var Tr=class{constructor(t,e,r,o){this.id=t;this.uuid=e;this.data=r;this.uniforms={};for(let n in o)this.uniforms[`f${this.id}_${n}`]=o[n];for(let n in r)ac(n,this,r)}get type(){return this.data.type}static create(t,e,r,o){if(r.type==="light")return Ar.createLigherLayer(t,e,r,o);if(r.type==="texture"){let n=o.image(r.texture.image),s=new Ei(n,r.texture.wrapping),a=new Na(n),c=new Oa(r.texture.repeat,r.texture.offset),p=new X(r.crop?1:0),l=new xe(r.projection??0),u=new xe(["x","y","z"].indexOf(r.axis)??0),d=new xe(r.side??0),m=new rt(r.size?new Se.Vector2(r.size[0],r.size[1]):new Se.Vector2(100,100)),f=new X(r.alpha??1),h=new xe(r.mode??0),g=new Ii(s,a,p,l,u,d,m,c,f,h),x=new Te(g.calpha,"f");return new ot(t,e,r,{texture:s,textureSize:a,crop:p,projection:l,axis:u,side:d,size:m,mat:c,alpha:f,mode:h},g,h,x)}else if(r.type==="matcap"){let n=o.image(r.texture.image),s=new Ei(n,r.texture.wrapping),a=new X(r.alpha??1),c=new xe(r.mode??0),p=new Bi(s,a,c),l=new Te(p.calpha,"f");return new ot(t,e,r,{texture:s,alpha:a,mode:c},p,c,l)}else if(r.type==="displace")if(r.displacementType==="noise"){let n=new pt(new Se.Vector3(...r.offset)),s=new X(r.scale??10),a=new X(r.intensity??8),c=new X(r.movement??1),p=new xe(r.noiseType??0),l=new Oi(a,c,n,s,p);return new Ri(t,e,r,{offset:n,scale:s,intensity:a,movement:c,noiseType:p},l)}else throw new Error;else return Hb(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:$m(o.props,r,this,e)}else if(o.path[0]==="texture")return"texture"in e?sc(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}},ot=class extends Tr{constructor(e,r,o,n,s,a,c){super(e,r,o,n);this.color=s;this.mode=a;this.alpha=c}},Ri=class extends Tr{constructor(e,r,o,n,s){super(e,r,o,n);this.position=s}},Ar=class extends Tr{constructor(e,r,o,n,s){super(e,r,o,s);this.data=o;this.node=n}static createLigherLayer(e,r,o,n){let s,a=new X(o.alpha),c=new xe(o.mode),p;if(o.category==="lambert"){s=new mi;let l=new Ne(n.color(o.emissive)??0);p={emissive:l},s.emissive=l}else if(o.category==="phong"){s=new Sa;let l=new X(o.shininess??30),u=new Ne(n.color(o.specular)??1118481);p={shininess:l,specular:u},s.shininess=l,s.specular=u}else if(o.category==="toon"){s=new yi;let l=new X(o.shininess??30),u=new Ne(n.color(o.specular)??1118481);p={shininess:l,specular:u},s.shininess=l,s.specular=u}else if(o.category==="physical"){s=new hi;let l=new X(o.roughness??.3),u=new X(o.metalness??0),d=new X(o.reflectivity??.5);p={roughness:l,metalness:u,reflectivity:d},s.roughness=l,s.metalness=u,s.reflectivity=d}else s=new oo,p={};return s.alpha=new X(1),s.shadingAlpha=a,s.shadingBlend=c,p.alpha=s.shadingAlpha,p.mode=s.shadingBlend,new Ar(e,r,o,s,p)}};function Qm(i){let t=i instanceof Tr?i.type:i;return t==="texture"||t==="displace_map"||t==="matcap"}function jb(i,t,e,r){switch(i.type){case"color":{let o=new Ne(r.color??5855577),n=new X(r.alpha??1),s=new Te("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=n;let a=new xe(r.mode??0);return o.alpha=n,new ot(t,e,i,{color:o,alpha:n,mode:a},o,a,s)}case"fresnel":{let o=new Ne(r.color??16777215),n=new X(r.bias??.1),s=new X(r.scale??1),a=new X(r.intensity??2),c=new X(r.factor??1),p=new X(r.alpha??1),l=new xe(r.mode??0),u=new Si(o,n,s,a,c,p,l),d=new Te(u.calpha,"f");return new ot(t,e,i,{color:o,bias:n,scale:s,intensity:a,factor:c,alpha:p,mode:l},u,l,d)}case"rainbow":{let o=new X(r.filmThickness??30),n=new X(r.movement??0),s=new pt(r.wavelengths??new Se.Vector3(0,0,0)),a=new X(r.noiseStrength??0),c=new X(r.noiseScale??1),p=new pt(r.offset??new Se.Vector3(0,0,0)),l=new X(r.alpha??1),u=new wi(o,n,s,a,c,p,l),d=new Te(u.calpha,"f"),m=new xe(r.mode??0);return new ot(t,e,i,{filmThickness:o,movement:n,wavelengths:s,noiseStrength:a,noiseScale:c,offset:p,alpha:l,mode:m},u,m,d)}case"transmission":{let o=new X(r.thickness??10),n=new X(r.ior??1.5),s=new X(r.roughness??.5),a=new rt(r.transmissionSamplerSize??new Se.Vector2(2048,2048)),c=r.transmissionSamplerMap??new Se.Texture,p=r.transmissionDepthMap??new Se.Texture,l=new Ot(c),u=new Ot(p),d=window.innerWidth,m=window.innerHeight,f=d>=m?new rt(m/d,1):new rt(1,d/m),h=new X(r.alpha??1),g=new Ai(o,n,s,a,l,u,f,h),x=new Te(g.calpha,"f"),v=new xe(r.mode??0);return new ot(t,e,i,{thickness:o,ior:n,roughness:s,transmissionSamplerSize:a,transmissionSamplerMap:l,transmissionDepthMap:u,aspectRatio:f,alpha:h,mode:v},g,v,x)}case"toon":{let o=new xe(r.positioning??0),n;r.colors?n=new Jt(r.colors.length,r.colors):(n=new Jt(10,new Se.Vector4(0,0,0,1)),n.value[1]=new Se.Vector4(1,1,1,1));let s;r.steps?s=new et(r.steps.length,r.steps):(s=new et(10,1),s.value[0]=0);let a=new pt(r.source??new Se.Vector3(0,0,0)),c=new no(r.isWorldSpace??!0),p=new X(r.noiseStrength??0),l=new X(r.noiseScale??1),u=new qt(r.shadowColor),d=new pt(r.offset??new Se.Vector3(0,0,0)),m=new X(r.alpha??1),f=new Gi(o,n,s,a,c,p,l,u,d,m),h=new Te(f.calpha,"f"),g=new xe(r.mode??0);return new ot(t,e,i,{positioning:o,colors:n,steps:s,source:a,isWorldSpace:c,noiseStrength:p,noiseScale:l,shadowColor:u,offset:d,alpha:m,mode:g},f,g,h)}case"outline":{let o=new Ne(r.outlineColor??16777215),n=new Ne(r.contourColor??16777215),s=new X(r.outlineWidth??.1),a=new X(r.contourWidth??.1),c=new X(r.outlineThreshold??.1),p=new X(r.contourThreshold??.1),l=new X(r.outlineSmoothing??.1),u=new X(r.contourFrequency??.1),d=new pt(r.contourDirections??new Se.Vector3(0,1,0)),m=new no(r.positionalLines??!1),f=new no(r.compensation??!0),h=r.normalMap??new Se.Texture,g=new Ot(h),x=r.depthMap??new Se.Texture,v=new Ot(x),A=r.pixelRatio??new X(window.devicePixelRatio),_=r.resolution??new rt(new Se.Vector2(1,1)),b=new X(r.alpha??1),D=new Ti(o,n,s,a,c,p,l,u,d,m,f,_,g,v,A,b),S=new Te(D.calpha,"f"),y=new xe(r.mode??0);return new ot(t,e,i,{outlineColor:o,contourColor:n,outlineWidth:s,contourWidth:a,outlineThreshold:c,contourThreshold:p,outlineSmoothing:l,contourFrequency:u,contourDirection:d,positionalLines:m,compensation:f,resolution:_,normalMap:g,depthMap:v,pixelRatio:A,alpha:b,mode:y},D,y,S)}case"depth":{let o=new xe(r.gradientType??0),n=new no(r.smooth??!1),s=new X(r.near??50),a=new X(r.far??200),c=new X(r.isVector??1),p=new X(r.isWorldSpace??0),l=new pt(r.origin??new Se.Vector3),u=new pt(r.direction??new Se.Vector3),d=new xe(r.num??0),m;r.colors?m=new Jt(d.value+1,r.colors):(m=new Jt(d.value+1,new Se.Vector4(0,0,0,1)),m.value[1]=new Se.Vector4(1,1,1,1));let f;r.steps?f=new et(d.value+1,r.steps):(f=new et(d.value+1,1),f.value[0]=0);let h=new X(r.alpha??1),g=new xe(r.mode??0),x=new Ci(o,n,s,a,c,p,l,u,m,f,d,h),v=new Te(x.calpha,"f");return new ot(t,e,i,{gradientType:o,smooth:n,near:s,far:a,isVector:c,isWorldSpace:p,origin:l,direction:u,colors:m,steps:f,num:d,alpha:h,mode:g},x,g,v)}case"noise":{let o=new X(r.scale??1),n=new pt(r.size??new Se.Vector3(100,100,100)),s=new X(r.move??1),a=new rt(r.fA??new Se.Vector2(1.7,9.2)),c=new rt(r.fB??new Se.Vector2(8.3,2.8)),p=new rt(r.distortion??new Se.Vector2(1,1)),l=new qt(r.colorA),u=new qt(r.colorB),d=new qt(r.colorC),m=new qt(r.colorD),f=new X(r.alpha??1),h=new xe(r.mode??0),g=new xe(r.noiseType??0),x=new _i(o,n,s,a,c,p,l,u,d,m,f,g),v=new Te(x.calpha,"f");return new ot(t,e,i,{scale:o,size:n,move:s,fA:a,fB:c,distortion:p,colorA:l,colorB:u,colorC:d,colorD:m,alpha:f,mode:h,noiseType:g},x,h,v)}case"normal":{let o=new pt(r.cnormal??new Se.Vector3(1,1,1)),n=new X(r.alpha??1),s=new xe(r.mode??0),a=new Mi(o,n),c=new Te("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return c.keywords.alpha=n,new ot(t,e,i,{cnormal:o,alpha:n,mode:s},a,s,c)}case"gradient":{let o=new xe(r.gradientType??0),n=new no(r.smooth??!1),s;r.colors?s=new Jt(r.colors.length,r.colors):(s=new Jt(10,new Se.Vector4(0,0,0,1)),s.value[1]=new Se.Vector4(1,1,1,1));let a;r.steps?a=new et(r.steps.length,r.steps):(a=new et(10,1),a.value[0]=0);let c=new rt(r.offset??new Se.Vector2(0,0)),p=new rt(r.morph??new Se.Vector2(0,0)),l=new X(r.angle??0),u=new X(r.alpha??1),d=new xe(r.mode??0),m=new Li(o,n,s,a,c,p,l,u),f=new Te(m.calpha,"f");return new ot(t,e,i,{gradientType:o,smooth:n,colors:s,steps:a,offset:c,morph:p,angle:l,alpha:u,mode:d},m,d,f)}default:{let o=new Ne(1,0,0,1),n=new X(1),s=new Te("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=n;let a=new xe(0);return o.alpha=n,new ot(t,e,i,{color:o,alpha:n,mode:a},o,a,s)}}}function Hb(i,t,e,r){let o=km(e,r);return jb(e,i,t,o)}function ac(i,t,e){if(e.type==="displace"&&(i==="intensity"||i==="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"&&(i==="alpha"||i==="visible")){let r=t.uniforms[`f${t.id}_alpha`];if(!r)return;if(r.value=e.alpha*(e.visible?1:0),e.type==="outline"&&i=="visible"){let o=t.uniforms[`f${t.id}_compensation`];o&&(o.value=e.compensation&&e.visible)}return r}}var Zm=i=>i.tagName==="VIDEO",En=class{static resize(t,e,r){let o=t/e,n;if(!r.image)return;let s=r.image;Zm(s)?n=s.videoWidth/s.videoHeight:n=s.width/s.height,o>n&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*n/o):r.repeat.set(1,1*n/o)),o<n&&(r.imageType=="WEBCAM"?r.repeat.set(1*o/n*-1,1):r.repeat.set(1*o/n,1)),o==n&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1))}static resizeTextureLayer(t,e,r){let o=t/e,n=r.image!==void 0?r.image.width/r.image.height:1,s;o>n?s={x:1,y:n/o}:o<n?s={x:o/n,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 n=0;n<o.length;n++){let s=o[n];Qm(s)&&En.resizeTextureLayer(t,e,s.uniforms[`f${s.id}_texture`].value)}}static resizeComplex(t,e,r,o){let n=t/e,s,a=r.image;Zm(a)?s=a.videoWidth/a.videoHeight:s=a.width/a.height,o.geometry.type.includes("Shape")?(n>s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e*s/n):r.repeat.set(1/t,1/e*s/n)),n<s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*n/s*-1,1/e):r.repeat.set(1/t*n/s,1/e)),n==s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e):r.repeat.set(1/t,1/e))):(n>s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*s/n):r.repeat.set(1,1*s/n)),n<s&&(r.imageType=="WEBCAM"?r.repeat.set(1*n/s*-1,1):r.repeat.set(1*n/s,1)),n==s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1)))}};var La=class extends it{constructor(e,r){super(e,r);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e){super.updateGeometry(e),this.material.layers&&En.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var Gn=class extends it{constructor(e,r){super(e,r);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var Ia=class extends Gn{constructor(e,r){super(e,r);this.objectType="NonParametric"}};var $t=require("three"),Jm=require("three/examples/jsm/loaders/FontLoader.js"),We=class extends $t.Mesh{constructor({char:e,originalChar:r,fontFamily:o,letterSpacing:n,fontSize:s,LOD:a=16},c=new $t.MeshBasicMaterial({color:0,opacity:1,visible:!0,transparent:!0,side:$t.DoubleSide})){let p=We.loadChar(e,o,a);super(p.geometry,c);this.char=e,this.originalChar=r??e,this.fontFamily=o,this.letterSpacing=n,this.fontSize=s,this.LOD=a,this.resolution=p.resolution,this.glyphsHa=p.glyphsHa,this.localPosition=new $t.Vector2,this.charSize=0,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}static get FONTS_PATH(){return We._fontPath}static set FONTS_PATH(e){We._fontPath=e}updatePosition(e,r){this.localPosition.copy(e);let o=new $t.Vector3(this.localPosition.x,-this.localPosition.y,0);this.position.copy(o).add(r)}updateFontSize(e){let r=e/this.resolution;this.fontSize=e,this.scale.set(this.fontSize,this.fontSize,1),this.charSize=this.glyphsHa*r*this.letterSpacing}updateFontFamily(e){if(this.fontFamily===e)return;this.fontFamily=e;let r=We.loadChar(this.char,e,this.LOD);this.geometry=r.geometry,this.resolution=r.resolution,this.glyphsHa=r.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}updateChar(e){if(this.char===e)return;this.char=e;let r=We.loadChar(e,this.fontFamily,this.LOD);this.geometry=r.geometry,this.resolution=r.resolution,this.glyphsHa=r.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}updateLetterSpacing(e){this.letterSpacing!==e&&(this.letterSpacing=e,this.updateFontSize(this.fontSize))}updateLOD(e){if(this.LOD===e)return;this.LOD=e;let r=We.loadChar(this.char,this.fontFamily,this.LOD);this.geometry=r.geometry,this.resolution=r.resolution,this.glyphsHa=r.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}clone(){let e={char:this.char,originalChar:this.originalChar,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,LOD:this.LOD};return new We(e).copy(this)}static loadFont(e){return new Promise(function(r,o){We.fontCache[e]?r(We.fontCache[e]):new Jm.FontLoader().load(We.FONTS_PATH+e+".json",s=>{We.fontCache[e]=s,r(s)},void 0,o)})}static loadChar(e,r,o){if(We.charCache[e]){if(We.charCache[e][o]&&We.charCache[e][o].fontFamily===r)return We.charCache[e][o]}else We.charCache[e]={};let n=We.fontCache[r],s=n.generateShapes(e,1);return We.charCache[e][o]={geometry:new $t.ShapeBufferGeometry(s,o),fontFamily:r,resolution:n.data.resolution,glyphsHa:n.data.glyphs[e].ha},We.charCache[e][o]}},er=We;er.charCache={},er.fontCache={},er._fontPath="/_assets/_fonts/";var Cr=require("three");var uc=require("three"),Pa=new uc.Vector2,No=class{constructor(t,e,r){this.message=[];this.endLine=!0;this.yLinePos=t,this.lineHeight=e,this.maxCharSize=r,this.nextChar3DPos=new uc.Vector2(0,this.yLinePos+this.maxCharSize*this.lineHeight),this.align=1}addChar3D(t,e,r=this.message.length){this.message.splice(r,0,t),t.fontSize>this.maxCharSize?(this.maxCharSize=t.fontSize,this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight,this.fullUpdate(e)):(t.updatePosition(this.nextChar3DPos,e),this.nextChar3DPos.x+=t.charSize)}deleteChar3D(t=this.message.length-1){let e=this.message[t];if(e)return this.message.splice(t,1),this.nextChar3DPos.x-=e.charSize,e}isEndLine(t){this.endLine=t}fullUpdate(t,e=0){this.nextChar3DPos.x=0;for(let r=e,o=this.message.length;r<o;r+=1)this.message[r].updatePosition(this.nextChar3DPos,t),this.nextChar3DPos.x+=this.message[r].charSize}checkOverFlow(t){let e,r=this.message.length-1;if(r<=0)return!1;for(;r>=0;){if(this.message[r].char!==" "){e=this.message[r];break}r-=1}return!!(r>=0&&e&&e.localPosition.x+e.charSize>t)}containSpaceOverFlow(t=this.message.length-1){for(let e=t;e>=0;e-=1)if(this.message[e].char===" ")return!0;return!1}containSpace(t=this.message.length-1){if(this.endLine)return!0;for(let e=t;e>=0;e-=1)if(this.message[e].char===" ")return!0;return!1}popWord(t=this.message.length-1){let e=[],r=!0,o;for(o=t;o>=0;o-=1)if(this.message[o].char===" "){r=!1,e.length===0&&(o-=1,e.splice(0,0,this.message[o]));break}else e.splice(0,0,this.message[o]);return r?e=[]:this.message.splice(o+1,e.length),e}getWord(t=0,e=1){let r=[],o=t;for(o=t;;o+=e){if(!this.message[o]||this.message[o].char===" "){r.length===0&&this.message[o]&&(r.push(this.message[o]),this.message.splice(o,1));break}e>0?(r.push(this.message[o]),this.message.splice(o,1),o-=e):(r.splice(0,0,this.message[o]),this.message.splice(o,1))}return r}getWordAtIndex(t){let e=[];for(let r=t;r<this.message.length&&this.message[r].char!==" ";r++)e.push(this.message[r]);for(let r=t-1;r>=0&&this.message[r].char!==" ";r--)e.splice(0,0,this.message[r]);return e}wordSize(t=0,e=-1){let r=0,o=t;for(;o>=0&&o<this.message.length;){if(this.message[o].char===" "){r===0&&(r=this.message[o].charSize);break}r+=this.message[o].charSize,o+=e}return(o<0||o>=this.message.length)&&!this.endLine?this.message[t]?this.message[t].charSize:999999999:r===0?999999999:r}spaceLeft(t){return t-this.nextChar3DPos.x}popChar(t=this.message.length-1){return this.nextChar3DPos.x-=this.message[t].charSize,this.message.splice(t,1)}isEmpty(){return!this.message.length}updateNextCharPosY(){this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight}updateYLinePos(t){this.yLinePos=t,this.updateNextCharPosY()}updatelineHeight(t){this.lineHeight=t,this.updateNextCharPosY()}updateFontSize(t,e=0,r=this.message.length-1){for(let o=e;o<=r;o+=1)this.message[o].updateFontSize(t);this.maxCharSize=t,this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight}countSpaces(){let t=0;for(let e=0;e<this.message.length;e++)this.message[e].char===" "&&(t+=1);return t}alignText(t,e,r,o,n){switch(r){case 1:this.leftAlign(t,n);break;case 3:this.centerAlign(this.spaceLeft(e),t,n);break;case 2:this.rightAlign(this.spaceLeft(e),t,n);break;case 4:this.justifyAlign(this.spaceLeft(e),t,n);break}}offsetCharacters(t,e,r){Pa.set(e,r);let o=this.message.length;for(let n=0;n<o;n++)this.message[n].updatePosition(this.message[n].localPosition.add(Pa),t)}leftAlign(t,e){this.align=1,this.offsetCharacters(t,0,e)}centerAlign(t,e,r){this.align=3,this.offsetCharacters(e,t/2,r)}rightAlign(t,e,r){this.align=2,this.offsetCharacters(e,t,r)}justifyAlign(t,e,r){if(this.align=4,this.endLine){this.offsetCharacters(e,0,r);return}let o=this.countSpaces();if(o===0){this.offsetCharacters(e,0,r);return}let n=t/o,s=0;for(let a=0;a<this.message.length;a++)this.message[a].char===" "&&(s+=n),Pa.set(s,r),this.message[a].updatePosition(this.message[a].localPosition.add(Pa),e)}clone(){let t=new No(this.yLinePos,this.lineHeight,this.maxCharSize);t.nextChar3DPos=this.nextChar3DPos.clone(),t.align=this.align,t.endLine=this.endLine;for(let e=0;e<this.message.length;e++)t.message.push(this.message[e].clone());return t}};var pc=class extends it{constructor(e){super(e,new Cr.MeshBasicMaterial({transparent:!0,opacity:1,visible:!1,side:Cr.DoubleSide}));this.objectType="TextFrame";this.charContainer=new Cr.Object3D,this.add(this.charContainer),this.material.visible=!1,this._geometryUserData=e.userData,this.userData.textFrame={hexColor:null,opacity:1,visible:!0,text:"",fontSize:16,lineHeight:1.5,letterSpacing:1,fontFamily:"roboto_regular",textTransform:1,horizontalAlignment:1,verticalAlignment:1,LOD:16,maxLineSize:this._geometryUserData.parameters.width,textOrigin:new Cr.Vector3(this._geometryUserData.parameters.width*-.5,this._geometryUserData.parameters.height*.5,0),textLines:[]},this.createTextLine()}static createFromState(e,r,o){let n=sa.create({parameters:{width:r.width,height:r.height}}),s=new pc(n).fromState(r,o);return s.uuid=e,s}async updateText(e){this.clearText();let r=this.userData.textFrame,o=r.fontFamily;await er.loadFont(o),r.text=e;let n=r.textOrigin,s=new Cr.MeshBasicMaterial({visible:r.visible,transparent:!0,side:Cr.DoubleSide}),a=e.split(`
1329
+ `),c=0;this.userData.textFrame.textLines=a.map((p,l)=>{let u=new No(c,r.lineHeight,r.fontSize);return u.message=p.split("").map(d=>{let m={char:d,fontFamily:o,letterSpacing:r.letterSpacing,fontSize:r.fontSize,LOD:16},f=s.clone();f.color=r.hexColor,f.opacity=r.opacity;let h=new er(m,f);return u.addChar3D(h,n),this.charContainer.add(h),h}),c+=u.maxCharSize*u.lineHeight,u}),this.textFullUpdate(),this.checkOverFlow()}clearText(){let e=this.userData.textFrame.textLines;for(;this.charContainer.children.length;){let r=this.charContainer.children[0];this.charContainer.remove(r)}for(;e.length;)e.pop()}raycast(e,r){let o=[];if(super.raycast(e,o),o.length>0){r.push(o[0]);return}let n=[];for(let s=0,a=this.charContainer.children.length;s<a;++s)if(this.charContainer.children[s]instanceof er&&(e.intersectObject(this.charContainer.children[s],!1,n),n.length>0)){n[0].object=this,r.push(n[0]);return}}updateGeometry(e){let r=this.userData,o=this.geometry.userData,n=o.parameters.width,s=o.parameters.height,a=e.parameters?.width??n,c=e.parameters?.height??s,p=r.textFrame;super.updateGeometry(e),p.maxLineSize=a,p.textOrigin.set(-.5*a,.5*c,0),c!==s?(this.checkOverFlow(),this.checkCapacity()):a!==n&&(n<a?this.checkCapacity():n>a&&this.checkOverFlow())}checkOverFlow(e=0){let r=this.userData,o=r.textFrame.textOrigin,n=r.textFrame.textLines;for(let s=e;s<n.length;s++){n[s].updateYLinePos(this.getNewLinePosition(s)),n[s].fullUpdate(o);let a=[];for(;n[s].checkOverFlow(r.textFrame.maxLineSize);)n[s].containSpaceOverFlow()?a.unshift(n[s].getWord(n[s].message.length-1,-1)):a.unshift(n[s].popChar());if(a.length>0){n[s+1]===void 0?(n[s].isEndLine(!1),this.createTextLine()):n[s].endLine&&(this.createTextLine(s+1),n[s].isEndLine(!1),n[s+1].isEndLine(!0));let c=0;for(let p=0;p<a.length;p+=1)for(let l=0;l<a[p].length;l+=1)n[s+1].addChar3D(a[p][l],o,c),c+=1;n[s+1].fullUpdate(o)}n[s].fullUpdate(o)}this.textFullUpdate(e)}checkCapacity(e=0){let r=this.userData,o=r.textFrame.textOrigin,n=r.textFrame.maxLineSize,s=r.textFrame.textLines;for(let a=e;a<s.length;a+=1)if(s[a].updateYLinePos(this.getNewLinePosition(a)),s[a].fullUpdate(o),!!s[a-1])for(;!s[a-1].endLine;){let c,p=s[a-1].spaceLeft(n);if(s[a].wordSize(0,1)<=p){s[a].containSpace()?c=s[a].getWord(0,1):c=s[a].popChar(0);for(let l=0;l<c.length;l+=1)c[l]&&s[a-1].addChar3D(c[l],o)}else{s[a].isEmpty()?(s[a].endLine&&s[a-1].isEndLine(!0),s.splice(a,1),a-=1):(s[a].updateYLinePos(this.getNewLinePosition(a)),s[a].fullUpdate(o));break}}this.textFullUpdate(e)}createTextLine(e=this.userData.textFrame.textLines.length){let o=this.userData.textFrame;o.textLines.splice(e,0,new No(this.getNewLinePosition(e),o.lineHeight,o.fontSize))}textFullUpdate(e=0){let o=this.userData.textFrame,n=o.textLines,s=this.getVerticalAlignmentOffSet();for(let a=e;a<n.length;a++)n[a].updateYLinePos(this.getNewLinePosition(a)),n[a].fullUpdate(o.textOrigin),n[a].alignText(o.textOrigin,o.maxLineSize,o.horizontalAlignment,o.verticalAlignment,s)}getVerticalAlignmentOffSet(){switch(this.userData.textFrame.verticalAlignment){case 1:return 0;case 2:return this.getRemainingVerticalSpace()/2;case 3:return this.getRemainingVerticalSpace();default:return 0}}getRemainingVerticalSpace(){let r=this.userData.textFrame.textLines;return this.geometry.userData.parameters.height-this.getNewLinePosition(r.length)}getNewLinePosition(e){let o=this.userData.textFrame.textLines,n=0;for(let s=0;s<e;s+=1)n+=o[s].maxCharSize*o[s].lineHeight;return n}updateColor(e){let r=this.userData;r.textFrame.hexColor=e;let o=r.textFrame.textLines;for(let n=0;n<o.length;n++){let s=o[n].message;for(let a=0;a<s.length;a++){let c=s[a].material;c.color?.isColor&&(c.color=e)}}}updateOpacity(e){let r=this.userData;r.textFrame.opacity=e;let o=r.textFrame.textLines;for(let n=0;n<o.length;n++){let s=o[n].message;for(let a=0;a<s.length;a++){let c=s[a].material;c.opacity=e}}}updateVisible(e){let r=this.userData;r.textFrame.visible=e;let o=r.textFrame.textLines;for(let n=0;n<o.length;n++){let s=o[n].message;for(let a=0;a<s.length;a++){let c=s[a].material;c.visible=e}}}async updateFontFamily(e){await er.loadFont(e);let o=this.userData.textFrame,n=o.textLines;o.fontFamily=e;for(let s=0;s<n.length;s++){let a=n[s].message;for(let c=0;c<a.length;c++)a[c].updateFontFamily(e)}this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateFontSize(e){let o=this.userData.textFrame,n=o.textLines,s=o.fontSize;o.fontSize=e;for(let a=0;a<n.length;a++)n[a].updateFontSize(e);this.textFullUpdate(),e>s?this.checkOverFlow():e<s&&this.checkCapacity()}async updateTextTransform(e){let o=this.userData.textFrame;await er.loadFont(o.fontFamily);let n=o.textLines;switch(o.textTransform=e,e){case 2:for(let s=0;s<n.length;s++){let a=n[s].message;for(let c=0;c<a.length;c++)n[s].message[c].updateChar(a[c].char.toUpperCase())}break;case 3:for(let s=0;s<n.length;s++){let a=n[s].message;for(let c=0;c<a.length;c++)n[s].message[c].updateChar(a[c].char.toLowerCase())}break;default:for(let s=0;s<n.length;s++){let a=n[s].message;for(let c=0;c<a.length;c++)n[s].message[c].updateChar(a[c].originalChar)}}this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateLetterSpacing(e){let r=this.userData,o=r.textFrame.textLines;r.textFrame.letterSpacing=e;for(let n=0;n<o.length;n++){let s=o[n].message;for(let a=0;a<s.length;a++)s[a].updateLetterSpacing(e)}this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateLOD(e){let r=this.userData;r.textFrame.LOD=e;let o=r.textFrame.textLines;for(let n=0;n<o.length;n++);this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateLineHeight(e){let r=this.userData,o=r.textFrame.textLines;r.textFrame.lineHeight=e;for(let n=0;n<o.length;n++)o[n].updatelineHeight(e);this.textFullUpdate()}updateVerticalAlignment(e){let r=this.userData;r.textFrame.verticalAlignment=e,this.textFullUpdate()}updateHorizontalAlignment(e){let r=this.userData;r.textFrame.horizontalAlignment=e,this.textFullUpdate()}fromTextFrameData(e,r){if(e.color!==void 0){let o=Ye(e.color,r);this.updateColor(o),this.updateOpacity(o.a)}e.alpha!==void 0&&this.updateOpacity(e.alpha),e.font!==void 0&&this.updateFontFamily(e.font),e.horizontalAlign!==void 0&&this.updateHorizontalAlignment(e.horizontalAlign),e.verticalAlign!==void 0&&this.updateVerticalAlignment(e.verticalAlign),e.textTransform!==void 0&&this.updateTextTransform(e.textTransform),e.fontSize!==void 0&&this.updateFontSize(e.fontSize),e.lineHeight!==void 0&&this.updateLineHeight(e.lineHeight),e.letterSpacing!==void 0&&this.updateLetterSpacing(e.letterSpacing),e.text!==void 0&&e.text!==""&&this.updateText(e.text),(e.width!==void 0||e.height!==void 0)&&this.updateGeometry({parameters:{width:e.width,height:e.height}})}fromState(e,r){return super.fromState(e),this.fromTextFrameData(e,r),this}},Oo=pc;Oo.VerticalAlign=ul,Oo.HorizontalAlign=cl,Oo.TextTransform=pl;var Ma=require("three");var tr=class extends Ma.ShaderMaterial{constructor(e,r){super(void 0);this.data=e;this.layerIdGen=0;this.type="NodeMaterial";this.uniformsBackup={};this.fog=!0,this.updaters=[],this.dithering=!0,this.vertexColors=!0,this.onBeforeCompile=this._onBeforeCompile,this.reset(e,r)}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.data.category}reset(e,r){let o=e.layers??Mr.defaultTwoLayerData("phong").layers;this.layers=o.map(n=>Tr.create(this.layerIdGen++,n.id,n.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 Ar),this.lightLayer===void 0&&(this.lightLayer=new Ar(0,"",Xr.defaultData("light","basic"),new oo,{})),this.lightLayer.node instanceof oo||(this.lightLayer.node.penumbraSize=e.penumbraSizeNode),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(e,r,o){if(this.data=r,e.path[0]==="layers"){let n=e.path[1];if(n===void 0){if(this.layers.reverse(),e.type===4){let s=Tr.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),a=this.layers[s];this.layers.splice(s,1),this.layers.splice(e.localIndex,0,a)}this.layers.reverse(),this.onUpdate(o)}else{let s=this.layers.find(a=>a.uuid===n);if(s){let a=r.layers.data(n);if(s.updateByOp({...e,path:e.path.slice(2)},a,o)){let p=Tr.create(this.layerIdGen++,n,a,o);this.layers.splice(this.layers.findIndex(l=>l.uuid===n),1,p),this.onUpdate(o)}}}}}blendColors(){let e=this.layers.findIndex(o=>o instanceof ot),r=this.layers.findIndex(o=>o instanceof Ar);if(e!==-1&&e<r){let o=this.layers[e].color;for(let n=e+1;n<r;++n){let s=this.layers[n];s instanceof ot&&(o=new Ni(o,s.color,s.alpha,s.mode))}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new Te("outgoingLight","f"),r=this.layers.findIndex(o=>o instanceof Ar);if(this.layers.length>r+1){for(let o=r+1;o<this.layers.length;++o){let n=this.layers[o];n instanceof ot&&(e=new Ni(e,n.color,n.alpha,n.mode))}this.fragment.afterColor=e}else this.fragment.afterColor=void 0}blendPositions(){let e=this.layers.filter(r=>r instanceof Ri);if(e.length>0){let r=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(r=new Lt(r,e[o].position,Lt.ADD),r=new Lt(r,new X(.5).setReadonly(!0),Lt.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=(n,s,a)=>Math.min(Math.max(n,s),a);for(let n of this.layers)if(n.type==="displace"){this.uniformsBackup[`f${n.id}_intensity`]=n.uniforms[`f${n.id}_intensity`].value;let s=o(n.uniforms[`f${n.id}_intensity`].value,e,r);n.uniforms[`f${n.id}_intensity`].value=s}}restoreClampedUniforms(){for(let e of this.layers)e.type==="displace"&&(e.uniforms[`f${e.id}_intensity`].value=this.uniformsBackup[`f${e.id}_intensity`])}customProgramCacheKey(){return this.getHash()}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 Ca;return this.lights=this.lightLayer.data.category!=="basic",r.setMaterial(this,e.renderer),r.build(this.fragment,this.fragment),this.vertexShader=r.getCode("vertex"),this.fragmentShader=r.getCode("fragment"),this.defines=r.defines,this.uniforms=r.uniforms,this.extensions=r.extensions,this.updaters=r.updaters,this.transparent=r.requires.transparent||this.blending>Ma.NormalBlending,this}dispose(){this.layers.forEach(e=>e.dispose()),super.dispose()}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(tr.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(i){i===!0&&this.version++,this.needsCompile=i},get:function(){return this.needsCompile}}});var lt=require("three");var Lo=class extends tr{};var of=vc(ef());var tf=new Map;function rf(i){if(typeof i=="string")return i;let t=tf.get(i);return t||(t={url:URL.createObjectURL(new Blob([i]))},tf.set(i,t)),t.url}var Rn=class{constructor({src:t,volume:e,delay:r,loop:o}){this._volume=1;this.delay=0;this._loop=1;this.loopsRemaining=0;this._isStarted=!1;this.onEnd=()=>{this._loop>1?this.loopsRemaining===1/0?this.play():this.loopsRemaining>1?(this.play(),this.loopsRemaining--):this._isStarted=!1:this._isStarted=!1};let n;typeof t=="string"?n={src:t}:n={src:rf(t),format:"wav"},this.sound=new of.Howl(n),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 src(){return this._src}get isStarted(){return this._isStarted}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}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._isStarted=!0,this.delay?(this.clearDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.clearDelay()},this.delay)):this.sound.play()}pause(){this._isStarted=!1,this.sound.pause(),this.clearFade(),this.clearDelay()}stop(){this._isStarted=!1,this.sound.stop(),this.loopsRemaining=this._loop,this.clearFade(),this.clearDelay()}clearFade(){this.fadeTimerId&&(clearTimeout(this.fadeTimerId),delete this.fadeTimerId)}clearDelay(){this.delayTimerId&&(clearTimeout(this.delayTimerId),delete this.delayTimerId)}dispose(t=!1){this.off(),this.stop(),this.clearFade(),this.clearDelay()}};var Fi=class{constructor(t){this.deletedMaterial=new Lo(Mr.defaultTwoLayerData("basic"),this);this.deletedImage=new Co(Ks.emptyImage);this.materials={};this.images={};this.colors={};this.audios={};this.onImageLoad=()=>{this._onImageLoad&&this._onImageLoad()};this.transmissionRenderTarget=new lt.WebGLRenderTarget(2048,2048,{generateMipmaps:!0,minFilter:lt.LinearMipmapLinearFilter,magFilter:lt.LinearFilter,wrapS:lt.ClampToEdgeWrapping,wrapT:lt.ClampToEdgeWrapping}),this.transmissionRenderTarget.depthTexture=new lt.DepthTexture(2048,2048),this.normalRenderTarget=new lt.WebGLRenderTarget(1024,1024,{generateMipmaps:!1,minFilter:lt.NearestFilter,magFilter:lt.NearestFilter,type:lt.FloatType}),this.normalRenderTarget.depthTexture=new lt.DepthTexture(1024,1024),this.penumbraSizeNode=new et(5,t.penumbraSize),this.resolutionNode=new rt(1,1),this.pixelRatioNode=new X(window.devicePixelRatio),this.reset(t)}setOnImageLoad(t){this._onImageLoad=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 Lo(r,this));for(let[e,r]of Object.entries(t.audios))this.addAudio(e,r.data)}get transmissionSamplerMap(){return this.transmissionRenderTarget.texture}get transmissionDepthMap(){return this.transmissionRenderTarget.depthTexture}get normalMap(){return this.normalRenderTarget.texture}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 tr(t,this)}getMaterials(){return this.materials}addImage(t,e){return this.images[t]?(this.images[t].updateSrc(e.data),!0):(this.images[t]=new Co(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 Bn(t,this.onImageLoad)}getImages(){return this.images}addColor(t,e){return this.colors[t]?("a"in e?this.colors[t].setRGBA(e.r,e.g,e.b,e.a):this.colors[t].setRGBA(e.r,e.g,e.b,1),!0):("a"in e?this.colors[t]=new io(e.r,e.g,e.b,e.a):this.colors[t]=new io(e.r,e.g,e.b,1),!1)}updateColor(t,e){if(this.colors[t]){let r=this.colors[t];return this.colors[t].r=e.r??r.r,this.colors[t].g=e.g??r.g,this.colors[t].b=e.b??r.b,this.colors[t].a=e.a??r.a,!0}return!1}deleteColor(t){this.colors[t]&&delete this.colors[t]}getColor(t){return this.colors[t]}color(t){let e;if(typeof t=="string"){let r=this.getColor(t);r?e=r:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),e=new ct(0,0,0,0))}else return"a"in t?new ct(t.r,t.g,t.b,t.a):new ct(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 Rn)return e;{let r=new Rn({src:e});return this.audios[t]=r,r}}deleteAudio(t){this.audios[t]&&delete this.audios[t]}dispose(){Object.keys(this.materials).forEach(e=>this.deleteMaterial(e)),this.transmissionRenderTarget.depthTexture.dispose(),this.transmissionRenderTarget.dispose(),this._onImageLoad=void 0,Object.values(this.audios).forEach(e=>{e instanceof Rn&&e.dispose()}),this.audios={}}},KV=new Fi(Ys.emptyData());var nf=require("three/examples/jsm/loaders/DRACOLoader.js");var ao;function Wb(){return ao||(ao=new nf.DRACOLoader,ao.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),ao.decoderPending}async function qb(i){if(ao){let t={attributeIDs:ao.defaultAttributeIDs,attributeTypes:ao.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await ao.decodeGeometry(new Int8Array(i).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 sf(i,t){let[e,r]=qa(zs.deserialize(new Uint8Array(i))),o=[];e.scene.objects.traverse((n,s)=>{s.type==="Mesh"&&s.geometry.type==="NonParametricGeometry"&&s.geometry.data.draco!==void 0&&o.push(s)}),o.length&&await Wb();for(let n of o){let s=await qb(Xa(n.geometry.data.draco));if(s){s.index&&(n.geometry.data.index={array:s.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let a={};s.attributes.forEach(({name:c,array:p,itemSize:l})=>{a[c]={array:p,itemSize:l,type:"Float32Array",normalized:!1}}),n.geometry.data.attributes=a,n.geometry.data.draco=void 0}}return t&&t(e),r.result().data}var Ft=require("three");var _t=require("three");var uf=vc(lf());var dc;aa.then(i=>{dc=i});var pf=new _t.Matrix4,$b=new _t.Matrix4,Xb=new _t.Matrix4,rr=new _t.Box3,lo=new _t.Vector3,Yb=new _t.Matrix4,Kb=new _t.Matrix4,Fn=class extends it{constructor(e,r,o,n){super(o??r,n);this.subdivPointer=e;this.originalGeometry=r;this.subdividedGeometry=o;this.objectType="SubdivObject";this.hiddenMatrixOld=new _t.Matrix4;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new _t.Matrix4;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,r,o){let{subdivPointer:n,originalGeometry:s,subdividedGeometry:a}=Ht.build(r.geometry,void 0,void 0,!r.flatShading),c=o.material(r.material),p=new Fn(n,s,a||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:n,subdivPointer:s}=Ht.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),n!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=n??void 0),this.geometry=this.subdividedGeometry??this.originalGeometry,eo(this),to(this),e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){Ht.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&Ht.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=Ht.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=Ht.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(e,r){this.geometry=this.originalGeometry,it.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:n,q:s}=(0,uf.SVD)(r),a=pf.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=$b.set(n[0][0],n[0][1],n[0][2],0,n[1][0],n[1][1],n[1][2],0,n[2][0],n[2][1],n[2][2],0,0,0,0,1),p=Xb.copy(c).transpose();this.shearScale=Yb.makeScale(s[0],s[1],s[2]).multiply(p).premultiply(c),this.shearScaleInv=Kb.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(a,p),s.every(l=>Math.abs(s[0]-l)<.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 _t.Sphere);let r=e.attributes.position,o=e.boundingSphere.center;rr.setFromBufferAttribute(r),rr.getCenter(o),e.boundingSphere.radius=o.distanceTo(rr.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),rr.getSize(lo);let n={width:lo.x,height:lo.y,depth:lo.z};return this.geometry.userData.parameters=n,n}updateBoundingBox(e){let r=this.originalGeometry;rr.min.set(e[0],e[2],e[4]),rr.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(rr.min.applyMatrix4(this.shearScaleInv),rr.max.applyMatrix4(this.shearScaleInv)),r.boundingSphere===null&&(r.boundingSphere=new _t.Sphere);let o=r.boundingSphere.center;rr.getCenter(o),r.boundingSphere.radius=o.distanceTo(rr.max),isNaN(r.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),rr.getSize(lo);let n={width:lo.x,height:lo.y,depth:lo.z};return this.geometry.userData.parameters=n,n}freeSubdivPointer(){this.subdivPointer&&(dc.free_bvh(this.subdivPointer),dc.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(e){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,cf(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(cf(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 cf(i,t,e,r){let o=i.position.array,n=i.normal.array,s=pf.makeScale(t,e,r).invert().elements,a,c,p;for(var l=0,u=o.length;l<u;l+=3)o[l]*=t,o[l+1]*=e,o[l+2]*=r,a=n[l],c=n[l+1],p=n[l+2],n[l]=s[0]*a+s[4]*c+s[8]*p,n[l+1]=s[1]*a+s[5]*c+s[9]*p,n[l+2]=s[2]*a+s[6]*c+s[10]*p}var co=require("three");function df(i,t){t.flatShading!==void 0&&(i.flatShading=t.flatShading,i.needsUpdate=!0),t.wireframe!==void 0&&(i.wireframe=t.wireframe),t.side!==void 0&&(t.side===0?i.side=co.FrontSide:t.side===1?i.side=co.BackSide:i.side=co.DoubleSide)}function Qb(i,t){if(Array.isArray(i.material))for(let e of i.material)df(e,t);else{let e=i.material;df(e,t)}i.objectType==="SubdivObject"&&t.flatShading!==void 0&&(i.material.flatShading=!1,i.smoothShading=!t.flatShading,i.updateMesh())}function mf(i,t,e){let r;if(t.geometry.type==="SubdivGeometry")r=Fn.createFromState(i,t,e);else{let o=t.geometry.type==="BooleanGeometry"?new co.BufferGeometry:ma(t.geometry,e),n="materials"in t?t.materials.map(s=>e.material(s)):e.material(t.material);Ws.is2DParametricMesh(o.userData.type)?r=new La(o,n):o?.userData.type==="VectorGeometry"?r=new yn(o,n):t.geometry.type==="NonParametricGeometry"?r=new Ia(o,n):t.geometry.type==="BooleanGeometry"?(r=new ha(void 0,n),r.booleanOp=t.geometry.operation,t.geometry.phongAngle!==void 0&&(r.phongAngle=t.geometry.phongAngle)):r=new Gn(o,n),r.uuid=i,r.fromState(t,e)}return Qb(r,t),r}function ff(i,t,e){return t.type==="Mesh"?mf(i,t,e):t.type==="TextFrame"?Oo.createFromState(i,t,e):t.type==="Empty"?So.createFromState(i,t):t.type==="PointLight"?Tn.createFromState(i,t,e):t.type==="SpotLight"?An.createFromState(i,t,e):t.type==="DirectionalLight"?wn.createFromState(i,t,e):Qo.is(t.type)?Rr.createFromState(i,t):(console.error(t),new So)}var Fr=require("three");function e_(i,t){t.uniforms[`f${t.id}_transmissionSamplerMap`].value=i.texture,t.uniforms[`f${t.id}_transmissionDepthMap`].value=i.depthTexture}function t_(i,t){t.uniforms[`f${t.id}_normalMap`].value=i.texture,t.uniforms[`f${t.id}_depthMap`].value=i.depthTexture}function hf(i,t,e){let r=!1,o=e.getLayersOfType("transmission"),n=e.getLayersOfType("outline");return n.length>0&&(t.layers.set(8),o.length===0&&t.layers.enable(3),r=!0,i!==void 0&&n.forEach(s=>t_(i,s)),to(t),eo(t)),o.length===0&&n.length===0&&t.layers.set(0),r}function gf(i,t,e){if(!e.layers)return!1;let r=!1,o=e.getLayersOfType("transmission"),n=e.getLayersOfType("outline");return o.length>0&&(t.layers.set(3),n.length>0&&t.layers.enable(8),r=!0,i!==void 0&&o.forEach(s=>e_(i,s))),o.length===0&&n.length===0&&t.layers.set(0),r}function yf(i,t){let e=!1;return t.traverseEntity(r=>{if(r instanceof Fr.Mesh&&r.objectType!=="TextFrame")if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)hf(i,r,r.material[o])&&(e=!0);else hf(i,r,r.material)&&(e=!0)}),e}function xf(i,t){let e=!1;return t.traverseEntity(r=>{if(r instanceof Fr.Mesh)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)gf(i,r,r.material[o])&&(e=!0);else gf(i,r,r.material)&&(e=!0)}),e}function vf(i){"material"in i&&r_(i.material),"geometry"in i&&i.geometry.dispose()}function r_(i){bc(i).forEach(t=>{t instanceof Lo||t.dispose()})}var o_=new Fr.Raycaster,n_=new Fr.Matrix4,i_=new Fr.Ray;function bf(i,t,e){let r=i.cloner;if(r)for(let o of r.children){let n=n_.copy(o.matrixWorld).invert(),s=i_.copy(t.ray).applyMatrix4(n),a=i.matrixWorld;s.applyMatrix4(a);let c=o_;c.set(s.origin,s.direction),c.near=t.near,c.far=t.far,c.intersectObject(i,!1).length>0&&e.push({object:i})}}var _f=new Ft.Vector3,mc=class extends ua(Ft.Scene){constructor(e,r){super();this.objectType="Scene";this.alpha=1;this.backupFog=new Ft.Fog(16777215,.1,2e3);this.fogUseBGColor=!1;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this._color=new Ft.Color(1,0,0);this.bgColor=new Ft.Color(1,1,1);this.entityByUuid={};this.ambientLight=new Ft.HemisphereLight(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.init(e,r)}needsTransmission(e){return this.needsTransmissionDirty&&(this._needsTransmission=xf(e,this),e!==void 0&&(this.needsTransmissionDirty=!1)),this._needsTransmission}needsNormal(e){return this.needsNormalDirty&&(this._needsNormal=yf(e,this),e!==void 0&&(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 color(){return this._color}set color(e){this.fogUseBGColor===!0&&this.backupFog.color.copy(e),this._color.copy(e)}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(Ye(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 Rr&&this.switchActiveCamera(o)}this.traverse(o=>{mr(o)&&o.recomputeBoolean()})}clearScene(){this.traverseEntity(e=>{vf(e)});for(let e of this.children)gr(e)&&e.removeFromParent()}resetAfterClear(e,r){this.init(e,r)}createPersonalCamera(){let e=Rr.createFromState(mc.PERSONAL_CAMERA_ID,{...$s.defaultData,name:"Personal Camera"});return e.objectHelper.visible=!1,delete e.isEntity,this.registerObjectCreatedInLegacy(e),e}raycast(e){let r=[],o=n=>{for(let s of n.children)gr(s)&&!s.raycastLock&&s.visible&&((dr(s)||la(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,r),bf(s,e,r)),o(s))};return o(this),r}traverseEntity(e){for(let r of this.children)gr(r)&&r.traverseEntity(e)}traverseVisibleEntity(e){for(let r of this.children)gr(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=Ye(e.color,r),this.backupFog.near=e.near,this.backupFog.far=e.far}dispose(){this.clearScene()}updateAmbientLight(e,r){lm(this.ambientLight,e,r),e.groundColor!==void 0&&(this.ambientLight.groundColor=Ye(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.alpha=e.a}createChildrenObjects(e,r,o){for(let n of e)this.createChildObject(n.id,n.data,n.children,r,o)}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let r of e.children)this.unregisterObject(r)}createChildObject(e,r,o,n,s){let a=ff(e,r,s);return a&&(this.entityByUuid[e]=a,n.add(a),mr(n)&&dr(a)&&(a.prevBooleanObjectParent=n),this.createChildrenObjects(o,a,s)),a}getCenter(e){let r=[];for(let n=0,s=e.length;n<s;++n){let{id:a,recursive:c}=e[n],p=this.find(a),l=c?p.recursiveBBox:p.singleBBox;r.push(...l.vertices)}let o=new Ft.Box3;return o.setFromPoints(r),o.getCenter(_f),_f}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 it)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)r.material[o]instanceof tr&&e(r.material[o]);else r.material instanceof tr&&e(r.material)})}updateCanvasSize(e,r){this.activeCamera.setViewplaneSize(e,r);let o,n;e>=r?(o=r/e,n=1):(o=1,n=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=n})})}},Vi=mc;Vi.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var s_=require("three"),a_=require("three/examples/jsm/utils/BufferGeometryUtils.js");function Sf(i){let t;if(!!i.index)for(let e=0;e<i.index.array.length;e+=3)t=i.index.array[e],i.index.array[e]=i.index.array[e+2],i.index.array[e+2]=t}var zi=require("three");function wf(i){let t=new Set;return i.traverse(e=>{if(dr(e))if(Xe(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);l_(e)?(Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new zi.Color,specularColor:new zi.Color}),e.onBeforeCompile=(o,n)=>{r&&r(o,n),o.uniforms=Object.assign(zi.ShaderLib.physical.uniforms,o.uniforms),e.getLayersOfType("transmission").forEach(s=>{o.uniforms.transmissionSamplerMap.value&&(s.uniforms["f"+s.id+"_transmissionSamplerMap"].value=o.uniforms.transmissionSamplerMap.value,s.uniforms["f"+s.id+"_transmissionSamplerSize"].value=o.uniforms.transmissionSamplerSize.value)})}):c_(e)||(e.onBeforeCompile=(o,n)=>{r&&r(o,n),e.transparent=!1})}),i}function l_(i){return i.getLayersOfType("transmission").length>0}function c_(i){let t=0;return i.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 Tf(i){return i.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),i}function Af(i){let t=[],e=(r,o=0)=>{let n=o>0?r+o:r;return t.includes(n)?e(r,o+1):n};return i.traverse(r=>{if(t.includes(r.name)){let o=r.name,n=e(r.name);if(r.name=n,r.isMesh){let s=r;s.material instanceof Array?s.material.forEach(a=>{a.name=a.name.replace(o,n)}):s.material.isAsset||(s.material.name=s.material.name.replace(o,n))}}t.push(r.name)}),i}var Cf=require("three/examples/jsm/utils/BufferGeometryUtils.js");function Nf(i){let t=[];return i.traverse(e=>{e instanceof _o&&t.push(e)}),t.forEach(e=>{let r=e.object,n=e.children.map(a=>{a.updateMatrix();let c=a.geometry.clone().applyMatrix4(a.matrix);return a.matrix.determinant()<0&&Sf(c),c}),s=(0,Cf.mergeBufferGeometries)(e.parameters.hideBase?n:[r.geometry,...n]);r.geometry=s,r.remove(e),r.cloner=void 0}),i}function Of(i){return i.traverse(t=>{t.matrixAutoUpdate=!0}),i}function Lf(i){Object.values(i.shared.materials).forEach(t=>{fc(t)}),i.scene.objects.traverse((t,e)=>{"material"in e?fc(e.material):"materials"in e&&e.materials.forEach(r=>{fc(r)})})}function fc(i){if(typeof i=="string")return;let t=[];i.layers.forEach((e,r)=>{e.type==="outline"&&t.push(r)}),t.reverse().forEach(e=>{i.layers.delete(e)}),t.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var If="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",Ea=class extends Ga.Loader{load(t,e,r,o=console.error){let n=new Ga.FileLoader(this.manager);n.setPath(this.path),n.setResponseType("arraybuffer"),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(If+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(If),n.load(t,async s=>{try{if(typeof s=="string")throw new Error("The .spline file is not binary!");let a=await this.parse(s);e(a)}catch(a){o(a)}},r,o)}async parse(t){let e=await sf(t,Lf),r=new Fi(e.shared);Object.values(r.getMaterials()).forEach(s=>Object.assign(s,{isAsset:!0}));let o=new Vi(e.scene,r);o.remove(o.personalCamera),e.scene.environment.ambientLight.enabled||o.remove(o.ambientLight);let n=e.scene.publish.playCamera;if(n){let s=o.find(n);s&&am(s)&&Object.assign(s,{makeDefault:!0})}return o=Nf(o),o=wf(o),o=Tf(o),o=Af(o),o=Of(o),o}};