@splinetool/loader 0.9.104 → 0.9.105

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 nh=Object.create;var Ki=Object.defineProperty;var ih=Object.getOwnPropertyDescriptor;var sh=Object.getOwnPropertyNames;var ah=Object.getPrototypeOf,lh=Object.prototype.hasOwnProperty;var Tc=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),Ac=(n,t)=>{for(var e in t)Ki(n,e,{get:t[e],enumerable:!0})},Nc=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of sh(t))!lh.call(n,o)&&o!==e&&Ki(n,o,{get:()=>t[o],enumerable:!(r=ih(t,o))||r.enumerable});return n};var Cc=(n,t,e)=>(e=n!=null?nh(ah(n)):{},Nc(t||!n||!n.__esModule?Ki(e,"default",{value:n,enumerable:!0}):e,n)),ch=n=>Nc(Ki({},"__esModule",{value:!0}),n);var Sm=Tc(Ra=>{(function(){"use strict";var n=function(){this.init()};n.prototype={init:function(){var a=this||t;return a._counter=1e3,a._html5AudioPool=[],a.html5PoolSize=10,a._codecs={},a._howls=[],a._muted=!1,a._volume=1,a._canPlayEvent="canplaythrough",a._navigator=typeof window<"u"&&window.navigator?window.navigator:null,a.masterGain=null,a.noAudio=!1,a.usingWebAudio=!0,a.autoSuspend=!0,a.ctx=null,a.autoUnlock=!0,a._setup(),a},volume:function(a){var u=this||t;if(a=parseFloat(a),u.ctx||p(),typeof a<"u"&&a>=0&&a<=1){if(u._volume=a,u._muted)return u;u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.volume=h._volume*a)}return u}return u._volume},mute:function(a){var u=this||t;u.ctx||p(),u._muted=a,u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a?0:u._volume,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.muted=a?!0:h._muted)}return u},stop:function(){for(var a=this||t,u=0;u<a._howls.length;u++)a._howls[u].stop();return a},unload:function(){for(var a=this||t,u=a._howls.length-1;u>=0;u--)a._howls[u].unload();return a.usingWebAudio&&a.ctx&&typeof a.ctx.close<"u"&&(a.ctx.close(),a.ctx=null,p()),a},codecs:function(a){return(this||t)._codecs[a.replace(/^x-/,"")]},_setup:function(){var a=this||t;if(a.state=a.ctx&&a.ctx.state||"suspended",a._autoSuspend(),!a.usingWebAudio)if(typeof Audio<"u")try{var u=new Audio;typeof u.oncanplaythrough>"u"&&(a._canPlayEvent="canplay")}catch{a.noAudio=!0}else a.noAudio=!0;try{var u=new Audio;u.muted&&(a.noAudio=!0)}catch{}return a.noAudio||a._setupCodecs(),a},_setupCodecs:function(){var a=this||t,u=null;try{u=typeof Audio<"u"?new Audio:null}catch{return a}if(!u||typeof u.canPlayType!="function")return a;var d=u.canPlayType("audio/mpeg;").replace(/^no$/,""),f=a._navigator?a._navigator.userAgent:"",m=f.match(/OPR\/([0-6].)/g),h=m&&parseInt(m[0].split("/")[1],10)<33,g=f.indexOf("Safari")!==-1&&f.indexOf("Chrome")===-1,x=f.match(/Version\/(.*?) /),v=g&&x&&parseInt(x[1],10)<15;return a._codecs={mp3:!!(!h&&(d||u.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!d,opus:!!u.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(u.canPlayType('audio/wav; codecs="1"')||u.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!u.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!u.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(u.canPlayType("audio/x-m4a;")||u.canPlayType("audio/m4a;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(u.canPlayType("audio/x-m4b;")||u.canPlayType("audio/m4b;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(u.canPlayType("audio/x-mp4;")||u.canPlayType("audio/mp4;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!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$/,"")},a},_unlockAudio:function(){var a=this||t;if(!(a._audioUnlocked||!a.ctx)){a._audioUnlocked=!1,a.autoUnlock=!1,!a._mobileUnloaded&&a.ctx.sampleRate!==44100&&(a._mobileUnloaded=!0,a.unload()),a._scratchBuffer=a.ctx.createBuffer(1,1,22050);var u=function(d){for(;a._html5AudioPool.length<a.html5PoolSize;)try{var f=new Audio;f._unlocked=!0,a._releaseHtml5Audio(f)}catch{a.noAudio=!0;break}for(var m=0;m<a._howls.length;m++)if(!a._howls[m]._webAudio)for(var h=a._howls[m]._getSoundIds(),g=0;g<h.length;g++){var x=a._howls[m]._soundById(h[g]);x&&x._node&&!x._node._unlocked&&(x._node._unlocked=!0,x._node.load())}a._autoResume();var v=a.ctx.createBufferSource();v.buffer=a._scratchBuffer,v.connect(a.ctx.destination),typeof v.start>"u"?v.noteOn(0):v.start(0),typeof a.ctx.resume=="function"&&a.ctx.resume(),v.onended=function(){v.disconnect(0),a._audioUnlocked=!0,document.removeEventListener("touchstart",u,!0),document.removeEventListener("touchend",u,!0),document.removeEventListener("click",u,!0),document.removeEventListener("keydown",u,!0);for(var A=0;A<a._howls.length;A++)a._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),a}},_obtainHtml5Audio:function(){var a=this||t;if(a._html5AudioPool.length)return a._html5AudioPool.pop();var u=new Audio().play();return u&&typeof Promise<"u"&&(u instanceof Promise||typeof u.then=="function")&&u.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(a){var u=this||t;return a._unlocked&&u._html5AudioPool.push(a),u},_autoSuspend:function(){var a=this;if(!(!a.autoSuspend||!a.ctx||typeof a.ctx.suspend>"u"||!t.usingWebAudio)){for(var u=0;u<a._howls.length;u++)if(a._howls[u]._webAudio){for(var d=0;d<a._howls[u]._sounds.length;d++)if(!a._howls[u]._sounds[d]._paused)return a}return a._suspendTimer&&clearTimeout(a._suspendTimer),a._suspendTimer=setTimeout(function(){if(!!a.autoSuspend){a._suspendTimer=null,a.state="suspending";var f=function(){a.state="suspended",a._resumeAfterSuspend&&(delete a._resumeAfterSuspend,a._autoResume())};a.ctx.suspend().then(f,f)}},3e4),a}},_autoResume:function(){var a=this;if(!(!a.ctx||typeof a.ctx.resume>"u"||!t.usingWebAudio))return a.state==="running"&&a.ctx.state!=="interrupted"&&a._suspendTimer?(clearTimeout(a._suspendTimer),a._suspendTimer=null):a.state==="suspended"||a.state==="running"&&a.ctx.state==="interrupted"?(a.ctx.resume().then(function(){a.state="running";for(var u=0;u<a._howls.length;u++)a._howls[u]._emit("resume")}),a._suspendTimer&&(clearTimeout(a._suspendTimer),a._suspendTimer=null)):a.state==="suspending"&&(a._resumeAfterSuspend=!0),a}};var t=new n,e=function(a){var u=this;if(!a.src||a.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}u.init(a)};e.prototype={init:function(a){var u=this;return t.ctx||p(),u._autoplay=a.autoplay||!1,u._format=typeof a.format!="string"?a.format:[a.format],u._html5=a.html5||!1,u._muted=a.mute||!1,u._loop=a.loop||!1,u._pool=a.pool||5,u._preload=typeof a.preload=="boolean"||a.preload==="metadata"?a.preload:!0,u._rate=a.rate||1,u._sprite=a.sprite||{},u._src=typeof a.src!="string"?a.src:[a.src],u._volume=a.volume!==void 0?a.volume:1,u._xhr={method:a.xhr&&a.xhr.method?a.xhr.method:"GET",headers:a.xhr&&a.xhr.headers?a.xhr.headers:null,withCredentials:a.xhr&&a.xhr.withCredentials?a.xhr.withCredentials:!1},u._duration=0,u._state="unloaded",u._sounds=[],u._endTimers={},u._queue=[],u._playLock=!1,u._onend=a.onend?[{fn:a.onend}]:[],u._onfade=a.onfade?[{fn:a.onfade}]:[],u._onload=a.onload?[{fn:a.onload}]:[],u._onloaderror=a.onloaderror?[{fn:a.onloaderror}]:[],u._onplayerror=a.onplayerror?[{fn:a.onplayerror}]:[],u._onpause=a.onpause?[{fn:a.onpause}]:[],u._onplay=a.onplay?[{fn:a.onplay}]:[],u._onstop=a.onstop?[{fn:a.onstop}]:[],u._onmute=a.onmute?[{fn:a.onmute}]:[],u._onvolume=a.onvolume?[{fn:a.onvolume}]:[],u._onrate=a.onrate?[{fn:a.onrate}]:[],u._onseek=a.onseek?[{fn:a.onseek}]:[],u._onunlock=a.onunlock?[{fn:a.onunlock}]:[],u._onresume=[],u._webAudio=t.usingWebAudio&&!u._html5,typeof t.ctx<"u"&&t.ctx&&t.autoUnlock&&t._unlockAudio(),t._howls.push(u),u._autoplay&&u._queue.push({event:"play",action:function(){u.play()}}),u._preload&&u._preload!=="none"&&u.load(),u},load:function(){var a=this,u=null;if(t.noAudio){a._emit("loaderror",null,"No audio support.");return}typeof a._src=="string"&&(a._src=[a._src]);for(var d=0;d<a._src.length;d++){var f,m;if(a._format&&a._format[d])f=a._format[d];else{if(m=a._src[d],typeof m!="string"){a._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}f=/^data:audio\/([^;,]+);/i.exec(m),f||(f=/\.([^.]+)$/.exec(m.split("?",1)[0])),f&&(f=f[1].toLowerCase())}if(f||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),f&&t.codecs(f)){u=a._src[d];break}}if(!u){a._emit("loaderror",null,"No codec support for selected audio sources.");return}return a._src=u,a._state="loading",window.location.protocol==="https:"&&u.slice(0,5)==="http:"&&(a._html5=!0,a._webAudio=!1),new r(a),a._webAudio&&i(a),a},play:function(a,u){var d=this,f=null;if(typeof a=="number")f=a,a=null;else{if(typeof a=="string"&&d._state==="loaded"&&!d._sprite[a])return null;if(typeof a>"u"&&(a="__default",!d._playLock)){for(var m=0,h=0;h<d._sounds.length;h++)d._sounds[h]._paused&&!d._sounds[h]._ended&&(m++,f=d._sounds[h]._id);m===1?a=null:f=null}}var g=f?d._soundById(f):d._inactiveSound();if(!g)return null;if(f&&!a&&(a=g._sprite||"__default"),d._state!=="loaded"){g._sprite=a,g._ended=!1;var x=g._id;return d._queue.push({event:"play",action:function(){d.play(x)}}),x}if(f&&!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[a][0]/1e3),A=Math.max(0,(d._sprite[a][0]+d._sprite[a][1])/1e3-v),S=A*1e3/Math.abs(g._rate),b=d._sprite[a][0]/1e3,D=(d._sprite[a][0]+d._sprite[a][1])/1e3;g._sprite=a,g._ended=!1;var w=function(){g._paused=!1,g._seek=v,g._start=b,g._stop=D,g._loop=!!(g._loop||d._sprite[a][2])};if(v>=D){d._ended(g);return}var y=g._node;if(d._webAudio){var I=function(){d._playLock=!1,w(),d._refreshBuffer(g);var C=g._muted||d._muted?0:g._volume;y.gain.setValueAtTime(C,t.ctx.currentTime),g._playStart=t.ctx.currentTime,typeof y.bufferSource.start>"u"?g._loop?y.bufferSource.noteGrainOn(0,v,86400):y.bufferSource.noteGrainOn(0,v,A):g._loop?y.bufferSource.start(0,v,86400):y.bufferSource.start(0,v,A),S!==1/0&&(d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),S)),u||setTimeout(function(){d._emit("play",g._id),d._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?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 C=y.play();if(C&&typeof Promise<"u"&&(C instanceof Promise||typeof C.then=="function")?(d._playLock=!0,w(),C.then(function(){d._playLock=!1,y._unlocked=!0,u?d._loadQueue():d._emit("play",g._id)}).catch(function(){d._playLock=!1,d._emit("playerror",g._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),g._ended=!0,g._paused=!0})):u||(d._playLock=!1,w(),d._emit("play",g._id)),y.playbackRate=g._rate,y.paused){d._emit("playerror",g._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}a!=="__default"||g._loop?d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),S):(d._endTimers[g._id]=function(){d._ended(g),y.removeEventListener("ended",d._endTimers[g._id],!1)},y.addEventListener("ended",d._endTimers[g._id],!1))}catch(k){d._emit("playerror",g._id,k)}};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 N=function(){d._state="loaded",T(),y.removeEventListener(t._canPlayEvent,N,!1)};y.addEventListener(t._canPlayEvent,N,!1),d._clearTimer(g._id)}}return g._id},pause:function(a){var u=this;if(u._state!=="loaded"||u._playLock)return u._queue.push({event:"pause",action:function(){u.pause(a)}}),u;for(var d=u._getSoundIds(a),f=0;f<d.length;f++){u._clearTimer(d[f]);var m=u._soundById(d[f]);if(m&&!m._paused&&(m._seek=u.seek(d[f]),m._rateSeek=0,m._paused=!0,u._stopFade(d[f]),m._node))if(u._webAudio){if(!m._node.bufferSource)continue;typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),u._cleanBuffer(m._node)}else(!isNaN(m._node.duration)||m._node.duration===1/0)&&m._node.pause();arguments[1]||u._emit("pause",m?m._id:null)}return u},stop:function(a,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"stop",action:function(){d.stop(a)}}),d;for(var f=d._getSoundIds(a),m=0;m<f.length;m++){d._clearTimer(f[m]);var h=d._soundById(f[m]);h&&(h._seek=h._start||0,h._rateSeek=0,h._paused=!0,h._ended=!0,d._stopFade(f[m]),h._node&&(d._webAudio?h._node.bufferSource&&(typeof h._node.bufferSource.stop>"u"?h._node.bufferSource.noteOff(0):h._node.bufferSource.stop(0),d._cleanBuffer(h._node)):(!isNaN(h._node.duration)||h._node.duration===1/0)&&(h._node.currentTime=h._start||0,h._node.pause(),h._node.duration===1/0&&d._clearSound(h._node))),u||d._emit("stop",h._id))}return d},mute:function(a,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"mute",action:function(){d.mute(a,u)}}),d;if(typeof u>"u")if(typeof a=="boolean")d._muted=a;else return d._muted;for(var f=d._getSoundIds(u),m=0;m<f.length;m++){var h=d._soundById(f[m]);h&&(h._muted=a,h._interval&&d._stopFade(h._id),d._webAudio&&h._node?h._node.gain.setValueAtTime(a?0:h._volume,t.ctx.currentTime):h._node&&(h._node.muted=t._muted?!0:a),d._emit("mute",h._id))}return d},volume:function(){var a=this,u=arguments,d,f;if(u.length===0)return a._volume;if(u.length===1||u.length===2&&typeof u[1]>"u"){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):d=parseFloat(u[0])}else u.length>=2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));var g;if(typeof d<"u"&&d>=0&&d<=1){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"volume",action:function(){a.volume.apply(a,u)}}),a;typeof f>"u"&&(a._volume=d),f=a._getSoundIds(f);for(var x=0;x<f.length;x++)g=a._soundById(f[x]),g&&(g._volume=d,u[2]||a._stopFade(f[x]),a._webAudio&&g._node&&!g._muted?g._node.gain.setValueAtTime(d,t.ctx.currentTime):g._node&&!g._muted&&(g._node.volume=d*t.volume()),a._emit("volume",g._id))}else return g=f?a._soundById(f):a._sounds[0],g?g._volume:0;return a},fade:function(a,u,d,f){var m=this;if(m._state!=="loaded"||m._playLock)return m._queue.push({event:"fade",action:function(){m.fade(a,u,d,f)}}),m;a=Math.min(Math.max(0,parseFloat(a)),1),u=Math.min(Math.max(0,parseFloat(u)),1),d=parseFloat(d),m.volume(a,f);for(var h=m._getSoundIds(f),g=0;g<h.length;g++){var x=m._soundById(h[g]);if(x){if(f||m._stopFade(h[g]),m._webAudio&&!x._muted){var v=t.ctx.currentTime,A=v+d/1e3;x._volume=a,x._node.gain.setValueAtTime(a,v),x._node.gain.linearRampToValueAtTime(u,A)}m._startFadeInterval(x,a,u,d,h[g],typeof f>"u")}}return m},_startFadeInterval:function(a,u,d,f,m,h){var g=this,x=u,v=d-u,A=Math.abs(v/.01),S=Math.max(4,A>0?f/A:f),b=Date.now();a._fadeTo=d,a._interval=setInterval(function(){var D=(Date.now()-b)/f;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?a._volume=x:g.volume(x,a._id,!0),h&&(g._volume=x),(d<u&&x<=d||d>u&&x>=d)&&(clearInterval(a._interval),a._interval=null,a._fadeTo=null,g.volume(d,a._id),g._emit("fade",a._id))},S)},_stopFade:function(a){var u=this,d=u._soundById(a);return d&&d._interval&&(u._webAudio&&d._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(d._interval),d._interval=null,u.volume(d._fadeTo,a),d._fadeTo=null,u._emit("fade",a)),u},loop:function(){var a=this,u=arguments,d,f,m;if(u.length===0)return a._loop;if(u.length===1)if(typeof u[0]=="boolean")d=u[0],a._loop=d;else return m=a._soundById(parseInt(u[0],10)),m?m._loop:!1;else u.length===2&&(d=u[0],f=parseInt(u[1],10));for(var h=a._getSoundIds(f),g=0;g<h.length;g++)m=a._soundById(h[g]),m&&(m._loop=d,a._webAudio&&m._node&&m._node.bufferSource&&(m._node.bufferSource.loop=d,d&&(m._node.bufferSource.loopStart=m._start||0,m._node.bufferSource.loopEnd=m._stop,a.playing(h[g])&&(a.pause(h[g],!0),a.play(h[g],!0)))));return a},rate:function(){var a=this,u=arguments,d,f;if(u.length===0)f=a._sounds[0]._id;else if(u.length===1){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):d=parseFloat(u[0])}else u.length===2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));var g;if(typeof d=="number"){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"rate",action:function(){a.rate.apply(a,u)}}),a;typeof f>"u"&&(a._rate=d),f=a._getSoundIds(f);for(var x=0;x<f.length;x++)if(g=a._soundById(f[x]),g){a.playing(f[x])&&(g._rateSeek=a.seek(f[x]),g._playStart=a._webAudio?t.ctx.currentTime:g._playStart),g._rate=d,a._webAudio&&g._node&&g._node.bufferSource?g._node.bufferSource.playbackRate.setValueAtTime(d,t.ctx.currentTime):g._node&&(g._node.playbackRate=d);var v=a.seek(f[x]),A=(a._sprite[g._sprite][0]+a._sprite[g._sprite][1])/1e3-v,S=A*1e3/Math.abs(g._rate);(a._endTimers[f[x]]||!g._paused)&&(a._clearTimer(f[x]),a._endTimers[f[x]]=setTimeout(a._ended.bind(a,g),S)),a._emit("rate",g._id)}}else return g=a._soundById(f),g?g._rate:a._rate;return a},seek:function(){var a=this,u=arguments,d,f;if(u.length===0)a._sounds.length&&(f=a._sounds[0]._id);else if(u.length===1){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):a._sounds.length&&(f=a._sounds[0]._id,d=parseFloat(u[0]))}else u.length===2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));if(typeof f>"u")return 0;if(typeof d=="number"&&(a._state!=="loaded"||a._playLock))return a._queue.push({event:"seek",action:function(){a.seek.apply(a,u)}}),a;var g=a._soundById(f);if(g)if(typeof d=="number"&&d>=0){var x=a.playing(f);x&&a.pause(f,!0),g._seek=d,g._ended=!1,a._clearTimer(f),!a._webAudio&&g._node&&!isNaN(g._node.duration)&&(g._node.currentTime=d);var v=function(){x&&a.play(f,!0),a._emit("seek",f)};if(x&&!a._webAudio){var A=function(){a._playLock?setTimeout(A,0):v()};setTimeout(A,0)}else v()}else if(a._webAudio){var S=a.playing(f)?t.ctx.currentTime-g._playStart:0,b=g._rateSeek?g._rateSeek-g._seek:0;return g._seek+(b+S*Math.abs(g._rate))}else return g._node.currentTime;return a},playing:function(a){var u=this;if(typeof a=="number"){var d=u._soundById(a);return d?!d._paused:!1}for(var f=0;f<u._sounds.length;f++)if(!u._sounds[f]._paused)return!0;return!1},duration:function(a){var u=this,d=u._duration,f=u._soundById(a);return f&&(d=u._sprite[f._sprite][1]/1e3),d},state:function(){return this._state},unload:function(){for(var a=this,u=a._sounds,d=0;d<u.length;d++)u[d]._paused||a.stop(u[d]._id),a._webAudio||(a._clearSound(u[d]._node),u[d]._node.removeEventListener("error",u[d]._errorFn,!1),u[d]._node.removeEventListener(t._canPlayEvent,u[d]._loadFn,!1),u[d]._node.removeEventListener("ended",u[d]._endFn,!1),t._releaseHtml5Audio(u[d]._node)),delete u[d]._node,a._clearTimer(u[d]._id);var f=t._howls.indexOf(a);f>=0&&t._howls.splice(f,1);var m=!0;for(d=0;d<t._howls.length;d++)if(t._howls[d]._src===a._src||a._src.indexOf(t._howls[d]._src)>=0){m=!1;break}return o&&m&&delete o[a._src],t.noAudio=!1,a._state="unloaded",a._sounds=[],a=null,null},on:function(a,u,d,f){var m=this,h=m["_on"+a];return typeof u=="function"&&h.push(f?{id:d,fn:u,once:f}:{id:d,fn:u}),m},off:function(a,u,d){var f=this,m=f["_on"+a],h=0;if(typeof u=="number"&&(d=u,u=null),u||d)for(h=0;h<m.length;h++){var g=d===m[h].id;if(u===m[h].fn&&g||!u&&g){m.splice(h,1);break}}else if(a)f["_on"+a]=[];else{var x=Object.keys(f);for(h=0;h<x.length;h++)x[h].indexOf("_on")===0&&Array.isArray(f[x[h]])&&(f[x[h]]=[])}return f},once:function(a,u,d){var f=this;return f.on(a,u,d,1),f},_emit:function(a,u,d){for(var f=this,m=f["_on"+a],h=m.length-1;h>=0;h--)(!m[h].id||m[h].id===u||a==="load")&&(setTimeout(function(g){g.call(this,u,d)}.bind(f,m[h].fn),0),m[h].once&&f.off(a,m[h].fn,m[h].id));return f._loadQueue(a),f},_loadQueue:function(a){var u=this;if(u._queue.length>0){var d=u._queue[0];d.event===a&&(u._queue.shift(),u._loadQueue()),a||d.action()}return u},_ended:function(a){var u=this,d=a._sprite;if(!u._webAudio&&a._node&&!a._node.paused&&!a._node.ended&&a._node.currentTime<a._stop)return setTimeout(u._ended.bind(u,a),100),u;var f=!!(a._loop||u._sprite[d][2]);if(u._emit("end",a._id),!u._webAudio&&f&&u.stop(a._id,!0).play(a._id),u._webAudio&&f){u._emit("play",a._id),a._seek=a._start||0,a._rateSeek=0,a._playStart=t.ctx.currentTime;var m=(a._stop-a._start)*1e3/Math.abs(a._rate);u._endTimers[a._id]=setTimeout(u._ended.bind(u,a),m)}return u._webAudio&&!f&&(a._paused=!0,a._ended=!0,a._seek=a._start||0,a._rateSeek=0,u._clearTimer(a._id),u._cleanBuffer(a._node),t._autoSuspend()),!u._webAudio&&!f&&u.stop(a._id,!0),u},_clearTimer:function(a){var u=this;if(u._endTimers[a]){if(typeof u._endTimers[a]!="function")clearTimeout(u._endTimers[a]);else{var d=u._soundById(a);d&&d._node&&d._node.removeEventListener("ended",u._endTimers[a],!1)}delete u._endTimers[a]}return u},_soundById:function(a){for(var u=this,d=0;d<u._sounds.length;d++)if(a===u._sounds[d]._id)return u._sounds[d];return null},_inactiveSound:function(){var a=this;a._drain();for(var u=0;u<a._sounds.length;u++)if(a._sounds[u]._ended)return a._sounds[u].reset();return new r(a)},_drain:function(){var a=this,u=a._pool,d=0,f=0;if(!(a._sounds.length<u)){for(f=0;f<a._sounds.length;f++)a._sounds[f]._ended&&d++;for(f=a._sounds.length-1;f>=0;f--){if(d<=u)return;a._sounds[f]._ended&&(a._webAudio&&a._sounds[f]._node&&a._sounds[f]._node.disconnect(0),a._sounds.splice(f,1),d--)}}},_getSoundIds:function(a){var u=this;if(typeof a>"u"){for(var d=[],f=0;f<u._sounds.length;f++)d.push(u._sounds[f]._id);return d}else return[a]},_refreshBuffer:function(a){var u=this;return a._node.bufferSource=t.ctx.createBufferSource(),a._node.bufferSource.buffer=o[u._src],a._panner?a._node.bufferSource.connect(a._panner):a._node.bufferSource.connect(a._node),a._node.bufferSource.loop=a._loop,a._loop&&(a._node.bufferSource.loopStart=a._start||0,a._node.bufferSource.loopEnd=a._stop||0),a._node.bufferSource.playbackRate.setValueAtTime(a._rate,t.ctx.currentTime),u},_cleanBuffer:function(a){var u=this,d=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&a.bufferSource&&(a.bufferSource.onended=null,a.bufferSource.disconnect(0),d))try{a.bufferSource.buffer=t._scratchBuffer}catch{}return a.bufferSource=null,u},_clearSound:function(a){var u=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);u||(a.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(a){this._parent=a,this.init()};r.prototype={init:function(){var a=this,u=a._parent;return a._muted=u._muted,a._loop=u._loop,a._volume=u._volume,a._rate=u._rate,a._seek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,u._sounds.push(a),a.create(),a},create:function(){var a=this,u=a._parent,d=t._muted||a._muted||a._parent._muted?0:a._volume;return u._webAudio?(a._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),a._node.gain.setValueAtTime(d,t.ctx.currentTime),a._node.paused=!0,a._node.connect(t.masterGain)):t.noAudio||(a._node=t._obtainHtml5Audio(),a._errorFn=a._errorListener.bind(a),a._node.addEventListener("error",a._errorFn,!1),a._loadFn=a._loadListener.bind(a),a._node.addEventListener(t._canPlayEvent,a._loadFn,!1),a._endFn=a._endListener.bind(a),a._node.addEventListener("ended",a._endFn,!1),a._node.src=u._src,a._node.preload=u._preload===!0?"auto":u._preload,a._node.volume=d*t.volume(),a._node.load()),a},reset:function(){var a=this,u=a._parent;return a._muted=u._muted,a._loop=u._loop,a._volume=u._volume,a._rate=u._rate,a._seek=0,a._rateSeek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,a},_errorListener:function(){var a=this;a._parent._emit("loaderror",a._id,a._node.error?a._node.error.code:0),a._node.removeEventListener("error",a._errorFn,!1)},_loadListener:function(){var a=this,u=a._parent;u._duration=Math.ceil(a._node.duration*10)/10,Object.keys(u._sprite).length===0&&(u._sprite={__default:[0,u._duration*1e3]}),u._state!=="loaded"&&(u._state="loaded",u._emit("load"),u._loadQueue()),a._node.removeEventListener(t._canPlayEvent,a._loadFn,!1)},_endListener:function(){var a=this,u=a._parent;u._duration===1/0&&(u._duration=Math.ceil(a._node.duration*10)/10,u._sprite.__default[1]===1/0&&(u._sprite.__default[1]=u._duration*1e3),u._ended(a)),a._node.removeEventListener("ended",a._endFn,!1)}};var o={},i=function(a){var u=a._src;if(o[u]){a._duration=o[u].duration,c(a);return}if(/^data:[^;]+;base64,/.test(u)){for(var d=atob(u.split(",")[1]),f=new Uint8Array(d.length),m=0;m<d.length;++m)f[m]=d.charCodeAt(m);l(f.buffer,a)}else{var h=new XMLHttpRequest;h.open(a._xhr.method,u,!0),h.withCredentials=a._xhr.withCredentials,h.responseType="arraybuffer",a._xhr.headers&&Object.keys(a._xhr.headers).forEach(function(g){h.setRequestHeader(g,a._xhr.headers[g])}),h.onload=function(){var g=(h.status+"")[0];if(g!=="0"&&g!=="2"&&g!=="3"){a._emit("loaderror",null,"Failed loading audio file with status: "+h.status+".");return}l(h.response,a)},h.onerror=function(){a._webAudio&&(a._html5=!0,a._webAudio=!1,a._sounds=[],delete o[u],a.load())},s(h)}},s=function(a){try{a.send()}catch{a.onerror()}},l=function(a,u){var d=function(){u._emit("loaderror",null,"Decoding audio data failed.")},f=function(m){m&&u._sounds.length>0?(o[u._src]=m,c(u,m)):d()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(a).then(f).catch(d):t.ctx.decodeAudioData(a,f,d)},c=function(a,u){u&&!a._duration&&(a._duration=u.duration),Object.keys(a._sprite).length===0&&(a._sprite={__default:[0,a._duration*1e3]}),a._state!=="loaded"&&(a._state="loaded",a._emit("load"),a._loadQueue())},p=function(){if(!!t.usingWebAudio){try{typeof AudioContext<"u"?t.ctx=new AudioContext:typeof webkitAudioContext<"u"?t.ctx=new webkitAudioContext:t.usingWebAudio=!1}catch{t.usingWebAudio=!1}t.ctx||(t.usingWebAudio=!1);var a=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),u=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),d=u?parseInt(u[1],10):null;if(a&&d&&d<9){var f=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!f&&(t.usingWebAudio=!1)}t.usingWebAudio&&(t.masterGain=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),t.masterGain.gain.setValueAtTime(t._muted?0:t._volume,t.ctx.currentTime),t.masterGain.connect(t.ctx.destination)),t._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:t,Howl:e}}),typeof Ra<"u"&&(Ra.Howler=t,Ra.Howl=e),typeof global<"u"?(global.HowlerGlobal=n,global.Howler=t,global.Howl=e,global.Sound=r):typeof window<"u"&&(window.HowlerGlobal=n,window.Howler=t,window.Howl=e,window.Sound=r)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var r=e._howls.length-1;r>=0;r--)e._howls[r].stereo(t);return e},HowlerGlobal.prototype.pos=function(t,e,r){var o=this;if(!o.ctx||!o.ctx.listener)return o;if(e=typeof e!="number"?o._pos[1]:e,r=typeof r!="number"?o._pos[2]:r,typeof t=="number")o._pos=[t,e,r],typeof o.ctx.listener.positionX<"u"?(o.ctx.listener.positionX.setTargetAtTime(o._pos[0],Howler.ctx.currentTime,.1),o.ctx.listener.positionY.setTargetAtTime(o._pos[1],Howler.ctx.currentTime,.1),o.ctx.listener.positionZ.setTargetAtTime(o._pos[2],Howler.ctx.currentTime,.1)):o.ctx.listener.setPosition(o._pos[0],o._pos[1],o._pos[2]);else return o._pos;return o},HowlerGlobal.prototype.orientation=function(t,e,r,o,i,s){var l=this;if(!l.ctx||!l.ctx.listener)return l;var c=l._orientation;if(e=typeof e!="number"?c[1]:e,r=typeof r!="number"?c[2]:r,o=typeof o!="number"?c[3]:o,i=typeof i!="number"?c[4]:i,s=typeof s!="number"?c[5]:s,typeof t=="number")l._orientation=[t,e,r,o,i,s],typeof l.ctx.listener.forwardX<"u"?(l.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),l.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),l.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),l.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),l.ctx.listener.upY.setTargetAtTime(i,Howler.ctx.currentTime,.1),l.ctx.listener.upZ.setTargetAtTime(s,Howler.ctx.currentTime,.1)):l.ctx.listener.setOrientation(t,e,r,o,i,s);else return c;return l},Howl.prototype.init=function(t){return function(e){var r=this;return r._orientation=e.orientation||[1,0,0],r._stereo=e.stereo||null,r._pos=e.pos||null,r._pannerAttr={coneInnerAngle:typeof e.coneInnerAngle<"u"?e.coneInnerAngle:360,coneOuterAngle:typeof e.coneOuterAngle<"u"?e.coneOuterAngle:360,coneOuterGain:typeof e.coneOuterGain<"u"?e.coneOuterGain:0,distanceModel:typeof e.distanceModel<"u"?e.distanceModel:"inverse",maxDistance:typeof e.maxDistance<"u"?e.maxDistance:1e4,panningModel:typeof e.panningModel<"u"?e.panningModel:"HRTF",refDistance:typeof e.refDistance<"u"?e.refDistance:1,rolloffFactor:typeof e.rolloffFactor<"u"?e.rolloffFactor:1},r._onstereo=e.onstereo?[{fn:e.onstereo}]:[],r._onpos=e.onpos?[{fn:e.onpos}]:[],r._onorientation=e.onorientation?[{fn:e.onorientation}]:[],t.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(t,e){var r=this;if(!r._webAudio)return r;if(r._state!=="loaded")return r._queue.push({event:"stereo",action:function(){r.stereo(t,e)}}),r;var o=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof e>"u")if(typeof t=="number")r._stereo=t,r._pos=[t,0,0];else return r._stereo;for(var i=r._getSoundIds(e),s=0;s<i.length;s++){var l=r._soundById(i[s]);if(l)if(typeof t=="number")l._stereo=t,l._pos=[t,0,0],l._node&&(l._pannerAttr.panningModel="equalpower",(!l._panner||!l._panner.pan)&&n(l,o),o==="spatial"?typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):l._panner.setPosition(t,0,0):l._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),r._emit("stereo",l._id);else return l._stereo}return r},Howl.prototype.pos=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"pos",action:function(){i.pos(t,e,r,o)}}),i;if(e=typeof e!="number"?0:e,r=typeof r!="number"?-.5:r,typeof o>"u")if(typeof t=="number")i._pos=[t,e,r];else return i._pos;for(var s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._pos=[t,e,r],c._node&&((!c._panner||c._panner.pan)&&n(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setPosition(t,e,r)),i._emit("pos",c._id);else return c._pos}return i},Howl.prototype.orientation=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"orientation",action:function(){i.orientation(t,e,r,o)}}),i;if(e=typeof e!="number"?i._orientation[1]:e,r=typeof r!="number"?i._orientation[2]:r,typeof o>"u")if(typeof t=="number")i._orientation=[t,e,r];else return i._orientation;for(var s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._orientation=[t,e,r],c._node&&(c._panner||(c._pos||(c._pos=i._pos||[0,0,-.5]),n(c,"spatial")),typeof c._panner.orientationX<"u"?(c._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setOrientation(t,e,r)),i._emit("orientation",c._id);else return c._orientation}return i},Howl.prototype.pannerAttr=function(){var t=this,e=arguments,r,o,i;if(!t._webAudio)return t;if(e.length===0)return t._pannerAttr;if(e.length===1)if(typeof e[0]=="object")r=e[0],typeof o>"u"&&(r.pannerAttr||(r.pannerAttr={coneInnerAngle:r.coneInnerAngle,coneOuterAngle:r.coneOuterAngle,coneOuterGain:r.coneOuterGain,distanceModel:r.distanceModel,maxDistance:r.maxDistance,refDistance:r.refDistance,rolloffFactor:r.rolloffFactor,panningModel:r.panningModel}),t._pannerAttr={coneInnerAngle:typeof r.pannerAttr.coneInnerAngle<"u"?r.pannerAttr.coneInnerAngle:t._coneInnerAngle,coneOuterAngle:typeof r.pannerAttr.coneOuterAngle<"u"?r.pannerAttr.coneOuterAngle:t._coneOuterAngle,coneOuterGain:typeof r.pannerAttr.coneOuterGain<"u"?r.pannerAttr.coneOuterGain:t._coneOuterGain,distanceModel:typeof r.pannerAttr.distanceModel<"u"?r.pannerAttr.distanceModel:t._distanceModel,maxDistance:typeof r.pannerAttr.maxDistance<"u"?r.pannerAttr.maxDistance:t._maxDistance,refDistance:typeof r.pannerAttr.refDistance<"u"?r.pannerAttr.refDistance:t._refDistance,rolloffFactor:typeof r.pannerAttr.rolloffFactor<"u"?r.pannerAttr.rolloffFactor:t._rolloffFactor,panningModel:typeof r.pannerAttr.panningModel<"u"?r.pannerAttr.panningModel:t._panningModel});else return i=t._soundById(parseInt(e[0],10)),i?i._pannerAttr:t._pannerAttr;else e.length===2&&(r=e[0],o=parseInt(e[1],10));for(var s=t._getSoundIds(o),l=0;l<s.length;l++)if(i=t._soundById(s[l]),i){var c=i._pannerAttr;c={coneInnerAngle:typeof r.coneInnerAngle<"u"?r.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:typeof r.coneOuterAngle<"u"?r.coneOuterAngle:c.coneOuterAngle,coneOuterGain:typeof r.coneOuterGain<"u"?r.coneOuterGain:c.coneOuterGain,distanceModel:typeof r.distanceModel<"u"?r.distanceModel:c.distanceModel,maxDistance:typeof r.maxDistance<"u"?r.maxDistance:c.maxDistance,refDistance:typeof r.refDistance<"u"?r.refDistance:c.refDistance,rolloffFactor:typeof r.rolloffFactor<"u"?r.rolloffFactor:c.rolloffFactor,panningModel:typeof r.panningModel<"u"?r.panningModel:c.panningModel};var p=i._panner;p?(p.coneInnerAngle=c.coneInnerAngle,p.coneOuterAngle=c.coneOuterAngle,p.coneOuterGain=c.coneOuterGain,p.distanceModel=c.distanceModel,p.maxDistance=c.maxDistance,p.refDistance=c.refDistance,p.rolloffFactor=c.rolloffFactor,p.panningModel=c.panningModel):(i._pos||(i._pos=t._pos||[0,0,-.5]),n(i,"spatial"))}return t},Sound.prototype.init=function(t){return function(){var e=this,r=e._parent;e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,t.call(this),e._stereo?r.stereo(e._stereo):e._pos&&r.pos(e._pos[0],e._pos[1],e._pos[2],e._id)}}(Sound.prototype.init),Sound.prototype.reset=function(t){return function(){var e=this,r=e._parent;return e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,e._stereo?r.stereo(e._stereo):e._pos?r.pos(e._pos[0],e._pos[1],e._pos[2],e._id):e._panner&&(e._panner.disconnect(0),e._panner=void 0,r._refreshBuffer(e)),t.call(this)}}(Sound.prototype.reset);var n=function(t,e){e=e||"spatial",e==="spatial"?(t._panner=Howler.ctx.createPanner(),t._panner.coneInnerAngle=t._pannerAttr.coneInnerAngle,t._panner.coneOuterAngle=t._pannerAttr.coneOuterAngle,t._panner.coneOuterGain=t._pannerAttr.coneOuterGain,t._panner.distanceModel=t._pannerAttr.distanceModel,t._panner.maxDistance=t._pannerAttr.maxDistance,t._panner.refDistance=t._pannerAttr.refDistance,t._panner.rolloffFactor=t._pannerAttr.rolloffFactor,t._panner.panningModel=t._pannerAttr.panningModel,typeof t._panner.positionX<"u"?(t._panner.positionX.setValueAtTime(t._pos[0],Howler.ctx.currentTime),t._panner.positionY.setValueAtTime(t._pos[1],Howler.ctx.currentTime),t._panner.positionZ.setValueAtTime(t._pos[2],Howler.ctx.currentTime)):t._panner.setPosition(t._pos[0],t._pos[1],t._pos[2]),typeof t._panner.orientationX<"u"?(t._panner.orientationX.setValueAtTime(t._orientation[0],Howler.ctx.currentTime),t._panner.orientationY.setValueAtTime(t._orientation[1],Howler.ctx.currentTime),t._panner.orientationZ.setValueAtTime(t._orientation[2],Howler.ctx.currentTime)):t._panner.setOrientation(t._orientation[0],t._orientation[1],t._orientation[2])):(t._panner=Howler.ctx.createStereoPanner(),t._panner.pan.setValueAtTime(t._stereo,Howler.ctx.currentTime)),t._panner.connect(t._node),t._paused||t._parent.pause(t._id,!0).play(t._id,!0)}})()});var Pm=Tc((Va,Cm)=>{(function(n,t){typeof Va=="object"&&typeof Cm<"u"?t(Va):typeof define=="function"&&define.amd?define(["exports"],t):t((n=typeof globalThis<"u"?globalThis:n||self).SVDJS={})})(Va,function(n){"use strict";n.SVD=function(t,e,r,o,i){if(e=e===void 0||e,r=r===void 0||r,i=1e-64/(o=o||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var s,l,c,p,a,u,d,f,m,h,g,x,v=t[0].length,A=t.length;if(A<v)throw new TypeError("Invalid matrix: m < n");for(var S=[],b=[],D=[],w=e==="f"?A:v,y=h=d=0;y<A;y++)b[y]=new Array(w).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(S[y]=d,m=0,c=y+1,s=y;s<A;s++)m+=Math.pow(b[s][y],2);if(m<i)d=0;else for(f=(u=b[y][y])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,b[y][y]=u-d,s=c;s<v;s++){for(m=0,l=y;l<A;l++)m+=b[l][y]*b[l][s];for(u=m/f,l=y;l<A;l++)b[l][s]=b[l][s]+u*b[l][y]}for(T[y]=d,m=0,s=c;s<v;s++)m+=Math.pow(b[y][s],2);if(m<i)d=0;else{for(f=(u=b[y][y+1])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,b[y][y+1]=u-d,s=c;s<v;s++)S[s]=b[y][s]/f;for(s=c;s<A;s++){for(m=0,l=c;l<v;l++)m+=b[s][l]*b[y][l];for(l=c;l<v;l++)b[s][l]=b[s][l]+m*S[l]}}h<(g=Math.abs(T[y])+Math.abs(S[y]))&&(h=g)}if(r)for(y=v-1;0<=y;y--){if(d!==0){for(f=b[y][y+1]*d,s=c;s<v;s++)D[s][y]=b[y][s]/f;for(s=c;s<v;s++){for(m=0,l=c;l<v;l++)m+=b[y][l]*D[l][s];for(l=c;l<v;l++)D[l][s]=D[l][s]+m*D[l][y]}}for(s=c;s<v;s++)D[y][s]=0,D[s][y]=0;D[y][y]=1,d=S[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<w;s++)b[y][s]=0;if(d!==0){for(f=b[y][y]*d,s=c;s<w;s++){for(m=0,l=c;l<A;l++)m+=b[l][y]*b[l][s];for(u=m/f,l=y;l<A;l++)b[l][s]=b[l][s]+u*b[l][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,l=v-1;0<=l;l--)for(var L=0;L<50;L++){for(I=!1,c=l;0<=c;c--){if(Math.abs(S[c])<=o){I=!0;break}if(Math.abs(T[c-1])<=o)break}if(!I){for(a=0,p=c-(m=1),y=c;y<l+1&&(u=m*S[y],S[y]=a*S[y],!(Math.abs(u)<=o));y++)if(d=T[y],T[y]=Math.sqrt(u*u+d*d),a=d/(f=T[y]),m=-u/f,e)for(s=0;s<A;s++)g=b[s][p],x=b[s][y],b[s][p]=g*a+x*m,b[s][y]=-g*m+x*a}if(x=T[l],c===l){if(x<0&&(T[l]=-x,r))for(s=0;s<v;s++)D[s][l]=-D[s][l];break}for(h=T[c],u=(((g=T[l-1])-x)*(g+x)+((d=S[l-1])-(f=S[l]))*(d+f))/(2*f*g),d=Math.sqrt(u*u+1),u=((h-x)*(h+x)+f*(g/(u<0?u-d:u+d)-f))/h,y=c+(m=a=1);y<l+1;y++){if(d=S[y],g=T[y],f=m*d,d*=a,x=Math.sqrt(u*u+f*f),u=h*(a=u/(S[y-1]=x))+d*(m=f/x),d=-h*m+d*a,f=g*m,g*=a,r)for(s=0;s<v;s++)h=D[s][y-1],x=D[s][y],D[s][y-1]=h*a+x*m,D[s][y]=-h*m+x*a;if(x=Math.sqrt(u*u+f*f),u=(a=u/(T[y-1]=x))*d+(m=f/x)*g,h=-m*d+a*g,e)for(s=0;s<A;s++)g=b[s][y-1],x=b[s][y],b[s][y-1]=g*a+x*m,b[s][y]=-g*m+x*a}S[c]=0,S[l]=u,T[l]=h}for(y=0;y<v;y++)T[y]<o&&(T[y]=0);return{u:b,q:T,v:D}},n.VERSION="1.1.1",Object.defineProperty(n,"__esModule",{value:!0})})});var WS={};Ac(WS,{default:()=>Fa});module.exports=ch(WS);var za=require("three");function Zi(n,t){return Object.setPrototypeOf(n,t),n}function Pc(n){return Array.isArray(n)?n:[n]}var uh=typeof global=="object"&&global&&global.Object===Object&&global,Qi=uh;var ph=typeof self=="object"&&self&&self.Object===Object&&self,dh=Qi||ph||Function("return this")(),Xe=dh;var fh=Xe.Symbol,gt=fh;var Lc=Object.prototype,mh=Lc.hasOwnProperty,hh=Lc.toString,kn=gt?gt.toStringTag:void 0;function gh(n){var t=mh.call(n,kn),e=n[kn];try{n[kn]=void 0;var r=!0}catch{}var o=hh.call(n);return r&&(t?n[kn]=e:delete n[kn]),o}var Ic=gh;var yh=Object.prototype,xh=yh.toString;function vh(n){return xh.call(n)}var Oc=vh;var bh="[object Null]",Sh="[object Undefined]",Mc=gt?gt.toStringTag:void 0;function wh(n){return n==null?n===void 0?Sh:bh:Mc&&Mc in Object(n)?Ic(n):Oc(n)}var Dt=wh;function _h(n){return n!=null&&typeof n=="object"}var dt=_h;var Th="[object Symbol]";function Ah(n){return typeof n=="symbol"||dt(n)&&Dt(n)==Th}var Eo=Ah;function Nh(n,t){for(var e=-1,r=n==null?0:n.length,o=Array(r);++e<r;)o[e]=t(n[e],e,n);return o}var Ji=Nh;var Ch=Array.isArray,Ve=Ch;var Ph=1/0,Dc=gt?gt.prototype:void 0,Bc=Dc?Dc.toString:void 0;function Ec(n){if(typeof n=="string")return n;if(Ve(n))return Ji(n,Ec)+"";if(Eo(n))return Bc?Bc.call(n):"";var t=n+"";return t=="0"&&1/n==-Ph?"-0":t}var Gc=Ec;function Lh(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}var Qe=Lh;function Ih(n){return n}var es=Ih;var Oh="[object AsyncFunction]",Mh="[object Function]",Dh="[object GeneratorFunction]",Bh="[object Proxy]";function Eh(n){if(!Qe(n))return!1;var t=Dt(n);return t==Mh||t==Dh||t==Oh||t==Bh}var Go=Eh;var Gh=Xe["__core-js_shared__"],ts=Gh;var Rc=function(){var n=/[^.]+$/.exec(ts&&ts.keys&&ts.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function Rh(n){return!!Rc&&Rc in n}var Vc=Rh;var Vh=Function.prototype,Fh=Vh.toString;function zh(n){if(n!=null){try{return Fh.call(n)}catch{}try{return n+""}catch{}}return""}var Or=zh;var Uh=/[\\^$.*+?()[\]{}|]/g,jh=/^\[object .+?Constructor\]$/,kh=Function.prototype,Hh=Object.prototype,Wh=kh.toString,qh=Hh.hasOwnProperty,$h=RegExp("^"+Wh.call(qh).replace(Uh,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Xh(n){if(!Qe(n)||Vc(n))return!1;var t=Go(n)?$h:jh;return t.test(Or(n))}var Fc=Xh;function Yh(n,t){return n?.[t]}var zc=Yh;function Kh(n,t){var e=zc(n,t);return Fc(e)?e:void 0}var _t=Kh;var Zh=_t(Xe,"WeakMap"),rs=Zh;var Uc=Object.create,Qh=function(){function n(){}return function(t){if(!Qe(t))return{};if(Uc)return Uc(t);n.prototype=t;var e=new n;return n.prototype=void 0,e}}(),jc=Qh;function Jh(n,t,e){switch(e.length){case 0:return n.call(t);case 1:return n.call(t,e[0]);case 2:return n.call(t,e[0],e[1]);case 3:return n.call(t,e[0],e[1],e[2])}return n.apply(t,e)}var kc=Jh;function eg(n,t){var e=-1,r=n.length;for(t||(t=Array(r));++e<r;)t[e]=n[e];return t}var os=eg;var tg=800,rg=16,og=Date.now;function ng(n){var t=0,e=0;return function(){var r=og(),o=rg-(r-e);if(e=r,o>0){if(++t>=tg)return arguments[0]}else t=0;return n.apply(void 0,arguments)}}var Hc=ng;function ig(n){return function(){return n}}var Wc=ig;var sg=function(){try{var n=_t(Object,"defineProperty");return n({},"",{}),n}catch{}}(),Ro=sg;var ag=Ro?function(n,t){return Ro(n,"toString",{configurable:!0,enumerable:!1,value:Wc(t),writable:!0})}:es,qc=ag;var lg=Hc(qc),ns=lg;function cg(n,t){for(var e=-1,r=n==null?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}var $c=cg;var ug=9007199254740991,pg=/^(?:0|[1-9]\d*)$/;function dg(n,t){var e=typeof n;return t=t??ug,!!t&&(e=="number"||e!="symbol"&&pg.test(n))&&n>-1&&n%1==0&&n<t}var Ur=dg;function fg(n,t,e){t=="__proto__"&&Ro?Ro(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}var Vo=fg;function mg(n,t){return n===t||n!==n&&t!==t}var jr=mg;var hg=Object.prototype,gg=hg.hasOwnProperty;function yg(n,t,e){var r=n[t];(!(gg.call(n,t)&&jr(r,e))||e===void 0&&!(t in n))&&Vo(n,t,e)}var Fo=yg;function xg(n,t,e,r){var o=!e;e||(e={});for(var i=-1,s=t.length;++i<s;){var l=t[i],c=r?r(e[l],n[l],l,e,n):void 0;c===void 0&&(c=n[l]),o?Vo(e,l,c):Fo(e,l,c)}return e}var Ft=xg;var Xc=Math.max;function vg(n,t,e){return t=Xc(t===void 0?n.length-1:t,0),function(){for(var r=arguments,o=-1,i=Xc(r.length-t,0),s=Array(i);++o<i;)s[o]=r[t+o];o=-1;for(var l=Array(t+1);++o<t;)l[o]=r[o];return l[t]=e(s),kc(n,this,l)}}var is=vg;function bg(n,t){return ns(is(n,t,es),n+"")}var Yc=bg;var Sg=9007199254740991;function wg(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=Sg}var zo=wg;function _g(n){return n!=null&&zo(n.length)&&!Go(n)}var kr=_g;function Tg(n,t,e){if(!Qe(e))return!1;var r=typeof t;return(r=="number"?kr(e)&&Ur(t,e.length):r=="string"&&t in e)?jr(e[t],n):!1}var Kc=Tg;function Ag(n){return Yc(function(t,e){var r=-1,o=e.length,i=o>1?e[o-1]:void 0,s=o>2?e[2]:void 0;for(i=n.length>3&&typeof i=="function"?(o--,i):void 0,s&&Kc(e[0],e[1],s)&&(i=o<3?void 0:i,o=1),t=Object(t);++r<o;){var l=e[r];l&&n(t,l,r,i)}return t})}var Zc=Ag;var Ng=Object.prototype;function Cg(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||Ng;return n===e}var Uo=Cg;function Pg(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}var Qc=Pg;var Lg="[object Arguments]";function Ig(n){return dt(n)&&Dt(n)==Lg}var ja=Ig;var Jc=Object.prototype,Og=Jc.hasOwnProperty,Mg=Jc.propertyIsEnumerable,Dg=ja(function(){return arguments}())?ja:function(n){return dt(n)&&Og.call(n,"callee")&&!Mg.call(n,"callee")},Mr=Dg;function Bg(){return!1}var eu=Bg;var ou=typeof exports=="object"&&exports&&!exports.nodeType&&exports,tu=ou&&typeof module=="object"&&module&&!module.nodeType&&module,Eg=tu&&tu.exports===ou,ru=Eg?Xe.Buffer:void 0,Gg=ru?ru.isBuffer:void 0,Rg=Gg||eu,jo=Rg;var Vg="[object Arguments]",Fg="[object Array]",zg="[object Boolean]",Ug="[object Date]",jg="[object Error]",kg="[object Function]",Hg="[object Map]",Wg="[object Number]",qg="[object Object]",$g="[object RegExp]",Xg="[object Set]",Yg="[object String]",Kg="[object WeakMap]",Zg="[object ArrayBuffer]",Qg="[object DataView]",Jg="[object Float32Array]",ey="[object Float64Array]",ty="[object Int8Array]",ry="[object Int16Array]",oy="[object Int32Array]",ny="[object Uint8Array]",iy="[object Uint8ClampedArray]",sy="[object Uint16Array]",ay="[object Uint32Array]",Me={};Me[Jg]=Me[ey]=Me[ty]=Me[ry]=Me[oy]=Me[ny]=Me[iy]=Me[sy]=Me[ay]=!0;Me[Vg]=Me[Fg]=Me[Zg]=Me[zg]=Me[Qg]=Me[Ug]=Me[jg]=Me[kg]=Me[Hg]=Me[Wg]=Me[qg]=Me[$g]=Me[Xg]=Me[Yg]=Me[Kg]=!1;function ly(n){return dt(n)&&zo(n.length)&&!!Me[Dt(n)]}var nu=ly;function cy(n){return function(t){return n(t)}}var ko=cy;var iu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Hn=iu&&typeof module=="object"&&module&&!module.nodeType&&module,uy=Hn&&Hn.exports===iu,ka=uy&&Qi.process,py=function(){try{var n=Hn&&Hn.require&&Hn.require("util").types;return n||ka&&ka.binding&&ka.binding("util")}catch{}}(),Dr=py;var su=Dr&&Dr.isTypedArray,dy=su?ko(su):nu,ss=dy;var fy=Object.prototype,my=fy.hasOwnProperty;function hy(n,t){var e=Ve(n),r=!e&&Mr(n),o=!e&&!r&&jo(n),i=!e&&!r&&!o&&ss(n),s=e||r||o||i,l=s?Qc(n.length,String):[],c=l.length;for(var p in n)(t||my.call(n,p))&&!(s&&(p=="length"||o&&(p=="offset"||p=="parent")||i&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||Ur(p,c)))&&l.push(p);return l}var as=hy;function gy(n,t){return function(e){return n(t(e))}}var ls=gy;var yy=ls(Object.keys,Object),au=yy;var xy=Object.prototype,vy=xy.hasOwnProperty;function by(n){if(!Uo(n))return au(n);var t=[];for(var e in Object(n))vy.call(n,e)&&e!="constructor"&&t.push(e);return t}var lu=by;function Sy(n){return kr(n)?as(n):lu(n)}var Ho=Sy;function wy(n){var t=[];if(n!=null)for(var e in Object(n))t.push(e);return t}var cu=wy;var _y=Object.prototype,Ty=_y.hasOwnProperty;function Ay(n){if(!Qe(n))return cu(n);var t=Uo(n),e=[];for(var r in n)r=="constructor"&&(t||!Ty.call(n,r))||e.push(r);return e}var uu=Ay;function Ny(n){return kr(n)?as(n,!0):uu(n)}var ir=Ny;var Cy=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Py=/^\w*$/;function Ly(n,t){if(Ve(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||Eo(n)?!0:Py.test(n)||!Cy.test(n)||t!=null&&n in Object(t)}var pu=Ly;var Iy=_t(Object,"create"),Br=Iy;function Oy(){this.__data__=Br?Br(null):{},this.size=0}var du=Oy;function My(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}var fu=My;var Dy="__lodash_hash_undefined__",By=Object.prototype,Ey=By.hasOwnProperty;function Gy(n){var t=this.__data__;if(Br){var e=t[n];return e===Dy?void 0:e}return Ey.call(t,n)?t[n]:void 0}var mu=Gy;var Ry=Object.prototype,Vy=Ry.hasOwnProperty;function Fy(n){var t=this.__data__;return Br?t[n]!==void 0:Vy.call(t,n)}var hu=Fy;var zy="__lodash_hash_undefined__";function Uy(n,t){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=Br&&t===void 0?zy:t,this}var gu=Uy;function Wo(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}Wo.prototype.clear=du;Wo.prototype.delete=fu;Wo.prototype.get=mu;Wo.prototype.has=hu;Wo.prototype.set=gu;var Ha=Wo;function jy(){this.__data__=[],this.size=0}var yu=jy;function ky(n,t){for(var e=n.length;e--;)if(jr(n[e][0],t))return e;return-1}var Hr=ky;var Hy=Array.prototype,Wy=Hy.splice;function qy(n){var t=this.__data__,e=Hr(t,n);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():Wy.call(t,e,1),--this.size,!0}var xu=qy;function $y(n){var t=this.__data__,e=Hr(t,n);return e<0?void 0:t[e][1]}var vu=$y;function Xy(n){return Hr(this.__data__,n)>-1}var bu=Xy;function Yy(n,t){var e=this.__data__,r=Hr(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}var Su=Yy;function qo(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}qo.prototype.clear=yu;qo.prototype.delete=xu;qo.prototype.get=vu;qo.prototype.has=bu;qo.prototype.set=Su;var Wr=qo;var Ky=_t(Xe,"Map"),qr=Ky;function Zy(){this.size=0,this.__data__={hash:new Ha,map:new(qr||Wr),string:new Ha}}var wu=Zy;function Qy(n){var t=typeof n;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?n!=="__proto__":n===null}var _u=Qy;function Jy(n,t){var e=n.__data__;return _u(t)?e[typeof t=="string"?"string":"hash"]:e.map}var $r=Jy;function ex(n){var t=$r(this,n).delete(n);return this.size-=t?1:0,t}var Tu=ex;function tx(n){return $r(this,n).get(n)}var Au=tx;function rx(n){return $r(this,n).has(n)}var Nu=rx;function ox(n,t){var e=$r(this,n),r=e.size;return e.set(n,t),this.size+=e.size==r?0:1,this}var Cu=ox;function $o(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}$o.prototype.clear=wu;$o.prototype.delete=Tu;$o.prototype.get=Au;$o.prototype.has=Nu;$o.prototype.set=Cu;var Wn=$o;var nx="Expected a function";function Wa(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError(nx);var e=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=e.cache;if(i.has(o))return i.get(o);var s=n.apply(this,r);return e.cache=i.set(o,s)||i,s};return e.cache=new(Wa.Cache||Wn),e}Wa.Cache=Wn;var Pu=Wa;var ix=500;function sx(n){var t=Pu(n,function(r){return e.size===ix&&e.clear(),r}),e=t.cache;return t}var Lu=sx;var ax=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,lx=/\\(\\)?/g,cx=Lu(function(n){var t=[];return n.charCodeAt(0)===46&&t.push(""),n.replace(ax,function(e,r,o,i){t.push(o?i.replace(lx,"$1"):r||e)}),t}),Iu=cx;function ux(n){return n==null?"":Gc(n)}var Ou=ux;function px(n,t){return Ve(n)?n:pu(n,t)?[n]:Iu(Ou(n))}var zt=px;var dx=1/0;function fx(n){if(typeof n=="string"||Eo(n))return n;var t=n+"";return t=="0"&&1/n==-dx?"-0":t}var Xr=fx;function mx(n,t){t=zt(t,n);for(var e=0,r=t.length;n!=null&&e<r;)n=n[Xr(t[e++])];return e&&e==r?n:void 0}var cs=mx;function hx(n,t){for(var e=-1,r=t.length,o=n.length;++e<r;)n[o+e]=t[e];return n}var Xo=hx;var Mu=gt?gt.isConcatSpreadable:void 0;function gx(n){return Ve(n)||Mr(n)||!!(Mu&&n&&n[Mu])}var Du=gx;function Bu(n,t,e,r,o){var i=-1,s=n.length;for(e||(e=Du),o||(o=[]);++i<s;){var l=n[i];t>0&&e(l)?t>1?Bu(l,t-1,e,r,o):Xo(o,l):r||(o[o.length]=l)}return o}var Eu=Bu;function yx(n){var t=n==null?0:n.length;return t?Eu(n,1):[]}var Gu=yx;function xx(n){return ns(is(n,void 0,Gu),n+"")}var us=xx;var vx=ls(Object.getPrototypeOf,Object),Yo=vx;var bx="[object Object]",Sx=Function.prototype,wx=Object.prototype,Ru=Sx.toString,_x=wx.hasOwnProperty,Tx=Ru.call(Object);function Ax(n){if(!dt(n)||Dt(n)!=bx)return!1;var t=Yo(n);if(t===null)return!0;var e=_x.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Ru.call(e)==Tx}var ps=Ax;function Nx(n,t,e){var r=-1,o=n.length;t<0&&(t=-t>o?0:o+t),e=e>o?o:e,e<0&&(e+=o),o=t>e?0:e-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=n[r+t];return i}var Vu=Nx;function Cx(){this.__data__=new Wr,this.size=0}var Fu=Cx;function Px(n){var t=this.__data__,e=t.delete(n);return this.size=t.size,e}var zu=Px;function Lx(n){return this.__data__.get(n)}var Uu=Lx;function Ix(n){return this.__data__.has(n)}var ju=Ix;var Ox=200;function Mx(n,t){var e=this.__data__;if(e instanceof Wr){var r=e.__data__;if(!qr||r.length<Ox-1)return r.push([n,t]),this.size=++e.size,this;e=this.__data__=new Wn(r)}return e.set(n,t),this.size=e.size,this}var ku=Mx;function Ko(n){var t=this.__data__=new Wr(n);this.size=t.size}Ko.prototype.clear=Fu;Ko.prototype.delete=zu;Ko.prototype.get=Uu;Ko.prototype.has=ju;Ko.prototype.set=ku;var ds=Ko;function Dx(n,t){return n&&Ft(t,Ho(t),n)}var Hu=Dx;function Bx(n,t){return n&&Ft(t,ir(t),n)}var Wu=Bx;var Yu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,qu=Yu&&typeof module=="object"&&module&&!module.nodeType&&module,Ex=qu&&qu.exports===Yu,$u=Ex?Xe.Buffer:void 0,Xu=$u?$u.allocUnsafe:void 0;function Gx(n,t){if(t)return n.slice();var e=n.length,r=Xu?Xu(e):new n.constructor(e);return n.copy(r),r}var fs=Gx;function Rx(n,t){for(var e=-1,r=n==null?0:n.length,o=0,i=[];++e<r;){var s=n[e];t(s,e,n)&&(i[o++]=s)}return i}var Ku=Rx;function Vx(){return[]}var ms=Vx;var Fx=Object.prototype,zx=Fx.propertyIsEnumerable,Zu=Object.getOwnPropertySymbols,Ux=Zu?function(n){return n==null?[]:(n=Object(n),Ku(Zu(n),function(t){return zx.call(n,t)}))}:ms,Zo=Ux;function jx(n,t){return Ft(n,Zo(n),t)}var Qu=jx;var kx=Object.getOwnPropertySymbols,Hx=kx?function(n){for(var t=[];n;)Xo(t,Zo(n)),n=Yo(n);return t}:ms,hs=Hx;function Wx(n,t){return Ft(n,hs(n),t)}var Ju=Wx;function qx(n,t,e){var r=t(n);return Ve(n)?r:Xo(r,e(n))}var gs=qx;function $x(n){return gs(n,Ho,Zo)}var ep=$x;function Xx(n){return gs(n,ir,hs)}var ys=Xx;var Yx=_t(Xe,"DataView"),xs=Yx;var Kx=_t(Xe,"Promise"),vs=Kx;var Zx=_t(Xe,"Set"),bs=Zx;var tp="[object Map]",Qx="[object Object]",rp="[object Promise]",op="[object Set]",np="[object WeakMap]",ip="[object DataView]",Jx=Or(xs),e0=Or(qr),t0=Or(vs),r0=Or(bs),o0=Or(rs),mo=Dt;(xs&&mo(new xs(new ArrayBuffer(1)))!=ip||qr&&mo(new qr)!=tp||vs&&mo(vs.resolve())!=rp||bs&&mo(new bs)!=op||rs&&mo(new rs)!=np)&&(mo=function(n){var t=Dt(n),e=t==Qx?n.constructor:void 0,r=e?Or(e):"";if(r)switch(r){case Jx:return ip;case e0:return tp;case t0:return rp;case r0:return op;case o0:return np}return t});var Qo=mo;var n0=Object.prototype,i0=n0.hasOwnProperty;function s0(n){var t=n.length,e=new n.constructor(t);return t&&typeof n[0]=="string"&&i0.call(n,"index")&&(e.index=n.index,e.input=n.input),e}var sp=s0;var a0=Xe.Uint8Array,qa=a0;function l0(n){var t=new n.constructor(n.byteLength);return new qa(t).set(new qa(n)),t}var Jo=l0;function c0(n,t){var e=t?Jo(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var ap=c0;var u0=/\w*$/;function p0(n){var t=new n.constructor(n.source,u0.exec(n));return t.lastIndex=n.lastIndex,t}var lp=p0;var cp=gt?gt.prototype:void 0,up=cp?cp.valueOf:void 0;function d0(n){return up?Object(up.call(n)):{}}var pp=d0;function f0(n,t){var e=t?Jo(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}var Ss=f0;var m0="[object Boolean]",h0="[object Date]",g0="[object Map]",y0="[object Number]",x0="[object RegExp]",v0="[object Set]",b0="[object String]",S0="[object Symbol]",w0="[object ArrayBuffer]",_0="[object DataView]",T0="[object Float32Array]",A0="[object Float64Array]",N0="[object Int8Array]",C0="[object Int16Array]",P0="[object Int32Array]",L0="[object Uint8Array]",I0="[object Uint8ClampedArray]",O0="[object Uint16Array]",M0="[object Uint32Array]";function D0(n,t,e){var r=n.constructor;switch(t){case w0:return Jo(n);case m0:case h0:return new r(+n);case _0:return ap(n,e);case T0:case A0:case N0:case C0:case P0:case L0:case I0:case O0:case M0:return Ss(n,e);case g0:return new r;case y0:case b0:return new r(n);case x0:return lp(n);case v0:return new r;case S0:return pp(n)}}var dp=D0;function B0(n){return typeof n.constructor=="function"&&!Uo(n)?jc(Yo(n)):{}}var ws=B0;var E0="[object Map]";function G0(n){return dt(n)&&Qo(n)==E0}var fp=G0;var mp=Dr&&Dr.isMap,R0=mp?ko(mp):fp,hp=R0;var V0="[object Set]";function F0(n){return dt(n)&&Qo(n)==V0}var gp=F0;var yp=Dr&&Dr.isSet,z0=yp?ko(yp):gp,xp=z0;var U0=1,j0=2,k0=4,vp="[object Arguments]",H0="[object Array]",W0="[object Boolean]",q0="[object Date]",$0="[object Error]",bp="[object Function]",X0="[object GeneratorFunction]",Y0="[object Map]",K0="[object Number]",Sp="[object Object]",Z0="[object RegExp]",Q0="[object Set]",J0="[object String]",ev="[object Symbol]",tv="[object WeakMap]",rv="[object ArrayBuffer]",ov="[object DataView]",nv="[object Float32Array]",iv="[object Float64Array]",sv="[object Int8Array]",av="[object Int16Array]",lv="[object Int32Array]",cv="[object Uint8Array]",uv="[object Uint8ClampedArray]",pv="[object Uint16Array]",dv="[object Uint32Array]",Ie={};Ie[vp]=Ie[H0]=Ie[rv]=Ie[ov]=Ie[W0]=Ie[q0]=Ie[nv]=Ie[iv]=Ie[sv]=Ie[av]=Ie[lv]=Ie[Y0]=Ie[K0]=Ie[Sp]=Ie[Z0]=Ie[Q0]=Ie[J0]=Ie[ev]=Ie[cv]=Ie[uv]=Ie[pv]=Ie[dv]=!0;Ie[$0]=Ie[bp]=Ie[tv]=!1;function _s(n,t,e,r,o,i){var s,l=t&U0,c=t&j0,p=t&k0;if(e&&(s=o?e(n,r,o,i):e(n)),s!==void 0)return s;if(!Qe(n))return n;var a=Ve(n);if(a){if(s=sp(n),!l)return os(n,s)}else{var u=Qo(n),d=u==bp||u==X0;if(jo(n))return fs(n,l);if(u==Sp||u==vp||d&&!o){if(s=c||d?{}:ws(n),!l)return c?Ju(n,Wu(s,n)):Qu(n,Hu(s,n))}else{if(!Ie[u])return o?n:{};s=dp(n,u,l)}}i||(i=new ds);var f=i.get(n);if(f)return f;i.set(n,s),xp(n)?n.forEach(function(g){s.add(_s(g,t,e,g,n,i))}):hp(n)&&n.forEach(function(g,x){s.set(x,_s(g,t,e,x,n,i))});var m=p?c?ys:ep:c?ir:Ho,h=a?void 0:m(n);return $c(h||n,function(g,x){h&&(x=g,g=n[x]),Fo(s,x,_s(g,t,e,x,n,i))}),s}var Ts=_s;var fv=1,mv=4;function hv(n){return Ts(n,fv|mv)}var qn=hv;function gv(n,t){return n!=null&&t in Object(n)}var wp=gv;function yv(n,t,e){t=zt(t,n);for(var r=-1,o=t.length,i=!1;++r<o;){var s=Xr(t[r]);if(!(i=n!=null&&e(n,s)))break;n=n[s]}return i||++r!=o?i:(o=n==null?0:n.length,!!o&&zo(o)&&Ur(s,o)&&(Ve(n)||Mr(n)))}var _p=yv;function xv(n,t){return n!=null&&_p(n,t,wp)}var Tp=xv;function vv(n){return function(t,e,r){for(var o=-1,i=Object(t),s=r(t),l=s.length;l--;){var c=s[n?l:++o];if(e(i[c],c,i)===!1)break}return t}}var Ap=vv;var bv=Ap(),Np=bv;function Sv(n,t,e){(e!==void 0&&!jr(n[t],e)||e===void 0&&!(t in n))&&Vo(n,t,e)}var $n=Sv;function wv(n){return dt(n)&&kr(n)}var Cp=wv;function _v(n,t){if(!(t==="constructor"&&typeof n[t]=="function")&&t!="__proto__")return n[t]}var Xn=_v;function Tv(n){return Ft(n,ir(n))}var Pp=Tv;function Av(n,t,e,r,o,i,s){var l=Xn(n,e),c=Xn(t,e),p=s.get(c);if(p){$n(n,e,p);return}var a=i?i(l,c,e+"",n,t,s):void 0,u=a===void 0;if(u){var d=Ve(c),f=!d&&jo(c),m=!d&&!f&&ss(c);a=c,d||f||m?Ve(l)?a=l:Cp(l)?a=os(l):f?(u=!1,a=fs(c,!0)):m?(u=!1,a=Ss(c,!0)):a=[]:ps(c)||Mr(c)?(a=l,Mr(l)?a=Pp(l):(!Qe(l)||Go(l))&&(a=ws(c))):u=!1}u&&(s.set(c,a),o(a,c,r,i,s),s.delete(c)),$n(n,e,a)}var Lp=Av;function Ip(n,t,e,r,o){n!==t&&Np(t,function(i,s){if(o||(o=new ds),Qe(i))Lp(n,t,s,e,Ip,r,o);else{var l=r?r(Xn(n,s),i,s+"",n,t,o):void 0;l===void 0&&(l=i),$n(n,s,l)}},ir)}var Op=Ip;function Nv(n){var t=n==null?0:n.length;return t?n[t-1]:void 0}var Mp=Nv;function Cv(n,t){return t.length<2?n:cs(n,Vu(t,0,-1))}var Dp=Cv;var Pv=Zc(function(n,t,e){Op(n,t,e)}),ho=Pv;function Lv(n,t){return t=zt(t,n),n=Dp(n,t),n==null||delete n[Xr(Mp(t))]}var Bp=Lv;function Iv(n){return ps(n)?void 0:n}var Ep=Iv;var Ov=1,Mv=2,Dv=4,Bv=us(function(n,t){var e={};if(n==null)return e;var r=!1;t=Ji(t,function(i){return i=zt(i,n),r||(r=i.length>1),i}),Ft(n,ys(n),e),r&&(e=Ts(e,Ov|Mv|Dv,Ep));for(var o=t.length;o--;)Bp(e,t[o]);return e}),en=Bv;function Ev(n,t,e,r){if(!Qe(n))return n;t=zt(t,n);for(var o=-1,i=t.length,s=i-1,l=n;l!=null&&++o<i;){var c=Xr(t[o]),p=e;if(c==="__proto__"||c==="constructor"||c==="prototype")return n;if(o!=s){var a=l[c];p=r?r(a,c,l):void 0,p===void 0&&(p=Qe(a)?a:Ur(t[o+1])?[]:{})}Fo(l,c,p),l=l[c]}return n}var Gp=Ev;function Gv(n,t,e){for(var r=-1,o=t.length,i={};++r<o;){var s=t[r],l=cs(n,s);e(l,s)&&Gp(i,zt(s,n),l)}return i}var Rp=Gv;function Rv(n,t){return Rp(n,t,function(e,r){return Tp(n,r)})}var Vp=Rv;var Vv=us(function(n,t){return n==null?{}:Vp(n,t)}),$a=Vv;var tn;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(tn||(tn={}));var go;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:o.DefaultUp,isUpVectorFlipped:!1,targetOffset:o.DefaultTargetOffset};function r(i){return i.type==="PerspectiveCamera"?i.perspective.zoom:i.orthographic.zoom}o.getZoom=r})(go||(go={}));var Fp;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i]}e.lerp=t})(Fp||(Fp={}));var rn;(o=>{function n(i,s){return i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]}o.isEqual=n;function t(i,s){return[i[0]+s[0],i[1]+s[1],i[2]+s[2]]}o.add=t;function e(i,s){return[i[0]-s[0],i[1]-s[1],i[2]-s[2]]}o.sub=e;function r(i,s,l){return[i[0]+(s[0]-i[0])*l,i[1]+(s[1]-i[1])*l,i[2]+(s[2]-i[2])*l]}o.lerp=r})(rn||(rn={}));var zp;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]&&r[2]===o[2]&&r[3]===o[3]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i,r[2]+(o[2]-r[2])*i,r[3]+(o[3]-r[3])*i]}e.lerp=t})(zp||(zp={}));var Yr;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(i,s){for(let l=0;l<16;l++)if(i[l]!==s[l])return!1;return!0}o.isEqual=t;function e(i){return i??o.identity}o.simplify=e;function r(i,s){let l=s.slice(0);for(var c=0,p=s.length;c<p;c+=3){let a=i[3]*s[c]+i[7]*s[c+1]+i[11]*s[c+2]+i[15];l[c]=(i[0]*s[c]+i[4]*s[c+1]+i[8]*s[c+2]+i[12])/a,l[c+1]=(i[1]*s[c]+i[5]*s[c+1]+i[9]*s[c+2]+i[13])/a,l[c+2]=(i[2]*s[c]+i[6]*s[c+1]+i[10]*s[c+2]+i[14])/a}return l}o.applyMatrix4=r})(Yr||(Yr={}));var Tt;(c=>{c.white={r:1,g:1,b:1},c.red={r:1,g:0,b:0},c.black={r:0,g:0,b:0};function r(p){return{r:Math.round(p.r*255),g:Math.round(p.g*255),b:Math.round(p.b*255),a:1}}c.toRgb255a1=r;function o(p){return{r:p.r,g:p.g,b:p.b}}c.clone=o;function i(p){return p=Math.floor(p),{r:(p>>16&255)/255,g:(p>>8&255)/255,b:(p&255)/255}}c.fromHex=i;function s(p,a){return p.r===a.r&&p.g===a.g&&p.b===a.b}c.equals=s;function l(p,a,u){return{r:p.r+(a.r-p.r)*u,g:p.g+(a.g-p.g)*u,b:p.b+(a.b-p.b)*u}}c.lerp=l})(Tt||(Tt={}));var Bt;(l=>{l.white={...Tt.white,a:1},l.transparent={...Tt.white,a:0};function e(c){return{r:c[0],g:c[1],b:c[2],a:c[3]}}l.from0to1=e;function r(c,p){return{...Tt.fromHex(c),a:p}}l.fromHexAndA=r;function o(c){return{r:Math.round(c.r*255),g:Math.round(c.g*255),b:Math.round(c.b*255),a:c.a}}l.toRgb255a1=o;function i(c,p){return Tt.equals(c,p)&&c.a===p.a}l.equals=i;function s(c,p,a){return{r:c.r+(p.r-c.r)*a,g:c.g+(p.g-c.g)*a,b:c.b+(p.b-c.b)*a,a:c.a+(p.a-c.a)*a}}l.lerp=s})(Bt||(Bt={}));var As;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(As||(As={}));var Up;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(Up||(Up={}));var jp;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(jp||(jp={}));var Ns;(t=>{function n(e,r=.1){return{type:"radial",hideBase:!1,count:3,radial:{radius:Math.max(e[0],e[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},linear:{scale:[1,1,1],rotation:[0,0,0],position:[e[0]+e[0]*r,0,0]},grid:{count:[2,2,2],size:e.map(o=>o*(1+r)),useCenter:!0}}}t.defaultData=n})(Ns||(Ns={}));var Ye=class{modifyById(t,e){let r=this;if(r[t]===void 0)throw new Error("not expected");{let i={...r,[t]:e};return Object.setPrototypeOf(i,Ye.prototype),i}}add(t,e){return this.runOp({type:1,id:t,data:e})?.data??this}runOp(t){let e=this;if(t.type===1){let r=e[t.id],o;r===void 0?o={type:2,id:t.id}:o={type:1,id:t.id,data:r};let{id:i,data:s}=t,l={...e,[i]:s};return Object.setPrototypeOf(l,Ye.prototype),{data:l,actual:t,reverse:o}}else if(t.type===2){let{id:r}=t,o=e[r];if(o===void 0)return null;{let i={...e};return Object.setPrototypeOf(i,Ye.prototype),delete i[r],{data:i,actual:t,reverse:{type:1,id:r,data:o}}}}throw new Error("illegal arg")}};function Yn(n){if(n.deepFreeze!==void 0){n.deepFreeze(n);return}let t=Object.getOwnPropertyNames(n);for(let e of t){let r=n[e];r&&typeof r=="object"&&Yn(r)}return Object.freeze(n)}function kp(n,t){let e=0;for(;e<n.length&&e<t.length;){if(n[e]<t[e])return-1;if(n[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==n.length?1:0}var Cs=class extends Error{};function sr(n,t,e){if(n===void 0?t===void 0?(n=0,t=10):n=t-10:t===void 0&&(t=n+10),n>t){let i=n;n=t,t=i}let r=[],o=1/(e+1);for(let i=0;i<e;i++){let s=n+(t-n)*(i+.75+Math.random()*.5)*o;r.push(s)}return r}function Ps(n){return n instanceof Uint8Array||n instanceof Uint16Array||n instanceof Uint32Array||n instanceof Int8Array||n instanceof Int16Array||n instanceof Int32Array||n instanceof Float32Array||n instanceof Float64Array}function Hp(){return typeof process<"u"}function Wp(n,t){for(let e of n)t(e.id,e.data),Wp(e.children,t)}function qp(n,t){t(n.id,n.data);for(let e of n.children)qp(e,t)}var Ut=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Ut.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Yn(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&&qp(o,r)}}traverse(e){Wp(this,e)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(e){return this.fillCaches(),this.parentCaches.get(e)}childrenArray(e){return e===null?this:this.get(e).children}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this.parent(e),s=this.childrenArray(i),l=s.findIndex(a=>a.id===e);if(l<0)throw new Error("not expected");let c=s[l];return s=[...s],s[l]={...c,data:r},this.modifyArrayBy(i,s)}}modifyArrayBy(e,r){let o=e,i=r;for(;o!==null;){let l=i,c=o;if(o=this.parent(o),o===void 0)throw new Error;i=this.childrenArray(o);let p=i.findIndex(a=>a.id===c);if(p<0)throw new Error;i=[...i],i[p]={...i[p],children:l}}Object.setPrototypeOf(i,Ut.prototype);let s=i;return s.fillCaches(),s}runOp(e){switch(e.type){case 7:return this.addOp(e);case 8:return this.deleteOp(e);case 9:return this.moveOp(e)}}checkDuplicatedIdRec({id:e,children:r}){if(this.get(e)!==void 0)return!0;for(let o of r)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:r,fi:o,id:i,data:s,children:l}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let c=r,p=this.childrenArray(c),a={fi:o,id:i,data:s,children:l};return p=[...p,a],p.sort((d,f)=>d.fi-f.fi),e.localIndex=p.indexOf(a),{data:this.modifyArrayBy(c,p),actual:e,reverse:{type:8,id:i}}}}deleteOp(e){let{id:r}=e;if(this.get(r)===null)return null;{let o=this.parent(r);if(o===void 0)return null;let i=this.childrenArray(o),s=i.findIndex(p=>p.id===r);e.localIndex=s,i=[...i];let l=i.splice(s,1)[0];return{data:this.modifyArrayBy(o,i),actual:e,reverse:{type:7,...l,parent:o}}}}moveOp(e){let{parent:r,fi:o,id:i}=e;if(r!==null&&this.get(r)===void 0)return this.deleteOp({type:8,id:i});if(r!==null){let f=r;for(;f!==null;){if(f===void 0)throw new Error;if(f===i)throw new Cs("cyclic tree");f=this.parent(f)}}let s=this.parent(i);if(s===void 0)return null;let l=s,c=this.childrenArray(s),p=c.findIndex(f=>f.id===i);c=[...c];let a=c.splice(p,1)[0],u=this.modifyArrayBy(s,c);s=r,c=u.childrenArray(s);let d=a.fi;return a={...a,fi:o},c=[...c,a],c.sort((f,m)=>f.fi-m.fi),e.localIndex=c.indexOf(a),u=u.modifyArrayBy(s,c),{data:u,actual:e,reverse:{type:9,parent:l,fi:d,id:i}}}previous(e,r){if(r===null){let i=this.childrenArray(e);return i.length===0?null:i[i.length-1].id}let o=null;for(let i of this.childrenArray(e)){if(i.id===r)return o;o=i.id}return null}traverseSortNext(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(s=>s.id===e)+1;if(i<o.length)return o[i].id;if(r)return this.traverseSortNext(r)}}sortNext(e){let r=this.childrenArray(e);return r.length>0?r[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let r=this.childrenArray(e);return r.length>0?this.traverseSortPrevious(r[r.length-1].id):e}sortPrevious(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(s=>s.id===e)-1;return i>=0?this.traverseSortPrevious(o[i].id):r}}getAllSorted(e){let r=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&r.push({...o,...i})}r.sort((o,i)=>kp(o.sortKey,i.sortKey));for(let o of r)delete o.sortKey;return r}getWithSortKey(e){var r=e;let o=[],i=this.get(r),s=i;if(i!==void 0){for(;r;)o.splice(0,0,i.fi),r=this.parent(r),r!==null&&(i=this.get(r));return{...s,sortKey:o}}}insertBeforeHelper(e,r,o){return this.insertAfterHelper(e,this.previous(e,r),o)}insertAfterHelper(e,r,o){let i=this.childrenArray(e);if(r===null){if(i.length===0)return sr(0,o,o);{let s=i[0].fi;return sr(s-o,s,o)}}else{let s=this.get(r);if(s===void 0||this.parent(r)!==e)throw new Error("illegal args");let l=i.find(c=>c.fi>s.fi);if(l===void 0){let c=i[i.length-1].fi;return sr(c,c+o,o)}else return sr(s.fi,l.fi,o)}}};var Ls;(t=>{function n(e,r){if(Array.isArray(e)){let o=r.props,i={},s=[...e],l=!1;if(o)for(let c of Object.keys(o)){let p=parseInt(c);if(isNaN(p))throw new Error("wrong index");i[c]=s[p],s[p]=o[c],l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}else{let o=r.props,i={},s={...e},l=!1;if(o)for(let c of Object.keys(o)){i[c]=s[c];let p=o[c];p===void 0?delete s[c]:s[c]=p,l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}}t.runOp=n})(Ls||(Ls={}));var Ee=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Ee.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Yn(this[e]),e++}fillCaches0(e){this.objCaches.set(e.id,e)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let e of this)this.fillCaches0(e)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}data(e){return this.get(e)?.data}get(e){return this.fillCaches(),this.objCaches.get(e)}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this,s=i.findIndex(p=>p.id===e);if(s<0)throw new Error("not expected");let l=i[s];return i=[...i],i[s]={...l,data:r},this.modifyArrayBy(i)}}modifyArrayBy(e){Object.setPrototypeOf(e,Ee.prototype);let r=e;return Hp()||r.fillCaches(),r}runOp(e){switch(e.type){case 4:return this.addOp(e);case 5:return this.deleteOp(e);case 6:return this.moveOp(e)}}addOp(e){let{fi:r,id:o,data:i}=e,s=this,l={fi:r,id:o,data:i};return s=[...s,l],s.sort((p,a)=>p.fi-a.fi),e.localIndex=s.indexOf(l),{data:this.modifyArrayBy(s),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:r}=e,o=this,i=o.findIndex(c=>c.id===r);if(i===-1)return null;e.localIndex=i,o=[...o];let s=o.splice(i,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...s}}}moveOp(e){let{fi:r,id:o}=e,i=this;i=[...i];let s=i.findIndex(a=>a.id===o);if(s===-1)return null;let l=i[s].fi,c={...i[s],fi:r};return i[s]=c,i.sort((a,u)=>a.fi-u.fi),e.localIndex=i.indexOf(c),{data:this.modifyArrayBy(i),actual:e,reverse:{type:6,fi:l,id:o}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let r=null;for(let o of this){if(o.id===e)return r;r=o.id}return null}insertBeforeHelper(e,r){return this.insertAfterHelper(this.previous(e),r)}insertAfterHelper(e,r){let o=this;if(e===null){if(o.length===0)return sr(0,r,r);{let i=o[0].fi;return sr(i-r,i,r)}}else{let i=this.get(e);if(i===void 0)throw new Error("illegal args");let s=o.find(l=>l.fi>i.fi);if(s===void 0){let l=o[o.length-1].fi;return sr(l,l+r,r)}else return sr(i.fi,s.fi,r)}}};var $p=Symbol(),Os=Symbol(),on=class{reportOp(t,e){let r=this;if(e===null)return;r._current=e.data;let o=[];for(;!(r instanceof Is);){let i=r._path,s=r._current;if(i!==""&&o.splice(0,0,i),r=r._parent,r===null)return;r.update(i,s)}r.push(o,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[Os];r&&r(),delete this._children[t]}}}},Ya=class extends on{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,Ls.runOp(this._current,t))}},Ka=class extends on{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,Ye.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Xp={get(n,t){if(t===Os)return()=>{n._parent=null};if(t===$p)return n._current;let{_current:e,_children:r}=n;if(t==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e[t],s=Ms(n,t,i);return s!==i?(r===void 0&&(r={},n._children=r),r[t]=s,s):i},has(n,t){return t in n._current},ownKeys(n){return Reflect.ownKeys(n._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(n){return Object.getPrototypeOf(n._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(n,t){let e=n._current,r=Reflect.getOwnPropertyDescriptor(e,t);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:e[t]}}},Fv={...Xp,set(n,t,e){let r={type:0,props:{[t]:ar(e)??e}};return n.deleteChildren(t),n.runOp(r),!0},deleteProperty(n,t){let e={type:0,props:{[t]:void 0}};return n.deleteChildren(t),n.runOp(e),!0}},zv={...Xp,set(n,t,e){return e===void 0?this.deleteProperty(n,t):(n.deleteChildren(t),n.runOp({type:1,id:t,data:e})),!0},deleteProperty(n,t){return n.runOp({type:2,id:t}),!0}},nn=class extends on{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[Os]=()=>{this._parent=null}}unproxy(){return this._current}update(t,e){this._current=this._current.modifyById(t,e)}runOp(t){this.reportOp(t,this._current.runOp(t))}randomId(){return this._current.randomId()}isDescendantOf(t,e){return this._current.isDescendantOf(t,e)}childrenOf(t){return this._current.childrenOf(t)}traverse(t){return this._current.traverse(t)}get(t){return this._current.get(t)}parent(t){return this._current.parent(t)}traverse(t){this._current.traverse((e,r)=>{t(e,this.data(e))})}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,s=Ms(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):i}add(t,e,r,o,i){this.runOp({type:7,parent:t,fi:e,id:r,data:o,children:i})}move(t,e,r){this.runOp({type:9,parent:t,fi:e,id:r})}insertAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}insertBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}moveAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}moveBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}delete(t){this.deleteChildren(t),this.runOp({type:8,id:t})}sortNext(t){return this._current.sortNext(t)}sortPrevious(t){return this._current.sortPrevious(t)}getAllSorted(t){return this._current.getAllSorted(t)}},sn=class extends on{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[Os]=()=>{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 i=e.get(t)?.data,s=Ms(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):i}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,e,r){this.runOp({type:4,fi:t,id:e,data:r})}move(t,e){this.runOp({type:6,fi:t,id:e})}insertAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}insertBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}moveAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}moveBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function Xa(n,t,e){if(n.length>0){let r=n[n.length-1];if(r.type===0&&t.type===0&&Ds.equal(r.path,e)){Object.assign(r.props,t.props);return}}n.push({...t,path:e})}var Is=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){Xa(this.ts,e,t),Xa(this.actual,r,t),Xa(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Ms(n,t,e){return e instanceof Ut?new nn(n,t,e):e instanceof Ee?new sn(n,t,e):e instanceof Ye?new Proxy(new Ka(n,t,e),zv):e!==null&&typeof e=="object"?Ps(e)?e:new Proxy(new Ya(n,t,e),Fv):e}function Za(n){let t=new Is(n);return[Ms(t,"",n),t]}function Qa(n,t){let[e,r]=Za(n);return t(e),r.result()}function ar(n){return n instanceof nn||n instanceof sn?n._current:n!==null&&typeof n=="object"?n[$p]:n}var Ds;(r=>{function n(o,i){if(i.length===o.length)for(var s=0;s<o.length;){if(o[s]!==i[s])return!1;s+=1}else return!1;return!0}r.equal=n;function t(o,i,s){let l=e(s,o);if(l!==void 0&&typeof l=="object"&&l!==null){let c={...i};return Object.keys(l).forEach(p=>{delete c[p]}),c}else return i}r.removeOverridden=t;function e(o,i,s=0){if(i.length<=s)return o;if((o instanceof Ut||o instanceof nn)&&typeof i[s]=="string")return e(o.data(i[s]),i,s+1);if((o instanceof Ee||o instanceof sn)&&typeof i[s]=="string")return e(o.data(i[s]),i,s+1);if(typeof i[s]=="number"&&Array.isArray(o))return e(o[i[s]],i,s+1);if(typeof i[s]=="string"&&typeof o=="object")return e(o[i[s]],i,s+1)}r.zoom=e})(Ds||(Ds={}));var Bs=class{},Kn=class extends Bs{constructor(e){super();this.id=e}},Zn=class extends Bs{constructor(e){super();this.data=e}};var el;try{el=new TextDecoder}catch{}var te,Zr,_=0;var rd=[],tl=rd,rl=0,At={},we,Kr,jt=0,lr=0,Et,Er,yt=[],Ce,Yp={useRecords:!1,mapsAsObjects:!0},Qn=class{},nl=new Qn;nl.name="MessagePack 0xC1";var an=!1,cr=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 ad(()=>(Gs(),this?this.unpack(t,e):cr.prototype.unpack.call(Yp,t,e)));Zr=e>-1?e:t.length,_=0,rl=0,lr=0,Kr=null,tl=rd,Et=null,te=t;try{Ce=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 cr){if(At=this,this.structures)return we=this.structures,Es();(!we||we.length>0)&&(we=[])}else At=Yp,(!we||we.length>0)&&(we=[]);return Es()}unpackMultiple(t,e){let r,o=0;try{an=!0;let i=t.length,s=this?this.unpack(t,i):Fs.unpack(t,i);if(e){for(e(s);_<i;)if(o=_,e(Es())===!1)return}else{for(r=[s];_<i;)o=_,r.push(Es());return r}}catch(i){throw i.lastPosition=o,i.values=r,i}finally{an=!1,Gs()}}_mergeStructures(t,e){t=t||[];for(let r=0,o=t.length;r<o;r++){let i=t[r];i&&(i.isShared=!0,r>=32&&(i.highByte=r-32>>5))}t.sharedLength=t.length;for(let r in e||[])if(r>=0){let o=t[r],i=e[r];i&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[r]=o),t[r]=i)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function Es(){try{if(!At.trusted&&!an){let t=we.sharedLength||0;t<we.length&&(we.length=t)}let n=Fe();if(_==Zr)we.restoreStructures&&Kp(),we=null,te=null,Er&&(Er=null);else if(_>Zr){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!an)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw we.restoreStructures&&Kp(),Gs(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function Kp(){for(let n in we.restoreStructures)we[n]=we.restoreStructures[n];we.restoreStructures=null}function Fe(){let n=te[_++];if(n<160)if(n<128){if(n<64)return n;{let t=we[n&63]||At.getStructures&&od()[n&63];return t?(t.read||(t.read=il(t,n&63)),t.read()):n}}else if(n<144)if(n-=128,At.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[id()]=Fe();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Fe(),Fe());return t}else{n-=144;let t=new Array(n);for(let e=0;e<n;e++)t[e]=Fe();return t}else if(n<192){let t=n-160;if(lr>=_)return Kr.slice(_-jt,(_+=t)-jt);if(lr==0&&Zr<140){let e=t<16?sl(t):nd(t);if(e!=null)return e}return ol(t)}else{let t;switch(n){case 192:return null;case 193:return Et?(t=Fe(),t>0?Et[1].slice(Et.position1,Et.position1+=t):Et[0].slice(Et.position0,Et.position0-=t)):nl;case 194:return!1;case 195:return!0;case 196:return Ja(te[_++]);case 197:return t=Ce.getUint16(_),_+=2,Ja(t);case 198:return t=Ce.getUint32(_),_+=4,Ja(t);case 199:return yo(te[_++]);case 200:return t=Ce.getUint16(_),_+=2,yo(t);case 201:return t=Ce.getUint32(_),_+=4,yo(t);case 202:if(t=Ce.getFloat32(_),At.useFloat32>2){let e=Vs[(te[_]&127)<<1|te[_+1]>>7];return _+=4,(e*t+(t>0?.5:-.5)>>0)/e}return _+=4,t;case 203:return t=Ce.getFloat64(_),_+=8,t;case 204:return te[_++];case 205:return t=Ce.getUint16(_),_+=2,t;case 206:return t=Ce.getUint32(_),_+=4,t;case 207:return At.int64AsNumber?(t=Ce.getUint32(_)*4294967296,t+=Ce.getUint32(_+4)):t=Ce.getBigUint64(_),_+=8,t;case 208:return Ce.getInt8(_++);case 209:return t=Ce.getInt16(_),_+=2,t;case 210:return t=Ce.getInt32(_),_+=4,t;case 211:return At.int64AsNumber?(t=Ce.getInt32(_)*4294967296,t+=Ce.getUint32(_+4)):t=Ce.getBigInt64(_),_+=8,t;case 212:if(t=te[_++],t==114)return td(te[_++]&63);{let e=yt[t];if(e)return e.read?(_++,e.read(Fe())):e.noBuffer?(_++,e()):e(te.subarray(_,++_));throw new Error("Unknown extension "+t)}case 213:return t=te[_],t==114?(_++,td(te[_++]&63,te[_++])):yo(2);case 214:return yo(4);case 215:return yo(8);case 216:return yo(16);case 217:return t=te[_++],lr>=_?Kr.slice(_-jt,(_+=t)-jt):jv(t);case 218:return t=Ce.getUint16(_),_+=2,lr>=_?Kr.slice(_-jt,(_+=t)-jt):kv(t);case 219:return t=Ce.getUint32(_),_+=4,lr>=_?Kr.slice(_-jt,(_+=t)-jt):Hv(t);case 220:return t=Ce.getUint16(_),_+=2,Qp(t);case 221:return t=Ce.getUint32(_),_+=4,Qp(t);case 222:return t=Ce.getUint16(_),_+=2,Jp(t);case 223:return t=Ce.getUint32(_),_+=4,Jp(t);default:if(n>=224)return n-256;if(n===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+n)}}}var Uv=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function il(n,t){function e(){if(e.count++>2){let o=n.read=new Function("r","return function(){return {"+n.map(i=>Uv.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(Fe);return n.highByte===0&&(n.read=Zp(t,n.read)),o()}let r={};for(let o=0,i=n.length;o<i;o++){let s=n[o];r[s]=Fe()}return r}return e.count=0,n.highByte===0?Zp(t,e):e}var Zp=(n,t)=>function(){let e=te[_++];if(e===0)return t();let r=n<32?-(n+(e<<5)):n+(e<<5),o=we[r]||od()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=il(o,n)),o.read()};function od(){let n=ad(()=>(te=null,At.getStructures()));return we=At._mergeStructures(n,we)}var ol=Rs,jv=Rs,kv=Rs,Hv=Rs;function Rs(n){let t;if(n<16&&(t=sl(n)))return t;if(n>64&&el)return el.decode(te.subarray(_,_+=n));let e=_+n,r=[];for(t="";_<e;){let o=te[_++];if((o&128)===0)r.push(o);else if((o&224)===192){let i=te[_++]&63;r.push((o&31)<<6|i)}else if((o&240)===224){let i=te[_++]&63,s=te[_++]&63;r.push((o&31)<<12|i<<6|s)}else if((o&248)===240){let i=te[_++]&63,s=te[_++]&63,l=te[_++]&63,c=(o&7)<<18|i<<12|s<<6|l;c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|c&1023),r.push(c)}else r.push(o);r.length>=4096&&(t+=nt.apply(String,r),r.length=0)}return r.length>0&&(t+=nt.apply(String,r)),t}function Qp(n){let t=new Array(n);for(let e=0;e<n;e++)t[e]=Fe();return t}function Jp(n){if(At.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[id()]=Fe();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Fe(),Fe());return t}}var nt=String.fromCharCode;function nd(n){let t=_,e=new Array(n);for(let r=0;r<n;r++){let o=te[_++];if((o&128)>0){_=t;return}e[r]=o}return nt.apply(String,e)}function sl(n){if(n<4)if(n<2){if(n===0)return"";{let t=te[_++];if((t&128)>1){_-=1;return}return nt(t)}}else{let t=te[_++],e=te[_++];if((t&128)>0||(e&128)>0){_-=2;return}if(n<3)return nt(t,e);let r=te[_++];if((r&128)>0){_-=3;return}return nt(t,e,r)}else{let t=te[_++],e=te[_++],r=te[_++],o=te[_++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){_-=4;return}if(n<6){if(n===4)return nt(t,e,r,o);{let i=te[_++];if((i&128)>0){_-=5;return}return nt(t,e,r,o,i)}}else if(n<8){let i=te[_++],s=te[_++];if((i&128)>0||(s&128)>0){_-=6;return}if(n<7)return nt(t,e,r,o,i,s);let l=te[_++];if((l&128)>0){_-=7;return}return nt(t,e,r,o,i,s,l)}else{let i=te[_++],s=te[_++],l=te[_++],c=te[_++];if((i&128)>0||(s&128)>0||(l&128)>0||(c&128)>0){_-=8;return}if(n<10){if(n===8)return nt(t,e,r,o,i,s,l,c);{let p=te[_++];if((p&128)>0){_-=9;return}return nt(t,e,r,o,i,s,l,c,p)}}else if(n<12){let p=te[_++],a=te[_++];if((p&128)>0||(a&128)>0){_-=10;return}if(n<11)return nt(t,e,r,o,i,s,l,c,p,a);let u=te[_++];if((u&128)>0){_-=11;return}return nt(t,e,r,o,i,s,l,c,p,a,u)}else{let p=te[_++],a=te[_++],u=te[_++],d=te[_++];if((p&128)>0||(a&128)>0||(u&128)>0||(d&128)>0){_-=12;return}if(n<14){if(n===12)return nt(t,e,r,o,i,s,l,c,p,a,u,d);{let f=te[_++];if((f&128)>0){_-=13;return}return nt(t,e,r,o,i,s,l,c,p,a,u,d,f)}}else{let f=te[_++],m=te[_++];if((f&128)>0||(m&128)>0){_-=14;return}if(n<15)return nt(t,e,r,o,i,s,l,c,p,a,u,d,f,m);let h=te[_++];if((h&128)>0){_-=15;return}return nt(t,e,r,o,i,s,l,c,p,a,u,d,f,m,h)}}}}}function Ja(n){return At.copyBuffers?Uint8Array.prototype.slice.call(te,_,_+=n):te.subarray(_,_+=n)}function yo(n){let t=te[_++];if(yt[t])return yt[t](te.subarray(_,_+=n));throw new Error("Unknown extension type "+t)}var ed=new Array(4096);function id(){let n=te[_++];if(n>=160&&n<192){if(n=n-160,lr>=_)return Kr.slice(_-jt,(_+=n)-jt);if(!(lr==0&&Zr<180))return ol(n)}else return _--,Fe();let t=(n<<5^(n>1?Ce.getUint16(_):n>0?te[_]:0))&4095,e=ed[t],r=_,o=_+n-3,i,s=0;if(e&&e.bytes==n){for(;r<o;){if(i=Ce.getUint32(r),i!=e[s++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(i=te[r++],i!=e[s++]){r=1879048192;break}if(r===o)return _=r,e.string;o-=3,r=_}for(e=[],ed[t]=e,e.bytes=n;r<o;)i=Ce.getUint32(r),e.push(i),r+=4;for(o+=3;r<o;)i=te[r++],e.push(i);let l=n<16?sl(n):nd(n);return l!=null?e.string=l:e.string=ol(n)}var td=(n,t)=>{var e=Fe();let r=n;t!==void 0&&(n=n<32?-((t<<5)+n):(t<<5)+n,e.highByte=t);let o=we[n];return o&&o.isShared&&((we.restoreStructures||(we.restoreStructures=[]))[n]=o),we[n]=e,e.read=il(e,r),e.read()},sd=typeof self=="object"?self:global;yt[0]=()=>{};yt[0].noBuffer=!0;yt[101]=()=>{let n=Fe();return(sd[n[0]]||Error)(n[1])};yt[105]=n=>{let t=Ce.getUint32(_-4);Er||(Er=new Map);let e=te[_],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};Er.set(t,o);let i=Fe();return o.used?Object.assign(r,i):(o.target=i,i)};yt[112]=n=>{let t=Ce.getUint32(_-4),e=Er.get(t);return e.used=!0,e.target};yt[115]=()=>new Set(Fe());var al=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");yt[116]=n=>{let t=n[0],e=al[t];if(!e)throw new Error("Could not find typed array for code "+t);return new sd[e](Uint8Array.prototype.slice.call(n,1).buffer)};yt[120]=()=>{let n=Fe();return new RegExp(n[0],n[1])};yt[98]=n=>{let t=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],e=_;_+=t-4,Et=[Fe(),Fe()],Et.position0=0,Et.position1=0;let r=_;_=e;try{return Fe()}finally{_=r}};yt[255]=n=>n.length==4?new Date((n[0]*16777216+(n[1]<<16)+(n[2]<<8)+n[3])*1e3):n.length==8?new Date(((n[0]<<22)+(n[1]<<14)+(n[2]<<6)+(n[3]>>2))/1e6+((n[3]&3)*4294967296+n[4]*16777216+(n[5]<<16)+(n[6]<<8)+n[7])*1e3):n.length==12?new Date(((n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3])/1e6+((n[4]&128?-281474976710656:0)+n[6]*1099511627776+n[7]*4294967296+n[8]*16777216+(n[9]<<16)+(n[10]<<8)+n[11])*1e3):new Date("invalid");function ad(n){let t=Zr,e=_,r=rl,o=jt,i=lr,s=Kr,l=tl,c=Er,p=Et,a=new Uint8Array(te.slice(0,Zr)),u=we,d=we.slice(0,we.length),f=At,m=an,h=n();return Zr=t,_=e,rl=r,jt=o,lr=i,Kr=s,tl=l,Er=c,Et=p,te=a,an=m,we=u,we.splice(0,we.length,...d),At=f,Ce=new DataView(te.buffer,te.byteOffset,te.byteLength),h}function Gs(){te=null,Er=null,we=null}function ld(n){n.unpack?yt[n.type]=n.unpack:yt[n.type]=n}var Vs=new Array(147);for(let n=0;n<256;n++)Vs[n]=+("1e"+Math.floor(45.15-n*.30103));var Fs=new cr({useRecords:!1}),Wv=Fs.unpack,qv=Fs.unpackMultiple,$v=Fs.unpack,zs={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},Xv=new Float32Array(1),KL=new Uint8Array(Xv.buffer,0,4);var Us;try{Us=new TextEncoder}catch{}var js,cl,ks=typeof Buffer<"u",ll=ks?Buffer.allocUnsafeSlow:Uint8Array,dd=ks?Buffer:Uint8Array,cd=ks?4294967296:2144337920,R,ke,P=0,ur,pr=null,Yv=/[\u0080-\uFFFF]/,Jn=Symbol("record-id"),xo=class extends cr{constructor(t){super(t),this.offset=0;let e,r,o,i,s,l,c=0,p=dd.prototype.utf8Write?function(y,I,T){return R.utf8Write(y,I,T)}:Us&&Us.encodeInto?function(y,I){return Us.encodeInto(y,R.subarray(I)).written}:!1,a=this;t||(t={});let u=t&&t.sequential,d=t.structures||t.saveStructures,f=t.maxSharedStructures;if(f==null&&(f=d?32:0),f>8160)throw new Error("Maximum maxSharedStructure is 8160");let m=t.maxOwnStructures;m==null&&(m=d?32:64),u&&!t.saveStructures&&(this.structures=[]);let h=f>32||m+f>64,g=f+64,x=f+m+64;if(x>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let v=[],A=0,S=0;this.pack=this.encode=function(y,I){if(R||(R=new ll(8192),ke=new DataView(R.buffer,0,8192),P=0),ur=R.length-10,ur-P<2048?(R=new ll(R.length),ke=new DataView(R.buffer,0,R.length),ur=R.length-10,P=0):P=P+7&2147483640,r=P,l=a.structuredClone?new Map:null,a.bundleStrings?(pr=["",""],R[P++]=214,R[P++]=98,pr.position=P-r,P+=4):pr=null,o=a.structures,o){o.uninitialized&&(o=a._mergeStructures(a.getStructures()));let T=o.sharedLength||0;if(T>f)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+o.sharedLength);if(!o.transitions){o.transitions=Object.create(null);for(let L=0;L<T;L++){let N=o[L];if(!N)continue;let C,k=o.transitions;for(let W=0,ne=N.length;W<ne;W++){let ue=N[W];C=k[ue],C||(C=k[ue]=Object.create(null)),k=C}k[Jn]=L+64}c=T}u||(o.nextId=T+64)}i&&(i=!1),s=o||[];try{if(b(y),pr){ke.setUint32(pr.position+r,P-pr.position-r);let T=pr;pr=null,b(T[0]),b(T[1])}if(a.offset=P,l&&l.idsToInsert){P+=l.idsToInsert.length*6,P>ur&&w(P),a.offset=P;let T=Zv(R.subarray(r,P),l.idsToInsert);return l=null,T}return I&md?(R.start=r,R.end=P,R):R.subarray(r,P)}finally{if(o){if(S<10&&S++,A>1e4)o.transitions=null,S=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][Jn]=0;v=[]}if(i&&a.saveStructures){let T=o.sharedLength||f;o.length>T&&(o=o.slice(0,T));let L=R.subarray(r,P);return a.saveStructures(o,c)===!1?(a._mergeStructures(a.getStructures()),a.pack(y)):(c=T,L)}}I&nb&&(P=r)}};let b=y=>{P>ur&&(R=w(P));var I=typeof y,T;if(I==="string"){let L=y.length;if(pr&&L>=8&&L<4096){let k=Yv.test(y);pr[k?0:1]+=y,R[P++]=193,b(k?-L:L);return}let N;L<32?N=1:L<256?N=2:L<65536?N=3:N=5;let C=L*3;if(P+C>ur&&(R=w(P+C)),L<64||!p){let k,W,ne,ue=P+N;for(k=0;k<L;k++)W=y.charCodeAt(k),W<128?R[ue++]=W:W<2048?(R[ue++]=W>>6|192,R[ue++]=W&63|128):(W&64512)===55296&&((ne=y.charCodeAt(k+1))&64512)===56320?(W=65536+((W&1023)<<10)+(ne&1023),k++,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-P-N}else T=p(y,P+N,C);T<32?R[P++]=160|T:T<256?(N<2&&R.copyWithin(P+2,P+1,P+1+T),R[P++]=217,R[P++]=T):T<65536?(N<3&&R.copyWithin(P+3,P+2,P+2+T),R[P++]=218,R[P++]=T>>8,R[P++]=T&255):(N<5&&R.copyWithin(P+5,P+3,P+3+T),R[P++]=219,ke.setUint32(P,T),P+=4),P+=T}else if(I==="number")if(y>>>0===y)y<64?R[P++]=y:y<256?(R[P++]=204,R[P++]=y):y<65536?(R[P++]=205,R[P++]=y>>8,R[P++]=y&255):(R[P++]=206,ke.setUint32(P,y),P+=4);else if(y>>0===y)y>=-32?R[P++]=256+y:y>=-128?(R[P++]=208,R[P++]=y+256):y>=-32768?(R[P++]=209,ke.setInt16(P,y),P+=2):(R[P++]=210,ke.setInt32(P,y),P+=4);else{let L;if((L=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){R[P++]=202,ke.setFloat32(P,y);let N;if(L<4||(N=y*Vs[(R[P]&127)<<1|R[P+1]>>7])>>0===N){P+=4;return}else P--}R[P++]=203,ke.setFloat64(P,y),P+=8}else if(I==="object")if(!y)R[P++]=192;else{if(l){let N=l.get(y);if(N){if(!N.id){let C=l.idsToInsert||(l.idsToInsert=[]);N.id=C.push(N)}R[P++]=214,R[P++]=112,ke.setUint32(P,N.id),P+=4;return}else l.set(y,{offset:P-r})}let L=y.constructor;if(L===Object)D(y,!0);else if(L===Array){T=y.length,T<16?R[P++]=144|T:T<65536?(R[P++]=220,R[P++]=T>>8,R[P++]=T&255):(R[P++]=221,ke.setUint32(P,T),P+=4);for(let N=0;N<T;N++)b(y[N])}else if(L===Map){T=y.size,T<16?R[P++]=128|T:T<65536?(R[P++]=222,R[P++]=T>>8,R[P++]=T&255):(R[P++]=223,ke.setUint32(P,T),P+=4);for(let[N,C]of y)b(N),b(C)}else{for(let N=0,C=js.length;N<C;N++){let k=cl[N];if(y instanceof k){let W=js[N];if(W.write){W.type&&(R[P++]=212,R[P++]=W.type,R[P++]=0),b(W.write.call(this,y));return}let ne=R,ue=ke,se=P;R=null;let K;try{K=W.pack.call(this,y,U=>(R=ne,ne=null,P+=U,P>ur&&w(P),{target:R,targetView:ke,position:P-U}),b)}finally{ne&&(R=ne,ke=ue,P=se,ur=R.length-10)}K&&(K.length+P>ur&&w(K.length+P),P=Kv(K,R,P,W.type));return}}D(y,!y.hasOwnProperty)}}else if(I==="boolean")R[P++]=y?195:194;else if(I==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))R[P++]=211,ke.setBigInt64(P,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)R[P++]=207,ke.setBigUint64(P,y);else if(this.largeBigIntToFloat)R[P++]=203,ke.setFloat64(P,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");P+=8}else if(I==="undefined")this.encodeUndefinedAsNil?R[P++]=192:(R[P++]=212,R[P++]=0,R[P++]=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[P++]=128|T:T<65536?(R[P++]=222,R[P++]=T>>8,R[P++]=T&255):(R[P++]=223,ke.setUint32(P,T),P+=4);let L;for(let N=0;N<T;N++)b(L=I[N]),b(y[L])}:(y,I)=>{R[P++]=222;let T=P-r;P+=2;let L=0;for(let N in y)(I||y.hasOwnProperty(N))&&(b(N),b(y[N]),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)),N=0;for(let k=0,W=I.length;k<W;k++){let ne=I[k];T=L[ne],T||(T=L[ne]=Object.create(null),N++),L=T}let C=L[Jn];if(C)C>=96&&h?(R[P++]=((C-=96)&31)+96,R[P++]=C>>5):R[P++]=C;else{C=s.nextId,C||(C=64),C<g&&this.shouldShareStructure&&!this.shouldShareStructure(I)?(C=s.nextOwnId,C<x||(C=g),s.nextOwnId=C+1):(C>=x&&(C=g),s.nextId=C+1);let k=I.highByte=C>=96&&h?C-96>>5:-1;L[Jn]=C,s[C-64]=I,C<g?(I.isShared=!0,s.sharedLength=C-63,i=!0,k>=0?(R[P++]=(C&31)+96,R[P++]=k):R[P++]=C):(k>=0?(R[P++]=213,R[P++]=114,R[P++]=(C&31)+96,R[P++]=k):(R[P++]=212,R[P++]=114,R[P++]=C),N&&(A+=S*N),v.length>=m&&(v.shift()[Jn]=0),v.push(L),b(I))}for(let k=0,W=I.length;k<W;k++)b(y[I[k]])},w=y=>{let I;if(y>16777216){if(y-r>cd)throw new Error("Packed buffer would be larger than maximum buffer size");I=Math.min(cd,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 ll(I);return ke=new DataView(T.buffer,0,I),R.copy?R.copy(T,0,r,y):T.set(R.slice(r,y)),P-=r,r=0,ur=T.length-10,R=T}}useBuffer(t){R=t,ke=new DataView(R.buffer,R.byteOffset,R.byteLength),P=0}};cl=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,Qn];js=[{pack(n,t,e){let r=n.getTime()/1e3;if((this.useTimestamp32||n.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:o,targetView:i,position:s}=t(6);o[s++]=214,o[s++]=255,i.setUint32(s,r)}else if(r>0&&r<17179869184){let{target:o,targetView:i,position:s}=t(10);o[s++]=215,o[s++]=255,i.setUint32(s,n.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),i.setUint32(s+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:i,position:s}=t(3);o[s++]=212,o[s++]=255,o[s++]=255}else{let{target:o,targetView:i,position:s}=t(15);o[s++]=199,o[s++]=12,o[s++]=255,i.setUint32(s,n.getMilliseconds()*1e6),i.setBigInt64(s+4,BigInt(Math.floor(r)))}}},{pack(n,t,e){let r=Array.from(n),{target:o,position:i}=t(this.structuredClone?3:0);this.structuredClone&&(o[i++]=212,o[i++]=115,o[i++]=0),e(r)}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=101,r[o++]=0),e([n.name,n.message])}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=120,r[o++]=0),e([n.source,n.flags])}},{pack(n,t){this.structuredClone?ud(n,16,t):pd(ks?Buffer.from(n):new Uint8Array(n),t)}},{pack(n,t){let e=n.constructor;e!==dd&&this.structuredClone?ud(n,al.indexOf(e.name),t):pd(n,t)}},{pack(n,t){let{target:e,position:r}=t(1);e[r]=193}}];function ud(n,t,e,r){let o=n.byteLength;if(o+1<256){var{target:i,position:s}=e(4+o);i[s++]=199,i[s++]=o+1}else if(o+1<65536){var{target:i,position:s}=e(5+o);i[s++]=200,i[s++]=o+1>>8,i[s++]=o+1&255}else{var{target:i,position:s,targetView:l}=e(7+o);i[s++]=201,l.setUint32(s,o+1),s+=4}i[s++]=116,i[s++]=t,i.set(new Uint8Array(n.buffer,n.byteOffset,n.byteLength),s)}function pd(n,t){let e=n.byteLength;var r,o;if(e<256){var{target:r,position:o}=t(e+2);r[o++]=196,r[o++]=e}else if(e<65536){var{target:r,position:o}=t(e+3);r[o++]=197,r[o++]=e>>8,r[o++]=e&255}else{var{target:r,position:o,targetView:i}=t(e+5);r[o++]=198,i.setUint32(o,e),o+=4}r.set(n,o)}function Kv(n,t,e,r){let o=n.length;switch(o){case 1:t[e++]=212;break;case 2:t[e++]=213;break;case 4:t[e++]=214;break;case 8:t[e++]=215;break;case 16:t[e++]=216;break;default:o<256?(t[e++]=199,t[e++]=o):o<65536?(t[e++]=200,t[e++]=o>>8,t[e++]=o&255):(t[e++]=201,t[e++]=o>>24,t[e++]=o>>16&255,t[e++]=o>>8&255,t[e++]=o&255)}return t[e++]=r,t.set(n,e),e+=o,e}function Zv(n,t){let e,r=t.length*6,o=n.length-r;for(t.sort((i,s)=>i.offset>s.offset?1:-1);e=t.pop();){let i=e.offset,s=e.id;n.copyWithin(i+r,i,o),r-=6;let l=i+r;n[l++]=214,n[l++]=105,n[l++]=s>>24,n[l++]=s>>16&255,n[l++]=s>>8&255,n[l++]=s&255,o=i}return n}function vo(n){if(n.Class){if(!n.pack&&!n.write)throw new Error("Extension has no pack or write function");if(n.pack&&!n.type)throw new Error("Extension has no type (numeric code to identify the extension)");cl.unshift(n.Class),js.unshift(n)}ld(n)}var fd=new xo({useRecords:!1}),Qv=fd.pack,Jv=fd.pack;var{NEVER:eb,ALWAYS:tb,DECIMAL_ROUND:rb,DECIMAL_FIT:ob}=zs,md=512,nb=1024;var hd=new xo({structuredClone:!0});vo({Class:Ye.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Ye.prototype),n}});vo({Class:Ee.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,Ee.prototype),n}});vo({Class:Ut.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,Ut.prototype),n}});vo({Class:Kn.prototype.constructor,type:4,write(n){return n.id},read(n){return new Kn(n)}});vo({Class:Zn.prototype.constructor,type:5,write(n){return n.data},read(n){return new Zn(n)}});function ib(n){var t=0;if(n.length===0)return t;for(let e=0;e<n.length;e++){let r=n[e];t=(t<<5)-t+r,t=t&t}return t}function ul(n){if(Ps(n))return n;if(Array.isArray(n))return n.map(ul);if(typeof n=="object"&&n!==null){let t={};for(let e of Object.keys(n).sort())t[e]=ul(n[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else return n}var Hs;(r=>{function n(o){return hd.pack(o)}r.serialize=n;function t(o){return hd.unpack(o)}r.deserialize=t;function e(o){return ib(n(ul(o))).toString()}r.checksum=e})(Hs||(Hs={}));var Ws;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Ws||(Ws={}));var qs;(e=>{function n(r){return t(r)}e.defaultData=n;function t(r){if(r==="PointLight")return{type:r,color:Bt.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(r==="SpotLight")return{type:r,color:Bt.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:Bt.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(qs||(qs={}));var pl;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(pl||(pl={}));var dl;(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})(dl||(dl={}));var $s;(t=>t.defaultData={...dl.defaultData,...pl.defaultData,cloner:null,booleanExclude:null})($s||($s={}));var fl=(o=>(o[o.Left=1]="Left",o[o.Right=2]="Right",o[o.Center=3]="Center",o[o.Justify=4]="Justify",o))(fl||{}),ml=(r=>(r[r.Top=1]="Top",r[r.Center=2]="Center",r[r.Bottom=3]="Bottom",r))(ml||{}),hl=(r=>(r[r.None=1]="None",r[r.Upper=2]="Upper",r[r.Lower=3]="Lower",r))(hl||{}),Xs;(t=>t.defaultData={width:100,height:100,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.5,letterSpacing:1,text:"",textTransform:1,color:Bt.fromHexAndA(6974058,1),alpha:1,font:"roboto_regular"})(Xs||(Xs={}));var gd=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],yd=["wrapping","image"],Qr;(r=>{function n(o,i){return o==="light"&&i?t(i):e(o)}r.defaultData=n;function t(o){switch(o){case"basic":return{type:"light",category:"basic",alpha:1,visible:!0,mode:0};case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess: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:Tt.fromHex(4737101)};case"depth":return{type:"depth",alpha:1,visible:!0,mode:0,gradientType:1,smooth:!1,isVector:!0,isWorldSpace:!1,origin:[0,0,0],direction:[1,0,0],colors:[[1,1,1,1],[0,0,0,1]],steps:[0,1],near:50,far:200};case"normal":return{type:"normal",alpha:1,visible:!0,mode:0,cnormal:[1,1,1]};case"gradient":return{type:"gradient",alpha:1,visible:!0,mode:0,gradientType:0,smooth:!1,colors:[[0,0,0,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,angle:0,offset:[0,0],morph:[0,0]};case"noise":return{type:"noise",alpha:1,visible:!0,mode:0,size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...Tt.fromHex(6710886),a:1},colorB:{...Tt.fromHex(6710886),a:1},colorC:{...Tt.fromHex(16777215),a:1},colorD:{...Tt.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:Bt.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:Bt.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:Bt.fromHexAndA(0,1),contourColor:Bt.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}}}})(Qr||(Qr={}));var Xt;(l=>{function n(c){return!c.layers.some(a=>{if(a.data.type==="texture"&&a.data.projection!==0||a.data.type==="depth"&&!a.data.isWorldSpace||a.data.type==="noise"||a.data.type==="displace")return!0})&&!e(c)}l.isMergable=n;function t(c){let p="";return c.layers.forEach(a=>{Object.entries(a.data).forEach(([u,d])=>{p+=`${u}${d}`,Array.isArray(d)?d.forEach(f=>p+=`${f}`):typeof d=="object"?Object.values(d).forEach(f=>{typeof f=="number"?p+=`${f.toFixed(4)}`:p+=`${f}`}):p+=`${d}`})}),p}l.getHash=t;function e(c){let p=0;for(let a of c.layers)"alpha"in a.data&&a.data.type!=="light"&&a.data.type!=="fresnel"&&(p+=(1-p)*a.data.alpha);return p<1}l.isTransparent=e;function r(){return{layers:new Ee}}l.defaultEmptyData=r;function o(c="layer1",p="layer2"){return i("phong",c,p)}l.defaultData=o;function i(c,p="layer1",a="layer2"){let u=new Ee;return u.push({fi:0,data:Qr.defaultData("light",c),id:p}),u.push({fi:1,data:Qr.defaultData("color"),id:a}),{layers:u}}l.defaultTwoLayerData=i;function s(c,p="basic",a="layer1",u="layer2"){let d=Qr.defaultData("texture");Object.assign(d.texture,{image:c});let f=new Ee;return f.push({fi:0,data:d,id:a}),f.push({fi:1,data:Qr.defaultData("light",p),id:u}),{layers:f}}l.defaultTwoLayerTextureData=s})(Xt||(Xt={}));var ln;(t=>{function n(){return{points:new Ee,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=n})(ln||(ln={}));var Ys;(t=>{function n(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=n})(Ys||(Ys={}));var ei;(t=>{function n(e){if(e==="RectangleGeometry")return{width:320,height:320,type:e,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="VectorGeometry")return{width:1,height:1,type:e,subdivisions:12,shape:ln.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=n})(ei||(ei={}));var ti;(o=>{o.identity={...As.identity,hiddenMatrix:Yr.identity};function t(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}o.fromObject=t;function e(i,s){return{position:s?.position||i.position,rotation:s?.rotation||i.rotation,scale:s?.scale||i.scale,hiddenMatrix:s?.hiddenMatrix||i.hiddenMatrix}}o.merge=e;function r(i,s){return{position:rn.isEqual(i.position,s.position)?null:s.position,rotation:rn.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:rn.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:Yr.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}o.diff=r})(ti||(ti={}));var Gr;(t=>t.defaultData={states:new Ee,events:new Ee,visible:!0,raycastLock:!1,...ti.identity})(Gr||(Gr={}));var xd;(t=>t.defaultData={type:"Empty",...Gr.defaultData})(xd||(xd={}));var Ks;(t=>t.defaultData={type:"Mesh",...Gr.defaultData,...$s.defaultData})(Ks||(Ks={}));var vd;(t=>t.defaultData={type:"TextFrame",...Gr.defaultData,...Xs.defaultData})(vd||(vd={}));var Zs;(t=>t.defaultData={...Gr.defaultData,...ti.identity,...go.defaultData})(Zs||(Zs={}));var bd;(t=>{function n(e){return{...Gr.defaultData,...qs.defaultData(e)}}t.defaultData=n})(bd||(bd={}));var Sd;(r=>(r.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:Yr.identity,name:"Play Camera",visible:!0,raycastLock:!1,states:new Ee,events:new Ee,...go.defaultData},r.defaultMeshObject={name:"Rectangle",...Gr.defaultData,...Ks.defaultData,geometry:ei.defaultData("RectangleGeometry"),material:Xt.defaultTwoLayerData("basic","layer1","layer2")},r.defaultBooleanObject={name:"Boolean",...Gr.defaultData,...Ks.defaultData,geometry:ei.defaultData("BooleanGeometry"),material:Xt.defaultTwoLayerData("phong","layer1","layer2")}))(Sd||(Sd={}));var wd;(e=>{function n(r,o){if(o===void 0)return r;let i={...r};return"material"in i&&"material"in o&&o.material&&(i.material=Qa(i.material,s=>{if(typeof s!="string")for(let[l,c]of Object.entries(o.material.layers)){let p=s.layers.data(l);p&&ho(p,c)}}).data),i.materials&&o.materials&&(i.materials=Qa(i.materials,s=>{for(let l=0;l<i.materials.length;l++){let c=o.materials[l];if(typeof c!="string")for(let[p,a]of Object.entries(c.layers)){let u=s[l]?.layers?.data(p);u&&ho(u,a)}}}).data),i}e.patchMaterialState=n;function t(r,o){if(o===void 0)return r;let i={...r};if(Object.assign(i,ti.merge(i,o)),tn.is(r.type)){i.orthographic={...i.orthographic},i.perspective={...i.perspective};let s=o;s.orthographic?.zoom!==void 0&&(i.orthographic.zoom=s.orthographic.zoom),s.perspective?.zoom!==void 0&&(i.perspective.zoom=s.perspective.zoom),s.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=s.isUpVectorFlipped),s.targetOffset!==void 0&&(i.targetOffset=s.targetOffset)}else if(r.type==="Mesh")i.geometry={...i.geometry},Object.assign(i.geometry,o.geometry),i=n(i,o);else if(Ws.is(r.type)){let s=o;s.intensity!==void 0&&(i.intensity=s.intensity),s.color!==void 0&&(typeof s.color=="string"?i.color=s.color:i.color=Tt.clone(s.color))}return i}e.patch=t})(wd||(wd={}));var Qs;(t=>t.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,isTouchZoom:!0,orbitTouches:2,panTouches:3})(Qs||(Qs={}));var Js;(e=>{function n(){let r={};return r["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Zi(r,Ye.prototype)}e.defaultColors=n;function t(){return{materials:new Ye,images:new Ye,colors:new Ye,audios:new Ye,penumbraSize:[.5,.5,.5]}}e.emptyData=t})(Js||(Js={}));function _d(n){n.layers.forEach(t=>{if(t.type==="depth"&&t.colorA!==void 0){let e=t.colorA,r=t.colorB,o=[[e.r,e.g,e.b,e.a],[r.r,r.g,r.b,r.a]],i=[0,1];for(let l=2;l<10;l++)o.push(o[1]),i.push(1);let s={...$a(ar(t),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,t.near),far:Math.max(0,t.far),colors:o,steps:i,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(t,s)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={...ar(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function gl(n,t){Object.values(n.shared.materials).forEach(e=>t(e))}function yl(n,t){n.scene.objects.traverse((e,r)=>{"materials"in r?r.materials.forEach(o=>{typeof o!="string"&&t(o)}):"material"in r&&typeof r.material!="string"&&t(r.material)})}function sb(n){Object.assign(n.scene.publish,{orbitControls:{...Qs.defaultData,...ar(n.scene.publish.orbitControls)}})}function ab(n){function t(e){if(e.layers){for(let r of Object.values(e.layers))if(r){for(let[o,i]of Object.entries(r))if((gd.includes(o)||typeof i=="boolean")&&delete r[o],o==="texture")for(let[s,l]of Object.entries(i))(yd.includes(s)||typeof l=="boolean")&&delete i[s]}}}n.scene.objects.traverse((e,r)=>{r.states.forEach(o=>{let i=o;i.material?t(i.material):i.materials&&i.materials.forEach(s=>{t(s)})})})}function lb(n){n.scene.publish.withBackground=!0}function cb(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function ub(n){n.scene.objects.traverse((t,e)=>{let r=e.cloner;r&&(r.radial.scale=r.radial.scale.map(o=>o+1),r.linear.scale=r.linear.scale.map(o=>o+1))})}function pb(n){n.scene.objects.traverse((t,e)=>{let r=e.geometry;r&&(r.type==="DodecahedronGeometry"||r.type==="IcosahedronGeometry")&&(r.detail=Math.round(r.detail))})}function db(n){n.scene.objects.traverse((t,e)=>{let r=n.scene.objects.parent(t);e.type==="Mesh"&&(!r||n.scene.objects.data(r).geometry?.type!=="BooleanGeometry")&&(e.booleanExclude=null)})}function Td(n){n.layers===void 0&&Object.assign(n,Xt.defaultTwoLayerData("lambert"))}function xl(n){!n.layers||n.layers.forEach(t=>{if(t.type==="depth"&&t.colors.length===10){let e=[...t.colors];e.push(t.colors[9]);let r=[...t.steps];r.push(t.steps[9]);let o={...ar(t),colors:e,steps:r};Object.assign(t,o)}})}function fb(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function Ad(n){n.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&xl(r)}):"material"in e&&typeof e.material!="string"&&xl(e.material)}),Object.values(n.shared.materials).forEach(t=>xl(t))}function mb(n){n.scene.environment.ambientLight.softShadows=!1,n.scene.environment.ambientLight.softShadowQuality="low",n.scene.objects.traverse((t,e)=>{(e.type==="DirectionalLight"||e.type==="SpotLight")&&(e.shadowResolution=1024,e.shadowRadius=1,e.depth=1e5)}),n.shared.penumbraSize=new Array(5).fill(.5)}function hb(n){n.shared.audios=Zi({},Ye.prototype)}function gb(n){let t=n.shared.materials;Object.entries(t).forEach(([e,r])=>{if(!r.layers){let o={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"basic",alpha:1,visible:!0,mode:0},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(t,{[e]:o})}})}function yb(n){Object.entries(ar(n.shared.images)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.images[r]}),Object.entries(ar(n.shared.audios)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.audios[r]})}function xb(n){n.scene.publish.settings.web.preload=!1}function Nd(n){n.layers.forEach(t=>{t.type==="depth"&&t.num!==void 0&&(t.colors=t.colors.slice(0,t.num),t.steps=t.steps.slice(0,t.num),delete t.num)})}var Cd=18;function Pd(n){let t=n.schema??0;t!==Cd&&(console.warn("updating from ",t,"to ",Cd),t<1&&(yl(n,_d),gl(n,_d),n.schema=1),t<2&&(sb(n),n.schema=2),t<3&&(ab(n),n.schema=3),t<4&&(lb(n),n.schema=4),t<5&&(cb(n),n.schema=5),t<6&&(ub(n),n.schema=6),t<7&&(pb(n),n.schema=7),t<8&&(db(n),n.schema=8),t<9&&(Ad(n),n.schema=9),t<10&&(fb(n),n.schema=10),t<11&&(mb(n),n.schema=11),t<12&&(Ad(n),n.schema=12),t<13&&(hb(n),n.schema=13),t<14&&(gb(n),n.schema=14),t<15&&(yb(n),n.schema=15),t<16&&(xb(n),n.schema=16),t<17&&(yl(n,Nd),gl(n,Nd),n.schema=17),t<18&&(yl(n,Td),gl(n,Td),n.schema=18))}var ea;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(ea||(ea={}));var Ld=require("three"),Je=class extends Ld.Color{constructor(e,r,o,i){super(e,r,o);this.isColorA=!0;this.a=i}setRGBA(e,r,o,i){super.setRGB(e,r,o),this.a=i}copy(e){return super.copy(e),this.a="a"in e?e.a:1,this}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}get x(){return this.r}get y(){return this.g}get z(){return this.b}get w(){return this.a}set x(e){this.r=e}set y(e){this.g=e}set z(e){this.b=e}set w(e){this.a=e}};var Md=require("three");var De=require("three"),Od=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},n.parameters),r=e.width/2,o=e.radiusTop??r,i=e.radiusBottom??r;return o===i?(o=r,i=r):o>i?(o=r,i=i*r/o):(o=o*r/i,i=r),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),radiusTop:o,radiusBottom:i})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,radiusTop:p,radiusBottom:a,cornerRadius:u,cornerSegments:d,hollow:f}=n.parameters,m;return u||f?m=new oi(p,a,r,o,i,s,l,c*Math.PI/180,u,u,d,f):m=new De.CylinderBufferGeometry(p,a,r,o,i,s,l,c*Math.PI/180),m.scale(1,1,e/t),Object.assign(m,{userData:{...n,type:"CylinderGeometry"}})}};function Jr(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function Id(n){return new De.Vector2(n.y,-n.x)}var oi=class extends De.BufferGeometry{constructor(t,e,r,o,i,s,l,c,p,a,u,d,f=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,e=e!==void 0?e:1,r=r||1,o=Math.floor(o)||8,i=Math.floor(i)||1,s=s!==void 0?s:!1,l=l!==void 0?l:0,c=c!==void 0?c:Math.PI*2,s&&(p=0,a=0);let m=[],h=[],g=[],x=[],v=0,A=r/2,S=new De.Vector3,b=new De.Vector3;f&&t==0&&(t=p),f&&e==0&&(e=a);let D=new De.Vector2(t,A),w=new De.Vector2(e,-A),y=null,I=null,T=null,L=null,N=D.clone().sub(w),C=0,k=0,W=0;d>0&&(C=Math.min(t,e)*(1-d),k=t-C,W=e-C);let ne=D.clone();ne.x-=C;let ue=Math.PI-N.angle(),se=N.angle(),K=Math.tan(se/2),U=Math.tan(ue/2),V=K+U,E=d?V:U,B=d?V:K;if(p=Math.min(p,(t-k)/E,N.length()/V),a=Math.min(a,(e-W)/B,N.length()/V),p>0){let z=p/K;y=D.clone().sub(new De.Vector2(z,p)),d&&(T=y.clone(),T.x-=C-V*p),D.sub(N.clone().setLength(z))}if(a>0){let z=a/U;I=w.clone().sub(new De.Vector2(z,-a)),w.add(N.clone().setLength(z)),d&&(L=I.clone(),L.x-=C-V*a,ne.sub(N.clone().setLength(z)))}N=D.clone().sub(w);let O=N.length()<.5,G=[];for(let z=0;z<=o;z++){let M=[],q=z/o,J=q*c+l,ee=new De.Vector2(Math.sin(J),Math.cos(J));L&&I?(Z(M,q,ee,ue,a,L,-1,!0),Z(M,q,ee,se,a,I,-1,!1)):I?(j(M,ee,I.x,0,-1),Z(M,q,ee,se,a,I,-1,!1)):s||j(M,ee,e,W,-1);let H=Id(N).normalize();if(Jr(H,ee,S),!O)for(let Q=0;Q<=i;Q++){let $=Q/i,re=N.clone().multiplyScalar($).add(w);Jr(re,ee,b),h.push(b.x,b.y,b.z),g.push(S.x,S.y,S.z),x.push(q,.5+b.y/r),M.push(v++)}if(T&&y?(Z(M,q,ee,ue,p,y,1,!1),Z(M,q,ee,se,p,T,1,!0)):y?(Z(M,q,ee,ue,p,y,1,!1),j(M,ee,y.x,0,1)):s||j(M,ee,t,k,1),d&&!O){let Q=Id(N).multiplyScalar(-1).normalize();Jr(Q,ee,S);for(let $=0;$<=i;$++){let re=$/i,ce=N.clone().multiplyScalar(-re).add(ne);Jr(ce,ee,b),h.push(b.x,b.y,b.z),g.push(S.x,S.y,S.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==i)continue;let q=G[z][M],J=G[z+1][M],ee=G[z+1][M+1],H=G[z][M+1],Q=h[ee*3+0],$=h[ee*3+2];m.push(q,J,H),(Q!=0||$!=0)&&m.push(J,ee,H)}c<Math.PI*2&&(F(-1,G[0],l),F(1,G[G.length-1],l+c)),this.setIndex(m),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 Z(z,M,q,J,ee,H,Q,$){for(let re=0;re<u+1;re++){let ce=re/u,ie=Q<0?ce:1-ce;$&&(ie-=1),ie*=J;let me=new De.Vector2(Math.sin(ie),Math.cos(ie)*Q),Re=me.clone().multiplyScalar(ee).add(H);Jr(Re,q,b),h.push(b.x,b.y,b.z),Jr(me,q,S),g.push(S.x,S.y,S.z),x.push(M,.5+b.y/r),z.push(v++)}}function j(z,M,q,J,ee){let H=new De.Vector3,Q=new De.Vector2,$=[q,J];ee<0&&$.reverse();for(let re of $)Q.set(re,A*ee),Jr(Q,M,H),h.push(H.x,H.y,H.z),g.push(0,ee,0),x.push(.5,.5),z.push(v++)}function F(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,Q=z<0?(ce,ie,me)=>m.push(ce,ie,me):(ce,ie,me)=>m.push(ce,me,ie),$=new De.Vector2((t+e+k+W)/4,0);Jr($,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 me=x.slice(ce*2,ce*2+2);x.push(...me),v++}for(let ce=re+1;ce<v-1;ce++)Q(re,ce,ce+1);Q(re,v-1,re+1)}}};var Dd=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,cornerRadiusTop:p,cornerRadiusBottom:a,cornerSegments:u}=n.parameters,d;return p>0||a>0||c<360?d=new oi(0,t/2,r,o,i,s,l,c*Math.PI/180,p,a,u,0,!0):d=new Md.ConeBufferGeometry(t/2,r,o,i,s),d.scale(1,1,e/t),Object.assign(d,{userData:{...n,type:"ConeGeometry"}})}};var Nt=require("three"),Bd=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,widthSegments:o,heightSegments:i,depthSegments:s,cornerRadius:l,cornerSegments:c}=n.parameters,p;return l==0?p=new Nt.BoxBufferGeometry(t,e,r,o,i,s):p=new bl(t,e,r,o,i,s,l,c),Object.assign(p,{userData:{...n,type:"CubeGeometry"}})}},vl=Math.PI/2,bl=class extends Nt.BufferGeometry{constructor(t=1,e=1,r=1,o=1,i=1,s=1,l=0,c=4){super(),this.type="BoxBufferGeometry";let p=this;o=Math.floor(o),i=Math.floor(i),s=Math.floor(s),c=Math.floor(c),l=Math.min(l,t/2,e/2,r/2);let a=[],u=[],d=[],f=[],m=0,h=0;g("z","y","x",-1,-1,r,e,t,s,i,0),g("z","y","x",1,-1,r,e,-t,s,i,1),g("x","z","y",1,1,t,r,e,o,s,2),g("x","z","y",1,-1,t,r,-e,o,s,3),g("x","y","z",1,-1,t,e,r,o,i,4),g("x","y","z",-1,-1,t,e,-r,o,i,5),l>0&&(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,i,0),x("y","x","z",1,-1,-1,e,t,r,i,1),x("y","x","z",1,1,1,e,t,r,i,1),x("y","x","z",-1,1,-1,e,t,r,i,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(a),this.setAttribute("position",new Nt.Float32BufferAttribute(u,3)),this.setAttribute("normal",new Nt.Float32BufferAttribute(d,3)),this.setAttribute("uv",new Nt.Float32BufferAttribute(f,2));function g(A,S,b,D,w,y,I,T,L,N,C){let k=(y-2*l)/L,W=(I-2*l)/N,ne=y/2-l,ue=I/2-l,se=T/2,K=L+1,U=N+1,V=0,E=0,B=new Nt.Vector3;for(let O=0;O<U;O++){let G=O*W-ue;for(let Z=0;Z<K;Z++){let j=Z*k-ne;B[A]=j*D,B[S]=G*w,B[b]=se,u.push(B.x,B.y,B.z),B[A]=0,B[S]=0,B[b]=T>0?1:-1,d.push(B.x,B.y,B.z),f.push(Z/L),f.push(1-O/N),V+=1}}for(let O=0;O<N;O++)for(let G=0;G<L;G++){let Z=m+G+K*O,j=m+G+K*(O+1),F=m+(G+1)+K*(O+1),z=m+(G+1)+K*O;a.push(Z,j,z),a.push(j,F,z),E+=6}p.addGroup(h,E,C),h+=E,m+=V}function x(A,S,b,D,w,y,I,T,L,N,C){let k=(I-2*l)/N,W=I/2-l,ne=T/2-l,ue=L/2,se=N+1,K=0,U=0,V=new Nt.Vector3,E=new Nt.Vector3;for(let B=0;B<c+1;B++){let O=B/c*vl,G=Math.sin(O)*l,Z=(1-Math.cos(O))*l,j=Math.sin(O),F=Math.cos(O);V[S]=(ne+G)*w,V[b]=(ue-Z)*y,E[A]=0,E[S]=j*Math.sign(V[S]),E[b]=F*Math.sign(V[b]);for(let z=0;z<se;z++){let M=z*k-W;V[A]=M*D,u.push(V.x,V.y,V.z),d.push(E.x,E.y,E.z),f.push(z/N),f.push(0),K+=1}}for(let B=0;B<c;B++)for(let O=0;O<N;O++){let G=m+O+se*B,Z=m+O+se*(B+1),j=m+(O+1)+se*(B+1),F=m+(O+1)+se*B;a.push(G,Z,F),a.push(Z,j,F),U+=6}p.addGroup(h,U,C),h+=U,m+=K}function v(A,S,b){let D=new Nt.Vector3,w=new Nt.Vector3(t/2,e/2,r/2);w.subScalar(l);let y=[],I=A*S*b>0?(L,N,C)=>a.push(L,N,C):(L,N,C)=>a.push(L,C,N);for(let L=0;L<=c;L++){let N=[],C=vl*(1-L/c),k=Math.cos(C),W=Math.sin(C),ne=0;for(let ue=0;ue<=L;ue++){let se=Math.cos(ne),K=Math.sin(ne);D.x=k*se,D.y=W,D.z=k*K;let U=w.clone().addScaledVector(D,l);u.push(A*U.x,S*U.y,b*U.z),d.push(A*D.x,S*D.y,b*D.z),f.push(0,0),N.push(m++),ne+=vl/L}y.push(N)}let T=y.length-1;for(let L=0;L<T;L++){let N=y[L],C=y[L+1],k=N.length-1;I(N[0],C[1],C[0]);for(let W=1;W<=k;W++)I(N[W-1],N[W],C[W]),I(N[W],C[W+1],C[W])}}}};var ze=require("three"),eo=class extends ze.BufferGeometry{constructor(t=[],e=[],r="",o=1,i=.2,s=4){super(),this.type="PolyhedronGeometryRound";let l=[],c=[],p=[];a(),u(),this.setAttribute("position",new ze.Float32BufferAttribute(l,3)),this.setAttribute("normal",new ze.Float32BufferAttribute(p,3)),this.setAttribute("uv",new ze.Float32BufferAttribute(c,2));return;function a(){i=Math.min(1-1e-5,i),i==0&&(s=0);let f={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],m=new ze.Vector3,h=m.clone(),g=new ze.Triangle,x=i*o,v=o-x,A=s+1,S=new ze.Vector3,b=(K,U)=>S.subVectors(K,U).normalize(),D=(K,U)=>Array(K).fill(void 0).map(U),w=D(t.length/3,(K,U)=>new ze.Vector3().fromArray(t,U*3).setLength(o)),y=[],I=1e6;for(let K=0;K<w.length;K++){let U=w[K],V=[],E,B,O,G=1e10,Z=-1;for(;(Z=e.indexOf(K,Z+1))!=-1;){let M=Z-Z%3;E=e[M+(Z+1)%3],B=e[M+(Z+2)%3],O=U.distanceToSquared(w[E]),G=Math.min(G,O),V.push([E,B,O])}G+=1e-6;let j=[],F=0,z=V.length;for(let M=0;M<z;M++){[E,B,O]=V[F];let q=y[E]?.includes(K)==!0;O<=G&&j.push(E+ +q*I),F=V.findIndex(J=>J[0]==B)}y.push(j)}let T=[];{let K=0,U=0,V,E,B=f==3;for(let O=0;O<=s;O++){V=O*(O+1)/2,E=(O+1)*(O+2)/2;for(let G=0;G<s-O;G++)[K,U]=[V+G+O+2,E+G+O+3],T.push(V,E,...B?[U,V]:[K,E],U,K),[V,E]=[K,U];T.push(V,E,V+s+2)}}let L=m.clone(),N=m.clone(),C=m.clone(),k=m.clone(),W=m.clone(),ne=[],ue=D(w.length,()=>D(f,()=>m.clone()));for(let K=0;K<w.length;K++){m.copy(w[K]).normalize(),L.copy(m).multiplyScalar(v);let U=y[K];for(let j=0;j<U.length;j++){let F=U[j],z=U[(j+1)%f];g.setFromPointsAndIndices(w,K,F%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][j])}let V=[],E=[],B=[],O=new ze.Vector3;s==0&&[...ue[K]].reduce((j,F)=>j.add(F),O).multiplyScalar(1/f);for(let j=0;j<f;j++){let F=[],z=(j-1+f)%f,M=ue[K][z],q=ue[K][j];m.copy(M).sub(L),h.copy(q).sub(L);let J=L.angleTo(m),ee=m.angleTo(h),H=Math.cos(J)*x;s==0?N.copy(O):N.copy(L).setLength(v+H),E.push(H);let Q=[N,M,q];for(let $=0;$<2;$++){let re=Q[$],ce=Q[$+1];k.subVectors(re,L),W.subVectors(ce,L),C.crossVectors(k,W).normalize();for(let ie=0;ie<A;ie++){let me=[J,ee][$]*ie/A;m.copy(k).applyAxisAngle(C,me).add(L),V.push(m.clone()),$&&(b(m,L),F.push([ie==0?re:m.clone(),S.clone()]))}$&&(b(ce,L),F.push([ce,S.clone()]))}B.push(F)}ne.push(B);let G=2*A,Z=2;for(let j=0;j<f;j++){let F=G*j,z=G*((j+1)%f),M=[V[F]];for(let J=1;J<A;J++){k=V[F+J],W=V[z+J],M.push(k);for(let ee=1,H=J-Z+1;ee<=H;ee++)m.lerpVectors(k,W,ee/(H+1)),m.sub(L).setLength(E[j]).add(L),M.push(m.clone());M.push(W)}for(let J=0;J<A;J++)M.push(V[J+A+F]);M.push(V[z+A]);let q=T.map(J=>M[J]);l.push(...q.map(J=>[J.x,J.y,J.z]).flat()),p.push(...q.map(J=>(b(J,L),[S.x,S.y,S.z])).flat())}}let se=[];for(let K=0;K<y.length;K++)for(let U=0;U<f;U++){let V=y[K][U];if(V<I){let E=y[V].findIndex(G=>G%I==K),B=ne[K][U],O=ne[V][E];for(let G=0;G<A;G++){let Z=B[G],j=O[A-G],F=B[G+1],z=O[A-(G+1)];[Z,j,F,F,j,z].forEach(M=>{l.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],O[A][0],B[A][0],O[0][0])}}for(;se.length;){let K,U,V,E;[K,U]=se.splice(0,2);let B=[K];for(;K!=U;)B.push(U),V=se.indexOf(U),E=V%2,U=se.splice(V-E,2)[1-E];S.subVectors(B[0],B[1]).cross(m.subVectors(B[0],B[2])).normalize();let O=S.dot(B[0])<0;O&&S.negate();for(let G=1;G<=B.length-2;G++)[B[G+ +O],B[G+1-+O],B[0]].forEach(Z=>{l.push(Z.x,Z.y,Z.z),p.push(S.x,S.y,S.z)})}}function u(){let d=new ze.Vector3;for(let w=0;w<l.length;w+=3){d.x=l[w+0],d.y=l[w+1],d.z=l[w+2];let y=b(d)/2/Math.PI+.5,I=D(d)/Math.PI+.5;c.push(y,1-I)}let f=new ze.Vector3,m=new ze.Vector3,h=new ze.Vector3,g=new ze.Vector3,x=new ze.Vector2,v=new ze.Vector2,A=new ze.Vector2,S=(w,y,I,T)=>{T<0&&w.x===1&&(c[y]=w.x-1),I.x===0&&I.z===0&&(c[y]=T/2/Math.PI+.5)};for(let w=0,y=0;w<l.length;w+=9,y+=6){f.set(l[w+0],l[w+1],l[w+2]),m.set(l[w+3],l[w+4],l[w+5]),h.set(l[w+6],l[w+7],l[w+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(f).add(m).add(h).divideScalar(3);let I=b(g);S(x,y+0,f,I),S(v,y+2,m,I),S(A,y+4,h,I)}for(let w=0;w<c.length;w+=6){let y=c[w+0],I=c[w+2],T=c[w+4],L=Math.max(y,I,T),N=Math.min(y,I,T);L>.9&&N<.1&&(y<.2&&(c[w+0]+=1),I<.2&&(c[w+2]+=1),T<.2&&(c[w+4]+=1))}function b(w){return Math.atan2(w.z,-w.x)}function D(w){return Math.atan2(-w.y,Math.sqrt(w.x*w.x+w.z*w.z))}}}static fromJSON(t){return new eo(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};var Ed=require("three"),Gd=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new ni(t*.5,i,s):new Ed.DodecahedronBufferGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"DodecahedronGeometry"}})}},ni=class extends eo{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=1/o,s=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-o,0,-i,o,0,i,-o,0,i,o,-i,-o,0,-i,o,0,i,-o,0,i,o,0,-o,0,-i,o,0,-i,-o,0,i,o,0,i],l=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],c="DodecahedronGeometry";super(s,l,c,t,e,r),this.type=c}static fromJSON(t){return new ni(t.radius,t.corner,t.cornerSides)}};var be=require("three");var he=require("three"),ii=1e-12,cn=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 cn(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},un=class extends cn{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new un(this.parent).copy(this)}},Yt=class extends cn{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new un(this),new un(this))}static create(e,r){let o=new Yt(e,new he.Vector2(...r.position));return o.controls[0].position.set(...r.controlPrevious.position),o.controls[1].position.set(...r.controlNext.position),o.roundness=r.roundness,o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored,o}getOppositeControl(e){let r=this.controls.indexOf(e);return r===0?this.controls[1]:r===1?this.controls[0]:null}applyOffsetToControls(e,r=1){for(let o=0,i=this.controls.length;o<i;o++){let s=this.controls[o];this.position.distanceTo(s.position)<=r?s.position.copy(this.position):s.applyOffset(e)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(e){return super.copy(e),this.controls[0].copy(e.controls[0]),this.controls[1].copy(e.controls[1]),this.roundness=e.roundness,this.uuid=e.uuid,this}clone(){return new Yt(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let e=this.curveBefore?.getTangentAt(1),r=this.curveAfter?.getTangentAt(0);return[e,r]}computeNormals(e=new he.Vector2,r=new he.Vector2){let[o,i]=this.computeTangents();return o&&i&&(Rd(o,e),Rd(i,r)),[e,r]}computeTangent(e=new he.Vector2){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new he.Vector2){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function Rd(n,t=new he.Vector2){let e=n.length();return t.set(-n.y/e,n.x/e)}var wl=n=>n,pn=new he.Vector2,ta=new he.Vector2,vb=new he.Vector2,bb=new he.Vector2,Sb=new he.Vector2,wb=new he.Vector2,Fd=new he.Vector3,zd=new he.Vector3;function Ud(n){let t=new he.Vector2;t.addVectors(n.v0,pn.subVectors(n.v1,n.v0).multiplyScalar(2/3));let e=new he.Vector2;return e.addVectors(n.v2,ta.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new he.CubicBezierCurve(n.v0,t,e,n.v2)}function si(n,t,e=Number.EPSILON){return Math.abs(n-t)<e}function _b(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function Tb(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function _l(n,t,e){let r=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),i=Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2));return Math.acos((o*o+r*r-i*i)/(2*o*r))}function jd(n,t,e){return Vd(n,t)&&Vd(t,e)&&Sl(n.position,t.position,e.position)}function Sl(n,t,e){return pn.copy(t).sub(n).cross(ta.copy(e).sub(n))===0}function kd(n,t,e,r,o){let i=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),s=(n.y+t.y)/2,l=(n.x+t.x)/2,c=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(n.y-t.y)/i,p=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(t.x-n.x)/i;return r.set(l+c,s+p),o.set(l-c,s-p),[r,o]}function Hd(n,t,e){let r=n.distanceTo(e),o=t.distanceTo(e);return r<o?t:n}function Wd(n,t,e,r,o,i){let s=t.x-n.x,l=t.y-n.y,c=e.x-n.x,p=e.y-n.y,a=Math.sqrt((s+c)*(s+c)+(l+p)*(l+p)),u;return _l(t,n,e)>Math.PI&&(a*=-1),si(p,l)?u=(l+p)*(r/a-.5)*8/3/(s-c):u=(s+c)*(r/a-.5)*8/3/(p-l),o.set(t.x-u*l,t.y+u*s),i.set(e.x+u*p,e.y-u*c),[o,i]}function Tl(n,t){return n.position.equals(n.controls[1].position)&&t.position.equals(t.controls[0].position)}function Vd(n,t){return Sl(n.position,n.controls[1].position,t.position)&&Sl(n.position,t.controls[0].position,t.position)}function qd(n,t,e,r,o=.5){let i=pn.subVectors(t,n).multiplyScalar(o).add(n),s=ta.subVectors(e,t).multiplyScalar(o).add(t),l=vb.subVectors(r,e).multiplyScalar(o).add(e),c=i,p=bb.subVectors(s,i).multiplyScalar(o).add(i),a=Sb.subVectors(l,s).multiplyScalar(o).add(s),u=l,d=wb.subVectors(a,p).multiplyScalar(o).add(p);return[n.x,n.y,c.x,c.y,p.x,p.y,d.x,d.y,a.x,a.y,u.x,u.y,r.x,r.y]}function $d(n,t,e=12,r=!0){let o=zd.set(0,0,0),i,s=0,l=[];for(let c=0;c<t.length;c++){let p=wl(t[c]),a=pn,u=to(p,e);l.push(u);for(let d=0;d<=u;d++)if(p instanceof he.CubicBezierCurve||p instanceof he.QuadraticBezierCurve||p instanceof he.LineCurve){if(p.getPoint(d/u,a),o.set(a.x,a.y,0),i!==void 0&&Tb(i,o))continue;i===void 0&&(i=Fd),i.copy(o),n.setXYZ(s,o.x,o.y,o.z),s++}}return r&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),n}function Xd(n,t,e,r=12,o=!0){let i=zd.set(0,0,0),s=0,l=[];for(let c=0;c<t.length;c++){if(e[c]===!1)continue;let p,a=wl(t[c]),u=pn,d=to(a,r);l.push(d);for(let f=0;f<=d;f++)if(a instanceof he.CubicBezierCurve||a instanceof he.QuadraticBezierCurve||a instanceof he.LineCurve){if(a.getPoint(f/d,u),i.set(u.x,u.y,0),p?.equals(i))continue;p===void 0?p=Fd:(n.setXYZ(s,p.x,p.y,p.z),s++,n.setXYZ(s,i.x,i.y,i.z),s++),p.copy(i)}}return o&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),l}function Al(n,t=12,e=!1){let r=[];for(let o=0,i=n.length;o<i;o++){let s=n[o],l=0;if(e&&s.roundedCurveCorner!==void 0){let c=to(s.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=c),l+=c}s.curveAfter!==void 0&&(l+=to(s.curveAfter,t)),r.push(l)}return n.length>0&&e&&n[0].roundedCurveCorner!==void 0&&(r[n.length-1]+=to(n[0].roundedCurveCorner,t)*.5),r}function to(n,t=12){return n&&n instanceof he.EllipseCurve?t*2:n&&(n instanceof he.LineCurve||n instanceof he.LineCurve3)?1:n&&n instanceof he.SplineCurve?t*n.points.length:t}function Yd(n,t,e=12,r=!0){let o,i=0;for(let s=0;s<t.length;s++){let l=wl(t[s]),c=to(l,e),p=pn;for(let a=0;a<=c;a++)if(l instanceof he.CubicBezierCurve||l instanceof he.QuadraticBezierCurve||l instanceof he.LineCurve){if(l.getPoint(a/c,p),o!==void 0&&_b(o,p,ii))continue;o===void 0&&(o=ta),o.copy(p),n.push(p.x,p.y),i++}}return si(n[0],n[n.length-2],ii)&&si(n[1],n[n.length-1],ii)&&(n.pop(),n.pop()),r&&i>1&&!(si(n[i-1],n[1],ii)&&si(n[i-2],n[0],ii))&&(n.push(n[0],n[1]),i++),n}var Nl=new be.Vector2,Ab=new be.Vector2,Nb=new be.Vector2,Cb=new be.Vector2,Pb=new be.Vector2,Lb=new be.Vector2,Ae=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 i=new Ae;return i.isClosed=e.isClosed,i.points=e.points.map(s=>Yt.create(s.id,s.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(s=>Ae.createFromState(s)),r!==void 0&&o!==void 0&&i.applySize(r,o),i.update(),i}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(e){if(this._roundness!==e){this._roundness=e;for(let r=0,o=this.points.length;r<o;r++)this.points[r].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(r=>this.getPointIndexById(r)).filter(r=>r>=0)}getPointIndexById(e){let r=this.points.length,o=this.points.findIndex(i=>i.uuid===e);if(o<0){let i=r;for(let s=0,l=this.shapeHoles.length;s<l;s++){let c=this.shapeHoles[s],p=c.points.length-1,a=c.getPointIndexById(e);if(a<0)i+=p;else return a+i}}return o}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0)for(let r=0,o=this.shapeHoles.length;r<o;r++){let i=this.shapeHoles[r],s=e-this.points.length;if(s<=i.points.length-1)return i.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,i=this.shapeHoles.length;o<i;o++){let s=this.shapeHoles[o],l=s.points.indexOf(e);if(l>=0)return r+l;r+=s.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(r=>r.points));return[...this.points,...e]}applySize(e,r){e===0&&(e=.001),r===0&&(r=.001),this._width=e,this._height=r}applyScale(e,r){let o=Nl.set(e,r);for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i];l.position.multiply(o),l.controls[0].position.multiply(o),l.controls[1].position.multiply(o)}for(let i=0,s=this.shapeHoles.length;i<s;i++)this.shapeHoles[i].applyScale(e,r);this._update(!1)}createPoint(e,r=0,o=be.MathUtils.generateUUID()){let i;e instanceof be.Vector2?i=e:i=new be.Vector2(e,r);let s=new Yt(o,i);return s.roundness=this.roundness,s}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,r){this.points.splice(r,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let r=0,o=this.points.length;r<o;r++){let i=this.points[r];if(i.uuid===e)return i}for(let r=0,o=this.shapeHoles.length;r<o;r++){let s=this.shapeHoles[r].getPointByUuid(e);if(s)return s}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let r=this.points.indexOf(e);r>=0&&this.points.splice(r,1),this.needsUpdate=!0}removePointById(e){let r=this.points.find(o=>o.uuid===e);r&&this.removePoint(r)}update(e=!0){for(let r=0,o=this.shapeHoles.length;r<o;r++)this.shapeHoles[r].update(!1);this._update(e)}extractShapePointsToBuffer(e,r=12,o=!1){this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r);let i=o?this.roundedCurveDivisions:this.curveDivisions;return $d(e,o?this.roundedCurves:this.curves,r,this.autoClose),i.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Al(this.points,e,!1),this.roundedCurveDivisions=Al(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return Xd(e,this.curves,r,o,this.autoClose).reduce((s,l)=>s+l,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),Yd(e,this.roundedCurves,r,this.autoClose)}getCurveIndexFromVertexId(e,r=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=r?this.roundedCurveDivisions:this.curveDivisions,s=0;r&&this.points[0].roundedCurveCorner!==void 0&&(s=to(this.points[0].roundedCurveCorner,this.subdivision)*.5);let l=e-s;l<0&&(l+=i.reduce((c,p)=>c+p,0));for(let c=0,p=i.length;c<p;c++){let a=i[c];if(l<o+a)return[c,(l-o+1)/a];o+=a}return[0,1]}getCurveT(e,r,o){let i=this.points[e],s=this.points[e>=this.points.length-1?0:e+1],l=this.curveDivisions,c=l[e];if(Tl(i,s)){let u=i.position.distanceTo(s.position);return i.position.distanceTo(Nl.set(o.x,o.y))/u}let p=0;for(let u=0;u<e;u++)p+=l[u];return(r-p)/c}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,r){Tl(r,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(r.controls[1].position.x,r.controls[1].position.y,e.controls[0].position.x,e.controls[0].position.y,e.position.x,e.position.y);let o=this.curves[this.curves.length-1];e.curveBefore=o,r.curveAfter=o;let i=o.clone();e.roundedCurveBefore=i,r.roundedCurveAfter=i,e.roundedCurveCorner=void 0,this.roundedCurves.push(i)}_update(e=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let o=0,i=this.points.length;o<i;o++){let s=this.points[o];if(o===0)this.moveTo(s.position.x,s.position.y);else{let l=this.points[o-1];this._applyCurveForPoint(s,l)}}let r=this.getLastPoint();if(r?.curveAfter&&(r.curveAfter=void 0),this.isClosed){let o=this.points[0],i=this.points[this.points.length-1];this._applyCurveForPoint(o,i)}if(this.points.length>2){let o=0;for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i],c=this.points[i-1]??this.points[this.points.length-1],p=this.points[i+1]??this.points[0],a=l.roundness,u=c&&p&&jd(c,l,p);if(!l.controlsMoved()&&a>0&&!u){let d=l.curveBefore,f=l.curveAfter;if(d===void 0||f===void 0)continue;let m=l.roundedCurveBefore,h=l.roundedCurveAfter,g=d.getLength(),x=f.getLength(),v=Math.min(a,g*.499),A=Math.min(a,x*.499),S=Math.min(v,A),b=1-S/g,D=S/x,w=d.getPointAt(b,Nl),y=f.getPointAt(D,Ab);this._subSplitCurve(d,m,b,w,void 0),this._subSplitCurve(f,h,D,void 0,y);let I;if(this.useCubicForRoundedCorners){let T=_l(w,l.position,y)/2,L=Math.tan(T)*w.distanceTo(l.position),[N,C]=kd(w,y,L,Nb,Cb),k=Hd(N,C,l.position),[W,ne]=Wd(k,w,y,L,Pb,Lb);I=new be.CubicBezierCurve(w.clone(),W.clone(),ne.clone(),y.clone())}else I=new be.QuadraticBezierCurve(w.clone(),l.position.clone(),y.clone());l.roundedCurveCorner=I,this.roundedCurves.splice(i+o,0,I),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,r,o,i,s){if(e instanceof be.LineCurve)i!==void 0&&r.v2.copy(i),s!==void 0&&r.v1.copy(s);else{let l=e,c=r,p=l.getUtoTmapping(o,0),a=qd(l.v0,l.v1,l.v2,l.v3,p);return i!==void 0&&(c.v0.set(a[0],a[1]),c.v1.set(a[2],a[3]),c.v2.set(a[4],a[5]),c.v3.set(a[6],a[7])),s!==void 0&&(c.v0.set(a[6],a[7]),c.v1.set(a[8],a[9]),c.v2.set(a[10],a[11]),c.v3.set(a[12],a[13])),c}return r}clone(){let e=new Ae(this._width,this._height);return e.points=this.points.map(r=>r.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(r=>r.clone()),e}toJSON(){return{points:this.points.reduce((e,r)=>e.concat(r.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){this.points=[],this.pointIDs=0;let r=e.points.length/7;for(let o=0;o<r;o++){let i=o*7,s=e.points[i+0],l=e.points[i+1],c=e.points[i+2],p=e.points[i+3],a=e.points[i+4],u=e.points[i+5],d=e.points[i+6],f=new Yt(be.MathUtils.generateUUID(),new be.Vector2(s,l));f.controls[0].position.set(c,p),f.controls[1].position.set(a,u),f.roundness=d,this.points.push(f)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let i=new Ae;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let r=(i,s)=>{s instanceof be.CubicBezierCurve&&s.v3.equals(i.position)&&i.controls[0].position.copy(s.v2)},o=i=>{let s=[],l,c;for(l=0,c=i.length;l<c;l++)i[l]instanceof be.QuadraticBezierCurve&&(i[l]=Ud(i[l]));for(l=0,c=i.length;l<c;l++){let u=i[l],d=l>0?i[l-1]:null,f;u instanceof be.CubicBezierCurve?(f=this.createPoint(u.v0),f.controls[1].position.copy(u.v1)):u instanceof be.LineCurve&&(f=this.createPoint(u.v1)),f!==void 0&&(d!==null&&r(f,d),s.push(f))}let p=i[i.length-1],a=!1;return p instanceof be.CubicBezierCurve?p.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(p.v2),a=!0):p instanceof be.LineCurve&&p.v2.equals(s[0].position)&&(a=!0),this.isClosed=a,s};return this.points=o(e.curves),e instanceof be.Shape&&(this.shapeHoles=e.holes.map(i=>{let s=new Ae;return s.fromShape(i),s})),this.update(),this}};var Pl=Math.PI*2;function Cl({x:n,y:t},e,r,o,i){return{x:n*e+o,y:t*r+i}}function Ib(n,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=Math.cos(n),o=Math.sin(n),i=Math.cos(n+t),s=Math.sin(n+t);return[{x:r-o*e,y:o+r*e},{x:i+s*e,y:s-i*e},{x:i,y:s}]}function Kd(n,t,e,r){let o=n*r-t*e<0?-1:1,i=Math.min(1,Math.max(-1,n*e+t*r));return o*Math.acos(i)}function Ob(n,t,e,r,o,i,s,l,c,p){let a=Math.pow(o,2),u=Math.pow(i,2),d=Math.pow(s,2),f=Math.pow(l,2),m=a*u-a*f-u*d;m<0&&(m=0),m/=a*f+u*d,m=Math.sqrt(m)*(c===p?-1:1);let h=m*o/i*l,g=m*-i/o*s,x=h+(n+e)/2,v=g+(t+r)/2,A=(s-h)/o,S=(l-g)/i,b=(-s-h)/o,D=(-l-g)/i,w=Kd(1,0,A,S),y=Kd(A,S,b,D);return!p&&y>0&&(y-=Pl),p&&y<0&&(y+=Pl),{centerx:x,centery:v,ang1:w,ang2:y}}function Zd({px:n,py:t,cx:e,cy:r,rx:o,ry:i,largeArcFlag:s,sweepFlag:l}){let c=[];if(o===0||i===0)return[];let p=(n-e)/2,a=(t-r)/2;if(p===0&&a===0)return[];o=Math.abs(o),i=Math.abs(i);let u=Math.pow(p,2)/Math.pow(o,2)+Math.pow(a,2)/Math.pow(i,2);u>1&&(o*=Math.sqrt(u),i*=Math.sqrt(u));let d=Ob(n,t,e,r,o,i,p,a,s,l),{ang1:f,ang2:m}=d,{centerx:h,centery:g}=d,x=Math.abs(m)/(Pl/4);Math.abs(1-x)<1e-7&&(x=1);let v=Math.max(Math.ceil(x),1);m/=v;for(let A=0;A<v;A++)c.push(Ib(f,m)),f+=m;return c.map(A=>{let{x:S,y:b}=Cl(A[0],o,i,h,g),{x:D,y:w}=Cl(A[1],o,i,h,g),{x:y,y:I}=Cl(A[2],o,i,h,g);return{x1:S,y1:b,x2:D,y2:w,x:y,y:I}})}var So=require("three");var Be;(function(n){n[n.ODD=0]="ODD",n[n.NONZERO=1]="NONZERO",n[n.POSITIVE=2]="POSITIVE",n[n.NEGATIVE=3]="NEGATIVE",n[n.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Be||(Be={}));var et;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(et||(et={}));function pe(n,t){if(!n)throw t||"Assertion Failed!"}var ae=function(){function n(){}return n.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},n.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},n.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},n.edgeGoesLeft=function(t){return n.vertLeq(t.Dst,t.Org)},n.edgeGoesRight=function(t){return n.vertLeq(t.Org,t.Dst)},n.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},n.edgeEval=function(t,e,r){pe(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?o<i?e.t-t.t+(t.t-r.t)*(o/(o+i)):e.t-r.t+(r.t-t.t)*(i/(o+i)):0},n.edgeSign=function(t,e,r){pe(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?(e.t-r.t)*o+(e.t-t.t)*i:0},n.transEval=function(t,e,r){pe(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?o<i?e.s-t.s+(t.s-r.s)*(o/(o+i)):e.s-r.s+(r.s-t.s)*(i/(o+i)):0},n.transSign=function(t,e,r){pe(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?(e.s-r.s)*o+(e.s-t.s)*i:0},n.vertCCW=function(t,e,r){return t.s*(e.t-r.t)+e.s*(r.t-t.t)+r.s*(t.t-e.t)>=0},n.interpolate=function(t,e,r,o){return t=t<0?0:t,r=r<0?0:r,t<=r?r===0?(e+o)/2:e+(o-e)*(t/(t+r)):o+(e-o)*(r/(t+r))},n.intersect=function(t,e,r,o,i){var s,l,c;n.vertLeq(t,e)||(c=t,t=e,e=c),n.vertLeq(r,o)||(c=r,r=o,o=c),n.vertLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.vertLeq(r,e)?n.vertLeq(e,o)?(s=n.edgeEval(t,r,e),l=n.edgeEval(r,e,o),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,e.s)):(s=n.edgeSign(t,r,e),l=-n.edgeSign(t,o,e),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,o.s)):i.s=(r.s+e.s)/2,n.transLeq(t,e)||(c=t,t=e,e=c),n.transLeq(r,o)||(c=r,r=o,o=c),n.transLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.transLeq(r,e)?n.transLeq(e,o)?(s=n.transEval(t,r,e),l=n.transEval(r,e,o),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,e.t)):(s=n.transSign(t,r,e),l=-n.transSign(t,o,e),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,o.t)):i.t=(r.t+e.t)/2},n}(),ai=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return n}(),ra=function(){function n(t){this.side=t,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(n.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),n}(),dn=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}return n}(),Qd=function(){function n(){var t=new dn,e=new ai,r=new ra(0),o=new ra(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,r.next=r,r.Sym=o,o.next=o,o.Sym=r,this.vHead=t,this.fHead=e,this.eHead=r,this.eHeadSym=o}return n.prototype.makeEdge_=function(t){var e=new ra(0),r=new ra(1);t.Sym.side<t.side&&(t=t.Sym);var o=t.Sym.next;return r.next=o,o.Sym.next=e,e.next=t,t.Sym.next=r,e.Sym=r,e.Onext=e,e.Lnext=r,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,r.Sym=e,r.Onext=r,r.Lnext=e,r.Org=null,r.Lface=null,r.winding=0,r.activeRegion=null,e},n.prototype.splice_=function(t,e){var r=t.Onext,o=e.Onext;r.Sym.Lnext=e,o.Sym.Lnext=t,t.Onext=o,e.Onext=r},n.prototype.makeVertex_=function(t,e,r){var o=t;pe(o,"Vertex can't be null!");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e;var s=e;do s.Org=o,s=s.Onext;while(s!==e)},n.prototype.makeFace_=function(t,e,r){var o=t;pe(o,"Face can't be null");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e,o.trail=null,o.marked=!1,o.inside=r.inside;var s=e;do s.Lface=o,s=s.Lnext;while(s!==e)},n.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,r=t.Sym.next;e.Sym.next=r,r.Sym.next=e},n.prototype.killVertex_=function(t,e){var r=t.anEdge,o=r;do o.Org=e,o=o.Onext;while(o!==r);var i=t.prev,s=t.next;s.prev=i,i.next=s},n.prototype.killFace_=function(t,e){var r=t.anEdge,o=r;do o.Lface=e,o=o.Lnext;while(o!==r);var i=t.prev,s=t.next;s.prev=i,i.next=s},n.prototype.makeEdge=function(){var t=new dn,e=new dn,r=new ai,o=this.makeEdge_(this.eHead);return this.makeVertex_(t,o,this.vHead),this.makeVertex_(e,o.Sym,this.vHead),this.makeFace_(r,o,this.fHead),o},n.prototype.splice=function(t,e){var r=!1,o=!1;if(t!==e){if(e.Org!==t.Org&&(o=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!o){var i=new dn;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!r){var s=new ai;this.makeFace_(s,e,t.Lface),t.Lface.anEdge=t}}},n.prototype.delete=function(t){var e=t.Sym,r=!1;if(t.Lface!==t.Rface&&(r=!0,this.killFace_(t.Lface,t.Rface)),t.Onext===t)this.killVertex_(t.Org,null);else if(t.Rface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev),!r){var o=new ai;this.makeFace_(o,t,t.Lface)}e.Onext===e?(this.killVertex_(e.Org,null),this.killFace_(e.Lface,null)):(t.Lface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),this.killEdge_(t)},n.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),r=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new dn;return this.makeVertex_(o,r,e.Org),e.Lface=r.Lface=t.Lface,e},n.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t),r=e.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,r),t.Dst=r.Org,r.Dst.anEdge=r.Sym,r.Rface=t.Rface,r.winding=t.winding,r.Sym.winding=t.Sym.winding,r.idx=t.idx,r.Sym.idx=t.Sym.idx,r},n.prototype.connect=function(t,e){var r=!1,o=this.makeEdge_(t),i=o.Sym;if(e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(o,t.Lnext),this.splice_(i,e),o.Org=t.Dst,i.Org=e.Org,o.Lface=i.Lface=t.Lface,t.Lface.anEdge=i,!r){var s=new ai;this.makeFace_(s,o,t.Lface)}return o},n.prototype.zapFace=function(t){var e=t.anEdge,r,o,i,s,l;o=e.Lnext;do r=o,o=r.Lnext,r.Lface=null,r.Rface===null&&(r.Onext===r?this.killVertex_(r.Org,null):(r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev)),i=r.Sym,i.Onext===i?this.killVertex_(i.Org,null):(i.Org.anEdge=i.Onext,this.splice_(i,i.Oprev)),this.killEdge_(r));while(r!=e);s=t.prev,l=t.next,l.prev=s,s.next=l},n.prototype.countFaceVerts_=function(t){var e=t.anEdge,r=0;do r++,e=e.Lnext;while(e!==t.anEdge);return r},n.prototype.mergeConvexFaces=function(t){var e,r,o,i,s,l,c;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(r=e.anEdge,s=r.Org;o=r.Lnext,i=r.Sym,i&&i.Lface&&i.Lface.inside&&(l=this.countFaceVerts_(e),c=this.countFaceVerts_(i.Lface),l+c-2<=t&&ae.vertCCW(r.Lprev.Org,r.Org,i.Lnext.Lnext.Org)&&ae.vertCCW(i.Lprev.Org,i.Org,r.Lnext.Lnext.Org)&&(o=i.Lnext,this.delete(i),r=null,i=null)),!(r&&r.Lnext.Org===s);)r=o;return!0},n.prototype.check=function(){var t=this.fHead,e=this.vHead,r=this.eHead,o,i,s,l,c,p;for(i=t,i=t;(o=i.next)!==t;i=o){pe(o.prev===i),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===i&&o.anEdge===null),l=e,l=e;(s=l.next)!==e;l=s){pe(s.prev===l),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===l&&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)},n}(),Jd=function(){function n(){this.handle=null}return n}(),ef=function(){function n(){this.key=null,this.node=0}return n}(),Mb=function(){function n(t,e){this.leq=e,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=t,this.nodes=[],this.handles=[];for(var r=0;r<t+1;r++)this.nodes[r]=new Jd,this.handles[r]=new ef;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return n.prototype.floatDown_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t<<1,s<this.size&&this.leq(r[e[s+1].handle].key,r[e[s].handle].key)&&++s,pe(s<=this.max),i=e[s].handle,s>this.size||this.leq(r[o].key,r[i].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=s}},n.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t>>1,i=e[s].handle,s===0||this.leq(r[i].key,r[o].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=s}},n.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},n.prototype.min=function(){return this.handles[this.nodes[1].handle].key},n.prototype.insert=function(t){var e,r;if(e=++this.size,e*2>this.max){this.max*=2;var o,i;for(i=this.nodes.length,this.nodes.length=this.max+1,o=i;o<this.nodes.length;o++)this.nodes[o]=new Jd;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new ef}return this.freeList===0?r=e:(r=this.freeList,this.freeList=this.handles[r].node),this.nodes[e].handle=r,this.handles[r].node=e,this.handles[r].key=t,this.initialized&&this.floatUp_(e),r},n.prototype.extractMin=function(){var t=this.nodes,e=this.handles,r=t[1].handle,o=e[r].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[r].key=null,e[r].node=this.freeList,this.freeList=r,--this.size,this.size>0&&this.floatDown_(1)),o},n.prototype.delete=function(t){var e=this.nodes,r=this.handles,o;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},n}(),Ll=function(){function n(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return n}(),tf=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),Db=function(){function n(t,e){this.frame=t,this.leq=e,this.head=new tf,this.head.next=this.head,this.head.prev=this.head}return n.prototype.min=function(){return this.head.next},n.prototype.max=function(){return this.head.prev},n.prototype.insert=function(t){return this.insertBefore(this.head,t)},n.prototype.search=function(t){var e=this.head;do e=e.next;while(e.key!==null&&!this.leq(this.frame,t,e.key));return e},n.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var r=new tf;return r.key=e,r.next=t.next,t.next.prev=r,r.prev=t,t.next=r,r},n.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},n}(),Bb=function(){function n(){}return n.regionBelow=function(t){return t.nodeUp.prev.key},n.regionAbove=function(t){return t.nodeUp.next.key},n.debugEvent=function(t){},n.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.edgeLeq=function(t,e,r){var o=t.event,i=e.eUp,s=r.eUp;if(i.Dst===o)return s.Dst===o?ae.vertLeq(i.Org,s.Org)?ae.edgeSign(s.Dst,i.Org,s.Org)<=0:ae.edgeSign(i.Dst,s.Org,i.Org)>=0:ae.edgeSign(s.Dst,o,s.Org)<=0;if(s.Dst===o)return ae.edgeSign(i.Dst,o,i.Org)>=0;var l=ae.edgeEval(i.Dst,o,i.Org),c=ae.edgeEval(s.Dst,o,s.Org);return l>=c},n.deleteRegion=function(t,e){e.fixUpperEdge&&pe(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},n.fixUpperEdge=function(t,e,r){pe(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=r,r.activeRegion=e},n.topLeftRegion=function(t,e){var r=e.eUp.Org,o;do e=n.regionAbove(e);while(e.eUp.Org===r);if(e.fixUpperEdge){if(o=t.mesh.connect(n.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;n.fixUpperEdge(t,e,o),e=n.regionAbove(e)}return e},n.topRightRegion=function(t){var e=t.eUp.Dst;do t=n.regionAbove(t);while(t.eUp.Dst===e);return t},n.addRegionBelow=function(t,e,r){var o=new Ll;return o.eUp=r,o.nodeUp=t.dict.insertBefore(e.nodeUp,o),o.fixUpperEdge=!1,o.sentinel=!1,o.dirty=!1,r.activeRegion=o,o},n.isWindingInside=function(t,e){switch(t.windingRule){case 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")},n.computeWinding=function(t,e){e.windingNumber=n.regionAbove(e).windingNumber+e.eUp.winding,e.inside=n.isWindingInside(t,e.windingNumber)},n.finishRegion=function(t,e){var r=e.eUp,o=r.Lface;o.inside=e.inside,o.anEdge=r,n.deleteRegion(t,e)},n.finishLeftRegions=function(t,e,r){for(var o,i=null,s=e,l=e.eUp;s!==r;){if(s.fixUpperEdge=!1,i=n.regionBelow(s),o=i.eUp,o.Org!=l.Org){if(!i.fixUpperEdge){n.finishRegion(t,s);break}o=t.mesh.connect(l.Lprev,o.Sym),n.fixUpperEdge(t,i,o)}l.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(l,o)),n.finishRegion(t,s),l=i.eUp,s=i}return l},n.addRightEdges=function(t,e,r,o,i,s){var l,c,p,a,u=!0;p=r;do pe(ae.vertLeq(p.Org,p.Dst)),n.addRegionBelow(t,e,p.Sym),p=p.Onext;while(p!==o);for(i===null&&(i=n.regionBelow(e).eUp.Rprev),c=e,a=i;l=n.regionBelow(c),p=l.eUp.Sym,p.Org===a.Org;)p.Onext!==a&&(t.mesh.splice(p.Oprev,p),t.mesh.splice(a.Oprev,p)),l.windingNumber=c.windingNumber-p.winding,l.inside=n.isWindingInside(t,l.windingNumber),c.dirty=!0,!u&&n.checkForRightSplice(t,c)&&(n.addWinding(p,a),n.deleteRegion(t,c),t.mesh.delete(a)),u=!1,c=l,a=p;c.dirty=!0,pe(c.windingNumber-p.winding===l.windingNumber),s&&n.walkDirtyRegions(t,c)},n.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},n.vertexWeights=function(t,e,r){var o=ae.vertL1dist(e,t),i=ae.vertL1dist(r,t),s=.5*i/(o+i),l=.5*o/(o+i);t.coords[0]+=s*e.coords[0]+l*r.coords[0],t.coords[1]+=s*e.coords[1]+l*r.coords[1],t.coords[2]+=s*e.coords[2]+l*r.coords[2]},n.getIntersectData=function(t,e,r,o,i,s){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,n.vertexWeights(e,r,o),n.vertexWeights(e,i,s)},n.checkForRightSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp;if(ae.vertLeq(o.Org,i.Org)){if(ae.edgeSign(i.Dst,o.Org,i.Org)>0)return!1;ae.vertEq(o.Org,i.Org)?o.Org!==i.Org&&(t.pq.delete(o.Org.pqHandle),n.spliceMergeVertices(t,i.Oprev,o)):(t.mesh.splitEdge(i.Sym),t.mesh.splice(o,i.Oprev),e.dirty=r.dirty=!0)}else{if(ae.edgeSign(o.Dst,i.Org,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Oprev,o)}return!0},n.checkForLeftSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,s;if(pe(!ae.vertEq(o.Dst,i.Dst)),ae.vertLeq(o.Dst,i.Dst)){if(ae.edgeSign(o.Dst,i.Dst,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,s=t.mesh.splitEdge(o),t.mesh.splice(i.Sym,s),s.Lface.inside=e.inside}else{if(ae.edgeSign(i.Dst,o.Dst,i.Org)>0)return!1;e.dirty=r.dirty=!0,s=t.mesh.splitEdge(i),t.mesh.splice(o.Lnext,i.Sym),s.Rface.inside=e.inside}return!0},n.checkForIntersect=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,s=o.Org,l=i.Org,c=o.Dst,p=i.Dst,a,u,d=new dn,f,m;if(pe(!ae.vertEq(p,c)),pe(ae.edgeSign(c,t.event,s)<=0),pe(ae.edgeSign(p,t.event,l)>=0),pe(s!==t.event&&l!==t.event),pe(!e.fixUpperEdge&&!r.fixUpperEdge),s===l||(a=Math.min(s.t,c.t),u=Math.max(l.t,p.t),a>u))return!1;if(ae.vertLeq(s,l)){if(ae.edgeSign(p,s,l)>0)return!1}else if(ae.edgeSign(c,l,s)<0)return!1;return n.debugEvent(t),ae.intersect(c,s,p,l,d),pe(Math.min(s.t,c.t)<=d.t),pe(d.t<=Math.max(l.t,p.t)),pe(Math.min(p.s,c.s)<=d.s),pe(d.s<=Math.max(l.s,s.s)),ae.vertLeq(d,t.event)&&(d.s=t.event.s,d.t=t.event.t),f=ae.vertLeq(s,l)?s:l,ae.vertLeq(f,d)&&(d.s=f.s,d.t=f.t),ae.vertEq(d,s)||ae.vertEq(d,l)?(n.checkForRightSplice(t,e),!1):!ae.vertEq(c,t.event)&&ae.edgeSign(c,t.event,d)>=0||!ae.vertEq(p,t.event)&&ae.edgeSign(p,t.event,d)<=0?p===t.event?(t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Sym,o),e=n.topLeftRegion(t,e),o=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),r),n.addRightEdges(t,e,o.Oprev,o,o,!0),!0):c===t.event?(t.mesh.splitEdge(i.Sym),t.mesh.splice(o.Lnext,i.Oprev),r=e,e=n.topRightRegion(e),m=n.regionBelow(e).eUp.Rprev,r.eUp=i.Oprev,i=n.finishLeftRegions(t,r,null),n.addRightEdges(t,e,i.Onext,o.Rprev,m,!0),!0):(ae.edgeSign(c,t.event,d)>=0&&(n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),o.Org.s=t.event.s,o.Org.t=t.event.t),ae.edgeSign(p,t.event,d)<=0&&(e.dirty=r.dirty=!0,t.mesh.splitEdge(i.Sym),i.Org.s=t.event.s,i.Org.t=t.event.t),!1):(t.mesh.splitEdge(o.Sym),t.mesh.splitEdge(i.Sym),t.mesh.splice(i.Oprev,o),o.Org.s=d.s,o.Org.t=d.t,o.Org.pqHandle=t.pq.insert(o.Org),n.getIntersectData(t,o.Org,s,c,l,p),n.regionAbove(e).dirty=e.dirty=r.dirty=!0,!1)},n.walkDirtyRegions=function(t,e){for(var r=n.regionBelow(e),o,i;;){for(;r.dirty;)e=r,r=n.regionBelow(r);if(!e.dirty&&(r=e,e=n.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,i=r.eUp,o.Dst!==i.Dst&&n.checkForLeftSplice(t,e)&&(r.fixUpperEdge?(n.deleteRegion(t,r),t.mesh.delete(i),r=n.regionBelow(e),i=r.eUp):e.fixUpperEdge&&(n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r),o=e.eUp)),o.Org!==i.Org)if(o.Dst!==i.Dst&&!e.fixUpperEdge&&!r.fixUpperEdge&&(o.Dst===t.event||i.Dst===t.event)){if(n.checkForIntersect(t,e))return}else n.checkForRightSplice(t,e);o.Org===i.Org&&o.Dst===i.Dst&&(n.addWinding(i,o),n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r))}},n.connectRightVertex=function(t,e,r){var o,i=r.Onext,s=n.regionBelow(e),l=e.eUp,c=s.eUp,p=!1;if(l.Dst!==c.Dst&&n.checkForIntersect(t,e),ae.vertEq(l.Org,t.event)&&(t.mesh.splice(i.Oprev,l),e=n.topLeftRegion(t,e),i=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),s),p=!0),ae.vertEq(c.Org,t.event)&&(t.mesh.splice(r,c.Oprev),r=n.finishLeftRegions(t,s,null),p=!0),p){n.addRightEdges(t,e,r.Onext,i,i,!0);return}ae.vertLeq(c.Org,l.Org)?o=c.Oprev:o=l,o=t.mesh.connect(r.Lprev,o),n.addRightEdges(t,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,n.walkDirtyRegions(t,e)},n.connectLeftDegenerate=function(t,e,r){var o,i,s,l,c;if(o=e.eUp,ae.vertEq(o.Org,r)){pe(!1),n.spliceMergeVertices(t,o,r.anEdge);return}if(!ae.vertEq(o.Dst,r)){t.mesh.splitEdge(o.Sym),e.fixUpperEdge&&(t.mesh.delete(o.Onext),e.fixUpperEdge=!1),t.mesh.splice(r.anEdge,o),n.sweepEvent(t,r);return}pe(!1),e=n.topRightRegion(e),c=n.regionBelow(e),s=c.eUp.Sym,i=l=s.Onext,c.fixUpperEdge&&(pe(i!==s),n.deleteRegion(t,c),t.mesh.delete(s),s=i.Oprev),t.mesh.splice(r.anEdge,s),ae.edgeGoesLeft(i)||(i=null),n.addRightEdges(t,e,s.Onext,l,i,!0)},n.connectLeftVertex=function(t,e){var r,o,i,s,l,c,p=new Ll;if(p.eUp=e.anEdge.Sym,r=t.dict.search(p).key,o=n.regionBelow(r),!!o){if(s=r.eUp,l=o.eUp,ae.edgeSign(s.Dst,e,s.Org)===0){n.connectLeftDegenerate(t,r,e);return}if(i=ae.vertLeq(l.Dst,s.Dst)?r:o,r.inside||i.fixUpperEdge){if(i===r)c=t.mesh.connect(e.anEdge.Sym,s.Lnext);else{var a=t.mesh.connect(l.Dnext,e.anEdge);c=a.Sym}i.fixUpperEdge?n.fixUpperEdge(t,i,c):n.computeWinding(t,n.addRegionBelow(t,r,c)),n.sweepEvent(t,e)}else n.addRightEdges(t,r,e.anEdge,e.anEdge,null,!0)}},n.sweepEvent=function(t,e){t.event=e,n.debugEvent(t);for(var r=e.anEdge;r.activeRegion===null;)if(r=r.Onext,r===e.anEdge){n.connectLeftVertex(t,e);return}var o=n.topLeftRegion(t,r.activeRegion);pe(o!==null);var i=n.regionBelow(o),s=i.eUp,l=n.finishLeftRegions(t,i,null);l.Onext===s?n.connectRightVertex(t,o,l):n.addRightEdges(t,o,l.Onext,s,s,!0)},n.addSentinel=function(t,e,r,o){var i=new Ll,s=t.mesh.makeEdge();s.Org.s=r,s.Org.t=o,s.Dst.s=e,s.Dst.t=o,t.event=s.Dst,i.eUp=s,i.windingNumber=0,i.inside=!1,i.fixUpperEdge=!1,i.sentinel=!0,i.dirty=!1,i.nodeUp=t.dict.insert(i)},n.initEdgeDict=function(t){t.dict=new Db(t,n.edgeLeq);var e=t.bmax[0]-t.bmin[0],r=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,i=t.bmax[0]+e,s=t.bmin[1]-r,l=t.bmax[1]+r;n.addSentinel(t,o,i,s),n.addSentinel(t,o,i,l)},n.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(pe(e.fixUpperEdge),pe(++r===1)),pe(e.windingNumber===0),n.deleteRegion(t,e)},n.removeDegenerateEdges=function(t){var e,r,o,i=t.mesh.eHead;for(e=i.next;e!==i;e=r)r=e.next,o=e.Lnext,ae.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(n.spliceMergeVertices(t,o,e),t.mesh.delete(e),e=o,o=e.Lnext),o.Lnext===e&&(o!==e&&((o===r||o===r.Sym)&&(r=r.next),t.mesh.delete(o)),(e===r||e===r.Sym)&&(r=r.next),t.mesh.delete(e))},n.initPriorityQ=function(t){var e,r,o,i=0;for(o=t.mesh.vHead,r=o.next;r!==o;r=r.next)i++;for(i+=8,e=t.pq=new Mb(i,ae.vertLeq),o=t.mesh.vHead,r=o.next;r!==o;r=r.next)r.pqHandle=e.insert(r);return r!==o?!1:(e.init(),!0)},n.donePriorityQ=function(t){t.pq=null},n.removeDegenerateFaces=function(t,e){var r,o,i;for(r=e.fHead.next;r!==e.fHead;r=o)o=r.next,i=r.anEdge,pe(i.Lnext!==i),i.Lnext.Lnext===i&&(n.addWinding(i.Onext,i),t.mesh.delete(i));return!0},n.computeInterior=function(t,e){e===void 0&&(e=!0);var r,o;if(n.removeDegenerateEdges(t),!n.initPriorityQ(t))return!1;for(n.initEdgeDict(t);(r=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!ae.vertEq(o,r));)o=t.pq.extractMin(),n.spliceMergeVertices(t,r.anEdge,o.anEdge);n.sweepEvent(t,r)}return t.event=t.dict.min().key.eUp.Org,n.debugEvent(t),n.doneEdgeDict(t),n.donePriorityQ(t),n.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},n}(),Eb=function(){function n(){this.mesh=new Qd,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 n.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},n.prototype.normalize_=function(t){var e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];if(!e)throw"Zero-size vector!";e=Math.sqrt(e),t[0]/=e,t[1]/=e,t[2]/=e},n.prototype.longAxis_=function(t){var e=0;return Math.abs(t[1])>Math.abs(t[0])&&(e=1),Math.abs(t[2])>Math.abs(t[e])&&(e=2),e},n.prototype.computeNormal_=function(t){var e,r,o,i,s,l,c=[0,0,0],p=[0,0,0],a=[0,0,0],u=[0,0,0],d=[0,0,0],f=[null,null,null],m=[null,null,null],h=this.mesh.vHead;e=h.next;for(var g=0;g<3;++g)i=e.coords[g],p[g]=i,m[g]=e,c[g]=i,f[g]=e;for(e=h.next;e!==h;e=e.next)for(var x=0;x<3;++x)i=e.coords[x],i<p[x]&&(p[x]=i,m[x]=e),i>c[x]&&(c[x]=i,f[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(l=0,r=m[v],o=f[v],a[0]=r.coords[0]-o.coords[0],a[1]=r.coords[1]-o.coords[1],a[2]=r.coords[2]-o.coords[2],e=h.next;e!==h;e=e.next)u[0]=e.coords[0]-o.coords[0],u[1]=e.coords[1]-o.coords[1],u[2]=e.coords[2]-o.coords[2],d[0]=a[1]*u[2]-a[2]*u[1],d[1]=a[2]*u[0]-a[0]*u[2],d[2]=a[0]*u[1]-a[1]*u[0],s=d[0]*d[0]+d[1]*d[1]+d[2]*d[2],s>l&&(l=s,t[0]=d[0],t[1]=d[1],t[2]=d[2]);l<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(a)]=1)},n.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,r=this.mesh.vHead,o,i=0,s=t.next;s!==t;s=s.next)if(o=s.anEdge,!(o.winding<=0))do i+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==s.anEdge);if(i<0){for(e=r.next;e!==r;e=e.next)e.t=-e.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},n.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],r,o,i=!1;e[0]=this.normal[0],e[1]=this.normal[1],e[2]=this.normal[2],!e[0]&&!e[1]&&!e[2]&&(this.computeNormal_(e),i=!0),r=this.sUnit,o=this.tUnit;var s=this.longAxis_(e);r[s]=0,r[(s+1)%3]=1,r[(s+2)%3]=0,o[s]=0,o[(s+1)%3]=0,o[(s+2)%3]=e[s]>0?1:-1;for(var l=t.next;l!==t;l=l.next)l.s=this.dot_(l.coords,r),l.t=this.dot_(l.coords,o);i&&this.checkOrientation_();for(var c=!0,p=t.next;p!==t;p=p.next)c?(this.bmin[0]=this.bmax[0]=p.s,this.bmin[1]=this.bmax[1]=p.t,c=!1):(p.s<this.bmin[0]&&(this.bmin[0]=p.s),p.s>this.bmax[0]&&(this.bmax[0]=p.s),p.t<this.bmin[1]&&(this.bmin[1]=p.t),p.t>this.bmax[1]&&(this.bmax[1]=p.t))},n.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.prototype.tessellateMonoRegion_=function(t,e){var r,o;if(r=e.anEdge,!(r.Lnext!==r&&r.Lnext.Lnext!==r))throw"Mono region invalid";for(;ae.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;ae.vertLeq(r.Org,r.Dst);r=r.Lnext);o=r.Lprev;for(var i=void 0;r.Lnext!==o;)if(ae.vertLeq(r.Dst,o.Org)){for(;o.Lnext!==r&&(ae.edgeGoesLeft(o.Lnext)||ae.edgeSign(o.Org,o.Dst,o.Lnext.Dst)<=0);)i=t.connect(o.Lnext,o),o=i.Sym;o=o.Lprev}else{for(;o.Lnext!==r&&(ae.edgeGoesRight(r.Lprev)||ae.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)i=t.connect(r,r.Lprev),r=i.Sym;r=r.Lnext}if(o.Lnext===r)throw"Mono region invalid";for(;o.Lnext.Lnext!==r;)i=t.connect(o.Lnext,o),o=i.Sym;return!0},n.prototype.tessellateInterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)if(e=r.next,r.inside&&!this.tessellateMonoRegion_(t,r))return!1;return!0},n.prototype.discardExterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)e=r.next,r.inside||t.zapFace(r)},n.prototype.setWindingNumber_=function(t,e,r){for(var o,i=t.eHead.next;i!==t.eHead;i=o)o=i.next,i.Rface.inside!==i.Lface.inside?i.winding=i.Lface.inside?e:-e:r?t.delete(i):i.winding=0},n.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},n.prototype.outputPolymesh_=function(t,e,r,o){var i,s=0,l=0,c;r>3&&t.mergeConvexFaces(r);for(var p=t.vHead.next;p!==t.vHead;p=p.next)p.n=-1;for(var a=t.fHead.next;a!==t.fHead;a=a.next)if(a.n=-1,!!a.inside){i=a.anEdge,c=0;do{var p=i.Org;p.n===-1&&(p.n=l,l++),c++,i=i.Lnext}while(i!==a.anEdge);if(c>r)throw"Face vertex greater that support polygon";a.n=s,++s}this.elementCount=s,e===et.CONNECTED_POLYGONS&&(s*=2),this.elements=[],this.elements.length=s*r,this.vertexCount=l,this.vertices=[],this.vertices.length=l*o,this.vertexIndices=[],this.vertexIndices.length=l;for(var p=t.vHead.next;p!==t.vHead;p=p.next)if(p.n!==-1){var u=p.n*o;this.vertices[u+0]=p.coords[0],this.vertices[u+1]=p.coords[1],o>2&&(this.vertices[u+2]=p.coords[2]),this.vertexIndices[p.n]=p.idx}for(var d=0,a=t.fHead.next;a!==t.fHead;a=a.next)if(!!a.inside){i=a.anEdge,c=0;do{var p=i.Org;this.elements[d++]=p.n,c++,i=i.Lnext}while(i!==a.anEdge);for(var f=c;f<r;++f)this.elements[d++]=-1;if(e===et.CONNECTED_POLYGONS){i=a.anEdge;do this.elements[d++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==a.anEdge);for(var m=c;m<r;++m)this.elements[d++]=-1}}},n.prototype.outputContours_=function(t,e){var r,o,i=0,s=0;this.vertexCount=0,this.elementCount=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){o=r=l.anEdge;do this.vertexCount++,r=r.Lnext;while(r!==o);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*e,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var c=0,p=0,a=0;i=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){s=0,o=r=l.anEdge;do this.vertices[c++]=r.Org.coords[0],this.vertices[c++]=r.Org.coords[1],e>2&&(this.vertices[c++]=r.Org.coords[2]),this.vertexIndices[p++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,s++,r=r.Lnext;while(r!==o);this.elements[a++]=i,this.elements[a++]=s,i+=s}},n.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new Qd),t<2&&(t=2),t>3&&(t=3);for(var r=null,o=0;o<e.length;o+=t)r===null?(r=this.mesh.makeEdge(),this.mesh.splice(r,r.Sym)):(this.mesh.splitEdge(r),r=r.Lnext),r.Org.coords[0]=e[o+0],r.Org.coords[1]=e[o+1],t>2?r.Org.coords[2]=e[o+2]:r.Org.coords[2]=0,r.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(r),r.winding=1,r.Sym.winding=-1},n.prototype.tesselate=function(t,e,r,o,i,s){if(t===void 0&&(t=Be.ODD),e===void 0&&(e=et.POLYGONS),s===void 0&&(s=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,i&&(this.normal[0]=i[0],this.normal[1]=i[1],this.normal[2]=i[2]),this.windingRule=t,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),Bb.computeInterior(this,s);var l=this.mesh;return e===et.BOUNDARY_CONTOURS?this.setWindingNumber_(l,1,!0):this.tessellateInterior_(l),s&&l.check(),e===et.BOUNDARY_CONTOURS?this.outputContours_(l,o):this.outputPolymesh_(l,e,r,o),!0},n}();function bo(n){var t=n.windingRule,e=t===void 0?Be.ODD:t,r=n.elementType,o=r===void 0?et.POLYGONS:r,i=n.polySize,s=i===void 0?3:i,l=n.vertexSize,c=l===void 0?2:l,p=n.normal,a=p===void 0?[0,0,1]:p,u=n.contours,d=u===void 0?[]:u,f=n.strict,m=f===void 0?!0:f,h=n.debug,g=h===void 0?!1:h;if(!d&&m)throw new Error("Contours can't be empty");if(!!d){var x=new Eb;n.edgeCreateCallback&&(x.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(x.vertexIdCallback=n.vertexIdCallback);for(var v=0;v<d.length;v++)x.addContour(c||2,d[v]);return x.tesselate(e,o,s,c,a,m),{vertices:x.vertices,vertexIndices:x.vertexIndices,vertexCount:x.vertexCount,elements:x.elements,elementCount:x.elementCount,mesh:g?x.mesh:void 0}}}var qO=Be.ODD,$O=Be.NONZERO,XO=Be.POSITIVE,YO=Be.NEGATIVE,KO=Be.ABS_GEQ_TWO,ZO=et.POLYGONS,QO=et.CONNECTED_POLYGONS,JO=et.BOUNDARY_CONTOURS;var fn=class extends So.BufferGeometry{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Be.ODD;this.elementType=et.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:Be.ODD,elementType:et.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),s=this._shape.shapeHoles.map(m=>m.extractShapePointsToFlatArray([],this._curveSegments)),l,c=!0,p=!0,a,u;for(let m=0,h=i.length/2;m<h;m++){let g=m*2,x=i[g+0],v=i[g+1];if(a!==void 0&&x!==a&&(c=!1),u!==void 0&&v!==u&&(p=!1),a=x,u=v,!c&&!p)break}!c&&!p&&(l=bo({contours:[i,...s],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let d=l?.vertexCount??1,f=l?.elementCount??1;if(this._positionAttribute=new So.BufferAttribute(new Float32Array(d*3),3),this._normalAttribute=new So.BufferAttribute(new Float32Array(d*3),3),this._uvAttribute=new So.BufferAttribute(new Float32Array(d*2),2),this._indexAttribute=new So.BufferAttribute(new Uint32Array(f*3),1),l){let m=1/0,h=-1/0,g=1/0,x=-1/0;for(let S=0,b=d;S<b;S++){let D=S*2,w=l.vertices[D+0],y=l.vertices[D+1];w<m&&(m=w),w>h&&(h=w),y<g&&(g=y),y>x&&(x=y)}let v=h-m,A=x-g;for(let S=0,b=d;S<b;S++){let D=S*2,w=l.vertices[D+0],y=l.vertices[D+1],I=(w-m)/v,T=(y-g)/A;this._positionAttribute.setXYZ(S,w,y,0),this._normalAttribute.setXYZ(S,0,0,1),this._uvAttribute.setXY(S,I,T)}for(let S=0,b=f;S<b;S++){let D=S*3,w=l.elements[D+0],y=l.elements[D+1],I=l.elements[D+2];this._indexAttribute.setX(D+0,w),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,(l?.elementCount??1)*3)}clone(){let e=new fn(this._shape,this._curveSegments);return e.userData=qn(this.userData),e}};var wo=require("three");var oa=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*oa.eSize;this.buffer=new ArrayBuffer(r);let o=Float32Array.BYTES_PER_ELEMENT,i=0;this.positions=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.normals=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.uvs=new Float32Array(this.buffer,i*o,2*t)}realloc(t,e=!1){if(t<this.size)throw Error("cannot shrink buffer");if(t<=this.capacity&&!e)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${t}`);let r=t*oa.eSize,o=new ArrayBuffer(r),i=Float32Array.BYTES_PER_ELEMENT,s=0,l=new Float32Array(o,s*i,3*t);s+=3*t;let c=new Float32Array(o,s*i,3*t);s+=3*t;let p=new Float32Array(o,s*i,2*t);l.set(this.positions.slice(0,this.size*3)),c.set(this.normals.slice(0,this.size*3)),p.set(this.uvs.slice(0,this.size*2)),this.buffer=o,this.positions=l,this.normals=c,this.uvs=p,this.capacity=t}get(t=1){let e=this.size+t;if(e>this.capacity){let o=this.capacity;for(;e>o;)o*=2;this.realloc(o)}let r=this.size;return this.size=e,r}reserve(t){let e=this.size+t;e>this.capacity&&this.realloc(e)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},li=oa;li.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Il=(n,t)=>([e,r])=>(r<e&&(r+=t),(n>=e?n:n+t)<=r),mn=class extends wo.BufferGeometry{constructor(e,r,o=0,i=12,s=3){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=r,this._bevel=o,this._curveSegments=i,this._bevelSegmentsInput=s,o<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(o,r/2-1e-12),this._bevelSegments=Math.floor(s));let l=this._shape.extractShapePointsToFlatArray([],i),c=this._shape.shapeHoles.map(w=>{let y=w.extractShapePointsToFlatArray([],i),I=[];for(let T=y.length-1;T>=1;T-=2){let L=y[T-1],N=y[T-0];I.push(L,N)}return I}),p=bo({windingRule:Be.ODD,elementType:et.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[l]}),a=bo({windingRule:Be.ODD,elementType:et.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...c]});if(!p)throw new Error("error generating geometry");let u=p.elementCount;if(a){p.elementCount+=a.elementCount;for(let w=0;w<a.elements.length;w++){let y=a.elements[w],I=w%2===0?p.vertexCount:0;p.elements.push(y+I)}for(let w=0;w<a.vertexIndices.length;w++){let y=a.vertexIndices[w],I=p.vertexCount;p.vertexIndices.push(y+I)}for(let w=0;w<a.vertices.length;w++){let y=a.vertices[w];p.vertices.push(y)}}let d=1/0,f=-1/0,m=1/0,h=-1/0;for(let w=0,y=p.vertexCount;w<y;w++){let I=w*2,T=p.vertices[I+0],L=p.vertices[I+1];T<d&&(d=T),T>f&&(f=T),L<m&&(m=L),L>h&&(h=L)}this._minX=d,this._minY=m,this._width=f-d,this._height=h-m;let g=p.vertexCount*2*(2+this._bevelSegments);this._buffer=new li(g);let x=[],v=[];for(let w=p.elementCount-1;w>=0;w--){let y=w>=u,I=w*2,T=p.elements[I+0],L=p.elements[I+1],N=T+L,C={start:T,count:L,normals:[],continuous:[],concave:[]},k=T,W=N-1,ne=T+1,ue=this._shape.roundedCurves.length;do{let V=k-T,E=p.vertices[W*2+0],B=p.vertices[W*2+1],O=p.vertices[k*2+0],G=p.vertices[k*2+1],Z=p.vertices[ne*2+0],j=p.vertices[ne*2+1],F=O-E,z=G-B,M=Math.sqrt(F*F+z*z);F/=M,z/=M;let q=O-Z,J=G-j,ee=Math.sqrt(q*q+J*J);q/=ee,J/=ee,C.normals[V*2+0]=-J,C.normals[V*2+1]=q,C.concave[V]=F*J-z*q>0;let H=p.vertexIndices[k];if(Array.isArray(H))C.continuous[V]=!1;else{let[Q,$]=this._shape.getCurveIndexFromVertexId(H-1,!0);if($>0&&$<1)C.continuous[V]=!0;else{let re=$===1?Q+1:Q-1;re=(re+ue)%ue;let ce=$===1?0:1,ie=this._shape.roundedCurves[Q].getTangent($),me=this._shape.roundedCurves[re].getTangent(ce);C.continuous[V]=ie.dot(me)>.95}}y&&(C.normals[V*2+0]*=-1,C.normals[V*2+1]*=-1),[W,k,ne]=[k,ne,ne+1],ne>=N&&(ne-=L)}while(ne!==T+1);let se=[];se.push({bevelI:0,angle:0,size:0,boundary:{vertices:p.vertices.slice(T*2,N*2),vertexCount:L,vertexIndices:new Array(L).fill(!0).map((V,E)=>[E,E]),elements:[0,L],elementCount:1,mesh:null},reverseMap:[],insetPoints:p.vertices.slice(T*2,N*2)});for(let V=1;V<=this._bevelSegments;V++){let E=V/this._bevelSegments*Math.PI/2,B=(1-Math.cos(E))*this._bevelSize,O=[],G=[],Z=[],j=[],F=0;for(let M=0;M<L;M++){let q=M*2,J=(M-1+L)%L*2,ee=p.vertices[C.start*2+q+0],H=p.vertices[C.start*2+q+1],Q=-C.normals[J+0]*B,$=-C.normals[J+1]*B,re=-C.normals[q+0]*B,ce=-C.normals[q+1]*B;if(C.concave[M]||!C.concave[M]&&y){let ie=Math.atan2($,Q),me=Math.atan2(ce,re);me>ie&&(me-=Math.PI*2);let Re=me-ie;if(C.continuous[M]||y){let ge=ie+Re/2,$e=Math.cos(ge)*B,Te=Math.sin(ge)*B;O[2*F+0]=ee+$e*(y?-1:1),O[2*F+1]=H+Te*(y?-1:1),j[F]=M,F++}else{let ge=Math.max(1,Math.floor(i/4*Math.abs(Re)/Math.PI));for(let $e=0;$e<=ge;$e++){let Te=ie+Re*($e/ge),St=Math.cos(Te)*B,Vt=Math.sin(Te)*B;O[2*F+0]=ee+St,O[2*F+1]=H+Vt,j[F]=M,F++}}}else O[2*F+0]=ee+Q,O[2*F+1]=H+$,j[F]=M,G[M]=F,F++,O[2*F+0]=ee,O[2*F+1]=H,j[F]=M,F++,O[2*F+0]=ee+re,O[2*F+1]=H+ce,j[F]=M,Z[M]=F,F++}let z=bo({windingRule:Be.POSITIVE,elementType:et.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[O],edgeCreateCallback:M=>{let J=M.Org.idx,ee=j[J],H=j[(J+1)%j.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 ${V}'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 Q=H%L,$=(H+1)%L;if(!C.continuous[Q]||!C.continuous[$]){z.vertexIndices[M]=[q,Q],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:V,angle:E,size:B,boundary:z,reverseMap:j,insetPoints:O})}let K=(V,E,B)=>{let O=0,G=V.boundary.vertexIndices.length;for(;O<G&&B(V.boundary.vertexIndices[E]);)E=(E+1)%G,O++;return O},U=x.length;for(let V=1;V<se.length;V++){let E=se[V-1],B=se[V],O=E.boundary.vertexIndices.length,G=B.boundary.vertexIndices.length;if(!O||!G)break;let Z=C.concave.length,j=0,F=Il(j,L);for(;!E.boundary.vertexIndices.filter(F).length||!B.boundary.vertexIndices.filter(F).length;)j++,F=Il(j,L);let z=E.boundary.vertexIndices.findIndex(F),M=B.boundary.vertexIndices.findIndex(F);do z=(z+1)%O;while(F(E.boundary.vertexIndices[z]));do M=(M+1)%G;while(F(B.boundary.vertexIndices[M]));j=(j+1)%L;let q=j,J=this.buildBevelVert(C,E,(z-1+O)%O),ee=this.buildBevelVert(C,B,(M-1+G)%G),H=J,Q=ee,$,re,ce=!1;do{F=Il(j,L);let ie=K(E,z,F),me=K(B,M,F),Re=ce;if(ce=!1,ie&&!me){for(let ge=0;ge<ie;ge++)$=this.buildBevelVert(C,E,(z+ge)%O,ge/(ie-1)),x.push(H.topN,$.topP,Q.topN),x.push($.bottomP,H.bottomN,Q.bottomN),H=$;ce=!0}else if(!ie&&me)for(let ge=0;ge<me;ge++)re=this.buildBevelVert(C,B,(M+ge)%G,ge/(me-1)),x.push(Q.topN,H.topP,re.topP),x.push(H.bottomP,Q.bottomN,re.bottomP),Q=re;else if(ie&&me)if($=this.buildBevelVert(C,E,z,0),re=this.buildBevelVert(C,B,M,0),Re?(x.push(H.topN,re.topP,Q.topN),x.push(H.topN,$.topP,re.topP),x.push(re.bottomP,H.bottomN,Q.bottomN),x.push(re.bottomP,$.bottomP,H.bottomN)):(x.push(Q.topN,H.topN,$.topP),x.push(Q.topN,$.topP,re.topP),x.push($.bottomP,H.bottomN,Q.bottomN),x.push($.bottomP,Q.bottomN,re.bottomP)),H=$,Q=re,ie===me)for(let ge=1;ge<ie;ge++)$=this.buildBevelVert(C,E,(z+ge)%O,ge/(ie-1)),re=this.buildBevelVert(C,B,(M+ge)%G,ge/(me-1)),x.push(H.topN,$.topP,Q.topN),x.push(Q.topN,$.topP,re.topP),x.push($.bottomP,H.bottomN,Q.bottomN),x.push($.bottomP,Q.bottomN,re.bottomP),H=$,Q=re;else if(ie>me){let ge=ie/me,$e=0;for(let Te=1;Te<ie;Te++)$=this.buildBevelVert(C,E,(z+Te)%O,Te/(ie-1)),x.push(H.topN,$.topP,Q.topN),x.push($.bottomP,H.bottomN,Q.bottomN),H=$,Te>($e+1)*ge&&($e++,re=this.buildBevelVert(C,B,(M+$e)%G,$e/(me-1)),x.push(Q.topN,$.topP,re.topP),x.push($.bottomP,Q.bottomN,re.bottomP),Q=re)}else{let ge=me/ie,$e=0;for(let Te=1;Te<me;Te++)re=this.buildBevelVert(C,B,(M+Te)%G,Te/(me-1)),x.push(Q.topN,$.topP,re.topP),x.push($.bottomP,Q.bottomN,re.bottomP),Q=re,Te>($e+1)*ge&&($e++,$=this.buildBevelVert(C,E,(z+$e)%O,$e/(ie-1)),x.push(H.topN,$.topP,Q.topN),x.push($.bottomP,H.bottomN,Q.bottomN),H=$)}z=(z+ie)%O,M=(M+me)%G,j=(j+1)%Z}while(j!==q)}{let V=se[0];for(let E=0,B=V.boundary.vertexCount;E<B;E++){let O=this.buildBevelVert(C,V,E),G=this.buildBevelVert(C,V,(E+1)%B);x.push(G.topP,O.topN,O.bottomN),x.push(G.topP,O.bottomN,G.bottomP)}}if(y){let V=[];for(let E=x.length-1;E>=U+2;E-=3){let B=x[E-2],O=x[E-1],G=x[E-0];V.push(G,O,B)}x.splice(U,x.length-U,...V)}if(y){let V=[];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],O=se[se.length-1].boundary.vertices[E-0];V.push(B,O)}v.push(V)}if(!y){let V=se[se.length-1],E=bo({windingRule:se.length>1?Be.POSITIVE:Be.ODD,elementType:et.POLYGONS,vertexSize:2,strict:!0,contours:[V.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 O=this.buildSurfaceVert(E,E.elements[B+0]),G=this.buildSurfaceVert(E,E.elements[B+1]),Z=this.buildSurfaceVert(E,E.elements[B+2]);x.push(O.top,G.top,Z.top),x.push(Z.bottom,G.bottom,O.bottom)}}this.vertexCache={}}this._buffer.shrink();let A=new wo.BufferAttribute(Uint32Array.from(x),1),S=new wo.BufferAttribute(this._buffer.positions,3),b=new wo.BufferAttribute(this._buffer.normals,3),D=new wo.BufferAttribute(this._buffer.uvs,2);S.needsUpdate=!0,b.needsUpdate=!0,D.needsUpdate=!0,A.needsUpdate=!0,this.setAttribute("position",S),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 i=e.vertices[r*2+0],s=e.vertices[r*2+1],l=(i-this._minX)/this._width,c=(s-this._minY)/this._height,p=this._buffer.get(2),a=p*3,u=p*2,d={top:p+0,bottom:p+1};return this._buffer.positions[a+0]=i,this._buffer.positions[a+1]=s,this._buffer.positions[a+2]=this._depth,this._buffer.normals[a+0]=0,this._buffer.normals[a+1]=0,this._buffer.normals[a+2]=1,this._buffer.uvs[u+0]=l,this._buffer.uvs[u+1]=c,this._buffer.positions[a+3]=i,this._buffer.positions[a+4]=s,this._buffer.positions[a+5]=0,this._buffer.normals[a+3]=0,this._buffer.normals[a+4]=0,this._buffer.normals[a+5]=-1,this._buffer.uvs[u+2]=l,this._buffer.uvs[u+3]=c,this.vertexCache[o]=d,d}buildBevelVert(e,r,o,i=1){let s=`${r.bevelI}:${o}`;if(s in this.vertexCache)return this.vertexCache[s];let[l,c]=r.boundary.vertexIndices[o],p,a,u,d;l!==c?(a=l,p=c,d=!1,u=e.continuous[a]&&e.continuous[p]):(p=l,a=(p-1+e.count)%e.count,d=e.concave[p]&&r.bevelI>0,u=e.continuous[p]||d);let f=Math.cos(r.angle),m=Math.sin(r.angle),h=o*2,g=p*2,x=a*2,v=r.boundary.vertices[h+0],A=r.boundary.vertices[h+1],S=(1-m)*this._bevelSize,b=(v-this._minX)/this._width,D=(A-this._minY)/this._height,w=e.normals[g+0],y=e.normals[g+1],I=e.normals[x+0],T=e.normals[x+1];if(d){let W=I-w,ne=T-y;w=w+W*(1-i),y=y+ne*(1-i);let ue=Math.sqrt(w*w+y*y);w/=ue,y/=ue}let L=this._buffer.get(u?2:4),N=L*3,C=L*2,k={i:o,fi:p,topP:L+0,topN:L+0,bottomP:L+1,bottomN:L+1};return this._buffer.positions[N+0]=v,this._buffer.positions[N+1]=A,this._buffer.positions[N+2]=this._depth-S,this._buffer.normals[N+0]=w*f,this._buffer.normals[N+1]=y*f,this._buffer.normals[N+2]=m,this._buffer.uvs[C+0]=b,this._buffer.uvs[C+1]=D,this._buffer.positions[N+3]=v,this._buffer.positions[N+4]=A,this._buffer.positions[N+5]=S,this._buffer.normals[N+3]=w*f,this._buffer.normals[N+4]=y*f,this._buffer.normals[N+5]=-m,this._buffer.uvs[C+2]=D,this._buffer.uvs[C+3]=b,u||(L+=2,N+=6,C+=4,k.topP=L+0,k.bottomP=L+1,this._buffer.positions[N+0]=v,this._buffer.positions[N+1]=A,this._buffer.positions[N+2]=this._depth-S,this._buffer.normals[N+0]=I*f,this._buffer.normals[N+1]=T*f,this._buffer.normals[N+2]=m,this._buffer.uvs[C+0]=b,this._buffer.uvs[C+1]=D,this._buffer.positions[N+3]=v,this._buffer.positions[N+4]=A,this._buffer.positions[N+5]=S,this._buffer.normals[N+3]=I*f,this._buffer.normals[N+4]=T*f,this._buffer.normals[N+5]=-m,this._buffer.uvs[C+2]=D,this._buffer.uvs[C+3]=b),this.vertexCache[s]=k,k}clone(){let e=new mn(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=qn(this.userData),e}};var xt=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),s=n.shape??t?.shape,l=s?.roundness??e.roundness;s!==void 0&&(s instanceof Ae?(s.width!==r||s.height!==o)&&s.applySize(r,o):s=new Ae(r,o).fromJSON(s),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&s.update(!1));let c=s??new Ae(r,o);return{parameters:Object.assign(e,{width:r,height:o,depth:i,roundness:l}),shape:c}}static build(n){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:r,subdivisions:o,roundness:i}=n.parameters;n.shape.roundness=i;let s;return t<=0?s=new fn(n.shape,o):s=new mn(n.shape,t,e,o,r),Object.assign(s,{userData:{...n,type:"VectorGeometry"}})}};var gn=require("three"),of=Math.PI*2,nf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof Ae?n.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,angle:o,innerRadius:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p=n.shape,a=t*.5,u=e*.5,d=Gb(p,a,u,o*Math.PI/180,r,i);p.isClosed=!0,p.update();let f=xt.create({shape:p,parameters:{subdivisions:d,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(f,{userData:{...n,type:"EllipseGeometry"}})}};function Gb(n,t,e,r,o,i){if(r>=of)return o>30||o%4===0?(Vb(n,t,e,i),Math.round(o/4)):rf(n,r,o,t,e,i);let s={x:0,y:e},l=r+Math.PI*.5,c={x:Math.cos(l)*t,y:Math.sin(l)*e},p=Zd({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?Rb(n,s.x,s.y,p,o,t,e,i):rf(n,r,o,t,e,i)}function Rb(n,t,e,r,o,i,s,l){let c=Math.round(o/r.length);n.addPoint(hn(t,e));for(let p=0,a=r.length;p<a;p++){let u=r[p],d=n.points[p],f=hn(u.x,u.y);d.controls[1].position.set(u.x1,u.y1),f.controls[0].position.set(u.x2,u.y2),n.addPoint(f)}return l>0?sf(n,i,s,l):n.addPoint(hn(0,0)),c}function rf(n,t,e,r,o,i){let s=-t/e;for(let l=0;l<=e;l++){let c=s*l,p=Math.sin(c)*r,a=Math.cos(c)*o;n.addPoint(hn(p,a))}return t<of?i>0?sf(n,r,o,i):n.addPoint(hn(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&af(n,r,o,i)),1}function Vb(n,t,e,r=0,o=0,i=0){let s=.5522847498,l=t*s,c=e*s;n.addPoint(na(o-t,i,o-t,i-c,o-t,i+c)),n.addPoint(na(o,i+e,o-l,i+e,o+l,i+e)),n.addPoint(na(o+t,i,o+t,i+c,o+t,i-c)),n.addPoint(na(o,i-e,o+l,i-e,o-l,i-e)),r>0&&af(n,t,e,r)}function hn(n,t){return new Yt(gn.MathUtils.generateUUID(),new gn.Vector2(n,t))}function na(n,t,e,r,o,i){let s=hn(n,t);return s.controls[0].position.set(e,r),s.controls[1].position.set(o,i),s}function sf(n,t,e,r){lf(n,t,e,r).forEach(i=>n.addPoint(i))}function af(n,t,e,r){let o=lf(n,t,e,r),i=new Ae;o.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function lf(n,t,e,r){let o=r*t/100,i=o*(Math.abs(e)/Math.abs(t)),s=new gn.Vector2(o/t,i/e),l=n.points.map(c=>{let p=c.clone();return p.uuid=gn.MathUtils.generateUUID(),p}).reverse();return l.forEach(c=>{c.position.multiply(s);let p=c.controls[0].position.clone().multiply(s),a=c.controls[1].position.clone().multiply(s);c.controls[0].position.copy(a),c.controls[1].position.copy(p)}),l}var Rr=require("three"),cf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??r),i=Math.abs(e.depth??r),s=Math.abs(Math.min(r,i))/2;return{parameters:Object.assign(e,{width:r,height:o,depth:i,radius:s,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(n){let{width:t,height:e,depth:r,radius:o,revolutions:i,segments:s,pathRadius:l,pathType:c,pathSegments:p,cornerRadius:a,cornerSegments:u}=n.parameters,d=new ci(!1,t,e,r,o,i,s,l,c,p,a,u);return Object.assign(d,{userData:{...n,type:"HelixGeometry"}})}},ci=class extends Rr.BufferGeometry{constructor(t=!0,e=1,r=1,o=1,i=1,s=1,l=1,c=1,p=1,a=1,u=1,d=1){super();let f=t&&s===1;f&&(d=0),u>100&&(u=100);let m=()=>new Rr.Vector3,h=new Rr.Vector3,g=m(),x=m(),v=m(),A,S,b,D,w,y,I,T,L=m(),N=m(),C=m(),k=m(),W=m(),ne=m(),ue=m(),se=m(),K=r-2*c+.001,U=K/s,V=Math.ceil(l*s),E=V+1,B=K/V,O=-K/2,G=a+1,Z=2*Math.PI/a,j=Math.PI/2/d,F=.01,z=Math.min((1-u/100)*c,c-F),M=c-z,q=0,J=2,ee=d*J+J,H=G*ee/J,Q=H+G*E,$=G*(E+ee),[re,ce,ie]=[3,3,2].map(je=>Array($*je).fill(0)),me=[],Re=i-c;function ge(je,Mt){let nr=Math.PI/2;y=Mt*B,T=2*Math.PI*(y%U)/U+nr,y+=O,I=Math.sin(T)*Re,w=Math.cos(T)*Re,t?je.set(w,I,y):je.set(w,y,I)}ge(h,-1e-10),ge(g,0),L.copy(h),ge(h,1);let $e=h.distanceTo(g),Te=M+z,St=$e*V+2*Te,Vt=z,Do=St-Te;for(let je=0;je<=V;je++){ge(x,je),se.subVectors(x,L).normalize(),L.copy(x),ne.copy(x).setComponent(+t+1,0).normalize(),ue.crossVectors(se,ne).normalize();let Mt=je===0,nr=je===V,Zm=Mt?3*Math.PI/2:j,Qm=Mt?Vt:Do,Jm=Mt?G:Q,eh=Mt?0:$-G,th=se.clone().multiplyScalar(Mt?-M:M).add(x),rh=se.clone().multiplyScalar(Mt?-1:1).normalize();for(let Ir=0;Ir<G;Ir++){let _c=Ir*Z;if(N.addVectors(h.copy(ne).multiplyScalar(c*Math.cos(_c)),g.copy(ue).multiplyScalar(c*Math.sin(_c))),C.copy(N).normalize(),Mt||nr){f||(q=eh+Ir,[0,1,2].forEach(wt=>{re[q*3+wt]=th.getComponent(wt),ce[q*3+wt]=rh.getComponent(wt)}),ie[q*2]=+nr,ie[q*2+1]=Ir/a),g.copy(C).multiplyScalar(z),v.addVectors(x,g);for(let wt=0;wt<d;wt++){let Ua=wt*j+Zm;k.addVectors(h.copy(se).multiplyScalar(M*Math.sin(Ua)),g.copy(C).multiplyScalar(M*Math.cos(Ua))),W.copy(k).normalize(),g.addVectors(v,k),k.normalize(),q=Jm+wt*G+Ir,[0,1,2].forEach(Yi=>{re[q*3+Yi]=g.getComponent(Yi),ce[q*3+Yi]=W.getComponent(Yi)});let oh=+Mt+Math.sin(Ua);ie[q*2]=(Qm+M*oh)/St,ie[q*2+1]=Ir/a}}g.addVectors(x,N),q=H+je*G+Ir,[0,1,2].forEach(wt=>{re[q*3+wt]=g.getComponent(wt),ce[q*3+wt]=C.getComponent(wt)}),ie[q*2]=(Te+je*$e)/St,ie[q*2+1]=Ir/a}}let Ot=E+2*d+J,Bo=1,[$i,Xi]=f?[Bo,Bo+E-1]:[0,Ot-1];for(let je=$i;je<=Xi-1;je++){let Mt=f&&je===Xi-1;for(let nr=0;nr<G-1;nr++)A=je*G+nr,S=A+1,b=(Mt?nr:A)+G,D=(Mt?nr+1:S)+G,je===0?me.push(S,D,b):je===Ot-2?me.push(A,S,b):me.push(A,S,b,S,D,b)}this.setIndex(me),this.setAttribute("position",new Rr.Float32BufferAttribute(re,3)),this.setAttribute("normal",new Rr.Float32BufferAttribute(ce,3)),this.setAttribute("uv",new Rr.Float32BufferAttribute(ie,2))}};var uf=require("three");var pf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new ui(t*.5,i,s):new uf.IcosahedronBufferGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"IcosahedronGeometry"}})}},ui=class extends eo{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=[-1,o,0,1,o,0,-1,-o,0,1,-o,0,0,-1,o,0,1,o,0,-1,-o,0,1,-o,o,0,-1,o,0,1,-o,0,-1,-o,0,1],s=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],l="IcosahedronGeometry";super(i,s,l,t,e,r),this.type=l}static fromJSON(t){return new ui(t.radius,t.corner,t.cornerSides)}};var ia=require("three"),df=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){(n.parameters?.points??[]).forEach(r=>{Array.isArray(r)&&(r.x=r[0],r.y=r[1])});let e=Object.assign({},t?.parameters??{width:100,segments:64,verticalSegments:64,points:[{x:0,y:-50,id:0},{x:50,y:-50,id:1},{x:50,y:50,id:2},{x:0,y:50,id:3}]},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{points:t,segments:e,verticalSegments:r}=n.parameters,o=new ia.Shape;o.moveTo(t[0].x,t[0].y),o.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let i=new ia.LatheBufferGeometry(o.extractPoints(r).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};var fr=require("three");var Vr=require("three");var oe=require("three"),dr=new oe.Matrix4,Ol=new oe.Object3D,sa=new oe.Vector3,ro=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 i=this.faces[r];i.normal.applyMatrix3(e).normalize();for(let s=0,l=i.vertexNormals.length;s<l;s++)i.vertexNormals[s].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return dr.makeRotationX(t),this.applyMatrix4(dr),this}rotateY(t){return dr.makeRotationY(t),this.applyMatrix4(dr),this}rotateZ(t){return dr.makeRotationZ(t),this.applyMatrix4(dr),this}translate(t,e,r){return dr.makeTranslation(t,e,r),this.applyMatrix4(dr),this}scale(t,e,r){return dr.makeScale(t,e,r),this.applyMatrix4(dr),this}lookAt(t){return Ol.lookAt(t),Ol.updateMatrix(),this.applyMatrix4(Ol.matrix),this}fromBufferGeometry(t){let e=this,r=t.index!==null?t.index:void 0,o=t.attributes;if(o.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let i=o.position,s=o.normal,l=o.color,c=o.uv,p=o.uv2;p!==void 0&&(this.faceVertexUvs[1]=[]);for(let d=0;d<i.count;d++)e.vertices.push(new oe.Vector3().fromBufferAttribute(i,d)),l!==void 0&&e.colors.push(new oe.Color().fromBufferAttribute(l,d));function a(d,f,m,h){let g=l===void 0?[]:[e.colors[d].clone(),e.colors[f].clone(),e.colors[m].clone()],x=s===void 0?[]:[new oe.Vector3().fromBufferAttribute(s,d),new oe.Vector3().fromBufferAttribute(s,f),new oe.Vector3().fromBufferAttribute(s,m)],v=new yn(d,f,m,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,f),new oe.Vector2().fromBufferAttribute(c,m)]),p!==void 0&&e.faceVertexUvs[1].push([new oe.Vector2().fromBufferAttribute(p,d),new oe.Vector2().fromBufferAttribute(p,f),new oe.Vector2().fromBufferAttribute(p,m)])}let u=t.groups;if(u.length>0)for(let d=0;d<u.length;d++){let f=u[d],m=f.start,h=f.count;for(let g=m,x=m+h;g<x;g+=3)r!==void 0?a(r.getX(g),r.getX(g+1),r.getX(g+2),f.materialIndex):a(g,g+1,g+2,f.materialIndex)}else if(r!==void 0)for(let d=0;d<r.count;d+=3)a(r.getX(d),r.getX(d+1),r.getX(d+2));else for(let d=0;d<i.count;d+=3)a(d,d+1,d+2);return this.computeFaceNormals(),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(sa).negate(),this.translate(sa.x,sa.y,sa.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 i=this.faces[r],s=this.vertices[i.a],l=this.vertices[i.b],c=this.vertices[i.c];t.subVectors(c,l),e.subVectors(s,l),t.cross(e),t.normalize(),i.normal.copy(t)}}computeVertexNormals(t=!0){let e=new Array(this.vertices.length);for(let r=0,o=this.vertices.length;r<o;r++)e[r]=new oe.Vector3;if(t){let r=new oe.Vector3,o=new oe.Vector3;for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=this.vertices[l.a],p=this.vertices[l.b],a=this.vertices[l.c];r.subVectors(a,p),o.subVectors(c,p),r.cross(o),e[l.a].add(r),e[l.b].add(r),e[l.c].add(r)}}else{this.computeFaceNormals();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];e[i.a].add(i.normal),e[i.b].add(i.normal),e[i.c].add(i.normal)}}for(let r=0,o=this.vertices.length;r<o;r++)e[r].normalize();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],s=i.vertexNormals;s.length===3?(s[0].copy(e[i.a]),s[1].copy(e[i.b]),s[2].copy(e[i.c])):(s[0]=e[i.a].clone(),s[1]=e[i.b].clone(),s[2]=e[i.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let t=0,e=this.faces.length;t<e;t++){let r=this.faces[t],o=r.vertexNormals;o.length===3?(o[0].copy(r.normal),o[1].copy(r.normal),o[2].copy(r.normal)):(o[0]=r.normal.clone(),o[1]=r.normal.clone(),o[2]=r.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.__originalFaceNormal?o.__originalFaceNormal.copy(o.normal):o.__originalFaceNormal=o.normal.clone(),o.__originalVertexNormals||(o.__originalVertexNormals=[]);for(let i=0,s=o.vertexNormals.length;i<s;i++)o.__originalVertexNormals[i]?o.__originalVertexNormals[i].copy(o.vertexNormals[i]):o.__originalVertexNormals[i]=o.vertexNormals[i].clone()}let t=new ro;t.faces=this.faces;for(let e=0,r=this.morphTargets.length;e<r;e++){if(!this.morphNormals[e]){this.morphNormals[e]={},this.morphNormals[e].faceNormals=[],this.morphNormals[e].vertexNormals=[];let i=this.morphNormals[e].faceNormals,s=this.morphNormals[e].vertexNormals;for(let l=0,c=this.faces.length;l<c;l++){let p=new oe.Vector3,a={a:new oe.Vector3,b:new oe.Vector3,c:new oe.Vector3};i.push(p),s.push(a)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=o.faceNormals[i],p=o.vertexNormals[i];c.copy(l.normal),p.a.copy(l.vertexNormals[0]),p.b.copy(l.vertexNormals[1]),p.c.copy(l.vertexNormals[2])}}for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.normal=o.__originalFaceNormal,o.vertexNormals=o.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new 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,i=this.vertices.length,s=this.vertices,l=t.vertices,c=this.faces,p=t.faces,a=this.colors,u=t.colors;e!==void 0&&(o=new oe.Matrix3().getNormalMatrix(e));for(let d=0,f=l.length;d<f;d++){let h=l[d].clone();e!==void 0&&h.applyMatrix4(e),s.push(h)}for(let d=0,f=u.length;d<f;d++)a.push(u[d].clone());for(let d=0,f=p.length;d<f;d++){let m=p[d],h,g,x=m.vertexNormals,v=m.vertexColors,A=new yn(m.a+i,m.b+i,m.c+i);A.normal.copy(m.normal),o!==void 0&&A.normal.applyMatrix3(o).normalize();for(let S=0,b=x.length;S<b;S++)h=x[S].clone(),o!==void 0&&h.applyMatrix3(o).normalize(),A.vertexNormals.push(h);A.color.copy(m.color);for(let S=0,b=v.length;S<b;S++)g=v[S],A.vertexColors.push(g.clone());A.materialIndex=m.materialIndex+r,c.push(A)}for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let x=m[h],v=[];for(let A=0,S=x.length;A<S;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=[],i=Math.pow(10,t);for(let c=0,p=this.vertices.length;c<p;c++){let a=this.vertices[c],u=Math.round(a.x*i)+"_"+Math.round(a.y*i)+"_"+Math.round(a.z*i);e[u]===void 0?(e[u]=c,r.push(this.vertices[c]),o[c]=r.length-1):o[c]=o[e[u]]}let s=[];for(let c=0,p=this.faces.length;c<p;c++){let a=this.faces[c];a.a=o[a.a],a.b=o[a.b],a.c=o[a.c];let u=[a.a,a.b,a.c];for(let d=0;d<3;d++)if(u[d]===u[(d+1)%3]){s.push(c);break}}for(let c=s.length-1;c>=0;c--){let p=s[c];this.faces.splice(p,1);for(let a=0,u=this.faceVertexUvs.length;a<u;a++)this.faceVertexUvs[a].splice(p,1)}let l=this.vertices.length-r.length;return this.vertices=r,l}setFromPoints(t){this.vertices=[];for(let e=0,r=t.length;e<r;e++){let o=t[e];this.vertices.push(new 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],i=this.faceVertexUvs[1],s,l;o&&o.length===e&&(s=[]),i&&i.length===e&&(l=[]);for(let c=0;c<e;c++){let p=t[c]._id;s&&s.push(o[p]),l&&l.push(i[p])}s&&(this.faceVertexUvs[0]=s),l&&(this.faceVertexUvs[1]=l)}toJSON(){let t={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,this.name!==""&&(t.name=this.name),this.parameters!==void 0){let m=this.parameters;for(let h in m)m[h]!==void 0&&(t[h]=m[h]);return t}let e=[];for(let m=0;m<this.vertices.length;m++){let h=this.vertices[m];e.push(h.x,h.y,h.z)}let r=[],o=[],i={},s=[],l={},c=[],p={};for(let m=0;m<this.faces.length;m++){let h=this.faces[m],g=!0,x=!1,v=this.faceVertexUvs[0][m]!==void 0,A=h.normal.length()>0,S=h.vertexNormals.length>0,b=h.color.r!==1||h.color.g!==1||h.color.b!==1,D=h.vertexColors.length>0,w=0;if(w=a(w,0,0),w=a(w,1,g),w=a(w,2,x),w=a(w,3,v),w=a(w,4,A),w=a(w,5,S),w=a(w,6,b),w=a(w,7,D),r.push(w),r.push(h.a,h.b,h.c),r.push(h.materialIndex),v){let y=this.faceVertexUvs[0][m];r.push(f(y[0]),f(y[1]),f(y[2]))}if(A&&r.push(u(h.normal)),S){let y=h.vertexNormals;r.push(u(y[0]),u(y[1]),u(y[2]))}if(b&&r.push(d(h.color)),D){let y=h.vertexColors;r.push(d(y[0]),d(y[1]),d(y[2]))}}function a(m,h,g){return g?m|1<<h:m&~(1<<h)}function u(m){let h=m.x.toString()+m.y.toString()+m.z.toString();return i[h]!==void 0||(i[h]=o.length/3,o.push(m.x,m.y,m.z)),i[h]}function d(m){let h=m.r.toString()+m.g.toString()+m.b.toString();return l[h]!==void 0||(l[h]=s.length,s.push(m.getHex())),l[h]}function f(m){let h=m.x.toString()+m.y.toString();return p[h]!==void 0||(p[h]=c.length/2,c.push(m.x,m.y)),p[h]}return t.data={},t.data.vertices=e,t.data.normals=o,s.length>0&&(t.data.colors=s),c.length>0&&(t.data.uvs=[c]),t.data.faces=r,t}clone(){return new ro().copy(this)}copy(t){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;let e=t.vertices;for(let d=0,f=e.length;d<f;d++)this.vertices.push(e[d].clone());let r=t.colors;for(let d=0,f=r.length;d<f;d++)this.colors.push(r[d].clone());let o=t.faces;for(let d=0,f=o.length;d<f;d++)this.faces.push(o[d].clone());for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let x=m[h],v=[];for(let A=0,S=x.length;A<S;A++){let b=x[A];v.push(b.clone())}this.faceVertexUvs[d].push(v)}}let i=t.morphTargets;for(let d=0,f=i.length;d<f;d++){let m={};if(m.name=i[d].name,i[d].vertices!==void 0){m.vertices=[];for(let h=0,g=i[d].vertices.length;h<g;h++)m.vertices.push(i[d].vertices[h].clone())}if(i[d].normals!==void 0){m.normals=[];for(let h=0,g=i[d].normals.length;h<g;h++)m.normals.push(i[d].normals[h].clone())}this.morphTargets.push(m)}let s=t.morphNormals;for(let d=0,f=s.length;d<f;d++){let m={};if(s[d].vertexNormals!==void 0){m.vertexNormals=[];for(let h=0,g=s[d].vertexNormals.length;h<g;h++){let x=s[d].vertexNormals[h],v={};v.a=x.a.clone(),v.b=x.b.clone(),v.c=x.c.clone(),m.vertexNormals.push(v)}}if(s[d].faceNormals!==void 0){m.faceNormals=[];for(let h=0,g=s[d].faceNormals.length;h<g;h++)m.faceNormals.push(s[d].faceNormals[h].clone())}this.morphNormals.push(m)}let l=t.skinWeights;for(let d=0,f=l.length;d<f;d++)this.skinWeights.push(l[d].clone());let c=t.skinIndices;for(let d=0,f=c.length;d<f;d++)this.skinIndices.push(c[d].clone());let p=t.lineDistances;for(let d=0,f=p.length;d<f;d++)this.lineDistances.push(p[d]);let a=t.boundingBox;a!==null&&(this.boundingBox=a.clone());let u=t.boundingSphere;return u!==null&&(this.boundingSphere=u.clone()),this.elementsNeedUpdate=t.elementsNeedUpdate,this.verticesNeedUpdate=t.verticesNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.lineDistancesNeedUpdate=t.lineDistancesNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this}toBufferGeometry(){let t=new Ml().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 i=[],s=t.morphTargets[o];for(let l=0,c=s.length;l<c;l++){let p=s[l],a=new oe.Float32BufferAttribute(p.data.length*3,3);a.name=p.name,i.push(a.copyVector3sArray(p.data))}e.morphAttributes[o]=i}if(t.skinIndices.length>0){let o=new 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),i=new oe.Float32BufferAttribute(r.colors.length*3,3);if(e.setAttribute("position",o.copyVector3sArray(r.vertices)),e.setAttribute("color",i.copyColorsArray(r.colors)),r.lineDistances&&r.lineDistances.length===r.vertices.length){let s=new 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}};ro.prototype.isGeometry=!0;var Ml=class{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(t){let e=[],r,o,i,s=t.faces;for(o=0;o<s.length;o++){let l=s[o];l.materialIndex!==i&&(i=l.materialIndex,r!==void 0&&(r.count=o*3-r.start,e.push(r)),r={start:o*3,materialIndex:i})}r!==void 0&&(r.count=o*3-r.start,e.push(r)),this.groups=e}fromGeometry(t){let e=t.faces,r=t.vertices,o=t.faceVertexUvs,i=o[0]&&o[0].length>0,s=o[1]&&o[1].length>0,l=t.morphTargets,c=l.length,p;if(c>0){p=[];for(let x=0;x<c;x++)p[x]={name:l[x].name,data:[]};this.morphTargets.position=p}let a=t.morphNormals,u=a.length,d;if(u>0){d=[];for(let x=0;x<u;x++)d[x]={name:a[x].name,data:[]};this.morphTargets.normal=d}let f=t.skinIndices,m=t.skinWeights,h=f.length===r.length,g=m.length===r.length;r.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let 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 S=v.vertexColors;if(S.length===3)this.colors.push(S[0],S[1],S[2]);else{let b=v.color;this.colors.push(b,b,b)}if(i===!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=l[b].vertices;p[b].data.push(D[v.a],D[v.b],D[v.c])}for(let b=0;b<u;b++){let D=a[b].vertexNormals[x];d[b].data.push(D.a,D.b,D.c)}h&&this.skinIndices.push(f[v.a],f[v.b],f[v.c]),g&&this.skinWeights.push(m[v.a],m[v.b],m[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}},yn=class{constructor(t,e,r,o,i,s=0){this.a=t,this.b=e,this.c=r,this.normal=o&&o.isVector3?o:new oe.Vector3,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new oe.Color,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=s}clone(){return new this.constructor().copy(this)}copy(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(let e=0,r=t.vertexNormals.length;e<r;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,r=t.vertexColors.length;e<r;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}};var Fb=["a","b","c"];function zb(n,t){switch(t){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function Dl(n,t,e){let r=Math.min(n,t),o=Math.max(n,t),i=r+"_"+o;return e.get(i)}function Bl(n,t,e,r,o,i){let s=Math.min(n,t),l=Math.max(n,t),c=s+"_"+l,p;if(r.has(c))p=r.get(c);else{let a=e[s],u=e[l];p={a,b:u,newEdge:null,faces:[]},r.set(c,p)}p.faces.push(o),i[n].edges.push(p),i[t].edges.push(p)}function Ub(n,t,e,r){let o,i,s;for(o=0,i=n.length;o<i;o++)e[o]={edges:[]};for(o=0,i=t.length;o<i;o++)s=t[o],Bl(s.a,s.b,n,r,s,e),Bl(s.b,s.c,n,r,s,e),Bl(s.c,s.a,n,r,s,e)}function aa(n,t,e,r,o){n.push(new yn(t,e,r,void 0,void 0,o))}function xn(n,t){return Math.abs(t-n)/2+Math.min(n,t)}function la(n,t,e,r){n.push([t.clone(),e.clone(),r.clone()])}var ca=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof Vr.BufferGeometry?t=new ro().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 Vr.Vector3,r,o,i,s,l,c=t.vertices,p=t.faces,a=t.faceVertexUvs[0],u=a!==void 0&&a.length>0,d=[],f=new Map;Ub(c,p,d,f);let m=[],h,g,x,v,A,S,b;for(let F of Array.from(f.keys())){for(g=f.get(F),x=new Vr.Vector3,A=3/8,S=1/8,b=g.faces.length,b!=2&&(A=.5,S=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],l=0;l<3&&(h=c[zb(v,Fb[l])],!(h!==g.a&&h!==g.b));l++);h&&e.add(h)}e.multiplyScalar(S),x.add(e),g.newEdge=m.length,m.push(x)}let D,w,y,I,T,L,N,C=[];for(o=0,i=c.length;o<i;o++){for(L=c[o],T=d[o].edges,r=T.length,r==3?D=3/16:r>3&&(D=3/(8*r)),w=1-r*Number(D),y=D,r<=2&&(r==2?(w=3/4,y=1/8):r==1||r==0),N=L.clone().multiplyScalar(w),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)),N.add(e),C.push(N)}let k=C.concat(m),W=C.length,ne,ue,se,K=[],U=[],V,E,B,O,G=new Vr.Vector2,Z=new Vr.Vector2,j=new Vr.Vector2;for(o=0,i=p.length;o<i;o++)v=p[o],ne=Number(Dl(v.a,v.b,f).newEdge)+W,ue=Number(Dl(v.b,v.c,f).newEdge)+W,se=Number(Dl(v.c,v.a,f).newEdge)+W,aa(K,ne,ue,se,v.materialIndex),aa(K,v.a,ne,se,v.materialIndex),aa(K,v.b,ue,ne,v.materialIndex),aa(K,v.c,se,ue,v.materialIndex),u&&(V=a[o],E=V[0],B=V[1],O=V[2],G.set(xn(E.x,B.x),xn(E.y,B.y)),Z.set(xn(B.x,O.x),xn(B.y,O.y)),j.set(xn(E.x,O.x),xn(E.y,O.y)),la(U,G,Z,j),la(U,E,G,j),la(U,B,Z,G),la(U,O,j,Z));t.vertices=k,t.faces=K,u&&(t.faceVertexUvs[0]=U)}};var tt=new fr.Vector3,ff=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=n.geometry??t?.geometry??new fr.BufferGeometry().copy(new fr.BoxBufferGeometry(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(tt),r={width:tt.x,height:tt.y,depth:tt.z,subdivisions:0}):r=t.parameters;let o={...r,...n.parameters};return{parameters:{width:Math.abs(o.width),height:Math.abs(o.height),depth:Math.abs(o.depth),subdivisions:Math.abs(o.subdivisions)},geometry:e}}static build(n){let{width:t,height:e,depth:r,subdivisions:o}=n.parameters,i=n.geometry??new fr.BufferGeometry().copy(new fr.BoxBufferGeometry(100,100,100)),s=i.userData.parameters;s===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(tt)):tt.set(s.width,s.height,s.depth),(t!==tt.x||e!==tt.y||r!==tt.z)&&i.scale(tt.x===0?1:t/tt.x,tt.y===0?1:e/tt.y,tt.z===0?1:r/tt.z);let l=i.originalGeometry;return o>0?(l===void 0||s?.subdivisions!==o)&&(l===void 0&&(l=i),i=new ca(o).modify(l).toBufferGeometry()):(l!==void 0&&(i=l),l=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()),l!==void 0&&Object.assign(i,{originalGeometry:l}),delete n.geometry,Object.assign(i,{userData:{...n,type:"NonParametricGeometry"}})}static loadFromUrl(n,t,e){new fr.BufferGeometryLoader(e).load(n,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(tt);let s=100/tt.x;Object.assign(i.parameters,{width:100,height:tt.y*s,depth:tt.z*s}),t(this.build(i))})}};var mf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},n.parameters);return{shape:n.shape&&n.shape instanceof Ae?n.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,cornerRadius:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5,u=0,d=0,f=2*Math.PI/r;for(let h=0;h<r;h++){let g=f*h,x=u+Math.sin(g)*p,v=d+Math.cos(g)*a;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 m=xt.create({shape:c,parameters:{roundness:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(m,{userData:{...n,type:"PolygonGeometry"}})}};var ve=require("three"),hf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,heightSegments:i,openEnded:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=new Gl(t*.5,e,o,i,s,l,c);return p.scale(1,1,r/t),Object.assign(p,{userData:{...n,type:"PyramidGeometry"}})}};function pi(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function El(n,t,e,r,o,i){let s=t.clone().sub(n),l=e.clone().sub(n),c=s.angleTo(l);if(s.normalize(),l.normalize(),r===o){let p=s.add(l).normalize();i.copy(n).addScaledVector(p,r/Math.sin(c/2))}else{let p=s.angleTo(l);i.copy(n),i.addScaledVector(s,o/Math.sin(p)),i.addScaledVector(l,r/Math.sin(p))}}function jb(n,t,e){let r=n.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var Gl=class extends ve.BufferGeometry{constructor(t=.5,e=1,r=4,o=1,i=!1,s=0,l=4){super(),r=Math.floor(Math.max(3,r)),o=Math.floor(o),l=Math.floor(l);let c=[],p=[],a=[],u=[],d=0,f=e/2,m=Math.PI/r,h=t*Math.cos(Math.PI/r),g=2*Math.PI/r,x=(r-2)*Math.PI/r,v=Math.PI-x,A=new ve.Vector3(0,-f,0),S=new ve.Vector3(0,f,0),b=new ve.Vector2(t,-f),D=new ve.Vector2(h,-f),w=new ve.Vector2(0,S.y).sub(D),y=new ve.Vector2(0,S.y).sub(b),I=new ve.Vector2(w.y,-w.x).normalize(),T=new ve.Vector2(y.y,-y.x).normalize(),N=t*Math.cos(Math.PI/r)*Math.tan((Math.PI-w.angle())/2)-1e-8;s=Math.min(s,N);let C;{let U=new ve.Vector3(I.x,I.y,0),V=new ve.Vector3(Math.cos(g)*U.x,U.y,Math.sin(g)*U.x);C=U.angleTo(V)}let k=s/Math.tan((Math.PI-w.angle())/2),W=s/Math.tan((Math.PI-C)/2),ne=new ve.Vector3;if(!i){p.push(A.x,A.y,A.z),a.push(0,-1,0),u.push(0,0);let U=d++,V=[],E=b.clone(),B=k/Math.cos(Math.PI/r);E.x-=B;for(let O=0;O<r;O++){let G=O/r*Math.PI*2+m,Z=new ve.Vector2(Math.sin(G),Math.cos(G));pi(E,Z,ne),p.push(ne.x,ne.y,ne.z),a.push(0,-1,0),u.push(0,0),V.push(d++)}for(let O=0;O<V.length;O++)c.push(V[O],U,V[(O+1)%V.length])}let ue=[];{let U=new ve.Vector3,V=new ve.Vector3,E=new ve.Vector3,B=new ve.Vector3,O=new ve.Vector3,G=new ve.Vector3;for(let Z=0;Z<r;Z++){let j=Z/r*Math.PI*2+m,F=(Z+.5)/r*Math.PI*2+m,z=(Z+1)/r*Math.PI*2+m,M=new ve.Vector2(Math.sin(j),Math.cos(j)),q=new ve.Vector2(Math.sin(F),Math.cos(F)),J=new ve.Vector2(Math.sin(z),Math.cos(z));pi(b,M,V),pi(b,J,E),pi(I,q,U),El(S,V,E,W,W,B),p.push(B.x,B.y,B.z),El(V,S,E,W,k,O),p.push(O.x,O.y,O.z),El(E,V,S,k,W,G),p.push(G.x,G.y,G.z),a.push(U.x,U.y,U.z),a.push(U.x,U.y,U.z),a.push(U.x,U.y,U.z),u.push(0,0),u.push(0,0),u.push(0,0);let ee=d++,H=d++,Q=d++;if(c.push(ee,H,Q),s>0){{let ce=V.clone().add(E).multiplyScalar(.5),ie=S.clone().sub(ce).normalize(),Re=A.clone().sub(ce).normalize().add(ie).normalize().multiplyScalar(-1),ge=G.clone().sub(O);se(ce,ge,Re,w.angle())}let $,re;{let ce=new ve.Vector3;pi(T,J,ce);let ie=G.clone().add(B).multiplyScalar(.5);ie=jb(ie,E,S);let me=G.clone().sub(B);[$,re]=se(ie,me,ce,C,B.y)}{let ce=$,ie=ce.clone().setY(0).normalize(),me=new ve.Vector3(0,-1,0),Re=ie.clone().cross(me);K(ce,ie,me,Re)}ue.concat(re);{let ce=w.angle(),ie=Math.PI-ce,me=S.clone();me.y-=s/Math.sin(ce-Math.PI/2);let Re=new ve.Vector3,ge=[];for(let Te=0;Te<l;Te++){let St=[],Vt=Math.PI/2-ie*Te/l,Do=Math.cos(Vt),Ot=Math.sin(Vt),Bo=F;for(let $i=0;$i<=Te;$i++){let Xi=Math.cos(Bo),je=Math.sin(Bo);U.x=Do*je,U.y=Ot,U.z=Do*Xi,Re.copy(me).addScaledVector(U,s),p.push(Re.x,Re.y,Re.z),a.push(U.x,U.y,U.z),u.push(0,0),St.push(d++),Bo+=Math.PI*2/Te/r}ge.push(St)}re.reverse(),ge.push(re);let $e=ge.length-1;for(let Te=0;Te<$e;Te++){let St=ge[Te],Vt=ge[Te+1],Do=St.length-1;c.push(Vt[1],St[0],Vt[0]);for(let Ot=1;Ot<=Do;Ot++)c.push(St[Ot],St[Ot-1],Vt[Ot]),c.push(Vt[Ot+1],St[Ot],Vt[Ot])}}}}}this.setIndex(c),this.setAttribute("position",new ve.Float32BufferAttribute(p,3)),this.setAttribute("normal",new ve.Float32BufferAttribute(a,3)),this.setAttribute("uv",new ve.Float32BufferAttribute(u,2));function se(U,V,E,B,O){let G=-B/2,Z=(Math.PI-B)/2,j=V.clone().normalize().cross(E);U.addScaledVector(E,-s/Math.sin(Z));let F=new ve.Vector3,z=new ve.Vector3,M=1,q=d,J=[];for(let ee=0;ee<=l;ee++){let H=G+ee/l*B;z.set(0,0,0),z.addScaledVector(j,Math.sin(H)),z.addScaledVector(E,Math.cos(H));for(let Q=0;Q<=M;Q++){let $=Q/M-.5;if(F.copy(U),F.addScaledVector(V,$),F.addScaledVector(z,s),O!=null){let re=Math.max(0,F.y-O);F.addScaledVector(V,-re/V.y)}p.push(F.x,F.y,F.z),a.push(z.x,z.y,z.z),u.push(0,0),Q===0&&J.push(d),d++}}for(let ee=0;ee<l;ee++)for(let H=0;H<M;H++){let Q=q+H+(M+1)*ee,$=Q+(M+1),re=$+1,ce=Q+1;c.push(Q,$,ce),c.push($,re,ce)}return[U.clone().addScaledVector(V,.5),J]}function K(U,V,E,B){let O=Math.PI/2,G=y.angle()-O,Z=[],j=new ve.Vector3,F=new ve.Vector3;for(let M=0;M<=l;M++){let q=[],J=M/l;for(let ee=0;ee<=M;ee++){let Q=((M?ee/M:0)-.5)*v,$=Math.cos(Q),re=Math.sin(Q),ce=Math.atan(Math.tan(G)*$),ie=(O+ce)*J,me=Math.cos(ie),Re=Math.sin(ie);j.set(0,0,0),j.addScaledVector(V,Re*$),j.addScaledVector(E,me),j.addScaledVector(B,Re*re),F.copy(U).addScaledVector(j,s),p.push(F.x,F.y,F.z),a.push(j.x,j.y,j.z),u.push(0,0),q.push(d++)}Z.push(q)}let z=Z.length-1;for(let M=0;M<z;M++){let q=Z[M],J=Z[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 gf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters),r=Object.assign(t?.ui??{enabledIndieCorners:!1},n.ui);return{shape:n.shape&&n.shape instanceof Ae?n.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)}),ui:r}}static build(n){let t=n.shape,{width:e,height:r,cornerRadius:o,cornerType:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p={x:e*.5,y:r*.5},a={x:-p.x,y:-p.y},u={x:p.x,y:p.y};function d(S,b,D){return b>e&&D>r?Math.min(S*e/b,S*r/D):b>e?S*e/b:D>r?S*r/D:S}let f=[];f[0]=o[0]===0?0:d(o[0],o[0]+o[3],o[0]+o[1]),f[1]=o[1]===0?0:d(o[1],o[1]+o[2],o[1]+o[0]),f[2]=o[2]===0?0:d(o[2],o[2]+o[1],o[2]+o[3]),f[3]=o[3]===0?0:d(o[3],o[3]+o[0],o[3]+o[2]);let m=a.x,h=u.x,g=u.y,x=a.y;t.addPoint(t.createPoint(m,g)),t.addPoint(t.createPoint(h,g)),t.addPoint(t.createPoint(h,x)),t.addPoint(t.createPoint(m,x)),t.isClosed=!0;let v=!0;for(let S=0,b=t.points.length;S<b;S++)t.points[S].roundness=f[S],S>0&&f[S]!==f[S-1]&&(v=!1);v&&(t.roundness=f[0]),t.useCubicForRoundedCorners=i!==1,t.update();let A=xt.create({shape:t,parameters:{depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(A,{userData:{...n,type:"RectangleGeometry"}})}};var yf=require("three"),xf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t=100,height:e=t,depth:r=t,widthSegments:o=64,heightSegments:i=64,phiStart:s,phiLength:l,thetaStart:c,thetaLength:p}=n.parameters,a=new yf.SphereBufferGeometry(.5*t,o,i,s,l,c,p);return a.scale(1,e/t,r/t),Object.assign(a,{userData:{...n,type:"SphereGeometry"}})}};var vf=require("three"),bf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:0})}}static build(n){let{width:t=100,height:e=t,widthSegments:r=8,heightSegments:o=8}=n.parameters,i=new vf.PlaneBufferGeometry(t,e,r,o);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};var oo=require("three"),Sf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,angle:o,cornerRadius:i,cornerSegments:s}=n.parameters,l=new Rl(t,e,r,o,i,s);return Object.assign(l,{userData:{...n,type:"BackdropGeometry"}})}},Rl=class extends oo.BufferGeometry{constructor(t=1,e=1,r=1,o=90,i=10,s=24){super(),this.type="BackdropGeometry";let l=[],c=[],p=[],a=.001;i==0&&(s=1),s=Math.max(1,Math.floor(s)),i=Math.min(i,100),o=Math.min(180-a,o),o*=Math.PI/180;let u=[],d=Math.PI/2,f=(F=0,z=0,M=0)=>new oo.Vector3(F,z,M),m=f(),h=f(),[g,x,v]=[e/2,t/2,r/2],A=-x,S=+x,[b,D,w]=[f(A,-g,+v),f(A,-g,-v),f(A,+g,-v)],y=(F,z=!1)=>Math.sin(F-Math.PI/(1+ +z)),I=(F,z=!1)=>Math.cos(F-Math.PI/(1+ +z));w.y=Math.sin(o)*e-g;let T=Math.cos(o)*e-v,L=b.z-a;o<=d?(w.z=Math.min(T,L),w.z==L&&(w.y-=(T-L)/Math.tan(d-o))):D.z=Math.min(D.z-T-v,b.z-a),m.subVectors(b,D),h.subVectors(w,D);let N=Math.min(m.length(),h.length())*i/100,C=N*Math.tan(o/2),k=N/Math.cos(o/2),W=m.clone().normalize().add(h.normalize()).setLength(k).add(D);m.set(0,y(o,!0),I(o,!0)),u.push([w,m.clone()]);let ne=(Math.PI-o)/s;for(let F=0;F<=s;F++){let z=d+o+F*ne;m.set(0,Math.sin(z)*C,Math.cos(z)*C),m.add(W),h.set(0,y(z),I(z)),u.push([m.clone(),h.clone()])}u.push([b,f(0,1,0)]);let ue=Math.sin(ne/2)*C*2,se=u.length-1,K=u[0][0].distanceTo(u[1][0]),U=u[se-1][0].distanceTo(u[se][0]),V=K+ue*s+U;u[0].push(1);for(let F=0;F<=s;F++)u[F+1].push(1-(K+F*ue)/V);u[se].push(0);let[E,B,O]=u[0],G,Z,j;for(let F=1;F<u.length;F++)[G,Z,j]=u[F],l.push(A,E.y,E.z,A,G.y,G.z,S,E.y,E.z,S,E.y,E.z,A,G.y,G.z,S,G.y,G.z),c.push(0,B.y,B.z,0,Z.y,Z.z,0,B.y,B.z,0,B.y,B.z,0,Z.y,Z.z,0,Z.y,Z.z),p.push(0,O,0,j,1,O,1,O,0,j,1,j),[E,B,O]=[G,Z,j];this.setAttribute("position",new oo.Float32BufferAttribute(l,3)),this.setAttribute("normal",new oo.Float32BufferAttribute(c,3)),this.setAttribute("uv",new oo.Float32BufferAttribute(p,2))}};var wf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof Ae?n.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,innerRadiusPercent:r,spikes:o,cornerRadius:i,angle:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}=n.parameters,a=n.shape,u=t*.5,d=e*.5,f=0,m=0,h=s*Math.PI/360/o,g=Math.PI/2*3*-1,x=u*r/100,v=d*r/100;if(o===3&&r===50){h=2*Math.PI/o;for(let S=0;S<o;S++){let b=h*S,D=f+Math.sin(b)*u,w=m+Math.cos(b)*d;a.addPoint(a.createPoint(D,w))}}else for(let S=0;S<o;S++){let b=f+Math.cos(g)*u,D=m+Math.sin(g)*d;a.addPoint(a.createPoint(b,D)),g+=h,b=f+Math.cos(g)*x,D=m+Math.sin(g)*v,S<=o,a.addPoint(a.createPoint(b,D)),g+=h}a.isClosed=!0;for(let S=0,b=a.points.length;S<b;S++)a.points[S].roundness=i;a.roundness=i,a.update();let A=xt.create({shape:a,parameters:{roundness:i,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}});return Object.assign(A,{userData:{...n,type:"StarGeometry"}})}};var _f=require("three"),ua=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e}=n.parameters,r=new _f.PlaneBufferGeometry(t,e);return Object.assign(r,{userData:{...n,type:"TextFrameGeometry"}})}};var Tf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??e.width*.25);return{parameters:Object.assign(e,{width:r,height:o,depth:i})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,tubularSegments:i,arc:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=kb(t,e,r,t*.5,s,i,0,0,o,l,c);return p.scale(1,e/t,1),Object.assign(p,{userData:{...n,type:"TorusGeometry"}})}};function kb(n,t,e,r,o,i,s,l,c,p,a){return[t,e]=[e,t],s=t/2,o/=2*Math.PI,o==1&&(p=0),new ci(!0,n,t,e,r,o,i,s,l,c,p,a)}var Af=require("three"),Nf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),tube:e.tube??e.width*.125})}}static build(n){let{width:t,tube:e,tubularSegments:r,radialSegments:o,p:i,q:s}=n.parameters,l=t*.5;l!==e&&(l-=e);let c=new Af.TorusKnotBufferGeometry(l,e,r,o,i,s);return Object.assign(c,{userData:{...n,type:"TorusKnotGeometry"}})}};var Cf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},n.parameters);return{shape:n.shape&&n.shape instanceof Ae?n.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width*(e.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t=100,height:e,cornerRadius:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s,isRect:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5;l?(c.addPoint(c.createPoint(-p,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))):(c.addPoint(c.createPoint(0,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))),c.isClosed=!0;for(let d=0,f=c.points.length;d<f;d++)c.points[d].roundness=r;c.roundness=r,c.update();let u=xt.create({shape:c,parameters:{roundness:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s}});return Object.assign(u,{userData:{...n,type:"TriangleGeometry"}})}};var We=require("three");var Hb,pa=new Promise(n=>{Hb=n});var tm=require("three");var co=require("three");var Aa=require("three");var zl=require("three");var fa=require("three");var Vl=require("three");function Ke(n,t){return t.color(n)}var Fl=n=>"isEntity"in n,mr=n=>"isAbstractMesh"in n,hr=n=>n!==null&&n.objectType==="BooleanObject",Pf=n=>n.objectType==="CombinedCamera";var da=n=>"objectHelper"in n;function Wb(n,t){let e=!1;t.position&&(n.position.fromArray(t.position),e=!0),t.rotation&&(n.rotation.fromArray(t.rotation),e=!0),t.scale&&(e=!0,n.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&"hiddenMatrix"in n&&(e=!0,n.hiddenMatrix.fromArray(t.hiddenMatrix??Yr.identity)),e&&(n.updateMatrix(),hr(n.parent)&&mr(n)&&n.invalidateDownstreamBooleanData(!0).recomputeBoolean()),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&n.updateWorldMatrix(!1,!0),n.objectType==="CombinedCamera"&&(t.isUpVectorFlipped!==void 0&&(n.isUpVectorFlipped=t.isUpVectorFlipped),n.updateUp())}function qb(n,t){Wb(n,t),t.name!==void 0&&(n.name=t.name),t.visible!==void 0&&(n.visible=t.visible)}function Lf(n,t,e){qb(n,t),t.color!==void 0&&(n.color=Ke(t.color,e)),t.intensity!==void 0&&(n.intensity=t.intensity),t.shadows!==void 0&&!(n instanceof Vl.HemisphereLight)&&(n.castShadow=t.shadows),n.shadow&&!(n instanceof Vl.HemisphereLight)&&t.depth!==void 0&&(n.shadow.camera.far=t.depth,n.shadow.needsUpdate=!0)}function If(n,t){n.shadow.camera.right=t/2,n.shadow.camera.left=-t/2,n.shadow.camera.top=t/2,n.shadow.camera.bottom=-t/2,n.shadow.needsUpdate=!0}var ma=n=>class extends n{hasEntityChild(){return this.children.some(e=>Fl(e))}isDescendantOf(e){e instanceof fa.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 fa.Matrix4().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),Fl(e)?e.hiddenMatrix.premultiply(o):e.applyMatrix4(o),e.updateWorldMatrix(!1,!1),this.add(e),r!==void 0&&(this.children.pop(),this.children.splice(r,0,e)),this}copy(e,r=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),r===!0)for(let o=0;o<e.children.length;o++){let i=e.children[o];this.add(i.clone())}return this}};var Ue=require("three");var vn=new Ue.Box3,gr=new Ue.Vector3,yr=new Ue.Vector3,bn=new Ue.Matrix4,Mf=[new Ue.Vector3(-1,1,1),new Ue.Vector3(-1,-1,1),new Ue.Vector3(1,-1,1),new Ue.Vector3(1,1,1),new Ue.Vector3(-1,1,-1),new Ue.Vector3(-1,-1,-1),new Ue.Vector3(1,-1,-1),new Ue.Vector3(1,1,-1)],$b=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],Xb=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function Yb(n,t,e=0,r=t.count){let o=1/0,i=1/0,s=1/0,l=-1/0,c=-1/0,p=-1/0;for(let a=e;a<r;a++){let u=t.getX(a),d=t.getY(a),f=t.getZ(a);u<o&&(o=u),d<i&&(i=d),f<s&&(s=f),u>l&&(l=u),d>c&&(c=d),f>p&&(p=f)}return n.min.set(o,i,s),n.max.set(l,c,p),n}var Of=(n,t,e)=>{if(mr(n)){let r=n.geometry.userData.parameters,o=n.geometry.getAttribute("position");n.geometry.userData.type==="SubdivGeometry"?gr.copy(n.originalGeometry.boundingSphere.center):o!==void 0&&(Yb(vn,o,n.geometry.drawRange.start,n.geometry.drawRange.count<1/0?n.geometry.drawRange.count:o.count),vn.getCenter(gr)),n.forceComputeSize?vn.getSize(yr).multiplyScalar(.5):yr.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}else if(da(n)&&n.objectHelper.visible){let r=n.geometryHelper.getAttribute("position");vn.setFromArray(r.array),vn.getCenter(gr),vn.getSize(yr).multiplyScalar(.5)}else gr.setScalar(0),yr.setScalar(0);bn.copy(t).multiply(n.matrixWorld),yr.x===0&&yr.y===0&&yr.z===0?e.push(new Ue.Vector3(gr.x,gr.y,gr.z).applyMatrix4(bn)):Mf.forEach(r=>{e.push(r.clone().multiply(yr).add(gr).applyMatrix4(bn))})},di=class extends Ue.Box3{constructor(){super(...arguments);this.matrix=new Ue.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 Ue.Matrix4().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,r)}expandByObjectSize(e,r,o=!1){let i=[];return o===!0?e.traverseEntity(s=>{s.visible&&Of(s,r,i)}):Of(e,r,i),this.setFromPoints(i)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4(bn.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(yr).multiplyScalar(.5),this.getCenter(gr),bn.copy(this.matrix).setPosition(gr),this.vertices=Mf.map(e=>e.clone().multiply(yr).applyMatrix4(bn))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=$b.map(([e,r])=>new Ue.Line3(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new Ue.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=Xb.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var xr=n=>"isEntity"in n,Df=n=>"isAbstractMesh"in n,kt=n=>class extends ma(n){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new zl.Matrix4;this._singleBBox=new di;this._recursiveBBox=new di;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=>{xr(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)xr(o)&&o.traverseEntity(r)}traverseVisibleEntity(r){r(this);for(let o of this.children)xr(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 i=this.parent;if(r&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),o)for(let s of this.children)s.updateWorldMatrix(!1,!0)}clone(r){return new this.constructor().copy(this,r)}copy(r,o=!0){if(super.copy(r,!1),this.raycastLock=r.raycastLock,this.scaleLock=r.scaleLock,this.hiddenMatrix.copy(r.hiddenMatrix),o===!0)for(let i of r.children)xr(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let r=new zl.Matrix4,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),r.copy(this.matrixWorld).invert(),r.multiply(o);for(let i of this.children)xr(i)&&i.hiddenMatrix.premultiply(r)}toObjectTransformState(r=[]){this.updateWorldMatrix(!0,!1);let o={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return en(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 en(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 Ze=require("three");var Bf=require("three"),Ul=class extends Bf.Object3D{},ha=class extends Ul{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 Ze.Object3D{constructor(e,r={}){super();this.object=e;let o=e.recursiveBBox.getSize(new Ze.Vector3),i=.1;this.parameters=Ns.defaultData(o.toArray(),i),ho(this.parameters,r),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(e){this.parameters.hideBase=e}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters)}this.children.forEach(e=>e.updateMatrix())}_updateCount(){let e=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count;if(this.children.length!==e)if(this.children.length<e)for(let r=0,o=e-this.children.length;r<o;++r){let i=new ha(this.object);i.visible=!0,this.add(i),this.parameters.hideBase&&this.setHideBase(!0)}else for(let r=0,o=this.children.length-e;r<o;++r)this.remove(this.children[0])}_updateRadial(e){let r=e.radial,o=r.start*Ze.MathUtils.DEG2RAD,i=r.end*Ze.MathUtils.DEG2RAD,s=o-i,l=new Ze.Euler(r.rotation[0]*Ze.MathUtils.DEG2RAD,r.rotation[1]*Ze.MathUtils.DEG2RAD,r.rotation[2]*Ze.MathUtils.DEG2RAD),c;switch(r.axis){case"z":c=new Ze.Vector3(0,0,1);break;case"y":c=new Ze.Vector3(0,1,0);break;default:case"x":c=new Ze.Vector3(1,0,0);break}for(let[p,a]of this.children.entries()){a.scale.x=r.scale[0],a.scale.y=r.scale[1],a.scale.z=r.scale[2],a.position.setScalar(0);let u=s/e.count*p-o;switch(r.axis){case"x":a.rotation.set(0,u,0);break;case"y":a.rotation.set(0,0,u);break;case"z":a.rotation.set(u,0,0);break}a.translateOnAxis(c,r.radius),a.position.x+=r.position[0],a.position.y+=r.position[1],a.position.z+=r.position[2],r.alignment===!0?(a.rotation.x+=l.x,a.rotation.y+=l.y,a.rotation.z+=l.z):a.rotation.copy(l)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,o=new Ze.Euler(r.rotation[0]*Ze.MathUtils.DEG2RAD,r.rotation[1]*Ze.MathUtils.DEG2RAD,r.rotation[2]*Ze.MathUtils.DEG2RAD);for(let[i,s]of this.children.entries())s.scale.x=1+(r.scale[0]-1)*i,s.scale.y=1+(r.scale[1]-1)*i,s.scale.z=1+(r.scale[2]-1)*i,s.rotation.x=o.x*i,s.rotation.y=o.y*i,s.rotation.z=o.z*i,s.position.x=r.position[0]*i,s.position.y=r.position[1]*i,s.position.z=r.position[2]*i}_updateGrid(e){let r=0,o=e.grid;if(o.useCenter===!0){let i={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},s=new Ze.Vector3(o.size[0]*(o.count[0]-i.x)*.5,o.size[1]*(o.count[1]-i.y)*.5,o.size[2]*(o.count[2]-i.z)*.5);for(let l=0;l<o.count[0];l++)for(let c=0;c<o.count[1];c++)for(let p=0;p<o.count[2];p++){let a=this.children[r++];a.scale.setScalar(1),a.rotation.set(0,0,0),a.position.x=o.size[0]*l-s.x,a.position.y=o.size[1]*c-s.y,a.position.z=o.size[2]*p-s.z}}else for(let i=0;i<o.count[0];i++)for(let s=0;s<o.count[1];s++)for(let l=0;l<o.count[2];l++){let c=this.children[r++];c.scale.setScalar(1),c.rotation.set(0,0,0),c.position.x=o.size[0]*i,c.position.y=-o.size[1]*s,c.position.z=-o.size[2]*l}}fromClonerState(e){return e.hideBase!==void 0&&this.setHideBase(e.hideBase),ho(this.parameters,e),this.update(),this}};var Ta=require("three");var Zt=require("three");var fi=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 Ef=require("three"),it=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=Ef.MathUtils.generateUUID(),this.type=t,this.name=""}analyze(t,e){e=e??{},t.analyzing=!0,this.build(t.addFlow(e.slot,e.cache,e.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,e,r){return r=r??{},this.analyze(t,r),this.flow(t,e,r)}flow(t,e,r){r=r??{},t.addFlow(r.slot,r.cache,r.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,r){e=e??this.getType(t,e);let o=t.getNodeData(r??this);return t.analyzing&&this.appendDepsNode(t,o,e),t.nodes.indexOf(this)===-1&&t.nodes.push(this),this.updateFrame!==void 0&&t.updaters.indexOf(this)===-1&&t.updaters.push(this),this.generate(t,e,r)}updateFrame(t){}generateReadonly(t,e,r,o,i,s){return""}generate(t,e,r,o,i){return""}parse(t,e,r,o){}appendDepsNode(t,e,r){e.deps=(e.deps||0)+1;let o=t.getTypeLength(r);(o>(e.outputMax||0)||this.getType(t,r))&&(e.outputMax=o,e.output=r)}setName(t){this.name=t}getName(){return this.name}getType(t,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}getHash(){let t="{",e,r;for(e in this)r=this[e],r instanceof it&&(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 jl=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}},rt=new jl;var kl=require("three");var Gf=require("three"),le=class extends it{constructor(e,r){super(e);this.scope="";r=r??{},this.shared=r.shared!==void 0?r.shared:!0,this.unique=r.unique!==void 0?r.unique:!1}build(e,r,o,i){if(r=r??this.getType(e),this.getShared(e,r)){let s=this.getUnique(e,r);s&&this.uuid===void 0&&(this.uuid=Gf.MathUtils.generateUUID()),o=e.getUUID(o??this.getUUID(),!s);let l=e.getNodeData(o),c=l.output||this.getType(e);if(e.analyzing)return(l.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,l,r),this.generate(e,r,o)):super.build(e,r,o);if(s)return l.name=l.name||super.build(e,r,o),l.name;if(!this.getLabel()&&(!this.getShared(e,c)||e.context.ignoreCache||l.deps===1))return super.build(e,r,o);o=this.getUUID(!1);let p=this.getTemp(e,o);if(p)return e.format(p,c,r);{p=super.generate(e,r,o,l.output,i);let a=this.generate(e,c,o);return e.addNodeCode(p+" = "+a+";"),e.format(p,c,r)}}return super.build(e,r,o)}getShared(e,r){return r!=="sampler2D"&&r!=="samplerCube"&&this.shared}getUnique(e,r){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let r=this.uuid;return typeof this.scope=="string"&&(r=this.scope+"-"+r),r}getTemp(e,r){r=r||this.uuid;let o=e.getVars()[r];return o?o.name:void 0}generate(e,r,o,i,s){return this.getShared(e,r)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,i??this.getType(e),s,this.getLabel()).name}};var Le=class extends le{constructor(e,r){r=r??{},r.shared=r.shared!==void 0?r.shared:!1;super(e,r);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(e,r,o,i,s,l){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let c=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,r,o,i,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(i,this,s,l,this.getLabel())),e.format(c.vertex.name,i,r)):(c.fragment||(c.fragment=e.createFragmentUniform(i,this,s,l,this.getLabel())),e.format(c.fragment.name,i,r))}};var st=class extends Le{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof kl.Vector2?e:new kl.Vector2(e,r)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,r,o,i,s,l){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,r)}};var Hl=require("three");var ct=class extends Le{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof Hl.Vector3?e:new Hl.Vector3(e,r,o)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,r,o,i,s,l){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,r)}};var Ht=class extends Le{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof Je?e:new Je(e.r,e.g,e.b,e.a)}generateReadonly(e,r,o,i,s,l){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,r)}};var Kb=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,Rf=/[a-z_0-9]+/gi,X=class extends le{constructor(e,r,o,i,s){super(s);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=s===void 0,this.isInterface=!1,this.parse(e,r,o,i)}getShared(e,r){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}}getIncludeByName(e){if(this.includes){let r=this.includes.length;for(;r--;)if(this.includes[r].name===e)return this.includes[r]}}generate(e,r,o,i,s){let l,c=0,p=this.src;if(this.includes)for(let u=0;u<this.includes.length;u++)e.include(this.includes[u],this);for(let u in this.extensions)e.extensions[u]=!0;let a=[];for(;l=Rf.exec(this.src);)a.push(l);for(let u=0;u<a.length;u++){let d=a[u],f=d[0],m=this.isMethod?!this.getInputByName(f):!0,h=f;if(this.keywords[f]||this.useKeywords&&m&&rt.containsKeyword(f)){let g=this.keywords[f];if(!g){let x=rt.getKeywordData(f);x.cache&&(g=e.keywords[f]),g=g||rt.getKeyword(f,e),x.cache&&(e.keywords[f]=g)}h=g.build(e)}f!==h&&p[d.index+c-1]!=="."&&(p=p.substring(0,d.index+c)+h+p.substring(d.index+f.length+c),c+=h.length-f.length),this.getIncludeByName(h)===void 0&&rt.contains(h)&&e.include(rt.get(h))}return r==="source"?p:this.isMethod?(this.isInterface||e.include(this,void 0,p),this.name):e.format("( "+p+" )",this.getType(e),r)}parse(e,r,o,i){if(this.src=e||"",this.includes=r??[],this.extensions=o??{},this.keywords=i??{},this.isMethod){let s=Kb.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(Rf);if(l){let c=0;for(;c<l.length;){let p=l[c++],a;p==="in"||p==="out"||p==="inout"?a=l[c++]:(a=p,p="");let u=l[c++];this.inputs.push({name:u,type:a,qualifier:p})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var Zb=/^([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,i,s){this.src=e||"";let l,c,p="",a=Zb.exec(e);this.useDefine=s??this.src.charAt(0)==="#",a&&a.length>1?(c=a[1],l=a[2],p=a[3]):(l=this.src,c="f"),this.name=l,this.type=c,this.value=p}build(e,r){if(r==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return e.include(this),e.format(this.name,this.getType(e),r)}generate(e,r,o,i,s){return e.format(this.name,this.getType(e),r)}},Se=Wl;Se.PI="PI",Se.PI2="PI2",Se.RECIPROCAL_PI="RECIPROCAL_PI",Se.RECIPROCAL_PI2="RECIPROCAL_PI2",Se.LOG2="LOG2",Se.EPSILON="EPSILON";var Qb=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
1
+ var nh=Object.create;var Ki=Object.defineProperty;var ih=Object.getOwnPropertyDescriptor;var sh=Object.getOwnPropertyNames;var ah=Object.getPrototypeOf,lh=Object.prototype.hasOwnProperty;var Tc=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),Ac=(n,t)=>{for(var e in t)Ki(n,e,{get:t[e],enumerable:!0})},Nc=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of sh(t))!lh.call(n,o)&&o!==e&&Ki(n,o,{get:()=>t[o],enumerable:!(r=ih(t,o))||r.enumerable});return n};var Cc=(n,t,e)=>(e=n!=null?nh(ah(n)):{},Nc(t||!n||!n.__esModule?Ki(e,"default",{value:n,enumerable:!0}):e,n)),ch=n=>Nc(Ki({},"__esModule",{value:!0}),n);var Sm=Tc(Ra=>{(function(){"use strict";var n=function(){this.init()};n.prototype={init:function(){var a=this||t;return a._counter=1e3,a._html5AudioPool=[],a.html5PoolSize=10,a._codecs={},a._howls=[],a._muted=!1,a._volume=1,a._canPlayEvent="canplaythrough",a._navigator=typeof window<"u"&&window.navigator?window.navigator:null,a.masterGain=null,a.noAudio=!1,a.usingWebAudio=!0,a.autoSuspend=!0,a.ctx=null,a.autoUnlock=!0,a._setup(),a},volume:function(a){var u=this||t;if(a=parseFloat(a),u.ctx||p(),typeof a<"u"&&a>=0&&a<=1){if(u._volume=a,u._muted)return u;u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.volume=h._volume*a)}return u}return u._volume},mute:function(a){var u=this||t;u.ctx||p(),u._muted=a,u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a?0:u._volume,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.muted=a?!0:h._muted)}return u},stop:function(){for(var a=this||t,u=0;u<a._howls.length;u++)a._howls[u].stop();return a},unload:function(){for(var a=this||t,u=a._howls.length-1;u>=0;u--)a._howls[u].unload();return a.usingWebAudio&&a.ctx&&typeof a.ctx.close<"u"&&(a.ctx.close(),a.ctx=null,p()),a},codecs:function(a){return(this||t)._codecs[a.replace(/^x-/,"")]},_setup:function(){var a=this||t;if(a.state=a.ctx&&a.ctx.state||"suspended",a._autoSuspend(),!a.usingWebAudio)if(typeof Audio<"u")try{var u=new Audio;typeof u.oncanplaythrough>"u"&&(a._canPlayEvent="canplay")}catch{a.noAudio=!0}else a.noAudio=!0;try{var u=new Audio;u.muted&&(a.noAudio=!0)}catch{}return a.noAudio||a._setupCodecs(),a},_setupCodecs:function(){var a=this||t,u=null;try{u=typeof Audio<"u"?new Audio:null}catch{return a}if(!u||typeof u.canPlayType!="function")return a;var d=u.canPlayType("audio/mpeg;").replace(/^no$/,""),f=a._navigator?a._navigator.userAgent:"",m=f.match(/OPR\/([0-6].)/g),h=m&&parseInt(m[0].split("/")[1],10)<33,g=f.indexOf("Safari")!==-1&&f.indexOf("Chrome")===-1,x=f.match(/Version\/(.*?) /),v=g&&x&&parseInt(x[1],10)<15;return a._codecs={mp3:!!(!h&&(d||u.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!d,opus:!!u.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(u.canPlayType('audio/wav; codecs="1"')||u.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!u.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!u.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(u.canPlayType("audio/x-m4a;")||u.canPlayType("audio/m4a;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(u.canPlayType("audio/x-m4b;")||u.canPlayType("audio/m4b;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(u.canPlayType("audio/x-mp4;")||u.canPlayType("audio/mp4;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!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$/,"")},a},_unlockAudio:function(){var a=this||t;if(!(a._audioUnlocked||!a.ctx)){a._audioUnlocked=!1,a.autoUnlock=!1,!a._mobileUnloaded&&a.ctx.sampleRate!==44100&&(a._mobileUnloaded=!0,a.unload()),a._scratchBuffer=a.ctx.createBuffer(1,1,22050);var u=function(d){for(;a._html5AudioPool.length<a.html5PoolSize;)try{var f=new Audio;f._unlocked=!0,a._releaseHtml5Audio(f)}catch{a.noAudio=!0;break}for(var m=0;m<a._howls.length;m++)if(!a._howls[m]._webAudio)for(var h=a._howls[m]._getSoundIds(),g=0;g<h.length;g++){var x=a._howls[m]._soundById(h[g]);x&&x._node&&!x._node._unlocked&&(x._node._unlocked=!0,x._node.load())}a._autoResume();var v=a.ctx.createBufferSource();v.buffer=a._scratchBuffer,v.connect(a.ctx.destination),typeof v.start>"u"?v.noteOn(0):v.start(0),typeof a.ctx.resume=="function"&&a.ctx.resume(),v.onended=function(){v.disconnect(0),a._audioUnlocked=!0,document.removeEventListener("touchstart",u,!0),document.removeEventListener("touchend",u,!0),document.removeEventListener("click",u,!0),document.removeEventListener("keydown",u,!0);for(var A=0;A<a._howls.length;A++)a._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),a}},_obtainHtml5Audio:function(){var a=this||t;if(a._html5AudioPool.length)return a._html5AudioPool.pop();var u=new Audio().play();return u&&typeof Promise<"u"&&(u instanceof Promise||typeof u.then=="function")&&u.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(a){var u=this||t;return a._unlocked&&u._html5AudioPool.push(a),u},_autoSuspend:function(){var a=this;if(!(!a.autoSuspend||!a.ctx||typeof a.ctx.suspend>"u"||!t.usingWebAudio)){for(var u=0;u<a._howls.length;u++)if(a._howls[u]._webAudio){for(var d=0;d<a._howls[u]._sounds.length;d++)if(!a._howls[u]._sounds[d]._paused)return a}return a._suspendTimer&&clearTimeout(a._suspendTimer),a._suspendTimer=setTimeout(function(){if(!!a.autoSuspend){a._suspendTimer=null,a.state="suspending";var f=function(){a.state="suspended",a._resumeAfterSuspend&&(delete a._resumeAfterSuspend,a._autoResume())};a.ctx.suspend().then(f,f)}},3e4),a}},_autoResume:function(){var a=this;if(!(!a.ctx||typeof a.ctx.resume>"u"||!t.usingWebAudio))return a.state==="running"&&a.ctx.state!=="interrupted"&&a._suspendTimer?(clearTimeout(a._suspendTimer),a._suspendTimer=null):a.state==="suspended"||a.state==="running"&&a.ctx.state==="interrupted"?(a.ctx.resume().then(function(){a.state="running";for(var u=0;u<a._howls.length;u++)a._howls[u]._emit("resume")}),a._suspendTimer&&(clearTimeout(a._suspendTimer),a._suspendTimer=null)):a.state==="suspending"&&(a._resumeAfterSuspend=!0),a}};var t=new n,e=function(a){var u=this;if(!a.src||a.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}u.init(a)};e.prototype={init:function(a){var u=this;return t.ctx||p(),u._autoplay=a.autoplay||!1,u._format=typeof a.format!="string"?a.format:[a.format],u._html5=a.html5||!1,u._muted=a.mute||!1,u._loop=a.loop||!1,u._pool=a.pool||5,u._preload=typeof a.preload=="boolean"||a.preload==="metadata"?a.preload:!0,u._rate=a.rate||1,u._sprite=a.sprite||{},u._src=typeof a.src!="string"?a.src:[a.src],u._volume=a.volume!==void 0?a.volume:1,u._xhr={method:a.xhr&&a.xhr.method?a.xhr.method:"GET",headers:a.xhr&&a.xhr.headers?a.xhr.headers:null,withCredentials:a.xhr&&a.xhr.withCredentials?a.xhr.withCredentials:!1},u._duration=0,u._state="unloaded",u._sounds=[],u._endTimers={},u._queue=[],u._playLock=!1,u._onend=a.onend?[{fn:a.onend}]:[],u._onfade=a.onfade?[{fn:a.onfade}]:[],u._onload=a.onload?[{fn:a.onload}]:[],u._onloaderror=a.onloaderror?[{fn:a.onloaderror}]:[],u._onplayerror=a.onplayerror?[{fn:a.onplayerror}]:[],u._onpause=a.onpause?[{fn:a.onpause}]:[],u._onplay=a.onplay?[{fn:a.onplay}]:[],u._onstop=a.onstop?[{fn:a.onstop}]:[],u._onmute=a.onmute?[{fn:a.onmute}]:[],u._onvolume=a.onvolume?[{fn:a.onvolume}]:[],u._onrate=a.onrate?[{fn:a.onrate}]:[],u._onseek=a.onseek?[{fn:a.onseek}]:[],u._onunlock=a.onunlock?[{fn:a.onunlock}]:[],u._onresume=[],u._webAudio=t.usingWebAudio&&!u._html5,typeof t.ctx<"u"&&t.ctx&&t.autoUnlock&&t._unlockAudio(),t._howls.push(u),u._autoplay&&u._queue.push({event:"play",action:function(){u.play()}}),u._preload&&u._preload!=="none"&&u.load(),u},load:function(){var a=this,u=null;if(t.noAudio){a._emit("loaderror",null,"No audio support.");return}typeof a._src=="string"&&(a._src=[a._src]);for(var d=0;d<a._src.length;d++){var f,m;if(a._format&&a._format[d])f=a._format[d];else{if(m=a._src[d],typeof m!="string"){a._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}f=/^data:audio\/([^;,]+);/i.exec(m),f||(f=/\.([^.]+)$/.exec(m.split("?",1)[0])),f&&(f=f[1].toLowerCase())}if(f||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),f&&t.codecs(f)){u=a._src[d];break}}if(!u){a._emit("loaderror",null,"No codec support for selected audio sources.");return}return a._src=u,a._state="loading",window.location.protocol==="https:"&&u.slice(0,5)==="http:"&&(a._html5=!0,a._webAudio=!1),new r(a),a._webAudio&&i(a),a},play:function(a,u){var d=this,f=null;if(typeof a=="number")f=a,a=null;else{if(typeof a=="string"&&d._state==="loaded"&&!d._sprite[a])return null;if(typeof a>"u"&&(a="__default",!d._playLock)){for(var m=0,h=0;h<d._sounds.length;h++)d._sounds[h]._paused&&!d._sounds[h]._ended&&(m++,f=d._sounds[h]._id);m===1?a=null:f=null}}var g=f?d._soundById(f):d._inactiveSound();if(!g)return null;if(f&&!a&&(a=g._sprite||"__default"),d._state!=="loaded"){g._sprite=a,g._ended=!1;var x=g._id;return d._queue.push({event:"play",action:function(){d.play(x)}}),x}if(f&&!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[a][0]/1e3),A=Math.max(0,(d._sprite[a][0]+d._sprite[a][1])/1e3-v),S=A*1e3/Math.abs(g._rate),b=d._sprite[a][0]/1e3,D=(d._sprite[a][0]+d._sprite[a][1])/1e3;g._sprite=a,g._ended=!1;var w=function(){g._paused=!1,g._seek=v,g._start=b,g._stop=D,g._loop=!!(g._loop||d._sprite[a][2])};if(v>=D){d._ended(g);return}var y=g._node;if(d._webAudio){var I=function(){d._playLock=!1,w(),d._refreshBuffer(g);var C=g._muted||d._muted?0:g._volume;y.gain.setValueAtTime(C,t.ctx.currentTime),g._playStart=t.ctx.currentTime,typeof y.bufferSource.start>"u"?g._loop?y.bufferSource.noteGrainOn(0,v,86400):y.bufferSource.noteGrainOn(0,v,A):g._loop?y.bufferSource.start(0,v,86400):y.bufferSource.start(0,v,A),S!==1/0&&(d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),S)),u||setTimeout(function(){d._emit("play",g._id),d._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?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 C=y.play();if(C&&typeof Promise<"u"&&(C instanceof Promise||typeof C.then=="function")?(d._playLock=!0,w(),C.then(function(){d._playLock=!1,y._unlocked=!0,u?d._loadQueue():d._emit("play",g._id)}).catch(function(){d._playLock=!1,d._emit("playerror",g._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),g._ended=!0,g._paused=!0})):u||(d._playLock=!1,w(),d._emit("play",g._id)),y.playbackRate=g._rate,y.paused){d._emit("playerror",g._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}a!=="__default"||g._loop?d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),S):(d._endTimers[g._id]=function(){d._ended(g),y.removeEventListener("ended",d._endTimers[g._id],!1)},y.addEventListener("ended",d._endTimers[g._id],!1))}catch(k){d._emit("playerror",g._id,k)}};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 N=function(){d._state="loaded",T(),y.removeEventListener(t._canPlayEvent,N,!1)};y.addEventListener(t._canPlayEvent,N,!1),d._clearTimer(g._id)}}return g._id},pause:function(a){var u=this;if(u._state!=="loaded"||u._playLock)return u._queue.push({event:"pause",action:function(){u.pause(a)}}),u;for(var d=u._getSoundIds(a),f=0;f<d.length;f++){u._clearTimer(d[f]);var m=u._soundById(d[f]);if(m&&!m._paused&&(m._seek=u.seek(d[f]),m._rateSeek=0,m._paused=!0,u._stopFade(d[f]),m._node))if(u._webAudio){if(!m._node.bufferSource)continue;typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),u._cleanBuffer(m._node)}else(!isNaN(m._node.duration)||m._node.duration===1/0)&&m._node.pause();arguments[1]||u._emit("pause",m?m._id:null)}return u},stop:function(a,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"stop",action:function(){d.stop(a)}}),d;for(var f=d._getSoundIds(a),m=0;m<f.length;m++){d._clearTimer(f[m]);var h=d._soundById(f[m]);h&&(h._seek=h._start||0,h._rateSeek=0,h._paused=!0,h._ended=!0,d._stopFade(f[m]),h._node&&(d._webAudio?h._node.bufferSource&&(typeof h._node.bufferSource.stop>"u"?h._node.bufferSource.noteOff(0):h._node.bufferSource.stop(0),d._cleanBuffer(h._node)):(!isNaN(h._node.duration)||h._node.duration===1/0)&&(h._node.currentTime=h._start||0,h._node.pause(),h._node.duration===1/0&&d._clearSound(h._node))),u||d._emit("stop",h._id))}return d},mute:function(a,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"mute",action:function(){d.mute(a,u)}}),d;if(typeof u>"u")if(typeof a=="boolean")d._muted=a;else return d._muted;for(var f=d._getSoundIds(u),m=0;m<f.length;m++){var h=d._soundById(f[m]);h&&(h._muted=a,h._interval&&d._stopFade(h._id),d._webAudio&&h._node?h._node.gain.setValueAtTime(a?0:h._volume,t.ctx.currentTime):h._node&&(h._node.muted=t._muted?!0:a),d._emit("mute",h._id))}return d},volume:function(){var a=this,u=arguments,d,f;if(u.length===0)return a._volume;if(u.length===1||u.length===2&&typeof u[1]>"u"){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):d=parseFloat(u[0])}else u.length>=2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));var g;if(typeof d<"u"&&d>=0&&d<=1){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"volume",action:function(){a.volume.apply(a,u)}}),a;typeof f>"u"&&(a._volume=d),f=a._getSoundIds(f);for(var x=0;x<f.length;x++)g=a._soundById(f[x]),g&&(g._volume=d,u[2]||a._stopFade(f[x]),a._webAudio&&g._node&&!g._muted?g._node.gain.setValueAtTime(d,t.ctx.currentTime):g._node&&!g._muted&&(g._node.volume=d*t.volume()),a._emit("volume",g._id))}else return g=f?a._soundById(f):a._sounds[0],g?g._volume:0;return a},fade:function(a,u,d,f){var m=this;if(m._state!=="loaded"||m._playLock)return m._queue.push({event:"fade",action:function(){m.fade(a,u,d,f)}}),m;a=Math.min(Math.max(0,parseFloat(a)),1),u=Math.min(Math.max(0,parseFloat(u)),1),d=parseFloat(d),m.volume(a,f);for(var h=m._getSoundIds(f),g=0;g<h.length;g++){var x=m._soundById(h[g]);if(x){if(f||m._stopFade(h[g]),m._webAudio&&!x._muted){var v=t.ctx.currentTime,A=v+d/1e3;x._volume=a,x._node.gain.setValueAtTime(a,v),x._node.gain.linearRampToValueAtTime(u,A)}m._startFadeInterval(x,a,u,d,h[g],typeof f>"u")}}return m},_startFadeInterval:function(a,u,d,f,m,h){var g=this,x=u,v=d-u,A=Math.abs(v/.01),S=Math.max(4,A>0?f/A:f),b=Date.now();a._fadeTo=d,a._interval=setInterval(function(){var D=(Date.now()-b)/f;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?a._volume=x:g.volume(x,a._id,!0),h&&(g._volume=x),(d<u&&x<=d||d>u&&x>=d)&&(clearInterval(a._interval),a._interval=null,a._fadeTo=null,g.volume(d,a._id),g._emit("fade",a._id))},S)},_stopFade:function(a){var u=this,d=u._soundById(a);return d&&d._interval&&(u._webAudio&&d._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(d._interval),d._interval=null,u.volume(d._fadeTo,a),d._fadeTo=null,u._emit("fade",a)),u},loop:function(){var a=this,u=arguments,d,f,m;if(u.length===0)return a._loop;if(u.length===1)if(typeof u[0]=="boolean")d=u[0],a._loop=d;else return m=a._soundById(parseInt(u[0],10)),m?m._loop:!1;else u.length===2&&(d=u[0],f=parseInt(u[1],10));for(var h=a._getSoundIds(f),g=0;g<h.length;g++)m=a._soundById(h[g]),m&&(m._loop=d,a._webAudio&&m._node&&m._node.bufferSource&&(m._node.bufferSource.loop=d,d&&(m._node.bufferSource.loopStart=m._start||0,m._node.bufferSource.loopEnd=m._stop,a.playing(h[g])&&(a.pause(h[g],!0),a.play(h[g],!0)))));return a},rate:function(){var a=this,u=arguments,d,f;if(u.length===0)f=a._sounds[0]._id;else if(u.length===1){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):d=parseFloat(u[0])}else u.length===2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));var g;if(typeof d=="number"){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"rate",action:function(){a.rate.apply(a,u)}}),a;typeof f>"u"&&(a._rate=d),f=a._getSoundIds(f);for(var x=0;x<f.length;x++)if(g=a._soundById(f[x]),g){a.playing(f[x])&&(g._rateSeek=a.seek(f[x]),g._playStart=a._webAudio?t.ctx.currentTime:g._playStart),g._rate=d,a._webAudio&&g._node&&g._node.bufferSource?g._node.bufferSource.playbackRate.setValueAtTime(d,t.ctx.currentTime):g._node&&(g._node.playbackRate=d);var v=a.seek(f[x]),A=(a._sprite[g._sprite][0]+a._sprite[g._sprite][1])/1e3-v,S=A*1e3/Math.abs(g._rate);(a._endTimers[f[x]]||!g._paused)&&(a._clearTimer(f[x]),a._endTimers[f[x]]=setTimeout(a._ended.bind(a,g),S)),a._emit("rate",g._id)}}else return g=a._soundById(f),g?g._rate:a._rate;return a},seek:function(){var a=this,u=arguments,d,f;if(u.length===0)a._sounds.length&&(f=a._sounds[0]._id);else if(u.length===1){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):a._sounds.length&&(f=a._sounds[0]._id,d=parseFloat(u[0]))}else u.length===2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));if(typeof f>"u")return 0;if(typeof d=="number"&&(a._state!=="loaded"||a._playLock))return a._queue.push({event:"seek",action:function(){a.seek.apply(a,u)}}),a;var g=a._soundById(f);if(g)if(typeof d=="number"&&d>=0){var x=a.playing(f);x&&a.pause(f,!0),g._seek=d,g._ended=!1,a._clearTimer(f),!a._webAudio&&g._node&&!isNaN(g._node.duration)&&(g._node.currentTime=d);var v=function(){x&&a.play(f,!0),a._emit("seek",f)};if(x&&!a._webAudio){var A=function(){a._playLock?setTimeout(A,0):v()};setTimeout(A,0)}else v()}else if(a._webAudio){var S=a.playing(f)?t.ctx.currentTime-g._playStart:0,b=g._rateSeek?g._rateSeek-g._seek:0;return g._seek+(b+S*Math.abs(g._rate))}else return g._node.currentTime;return a},playing:function(a){var u=this;if(typeof a=="number"){var d=u._soundById(a);return d?!d._paused:!1}for(var f=0;f<u._sounds.length;f++)if(!u._sounds[f]._paused)return!0;return!1},duration:function(a){var u=this,d=u._duration,f=u._soundById(a);return f&&(d=u._sprite[f._sprite][1]/1e3),d},state:function(){return this._state},unload:function(){for(var a=this,u=a._sounds,d=0;d<u.length;d++)u[d]._paused||a.stop(u[d]._id),a._webAudio||(a._clearSound(u[d]._node),u[d]._node.removeEventListener("error",u[d]._errorFn,!1),u[d]._node.removeEventListener(t._canPlayEvent,u[d]._loadFn,!1),u[d]._node.removeEventListener("ended",u[d]._endFn,!1),t._releaseHtml5Audio(u[d]._node)),delete u[d]._node,a._clearTimer(u[d]._id);var f=t._howls.indexOf(a);f>=0&&t._howls.splice(f,1);var m=!0;for(d=0;d<t._howls.length;d++)if(t._howls[d]._src===a._src||a._src.indexOf(t._howls[d]._src)>=0){m=!1;break}return o&&m&&delete o[a._src],t.noAudio=!1,a._state="unloaded",a._sounds=[],a=null,null},on:function(a,u,d,f){var m=this,h=m["_on"+a];return typeof u=="function"&&h.push(f?{id:d,fn:u,once:f}:{id:d,fn:u}),m},off:function(a,u,d){var f=this,m=f["_on"+a],h=0;if(typeof u=="number"&&(d=u,u=null),u||d)for(h=0;h<m.length;h++){var g=d===m[h].id;if(u===m[h].fn&&g||!u&&g){m.splice(h,1);break}}else if(a)f["_on"+a]=[];else{var x=Object.keys(f);for(h=0;h<x.length;h++)x[h].indexOf("_on")===0&&Array.isArray(f[x[h]])&&(f[x[h]]=[])}return f},once:function(a,u,d){var f=this;return f.on(a,u,d,1),f},_emit:function(a,u,d){for(var f=this,m=f["_on"+a],h=m.length-1;h>=0;h--)(!m[h].id||m[h].id===u||a==="load")&&(setTimeout(function(g){g.call(this,u,d)}.bind(f,m[h].fn),0),m[h].once&&f.off(a,m[h].fn,m[h].id));return f._loadQueue(a),f},_loadQueue:function(a){var u=this;if(u._queue.length>0){var d=u._queue[0];d.event===a&&(u._queue.shift(),u._loadQueue()),a||d.action()}return u},_ended:function(a){var u=this,d=a._sprite;if(!u._webAudio&&a._node&&!a._node.paused&&!a._node.ended&&a._node.currentTime<a._stop)return setTimeout(u._ended.bind(u,a),100),u;var f=!!(a._loop||u._sprite[d][2]);if(u._emit("end",a._id),!u._webAudio&&f&&u.stop(a._id,!0).play(a._id),u._webAudio&&f){u._emit("play",a._id),a._seek=a._start||0,a._rateSeek=0,a._playStart=t.ctx.currentTime;var m=(a._stop-a._start)*1e3/Math.abs(a._rate);u._endTimers[a._id]=setTimeout(u._ended.bind(u,a),m)}return u._webAudio&&!f&&(a._paused=!0,a._ended=!0,a._seek=a._start||0,a._rateSeek=0,u._clearTimer(a._id),u._cleanBuffer(a._node),t._autoSuspend()),!u._webAudio&&!f&&u.stop(a._id,!0),u},_clearTimer:function(a){var u=this;if(u._endTimers[a]){if(typeof u._endTimers[a]!="function")clearTimeout(u._endTimers[a]);else{var d=u._soundById(a);d&&d._node&&d._node.removeEventListener("ended",u._endTimers[a],!1)}delete u._endTimers[a]}return u},_soundById:function(a){for(var u=this,d=0;d<u._sounds.length;d++)if(a===u._sounds[d]._id)return u._sounds[d];return null},_inactiveSound:function(){var a=this;a._drain();for(var u=0;u<a._sounds.length;u++)if(a._sounds[u]._ended)return a._sounds[u].reset();return new r(a)},_drain:function(){var a=this,u=a._pool,d=0,f=0;if(!(a._sounds.length<u)){for(f=0;f<a._sounds.length;f++)a._sounds[f]._ended&&d++;for(f=a._sounds.length-1;f>=0;f--){if(d<=u)return;a._sounds[f]._ended&&(a._webAudio&&a._sounds[f]._node&&a._sounds[f]._node.disconnect(0),a._sounds.splice(f,1),d--)}}},_getSoundIds:function(a){var u=this;if(typeof a>"u"){for(var d=[],f=0;f<u._sounds.length;f++)d.push(u._sounds[f]._id);return d}else return[a]},_refreshBuffer:function(a){var u=this;return a._node.bufferSource=t.ctx.createBufferSource(),a._node.bufferSource.buffer=o[u._src],a._panner?a._node.bufferSource.connect(a._panner):a._node.bufferSource.connect(a._node),a._node.bufferSource.loop=a._loop,a._loop&&(a._node.bufferSource.loopStart=a._start||0,a._node.bufferSource.loopEnd=a._stop||0),a._node.bufferSource.playbackRate.setValueAtTime(a._rate,t.ctx.currentTime),u},_cleanBuffer:function(a){var u=this,d=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&a.bufferSource&&(a.bufferSource.onended=null,a.bufferSource.disconnect(0),d))try{a.bufferSource.buffer=t._scratchBuffer}catch{}return a.bufferSource=null,u},_clearSound:function(a){var u=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);u||(a.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(a){this._parent=a,this.init()};r.prototype={init:function(){var a=this,u=a._parent;return a._muted=u._muted,a._loop=u._loop,a._volume=u._volume,a._rate=u._rate,a._seek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,u._sounds.push(a),a.create(),a},create:function(){var a=this,u=a._parent,d=t._muted||a._muted||a._parent._muted?0:a._volume;return u._webAudio?(a._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),a._node.gain.setValueAtTime(d,t.ctx.currentTime),a._node.paused=!0,a._node.connect(t.masterGain)):t.noAudio||(a._node=t._obtainHtml5Audio(),a._errorFn=a._errorListener.bind(a),a._node.addEventListener("error",a._errorFn,!1),a._loadFn=a._loadListener.bind(a),a._node.addEventListener(t._canPlayEvent,a._loadFn,!1),a._endFn=a._endListener.bind(a),a._node.addEventListener("ended",a._endFn,!1),a._node.src=u._src,a._node.preload=u._preload===!0?"auto":u._preload,a._node.volume=d*t.volume(),a._node.load()),a},reset:function(){var a=this,u=a._parent;return a._muted=u._muted,a._loop=u._loop,a._volume=u._volume,a._rate=u._rate,a._seek=0,a._rateSeek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,a},_errorListener:function(){var a=this;a._parent._emit("loaderror",a._id,a._node.error?a._node.error.code:0),a._node.removeEventListener("error",a._errorFn,!1)},_loadListener:function(){var a=this,u=a._parent;u._duration=Math.ceil(a._node.duration*10)/10,Object.keys(u._sprite).length===0&&(u._sprite={__default:[0,u._duration*1e3]}),u._state!=="loaded"&&(u._state="loaded",u._emit("load"),u._loadQueue()),a._node.removeEventListener(t._canPlayEvent,a._loadFn,!1)},_endListener:function(){var a=this,u=a._parent;u._duration===1/0&&(u._duration=Math.ceil(a._node.duration*10)/10,u._sprite.__default[1]===1/0&&(u._sprite.__default[1]=u._duration*1e3),u._ended(a)),a._node.removeEventListener("ended",a._endFn,!1)}};var o={},i=function(a){var u=a._src;if(o[u]){a._duration=o[u].duration,c(a);return}if(/^data:[^;]+;base64,/.test(u)){for(var d=atob(u.split(",")[1]),f=new Uint8Array(d.length),m=0;m<d.length;++m)f[m]=d.charCodeAt(m);l(f.buffer,a)}else{var h=new XMLHttpRequest;h.open(a._xhr.method,u,!0),h.withCredentials=a._xhr.withCredentials,h.responseType="arraybuffer",a._xhr.headers&&Object.keys(a._xhr.headers).forEach(function(g){h.setRequestHeader(g,a._xhr.headers[g])}),h.onload=function(){var g=(h.status+"")[0];if(g!=="0"&&g!=="2"&&g!=="3"){a._emit("loaderror",null,"Failed loading audio file with status: "+h.status+".");return}l(h.response,a)},h.onerror=function(){a._webAudio&&(a._html5=!0,a._webAudio=!1,a._sounds=[],delete o[u],a.load())},s(h)}},s=function(a){try{a.send()}catch{a.onerror()}},l=function(a,u){var d=function(){u._emit("loaderror",null,"Decoding audio data failed.")},f=function(m){m&&u._sounds.length>0?(o[u._src]=m,c(u,m)):d()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(a).then(f).catch(d):t.ctx.decodeAudioData(a,f,d)},c=function(a,u){u&&!a._duration&&(a._duration=u.duration),Object.keys(a._sprite).length===0&&(a._sprite={__default:[0,a._duration*1e3]}),a._state!=="loaded"&&(a._state="loaded",a._emit("load"),a._loadQueue())},p=function(){if(!!t.usingWebAudio){try{typeof AudioContext<"u"?t.ctx=new AudioContext:typeof webkitAudioContext<"u"?t.ctx=new webkitAudioContext:t.usingWebAudio=!1}catch{t.usingWebAudio=!1}t.ctx||(t.usingWebAudio=!1);var a=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),u=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),d=u?parseInt(u[1],10):null;if(a&&d&&d<9){var f=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!f&&(t.usingWebAudio=!1)}t.usingWebAudio&&(t.masterGain=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),t.masterGain.gain.setValueAtTime(t._muted?0:t._volume,t.ctx.currentTime),t.masterGain.connect(t.ctx.destination)),t._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:t,Howl:e}}),typeof Ra<"u"&&(Ra.Howler=t,Ra.Howl=e),typeof global<"u"?(global.HowlerGlobal=n,global.Howler=t,global.Howl=e,global.Sound=r):typeof window<"u"&&(window.HowlerGlobal=n,window.Howler=t,window.Howl=e,window.Sound=r)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var r=e._howls.length-1;r>=0;r--)e._howls[r].stereo(t);return e},HowlerGlobal.prototype.pos=function(t,e,r){var o=this;if(!o.ctx||!o.ctx.listener)return o;if(e=typeof e!="number"?o._pos[1]:e,r=typeof r!="number"?o._pos[2]:r,typeof t=="number")o._pos=[t,e,r],typeof o.ctx.listener.positionX<"u"?(o.ctx.listener.positionX.setTargetAtTime(o._pos[0],Howler.ctx.currentTime,.1),o.ctx.listener.positionY.setTargetAtTime(o._pos[1],Howler.ctx.currentTime,.1),o.ctx.listener.positionZ.setTargetAtTime(o._pos[2],Howler.ctx.currentTime,.1)):o.ctx.listener.setPosition(o._pos[0],o._pos[1],o._pos[2]);else return o._pos;return o},HowlerGlobal.prototype.orientation=function(t,e,r,o,i,s){var l=this;if(!l.ctx||!l.ctx.listener)return l;var c=l._orientation;if(e=typeof e!="number"?c[1]:e,r=typeof r!="number"?c[2]:r,o=typeof o!="number"?c[3]:o,i=typeof i!="number"?c[4]:i,s=typeof s!="number"?c[5]:s,typeof t=="number")l._orientation=[t,e,r,o,i,s],typeof l.ctx.listener.forwardX<"u"?(l.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),l.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),l.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),l.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),l.ctx.listener.upY.setTargetAtTime(i,Howler.ctx.currentTime,.1),l.ctx.listener.upZ.setTargetAtTime(s,Howler.ctx.currentTime,.1)):l.ctx.listener.setOrientation(t,e,r,o,i,s);else return c;return l},Howl.prototype.init=function(t){return function(e){var r=this;return r._orientation=e.orientation||[1,0,0],r._stereo=e.stereo||null,r._pos=e.pos||null,r._pannerAttr={coneInnerAngle:typeof e.coneInnerAngle<"u"?e.coneInnerAngle:360,coneOuterAngle:typeof e.coneOuterAngle<"u"?e.coneOuterAngle:360,coneOuterGain:typeof e.coneOuterGain<"u"?e.coneOuterGain:0,distanceModel:typeof e.distanceModel<"u"?e.distanceModel:"inverse",maxDistance:typeof e.maxDistance<"u"?e.maxDistance:1e4,panningModel:typeof e.panningModel<"u"?e.panningModel:"HRTF",refDistance:typeof e.refDistance<"u"?e.refDistance:1,rolloffFactor:typeof e.rolloffFactor<"u"?e.rolloffFactor:1},r._onstereo=e.onstereo?[{fn:e.onstereo}]:[],r._onpos=e.onpos?[{fn:e.onpos}]:[],r._onorientation=e.onorientation?[{fn:e.onorientation}]:[],t.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(t,e){var r=this;if(!r._webAudio)return r;if(r._state!=="loaded")return r._queue.push({event:"stereo",action:function(){r.stereo(t,e)}}),r;var o=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof e>"u")if(typeof t=="number")r._stereo=t,r._pos=[t,0,0];else return r._stereo;for(var i=r._getSoundIds(e),s=0;s<i.length;s++){var l=r._soundById(i[s]);if(l)if(typeof t=="number")l._stereo=t,l._pos=[t,0,0],l._node&&(l._pannerAttr.panningModel="equalpower",(!l._panner||!l._panner.pan)&&n(l,o),o==="spatial"?typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):l._panner.setPosition(t,0,0):l._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),r._emit("stereo",l._id);else return l._stereo}return r},Howl.prototype.pos=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"pos",action:function(){i.pos(t,e,r,o)}}),i;if(e=typeof e!="number"?0:e,r=typeof r!="number"?-.5:r,typeof o>"u")if(typeof t=="number")i._pos=[t,e,r];else return i._pos;for(var s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._pos=[t,e,r],c._node&&((!c._panner||c._panner.pan)&&n(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setPosition(t,e,r)),i._emit("pos",c._id);else return c._pos}return i},Howl.prototype.orientation=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"orientation",action:function(){i.orientation(t,e,r,o)}}),i;if(e=typeof e!="number"?i._orientation[1]:e,r=typeof r!="number"?i._orientation[2]:r,typeof o>"u")if(typeof t=="number")i._orientation=[t,e,r];else return i._orientation;for(var s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._orientation=[t,e,r],c._node&&(c._panner||(c._pos||(c._pos=i._pos||[0,0,-.5]),n(c,"spatial")),typeof c._panner.orientationX<"u"?(c._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setOrientation(t,e,r)),i._emit("orientation",c._id);else return c._orientation}return i},Howl.prototype.pannerAttr=function(){var t=this,e=arguments,r,o,i;if(!t._webAudio)return t;if(e.length===0)return t._pannerAttr;if(e.length===1)if(typeof e[0]=="object")r=e[0],typeof o>"u"&&(r.pannerAttr||(r.pannerAttr={coneInnerAngle:r.coneInnerAngle,coneOuterAngle:r.coneOuterAngle,coneOuterGain:r.coneOuterGain,distanceModel:r.distanceModel,maxDistance:r.maxDistance,refDistance:r.refDistance,rolloffFactor:r.rolloffFactor,panningModel:r.panningModel}),t._pannerAttr={coneInnerAngle:typeof r.pannerAttr.coneInnerAngle<"u"?r.pannerAttr.coneInnerAngle:t._coneInnerAngle,coneOuterAngle:typeof r.pannerAttr.coneOuterAngle<"u"?r.pannerAttr.coneOuterAngle:t._coneOuterAngle,coneOuterGain:typeof r.pannerAttr.coneOuterGain<"u"?r.pannerAttr.coneOuterGain:t._coneOuterGain,distanceModel:typeof r.pannerAttr.distanceModel<"u"?r.pannerAttr.distanceModel:t._distanceModel,maxDistance:typeof r.pannerAttr.maxDistance<"u"?r.pannerAttr.maxDistance:t._maxDistance,refDistance:typeof r.pannerAttr.refDistance<"u"?r.pannerAttr.refDistance:t._refDistance,rolloffFactor:typeof r.pannerAttr.rolloffFactor<"u"?r.pannerAttr.rolloffFactor:t._rolloffFactor,panningModel:typeof r.pannerAttr.panningModel<"u"?r.pannerAttr.panningModel:t._panningModel});else return i=t._soundById(parseInt(e[0],10)),i?i._pannerAttr:t._pannerAttr;else e.length===2&&(r=e[0],o=parseInt(e[1],10));for(var s=t._getSoundIds(o),l=0;l<s.length;l++)if(i=t._soundById(s[l]),i){var c=i._pannerAttr;c={coneInnerAngle:typeof r.coneInnerAngle<"u"?r.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:typeof r.coneOuterAngle<"u"?r.coneOuterAngle:c.coneOuterAngle,coneOuterGain:typeof r.coneOuterGain<"u"?r.coneOuterGain:c.coneOuterGain,distanceModel:typeof r.distanceModel<"u"?r.distanceModel:c.distanceModel,maxDistance:typeof r.maxDistance<"u"?r.maxDistance:c.maxDistance,refDistance:typeof r.refDistance<"u"?r.refDistance:c.refDistance,rolloffFactor:typeof r.rolloffFactor<"u"?r.rolloffFactor:c.rolloffFactor,panningModel:typeof r.panningModel<"u"?r.panningModel:c.panningModel};var p=i._panner;p?(p.coneInnerAngle=c.coneInnerAngle,p.coneOuterAngle=c.coneOuterAngle,p.coneOuterGain=c.coneOuterGain,p.distanceModel=c.distanceModel,p.maxDistance=c.maxDistance,p.refDistance=c.refDistance,p.rolloffFactor=c.rolloffFactor,p.panningModel=c.panningModel):(i._pos||(i._pos=t._pos||[0,0,-.5]),n(i,"spatial"))}return t},Sound.prototype.init=function(t){return function(){var e=this,r=e._parent;e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,t.call(this),e._stereo?r.stereo(e._stereo):e._pos&&r.pos(e._pos[0],e._pos[1],e._pos[2],e._id)}}(Sound.prototype.init),Sound.prototype.reset=function(t){return function(){var e=this,r=e._parent;return e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,e._stereo?r.stereo(e._stereo):e._pos?r.pos(e._pos[0],e._pos[1],e._pos[2],e._id):e._panner&&(e._panner.disconnect(0),e._panner=void 0,r._refreshBuffer(e)),t.call(this)}}(Sound.prototype.reset);var n=function(t,e){e=e||"spatial",e==="spatial"?(t._panner=Howler.ctx.createPanner(),t._panner.coneInnerAngle=t._pannerAttr.coneInnerAngle,t._panner.coneOuterAngle=t._pannerAttr.coneOuterAngle,t._panner.coneOuterGain=t._pannerAttr.coneOuterGain,t._panner.distanceModel=t._pannerAttr.distanceModel,t._panner.maxDistance=t._pannerAttr.maxDistance,t._panner.refDistance=t._pannerAttr.refDistance,t._panner.rolloffFactor=t._pannerAttr.rolloffFactor,t._panner.panningModel=t._pannerAttr.panningModel,typeof t._panner.positionX<"u"?(t._panner.positionX.setValueAtTime(t._pos[0],Howler.ctx.currentTime),t._panner.positionY.setValueAtTime(t._pos[1],Howler.ctx.currentTime),t._panner.positionZ.setValueAtTime(t._pos[2],Howler.ctx.currentTime)):t._panner.setPosition(t._pos[0],t._pos[1],t._pos[2]),typeof t._panner.orientationX<"u"?(t._panner.orientationX.setValueAtTime(t._orientation[0],Howler.ctx.currentTime),t._panner.orientationY.setValueAtTime(t._orientation[1],Howler.ctx.currentTime),t._panner.orientationZ.setValueAtTime(t._orientation[2],Howler.ctx.currentTime)):t._panner.setOrientation(t._orientation[0],t._orientation[1],t._orientation[2])):(t._panner=Howler.ctx.createStereoPanner(),t._panner.pan.setValueAtTime(t._stereo,Howler.ctx.currentTime)),t._panner.connect(t._node),t._paused||t._parent.pause(t._id,!0).play(t._id,!0)}})()});var Pm=Tc((Va,Cm)=>{(function(n,t){typeof Va=="object"&&typeof Cm<"u"?t(Va):typeof define=="function"&&define.amd?define(["exports"],t):t((n=typeof globalThis<"u"?globalThis:n||self).SVDJS={})})(Va,function(n){"use strict";n.SVD=function(t,e,r,o,i){if(e=e===void 0||e,r=r===void 0||r,i=1e-64/(o=o||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var s,l,c,p,a,u,d,f,m,h,g,x,v=t[0].length,A=t.length;if(A<v)throw new TypeError("Invalid matrix: m < n");for(var S=[],b=[],D=[],w=e==="f"?A:v,y=h=d=0;y<A;y++)b[y]=new Array(w).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(S[y]=d,m=0,c=y+1,s=y;s<A;s++)m+=Math.pow(b[s][y],2);if(m<i)d=0;else for(f=(u=b[y][y])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,b[y][y]=u-d,s=c;s<v;s++){for(m=0,l=y;l<A;l++)m+=b[l][y]*b[l][s];for(u=m/f,l=y;l<A;l++)b[l][s]=b[l][s]+u*b[l][y]}for(T[y]=d,m=0,s=c;s<v;s++)m+=Math.pow(b[y][s],2);if(m<i)d=0;else{for(f=(u=b[y][y+1])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,b[y][y+1]=u-d,s=c;s<v;s++)S[s]=b[y][s]/f;for(s=c;s<A;s++){for(m=0,l=c;l<v;l++)m+=b[s][l]*b[y][l];for(l=c;l<v;l++)b[s][l]=b[s][l]+m*S[l]}}h<(g=Math.abs(T[y])+Math.abs(S[y]))&&(h=g)}if(r)for(y=v-1;0<=y;y--){if(d!==0){for(f=b[y][y+1]*d,s=c;s<v;s++)D[s][y]=b[y][s]/f;for(s=c;s<v;s++){for(m=0,l=c;l<v;l++)m+=b[y][l]*D[l][s];for(l=c;l<v;l++)D[l][s]=D[l][s]+m*D[l][y]}}for(s=c;s<v;s++)D[y][s]=0,D[s][y]=0;D[y][y]=1,d=S[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<w;s++)b[y][s]=0;if(d!==0){for(f=b[y][y]*d,s=c;s<w;s++){for(m=0,l=c;l<A;l++)m+=b[l][y]*b[l][s];for(u=m/f,l=y;l<A;l++)b[l][s]=b[l][s]+u*b[l][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,l=v-1;0<=l;l--)for(var L=0;L<50;L++){for(I=!1,c=l;0<=c;c--){if(Math.abs(S[c])<=o){I=!0;break}if(Math.abs(T[c-1])<=o)break}if(!I){for(a=0,p=c-(m=1),y=c;y<l+1&&(u=m*S[y],S[y]=a*S[y],!(Math.abs(u)<=o));y++)if(d=T[y],T[y]=Math.sqrt(u*u+d*d),a=d/(f=T[y]),m=-u/f,e)for(s=0;s<A;s++)g=b[s][p],x=b[s][y],b[s][p]=g*a+x*m,b[s][y]=-g*m+x*a}if(x=T[l],c===l){if(x<0&&(T[l]=-x,r))for(s=0;s<v;s++)D[s][l]=-D[s][l];break}for(h=T[c],u=(((g=T[l-1])-x)*(g+x)+((d=S[l-1])-(f=S[l]))*(d+f))/(2*f*g),d=Math.sqrt(u*u+1),u=((h-x)*(h+x)+f*(g/(u<0?u-d:u+d)-f))/h,y=c+(m=a=1);y<l+1;y++){if(d=S[y],g=T[y],f=m*d,d*=a,x=Math.sqrt(u*u+f*f),u=h*(a=u/(S[y-1]=x))+d*(m=f/x),d=-h*m+d*a,f=g*m,g*=a,r)for(s=0;s<v;s++)h=D[s][y-1],x=D[s][y],D[s][y-1]=h*a+x*m,D[s][y]=-h*m+x*a;if(x=Math.sqrt(u*u+f*f),u=(a=u/(T[y-1]=x))*d+(m=f/x)*g,h=-m*d+a*g,e)for(s=0;s<A;s++)g=b[s][y-1],x=b[s][y],b[s][y-1]=g*a+x*m,b[s][y]=-g*m+x*a}S[c]=0,S[l]=u,T[l]=h}for(y=0;y<v;y++)T[y]<o&&(T[y]=0);return{u:b,q:T,v:D}},n.VERSION="1.1.1",Object.defineProperty(n,"__esModule",{value:!0})})});var WS={};Ac(WS,{default:()=>Fa});module.exports=ch(WS);var za=require("three");function Zi(n,t){return Object.setPrototypeOf(n,t),n}function Pc(n){return Array.isArray(n)?n:[n]}var uh=typeof global=="object"&&global&&global.Object===Object&&global,Qi=uh;var ph=typeof self=="object"&&self&&self.Object===Object&&self,dh=Qi||ph||Function("return this")(),Xe=dh;var fh=Xe.Symbol,gt=fh;var Lc=Object.prototype,mh=Lc.hasOwnProperty,hh=Lc.toString,kn=gt?gt.toStringTag:void 0;function gh(n){var t=mh.call(n,kn),e=n[kn];try{n[kn]=void 0;var r=!0}catch{}var o=hh.call(n);return r&&(t?n[kn]=e:delete n[kn]),o}var Ic=gh;var yh=Object.prototype,xh=yh.toString;function vh(n){return xh.call(n)}var Oc=vh;var bh="[object Null]",Sh="[object Undefined]",Mc=gt?gt.toStringTag:void 0;function wh(n){return n==null?n===void 0?Sh:bh:Mc&&Mc in Object(n)?Ic(n):Oc(n)}var Dt=wh;function _h(n){return n!=null&&typeof n=="object"}var dt=_h;var Th="[object Symbol]";function Ah(n){return typeof n=="symbol"||dt(n)&&Dt(n)==Th}var Eo=Ah;function Nh(n,t){for(var e=-1,r=n==null?0:n.length,o=Array(r);++e<r;)o[e]=t(n[e],e,n);return o}var Ji=Nh;var Ch=Array.isArray,Ve=Ch;var Ph=1/0,Dc=gt?gt.prototype:void 0,Bc=Dc?Dc.toString:void 0;function Ec(n){if(typeof n=="string")return n;if(Ve(n))return Ji(n,Ec)+"";if(Eo(n))return Bc?Bc.call(n):"";var t=n+"";return t=="0"&&1/n==-Ph?"-0":t}var Gc=Ec;function Lh(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}var Qe=Lh;function Ih(n){return n}var es=Ih;var Oh="[object AsyncFunction]",Mh="[object Function]",Dh="[object GeneratorFunction]",Bh="[object Proxy]";function Eh(n){if(!Qe(n))return!1;var t=Dt(n);return t==Mh||t==Dh||t==Oh||t==Bh}var Go=Eh;var Gh=Xe["__core-js_shared__"],ts=Gh;var Rc=function(){var n=/[^.]+$/.exec(ts&&ts.keys&&ts.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function Rh(n){return!!Rc&&Rc in n}var Vc=Rh;var Vh=Function.prototype,Fh=Vh.toString;function zh(n){if(n!=null){try{return Fh.call(n)}catch{}try{return n+""}catch{}}return""}var Or=zh;var Uh=/[\\^$.*+?()[\]{}|]/g,jh=/^\[object .+?Constructor\]$/,kh=Function.prototype,Hh=Object.prototype,Wh=kh.toString,qh=Hh.hasOwnProperty,$h=RegExp("^"+Wh.call(qh).replace(Uh,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Xh(n){if(!Qe(n)||Vc(n))return!1;var t=Go(n)?$h:jh;return t.test(Or(n))}var Fc=Xh;function Yh(n,t){return n?.[t]}var zc=Yh;function Kh(n,t){var e=zc(n,t);return Fc(e)?e:void 0}var _t=Kh;var Zh=_t(Xe,"WeakMap"),rs=Zh;var Uc=Object.create,Qh=function(){function n(){}return function(t){if(!Qe(t))return{};if(Uc)return Uc(t);n.prototype=t;var e=new n;return n.prototype=void 0,e}}(),jc=Qh;function Jh(n,t,e){switch(e.length){case 0:return n.call(t);case 1:return n.call(t,e[0]);case 2:return n.call(t,e[0],e[1]);case 3:return n.call(t,e[0],e[1],e[2])}return n.apply(t,e)}var kc=Jh;function eg(n,t){var e=-1,r=n.length;for(t||(t=Array(r));++e<r;)t[e]=n[e];return t}var os=eg;var tg=800,rg=16,og=Date.now;function ng(n){var t=0,e=0;return function(){var r=og(),o=rg-(r-e);if(e=r,o>0){if(++t>=tg)return arguments[0]}else t=0;return n.apply(void 0,arguments)}}var Hc=ng;function ig(n){return function(){return n}}var Wc=ig;var sg=function(){try{var n=_t(Object,"defineProperty");return n({},"",{}),n}catch{}}(),Ro=sg;var ag=Ro?function(n,t){return Ro(n,"toString",{configurable:!0,enumerable:!1,value:Wc(t),writable:!0})}:es,qc=ag;var lg=Hc(qc),ns=lg;function cg(n,t){for(var e=-1,r=n==null?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}var $c=cg;var ug=9007199254740991,pg=/^(?:0|[1-9]\d*)$/;function dg(n,t){var e=typeof n;return t=t??ug,!!t&&(e=="number"||e!="symbol"&&pg.test(n))&&n>-1&&n%1==0&&n<t}var Ur=dg;function fg(n,t,e){t=="__proto__"&&Ro?Ro(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}var Vo=fg;function mg(n,t){return n===t||n!==n&&t!==t}var jr=mg;var hg=Object.prototype,gg=hg.hasOwnProperty;function yg(n,t,e){var r=n[t];(!(gg.call(n,t)&&jr(r,e))||e===void 0&&!(t in n))&&Vo(n,t,e)}var Fo=yg;function xg(n,t,e,r){var o=!e;e||(e={});for(var i=-1,s=t.length;++i<s;){var l=t[i],c=r?r(e[l],n[l],l,e,n):void 0;c===void 0&&(c=n[l]),o?Vo(e,l,c):Fo(e,l,c)}return e}var Ft=xg;var Xc=Math.max;function vg(n,t,e){return t=Xc(t===void 0?n.length-1:t,0),function(){for(var r=arguments,o=-1,i=Xc(r.length-t,0),s=Array(i);++o<i;)s[o]=r[t+o];o=-1;for(var l=Array(t+1);++o<t;)l[o]=r[o];return l[t]=e(s),kc(n,this,l)}}var is=vg;function bg(n,t){return ns(is(n,t,es),n+"")}var Yc=bg;var Sg=9007199254740991;function wg(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=Sg}var zo=wg;function _g(n){return n!=null&&zo(n.length)&&!Go(n)}var kr=_g;function Tg(n,t,e){if(!Qe(e))return!1;var r=typeof t;return(r=="number"?kr(e)&&Ur(t,e.length):r=="string"&&t in e)?jr(e[t],n):!1}var Kc=Tg;function Ag(n){return Yc(function(t,e){var r=-1,o=e.length,i=o>1?e[o-1]:void 0,s=o>2?e[2]:void 0;for(i=n.length>3&&typeof i=="function"?(o--,i):void 0,s&&Kc(e[0],e[1],s)&&(i=o<3?void 0:i,o=1),t=Object(t);++r<o;){var l=e[r];l&&n(t,l,r,i)}return t})}var Zc=Ag;var Ng=Object.prototype;function Cg(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||Ng;return n===e}var Uo=Cg;function Pg(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}var Qc=Pg;var Lg="[object Arguments]";function Ig(n){return dt(n)&&Dt(n)==Lg}var ja=Ig;var Jc=Object.prototype,Og=Jc.hasOwnProperty,Mg=Jc.propertyIsEnumerable,Dg=ja(function(){return arguments}())?ja:function(n){return dt(n)&&Og.call(n,"callee")&&!Mg.call(n,"callee")},Mr=Dg;function Bg(){return!1}var eu=Bg;var ou=typeof exports=="object"&&exports&&!exports.nodeType&&exports,tu=ou&&typeof module=="object"&&module&&!module.nodeType&&module,Eg=tu&&tu.exports===ou,ru=Eg?Xe.Buffer:void 0,Gg=ru?ru.isBuffer:void 0,Rg=Gg||eu,jo=Rg;var Vg="[object Arguments]",Fg="[object Array]",zg="[object Boolean]",Ug="[object Date]",jg="[object Error]",kg="[object Function]",Hg="[object Map]",Wg="[object Number]",qg="[object Object]",$g="[object RegExp]",Xg="[object Set]",Yg="[object String]",Kg="[object WeakMap]",Zg="[object ArrayBuffer]",Qg="[object DataView]",Jg="[object Float32Array]",ey="[object Float64Array]",ty="[object Int8Array]",ry="[object Int16Array]",oy="[object Int32Array]",ny="[object Uint8Array]",iy="[object Uint8ClampedArray]",sy="[object Uint16Array]",ay="[object Uint32Array]",Me={};Me[Jg]=Me[ey]=Me[ty]=Me[ry]=Me[oy]=Me[ny]=Me[iy]=Me[sy]=Me[ay]=!0;Me[Vg]=Me[Fg]=Me[Zg]=Me[zg]=Me[Qg]=Me[Ug]=Me[jg]=Me[kg]=Me[Hg]=Me[Wg]=Me[qg]=Me[$g]=Me[Xg]=Me[Yg]=Me[Kg]=!1;function ly(n){return dt(n)&&zo(n.length)&&!!Me[Dt(n)]}var nu=ly;function cy(n){return function(t){return n(t)}}var ko=cy;var iu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Hn=iu&&typeof module=="object"&&module&&!module.nodeType&&module,uy=Hn&&Hn.exports===iu,ka=uy&&Qi.process,py=function(){try{var n=Hn&&Hn.require&&Hn.require("util").types;return n||ka&&ka.binding&&ka.binding("util")}catch{}}(),Dr=py;var su=Dr&&Dr.isTypedArray,dy=su?ko(su):nu,ss=dy;var fy=Object.prototype,my=fy.hasOwnProperty;function hy(n,t){var e=Ve(n),r=!e&&Mr(n),o=!e&&!r&&jo(n),i=!e&&!r&&!o&&ss(n),s=e||r||o||i,l=s?Qc(n.length,String):[],c=l.length;for(var p in n)(t||my.call(n,p))&&!(s&&(p=="length"||o&&(p=="offset"||p=="parent")||i&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||Ur(p,c)))&&l.push(p);return l}var as=hy;function gy(n,t){return function(e){return n(t(e))}}var ls=gy;var yy=ls(Object.keys,Object),au=yy;var xy=Object.prototype,vy=xy.hasOwnProperty;function by(n){if(!Uo(n))return au(n);var t=[];for(var e in Object(n))vy.call(n,e)&&e!="constructor"&&t.push(e);return t}var lu=by;function Sy(n){return kr(n)?as(n):lu(n)}var Ho=Sy;function wy(n){var t=[];if(n!=null)for(var e in Object(n))t.push(e);return t}var cu=wy;var _y=Object.prototype,Ty=_y.hasOwnProperty;function Ay(n){if(!Qe(n))return cu(n);var t=Uo(n),e=[];for(var r in n)r=="constructor"&&(t||!Ty.call(n,r))||e.push(r);return e}var uu=Ay;function Ny(n){return kr(n)?as(n,!0):uu(n)}var ir=Ny;var Cy=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Py=/^\w*$/;function Ly(n,t){if(Ve(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||Eo(n)?!0:Py.test(n)||!Cy.test(n)||t!=null&&n in Object(t)}var pu=Ly;var Iy=_t(Object,"create"),Br=Iy;function Oy(){this.__data__=Br?Br(null):{},this.size=0}var du=Oy;function My(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}var fu=My;var Dy="__lodash_hash_undefined__",By=Object.prototype,Ey=By.hasOwnProperty;function Gy(n){var t=this.__data__;if(Br){var e=t[n];return e===Dy?void 0:e}return Ey.call(t,n)?t[n]:void 0}var mu=Gy;var Ry=Object.prototype,Vy=Ry.hasOwnProperty;function Fy(n){var t=this.__data__;return Br?t[n]!==void 0:Vy.call(t,n)}var hu=Fy;var zy="__lodash_hash_undefined__";function Uy(n,t){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=Br&&t===void 0?zy:t,this}var gu=Uy;function Wo(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}Wo.prototype.clear=du;Wo.prototype.delete=fu;Wo.prototype.get=mu;Wo.prototype.has=hu;Wo.prototype.set=gu;var Ha=Wo;function jy(){this.__data__=[],this.size=0}var yu=jy;function ky(n,t){for(var e=n.length;e--;)if(jr(n[e][0],t))return e;return-1}var Hr=ky;var Hy=Array.prototype,Wy=Hy.splice;function qy(n){var t=this.__data__,e=Hr(t,n);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():Wy.call(t,e,1),--this.size,!0}var xu=qy;function $y(n){var t=this.__data__,e=Hr(t,n);return e<0?void 0:t[e][1]}var vu=$y;function Xy(n){return Hr(this.__data__,n)>-1}var bu=Xy;function Yy(n,t){var e=this.__data__,r=Hr(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}var Su=Yy;function qo(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}qo.prototype.clear=yu;qo.prototype.delete=xu;qo.prototype.get=vu;qo.prototype.has=bu;qo.prototype.set=Su;var Wr=qo;var Ky=_t(Xe,"Map"),qr=Ky;function Zy(){this.size=0,this.__data__={hash:new Ha,map:new(qr||Wr),string:new Ha}}var wu=Zy;function Qy(n){var t=typeof n;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?n!=="__proto__":n===null}var _u=Qy;function Jy(n,t){var e=n.__data__;return _u(t)?e[typeof t=="string"?"string":"hash"]:e.map}var $r=Jy;function ex(n){var t=$r(this,n).delete(n);return this.size-=t?1:0,t}var Tu=ex;function tx(n){return $r(this,n).get(n)}var Au=tx;function rx(n){return $r(this,n).has(n)}var Nu=rx;function ox(n,t){var e=$r(this,n),r=e.size;return e.set(n,t),this.size+=e.size==r?0:1,this}var Cu=ox;function $o(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}$o.prototype.clear=wu;$o.prototype.delete=Tu;$o.prototype.get=Au;$o.prototype.has=Nu;$o.prototype.set=Cu;var Wn=$o;var nx="Expected a function";function Wa(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError(nx);var e=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=e.cache;if(i.has(o))return i.get(o);var s=n.apply(this,r);return e.cache=i.set(o,s)||i,s};return e.cache=new(Wa.Cache||Wn),e}Wa.Cache=Wn;var Pu=Wa;var ix=500;function sx(n){var t=Pu(n,function(r){return e.size===ix&&e.clear(),r}),e=t.cache;return t}var Lu=sx;var ax=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,lx=/\\(\\)?/g,cx=Lu(function(n){var t=[];return n.charCodeAt(0)===46&&t.push(""),n.replace(ax,function(e,r,o,i){t.push(o?i.replace(lx,"$1"):r||e)}),t}),Iu=cx;function ux(n){return n==null?"":Gc(n)}var Ou=ux;function px(n,t){return Ve(n)?n:pu(n,t)?[n]:Iu(Ou(n))}var zt=px;var dx=1/0;function fx(n){if(typeof n=="string"||Eo(n))return n;var t=n+"";return t=="0"&&1/n==-dx?"-0":t}var Xr=fx;function mx(n,t){t=zt(t,n);for(var e=0,r=t.length;n!=null&&e<r;)n=n[Xr(t[e++])];return e&&e==r?n:void 0}var cs=mx;function hx(n,t){for(var e=-1,r=t.length,o=n.length;++e<r;)n[o+e]=t[e];return n}var Xo=hx;var Mu=gt?gt.isConcatSpreadable:void 0;function gx(n){return Ve(n)||Mr(n)||!!(Mu&&n&&n[Mu])}var Du=gx;function Bu(n,t,e,r,o){var i=-1,s=n.length;for(e||(e=Du),o||(o=[]);++i<s;){var l=n[i];t>0&&e(l)?t>1?Bu(l,t-1,e,r,o):Xo(o,l):r||(o[o.length]=l)}return o}var Eu=Bu;function yx(n){var t=n==null?0:n.length;return t?Eu(n,1):[]}var Gu=yx;function xx(n){return ns(is(n,void 0,Gu),n+"")}var us=xx;var vx=ls(Object.getPrototypeOf,Object),Yo=vx;var bx="[object Object]",Sx=Function.prototype,wx=Object.prototype,Ru=Sx.toString,_x=wx.hasOwnProperty,Tx=Ru.call(Object);function Ax(n){if(!dt(n)||Dt(n)!=bx)return!1;var t=Yo(n);if(t===null)return!0;var e=_x.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Ru.call(e)==Tx}var ps=Ax;function Nx(n,t,e){var r=-1,o=n.length;t<0&&(t=-t>o?0:o+t),e=e>o?o:e,e<0&&(e+=o),o=t>e?0:e-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=n[r+t];return i}var Vu=Nx;function Cx(){this.__data__=new Wr,this.size=0}var Fu=Cx;function Px(n){var t=this.__data__,e=t.delete(n);return this.size=t.size,e}var zu=Px;function Lx(n){return this.__data__.get(n)}var Uu=Lx;function Ix(n){return this.__data__.has(n)}var ju=Ix;var Ox=200;function Mx(n,t){var e=this.__data__;if(e instanceof Wr){var r=e.__data__;if(!qr||r.length<Ox-1)return r.push([n,t]),this.size=++e.size,this;e=this.__data__=new Wn(r)}return e.set(n,t),this.size=e.size,this}var ku=Mx;function Ko(n){var t=this.__data__=new Wr(n);this.size=t.size}Ko.prototype.clear=Fu;Ko.prototype.delete=zu;Ko.prototype.get=Uu;Ko.prototype.has=ju;Ko.prototype.set=ku;var ds=Ko;function Dx(n,t){return n&&Ft(t,Ho(t),n)}var Hu=Dx;function Bx(n,t){return n&&Ft(t,ir(t),n)}var Wu=Bx;var Yu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,qu=Yu&&typeof module=="object"&&module&&!module.nodeType&&module,Ex=qu&&qu.exports===Yu,$u=Ex?Xe.Buffer:void 0,Xu=$u?$u.allocUnsafe:void 0;function Gx(n,t){if(t)return n.slice();var e=n.length,r=Xu?Xu(e):new n.constructor(e);return n.copy(r),r}var fs=Gx;function Rx(n,t){for(var e=-1,r=n==null?0:n.length,o=0,i=[];++e<r;){var s=n[e];t(s,e,n)&&(i[o++]=s)}return i}var Ku=Rx;function Vx(){return[]}var ms=Vx;var Fx=Object.prototype,zx=Fx.propertyIsEnumerable,Zu=Object.getOwnPropertySymbols,Ux=Zu?function(n){return n==null?[]:(n=Object(n),Ku(Zu(n),function(t){return zx.call(n,t)}))}:ms,Zo=Ux;function jx(n,t){return Ft(n,Zo(n),t)}var Qu=jx;var kx=Object.getOwnPropertySymbols,Hx=kx?function(n){for(var t=[];n;)Xo(t,Zo(n)),n=Yo(n);return t}:ms,hs=Hx;function Wx(n,t){return Ft(n,hs(n),t)}var Ju=Wx;function qx(n,t,e){var r=t(n);return Ve(n)?r:Xo(r,e(n))}var gs=qx;function $x(n){return gs(n,Ho,Zo)}var ep=$x;function Xx(n){return gs(n,ir,hs)}var ys=Xx;var Yx=_t(Xe,"DataView"),xs=Yx;var Kx=_t(Xe,"Promise"),vs=Kx;var Zx=_t(Xe,"Set"),bs=Zx;var tp="[object Map]",Qx="[object Object]",rp="[object Promise]",op="[object Set]",np="[object WeakMap]",ip="[object DataView]",Jx=Or(xs),e0=Or(qr),t0=Or(vs),r0=Or(bs),o0=Or(rs),mo=Dt;(xs&&mo(new xs(new ArrayBuffer(1)))!=ip||qr&&mo(new qr)!=tp||vs&&mo(vs.resolve())!=rp||bs&&mo(new bs)!=op||rs&&mo(new rs)!=np)&&(mo=function(n){var t=Dt(n),e=t==Qx?n.constructor:void 0,r=e?Or(e):"";if(r)switch(r){case Jx:return ip;case e0:return tp;case t0:return rp;case r0:return op;case o0:return np}return t});var Qo=mo;var n0=Object.prototype,i0=n0.hasOwnProperty;function s0(n){var t=n.length,e=new n.constructor(t);return t&&typeof n[0]=="string"&&i0.call(n,"index")&&(e.index=n.index,e.input=n.input),e}var sp=s0;var a0=Xe.Uint8Array,qa=a0;function l0(n){var t=new n.constructor(n.byteLength);return new qa(t).set(new qa(n)),t}var Jo=l0;function c0(n,t){var e=t?Jo(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var ap=c0;var u0=/\w*$/;function p0(n){var t=new n.constructor(n.source,u0.exec(n));return t.lastIndex=n.lastIndex,t}var lp=p0;var cp=gt?gt.prototype:void 0,up=cp?cp.valueOf:void 0;function d0(n){return up?Object(up.call(n)):{}}var pp=d0;function f0(n,t){var e=t?Jo(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}var Ss=f0;var m0="[object Boolean]",h0="[object Date]",g0="[object Map]",y0="[object Number]",x0="[object RegExp]",v0="[object Set]",b0="[object String]",S0="[object Symbol]",w0="[object ArrayBuffer]",_0="[object DataView]",T0="[object Float32Array]",A0="[object Float64Array]",N0="[object Int8Array]",C0="[object Int16Array]",P0="[object Int32Array]",L0="[object Uint8Array]",I0="[object Uint8ClampedArray]",O0="[object Uint16Array]",M0="[object Uint32Array]";function D0(n,t,e){var r=n.constructor;switch(t){case w0:return Jo(n);case m0:case h0:return new r(+n);case _0:return ap(n,e);case T0:case A0:case N0:case C0:case P0:case L0:case I0:case O0:case M0:return Ss(n,e);case g0:return new r;case y0:case b0:return new r(n);case x0:return lp(n);case v0:return new r;case S0:return pp(n)}}var dp=D0;function B0(n){return typeof n.constructor=="function"&&!Uo(n)?jc(Yo(n)):{}}var ws=B0;var E0="[object Map]";function G0(n){return dt(n)&&Qo(n)==E0}var fp=G0;var mp=Dr&&Dr.isMap,R0=mp?ko(mp):fp,hp=R0;var V0="[object Set]";function F0(n){return dt(n)&&Qo(n)==V0}var gp=F0;var yp=Dr&&Dr.isSet,z0=yp?ko(yp):gp,xp=z0;var U0=1,j0=2,k0=4,vp="[object Arguments]",H0="[object Array]",W0="[object Boolean]",q0="[object Date]",$0="[object Error]",bp="[object Function]",X0="[object GeneratorFunction]",Y0="[object Map]",K0="[object Number]",Sp="[object Object]",Z0="[object RegExp]",Q0="[object Set]",J0="[object String]",ev="[object Symbol]",tv="[object WeakMap]",rv="[object ArrayBuffer]",ov="[object DataView]",nv="[object Float32Array]",iv="[object Float64Array]",sv="[object Int8Array]",av="[object Int16Array]",lv="[object Int32Array]",cv="[object Uint8Array]",uv="[object Uint8ClampedArray]",pv="[object Uint16Array]",dv="[object Uint32Array]",Ie={};Ie[vp]=Ie[H0]=Ie[rv]=Ie[ov]=Ie[W0]=Ie[q0]=Ie[nv]=Ie[iv]=Ie[sv]=Ie[av]=Ie[lv]=Ie[Y0]=Ie[K0]=Ie[Sp]=Ie[Z0]=Ie[Q0]=Ie[J0]=Ie[ev]=Ie[cv]=Ie[uv]=Ie[pv]=Ie[dv]=!0;Ie[$0]=Ie[bp]=Ie[tv]=!1;function _s(n,t,e,r,o,i){var s,l=t&U0,c=t&j0,p=t&k0;if(e&&(s=o?e(n,r,o,i):e(n)),s!==void 0)return s;if(!Qe(n))return n;var a=Ve(n);if(a){if(s=sp(n),!l)return os(n,s)}else{var u=Qo(n),d=u==bp||u==X0;if(jo(n))return fs(n,l);if(u==Sp||u==vp||d&&!o){if(s=c||d?{}:ws(n),!l)return c?Ju(n,Wu(s,n)):Qu(n,Hu(s,n))}else{if(!Ie[u])return o?n:{};s=dp(n,u,l)}}i||(i=new ds);var f=i.get(n);if(f)return f;i.set(n,s),xp(n)?n.forEach(function(g){s.add(_s(g,t,e,g,n,i))}):hp(n)&&n.forEach(function(g,x){s.set(x,_s(g,t,e,x,n,i))});var m=p?c?ys:ep:c?ir:Ho,h=a?void 0:m(n);return $c(h||n,function(g,x){h&&(x=g,g=n[x]),Fo(s,x,_s(g,t,e,x,n,i))}),s}var Ts=_s;var fv=1,mv=4;function hv(n){return Ts(n,fv|mv)}var qn=hv;function gv(n,t){return n!=null&&t in Object(n)}var wp=gv;function yv(n,t,e){t=zt(t,n);for(var r=-1,o=t.length,i=!1;++r<o;){var s=Xr(t[r]);if(!(i=n!=null&&e(n,s)))break;n=n[s]}return i||++r!=o?i:(o=n==null?0:n.length,!!o&&zo(o)&&Ur(s,o)&&(Ve(n)||Mr(n)))}var _p=yv;function xv(n,t){return n!=null&&_p(n,t,wp)}var Tp=xv;function vv(n){return function(t,e,r){for(var o=-1,i=Object(t),s=r(t),l=s.length;l--;){var c=s[n?l:++o];if(e(i[c],c,i)===!1)break}return t}}var Ap=vv;var bv=Ap(),Np=bv;function Sv(n,t,e){(e!==void 0&&!jr(n[t],e)||e===void 0&&!(t in n))&&Vo(n,t,e)}var $n=Sv;function wv(n){return dt(n)&&kr(n)}var Cp=wv;function _v(n,t){if(!(t==="constructor"&&typeof n[t]=="function")&&t!="__proto__")return n[t]}var Xn=_v;function Tv(n){return Ft(n,ir(n))}var Pp=Tv;function Av(n,t,e,r,o,i,s){var l=Xn(n,e),c=Xn(t,e),p=s.get(c);if(p){$n(n,e,p);return}var a=i?i(l,c,e+"",n,t,s):void 0,u=a===void 0;if(u){var d=Ve(c),f=!d&&jo(c),m=!d&&!f&&ss(c);a=c,d||f||m?Ve(l)?a=l:Cp(l)?a=os(l):f?(u=!1,a=fs(c,!0)):m?(u=!1,a=Ss(c,!0)):a=[]:ps(c)||Mr(c)?(a=l,Mr(l)?a=Pp(l):(!Qe(l)||Go(l))&&(a=ws(c))):u=!1}u&&(s.set(c,a),o(a,c,r,i,s),s.delete(c)),$n(n,e,a)}var Lp=Av;function Ip(n,t,e,r,o){n!==t&&Np(t,function(i,s){if(o||(o=new ds),Qe(i))Lp(n,t,s,e,Ip,r,o);else{var l=r?r(Xn(n,s),i,s+"",n,t,o):void 0;l===void 0&&(l=i),$n(n,s,l)}},ir)}var Op=Ip;function Nv(n){var t=n==null?0:n.length;return t?n[t-1]:void 0}var Mp=Nv;function Cv(n,t){return t.length<2?n:cs(n,Vu(t,0,-1))}var Dp=Cv;var Pv=Zc(function(n,t,e){Op(n,t,e)}),ho=Pv;function Lv(n,t){return t=zt(t,n),n=Dp(n,t),n==null||delete n[Xr(Mp(t))]}var Bp=Lv;function Iv(n){return ps(n)?void 0:n}var Ep=Iv;var Ov=1,Mv=2,Dv=4,Bv=us(function(n,t){var e={};if(n==null)return e;var r=!1;t=Ji(t,function(i){return i=zt(i,n),r||(r=i.length>1),i}),Ft(n,ys(n),e),r&&(e=Ts(e,Ov|Mv|Dv,Ep));for(var o=t.length;o--;)Bp(e,t[o]);return e}),en=Bv;function Ev(n,t,e,r){if(!Qe(n))return n;t=zt(t,n);for(var o=-1,i=t.length,s=i-1,l=n;l!=null&&++o<i;){var c=Xr(t[o]),p=e;if(c==="__proto__"||c==="constructor"||c==="prototype")return n;if(o!=s){var a=l[c];p=r?r(a,c,l):void 0,p===void 0&&(p=Qe(a)?a:Ur(t[o+1])?[]:{})}Fo(l,c,p),l=l[c]}return n}var Gp=Ev;function Gv(n,t,e){for(var r=-1,o=t.length,i={};++r<o;){var s=t[r],l=cs(n,s);e(l,s)&&Gp(i,zt(s,n),l)}return i}var Rp=Gv;function Rv(n,t){return Rp(n,t,function(e,r){return Tp(n,r)})}var Vp=Rv;var Vv=us(function(n,t){return n==null?{}:Vp(n,t)}),$a=Vv;var tn;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(tn||(tn={}));var go;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:o.DefaultUp,isUpVectorFlipped:!1,targetOffset:o.DefaultTargetOffset};function r(i){return i.type==="PerspectiveCamera"?i.perspective.zoom:i.orthographic.zoom}o.getZoom=r})(go||(go={}));var Fp;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i]}e.lerp=t})(Fp||(Fp={}));var rn;(o=>{function n(i,s){return i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]}o.isEqual=n;function t(i,s){return[i[0]+s[0],i[1]+s[1],i[2]+s[2]]}o.add=t;function e(i,s){return[i[0]-s[0],i[1]-s[1],i[2]-s[2]]}o.sub=e;function r(i,s,l){return[i[0]+(s[0]-i[0])*l,i[1]+(s[1]-i[1])*l,i[2]+(s[2]-i[2])*l]}o.lerp=r})(rn||(rn={}));var zp;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]&&r[2]===o[2]&&r[3]===o[3]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i,r[2]+(o[2]-r[2])*i,r[3]+(o[3]-r[3])*i]}e.lerp=t})(zp||(zp={}));var Yr;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(i,s){for(let l=0;l<16;l++)if(i[l]!==s[l])return!1;return!0}o.isEqual=t;function e(i){return i??o.identity}o.simplify=e;function r(i,s){let l=s.slice(0);for(var c=0,p=s.length;c<p;c+=3){let a=i[3]*s[c]+i[7]*s[c+1]+i[11]*s[c+2]+i[15];l[c]=(i[0]*s[c]+i[4]*s[c+1]+i[8]*s[c+2]+i[12])/a,l[c+1]=(i[1]*s[c]+i[5]*s[c+1]+i[9]*s[c+2]+i[13])/a,l[c+2]=(i[2]*s[c]+i[6]*s[c+1]+i[10]*s[c+2]+i[14])/a}return l}o.applyMatrix4=r})(Yr||(Yr={}));var Tt;(c=>{c.white={r:1,g:1,b:1},c.red={r:1,g:0,b:0},c.black={r:0,g:0,b:0};function r(p){return{r:Math.round(p.r*255),g:Math.round(p.g*255),b:Math.round(p.b*255),a:1}}c.toRgb255a1=r;function o(p){return{r:p.r,g:p.g,b:p.b}}c.clone=o;function i(p){return p=Math.floor(p),{r:(p>>16&255)/255,g:(p>>8&255)/255,b:(p&255)/255}}c.fromHex=i;function s(p,a){return p.r===a.r&&p.g===a.g&&p.b===a.b}c.equals=s;function l(p,a,u){return{r:p.r+(a.r-p.r)*u,g:p.g+(a.g-p.g)*u,b:p.b+(a.b-p.b)*u}}c.lerp=l})(Tt||(Tt={}));var Bt;(l=>{l.white={...Tt.white,a:1},l.transparent={...Tt.white,a:0};function e(c){return{r:c[0],g:c[1],b:c[2],a:c[3]}}l.from0to1=e;function r(c,p){return{...Tt.fromHex(c),a:p}}l.fromHexAndA=r;function o(c){return{r:Math.round(c.r*255),g:Math.round(c.g*255),b:Math.round(c.b*255),a:c.a}}l.toRgb255a1=o;function i(c,p){return Tt.equals(c,p)&&c.a===p.a}l.equals=i;function s(c,p,a){return{r:c.r+(p.r-c.r)*a,g:c.g+(p.g-c.g)*a,b:c.b+(p.b-c.b)*a,a:c.a+(p.a-c.a)*a}}l.lerp=s})(Bt||(Bt={}));var As;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(As||(As={}));var Up;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(Up||(Up={}));var jp;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(jp||(jp={}));var Ns;(t=>{function n(e,r=.1){return{type:"radial",hideBase:!1,count:3,radial:{radius:Math.max(e[0],e[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},linear:{scale:[1,1,1],rotation:[0,0,0],position:[e[0]+e[0]*r,0,0]},grid:{count:[2,2,2],size:e.map(o=>o*(1+r)),useCenter:!0}}}t.defaultData=n})(Ns||(Ns={}));var Ye=class{modifyById(t,e){let r=this;if(r[t]===void 0)throw new Error("not expected");{let i={...r,[t]:e};return Object.setPrototypeOf(i,Ye.prototype),i}}add(t,e){return this.runOp({type:1,id:t,data:e})?.data??this}runOp(t){let e=this;if(t.type===1){let r=e[t.id],o;r===void 0?o={type:2,id:t.id}:o={type:1,id:t.id,data:r};let{id:i,data:s}=t,l={...e,[i]:s};return Object.setPrototypeOf(l,Ye.prototype),{data:l,actual:t,reverse:o}}else if(t.type===2){let{id:r}=t,o=e[r];if(o===void 0)return null;{let i={...e};return Object.setPrototypeOf(i,Ye.prototype),delete i[r],{data:i,actual:t,reverse:{type:1,id:r,data:o}}}}throw new Error("illegal arg")}};function Yn(n){if(n.deepFreeze!==void 0){n.deepFreeze(n);return}let t=Object.getOwnPropertyNames(n);for(let e of t){let r=n[e];r&&typeof r=="object"&&Yn(r)}return Object.freeze(n)}function kp(n,t){let e=0;for(;e<n.length&&e<t.length;){if(n[e]<t[e])return-1;if(n[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==n.length?1:0}var Cs=class extends Error{};function sr(n,t,e){if(n===void 0?t===void 0?(n=0,t=10):n=t-10:t===void 0&&(t=n+10),n>t){let i=n;n=t,t=i}let r=[],o=1/(e+1);for(let i=0;i<e;i++){let s=n+(t-n)*(i+.75+Math.random()*.5)*o;r.push(s)}return r}function Ps(n){return n instanceof Uint8Array||n instanceof Uint16Array||n instanceof Uint32Array||n instanceof Int8Array||n instanceof Int16Array||n instanceof Int32Array||n instanceof Float32Array||n instanceof Float64Array}function Hp(){return typeof process<"u"}function Wp(n,t){for(let e of n)t(e.id,e.data),Wp(e.children,t)}function qp(n,t){t(n.id,n.data);for(let e of n.children)qp(e,t)}var Ut=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Ut.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Yn(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&&qp(o,r)}}traverse(e){Wp(this,e)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(e){return this.fillCaches(),this.parentCaches.get(e)}childrenArray(e){return e===null?this:this.get(e).children}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this.parent(e),s=this.childrenArray(i),l=s.findIndex(a=>a.id===e);if(l<0)throw new Error("not expected");let c=s[l];return s=[...s],s[l]={...c,data:r},this.modifyArrayBy(i,s)}}modifyArrayBy(e,r){let o=e,i=r;for(;o!==null;){let l=i,c=o;if(o=this.parent(o),o===void 0)throw new Error;i=this.childrenArray(o);let p=i.findIndex(a=>a.id===c);if(p<0)throw new Error;i=[...i],i[p]={...i[p],children:l}}Object.setPrototypeOf(i,Ut.prototype);let s=i;return s.fillCaches(),s}runOp(e){switch(e.type){case 7:return this.addOp(e);case 8:return this.deleteOp(e);case 9:return this.moveOp(e)}}checkDuplicatedIdRec({id:e,children:r}){if(this.get(e)!==void 0)return!0;for(let o of r)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:r,fi:o,id:i,data:s,children:l}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let c=r,p=this.childrenArray(c),a={fi:o,id:i,data:s,children:l};return p=[...p,a],p.sort((d,f)=>d.fi-f.fi),e.localIndex=p.indexOf(a),{data:this.modifyArrayBy(c,p),actual:e,reverse:{type:8,id:i}}}}deleteOp(e){let{id:r}=e;if(this.get(r)===null)return null;{let o=this.parent(r);if(o===void 0)return null;let i=this.childrenArray(o),s=i.findIndex(p=>p.id===r);e.localIndex=s,i=[...i];let l=i.splice(s,1)[0];return{data:this.modifyArrayBy(o,i),actual:e,reverse:{type:7,...l,parent:o}}}}moveOp(e){let{parent:r,fi:o,id:i}=e;if(r!==null&&this.get(r)===void 0)return this.deleteOp({type:8,id:i});if(r!==null){let f=r;for(;f!==null;){if(f===void 0)throw new Error;if(f===i)throw new Cs("cyclic tree");f=this.parent(f)}}let s=this.parent(i);if(s===void 0)return null;let l=s,c=this.childrenArray(s),p=c.findIndex(f=>f.id===i);c=[...c];let a=c.splice(p,1)[0],u=this.modifyArrayBy(s,c);s=r,c=u.childrenArray(s);let d=a.fi;return a={...a,fi:o},c=[...c,a],c.sort((f,m)=>f.fi-m.fi),e.localIndex=c.indexOf(a),u=u.modifyArrayBy(s,c),{data:u,actual:e,reverse:{type:9,parent:l,fi:d,id:i}}}previous(e,r){if(r===null){let i=this.childrenArray(e);return i.length===0?null:i[i.length-1].id}let o=null;for(let i of this.childrenArray(e)){if(i.id===r)return o;o=i.id}return null}traverseSortNext(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(s=>s.id===e)+1;if(i<o.length)return o[i].id;if(r)return this.traverseSortNext(r)}}sortNext(e){let r=this.childrenArray(e);return r.length>0?r[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let r=this.childrenArray(e);return r.length>0?this.traverseSortPrevious(r[r.length-1].id):e}sortPrevious(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(s=>s.id===e)-1;return i>=0?this.traverseSortPrevious(o[i].id):r}}getAllSorted(e){let r=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&r.push({...o,...i})}r.sort((o,i)=>kp(o.sortKey,i.sortKey));for(let o of r)delete o.sortKey;return r}getWithSortKey(e){var r=e;let o=[],i=this.get(r),s=i;if(i!==void 0){for(;r;)o.splice(0,0,i.fi),r=this.parent(r),r!==null&&(i=this.get(r));return{...s,sortKey:o}}}insertBeforeHelper(e,r,o){return this.insertAfterHelper(e,this.previous(e,r),o)}insertAfterHelper(e,r,o){let i=this.childrenArray(e);if(r===null){if(i.length===0)return sr(0,o,o);{let s=i[0].fi;return sr(s-o,s,o)}}else{let s=this.get(r);if(s===void 0||this.parent(r)!==e)throw new Error("illegal args");let l=i.find(c=>c.fi>s.fi);if(l===void 0){let c=i[i.length-1].fi;return sr(c,c+o,o)}else return sr(s.fi,l.fi,o)}}};var Ls;(t=>{function n(e,r){if(Array.isArray(e)){let o=r.props,i={},s=[...e],l=!1;if(o)for(let c of Object.keys(o)){let p=parseInt(c);if(isNaN(p))throw new Error("wrong index");i[c]=s[p],s[p]=o[c],l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}else{let o=r.props,i={},s={...e},l=!1;if(o)for(let c of Object.keys(o)){i[c]=s[c];let p=o[c];p===void 0?delete s[c]:s[c]=p,l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}}t.runOp=n})(Ls||(Ls={}));var Ee=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Ee.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Yn(this[e]),e++}fillCaches0(e){this.objCaches.set(e.id,e)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let e of this)this.fillCaches0(e)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}data(e){return this.get(e)?.data}get(e){return this.fillCaches(),this.objCaches.get(e)}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this,s=i.findIndex(p=>p.id===e);if(s<0)throw new Error("not expected");let l=i[s];return i=[...i],i[s]={...l,data:r},this.modifyArrayBy(i)}}modifyArrayBy(e){Object.setPrototypeOf(e,Ee.prototype);let r=e;return Hp()||r.fillCaches(),r}runOp(e){switch(e.type){case 4:return this.addOp(e);case 5:return this.deleteOp(e);case 6:return this.moveOp(e)}}addOp(e){let{fi:r,id:o,data:i}=e,s=this,l={fi:r,id:o,data:i};return s=[...s,l],s.sort((p,a)=>p.fi-a.fi),e.localIndex=s.indexOf(l),{data:this.modifyArrayBy(s),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:r}=e,o=this,i=o.findIndex(c=>c.id===r);if(i===-1)return null;e.localIndex=i,o=[...o];let s=o.splice(i,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...s}}}moveOp(e){let{fi:r,id:o}=e,i=this;i=[...i];let s=i.findIndex(a=>a.id===o);if(s===-1)return null;let l=i[s].fi,c={...i[s],fi:r};return i[s]=c,i.sort((a,u)=>a.fi-u.fi),e.localIndex=i.indexOf(c),{data:this.modifyArrayBy(i),actual:e,reverse:{type:6,fi:l,id:o}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let r=null;for(let o of this){if(o.id===e)return r;r=o.id}return null}insertBeforeHelper(e,r){return this.insertAfterHelper(this.previous(e),r)}insertAfterHelper(e,r){let o=this;if(e===null){if(o.length===0)return sr(0,r,r);{let i=o[0].fi;return sr(i-r,i,r)}}else{let i=this.get(e);if(i===void 0)throw new Error("illegal args");let s=o.find(l=>l.fi>i.fi);if(s===void 0){let l=o[o.length-1].fi;return sr(l,l+r,r)}else return sr(i.fi,s.fi,r)}}};var $p=Symbol(),Os=Symbol(),on=class{reportOp(t,e){let r=this;if(e===null)return;r._current=e.data;let o=[];for(;!(r instanceof Is);){let i=r._path,s=r._current;if(i!==""&&o.splice(0,0,i),r=r._parent,r===null)return;r.update(i,s)}r.push(o,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[Os];r&&r(),delete this._children[t]}}}},Ya=class extends on{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,Ls.runOp(this._current,t))}},Ka=class extends on{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,Ye.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Xp={get(n,t){if(t===Os)return()=>{n._parent=null};if(t===$p)return n._current;let{_current:e,_children:r}=n;if(t==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e[t],s=Ms(n,t,i);return s!==i?(r===void 0&&(r={},n._children=r),r[t]=s,s):i},has(n,t){return t in n._current},ownKeys(n){return Reflect.ownKeys(n._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(n){return Object.getPrototypeOf(n._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(n,t){let e=n._current,r=Reflect.getOwnPropertyDescriptor(e,t);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:e[t]}}},Fv={...Xp,set(n,t,e){let r={type:0,props:{[t]:ar(e)??e}};return n.deleteChildren(t),n.runOp(r),!0},deleteProperty(n,t){let e={type:0,props:{[t]:void 0}};return n.deleteChildren(t),n.runOp(e),!0}},zv={...Xp,set(n,t,e){return e===void 0?this.deleteProperty(n,t):(n.deleteChildren(t),n.runOp({type:1,id:t,data:e})),!0},deleteProperty(n,t){return n.runOp({type:2,id:t}),!0}},nn=class extends on{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[Os]=()=>{this._parent=null}}unproxy(){return this._current}update(t,e){this._current=this._current.modifyById(t,e)}runOp(t){this.reportOp(t,this._current.runOp(t))}randomId(){return this._current.randomId()}isDescendantOf(t,e){return this._current.isDescendantOf(t,e)}childrenOf(t){return this._current.childrenOf(t)}traverse(t){return this._current.traverse(t)}get(t){return this._current.get(t)}parent(t){return this._current.parent(t)}traverse(t){this._current.traverse((e,r)=>{t(e,this.data(e))})}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,s=Ms(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):i}add(t,e,r,o,i){this.runOp({type:7,parent:t,fi:e,id:r,data:o,children:i})}move(t,e,r){this.runOp({type:9,parent:t,fi:e,id:r})}insertAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}insertBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}moveAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}moveBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}delete(t){this.deleteChildren(t),this.runOp({type:8,id:t})}sortNext(t){return this._current.sortNext(t)}sortPrevious(t){return this._current.sortPrevious(t)}getAllSorted(t){return this._current.getAllSorted(t)}},sn=class extends on{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[Os]=()=>{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 i=e.get(t)?.data,s=Ms(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):i}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,e,r){this.runOp({type:4,fi:t,id:e,data:r})}move(t,e){this.runOp({type:6,fi:t,id:e})}insertAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}insertBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}moveAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}moveBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function Xa(n,t,e){if(n.length>0){let r=n[n.length-1];if(r.type===0&&t.type===0&&Ds.equal(r.path,e)){Object.assign(r.props,t.props);return}}n.push({...t,path:e})}var Is=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){Xa(this.ts,e,t),Xa(this.actual,r,t),Xa(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Ms(n,t,e){return e instanceof Ut?new nn(n,t,e):e instanceof Ee?new sn(n,t,e):e instanceof Ye?new Proxy(new Ka(n,t,e),zv):e!==null&&typeof e=="object"?Ps(e)?e:new Proxy(new Ya(n,t,e),Fv):e}function Za(n){let t=new Is(n);return[Ms(t,"",n),t]}function Qa(n,t){let[e,r]=Za(n);return t(e),r.result()}function ar(n){return n instanceof nn||n instanceof sn?n._current:n!==null&&typeof n=="object"?n[$p]:n}var Ds;(r=>{function n(o,i){if(i.length===o.length)for(var s=0;s<o.length;){if(o[s]!==i[s])return!1;s+=1}else return!1;return!0}r.equal=n;function t(o,i,s){let l=e(s,o);if(l!==void 0&&typeof l=="object"&&l!==null){let c={...i};return Object.keys(l).forEach(p=>{delete c[p]}),c}else return i}r.removeOverridden=t;function e(o,i,s=0){if(i.length<=s)return o;if((o instanceof Ut||o instanceof nn)&&typeof i[s]=="string")return e(o.data(i[s]),i,s+1);if((o instanceof Ee||o instanceof sn)&&typeof i[s]=="string")return e(o.data(i[s]),i,s+1);if(typeof i[s]=="number"&&Array.isArray(o))return e(o[i[s]],i,s+1);if(typeof i[s]=="string"&&typeof o=="object")return e(o[i[s]],i,s+1)}r.zoom=e})(Ds||(Ds={}));var Bs=class{},Kn=class extends Bs{constructor(e){super();this.id=e}},Zn=class extends Bs{constructor(e){super();this.data=e}};var el;try{el=new TextDecoder}catch{}var te,Zr,_=0;var rd=[],tl=rd,rl=0,At={},we,Kr,jt=0,lr=0,Et,Er,yt=[],Ce,Yp={useRecords:!1,mapsAsObjects:!0},Qn=class{},nl=new Qn;nl.name="MessagePack 0xC1";var an=!1,cr=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 ad(()=>(Gs(),this?this.unpack(t,e):cr.prototype.unpack.call(Yp,t,e)));Zr=e>-1?e:t.length,_=0,rl=0,lr=0,Kr=null,tl=rd,Et=null,te=t;try{Ce=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 cr){if(At=this,this.structures)return we=this.structures,Es();(!we||we.length>0)&&(we=[])}else At=Yp,(!we||we.length>0)&&(we=[]);return Es()}unpackMultiple(t,e){let r,o=0;try{an=!0;let i=t.length,s=this?this.unpack(t,i):Fs.unpack(t,i);if(e){for(e(s);_<i;)if(o=_,e(Es())===!1)return}else{for(r=[s];_<i;)o=_,r.push(Es());return r}}catch(i){throw i.lastPosition=o,i.values=r,i}finally{an=!1,Gs()}}_mergeStructures(t,e){t=t||[];for(let r=0,o=t.length;r<o;r++){let i=t[r];i&&(i.isShared=!0,r>=32&&(i.highByte=r-32>>5))}t.sharedLength=t.length;for(let r in e||[])if(r>=0){let o=t[r],i=e[r];i&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[r]=o),t[r]=i)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function Es(){try{if(!At.trusted&&!an){let t=we.sharedLength||0;t<we.length&&(we.length=t)}let n=Fe();if(_==Zr)we.restoreStructures&&Kp(),we=null,te=null,Er&&(Er=null);else if(_>Zr){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!an)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw we.restoreStructures&&Kp(),Gs(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function Kp(){for(let n in we.restoreStructures)we[n]=we.restoreStructures[n];we.restoreStructures=null}function Fe(){let n=te[_++];if(n<160)if(n<128){if(n<64)return n;{let t=we[n&63]||At.getStructures&&od()[n&63];return t?(t.read||(t.read=il(t,n&63)),t.read()):n}}else if(n<144)if(n-=128,At.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[id()]=Fe();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Fe(),Fe());return t}else{n-=144;let t=new Array(n);for(let e=0;e<n;e++)t[e]=Fe();return t}else if(n<192){let t=n-160;if(lr>=_)return Kr.slice(_-jt,(_+=t)-jt);if(lr==0&&Zr<140){let e=t<16?sl(t):nd(t);if(e!=null)return e}return ol(t)}else{let t;switch(n){case 192:return null;case 193:return Et?(t=Fe(),t>0?Et[1].slice(Et.position1,Et.position1+=t):Et[0].slice(Et.position0,Et.position0-=t)):nl;case 194:return!1;case 195:return!0;case 196:return Ja(te[_++]);case 197:return t=Ce.getUint16(_),_+=2,Ja(t);case 198:return t=Ce.getUint32(_),_+=4,Ja(t);case 199:return yo(te[_++]);case 200:return t=Ce.getUint16(_),_+=2,yo(t);case 201:return t=Ce.getUint32(_),_+=4,yo(t);case 202:if(t=Ce.getFloat32(_),At.useFloat32>2){let e=Vs[(te[_]&127)<<1|te[_+1]>>7];return _+=4,(e*t+(t>0?.5:-.5)>>0)/e}return _+=4,t;case 203:return t=Ce.getFloat64(_),_+=8,t;case 204:return te[_++];case 205:return t=Ce.getUint16(_),_+=2,t;case 206:return t=Ce.getUint32(_),_+=4,t;case 207:return At.int64AsNumber?(t=Ce.getUint32(_)*4294967296,t+=Ce.getUint32(_+4)):t=Ce.getBigUint64(_),_+=8,t;case 208:return Ce.getInt8(_++);case 209:return t=Ce.getInt16(_),_+=2,t;case 210:return t=Ce.getInt32(_),_+=4,t;case 211:return At.int64AsNumber?(t=Ce.getInt32(_)*4294967296,t+=Ce.getUint32(_+4)):t=Ce.getBigInt64(_),_+=8,t;case 212:if(t=te[_++],t==114)return td(te[_++]&63);{let e=yt[t];if(e)return e.read?(_++,e.read(Fe())):e.noBuffer?(_++,e()):e(te.subarray(_,++_));throw new Error("Unknown extension "+t)}case 213:return t=te[_],t==114?(_++,td(te[_++]&63,te[_++])):yo(2);case 214:return yo(4);case 215:return yo(8);case 216:return yo(16);case 217:return t=te[_++],lr>=_?Kr.slice(_-jt,(_+=t)-jt):jv(t);case 218:return t=Ce.getUint16(_),_+=2,lr>=_?Kr.slice(_-jt,(_+=t)-jt):kv(t);case 219:return t=Ce.getUint32(_),_+=4,lr>=_?Kr.slice(_-jt,(_+=t)-jt):Hv(t);case 220:return t=Ce.getUint16(_),_+=2,Qp(t);case 221:return t=Ce.getUint32(_),_+=4,Qp(t);case 222:return t=Ce.getUint16(_),_+=2,Jp(t);case 223:return t=Ce.getUint32(_),_+=4,Jp(t);default:if(n>=224)return n-256;if(n===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+n)}}}var Uv=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function il(n,t){function e(){if(e.count++>2){let o=n.read=new Function("r","return function(){return {"+n.map(i=>Uv.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(Fe);return n.highByte===0&&(n.read=Zp(t,n.read)),o()}let r={};for(let o=0,i=n.length;o<i;o++){let s=n[o];r[s]=Fe()}return r}return e.count=0,n.highByte===0?Zp(t,e):e}var Zp=(n,t)=>function(){let e=te[_++];if(e===0)return t();let r=n<32?-(n+(e<<5)):n+(e<<5),o=we[r]||od()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=il(o,n)),o.read()};function od(){let n=ad(()=>(te=null,At.getStructures()));return we=At._mergeStructures(n,we)}var ol=Rs,jv=Rs,kv=Rs,Hv=Rs;function Rs(n){let t;if(n<16&&(t=sl(n)))return t;if(n>64&&el)return el.decode(te.subarray(_,_+=n));let e=_+n,r=[];for(t="";_<e;){let o=te[_++];if((o&128)===0)r.push(o);else if((o&224)===192){let i=te[_++]&63;r.push((o&31)<<6|i)}else if((o&240)===224){let i=te[_++]&63,s=te[_++]&63;r.push((o&31)<<12|i<<6|s)}else if((o&248)===240){let i=te[_++]&63,s=te[_++]&63,l=te[_++]&63,c=(o&7)<<18|i<<12|s<<6|l;c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|c&1023),r.push(c)}else r.push(o);r.length>=4096&&(t+=nt.apply(String,r),r.length=0)}return r.length>0&&(t+=nt.apply(String,r)),t}function Qp(n){let t=new Array(n);for(let e=0;e<n;e++)t[e]=Fe();return t}function Jp(n){if(At.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[id()]=Fe();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Fe(),Fe());return t}}var nt=String.fromCharCode;function nd(n){let t=_,e=new Array(n);for(let r=0;r<n;r++){let o=te[_++];if((o&128)>0){_=t;return}e[r]=o}return nt.apply(String,e)}function sl(n){if(n<4)if(n<2){if(n===0)return"";{let t=te[_++];if((t&128)>1){_-=1;return}return nt(t)}}else{let t=te[_++],e=te[_++];if((t&128)>0||(e&128)>0){_-=2;return}if(n<3)return nt(t,e);let r=te[_++];if((r&128)>0){_-=3;return}return nt(t,e,r)}else{let t=te[_++],e=te[_++],r=te[_++],o=te[_++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){_-=4;return}if(n<6){if(n===4)return nt(t,e,r,o);{let i=te[_++];if((i&128)>0){_-=5;return}return nt(t,e,r,o,i)}}else if(n<8){let i=te[_++],s=te[_++];if((i&128)>0||(s&128)>0){_-=6;return}if(n<7)return nt(t,e,r,o,i,s);let l=te[_++];if((l&128)>0){_-=7;return}return nt(t,e,r,o,i,s,l)}else{let i=te[_++],s=te[_++],l=te[_++],c=te[_++];if((i&128)>0||(s&128)>0||(l&128)>0||(c&128)>0){_-=8;return}if(n<10){if(n===8)return nt(t,e,r,o,i,s,l,c);{let p=te[_++];if((p&128)>0){_-=9;return}return nt(t,e,r,o,i,s,l,c,p)}}else if(n<12){let p=te[_++],a=te[_++];if((p&128)>0||(a&128)>0){_-=10;return}if(n<11)return nt(t,e,r,o,i,s,l,c,p,a);let u=te[_++];if((u&128)>0){_-=11;return}return nt(t,e,r,o,i,s,l,c,p,a,u)}else{let p=te[_++],a=te[_++],u=te[_++],d=te[_++];if((p&128)>0||(a&128)>0||(u&128)>0||(d&128)>0){_-=12;return}if(n<14){if(n===12)return nt(t,e,r,o,i,s,l,c,p,a,u,d);{let f=te[_++];if((f&128)>0){_-=13;return}return nt(t,e,r,o,i,s,l,c,p,a,u,d,f)}}else{let f=te[_++],m=te[_++];if((f&128)>0||(m&128)>0){_-=14;return}if(n<15)return nt(t,e,r,o,i,s,l,c,p,a,u,d,f,m);let h=te[_++];if((h&128)>0){_-=15;return}return nt(t,e,r,o,i,s,l,c,p,a,u,d,f,m,h)}}}}}function Ja(n){return At.copyBuffers?Uint8Array.prototype.slice.call(te,_,_+=n):te.subarray(_,_+=n)}function yo(n){let t=te[_++];if(yt[t])return yt[t](te.subarray(_,_+=n));throw new Error("Unknown extension type "+t)}var ed=new Array(4096);function id(){let n=te[_++];if(n>=160&&n<192){if(n=n-160,lr>=_)return Kr.slice(_-jt,(_+=n)-jt);if(!(lr==0&&Zr<180))return ol(n)}else return _--,Fe();let t=(n<<5^(n>1?Ce.getUint16(_):n>0?te[_]:0))&4095,e=ed[t],r=_,o=_+n-3,i,s=0;if(e&&e.bytes==n){for(;r<o;){if(i=Ce.getUint32(r),i!=e[s++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(i=te[r++],i!=e[s++]){r=1879048192;break}if(r===o)return _=r,e.string;o-=3,r=_}for(e=[],ed[t]=e,e.bytes=n;r<o;)i=Ce.getUint32(r),e.push(i),r+=4;for(o+=3;r<o;)i=te[r++],e.push(i);let l=n<16?sl(n):nd(n);return l!=null?e.string=l:e.string=ol(n)}var td=(n,t)=>{var e=Fe();let r=n;t!==void 0&&(n=n<32?-((t<<5)+n):(t<<5)+n,e.highByte=t);let o=we[n];return o&&o.isShared&&((we.restoreStructures||(we.restoreStructures=[]))[n]=o),we[n]=e,e.read=il(e,r),e.read()},sd=typeof self=="object"?self:global;yt[0]=()=>{};yt[0].noBuffer=!0;yt[101]=()=>{let n=Fe();return(sd[n[0]]||Error)(n[1])};yt[105]=n=>{let t=Ce.getUint32(_-4);Er||(Er=new Map);let e=te[_],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};Er.set(t,o);let i=Fe();return o.used?Object.assign(r,i):(o.target=i,i)};yt[112]=n=>{let t=Ce.getUint32(_-4),e=Er.get(t);return e.used=!0,e.target};yt[115]=()=>new Set(Fe());var al=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");yt[116]=n=>{let t=n[0],e=al[t];if(!e)throw new Error("Could not find typed array for code "+t);return new sd[e](Uint8Array.prototype.slice.call(n,1).buffer)};yt[120]=()=>{let n=Fe();return new RegExp(n[0],n[1])};yt[98]=n=>{let t=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],e=_;_+=t-4,Et=[Fe(),Fe()],Et.position0=0,Et.position1=0;let r=_;_=e;try{return Fe()}finally{_=r}};yt[255]=n=>n.length==4?new Date((n[0]*16777216+(n[1]<<16)+(n[2]<<8)+n[3])*1e3):n.length==8?new Date(((n[0]<<22)+(n[1]<<14)+(n[2]<<6)+(n[3]>>2))/1e6+((n[3]&3)*4294967296+n[4]*16777216+(n[5]<<16)+(n[6]<<8)+n[7])*1e3):n.length==12?new Date(((n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3])/1e6+((n[4]&128?-281474976710656:0)+n[6]*1099511627776+n[7]*4294967296+n[8]*16777216+(n[9]<<16)+(n[10]<<8)+n[11])*1e3):new Date("invalid");function ad(n){let t=Zr,e=_,r=rl,o=jt,i=lr,s=Kr,l=tl,c=Er,p=Et,a=new Uint8Array(te.slice(0,Zr)),u=we,d=we.slice(0,we.length),f=At,m=an,h=n();return Zr=t,_=e,rl=r,jt=o,lr=i,Kr=s,tl=l,Er=c,Et=p,te=a,an=m,we=u,we.splice(0,we.length,...d),At=f,Ce=new DataView(te.buffer,te.byteOffset,te.byteLength),h}function Gs(){te=null,Er=null,we=null}function ld(n){n.unpack?yt[n.type]=n.unpack:yt[n.type]=n}var Vs=new Array(147);for(let n=0;n<256;n++)Vs[n]=+("1e"+Math.floor(45.15-n*.30103));var Fs=new cr({useRecords:!1}),Wv=Fs.unpack,qv=Fs.unpackMultiple,$v=Fs.unpack,zs={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},Xv=new Float32Array(1),KL=new Uint8Array(Xv.buffer,0,4);var Us;try{Us=new TextEncoder}catch{}var js,cl,ks=typeof Buffer<"u",ll=ks?Buffer.allocUnsafeSlow:Uint8Array,dd=ks?Buffer:Uint8Array,cd=ks?4294967296:2144337920,R,ke,P=0,ur,pr=null,Yv=/[\u0080-\uFFFF]/,Jn=Symbol("record-id"),xo=class extends cr{constructor(t){super(t),this.offset=0;let e,r,o,i,s,l,c=0,p=dd.prototype.utf8Write?function(y,I,T){return R.utf8Write(y,I,T)}:Us&&Us.encodeInto?function(y,I){return Us.encodeInto(y,R.subarray(I)).written}:!1,a=this;t||(t={});let u=t&&t.sequential,d=t.structures||t.saveStructures,f=t.maxSharedStructures;if(f==null&&(f=d?32:0),f>8160)throw new Error("Maximum maxSharedStructure is 8160");let m=t.maxOwnStructures;m==null&&(m=d?32:64),u&&!t.saveStructures&&(this.structures=[]);let h=f>32||m+f>64,g=f+64,x=f+m+64;if(x>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let v=[],A=0,S=0;this.pack=this.encode=function(y,I){if(R||(R=new ll(8192),ke=new DataView(R.buffer,0,8192),P=0),ur=R.length-10,ur-P<2048?(R=new ll(R.length),ke=new DataView(R.buffer,0,R.length),ur=R.length-10,P=0):P=P+7&2147483640,r=P,l=a.structuredClone?new Map:null,a.bundleStrings?(pr=["",""],R[P++]=214,R[P++]=98,pr.position=P-r,P+=4):pr=null,o=a.structures,o){o.uninitialized&&(o=a._mergeStructures(a.getStructures()));let T=o.sharedLength||0;if(T>f)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+o.sharedLength);if(!o.transitions){o.transitions=Object.create(null);for(let L=0;L<T;L++){let N=o[L];if(!N)continue;let C,k=o.transitions;for(let W=0,ne=N.length;W<ne;W++){let ue=N[W];C=k[ue],C||(C=k[ue]=Object.create(null)),k=C}k[Jn]=L+64}c=T}u||(o.nextId=T+64)}i&&(i=!1),s=o||[];try{if(b(y),pr){ke.setUint32(pr.position+r,P-pr.position-r);let T=pr;pr=null,b(T[0]),b(T[1])}if(a.offset=P,l&&l.idsToInsert){P+=l.idsToInsert.length*6,P>ur&&w(P),a.offset=P;let T=Zv(R.subarray(r,P),l.idsToInsert);return l=null,T}return I&md?(R.start=r,R.end=P,R):R.subarray(r,P)}finally{if(o){if(S<10&&S++,A>1e4)o.transitions=null,S=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][Jn]=0;v=[]}if(i&&a.saveStructures){let T=o.sharedLength||f;o.length>T&&(o=o.slice(0,T));let L=R.subarray(r,P);return a.saveStructures(o,c)===!1?(a._mergeStructures(a.getStructures()),a.pack(y)):(c=T,L)}}I&nb&&(P=r)}};let b=y=>{P>ur&&(R=w(P));var I=typeof y,T;if(I==="string"){let L=y.length;if(pr&&L>=8&&L<4096){let k=Yv.test(y);pr[k?0:1]+=y,R[P++]=193,b(k?-L:L);return}let N;L<32?N=1:L<256?N=2:L<65536?N=3:N=5;let C=L*3;if(P+C>ur&&(R=w(P+C)),L<64||!p){let k,W,ne,ue=P+N;for(k=0;k<L;k++)W=y.charCodeAt(k),W<128?R[ue++]=W:W<2048?(R[ue++]=W>>6|192,R[ue++]=W&63|128):(W&64512)===55296&&((ne=y.charCodeAt(k+1))&64512)===56320?(W=65536+((W&1023)<<10)+(ne&1023),k++,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-P-N}else T=p(y,P+N,C);T<32?R[P++]=160|T:T<256?(N<2&&R.copyWithin(P+2,P+1,P+1+T),R[P++]=217,R[P++]=T):T<65536?(N<3&&R.copyWithin(P+3,P+2,P+2+T),R[P++]=218,R[P++]=T>>8,R[P++]=T&255):(N<5&&R.copyWithin(P+5,P+3,P+3+T),R[P++]=219,ke.setUint32(P,T),P+=4),P+=T}else if(I==="number")if(y>>>0===y)y<64?R[P++]=y:y<256?(R[P++]=204,R[P++]=y):y<65536?(R[P++]=205,R[P++]=y>>8,R[P++]=y&255):(R[P++]=206,ke.setUint32(P,y),P+=4);else if(y>>0===y)y>=-32?R[P++]=256+y:y>=-128?(R[P++]=208,R[P++]=y+256):y>=-32768?(R[P++]=209,ke.setInt16(P,y),P+=2):(R[P++]=210,ke.setInt32(P,y),P+=4);else{let L;if((L=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){R[P++]=202,ke.setFloat32(P,y);let N;if(L<4||(N=y*Vs[(R[P]&127)<<1|R[P+1]>>7])>>0===N){P+=4;return}else P--}R[P++]=203,ke.setFloat64(P,y),P+=8}else if(I==="object")if(!y)R[P++]=192;else{if(l){let N=l.get(y);if(N){if(!N.id){let C=l.idsToInsert||(l.idsToInsert=[]);N.id=C.push(N)}R[P++]=214,R[P++]=112,ke.setUint32(P,N.id),P+=4;return}else l.set(y,{offset:P-r})}let L=y.constructor;if(L===Object)D(y,!0);else if(L===Array){T=y.length,T<16?R[P++]=144|T:T<65536?(R[P++]=220,R[P++]=T>>8,R[P++]=T&255):(R[P++]=221,ke.setUint32(P,T),P+=4);for(let N=0;N<T;N++)b(y[N])}else if(L===Map){T=y.size,T<16?R[P++]=128|T:T<65536?(R[P++]=222,R[P++]=T>>8,R[P++]=T&255):(R[P++]=223,ke.setUint32(P,T),P+=4);for(let[N,C]of y)b(N),b(C)}else{for(let N=0,C=js.length;N<C;N++){let k=cl[N];if(y instanceof k){let W=js[N];if(W.write){W.type&&(R[P++]=212,R[P++]=W.type,R[P++]=0),b(W.write.call(this,y));return}let ne=R,ue=ke,se=P;R=null;let K;try{K=W.pack.call(this,y,U=>(R=ne,ne=null,P+=U,P>ur&&w(P),{target:R,targetView:ke,position:P-U}),b)}finally{ne&&(R=ne,ke=ue,P=se,ur=R.length-10)}K&&(K.length+P>ur&&w(K.length+P),P=Kv(K,R,P,W.type));return}}D(y,!y.hasOwnProperty)}}else if(I==="boolean")R[P++]=y?195:194;else if(I==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))R[P++]=211,ke.setBigInt64(P,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)R[P++]=207,ke.setBigUint64(P,y);else if(this.largeBigIntToFloat)R[P++]=203,ke.setFloat64(P,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");P+=8}else if(I==="undefined")this.encodeUndefinedAsNil?R[P++]=192:(R[P++]=212,R[P++]=0,R[P++]=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[P++]=128|T:T<65536?(R[P++]=222,R[P++]=T>>8,R[P++]=T&255):(R[P++]=223,ke.setUint32(P,T),P+=4);let L;for(let N=0;N<T;N++)b(L=I[N]),b(y[L])}:(y,I)=>{R[P++]=222;let T=P-r;P+=2;let L=0;for(let N in y)(I||y.hasOwnProperty(N))&&(b(N),b(y[N]),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)),N=0;for(let k=0,W=I.length;k<W;k++){let ne=I[k];T=L[ne],T||(T=L[ne]=Object.create(null),N++),L=T}let C=L[Jn];if(C)C>=96&&h?(R[P++]=((C-=96)&31)+96,R[P++]=C>>5):R[P++]=C;else{C=s.nextId,C||(C=64),C<g&&this.shouldShareStructure&&!this.shouldShareStructure(I)?(C=s.nextOwnId,C<x||(C=g),s.nextOwnId=C+1):(C>=x&&(C=g),s.nextId=C+1);let k=I.highByte=C>=96&&h?C-96>>5:-1;L[Jn]=C,s[C-64]=I,C<g?(I.isShared=!0,s.sharedLength=C-63,i=!0,k>=0?(R[P++]=(C&31)+96,R[P++]=k):R[P++]=C):(k>=0?(R[P++]=213,R[P++]=114,R[P++]=(C&31)+96,R[P++]=k):(R[P++]=212,R[P++]=114,R[P++]=C),N&&(A+=S*N),v.length>=m&&(v.shift()[Jn]=0),v.push(L),b(I))}for(let k=0,W=I.length;k<W;k++)b(y[I[k]])},w=y=>{let I;if(y>16777216){if(y-r>cd)throw new Error("Packed buffer would be larger than maximum buffer size");I=Math.min(cd,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 ll(I);return ke=new DataView(T.buffer,0,I),R.copy?R.copy(T,0,r,y):T.set(R.slice(r,y)),P-=r,r=0,ur=T.length-10,R=T}}useBuffer(t){R=t,ke=new DataView(R.buffer,R.byteOffset,R.byteLength),P=0}};cl=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,Qn];js=[{pack(n,t,e){let r=n.getTime()/1e3;if((this.useTimestamp32||n.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:o,targetView:i,position:s}=t(6);o[s++]=214,o[s++]=255,i.setUint32(s,r)}else if(r>0&&r<17179869184){let{target:o,targetView:i,position:s}=t(10);o[s++]=215,o[s++]=255,i.setUint32(s,n.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),i.setUint32(s+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:i,position:s}=t(3);o[s++]=212,o[s++]=255,o[s++]=255}else{let{target:o,targetView:i,position:s}=t(15);o[s++]=199,o[s++]=12,o[s++]=255,i.setUint32(s,n.getMilliseconds()*1e6),i.setBigInt64(s+4,BigInt(Math.floor(r)))}}},{pack(n,t,e){let r=Array.from(n),{target:o,position:i}=t(this.structuredClone?3:0);this.structuredClone&&(o[i++]=212,o[i++]=115,o[i++]=0),e(r)}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=101,r[o++]=0),e([n.name,n.message])}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=120,r[o++]=0),e([n.source,n.flags])}},{pack(n,t){this.structuredClone?ud(n,16,t):pd(ks?Buffer.from(n):new Uint8Array(n),t)}},{pack(n,t){let e=n.constructor;e!==dd&&this.structuredClone?ud(n,al.indexOf(e.name),t):pd(n,t)}},{pack(n,t){let{target:e,position:r}=t(1);e[r]=193}}];function ud(n,t,e,r){let o=n.byteLength;if(o+1<256){var{target:i,position:s}=e(4+o);i[s++]=199,i[s++]=o+1}else if(o+1<65536){var{target:i,position:s}=e(5+o);i[s++]=200,i[s++]=o+1>>8,i[s++]=o+1&255}else{var{target:i,position:s,targetView:l}=e(7+o);i[s++]=201,l.setUint32(s,o+1),s+=4}i[s++]=116,i[s++]=t,i.set(new Uint8Array(n.buffer,n.byteOffset,n.byteLength),s)}function pd(n,t){let e=n.byteLength;var r,o;if(e<256){var{target:r,position:o}=t(e+2);r[o++]=196,r[o++]=e}else if(e<65536){var{target:r,position:o}=t(e+3);r[o++]=197,r[o++]=e>>8,r[o++]=e&255}else{var{target:r,position:o,targetView:i}=t(e+5);r[o++]=198,i.setUint32(o,e),o+=4}r.set(n,o)}function Kv(n,t,e,r){let o=n.length;switch(o){case 1:t[e++]=212;break;case 2:t[e++]=213;break;case 4:t[e++]=214;break;case 8:t[e++]=215;break;case 16:t[e++]=216;break;default:o<256?(t[e++]=199,t[e++]=o):o<65536?(t[e++]=200,t[e++]=o>>8,t[e++]=o&255):(t[e++]=201,t[e++]=o>>24,t[e++]=o>>16&255,t[e++]=o>>8&255,t[e++]=o&255)}return t[e++]=r,t.set(n,e),e+=o,e}function Zv(n,t){let e,r=t.length*6,o=n.length-r;for(t.sort((i,s)=>i.offset>s.offset?1:-1);e=t.pop();){let i=e.offset,s=e.id;n.copyWithin(i+r,i,o),r-=6;let l=i+r;n[l++]=214,n[l++]=105,n[l++]=s>>24,n[l++]=s>>16&255,n[l++]=s>>8&255,n[l++]=s&255,o=i}return n}function vo(n){if(n.Class){if(!n.pack&&!n.write)throw new Error("Extension has no pack or write function");if(n.pack&&!n.type)throw new Error("Extension has no type (numeric code to identify the extension)");cl.unshift(n.Class),js.unshift(n)}ld(n)}var fd=new xo({useRecords:!1}),Qv=fd.pack,Jv=fd.pack;var{NEVER:eb,ALWAYS:tb,DECIMAL_ROUND:rb,DECIMAL_FIT:ob}=zs,md=512,nb=1024;var hd=new xo({structuredClone:!0});vo({Class:Ye.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Ye.prototype),n}});vo({Class:Ee.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,Ee.prototype),n}});vo({Class:Ut.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,Ut.prototype),n}});vo({Class:Kn.prototype.constructor,type:4,write(n){return n.id},read(n){return new Kn(n)}});vo({Class:Zn.prototype.constructor,type:5,write(n){return n.data},read(n){return new Zn(n)}});function ib(n){var t=0;if(n.length===0)return t;for(let e=0;e<n.length;e++){let r=n[e];t=(t<<5)-t+r,t=t&t}return t}function ul(n){if(Ps(n))return n;if(Array.isArray(n))return n.map(ul);if(typeof n=="object"&&n!==null){let t={};for(let e of Object.keys(n).sort())t[e]=ul(n[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else return n}var Hs;(r=>{function n(o){return hd.pack(o)}r.serialize=n;function t(o){return hd.unpack(o)}r.deserialize=t;function e(o){return ib(n(ul(o))).toString()}r.checksum=e})(Hs||(Hs={}));var Ws;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Ws||(Ws={}));var qs;(e=>{function n(r){return t(r)}e.defaultData=n;function t(r){if(r==="PointLight")return{type:r,color:Bt.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(r==="SpotLight")return{type:r,color:Bt.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:Bt.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(qs||(qs={}));var pl;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(pl||(pl={}));var dl;(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})(dl||(dl={}));var $s;(t=>t.defaultData={...dl.defaultData,...pl.defaultData,cloner:null,booleanExclude:null})($s||($s={}));var fl=(o=>(o[o.Left=1]="Left",o[o.Right=2]="Right",o[o.Center=3]="Center",o[o.Justify=4]="Justify",o))(fl||{}),ml=(r=>(r[r.Top=1]="Top",r[r.Center=2]="Center",r[r.Bottom=3]="Bottom",r))(ml||{}),hl=(r=>(r[r.None=1]="None",r[r.Upper=2]="Upper",r[r.Lower=3]="Lower",r))(hl||{}),Xs;(t=>t.defaultData={width:100,height:100,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.5,letterSpacing:1,text:"",textTransform:1,color:Bt.fromHexAndA(6974058,1),alpha:1,font:"roboto_regular"})(Xs||(Xs={}));var gd=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],yd=["wrapping","image"],Qr;(r=>{function n(o,i){return o==="light"&&i?t(i):e(o)}r.defaultData=n;function t(o){switch(o){case"basic":return{type:"light",category:"basic",alpha:1,visible:!0,mode:0};case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess: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:Tt.fromHex(4737101)};case"depth":return{type:"depth",alpha:1,visible:!0,mode:0,gradientType:1,smooth:!1,isVector:!0,isWorldSpace:!1,origin:[0,0,0],direction:[1,0,0],colors:[[1,1,1,1],[0,0,0,1]],steps:[0,1],near:50,far:200};case"normal":return{type:"normal",alpha:1,visible:!0,mode:0,cnormal:[1,1,1]};case"gradient":return{type:"gradient",alpha:1,visible:!0,mode:0,gradientType:0,smooth:!1,colors:[[0,0,0,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,angle:0,offset:[0,0],morph:[0,0]};case"noise":return{type:"noise",alpha:1,visible:!0,mode:0,size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...Tt.fromHex(6710886),a:1},colorB:{...Tt.fromHex(6710886),a:1},colorC:{...Tt.fromHex(16777215),a:1},colorD:{...Tt.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:Bt.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:Bt.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:Bt.fromHexAndA(0,1),contourColor:Bt.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}}}})(Qr||(Qr={}));var Xt;(l=>{function n(c){return!c.layers.some(a=>{if(a.data.type==="texture"&&a.data.projection!==0||a.data.type==="depth"&&!a.data.isWorldSpace||a.data.type==="noise"||a.data.type==="displace")return!0})&&!e(c)}l.isMergable=n;function t(c){let p="";return c.layers.forEach(a=>{Object.entries(a.data).forEach(([u,d])=>{p+=`${u}${d}`,Array.isArray(d)?d.forEach(f=>p+=`${f}`):typeof d=="object"?Object.values(d).forEach(f=>{typeof f=="number"?p+=`${f.toFixed(4)}`:p+=`${f}`}):p+=`${d}`})}),p}l.getHash=t;function e(c){let p=0;for(let a of c.layers)"alpha"in a.data&&a.data.type!=="light"&&a.data.type!=="fresnel"&&(p+=(1-p)*a.data.alpha);return p<1}l.isTransparent=e;function r(){return{layers:new Ee}}l.defaultEmptyData=r;function o(c="layer1",p="layer2"){return i("phong",c,p)}l.defaultData=o;function i(c,p="layer1",a="layer2"){let u=new Ee;return u.push({fi:0,data:Qr.defaultData("light",c),id:p}),u.push({fi:1,data:Qr.defaultData("color"),id:a}),{layers:u}}l.defaultTwoLayerData=i;function s(c,p="basic",a="layer1",u="layer2"){let d=Qr.defaultData("texture");Object.assign(d.texture,{image:c});let f=new Ee;return f.push({fi:0,data:d,id:a}),f.push({fi:1,data:Qr.defaultData("light",p),id:u}),{layers:f}}l.defaultTwoLayerTextureData=s})(Xt||(Xt={}));var ln;(t=>{function n(){return{points:new Ee,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=n})(ln||(ln={}));var Ys;(t=>{function n(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=n})(Ys||(Ys={}));var ei;(t=>{function n(e){if(e==="RectangleGeometry")return{width:320,height:320,type:e,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="VectorGeometry")return{width:1,height:1,type:e,subdivisions:12,shape:ln.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=n})(ei||(ei={}));var ti;(o=>{o.identity={...As.identity,hiddenMatrix:Yr.identity};function t(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}o.fromObject=t;function e(i,s){return{position:s?.position||i.position,rotation:s?.rotation||i.rotation,scale:s?.scale||i.scale,hiddenMatrix:s?.hiddenMatrix||i.hiddenMatrix}}o.merge=e;function r(i,s){return{position:rn.isEqual(i.position,s.position)?null:s.position,rotation:rn.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:rn.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:Yr.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}o.diff=r})(ti||(ti={}));var Gr;(t=>t.defaultData={states:new Ee,events:new Ee,visible:!0,raycastLock:!1,...ti.identity})(Gr||(Gr={}));var xd;(t=>t.defaultData={type:"Empty",...Gr.defaultData})(xd||(xd={}));var Ks;(t=>t.defaultData={type:"Mesh",...Gr.defaultData,...$s.defaultData})(Ks||(Ks={}));var vd;(t=>t.defaultData={type:"TextFrame",...Gr.defaultData,...Xs.defaultData})(vd||(vd={}));var Zs;(t=>t.defaultData={...Gr.defaultData,...ti.identity,...go.defaultData})(Zs||(Zs={}));var bd;(t=>{function n(e){return{...Gr.defaultData,...qs.defaultData(e)}}t.defaultData=n})(bd||(bd={}));var Sd;(r=>(r.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:Yr.identity,name:"Play Camera",visible:!0,raycastLock:!1,states:new Ee,events:new Ee,...go.defaultData},r.defaultMeshObject={name:"Rectangle",...Gr.defaultData,...Ks.defaultData,geometry:ei.defaultData("RectangleGeometry"),material:Xt.defaultTwoLayerData("basic","layer1","layer2")},r.defaultBooleanObject={name:"Boolean",...Gr.defaultData,...Ks.defaultData,geometry:ei.defaultData("BooleanGeometry"),material:Xt.defaultTwoLayerData("phong","layer1","layer2")}))(Sd||(Sd={}));var wd;(e=>{function n(r,o){if(o===void 0)return r;let i={...r};return"material"in i&&"material"in o&&o.material&&(i.material=Qa(i.material,s=>{if(typeof s!="string")for(let[l,c]of Object.entries(o.material.layers)){let p=s.layers.data(l);p&&ho(p,c)}}).data),i.materials&&o.materials&&(i.materials=Qa(i.materials,s=>{for(let l=0;l<i.materials.length;l++){let c=o.materials[l];if(typeof c!="string")for(let[p,a]of Object.entries(c.layers)){let u=s[l]?.layers?.data(p);u&&ho(u,a)}}}).data),i}e.patchMaterialState=n;function t(r,o){if(o===void 0)return r;let i={...r};if(Object.assign(i,ti.merge(i,o)),tn.is(r.type)){i.orthographic={...i.orthographic},i.perspective={...i.perspective};let s=o;s.orthographic?.zoom!==void 0&&(i.orthographic.zoom=s.orthographic.zoom),s.perspective?.zoom!==void 0&&(i.perspective.zoom=s.perspective.zoom),s.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=s.isUpVectorFlipped),s.targetOffset!==void 0&&(i.targetOffset=s.targetOffset)}else if(r.type==="Mesh")i.geometry={...i.geometry},Object.assign(i.geometry,o.geometry),i=n(i,o);else if(Ws.is(r.type)){let s=o;s.intensity!==void 0&&(i.intensity=s.intensity),s.color!==void 0&&(typeof s.color=="string"?i.color=s.color:i.color=Tt.clone(s.color))}return i}e.patch=t})(wd||(wd={}));var Qs;(t=>t.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,isTouchZoom:!0,orbitTouches:2,panTouches:3})(Qs||(Qs={}));var Js;(e=>{function n(){let r={};return r["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Zi(r,Ye.prototype)}e.defaultColors=n;function t(){return{materials:new Ye,images:new Ye,colors:new Ye,audios:new Ye,penumbraSize:[.5,.5,.5]}}e.emptyData=t})(Js||(Js={}));function _d(n){n.layers.forEach(t=>{if(t.type==="depth"&&t.colorA!==void 0){let e=t.colorA,r=t.colorB,o=[[e.r,e.g,e.b,e.a],[r.r,r.g,r.b,r.a]],i=[0,1];for(let l=2;l<10;l++)o.push(o[1]),i.push(1);let s={...$a(ar(t),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,t.near),far:Math.max(0,t.far),colors:o,steps:i,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(t,s)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={...ar(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function gl(n,t){Object.values(n.shared.materials).forEach(e=>t(e))}function yl(n,t){n.scene.objects.traverse((e,r)=>{"materials"in r?r.materials.forEach(o=>{typeof o!="string"&&t(o)}):"material"in r&&typeof r.material!="string"&&t(r.material)})}function sb(n){Object.assign(n.scene.publish,{orbitControls:{...Qs.defaultData,...ar(n.scene.publish.orbitControls)}})}function ab(n){function t(e){if(e.layers){for(let r of Object.values(e.layers))if(r){for(let[o,i]of Object.entries(r))if((gd.includes(o)||typeof i=="boolean")&&delete r[o],o==="texture")for(let[s,l]of Object.entries(i))(yd.includes(s)||typeof l=="boolean")&&delete i[s]}}}n.scene.objects.traverse((e,r)=>{r.states.forEach(o=>{let i=o;i.material?t(i.material):i.materials&&i.materials.forEach(s=>{t(s)})})})}function lb(n){n.scene.publish.withBackground=!0}function cb(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function ub(n){n.scene.objects.traverse((t,e)=>{let r=e.cloner;r&&(r.radial.scale=r.radial.scale.map(o=>o+1),r.linear.scale=r.linear.scale.map(o=>o+1))})}function pb(n){n.scene.objects.traverse((t,e)=>{let r=e.geometry;r&&(r.type==="DodecahedronGeometry"||r.type==="IcosahedronGeometry")&&(r.detail=Math.round(r.detail))})}function db(n){n.scene.objects.traverse((t,e)=>{let r=n.scene.objects.parent(t);e.type==="Mesh"&&(!r||n.scene.objects.data(r).geometry?.type!=="BooleanGeometry")&&(e.booleanExclude=null)})}function Td(n){n.layers===void 0&&Object.assign(n,Xt.defaultTwoLayerData("lambert"))}function xl(n){!n.layers||n.layers.forEach(t=>{if(t.type==="depth"&&t.colors.length===10){let e=[...t.colors];e.push(t.colors[9]);let r=[...t.steps];r.push(t.steps[9]);let o={...ar(t),colors:e,steps:r};Object.assign(t,o)}})}function fb(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function Ad(n){n.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&xl(r)}):"material"in e&&typeof e.material!="string"&&xl(e.material)}),Object.values(n.shared.materials).forEach(t=>xl(t))}function mb(n){n.scene.environment.ambientLight.softShadows=!1,n.scene.environment.ambientLight.softShadowQuality="low",n.scene.objects.traverse((t,e)=>{(e.type==="DirectionalLight"||e.type==="SpotLight")&&(e.shadowResolution=1024,e.shadowRadius=1,e.depth=1e5)}),n.shared.penumbraSize=new Array(5).fill(.5)}function hb(n){n.shared.audios=Zi({},Ye.prototype)}function gb(n){let t=n.shared.materials;Object.entries(t).forEach(([e,r])=>{if(!r.layers){let o={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"basic",alpha:1,visible:!0,mode:0},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(t,{[e]:o})}})}function yb(n){Object.entries(ar(n.shared.images)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.images[r]}),Object.entries(ar(n.shared.audios)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.audios[r]})}function xb(n){n.scene.publish.settings.web.preload=!1}function Nd(n){n.layers&&n.layers.forEach(t=>{t.type==="depth"&&t.num!==void 0&&(t.colors=t.colors.slice(0,t.num),t.steps=t.steps.slice(0,t.num),delete t.num)})}var Cd=18;function Pd(n){let t=n.schema??0;t!==Cd&&(console.warn("updating from ",t,"to ",Cd),t<1&&(yl(n,_d),gl(n,_d),n.schema=1),t<2&&(sb(n),n.schema=2),t<3&&(ab(n),n.schema=3),t<4&&(lb(n),n.schema=4),t<5&&(cb(n),n.schema=5),t<6&&(ub(n),n.schema=6),t<7&&(pb(n),n.schema=7),t<8&&(db(n),n.schema=8),t<9&&(Ad(n),n.schema=9),t<10&&(fb(n),n.schema=10),t<11&&(mb(n),n.schema=11),t<12&&(Ad(n),n.schema=12),t<13&&(hb(n),n.schema=13),t<14&&(gb(n),n.schema=14),t<15&&(yb(n),n.schema=15),t<16&&(xb(n),n.schema=16),t<17&&(yl(n,Nd),gl(n,Nd),n.schema=17),t<18&&(yl(n,Td),gl(n,Td),n.schema=18))}var ea;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(ea||(ea={}));var Ld=require("three"),Je=class extends Ld.Color{constructor(e,r,o,i){super(e,r,o);this.isColorA=!0;this.a=i}setRGBA(e,r,o,i){super.setRGB(e,r,o),this.a=i}copy(e){return super.copy(e),this.a="a"in e?e.a:1,this}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}get x(){return this.r}get y(){return this.g}get z(){return this.b}get w(){return this.a}set x(e){this.r=e}set y(e){this.g=e}set z(e){this.b=e}set w(e){this.a=e}};var Md=require("three");var De=require("three"),Od=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},n.parameters),r=e.width/2,o=e.radiusTop??r,i=e.radiusBottom??r;return o===i?(o=r,i=r):o>i?(o=r,i=i*r/o):(o=o*r/i,i=r),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),radiusTop:o,radiusBottom:i})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,radiusTop:p,radiusBottom:a,cornerRadius:u,cornerSegments:d,hollow:f}=n.parameters,m;return u||f?m=new oi(p,a,r,o,i,s,l,c*Math.PI/180,u,u,d,f):m=new De.CylinderBufferGeometry(p,a,r,o,i,s,l,c*Math.PI/180),m.scale(1,1,e/t),Object.assign(m,{userData:{...n,type:"CylinderGeometry"}})}};function Jr(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function Id(n){return new De.Vector2(n.y,-n.x)}var oi=class extends De.BufferGeometry{constructor(t,e,r,o,i,s,l,c,p,a,u,d,f=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,e=e!==void 0?e:1,r=r||1,o=Math.floor(o)||8,i=Math.floor(i)||1,s=s!==void 0?s:!1,l=l!==void 0?l:0,c=c!==void 0?c:Math.PI*2,s&&(p=0,a=0);let m=[],h=[],g=[],x=[],v=0,A=r/2,S=new De.Vector3,b=new De.Vector3;f&&t==0&&(t=p),f&&e==0&&(e=a);let D=new De.Vector2(t,A),w=new De.Vector2(e,-A),y=null,I=null,T=null,L=null,N=D.clone().sub(w),C=0,k=0,W=0;d>0&&(C=Math.min(t,e)*(1-d),k=t-C,W=e-C);let ne=D.clone();ne.x-=C;let ue=Math.PI-N.angle(),se=N.angle(),K=Math.tan(se/2),U=Math.tan(ue/2),V=K+U,E=d?V:U,B=d?V:K;if(p=Math.min(p,(t-k)/E,N.length()/V),a=Math.min(a,(e-W)/B,N.length()/V),p>0){let z=p/K;y=D.clone().sub(new De.Vector2(z,p)),d&&(T=y.clone(),T.x-=C-V*p),D.sub(N.clone().setLength(z))}if(a>0){let z=a/U;I=w.clone().sub(new De.Vector2(z,-a)),w.add(N.clone().setLength(z)),d&&(L=I.clone(),L.x-=C-V*a,ne.sub(N.clone().setLength(z)))}N=D.clone().sub(w);let O=N.length()<.5,G=[];for(let z=0;z<=o;z++){let M=[],q=z/o,J=q*c+l,ee=new De.Vector2(Math.sin(J),Math.cos(J));L&&I?(Z(M,q,ee,ue,a,L,-1,!0),Z(M,q,ee,se,a,I,-1,!1)):I?(j(M,ee,I.x,0,-1),Z(M,q,ee,se,a,I,-1,!1)):s||j(M,ee,e,W,-1);let H=Id(N).normalize();if(Jr(H,ee,S),!O)for(let Q=0;Q<=i;Q++){let $=Q/i,re=N.clone().multiplyScalar($).add(w);Jr(re,ee,b),h.push(b.x,b.y,b.z),g.push(S.x,S.y,S.z),x.push(q,.5+b.y/r),M.push(v++)}if(T&&y?(Z(M,q,ee,ue,p,y,1,!1),Z(M,q,ee,se,p,T,1,!0)):y?(Z(M,q,ee,ue,p,y,1,!1),j(M,ee,y.x,0,1)):s||j(M,ee,t,k,1),d&&!O){let Q=Id(N).multiplyScalar(-1).normalize();Jr(Q,ee,S);for(let $=0;$<=i;$++){let re=$/i,ce=N.clone().multiplyScalar(-re).add(ne);Jr(ce,ee,b),h.push(b.x,b.y,b.z),g.push(S.x,S.y,S.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==i)continue;let q=G[z][M],J=G[z+1][M],ee=G[z+1][M+1],H=G[z][M+1],Q=h[ee*3+0],$=h[ee*3+2];m.push(q,J,H),(Q!=0||$!=0)&&m.push(J,ee,H)}c<Math.PI*2&&(F(-1,G[0],l),F(1,G[G.length-1],l+c)),this.setIndex(m),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 Z(z,M,q,J,ee,H,Q,$){for(let re=0;re<u+1;re++){let ce=re/u,ie=Q<0?ce:1-ce;$&&(ie-=1),ie*=J;let me=new De.Vector2(Math.sin(ie),Math.cos(ie)*Q),Re=me.clone().multiplyScalar(ee).add(H);Jr(Re,q,b),h.push(b.x,b.y,b.z),Jr(me,q,S),g.push(S.x,S.y,S.z),x.push(M,.5+b.y/r),z.push(v++)}}function j(z,M,q,J,ee){let H=new De.Vector3,Q=new De.Vector2,$=[q,J];ee<0&&$.reverse();for(let re of $)Q.set(re,A*ee),Jr(Q,M,H),h.push(H.x,H.y,H.z),g.push(0,ee,0),x.push(.5,.5),z.push(v++)}function F(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,Q=z<0?(ce,ie,me)=>m.push(ce,ie,me):(ce,ie,me)=>m.push(ce,me,ie),$=new De.Vector2((t+e+k+W)/4,0);Jr($,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 me=x.slice(ce*2,ce*2+2);x.push(...me),v++}for(let ce=re+1;ce<v-1;ce++)Q(re,ce,ce+1);Q(re,v-1,re+1)}}};var Dd=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,cornerRadiusTop:p,cornerRadiusBottom:a,cornerSegments:u}=n.parameters,d;return p>0||a>0||c<360?d=new oi(0,t/2,r,o,i,s,l,c*Math.PI/180,p,a,u,0,!0):d=new Md.ConeBufferGeometry(t/2,r,o,i,s),d.scale(1,1,e/t),Object.assign(d,{userData:{...n,type:"ConeGeometry"}})}};var Nt=require("three"),Bd=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,widthSegments:o,heightSegments:i,depthSegments:s,cornerRadius:l,cornerSegments:c}=n.parameters,p;return l==0?p=new Nt.BoxBufferGeometry(t,e,r,o,i,s):p=new bl(t,e,r,o,i,s,l,c),Object.assign(p,{userData:{...n,type:"CubeGeometry"}})}},vl=Math.PI/2,bl=class extends Nt.BufferGeometry{constructor(t=1,e=1,r=1,o=1,i=1,s=1,l=0,c=4){super(),this.type="BoxBufferGeometry";let p=this;o=Math.floor(o),i=Math.floor(i),s=Math.floor(s),c=Math.floor(c),l=Math.min(l,t/2,e/2,r/2);let a=[],u=[],d=[],f=[],m=0,h=0;g("z","y","x",-1,-1,r,e,t,s,i,0),g("z","y","x",1,-1,r,e,-t,s,i,1),g("x","z","y",1,1,t,r,e,o,s,2),g("x","z","y",1,-1,t,r,-e,o,s,3),g("x","y","z",1,-1,t,e,r,o,i,4),g("x","y","z",-1,-1,t,e,-r,o,i,5),l>0&&(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,i,0),x("y","x","z",1,-1,-1,e,t,r,i,1),x("y","x","z",1,1,1,e,t,r,i,1),x("y","x","z",-1,1,-1,e,t,r,i,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(a),this.setAttribute("position",new Nt.Float32BufferAttribute(u,3)),this.setAttribute("normal",new Nt.Float32BufferAttribute(d,3)),this.setAttribute("uv",new Nt.Float32BufferAttribute(f,2));function g(A,S,b,D,w,y,I,T,L,N,C){let k=(y-2*l)/L,W=(I-2*l)/N,ne=y/2-l,ue=I/2-l,se=T/2,K=L+1,U=N+1,V=0,E=0,B=new Nt.Vector3;for(let O=0;O<U;O++){let G=O*W-ue;for(let Z=0;Z<K;Z++){let j=Z*k-ne;B[A]=j*D,B[S]=G*w,B[b]=se,u.push(B.x,B.y,B.z),B[A]=0,B[S]=0,B[b]=T>0?1:-1,d.push(B.x,B.y,B.z),f.push(Z/L),f.push(1-O/N),V+=1}}for(let O=0;O<N;O++)for(let G=0;G<L;G++){let Z=m+G+K*O,j=m+G+K*(O+1),F=m+(G+1)+K*(O+1),z=m+(G+1)+K*O;a.push(Z,j,z),a.push(j,F,z),E+=6}p.addGroup(h,E,C),h+=E,m+=V}function x(A,S,b,D,w,y,I,T,L,N,C){let k=(I-2*l)/N,W=I/2-l,ne=T/2-l,ue=L/2,se=N+1,K=0,U=0,V=new Nt.Vector3,E=new Nt.Vector3;for(let B=0;B<c+1;B++){let O=B/c*vl,G=Math.sin(O)*l,Z=(1-Math.cos(O))*l,j=Math.sin(O),F=Math.cos(O);V[S]=(ne+G)*w,V[b]=(ue-Z)*y,E[A]=0,E[S]=j*Math.sign(V[S]),E[b]=F*Math.sign(V[b]);for(let z=0;z<se;z++){let M=z*k-W;V[A]=M*D,u.push(V.x,V.y,V.z),d.push(E.x,E.y,E.z),f.push(z/N),f.push(0),K+=1}}for(let B=0;B<c;B++)for(let O=0;O<N;O++){let G=m+O+se*B,Z=m+O+se*(B+1),j=m+(O+1)+se*(B+1),F=m+(O+1)+se*B;a.push(G,Z,F),a.push(Z,j,F),U+=6}p.addGroup(h,U,C),h+=U,m+=K}function v(A,S,b){let D=new Nt.Vector3,w=new Nt.Vector3(t/2,e/2,r/2);w.subScalar(l);let y=[],I=A*S*b>0?(L,N,C)=>a.push(L,N,C):(L,N,C)=>a.push(L,C,N);for(let L=0;L<=c;L++){let N=[],C=vl*(1-L/c),k=Math.cos(C),W=Math.sin(C),ne=0;for(let ue=0;ue<=L;ue++){let se=Math.cos(ne),K=Math.sin(ne);D.x=k*se,D.y=W,D.z=k*K;let U=w.clone().addScaledVector(D,l);u.push(A*U.x,S*U.y,b*U.z),d.push(A*D.x,S*D.y,b*D.z),f.push(0,0),N.push(m++),ne+=vl/L}y.push(N)}let T=y.length-1;for(let L=0;L<T;L++){let N=y[L],C=y[L+1],k=N.length-1;I(N[0],C[1],C[0]);for(let W=1;W<=k;W++)I(N[W-1],N[W],C[W]),I(N[W],C[W+1],C[W])}}}};var ze=require("three"),eo=class extends ze.BufferGeometry{constructor(t=[],e=[],r="",o=1,i=.2,s=4){super(),this.type="PolyhedronGeometryRound";let l=[],c=[],p=[];a(),u(),this.setAttribute("position",new ze.Float32BufferAttribute(l,3)),this.setAttribute("normal",new ze.Float32BufferAttribute(p,3)),this.setAttribute("uv",new ze.Float32BufferAttribute(c,2));return;function a(){i=Math.min(1-1e-5,i),i==0&&(s=0);let f={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],m=new ze.Vector3,h=m.clone(),g=new ze.Triangle,x=i*o,v=o-x,A=s+1,S=new ze.Vector3,b=(K,U)=>S.subVectors(K,U).normalize(),D=(K,U)=>Array(K).fill(void 0).map(U),w=D(t.length/3,(K,U)=>new ze.Vector3().fromArray(t,U*3).setLength(o)),y=[],I=1e6;for(let K=0;K<w.length;K++){let U=w[K],V=[],E,B,O,G=1e10,Z=-1;for(;(Z=e.indexOf(K,Z+1))!=-1;){let M=Z-Z%3;E=e[M+(Z+1)%3],B=e[M+(Z+2)%3],O=U.distanceToSquared(w[E]),G=Math.min(G,O),V.push([E,B,O])}G+=1e-6;let j=[],F=0,z=V.length;for(let M=0;M<z;M++){[E,B,O]=V[F];let q=y[E]?.includes(K)==!0;O<=G&&j.push(E+ +q*I),F=V.findIndex(J=>J[0]==B)}y.push(j)}let T=[];{let K=0,U=0,V,E,B=f==3;for(let O=0;O<=s;O++){V=O*(O+1)/2,E=(O+1)*(O+2)/2;for(let G=0;G<s-O;G++)[K,U]=[V+G+O+2,E+G+O+3],T.push(V,E,...B?[U,V]:[K,E],U,K),[V,E]=[K,U];T.push(V,E,V+s+2)}}let L=m.clone(),N=m.clone(),C=m.clone(),k=m.clone(),W=m.clone(),ne=[],ue=D(w.length,()=>D(f,()=>m.clone()));for(let K=0;K<w.length;K++){m.copy(w[K]).normalize(),L.copy(m).multiplyScalar(v);let U=y[K];for(let j=0;j<U.length;j++){let F=U[j],z=U[(j+1)%f];g.setFromPointsAndIndices(w,K,F%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][j])}let V=[],E=[],B=[],O=new ze.Vector3;s==0&&[...ue[K]].reduce((j,F)=>j.add(F),O).multiplyScalar(1/f);for(let j=0;j<f;j++){let F=[],z=(j-1+f)%f,M=ue[K][z],q=ue[K][j];m.copy(M).sub(L),h.copy(q).sub(L);let J=L.angleTo(m),ee=m.angleTo(h),H=Math.cos(J)*x;s==0?N.copy(O):N.copy(L).setLength(v+H),E.push(H);let Q=[N,M,q];for(let $=0;$<2;$++){let re=Q[$],ce=Q[$+1];k.subVectors(re,L),W.subVectors(ce,L),C.crossVectors(k,W).normalize();for(let ie=0;ie<A;ie++){let me=[J,ee][$]*ie/A;m.copy(k).applyAxisAngle(C,me).add(L),V.push(m.clone()),$&&(b(m,L),F.push([ie==0?re:m.clone(),S.clone()]))}$&&(b(ce,L),F.push([ce,S.clone()]))}B.push(F)}ne.push(B);let G=2*A,Z=2;for(let j=0;j<f;j++){let F=G*j,z=G*((j+1)%f),M=[V[F]];for(let J=1;J<A;J++){k=V[F+J],W=V[z+J],M.push(k);for(let ee=1,H=J-Z+1;ee<=H;ee++)m.lerpVectors(k,W,ee/(H+1)),m.sub(L).setLength(E[j]).add(L),M.push(m.clone());M.push(W)}for(let J=0;J<A;J++)M.push(V[J+A+F]);M.push(V[z+A]);let q=T.map(J=>M[J]);l.push(...q.map(J=>[J.x,J.y,J.z]).flat()),p.push(...q.map(J=>(b(J,L),[S.x,S.y,S.z])).flat())}}let se=[];for(let K=0;K<y.length;K++)for(let U=0;U<f;U++){let V=y[K][U];if(V<I){let E=y[V].findIndex(G=>G%I==K),B=ne[K][U],O=ne[V][E];for(let G=0;G<A;G++){let Z=B[G],j=O[A-G],F=B[G+1],z=O[A-(G+1)];[Z,j,F,F,j,z].forEach(M=>{l.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],O[A][0],B[A][0],O[0][0])}}for(;se.length;){let K,U,V,E;[K,U]=se.splice(0,2);let B=[K];for(;K!=U;)B.push(U),V=se.indexOf(U),E=V%2,U=se.splice(V-E,2)[1-E];S.subVectors(B[0],B[1]).cross(m.subVectors(B[0],B[2])).normalize();let O=S.dot(B[0])<0;O&&S.negate();for(let G=1;G<=B.length-2;G++)[B[G+ +O],B[G+1-+O],B[0]].forEach(Z=>{l.push(Z.x,Z.y,Z.z),p.push(S.x,S.y,S.z)})}}function u(){let d=new ze.Vector3;for(let w=0;w<l.length;w+=3){d.x=l[w+0],d.y=l[w+1],d.z=l[w+2];let y=b(d)/2/Math.PI+.5,I=D(d)/Math.PI+.5;c.push(y,1-I)}let f=new ze.Vector3,m=new ze.Vector3,h=new ze.Vector3,g=new ze.Vector3,x=new ze.Vector2,v=new ze.Vector2,A=new ze.Vector2,S=(w,y,I,T)=>{T<0&&w.x===1&&(c[y]=w.x-1),I.x===0&&I.z===0&&(c[y]=T/2/Math.PI+.5)};for(let w=0,y=0;w<l.length;w+=9,y+=6){f.set(l[w+0],l[w+1],l[w+2]),m.set(l[w+3],l[w+4],l[w+5]),h.set(l[w+6],l[w+7],l[w+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(f).add(m).add(h).divideScalar(3);let I=b(g);S(x,y+0,f,I),S(v,y+2,m,I),S(A,y+4,h,I)}for(let w=0;w<c.length;w+=6){let y=c[w+0],I=c[w+2],T=c[w+4],L=Math.max(y,I,T),N=Math.min(y,I,T);L>.9&&N<.1&&(y<.2&&(c[w+0]+=1),I<.2&&(c[w+2]+=1),T<.2&&(c[w+4]+=1))}function b(w){return Math.atan2(w.z,-w.x)}function D(w){return Math.atan2(-w.y,Math.sqrt(w.x*w.x+w.z*w.z))}}}static fromJSON(t){return new eo(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};var Ed=require("three"),Gd=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new ni(t*.5,i,s):new Ed.DodecahedronBufferGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"DodecahedronGeometry"}})}},ni=class extends eo{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=1/o,s=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-o,0,-i,o,0,i,-o,0,i,o,-i,-o,0,-i,o,0,i,-o,0,i,o,0,-o,0,-i,o,0,-i,-o,0,i,o,0,i],l=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],c="DodecahedronGeometry";super(s,l,c,t,e,r),this.type=c}static fromJSON(t){return new ni(t.radius,t.corner,t.cornerSides)}};var be=require("three");var he=require("three"),ii=1e-12,cn=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 cn(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},un=class extends cn{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new un(this.parent).copy(this)}},Yt=class extends cn{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new un(this),new un(this))}static create(e,r){let o=new Yt(e,new he.Vector2(...r.position));return o.controls[0].position.set(...r.controlPrevious.position),o.controls[1].position.set(...r.controlNext.position),o.roundness=r.roundness,o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored,o}getOppositeControl(e){let r=this.controls.indexOf(e);return r===0?this.controls[1]:r===1?this.controls[0]:null}applyOffsetToControls(e,r=1){for(let o=0,i=this.controls.length;o<i;o++){let s=this.controls[o];this.position.distanceTo(s.position)<=r?s.position.copy(this.position):s.applyOffset(e)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(e){return super.copy(e),this.controls[0].copy(e.controls[0]),this.controls[1].copy(e.controls[1]),this.roundness=e.roundness,this.uuid=e.uuid,this}clone(){return new Yt(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let e=this.curveBefore?.getTangentAt(1),r=this.curveAfter?.getTangentAt(0);return[e,r]}computeNormals(e=new he.Vector2,r=new he.Vector2){let[o,i]=this.computeTangents();return o&&i&&(Rd(o,e),Rd(i,r)),[e,r]}computeTangent(e=new he.Vector2){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new he.Vector2){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function Rd(n,t=new he.Vector2){let e=n.length();return t.set(-n.y/e,n.x/e)}var wl=n=>n,pn=new he.Vector2,ta=new he.Vector2,vb=new he.Vector2,bb=new he.Vector2,Sb=new he.Vector2,wb=new he.Vector2,Fd=new he.Vector3,zd=new he.Vector3;function Ud(n){let t=new he.Vector2;t.addVectors(n.v0,pn.subVectors(n.v1,n.v0).multiplyScalar(2/3));let e=new he.Vector2;return e.addVectors(n.v2,ta.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new he.CubicBezierCurve(n.v0,t,e,n.v2)}function si(n,t,e=Number.EPSILON){return Math.abs(n-t)<e}function _b(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function Tb(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function _l(n,t,e){let r=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),i=Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2));return Math.acos((o*o+r*r-i*i)/(2*o*r))}function jd(n,t,e){return Vd(n,t)&&Vd(t,e)&&Sl(n.position,t.position,e.position)}function Sl(n,t,e){return pn.copy(t).sub(n).cross(ta.copy(e).sub(n))===0}function kd(n,t,e,r,o){let i=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),s=(n.y+t.y)/2,l=(n.x+t.x)/2,c=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(n.y-t.y)/i,p=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(t.x-n.x)/i;return r.set(l+c,s+p),o.set(l-c,s-p),[r,o]}function Hd(n,t,e){let r=n.distanceTo(e),o=t.distanceTo(e);return r<o?t:n}function Wd(n,t,e,r,o,i){let s=t.x-n.x,l=t.y-n.y,c=e.x-n.x,p=e.y-n.y,a=Math.sqrt((s+c)*(s+c)+(l+p)*(l+p)),u;return _l(t,n,e)>Math.PI&&(a*=-1),si(p,l)?u=(l+p)*(r/a-.5)*8/3/(s-c):u=(s+c)*(r/a-.5)*8/3/(p-l),o.set(t.x-u*l,t.y+u*s),i.set(e.x+u*p,e.y-u*c),[o,i]}function Tl(n,t){return n.position.equals(n.controls[1].position)&&t.position.equals(t.controls[0].position)}function Vd(n,t){return Sl(n.position,n.controls[1].position,t.position)&&Sl(n.position,t.controls[0].position,t.position)}function qd(n,t,e,r,o=.5){let i=pn.subVectors(t,n).multiplyScalar(o).add(n),s=ta.subVectors(e,t).multiplyScalar(o).add(t),l=vb.subVectors(r,e).multiplyScalar(o).add(e),c=i,p=bb.subVectors(s,i).multiplyScalar(o).add(i),a=Sb.subVectors(l,s).multiplyScalar(o).add(s),u=l,d=wb.subVectors(a,p).multiplyScalar(o).add(p);return[n.x,n.y,c.x,c.y,p.x,p.y,d.x,d.y,a.x,a.y,u.x,u.y,r.x,r.y]}function $d(n,t,e=12,r=!0){let o=zd.set(0,0,0),i,s=0,l=[];for(let c=0;c<t.length;c++){let p=wl(t[c]),a=pn,u=to(p,e);l.push(u);for(let d=0;d<=u;d++)if(p instanceof he.CubicBezierCurve||p instanceof he.QuadraticBezierCurve||p instanceof he.LineCurve){if(p.getPoint(d/u,a),o.set(a.x,a.y,0),i!==void 0&&Tb(i,o))continue;i===void 0&&(i=Fd),i.copy(o),n.setXYZ(s,o.x,o.y,o.z),s++}}return r&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),n}function Xd(n,t,e,r=12,o=!0){let i=zd.set(0,0,0),s=0,l=[];for(let c=0;c<t.length;c++){if(e[c]===!1)continue;let p,a=wl(t[c]),u=pn,d=to(a,r);l.push(d);for(let f=0;f<=d;f++)if(a instanceof he.CubicBezierCurve||a instanceof he.QuadraticBezierCurve||a instanceof he.LineCurve){if(a.getPoint(f/d,u),i.set(u.x,u.y,0),p?.equals(i))continue;p===void 0?p=Fd:(n.setXYZ(s,p.x,p.y,p.z),s++,n.setXYZ(s,i.x,i.y,i.z),s++),p.copy(i)}}return o&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),l}function Al(n,t=12,e=!1){let r=[];for(let o=0,i=n.length;o<i;o++){let s=n[o],l=0;if(e&&s.roundedCurveCorner!==void 0){let c=to(s.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=c),l+=c}s.curveAfter!==void 0&&(l+=to(s.curveAfter,t)),r.push(l)}return n.length>0&&e&&n[0].roundedCurveCorner!==void 0&&(r[n.length-1]+=to(n[0].roundedCurveCorner,t)*.5),r}function to(n,t=12){return n&&n instanceof he.EllipseCurve?t*2:n&&(n instanceof he.LineCurve||n instanceof he.LineCurve3)?1:n&&n instanceof he.SplineCurve?t*n.points.length:t}function Yd(n,t,e=12,r=!0){let o,i=0;for(let s=0;s<t.length;s++){let l=wl(t[s]),c=to(l,e),p=pn;for(let a=0;a<=c;a++)if(l instanceof he.CubicBezierCurve||l instanceof he.QuadraticBezierCurve||l instanceof he.LineCurve){if(l.getPoint(a/c,p),o!==void 0&&_b(o,p,ii))continue;o===void 0&&(o=ta),o.copy(p),n.push(p.x,p.y),i++}}return si(n[0],n[n.length-2],ii)&&si(n[1],n[n.length-1],ii)&&(n.pop(),n.pop()),r&&i>1&&!(si(n[i-1],n[1],ii)&&si(n[i-2],n[0],ii))&&(n.push(n[0],n[1]),i++),n}var Nl=new be.Vector2,Ab=new be.Vector2,Nb=new be.Vector2,Cb=new be.Vector2,Pb=new be.Vector2,Lb=new be.Vector2,Ae=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 i=new Ae;return i.isClosed=e.isClosed,i.points=e.points.map(s=>Yt.create(s.id,s.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(s=>Ae.createFromState(s)),r!==void 0&&o!==void 0&&i.applySize(r,o),i.update(),i}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(e){if(this._roundness!==e){this._roundness=e;for(let r=0,o=this.points.length;r<o;r++)this.points[r].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(r=>this.getPointIndexById(r)).filter(r=>r>=0)}getPointIndexById(e){let r=this.points.length,o=this.points.findIndex(i=>i.uuid===e);if(o<0){let i=r;for(let s=0,l=this.shapeHoles.length;s<l;s++){let c=this.shapeHoles[s],p=c.points.length-1,a=c.getPointIndexById(e);if(a<0)i+=p;else return a+i}}return o}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0)for(let r=0,o=this.shapeHoles.length;r<o;r++){let i=this.shapeHoles[r],s=e-this.points.length;if(s<=i.points.length-1)return i.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,i=this.shapeHoles.length;o<i;o++){let s=this.shapeHoles[o],l=s.points.indexOf(e);if(l>=0)return r+l;r+=s.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(r=>r.points));return[...this.points,...e]}applySize(e,r){e===0&&(e=.001),r===0&&(r=.001),this._width=e,this._height=r}applyScale(e,r){let o=Nl.set(e,r);for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i];l.position.multiply(o),l.controls[0].position.multiply(o),l.controls[1].position.multiply(o)}for(let i=0,s=this.shapeHoles.length;i<s;i++)this.shapeHoles[i].applyScale(e,r);this._update(!1)}createPoint(e,r=0,o=be.MathUtils.generateUUID()){let i;e instanceof be.Vector2?i=e:i=new be.Vector2(e,r);let s=new Yt(o,i);return s.roundness=this.roundness,s}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,r){this.points.splice(r,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let r=0,o=this.points.length;r<o;r++){let i=this.points[r];if(i.uuid===e)return i}for(let r=0,o=this.shapeHoles.length;r<o;r++){let s=this.shapeHoles[r].getPointByUuid(e);if(s)return s}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let r=this.points.indexOf(e);r>=0&&this.points.splice(r,1),this.needsUpdate=!0}removePointById(e){let r=this.points.find(o=>o.uuid===e);r&&this.removePoint(r)}update(e=!0){for(let r=0,o=this.shapeHoles.length;r<o;r++)this.shapeHoles[r].update(!1);this._update(e)}extractShapePointsToBuffer(e,r=12,o=!1){this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r);let i=o?this.roundedCurveDivisions:this.curveDivisions;return $d(e,o?this.roundedCurves:this.curves,r,this.autoClose),i.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Al(this.points,e,!1),this.roundedCurveDivisions=Al(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return Xd(e,this.curves,r,o,this.autoClose).reduce((s,l)=>s+l,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),Yd(e,this.roundedCurves,r,this.autoClose)}getCurveIndexFromVertexId(e,r=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=r?this.roundedCurveDivisions:this.curveDivisions,s=0;r&&this.points[0].roundedCurveCorner!==void 0&&(s=to(this.points[0].roundedCurveCorner,this.subdivision)*.5);let l=e-s;l<0&&(l+=i.reduce((c,p)=>c+p,0));for(let c=0,p=i.length;c<p;c++){let a=i[c];if(l<o+a)return[c,(l-o+1)/a];o+=a}return[0,1]}getCurveT(e,r,o){let i=this.points[e],s=this.points[e>=this.points.length-1?0:e+1],l=this.curveDivisions,c=l[e];if(Tl(i,s)){let u=i.position.distanceTo(s.position);return i.position.distanceTo(Nl.set(o.x,o.y))/u}let p=0;for(let u=0;u<e;u++)p+=l[u];return(r-p)/c}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,r){Tl(r,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(r.controls[1].position.x,r.controls[1].position.y,e.controls[0].position.x,e.controls[0].position.y,e.position.x,e.position.y);let o=this.curves[this.curves.length-1];e.curveBefore=o,r.curveAfter=o;let i=o.clone();e.roundedCurveBefore=i,r.roundedCurveAfter=i,e.roundedCurveCorner=void 0,this.roundedCurves.push(i)}_update(e=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let o=0,i=this.points.length;o<i;o++){let s=this.points[o];if(o===0)this.moveTo(s.position.x,s.position.y);else{let l=this.points[o-1];this._applyCurveForPoint(s,l)}}let r=this.getLastPoint();if(r?.curveAfter&&(r.curveAfter=void 0),this.isClosed){let o=this.points[0],i=this.points[this.points.length-1];this._applyCurveForPoint(o,i)}if(this.points.length>2){let o=0;for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i],c=this.points[i-1]??this.points[this.points.length-1],p=this.points[i+1]??this.points[0],a=l.roundness,u=c&&p&&jd(c,l,p);if(!l.controlsMoved()&&a>0&&!u){let d=l.curveBefore,f=l.curveAfter;if(d===void 0||f===void 0)continue;let m=l.roundedCurveBefore,h=l.roundedCurveAfter,g=d.getLength(),x=f.getLength(),v=Math.min(a,g*.499),A=Math.min(a,x*.499),S=Math.min(v,A),b=1-S/g,D=S/x,w=d.getPointAt(b,Nl),y=f.getPointAt(D,Ab);this._subSplitCurve(d,m,b,w,void 0),this._subSplitCurve(f,h,D,void 0,y);let I;if(this.useCubicForRoundedCorners){let T=_l(w,l.position,y)/2,L=Math.tan(T)*w.distanceTo(l.position),[N,C]=kd(w,y,L,Nb,Cb),k=Hd(N,C,l.position),[W,ne]=Wd(k,w,y,L,Pb,Lb);I=new be.CubicBezierCurve(w.clone(),W.clone(),ne.clone(),y.clone())}else I=new be.QuadraticBezierCurve(w.clone(),l.position.clone(),y.clone());l.roundedCurveCorner=I,this.roundedCurves.splice(i+o,0,I),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,r,o,i,s){if(e instanceof be.LineCurve)i!==void 0&&r.v2.copy(i),s!==void 0&&r.v1.copy(s);else{let l=e,c=r,p=l.getUtoTmapping(o,0),a=qd(l.v0,l.v1,l.v2,l.v3,p);return i!==void 0&&(c.v0.set(a[0],a[1]),c.v1.set(a[2],a[3]),c.v2.set(a[4],a[5]),c.v3.set(a[6],a[7])),s!==void 0&&(c.v0.set(a[6],a[7]),c.v1.set(a[8],a[9]),c.v2.set(a[10],a[11]),c.v3.set(a[12],a[13])),c}return r}clone(){let e=new Ae(this._width,this._height);return e.points=this.points.map(r=>r.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(r=>r.clone()),e}toJSON(){return{points:this.points.reduce((e,r)=>e.concat(r.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){this.points=[],this.pointIDs=0;let r=e.points.length/7;for(let o=0;o<r;o++){let i=o*7,s=e.points[i+0],l=e.points[i+1],c=e.points[i+2],p=e.points[i+3],a=e.points[i+4],u=e.points[i+5],d=e.points[i+6],f=new Yt(be.MathUtils.generateUUID(),new be.Vector2(s,l));f.controls[0].position.set(c,p),f.controls[1].position.set(a,u),f.roundness=d,this.points.push(f)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let i=new Ae;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let r=(i,s)=>{s instanceof be.CubicBezierCurve&&s.v3.equals(i.position)&&i.controls[0].position.copy(s.v2)},o=i=>{let s=[],l,c;for(l=0,c=i.length;l<c;l++)i[l]instanceof be.QuadraticBezierCurve&&(i[l]=Ud(i[l]));for(l=0,c=i.length;l<c;l++){let u=i[l],d=l>0?i[l-1]:null,f;u instanceof be.CubicBezierCurve?(f=this.createPoint(u.v0),f.controls[1].position.copy(u.v1)):u instanceof be.LineCurve&&(f=this.createPoint(u.v1)),f!==void 0&&(d!==null&&r(f,d),s.push(f))}let p=i[i.length-1],a=!1;return p instanceof be.CubicBezierCurve?p.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(p.v2),a=!0):p instanceof be.LineCurve&&p.v2.equals(s[0].position)&&(a=!0),this.isClosed=a,s};return this.points=o(e.curves),e instanceof be.Shape&&(this.shapeHoles=e.holes.map(i=>{let s=new Ae;return s.fromShape(i),s})),this.update(),this}};var Pl=Math.PI*2;function Cl({x:n,y:t},e,r,o,i){return{x:n*e+o,y:t*r+i}}function Ib(n,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=Math.cos(n),o=Math.sin(n),i=Math.cos(n+t),s=Math.sin(n+t);return[{x:r-o*e,y:o+r*e},{x:i+s*e,y:s-i*e},{x:i,y:s}]}function Kd(n,t,e,r){let o=n*r-t*e<0?-1:1,i=Math.min(1,Math.max(-1,n*e+t*r));return o*Math.acos(i)}function Ob(n,t,e,r,o,i,s,l,c,p){let a=Math.pow(o,2),u=Math.pow(i,2),d=Math.pow(s,2),f=Math.pow(l,2),m=a*u-a*f-u*d;m<0&&(m=0),m/=a*f+u*d,m=Math.sqrt(m)*(c===p?-1:1);let h=m*o/i*l,g=m*-i/o*s,x=h+(n+e)/2,v=g+(t+r)/2,A=(s-h)/o,S=(l-g)/i,b=(-s-h)/o,D=(-l-g)/i,w=Kd(1,0,A,S),y=Kd(A,S,b,D);return!p&&y>0&&(y-=Pl),p&&y<0&&(y+=Pl),{centerx:x,centery:v,ang1:w,ang2:y}}function Zd({px:n,py:t,cx:e,cy:r,rx:o,ry:i,largeArcFlag:s,sweepFlag:l}){let c=[];if(o===0||i===0)return[];let p=(n-e)/2,a=(t-r)/2;if(p===0&&a===0)return[];o=Math.abs(o),i=Math.abs(i);let u=Math.pow(p,2)/Math.pow(o,2)+Math.pow(a,2)/Math.pow(i,2);u>1&&(o*=Math.sqrt(u),i*=Math.sqrt(u));let d=Ob(n,t,e,r,o,i,p,a,s,l),{ang1:f,ang2:m}=d,{centerx:h,centery:g}=d,x=Math.abs(m)/(Pl/4);Math.abs(1-x)<1e-7&&(x=1);let v=Math.max(Math.ceil(x),1);m/=v;for(let A=0;A<v;A++)c.push(Ib(f,m)),f+=m;return c.map(A=>{let{x:S,y:b}=Cl(A[0],o,i,h,g),{x:D,y:w}=Cl(A[1],o,i,h,g),{x:y,y:I}=Cl(A[2],o,i,h,g);return{x1:S,y1:b,x2:D,y2:w,x:y,y:I}})}var So=require("three");var Be;(function(n){n[n.ODD=0]="ODD",n[n.NONZERO=1]="NONZERO",n[n.POSITIVE=2]="POSITIVE",n[n.NEGATIVE=3]="NEGATIVE",n[n.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Be||(Be={}));var et;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(et||(et={}));function pe(n,t){if(!n)throw t||"Assertion Failed!"}var ae=function(){function n(){}return n.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},n.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},n.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},n.edgeGoesLeft=function(t){return n.vertLeq(t.Dst,t.Org)},n.edgeGoesRight=function(t){return n.vertLeq(t.Org,t.Dst)},n.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},n.edgeEval=function(t,e,r){pe(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?o<i?e.t-t.t+(t.t-r.t)*(o/(o+i)):e.t-r.t+(r.t-t.t)*(i/(o+i)):0},n.edgeSign=function(t,e,r){pe(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?(e.t-r.t)*o+(e.t-t.t)*i:0},n.transEval=function(t,e,r){pe(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?o<i?e.s-t.s+(t.s-r.s)*(o/(o+i)):e.s-r.s+(r.s-t.s)*(i/(o+i)):0},n.transSign=function(t,e,r){pe(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?(e.s-r.s)*o+(e.s-t.s)*i:0},n.vertCCW=function(t,e,r){return t.s*(e.t-r.t)+e.s*(r.t-t.t)+r.s*(t.t-e.t)>=0},n.interpolate=function(t,e,r,o){return t=t<0?0:t,r=r<0?0:r,t<=r?r===0?(e+o)/2:e+(o-e)*(t/(t+r)):o+(e-o)*(r/(t+r))},n.intersect=function(t,e,r,o,i){var s,l,c;n.vertLeq(t,e)||(c=t,t=e,e=c),n.vertLeq(r,o)||(c=r,r=o,o=c),n.vertLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.vertLeq(r,e)?n.vertLeq(e,o)?(s=n.edgeEval(t,r,e),l=n.edgeEval(r,e,o),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,e.s)):(s=n.edgeSign(t,r,e),l=-n.edgeSign(t,o,e),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,o.s)):i.s=(r.s+e.s)/2,n.transLeq(t,e)||(c=t,t=e,e=c),n.transLeq(r,o)||(c=r,r=o,o=c),n.transLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.transLeq(r,e)?n.transLeq(e,o)?(s=n.transEval(t,r,e),l=n.transEval(r,e,o),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,e.t)):(s=n.transSign(t,r,e),l=-n.transSign(t,o,e),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,o.t)):i.t=(r.t+e.t)/2},n}(),ai=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return n}(),ra=function(){function n(t){this.side=t,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(n.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),n}(),dn=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}return n}(),Qd=function(){function n(){var t=new dn,e=new ai,r=new ra(0),o=new ra(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,r.next=r,r.Sym=o,o.next=o,o.Sym=r,this.vHead=t,this.fHead=e,this.eHead=r,this.eHeadSym=o}return n.prototype.makeEdge_=function(t){var e=new ra(0),r=new ra(1);t.Sym.side<t.side&&(t=t.Sym);var o=t.Sym.next;return r.next=o,o.Sym.next=e,e.next=t,t.Sym.next=r,e.Sym=r,e.Onext=e,e.Lnext=r,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,r.Sym=e,r.Onext=r,r.Lnext=e,r.Org=null,r.Lface=null,r.winding=0,r.activeRegion=null,e},n.prototype.splice_=function(t,e){var r=t.Onext,o=e.Onext;r.Sym.Lnext=e,o.Sym.Lnext=t,t.Onext=o,e.Onext=r},n.prototype.makeVertex_=function(t,e,r){var o=t;pe(o,"Vertex can't be null!");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e;var s=e;do s.Org=o,s=s.Onext;while(s!==e)},n.prototype.makeFace_=function(t,e,r){var o=t;pe(o,"Face can't be null");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e,o.trail=null,o.marked=!1,o.inside=r.inside;var s=e;do s.Lface=o,s=s.Lnext;while(s!==e)},n.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,r=t.Sym.next;e.Sym.next=r,r.Sym.next=e},n.prototype.killVertex_=function(t,e){var r=t.anEdge,o=r;do o.Org=e,o=o.Onext;while(o!==r);var i=t.prev,s=t.next;s.prev=i,i.next=s},n.prototype.killFace_=function(t,e){var r=t.anEdge,o=r;do o.Lface=e,o=o.Lnext;while(o!==r);var i=t.prev,s=t.next;s.prev=i,i.next=s},n.prototype.makeEdge=function(){var t=new dn,e=new dn,r=new ai,o=this.makeEdge_(this.eHead);return this.makeVertex_(t,o,this.vHead),this.makeVertex_(e,o.Sym,this.vHead),this.makeFace_(r,o,this.fHead),o},n.prototype.splice=function(t,e){var r=!1,o=!1;if(t!==e){if(e.Org!==t.Org&&(o=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!o){var i=new dn;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!r){var s=new ai;this.makeFace_(s,e,t.Lface),t.Lface.anEdge=t}}},n.prototype.delete=function(t){var e=t.Sym,r=!1;if(t.Lface!==t.Rface&&(r=!0,this.killFace_(t.Lface,t.Rface)),t.Onext===t)this.killVertex_(t.Org,null);else if(t.Rface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev),!r){var o=new ai;this.makeFace_(o,t,t.Lface)}e.Onext===e?(this.killVertex_(e.Org,null),this.killFace_(e.Lface,null)):(t.Lface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),this.killEdge_(t)},n.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),r=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new dn;return this.makeVertex_(o,r,e.Org),e.Lface=r.Lface=t.Lface,e},n.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t),r=e.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,r),t.Dst=r.Org,r.Dst.anEdge=r.Sym,r.Rface=t.Rface,r.winding=t.winding,r.Sym.winding=t.Sym.winding,r.idx=t.idx,r.Sym.idx=t.Sym.idx,r},n.prototype.connect=function(t,e){var r=!1,o=this.makeEdge_(t),i=o.Sym;if(e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(o,t.Lnext),this.splice_(i,e),o.Org=t.Dst,i.Org=e.Org,o.Lface=i.Lface=t.Lface,t.Lface.anEdge=i,!r){var s=new ai;this.makeFace_(s,o,t.Lface)}return o},n.prototype.zapFace=function(t){var e=t.anEdge,r,o,i,s,l;o=e.Lnext;do r=o,o=r.Lnext,r.Lface=null,r.Rface===null&&(r.Onext===r?this.killVertex_(r.Org,null):(r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev)),i=r.Sym,i.Onext===i?this.killVertex_(i.Org,null):(i.Org.anEdge=i.Onext,this.splice_(i,i.Oprev)),this.killEdge_(r));while(r!=e);s=t.prev,l=t.next,l.prev=s,s.next=l},n.prototype.countFaceVerts_=function(t){var e=t.anEdge,r=0;do r++,e=e.Lnext;while(e!==t.anEdge);return r},n.prototype.mergeConvexFaces=function(t){var e,r,o,i,s,l,c;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(r=e.anEdge,s=r.Org;o=r.Lnext,i=r.Sym,i&&i.Lface&&i.Lface.inside&&(l=this.countFaceVerts_(e),c=this.countFaceVerts_(i.Lface),l+c-2<=t&&ae.vertCCW(r.Lprev.Org,r.Org,i.Lnext.Lnext.Org)&&ae.vertCCW(i.Lprev.Org,i.Org,r.Lnext.Lnext.Org)&&(o=i.Lnext,this.delete(i),r=null,i=null)),!(r&&r.Lnext.Org===s);)r=o;return!0},n.prototype.check=function(){var t=this.fHead,e=this.vHead,r=this.eHead,o,i,s,l,c,p;for(i=t,i=t;(o=i.next)!==t;i=o){pe(o.prev===i),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===i&&o.anEdge===null),l=e,l=e;(s=l.next)!==e;l=s){pe(s.prev===l),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===l&&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)},n}(),Jd=function(){function n(){this.handle=null}return n}(),ef=function(){function n(){this.key=null,this.node=0}return n}(),Mb=function(){function n(t,e){this.leq=e,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=t,this.nodes=[],this.handles=[];for(var r=0;r<t+1;r++)this.nodes[r]=new Jd,this.handles[r]=new ef;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return n.prototype.floatDown_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t<<1,s<this.size&&this.leq(r[e[s+1].handle].key,r[e[s].handle].key)&&++s,pe(s<=this.max),i=e[s].handle,s>this.size||this.leq(r[o].key,r[i].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=s}},n.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t>>1,i=e[s].handle,s===0||this.leq(r[i].key,r[o].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=s}},n.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},n.prototype.min=function(){return this.handles[this.nodes[1].handle].key},n.prototype.insert=function(t){var e,r;if(e=++this.size,e*2>this.max){this.max*=2;var o,i;for(i=this.nodes.length,this.nodes.length=this.max+1,o=i;o<this.nodes.length;o++)this.nodes[o]=new Jd;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new ef}return this.freeList===0?r=e:(r=this.freeList,this.freeList=this.handles[r].node),this.nodes[e].handle=r,this.handles[r].node=e,this.handles[r].key=t,this.initialized&&this.floatUp_(e),r},n.prototype.extractMin=function(){var t=this.nodes,e=this.handles,r=t[1].handle,o=e[r].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[r].key=null,e[r].node=this.freeList,this.freeList=r,--this.size,this.size>0&&this.floatDown_(1)),o},n.prototype.delete=function(t){var e=this.nodes,r=this.handles,o;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},n}(),Ll=function(){function n(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return n}(),tf=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),Db=function(){function n(t,e){this.frame=t,this.leq=e,this.head=new tf,this.head.next=this.head,this.head.prev=this.head}return n.prototype.min=function(){return this.head.next},n.prototype.max=function(){return this.head.prev},n.prototype.insert=function(t){return this.insertBefore(this.head,t)},n.prototype.search=function(t){var e=this.head;do e=e.next;while(e.key!==null&&!this.leq(this.frame,t,e.key));return e},n.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var r=new tf;return r.key=e,r.next=t.next,t.next.prev=r,r.prev=t,t.next=r,r},n.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},n}(),Bb=function(){function n(){}return n.regionBelow=function(t){return t.nodeUp.prev.key},n.regionAbove=function(t){return t.nodeUp.next.key},n.debugEvent=function(t){},n.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.edgeLeq=function(t,e,r){var o=t.event,i=e.eUp,s=r.eUp;if(i.Dst===o)return s.Dst===o?ae.vertLeq(i.Org,s.Org)?ae.edgeSign(s.Dst,i.Org,s.Org)<=0:ae.edgeSign(i.Dst,s.Org,i.Org)>=0:ae.edgeSign(s.Dst,o,s.Org)<=0;if(s.Dst===o)return ae.edgeSign(i.Dst,o,i.Org)>=0;var l=ae.edgeEval(i.Dst,o,i.Org),c=ae.edgeEval(s.Dst,o,s.Org);return l>=c},n.deleteRegion=function(t,e){e.fixUpperEdge&&pe(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},n.fixUpperEdge=function(t,e,r){pe(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=r,r.activeRegion=e},n.topLeftRegion=function(t,e){var r=e.eUp.Org,o;do e=n.regionAbove(e);while(e.eUp.Org===r);if(e.fixUpperEdge){if(o=t.mesh.connect(n.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;n.fixUpperEdge(t,e,o),e=n.regionAbove(e)}return e},n.topRightRegion=function(t){var e=t.eUp.Dst;do t=n.regionAbove(t);while(t.eUp.Dst===e);return t},n.addRegionBelow=function(t,e,r){var o=new Ll;return o.eUp=r,o.nodeUp=t.dict.insertBefore(e.nodeUp,o),o.fixUpperEdge=!1,o.sentinel=!1,o.dirty=!1,r.activeRegion=o,o},n.isWindingInside=function(t,e){switch(t.windingRule){case 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")},n.computeWinding=function(t,e){e.windingNumber=n.regionAbove(e).windingNumber+e.eUp.winding,e.inside=n.isWindingInside(t,e.windingNumber)},n.finishRegion=function(t,e){var r=e.eUp,o=r.Lface;o.inside=e.inside,o.anEdge=r,n.deleteRegion(t,e)},n.finishLeftRegions=function(t,e,r){for(var o,i=null,s=e,l=e.eUp;s!==r;){if(s.fixUpperEdge=!1,i=n.regionBelow(s),o=i.eUp,o.Org!=l.Org){if(!i.fixUpperEdge){n.finishRegion(t,s);break}o=t.mesh.connect(l.Lprev,o.Sym),n.fixUpperEdge(t,i,o)}l.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(l,o)),n.finishRegion(t,s),l=i.eUp,s=i}return l},n.addRightEdges=function(t,e,r,o,i,s){var l,c,p,a,u=!0;p=r;do pe(ae.vertLeq(p.Org,p.Dst)),n.addRegionBelow(t,e,p.Sym),p=p.Onext;while(p!==o);for(i===null&&(i=n.regionBelow(e).eUp.Rprev),c=e,a=i;l=n.regionBelow(c),p=l.eUp.Sym,p.Org===a.Org;)p.Onext!==a&&(t.mesh.splice(p.Oprev,p),t.mesh.splice(a.Oprev,p)),l.windingNumber=c.windingNumber-p.winding,l.inside=n.isWindingInside(t,l.windingNumber),c.dirty=!0,!u&&n.checkForRightSplice(t,c)&&(n.addWinding(p,a),n.deleteRegion(t,c),t.mesh.delete(a)),u=!1,c=l,a=p;c.dirty=!0,pe(c.windingNumber-p.winding===l.windingNumber),s&&n.walkDirtyRegions(t,c)},n.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},n.vertexWeights=function(t,e,r){var o=ae.vertL1dist(e,t),i=ae.vertL1dist(r,t),s=.5*i/(o+i),l=.5*o/(o+i);t.coords[0]+=s*e.coords[0]+l*r.coords[0],t.coords[1]+=s*e.coords[1]+l*r.coords[1],t.coords[2]+=s*e.coords[2]+l*r.coords[2]},n.getIntersectData=function(t,e,r,o,i,s){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,n.vertexWeights(e,r,o),n.vertexWeights(e,i,s)},n.checkForRightSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp;if(ae.vertLeq(o.Org,i.Org)){if(ae.edgeSign(i.Dst,o.Org,i.Org)>0)return!1;ae.vertEq(o.Org,i.Org)?o.Org!==i.Org&&(t.pq.delete(o.Org.pqHandle),n.spliceMergeVertices(t,i.Oprev,o)):(t.mesh.splitEdge(i.Sym),t.mesh.splice(o,i.Oprev),e.dirty=r.dirty=!0)}else{if(ae.edgeSign(o.Dst,i.Org,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Oprev,o)}return!0},n.checkForLeftSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,s;if(pe(!ae.vertEq(o.Dst,i.Dst)),ae.vertLeq(o.Dst,i.Dst)){if(ae.edgeSign(o.Dst,i.Dst,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,s=t.mesh.splitEdge(o),t.mesh.splice(i.Sym,s),s.Lface.inside=e.inside}else{if(ae.edgeSign(i.Dst,o.Dst,i.Org)>0)return!1;e.dirty=r.dirty=!0,s=t.mesh.splitEdge(i),t.mesh.splice(o.Lnext,i.Sym),s.Rface.inside=e.inside}return!0},n.checkForIntersect=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,s=o.Org,l=i.Org,c=o.Dst,p=i.Dst,a,u,d=new dn,f,m;if(pe(!ae.vertEq(p,c)),pe(ae.edgeSign(c,t.event,s)<=0),pe(ae.edgeSign(p,t.event,l)>=0),pe(s!==t.event&&l!==t.event),pe(!e.fixUpperEdge&&!r.fixUpperEdge),s===l||(a=Math.min(s.t,c.t),u=Math.max(l.t,p.t),a>u))return!1;if(ae.vertLeq(s,l)){if(ae.edgeSign(p,s,l)>0)return!1}else if(ae.edgeSign(c,l,s)<0)return!1;return n.debugEvent(t),ae.intersect(c,s,p,l,d),pe(Math.min(s.t,c.t)<=d.t),pe(d.t<=Math.max(l.t,p.t)),pe(Math.min(p.s,c.s)<=d.s),pe(d.s<=Math.max(l.s,s.s)),ae.vertLeq(d,t.event)&&(d.s=t.event.s,d.t=t.event.t),f=ae.vertLeq(s,l)?s:l,ae.vertLeq(f,d)&&(d.s=f.s,d.t=f.t),ae.vertEq(d,s)||ae.vertEq(d,l)?(n.checkForRightSplice(t,e),!1):!ae.vertEq(c,t.event)&&ae.edgeSign(c,t.event,d)>=0||!ae.vertEq(p,t.event)&&ae.edgeSign(p,t.event,d)<=0?p===t.event?(t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Sym,o),e=n.topLeftRegion(t,e),o=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),r),n.addRightEdges(t,e,o.Oprev,o,o,!0),!0):c===t.event?(t.mesh.splitEdge(i.Sym),t.mesh.splice(o.Lnext,i.Oprev),r=e,e=n.topRightRegion(e),m=n.regionBelow(e).eUp.Rprev,r.eUp=i.Oprev,i=n.finishLeftRegions(t,r,null),n.addRightEdges(t,e,i.Onext,o.Rprev,m,!0),!0):(ae.edgeSign(c,t.event,d)>=0&&(n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),o.Org.s=t.event.s,o.Org.t=t.event.t),ae.edgeSign(p,t.event,d)<=0&&(e.dirty=r.dirty=!0,t.mesh.splitEdge(i.Sym),i.Org.s=t.event.s,i.Org.t=t.event.t),!1):(t.mesh.splitEdge(o.Sym),t.mesh.splitEdge(i.Sym),t.mesh.splice(i.Oprev,o),o.Org.s=d.s,o.Org.t=d.t,o.Org.pqHandle=t.pq.insert(o.Org),n.getIntersectData(t,o.Org,s,c,l,p),n.regionAbove(e).dirty=e.dirty=r.dirty=!0,!1)},n.walkDirtyRegions=function(t,e){for(var r=n.regionBelow(e),o,i;;){for(;r.dirty;)e=r,r=n.regionBelow(r);if(!e.dirty&&(r=e,e=n.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,i=r.eUp,o.Dst!==i.Dst&&n.checkForLeftSplice(t,e)&&(r.fixUpperEdge?(n.deleteRegion(t,r),t.mesh.delete(i),r=n.regionBelow(e),i=r.eUp):e.fixUpperEdge&&(n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r),o=e.eUp)),o.Org!==i.Org)if(o.Dst!==i.Dst&&!e.fixUpperEdge&&!r.fixUpperEdge&&(o.Dst===t.event||i.Dst===t.event)){if(n.checkForIntersect(t,e))return}else n.checkForRightSplice(t,e);o.Org===i.Org&&o.Dst===i.Dst&&(n.addWinding(i,o),n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r))}},n.connectRightVertex=function(t,e,r){var o,i=r.Onext,s=n.regionBelow(e),l=e.eUp,c=s.eUp,p=!1;if(l.Dst!==c.Dst&&n.checkForIntersect(t,e),ae.vertEq(l.Org,t.event)&&(t.mesh.splice(i.Oprev,l),e=n.topLeftRegion(t,e),i=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),s),p=!0),ae.vertEq(c.Org,t.event)&&(t.mesh.splice(r,c.Oprev),r=n.finishLeftRegions(t,s,null),p=!0),p){n.addRightEdges(t,e,r.Onext,i,i,!0);return}ae.vertLeq(c.Org,l.Org)?o=c.Oprev:o=l,o=t.mesh.connect(r.Lprev,o),n.addRightEdges(t,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,n.walkDirtyRegions(t,e)},n.connectLeftDegenerate=function(t,e,r){var o,i,s,l,c;if(o=e.eUp,ae.vertEq(o.Org,r)){pe(!1),n.spliceMergeVertices(t,o,r.anEdge);return}if(!ae.vertEq(o.Dst,r)){t.mesh.splitEdge(o.Sym),e.fixUpperEdge&&(t.mesh.delete(o.Onext),e.fixUpperEdge=!1),t.mesh.splice(r.anEdge,o),n.sweepEvent(t,r);return}pe(!1),e=n.topRightRegion(e),c=n.regionBelow(e),s=c.eUp.Sym,i=l=s.Onext,c.fixUpperEdge&&(pe(i!==s),n.deleteRegion(t,c),t.mesh.delete(s),s=i.Oprev),t.mesh.splice(r.anEdge,s),ae.edgeGoesLeft(i)||(i=null),n.addRightEdges(t,e,s.Onext,l,i,!0)},n.connectLeftVertex=function(t,e){var r,o,i,s,l,c,p=new Ll;if(p.eUp=e.anEdge.Sym,r=t.dict.search(p).key,o=n.regionBelow(r),!!o){if(s=r.eUp,l=o.eUp,ae.edgeSign(s.Dst,e,s.Org)===0){n.connectLeftDegenerate(t,r,e);return}if(i=ae.vertLeq(l.Dst,s.Dst)?r:o,r.inside||i.fixUpperEdge){if(i===r)c=t.mesh.connect(e.anEdge.Sym,s.Lnext);else{var a=t.mesh.connect(l.Dnext,e.anEdge);c=a.Sym}i.fixUpperEdge?n.fixUpperEdge(t,i,c):n.computeWinding(t,n.addRegionBelow(t,r,c)),n.sweepEvent(t,e)}else n.addRightEdges(t,r,e.anEdge,e.anEdge,null,!0)}},n.sweepEvent=function(t,e){t.event=e,n.debugEvent(t);for(var r=e.anEdge;r.activeRegion===null;)if(r=r.Onext,r===e.anEdge){n.connectLeftVertex(t,e);return}var o=n.topLeftRegion(t,r.activeRegion);pe(o!==null);var i=n.regionBelow(o),s=i.eUp,l=n.finishLeftRegions(t,i,null);l.Onext===s?n.connectRightVertex(t,o,l):n.addRightEdges(t,o,l.Onext,s,s,!0)},n.addSentinel=function(t,e,r,o){var i=new Ll,s=t.mesh.makeEdge();s.Org.s=r,s.Org.t=o,s.Dst.s=e,s.Dst.t=o,t.event=s.Dst,i.eUp=s,i.windingNumber=0,i.inside=!1,i.fixUpperEdge=!1,i.sentinel=!0,i.dirty=!1,i.nodeUp=t.dict.insert(i)},n.initEdgeDict=function(t){t.dict=new Db(t,n.edgeLeq);var e=t.bmax[0]-t.bmin[0],r=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,i=t.bmax[0]+e,s=t.bmin[1]-r,l=t.bmax[1]+r;n.addSentinel(t,o,i,s),n.addSentinel(t,o,i,l)},n.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(pe(e.fixUpperEdge),pe(++r===1)),pe(e.windingNumber===0),n.deleteRegion(t,e)},n.removeDegenerateEdges=function(t){var e,r,o,i=t.mesh.eHead;for(e=i.next;e!==i;e=r)r=e.next,o=e.Lnext,ae.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(n.spliceMergeVertices(t,o,e),t.mesh.delete(e),e=o,o=e.Lnext),o.Lnext===e&&(o!==e&&((o===r||o===r.Sym)&&(r=r.next),t.mesh.delete(o)),(e===r||e===r.Sym)&&(r=r.next),t.mesh.delete(e))},n.initPriorityQ=function(t){var e,r,o,i=0;for(o=t.mesh.vHead,r=o.next;r!==o;r=r.next)i++;for(i+=8,e=t.pq=new Mb(i,ae.vertLeq),o=t.mesh.vHead,r=o.next;r!==o;r=r.next)r.pqHandle=e.insert(r);return r!==o?!1:(e.init(),!0)},n.donePriorityQ=function(t){t.pq=null},n.removeDegenerateFaces=function(t,e){var r,o,i;for(r=e.fHead.next;r!==e.fHead;r=o)o=r.next,i=r.anEdge,pe(i.Lnext!==i),i.Lnext.Lnext===i&&(n.addWinding(i.Onext,i),t.mesh.delete(i));return!0},n.computeInterior=function(t,e){e===void 0&&(e=!0);var r,o;if(n.removeDegenerateEdges(t),!n.initPriorityQ(t))return!1;for(n.initEdgeDict(t);(r=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!ae.vertEq(o,r));)o=t.pq.extractMin(),n.spliceMergeVertices(t,r.anEdge,o.anEdge);n.sweepEvent(t,r)}return t.event=t.dict.min().key.eUp.Org,n.debugEvent(t),n.doneEdgeDict(t),n.donePriorityQ(t),n.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},n}(),Eb=function(){function n(){this.mesh=new Qd,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 n.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},n.prototype.normalize_=function(t){var e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];if(!e)throw"Zero-size vector!";e=Math.sqrt(e),t[0]/=e,t[1]/=e,t[2]/=e},n.prototype.longAxis_=function(t){var e=0;return Math.abs(t[1])>Math.abs(t[0])&&(e=1),Math.abs(t[2])>Math.abs(t[e])&&(e=2),e},n.prototype.computeNormal_=function(t){var e,r,o,i,s,l,c=[0,0,0],p=[0,0,0],a=[0,0,0],u=[0,0,0],d=[0,0,0],f=[null,null,null],m=[null,null,null],h=this.mesh.vHead;e=h.next;for(var g=0;g<3;++g)i=e.coords[g],p[g]=i,m[g]=e,c[g]=i,f[g]=e;for(e=h.next;e!==h;e=e.next)for(var x=0;x<3;++x)i=e.coords[x],i<p[x]&&(p[x]=i,m[x]=e),i>c[x]&&(c[x]=i,f[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(l=0,r=m[v],o=f[v],a[0]=r.coords[0]-o.coords[0],a[1]=r.coords[1]-o.coords[1],a[2]=r.coords[2]-o.coords[2],e=h.next;e!==h;e=e.next)u[0]=e.coords[0]-o.coords[0],u[1]=e.coords[1]-o.coords[1],u[2]=e.coords[2]-o.coords[2],d[0]=a[1]*u[2]-a[2]*u[1],d[1]=a[2]*u[0]-a[0]*u[2],d[2]=a[0]*u[1]-a[1]*u[0],s=d[0]*d[0]+d[1]*d[1]+d[2]*d[2],s>l&&(l=s,t[0]=d[0],t[1]=d[1],t[2]=d[2]);l<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(a)]=1)},n.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,r=this.mesh.vHead,o,i=0,s=t.next;s!==t;s=s.next)if(o=s.anEdge,!(o.winding<=0))do i+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==s.anEdge);if(i<0){for(e=r.next;e!==r;e=e.next)e.t=-e.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},n.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],r,o,i=!1;e[0]=this.normal[0],e[1]=this.normal[1],e[2]=this.normal[2],!e[0]&&!e[1]&&!e[2]&&(this.computeNormal_(e),i=!0),r=this.sUnit,o=this.tUnit;var s=this.longAxis_(e);r[s]=0,r[(s+1)%3]=1,r[(s+2)%3]=0,o[s]=0,o[(s+1)%3]=0,o[(s+2)%3]=e[s]>0?1:-1;for(var l=t.next;l!==t;l=l.next)l.s=this.dot_(l.coords,r),l.t=this.dot_(l.coords,o);i&&this.checkOrientation_();for(var c=!0,p=t.next;p!==t;p=p.next)c?(this.bmin[0]=this.bmax[0]=p.s,this.bmin[1]=this.bmax[1]=p.t,c=!1):(p.s<this.bmin[0]&&(this.bmin[0]=p.s),p.s>this.bmax[0]&&(this.bmax[0]=p.s),p.t<this.bmin[1]&&(this.bmin[1]=p.t),p.t>this.bmax[1]&&(this.bmax[1]=p.t))},n.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.prototype.tessellateMonoRegion_=function(t,e){var r,o;if(r=e.anEdge,!(r.Lnext!==r&&r.Lnext.Lnext!==r))throw"Mono region invalid";for(;ae.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;ae.vertLeq(r.Org,r.Dst);r=r.Lnext);o=r.Lprev;for(var i=void 0;r.Lnext!==o;)if(ae.vertLeq(r.Dst,o.Org)){for(;o.Lnext!==r&&(ae.edgeGoesLeft(o.Lnext)||ae.edgeSign(o.Org,o.Dst,o.Lnext.Dst)<=0);)i=t.connect(o.Lnext,o),o=i.Sym;o=o.Lprev}else{for(;o.Lnext!==r&&(ae.edgeGoesRight(r.Lprev)||ae.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)i=t.connect(r,r.Lprev),r=i.Sym;r=r.Lnext}if(o.Lnext===r)throw"Mono region invalid";for(;o.Lnext.Lnext!==r;)i=t.connect(o.Lnext,o),o=i.Sym;return!0},n.prototype.tessellateInterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)if(e=r.next,r.inside&&!this.tessellateMonoRegion_(t,r))return!1;return!0},n.prototype.discardExterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)e=r.next,r.inside||t.zapFace(r)},n.prototype.setWindingNumber_=function(t,e,r){for(var o,i=t.eHead.next;i!==t.eHead;i=o)o=i.next,i.Rface.inside!==i.Lface.inside?i.winding=i.Lface.inside?e:-e:r?t.delete(i):i.winding=0},n.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},n.prototype.outputPolymesh_=function(t,e,r,o){var i,s=0,l=0,c;r>3&&t.mergeConvexFaces(r);for(var p=t.vHead.next;p!==t.vHead;p=p.next)p.n=-1;for(var a=t.fHead.next;a!==t.fHead;a=a.next)if(a.n=-1,!!a.inside){i=a.anEdge,c=0;do{var p=i.Org;p.n===-1&&(p.n=l,l++),c++,i=i.Lnext}while(i!==a.anEdge);if(c>r)throw"Face vertex greater that support polygon";a.n=s,++s}this.elementCount=s,e===et.CONNECTED_POLYGONS&&(s*=2),this.elements=[],this.elements.length=s*r,this.vertexCount=l,this.vertices=[],this.vertices.length=l*o,this.vertexIndices=[],this.vertexIndices.length=l;for(var p=t.vHead.next;p!==t.vHead;p=p.next)if(p.n!==-1){var u=p.n*o;this.vertices[u+0]=p.coords[0],this.vertices[u+1]=p.coords[1],o>2&&(this.vertices[u+2]=p.coords[2]),this.vertexIndices[p.n]=p.idx}for(var d=0,a=t.fHead.next;a!==t.fHead;a=a.next)if(!!a.inside){i=a.anEdge,c=0;do{var p=i.Org;this.elements[d++]=p.n,c++,i=i.Lnext}while(i!==a.anEdge);for(var f=c;f<r;++f)this.elements[d++]=-1;if(e===et.CONNECTED_POLYGONS){i=a.anEdge;do this.elements[d++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==a.anEdge);for(var m=c;m<r;++m)this.elements[d++]=-1}}},n.prototype.outputContours_=function(t,e){var r,o,i=0,s=0;this.vertexCount=0,this.elementCount=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){o=r=l.anEdge;do this.vertexCount++,r=r.Lnext;while(r!==o);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*e,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var c=0,p=0,a=0;i=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){s=0,o=r=l.anEdge;do this.vertices[c++]=r.Org.coords[0],this.vertices[c++]=r.Org.coords[1],e>2&&(this.vertices[c++]=r.Org.coords[2]),this.vertexIndices[p++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,s++,r=r.Lnext;while(r!==o);this.elements[a++]=i,this.elements[a++]=s,i+=s}},n.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new Qd),t<2&&(t=2),t>3&&(t=3);for(var r=null,o=0;o<e.length;o+=t)r===null?(r=this.mesh.makeEdge(),this.mesh.splice(r,r.Sym)):(this.mesh.splitEdge(r),r=r.Lnext),r.Org.coords[0]=e[o+0],r.Org.coords[1]=e[o+1],t>2?r.Org.coords[2]=e[o+2]:r.Org.coords[2]=0,r.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(r),r.winding=1,r.Sym.winding=-1},n.prototype.tesselate=function(t,e,r,o,i,s){if(t===void 0&&(t=Be.ODD),e===void 0&&(e=et.POLYGONS),s===void 0&&(s=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,i&&(this.normal[0]=i[0],this.normal[1]=i[1],this.normal[2]=i[2]),this.windingRule=t,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),Bb.computeInterior(this,s);var l=this.mesh;return e===et.BOUNDARY_CONTOURS?this.setWindingNumber_(l,1,!0):this.tessellateInterior_(l),s&&l.check(),e===et.BOUNDARY_CONTOURS?this.outputContours_(l,o):this.outputPolymesh_(l,e,r,o),!0},n}();function bo(n){var t=n.windingRule,e=t===void 0?Be.ODD:t,r=n.elementType,o=r===void 0?et.POLYGONS:r,i=n.polySize,s=i===void 0?3:i,l=n.vertexSize,c=l===void 0?2:l,p=n.normal,a=p===void 0?[0,0,1]:p,u=n.contours,d=u===void 0?[]:u,f=n.strict,m=f===void 0?!0:f,h=n.debug,g=h===void 0?!1:h;if(!d&&m)throw new Error("Contours can't be empty");if(!!d){var x=new Eb;n.edgeCreateCallback&&(x.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(x.vertexIdCallback=n.vertexIdCallback);for(var v=0;v<d.length;v++)x.addContour(c||2,d[v]);return x.tesselate(e,o,s,c,a,m),{vertices:x.vertices,vertexIndices:x.vertexIndices,vertexCount:x.vertexCount,elements:x.elements,elementCount:x.elementCount,mesh:g?x.mesh:void 0}}}var qO=Be.ODD,$O=Be.NONZERO,XO=Be.POSITIVE,YO=Be.NEGATIVE,KO=Be.ABS_GEQ_TWO,ZO=et.POLYGONS,QO=et.CONNECTED_POLYGONS,JO=et.BOUNDARY_CONTOURS;var fn=class extends So.BufferGeometry{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Be.ODD;this.elementType=et.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:Be.ODD,elementType:et.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),s=this._shape.shapeHoles.map(m=>m.extractShapePointsToFlatArray([],this._curveSegments)),l,c=!0,p=!0,a,u;for(let m=0,h=i.length/2;m<h;m++){let g=m*2,x=i[g+0],v=i[g+1];if(a!==void 0&&x!==a&&(c=!1),u!==void 0&&v!==u&&(p=!1),a=x,u=v,!c&&!p)break}!c&&!p&&(l=bo({contours:[i,...s],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let d=l?.vertexCount??1,f=l?.elementCount??1;if(this._positionAttribute=new So.BufferAttribute(new Float32Array(d*3),3),this._normalAttribute=new So.BufferAttribute(new Float32Array(d*3),3),this._uvAttribute=new So.BufferAttribute(new Float32Array(d*2),2),this._indexAttribute=new So.BufferAttribute(new Uint32Array(f*3),1),l){let m=1/0,h=-1/0,g=1/0,x=-1/0;for(let S=0,b=d;S<b;S++){let D=S*2,w=l.vertices[D+0],y=l.vertices[D+1];w<m&&(m=w),w>h&&(h=w),y<g&&(g=y),y>x&&(x=y)}let v=h-m,A=x-g;for(let S=0,b=d;S<b;S++){let D=S*2,w=l.vertices[D+0],y=l.vertices[D+1],I=(w-m)/v,T=(y-g)/A;this._positionAttribute.setXYZ(S,w,y,0),this._normalAttribute.setXYZ(S,0,0,1),this._uvAttribute.setXY(S,I,T)}for(let S=0,b=f;S<b;S++){let D=S*3,w=l.elements[D+0],y=l.elements[D+1],I=l.elements[D+2];this._indexAttribute.setX(D+0,w),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,(l?.elementCount??1)*3)}clone(){let e=new fn(this._shape,this._curveSegments);return e.userData=qn(this.userData),e}};var wo=require("three");var oa=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*oa.eSize;this.buffer=new ArrayBuffer(r);let o=Float32Array.BYTES_PER_ELEMENT,i=0;this.positions=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.normals=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.uvs=new Float32Array(this.buffer,i*o,2*t)}realloc(t,e=!1){if(t<this.size)throw Error("cannot shrink buffer");if(t<=this.capacity&&!e)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${t}`);let r=t*oa.eSize,o=new ArrayBuffer(r),i=Float32Array.BYTES_PER_ELEMENT,s=0,l=new Float32Array(o,s*i,3*t);s+=3*t;let c=new Float32Array(o,s*i,3*t);s+=3*t;let p=new Float32Array(o,s*i,2*t);l.set(this.positions.slice(0,this.size*3)),c.set(this.normals.slice(0,this.size*3)),p.set(this.uvs.slice(0,this.size*2)),this.buffer=o,this.positions=l,this.normals=c,this.uvs=p,this.capacity=t}get(t=1){let e=this.size+t;if(e>this.capacity){let o=this.capacity;for(;e>o;)o*=2;this.realloc(o)}let r=this.size;return this.size=e,r}reserve(t){let e=this.size+t;e>this.capacity&&this.realloc(e)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},li=oa;li.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Il=(n,t)=>([e,r])=>(r<e&&(r+=t),(n>=e?n:n+t)<=r),mn=class extends wo.BufferGeometry{constructor(e,r,o=0,i=12,s=3){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=r,this._bevel=o,this._curveSegments=i,this._bevelSegmentsInput=s,o<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(o,r/2-1e-12),this._bevelSegments=Math.floor(s));let l=this._shape.extractShapePointsToFlatArray([],i),c=this._shape.shapeHoles.map(w=>{let y=w.extractShapePointsToFlatArray([],i),I=[];for(let T=y.length-1;T>=1;T-=2){let L=y[T-1],N=y[T-0];I.push(L,N)}return I}),p=bo({windingRule:Be.ODD,elementType:et.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[l]}),a=bo({windingRule:Be.ODD,elementType:et.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...c]});if(!p)throw new Error("error generating geometry");let u=p.elementCount;if(a){p.elementCount+=a.elementCount;for(let w=0;w<a.elements.length;w++){let y=a.elements[w],I=w%2===0?p.vertexCount:0;p.elements.push(y+I)}for(let w=0;w<a.vertexIndices.length;w++){let y=a.vertexIndices[w],I=p.vertexCount;p.vertexIndices.push(y+I)}for(let w=0;w<a.vertices.length;w++){let y=a.vertices[w];p.vertices.push(y)}}let d=1/0,f=-1/0,m=1/0,h=-1/0;for(let w=0,y=p.vertexCount;w<y;w++){let I=w*2,T=p.vertices[I+0],L=p.vertices[I+1];T<d&&(d=T),T>f&&(f=T),L<m&&(m=L),L>h&&(h=L)}this._minX=d,this._minY=m,this._width=f-d,this._height=h-m;let g=p.vertexCount*2*(2+this._bevelSegments);this._buffer=new li(g);let x=[],v=[];for(let w=p.elementCount-1;w>=0;w--){let y=w>=u,I=w*2,T=p.elements[I+0],L=p.elements[I+1],N=T+L,C={start:T,count:L,normals:[],continuous:[],concave:[]},k=T,W=N-1,ne=T+1,ue=this._shape.roundedCurves.length;do{let V=k-T,E=p.vertices[W*2+0],B=p.vertices[W*2+1],O=p.vertices[k*2+0],G=p.vertices[k*2+1],Z=p.vertices[ne*2+0],j=p.vertices[ne*2+1],F=O-E,z=G-B,M=Math.sqrt(F*F+z*z);F/=M,z/=M;let q=O-Z,J=G-j,ee=Math.sqrt(q*q+J*J);q/=ee,J/=ee,C.normals[V*2+0]=-J,C.normals[V*2+1]=q,C.concave[V]=F*J-z*q>0;let H=p.vertexIndices[k];if(Array.isArray(H))C.continuous[V]=!1;else{let[Q,$]=this._shape.getCurveIndexFromVertexId(H-1,!0);if($>0&&$<1)C.continuous[V]=!0;else{let re=$===1?Q+1:Q-1;re=(re+ue)%ue;let ce=$===1?0:1,ie=this._shape.roundedCurves[Q].getTangent($),me=this._shape.roundedCurves[re].getTangent(ce);C.continuous[V]=ie.dot(me)>.95}}y&&(C.normals[V*2+0]*=-1,C.normals[V*2+1]*=-1),[W,k,ne]=[k,ne,ne+1],ne>=N&&(ne-=L)}while(ne!==T+1);let se=[];se.push({bevelI:0,angle:0,size:0,boundary:{vertices:p.vertices.slice(T*2,N*2),vertexCount:L,vertexIndices:new Array(L).fill(!0).map((V,E)=>[E,E]),elements:[0,L],elementCount:1,mesh:null},reverseMap:[],insetPoints:p.vertices.slice(T*2,N*2)});for(let V=1;V<=this._bevelSegments;V++){let E=V/this._bevelSegments*Math.PI/2,B=(1-Math.cos(E))*this._bevelSize,O=[],G=[],Z=[],j=[],F=0;for(let M=0;M<L;M++){let q=M*2,J=(M-1+L)%L*2,ee=p.vertices[C.start*2+q+0],H=p.vertices[C.start*2+q+1],Q=-C.normals[J+0]*B,$=-C.normals[J+1]*B,re=-C.normals[q+0]*B,ce=-C.normals[q+1]*B;if(C.concave[M]||!C.concave[M]&&y){let ie=Math.atan2($,Q),me=Math.atan2(ce,re);me>ie&&(me-=Math.PI*2);let Re=me-ie;if(C.continuous[M]||y){let ge=ie+Re/2,$e=Math.cos(ge)*B,Te=Math.sin(ge)*B;O[2*F+0]=ee+$e*(y?-1:1),O[2*F+1]=H+Te*(y?-1:1),j[F]=M,F++}else{let ge=Math.max(1,Math.floor(i/4*Math.abs(Re)/Math.PI));for(let $e=0;$e<=ge;$e++){let Te=ie+Re*($e/ge),St=Math.cos(Te)*B,Vt=Math.sin(Te)*B;O[2*F+0]=ee+St,O[2*F+1]=H+Vt,j[F]=M,F++}}}else O[2*F+0]=ee+Q,O[2*F+1]=H+$,j[F]=M,G[M]=F,F++,O[2*F+0]=ee,O[2*F+1]=H,j[F]=M,F++,O[2*F+0]=ee+re,O[2*F+1]=H+ce,j[F]=M,Z[M]=F,F++}let z=bo({windingRule:Be.POSITIVE,elementType:et.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[O],edgeCreateCallback:M=>{let J=M.Org.idx,ee=j[J],H=j[(J+1)%j.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 ${V}'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 Q=H%L,$=(H+1)%L;if(!C.continuous[Q]||!C.continuous[$]){z.vertexIndices[M]=[q,Q],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:V,angle:E,size:B,boundary:z,reverseMap:j,insetPoints:O})}let K=(V,E,B)=>{let O=0,G=V.boundary.vertexIndices.length;for(;O<G&&B(V.boundary.vertexIndices[E]);)E=(E+1)%G,O++;return O},U=x.length;for(let V=1;V<se.length;V++){let E=se[V-1],B=se[V],O=E.boundary.vertexIndices.length,G=B.boundary.vertexIndices.length;if(!O||!G)break;let Z=C.concave.length,j=0,F=Il(j,L);for(;!E.boundary.vertexIndices.filter(F).length||!B.boundary.vertexIndices.filter(F).length;)j++,F=Il(j,L);let z=E.boundary.vertexIndices.findIndex(F),M=B.boundary.vertexIndices.findIndex(F);do z=(z+1)%O;while(F(E.boundary.vertexIndices[z]));do M=(M+1)%G;while(F(B.boundary.vertexIndices[M]));j=(j+1)%L;let q=j,J=this.buildBevelVert(C,E,(z-1+O)%O),ee=this.buildBevelVert(C,B,(M-1+G)%G),H=J,Q=ee,$,re,ce=!1;do{F=Il(j,L);let ie=K(E,z,F),me=K(B,M,F),Re=ce;if(ce=!1,ie&&!me){for(let ge=0;ge<ie;ge++)$=this.buildBevelVert(C,E,(z+ge)%O,ge/(ie-1)),x.push(H.topN,$.topP,Q.topN),x.push($.bottomP,H.bottomN,Q.bottomN),H=$;ce=!0}else if(!ie&&me)for(let ge=0;ge<me;ge++)re=this.buildBevelVert(C,B,(M+ge)%G,ge/(me-1)),x.push(Q.topN,H.topP,re.topP),x.push(H.bottomP,Q.bottomN,re.bottomP),Q=re;else if(ie&&me)if($=this.buildBevelVert(C,E,z,0),re=this.buildBevelVert(C,B,M,0),Re?(x.push(H.topN,re.topP,Q.topN),x.push(H.topN,$.topP,re.topP),x.push(re.bottomP,H.bottomN,Q.bottomN),x.push(re.bottomP,$.bottomP,H.bottomN)):(x.push(Q.topN,H.topN,$.topP),x.push(Q.topN,$.topP,re.topP),x.push($.bottomP,H.bottomN,Q.bottomN),x.push($.bottomP,Q.bottomN,re.bottomP)),H=$,Q=re,ie===me)for(let ge=1;ge<ie;ge++)$=this.buildBevelVert(C,E,(z+ge)%O,ge/(ie-1)),re=this.buildBevelVert(C,B,(M+ge)%G,ge/(me-1)),x.push(H.topN,$.topP,Q.topN),x.push(Q.topN,$.topP,re.topP),x.push($.bottomP,H.bottomN,Q.bottomN),x.push($.bottomP,Q.bottomN,re.bottomP),H=$,Q=re;else if(ie>me){let ge=ie/me,$e=0;for(let Te=1;Te<ie;Te++)$=this.buildBevelVert(C,E,(z+Te)%O,Te/(ie-1)),x.push(H.topN,$.topP,Q.topN),x.push($.bottomP,H.bottomN,Q.bottomN),H=$,Te>($e+1)*ge&&($e++,re=this.buildBevelVert(C,B,(M+$e)%G,$e/(me-1)),x.push(Q.topN,$.topP,re.topP),x.push($.bottomP,Q.bottomN,re.bottomP),Q=re)}else{let ge=me/ie,$e=0;for(let Te=1;Te<me;Te++)re=this.buildBevelVert(C,B,(M+Te)%G,Te/(me-1)),x.push(Q.topN,$.topP,re.topP),x.push($.bottomP,Q.bottomN,re.bottomP),Q=re,Te>($e+1)*ge&&($e++,$=this.buildBevelVert(C,E,(z+$e)%O,$e/(ie-1)),x.push(H.topN,$.topP,Q.topN),x.push($.bottomP,H.bottomN,Q.bottomN),H=$)}z=(z+ie)%O,M=(M+me)%G,j=(j+1)%Z}while(j!==q)}{let V=se[0];for(let E=0,B=V.boundary.vertexCount;E<B;E++){let O=this.buildBevelVert(C,V,E),G=this.buildBevelVert(C,V,(E+1)%B);x.push(G.topP,O.topN,O.bottomN),x.push(G.topP,O.bottomN,G.bottomP)}}if(y){let V=[];for(let E=x.length-1;E>=U+2;E-=3){let B=x[E-2],O=x[E-1],G=x[E-0];V.push(G,O,B)}x.splice(U,x.length-U,...V)}if(y){let V=[];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],O=se[se.length-1].boundary.vertices[E-0];V.push(B,O)}v.push(V)}if(!y){let V=se[se.length-1],E=bo({windingRule:se.length>1?Be.POSITIVE:Be.ODD,elementType:et.POLYGONS,vertexSize:2,strict:!0,contours:[V.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 O=this.buildSurfaceVert(E,E.elements[B+0]),G=this.buildSurfaceVert(E,E.elements[B+1]),Z=this.buildSurfaceVert(E,E.elements[B+2]);x.push(O.top,G.top,Z.top),x.push(Z.bottom,G.bottom,O.bottom)}}this.vertexCache={}}this._buffer.shrink();let A=new wo.BufferAttribute(Uint32Array.from(x),1),S=new wo.BufferAttribute(this._buffer.positions,3),b=new wo.BufferAttribute(this._buffer.normals,3),D=new wo.BufferAttribute(this._buffer.uvs,2);S.needsUpdate=!0,b.needsUpdate=!0,D.needsUpdate=!0,A.needsUpdate=!0,this.setAttribute("position",S),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 i=e.vertices[r*2+0],s=e.vertices[r*2+1],l=(i-this._minX)/this._width,c=(s-this._minY)/this._height,p=this._buffer.get(2),a=p*3,u=p*2,d={top:p+0,bottom:p+1};return this._buffer.positions[a+0]=i,this._buffer.positions[a+1]=s,this._buffer.positions[a+2]=this._depth,this._buffer.normals[a+0]=0,this._buffer.normals[a+1]=0,this._buffer.normals[a+2]=1,this._buffer.uvs[u+0]=l,this._buffer.uvs[u+1]=c,this._buffer.positions[a+3]=i,this._buffer.positions[a+4]=s,this._buffer.positions[a+5]=0,this._buffer.normals[a+3]=0,this._buffer.normals[a+4]=0,this._buffer.normals[a+5]=-1,this._buffer.uvs[u+2]=l,this._buffer.uvs[u+3]=c,this.vertexCache[o]=d,d}buildBevelVert(e,r,o,i=1){let s=`${r.bevelI}:${o}`;if(s in this.vertexCache)return this.vertexCache[s];let[l,c]=r.boundary.vertexIndices[o],p,a,u,d;l!==c?(a=l,p=c,d=!1,u=e.continuous[a]&&e.continuous[p]):(p=l,a=(p-1+e.count)%e.count,d=e.concave[p]&&r.bevelI>0,u=e.continuous[p]||d);let f=Math.cos(r.angle),m=Math.sin(r.angle),h=o*2,g=p*2,x=a*2,v=r.boundary.vertices[h+0],A=r.boundary.vertices[h+1],S=(1-m)*this._bevelSize,b=(v-this._minX)/this._width,D=(A-this._minY)/this._height,w=e.normals[g+0],y=e.normals[g+1],I=e.normals[x+0],T=e.normals[x+1];if(d){let W=I-w,ne=T-y;w=w+W*(1-i),y=y+ne*(1-i);let ue=Math.sqrt(w*w+y*y);w/=ue,y/=ue}let L=this._buffer.get(u?2:4),N=L*3,C=L*2,k={i:o,fi:p,topP:L+0,topN:L+0,bottomP:L+1,bottomN:L+1};return this._buffer.positions[N+0]=v,this._buffer.positions[N+1]=A,this._buffer.positions[N+2]=this._depth-S,this._buffer.normals[N+0]=w*f,this._buffer.normals[N+1]=y*f,this._buffer.normals[N+2]=m,this._buffer.uvs[C+0]=b,this._buffer.uvs[C+1]=D,this._buffer.positions[N+3]=v,this._buffer.positions[N+4]=A,this._buffer.positions[N+5]=S,this._buffer.normals[N+3]=w*f,this._buffer.normals[N+4]=y*f,this._buffer.normals[N+5]=-m,this._buffer.uvs[C+2]=D,this._buffer.uvs[C+3]=b,u||(L+=2,N+=6,C+=4,k.topP=L+0,k.bottomP=L+1,this._buffer.positions[N+0]=v,this._buffer.positions[N+1]=A,this._buffer.positions[N+2]=this._depth-S,this._buffer.normals[N+0]=I*f,this._buffer.normals[N+1]=T*f,this._buffer.normals[N+2]=m,this._buffer.uvs[C+0]=b,this._buffer.uvs[C+1]=D,this._buffer.positions[N+3]=v,this._buffer.positions[N+4]=A,this._buffer.positions[N+5]=S,this._buffer.normals[N+3]=I*f,this._buffer.normals[N+4]=T*f,this._buffer.normals[N+5]=-m,this._buffer.uvs[C+2]=D,this._buffer.uvs[C+3]=b),this.vertexCache[s]=k,k}clone(){let e=new mn(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=qn(this.userData),e}};var xt=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),s=n.shape??t?.shape,l=s?.roundness??e.roundness;s!==void 0&&(s instanceof Ae?(s.width!==r||s.height!==o)&&s.applySize(r,o):s=new Ae(r,o).fromJSON(s),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&s.update(!1));let c=s??new Ae(r,o);return{parameters:Object.assign(e,{width:r,height:o,depth:i,roundness:l}),shape:c}}static build(n){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:r,subdivisions:o,roundness:i}=n.parameters;n.shape.roundness=i;let s;return t<=0?s=new fn(n.shape,o):s=new mn(n.shape,t,e,o,r),Object.assign(s,{userData:{...n,type:"VectorGeometry"}})}};var gn=require("three"),of=Math.PI*2,nf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof Ae?n.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,angle:o,innerRadius:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p=n.shape,a=t*.5,u=e*.5,d=Gb(p,a,u,o*Math.PI/180,r,i);p.isClosed=!0,p.update();let f=xt.create({shape:p,parameters:{subdivisions:d,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(f,{userData:{...n,type:"EllipseGeometry"}})}};function Gb(n,t,e,r,o,i){if(r>=of)return o>30||o%4===0?(Vb(n,t,e,i),Math.round(o/4)):rf(n,r,o,t,e,i);let s={x:0,y:e},l=r+Math.PI*.5,c={x:Math.cos(l)*t,y:Math.sin(l)*e},p=Zd({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?Rb(n,s.x,s.y,p,o,t,e,i):rf(n,r,o,t,e,i)}function Rb(n,t,e,r,o,i,s,l){let c=Math.round(o/r.length);n.addPoint(hn(t,e));for(let p=0,a=r.length;p<a;p++){let u=r[p],d=n.points[p],f=hn(u.x,u.y);d.controls[1].position.set(u.x1,u.y1),f.controls[0].position.set(u.x2,u.y2),n.addPoint(f)}return l>0?sf(n,i,s,l):n.addPoint(hn(0,0)),c}function rf(n,t,e,r,o,i){let s=-t/e;for(let l=0;l<=e;l++){let c=s*l,p=Math.sin(c)*r,a=Math.cos(c)*o;n.addPoint(hn(p,a))}return t<of?i>0?sf(n,r,o,i):n.addPoint(hn(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&af(n,r,o,i)),1}function Vb(n,t,e,r=0,o=0,i=0){let s=.5522847498,l=t*s,c=e*s;n.addPoint(na(o-t,i,o-t,i-c,o-t,i+c)),n.addPoint(na(o,i+e,o-l,i+e,o+l,i+e)),n.addPoint(na(o+t,i,o+t,i+c,o+t,i-c)),n.addPoint(na(o,i-e,o+l,i-e,o-l,i-e)),r>0&&af(n,t,e,r)}function hn(n,t){return new Yt(gn.MathUtils.generateUUID(),new gn.Vector2(n,t))}function na(n,t,e,r,o,i){let s=hn(n,t);return s.controls[0].position.set(e,r),s.controls[1].position.set(o,i),s}function sf(n,t,e,r){lf(n,t,e,r).forEach(i=>n.addPoint(i))}function af(n,t,e,r){let o=lf(n,t,e,r),i=new Ae;o.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function lf(n,t,e,r){let o=r*t/100,i=o*(Math.abs(e)/Math.abs(t)),s=new gn.Vector2(o/t,i/e),l=n.points.map(c=>{let p=c.clone();return p.uuid=gn.MathUtils.generateUUID(),p}).reverse();return l.forEach(c=>{c.position.multiply(s);let p=c.controls[0].position.clone().multiply(s),a=c.controls[1].position.clone().multiply(s);c.controls[0].position.copy(a),c.controls[1].position.copy(p)}),l}var Rr=require("three"),cf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??r),i=Math.abs(e.depth??r),s=Math.abs(Math.min(r,i))/2;return{parameters:Object.assign(e,{width:r,height:o,depth:i,radius:s,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(n){let{width:t,height:e,depth:r,radius:o,revolutions:i,segments:s,pathRadius:l,pathType:c,pathSegments:p,cornerRadius:a,cornerSegments:u}=n.parameters,d=new ci(!1,t,e,r,o,i,s,l,c,p,a,u);return Object.assign(d,{userData:{...n,type:"HelixGeometry"}})}},ci=class extends Rr.BufferGeometry{constructor(t=!0,e=1,r=1,o=1,i=1,s=1,l=1,c=1,p=1,a=1,u=1,d=1){super();let f=t&&s===1;f&&(d=0),u>100&&(u=100);let m=()=>new Rr.Vector3,h=new Rr.Vector3,g=m(),x=m(),v=m(),A,S,b,D,w,y,I,T,L=m(),N=m(),C=m(),k=m(),W=m(),ne=m(),ue=m(),se=m(),K=r-2*c+.001,U=K/s,V=Math.ceil(l*s),E=V+1,B=K/V,O=-K/2,G=a+1,Z=2*Math.PI/a,j=Math.PI/2/d,F=.01,z=Math.min((1-u/100)*c,c-F),M=c-z,q=0,J=2,ee=d*J+J,H=G*ee/J,Q=H+G*E,$=G*(E+ee),[re,ce,ie]=[3,3,2].map(je=>Array($*je).fill(0)),me=[],Re=i-c;function ge(je,Mt){let nr=Math.PI/2;y=Mt*B,T=2*Math.PI*(y%U)/U+nr,y+=O,I=Math.sin(T)*Re,w=Math.cos(T)*Re,t?je.set(w,I,y):je.set(w,y,I)}ge(h,-1e-10),ge(g,0),L.copy(h),ge(h,1);let $e=h.distanceTo(g),Te=M+z,St=$e*V+2*Te,Vt=z,Do=St-Te;for(let je=0;je<=V;je++){ge(x,je),se.subVectors(x,L).normalize(),L.copy(x),ne.copy(x).setComponent(+t+1,0).normalize(),ue.crossVectors(se,ne).normalize();let Mt=je===0,nr=je===V,Zm=Mt?3*Math.PI/2:j,Qm=Mt?Vt:Do,Jm=Mt?G:Q,eh=Mt?0:$-G,th=se.clone().multiplyScalar(Mt?-M:M).add(x),rh=se.clone().multiplyScalar(Mt?-1:1).normalize();for(let Ir=0;Ir<G;Ir++){let _c=Ir*Z;if(N.addVectors(h.copy(ne).multiplyScalar(c*Math.cos(_c)),g.copy(ue).multiplyScalar(c*Math.sin(_c))),C.copy(N).normalize(),Mt||nr){f||(q=eh+Ir,[0,1,2].forEach(wt=>{re[q*3+wt]=th.getComponent(wt),ce[q*3+wt]=rh.getComponent(wt)}),ie[q*2]=+nr,ie[q*2+1]=Ir/a),g.copy(C).multiplyScalar(z),v.addVectors(x,g);for(let wt=0;wt<d;wt++){let Ua=wt*j+Zm;k.addVectors(h.copy(se).multiplyScalar(M*Math.sin(Ua)),g.copy(C).multiplyScalar(M*Math.cos(Ua))),W.copy(k).normalize(),g.addVectors(v,k),k.normalize(),q=Jm+wt*G+Ir,[0,1,2].forEach(Yi=>{re[q*3+Yi]=g.getComponent(Yi),ce[q*3+Yi]=W.getComponent(Yi)});let oh=+Mt+Math.sin(Ua);ie[q*2]=(Qm+M*oh)/St,ie[q*2+1]=Ir/a}}g.addVectors(x,N),q=H+je*G+Ir,[0,1,2].forEach(wt=>{re[q*3+wt]=g.getComponent(wt),ce[q*3+wt]=C.getComponent(wt)}),ie[q*2]=(Te+je*$e)/St,ie[q*2+1]=Ir/a}}let Ot=E+2*d+J,Bo=1,[$i,Xi]=f?[Bo,Bo+E-1]:[0,Ot-1];for(let je=$i;je<=Xi-1;je++){let Mt=f&&je===Xi-1;for(let nr=0;nr<G-1;nr++)A=je*G+nr,S=A+1,b=(Mt?nr:A)+G,D=(Mt?nr+1:S)+G,je===0?me.push(S,D,b):je===Ot-2?me.push(A,S,b):me.push(A,S,b,S,D,b)}this.setIndex(me),this.setAttribute("position",new Rr.Float32BufferAttribute(re,3)),this.setAttribute("normal",new Rr.Float32BufferAttribute(ce,3)),this.setAttribute("uv",new Rr.Float32BufferAttribute(ie,2))}};var uf=require("three");var pf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new ui(t*.5,i,s):new uf.IcosahedronBufferGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"IcosahedronGeometry"}})}},ui=class extends eo{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=[-1,o,0,1,o,0,-1,-o,0,1,-o,0,0,-1,o,0,1,o,0,-1,-o,0,1,-o,o,0,-1,o,0,1,-o,0,-1,-o,0,1],s=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],l="IcosahedronGeometry";super(i,s,l,t,e,r),this.type=l}static fromJSON(t){return new ui(t.radius,t.corner,t.cornerSides)}};var ia=require("three"),df=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){(n.parameters?.points??[]).forEach(r=>{Array.isArray(r)&&(r.x=r[0],r.y=r[1])});let e=Object.assign({},t?.parameters??{width:100,segments:64,verticalSegments:64,points:[{x:0,y:-50,id:0},{x:50,y:-50,id:1},{x:50,y:50,id:2},{x:0,y:50,id:3}]},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{points:t,segments:e,verticalSegments:r}=n.parameters,o=new ia.Shape;o.moveTo(t[0].x,t[0].y),o.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let i=new ia.LatheBufferGeometry(o.extractPoints(r).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};var fr=require("three");var Vr=require("three");var oe=require("three"),dr=new oe.Matrix4,Ol=new oe.Object3D,sa=new oe.Vector3,ro=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 i=this.faces[r];i.normal.applyMatrix3(e).normalize();for(let s=0,l=i.vertexNormals.length;s<l;s++)i.vertexNormals[s].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return dr.makeRotationX(t),this.applyMatrix4(dr),this}rotateY(t){return dr.makeRotationY(t),this.applyMatrix4(dr),this}rotateZ(t){return dr.makeRotationZ(t),this.applyMatrix4(dr),this}translate(t,e,r){return dr.makeTranslation(t,e,r),this.applyMatrix4(dr),this}scale(t,e,r){return dr.makeScale(t,e,r),this.applyMatrix4(dr),this}lookAt(t){return Ol.lookAt(t),Ol.updateMatrix(),this.applyMatrix4(Ol.matrix),this}fromBufferGeometry(t){let e=this,r=t.index!==null?t.index:void 0,o=t.attributes;if(o.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let i=o.position,s=o.normal,l=o.color,c=o.uv,p=o.uv2;p!==void 0&&(this.faceVertexUvs[1]=[]);for(let d=0;d<i.count;d++)e.vertices.push(new oe.Vector3().fromBufferAttribute(i,d)),l!==void 0&&e.colors.push(new oe.Color().fromBufferAttribute(l,d));function a(d,f,m,h){let g=l===void 0?[]:[e.colors[d].clone(),e.colors[f].clone(),e.colors[m].clone()],x=s===void 0?[]:[new oe.Vector3().fromBufferAttribute(s,d),new oe.Vector3().fromBufferAttribute(s,f),new oe.Vector3().fromBufferAttribute(s,m)],v=new yn(d,f,m,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,f),new oe.Vector2().fromBufferAttribute(c,m)]),p!==void 0&&e.faceVertexUvs[1].push([new oe.Vector2().fromBufferAttribute(p,d),new oe.Vector2().fromBufferAttribute(p,f),new oe.Vector2().fromBufferAttribute(p,m)])}let u=t.groups;if(u.length>0)for(let d=0;d<u.length;d++){let f=u[d],m=f.start,h=f.count;for(let g=m,x=m+h;g<x;g+=3)r!==void 0?a(r.getX(g),r.getX(g+1),r.getX(g+2),f.materialIndex):a(g,g+1,g+2,f.materialIndex)}else if(r!==void 0)for(let d=0;d<r.count;d+=3)a(r.getX(d),r.getX(d+1),r.getX(d+2));else for(let d=0;d<i.count;d+=3)a(d,d+1,d+2);return this.computeFaceNormals(),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(sa).negate(),this.translate(sa.x,sa.y,sa.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 i=this.faces[r],s=this.vertices[i.a],l=this.vertices[i.b],c=this.vertices[i.c];t.subVectors(c,l),e.subVectors(s,l),t.cross(e),t.normalize(),i.normal.copy(t)}}computeVertexNormals(t=!0){let e=new Array(this.vertices.length);for(let r=0,o=this.vertices.length;r<o;r++)e[r]=new oe.Vector3;if(t){let r=new oe.Vector3,o=new oe.Vector3;for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=this.vertices[l.a],p=this.vertices[l.b],a=this.vertices[l.c];r.subVectors(a,p),o.subVectors(c,p),r.cross(o),e[l.a].add(r),e[l.b].add(r),e[l.c].add(r)}}else{this.computeFaceNormals();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];e[i.a].add(i.normal),e[i.b].add(i.normal),e[i.c].add(i.normal)}}for(let r=0,o=this.vertices.length;r<o;r++)e[r].normalize();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],s=i.vertexNormals;s.length===3?(s[0].copy(e[i.a]),s[1].copy(e[i.b]),s[2].copy(e[i.c])):(s[0]=e[i.a].clone(),s[1]=e[i.b].clone(),s[2]=e[i.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let t=0,e=this.faces.length;t<e;t++){let r=this.faces[t],o=r.vertexNormals;o.length===3?(o[0].copy(r.normal),o[1].copy(r.normal),o[2].copy(r.normal)):(o[0]=r.normal.clone(),o[1]=r.normal.clone(),o[2]=r.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.__originalFaceNormal?o.__originalFaceNormal.copy(o.normal):o.__originalFaceNormal=o.normal.clone(),o.__originalVertexNormals||(o.__originalVertexNormals=[]);for(let i=0,s=o.vertexNormals.length;i<s;i++)o.__originalVertexNormals[i]?o.__originalVertexNormals[i].copy(o.vertexNormals[i]):o.__originalVertexNormals[i]=o.vertexNormals[i].clone()}let t=new ro;t.faces=this.faces;for(let e=0,r=this.morphTargets.length;e<r;e++){if(!this.morphNormals[e]){this.morphNormals[e]={},this.morphNormals[e].faceNormals=[],this.morphNormals[e].vertexNormals=[];let i=this.morphNormals[e].faceNormals,s=this.morphNormals[e].vertexNormals;for(let l=0,c=this.faces.length;l<c;l++){let p=new oe.Vector3,a={a:new oe.Vector3,b:new oe.Vector3,c:new oe.Vector3};i.push(p),s.push(a)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=o.faceNormals[i],p=o.vertexNormals[i];c.copy(l.normal),p.a.copy(l.vertexNormals[0]),p.b.copy(l.vertexNormals[1]),p.c.copy(l.vertexNormals[2])}}for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.normal=o.__originalFaceNormal,o.vertexNormals=o.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new 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,i=this.vertices.length,s=this.vertices,l=t.vertices,c=this.faces,p=t.faces,a=this.colors,u=t.colors;e!==void 0&&(o=new oe.Matrix3().getNormalMatrix(e));for(let d=0,f=l.length;d<f;d++){let h=l[d].clone();e!==void 0&&h.applyMatrix4(e),s.push(h)}for(let d=0,f=u.length;d<f;d++)a.push(u[d].clone());for(let d=0,f=p.length;d<f;d++){let m=p[d],h,g,x=m.vertexNormals,v=m.vertexColors,A=new yn(m.a+i,m.b+i,m.c+i);A.normal.copy(m.normal),o!==void 0&&A.normal.applyMatrix3(o).normalize();for(let S=0,b=x.length;S<b;S++)h=x[S].clone(),o!==void 0&&h.applyMatrix3(o).normalize(),A.vertexNormals.push(h);A.color.copy(m.color);for(let S=0,b=v.length;S<b;S++)g=v[S],A.vertexColors.push(g.clone());A.materialIndex=m.materialIndex+r,c.push(A)}for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let x=m[h],v=[];for(let A=0,S=x.length;A<S;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=[],i=Math.pow(10,t);for(let c=0,p=this.vertices.length;c<p;c++){let a=this.vertices[c],u=Math.round(a.x*i)+"_"+Math.round(a.y*i)+"_"+Math.round(a.z*i);e[u]===void 0?(e[u]=c,r.push(this.vertices[c]),o[c]=r.length-1):o[c]=o[e[u]]}let s=[];for(let c=0,p=this.faces.length;c<p;c++){let a=this.faces[c];a.a=o[a.a],a.b=o[a.b],a.c=o[a.c];let u=[a.a,a.b,a.c];for(let d=0;d<3;d++)if(u[d]===u[(d+1)%3]){s.push(c);break}}for(let c=s.length-1;c>=0;c--){let p=s[c];this.faces.splice(p,1);for(let a=0,u=this.faceVertexUvs.length;a<u;a++)this.faceVertexUvs[a].splice(p,1)}let l=this.vertices.length-r.length;return this.vertices=r,l}setFromPoints(t){this.vertices=[];for(let e=0,r=t.length;e<r;e++){let o=t[e];this.vertices.push(new 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],i=this.faceVertexUvs[1],s,l;o&&o.length===e&&(s=[]),i&&i.length===e&&(l=[]);for(let c=0;c<e;c++){let p=t[c]._id;s&&s.push(o[p]),l&&l.push(i[p])}s&&(this.faceVertexUvs[0]=s),l&&(this.faceVertexUvs[1]=l)}toJSON(){let t={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,this.name!==""&&(t.name=this.name),this.parameters!==void 0){let m=this.parameters;for(let h in m)m[h]!==void 0&&(t[h]=m[h]);return t}let e=[];for(let m=0;m<this.vertices.length;m++){let h=this.vertices[m];e.push(h.x,h.y,h.z)}let r=[],o=[],i={},s=[],l={},c=[],p={};for(let m=0;m<this.faces.length;m++){let h=this.faces[m],g=!0,x=!1,v=this.faceVertexUvs[0][m]!==void 0,A=h.normal.length()>0,S=h.vertexNormals.length>0,b=h.color.r!==1||h.color.g!==1||h.color.b!==1,D=h.vertexColors.length>0,w=0;if(w=a(w,0,0),w=a(w,1,g),w=a(w,2,x),w=a(w,3,v),w=a(w,4,A),w=a(w,5,S),w=a(w,6,b),w=a(w,7,D),r.push(w),r.push(h.a,h.b,h.c),r.push(h.materialIndex),v){let y=this.faceVertexUvs[0][m];r.push(f(y[0]),f(y[1]),f(y[2]))}if(A&&r.push(u(h.normal)),S){let y=h.vertexNormals;r.push(u(y[0]),u(y[1]),u(y[2]))}if(b&&r.push(d(h.color)),D){let y=h.vertexColors;r.push(d(y[0]),d(y[1]),d(y[2]))}}function a(m,h,g){return g?m|1<<h:m&~(1<<h)}function u(m){let h=m.x.toString()+m.y.toString()+m.z.toString();return i[h]!==void 0||(i[h]=o.length/3,o.push(m.x,m.y,m.z)),i[h]}function d(m){let h=m.r.toString()+m.g.toString()+m.b.toString();return l[h]!==void 0||(l[h]=s.length,s.push(m.getHex())),l[h]}function f(m){let h=m.x.toString()+m.y.toString();return p[h]!==void 0||(p[h]=c.length/2,c.push(m.x,m.y)),p[h]}return t.data={},t.data.vertices=e,t.data.normals=o,s.length>0&&(t.data.colors=s),c.length>0&&(t.data.uvs=[c]),t.data.faces=r,t}clone(){return new ro().copy(this)}copy(t){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;let e=t.vertices;for(let d=0,f=e.length;d<f;d++)this.vertices.push(e[d].clone());let r=t.colors;for(let d=0,f=r.length;d<f;d++)this.colors.push(r[d].clone());let o=t.faces;for(let d=0,f=o.length;d<f;d++)this.faces.push(o[d].clone());for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let x=m[h],v=[];for(let A=0,S=x.length;A<S;A++){let b=x[A];v.push(b.clone())}this.faceVertexUvs[d].push(v)}}let i=t.morphTargets;for(let d=0,f=i.length;d<f;d++){let m={};if(m.name=i[d].name,i[d].vertices!==void 0){m.vertices=[];for(let h=0,g=i[d].vertices.length;h<g;h++)m.vertices.push(i[d].vertices[h].clone())}if(i[d].normals!==void 0){m.normals=[];for(let h=0,g=i[d].normals.length;h<g;h++)m.normals.push(i[d].normals[h].clone())}this.morphTargets.push(m)}let s=t.morphNormals;for(let d=0,f=s.length;d<f;d++){let m={};if(s[d].vertexNormals!==void 0){m.vertexNormals=[];for(let h=0,g=s[d].vertexNormals.length;h<g;h++){let x=s[d].vertexNormals[h],v={};v.a=x.a.clone(),v.b=x.b.clone(),v.c=x.c.clone(),m.vertexNormals.push(v)}}if(s[d].faceNormals!==void 0){m.faceNormals=[];for(let h=0,g=s[d].faceNormals.length;h<g;h++)m.faceNormals.push(s[d].faceNormals[h].clone())}this.morphNormals.push(m)}let l=t.skinWeights;for(let d=0,f=l.length;d<f;d++)this.skinWeights.push(l[d].clone());let c=t.skinIndices;for(let d=0,f=c.length;d<f;d++)this.skinIndices.push(c[d].clone());let p=t.lineDistances;for(let d=0,f=p.length;d<f;d++)this.lineDistances.push(p[d]);let a=t.boundingBox;a!==null&&(this.boundingBox=a.clone());let u=t.boundingSphere;return u!==null&&(this.boundingSphere=u.clone()),this.elementsNeedUpdate=t.elementsNeedUpdate,this.verticesNeedUpdate=t.verticesNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.lineDistancesNeedUpdate=t.lineDistancesNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this}toBufferGeometry(){let t=new Ml().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 i=[],s=t.morphTargets[o];for(let l=0,c=s.length;l<c;l++){let p=s[l],a=new oe.Float32BufferAttribute(p.data.length*3,3);a.name=p.name,i.push(a.copyVector3sArray(p.data))}e.morphAttributes[o]=i}if(t.skinIndices.length>0){let o=new 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),i=new oe.Float32BufferAttribute(r.colors.length*3,3);if(e.setAttribute("position",o.copyVector3sArray(r.vertices)),e.setAttribute("color",i.copyColorsArray(r.colors)),r.lineDistances&&r.lineDistances.length===r.vertices.length){let s=new 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}};ro.prototype.isGeometry=!0;var Ml=class{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(t){let e=[],r,o,i,s=t.faces;for(o=0;o<s.length;o++){let l=s[o];l.materialIndex!==i&&(i=l.materialIndex,r!==void 0&&(r.count=o*3-r.start,e.push(r)),r={start:o*3,materialIndex:i})}r!==void 0&&(r.count=o*3-r.start,e.push(r)),this.groups=e}fromGeometry(t){let e=t.faces,r=t.vertices,o=t.faceVertexUvs,i=o[0]&&o[0].length>0,s=o[1]&&o[1].length>0,l=t.morphTargets,c=l.length,p;if(c>0){p=[];for(let x=0;x<c;x++)p[x]={name:l[x].name,data:[]};this.morphTargets.position=p}let a=t.morphNormals,u=a.length,d;if(u>0){d=[];for(let x=0;x<u;x++)d[x]={name:a[x].name,data:[]};this.morphTargets.normal=d}let f=t.skinIndices,m=t.skinWeights,h=f.length===r.length,g=m.length===r.length;r.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let 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 S=v.vertexColors;if(S.length===3)this.colors.push(S[0],S[1],S[2]);else{let b=v.color;this.colors.push(b,b,b)}if(i===!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=l[b].vertices;p[b].data.push(D[v.a],D[v.b],D[v.c])}for(let b=0;b<u;b++){let D=a[b].vertexNormals[x];d[b].data.push(D.a,D.b,D.c)}h&&this.skinIndices.push(f[v.a],f[v.b],f[v.c]),g&&this.skinWeights.push(m[v.a],m[v.b],m[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}},yn=class{constructor(t,e,r,o,i,s=0){this.a=t,this.b=e,this.c=r,this.normal=o&&o.isVector3?o:new oe.Vector3,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new oe.Color,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=s}clone(){return new this.constructor().copy(this)}copy(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(let e=0,r=t.vertexNormals.length;e<r;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,r=t.vertexColors.length;e<r;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}};var Fb=["a","b","c"];function zb(n,t){switch(t){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function Dl(n,t,e){let r=Math.min(n,t),o=Math.max(n,t),i=r+"_"+o;return e.get(i)}function Bl(n,t,e,r,o,i){let s=Math.min(n,t),l=Math.max(n,t),c=s+"_"+l,p;if(r.has(c))p=r.get(c);else{let a=e[s],u=e[l];p={a,b:u,newEdge:null,faces:[]},r.set(c,p)}p.faces.push(o),i[n].edges.push(p),i[t].edges.push(p)}function Ub(n,t,e,r){let o,i,s;for(o=0,i=n.length;o<i;o++)e[o]={edges:[]};for(o=0,i=t.length;o<i;o++)s=t[o],Bl(s.a,s.b,n,r,s,e),Bl(s.b,s.c,n,r,s,e),Bl(s.c,s.a,n,r,s,e)}function aa(n,t,e,r,o){n.push(new yn(t,e,r,void 0,void 0,o))}function xn(n,t){return Math.abs(t-n)/2+Math.min(n,t)}function la(n,t,e,r){n.push([t.clone(),e.clone(),r.clone()])}var ca=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof Vr.BufferGeometry?t=new ro().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 Vr.Vector3,r,o,i,s,l,c=t.vertices,p=t.faces,a=t.faceVertexUvs[0],u=a!==void 0&&a.length>0,d=[],f=new Map;Ub(c,p,d,f);let m=[],h,g,x,v,A,S,b;for(let F of Array.from(f.keys())){for(g=f.get(F),x=new Vr.Vector3,A=3/8,S=1/8,b=g.faces.length,b!=2&&(A=.5,S=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],l=0;l<3&&(h=c[zb(v,Fb[l])],!(h!==g.a&&h!==g.b));l++);h&&e.add(h)}e.multiplyScalar(S),x.add(e),g.newEdge=m.length,m.push(x)}let D,w,y,I,T,L,N,C=[];for(o=0,i=c.length;o<i;o++){for(L=c[o],T=d[o].edges,r=T.length,r==3?D=3/16:r>3&&(D=3/(8*r)),w=1-r*Number(D),y=D,r<=2&&(r==2?(w=3/4,y=1/8):r==1||r==0),N=L.clone().multiplyScalar(w),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)),N.add(e),C.push(N)}let k=C.concat(m),W=C.length,ne,ue,se,K=[],U=[],V,E,B,O,G=new Vr.Vector2,Z=new Vr.Vector2,j=new Vr.Vector2;for(o=0,i=p.length;o<i;o++)v=p[o],ne=Number(Dl(v.a,v.b,f).newEdge)+W,ue=Number(Dl(v.b,v.c,f).newEdge)+W,se=Number(Dl(v.c,v.a,f).newEdge)+W,aa(K,ne,ue,se,v.materialIndex),aa(K,v.a,ne,se,v.materialIndex),aa(K,v.b,ue,ne,v.materialIndex),aa(K,v.c,se,ue,v.materialIndex),u&&(V=a[o],E=V[0],B=V[1],O=V[2],G.set(xn(E.x,B.x),xn(E.y,B.y)),Z.set(xn(B.x,O.x),xn(B.y,O.y)),j.set(xn(E.x,O.x),xn(E.y,O.y)),la(U,G,Z,j),la(U,E,G,j),la(U,B,Z,G),la(U,O,j,Z));t.vertices=k,t.faces=K,u&&(t.faceVertexUvs[0]=U)}};var tt=new fr.Vector3,ff=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=n.geometry??t?.geometry??new fr.BufferGeometry().copy(new fr.BoxBufferGeometry(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(tt),r={width:tt.x,height:tt.y,depth:tt.z,subdivisions:0}):r=t.parameters;let o={...r,...n.parameters};return{parameters:{width:Math.abs(o.width),height:Math.abs(o.height),depth:Math.abs(o.depth),subdivisions:Math.abs(o.subdivisions)},geometry:e}}static build(n){let{width:t,height:e,depth:r,subdivisions:o}=n.parameters,i=n.geometry??new fr.BufferGeometry().copy(new fr.BoxBufferGeometry(100,100,100)),s=i.userData.parameters;s===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(tt)):tt.set(s.width,s.height,s.depth),(t!==tt.x||e!==tt.y||r!==tt.z)&&i.scale(tt.x===0?1:t/tt.x,tt.y===0?1:e/tt.y,tt.z===0?1:r/tt.z);let l=i.originalGeometry;return o>0?(l===void 0||s?.subdivisions!==o)&&(l===void 0&&(l=i),i=new ca(o).modify(l).toBufferGeometry()):(l!==void 0&&(i=l),l=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()),l!==void 0&&Object.assign(i,{originalGeometry:l}),delete n.geometry,Object.assign(i,{userData:{...n,type:"NonParametricGeometry"}})}static loadFromUrl(n,t,e){new fr.BufferGeometryLoader(e).load(n,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(tt);let s=100/tt.x;Object.assign(i.parameters,{width:100,height:tt.y*s,depth:tt.z*s}),t(this.build(i))})}};var mf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},n.parameters);return{shape:n.shape&&n.shape instanceof Ae?n.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,cornerRadius:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5,u=0,d=0,f=2*Math.PI/r;for(let h=0;h<r;h++){let g=f*h,x=u+Math.sin(g)*p,v=d+Math.cos(g)*a;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 m=xt.create({shape:c,parameters:{roundness:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(m,{userData:{...n,type:"PolygonGeometry"}})}};var ve=require("three"),hf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,heightSegments:i,openEnded:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=new Gl(t*.5,e,o,i,s,l,c);return p.scale(1,1,r/t),Object.assign(p,{userData:{...n,type:"PyramidGeometry"}})}};function pi(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function El(n,t,e,r,o,i){let s=t.clone().sub(n),l=e.clone().sub(n),c=s.angleTo(l);if(s.normalize(),l.normalize(),r===o){let p=s.add(l).normalize();i.copy(n).addScaledVector(p,r/Math.sin(c/2))}else{let p=s.angleTo(l);i.copy(n),i.addScaledVector(s,o/Math.sin(p)),i.addScaledVector(l,r/Math.sin(p))}}function jb(n,t,e){let r=n.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var Gl=class extends ve.BufferGeometry{constructor(t=.5,e=1,r=4,o=1,i=!1,s=0,l=4){super(),r=Math.floor(Math.max(3,r)),o=Math.floor(o),l=Math.floor(l);let c=[],p=[],a=[],u=[],d=0,f=e/2,m=Math.PI/r,h=t*Math.cos(Math.PI/r),g=2*Math.PI/r,x=(r-2)*Math.PI/r,v=Math.PI-x,A=new ve.Vector3(0,-f,0),S=new ve.Vector3(0,f,0),b=new ve.Vector2(t,-f),D=new ve.Vector2(h,-f),w=new ve.Vector2(0,S.y).sub(D),y=new ve.Vector2(0,S.y).sub(b),I=new ve.Vector2(w.y,-w.x).normalize(),T=new ve.Vector2(y.y,-y.x).normalize(),N=t*Math.cos(Math.PI/r)*Math.tan((Math.PI-w.angle())/2)-1e-8;s=Math.min(s,N);let C;{let U=new ve.Vector3(I.x,I.y,0),V=new ve.Vector3(Math.cos(g)*U.x,U.y,Math.sin(g)*U.x);C=U.angleTo(V)}let k=s/Math.tan((Math.PI-w.angle())/2),W=s/Math.tan((Math.PI-C)/2),ne=new ve.Vector3;if(!i){p.push(A.x,A.y,A.z),a.push(0,-1,0),u.push(0,0);let U=d++,V=[],E=b.clone(),B=k/Math.cos(Math.PI/r);E.x-=B;for(let O=0;O<r;O++){let G=O/r*Math.PI*2+m,Z=new ve.Vector2(Math.sin(G),Math.cos(G));pi(E,Z,ne),p.push(ne.x,ne.y,ne.z),a.push(0,-1,0),u.push(0,0),V.push(d++)}for(let O=0;O<V.length;O++)c.push(V[O],U,V[(O+1)%V.length])}let ue=[];{let U=new ve.Vector3,V=new ve.Vector3,E=new ve.Vector3,B=new ve.Vector3,O=new ve.Vector3,G=new ve.Vector3;for(let Z=0;Z<r;Z++){let j=Z/r*Math.PI*2+m,F=(Z+.5)/r*Math.PI*2+m,z=(Z+1)/r*Math.PI*2+m,M=new ve.Vector2(Math.sin(j),Math.cos(j)),q=new ve.Vector2(Math.sin(F),Math.cos(F)),J=new ve.Vector2(Math.sin(z),Math.cos(z));pi(b,M,V),pi(b,J,E),pi(I,q,U),El(S,V,E,W,W,B),p.push(B.x,B.y,B.z),El(V,S,E,W,k,O),p.push(O.x,O.y,O.z),El(E,V,S,k,W,G),p.push(G.x,G.y,G.z),a.push(U.x,U.y,U.z),a.push(U.x,U.y,U.z),a.push(U.x,U.y,U.z),u.push(0,0),u.push(0,0),u.push(0,0);let ee=d++,H=d++,Q=d++;if(c.push(ee,H,Q),s>0){{let ce=V.clone().add(E).multiplyScalar(.5),ie=S.clone().sub(ce).normalize(),Re=A.clone().sub(ce).normalize().add(ie).normalize().multiplyScalar(-1),ge=G.clone().sub(O);se(ce,ge,Re,w.angle())}let $,re;{let ce=new ve.Vector3;pi(T,J,ce);let ie=G.clone().add(B).multiplyScalar(.5);ie=jb(ie,E,S);let me=G.clone().sub(B);[$,re]=se(ie,me,ce,C,B.y)}{let ce=$,ie=ce.clone().setY(0).normalize(),me=new ve.Vector3(0,-1,0),Re=ie.clone().cross(me);K(ce,ie,me,Re)}ue.concat(re);{let ce=w.angle(),ie=Math.PI-ce,me=S.clone();me.y-=s/Math.sin(ce-Math.PI/2);let Re=new ve.Vector3,ge=[];for(let Te=0;Te<l;Te++){let St=[],Vt=Math.PI/2-ie*Te/l,Do=Math.cos(Vt),Ot=Math.sin(Vt),Bo=F;for(let $i=0;$i<=Te;$i++){let Xi=Math.cos(Bo),je=Math.sin(Bo);U.x=Do*je,U.y=Ot,U.z=Do*Xi,Re.copy(me).addScaledVector(U,s),p.push(Re.x,Re.y,Re.z),a.push(U.x,U.y,U.z),u.push(0,0),St.push(d++),Bo+=Math.PI*2/Te/r}ge.push(St)}re.reverse(),ge.push(re);let $e=ge.length-1;for(let Te=0;Te<$e;Te++){let St=ge[Te],Vt=ge[Te+1],Do=St.length-1;c.push(Vt[1],St[0],Vt[0]);for(let Ot=1;Ot<=Do;Ot++)c.push(St[Ot],St[Ot-1],Vt[Ot]),c.push(Vt[Ot+1],St[Ot],Vt[Ot])}}}}}this.setIndex(c),this.setAttribute("position",new ve.Float32BufferAttribute(p,3)),this.setAttribute("normal",new ve.Float32BufferAttribute(a,3)),this.setAttribute("uv",new ve.Float32BufferAttribute(u,2));function se(U,V,E,B,O){let G=-B/2,Z=(Math.PI-B)/2,j=V.clone().normalize().cross(E);U.addScaledVector(E,-s/Math.sin(Z));let F=new ve.Vector3,z=new ve.Vector3,M=1,q=d,J=[];for(let ee=0;ee<=l;ee++){let H=G+ee/l*B;z.set(0,0,0),z.addScaledVector(j,Math.sin(H)),z.addScaledVector(E,Math.cos(H));for(let Q=0;Q<=M;Q++){let $=Q/M-.5;if(F.copy(U),F.addScaledVector(V,$),F.addScaledVector(z,s),O!=null){let re=Math.max(0,F.y-O);F.addScaledVector(V,-re/V.y)}p.push(F.x,F.y,F.z),a.push(z.x,z.y,z.z),u.push(0,0),Q===0&&J.push(d),d++}}for(let ee=0;ee<l;ee++)for(let H=0;H<M;H++){let Q=q+H+(M+1)*ee,$=Q+(M+1),re=$+1,ce=Q+1;c.push(Q,$,ce),c.push($,re,ce)}return[U.clone().addScaledVector(V,.5),J]}function K(U,V,E,B){let O=Math.PI/2,G=y.angle()-O,Z=[],j=new ve.Vector3,F=new ve.Vector3;for(let M=0;M<=l;M++){let q=[],J=M/l;for(let ee=0;ee<=M;ee++){let Q=((M?ee/M:0)-.5)*v,$=Math.cos(Q),re=Math.sin(Q),ce=Math.atan(Math.tan(G)*$),ie=(O+ce)*J,me=Math.cos(ie),Re=Math.sin(ie);j.set(0,0,0),j.addScaledVector(V,Re*$),j.addScaledVector(E,me),j.addScaledVector(B,Re*re),F.copy(U).addScaledVector(j,s),p.push(F.x,F.y,F.z),a.push(j.x,j.y,j.z),u.push(0,0),q.push(d++)}Z.push(q)}let z=Z.length-1;for(let M=0;M<z;M++){let q=Z[M],J=Z[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 gf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters),r=Object.assign(t?.ui??{enabledIndieCorners:!1},n.ui);return{shape:n.shape&&n.shape instanceof Ae?n.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)}),ui:r}}static build(n){let t=n.shape,{width:e,height:r,cornerRadius:o,cornerType:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p={x:e*.5,y:r*.5},a={x:-p.x,y:-p.y},u={x:p.x,y:p.y};function d(S,b,D){return b>e&&D>r?Math.min(S*e/b,S*r/D):b>e?S*e/b:D>r?S*r/D:S}let f=[];f[0]=o[0]===0?0:d(o[0],o[0]+o[3],o[0]+o[1]),f[1]=o[1]===0?0:d(o[1],o[1]+o[2],o[1]+o[0]),f[2]=o[2]===0?0:d(o[2],o[2]+o[1],o[2]+o[3]),f[3]=o[3]===0?0:d(o[3],o[3]+o[0],o[3]+o[2]);let m=a.x,h=u.x,g=u.y,x=a.y;t.addPoint(t.createPoint(m,g)),t.addPoint(t.createPoint(h,g)),t.addPoint(t.createPoint(h,x)),t.addPoint(t.createPoint(m,x)),t.isClosed=!0;let v=!0;for(let S=0,b=t.points.length;S<b;S++)t.points[S].roundness=f[S],S>0&&f[S]!==f[S-1]&&(v=!1);v&&(t.roundness=f[0]),t.useCubicForRoundedCorners=i!==1,t.update();let A=xt.create({shape:t,parameters:{depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(A,{userData:{...n,type:"RectangleGeometry"}})}};var yf=require("three"),xf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t=100,height:e=t,depth:r=t,widthSegments:o=64,heightSegments:i=64,phiStart:s,phiLength:l,thetaStart:c,thetaLength:p}=n.parameters,a=new yf.SphereBufferGeometry(.5*t,o,i,s,l,c,p);return a.scale(1,e/t,r/t),Object.assign(a,{userData:{...n,type:"SphereGeometry"}})}};var vf=require("three"),bf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:0})}}static build(n){let{width:t=100,height:e=t,widthSegments:r=8,heightSegments:o=8}=n.parameters,i=new vf.PlaneBufferGeometry(t,e,r,o);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};var oo=require("three"),Sf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,angle:o,cornerRadius:i,cornerSegments:s}=n.parameters,l=new Rl(t,e,r,o,i,s);return Object.assign(l,{userData:{...n,type:"BackdropGeometry"}})}},Rl=class extends oo.BufferGeometry{constructor(t=1,e=1,r=1,o=90,i=10,s=24){super(),this.type="BackdropGeometry";let l=[],c=[],p=[],a=.001;i==0&&(s=1),s=Math.max(1,Math.floor(s)),i=Math.min(i,100),o=Math.min(180-a,o),o*=Math.PI/180;let u=[],d=Math.PI/2,f=(F=0,z=0,M=0)=>new oo.Vector3(F,z,M),m=f(),h=f(),[g,x,v]=[e/2,t/2,r/2],A=-x,S=+x,[b,D,w]=[f(A,-g,+v),f(A,-g,-v),f(A,+g,-v)],y=(F,z=!1)=>Math.sin(F-Math.PI/(1+ +z)),I=(F,z=!1)=>Math.cos(F-Math.PI/(1+ +z));w.y=Math.sin(o)*e-g;let T=Math.cos(o)*e-v,L=b.z-a;o<=d?(w.z=Math.min(T,L),w.z==L&&(w.y-=(T-L)/Math.tan(d-o))):D.z=Math.min(D.z-T-v,b.z-a),m.subVectors(b,D),h.subVectors(w,D);let N=Math.min(m.length(),h.length())*i/100,C=N*Math.tan(o/2),k=N/Math.cos(o/2),W=m.clone().normalize().add(h.normalize()).setLength(k).add(D);m.set(0,y(o,!0),I(o,!0)),u.push([w,m.clone()]);let ne=(Math.PI-o)/s;for(let F=0;F<=s;F++){let z=d+o+F*ne;m.set(0,Math.sin(z)*C,Math.cos(z)*C),m.add(W),h.set(0,y(z),I(z)),u.push([m.clone(),h.clone()])}u.push([b,f(0,1,0)]);let ue=Math.sin(ne/2)*C*2,se=u.length-1,K=u[0][0].distanceTo(u[1][0]),U=u[se-1][0].distanceTo(u[se][0]),V=K+ue*s+U;u[0].push(1);for(let F=0;F<=s;F++)u[F+1].push(1-(K+F*ue)/V);u[se].push(0);let[E,B,O]=u[0],G,Z,j;for(let F=1;F<u.length;F++)[G,Z,j]=u[F],l.push(A,E.y,E.z,A,G.y,G.z,S,E.y,E.z,S,E.y,E.z,A,G.y,G.z,S,G.y,G.z),c.push(0,B.y,B.z,0,Z.y,Z.z,0,B.y,B.z,0,B.y,B.z,0,Z.y,Z.z,0,Z.y,Z.z),p.push(0,O,0,j,1,O,1,O,0,j,1,j),[E,B,O]=[G,Z,j];this.setAttribute("position",new oo.Float32BufferAttribute(l,3)),this.setAttribute("normal",new oo.Float32BufferAttribute(c,3)),this.setAttribute("uv",new oo.Float32BufferAttribute(p,2))}};var wf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof Ae?n.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,innerRadiusPercent:r,spikes:o,cornerRadius:i,angle:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}=n.parameters,a=n.shape,u=t*.5,d=e*.5,f=0,m=0,h=s*Math.PI/360/o,g=Math.PI/2*3*-1,x=u*r/100,v=d*r/100;if(o===3&&r===50){h=2*Math.PI/o;for(let S=0;S<o;S++){let b=h*S,D=f+Math.sin(b)*u,w=m+Math.cos(b)*d;a.addPoint(a.createPoint(D,w))}}else for(let S=0;S<o;S++){let b=f+Math.cos(g)*u,D=m+Math.sin(g)*d;a.addPoint(a.createPoint(b,D)),g+=h,b=f+Math.cos(g)*x,D=m+Math.sin(g)*v,S<=o,a.addPoint(a.createPoint(b,D)),g+=h}a.isClosed=!0;for(let S=0,b=a.points.length;S<b;S++)a.points[S].roundness=i;a.roundness=i,a.update();let A=xt.create({shape:a,parameters:{roundness:i,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}});return Object.assign(A,{userData:{...n,type:"StarGeometry"}})}};var _f=require("three"),ua=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e}=n.parameters,r=new _f.PlaneBufferGeometry(t,e);return Object.assign(r,{userData:{...n,type:"TextFrameGeometry"}})}};var Tf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??e.width*.25);return{parameters:Object.assign(e,{width:r,height:o,depth:i})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,tubularSegments:i,arc:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=kb(t,e,r,t*.5,s,i,0,0,o,l,c);return p.scale(1,e/t,1),Object.assign(p,{userData:{...n,type:"TorusGeometry"}})}};function kb(n,t,e,r,o,i,s,l,c,p,a){return[t,e]=[e,t],s=t/2,o/=2*Math.PI,o==1&&(p=0),new ci(!0,n,t,e,r,o,i,s,l,c,p,a)}var Af=require("three"),Nf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),tube:e.tube??e.width*.125})}}static build(n){let{width:t,tube:e,tubularSegments:r,radialSegments:o,p:i,q:s}=n.parameters,l=t*.5;l!==e&&(l-=e);let c=new Af.TorusKnotBufferGeometry(l,e,r,o,i,s);return Object.assign(c,{userData:{...n,type:"TorusKnotGeometry"}})}};var Cf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},n.parameters);return{shape:n.shape&&n.shape instanceof Ae?n.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width*(e.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t=100,height:e,cornerRadius:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s,isRect:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5;l?(c.addPoint(c.createPoint(-p,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))):(c.addPoint(c.createPoint(0,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))),c.isClosed=!0;for(let d=0,f=c.points.length;d<f;d++)c.points[d].roundness=r;c.roundness=r,c.update();let u=xt.create({shape:c,parameters:{roundness:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s}});return Object.assign(u,{userData:{...n,type:"TriangleGeometry"}})}};var We=require("three");var Hb,pa=new Promise(n=>{Hb=n});var tm=require("three");var co=require("three");var Aa=require("three");var zl=require("three");var fa=require("three");var Vl=require("three");function Ke(n,t){return t.color(n)}var Fl=n=>"isEntity"in n,mr=n=>"isAbstractMesh"in n,hr=n=>n!==null&&n.objectType==="BooleanObject",Pf=n=>n.objectType==="CombinedCamera";var da=n=>"objectHelper"in n;function Wb(n,t){let e=!1;t.position&&(n.position.fromArray(t.position),e=!0),t.rotation&&(n.rotation.fromArray(t.rotation),e=!0),t.scale&&(e=!0,n.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&"hiddenMatrix"in n&&(e=!0,n.hiddenMatrix.fromArray(t.hiddenMatrix??Yr.identity)),e&&(n.updateMatrix(),hr(n.parent)&&mr(n)&&n.invalidateDownstreamBooleanData(!0).recomputeBoolean()),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&n.updateWorldMatrix(!1,!0),n.objectType==="CombinedCamera"&&(t.isUpVectorFlipped!==void 0&&(n.isUpVectorFlipped=t.isUpVectorFlipped),n.updateUp())}function qb(n,t){Wb(n,t),t.name!==void 0&&(n.name=t.name),t.visible!==void 0&&(n.visible=t.visible)}function Lf(n,t,e){qb(n,t),t.color!==void 0&&(n.color=Ke(t.color,e)),t.intensity!==void 0&&(n.intensity=t.intensity),t.shadows!==void 0&&!(n instanceof Vl.HemisphereLight)&&(n.castShadow=t.shadows),n.shadow&&!(n instanceof Vl.HemisphereLight)&&t.depth!==void 0&&(n.shadow.camera.far=t.depth,n.shadow.needsUpdate=!0)}function If(n,t){n.shadow.camera.right=t/2,n.shadow.camera.left=-t/2,n.shadow.camera.top=t/2,n.shadow.camera.bottom=-t/2,n.shadow.needsUpdate=!0}var ma=n=>class extends n{hasEntityChild(){return this.children.some(e=>Fl(e))}isDescendantOf(e){e instanceof fa.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 fa.Matrix4().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),Fl(e)?e.hiddenMatrix.premultiply(o):e.applyMatrix4(o),e.updateWorldMatrix(!1,!1),this.add(e),r!==void 0&&(this.children.pop(),this.children.splice(r,0,e)),this}copy(e,r=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),r===!0)for(let o=0;o<e.children.length;o++){let i=e.children[o];this.add(i.clone())}return this}};var Ue=require("three");var vn=new Ue.Box3,gr=new Ue.Vector3,yr=new Ue.Vector3,bn=new Ue.Matrix4,Mf=[new Ue.Vector3(-1,1,1),new Ue.Vector3(-1,-1,1),new Ue.Vector3(1,-1,1),new Ue.Vector3(1,1,1),new Ue.Vector3(-1,1,-1),new Ue.Vector3(-1,-1,-1),new Ue.Vector3(1,-1,-1),new Ue.Vector3(1,1,-1)],$b=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],Xb=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function Yb(n,t,e=0,r=t.count){let o=1/0,i=1/0,s=1/0,l=-1/0,c=-1/0,p=-1/0;for(let a=e;a<r;a++){let u=t.getX(a),d=t.getY(a),f=t.getZ(a);u<o&&(o=u),d<i&&(i=d),f<s&&(s=f),u>l&&(l=u),d>c&&(c=d),f>p&&(p=f)}return n.min.set(o,i,s),n.max.set(l,c,p),n}var Of=(n,t,e)=>{if(mr(n)){let r=n.geometry.userData.parameters,o=n.geometry.getAttribute("position");n.geometry.userData.type==="SubdivGeometry"?gr.copy(n.originalGeometry.boundingSphere.center):o!==void 0&&(Yb(vn,o,n.geometry.drawRange.start,n.geometry.drawRange.count<1/0?n.geometry.drawRange.count:o.count),vn.getCenter(gr)),n.forceComputeSize?vn.getSize(yr).multiplyScalar(.5):yr.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}else if(da(n)&&n.objectHelper.visible){let r=n.geometryHelper.getAttribute("position");vn.setFromArray(r.array),vn.getCenter(gr),vn.getSize(yr).multiplyScalar(.5)}else gr.setScalar(0),yr.setScalar(0);bn.copy(t).multiply(n.matrixWorld),yr.x===0&&yr.y===0&&yr.z===0?e.push(new Ue.Vector3(gr.x,gr.y,gr.z).applyMatrix4(bn)):Mf.forEach(r=>{e.push(r.clone().multiply(yr).add(gr).applyMatrix4(bn))})},di=class extends Ue.Box3{constructor(){super(...arguments);this.matrix=new Ue.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 Ue.Matrix4().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,r)}expandByObjectSize(e,r,o=!1){let i=[];return o===!0?e.traverseEntity(s=>{s.visible&&Of(s,r,i)}):Of(e,r,i),this.setFromPoints(i)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4(bn.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(yr).multiplyScalar(.5),this.getCenter(gr),bn.copy(this.matrix).setPosition(gr),this.vertices=Mf.map(e=>e.clone().multiply(yr).applyMatrix4(bn))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=$b.map(([e,r])=>new Ue.Line3(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new Ue.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=Xb.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var xr=n=>"isEntity"in n,Df=n=>"isAbstractMesh"in n,kt=n=>class extends ma(n){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new zl.Matrix4;this._singleBBox=new di;this._recursiveBBox=new di;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=>{xr(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)xr(o)&&o.traverseEntity(r)}traverseVisibleEntity(r){r(this);for(let o of this.children)xr(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 i=this.parent;if(r&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),o)for(let s of this.children)s.updateWorldMatrix(!1,!0)}clone(r){return new this.constructor().copy(this,r)}copy(r,o=!0){if(super.copy(r,!1),this.raycastLock=r.raycastLock,this.scaleLock=r.scaleLock,this.hiddenMatrix.copy(r.hiddenMatrix),o===!0)for(let i of r.children)xr(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let r=new zl.Matrix4,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),r.copy(this.matrixWorld).invert(),r.multiply(o);for(let i of this.children)xr(i)&&i.hiddenMatrix.premultiply(r)}toObjectTransformState(r=[]){this.updateWorldMatrix(!0,!1);let o={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return en(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 en(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 Ze=require("three");var Bf=require("three"),Ul=class extends Bf.Object3D{},ha=class extends Ul{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 Ze.Object3D{constructor(e,r={}){super();this.object=e;let o=e.recursiveBBox.getSize(new Ze.Vector3),i=.1;this.parameters=Ns.defaultData(o.toArray(),i),ho(this.parameters,r),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(e){this.parameters.hideBase=e}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters)}this.children.forEach(e=>e.updateMatrix())}_updateCount(){let e=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count;if(this.children.length!==e)if(this.children.length<e)for(let r=0,o=e-this.children.length;r<o;++r){let i=new ha(this.object);i.visible=!0,this.add(i),this.parameters.hideBase&&this.setHideBase(!0)}else for(let r=0,o=this.children.length-e;r<o;++r)this.remove(this.children[0])}_updateRadial(e){let r=e.radial,o=r.start*Ze.MathUtils.DEG2RAD,i=r.end*Ze.MathUtils.DEG2RAD,s=o-i,l=new Ze.Euler(r.rotation[0]*Ze.MathUtils.DEG2RAD,r.rotation[1]*Ze.MathUtils.DEG2RAD,r.rotation[2]*Ze.MathUtils.DEG2RAD),c;switch(r.axis){case"z":c=new Ze.Vector3(0,0,1);break;case"y":c=new Ze.Vector3(0,1,0);break;default:case"x":c=new Ze.Vector3(1,0,0);break}for(let[p,a]of this.children.entries()){a.scale.x=r.scale[0],a.scale.y=r.scale[1],a.scale.z=r.scale[2],a.position.setScalar(0);let u=s/e.count*p-o;switch(r.axis){case"x":a.rotation.set(0,u,0);break;case"y":a.rotation.set(0,0,u);break;case"z":a.rotation.set(u,0,0);break}a.translateOnAxis(c,r.radius),a.position.x+=r.position[0],a.position.y+=r.position[1],a.position.z+=r.position[2],r.alignment===!0?(a.rotation.x+=l.x,a.rotation.y+=l.y,a.rotation.z+=l.z):a.rotation.copy(l)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,o=new Ze.Euler(r.rotation[0]*Ze.MathUtils.DEG2RAD,r.rotation[1]*Ze.MathUtils.DEG2RAD,r.rotation[2]*Ze.MathUtils.DEG2RAD);for(let[i,s]of this.children.entries())s.scale.x=1+(r.scale[0]-1)*i,s.scale.y=1+(r.scale[1]-1)*i,s.scale.z=1+(r.scale[2]-1)*i,s.rotation.x=o.x*i,s.rotation.y=o.y*i,s.rotation.z=o.z*i,s.position.x=r.position[0]*i,s.position.y=r.position[1]*i,s.position.z=r.position[2]*i}_updateGrid(e){let r=0,o=e.grid;if(o.useCenter===!0){let i={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},s=new Ze.Vector3(o.size[0]*(o.count[0]-i.x)*.5,o.size[1]*(o.count[1]-i.y)*.5,o.size[2]*(o.count[2]-i.z)*.5);for(let l=0;l<o.count[0];l++)for(let c=0;c<o.count[1];c++)for(let p=0;p<o.count[2];p++){let a=this.children[r++];a.scale.setScalar(1),a.rotation.set(0,0,0),a.position.x=o.size[0]*l-s.x,a.position.y=o.size[1]*c-s.y,a.position.z=o.size[2]*p-s.z}}else for(let i=0;i<o.count[0];i++)for(let s=0;s<o.count[1];s++)for(let l=0;l<o.count[2];l++){let c=this.children[r++];c.scale.setScalar(1),c.rotation.set(0,0,0),c.position.x=o.size[0]*i,c.position.y=-o.size[1]*s,c.position.z=-o.size[2]*l}}fromClonerState(e){return e.hideBase!==void 0&&this.setHideBase(e.hideBase),ho(this.parameters,e),this.update(),this}};var Ta=require("three");var Zt=require("three");var fi=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 Ef=require("three"),it=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=Ef.MathUtils.generateUUID(),this.type=t,this.name=""}analyze(t,e){e=e??{},t.analyzing=!0,this.build(t.addFlow(e.slot,e.cache,e.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,e,r){return r=r??{},this.analyze(t,r),this.flow(t,e,r)}flow(t,e,r){r=r??{},t.addFlow(r.slot,r.cache,r.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,r){e=e??this.getType(t,e);let o=t.getNodeData(r??this);return t.analyzing&&this.appendDepsNode(t,o,e),t.nodes.indexOf(this)===-1&&t.nodes.push(this),this.updateFrame!==void 0&&t.updaters.indexOf(this)===-1&&t.updaters.push(this),this.generate(t,e,r)}updateFrame(t){}generateReadonly(t,e,r,o,i,s){return""}generate(t,e,r,o,i){return""}parse(t,e,r,o){}appendDepsNode(t,e,r){e.deps=(e.deps||0)+1;let o=t.getTypeLength(r);(o>(e.outputMax||0)||this.getType(t,r))&&(e.outputMax=o,e.output=r)}setName(t){this.name=t}getName(){return this.name}getType(t,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}getHash(){let t="{",e,r;for(e in this)r=this[e],r instanceof it&&(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 jl=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}},rt=new jl;var kl=require("three");var Gf=require("three"),le=class extends it{constructor(e,r){super(e);this.scope="";r=r??{},this.shared=r.shared!==void 0?r.shared:!0,this.unique=r.unique!==void 0?r.unique:!1}build(e,r,o,i){if(r=r??this.getType(e),this.getShared(e,r)){let s=this.getUnique(e,r);s&&this.uuid===void 0&&(this.uuid=Gf.MathUtils.generateUUID()),o=e.getUUID(o??this.getUUID(),!s);let l=e.getNodeData(o),c=l.output||this.getType(e);if(e.analyzing)return(l.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,l,r),this.generate(e,r,o)):super.build(e,r,o);if(s)return l.name=l.name||super.build(e,r,o),l.name;if(!this.getLabel()&&(!this.getShared(e,c)||e.context.ignoreCache||l.deps===1))return super.build(e,r,o);o=this.getUUID(!1);let p=this.getTemp(e,o);if(p)return e.format(p,c,r);{p=super.generate(e,r,o,l.output,i);let a=this.generate(e,c,o);return e.addNodeCode(p+" = "+a+";"),e.format(p,c,r)}}return super.build(e,r,o)}getShared(e,r){return r!=="sampler2D"&&r!=="samplerCube"&&this.shared}getUnique(e,r){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let r=this.uuid;return typeof this.scope=="string"&&(r=this.scope+"-"+r),r}getTemp(e,r){r=r||this.uuid;let o=e.getVars()[r];return o?o.name:void 0}generate(e,r,o,i,s){return this.getShared(e,r)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,i??this.getType(e),s,this.getLabel()).name}};var Le=class extends le{constructor(e,r){r=r??{},r.shared=r.shared!==void 0?r.shared:!1;super(e,r);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(e,r,o,i,s,l){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let c=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,r,o,i,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(i,this,s,l,this.getLabel())),e.format(c.vertex.name,i,r)):(c.fragment||(c.fragment=e.createFragmentUniform(i,this,s,l,this.getLabel())),e.format(c.fragment.name,i,r))}};var st=class extends Le{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof kl.Vector2?e:new kl.Vector2(e,r)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,r,o,i,s,l){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,r)}};var Hl=require("three");var ct=class extends Le{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof Hl.Vector3?e:new Hl.Vector3(e,r,o)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,r,o,i,s,l){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,r)}};var Ht=class extends Le{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof Je?e:new Je(e.r,e.g,e.b,e.a)}generateReadonly(e,r,o,i,s,l){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,r)}};var Kb=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,Rf=/[a-z_0-9]+/gi,X=class extends le{constructor(e,r,o,i,s){super(s);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=s===void 0,this.isInterface=!1,this.parse(e,r,o,i)}getShared(e,r){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}}getIncludeByName(e){if(this.includes){let r=this.includes.length;for(;r--;)if(this.includes[r].name===e)return this.includes[r]}}generate(e,r,o,i,s){let l,c=0,p=this.src;if(this.includes)for(let u=0;u<this.includes.length;u++)e.include(this.includes[u],this);for(let u in this.extensions)e.extensions[u]=!0;let a=[];for(;l=Rf.exec(this.src);)a.push(l);for(let u=0;u<a.length;u++){let d=a[u],f=d[0],m=this.isMethod?!this.getInputByName(f):!0,h=f;if(this.keywords[f]||this.useKeywords&&m&&rt.containsKeyword(f)){let g=this.keywords[f];if(!g){let x=rt.getKeywordData(f);x.cache&&(g=e.keywords[f]),g=g||rt.getKeyword(f,e),x.cache&&(e.keywords[f]=g)}h=g.build(e)}f!==h&&p[d.index+c-1]!=="."&&(p=p.substring(0,d.index+c)+h+p.substring(d.index+f.length+c),c+=h.length-f.length),this.getIncludeByName(h)===void 0&&rt.contains(h)&&e.include(rt.get(h))}return r==="source"?p:this.isMethod?(this.isInterface||e.include(this,void 0,p),this.name):e.format("( "+p+" )",this.getType(e),r)}parse(e,r,o,i){if(this.src=e||"",this.includes=r??[],this.extensions=o??{},this.keywords=i??{},this.isMethod){let s=Kb.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(Rf);if(l){let c=0;for(;c<l.length;){let p=l[c++],a;p==="in"||p==="out"||p==="inout"?a=l[c++]:(a=p,p="");let u=l[c++];this.inputs.push({name:u,type:a,qualifier:p})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var Zb=/^([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,i,s){this.src=e||"";let l,c,p="",a=Zb.exec(e);this.useDefine=s??this.src.charAt(0)==="#",a&&a.length>1?(c=a[1],l=a[2],p=a[3]):(l=this.src,c="f"),this.name=l,this.type=c,this.value=p}build(e,r){if(r==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return e.include(this),e.format(this.name,this.getType(e),r)}generate(e,r,o,i,s){return e.format(this.name,this.getType(e),r)}},Se=Wl;Se.PI="PI",Se.PI2="PI2",Se.RECIPROCAL_PI="RECIPROCAL_PI",Se.RECIPROCAL_PI2="RECIPROCAL_PI2",Se.LOG2="LOG2",Se.EPSILON="EPSILON";var Qb=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
2
2
  )*?)}`,"gim"),Jb=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Sn=class extends le{constructor(e=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(e)}getType(e){return e.getTypeByFormat(this.name)}getInputByName(e){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}generate(e,r,o,i,s){return r==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),r)}parse(e=""){this.src=e,this.inputs=[];let r=Qb.exec(e);if(r){let o=r[2],i;for(;i=Jb.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=r[1]}else this.name="";this.type=this.name}};var wn=class extends le{constructor(e){super("v2",{shared:!1});this.nodeType="UV";this.index=e??0}generate(e,r){e.requires.uv[this.index]=!0;let o=this.index>0?this.index+1:"",i=e.isShader("vertex")?"uv"+o:"vUv"+o;return e.format(i,this.getType(e),r)}};rt.addKeyword("uv",function(){return new wn});rt.addKeyword("uv2",function(){return new wn(1)});var ga=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 ga.LinearEncoding:return["Linear"];case ga.sRGBEncoding:return["sRGB"];default:return[]}}generate(e,r){let o=this.input.build(e,"v4"),i=this.getType(e),s=To.Nodes[this.method],l=e.include(s);if(l===To.LINEAR_TO_LINEAR)return e.format(o,i,r);if(s.inputs?.length===2){let c=this.factor.build(e,"f");return e.format(l+"( "+o+", "+c+" )",i,r)}else return e.format(l+"( "+o+" )",i,r)}fromEncoding(e){let r=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]}},vt=To;vt.Nodes={LinearToLinear:new X(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
3
3
  `)),sRGBToLinear:new X(["vec4 sRGBToLinear( in vec4 value ) {"," return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );","}"].join(`
4
4
  `)),LinearTosRGB:new X(["vec4 LinearTosRGB( in vec4 value ) {"," return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );","}"].join(`