@splinetool/loader 0.9.125 → 0.9.127

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,16 +1,16 @@
1
- var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDescriptor;var Sv=Object.getOwnPropertyNames;var wv=Object.getPrototypeOf,Tv=Object.prototype.hasOwnProperty;var Cc=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Gp=(r,t)=>{for(var e in t)bs(r,e,{get:t[e],enumerable:!0})},Up=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Sv(t))!Tv.call(r,o)&&o!==e&&bs(r,o,{get:()=>t[o],enumerable:!(n=bv(t,o))||n.enumerable});return r};var Vp=(r,t,e)=>(e=r!=null?xv(wv(r)):{},Up(t||!r||!r.__esModule?bs(e,"default",{value:r,enumerable:!0}):e,r)),Cv=r=>Up(bs({},"__esModule",{value:!0}),r);var Qu=Cc(()=>{});var C0=Cc((gc,T0)=>{(function(r,t){typeof gc=="object"&&typeof T0<"u"?t(gc):typeof define=="function"&&define.amd?define(["exports"],t):t((r=typeof globalThis<"u"?globalThis:r||self).SVDJS={})})(gc,function(r){"use strict";r.SVD=function(t,e,n,o,i){if(e=e===void 0||e,n=n===void 0||n,i=1e-64/(o=o||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var a,s,l,u,c,p,f,d,h,m,g,v,x=t[0].length,b=t.length;if(b<x)throw new TypeError("Invalid matrix: m < n");for(var w=[],S=[],_=[],T=e==="f"?b:x,y=m=f=0;y<b;y++)S[y]=new Array(T).fill(0);for(y=0;y<x;y++)_[y]=new Array(x).fill(0);var O,A=new Array(x).fill(0);for(y=0;y<b;y++)for(a=0;a<x;a++)S[y][a]=t[y][a];for(y=0;y<x;y++){for(w[y]=f,h=0,l=y+1,a=y;a<b;a++)h+=Math.pow(S[a][y],2);if(h<i)f=0;else for(d=(p=S[y][y])*(f=p<0?Math.sqrt(h):-Math.sqrt(h))-h,S[y][y]=p-f,a=l;a<x;a++){for(h=0,s=y;s<b;s++)h+=S[s][y]*S[s][a];for(p=h/d,s=y;s<b;s++)S[s][a]=S[s][a]+p*S[s][y]}for(A[y]=f,h=0,a=l;a<x;a++)h+=Math.pow(S[y][a],2);if(h<i)f=0;else{for(d=(p=S[y][y+1])*(f=p<0?Math.sqrt(h):-Math.sqrt(h))-h,S[y][y+1]=p-f,a=l;a<x;a++)w[a]=S[y][a]/d;for(a=l;a<b;a++){for(h=0,s=l;s<x;s++)h+=S[a][s]*S[y][s];for(s=l;s<x;s++)S[a][s]=S[a][s]+h*w[s]}}m<(g=Math.abs(A[y])+Math.abs(w[y]))&&(m=g)}if(n)for(y=x-1;0<=y;y--){if(f!==0){for(d=S[y][y+1]*f,a=l;a<x;a++)_[a][y]=S[y][a]/d;for(a=l;a<x;a++){for(h=0,s=l;s<x;s++)h+=S[y][s]*_[s][a];for(s=l;s<x;s++)_[s][a]=_[s][a]+h*_[s][y]}}for(a=l;a<x;a++)_[y][a]=0,_[a][y]=0;_[y][y]=1,f=w[y],l=y}if(e){if(e==="f")for(y=x;y<b;y++){for(a=x;a<b;a++)S[y][a]=0;S[y][y]=1}for(y=x-1;0<=y;y--){for(l=y+1,f=A[y],a=l;a<T;a++)S[y][a]=0;if(f!==0){for(d=S[y][y]*f,a=l;a<T;a++){for(h=0,s=l;s<b;s++)h+=S[s][y]*S[s][a];for(p=h/d,s=y;s<b;s++)S[s][a]=S[s][a]+p*S[s][y]}for(a=y;a<b;a++)S[a][y]=S[a][y]/f}else for(a=y;a<b;a++)S[a][y]=0;S[y][y]=S[y][y]+1}}for(o*=m,s=x-1;0<=s;s--)for(var I=0;I<50;I++){for(O=!1,l=s;0<=l;l--){if(Math.abs(w[l])<=o){O=!0;break}if(Math.abs(A[l-1])<=o)break}if(!O){for(c=0,u=l-(h=1),y=l;y<s+1&&(p=h*w[y],w[y]=c*w[y],!(Math.abs(p)<=o));y++)if(f=A[y],A[y]=Math.sqrt(p*p+f*f),c=f/(d=A[y]),h=-p/d,e)for(a=0;a<b;a++)g=S[a][u],v=S[a][y],S[a][u]=g*c+v*h,S[a][y]=-g*h+v*c}if(v=A[s],l===s){if(v<0&&(A[s]=-v,n))for(a=0;a<x;a++)_[a][s]=-_[a][s];break}for(m=A[l],p=(((g=A[s-1])-v)*(g+v)+((f=w[s-1])-(d=w[s]))*(f+d))/(2*d*g),f=Math.sqrt(p*p+1),p=((m-v)*(m+v)+d*(g/(p<0?p-f:p+f)-d))/m,y=l+(h=c=1);y<s+1;y++){if(f=w[y],g=A[y],d=h*f,f*=c,v=Math.sqrt(p*p+d*d),p=m*(c=p/(w[y-1]=v))+f*(h=d/v),f=-m*h+f*c,d=g*h,g*=c,n)for(a=0;a<x;a++)m=_[a][y-1],v=_[a][y],_[a][y-1]=m*c+v*h,_[a][y]=-m*h+v*c;if(v=Math.sqrt(p*p+d*d),p=(c=p/(A[y-1]=v))*f+(h=d/v)*g,m=-h*f+c*g,e)for(a=0;a<b;a++)g=S[a][y-1],v=S[a][y],S[a][y-1]=g*c+v*h,S[a][y]=-g*h+v*c}w[l]=0,w[s]=p,A[s]=m}for(y=0;y<x;y++)A[y]<o&&(A[y]=0);return{u:S,q:A,v:_}},r.VERSION="1.1.1",Object.defineProperty(r,"__esModule",{value:!0})})});var k0=Cc(yc=>{(function(){"use strict";var r=function(){this.init()};r.prototype={init:function(){var c=this||t;return c._counter=1e3,c._html5AudioPool=[],c.html5PoolSize=10,c._codecs={},c._howls=[],c._muted=!1,c._volume=1,c._canPlayEvent="canplaythrough",c._navigator=typeof window<"u"&&window.navigator?window.navigator:null,c.masterGain=null,c.noAudio=!1,c.usingWebAudio=!0,c.autoSuspend=!0,c.ctx=null,c.autoUnlock=!0,c._setup(),c},volume:function(c){var p=this||t;if(c=parseFloat(c),p.ctx||u(),typeof c<"u"&&c>=0&&c<=1){if(p._volume=c,p._muted)return p;p.usingWebAudio&&p.masterGain.gain.setValueAtTime(c,t.ctx.currentTime);for(var f=0;f<p._howls.length;f++)if(!p._howls[f]._webAudio)for(var d=p._howls[f]._getSoundIds(),h=0;h<d.length;h++){var m=p._howls[f]._soundById(d[h]);m&&m._node&&(m._node.volume=m._volume*c)}return p}return p._volume},mute:function(c){var p=this||t;p.ctx||u(),p._muted=c,p.usingWebAudio&&p.masterGain.gain.setValueAtTime(c?0:p._volume,t.ctx.currentTime);for(var f=0;f<p._howls.length;f++)if(!p._howls[f]._webAudio)for(var d=p._howls[f]._getSoundIds(),h=0;h<d.length;h++){var m=p._howls[f]._soundById(d[h]);m&&m._node&&(m._node.muted=c?!0:m._muted)}return p},stop:function(){for(var c=this||t,p=0;p<c._howls.length;p++)c._howls[p].stop();return c},unload:function(){for(var c=this||t,p=c._howls.length-1;p>=0;p--)c._howls[p].unload();return c.usingWebAudio&&c.ctx&&typeof c.ctx.close<"u"&&(c.ctx.close(),c.ctx=null,u()),c},codecs:function(c){return(this||t)._codecs[c.replace(/^x-/,"")]},_setup:function(){var c=this||t;if(c.state=c.ctx&&c.ctx.state||"suspended",c._autoSuspend(),!c.usingWebAudio)if(typeof Audio<"u")try{var p=new Audio;typeof p.oncanplaythrough>"u"&&(c._canPlayEvent="canplay")}catch{c.noAudio=!0}else c.noAudio=!0;try{var p=new Audio;p.muted&&(c.noAudio=!0)}catch{}return c.noAudio||c._setupCodecs(),c},_setupCodecs:function(){var c=this||t,p=null;try{p=typeof Audio<"u"?new Audio:null}catch{return c}if(!p||typeof p.canPlayType!="function")return c;var f=p.canPlayType("audio/mpeg;").replace(/^no$/,""),d=c._navigator?c._navigator.userAgent:"",h=d.match(/OPR\/([0-6].)/g),m=h&&parseInt(h[0].split("/")[1],10)<33,g=d.indexOf("Safari")!==-1&&d.indexOf("Chrome")===-1,v=d.match(/Version\/(.*?) /),x=g&&v&&parseInt(v[1],10)<15;return c._codecs={mp3:!!(!m&&(f||p.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!f,opus:!!p.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!p.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!p.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(p.canPlayType('audio/wav; codecs="1"')||p.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!p.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!p.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(p.canPlayType("audio/x-m4a;")||p.canPlayType("audio/m4a;")||p.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(p.canPlayType("audio/x-m4b;")||p.canPlayType("audio/m4b;")||p.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(p.canPlayType("audio/x-mp4;")||p.canPlayType("audio/mp4;")||p.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!x&&p.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!x&&p.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!p.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(p.canPlayType("audio/x-flac;")||p.canPlayType("audio/flac;")).replace(/^no$/,"")},c},_unlockAudio:function(){var c=this||t;if(!(c._audioUnlocked||!c.ctx)){c._audioUnlocked=!1,c.autoUnlock=!1,!c._mobileUnloaded&&c.ctx.sampleRate!==44100&&(c._mobileUnloaded=!0,c.unload()),c._scratchBuffer=c.ctx.createBuffer(1,1,22050);var p=function(f){for(;c._html5AudioPool.length<c.html5PoolSize;)try{var d=new Audio;d._unlocked=!0,c._releaseHtml5Audio(d)}catch{c.noAudio=!0;break}for(var h=0;h<c._howls.length;h++)if(!c._howls[h]._webAudio)for(var m=c._howls[h]._getSoundIds(),g=0;g<m.length;g++){var v=c._howls[h]._soundById(m[g]);v&&v._node&&!v._node._unlocked&&(v._node._unlocked=!0,v._node.load())}c._autoResume();var x=c.ctx.createBufferSource();x.buffer=c._scratchBuffer,x.connect(c.ctx.destination),typeof x.start>"u"?x.noteOn(0):x.start(0),typeof c.ctx.resume=="function"&&c.ctx.resume(),x.onended=function(){x.disconnect(0),c._audioUnlocked=!0,document.removeEventListener("touchstart",p,!0),document.removeEventListener("touchend",p,!0),document.removeEventListener("click",p,!0),document.removeEventListener("keydown",p,!0);for(var b=0;b<c._howls.length;b++)c._howls[b]._emit("unlock")}};return document.addEventListener("touchstart",p,!0),document.addEventListener("touchend",p,!0),document.addEventListener("click",p,!0),document.addEventListener("keydown",p,!0),c}},_obtainHtml5Audio:function(){var c=this||t;if(c._html5AudioPool.length)return c._html5AudioPool.pop();var p=new Audio().play();return p&&typeof Promise<"u"&&(p instanceof Promise||typeof p.then=="function")&&p.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(c){var p=this||t;return c._unlocked&&p._html5AudioPool.push(c),p},_autoSuspend:function(){var c=this;if(!(!c.autoSuspend||!c.ctx||typeof c.ctx.suspend>"u"||!t.usingWebAudio)){for(var p=0;p<c._howls.length;p++)if(c._howls[p]._webAudio){for(var f=0;f<c._howls[p]._sounds.length;f++)if(!c._howls[p]._sounds[f]._paused)return c}return c._suspendTimer&&clearTimeout(c._suspendTimer),c._suspendTimer=setTimeout(function(){if(!!c.autoSuspend){c._suspendTimer=null,c.state="suspending";var d=function(){c.state="suspended",c._resumeAfterSuspend&&(delete c._resumeAfterSuspend,c._autoResume())};c.ctx.suspend().then(d,d)}},3e4),c}},_autoResume:function(){var c=this;if(!(!c.ctx||typeof c.ctx.resume>"u"||!t.usingWebAudio))return c.state==="running"&&c.ctx.state!=="interrupted"&&c._suspendTimer?(clearTimeout(c._suspendTimer),c._suspendTimer=null):c.state==="suspended"||c.state==="running"&&c.ctx.state==="interrupted"?(c.ctx.resume().then(function(){c.state="running";for(var p=0;p<c._howls.length;p++)c._howls[p]._emit("resume")}),c._suspendTimer&&(clearTimeout(c._suspendTimer),c._suspendTimer=null)):c.state==="suspending"&&(c._resumeAfterSuspend=!0),c}};var t=new r,e=function(c){var p=this;if(!c.src||c.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}p.init(c)};e.prototype={init:function(c){var p=this;return t.ctx||u(),p._autoplay=c.autoplay||!1,p._format=typeof c.format!="string"?c.format:[c.format],p._html5=c.html5||!1,p._muted=c.mute||!1,p._loop=c.loop||!1,p._pool=c.pool||5,p._preload=typeof c.preload=="boolean"||c.preload==="metadata"?c.preload:!0,p._rate=c.rate||1,p._sprite=c.sprite||{},p._src=typeof c.src!="string"?c.src:[c.src],p._volume=c.volume!==void 0?c.volume:1,p._xhr={method:c.xhr&&c.xhr.method?c.xhr.method:"GET",headers:c.xhr&&c.xhr.headers?c.xhr.headers:null,withCredentials:c.xhr&&c.xhr.withCredentials?c.xhr.withCredentials:!1},p._duration=0,p._state="unloaded",p._sounds=[],p._endTimers={},p._queue=[],p._playLock=!1,p._onend=c.onend?[{fn:c.onend}]:[],p._onfade=c.onfade?[{fn:c.onfade}]:[],p._onload=c.onload?[{fn:c.onload}]:[],p._onloaderror=c.onloaderror?[{fn:c.onloaderror}]:[],p._onplayerror=c.onplayerror?[{fn:c.onplayerror}]:[],p._onpause=c.onpause?[{fn:c.onpause}]:[],p._onplay=c.onplay?[{fn:c.onplay}]:[],p._onstop=c.onstop?[{fn:c.onstop}]:[],p._onmute=c.onmute?[{fn:c.onmute}]:[],p._onvolume=c.onvolume?[{fn:c.onvolume}]:[],p._onrate=c.onrate?[{fn:c.onrate}]:[],p._onseek=c.onseek?[{fn:c.onseek}]:[],p._onunlock=c.onunlock?[{fn:c.onunlock}]:[],p._onresume=[],p._webAudio=t.usingWebAudio&&!p._html5,typeof t.ctx<"u"&&t.ctx&&t.autoUnlock&&t._unlockAudio(),t._howls.push(p),p._autoplay&&p._queue.push({event:"play",action:function(){p.play()}}),p._preload&&p._preload!=="none"&&p.load(),p},load:function(){var c=this,p=null;if(t.noAudio){c._emit("loaderror",null,"No audio support.");return}typeof c._src=="string"&&(c._src=[c._src]);for(var f=0;f<c._src.length;f++){var d,h;if(c._format&&c._format[f])d=c._format[f];else{if(h=c._src[f],typeof h!="string"){c._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}d=/^data:audio\/([^;,]+);/i.exec(h),d||(d=/\.([^.]+)$/.exec(h.split("?",1)[0])),d&&(d=d[1].toLowerCase())}if(d||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),d&&t.codecs(d)){p=c._src[f];break}}if(!p){c._emit("loaderror",null,"No codec support for selected audio sources.");return}return c._src=p,c._state="loading",window.location.protocol==="https:"&&p.slice(0,5)==="http:"&&(c._html5=!0,c._webAudio=!1),new n(c),c._webAudio&&i(c),c},play:function(c,p){var f=this,d=null;if(typeof c=="number")d=c,c=null;else{if(typeof c=="string"&&f._state==="loaded"&&!f._sprite[c])return null;if(typeof c>"u"&&(c="__default",!f._playLock)){for(var h=0,m=0;m<f._sounds.length;m++)f._sounds[m]._paused&&!f._sounds[m]._ended&&(h++,d=f._sounds[m]._id);h===1?c=null:d=null}}var g=d?f._soundById(d):f._inactiveSound();if(!g)return null;if(d&&!c&&(c=g._sprite||"__default"),f._state!=="loaded"){g._sprite=c,g._ended=!1;var v=g._id;return f._queue.push({event:"play",action:function(){f.play(v)}}),v}if(d&&!g._paused)return p||f._loadQueue("play"),g._id;f._webAudio&&t._autoResume();var x=Math.max(0,g._seek>0?g._seek:f._sprite[c][0]/1e3),b=Math.max(0,(f._sprite[c][0]+f._sprite[c][1])/1e3-x),w=b*1e3/Math.abs(g._rate),S=f._sprite[c][0]/1e3,_=(f._sprite[c][0]+f._sprite[c][1])/1e3;g._sprite=c,g._ended=!1;var T=function(){g._paused=!1,g._seek=x,g._start=S,g._stop=_,g._loop=!!(g._loop||f._sprite[c][2])};if(x>=_){f._ended(g);return}var y=g._node;if(f._webAudio){var O=function(){f._playLock=!1,T(),f._refreshBuffer(g);var N=g._muted||f._muted?0:g._volume;y.gain.setValueAtTime(N,t.ctx.currentTime),g._playStart=t.ctx.currentTime,typeof y.bufferSource.start>"u"?g._loop?y.bufferSource.noteGrainOn(0,x,86400):y.bufferSource.noteGrainOn(0,x,b):g._loop?y.bufferSource.start(0,x,86400):y.bufferSource.start(0,x,b),w!==1/0&&(f._endTimers[g._id]=setTimeout(f._ended.bind(f,g),w)),p||setTimeout(function(){f._emit("play",g._id),f._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?O():(f._playLock=!0,f.once("resume",O),f._clearTimer(g._id))}else{var A=function(){y.currentTime=x,y.muted=g._muted||f._muted||t._muted||y.muted,y.volume=g._volume*t.volume(),y.playbackRate=g._rate;try{var N=y.play();if(N&&typeof Promise<"u"&&(N instanceof Promise||typeof N.then=="function")?(f._playLock=!0,T(),N.then(function(){f._playLock=!1,y._unlocked=!0,p?f._loadQueue():f._emit("play",g._id)}).catch(function(){f._playLock=!1,f._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})):p||(f._playLock=!1,T(),f._emit("play",g._id)),y.playbackRate=g._rate,y.paused){f._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}c!=="__default"||g._loop?f._endTimers[g._id]=setTimeout(f._ended.bind(f,g),w):(f._endTimers[g._id]=function(){f._ended(g),y.removeEventListener("ended",f._endTimers[g._id],!1)},y.addEventListener("ended",f._endTimers[g._id],!1))}catch(P){f._emit("playerror",g._id,P)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=f._src,y.load());var I=window&&window.ejecta||!y.readyState&&t._navigator.isCocoonJS;if(y.readyState>=3||I)A();else{f._playLock=!0,f._state="loading";var C=function(){f._state="loaded",A(),y.removeEventListener(t._canPlayEvent,C,!1)};y.addEventListener(t._canPlayEvent,C,!1),f._clearTimer(g._id)}}return g._id},pause:function(c){var p=this;if(p._state!=="loaded"||p._playLock)return p._queue.push({event:"pause",action:function(){p.pause(c)}}),p;for(var f=p._getSoundIds(c),d=0;d<f.length;d++){p._clearTimer(f[d]);var h=p._soundById(f[d]);if(h&&!h._paused&&(h._seek=p.seek(f[d]),h._rateSeek=0,h._paused=!0,p._stopFade(f[d]),h._node))if(p._webAudio){if(!h._node.bufferSource)continue;typeof h._node.bufferSource.stop>"u"?h._node.bufferSource.noteOff(0):h._node.bufferSource.stop(0),p._cleanBuffer(h._node)}else(!isNaN(h._node.duration)||h._node.duration===1/0)&&h._node.pause();arguments[1]||p._emit("pause",h?h._id:null)}return p},stop:function(c,p){var f=this;if(f._state!=="loaded"||f._playLock)return f._queue.push({event:"stop",action:function(){f.stop(c)}}),f;for(var d=f._getSoundIds(c),h=0;h<d.length;h++){f._clearTimer(d[h]);var m=f._soundById(d[h]);m&&(m._seek=m._start||0,m._rateSeek=0,m._paused=!0,m._ended=!0,f._stopFade(d[h]),m._node&&(f._webAudio?m._node.bufferSource&&(typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),f._cleanBuffer(m._node)):(!isNaN(m._node.duration)||m._node.duration===1/0)&&(m._node.currentTime=m._start||0,m._node.pause(),m._node.duration===1/0&&f._clearSound(m._node))),p||f._emit("stop",m._id))}return f},mute:function(c,p){var f=this;if(f._state!=="loaded"||f._playLock)return f._queue.push({event:"mute",action:function(){f.mute(c,p)}}),f;if(typeof p>"u")if(typeof c=="boolean")f._muted=c;else return f._muted;for(var d=f._getSoundIds(p),h=0;h<d.length;h++){var m=f._soundById(d[h]);m&&(m._muted=c,m._interval&&f._stopFade(m._id),f._webAudio&&m._node?m._node.gain.setValueAtTime(c?0:m._volume,t.ctx.currentTime):m._node&&(m._node.muted=t._muted?!0:c),f._emit("mute",m._id))}return f},volume:function(){var c=this,p=arguments,f,d;if(p.length===0)return c._volume;if(p.length===1||p.length===2&&typeof p[1]>"u"){var h=c._getSoundIds(),m=h.indexOf(p[0]);m>=0?d=parseInt(p[0],10):f=parseFloat(p[0])}else p.length>=2&&(f=parseFloat(p[0]),d=parseInt(p[1],10));var g;if(typeof f<"u"&&f>=0&&f<=1){if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"volume",action:function(){c.volume.apply(c,p)}}),c;typeof d>"u"&&(c._volume=f),d=c._getSoundIds(d);for(var v=0;v<d.length;v++)g=c._soundById(d[v]),g&&(g._volume=f,p[2]||c._stopFade(d[v]),c._webAudio&&g._node&&!g._muted?g._node.gain.setValueAtTime(f,t.ctx.currentTime):g._node&&!g._muted&&(g._node.volume=f*t.volume()),c._emit("volume",g._id))}else return g=d?c._soundById(d):c._sounds[0],g?g._volume:0;return c},fade:function(c,p,f,d){var h=this;if(h._state!=="loaded"||h._playLock)return h._queue.push({event:"fade",action:function(){h.fade(c,p,f,d)}}),h;c=Math.min(Math.max(0,parseFloat(c)),1),p=Math.min(Math.max(0,parseFloat(p)),1),f=parseFloat(f),h.volume(c,d);for(var m=h._getSoundIds(d),g=0;g<m.length;g++){var v=h._soundById(m[g]);if(v){if(d||h._stopFade(m[g]),h._webAudio&&!v._muted){var x=t.ctx.currentTime,b=x+f/1e3;v._volume=c,v._node.gain.setValueAtTime(c,x),v._node.gain.linearRampToValueAtTime(p,b)}h._startFadeInterval(v,c,p,f,m[g],typeof d>"u")}}return h},_startFadeInterval:function(c,p,f,d,h,m){var g=this,v=p,x=f-p,b=Math.abs(x/.01),w=Math.max(4,b>0?d/b:d),S=Date.now();c._fadeTo=f,c._interval=setInterval(function(){var _=(Date.now()-S)/d;S=Date.now(),v+=x*_,v=Math.round(v*100)/100,x<0?v=Math.max(f,v):v=Math.min(f,v),g._webAudio?c._volume=v:g.volume(v,c._id,!0),m&&(g._volume=v),(f<p&&v<=f||f>p&&v>=f)&&(clearInterval(c._interval),c._interval=null,c._fadeTo=null,g.volume(f,c._id),g._emit("fade",c._id))},w)},_stopFade:function(c){var p=this,f=p._soundById(c);return f&&f._interval&&(p._webAudio&&f._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(f._interval),f._interval=null,p.volume(f._fadeTo,c),f._fadeTo=null,p._emit("fade",c)),p},loop:function(){var c=this,p=arguments,f,d,h;if(p.length===0)return c._loop;if(p.length===1)if(typeof p[0]=="boolean")f=p[0],c._loop=f;else return h=c._soundById(parseInt(p[0],10)),h?h._loop:!1;else p.length===2&&(f=p[0],d=parseInt(p[1],10));for(var m=c._getSoundIds(d),g=0;g<m.length;g++)h=c._soundById(m[g]),h&&(h._loop=f,c._webAudio&&h._node&&h._node.bufferSource&&(h._node.bufferSource.loop=f,f&&(h._node.bufferSource.loopStart=h._start||0,h._node.bufferSource.loopEnd=h._stop,c.playing(m[g])&&(c.pause(m[g],!0),c.play(m[g],!0)))));return c},rate:function(){var c=this,p=arguments,f,d;if(p.length===0)d=c._sounds[0]._id;else if(p.length===1){var h=c._getSoundIds(),m=h.indexOf(p[0]);m>=0?d=parseInt(p[0],10):f=parseFloat(p[0])}else p.length===2&&(f=parseFloat(p[0]),d=parseInt(p[1],10));var g;if(typeof f=="number"){if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"rate",action:function(){c.rate.apply(c,p)}}),c;typeof d>"u"&&(c._rate=f),d=c._getSoundIds(d);for(var v=0;v<d.length;v++)if(g=c._soundById(d[v]),g){c.playing(d[v])&&(g._rateSeek=c.seek(d[v]),g._playStart=c._webAudio?t.ctx.currentTime:g._playStart),g._rate=f,c._webAudio&&g._node&&g._node.bufferSource?g._node.bufferSource.playbackRate.setValueAtTime(f,t.ctx.currentTime):g._node&&(g._node.playbackRate=f);var x=c.seek(d[v]),b=(c._sprite[g._sprite][0]+c._sprite[g._sprite][1])/1e3-x,w=b*1e3/Math.abs(g._rate);(c._endTimers[d[v]]||!g._paused)&&(c._clearTimer(d[v]),c._endTimers[d[v]]=setTimeout(c._ended.bind(c,g),w)),c._emit("rate",g._id)}}else return g=c._soundById(d),g?g._rate:c._rate;return c},seek:function(){var c=this,p=arguments,f,d;if(p.length===0)c._sounds.length&&(d=c._sounds[0]._id);else if(p.length===1){var h=c._getSoundIds(),m=h.indexOf(p[0]);m>=0?d=parseInt(p[0],10):c._sounds.length&&(d=c._sounds[0]._id,f=parseFloat(p[0]))}else p.length===2&&(f=parseFloat(p[0]),d=parseInt(p[1],10));if(typeof d>"u")return 0;if(typeof f=="number"&&(c._state!=="loaded"||c._playLock))return c._queue.push({event:"seek",action:function(){c.seek.apply(c,p)}}),c;var g=c._soundById(d);if(g)if(typeof f=="number"&&f>=0){var v=c.playing(d);v&&c.pause(d,!0),g._seek=f,g._ended=!1,c._clearTimer(d),!c._webAudio&&g._node&&!isNaN(g._node.duration)&&(g._node.currentTime=f);var x=function(){v&&c.play(d,!0),c._emit("seek",d)};if(v&&!c._webAudio){var b=function(){c._playLock?setTimeout(b,0):x()};setTimeout(b,0)}else x()}else if(c._webAudio){var w=c.playing(d)?t.ctx.currentTime-g._playStart:0,S=g._rateSeek?g._rateSeek-g._seek:0;return g._seek+(S+w*Math.abs(g._rate))}else return g._node.currentTime;return c},playing:function(c){var p=this;if(typeof c=="number"){var f=p._soundById(c);return f?!f._paused:!1}for(var d=0;d<p._sounds.length;d++)if(!p._sounds[d]._paused)return!0;return!1},duration:function(c){var p=this,f=p._duration,d=p._soundById(c);return d&&(f=p._sprite[d._sprite][1]/1e3),f},state:function(){return this._state},unload:function(){for(var c=this,p=c._sounds,f=0;f<p.length;f++)p[f]._paused||c.stop(p[f]._id),c._webAudio||(c._clearSound(p[f]._node),p[f]._node.removeEventListener("error",p[f]._errorFn,!1),p[f]._node.removeEventListener(t._canPlayEvent,p[f]._loadFn,!1),p[f]._node.removeEventListener("ended",p[f]._endFn,!1),t._releaseHtml5Audio(p[f]._node)),delete p[f]._node,c._clearTimer(p[f]._id);var d=t._howls.indexOf(c);d>=0&&t._howls.splice(d,1);var h=!0;for(f=0;f<t._howls.length;f++)if(t._howls[f]._src===c._src||c._src.indexOf(t._howls[f]._src)>=0){h=!1;break}return o&&h&&delete o[c._src],t.noAudio=!1,c._state="unloaded",c._sounds=[],c=null,null},on:function(c,p,f,d){var h=this,m=h["_on"+c];return typeof p=="function"&&m.push(d?{id:f,fn:p,once:d}:{id:f,fn:p}),h},off:function(c,p,f){var d=this,h=d["_on"+c],m=0;if(typeof p=="number"&&(f=p,p=null),p||f)for(m=0;m<h.length;m++){var g=f===h[m].id;if(p===h[m].fn&&g||!p&&g){h.splice(m,1);break}}else if(c)d["_on"+c]=[];else{var v=Object.keys(d);for(m=0;m<v.length;m++)v[m].indexOf("_on")===0&&Array.isArray(d[v[m]])&&(d[v[m]]=[])}return d},once:function(c,p,f){var d=this;return d.on(c,p,f,1),d},_emit:function(c,p,f){for(var d=this,h=d["_on"+c],m=h.length-1;m>=0;m--)(!h[m].id||h[m].id===p||c==="load")&&(setTimeout(function(g){g.call(this,p,f)}.bind(d,h[m].fn),0),h[m].once&&d.off(c,h[m].fn,h[m].id));return d._loadQueue(c),d},_loadQueue:function(c){var p=this;if(p._queue.length>0){var f=p._queue[0];f.event===c&&(p._queue.shift(),p._loadQueue()),c||f.action()}return p},_ended:function(c){var p=this,f=c._sprite;if(!p._webAudio&&c._node&&!c._node.paused&&!c._node.ended&&c._node.currentTime<c._stop)return setTimeout(p._ended.bind(p,c),100),p;var d=!!(c._loop||p._sprite[f][2]);if(p._emit("end",c._id),!p._webAudio&&d&&p.stop(c._id,!0).play(c._id),p._webAudio&&d){p._emit("play",c._id),c._seek=c._start||0,c._rateSeek=0,c._playStart=t.ctx.currentTime;var h=(c._stop-c._start)*1e3/Math.abs(c._rate);p._endTimers[c._id]=setTimeout(p._ended.bind(p,c),h)}return p._webAudio&&!d&&(c._paused=!0,c._ended=!0,c._seek=c._start||0,c._rateSeek=0,p._clearTimer(c._id),p._cleanBuffer(c._node),t._autoSuspend()),!p._webAudio&&!d&&p.stop(c._id,!0),p},_clearTimer:function(c){var p=this;if(p._endTimers[c]){if(typeof p._endTimers[c]!="function")clearTimeout(p._endTimers[c]);else{var f=p._soundById(c);f&&f._node&&f._node.removeEventListener("ended",p._endTimers[c],!1)}delete p._endTimers[c]}return p},_soundById:function(c){for(var p=this,f=0;f<p._sounds.length;f++)if(c===p._sounds[f]._id)return p._sounds[f];return null},_inactiveSound:function(){var c=this;c._drain();for(var p=0;p<c._sounds.length;p++)if(c._sounds[p]._ended)return c._sounds[p].reset();return new n(c)},_drain:function(){var c=this,p=c._pool,f=0,d=0;if(!(c._sounds.length<p)){for(d=0;d<c._sounds.length;d++)c._sounds[d]._ended&&f++;for(d=c._sounds.length-1;d>=0;d--){if(f<=p)return;c._sounds[d]._ended&&(c._webAudio&&c._sounds[d]._node&&c._sounds[d]._node.disconnect(0),c._sounds.splice(d,1),f--)}}},_getSoundIds:function(c){var p=this;if(typeof c>"u"){for(var f=[],d=0;d<p._sounds.length;d++)f.push(p._sounds[d]._id);return f}else return[c]},_refreshBuffer:function(c){var p=this;return c._node.bufferSource=t.ctx.createBufferSource(),c._node.bufferSource.buffer=o[p._src],c._panner?c._node.bufferSource.connect(c._panner):c._node.bufferSource.connect(c._node),c._node.bufferSource.loop=c._loop,c._loop&&(c._node.bufferSource.loopStart=c._start||0,c._node.bufferSource.loopEnd=c._stop||0),c._node.bufferSource.playbackRate.setValueAtTime(c._rate,t.ctx.currentTime),p},_cleanBuffer:function(c){var p=this,f=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&c.bufferSource&&(c.bufferSource.onended=null,c.bufferSource.disconnect(0),f))try{c.bufferSource.buffer=t._scratchBuffer}catch{}return c.bufferSource=null,p},_clearSound:function(c){var p=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);p||(c.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var n=function(c){this._parent=c,this.init()};n.prototype={init:function(){var c=this,p=c._parent;return c._muted=p._muted,c._loop=p._loop,c._volume=p._volume,c._rate=p._rate,c._seek=0,c._paused=!0,c._ended=!0,c._sprite="__default",c._id=++t._counter,p._sounds.push(c),c.create(),c},create:function(){var c=this,p=c._parent,f=t._muted||c._muted||c._parent._muted?0:c._volume;return p._webAudio?(c._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),c._node.gain.setValueAtTime(f,t.ctx.currentTime),c._node.paused=!0,c._node.connect(t.masterGain)):t.noAudio||(c._node=t._obtainHtml5Audio(),c._errorFn=c._errorListener.bind(c),c._node.addEventListener("error",c._errorFn,!1),c._loadFn=c._loadListener.bind(c),c._node.addEventListener(t._canPlayEvent,c._loadFn,!1),c._endFn=c._endListener.bind(c),c._node.addEventListener("ended",c._endFn,!1),c._node.src=p._src,c._node.preload=p._preload===!0?"auto":p._preload,c._node.volume=f*t.volume(),c._node.load()),c},reset:function(){var c=this,p=c._parent;return c._muted=p._muted,c._loop=p._loop,c._volume=p._volume,c._rate=p._rate,c._seek=0,c._rateSeek=0,c._paused=!0,c._ended=!0,c._sprite="__default",c._id=++t._counter,c},_errorListener:function(){var c=this;c._parent._emit("loaderror",c._id,c._node.error?c._node.error.code:0),c._node.removeEventListener("error",c._errorFn,!1)},_loadListener:function(){var c=this,p=c._parent;p._duration=Math.ceil(c._node.duration*10)/10,Object.keys(p._sprite).length===0&&(p._sprite={__default:[0,p._duration*1e3]}),p._state!=="loaded"&&(p._state="loaded",p._emit("load"),p._loadQueue()),c._node.removeEventListener(t._canPlayEvent,c._loadFn,!1)},_endListener:function(){var c=this,p=c._parent;p._duration===1/0&&(p._duration=Math.ceil(c._node.duration*10)/10,p._sprite.__default[1]===1/0&&(p._sprite.__default[1]=p._duration*1e3),p._ended(c)),c._node.removeEventListener("ended",c._endFn,!1)}};var o={},i=function(c){var p=c._src;if(o[p]){c._duration=o[p].duration,l(c);return}if(/^data:[^;]+;base64,/.test(p)){for(var f=atob(p.split(",")[1]),d=new Uint8Array(f.length),h=0;h<f.length;++h)d[h]=f.charCodeAt(h);s(d.buffer,c)}else{var m=new XMLHttpRequest;m.open(c._xhr.method,p,!0),m.withCredentials=c._xhr.withCredentials,m.responseType="arraybuffer",c._xhr.headers&&Object.keys(c._xhr.headers).forEach(function(g){m.setRequestHeader(g,c._xhr.headers[g])}),m.onload=function(){var g=(m.status+"")[0];if(g!=="0"&&g!=="2"&&g!=="3"){c._emit("loaderror",null,"Failed loading audio file with status: "+m.status+".");return}s(m.response,c)},m.onerror=function(){c._webAudio&&(c._html5=!0,c._webAudio=!1,c._sounds=[],delete o[p],c.load())},a(m)}},a=function(c){try{c.send()}catch{c.onerror()}},s=function(c,p){var f=function(){p._emit("loaderror",null,"Decoding audio data failed.")},d=function(h){h&&p._sounds.length>0?(o[p._src]=h,l(p,h)):f()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(c).then(d).catch(f):t.ctx.decodeAudioData(c,d,f)},l=function(c,p){p&&!c._duration&&(c._duration=p.duration),Object.keys(c._sprite).length===0&&(c._sprite={__default:[0,c._duration*1e3]}),c._state!=="loaded"&&(c._state="loaded",c._emit("load"),c._loadQueue())},u=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 c=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),p=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),f=p?parseInt(p[1],10):null;if(c&&f&&f<9){var d=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!d&&(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 yc<"u"&&(yc.Howler=t,yc.Howl=e),typeof global<"u"?(global.HowlerGlobal=r,global.Howler=t,global.Howl=e,global.Sound=n):typeof window<"u"&&(window.HowlerGlobal=r,window.Howler=t,window.Howl=e,window.Sound=n)})();(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 n=e._howls.length-1;n>=0;n--)e._howls[n].stereo(t);return e},HowlerGlobal.prototype.pos=function(t,e,n){var o=this;if(!o.ctx||!o.ctx.listener)return o;if(e=typeof e!="number"?o._pos[1]:e,n=typeof n!="number"?o._pos[2]:n,typeof t=="number")o._pos=[t,e,n],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,n,o,i,a){var s=this;if(!s.ctx||!s.ctx.listener)return s;var l=s._orientation;if(e=typeof e!="number"?l[1]:e,n=typeof n!="number"?l[2]:n,o=typeof o!="number"?l[3]:o,i=typeof i!="number"?l[4]:i,a=typeof a!="number"?l[5]:a,typeof t=="number")s._orientation=[t,e,n,o,i,a],typeof s.ctx.listener.forwardX<"u"?(s.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),s.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),s.ctx.listener.forwardZ.setTargetAtTime(n,Howler.ctx.currentTime,.1),s.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),s.ctx.listener.upY.setTargetAtTime(i,Howler.ctx.currentTime,.1),s.ctx.listener.upZ.setTargetAtTime(a,Howler.ctx.currentTime,.1)):s.ctx.listener.setOrientation(t,e,n,o,i,a);else return l;return s},Howl.prototype.init=function(t){return function(e){var n=this;return n._orientation=e.orientation||[1,0,0],n._stereo=e.stereo||null,n._pos=e.pos||null,n._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},n._onstereo=e.onstereo?[{fn:e.onstereo}]:[],n._onpos=e.onpos?[{fn:e.onpos}]:[],n._onorientation=e.onorientation?[{fn:e.onorientation}]:[],t.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(t,e){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"stereo",action:function(){n.stereo(t,e)}}),n;var o=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof e>"u")if(typeof t=="number")n._stereo=t,n._pos=[t,0,0];else return n._stereo;for(var i=n._getSoundIds(e),a=0;a<i.length;a++){var s=n._soundById(i[a]);if(s)if(typeof t=="number")s._stereo=t,s._pos=[t,0,0],s._node&&(s._pannerAttr.panningModel="equalpower",(!s._panner||!s._panner.pan)&&r(s,o),o==="spatial"?typeof s._panner.positionX<"u"?(s._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),s._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),s._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):s._panner.setPosition(t,0,0):s._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),n._emit("stereo",s._id);else return s._stereo}return n},Howl.prototype.pos=function(t,e,n,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,n,o)}}),i;if(e=typeof e!="number"?0:e,n=typeof n!="number"?-.5:n,typeof o>"u")if(typeof t=="number")i._pos=[t,e,n];else return i._pos;for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var l=i._soundById(a[s]);if(l)if(typeof t=="number")l._pos=[t,e,n],l._node&&((!l._panner||l._panner.pan)&&r(l,"spatial"),typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(n,Howler.ctx.currentTime)):l._panner.setPosition(t,e,n)),i._emit("pos",l._id);else return l._pos}return i},Howl.prototype.orientation=function(t,e,n,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,n,o)}}),i;if(e=typeof e!="number"?i._orientation[1]:e,n=typeof n!="number"?i._orientation[2]:n,typeof o>"u")if(typeof t=="number")i._orientation=[t,e,n];else return i._orientation;for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var l=i._soundById(a[s]);if(l)if(typeof t=="number")l._orientation=[t,e,n],l._node&&(l._panner||(l._pos||(l._pos=i._pos||[0,0,-.5]),r(l,"spatial")),typeof l._panner.orientationX<"u"?(l._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),l._panner.orientationZ.setValueAtTime(n,Howler.ctx.currentTime)):l._panner.setOrientation(t,e,n)),i._emit("orientation",l._id);else return l._orientation}return i},Howl.prototype.pannerAttr=function(){var t=this,e=arguments,n,o,i;if(!t._webAudio)return t;if(e.length===0)return t._pannerAttr;if(e.length===1)if(typeof e[0]=="object")n=e[0],typeof o>"u"&&(n.pannerAttr||(n.pannerAttr={coneInnerAngle:n.coneInnerAngle,coneOuterAngle:n.coneOuterAngle,coneOuterGain:n.coneOuterGain,distanceModel:n.distanceModel,maxDistance:n.maxDistance,refDistance:n.refDistance,rolloffFactor:n.rolloffFactor,panningModel:n.panningModel}),t._pannerAttr={coneInnerAngle:typeof n.pannerAttr.coneInnerAngle<"u"?n.pannerAttr.coneInnerAngle:t._coneInnerAngle,coneOuterAngle:typeof n.pannerAttr.coneOuterAngle<"u"?n.pannerAttr.coneOuterAngle:t._coneOuterAngle,coneOuterGain:typeof n.pannerAttr.coneOuterGain<"u"?n.pannerAttr.coneOuterGain:t._coneOuterGain,distanceModel:typeof n.pannerAttr.distanceModel<"u"?n.pannerAttr.distanceModel:t._distanceModel,maxDistance:typeof n.pannerAttr.maxDistance<"u"?n.pannerAttr.maxDistance:t._maxDistance,refDistance:typeof n.pannerAttr.refDistance<"u"?n.pannerAttr.refDistance:t._refDistance,rolloffFactor:typeof n.pannerAttr.rolloffFactor<"u"?n.pannerAttr.rolloffFactor:t._rolloffFactor,panningModel:typeof n.pannerAttr.panningModel<"u"?n.pannerAttr.panningModel:t._panningModel});else return i=t._soundById(parseInt(e[0],10)),i?i._pannerAttr:t._pannerAttr;else e.length===2&&(n=e[0],o=parseInt(e[1],10));for(var a=t._getSoundIds(o),s=0;s<a.length;s++)if(i=t._soundById(a[s]),i){var l=i._pannerAttr;l={coneInnerAngle:typeof n.coneInnerAngle<"u"?n.coneInnerAngle:l.coneInnerAngle,coneOuterAngle:typeof n.coneOuterAngle<"u"?n.coneOuterAngle:l.coneOuterAngle,coneOuterGain:typeof n.coneOuterGain<"u"?n.coneOuterGain:l.coneOuterGain,distanceModel:typeof n.distanceModel<"u"?n.distanceModel:l.distanceModel,maxDistance:typeof n.maxDistance<"u"?n.maxDistance:l.maxDistance,refDistance:typeof n.refDistance<"u"?n.refDistance:l.refDistance,rolloffFactor:typeof n.rolloffFactor<"u"?n.rolloffFactor:l.rolloffFactor,panningModel:typeof n.panningModel<"u"?n.panningModel:l.panningModel};var u=i._panner;u?(u.coneInnerAngle=l.coneInnerAngle,u.coneOuterAngle=l.coneOuterAngle,u.coneOuterGain=l.coneOuterGain,u.distanceModel=l.distanceModel,u.maxDistance=l.maxDistance,u.refDistance=l.refDistance,u.rolloffFactor=l.rolloffFactor,u.panningModel=l.panningModel):(i._pos||(i._pos=t._pos||[0,0,-.5]),r(i,"spatial"))}return t},Sound.prototype.init=function(t){return function(){var e=this,n=e._parent;e._orientation=n._orientation,e._stereo=n._stereo,e._pos=n._pos,e._pannerAttr=n._pannerAttr,t.call(this),e._stereo?n.stereo(e._stereo):e._pos&&n.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,n=e._parent;return e._orientation=n._orientation,e._stereo=n._stereo,e._pos=n._pos,e._pannerAttr=n._pannerAttr,e._stereo?n.stereo(e._stereo):e._pos?n.pos(e._pos[0],e._pos[1],e._pos[2],e._id):e._panner&&(e._panner.disconnect(0),e._panner=void 0,n._refreshBuffer(e)),t.call(this)}}(Sound.prototype.reset);var r=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 dL={};Gp(dL,{default:()=>Sc});module.exports=Cv(dL);var wc=require("three");var He=class{modifyById(t,e){let n=this;if(n[t]===void 0)throw new Error("not expected");{let i={...n,[t]:e};return Object.setPrototypeOf(i,He.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 n=e[t.id],o;n===void 0?o={type:2,id:t.id}:o={type:1,id:t.id,data:n};let{id:i,data:a}=t,s={...e,[i]:a};return Object.setPrototypeOf(s,He.prototype),{data:s,actual:t,reverse:o}}else if(t.type===2){let{id:n}=t,o=e[n];if(o===void 0)return null;{let i={...e};return Object.setPrototypeOf(i,He.prototype),delete i[n],{data:i,actual:t,reverse:{type:1,id:n,data:o}}}}throw new Error("illegal arg")}};function Ki(r){if(r.deepFreeze!==void 0){r.deepFreeze(r);return}let t=Object.getOwnPropertyNames(r);for(let e of t){let n=r[e];n&&typeof n=="object"&&Ki(n)}return Object.freeze(r)}function zp(r,t){let e=0;for(;e<r.length&&e<t.length;){if(r[e]<t[e])return-1;if(r[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==r.length?1:0}var No=class extends Error{};function Mr(r,t,e){if(r===void 0?t===void 0?(r=0,t=10):r=t-10:t===void 0&&(t=r+10),r>t){let i=r;r=t,t=i}let n=[],o=1/(e+1);for(let i=0;i<e;i++){let a=r+(t-r)*(i+.75+Math.random()*.5)*o;n.push(a)}return n}function no(r){return r instanceof Uint8Array||r instanceof Uint16Array||r instanceof Uint32Array||r instanceof Int8Array||r instanceof Int16Array||r instanceof Int32Array||r instanceof Float32Array||r instanceof Float64Array}function jp(){return typeof process<"u"}function Hp(r,t){for(let e of r)t(e.id,e.data),Hp(e.children,t)}function Wp(r,t){t(r.id,r.data);for(let e of r.children)Wp(e,t)}var Xe=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Xe.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Ki(this[e]),e++}fillCaches0(e,n){this.objCaches.set(e.id,e),this.parentCaches.set(e.id,n);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,n){for(;e;){let o=this.parent(e);if(o===n)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,n){if(e===null)this.traverse(n);else{let o=this.get(e);o&&Wp(o,n)}}traverse(e){Hp(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,n){if(this.get(e)===void 0)throw new Error("not expected");{let i=this.parent(e),a=this.childrenArray(i),s=a.findIndex(c=>c.id===e);if(s<0)throw new Error("not expected");let l=a[s];return a=[...a],a[s]={...l,data:n},this.modifyArrayBy(i,a)}}modifyArrayBy(e,n){let o=e,i=n;for(;o!==null;){let s=i,l=o;if(o=this.parent(o),o===void 0)throw new Error;i=this.childrenArray(o);let u=i.findIndex(c=>c.id===l);if(u<0)throw new Error;i=[...i],i[u]={...i[u],children:s}}Object.setPrototypeOf(i,Xe.prototype);let a=i;return a.fillCaches(),a}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:n}){if(this.get(e)!==void 0)return!0;for(let o of n)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:n,fi:o,id:i,data:a,children:s}=e;if(n!==null&&this.get(n)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let l=n,u=this.childrenArray(l),c={fi:o,id:i,data:a,children:s};return u=[...u,c],u.sort((f,d)=>f.fi-d.fi),e.localIndex=u.indexOf(c),{data:this.modifyArrayBy(l,u),actual:e,reverse:{type:8,id:i}}}}deleteOp(e){let{id:n}=e;if(this.get(n)===null)return null;{let o=this.parent(n);if(o===void 0)return null;let i=this.childrenArray(o),a=i.findIndex(u=>u.id===n);e.localIndex=a,i=[...i];let s=i.splice(a,1)[0];return{data:this.modifyArrayBy(o,i),actual:e,reverse:{type:7,...s,parent:o}}}}moveOp(e){let{parent:n,fi:o,id:i}=e;if(n!==null&&this.get(n)===void 0)return this.deleteOp({type:8,id:i});if(n!==null){let d=n;for(;d!==null;){if(d===void 0)throw new Error;if(d===i)throw new No("cyclic tree");d=this.parent(d)}}let a=this.parent(i);if(a===void 0)return null;let s=a,l=this.childrenArray(a),u=l.findIndex(d=>d.id===i);l=[...l];let c=l.splice(u,1)[0],p=this.modifyArrayBy(a,l);a=n,l=p.childrenArray(a);let f=c.fi;return c={...c,fi:o},l=[...l,c],l.sort((d,h)=>d.fi-h.fi),e.localIndex=l.indexOf(c),p=p.modifyArrayBy(a,l),{data:p,actual:e,reverse:{type:9,parent:s,fi:f,id:i}}}previous(e,n){if(n===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===n)return o;o=i.id}return null}traverseSortNext(e){let n=this.parent(e);if(n!==void 0){let o=this.childrenArray(n),i=o.findIndex(a=>a.id===e)+1;if(i<o.length)return o[i].id;if(n)return this.traverseSortNext(n)}}sortNext(e){let n=this.childrenArray(e);return n.length>0?n[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let n=this.childrenArray(e);return n.length>0?this.traverseSortPrevious(n[n.length-1].id):e}sortPrevious(e){let n=this.parent(e);if(n!==void 0){let o=this.childrenArray(n),i=o.findIndex(a=>a.id===e)-1;return i>=0?this.traverseSortPrevious(o[i].id):n}}getAllSorted(e){let n=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&n.push({...o,...i})}n.sort((o,i)=>zp(o.sortKey,i.sortKey));for(let o of n)delete o.sortKey;return n}getWithSortKey(e){var n=e;let o=[],i=this.get(n),a=i;if(i!==void 0){for(;n;)o.splice(0,0,i.fi),n=this.parent(n),n!==null&&(i=this.get(n));return{...a,sortKey:o}}}insertBeforeHelper(e,n,o){return this.insertAfterHelper(e,this.previous(e,n),o)}insertAfterHelper(e,n,o){let i=this.childrenArray(e);if(n===null){if(i.length===0)return Mr(0,o,o);{let a=i[0].fi;return Mr(a-o,a,o)}}else{let a=this.get(n);if(a===void 0||this.parent(n)!==e)throw new Error("illegal args");let s=i.find(l=>l.fi>a.fi);if(s===void 0){let l=i[i.length-1].fi;return Mr(l,l+o,o)}else return Mr(a.fi,s.fi,o)}}};var Po;(t=>{function r(e,n){if(Array.isArray(e)){let o=n.props,i={},a=[...e],s=!1;if(o)for(let l of Object.keys(o)){let u=parseInt(l);if(isNaN(u))throw new Error("wrong index");i[l]=a[u],a[u]=o[l],s=!0}return s?{data:a,actual:n,reverse:{type:0,props:i}}:null}else{let o=n.props,i={},a={...e},s=!1;if(o)for(let l of Object.keys(o)){i[l]=a[l];let u=o[l];u===void 0?delete a[l]:a[l]=u,s=!0}return s?{data:a,actual:n,reverse:{type:0,props:i}}:null}}t.runOp=r})(Po||(Po={}));var Te=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Te.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Ki(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,n){if(this.get(e)===void 0)throw new Error("not expected");{let i=this,a=i.findIndex(u=>u.id===e);if(a<0)throw new Error("not expected");let s=i[a];return i=[...i],i[a]={...s,data:n},this.modifyArrayBy(i)}}modifyArrayBy(e){Object.setPrototypeOf(e,Te.prototype);let n=e;return jp()||n.fillCaches(),n}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:n,id:o,data:i}=e,a=this,s={fi:n,id:o,data:i};return a=[...a,s],a.sort((u,c)=>u.fi-c.fi),e.localIndex=a.indexOf(s),{data:this.modifyArrayBy(a),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:n}=e,o=this,i=o.findIndex(l=>l.id===n);if(i===-1)return null;e.localIndex=i,o=[...o];let a=o.splice(i,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...a}}}moveOp(e){let{fi:n,id:o}=e,i=this;i=[...i];let a=i.findIndex(c=>c.id===o);if(a===-1)return null;let s=i[a].fi,l={...i[a],fi:n};return i[a]=l,i.sort((c,p)=>c.fi-p.fi),e.localIndex=i.indexOf(l),{data:this.modifyArrayBy(i),actual:e,reverse:{type:6,fi:s,id:o}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let n=null;for(let o of this){if(o.id===e)return n;n=o.id}return null}insertBeforeHelper(e,n){return this.insertAfterHelper(this.previous(e),n)}insertAfterHelper(e,n){let o=this;if(e===null){if(o.length===0)return Mr(0,n,n);{let i=o[0].fi;return Mr(i-n,i,n)}}else{let i=this.get(e);if(i===void 0)throw new Error("illegal args");let a=o.find(s=>s.fi>i.fi);if(a===void 0){let s=o[o.length-1].fi;return Mr(s,s+n,n)}else return Mr(i.fi,a.fi,n)}}};var $t=class{unusedFun(t){}runOp(t){let e=[],n=this,o=0,i={};for(;o<t.path.length;){if(e.push(n),n=n===void 0?void 0:n[t.path[o]],n instanceof Xe||n instanceof Te)return null;o+=1}n={...n};for(let[l,u]of Object.entries(t.props)){let c=n[l];i[l]=c,u===void 0?delete n[l]:n[l]=u}for(;o>0;)Object.keys(n).length===0?(n={...e[o-1]},delete n[t.path[o-1]]):n={...e[o-1],[t.path[o-1]]:n},o-=1;let a=Object.setPrototypeOf(n,$t.prototype),s={...t,props:i};return{data:a,actual:t,reverse:s}}},qp;(e=>{function r(n,o){return Zi(n,o)??n}e.apply=r;function t(n,o){if(o.type===0){let i=0,a=o.path,s=n;for(;i<a.length&&s!==void 0;){if(s=Er.zoomOnce(s,a[i]),s instanceof Xe||s instanceof Te)return;i+=1}if(s===void 0)return o;if(typeof s=="string"||typeof s=="number"||no(s))return;if(s&&typeof s=="object"){let l={...o.props};for(let u of Object.keys(s))delete l[u];return{...o,props:l}}else return}else if(o.type===1||o.type===4||o.type===7){let i=Er.zoom(n,[...o.path,o.id]);if(i===void 0)return o;if(typeof i=="string"||typeof i=="number"||no(i))return;if(i&&typeof i=="object"){let a={...o.data,...i};return{...o,data:a}}else return}else return o}e.filterOp=t})(qp||(qp={}));function Xp(r,t){if(t===void 0)return;let e=!1,n=r.map(o=>{let i=o.id,a=Zi(o.data,t[i]);e=e||a!==void 0,a===void 0&&(a=o.data);let s=Xp(o.children,t);return s!==void 0?e=!0:s=o.children,{...o,id:i,data:a,children:s}});if(e)return n}function Av(r,t){if(t===void 0)return;let e=!1,n=r.map(o=>{let i=o.id,a=Zi(o.data,t[i]);return e=e||a!==void 0,a===void 0&&(a=o.data),{...o,id:i,data:a}});if(e)return Object.setPrototypeOf(n,Object.getPrototypeOf(r)),n}function Zi(r,t){if(t!==void 0){if(t instanceof Te||t instanceof Xe||typeof t=="string"||typeof t=="number"||t===null)return t;if(r instanceof Xe){let e=Xp(r,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(r)),e}else{if(r instanceof Te)return Av(r,t);if(Array.isArray(r)){let e=!1,n=r.map((o,i)=>{let a=Zi(o,t[i]);return e=e||a!==void 0,a===void 0&&(a=o),a});return e?(Object.setPrototypeOf(n,Object.getPrototypeOf(r)),n):void 0}else if(r&&typeof r=="object"){let e={},n=!1;for(let[o,i]of Object.entries(r)){let a=Zi(i,t[o]);n=n||a!==void 0,a===void 0&&(a=i),e[o]=a}return n?(Object.setPrototypeOf(e,Object.getPrototypeOf(r)),e):void 0}else return t??r}}}function Yp(r,t){let e={cur:[],result:[],len:0};return r=Qi(r,t,e)??r,[r,e.result]}function Ss(r,t){return r===null?null:(r.cur[r.len]=t,r.len+=1,r)}function ws(r){r&&(r.len-=1)}function _v(r){if(r===null)return null;r.result.push(r.cur.slice(0,r.len))}function $p(r,t,e){let n=!1,o=r.map(i=>{let a=i.id,s=t[a];if(s!==void 0&&typeof s=="string"&&(n=!0,a=s,e!==null))throw new Error("not supported");let l=Qi(i.data,t,Ss(e,a));ws(e),n=n||l!==void 0,l===void 0&&(l=i.data);let u=$p(i.children,t,e);return u!==void 0?n=!0:u=i.children,{...i,id:a,data:l,children:u}});if(n)return o}function Ov(r,t,e){let n=!1,o=r.map(i=>{let a=i.id,s=t[a];if(s!==void 0&&typeof s=="string"&&(n=!0,a=s,e!==null))throw new Error("not supported");let l=Qi(i.data,t,Ss(e,a));return ws(e),n=n||l!==void 0,l===void 0&&(l=i.data),{...i,id:a,data:l}});if(n)return Object.setPrototypeOf(o,Object.getPrototypeOf(r)),o}function Qi(r,t,e){if(r instanceof Xe){let n=$p(r,t,e);return n!==void 0&&Object.setPrototypeOf(n,Object.getPrototypeOf(r)),n}else{if(r instanceof Te)return Ov(r,t,e);if(Array.isArray(r)){let n=!1,o=r.map((i,a)=>{let s=Qi(i,t,Ss(e,a));return ws(e),n=n||s!==void 0,s===void 0&&(s=i),s});return n?(Object.setPrototypeOf(o,Object.getPrototypeOf(r)),o):void 0}else if(r&&typeof r=="object"){let n={},o=!1;for(let[i,a]of Object.entries(r))if(i!=="name"&&i!=="text"){let s=t[i];if(typeof s=="string"){if(e!==null)throw new Error("not supported");o=!0,i=s}let l=Qi(a,t,Ss(e,i));ws(e),o=o||l!==void 0,l===void 0&&(l=a),n[i]=l}else n[i]=a;return o?(Object.setPrototypeOf(n,Object.getPrototypeOf(r)),n):void 0}else if(typeof r=="string"){let n=t[r];if(n!==void 0){if(r.length!==36)throw new Error("for now you should only call this method when the key is a uuid");_v(e)}return n}else return}}var Kp;(t=>{function r(e,n){let o=Er.zoom(n,e.path);if(typeof o=="object"){let i={};for(let a of Object.keys(e.props))i[a]=o[a];return{...e,props:i}}else return{...e,props:{}}}t.replaceProps=r})(Kp||(Kp={}));var Tn;(s=>{function r(l,u){return{...l,path:l.path.slice(u)}}s.drop=r;function t(l,u){return e(l,u)?.data??l}s.applySimple=t;function e(l,u){let c=u.path;for(var p=[];;){let f;if(l instanceof $t&&u.type===0&&(f=l.runOp({...u,path:c.slice(p.length)}),f===null&&(f=void 0)),p.length===c.length&&(l instanceof Xe||l instanceof Te||l instanceof He?f=l.runOp(u):f=Po.runOp(l,u)),f!==void 0)if(f!==null){let m=f.data;for(let g=p.length-1;g>=0;g--){let v=c[g],x=p[g];if(x instanceof Xe){if(typeof v=="number")throw new Error("illegal arg");m=x.modifyById(v,m)}else if(x instanceof Te){if(typeof v=="number")throw new Error("illegal arg");m=x.modifyById(v,m)}else if(x instanceof He){if(typeof v=="number")throw new Error("illegal arg");m=x.modifyById(v,m)}else if(x instanceof $t){let b={...x,[v]:m};m=Object.setPrototypeOf(b,$t.prototype)}else if(typeof x=="object")if(Array.isArray(x)){if(typeof v=="string"&&(v=parseInt(v),isNaN(v)))throw new Error("Invalid path");let b=m;m=[...x],m[v]=b}else m={...x,[v]:m};else return null}return{data:m,actual:{...f.actual,path:c},reverse:{...f.reverse,path:c}}}else return null;let d=c[p.length],h;if(l instanceof Xe){if(typeof d=="number")throw new Error("");h=l.get(d)?.data}else if(l instanceof Te){if(typeof d=="number")throw new Error("");h=l.get(d)?.data}else l!==null&&(h=l[d]);if(h!==void 0)p.push(l),l=h;else return null}}s.apply=e;function n(l,u){for(let c=0;c<l.length&&c<u.length;c++)if(l[c]!==u[c])return!0;return!1}s.pathDisjoint=n;function o(l,u){if(l.length!==u.length)return!1;for(let c=0;c<l.length;c++)if(l[c]!==u[c])return!1;return!0}s.pathEq=o;function i(l,u){return n(l.path,u.path)}s.commutative=i;function a(l,u){return l.type===0&&u.type===0&&o(l.path,u.path)?Object.keys(l.props).every(c=>u.props[c]!==void 0):!1}s.subsumed=a})(Tn||(Tn={}));var Zp;(l=>{function r(){return[]}l.empty=r;function t(u,c){let p=[];for(let f of u){let[d,...h]=f.path;d===c&&p.push({...f,path:h})}return p}l.removePrefix=t;function e(u,c){return u.map(p=>({...p,path:[c,...p.path]}))}l.addPrefix=e;function n(u,c){return[...u,...c]}l.concat=n;function o(u,c){return[...u.filter(f=>!c.some(d=>Tn.subsumed(f,d))),...c]}l.compress=o;function i(u,c){return u.every(p=>c.every(f=>Tn.commutative(p,f)))}l.commutative=i;function a(u,c){for(let p of c){let f=s(u,p);f!==null&&(u=f.data)}return u}l.applyAll=a;function s(u,c){var p=u;let f=[],d=[];for(let h of c)try{if(h.type===3){let m=Er.zoom(p,[...h.path,h.id]),g=Tn.apply(p,{...h,type:2});if(g!==null){p=g.data;let[v,x]=Yp(p,{[h.id]:m});p=v;for(let b of x){let w=b[b.length-1];b.splice(b.length-1,1),f.push({type:0,path:b,props:{[w]:m}}),d.push({type:0,path:b,props:{[w]:h.id}})}d.push(g.reverse),f.push(g.actual)}}else{let m=Tn.apply(p,h);m!==null&&(f.push(m.actual),p=m.data,d.push(m.reverse))}}catch(m){if(m instanceof No)return null;throw m}return{data:p,actual:f,reverse:d.reverse()}}l.apply=s})(Zp||(Zp={}));var Qp=Symbol(),Ji=Symbol(),oo=class{reportOp(t,e,n=[]){let o=this;if(e===null)return;o._current=e.data;let i=n;for(;!(o instanceof Cs);){let a=o._path,s=o._current;if(a!==""&&i.splice(0,0,a),o=o._parent,o===null)return;o.update(a,s)}o.push(i,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let n=e[Ji];n&&n(),delete this._children[t]}}}},_c=class extends oo{constructor(t,e,n){super(),this._parent=t,this._path=e,this._current=n}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,Po.runOp(this._current,t),t.path)}},Oc=class extends oo{constructor(t,e,n){super(),this._parent=t,this._path=e,this._current=n}update(t,e){this._current={...this._current,[t]:e},Object.setPrototypeOf(this._current,He.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Jp={get(r,t){if(t===Ji)return()=>{r._parent=null};if(t===Qp)return r._current;let{_current:e,_children:n}=r;if(t==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let o=n===void 0?void 0:n[t];if(o!==void 0)return o;let i=e[t],a=As(r,t,i);return a!==i?(n===void 0&&(n={},r._children=n),n[t]=a,a):i},has(r,t){return t in r._current},ownKeys(r){return Reflect.ownKeys(r._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(r){return Object.getPrototypeOf(r._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(r,t){let e=r._current,n=Reflect.getOwnPropertyDescriptor(e,t);return n&&{writable:!0,configurable:!0,enumerable:n.enumerable,value:e[t]}}},Iv={...Jp,set(r,t,e){let n={type:0,props:{[t]:kt(e)??e}};return r.deleteChildren(t),r.runOp(n),!0},deleteProperty(r,t){let e={type:0,props:{[t]:void 0}};return r.deleteChildren(t),r.runOp(e),!0}},Lv={...Jp,set(r,t,e){return e===void 0?this.deleteProperty(r,t):(r.deleteChildren(t),r.runOp({type:1,id:t,data:e})),!0},deleteProperty(r,t){return r.runOp({type:2,id:t}),!0}},Mo=class extends oo{constructor(t,e,n){super(),this._children={},this._parent=t,this._path=e,this._current=n,this[Ji]=()=>{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,n)=>{t(e,this.data(e))})}data(t){let{_current:e,_children:n}=this,o=n===void 0?void 0:n[t];if(o!==void 0)return o;let i=e.get(t)?.data,a=As(this,t,i);return a!==i?(n===void 0&&(n={},this._children=n),n[t]=a,a):i}add(t,e,n,o,i){this.runOp({type:7,parent:t,fi:e,id:n,data:o,children:i})}move(t,e,n){this.runOp({type:9,parent:t,fi:e,id:n})}insertAfter(t,e,n){let o=this._current.insertAfterHelper(t,e,n.length);for(let i=0;i<n.length;i++){let a=n[i];this.add(t,o[i],a.id,a.data,a.children)}}insertBefore(t,e,n){let o=this._current.insertBeforeHelper(t,e,n.length);for(let i=0;i<n.length;i++){let a=n[i];this.add(t,o[i],a.id,a.data,a.children)}}moveAfter(t,e,n){let o=this._current.insertAfterHelper(t,e,n.length);for(let i=0;i<n.length;i++){let a=n[i];this.move(t,o[i],a)}}moveBefore(t,e,n){let o=this._current.insertBeforeHelper(t,e,n.length);for(let i=0;i<n.length;i++){let a=n[i];this.move(t,o[i],a)}}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)}},Ts=class extends oo{constructor(t,e,n){super(),this._parent=t,this._path=e,this._current=n,this[Ji]=()=>{this._parent=null}}feedOp(t){let{path:e,...n}=t;this.reportOp(n,Tn.apply(this._current,t),e)}},Eo=class extends oo{constructor(t,e,n){super(),this._children={},this._parent=t,this._path=e,this._current=n,this[Ji]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(t){let e=this.length;for(let n=0;n<e;n++){let o=this._current[n].id,i=this._current[n].fi;t(this.data(this._current[n].id),o,i)}}find(t){let e=this.length;for(let n=0;n<e;n++){let o=this._current[n].id;if(t(this.data(o),o))return this.get(o)}}update(t,e){this._current=this._current.modifyById(t,e)}randomId(){return this._current.randomId()}get(t){return{...this._current.get(t),data:this.data(t)}}data(t){let{_current:e,_children:n}=this,o=n===void 0?void 0:n[t];if(o!==void 0)return o;let i=e.get(t)?.data,a=As(this,t,i);return a!==i?(n===void 0&&(n={},this._children=n),n[t]=a,a):i}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,e,n){this.runOp({type:4,fi:t,id:e,data:n})}move(t,e){this.runOp({type:6,fi:t,id:e})}insertAfter(t,e){let n=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(n[o],i.id,i.data)}}insertBefore(t,e){let n=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(n[o],i.id,i.data)}}moveAfter(t,e){let n=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(n[o],i)}}moveBefore(t,e){let n=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(n[o],i)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function Ac(r,t,e){if(r.length>0){let n=r[r.length-1];if(n.type===0&&t.type===0&&Er.equal(n.path,e)){Object.assign(n.props,t.props);return}}r.push({...t,path:e})}var Cs=class{constructor(t){this.ts=[],this.actual=[],this.reverse=[],this._current=t}update(t,e){if(t!=="")throw new Error("");this._current=e}push(t,e,n,o){Ac(this.ts,e,t),Ac(this.actual,n,t),Ac(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function As(r,t,e){return e instanceof Xe?new Mo(r,t,e):e instanceof Te?new Eo(r,t,e):e instanceof $t?new Ts(r,t,e):e instanceof He?new Proxy(new Oc(r,t,e),Lv):e!==null&&typeof e=="object"?no(e)?e:new Proxy(new _c(r,t,e),Iv):e}function Ic(r){let t=new Cs(r);return[As(t,"",r),t]}function Lc(r,t){let[e,n]=Ic(r);return t(e),n.result()}function kt(r){return r instanceof Mo||r instanceof Eo||r instanceof Ts?r._current:r!==null&&typeof r=="object"?r[Qp]:r}var Er;(o=>{function r(i,a){if(a.length===i.length)for(var s=0;s<i.length;){if(i[s]!==a[s])return!1;s+=1}else return!1;return!0}o.equal=r;function t(i,a,s){let l=n(s,i);if(l!==void 0&&typeof l=="object"&&l!==null){let u={...a};return Object.keys(l).forEach(c=>{delete u[c]}),u}else return a}o.removeOverridden=t;function e(i,a){if((i instanceof Xe||i instanceof Mo)&&typeof a=="string")return i.data(a);if((i instanceof Te||i instanceof Eo)&&typeof a=="string")return i.data(a);if(typeof a=="number"&&Array.isArray(i))return i[a];if(typeof a=="string"&&typeof i=="object")return i[a]}o.zoomOnce=e;function n(i,a,s=0){for(;s<a.length&&i!==void 0;)i=e(i,a[s]),s+=1;return i}o.zoom=n})(Er||(Er={}));var _s=class{},ea=class extends _s{constructor(e){super();this.id=e}},ta=class extends _s{constructor(e){super();this.data=e}};var Pc;try{Pc=new TextDecoder}catch{}var se,An,L=0;var lf=[],Mc=lf,Ec=0,Gt={},Pe,Cn,ir=0,Dr=0,Kt,un,Mt=[],Fe,ef={useRecords:!1,mapsAsObjects:!0},ra=class{},Bc=new ra;Bc.name="MessagePack 0xC1";var Do=!1,Br=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(se)return df(()=>(Is(),this?this.unpack(t,e):Br.prototype.unpack.call(ef,t,e)));An=e>-1?e:t.length,L=0,Ec=0,Dr=0,Cn=null,Mc=lf,Kt=null,se=t;try{Fe=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(n){throw se=null,t instanceof Uint8Array?n:new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof Br){if(Gt=this,this.structures)return Pe=this.structures,Os();(!Pe||Pe.length>0)&&(Pe=[])}else Gt=ef,(!Pe||Pe.length>0)&&(Pe=[]);return Os()}unpackMultiple(t,e){let n,o=0;try{Do=!0;let i=t.length,a=this?this.unpack(t,i):Ps.unpack(t,i);if(e){for(e(a);L<i;)if(o=L,e(Os())===!1)return}else{for(n=[a];L<i;)o=L,n.push(Os());return n}}catch(i){throw i.lastPosition=o,i.values=n,i}finally{Do=!1,Is()}}_mergeStructures(t,e){t=t||[];for(let n=0,o=t.length;n<o;n++){let i=t[n];i&&(i.isShared=!0,n>=32&&(i.highByte=n-32>>5))}t.sharedLength=t.length;for(let n in e||[])if(n>=0){let o=t[n],i=e[n];i&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[n]=o),t[n]=i)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function Os(){try{if(!Gt.trusted&&!Do){let t=Pe.sharedLength||0;t<Pe.length&&(Pe.length=t)}let r=$e();if(L==An)Pe.restoreStructures&&tf(),Pe=null,se=null,un&&(un=null);else if(L>An){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!Do)throw new Error("Data read, but end of buffer not reached");return r}catch(r){throw Pe.restoreStructures&&tf(),Is(),(r instanceof RangeError||r.message.startsWith("Unexpected end of buffer"))&&(r.incomplete=!0),r}}function tf(){for(let r in Pe.restoreStructures)Pe[r]=Pe.restoreStructures[r];Pe.restoreStructures=null}function $e(){let r=se[L++];if(r<160)if(r<128){if(r<64)return r;{let t=Pe[r&63]||Gt.getStructures&&cf()[r&63];return t?(t.read||(t.read=Fc(t,r&63)),t.read()):r}}else if(r<144)if(r-=128,Gt.mapsAsObjects){let t={};for(let e=0;e<r;e++)t[pf()]=$e();return t}else{let t=new Map;for(let e=0;e<r;e++)t.set($e(),$e());return t}else{r-=144;let t=new Array(r);for(let e=0;e<r;e++)t[e]=$e();return t}else if(r<192){let t=r-160;if(Dr>=L)return Cn.slice(L-ir,(L+=t)-ir);if(Dr==0&&An<140){let e=t<16?Rc(t):uf(t);if(e!=null)return e}return Dc(t)}else{let t;switch(r){case 192:return null;case 193:return Kt?(t=$e(),t>0?Kt[1].slice(Kt.position1,Kt.position1+=t):Kt[0].slice(Kt.position0,Kt.position0-=t)):Bc;case 194:return!1;case 195:return!0;case 196:return Nc(se[L++]);case 197:return t=Fe.getUint16(L),L+=2,Nc(t);case 198:return t=Fe.getUint32(L),L+=4,Nc(t);case 199:return io(se[L++]);case 200:return t=Fe.getUint16(L),L+=2,io(t);case 201:return t=Fe.getUint32(L),L+=4,io(t);case 202:if(t=Fe.getFloat32(L),Gt.useFloat32>2){let e=Ns[(se[L]&127)<<1|se[L+1]>>7];return L+=4,(e*t+(t>0?.5:-.5)>>0)/e}return L+=4,t;case 203:return t=Fe.getFloat64(L),L+=8,t;case 204:return se[L++];case 205:return t=Fe.getUint16(L),L+=2,t;case 206:return t=Fe.getUint32(L),L+=4,t;case 207:return Gt.int64AsNumber?(t=Fe.getUint32(L)*4294967296,t+=Fe.getUint32(L+4)):t=Fe.getBigUint64(L),L+=8,t;case 208:return Fe.getInt8(L++);case 209:return t=Fe.getInt16(L),L+=2,t;case 210:return t=Fe.getInt32(L),L+=4,t;case 211:return Gt.int64AsNumber?(t=Fe.getInt32(L)*4294967296,t+=Fe.getUint32(L+4)):t=Fe.getBigInt64(L),L+=8,t;case 212:if(t=se[L++],t==114)return sf(se[L++]&63);{let e=Mt[t];if(e)return e.read?(L++,e.read($e())):e.noBuffer?(L++,e()):e(se.subarray(L,++L));throw new Error("Unknown extension "+t)}case 213:return t=se[L],t==114?(L++,sf(se[L++]&63,se[L++])):io(2);case 214:return io(4);case 215:return io(8);case 216:return io(16);case 217:return t=se[L++],Dr>=L?Cn.slice(L-ir,(L+=t)-ir):Pv(t);case 218:return t=Fe.getUint16(L),L+=2,Dr>=L?Cn.slice(L-ir,(L+=t)-ir):Mv(t);case 219:return t=Fe.getUint32(L),L+=4,Dr>=L?Cn.slice(L-ir,(L+=t)-ir):Ev(t);case 220:return t=Fe.getUint16(L),L+=2,nf(t);case 221:return t=Fe.getUint32(L),L+=4,nf(t);case 222:return t=Fe.getUint16(L),L+=2,of(t);case 223:return t=Fe.getUint32(L),L+=4,of(t);default:if(r>=224)return r-256;if(r===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+r)}}}var Nv=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Fc(r,t){function e(){if(e.count++>2){let o=r.read=new Function("r","return function(){return {"+r.map(i=>Nv.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")($e);return r.highByte===0&&(r.read=rf(t,r.read)),o()}let n={};for(let o=0,i=r.length;o<i;o++){let a=r[o];n[a]=$e()}return n}return e.count=0,r.highByte===0?rf(t,e):e}var rf=(r,t)=>function(){let e=se[L++];if(e===0)return t();let n=r<32?-(r+(e<<5)):r+(e<<5),o=Pe[n]||cf()[n];if(!o)throw new Error("Record id is not defined for "+n);return o.read||(o.read=Fc(o,r)),o.read()};function cf(){let r=df(()=>(se=null,Gt.getStructures()));return Pe=Gt._mergeStructures(r,Pe)}var Dc=Ls,Pv=Ls,Mv=Ls,Ev=Ls;function Ls(r){let t;if(r<16&&(t=Rc(r)))return t;if(r>64&&Pc)return Pc.decode(se.subarray(L,L+=r));let e=L+r,n=[];for(t="";L<e;){let o=se[L++];if((o&128)===0)n.push(o);else if((o&224)===192){let i=se[L++]&63;n.push((o&31)<<6|i)}else if((o&240)===224){let i=se[L++]&63,a=se[L++]&63;n.push((o&31)<<12|i<<6|a)}else if((o&248)===240){let i=se[L++]&63,a=se[L++]&63,s=se[L++]&63,l=(o&7)<<18|i<<12|a<<6|s;l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|l&1023),n.push(l)}else n.push(o);n.length>=4096&&(t+=yt.apply(String,n),n.length=0)}return n.length>0&&(t+=yt.apply(String,n)),t}function nf(r){let t=new Array(r);for(let e=0;e<r;e++)t[e]=$e();return t}function of(r){if(Gt.mapsAsObjects){let t={};for(let e=0;e<r;e++)t[pf()]=$e();return t}else{let t=new Map;for(let e=0;e<r;e++)t.set($e(),$e());return t}}var yt=String.fromCharCode;function uf(r){let t=L,e=new Array(r);for(let n=0;n<r;n++){let o=se[L++];if((o&128)>0){L=t;return}e[n]=o}return yt.apply(String,e)}function Rc(r){if(r<4)if(r<2){if(r===0)return"";{let t=se[L++];if((t&128)>1){L-=1;return}return yt(t)}}else{let t=se[L++],e=se[L++];if((t&128)>0||(e&128)>0){L-=2;return}if(r<3)return yt(t,e);let n=se[L++];if((n&128)>0){L-=3;return}return yt(t,e,n)}else{let t=se[L++],e=se[L++],n=se[L++],o=se[L++];if((t&128)>0||(e&128)>0||(n&128)>0||(o&128)>0){L-=4;return}if(r<6){if(r===4)return yt(t,e,n,o);{let i=se[L++];if((i&128)>0){L-=5;return}return yt(t,e,n,o,i)}}else if(r<8){let i=se[L++],a=se[L++];if((i&128)>0||(a&128)>0){L-=6;return}if(r<7)return yt(t,e,n,o,i,a);let s=se[L++];if((s&128)>0){L-=7;return}return yt(t,e,n,o,i,a,s)}else{let i=se[L++],a=se[L++],s=se[L++],l=se[L++];if((i&128)>0||(a&128)>0||(s&128)>0||(l&128)>0){L-=8;return}if(r<10){if(r===8)return yt(t,e,n,o,i,a,s,l);{let u=se[L++];if((u&128)>0){L-=9;return}return yt(t,e,n,o,i,a,s,l,u)}}else if(r<12){let u=se[L++],c=se[L++];if((u&128)>0||(c&128)>0){L-=10;return}if(r<11)return yt(t,e,n,o,i,a,s,l,u,c);let p=se[L++];if((p&128)>0){L-=11;return}return yt(t,e,n,o,i,a,s,l,u,c,p)}else{let u=se[L++],c=se[L++],p=se[L++],f=se[L++];if((u&128)>0||(c&128)>0||(p&128)>0||(f&128)>0){L-=12;return}if(r<14){if(r===12)return yt(t,e,n,o,i,a,s,l,u,c,p,f);{let d=se[L++];if((d&128)>0){L-=13;return}return yt(t,e,n,o,i,a,s,l,u,c,p,f,d)}}else{let d=se[L++],h=se[L++];if((d&128)>0||(h&128)>0){L-=14;return}if(r<15)return yt(t,e,n,o,i,a,s,l,u,c,p,f,d,h);let m=se[L++];if((m&128)>0){L-=15;return}return yt(t,e,n,o,i,a,s,l,u,c,p,f,d,h,m)}}}}}function Nc(r){return Gt.copyBuffers?Uint8Array.prototype.slice.call(se,L,L+=r):se.subarray(L,L+=r)}function io(r){let t=se[L++];if(Mt[t])return Mt[t](se.subarray(L,L+=r));throw new Error("Unknown extension type "+t)}var af=new Array(4096);function pf(){let r=se[L++];if(r>=160&&r<192){if(r=r-160,Dr>=L)return Cn.slice(L-ir,(L+=r)-ir);if(!(Dr==0&&An<180))return Dc(r)}else return L--,$e();let t=(r<<5^(r>1?Fe.getUint16(L):r>0?se[L]:0))&4095,e=af[t],n=L,o=L+r-3,i,a=0;if(e&&e.bytes==r){for(;n<o;){if(i=Fe.getUint32(n),i!=e[a++]){n=1879048192;break}n+=4}for(o+=3;n<o;)if(i=se[n++],i!=e[a++]){n=1879048192;break}if(n===o)return L=n,e.string;o-=3,n=L}for(e=[],af[t]=e,e.bytes=r;n<o;)i=Fe.getUint32(n),e.push(i),n+=4;for(o+=3;n<o;)i=se[n++],e.push(i);let s=r<16?Rc(r):uf(r);return s!=null?e.string=s:e.string=Dc(r)}var sf=(r,t)=>{var e=$e();let n=r;t!==void 0&&(r=r<32?-((t<<5)+r):(t<<5)+r,e.highByte=t);let o=Pe[r];return o&&o.isShared&&((Pe.restoreStructures||(Pe.restoreStructures=[]))[r]=o),Pe[r]=e,e.read=Fc(e,n),e.read()},ff=typeof self=="object"?self:global;Mt[0]=()=>{};Mt[0].noBuffer=!0;Mt[101]=()=>{let r=$e();return(ff[r[0]]||Error)(r[1])};Mt[105]=r=>{let t=Fe.getUint32(L-4);un||(un=new Map);let e=se[L],n;e>=144&&e<160||e==220||e==221?n=[]:n={};let o={target:n};un.set(t,o);let i=$e();return o.used?Object.assign(n,i):(o.target=i,i)};Mt[112]=r=>{let t=Fe.getUint32(L-4),e=un.get(t);return e.used=!0,e.target};Mt[115]=()=>new Set($e());var kc=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(r=>r+"Array");Mt[116]=r=>{let t=r[0],e=kc[t];if(!e)throw new Error("Could not find typed array for code "+t);return new ff[e](Uint8Array.prototype.slice.call(r,1).buffer)};Mt[120]=()=>{let r=$e();return new RegExp(r[0],r[1])};Mt[98]=r=>{let t=(r[0]<<24)+(r[1]<<16)+(r[2]<<8)+r[3],e=L;L+=t-4,Kt=[$e(),$e()],Kt.position0=0,Kt.position1=0;let n=L;L=e;try{return $e()}finally{L=n}};Mt[255]=r=>r.length==4?new Date((r[0]*16777216+(r[1]<<16)+(r[2]<<8)+r[3])*1e3):r.length==8?new Date(((r[0]<<22)+(r[1]<<14)+(r[2]<<6)+(r[3]>>2))/1e6+((r[3]&3)*4294967296+r[4]*16777216+(r[5]<<16)+(r[6]<<8)+r[7])*1e3):r.length==12?new Date(((r[0]<<24)+(r[1]<<16)+(r[2]<<8)+r[3])/1e6+((r[4]&128?-281474976710656:0)+r[6]*1099511627776+r[7]*4294967296+r[8]*16777216+(r[9]<<16)+(r[10]<<8)+r[11])*1e3):new Date("invalid");function df(r){let t=An,e=L,n=Ec,o=ir,i=Dr,a=Cn,s=Mc,l=un,u=Kt,c=new Uint8Array(se.slice(0,An)),p=Pe,f=Pe.slice(0,Pe.length),d=Gt,h=Do,m=r();return An=t,L=e,Ec=n,ir=o,Dr=i,Cn=a,Mc=s,un=l,Kt=u,se=c,Do=h,Pe=p,Pe.splice(0,Pe.length,...f),Gt=d,Fe=new DataView(se.buffer,se.byteOffset,se.byteLength),m}function Is(){se=null,un=null,Pe=null}function hf(r){r.unpack?Mt[r.type]=r.unpack:Mt[r.type]=r}var Ns=new Array(147);for(let r=0;r<256;r++)Ns[r]=+("1e"+Math.floor(45.15-r*.30103));var Ps=new Br({useRecords:!1}),Dv=Ps.unpack,Bv=Ps.unpackMultiple,Fv=Ps.unpack,Ms={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},Rv=new Float32Array(1),gN=new Uint8Array(Rv.buffer,0,4);var Es;try{Es=new TextEncoder}catch{}var Ds,Uc,Bs=typeof Buffer<"u",Gc=Bs?Buffer.allocUnsafeSlow:Uint8Array,vf=Bs?Buffer:Uint8Array,mf=Bs?4294967296:2144337920,k,rt,M=0,Fr,Rr=null,kv=/[\u0080-\uFFFF]/,na=Symbol("record-id"),ao=class extends Br{constructor(t){super(t),this.offset=0;let e,n,o,i,a,s,l=0,u=vf.prototype.utf8Write?function(y,O,A){return k.utf8Write(y,O,A)}:Es&&Es.encodeInto?function(y,O){return Es.encodeInto(y,k.subarray(O)).written}:!1,c=this;t||(t={});let p=t&&t.sequential,f=t.structures||t.saveStructures,d=t.maxSharedStructures;if(d==null&&(d=f?32:0),d>8160)throw new Error("Maximum maxSharedStructure is 8160");let h=t.maxOwnStructures;h==null&&(h=f?32:64),p&&!t.saveStructures&&(this.structures=[]);let m=d>32||h+d>64,g=d+64,v=d+h+64;if(v>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],b=0,w=0;this.pack=this.encode=function(y,O){if(k||(k=new Gc(8192),rt=new DataView(k.buffer,0,8192),M=0),Fr=k.length-10,Fr-M<2048?(k=new Gc(k.length),rt=new DataView(k.buffer,0,k.length),Fr=k.length-10,M=0):M=M+7&2147483640,n=M,s=c.structuredClone?new Map:null,c.bundleStrings?(Rr=["",""],k[M++]=214,k[M++]=98,Rr.position=M-n,M+=4):Rr=null,o=c.structures,o){o.uninitialized&&(o=c._mergeStructures(c.getStructures()));let A=o.sharedLength||0;if(A>d)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 I=0;I<A;I++){let C=o[I];if(!C)continue;let N,P=o.transitions;for(let G=0,$=C.length;G<$;G++){let Y=C[G];N=P[Y],N||(N=P[Y]=Object.create(null)),P=N}P[na]=I+64}l=A}p||(o.nextId=A+64)}i&&(i=!1),a=o||[];try{if(S(y),Rr){rt.setUint32(Rr.position+n,M-Rr.position-n);let A=Rr;Rr=null,S(A[0]),S(A[1])}if(c.offset=M,s&&s.idsToInsert){M+=s.idsToInsert.length*6,M>Fr&&T(M),c.offset=M;let A=Uv(k.subarray(n,M),s.idsToInsert);return s=null,A}return O&bf?(k.start=n,k.end=M,k):k.subarray(n,M)}finally{if(o){if(w<10&&w++,b>1e4)o.transitions=null,w=0,b=0,x.length>0&&(x=[]);else if(x.length>0&&!p){for(let A=0,I=x.length;A<I;A++)x[A][na]=0;x=[]}if(i&&c.saveStructures){let A=o.sharedLength||d;o.length>A&&(o=o.slice(0,A));let I=k.subarray(n,M);return c.saveStructures(o,l)===!1?(c._mergeStructures(c.getStructures()),c.pack(y)):(l=A,I)}}O&Xv&&(M=n)}};let S=y=>{M>Fr&&(k=T(M));var O=typeof y,A;if(O==="string"){let I=y.length;if(Rr&&I>=8&&I<4096){let P=kv.test(y);Rr[P?0:1]+=y,k[M++]=193,S(P?-I:I);return}let C;I<32?C=1:I<256?C=2:I<65536?C=3:C=5;let N=I*3;if(M+N>Fr&&(k=T(M+N)),I<64||!u){let P,G,$,Y=M+C;for(P=0;P<I;P++)G=y.charCodeAt(P),G<128?k[Y++]=G:G<2048?(k[Y++]=G>>6|192,k[Y++]=G&63|128):(G&64512)===55296&&(($=y.charCodeAt(P+1))&64512)===56320?(G=65536+((G&1023)<<10)+($&1023),P++,k[Y++]=G>>18|240,k[Y++]=G>>12&63|128,k[Y++]=G>>6&63|128,k[Y++]=G&63|128):(k[Y++]=G>>12|224,k[Y++]=G>>6&63|128,k[Y++]=G&63|128);A=Y-M-C}else A=u(y,M+C,N);A<32?k[M++]=160|A:A<256?(C<2&&k.copyWithin(M+2,M+1,M+1+A),k[M++]=217,k[M++]=A):A<65536?(C<3&&k.copyWithin(M+3,M+2,M+2+A),k[M++]=218,k[M++]=A>>8,k[M++]=A&255):(C<5&&k.copyWithin(M+5,M+3,M+3+A),k[M++]=219,rt.setUint32(M,A),M+=4),M+=A}else if(O==="number")if(y>>>0===y)y<64?k[M++]=y:y<256?(k[M++]=204,k[M++]=y):y<65536?(k[M++]=205,k[M++]=y>>8,k[M++]=y&255):(k[M++]=206,rt.setUint32(M,y),M+=4);else if(y>>0===y)y>=-32?k[M++]=256+y:y>=-128?(k[M++]=208,k[M++]=y+256):y>=-32768?(k[M++]=209,rt.setInt16(M,y),M+=2):(k[M++]=210,rt.setInt32(M,y),M+=4);else{let I;if((I=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){k[M++]=202,rt.setFloat32(M,y);let C;if(I<4||(C=y*Ns[(k[M]&127)<<1|k[M+1]>>7])>>0===C){M+=4;return}else M--}k[M++]=203,rt.setFloat64(M,y),M+=8}else if(O==="object")if(!y)k[M++]=192;else{if(s){let C=s.get(y);if(C){if(!C.id){let N=s.idsToInsert||(s.idsToInsert=[]);C.id=N.push(C)}k[M++]=214,k[M++]=112,rt.setUint32(M,C.id),M+=4;return}else s.set(y,{offset:M-n})}let I=y.constructor;if(I===Object)_(y,!0);else if(I===Array){A=y.length,A<16?k[M++]=144|A:A<65536?(k[M++]=220,k[M++]=A>>8,k[M++]=A&255):(k[M++]=221,rt.setUint32(M,A),M+=4);for(let C=0;C<A;C++)S(y[C])}else if(I===Map){A=y.size,A<16?k[M++]=128|A:A<65536?(k[M++]=222,k[M++]=A>>8,k[M++]=A&255):(k[M++]=223,rt.setUint32(M,A),M+=4);for(let[C,N]of y)S(C),S(N)}else{for(let C=0,N=Ds.length;C<N;C++){let P=Uc[C];if(y instanceof P){let G=Ds[C];if(G.write){G.type&&(k[M++]=212,k[M++]=G.type,k[M++]=0),S(G.write.call(this,y));return}let $=k,Y=rt,ie=M;k=null;let j;try{j=G.pack.call(this,y,H=>(k=$,$=null,M+=H,M>Fr&&T(M),{target:k,targetView:rt,position:M-H}),S)}finally{$&&(k=$,rt=Y,M=ie,Fr=k.length-10)}j&&(j.length+M>Fr&&T(j.length+M),M=Gv(j,k,M,G.type));return}}_(y,!y.hasOwnProperty)}}else if(O==="boolean")k[M++]=y?195:194;else if(O==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))k[M++]=211,rt.setBigInt64(M,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)k[M++]=207,rt.setBigUint64(M,y);else if(this.largeBigIntToFloat)k[M++]=203,rt.setFloat64(M,Number(y));else throw new RangeError(y+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");M+=8}else if(O==="undefined")this.encodeUndefinedAsNil?k[M++]=192:(k[M++]=212,k[M++]=0,k[M++]=0);else if(O==="function")S(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+O)},_=this.useRecords===!1?this.variableMapSize?y=>{let O=Object.keys(y),A=O.length;A<16?k[M++]=128|A:A<65536?(k[M++]=222,k[M++]=A>>8,k[M++]=A&255):(k[M++]=223,rt.setUint32(M,A),M+=4);let I;for(let C=0;C<A;C++)S(I=O[C]),S(y[I])}:(y,O)=>{k[M++]=222;let A=M-n;M+=2;let I=0;for(let C in y)(O||y.hasOwnProperty(C))&&(S(C),S(y[C]),I++);k[A+++n]=I>>8,k[A+n]=I&255}:y=>{let O=Object.keys(y),A,I=a.transitions||(a.transitions=Object.create(null)),C=0;for(let P=0,G=O.length;P<G;P++){let $=O[P];A=I[$],A||(A=I[$]=Object.create(null),C++),I=A}let N=I[na];if(N)N>=96&&m?(k[M++]=((N-=96)&31)+96,k[M++]=N>>5):k[M++]=N;else{N=a.nextId,N||(N=64),N<g&&this.shouldShareStructure&&!this.shouldShareStructure(O)?(N=a.nextOwnId,N<v||(N=g),a.nextOwnId=N+1):(N>=v&&(N=g),a.nextId=N+1);let P=O.highByte=N>=96&&m?N-96>>5:-1;I[na]=N,a[N-64]=O,N<g?(O.isShared=!0,a.sharedLength=N-63,i=!0,P>=0?(k[M++]=(N&31)+96,k[M++]=P):k[M++]=N):(P>=0?(k[M++]=213,k[M++]=114,k[M++]=(N&31)+96,k[M++]=P):(k[M++]=212,k[M++]=114,k[M++]=N),C&&(b+=w*C),x.length>=h&&(x.shift()[na]=0),x.push(I),S(O))}for(let P=0,G=O.length;P<G;P++)S(y[O[P]])},T=y=>{let O;if(y>16777216){if(y-n>mf)throw new Error("Packed buffer would be larger than maximum buffer size");O=Math.min(mf,Math.round(Math.max((y-n)*(y>67108864?1.25:2),4194304)/4096)*4096)}else O=(Math.max(y-n<<2,k.length-1)>>12)+1<<12;let A=new Gc(O);return rt=new DataView(A.buffer,0,O),k.copy?k.copy(A,0,n,y):A.set(k.slice(n,y)),M-=n,n=0,Fr=A.length-10,k=A}}useBuffer(t){k=t,rt=new DataView(k.buffer,k.byteOffset,k.byteLength),M=0}};Uc=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,ra];Ds=[{pack(r,t,e){let n=r.getTime()/1e3;if((this.useTimestamp32||r.getMilliseconds()===0)&&n>=0&&n<4294967296){let{target:o,targetView:i,position:a}=t(6);o[a++]=214,o[a++]=255,i.setUint32(a,n)}else if(n>0&&n<17179869184){let{target:o,targetView:i,position:a}=t(10);o[a++]=215,o[a++]=255,i.setUint32(a,r.getMilliseconds()*4e6+(n/1e3/4294967296>>0)),i.setUint32(a+4,n)}else if(isNaN(n)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:i,position:a}=t(3);o[a++]=212,o[a++]=255,o[a++]=255}else{let{target:o,targetView:i,position:a}=t(15);o[a++]=199,o[a++]=12,o[a++]=255,i.setUint32(a,r.getMilliseconds()*1e6),i.setBigInt64(a+4,BigInt(Math.floor(n)))}}},{pack(r,t,e){let n=Array.from(r),{target:o,position:i}=t(this.structuredClone?3:0);this.structuredClone&&(o[i++]=212,o[i++]=115,o[i++]=0),e(n)}},{pack(r,t,e){let{target:n,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(n[o++]=212,n[o++]=101,n[o++]=0),e([r.name,r.message])}},{pack(r,t,e){let{target:n,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(n[o++]=212,n[o++]=120,n[o++]=0),e([r.source,r.flags])}},{pack(r,t){this.structuredClone?gf(r,16,t):yf(Bs?Buffer.from(r):new Uint8Array(r),t)}},{pack(r,t){let e=r.constructor;e!==vf&&this.structuredClone?gf(r,kc.indexOf(e.name),t):yf(r,t)}},{pack(r,t){let{target:e,position:n}=t(1);e[n]=193}}];function gf(r,t,e,n){let o=r.byteLength;if(o+1<256){var{target:i,position:a}=e(4+o);i[a++]=199,i[a++]=o+1}else if(o+1<65536){var{target:i,position:a}=e(5+o);i[a++]=200,i[a++]=o+1>>8,i[a++]=o+1&255}else{var{target:i,position:a,targetView:s}=e(7+o);i[a++]=201,s.setUint32(a,o+1),a+=4}i[a++]=116,i[a++]=t,i.set(new Uint8Array(r.buffer,r.byteOffset,r.byteLength),a)}function yf(r,t){let e=r.byteLength;var n,o;if(e<256){var{target:n,position:o}=t(e+2);n[o++]=196,n[o++]=e}else if(e<65536){var{target:n,position:o}=t(e+3);n[o++]=197,n[o++]=e>>8,n[o++]=e&255}else{var{target:n,position:o,targetView:i}=t(e+5);n[o++]=198,i.setUint32(o,e),o+=4}n.set(r,o)}function Gv(r,t,e,n){let o=r.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++]=n,t.set(r,e),e+=o,e}function Uv(r,t){let e,n=t.length*6,o=r.length-n;for(t.sort((i,a)=>i.offset>a.offset?1:-1);e=t.pop();){let i=e.offset,a=e.id;r.copyWithin(i+n,i,o),n-=6;let s=i+n;r[s++]=214,r[s++]=105,r[s++]=a>>24,r[s++]=a>>16&255,r[s++]=a>>8&255,r[s++]=a&255,o=i}return r}function _n(r){if(r.Class){if(!r.pack&&!r.write)throw new Error("Extension has no pack or write function");if(r.pack&&!r.type)throw new Error("Extension has no type (numeric code to identify the extension)");Uc.unshift(r.Class),Ds.unshift(r)}hf(r)}var xf=new ao({useRecords:!1}),Vv=xf.pack,zv=xf.pack;var{NEVER:jv,ALWAYS:Hv,DECIMAL_ROUND:Wv,DECIMAL_FIT:qv}=Ms,bf=512,Xv=1024;var Sf=new ao({structuredClone:!0});_n({Class:He.prototype.constructor,type:1,write(r){return{...r}},read(r){return Object.setPrototypeOf(r,He.prototype),r}});_n({Class:Te.prototype.constructor,type:2,write(r){return[...r]},read(r){return Object.setPrototypeOf(r,Te.prototype),r}});_n({Class:Xe.prototype.constructor,type:3,write(r){return[...r]},read(r){return Object.setPrototypeOf(r,Xe.prototype),r}});_n({Class:ea.prototype.constructor,type:4,write(r){return r.id},read(r){return new ea(r)}});_n({Class:ta.prototype.constructor,type:5,write(r){return r.data},read(r){return new ta(r)}});_n({Class:$t.prototype.constructor,type:6,write(r){return{...r}},read(r){return Object.setPrototypeOf(r,$t.prototype),r}});function Yv(r){var t=0;if(r.length===0)return t;for(let e=0;e<r.length;e++){let n=r[e];t=(t<<5)-t+n,t=t&t}return t}function Vc(r){if(no(r))return r;if(Array.isArray(r))return r.map(Vc);if(typeof r=="object"&&r!==null){let t={};for(let e of Object.keys(r).sort())t[e]=Vc(r[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(r)),t}else return r}var Fs;(n=>{function r(o){return Sf.pack(o)}n.serialize=r;function t(o){return Sf.unpack(o)}n.deserialize=t;function e(o){return Yv(r(Vc(o))).toString()}n.checksum=e})(Fs||(Fs={}));var wf;(e=>{function r(n,o){return n[0]===o[0]&&n[1]===o[1]}e.isEqual=r;function t(n,o,i){return[n[0]+(o[0]-n[0])*i,n[1]+(o[1]-n[1])*i]}e.lerp=t})(wf||(wf={}));var Bo;(o=>{function r(i,a){return i[0]===a[0]&&i[1]===a[1]&&i[2]===a[2]}o.isEqual=r;function t(i,a){return[i[0]+a[0],i[1]+a[1],i[2]+a[2]]}o.add=t;function e(i,a){return[i[0]-a[0],i[1]-a[1],i[2]-a[2]]}o.sub=e;function n(i,a,s){return[i[0]+(a[0]-i[0])*s,i[1]+(a[1]-i[1])*s,i[2]+(a[2]-i[2])*s]}o.lerp=n})(Bo||(Bo={}));var Tf;(e=>{function r(n,o){return n[0]===o[0]&&n[1]===o[1]&&n[2]===o[2]&&n[3]===o[3]}e.isEqual=r;function t(n,o,i){return[n[0]+(o[0]-n[0])*i,n[1]+(o[1]-n[1])*i,n[2]+(o[2]-n[2])*i,n[3]+(o[3]-n[3])*i]}e.lerp=t})(Tf||(Tf={}));var On;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(i,a){for(let s=0;s<16;s++)if(i[s]!==a[s])return!1;return!0}o.isEqual=t;function e(i){return i??o.identity}o.simplify=e;function n(i,a){let s=a.slice(0);for(var l=0,u=a.length;l<u;l+=3){let c=i[3]*a[l]+i[7]*a[l+1]+i[11]*a[l+2]+i[15];s[l]=(i[0]*a[l]+i[4]*a[l+1]+i[8]*a[l+2]+i[12])/c,s[l+1]=(i[1]*a[l]+i[5]*a[l+1]+i[9]*a[l+2]+i[13])/c,s[l+2]=(i[2]*a[l]+i[6]*a[l+1]+i[10]*a[l+2]+i[14])/c}return s}o.applyMatrix4=n})(On||(On={}));var Ut;(l=>{l.white={r:1,g:1,b:1},l.red={r:1,g:0,b:0},l.black={r:0,g:0,b:0};function n(u){return{r:Math.round(u.r*255),g:Math.round(u.g*255),b:Math.round(u.b*255),a:1}}l.toRgb255a1=n;function o(u){return{r:u.r,g:u.g,b:u.b}}l.clone=o;function i(u){return u=Math.floor(u),{r:(u>>16&255)/255,g:(u>>8&255)/255,b:(u&255)/255}}l.fromHex=i;function a(u,c){return u.r===c.r&&u.g===c.g&&u.b===c.b}l.equals=a;function s(u,c,p){return{r:u.r+(c.r-u.r)*p,g:u.g+(c.g-u.g)*p,b:u.b+(c.b-u.b)*p}}l.lerp=s})(Ut||(Ut={}));var dr;(s=>{s.white={...Ut.white,a:1},s.transparent={...Ut.white,a:0};function e(l){return{r:l[0],g:l[1],b:l[2],a:l[3]}}s.from0to1=e;function n(l,u){return{...Ut.fromHex(l),a:u}}s.fromHexAndA=n;function o(l){return{r:Math.round(l.r*255),g:Math.round(l.g*255),b:Math.round(l.b*255),a:l.a}}s.toRgb255a1=o;function i(l,u){return Ut.equals(l,u)&&l.a===u.a}s.equals=i;function a(l,u,c){return{r:l.r+(u.r-l.r)*c,g:l.g+(u.g-l.g)*c,b:l.b+(u.b-l.b)*c,a:l.a+(u.a-l.a)*c}}s.lerp=a})(dr||(dr={}));var Rs;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Rs||(Rs={}));var Cf;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(Cf||(Cf={}));var Af;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(Af||(Af={}));var Fo;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(n){return e.all.includes(n)}e.is=t})(Fo||(Fo={}));var so;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:o.DefaultUp,isUpVectorFlipped:!1,targetOffset:o.DefaultTargetOffset};function n(i){return i.type==="PerspectiveCamera"?i.perspective.zoom:i.orthographic.zoom}o.getZoom=n})(so||(so={}));var ks;(t=>{function r(e,n=.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]*n,0,0]},grid:{count:[2,2,2],size:e.map(o=>o*(1+n)),useCenter:!0}}}t.defaultData=r})(ks||(ks={}));var Gs;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(n){return e.all.includes(n)}e.is=t})(Gs||(Gs={}));var Us;(e=>{function r(n){return t(n)}e.defaultData=r;function t(n){if(n==="PointLight")return{type:n,color:dr.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(n==="SpotLight")return{type:n,color:dr.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(n==="DirectionalLight")return{type:n,color:dr.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(Us||(Us={}));var zc;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(n,o){return n.castShadow===o.castShadow&&n.receiveShadow===o.receiveShadow}e.equals=t})(zc||(zc={}));var jc;(e=>{e.defaultData={flatShading:!1,wireframe:!1,side:0};function t(n,o){return n.flatShading===o.flatShading&&n.side===o.side&&n.wireframe===o.wireframe}e.equals=t})(jc||(jc={}));var Vs;(t=>t.defaultData={...jc.defaultData,...zc.defaultData,cloner:null,booleanExclude:null})(Vs||(Vs={}));var _f=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],Of=["wrapping","image"],In;(n=>{function r(o,i){return o==="light"&&i?t(i):e(o)}n.defaultData=r;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:Ut.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:{...Ut.fromHex(6710886),a:1},colorB:{...Ut.fromHex(6710886),a:1},colorC:{...Ut.fromHex(16777215),a:1},colorD:{...Ut.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:dr.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:dr.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:dr.fromHexAndA(0,1),contourColor:dr.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}}}})(In||(In={}));var Zt;(s=>{function r(l){return!l.layers.some(c=>{if(c.data.type==="texture"&&c.data.projection!==0||c.data.type==="depth"&&!c.data.isWorldSpace||c.data.type==="noise"||c.data.type==="displace")return!0})&&!e(l)}s.isMergable=r;function t(l){let u="";return l.layers.forEach(c=>{Object.entries(c.data).forEach(([p,f])=>{u+=`${p}${f}`,Array.isArray(f)?f.forEach(d=>u+=`${d}`):typeof f=="object"?Object.values(f).forEach(d=>{typeof d=="number"?u+=`${d.toFixed(4)}`:u+=`${d}`}):u+=`${f}`})}),u}s.getHash=t;function e(l){let u=0;for(let c of l.layers)"alpha"in c.data&&c.data.type!=="light"&&c.data.type!=="fresnel"&&(u+=(1-u)*c.data.alpha);return u<1}s.isTransparent=e;function n(){return{layers:new Te}}s.defaultEmptyData=n;function o(l="layer1",u="layer2"){return i("phong",l,u)}s.defaultData=o;function i(l,u="layer1",c="layer2"){let p=new Te;return p.push({fi:0,data:In.defaultData("light",l),id:u}),p.push({fi:1,data:In.defaultData("color"),id:c}),{layers:p}}s.defaultTwoLayerData=i;function a(l,u="basic",c="layer1",p="layer2"){let f=In.defaultData("texture");Object.assign(f.texture,{image:l});let d=new Te;return d.push({fi:0,data:f,id:c}),d.push({fi:1,data:In.defaultData("light",u),id:p}),{layers:d}}s.defaultTwoLayerTextureData=a})(Zt||(Zt={}));var Ro;(t=>{function r(){return{points:new Te,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=r})(Ro||(Ro={}));var zs;(t=>{function r(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=r})(zs||(zs={}));var Ln;(t=>{function r(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:Ro.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="BooleanGeometry")return{type:e,operation:2,width:0,height:0,depth:0,phongAngle:35};if(e==="TextGeometry")return{type:e,width:100,height:100,depth:0,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.2,letterSpacing:0,text:"",textTransform:1,font:"Roboto_regular",extrudeBevelSize:0,extrudeBevelSegments:1};throw new Error("not implemented")}t.defaultData=r})(Ln||(Ln={}));var $v=typeof global=="object"&&global&&global.Object===Object&&global,js=$v;var Kv=typeof self=="object"&&self&&self.Object===Object&&self,Zv=js||Kv||Function("return this")(),at=Zv;var Qv=at.Symbol,Et=Qv;var If=Object.prototype,Jv=If.hasOwnProperty,ex=If.toString,oa=Et?Et.toStringTag:void 0;function tx(r){var t=Jv.call(r,oa),e=r[oa];try{r[oa]=void 0;var n=!0}catch{}var o=ex.call(r);return n&&(t?r[oa]=e:delete r[oa]),o}var Lf=tx;var rx=Object.prototype,nx=rx.toString;function ox(r){return nx.call(r)}var Nf=ox;var ix="[object Null]",ax="[object Undefined]",Pf=Et?Et.toStringTag:void 0;function sx(r){return r==null?r===void 0?ax:ix:Pf&&Pf in Object(r)?Lf(r):Nf(r)}var Qt=sx;function lx(r){return r!=null&&typeof r=="object"}var It=lx;var cx="[object Symbol]";function ux(r){return typeof r=="symbol"||It(r)&&Qt(r)==cx}var ko=ux;function px(r,t){for(var e=-1,n=r==null?0:r.length,o=Array(n);++e<n;)o[e]=t(r[e],e,r);return o}var Hs=px;var fx=Array.isArray,Ke=fx;var dx=1/0,Mf=Et?Et.prototype:void 0,Ef=Mf?Mf.toString:void 0;function Df(r){if(typeof r=="string")return r;if(Ke(r))return Hs(r,Df)+"";if(ko(r))return Ef?Ef.call(r):"";var t=r+"";return t=="0"&&1/r==-dx?"-0":t}var Bf=Df;function hx(r){var t=typeof r;return r!=null&&(t=="object"||t=="function")}var lt=hx;function mx(r){return r}var Ws=mx;var gx="[object AsyncFunction]",yx="[object Function]",vx="[object GeneratorFunction]",xx="[object Proxy]";function bx(r){if(!lt(r))return!1;var t=Qt(r);return t==yx||t==vx||t==gx||t==xx}var Go=bx;var Sx=at["__core-js_shared__"],qs=Sx;var Ff=function(){var r=/[^.]+$/.exec(qs&&qs.keys&&qs.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function wx(r){return!!Ff&&Ff in r}var Rf=wx;var Tx=Function.prototype,Cx=Tx.toString;function Ax(r){if(r!=null){try{return Cx.call(r)}catch{}try{return r+""}catch{}}return""}var pn=Ax;var _x=/[\\^$.*+?()[\]{}|]/g,Ox=/^\[object .+?Constructor\]$/,Ix=Function.prototype,Lx=Object.prototype,Nx=Ix.toString,Px=Lx.hasOwnProperty,Mx=RegExp("^"+Nx.call(Px).replace(_x,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ex(r){if(!lt(r)||Rf(r))return!1;var t=Go(r)?Mx:Ox;return t.test(pn(r))}var kf=Ex;function Dx(r,t){return r?.[t]}var Gf=Dx;function Bx(r,t){var e=Gf(r,t);return kf(e)?e:void 0}var Vt=Bx;var Fx=Vt(at,"WeakMap"),Xs=Fx;var Uf=Object.create,Rx=function(){function r(){}return function(t){if(!lt(t))return{};if(Uf)return Uf(t);r.prototype=t;var e=new r;return r.prototype=void 0,e}}(),Vf=Rx;function kx(r,t,e){switch(e.length){case 0:return r.call(t);case 1:return r.call(t,e[0]);case 2:return r.call(t,e[0],e[1]);case 3:return r.call(t,e[0],e[1],e[2])}return r.apply(t,e)}var zf=kx;function Gx(r,t){var e=-1,n=r.length;for(t||(t=Array(n));++e<n;)t[e]=r[e];return t}var Ys=Gx;var Ux=800,Vx=16,zx=Date.now;function jx(r){var t=0,e=0;return function(){var n=zx(),o=Vx-(n-e);if(e=n,o>0){if(++t>=Ux)return arguments[0]}else t=0;return r.apply(void 0,arguments)}}var jf=jx;function Hx(r){return function(){return r}}var Hf=Hx;var Wx=function(){try{var r=Vt(Object,"defineProperty");return r({},"",{}),r}catch{}}(),Uo=Wx;var qx=Uo?function(r,t){return Uo(r,"toString",{configurable:!0,enumerable:!1,value:Hf(t),writable:!0})}:Ws,Wf=qx;var Xx=jf(Wf),$s=Xx;function Yx(r,t){for(var e=-1,n=r==null?0:r.length;++e<n&&t(r[e],e,r)!==!1;);return r}var qf=Yx;var $x=9007199254740991,Kx=/^(?:0|[1-9]\d*)$/;function Zx(r,t){var e=typeof r;return t=t??$x,!!t&&(e=="number"||e!="symbol"&&Kx.test(r))&&r>-1&&r%1==0&&r<t}var Nn=Zx;function Qx(r,t,e){t=="__proto__"&&Uo?Uo(r,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):r[t]=e}var Vo=Qx;function Jx(r,t){return r===t||r!==r&&t!==t}var Pn=Jx;var eb=Object.prototype,tb=eb.hasOwnProperty;function rb(r,t,e){var n=r[t];(!(tb.call(r,t)&&Pn(n,e))||e===void 0&&!(t in r))&&Vo(r,t,e)}var zo=rb;function nb(r,t,e,n){var o=!e;e||(e={});for(var i=-1,a=t.length;++i<a;){var s=t[i],l=n?n(e[s],r[s],s,e,r):void 0;l===void 0&&(l=r[s]),o?Vo(e,s,l):zo(e,s,l)}return e}var ar=nb;var Xf=Math.max;function ob(r,t,e){return t=Xf(t===void 0?r.length-1:t,0),function(){for(var n=arguments,o=-1,i=Xf(n.length-t,0),a=Array(i);++o<i;)a[o]=n[t+o];o=-1;for(var s=Array(t+1);++o<t;)s[o]=n[o];return s[t]=e(a),zf(r,this,s)}}var Ks=ob;function ib(r,t){return $s(Ks(r,t,Ws),r+"")}var Yf=ib;var ab=9007199254740991;function sb(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ab}var jo=sb;function lb(r){return r!=null&&jo(r.length)&&!Go(r)}var Mn=lb;function cb(r,t,e){if(!lt(e))return!1;var n=typeof t;return(n=="number"?Mn(e)&&Nn(t,e.length):n=="string"&&t in e)?Pn(e[t],r):!1}var $f=cb;function ub(r){return Yf(function(t,e){var n=-1,o=e.length,i=o>1?e[o-1]:void 0,a=o>2?e[2]:void 0;for(i=r.length>3&&typeof i=="function"?(o--,i):void 0,a&&$f(e[0],e[1],a)&&(i=o<3?void 0:i,o=1),t=Object(t);++n<o;){var s=e[n];s&&r(t,s,n,i)}return t})}var Kf=ub;var pb=Object.prototype;function fb(r){var t=r&&r.constructor,e=typeof t=="function"&&t.prototype||pb;return r===e}var Ho=fb;function db(r,t){for(var e=-1,n=Array(r);++e<r;)n[e]=t(e);return n}var Zf=db;var hb="[object Arguments]";function mb(r){return It(r)&&Qt(r)==hb}var Hc=mb;var Qf=Object.prototype,gb=Qf.hasOwnProperty,yb=Qf.propertyIsEnumerable,vb=Hc(function(){return arguments}())?Hc:function(r){return It(r)&&gb.call(r,"callee")&&!yb.call(r,"callee")},fn=vb;function xb(){return!1}var Jf=xb;var rd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ed=rd&&typeof module=="object"&&module&&!module.nodeType&&module,bb=ed&&ed.exports===rd,td=bb?at.Buffer:void 0,Sb=td?td.isBuffer:void 0,wb=Sb||Jf,Wo=wb;var Tb="[object Arguments]",Cb="[object Array]",Ab="[object Boolean]",_b="[object Date]",Ob="[object Error]",Ib="[object Function]",Lb="[object Map]",Nb="[object Number]",Pb="[object Object]",Mb="[object RegExp]",Eb="[object Set]",Db="[object String]",Bb="[object WeakMap]",Fb="[object ArrayBuffer]",Rb="[object DataView]",kb="[object Float32Array]",Gb="[object Float64Array]",Ub="[object Int8Array]",Vb="[object Int16Array]",zb="[object Int32Array]",jb="[object Uint8Array]",Hb="[object Uint8ClampedArray]",Wb="[object Uint16Array]",qb="[object Uint32Array]",We={};We[kb]=We[Gb]=We[Ub]=We[Vb]=We[zb]=We[jb]=We[Hb]=We[Wb]=We[qb]=!0;We[Tb]=We[Cb]=We[Fb]=We[Ab]=We[Rb]=We[_b]=We[Ob]=We[Ib]=We[Lb]=We[Nb]=We[Pb]=We[Mb]=We[Eb]=We[Db]=We[Bb]=!1;function Xb(r){return It(r)&&jo(r.length)&&!!We[Qt(r)]}var nd=Xb;function Yb(r){return function(t){return r(t)}}var qo=Yb;var od=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ia=od&&typeof module=="object"&&module&&!module.nodeType&&module,$b=ia&&ia.exports===od,Wc=$b&&js.process,Kb=function(){try{var r=ia&&ia.require&&ia.require("util").types;return r||Wc&&Wc.binding&&Wc.binding("util")}catch{}}(),dn=Kb;var id=dn&&dn.isTypedArray,Zb=id?qo(id):nd,Zs=Zb;var Qb=Object.prototype,Jb=Qb.hasOwnProperty;function e1(r,t){var e=Ke(r),n=!e&&fn(r),o=!e&&!n&&Wo(r),i=!e&&!n&&!o&&Zs(r),a=e||n||o||i,s=a?Zf(r.length,String):[],l=s.length;for(var u in r)(t||Jb.call(r,u))&&!(a&&(u=="length"||o&&(u=="offset"||u=="parent")||i&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Nn(u,l)))&&s.push(u);return s}var Qs=e1;function t1(r,t){return function(e){return r(t(e))}}var Js=t1;var r1=Js(Object.keys,Object),ad=r1;var n1=Object.prototype,o1=n1.hasOwnProperty;function i1(r){if(!Ho(r))return ad(r);var t=[];for(var e in Object(r))o1.call(r,e)&&e!="constructor"&&t.push(e);return t}var sd=i1;function a1(r){return Mn(r)?Qs(r):sd(r)}var Xo=a1;function s1(r){var t=[];if(r!=null)for(var e in Object(r))t.push(e);return t}var ld=s1;var l1=Object.prototype,c1=l1.hasOwnProperty;function u1(r){if(!lt(r))return ld(r);var t=Ho(r),e=[];for(var n in r)n=="constructor"&&(t||!c1.call(r,n))||e.push(n);return e}var cd=u1;function p1(r){return Mn(r)?Qs(r,!0):cd(r)}var kr=p1;var f1=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,d1=/^\w*$/;function h1(r,t){if(Ke(r))return!1;var e=typeof r;return e=="number"||e=="symbol"||e=="boolean"||r==null||ko(r)?!0:d1.test(r)||!f1.test(r)||t!=null&&r in Object(t)}var ud=h1;var m1=Vt(Object,"create"),hn=m1;function g1(){this.__data__=hn?hn(null):{},this.size=0}var pd=g1;function y1(r){var t=this.has(r)&&delete this.__data__[r];return this.size-=t?1:0,t}var fd=y1;var v1="__lodash_hash_undefined__",x1=Object.prototype,b1=x1.hasOwnProperty;function S1(r){var t=this.__data__;if(hn){var e=t[r];return e===v1?void 0:e}return b1.call(t,r)?t[r]:void 0}var dd=S1;var w1=Object.prototype,T1=w1.hasOwnProperty;function C1(r){var t=this.__data__;return hn?t[r]!==void 0:T1.call(t,r)}var hd=C1;var A1="__lodash_hash_undefined__";function _1(r,t){var e=this.__data__;return this.size+=this.has(r)?0:1,e[r]=hn&&t===void 0?A1:t,this}var md=_1;function Yo(r){var t=-1,e=r==null?0:r.length;for(this.clear();++t<e;){var n=r[t];this.set(n[0],n[1])}}Yo.prototype.clear=pd;Yo.prototype.delete=fd;Yo.prototype.get=dd;Yo.prototype.has=hd;Yo.prototype.set=md;var qc=Yo;function O1(){this.__data__=[],this.size=0}var gd=O1;function I1(r,t){for(var e=r.length;e--;)if(Pn(r[e][0],t))return e;return-1}var En=I1;var L1=Array.prototype,N1=L1.splice;function P1(r){var t=this.__data__,e=En(t,r);if(e<0)return!1;var n=t.length-1;return e==n?t.pop():N1.call(t,e,1),--this.size,!0}var yd=P1;function M1(r){var t=this.__data__,e=En(t,r);return e<0?void 0:t[e][1]}var vd=M1;function E1(r){return En(this.__data__,r)>-1}var xd=E1;function D1(r,t){var e=this.__data__,n=En(e,r);return n<0?(++this.size,e.push([r,t])):e[n][1]=t,this}var bd=D1;function $o(r){var t=-1,e=r==null?0:r.length;for(this.clear();++t<e;){var n=r[t];this.set(n[0],n[1])}}$o.prototype.clear=gd;$o.prototype.delete=yd;$o.prototype.get=vd;$o.prototype.has=xd;$o.prototype.set=bd;var Dn=$o;var B1=Vt(at,"Map"),Bn=B1;function F1(){this.size=0,this.__data__={hash:new qc,map:new(Bn||Dn),string:new qc}}var Sd=F1;function R1(r){var t=typeof r;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?r!=="__proto__":r===null}var wd=R1;function k1(r,t){var e=r.__data__;return wd(t)?e[typeof t=="string"?"string":"hash"]:e.map}var Fn=k1;function G1(r){var t=Fn(this,r).delete(r);return this.size-=t?1:0,t}var Td=G1;function U1(r){return Fn(this,r).get(r)}var Cd=U1;function V1(r){return Fn(this,r).has(r)}var Ad=V1;function z1(r,t){var e=Fn(this,r),n=e.size;return e.set(r,t),this.size+=e.size==n?0:1,this}var _d=z1;function Ko(r){var t=-1,e=r==null?0:r.length;for(this.clear();++t<e;){var n=r[t];this.set(n[0],n[1])}}Ko.prototype.clear=Sd;Ko.prototype.delete=Td;Ko.prototype.get=Cd;Ko.prototype.has=Ad;Ko.prototype.set=_d;var aa=Ko;var j1="Expected a function";function Xc(r,t){if(typeof r!="function"||t!=null&&typeof t!="function")throw new TypeError(j1);var e=function(){var n=arguments,o=t?t.apply(this,n):n[0],i=e.cache;if(i.has(o))return i.get(o);var a=r.apply(this,n);return e.cache=i.set(o,a)||i,a};return e.cache=new(Xc.Cache||aa),e}Xc.Cache=aa;var Od=Xc;var H1=500;function W1(r){var t=Od(r,function(n){return e.size===H1&&e.clear(),n}),e=t.cache;return t}var Id=W1;var q1=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,X1=/\\(\\)?/g,Y1=Id(function(r){var t=[];return r.charCodeAt(0)===46&&t.push(""),r.replace(q1,function(e,n,o,i){t.push(o?i.replace(X1,"$1"):n||e)}),t}),Ld=Y1;function $1(r){return r==null?"":Bf(r)}var Nd=$1;function K1(r,t){return Ke(r)?r:ud(r,t)?[r]:Ld(Nd(r))}var sr=K1;var Z1=1/0;function Q1(r){if(typeof r=="string"||ko(r))return r;var t=r+"";return t=="0"&&1/r==-Z1?"-0":t}var Rn=Q1;function J1(r,t){t=sr(t,r);for(var e=0,n=t.length;r!=null&&e<n;)r=r[Rn(t[e++])];return e&&e==n?r:void 0}var el=J1;function eS(r,t){for(var e=-1,n=t.length,o=r.length;++e<n;)r[o+e]=t[e];return r}var Zo=eS;var Pd=Et?Et.isConcatSpreadable:void 0;function tS(r){return Ke(r)||fn(r)||!!(Pd&&r&&r[Pd])}var Md=tS;function Ed(r,t,e,n,o){var i=-1,a=r.length;for(e||(e=Md),o||(o=[]);++i<a;){var s=r[i];t>0&&e(s)?t>1?Ed(s,t-1,e,n,o):Zo(o,s):n||(o[o.length]=s)}return o}var Dd=Ed;function rS(r){var t=r==null?0:r.length;return t?Dd(r,1):[]}var Bd=rS;function nS(r){return $s(Ks(r,void 0,Bd),r+"")}var tl=nS;var oS=Js(Object.getPrototypeOf,Object),Qo=oS;var iS="[object Object]",aS=Function.prototype,sS=Object.prototype,Fd=aS.toString,lS=sS.hasOwnProperty,cS=Fd.call(Object);function uS(r){if(!It(r)||Qt(r)!=iS)return!1;var t=Qo(r);if(t===null)return!0;var e=lS.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Fd.call(e)==cS}var rl=uS;function pS(r,t,e){var n=-1,o=r.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);++n<o;)i[n]=r[n+t];return i}var Rd=pS;function fS(){this.__data__=new Dn,this.size=0}var kd=fS;function dS(r){var t=this.__data__,e=t.delete(r);return this.size=t.size,e}var Gd=dS;function hS(r){return this.__data__.get(r)}var Ud=hS;function mS(r){return this.__data__.has(r)}var Vd=mS;var gS=200;function yS(r,t){var e=this.__data__;if(e instanceof Dn){var n=e.__data__;if(!Bn||n.length<gS-1)return n.push([r,t]),this.size=++e.size,this;e=this.__data__=new aa(n)}return e.set(r,t),this.size=e.size,this}var zd=yS;function Jo(r){var t=this.__data__=new Dn(r);this.size=t.size}Jo.prototype.clear=kd;Jo.prototype.delete=Gd;Jo.prototype.get=Ud;Jo.prototype.has=Vd;Jo.prototype.set=zd;var nl=Jo;function vS(r,t){return r&&ar(t,Xo(t),r)}var jd=vS;function xS(r,t){return r&&ar(t,kr(t),r)}var Hd=xS;var Yd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Wd=Yd&&typeof module=="object"&&module&&!module.nodeType&&module,bS=Wd&&Wd.exports===Yd,qd=bS?at.Buffer:void 0,Xd=qd?qd.allocUnsafe:void 0;function SS(r,t){if(t)return r.slice();var e=r.length,n=Xd?Xd(e):new r.constructor(e);return r.copy(n),n}var ol=SS;function wS(r,t){for(var e=-1,n=r==null?0:r.length,o=0,i=[];++e<n;){var a=r[e];t(a,e,r)&&(i[o++]=a)}return i}var $d=wS;function TS(){return[]}var il=TS;var CS=Object.prototype,AS=CS.propertyIsEnumerable,Kd=Object.getOwnPropertySymbols,_S=Kd?function(r){return r==null?[]:(r=Object(r),$d(Kd(r),function(t){return AS.call(r,t)}))}:il,ei=_S;function OS(r,t){return ar(r,ei(r),t)}var Zd=OS;var IS=Object.getOwnPropertySymbols,LS=IS?function(r){for(var t=[];r;)Zo(t,ei(r)),r=Qo(r);return t}:il,al=LS;function NS(r,t){return ar(r,al(r),t)}var Qd=NS;function PS(r,t,e){var n=t(r);return Ke(r)?n:Zo(n,e(r))}var sl=PS;function MS(r){return sl(r,Xo,ei)}var Jd=MS;function ES(r){return sl(r,kr,al)}var ll=ES;var DS=Vt(at,"DataView"),cl=DS;var BS=Vt(at,"Promise"),ul=BS;var FS=Vt(at,"Set"),pl=FS;var eh="[object Map]",RS="[object Object]",th="[object Promise]",rh="[object Set]",nh="[object WeakMap]",oh="[object DataView]",kS=pn(cl),GS=pn(Bn),US=pn(ul),VS=pn(pl),zS=pn(Xs),lo=Qt;(cl&&lo(new cl(new ArrayBuffer(1)))!=oh||Bn&&lo(new Bn)!=eh||ul&&lo(ul.resolve())!=th||pl&&lo(new pl)!=rh||Xs&&lo(new Xs)!=nh)&&(lo=function(r){var t=Qt(r),e=t==RS?r.constructor:void 0,n=e?pn(e):"";if(n)switch(n){case kS:return oh;case GS:return eh;case US:return th;case VS:return rh;case zS:return nh}return t});var ti=lo;var jS=Object.prototype,HS=jS.hasOwnProperty;function WS(r){var t=r.length,e=new r.constructor(t);return t&&typeof r[0]=="string"&&HS.call(r,"index")&&(e.index=r.index,e.input=r.input),e}var ih=WS;var qS=at.Uint8Array,Yc=qS;function XS(r){var t=new r.constructor(r.byteLength);return new Yc(t).set(new Yc(r)),t}var ri=XS;function YS(r,t){var e=t?ri(r.buffer):r.buffer;return new r.constructor(e,r.byteOffset,r.byteLength)}var ah=YS;var $S=/\w*$/;function KS(r){var t=new r.constructor(r.source,$S.exec(r));return t.lastIndex=r.lastIndex,t}var sh=KS;var lh=Et?Et.prototype:void 0,ch=lh?lh.valueOf:void 0;function ZS(r){return ch?Object(ch.call(r)):{}}var uh=ZS;function QS(r,t){var e=t?ri(r.buffer):r.buffer;return new r.constructor(e,r.byteOffset,r.length)}var fl=QS;var JS="[object Boolean]",ew="[object Date]",tw="[object Map]",rw="[object Number]",nw="[object RegExp]",ow="[object Set]",iw="[object String]",aw="[object Symbol]",sw="[object ArrayBuffer]",lw="[object DataView]",cw="[object Float32Array]",uw="[object Float64Array]",pw="[object Int8Array]",fw="[object Int16Array]",dw="[object Int32Array]",hw="[object Uint8Array]",mw="[object Uint8ClampedArray]",gw="[object Uint16Array]",yw="[object Uint32Array]";function vw(r,t,e){var n=r.constructor;switch(t){case sw:return ri(r);case JS:case ew:return new n(+r);case lw:return ah(r,e);case cw:case uw:case pw:case fw:case dw:case hw:case mw:case gw:case yw:return fl(r,e);case tw:return new n;case rw:case iw:return new n(r);case nw:return sh(r);case ow:return new n;case aw:return uh(r)}}var ph=vw;function xw(r){return typeof r.constructor=="function"&&!Ho(r)?Vf(Qo(r)):{}}var dl=xw;var bw="[object Map]";function Sw(r){return It(r)&&ti(r)==bw}var fh=Sw;var dh=dn&&dn.isMap,ww=dh?qo(dh):fh,hh=ww;var Tw="[object Set]";function Cw(r){return It(r)&&ti(r)==Tw}var mh=Cw;var gh=dn&&dn.isSet,Aw=gh?qo(gh):mh,yh=Aw;var _w=1,Ow=2,Iw=4,vh="[object Arguments]",Lw="[object Array]",Nw="[object Boolean]",Pw="[object Date]",Mw="[object Error]",xh="[object Function]",Ew="[object GeneratorFunction]",Dw="[object Map]",Bw="[object Number]",bh="[object Object]",Fw="[object RegExp]",Rw="[object Set]",kw="[object String]",Gw="[object Symbol]",Uw="[object WeakMap]",Vw="[object ArrayBuffer]",zw="[object DataView]",jw="[object Float32Array]",Hw="[object Float64Array]",Ww="[object Int8Array]",qw="[object Int16Array]",Xw="[object Int32Array]",Yw="[object Uint8Array]",$w="[object Uint8ClampedArray]",Kw="[object Uint16Array]",Zw="[object Uint32Array]",ze={};ze[vh]=ze[Lw]=ze[Vw]=ze[zw]=ze[Nw]=ze[Pw]=ze[jw]=ze[Hw]=ze[Ww]=ze[qw]=ze[Xw]=ze[Dw]=ze[Bw]=ze[bh]=ze[Fw]=ze[Rw]=ze[kw]=ze[Gw]=ze[Yw]=ze[$w]=ze[Kw]=ze[Zw]=!0;ze[Mw]=ze[xh]=ze[Uw]=!1;function hl(r,t,e,n,o,i){var a,s=t&_w,l=t&Ow,u=t&Iw;if(e&&(a=o?e(r,n,o,i):e(r)),a!==void 0)return a;if(!lt(r))return r;var c=Ke(r);if(c){if(a=ih(r),!s)return Ys(r,a)}else{var p=ti(r),f=p==xh||p==Ew;if(Wo(r))return ol(r,s);if(p==bh||p==vh||f&&!o){if(a=l||f?{}:dl(r),!s)return l?Qd(r,Hd(a,r)):Zd(r,jd(a,r))}else{if(!ze[p])return o?r:{};a=ph(r,p,s)}}i||(i=new nl);var d=i.get(r);if(d)return d;i.set(r,a),yh(r)?r.forEach(function(g){a.add(hl(g,t,e,g,r,i))}):hh(r)&&r.forEach(function(g,v){a.set(v,hl(g,t,e,v,r,i))});var h=u?l?ll:Jd:l?kr:Xo,m=c?void 0:h(r);return qf(m||r,function(g,v){m&&(v=g,g=r[v]),zo(a,v,hl(g,t,e,v,r,i))}),a}var ml=hl;var Qw=1,Jw=4;function eT(r){return ml(r,Qw|Jw)}var sa=eT;function tT(r,t){return r!=null&&t in Object(r)}var Sh=tT;function rT(r,t,e){t=sr(t,r);for(var n=-1,o=t.length,i=!1;++n<o;){var a=Rn(t[n]);if(!(i=r!=null&&e(r,a)))break;r=r[a]}return i||++n!=o?i:(o=r==null?0:r.length,!!o&&jo(o)&&Nn(a,o)&&(Ke(r)||fn(r)))}var wh=rT;function nT(r,t){return r!=null&&wh(r,t,Sh)}var Th=nT;function oT(r){return function(t,e,n){for(var o=-1,i=Object(t),a=n(t),s=a.length;s--;){var l=a[r?s:++o];if(e(i[l],l,i)===!1)break}return t}}var Ch=oT;var iT=Ch(),Ah=iT;function aT(r,t,e){(e!==void 0&&!Pn(r[t],e)||e===void 0&&!(t in r))&&Vo(r,t,e)}var la=aT;function sT(r){return It(r)&&Mn(r)}var _h=sT;function lT(r,t){if(!(t==="constructor"&&typeof r[t]=="function")&&t!="__proto__")return r[t]}var ca=lT;function cT(r){return ar(r,kr(r))}var Oh=cT;function uT(r,t,e,n,o,i,a){var s=ca(r,e),l=ca(t,e),u=a.get(l);if(u){la(r,e,u);return}var c=i?i(s,l,e+"",r,t,a):void 0,p=c===void 0;if(p){var f=Ke(l),d=!f&&Wo(l),h=!f&&!d&&Zs(l);c=l,f||d||h?Ke(s)?c=s:_h(s)?c=Ys(s):d?(p=!1,c=ol(l,!0)):h?(p=!1,c=fl(l,!0)):c=[]:rl(l)||fn(l)?(c=s,fn(s)?c=Oh(s):(!lt(s)||Go(s))&&(c=dl(l))):p=!1}p&&(a.set(l,c),o(c,l,n,i,a),a.delete(l)),la(r,e,c)}var Ih=uT;function Lh(r,t,e,n,o){r!==t&&Ah(t,function(i,a){if(o||(o=new nl),lt(i))Ih(r,t,a,e,Lh,n,o);else{var s=n?n(ca(r,a),i,a+"",r,t,o):void 0;s===void 0&&(s=i),la(r,a,s)}},kr)}var Nh=Lh;function pT(r){var t=r==null?0:r.length;return t?r[t-1]:void 0}var Ph=pT;function fT(r,t){return t.length<2?r:el(r,Rd(t,0,-1))}var Mh=fT;var dT=Kf(function(r,t,e){Nh(r,t,e)}),co=dT;function hT(r,t){return t=sr(t,r),r=Mh(r,t),r==null||delete r[Rn(Ph(t))]}var Eh=hT;function mT(r){return rl(r)?void 0:r}var Dh=mT;var gT=1,yT=2,vT=4,xT=tl(function(r,t){var e={};if(r==null)return e;var n=!1;t=Hs(t,function(i){return i=sr(i,r),n||(n=i.length>1),i}),ar(r,ll(r),e),n&&(e=ml(e,gT|yT|vT,Dh));for(var o=t.length;o--;)Eh(e,t[o]);return e}),ni=xT;function bT(r,t,e,n){if(!lt(r))return r;t=sr(t,r);for(var o=-1,i=t.length,a=i-1,s=r;s!=null&&++o<i;){var l=Rn(t[o]),u=e;if(l==="__proto__"||l==="constructor"||l==="prototype")return r;if(o!=a){var c=s[l];u=n?n(c,l,s):void 0,u===void 0&&(u=lt(c)?c:Nn(t[o+1])?[]:{})}zo(s,l,u),s=s[l]}return r}var Bh=bT;function ST(r,t,e){for(var n=-1,o=t.length,i={};++n<o;){var a=t[n],s=el(r,a);e(s,a)&&Bh(i,sr(a,r),s)}return i}var Fh=ST;function wT(r,t){return Fh(r,t,function(e,n){return Th(r,n)})}var Rh=wT;var TT=tl(function(r,t){return r==null?{}:Rh(r,t)}),oi=TT;var ua;(o=>{o.identity={...Rs.identity,hiddenMatrix:On.identity};function t(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}o.fromObject=t;function e(i,a){return{position:a?.position||i.position,rotation:a?.rotation||i.rotation,scale:a?.scale||i.scale,hiddenMatrix:a?.hiddenMatrix||i.hiddenMatrix}}o.merge=e;function n(i,a){return{position:Bo.isEqual(i.position,a.position)?null:a.position,rotation:Bo.isEqual(i.rotation,a.rotation)?null:a.rotation,scale:Bo.isEqual(i.scale,a.scale)?null:a.scale,hiddenMatrix:On.isEqual(i.hiddenMatrix,a.hiddenMatrix)?null:a.hiddenMatrix}}o.diff=n})(ua||(ua={}));var $c;(t=>t.defaultData={fusedBody:!0,rigidBody:"positioned",density:1,pointMass:0,gravityScale:1,friction:.5,damping:0,restitution:.2,colliderType:"convex",enabledRotation:[!0,!0,!0],enabledTranslation:[!0,!0,!0]})($c||($c={}));var hr;(t=>t.defaultData={states:new Te,events:new Te,visible:!0,raycastLock:!1,physics:null,...ua.identity})(hr||(hr={}));var kh;(t=>t.defaultData={type:"Empty",...hr.defaultData})(kh||(kh={}));var uo;(t=>t.defaultData={type:"Mesh",...hr.defaultData,...Vs.defaultData})(uo||(uo={}));var gl;(t=>t.defaultData={...hr.defaultData,...ua.identity,...so.defaultData})(gl||(gl={}));var Gh;(t=>{function r(e){return{...hr.defaultData,...Us.defaultData(e)}}t.defaultData=r})(Gh||(Gh={}));var Uh;(o=>(o.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:On.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:$c.defaultData,states:new Te,events:new Te,...so.defaultData},o.defaultMeshObject={name:"Rectangle",...hr.defaultData,...uo.defaultData,geometry:Ln.defaultData("RectangleGeometry"),material:Zt.defaultTwoLayerData("basic","layer1","layer2")},o.defaultBooleanObject={name:"Boolean",...hr.defaultData,...uo.defaultData,geometry:Ln.defaultData("BooleanGeometry"),material:Zt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultTextObject={name:"Text",...hr.defaultData,...uo.defaultData,geometry:Ln.defaultData("TextGeometry"),material:Zt.defaultTwoLayerData("phong","layer1","layer2")}))(Uh||(Uh={}));var Vh;(e=>{function r(n,o){if(o===void 0)return n;let i={...n};return"material"in i&&"material"in o&&o.material&&(i.material=Lc(i.material,a=>{if(typeof a!="string")for(let[s,l]of Object.entries(o.material.layers)){let u=a.layers.data(s);u&&co(u,l)}}).data),i.materials&&o.materials&&(i.materials=Lc(i.materials,a=>{for(let s=0;s<i.materials.length;s++){let l=o.materials[s];if(typeof l!="string")for(let[u,c]of Object.entries(l.layers)){let p=a[s]?.layers?.data(u);p&&co(p,c)}}}).data),i}e.patchMaterialState=r;function t(n,o){if(o===void 0)return n;let i={...n};if(Object.assign(i,ua.merge(i,o)),Fo.is(n.type)){i.orthographic={...i.orthographic},i.perspective={...i.perspective};let a=o;a.orthographic?.zoom!==void 0&&(i.orthographic.zoom=a.orthographic.zoom),a.perspective?.zoom!==void 0&&(i.perspective.zoom=a.perspective.zoom),a.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=a.isUpVectorFlipped),a.targetOffset!==void 0&&(i.targetOffset=a.targetOffset)}else if(n.type==="Mesh")i.geometry={...i.geometry},Object.assign(i.geometry,o.geometry),i=r(i,o);else if(Gs.is(n.type)){let a=o;a.intensity!==void 0&&(i.intensity=a.intensity),a.color!==void 0&&(typeof a.color=="string"?i.color=a.color:i.color=Ut.clone(a.color))}return i}e.patch=t})(Vh||(Vh={}));var ii;(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})(ii||(ii={}));var yl;(t=>t.defaultData={orbitControls:ii.defaultData,playCamera:null,withBackground:!0,preventScroll:!1,settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:1,stopMode:"manual",duration:5e3},web:{compress:!0,preset:1,preload:!0}},stopRaycast:!0,joystickSizeAndXYOffset:Array(12).fill(0).map((e,n)=>{let o=0,i=0;return n<5?i=-30:n<10&&(i=30),n===0||n===10||n===5?o=30:(n===4||n===11||n===9)&&(o=-30),[120,[o,i],"show"]}),gameControlObject:null})(yl||(yl={}));function po(r,t){return Object.setPrototypeOf(r,t),r}function zh(r){return Array.isArray(r)?r:[r]}var vl;(e=>{function r(){let n={};return n["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},po(n,He.prototype)}e.defaultColors=r;function t(){return{materials:new He,images:new He,colors:new He,audios:new He,fonts:new He,penumbraSize:[.5,.5,.5]}}e.emptyData=t})(vl||(vl={}));var pa=require("three");function jh(r){r.layers.forEach(t=>{if(t.type==="depth"&&t.colorA!==void 0){let e=t.colorA,n=t.colorB,o=[[e.r,e.g,e.b,e.a],[n.r,n.g,n.b,n.a]],i=[0,1];for(let s=2;s<10;s++)o.push(o[1]),i.push(1);let a={...oi(kt(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,a)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={...kt(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function Kc(r,t){Object.values(r.shared.materials).forEach(e=>t(e))}function Zc(r,t){r.scene.objects.traverse((e,n)=>{"materials"in n?n.materials.forEach(o=>{typeof o!="string"&&t(o)}):"material"in n&&typeof n.material!="string"&&t(n.material)})}function CT(r){Object.assign(r.scene.publish,{orbitControls:{...ii.defaultData,...kt(r.scene.publish.orbitControls)}})}function AT(r){Object.assign(r.scene.publish.settings,{video:{...yl.defaultData.settings.video,...kt(r.scene.publish.settings.video)}})}function _T(r){function t(e){if(e.layers){for(let n of Object.values(e.layers))if(n){for(let[o,i]of Object.entries(n))if((_f.includes(o)||typeof i=="boolean")&&delete n[o],o==="texture")for(let[a,s]of Object.entries(i))(Of.includes(a)||typeof s=="boolean")&&delete i[a]}}}r.scene.objects.traverse((e,n)=>{n.states.forEach(o=>{let i=o;i.material?t(i.material):i.materials&&i.materials.forEach(a=>{t(a)})})})}function OT(r){r.scene.publish.withBackground=!0}function IT(r){r.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function LT(r){r.scene.objects.traverse((t,e)=>{let n=e.cloner;n&&(n.radial.scale=n.radial.scale.map(o=>o+1),n.linear.scale=n.linear.scale.map(o=>o+1))})}function NT(r){r.scene.objects.traverse((t,e)=>{let n=e.geometry;n&&(n.type==="DodecahedronGeometry"||n.type==="IcosahedronGeometry")&&(n.detail=Math.round(n.detail))})}function PT(r){r.scene.objects.traverse((t,e)=>{let n=r.scene.objects.parent(t);e.type==="Mesh"&&(!n||r.scene.objects.data(n).geometry?.type!=="BooleanGeometry")&&(e.booleanExclude=null)})}function Hh(r){r.layers===void 0&&Object.assign(r,Zt.defaultTwoLayerData("lambert"))}function Qc(r){!r.layers||r.layers.forEach(t=>{if(t.type==="depth"&&t.colors.length===10){let e=[...t.colors];e.push(t.colors[9]);let n=[...t.steps];n.push(t.steps[9]);let o={...kt(t),colors:e,steps:n};Object.assign(t,o)}})}function MT(r){r.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function Wh(r){r.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(n=>{typeof n!="string"&&Qc(n)}):"material"in e&&typeof e.material!="string"&&Qc(e.material)}),Object.values(r.shared.materials).forEach(t=>Qc(t))}function ET(r){r.scene.environment.ambientLight.softShadows=!1,r.scene.environment.ambientLight.softShadowQuality="low",r.scene.objects.traverse((t,e)=>{(e.type==="DirectionalLight"||e.type==="SpotLight")&&(e.shadowResolution=1024,e.shadowRadius=1,e.depth=1e5)}),r.shared.penumbraSize=new Array(5).fill(.5)}function DT(r){r.shared.audios=po({},He.prototype)}function BT(r){let t=r.shared.materials;Object.entries(t).forEach(([e,n])=>{if(!n.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 FT(r){Object.entries(kt(r.shared.images)).filter(n=>n[1].asset===!1).map(n=>n[0]).forEach(n=>{delete r.shared.images[n]}),Object.entries(kt(r.shared.audios)).filter(n=>n[1].asset===!1).map(n=>n[0]).forEach(n=>{delete r.shared.audios[n]})}function RT(r){r.scene.publish.settings.web.preload=!1}function qh(r){r.layers&&r.layers.forEach(t=>{t.type==="depth"&&t.num!==void 0&&(t.colors=t.colors.slice(0,t.num),t.steps=t.steps.slice(0,t.num),delete t.num)})}function kT(r){r.shared.fonts=po({},He.prototype)}function GT(r){return r.replace(".typeface","").replace(/optimer/gi,"open sans").replace("space_mono","space mono").replace(/alma_mono/gi,"varela round").replace(/droid_sans_mono/gi,"noto sans mono").replace(/droid_sans|gentilis|gnomon_(simple|foreground)|helvetiker/gi,"roboto").replace(/droid_serif/gi,"roboto slab").replace("_sans"," sans").replace("crimson_text","crimson text").replace("medium_medium","medium").replace("fatface_fatface","fatface").replace("100hairline","thin").replace("200thin","extralight").replace("300light","light").replace("500medium","medium").replace("600semi","semibold").replace("800heavy","extrabold").replace("900black","black").replace(/bodoni_(11|16|24|36|48|72|96)([^_])/gi,"bodoni_$1_$2").replace(/bodoni_(11|16|24|36|48|72|96)/gi,"bodoni moda").replace(/(thin|hairline)(_regular)?/gi,"100").replace(/(extra|ultra)light(_regular)?/gi,"200").replace(/light(_regular)?/gi,"300").replace(/_book|_normal|_roman/gi,"_regular").replace(/medium(_regular)?/gi,"500").replace(/(semi|demi)bold(_regular)?/gi,"600").replace(/(extra|ultra)bold(_regular)?/gi,"800").replace(/bold(_regular)?/gi,"700").replace(/(black|heavy|fatface)(_regular)?/gi,"900").replace(/([1-9]00)_italic/gi,"$1italic").replace(/regularitalic/gi,"italic").replace(/regularitalic/gi,"italic").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function UT(r){let t=[];r.scene.objects.traverse((e,n)=>{let o=n;if(o.type==="TextFrame"){let i=Zt.defaultTwoLayerData("basic"),a=typeof o.color=="string"?r.shared.colors[o.color]:o.color;i.layers[1].data.color={r:a.r,g:a.g,b:a.b},i.layers[1].data.alpha=o.alpha;let s=GT(o.font);r.shared.fonts[s]===void 0&&(r.shared.fonts[s]={name:s});let l={name:o.name,...hr.defaultData,...uo.defaultData,flatShading:!1,wireframe:!1,geometry:{...Ln.defaultData("TextGeometry"),width:o.width,height:o.height,font:s,depth:0,horizontalAlign:o.horizontalAlign,verticalAlign:o.verticalAlign,fontSize:o.fontSize*1.40625,lineHeight:o.lineHeight/1.40625,letterSpacing:o.letterSpacing-1,text:o.text,textTransform:o.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:i,states:kt(o.states),events:kt(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},u=kt(r.scene.objects).parent(e);r.scene.objects.insertAfter(u??null,e,[{id:e+"new",data:l,children:[]}]),t.push(e)}}),t.forEach(e=>{r.scene.objects.delete(e)})}function VT(r){let t={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};r.scene.objects.traverse((e,n)=>{n.events.forEach(o=>{if(!!t[Number(o.type)])if(Object.assign(o,{type:t[Number(o.type)]}),o.type==="Audio"&&"audioEvent"in o&&(Object.assign(o,{playAudio:o.audioEvent}),delete o.audioEvent),o.type==="GameControl")Object.assign(o,{gameActions:{idle:new Te,move:new Te,jump:new Te}});else{let i=new Te;Object.assign(o,{actions:i}),(o.type==="MouseDown"||o.type==="MouseUp"||o.type==="KeyDown"||o.type==="KeyUp")&&"url"in o&&i.push({fi:0,id:pa.MathUtils.generateUUID(),data:{type:"Link",url:o.url,delay:0}}),"targets"in o&&(o.targets.forEach((a,s,l)=>{let u={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},c={easing:a.easing,duration:a.duration};a.easing===6?Object.assign(c,oi(a,"mass","stiffness","damping","velocity")):a.easing===5&&Object.assign(c,{control1:{...a.control1},control2:{...a.control2}});let p={repeat:a.repeat?-1:0,delay:a.delay,delayDirection:a.delayDirection,direction:a.cycle&&a.rewind?"pingpong-rewind":a.cycle?"pingpong":"normal"},f={state:a.state,...p,...c},d={allowSlerp:!0,type:"Transition",object:a.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new Te({fi:0,id:pa.MathUtils.generateUUID(),data:u},{fi:1,id:pa.MathUtils.generateUUID(),data:f})};i.push({fi:l,id:s,data:d})}),delete o.targets)}})})}function zT(r){r.scene.objects.traverse((t,e)=>{function n(o,i){let a=new Te,s=[];if(e.events.forEach((l,u,c)=>{if(l.type==="Audio"&&l.trigger===i){let p;s.push(u),l.interaction==="play"?p={...oi(l,"interaction","audio","delay","volume","loop"),triggerAfter:"after"in l?l.after:void 0,toggle:"after"in l?l.toggle:void 0,type:"Audio"}:(l.interaction==="pause"||l.interaction==="stop")&&(p={...oi(l,"interaction","delay","object","playAudio"),type:"Audio"}),p&&a.push({fi:c,id:u,data:p})}}),s.forEach(l=>e.events.delete(l)),a.length){let l=e.events.find(u=>u.type===o)?.data;l?"actions"in l&&l.actions.insertBefore(null,a):e.events.insertBefore(null,[{id:pa.MathUtils.generateUUID(),data:{type:o,actions:a}}])}}n("Start","start"),n("MouseDown","mouseDown"),n("MouseUp","mouseUp"),n("KeyDown","keyDown"),n("KeyUp","keyUp")})}var Xh=21;function Yh(r){let t=r.schema??0;t!==Xh&&(console.warn("updating from ",t,"to ",Xh),t<1&&(Zc(r,jh),Kc(r,jh),r.schema=1),t<2&&(CT(r),r.schema=2),t<3&&(_T(r),r.schema=3),t<4&&(OT(r),r.schema=4),t<5&&(IT(r),r.schema=5),t<6&&(LT(r),r.schema=6),t<7&&(NT(r),r.schema=7),t<8&&(PT(r),r.schema=8),t<9&&(Wh(r),r.schema=9),t<10&&(MT(r),r.schema=10),t<11&&(ET(r),r.schema=11),t<12&&(Wh(r),r.schema=12),t<13&&(DT(r),r.schema=13),t<14&&(BT(r),r.schema=14),t<15&&(FT(r),r.schema=15),t<16&&(RT(r),r.schema=16),t<17&&(Zc(r,qh),Kc(r,qh),r.schema=17),t<18&&(Zc(r,Hh),Kc(r,Hh),r.schema=18),t<19&&(AT(r),r.schema=19),t<20&&(kT(r),UT(r),r.schema=20),t<21&&(VT(r),zT(r),r.schema=21))}var xl;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(xl||(xl={}));var st=require("three");var $h=require("three"),Jc=class extends $h.Object3D{},bl=class extends Jc{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 fo=class extends st.Object3D{constructor(e,n={}){super();this.object=e;let o=e.recursiveBBox.getSize(new st.Vector3),i=.1;this.parameters=ks.defaultData(o.toArray(),i),co(this.parameters,n),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 n=0,o=e-this.children.length;n<o;++n){let i=new bl(this.object);i.visible=!0,this.add(i),this.parameters.hideBase&&this.setHideBase(!0)}else for(let n=0,o=this.children.length-e;n<o;++n)this.remove(this.children[0])}_updateRadial(e){let n=e.radial,o=n.start*st.MathUtils.DEG2RAD,i=n.end*st.MathUtils.DEG2RAD,a=o-i,s=new st.Euler(n.rotation[0]*st.MathUtils.DEG2RAD,n.rotation[1]*st.MathUtils.DEG2RAD,n.rotation[2]*st.MathUtils.DEG2RAD),l;switch(n.axis){case"z":l=new st.Vector3(0,0,1);break;case"y":l=new st.Vector3(0,1,0);break;default:case"x":l=new st.Vector3(1,0,0);break}for(let[u,c]of this.children.entries()){c.scale.x=n.scale[0],c.scale.y=n.scale[1],c.scale.z=n.scale[2],c.position.setScalar(0);let p=a/e.count*u-o;switch(n.axis){case"x":c.rotation.set(0,p,0);break;case"y":c.rotation.set(0,0,p);break;case"z":c.rotation.set(p,0,0);break}c.translateOnAxis(l,n.radius),c.position.x+=n.position[0],c.position.y+=n.position[1],c.position.z+=n.position[2],n.alignment===!0?(c.rotation.x+=s.x,c.rotation.y+=s.y,c.rotation.z+=s.z):c.rotation.copy(s)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let n=e.linear,o=new st.Euler(n.rotation[0]*st.MathUtils.DEG2RAD,n.rotation[1]*st.MathUtils.DEG2RAD,n.rotation[2]*st.MathUtils.DEG2RAD);for(let[i,a]of this.children.entries())a.scale.x=1+(n.scale[0]-1)*i,a.scale.y=1+(n.scale[1]-1)*i,a.scale.z=1+(n.scale[2]-1)*i,a.rotation.x=o.x*i,a.rotation.y=o.y*i,a.rotation.z=o.z*i,a.position.x=n.position[0]*i,a.position.y=n.position[1]*i,a.position.z=n.position[2]*i}_updateGrid(e){let n=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},a=new st.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 s=0;s<o.count[0];s++)for(let l=0;l<o.count[1];l++)for(let u=0;u<o.count[2];u++){let c=this.children[n++];c.scale.setScalar(1),c.rotation.set(0,0,0),c.position.x=o.size[0]*s-a.x,c.position.y=o.size[1]*l-a.y,c.position.z=o.size[2]*u-a.z}}else for(let i=0;i<o.count[0];i++)for(let a=0;a<o.count[1];a++)for(let s=0;s<o.count[2];s++){let l=this.children[n++];l.scale.setScalar(1),l.rotation.set(0,0,0),l.position.x=o.size[0]*i,l.position.y=-o.size[1]*a,l.position.z=-o.size[2]*s}}fromClonerState(e){return e.hideBase!==void 0&&this.setHideBase(e.hideBase),co(this.parameters,e),this.update(),this}};var sn=require("three");var Ye=require("three");var Kh=require("three"),Gr=r=>{var t;return t=class extends r{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new Kh.BoxBufferGeometry(30,30,30),t};var Ct=require("three");var Lt=require("three"),Sl=new Lt.Ray,eu=new Lt.Sphere,Zh=new Lt.Matrix4,Ur=(r,t,e,n,o=!1)=>{let i=t,a=r.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),eu.copy(i.boundingSphere),eu.applyMatrix4(a),e.ray.intersectsSphere(eu)===!1||(Zh.copy(a).invert(),Sl.copy(e.ray).applyMatrix4(Zh),i.boundingBox!==null&&Sl.intersectsBox(i.boundingBox)===!1))return;let s,l,u,c,p=i.index,f=i.attributes.position,d=i.drawRange,h,m;if(o===!1){let v=Math.max(0,d.start),x=Math.min(p.count,d.start+d.count);for(h=v,m=x;h<m;h+=3)if(l=p.getX(h),u=p.getX(h+1),c=p.getX(h+2),s=g(r,e,Sl,f,l,u,c),s){s.faceIndex=Math.floor(h/3),n.push(s);return}}else{let x=i.attributes.position,b=new Lt.Vector3,w=new Lt.Vector3,S=new Lt.Vector3,_=new Lt.Vector3,T=2,O=1/((r.scale.x+r.scale.y+r.scale.z)/3),A=O*O,I=Math.max(0,d.start),C=Math.min(x.count,d.start+d.count);for(let N=I,P=C-1;N<P;N+=T){if(b.fromBufferAttribute(x,N),w.fromBufferAttribute(x,N+1),Sl.distanceSqToSegment(b,w,_,S)>A)continue;_.applyMatrix4(r.matrixWorld);let $=e.ray.origin.distanceTo(_);$<e.near||$>e.far||n.push({distance:$,point:S.clone().applyMatrix4(r.matrixWorld),object:r})}}function g(v,x,b,w,S,_,T){let y=new Lt.Vector3,O=new Lt.Vector3,A=new Lt.Vector3,I=new Lt.Vector3,C=new Lt.Vector3;if(y.fromBufferAttribute(w,S),O.fromBufferAttribute(w,_),A.fromBufferAttribute(w,T),b.intersectTriangle(y,O,A,!1,I)===null)return null;C.copy(I),C.applyMatrix4(v.matrixWorld);let P=x.ray.origin.distanceTo(C);return P<x.near||P>x.far?null:{faceIndex:1,distance:P,point:C.clone(),object:v}}};var wl=new Ct.Vector3,lr=new Ct.Camera,tu=class extends Ct.LineSegments{constructor(e){let n=new Ct.BufferGeometry,o=new Ct.LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],a=[],s={},l=new Ct.Color(15711266),u=new Ct.Color(15711266),c=new Ct.Color(2857471);p("n1","n2",l),p("n2","n4",l),p("n4","n3",l),p("n3","n1",l),p("f1","f2",l),p("f2","f4",l),p("f4","f3",l),p("f3","f1",l),p("n1","f1",l),p("n2","f2",l),p("n3","f3",l),p("n4","f4",l),p("p","n1",u),p("p","n2",u),p("p","n3",u),p("p","n4",u),p("u1","u2",c),p("u2","u3",c),p("u3","u1",c);function p(d,h,m){f(d,m),f(h,m)}function f(d,h){i.push(0,0,0),a.push(h.r,h.g,h.b),s[d]===void 0&&(s[d]=[]),s[d].push(i.length/3-1)}n.setAttribute("position",new Ct.Float32BufferAttribute(i,3)),n.setAttribute("color",new Ct.Float32BufferAttribute(a,3));super(n,o);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update()}update(){let e=this.geometry,n=this.pointMap,o=!0;lr.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let i=1,a=1,s=o?.8:1e-4;mr("n1",n,e,lr,-i,-a,s),mr("n2",n,e,lr,i,-a,s),mr("n3",n,e,lr,-i,a,s),mr("n4",n,e,lr,i,a,s);let l=s;mr("f1",n,e,lr,-i,-a,l),mr("f2",n,e,lr,i,-a,l),mr("f3",n,e,lr,-i,a,l),mr("f4",n,e,lr,i,a,l);let u=l,c=.5;mr("u1",n,e,lr,i*.7*c,a*1.1,u),mr("u2",n,e,lr,-i*.7*c,a*1.1,u),mr("u3",n,e,lr,0,a*(1.1+.9*c),u),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function mr(r,t,e,n,o,i,a){wl.set(o,i,a).unproject(n);let s=t[r];if(s!==void 0){let l=e.getAttribute("position");for(let u=0,c=s.length;u<c;u++)l.setXYZ(s[u],wl.x,wl.y,wl.z)}}var Tl=class extends Gr(tu){constructor(e){super(e);this.object=e;this.object=e,this.name=`CombinedCameraHelper: ${e.uuid}`}updateMatrixWorld(e){super.updateMatrixWorld(e),this.updateTarget()}updateTarget(){let e=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(e)}raycast(e,n){Ur(this.object,this.geometry,e,n,!0)}};var Qh=require("three");var ai=class extends Gr(Qh.DirectionalLightHelper){constructor(e,n=15,o=10066329){super(e,n,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,n){Ur(this.object,ai.geometryHelper,e,n)}};var Jh=require("three");var si=class extends Gr(Jh.AxesHelper){constructor(e,n=15){super(n);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,n){Ur(this.object,si.geometryHelper,e,n)}update(){}};var em=require("three");var li=class extends Gr(em.PointLightHelper){constructor(e,n=15,o=6710886){super(e,n,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,n){Ur(this.object,li.geometryHelper,e,n)}};var Al=require("three");var Cl=class extends Gr(Al.SpotLightHelper){constructor(e,n=6710886){super(e,n);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,n){Ur(this.object,Cl.geometryHelper,e,n)}update(){if(this.object!==void 0){let e=Cl._vector,n=this.object.distance?this.object.distance:1e3,o=n*Math.tan(this.object.angle);this.cone.scale.set(o,o,n),e.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(e);let i=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let a=0,s=this.cone.material.length;a<s;a++)this.cone.material[a].color.set(i);else this.cone.material.color.set(i)}}},da=Cl;da._vector=new Al.Vector3;var we=require("three"),ha=1e-12,ci=class{constructor(t){this.position=new we.Vector2;this.startPosition=new we.Vector2;this.uuid=we.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 ci(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},ui=class extends ci{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new ui(this.parent).copy(this)}},gr=class extends ci{constructor(e,n){super(n);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new ui(this),new ui(this))}static create(e,n){let o=new gr(e,new we.Vector2(...n.position));return o.controls[0].position.set(...n.controlPrevious.position),o.controls[1].position.set(...n.controlNext.position),o.roundness=n.roundness,o.areControlsDirectionsMirrored=n.areControlsDirectionsMirrored,o}getOppositeControl(e){let n=this.controls.indexOf(e);return n===0?this.controls[1]:n===1?this.controls[0]:null}applyOffsetToControls(e,n=1){for(let o=0,i=this.controls.length;o<i;o++){let a=this.controls[o];this.position.distanceTo(a.position)<=n?a.position.copy(this.position):a.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 gr(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),n=this.curveAfter?.getTangentAt(0);return[e,n]}computeNormals(e=new we.Vector2,n=new we.Vector2){let[o,i]=this.computeTangents();return o&&i&&(tm(o,e),tm(i,n)),[e,n]}computeTangent(e=new we.Vector2){let[n,o]=this.computeTangents();return n&&o&&e.copy(n).add(o).normalize(),e}computeNormal(e=new we.Vector2){let[n,o]=this.computeNormals();return e.copy(n).add(o).normalize(),e}};function tm(r,t=new we.Vector2){let e=r.length();return t.set(-r.y/e,r.x/e)}var nu=r=>r,pi=new we.Vector2,_l=new we.Vector2,HT=new we.Vector2,WT=new we.Vector2,qT=new we.Vector2,XT=new we.Vector2,nm=new we.Vector3,om=new we.Vector3;function im(r){let t=new we.Vector2;t.addVectors(r.v0,pi.subVectors(r.v1,r.v0).multiplyScalar(2/3));let e=new we.Vector2;return e.addVectors(r.v2,_l.subVectors(r.v1,r.v2).multiplyScalar(2/3)),new we.CubicBezierCurve(r.v0,t,e,r.v2)}function ma(r,t,e=Number.EPSILON){return Math.abs(r-t)<e}function YT(r,t,e=Number.EPSILON){return r.distanceTo(t)<e}function $T(r,t,e=Number.EPSILON){return r.distanceTo(t)<e}function ou(r,t,e){let n=Math.sqrt(Math.pow(t.x-r.x,2)+Math.pow(t.y-r.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-r.x,2)+Math.pow(e.y-r.y,2));return Math.acos((o*o+n*n-i*i)/(2*o*n))}function am(r,t,e){return rm(r,t)&&rm(t,e)&&ru(r.position,t.position,e.position)}function ru(r,t,e){return pi.copy(t).sub(r).cross(_l.copy(e).sub(r))===0}function sm(r,t,e,n,o){let i=Math.sqrt(Math.pow(t.x-r.x,2)+Math.pow(t.y-r.y,2)),a=(r.y+t.y)/2,s=(r.x+t.x)/2,l=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(r.y-t.y)/i,u=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(t.x-r.x)/i;return n.set(s+l,a+u),o.set(s-l,a-u),[n,o]}function lm(r,t,e){let n=r.distanceTo(e),o=t.distanceTo(e);return n<o?t:r}function cm(r,t,e,n,o,i){let a=t.x-r.x,s=t.y-r.y,l=e.x-r.x,u=e.y-r.y,c=Math.sqrt((a+l)*(a+l)+(s+u)*(s+u)),p;return ou(t,r,e)>Math.PI&&(c*=-1),ma(u,s)?p=(s+u)*(n/c-.5)*8/3/(a-l):p=(a+l)*(n/c-.5)*8/3/(u-s),o.set(t.x-p*s,t.y+p*a),i.set(e.x+p*u,e.y-p*l),[o,i]}function iu(r,t){return r.position.equals(r.controls[1].position)&&t.position.equals(t.controls[0].position)}function rm(r,t){return ru(r.position,r.controls[1].position,t.position)&&ru(r.position,t.controls[0].position,t.position)}function um(r,t,e,n,o=.5){let i=pi.subVectors(t,r).multiplyScalar(o).add(r),a=_l.subVectors(e,t).multiplyScalar(o).add(t),s=HT.subVectors(n,e).multiplyScalar(o).add(e),l=i,u=WT.subVectors(a,i).multiplyScalar(o).add(i),c=qT.subVectors(s,a).multiplyScalar(o).add(a),p=s,f=XT.subVectors(c,u).multiplyScalar(o).add(u);return[r.x,r.y,l.x,l.y,u.x,u.y,f.x,f.y,c.x,c.y,p.x,p.y,n.x,n.y]}function pm(r,t,e=12,n=!0){let o=om.set(0,0,0),i,a=0,s=[];for(let l=0;l<t.length;l++){let u=nu(t[l]),c=pi,p=kn(u,e);s.push(p);for(let f=0;f<=p;f++)if(u instanceof we.CubicBezierCurve||u instanceof we.QuadraticBezierCurve||u instanceof we.LineCurve){if(u.getPoint(f/p,c),o.set(c.x,c.y,0),i!==void 0&&$T(i,o))continue;i===void 0&&(i=nm),i.copy(o),r.setXYZ(a,o.x,o.y,o.z),a++}}return n&&a>1&&!(r.getX(a-1)===r.getX(0)&&r.getY(a-1)===r.getY(0)&&r.getZ(a-1)===r.getZ(0))&&(r.setXYZ(a,r.getX(0),r.getY(0),r.getZ(0)),a++),r}function fm(r,t,e,n=12,o=!0){let i=om.set(0,0,0),a=0,s=[];for(let l=0;l<t.length;l++){if(e[l]===!1)continue;let u,c=nu(t[l]),p=pi,f=kn(c,n);s.push(f);for(let d=0;d<=f;d++)if(c instanceof we.CubicBezierCurve||c instanceof we.QuadraticBezierCurve||c instanceof we.LineCurve){if(c.getPoint(d/f,p),i.set(p.x,p.y,0),u?.equals(i))continue;u===void 0?u=nm:(r.setXYZ(a,u.x,u.y,u.z),a++,r.setXYZ(a,i.x,i.y,i.z),a++),u.copy(i)}}return o&&a>1&&!(r.getX(a-1)===r.getX(0)&&r.getY(a-1)===r.getY(0)&&r.getZ(a-1)===r.getZ(0))&&(r.setXYZ(a,r.getX(0),r.getY(0),r.getZ(0)),a++),s}function au(r,t=12,e=!1){let n=[];for(let o=0,i=r.length;o<i;o++){let a=r[o],s=0;if(e&&a.roundedCurveCorner!==void 0){let l=kn(a.roundedCurveCorner,t)*.5;o>0&&(n[o-1]+=l),s+=l}a.curveAfter!==void 0&&(s+=kn(a.curveAfter,t)),n.push(s)}return r.length>0&&e&&r[0].roundedCurveCorner!==void 0&&(n[r.length-1]+=kn(r[0].roundedCurveCorner,t)*.5),n}function kn(r,t=12){return r&&r instanceof we.EllipseCurve?t*2:r&&(r instanceof we.LineCurve||r instanceof we.LineCurve3)?1:r&&r instanceof we.SplineCurve?t*r.points.length:t}function dm(r,t,e=12,n=!0){let o,i=0;for(let a=0;a<t.length;a++){let s=nu(t[a]),l=kn(s,e),u=pi;for(let c=0;c<=l;c++)if(s instanceof we.CubicBezierCurve||s instanceof we.QuadraticBezierCurve||s instanceof we.LineCurve){if(s.getPoint(c/l,u),o!==void 0&&YT(o,u,ha))continue;o===void 0&&(o=_l),o.copy(u),r.push(u.x,u.y),i++}}return ma(r[0],r[r.length-2],ha)&&ma(r[1],r[r.length-1],ha)&&(r.pop(),r.pop()),n&&i>1&&!(ma(r[i-1],r[1],ha)&&ma(r[i-2],r[0],ha))&&(r.push(r[0],r[1]),i++),r}var qn=require("three");var Ie=require("three");var su=new Ie.Vector2,KT=new Ie.Vector2,ZT=new Ie.Vector2,QT=new Ie.Vector2,JT=new Ie.Vector2,eC=new Ie.Vector2,Ne=class extends Ie.Shape{constructor(e=100,n=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new Ie.EventDispatcher;this.plane=new Ie.Plane(new Ie.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=Ie.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=n}static createFromState(e,n,o){let i=new Ne;return i.isClosed=e.isClosed,i.points=e.points.map(a=>gr.create(a.id,a.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(a=>Ne.createFromState(a)),n!==void 0&&o!==void 0&&i.applySize(n,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 n=0,o=this.points.length;n<o;n++)this.points[n].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(n=>this.getPointIndexById(n)).filter(n=>n>=0)}getPointIndexById(e){let n=this.points.length,o=this.points.findIndex(i=>i.uuid===e);if(o<0){let i=n;for(let a=0,s=this.shapeHoles.length;a<s;a++){let l=this.shapeHoles[a],u=l.points.length,c=l.getPointIndexById(e);if(c<0)i+=u;else return c+i}}return o}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0){let n=this.points.length;for(let o=0,i=this.shapeHoles.length;o<i;o++){let a=this.shapeHoles[o],s=e-n;if(s<=a.points.length-1)return a.points[s];n+=a.points.length}}throw new Error("This shape does not have a point for this index: "+e)}getBezierPointIndex(e){let n=this.points.indexOf(e);if(n>=0)return n;if(n=this.points.length,this.shapeHoles.length>0)for(let o=0,i=this.shapeHoles.length;o<i;o++){let a=this.shapeHoles[o],s=a.points.indexOf(e);if(s>=0)return n+s;n+=a.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(n=>n.points));return[...this.points,...e]}applySize(e,n){e===0&&(e=.001),n===0&&(n=.001),this._width=e,this._height=n}applyScale(e,n){let o=su.set(e,n);for(let i=0,a=this.points.length;i<a;i++){let s=this.points[i];s.position.multiply(o),s.controls[0].position.multiply(o),s.controls[1].position.multiply(o)}for(let i=0,a=this.shapeHoles.length;i<a;i++)this.shapeHoles[i].applyScale(e,n);this._update(!1)}createPoint(e,n=0,o=Ie.MathUtils.generateUUID()){let i;e instanceof Ie.Vector2?i=e:i=new Ie.Vector2(e,n);let a=new gr(o,i);return a.roundness=this.roundness,a}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,n){this.points.splice(n,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let n=0,o=this.points.length;n<o;n++){let i=this.points[n];if(i.uuid===e)return i}for(let n=0,o=this.shapeHoles.length;n<o;n++){let a=this.shapeHoles[n].getPointByUuid(e);if(a)return a}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let n=this.points.indexOf(e);n>=0&&this.points.splice(n,1),this.needsUpdate=!0}removePointById(e){let n=this.points.find(o=>o.uuid===e);n&&this.removePoint(n)}update(e=!0){for(let n=0,o=this.shapeHoles.length;n<o;n++)this.shapeHoles[n].update(!1);this._update(e)}extractShapePointsToBuffer(e,n=12,o=!1){this.subdivision=n,this.curveDivisions===void 0&&this.computeCurveDivisions(n);let i=o?this.roundedCurveDivisions:this.curveDivisions;return pm(e,o?this.roundedCurves:this.curves,n,this.autoClose),i.reduce((a,s)=>a+s,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=au(this.points,e,!1),this.roundedCurveDivisions=au(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,n,o=12){return fm(e,this.curves,n,o,this.autoClose).reduce((a,s)=>a+s,0)*2}extractShapePointsToFlatArray(e,n=12){return this.subdivision=n,this.curveDivisions===void 0&&this.computeCurveDivisions(n),dm(e,this.roundedCurves,n,this.autoClose)}getCurveIndexFromVertexId(e,n=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=n?this.roundedCurveDivisions:this.curveDivisions,a=0;n&&this.points[0].roundedCurveCorner!==void 0&&(a=kn(this.points[0].roundedCurveCorner,this.subdivision)*.5);let s=e-a;s<0&&(s+=i.reduce((l,u)=>l+u,0));for(let l=0,u=i.length;l<u;l++){let c=i[l];if(s<o+c)return[l,(s-o+1)/c];o+=c}return[0,1]}getCurveT(e,n,o){let i=this.points[e],a=this.points[e>=this.points.length-1?0:e+1],s=this.curveDivisions,l=s[e];if(iu(i,a)){let p=i.position.distanceTo(a.position);return i.position.distanceTo(su.set(o.x,o.y))/p}let u=0;for(let p=0;p<e;p++)u+=s[p];return(n-u)/l}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,n){iu(n,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(n.controls[1].position.x,n.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,n.curveAfter=o;let i=o.clone();e.roundedCurveBefore=i,n.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 a=this.points[o];if(o===0)this.moveTo(a.position.x,a.position.y);else{let s=this.points[o-1];this._applyCurveForPoint(a,s)}}let n=this.getLastPoint();if(n?.curveAfter&&(n.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,a=this.points.length;i<a;i++){let s=this.points[i],l=this.points[i-1]??this.points[this.points.length-1],u=this.points[i+1]??this.points[0],c=s.roundness,p=l&&u&&am(l,s,u);if(!s.controlsMoved()&&c>0&&!p){let f=s.curveBefore,d=s.curveAfter;if(f===void 0||d===void 0)continue;let h=s.roundedCurveBefore,m=s.roundedCurveAfter,g=f.getLength(),v=d.getLength(),x=Math.min(c,g*.499),b=Math.min(c,v*.499),w=Math.min(x,b),S=1-w/g,_=w/v,T=f.getPointAt(S,su),y=d.getPointAt(_,KT);this._subSplitCurve(f,h,S,T,void 0),this._subSplitCurve(d,m,_,void 0,y);let O;if(this.useCubicForRoundedCorners){let A=ou(T,s.position,y)/2,I=Math.tan(A)*T.distanceTo(s.position),[C,N]=sm(T,y,I,ZT,QT),P=lm(C,N,s.position),[G,$]=cm(P,T,y,I,JT,eC);O=new Ie.CubicBezierCurve(T.clone(),G.clone(),$.clone(),y.clone())}else O=new Ie.QuadraticBezierCurve(T.clone(),s.position.clone(),y.clone());s.roundedCurveCorner=O,this.roundedCurves.splice(i+o,0,O),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,n,o,i,a){if(e instanceof Ie.LineCurve)i!==void 0&&n.v2.copy(i),a!==void 0&&n.v1.copy(a);else{let s=e,l=n,u=s.getUtoTmapping(o,0),c=um(s.v0,s.v1,s.v2,s.v3,u);return i!==void 0&&(l.v0.set(c[0],c[1]),l.v1.set(c[2],c[3]),l.v2.set(c[4],c[5]),l.v3.set(c[6],c[7])),a!==void 0&&(l.v0.set(c[6],c[7]),l.v1.set(c[8],c[9]),l.v2.set(c[10],c[11]),l.v3.set(c[12],c[13])),l}return n}clone(){let e=new Ne(this._width,this._height);return e.points=this.points.map(n=>n.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(n=>n.clone()),e}toJSON(){return{points:this.points.reduce((e,n)=>e.concat(n.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){this.points=[],this.pointIDs=0;let n=e.points.length/7;for(let o=0;o<n;o++){let i=o*7,a=e.points[i+0],s=e.points[i+1],l=e.points[i+2],u=e.points[i+3],c=e.points[i+4],p=e.points[i+5],f=e.points[i+6],d=new gr(Ie.MathUtils.generateUUID(),new Ie.Vector2(a,s));d.controls[0].position.set(l,u),d.controls[1].position.set(c,p),d.roundness=f,this.points.push(d)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let i=new Ne;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let n=(i,a)=>{a instanceof Ie.CubicBezierCurve&&a.v3.equals(i.position)&&i.controls[0].position.copy(a.v2)},o=i=>{let a=[],s,l;for(s=0,l=i.length;s<l;s++)i[s]instanceof Ie.QuadraticBezierCurve&&(i[s]=im(i[s]));for(s=0,l=i.length;s<l;s++){let p=i[s],f=s>0?i[s-1]:null,d;p instanceof Ie.CubicBezierCurve?(d=this.createPoint(p.v0),d.controls[1].position.copy(p.v1)):p instanceof Ie.LineCurve&&(d=this.createPoint(p.v1)),d!==void 0&&(f!==null&&n(d,f),a.push(d))}let u=i[i.length-1],c=!1;return u instanceof Ie.CubicBezierCurve?u.v3.equals(a[0].position)&&(a[0].controls[0].position.copy(u.v2),c=!0):u instanceof Ie.LineCurve&&u.v2.equals(a[0].position)&&(c=!0),this.isClosed=c,a};return this.points=o(e.curves),e instanceof Ie.Shape&&(this.shapeHoles=e.holes.map(i=>{let a=new Ne;return a.fromShape(i),a})),this.update(),this}};var mo=require("three");var Ge;(function(r){r[r.ODD=0]="ODD",r[r.NONZERO=1]="NONZERO",r[r.POSITIVE=2]="POSITIVE",r[r.NEGATIVE=3]="NEGATIVE",r[r.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Ge||(Ge={}));var ct;(function(r){r[r.POLYGONS=0]="POLYGONS",r[r.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",r[r.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(ct||(ct={}));function me(r,t){if(!r)throw t||"Assertion Failed!"}var de=function(){function r(){}return r.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},r.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},r.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},r.edgeGoesLeft=function(t){return r.vertLeq(t.Dst,t.Org)},r.edgeGoesRight=function(t){return r.vertLeq(t.Org,t.Dst)},r.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},r.edgeEval=function(t,e,n){me(r.vertLeq(t,e)&&r.vertLeq(e,n));var o=e.s-t.s,i=n.s-e.s;return o+i>0?o<i?e.t-t.t+(t.t-n.t)*(o/(o+i)):e.t-n.t+(n.t-t.t)*(i/(o+i)):0},r.edgeSign=function(t,e,n){me(r.vertLeq(t,e)&&r.vertLeq(e,n));var o=e.s-t.s,i=n.s-e.s;return o+i>0?(e.t-n.t)*o+(e.t-t.t)*i:0},r.transEval=function(t,e,n){me(r.transLeq(t,e)&&r.transLeq(e,n));var o=e.t-t.t,i=n.t-e.t;return o+i>0?o<i?e.s-t.s+(t.s-n.s)*(o/(o+i)):e.s-n.s+(n.s-t.s)*(i/(o+i)):0},r.transSign=function(t,e,n){me(r.transLeq(t,e)&&r.transLeq(e,n));var o=e.t-t.t,i=n.t-e.t;return o+i>0?(e.s-n.s)*o+(e.s-t.s)*i:0},r.vertCCW=function(t,e,n){return t.s*(e.t-n.t)+e.s*(n.t-t.t)+n.s*(t.t-e.t)>=0},r.interpolate=function(t,e,n,o){return t=t<0?0:t,n=n<0?0:n,t<=n?n===0?(e+o)/2:e+(o-e)*(t/(t+n)):o+(e-o)*(n/(t+n))},r.intersect=function(t,e,n,o,i){var a,s,l;r.vertLeq(t,e)||(l=t,t=e,e=l),r.vertLeq(n,o)||(l=n,n=o,o=l),r.vertLeq(t,n)||(l=t,t=n,n=l,l=e,e=o,o=l),r.vertLeq(n,e)?r.vertLeq(e,o)?(a=r.edgeEval(t,n,e),s=r.edgeEval(n,e,o),a+s<0&&(a=-a,s=-s),i.s=r.interpolate(a,n.s,s,e.s)):(a=r.edgeSign(t,n,e),s=-r.edgeSign(t,o,e),a+s<0&&(a=-a,s=-s),i.s=r.interpolate(a,n.s,s,o.s)):i.s=(n.s+e.s)/2,r.transLeq(t,e)||(l=t,t=e,e=l),r.transLeq(n,o)||(l=n,n=o,o=l),r.transLeq(t,n)||(l=t,t=n,n=l,l=e,e=o,o=l),r.transLeq(n,e)?r.transLeq(e,o)?(a=r.transEval(t,n,e),s=r.transEval(n,e,o),a+s<0&&(a=-a,s=-s),i.t=r.interpolate(a,n.t,s,e.t)):(a=r.transSign(t,n,e),s=-r.transSign(t,o,e),a+s<0&&(a=-a,s=-s),i.t=r.interpolate(a,n.t,s,o.t)):i.t=(n.t+e.t)/2},r}(),ga=function(){function r(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return r}(),Ol=function(){function r(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(r.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),r}(),fi=function(){function r(){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 r}(),hm=function(){function r(){var t=new fi,e=new ga,n=new Ol(0),o=new Ol(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,n.next=n,n.Sym=o,o.next=o,o.Sym=n,this.vHead=t,this.fHead=e,this.eHead=n,this.eHeadSym=o}return r.prototype.makeEdge_=function(t){var e=new Ol(0),n=new Ol(1);t.Sym.side<t.side&&(t=t.Sym);var o=t.Sym.next;return n.next=o,o.Sym.next=e,e.next=t,t.Sym.next=n,e.Sym=n,e.Onext=e,e.Lnext=n,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,n.Sym=e,n.Onext=n,n.Lnext=e,n.Org=null,n.Lface=null,n.winding=0,n.activeRegion=null,e},r.prototype.splice_=function(t,e){var n=t.Onext,o=e.Onext;n.Sym.Lnext=e,o.Sym.Lnext=t,t.Onext=o,e.Onext=n},r.prototype.makeVertex_=function(t,e,n){var o=t;me(o,"Vertex can't be null!");var i=n.prev;o.prev=i,i.next=o,o.next=n,n.prev=o,o.anEdge=e;var a=e;do a.Org=o,a=a.Onext;while(a!==e)},r.prototype.makeFace_=function(t,e,n){var o=t;me(o,"Face can't be null");var i=n.prev;o.prev=i,i.next=o,o.next=n,n.prev=o,o.anEdge=e,o.trail=null,o.marked=!1,o.inside=n.inside;var a=e;do a.Lface=o,a=a.Lnext;while(a!==e)},r.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,n=t.Sym.next;e.Sym.next=n,n.Sym.next=e},r.prototype.killVertex_=function(t,e){var n=t.anEdge,o=n;do o.Org=e,o=o.Onext;while(o!==n);var i=t.prev,a=t.next;a.prev=i,i.next=a},r.prototype.killFace_=function(t,e){var n=t.anEdge,o=n;do o.Lface=e,o=o.Lnext;while(o!==n);var i=t.prev,a=t.next;a.prev=i,i.next=a},r.prototype.makeEdge=function(){var t=new fi,e=new fi,n=new ga,o=this.makeEdge_(this.eHead);return this.makeVertex_(t,o,this.vHead),this.makeVertex_(e,o.Sym,this.vHead),this.makeFace_(n,o,this.fHead),o},r.prototype.splice=function(t,e){var n=!1,o=!1;if(t!==e){if(e.Org!==t.Org&&(o=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(n=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!o){var i=new fi;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!n){var a=new ga;this.makeFace_(a,e,t.Lface),t.Lface.anEdge=t}}},r.prototype.delete=function(t){var e=t.Sym,n=!1;if(t.Lface!==t.Rface&&(n=!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),!n){var o=new ga;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)},r.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),n=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new fi;return this.makeVertex_(o,n,e.Org),e.Lface=n.Lface=t.Lface,e},r.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t),n=e.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,n),t.Dst=n.Org,n.Dst.anEdge=n.Sym,n.Rface=t.Rface,n.winding=t.winding,n.Sym.winding=t.Sym.winding,n.idx=t.idx,n.Sym.idx=t.Sym.idx,n},r.prototype.connect=function(t,e){var n=!1,o=this.makeEdge_(t),i=o.Sym;if(e.Lface!==t.Lface&&(n=!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,!n){var a=new ga;this.makeFace_(a,o,t.Lface)}return o},r.prototype.zapFace=function(t){var e=t.anEdge,n,o,i,a,s;o=e.Lnext;do n=o,o=n.Lnext,n.Lface=null,n.Rface===null&&(n.Onext===n?this.killVertex_(n.Org,null):(n.Org.anEdge=n.Onext,this.splice_(n,n.Oprev)),i=n.Sym,i.Onext===i?this.killVertex_(i.Org,null):(i.Org.anEdge=i.Onext,this.splice_(i,i.Oprev)),this.killEdge_(n));while(n!=e);a=t.prev,s=t.next,s.prev=a,a.next=s},r.prototype.countFaceVerts_=function(t){var e=t.anEdge,n=0;do n++,e=e.Lnext;while(e!==t.anEdge);return n},r.prototype.mergeConvexFaces=function(t){var e,n,o,i,a,s,l;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(n=e.anEdge,a=n.Org;o=n.Lnext,i=n.Sym,i&&i.Lface&&i.Lface.inside&&(s=this.countFaceVerts_(e),l=this.countFaceVerts_(i.Lface),s+l-2<=t&&de.vertCCW(n.Lprev.Org,n.Org,i.Lnext.Lnext.Org)&&de.vertCCW(i.Lprev.Org,i.Org,n.Lnext.Lnext.Org)&&(o=i.Lnext,this.delete(i),n=null,i=null)),!(n&&n.Lnext.Org===a);)n=o;return!0},r.prototype.check=function(){var t=this.fHead,e=this.vHead,n=this.eHead,o,i,a,s,l,u;for(i=t,i=t;(o=i.next)!==t;i=o){me(o.prev===i),l=o.anEdge;do me(l.Sym!==l),me(l.Sym.Sym===l),me(l.Lnext.Onext.Sym===l),me(l.Onext.Sym.Lnext===l),me(l.Lface===o),l=l.Lnext;while(l!==o.anEdge)}for(me(o.prev===i&&o.anEdge===null),s=e,s=e;(a=s.next)!==e;s=a){me(a.prev===s),l=a.anEdge;do me(l.Sym!==l),me(l.Sym.Sym===l),me(l.Lnext.Onext.Sym===l),me(l.Onext.Sym.Lnext===l),me(l.Org===a),l=l.Onext;while(l!==a.anEdge)}for(me(a.prev===s&&a.anEdge===null),u=n,u=n;(l=u.next)!==n;u=l)me(l.Sym.next===u.Sym),me(l.Sym!==l),me(l.Sym.Sym===l),me(l.Org!==null),me(l.Dst!==null),me(l.Lnext.Onext.Sym===l),me(l.Onext.Sym.Lnext===l);me(l.Sym.next===u.Sym&&l.Sym===this.eHeadSym&&l.Sym.Sym===l&&l.Org===null&&l.Dst===null&&l.Lface===null&&l.Rface===null)},r}(),mm=function(){function r(){this.handle=null}return r}(),gm=function(){function r(){this.key=null,this.node=0}return r}(),tC=function(){function r(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 n=0;n<t+1;n++)this.nodes[n]=new mm,this.handles[n]=new gm;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return r.prototype.floatDown_=function(t){var e=this.nodes,n=this.handles,o,i,a;for(o=e[t].handle;;){if(a=t<<1,a<this.size&&this.leq(n[e[a+1].handle].key,n[e[a].handle].key)&&++a,me(a<=this.max),i=e[a].handle,a>this.size||this.leq(n[o].key,n[i].key)){e[t].handle=o,n[o].node=t;break}e[t].handle=i,n[i].node=t,t=a}},r.prototype.floatUp_=function(t){var e=this.nodes,n=this.handles,o,i,a;for(o=e[t].handle;;){if(a=t>>1,i=e[a].handle,a===0||this.leq(n[i].key,n[o].key)){e[t].handle=o,n[o].node=t;break}e[t].handle=i,n[i].node=t,t=a}},r.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},r.prototype.min=function(){return this.handles[this.nodes[1].handle].key},r.prototype.insert=function(t){var e,n;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 mm;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new gm}return this.freeList===0?n=e:(n=this.freeList,this.freeList=this.handles[n].node),this.nodes[e].handle=n,this.handles[n].node=e,this.handles[n].key=t,this.initialized&&this.floatUp_(e),n},r.prototype.extractMin=function(){var t=this.nodes,e=this.handles,n=t[1].handle,o=e[n].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[n].key=null,e[n].node=this.freeList,this.freeList=n,--this.size,this.size>0&&this.floatDown_(1)),o},r.prototype.delete=function(t){var e=this.nodes,n=this.handles,o;me(t>=1&&t<=this.max&&n[t].key!==null),o=n[t].node,e[o].handle=e[this.size].handle,n[e[o].handle].node=o,--this.size,o<=this.size&&(o<=1||this.leq(n[e[o>>1].handle].key,n[e[o].handle].key)?this.floatDown_(o):this.floatUp_(o)),n[t].key=null,n[t].node=this.freeList,this.freeList=t},r}(),lu=function(){function r(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return r}(),ym=function(){function r(){this.key=null,this.next=null,this.prev=null}return r}(),rC=function(){function r(t,e){this.frame=t,this.leq=e,this.head=new ym,this.head.next=this.head,this.head.prev=this.head}return r.prototype.min=function(){return this.head.next},r.prototype.max=function(){return this.head.prev},r.prototype.insert=function(t){return this.insertBefore(this.head,t)},r.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},r.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var n=new ym;return n.key=e,n.next=t.next,t.next.prev=n,n.prev=t,t.next=n,n},r.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},r}(),nC=function(){function r(){}return r.regionBelow=function(t){return t.nodeUp.prev.key},r.regionAbove=function(t){return t.nodeUp.next.key},r.debugEvent=function(t){},r.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},r.edgeLeq=function(t,e,n){var o=t.event,i=e.eUp,a=n.eUp;if(i.Dst===o)return a.Dst===o?de.vertLeq(i.Org,a.Org)?de.edgeSign(a.Dst,i.Org,a.Org)<=0:de.edgeSign(i.Dst,a.Org,i.Org)>=0:de.edgeSign(a.Dst,o,a.Org)<=0;if(a.Dst===o)return de.edgeSign(i.Dst,o,i.Org)>=0;var s=de.edgeEval(i.Dst,o,i.Org),l=de.edgeEval(a.Dst,o,a.Org);return s>=l},r.deleteRegion=function(t,e){e.fixUpperEdge&&me(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},r.fixUpperEdge=function(t,e,n){me(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=n,n.activeRegion=e},r.topLeftRegion=function(t,e){var n=e.eUp.Org,o;do e=r.regionAbove(e);while(e.eUp.Org===n);if(e.fixUpperEdge){if(o=t.mesh.connect(r.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;r.fixUpperEdge(t,e,o),e=r.regionAbove(e)}return e},r.topRightRegion=function(t){var e=t.eUp.Dst;do t=r.regionAbove(t);while(t.eUp.Dst===e);return t},r.addRegionBelow=function(t,e,n){var o=new lu;return o.eUp=n,o.nodeUp=t.dict.insertBefore(e.nodeUp,o),o.fixUpperEdge=!1,o.sentinel=!1,o.dirty=!1,n.activeRegion=o,o},r.isWindingInside=function(t,e){switch(t.windingRule){case Ge.ODD:return(e&1)!==0;case Ge.NONZERO:return e!==0;case Ge.POSITIVE:return e>0;case Ge.NEGATIVE:return e<0;case Ge.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},r.computeWinding=function(t,e){e.windingNumber=r.regionAbove(e).windingNumber+e.eUp.winding,e.inside=r.isWindingInside(t,e.windingNumber)},r.finishRegion=function(t,e){var n=e.eUp,o=n.Lface;o.inside=e.inside,o.anEdge=n,r.deleteRegion(t,e)},r.finishLeftRegions=function(t,e,n){for(var o,i=null,a=e,s=e.eUp;a!==n;){if(a.fixUpperEdge=!1,i=r.regionBelow(a),o=i.eUp,o.Org!=s.Org){if(!i.fixUpperEdge){r.finishRegion(t,a);break}o=t.mesh.connect(s.Lprev,o.Sym),r.fixUpperEdge(t,i,o)}s.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(s,o)),r.finishRegion(t,a),s=i.eUp,a=i}return s},r.addRightEdges=function(t,e,n,o,i,a){var s,l,u,c,p=!0;u=n;do me(de.vertLeq(u.Org,u.Dst)),r.addRegionBelow(t,e,u.Sym),u=u.Onext;while(u!==o);for(i===null&&(i=r.regionBelow(e).eUp.Rprev),l=e,c=i;s=r.regionBelow(l),u=s.eUp.Sym,u.Org===c.Org;)u.Onext!==c&&(t.mesh.splice(u.Oprev,u),t.mesh.splice(c.Oprev,u)),s.windingNumber=l.windingNumber-u.winding,s.inside=r.isWindingInside(t,s.windingNumber),l.dirty=!0,!p&&r.checkForRightSplice(t,l)&&(r.addWinding(u,c),r.deleteRegion(t,l),t.mesh.delete(c)),p=!1,l=s,c=u;l.dirty=!0,me(l.windingNumber-u.winding===s.windingNumber),a&&r.walkDirtyRegions(t,l)},r.spliceMergeVertices=function(t,e,n){t.mesh.splice(e,n)},r.vertexWeights=function(t,e,n){var o=de.vertL1dist(e,t),i=de.vertL1dist(n,t),a=.5*i/(o+i),s=.5*o/(o+i);t.coords[0]+=a*e.coords[0]+s*n.coords[0],t.coords[1]+=a*e.coords[1]+s*n.coords[1],t.coords[2]+=a*e.coords[2]+s*n.coords[2]},r.getIntersectData=function(t,e,n,o,i,a){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,r.vertexWeights(e,n,o),r.vertexWeights(e,i,a)},r.checkForRightSplice=function(t,e){var n=r.regionBelow(e),o=e.eUp,i=n.eUp;if(de.vertLeq(o.Org,i.Org)){if(de.edgeSign(i.Dst,o.Org,i.Org)>0)return!1;de.vertEq(o.Org,i.Org)?o.Org!==i.Org&&(t.pq.delete(o.Org.pqHandle),r.spliceMergeVertices(t,i.Oprev,o)):(t.mesh.splitEdge(i.Sym),t.mesh.splice(o,i.Oprev),e.dirty=n.dirty=!0)}else{if(de.edgeSign(o.Dst,i.Org,o.Org)<0)return!1;r.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Oprev,o)}return!0},r.checkForLeftSplice=function(t,e){var n=r.regionBelow(e),o=e.eUp,i=n.eUp,a;if(me(!de.vertEq(o.Dst,i.Dst)),de.vertLeq(o.Dst,i.Dst)){if(de.edgeSign(o.Dst,i.Dst,o.Org)<0)return!1;r.regionAbove(e).dirty=e.dirty=!0,a=t.mesh.splitEdge(o),t.mesh.splice(i.Sym,a),a.Lface.inside=e.inside}else{if(de.edgeSign(i.Dst,o.Dst,i.Org)>0)return!1;e.dirty=n.dirty=!0,a=t.mesh.splitEdge(i),t.mesh.splice(o.Lnext,i.Sym),a.Rface.inside=e.inside}return!0},r.checkForIntersect=function(t,e){var n=r.regionBelow(e),o=e.eUp,i=n.eUp,a=o.Org,s=i.Org,l=o.Dst,u=i.Dst,c,p,f=new fi,d,h;if(me(!de.vertEq(u,l)),me(de.edgeSign(l,t.event,a)<=0),me(de.edgeSign(u,t.event,s)>=0),me(a!==t.event&&s!==t.event),me(!e.fixUpperEdge&&!n.fixUpperEdge),a===s||(c=Math.min(a.t,l.t),p=Math.max(s.t,u.t),c>p))return!1;if(de.vertLeq(a,s)){if(de.edgeSign(u,a,s)>0)return!1}else if(de.edgeSign(l,s,a)<0)return!1;return r.debugEvent(t),de.intersect(l,a,u,s,f),me(Math.min(a.t,l.t)<=f.t),me(f.t<=Math.max(s.t,u.t)),me(Math.min(u.s,l.s)<=f.s),me(f.s<=Math.max(s.s,a.s)),de.vertLeq(f,t.event)&&(f.s=t.event.s,f.t=t.event.t),d=de.vertLeq(a,s)?a:s,de.vertLeq(d,f)&&(f.s=d.s,f.t=d.t),de.vertEq(f,a)||de.vertEq(f,s)?(r.checkForRightSplice(t,e),!1):!de.vertEq(l,t.event)&&de.edgeSign(l,t.event,f)>=0||!de.vertEq(u,t.event)&&de.edgeSign(u,t.event,f)<=0?u===t.event?(t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Sym,o),e=r.topLeftRegion(t,e),o=r.regionBelow(e).eUp,r.finishLeftRegions(t,r.regionBelow(e),n),r.addRightEdges(t,e,o.Oprev,o,o,!0),!0):l===t.event?(t.mesh.splitEdge(i.Sym),t.mesh.splice(o.Lnext,i.Oprev),n=e,e=r.topRightRegion(e),h=r.regionBelow(e).eUp.Rprev,n.eUp=i.Oprev,i=r.finishLeftRegions(t,n,null),r.addRightEdges(t,e,i.Onext,o.Rprev,h,!0),!0):(de.edgeSign(l,t.event,f)>=0&&(r.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),o.Org.s=t.event.s,o.Org.t=t.event.t),de.edgeSign(u,t.event,f)<=0&&(e.dirty=n.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=f.s,o.Org.t=f.t,o.Org.pqHandle=t.pq.insert(o.Org),r.getIntersectData(t,o.Org,a,l,s,u),r.regionAbove(e).dirty=e.dirty=n.dirty=!0,!1)},r.walkDirtyRegions=function(t,e){for(var n=r.regionBelow(e),o,i;;){for(;n.dirty;)e=n,n=r.regionBelow(n);if(!e.dirty&&(n=e,e=r.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,i=n.eUp,o.Dst!==i.Dst&&r.checkForLeftSplice(t,e)&&(n.fixUpperEdge?(r.deleteRegion(t,n),t.mesh.delete(i),n=r.regionBelow(e),i=n.eUp):e.fixUpperEdge&&(r.deleteRegion(t,e),t.mesh.delete(o),e=r.regionAbove(n),o=e.eUp)),o.Org!==i.Org)if(o.Dst!==i.Dst&&!e.fixUpperEdge&&!n.fixUpperEdge&&(o.Dst===t.event||i.Dst===t.event)){if(r.checkForIntersect(t,e))return}else r.checkForRightSplice(t,e);o.Org===i.Org&&o.Dst===i.Dst&&(r.addWinding(i,o),r.deleteRegion(t,e),t.mesh.delete(o),e=r.regionAbove(n))}},r.connectRightVertex=function(t,e,n){var o,i=n.Onext,a=r.regionBelow(e),s=e.eUp,l=a.eUp,u=!1;if(s.Dst!==l.Dst&&r.checkForIntersect(t,e),de.vertEq(s.Org,t.event)&&(t.mesh.splice(i.Oprev,s),e=r.topLeftRegion(t,e),i=r.regionBelow(e).eUp,r.finishLeftRegions(t,r.regionBelow(e),a),u=!0),de.vertEq(l.Org,t.event)&&(t.mesh.splice(n,l.Oprev),n=r.finishLeftRegions(t,a,null),u=!0),u){r.addRightEdges(t,e,n.Onext,i,i,!0);return}de.vertLeq(l.Org,s.Org)?o=l.Oprev:o=s,o=t.mesh.connect(n.Lprev,o),r.addRightEdges(t,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,r.walkDirtyRegions(t,e)},r.connectLeftDegenerate=function(t,e,n){var o,i,a,s,l;if(o=e.eUp,de.vertEq(o.Org,n)){me(!1),r.spliceMergeVertices(t,o,n.anEdge);return}if(!de.vertEq(o.Dst,n)){t.mesh.splitEdge(o.Sym),e.fixUpperEdge&&(t.mesh.delete(o.Onext),e.fixUpperEdge=!1),t.mesh.splice(n.anEdge,o),r.sweepEvent(t,n);return}me(!1),e=r.topRightRegion(e),l=r.regionBelow(e),a=l.eUp.Sym,i=s=a.Onext,l.fixUpperEdge&&(me(i!==a),r.deleteRegion(t,l),t.mesh.delete(a),a=i.Oprev),t.mesh.splice(n.anEdge,a),de.edgeGoesLeft(i)||(i=null),r.addRightEdges(t,e,a.Onext,s,i,!0)},r.connectLeftVertex=function(t,e){var n,o,i,a,s,l,u=new lu;if(u.eUp=e.anEdge.Sym,n=t.dict.search(u).key,o=r.regionBelow(n),!!o){if(a=n.eUp,s=o.eUp,de.edgeSign(a.Dst,e,a.Org)===0){r.connectLeftDegenerate(t,n,e);return}if(i=de.vertLeq(s.Dst,a.Dst)?n:o,n.inside||i.fixUpperEdge){if(i===n)l=t.mesh.connect(e.anEdge.Sym,a.Lnext);else{var c=t.mesh.connect(s.Dnext,e.anEdge);l=c.Sym}i.fixUpperEdge?r.fixUpperEdge(t,i,l):r.computeWinding(t,r.addRegionBelow(t,n,l)),r.sweepEvent(t,e)}else r.addRightEdges(t,n,e.anEdge,e.anEdge,null,!0)}},r.sweepEvent=function(t,e){t.event=e,r.debugEvent(t);for(var n=e.anEdge;n.activeRegion===null;)if(n=n.Onext,n===e.anEdge){r.connectLeftVertex(t,e);return}var o=r.topLeftRegion(t,n.activeRegion);me(o!==null);var i=r.regionBelow(o),a=i.eUp,s=r.finishLeftRegions(t,i,null);s.Onext===a?r.connectRightVertex(t,o,s):r.addRightEdges(t,o,s.Onext,a,a,!0)},r.addSentinel=function(t,e,n,o){var i=new lu,a=t.mesh.makeEdge();a.Org.s=n,a.Org.t=o,a.Dst.s=e,a.Dst.t=o,t.event=a.Dst,i.eUp=a,i.windingNumber=0,i.inside=!1,i.fixUpperEdge=!1,i.sentinel=!0,i.dirty=!1,i.nodeUp=t.dict.insert(i)},r.initEdgeDict=function(t){t.dict=new rC(t,r.edgeLeq);var e=t.bmax[0]-t.bmin[0],n=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,i=t.bmax[0]+e,a=t.bmin[1]-n,s=t.bmax[1]+n;r.addSentinel(t,o,i,a),r.addSentinel(t,o,i,s)},r.doneEdgeDict=function(t){for(var e,n=0;(e=t.dict.min().key)!==null;)e.sentinel||(me(e.fixUpperEdge),me(++n===1)),me(e.windingNumber===0),r.deleteRegion(t,e)},r.removeDegenerateEdges=function(t){var e,n,o,i=t.mesh.eHead;for(e=i.next;e!==i;e=n)n=e.next,o=e.Lnext,de.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(r.spliceMergeVertices(t,o,e),t.mesh.delete(e),e=o,o=e.Lnext),o.Lnext===e&&(o!==e&&((o===n||o===n.Sym)&&(n=n.next),t.mesh.delete(o)),(e===n||e===n.Sym)&&(n=n.next),t.mesh.delete(e))},r.initPriorityQ=function(t){var e,n,o,i=0;for(o=t.mesh.vHead,n=o.next;n!==o;n=n.next)i++;for(i+=8,e=t.pq=new tC(i,de.vertLeq),o=t.mesh.vHead,n=o.next;n!==o;n=n.next)n.pqHandle=e.insert(n);return n!==o?!1:(e.init(),!0)},r.donePriorityQ=function(t){t.pq=null},r.removeDegenerateFaces=function(t,e){var n,o,i;for(n=e.fHead.next;n!==e.fHead;n=o)o=n.next,i=n.anEdge,me(i.Lnext!==i),i.Lnext.Lnext===i&&(r.addWinding(i.Onext,i),t.mesh.delete(i));return!0},r.computeInterior=function(t,e){e===void 0&&(e=!0);var n,o;if(r.removeDegenerateEdges(t),!r.initPriorityQ(t))return!1;for(r.initEdgeDict(t);(n=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!de.vertEq(o,n));)o=t.pq.extractMin(),r.spliceMergeVertices(t,n.anEdge,o.anEdge);r.sweepEvent(t,n)}return t.event=t.dict.min().key.eUp.Org,r.debugEvent(t),r.doneEdgeDict(t),r.donePriorityQ(t),r.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},r}(),oC=function(){function r(){this.mesh=new hm,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=Ge.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 r.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},r.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},r.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},r.prototype.computeNormal_=function(t){var e,n,o,i,a,s,l=[0,0,0],u=[0,0,0],c=[0,0,0],p=[0,0,0],f=[0,0,0],d=[null,null,null],h=[null,null,null],m=this.mesh.vHead;e=m.next;for(var g=0;g<3;++g)i=e.coords[g],u[g]=i,h[g]=e,l[g]=i,d[g]=e;for(e=m.next;e!==m;e=e.next)for(var v=0;v<3;++v)i=e.coords[v],i<u[v]&&(u[v]=i,h[v]=e),i>l[v]&&(l[v]=i,d[v]=e);var x=0;if(l[1]-u[1]>l[0]-u[0]&&(x=1),l[2]-u[2]>l[x]-u[x]&&(x=2),u[x]>=l[x]){t[0]=0,t[1]=0,t[2]=1;return}for(s=0,n=h[x],o=d[x],c[0]=n.coords[0]-o.coords[0],c[1]=n.coords[1]-o.coords[1],c[2]=n.coords[2]-o.coords[2],e=m.next;e!==m;e=e.next)p[0]=e.coords[0]-o.coords[0],p[1]=e.coords[1]-o.coords[1],p[2]=e.coords[2]-o.coords[2],f[0]=c[1]*p[2]-c[2]*p[1],f[1]=c[2]*p[0]-c[0]*p[2],f[2]=c[0]*p[1]-c[1]*p[0],a=f[0]*f[0]+f[1]*f[1]+f[2]*f[2],a>s&&(s=a,t[0]=f[0],t[1]=f[1],t[2]=f[2]);s<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(c)]=1)},r.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,n=this.mesh.vHead,o,i=0,a=t.next;a!==t;a=a.next)if(o=a.anEdge,!(o.winding<=0))do i+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==a.anEdge);if(i<0){for(e=n.next;e!==n;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]}},r.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],n,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),n=this.sUnit,o=this.tUnit;var a=this.longAxis_(e);n[a]=0,n[(a+1)%3]=1,n[(a+2)%3]=0,o[a]=0,o[(a+1)%3]=0,o[(a+2)%3]=e[a]>0?1:-1;for(var s=t.next;s!==t;s=s.next)s.s=this.dot_(s.coords,n),s.t=this.dot_(s.coords,o);i&&this.checkOrientation_();for(var l=!0,u=t.next;u!==t;u=u.next)l?(this.bmin[0]=this.bmax[0]=u.s,this.bmin[1]=this.bmax[1]=u.t,l=!1):(u.s<this.bmin[0]&&(this.bmin[0]=u.s),u.s>this.bmax[0]&&(this.bmax[0]=u.s),u.t<this.bmin[1]&&(this.bmin[1]=u.t),u.t>this.bmax[1]&&(this.bmax[1]=u.t))},r.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},r.prototype.tessellateMonoRegion_=function(t,e){var n,o;if(n=e.anEdge,!(n.Lnext!==n&&n.Lnext.Lnext!==n))throw"Mono region invalid";for(;de.vertLeq(n.Dst,n.Org);n=n.Lprev);for(;de.vertLeq(n.Org,n.Dst);n=n.Lnext);o=n.Lprev;for(var i=void 0;n.Lnext!==o;)if(de.vertLeq(n.Dst,o.Org)){for(;o.Lnext!==n&&(de.edgeGoesLeft(o.Lnext)||de.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!==n&&(de.edgeGoesRight(n.Lprev)||de.edgeSign(n.Dst,n.Org,n.Lprev.Org)>=0);)i=t.connect(n,n.Lprev),n=i.Sym;n=n.Lnext}if(o.Lnext===n)throw"Mono region invalid";for(;o.Lnext.Lnext!==n;)i=t.connect(o.Lnext,o),o=i.Sym;return!0},r.prototype.tessellateInterior_=function(t){for(var e,n=t.fHead.next;n!==t.fHead;n=e)if(e=n.next,n.inside&&!this.tessellateMonoRegion_(t,n))return!1;return!0},r.prototype.discardExterior_=function(t){for(var e,n=t.fHead.next;n!==t.fHead;n=e)e=n.next,n.inside||t.zapFace(n)},r.prototype.setWindingNumber_=function(t,e,n){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:n?t.delete(i):i.winding=0},r.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},r.prototype.outputPolymesh_=function(t,e,n,o){var i,a=0,s=0,l;n>3&&t.mergeConvexFaces(n);for(var u=t.vHead.next;u!==t.vHead;u=u.next)u.n=-1;for(var c=t.fHead.next;c!==t.fHead;c=c.next)if(c.n=-1,!!c.inside){i=c.anEdge,l=0;do{var u=i.Org;u.n===-1&&(u.n=s,s++),l++,i=i.Lnext}while(i!==c.anEdge);if(l>n)throw"Face vertex greater that support polygon";c.n=a,++a}this.elementCount=a,e===ct.CONNECTED_POLYGONS&&(a*=2),this.elements=[],this.elements.length=a*n,this.vertexCount=s,this.vertices=[],this.vertices.length=s*o,this.vertexIndices=[],this.vertexIndices.length=s;for(var u=t.vHead.next;u!==t.vHead;u=u.next)if(u.n!==-1){var p=u.n*o;this.vertices[p+0]=u.coords[0],this.vertices[p+1]=u.coords[1],o>2&&(this.vertices[p+2]=u.coords[2]),this.vertexIndices[u.n]=u.idx}for(var f=0,c=t.fHead.next;c!==t.fHead;c=c.next)if(!!c.inside){i=c.anEdge,l=0;do{var u=i.Org;this.elements[f++]=u.n,l++,i=i.Lnext}while(i!==c.anEdge);for(var d=l;d<n;++d)this.elements[f++]=-1;if(e===ct.CONNECTED_POLYGONS){i=c.anEdge;do this.elements[f++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==c.anEdge);for(var h=l;h<n;++h)this.elements[f++]=-1}}},r.prototype.outputContours_=function(t,e){var n,o,i=0,a=0;this.vertexCount=0,this.elementCount=0;for(var s=t.fHead.next;s!==t.fHead;s=s.next)if(!!s.inside){o=n=s.anEdge;do this.vertexCount++,n=n.Lnext;while(n!==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 l=0,u=0,c=0;i=0;for(var s=t.fHead.next;s!==t.fHead;s=s.next)if(!!s.inside){a=0,o=n=s.anEdge;do this.vertices[l++]=n.Org.coords[0],this.vertices[l++]=n.Org.coords[1],e>2&&(this.vertices[l++]=n.Org.coords[2]),this.vertexIndices[u++]=this.vertexIdCallback?this.vertexIdCallback(n):n.Org.idx,a++,n=n.Lnext;while(n!==o);this.elements[c++]=i,this.elements[c++]=a,i+=a}},r.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new hm),t<2&&(t=2),t>3&&(t=3);for(var n=null,o=0;o<e.length;o+=t)n===null?(n=this.mesh.makeEdge(),this.mesh.splice(n,n.Sym)):(this.mesh.splitEdge(n),n=n.Lnext),n.Org.coords[0]=e[o+0],n.Org.coords[1]=e[o+1],t>2?n.Org.coords[2]=e[o+2]:n.Org.coords[2]=0,n.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(n),n.winding=1,n.Sym.winding=-1},r.prototype.tesselate=function(t,e,n,o,i,a){if(t===void 0&&(t=Ge.ODD),e===void 0&&(e=ct.POLYGONS),a===void 0&&(a=!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_(),nC.computeInterior(this,a);var s=this.mesh;return e===ct.BOUNDARY_CONTOURS?this.setWindingNumber_(s,1,!0):this.tessellateInterior_(s),a&&s.check(),e===ct.BOUNDARY_CONTOURS?this.outputContours_(s,o):this.outputPolymesh_(s,e,n,o),!0},r}();function ho(r){var t=r.windingRule,e=t===void 0?Ge.ODD:t,n=r.elementType,o=n===void 0?ct.POLYGONS:n,i=r.polySize,a=i===void 0?3:i,s=r.vertexSize,l=s===void 0?2:s,u=r.normal,c=u===void 0?[0,0,1]:u,p=r.contours,f=p===void 0?[]:p,d=r.strict,h=d===void 0?!0:d,m=r.debug,g=m===void 0?!1:m;if(!f&&h)throw new Error("Contours can't be empty");if(!!f){var v=new oC;r.edgeCreateCallback&&(v.edgeCreateCallback=r.edgeCreateCallback),r.vertexIdCallback&&(v.vertexIdCallback=r.vertexIdCallback);for(var x=0;x<f.length;x++)v.addContour(l||2,f[x]);return v.tesselate(e,o,a,l,c,h),{vertices:v.vertices,vertexIndices:v.vertexIndices,vertexCount:v.vertexCount,elements:v.elements,elementCount:v.elementCount,mesh:g?v.mesh:void 0}}}var UU=Ge.ODD,VU=Ge.NONZERO,zU=Ge.POSITIVE,jU=Ge.NEGATIVE,HU=Ge.ABS_GEQ_TWO,WU=ct.POLYGONS,qU=ct.CONNECTED_POLYGONS,XU=ct.BOUNDARY_CONTOURS;var di=class extends mo.BufferGeometry{constructor(e,n=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Ge.ODD;this.elementType=ct.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=n,this._triangulationOptions=Object.assign({windingRule:Ge.ODD,elementType:ct.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),a=this._shape.shapeHoles.map(h=>h.extractShapePointsToFlatArray([],this._curveSegments)),s,l=!0,u=!0,c,p;for(let h=0,m=i.length/2;h<m;h++){let g=h*2,v=i[g+0],x=i[g+1];if(c!==void 0&&v!==c&&(l=!1),p!==void 0&&x!==p&&(u=!1),c=v,p=x,!l&&!u)break}!l&&!u&&(s=ho({contours:[i,...a],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let f=s?.vertexCount??1,d=s?.elementCount??1;if(this._positionAttribute=new mo.BufferAttribute(new Float32Array(f*3),3),this._normalAttribute=new mo.BufferAttribute(new Float32Array(f*3),3),this._uvAttribute=new mo.BufferAttribute(new Float32Array(f*2),2),this._indexAttribute=new mo.BufferAttribute(new Uint32Array(d*3),1),s){let h=1/0,m=-1/0,g=1/0,v=-1/0;for(let w=0,S=f;w<S;w++){let _=w*2,T=s.vertices[_+0],y=s.vertices[_+1];T<h&&(h=T),T>m&&(m=T),y<g&&(g=y),y>v&&(v=y)}let x=m-h,b=v-g;for(let w=0,S=f;w<S;w++){let _=w*2,T=s.vertices[_+0],y=s.vertices[_+1],O=(T-h)/x,A=(y-g)/b;this._positionAttribute.setXYZ(w,T,y,0),this._normalAttribute.setXYZ(w,0,0,1),this._uvAttribute.setXY(w,O,A)}for(let w=0,S=d;w<S;w++){let _=w*3,T=s.elements[_+0],y=s.elements[_+1],O=s.elements[_+2];this._indexAttribute.setX(_+0,T),this._indexAttribute.setX(_+1,y),this._indexAttribute.setX(_+2,O)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(s?.elementCount??1)*3)}clone(){let e=new di(this._shape,this._curveSegments);return e.userData=sa(this.userData),e}};var go=require("three");var Il=class{constructor(t=256,e=!1){this.capacity=t,this.size=0,this.debug=e,this.debug&&console.log(`allocating with cap ${t}`);let n=t*Il.eSize;this.buffer=new ArrayBuffer(n);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 n=t*Il.eSize,o=new ArrayBuffer(n),i=Float32Array.BYTES_PER_ELEMENT,a=0,s=new Float32Array(o,a*i,3*t);a+=3*t;let l=new Float32Array(o,a*i,3*t);a+=3*t;let u=new Float32Array(o,a*i,2*t);s.set(this.positions.slice(0,this.size*3)),l.set(this.normals.slice(0,this.size*3)),u.set(this.uvs.slice(0,this.size*2)),this.buffer=o,this.positions=s,this.normals=l,this.uvs=u,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 n=this.size;return this.size=e,n}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)}},ya=Il;ya.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var cu=(r,t)=>([e,n])=>(n<e&&(n+=t),(r>=e?r:r+t)<=n),hi=class extends go.BufferGeometry{constructor(e,n,o=0,i=12,a=3,s=Ge.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=n,this._bevel=o,this._curveSegments=i,this._bevelSegmentsInput=a,o<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(o,n/2-1e-12),this._bevelSegments=Math.floor(a));let l=this._shape.extractShapePointsToFlatArray([],i),u=this._shape.shapeHoles.map(y=>{let O=y.extractShapePointsToFlatArray([],i),A=[];for(let I=O.length-1;I>=1;I-=2){let C=O[I-1],N=O[I-0];A.push(C,N)}return A}),c=ho({windingRule:s,elementType:ct.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[l]}),p=ho({windingRule:Ge.ODD,elementType:ct.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...u]});if(!c)throw new Error("error generating geometry");let f=c.elementCount;if(p){c.elementCount+=p.elementCount;for(let y=0;y<p.elements.length;y++){let O=p.elements[y],A=y%2===0?c.vertexCount:0;c.elements.push(O+A)}for(let y=0;y<p.vertexIndices.length;y++){let O=p.vertexIndices[y],A=c.vertexCount;c.vertexIndices.push(O+A)}for(let y=0;y<p.vertices.length;y++){let O=p.vertices[y];c.vertices.push(O)}}let d=1/0,h=-1/0,m=1/0,g=-1/0;for(let y=0,O=c.vertexCount;y<O;y++){let A=y*2,I=c.vertices[A+0],C=c.vertices[A+1];I<d&&(d=I),I>h&&(h=I),C<m&&(m=C),C>g&&(g=C)}this._minX=d,this._minY=m,this._width=h-d,this._height=g-m;let v=c.vertexCount*2*(2+this._bevelSegments);this._buffer=new ya(v);let x=[],b=[];for(let y=c.elementCount-1;y>=0;y--){let O=y>=f,A=y*2,I=c.elements[A+0],C=c.elements[A+1],N=I+C,P={start:I,count:C,normals:[],continuous:[],concave:[]},G=I,$=N-1,Y=I+1,ie=this._shape.roundedCurves.length;do{let R=G-I,D=c.vertices[$*2+0],F=c.vertices[$*2+1],B=c.vertices[G*2+0],X=c.vertices[G*2+1],K=c.vertices[Y*2+0],q=c.vertices[Y*2+1],z=B-D,U=X-F,W=Math.sqrt(z*z+U*U);z/=W,U/=W;let re=B-K,ae=X-q,fe=Math.sqrt(re*re+ae*ae);re/=fe,ae/=fe,P.normals[R*2+0]=-ae,P.normals[R*2+1]=re,P.concave[R]=z*ae-U*re>0;let oe=c.vertexIndices[G];if(Array.isArray(oe))P.continuous[R]=!1;else{let[ne,ee]=this._shape.getCurveIndexFromVertexId(oe-1,!0);if(ee>0&&ee<1)P.continuous[R]=!0;else{let Q=ee===1?ne+1:ne-1;Q=(Q+ie)%ie;let Se=ee===1?0:1,ye=this._shape.roundedCurves[ne].getTangent(ee),Ae=this._shape.roundedCurves[Q].getTangent(Se);P.continuous[R]=ye.dot(Ae)>.95}}O&&(P.normals[R*2+0]*=-1,P.normals[R*2+1]*=-1),[$,G,Y]=[G,Y,Y+1],Y>=N&&(Y-=C)}while(Y!==I+1);let j=[];j.push({bevelI:0,angle:0,size:0,boundary:{vertices:c.vertices.slice(I*2,N*2),vertexCount:C,vertexIndices:new Array(C).fill(!0).map((R,D)=>[D,D]),elements:[0,C],elementCount:1,mesh:null},reverseMap:[],insetPoints:c.vertices.slice(I*2,N*2)});for(let R=1;R<=this._bevelSegments;R++){let D=R/this._bevelSegments*Math.PI/2,F=(1-Math.cos(D))*this._bevelSize,B=[],X=[],K=[],q=[],z=0;for(let W=0;W<C;W++){let re=W*2,ae=(W-1+C)%C*2,fe=c.vertices[P.start*2+re+0],oe=c.vertices[P.start*2+re+1],ne=-P.normals[ae+0]*F,ee=-P.normals[ae+1]*F,Q=-P.normals[re+0]*F,Se=-P.normals[re+1]*F;if(P.concave[W]||!P.concave[W]&&O){let ye=Math.atan2(ee,ne),Ae=Math.atan2(Se,Q);Ae>ye&&(Ae-=Math.PI*2);let gt=Ae-ye;if(P.continuous[W]||O){let Ee=ye+gt/2,Be=Math.cos(Ee)*F,ke=Math.sin(Ee)*F;B[2*z+0]=fe+Be*(O?-1:1),B[2*z+1]=oe+ke*(O?-1:1),q[z]=W,z++}else{let Ee=Math.max(1,Math.floor(i/4*Math.abs(gt)/Math.PI));for(let Be=0;Be<=Ee;Be++){let ke=ye+gt*(Be/Ee),or=Math.cos(ke)*F,wn=Math.sin(ke)*F;B[2*z+0]=fe+or,B[2*z+1]=oe+wn,q[z]=W,z++}}}else B[2*z+0]=fe+ne,B[2*z+1]=oe+ee,q[z]=W,X[W]=z,z++,B[2*z+0]=fe,B[2*z+1]=oe,q[z]=W,z++,B[2*z+0]=fe+Q,B[2*z+1]=oe+Se,q[z]=W,K[W]=z,z++}let U=ho({windingRule:Ge.POSITIVE,elementType:ct.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[B],edgeCreateCallback:W=>{let ae=W.Org.idx,fe=q[ae],oe=q[(ae+1)%q.length];W.idx=[fe,oe],W.Sym.idx=[oe,fe]},vertexIdCallback:W=>{let re=W.Lprev.idx;return[re?re[1]:0,W.idx[0]]}});if(!U)throw console.log("Error"),new Error(`error generating bevel geometry for ${R}'th loop`);if(!U.vertexCount)break;for(let W=0;W<U.vertexIndices.length;W++){let[re,ae]=U.vertexIndices[W];if(re===ae)continue;let fe=ae;ae<re&&(fe+=C);for(let oe=re;oe<fe;oe++){let ne=oe%C,ee=(oe+1)%C;if(!P.continuous[ne]||!P.continuous[ee]){U.vertexIndices[W]=[re,ne],U.vertexIndices.splice(W+1,0,[ee,ae]),U.vertices.splice((W+1)*2,0,U.vertices[W*2],U.vertices[W*2+1]);break}}}j.push({bevelI:R,angle:D,size:F,boundary:U,reverseMap:q,insetPoints:B})}let H=(R,D,F)=>{let B=0,X=R.boundary.vertexIndices.length;for(;B<X&&F(R.boundary.vertexIndices[D]);)D=(D+1)%X,B++;return B},V=x.length;for(let R=1;R<j.length;R++){let D=j[R-1],F=j[R],B=D.boundary.vertexIndices.length,X=F.boundary.vertexIndices.length;if(!B||!X)break;let K=P.concave.length,q=0,z=cu(q,C);for(;!D.boundary.vertexIndices.filter(z).length||!F.boundary.vertexIndices.filter(z).length;)q++,z=cu(q,C);let U=D.boundary.vertexIndices.findIndex(z),W=F.boundary.vertexIndices.findIndex(z);do U=(U+1)%B;while(z(D.boundary.vertexIndices[U]));do W=(W+1)%X;while(z(F.boundary.vertexIndices[W]));q=(q+1)%C;let re=q,ae=this.buildBevelVert(P,D,(U-1+B)%B),fe=this.buildBevelVert(P,F,(W-1+X)%X),oe=ae,ne=fe,ee,Q,Se=!1;do{z=cu(q,C);let ye=H(D,U,z),Ae=H(F,W,z),gt=Se;if(Se=!1,ye&&!Ae){for(let Ee=0;Ee<ye;Ee++)ee=this.buildBevelVert(P,D,(U+Ee)%B,Ee/(ye-1)),x.push(oe.topN,ee.topP,ne.topN),x.push(ee.bottomP,oe.bottomN,ne.bottomN),oe=ee;Se=!0}else if(!ye&&Ae)for(let Ee=0;Ee<Ae;Ee++)Q=this.buildBevelVert(P,F,(W+Ee)%X,Ee/(Ae-1)),x.push(ne.topN,oe.topP,Q.topP),x.push(oe.bottomP,ne.bottomN,Q.bottomP),ne=Q;else if(ye&&Ae)if(ee=this.buildBevelVert(P,D,U,0),Q=this.buildBevelVert(P,F,W,0),gt?(x.push(oe.topN,Q.topP,ne.topN),x.push(oe.topN,ee.topP,Q.topP),x.push(Q.bottomP,oe.bottomN,ne.bottomN),x.push(Q.bottomP,ee.bottomP,oe.bottomN)):(x.push(ne.topN,oe.topN,ee.topP),x.push(ne.topN,ee.topP,Q.topP),x.push(ee.bottomP,oe.bottomN,ne.bottomN),x.push(ee.bottomP,ne.bottomN,Q.bottomP)),oe=ee,ne=Q,ye===Ae)for(let Ee=1;Ee<ye;Ee++)ee=this.buildBevelVert(P,D,(U+Ee)%B,Ee/(ye-1)),Q=this.buildBevelVert(P,F,(W+Ee)%X,Ee/(Ae-1)),x.push(oe.topN,ee.topP,ne.topN),x.push(ne.topN,ee.topP,Q.topP),x.push(ee.bottomP,oe.bottomN,ne.bottomN),x.push(ee.bottomP,ne.bottomN,Q.bottomP),oe=ee,ne=Q;else if(ye>Ae){let Ee=ye/Ae,Be=0;for(let ke=1;ke<ye;ke++)ee=this.buildBevelVert(P,D,(U+ke)%B,ke/(ye-1)),x.push(oe.topN,ee.topP,ne.topN),x.push(ee.bottomP,oe.bottomN,ne.bottomN),oe=ee,ke>(Be+1)*Ee&&(Be++,Q=this.buildBevelVert(P,F,(W+Be)%X,Be/(Ae-1)),x.push(ne.topN,ee.topP,Q.topP),x.push(ee.bottomP,ne.bottomN,Q.bottomP),ne=Q)}else{let Ee=Ae/ye,Be=0;for(let ke=1;ke<Ae;ke++)Q=this.buildBevelVert(P,F,(W+ke)%X,ke/(Ae-1)),x.push(ne.topN,ee.topP,Q.topP),x.push(ee.bottomP,ne.bottomN,Q.bottomP),ne=Q,ke>(Be+1)*Ee&&(Be++,ee=this.buildBevelVert(P,D,(U+Be)%B,Be/(ye-1)),x.push(oe.topN,ee.topP,ne.topN),x.push(ee.bottomP,oe.bottomN,ne.bottomN),oe=ee)}U=(U+ye)%B,W=(W+Ae)%X,q=(q+1)%K}while(q!==re)}{let R=j[0];for(let D=0,F=R.boundary.vertexCount;D<F;D++){let B=this.buildBevelVert(P,R,D),X=this.buildBevelVert(P,R,(D+1)%F);x.push(X.topP,B.topN,B.bottomN),x.push(X.topP,B.bottomN,X.bottomP)}}if(O){let R=[];for(let D=x.length-1;D>=V+2;D-=3){let F=x[D-2],B=x[D-1],X=x[D-0];R.push(X,B,F)}x.splice(V,x.length-V,...R)}if(O){let R=[];for(let D=j[j.length-1].boundary.vertices.length-1;D>=1;D-=2){let F=j[j.length-1].boundary.vertices[D-1],B=j[j.length-1].boundary.vertices[D-0];R.push(F,B)}b.push(R)}if(!O){let R=j[j.length-1],D=ho({windingRule:j.length>1?Ge.POSITIVE:Ge.ODD,elementType:ct.POLYGONS,vertexSize:2,strict:!0,contours:[R.insetPoints,...b]});if(!D)throw new Error("Error generating geometry for surface");u.length===0&&Object.assign(this,{capStartIndex:x.length});for(let F=0;F<D.elementCount*3;F+=3){let B=this.buildSurfaceVert(D,D.elements[F+0]),X=this.buildSurfaceVert(D,D.elements[F+1]),K=this.buildSurfaceVert(D,D.elements[F+2]);x.push(B.top,X.top,K.top),x.push(K.bottom,X.bottom,B.bottom)}}this.vertexCache={}}this._buffer.shrink();let w=new go.BufferAttribute(Uint32Array.from(x),1),S=new go.BufferAttribute(this._buffer.positions,3),_=new go.BufferAttribute(this._buffer.normals,3),T=new go.BufferAttribute(this._buffer.uvs,2);S.needsUpdate=!0,_.needsUpdate=!0,T.needsUpdate=!0,w.needsUpdate=!0,this.setAttribute("position",S),this.setAttribute("normal",_),this.setAttribute("uv",T),this.setIndex(w)}buildSurfaceVert(e,n){let o=n.toString();if(o in this.vertexCache)return this.vertexCache[o];let i=e.vertices[n*2+0],a=e.vertices[n*2+1],s=(i-this._minX)/this._width,l=(a-this._minY)/this._height,u=this._buffer.get(2),c=u*3,p=u*2,f={top:u+0,bottom:u+1};return this._buffer.positions[c+0]=i,this._buffer.positions[c+1]=a,this._buffer.positions[c+2]=this._depth,this._buffer.normals[c+0]=0,this._buffer.normals[c+1]=0,this._buffer.normals[c+2]=1,this._buffer.uvs[p+0]=s,this._buffer.uvs[p+1]=l,this._buffer.positions[c+3]=i,this._buffer.positions[c+4]=a,this._buffer.positions[c+5]=0,this._buffer.normals[c+3]=0,this._buffer.normals[c+4]=0,this._buffer.normals[c+5]=-1,this._buffer.uvs[p+2]=s,this._buffer.uvs[p+3]=l,this.vertexCache[o]=f,f}buildBevelVert(e,n,o,i=1){let a=`${n.bevelI}:${o}`;if(a in this.vertexCache)return this.vertexCache[a];let[s,l]=n.boundary.vertexIndices[o],u,c,p,f;s!==l?(c=s,u=l,f=!1,p=e.continuous[c]&&e.continuous[u]):(u=s,c=(u-1+e.count)%e.count,f=e.concave[u]&&n.bevelI>0,p=e.continuous[u]||f);let d=Math.cos(n.angle),h=Math.sin(n.angle),m=o*2,g=u*2,v=c*2,x=n.boundary.vertices[m+0],b=n.boundary.vertices[m+1],w=(1-h)*this._bevelSize,S=(x-this._minX)/this._width,_=(b-this._minY)/this._height,T=e.normals[g+0],y=e.normals[g+1],O=e.normals[v+0],A=e.normals[v+1];if(f){let G=O-T,$=A-y;T=T+G*(1-i),y=y+$*(1-i);let Y=Math.sqrt(T*T+y*y);T/=Y,y/=Y}let I=this._buffer.get(p?2:4),C=I*3,N=I*2,P={i:o,fi:u,topP:I+0,topN:I+0,bottomP:I+1,bottomN:I+1};return this._buffer.positions[C+0]=x,this._buffer.positions[C+1]=b,this._buffer.positions[C+2]=this._depth-w,this._buffer.normals[C+0]=T*d,this._buffer.normals[C+1]=y*d,this._buffer.normals[C+2]=h,this._buffer.uvs[N+0]=S,this._buffer.uvs[N+1]=_,this._buffer.positions[C+3]=x,this._buffer.positions[C+4]=b,this._buffer.positions[C+5]=w,this._buffer.normals[C+3]=T*d,this._buffer.normals[C+4]=y*d,this._buffer.normals[C+5]=-h,this._buffer.uvs[N+2]=_,this._buffer.uvs[N+3]=S,p||(I+=2,C+=6,N+=4,P.topP=I+0,P.bottomP=I+1,this._buffer.positions[C+0]=x,this._buffer.positions[C+1]=b,this._buffer.positions[C+2]=this._depth-w,this._buffer.normals[C+0]=O*d,this._buffer.normals[C+1]=A*d,this._buffer.normals[C+2]=h,this._buffer.uvs[N+0]=S,this._buffer.uvs[N+1]=_,this._buffer.positions[C+3]=x,this._buffer.positions[C+4]=b,this._buffer.positions[C+5]=w,this._buffer.normals[C+3]=O*d,this._buffer.normals[C+4]=A*d,this._buffer.normals[C+5]=-h,this._buffer.uvs[N+2]=_,this._buffer.uvs[N+3]=S),this.vertexCache[a]=P,P}clone(){let e=new hi(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=sa(this.userData),e}};var At=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:Ge.ODD},r.parameters),n=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),a=r.shape??t?.shape,s=a?.roundness??e.roundness;a!==void 0&&(a instanceof Ne?(a.width!==n||a.height!==o)&&a.applySize(n,o):a=new Ne(n,o).fromJSON(a),r.parameters?.roundness!==void 0&&r.parameters?.roundness>0&&a.update(!1));let l=a??new Ne(n,o);return{parameters:Object.assign(e,{width:n,height:o,depth:i,roundness:s}),shape:l}}static build(r){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:n,subdivisions:o,roundness:i,windingRule:a}=r.parameters;r.shape.roundness=i;let s;return t<=0?s=new di(r.shape,o,{windingRule:a}):s=new hi(r.shape,t,e,o,n,a),Object.assign(s,{userData:{...r,type:"VectorGeometry"}})}};var Kl=require("three");var bm=require("three");var qe=require("three"),xm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,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},r.parameters),n=e.width/2,o=e.radiusTop??n,i=e.radiusBottom??n;return o===i?(o=n,i=n):o>i?(o=n,i=i*n/o):(o=o*n/i,i=n),{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(r){let{width:t,depth:e,height:n,radialSegments:o,heightSegments:i,openEnded:a,thetaStart:s,thetaLength:l,radiusTop:u,radiusBottom:c,cornerRadius:p,cornerSegments:f,hollow:d}=r.parameters,h;return p||d?h=new va(u,c,n,o,i,a,s,l*Math.PI/180,p,p,f,d):h=new qe.CylinderBufferGeometry(u,c,n,o,i,a,s,l*Math.PI/180),h.scale(1,1,e/t),Object.assign(h,{userData:{...r,type:"CylinderGeometry"}})}};function Gn(r,t,e){e.x=r.x*t.x,e.y=r.y,e.z=r.x*t.y}function vm(r){return new qe.Vector2(r.y,-r.x)}var va=class extends qe.BufferGeometry{constructor(t,e,n,o,i,a,s,l,u,c,p,f,d=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,e=e!==void 0?e:1,n=n||1,o=Math.floor(o)||8,i=Math.floor(i)||1,a=a!==void 0?a:!1,s=s!==void 0?s:0,l=l!==void 0?l:Math.PI*2,a&&(u=0,c=0);let h=[],m=[],g=[],v=[],x=0,b=n/2,w=new qe.Vector3,S=new qe.Vector3;d&&t==0&&(t=u),d&&e==0&&(e=c);let _=new qe.Vector2(t,b),T=new qe.Vector2(e,-b),y=null,O=null,A=null,I=null,C=_.clone().sub(T),N=0,P=0,G=0;f>0&&(N=Math.min(t,e)*(1-f),P=t-N,G=e-N);let $=_.clone();$.x-=N;let Y=Math.PI-C.angle(),ie=C.angle(),j=Math.tan(ie/2),H=Math.tan(Y/2),V=j+H,R=f?V:H,D=f?V:j;if(u=Math.min(u,(t-P)/R,C.length()/V),c=Math.min(c,(e-G)/D,C.length()/V),u>0){let z=u/j;y=_.clone().sub(new qe.Vector2(z,u)),f&&(A=y.clone(),A.x-=N-V*u),_.sub(C.clone().setLength(z))}if(c>0){let z=c/H;O=T.clone().sub(new qe.Vector2(z,-c)),T.add(C.clone().setLength(z)),f&&(I=O.clone(),I.x-=N-V*c,$.sub(C.clone().setLength(z)))}C=_.clone().sub(T);let F=C.length()<.5,B=[];for(let z=0;z<=o;z++){let U=[],W=z/o,re=W*l+s,ae=new qe.Vector2(Math.sin(re),Math.cos(re));I&&O?(X(U,W,ae,Y,c,I,-1,!0),X(U,W,ae,ie,c,O,-1,!1)):O?(K(U,ae,O.x,0,-1),X(U,W,ae,ie,c,O,-1,!1)):a||K(U,ae,e,G,-1);let fe=vm(C).normalize();if(Gn(fe,ae,w),!F)for(let oe=0;oe<=i;oe++){let ne=oe/i,ee=C.clone().multiplyScalar(ne).add(T);Gn(ee,ae,S),m.push(S.x,S.y,S.z),g.push(w.x,w.y,w.z),v.push(W,.5+S.y/n),U.push(x++)}if(A&&y?(X(U,W,ae,Y,u,y,1,!1),X(U,W,ae,ie,u,A,1,!0)):y?(X(U,W,ae,Y,u,y,1,!1),K(U,ae,y.x,0,1)):a||K(U,ae,t,P,1),f&&!F){let oe=vm(C).multiplyScalar(-1).normalize();Gn(oe,ae,w);for(let ne=0;ne<=i;ne++){let ee=ne/i,Q=C.clone().multiplyScalar(-ee).add($);Gn(Q,ae,S),m.push(S.x,S.y,S.z),g.push(w.x,w.y,w.z),v.push(W,.5+S.y/n),U.push(x++)}}f&&!a&&U.push(U[0]),B.push(U)}for(let z=0;z<B.length-1;z++)for(let U=0;U<B[0].length-1;U++){if(a&&f&&U==i)continue;let W=B[z][U],re=B[z+1][U],ae=B[z+1][U+1],fe=B[z][U+1],oe=m[ae*3+0],ne=m[ae*3+2];h.push(W,re,fe),(oe!=0||ne!=0)&&h.push(re,ae,fe)}l<Math.PI*2&&(q(-1,B[0],s),q(1,B[B.length-1],s+l)),this.setIndex(h),this.setAttribute("position",new qe.Float32BufferAttribute(m,3)),this.setAttribute("normal",new qe.Float32BufferAttribute(g,3)),this.setAttribute("uv",new qe.Float32BufferAttribute(v,2));function X(z,U,W,re,ae,fe,oe,ne){for(let ee=0;ee<p+1;ee++){let Q=ee/p,Se=oe<0?Q:1-Q;ne&&(Se-=1),Se*=re;let ye=new qe.Vector2(Math.sin(Se),Math.cos(Se)*oe),Ae=ye.clone().multiplyScalar(ae).add(fe);Gn(Ae,W,S),m.push(S.x,S.y,S.z),Gn(ye,W,w),g.push(w.x,w.y,w.z),v.push(U,.5+S.y/n),z.push(x++)}}function K(z,U,W,re,ae){let fe=new qe.Vector3,oe=new qe.Vector2,ne=[W,re];ae<0&&ne.reverse();for(let ee of ne)oe.set(ee,b*ae),Gn(oe,U,fe),m.push(fe.x,fe.y,fe.z),g.push(0,ae,0),v.push(.5,.5),z.push(x++)}function q(z,U,W){let re=new qe.Vector2(Math.sin(W),Math.cos(W)),ae=new qe.Vector2(-Math.cos(W),Math.sin(W)),fe=new qe.Vector3,oe=z<0?(Q,Se,ye)=>h.push(Q,Se,ye):(Q,Se,ye)=>h.push(Q,ye,Se),ne=new qe.Vector2((t+e+P+G)/4,0);Gn(ne,re,fe),m.push(fe.x,fe.y,fe.z),g.push(ae.x,0,ae.y),v.push(.5,.5);let ee=x++;for(let Q of U){let Se=m.slice(Q*3,Q*3+3);m.push(...Se),g.push(ae.x,0,ae.y);let ye=v.slice(Q*2,Q*2+2);v.push(...ye),x++}for(let Q=ee+1;Q<x-1;Q++)oe(ee,Q,Q+1);oe(ee,x-1,ee+1)}}};var Sm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,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},r.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(r){let{width:t,depth:e,height:n,radialSegments:o,heightSegments:i,openEnded:a,thetaStart:s,thetaLength:l,cornerRadiusTop:u,cornerRadiusBottom:c,cornerSegments:p}=r.parameters,f;return u>0||c>0||l<360?f=new va(0,t/2,n,o,i,a,s,l*Math.PI/180,u,c,p,0,!0):f=new bm.ConeBufferGeometry(t/2,n,o,i,a),f.scale(1,1,e/t),Object.assign(f,{userData:{...r,type:"ConeGeometry"}})}};var zt=require("three"),wm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},r.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(r){let{width:t,height:e,depth:n,widthSegments:o,heightSegments:i,depthSegments:a,cornerRadius:s,cornerSegments:l}=r.parameters,u;return s==0?u=new zt.BoxBufferGeometry(t,e,n,o,i,a):u=new pu(t,e,n,o,i,a,s,l),Object.assign(u,{userData:{...r,type:"CubeGeometry"}})}},uu=Math.PI/2,pu=class extends zt.BufferGeometry{constructor(t=1,e=1,n=1,o=1,i=1,a=1,s=0,l=4){super(),this.type="BoxBufferGeometry";let u=this;o=Math.floor(o),i=Math.floor(i),a=Math.floor(a),l=Math.floor(l),s=Math.min(s,t/2,e/2,n/2);let c=[],p=[],f=[],d=[],h=0,m=0;g("z","y","x",-1,-1,n,e,t,a,i,0),g("z","y","x",1,-1,n,e,-t,a,i,1),g("x","z","y",1,1,t,n,e,o,a,2),g("x","z","y",1,-1,t,n,-e,o,a,3),g("x","y","z",1,-1,t,e,n,o,i,4),g("x","y","z",-1,-1,t,e,-n,o,i,5),s>0&&(v("z","y","x",-1,-1,1,n,e,t,a,0),v("z","y","x",1,-1,-1,n,e,t,a,1),v("z","y","x",-1,1,-1,n,e,t,a,1),v("z","y","x",1,1,1,n,e,t,a,0),v("x","y","z",-1,-1,-1,t,e,n,o,0),v("x","y","z",1,-1,1,t,e,n,o,1),v("x","y","z",-1,1,1,t,e,n,o,0),v("x","y","z",1,1,-1,t,e,n,o,1),v("y","x","z",-1,-1,1,e,t,n,i,0),v("y","x","z",1,-1,-1,e,t,n,i,1),v("y","x","z",1,1,1,e,t,n,i,1),v("y","x","z",-1,1,-1,e,t,n,i,0),x(1,1,1),x(-1,1,1),x(1,-1,1),x(-1,-1,1),x(1,1,-1),x(-1,1,-1),x(1,-1,-1),x(-1,-1,-1)),this.setIndex(c),this.setAttribute("position",new zt.Float32BufferAttribute(p,3)),this.setAttribute("normal",new zt.Float32BufferAttribute(f,3)),this.setAttribute("uv",new zt.Float32BufferAttribute(d,2));function g(b,w,S,_,T,y,O,A,I,C,N){let P=(y-2*s)/I,G=(O-2*s)/C,$=y/2-s,Y=O/2-s,ie=A/2,j=I+1,H=C+1,V=0,R=0,D=new zt.Vector3;for(let F=0;F<H;F++){let B=F*G-Y;for(let X=0;X<j;X++){let K=X*P-$;D[b]=K*_,D[w]=B*T,D[S]=ie,p.push(D.x,D.y,D.z),D[b]=0,D[w]=0,D[S]=A>0?1:-1,f.push(D.x,D.y,D.z),d.push(X/I),d.push(1-F/C),V+=1}}for(let F=0;F<C;F++)for(let B=0;B<I;B++){let X=h+B+j*F,K=h+B+j*(F+1),q=h+(B+1)+j*(F+1),z=h+(B+1)+j*F;c.push(X,K,z),c.push(K,q,z),R+=6}u.addGroup(m,R,N),m+=R,h+=V}function v(b,w,S,_,T,y,O,A,I,C,N){let P=(O-2*s)/C,G=O/2-s,$=A/2-s,Y=I/2,ie=C+1,j=0,H=0,V=new zt.Vector3,R=new zt.Vector3;for(let D=0;D<l+1;D++){let F=D/l*uu,B=Math.sin(F)*s,X=(1-Math.cos(F))*s,K=Math.sin(F),q=Math.cos(F);V[w]=($+B)*T,V[S]=(Y-X)*y,R[b]=0,R[w]=K*Math.sign(V[w]),R[S]=q*Math.sign(V[S]);for(let z=0;z<ie;z++){let U=z*P-G;V[b]=U*_,p.push(V.x,V.y,V.z),f.push(R.x,R.y,R.z),d.push(z/C),d.push(0),j+=1}}for(let D=0;D<l;D++)for(let F=0;F<C;F++){let B=h+F+ie*D,X=h+F+ie*(D+1),K=h+(F+1)+ie*(D+1),q=h+(F+1)+ie*D;c.push(B,X,q),c.push(X,K,q),H+=6}u.addGroup(m,H,N),m+=H,h+=j}function x(b,w,S){let _=new zt.Vector3,T=new zt.Vector3(t/2,e/2,n/2);T.subScalar(s);let y=[],O=b*w*S>0?(I,C,N)=>c.push(I,C,N):(I,C,N)=>c.push(I,N,C);for(let I=0;I<=l;I++){let C=[],N=uu*(1-I/l),P=Math.cos(N),G=Math.sin(N),$=0;for(let Y=0;Y<=I;Y++){let ie=Math.cos($),j=Math.sin($);_.x=P*ie,_.y=G,_.z=P*j;let H=T.clone().addScaledVector(_,s);p.push(b*H.x,w*H.y,S*H.z),f.push(b*_.x,w*_.y,S*_.z),d.push(0,0),C.push(h++),$+=uu/I}y.push(C)}let A=y.length-1;for(let I=0;I<A;I++){let C=y[I],N=y[I+1],P=C.length-1;O(C[0],N[1],N[0]);for(let G=1;G<=P;G++)O(C[G-1],C[G],N[G]),O(C[G],N[G+1],N[G])}}}};var Ze=require("three"),Un=class extends Ze.BufferGeometry{constructor(t=[],e=[],n="",o=1,i=.2,a=4){super(),this.type="PolyhedronGeometryRound";let s=[],l=[],u=[];c(),p(),this.setAttribute("position",new Ze.Float32BufferAttribute(s,3)),this.setAttribute("normal",new Ze.Float32BufferAttribute(u,3)),this.setAttribute("uv",new Ze.Float32BufferAttribute(l,2));return;function c(){i=Math.min(1-1e-5,i),i==0&&(a=0);let d={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[n],h=new Ze.Vector3,m=h.clone(),g=new Ze.Triangle,v=i*o,x=o-v,b=a+1,w=new Ze.Vector3,S=(j,H)=>w.subVectors(j,H).normalize(),_=(j,H)=>Array(j).fill(void 0).map(H),T=_(t.length/3,(j,H)=>new Ze.Vector3().fromArray(t,H*3).setLength(o)),y=[],O=1e6;for(let j=0;j<T.length;j++){let H=T[j],V=[],R,D,F,B=1e10,X=-1;for(;(X=e.indexOf(j,X+1))!=-1;){let U=X-X%3;R=e[U+(X+1)%3],D=e[U+(X+2)%3],F=H.distanceToSquared(T[R]),B=Math.min(B,F),V.push([R,D,F])}B+=1e-6;let K=[],q=0,z=V.length;for(let U=0;U<z;U++){[R,D,F]=V[q];let W=y[R]?.includes(j)==!0;F<=B&&K.push(R+ +W*O),q=V.findIndex(re=>re[0]==D)}y.push(K)}let A=[];{let j=0,H=0,V,R,D=d==3;for(let F=0;F<=a;F++){V=F*(F+1)/2,R=(F+1)*(F+2)/2;for(let B=0;B<a-F;B++)[j,H]=[V+B+F+2,R+B+F+3],A.push(V,R,...D?[H,V]:[j,R],H,j),[V,R]=[j,H];A.push(V,R,V+a+2)}}let I=h.clone(),C=h.clone(),N=h.clone(),P=h.clone(),G=h.clone(),$=[],Y=_(T.length,()=>_(d,()=>h.clone()));for(let j=0;j<T.length;j++){h.copy(T[j]).normalize(),I.copy(h).multiplyScalar(x);let H=y[j];for(let K=0;K<H.length;K++){let q=H[K],z=H[(K+1)%d];g.setFromPointsAndIndices(T,j,q%O,z%O),g.b.sub(g.a).setLength(1e10).add(g.a),g.c.sub(g.a).setLength(1e10).add(g.a),g.closestPointToPoint(I,Y[j][K])}let V=[],R=[],D=[],F=new Ze.Vector3;a==0&&[...Y[j]].reduce((K,q)=>K.add(q),F).multiplyScalar(1/d);for(let K=0;K<d;K++){let q=[],z=(K-1+d)%d,U=Y[j][z],W=Y[j][K];h.copy(U).sub(I),m.copy(W).sub(I);let re=I.angleTo(h),ae=h.angleTo(m),fe=Math.cos(re)*v;a==0?C.copy(F):C.copy(I).setLength(x+fe),R.push(fe);let oe=[C,U,W];for(let ne=0;ne<2;ne++){let ee=oe[ne],Q=oe[ne+1];P.subVectors(ee,I),G.subVectors(Q,I),N.crossVectors(P,G).normalize();for(let Se=0;Se<b;Se++){let ye=[re,ae][ne]*Se/b;h.copy(P).applyAxisAngle(N,ye).add(I),V.push(h.clone()),ne&&(S(h,I),q.push([Se==0?ee:h.clone(),w.clone()]))}ne&&(S(Q,I),q.push([Q,w.clone()]))}D.push(q)}$.push(D);let B=2*b,X=2;for(let K=0;K<d;K++){let q=B*K,z=B*((K+1)%d),U=[V[q]];for(let re=1;re<b;re++){P=V[q+re],G=V[z+re],U.push(P);for(let ae=1,fe=re-X+1;ae<=fe;ae++)h.lerpVectors(P,G,ae/(fe+1)),h.sub(I).setLength(R[K]).add(I),U.push(h.clone());U.push(G)}for(let re=0;re<b;re++)U.push(V[re+b+q]);U.push(V[z+b]);let W=A.map(re=>U[re]);s.push(...W.map(re=>[re.x,re.y,re.z]).flat()),u.push(...W.map(re=>(S(re,I),[w.x,w.y,w.z])).flat())}}let ie=[];for(let j=0;j<y.length;j++)for(let H=0;H<d;H++){let V=y[j][H];if(V<O){let R=y[V].findIndex(B=>B%O==j),D=$[j][H],F=$[V][R];for(let B=0;B<b;B++){let X=D[B],K=F[b-B],q=D[B+1],z=F[b-(B+1)];[X,K,q,q,K,z].forEach(U=>{s.push(U[0].x,U[0].y,U[0].z),u.push(U[1].x,U[1].y,U[1].z)})}ie.push(D[0][0],F[b][0],D[b][0],F[0][0])}}for(;ie.length;){let j,H,V,R;[j,H]=ie.splice(0,2);let D=[j];for(;j!=H;)D.push(H),V=ie.indexOf(H),R=V%2,H=ie.splice(V-R,2)[1-R];w.subVectors(D[0],D[1]).cross(h.subVectors(D[0],D[2])).normalize();let F=w.dot(D[0])<0;F&&w.negate();for(let B=1;B<=D.length-2;B++)[D[B+ +F],D[B+1-+F],D[0]].forEach(X=>{s.push(X.x,X.y,X.z),u.push(w.x,w.y,w.z)})}}function p(){let f=new Ze.Vector3;for(let T=0;T<s.length;T+=3){f.x=s[T+0],f.y=s[T+1],f.z=s[T+2];let y=S(f)/2/Math.PI+.5,O=_(f)/Math.PI+.5;l.push(y,1-O)}let d=new Ze.Vector3,h=new Ze.Vector3,m=new Ze.Vector3,g=new Ze.Vector3,v=new Ze.Vector2,x=new Ze.Vector2,b=new Ze.Vector2,w=(T,y,O,A)=>{A<0&&T.x===1&&(l[y]=T.x-1),O.x===0&&O.z===0&&(l[y]=A/2/Math.PI+.5)};for(let T=0,y=0;T<s.length;T+=9,y+=6){d.set(s[T+0],s[T+1],s[T+2]),h.set(s[T+3],s[T+4],s[T+5]),m.set(s[T+6],s[T+7],s[T+8]),v.set(l[y+0],l[y+1]),x.set(l[y+2],l[y+3]),b.set(l[y+4],l[y+5]),g.copy(d).add(h).add(m).divideScalar(3);let O=S(g);w(v,y+0,d,O),w(x,y+2,h,O),w(b,y+4,m,O)}for(let T=0;T<l.length;T+=6){let y=l[T+0],O=l[T+2],A=l[T+4],I=Math.max(y,O,A),C=Math.min(y,O,A);I>.9&&C<.1&&(y<.2&&(l[T+0]+=1),O<.2&&(l[T+2]+=1),A<.2&&(l[T+4]+=1))}function S(T){return Math.atan2(T.z,-T.x)}function _(T){return Math.atan2(-T.y,Math.sqrt(T.x*T.x+T.z*T.z))}}}static fromJSON(t){return new Un(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};var Tm=require("three"),Cm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},r.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(r){let{width:t,height:e,depth:n,detail:o,corner:i,cornerSides:a}=r.parameters,s=o===0&&i!==0?new xa(t*.5,i,a):new Tm.DodecahedronBufferGeometry(t*.5,o);return s.scale(1,e/t,n/t),Object.assign(s,{userData:{...r,type:"DodecahedronGeometry"}})}},xa=class extends Un{constructor(t=1,e=.2,n=4){let o=(1+Math.sqrt(5))/2,i=1/o,a=[-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],s=[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],l="DodecahedronGeometry";super(a,s,l,t,e,n),this.type=l}static fromJSON(t){return new xa(t.radius,t.corner,t.cornerSides)}};var du=Math.PI*2;function fu({x:r,y:t},e,n,o,i){return{x:r*e+o,y:t*n+i}}function iC(r,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),n=Math.cos(r),o=Math.sin(r),i=Math.cos(r+t),a=Math.sin(r+t);return[{x:n-o*e,y:o+n*e},{x:i+a*e,y:a-i*e},{x:i,y:a}]}function Am(r,t,e,n){let o=r*n-t*e<0?-1:1,i=Math.min(1,Math.max(-1,r*e+t*n));return o*Math.acos(i)}function aC(r,t,e,n,o,i,a,s,l,u){let c=Math.pow(o,2),p=Math.pow(i,2),f=Math.pow(a,2),d=Math.pow(s,2),h=c*p-c*d-p*f;h<0&&(h=0),h/=c*d+p*f,h=Math.sqrt(h)*(l===u?-1:1);let m=h*o/i*s,g=h*-i/o*a,v=m+(r+e)/2,x=g+(t+n)/2,b=(a-m)/o,w=(s-g)/i,S=(-a-m)/o,_=(-s-g)/i,T=Am(1,0,b,w),y=Am(b,w,S,_);return!u&&y>0&&(y-=du),u&&y<0&&(y+=du),{centerx:v,centery:x,ang1:T,ang2:y}}function _m({px:r,py:t,cx:e,cy:n,rx:o,ry:i,largeArcFlag:a,sweepFlag:s}){let l=[];if(o===0||i===0)return[];let u=(r-e)/2,c=(t-n)/2;if(u===0&&c===0)return[];o=Math.abs(o),i=Math.abs(i);let p=Math.pow(u,2)/Math.pow(o,2)+Math.pow(c,2)/Math.pow(i,2);p>1&&(o*=Math.sqrt(p),i*=Math.sqrt(p));let f=aC(r,t,e,n,o,i,u,c,a,s),{ang1:d,ang2:h}=f,{centerx:m,centery:g}=f,v=Math.abs(h)/(du/4);Math.abs(1-v)<1e-7&&(v=1);let x=Math.max(Math.ceil(v),1);h/=x;for(let b=0;b<x;b++)l.push(iC(d,h)),d+=h;return l.map(b=>{let{x:w,y:S}=fu(b[0],o,i,m,g),{x:_,y:T}=fu(b[1],o,i,m,g),{x:y,y:O}=fu(b[2],o,i,m,g);return{x1:w,y1:S,x2:_,y2:T,x:y,y:O}})}var gi=require("three"),Im=Math.PI*2,Lm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},r.parameters);return{shape:r.shape&&r.shape instanceof Ne?r.shape:new Ne,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(r){let{width:t,height:e,spikes:n,angle:o,innerRadius:i,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}=r.parameters,u=r.shape,c=t*.5,p=e*.5,f=sC(u,c,p,o*Math.PI/180,n,i);u.isClosed=!0,u.update();let d=At.create({shape:u,parameters:{subdivisions:f,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(d,{userData:{...r,type:"EllipseGeometry"}})}};function sC(r,t,e,n,o,i){if(n>=Im)return o>30||o%4===0?(cC(r,t,e,i),Math.round(o/4)):Om(r,n,o,t,e,i);let a={x:0,y:e},s=n+Math.PI*.5,l={x:Math.cos(s)*t,y:Math.sin(s)*e},u=_m({px:a.x,py:a.y,cx:l.x,cy:l.y,rx:t,ry:e,largeArcFlag:n>Math.PI,sweepFlag:!0});return o>30||o%u.length===0?lC(r,a.x,a.y,u,o,t,e,i):Om(r,n,o,t,e,i)}function lC(r,t,e,n,o,i,a,s){let l=Math.round(o/n.length);r.addPoint(mi(t,e));for(let u=0,c=n.length;u<c;u++){let p=n[u],f=r.points[u],d=mi(p.x,p.y);f.controls[1].position.set(p.x1,p.y1),d.controls[0].position.set(p.x2,p.y2),r.addPoint(d)}return s>0?Nm(r,i,a,s):r.addPoint(mi(0,0)),l}function Om(r,t,e,n,o,i){let a=-t/e;for(let s=0;s<=e;s++){let l=a*s,u=Math.sin(l)*n,c=Math.cos(l)*o;r.addPoint(mi(u,c))}return t<Im?i>0?Nm(r,n,o,i):r.addPoint(mi(0,0)):(r.removePoint(r.points[r.points.length-1]),i>0&&Pm(r,n,o,i)),1}function cC(r,t,e,n=0,o=0,i=0){let a=.5522847498,s=t*a,l=e*a;r.addPoint(Ll(o-t,i,o-t,i-l,o-t,i+l)),r.addPoint(Ll(o,i+e,o-s,i+e,o+s,i+e)),r.addPoint(Ll(o+t,i,o+t,i+l,o+t,i-l)),r.addPoint(Ll(o,i-e,o+s,i-e,o-s,i-e)),n>0&&Pm(r,t,e,n)}function mi(r,t){return new gr(gi.MathUtils.generateUUID(),new gi.Vector2(r,t))}function Ll(r,t,e,n,o,i){let a=mi(r,t);return a.controls[0].position.set(e,n),a.controls[1].position.set(o,i),a}function Nm(r,t,e,n){Mm(r,t,e,n).forEach(i=>r.addPoint(i))}function Pm(r,t,e,n){let o=Mm(r,t,e,n),i=new Ne;o.forEach(a=>i.addPoint(a)),i.isClosed=!0,r.shapeHoles.push(i)}function Mm(r,t,e,n){let o=n*t/100,i=o*(Math.abs(e)/Math.abs(t)),a=new gi.Vector2(o/t,i/e),s=r.points.map(l=>{let u=l.clone();return u.uuid=gi.MathUtils.generateUUID(),u}).reverse();return s.forEach(l=>{l.position.multiply(a);let u=l.controls[0].position.clone().multiply(a),c=l.controls[1].position.clone().multiply(a);l.controls[0].position.copy(c),l.controls[1].position.copy(u)}),s}var mn=require("three"),Em=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},r.parameters),n=Math.abs(e.width),o=Math.abs(e.height??n),i=Math.abs(e.depth??n),a=Math.abs(Math.min(n,i))/2;return{parameters:Object.assign(e,{width:n,height:o,depth:i,radius:a,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(r){let{width:t,height:e,depth:n,radius:o,revolutions:i,segments:a,pathRadius:s,pathType:l,pathSegments:u,cornerRadius:c,cornerSegments:p}=r.parameters,f=new ba(!1,t,e,n,o,i,a,s,l,u,c,p);return Object.assign(f,{userData:{...r,type:"HelixGeometry"}})}},ba=class extends mn.BufferGeometry{constructor(t=!0,e=1,n=1,o=1,i=1,a=1,s=1,l=1,u=1,c=1,p=1,f=1){super();let d=t&&a===1;d&&(f=0),p>100&&(p=100);let h=()=>new mn.Vector3,m=new mn.Vector3,g=h(),v=h(),x=h(),b,w,S,_,T,y,O,A,I=h(),C=h(),N=h(),P=h(),G=h(),$=h(),Y=h(),ie=h(),j=n-2*l+.001,H=j/a,V=Math.ceil(s*a),R=V+1,D=j/V,F=-j/2,B=c+1,X=2*Math.PI/c,K=Math.PI/2/f,q=.01,z=Math.min((1-p/100)*l,l-q),U=l-z,W=0,re=2,ae=f*re+re,fe=B*ae/re,oe=fe+B*R,ne=B*(R+ae),[ee,Q,Se]=[3,3,2].map(tt=>Array(ne*tt).fill(0)),ye=[],Ae=i-l;function gt(tt,Yt){let Pr=Math.PI/2;y=Yt*D,A=2*Math.PI*(y%H)/H+Pr,y+=F,O=Math.sin(A)*Ae,T=Math.cos(A)*Ae,t?tt.set(T,O,y):tt.set(T,y,O)}gt(m,-1e-10),gt(g,0),I.copy(m),gt(m,1);let Ee=m.distanceTo(g),Be=U+z,ke=Ee*V+2*Be,or=z,wn=ke-Be;for(let tt=0;tt<=V;tt++){gt(v,tt),ie.subVectors(v,I).normalize(),I.copy(v),$.copy(v).setComponent(+t+1,0).normalize(),Y.crossVectors(ie,$).normalize();let Yt=tt===0,Pr=tt===V,fv=Yt?3*Math.PI/2:K,dv=Yt?or:wn,hv=Yt?B:oe,mv=Yt?0:ne-B,gv=ie.clone().multiplyScalar(Yt?-U:U).add(v),yv=ie.clone().multiplyScalar(Yt?-1:1).normalize();for(let cn=0;cn<B;cn++){let kp=cn*X;if(C.addVectors(m.copy($).multiplyScalar(l*Math.cos(kp)),g.copy(Y).multiplyScalar(l*Math.sin(kp))),N.copy(C).normalize(),Yt||Pr){d||(W=mv+cn,[0,1,2].forEach(Rt=>{ee[W*3+Rt]=gv.getComponent(Rt),Q[W*3+Rt]=yv.getComponent(Rt)}),Se[W*2]=+Pr,Se[W*2+1]=cn/c),g.copy(N).multiplyScalar(z),x.addVectors(v,g);for(let Rt=0;Rt<f;Rt++){let Tc=Rt*K+fv;P.addVectors(m.copy(ie).multiplyScalar(U*Math.sin(Tc)),g.copy(N).multiplyScalar(U*Math.cos(Tc))),G.copy(P).normalize(),g.addVectors(x,P),P.normalize(),W=hv+Rt*B+cn,[0,1,2].forEach(xs=>{ee[W*3+xs]=g.getComponent(xs),Q[W*3+xs]=G.getComponent(xs)});let vv=+Yt+Math.sin(Tc);Se[W*2]=(dv+U*vv)/ke,Se[W*2+1]=cn/c}}g.addVectors(v,C),W=fe+tt*B+cn,[0,1,2].forEach(Rt=>{ee[W*3+Rt]=g.getComponent(Rt),Q[W*3+Rt]=N.getComponent(Rt)}),Se[W*2]=(Be+tt*Ee)/ke,Se[W*2+1]=cn/c}}let Xt=R+2*f+re,Lo=1,[ys,vs]=d?[Lo,Lo+R-1]:[0,Xt-1];for(let tt=ys;tt<=vs-1;tt++){let Yt=d&&tt===vs-1;for(let Pr=0;Pr<B-1;Pr++)b=tt*B+Pr,w=b+1,S=(Yt?Pr:b)+B,_=(Yt?Pr+1:w)+B,tt===0?ye.push(w,_,S):tt===Xt-2?ye.push(b,w,S):ye.push(b,w,S,w,_,S)}this.setIndex(ye),this.setAttribute("position",new mn.Float32BufferAttribute(ee,3)),this.setAttribute("normal",new mn.Float32BufferAttribute(Q,3)),this.setAttribute("uv",new mn.Float32BufferAttribute(Se,2))}};var Dm=require("three");var Bm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},r.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(r){let{width:t,height:e,depth:n,detail:o,corner:i,cornerSides:a}=r.parameters,s=o===0&&i!==0?new Sa(t*.5,i,a):new Dm.IcosahedronBufferGeometry(t*.5,o);return s.scale(1,e/t,n/t),Object.assign(s,{userData:{...r,type:"IcosahedronGeometry"}})}},Sa=class extends Un{constructor(t=1,e=.2,n=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],a=[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],s="IcosahedronGeometry";super(i,a,s,t,e,n),this.type=s}static fromJSON(t){return new Sa(t.radius,t.corner,t.cornerSides)}};var Nl=require("three"),Fm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){(r.parameters?.points??[]).forEach(n=>{Array.isArray(n)&&(n.x=n[0],n.y=n[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}]},r.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(r){let{points:t,segments:e,verticalSegments:n}=r.parameters,o=new Nl.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 Nl.LatheBufferGeometry(o.extractPoints(n).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...r,type:"LatheGeometry"}})}};var zr=require("three");var gn=require("three");var ce=require("three"),Vr=new ce.Matrix4,hu=new ce.Object3D,Pl=new ce.Vector3,Vn=class extends ce.EventDispatcher{constructor(){super(),this.uuid=ce.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 ce.Matrix3().getNormalMatrix(t);for(let n=0,o=this.vertices.length;n<o;n++)this.vertices[n].applyMatrix4(t);for(let n=0,o=this.faces.length;n<o;n++){let i=this.faces[n];i.normal.applyMatrix3(e).normalize();for(let a=0,s=i.vertexNormals.length;a<s;a++)i.vertexNormals[a].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return Vr.makeRotationX(t),this.applyMatrix4(Vr),this}rotateY(t){return Vr.makeRotationY(t),this.applyMatrix4(Vr),this}rotateZ(t){return Vr.makeRotationZ(t),this.applyMatrix4(Vr),this}translate(t,e,n){return Vr.makeTranslation(t,e,n),this.applyMatrix4(Vr),this}scale(t,e,n){return Vr.makeScale(t,e,n),this.applyMatrix4(Vr),this}lookAt(t){return hu.lookAt(t),hu.updateMatrix(),this.applyMatrix4(hu.matrix),this}fromBufferGeometry(t){let e=this,n=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,a=o.normal,s=o.color,l=o.uv,u=o.uv2;u!==void 0&&(this.faceVertexUvs[1]=[]);for(let f=0;f<i.count;f++)e.vertices.push(new ce.Vector3().fromBufferAttribute(i,f)),s!==void 0&&e.colors.push(new ce.Color().fromBufferAttribute(s,f));function c(f,d,h,m){let g=s===void 0?[]:[e.colors[f].clone(),e.colors[d].clone(),e.colors[h].clone()],v=a===void 0?[]:[new ce.Vector3().fromBufferAttribute(a,f),new ce.Vector3().fromBufferAttribute(a,d),new ce.Vector3().fromBufferAttribute(a,h)],x=new yi(f,d,h,v,g,m);e.faces.push(x),l!==void 0&&e.faceVertexUvs[0].push([new ce.Vector2().fromBufferAttribute(l,f),new ce.Vector2().fromBufferAttribute(l,d),new ce.Vector2().fromBufferAttribute(l,h)]),u!==void 0&&e.faceVertexUvs[1].push([new ce.Vector2().fromBufferAttribute(u,f),new ce.Vector2().fromBufferAttribute(u,d),new ce.Vector2().fromBufferAttribute(u,h)])}let p=t.groups;if(p.length>0)for(let f=0;f<p.length;f++){let d=p[f],h=d.start,m=d.count;for(let g=h,v=h+m;g<v;g+=3)n!==void 0?c(n.getX(g),n.getX(g+1),n.getX(g+2),d.materialIndex):c(g,g+1,g+2,d.materialIndex)}else if(n!==void 0)for(let f=0;f<n.count;f+=3)c(n.getX(f),n.getX(f+1),n.getX(f+2));else for(let f=0;f<i.count;f+=3)c(f,f+1,f+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(Pl).negate(),this.translate(Pl.x,Pl.y,Pl.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,n=e===0?1:1/e,o=new ce.Matrix4;return o.set(n,0,0,-n*t.x,0,n,0,-n*t.y,0,0,n,-n*t.z,0,0,0,1),this.applyMatrix4(o),this}computeFaceNormals(){let t=new ce.Vector3,e=new ce.Vector3;for(let n=0,o=this.faces.length;n<o;n++){let i=this.faces[n],a=this.vertices[i.a],s=this.vertices[i.b],l=this.vertices[i.c];t.subVectors(l,s),e.subVectors(a,s),t.cross(e),t.normalize(),i.normal.copy(t)}}computeVertexNormals(t=!0){let e=new Array(this.vertices.length);for(let n=0,o=this.vertices.length;n<o;n++)e[n]=new ce.Vector3;if(t){let n=new ce.Vector3,o=new ce.Vector3;for(let i=0,a=this.faces.length;i<a;i++){let s=this.faces[i],l=this.vertices[s.a],u=this.vertices[s.b],c=this.vertices[s.c];n.subVectors(c,u),o.subVectors(l,u),n.cross(o),e[s.a].add(n),e[s.b].add(n),e[s.c].add(n)}}else{this.computeFaceNormals();for(let n=0,o=this.faces.length;n<o;n++){let i=this.faces[n];e[i.a].add(i.normal),e[i.b].add(i.normal),e[i.c].add(i.normal)}}for(let n=0,o=this.vertices.length;n<o;n++)e[n].normalize();for(let n=0,o=this.faces.length;n<o;n++){let i=this.faces[n],a=i.vertexNormals;a.length===3?(a[0].copy(e[i.a]),a[1].copy(e[i.b]),a[2].copy(e[i.c])):(a[0]=e[i.a].clone(),a[1]=e[i.b].clone(),a[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 n=this.faces[t],o=n.vertexNormals;o.length===3?(o[0].copy(n.normal),o[1].copy(n.normal),o[2].copy(n.normal)):(o[0]=n.normal.clone(),o[1]=n.normal.clone(),o[2]=n.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let e=0,n=this.faces.length;e<n;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,a=o.vertexNormals.length;i<a;i++)o.__originalVertexNormals[i]?o.__originalVertexNormals[i].copy(o.vertexNormals[i]):o.__originalVertexNormals[i]=o.vertexNormals[i].clone()}let t=new Vn;t.faces=this.faces;for(let e=0,n=this.morphTargets.length;e<n;e++){if(!this.morphNormals[e]){this.morphNormals[e]={},this.morphNormals[e].faceNormals=[],this.morphNormals[e].vertexNormals=[];let i=this.morphNormals[e].faceNormals,a=this.morphNormals[e].vertexNormals;for(let s=0,l=this.faces.length;s<l;s++){let u=new ce.Vector3,c={a:new ce.Vector3,b:new ce.Vector3,c:new ce.Vector3};i.push(u),a.push(c)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let i=0,a=this.faces.length;i<a;i++){let s=this.faces[i],l=o.faceNormals[i],u=o.vertexNormals[i];l.copy(s.normal),u.a.copy(s.vertexNormals[0]),u.b.copy(s.vertexNormals[1]),u.c.copy(s.vertexNormals[2])}}for(let e=0,n=this.faces.length;e<n;e++){let o=this.faces[e];o.normal=o.__originalFaceNormal,o.vertexNormals=o.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new ce.Box3),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new ce.Sphere),this.boundingSphere.setFromPoints(this.vertices)}merge(t,e,n=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,a=this.vertices,s=t.vertices,l=this.faces,u=t.faces,c=this.colors,p=t.colors;e!==void 0&&(o=new ce.Matrix3().getNormalMatrix(e));for(let f=0,d=s.length;f<d;f++){let m=s[f].clone();e!==void 0&&m.applyMatrix4(e),a.push(m)}for(let f=0,d=p.length;f<d;f++)c.push(p[f].clone());for(let f=0,d=u.length;f<d;f++){let h=u[f],m,g,v=h.vertexNormals,x=h.vertexColors,b=new yi(h.a+i,h.b+i,h.c+i);b.normal.copy(h.normal),o!==void 0&&b.normal.applyMatrix3(o).normalize();for(let w=0,S=v.length;w<S;w++)m=v[w].clone(),o!==void 0&&m.applyMatrix3(o).normalize(),b.vertexNormals.push(m);b.color.copy(h.color);for(let w=0,S=x.length;w<S;w++)g=x[w],b.vertexColors.push(g.clone());b.materialIndex=h.materialIndex+n,l.push(b)}for(let f=0,d=t.faceVertexUvs.length;f<d;f++){let h=t.faceVertexUvs[f];this.faceVertexUvs[f]===void 0&&(this.faceVertexUvs[f]=[]);for(let m=0,g=h.length;m<g;m++){let v=h[m],x=[];for(let b=0,w=v.length;b<w;b++)x.push(v[b].clone());this.faceVertexUvs[f].push(x)}}}mergeMesh(t){if(!(t&&t.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",t);return}t.matrixAutoUpdate&&t.updateMatrix(),this.merge(t.geometry,t.matrix)}mergeVertices(t=4){let e={},n=[],o=[],i=Math.pow(10,t);for(let l=0,u=this.vertices.length;l<u;l++){let c=this.vertices[l],p=Math.round(c.x*i)+"_"+Math.round(c.y*i)+"_"+Math.round(c.z*i);e[p]===void 0?(e[p]=l,n.push(this.vertices[l]),o[l]=n.length-1):o[l]=o[e[p]]}let a=[];for(let l=0,u=this.faces.length;l<u;l++){let c=this.faces[l];c.a=o[c.a],c.b=o[c.b],c.c=o[c.c];let p=[c.a,c.b,c.c];for(let f=0;f<3;f++)if(p[f]===p[(f+1)%3]){a.push(l);break}}for(let l=a.length-1;l>=0;l--){let u=a[l];this.faces.splice(u,1);for(let c=0,p=this.faceVertexUvs.length;c<p;c++)this.faceVertexUvs[c].splice(u,1)}let s=this.vertices.length-n.length;return this.vertices=n,s}setFromPoints(t){this.vertices=[];for(let e=0,n=t.length;e<n;e++){let o=t[e];this.vertices.push(new ce.Vector3(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,e=t.length;for(let l=0;l<e;l++)t[l]._id=l;function n(l,u){return l.materialIndex-u.materialIndex}t.sort(n);let o=this.faceVertexUvs[0],i=this.faceVertexUvs[1],a,s;o&&o.length===e&&(a=[]),i&&i.length===e&&(s=[]);for(let l=0;l<e;l++){let u=t[l]._id;a&&a.push(o[u]),s&&s.push(i[u])}a&&(this.faceVertexUvs[0]=a),s&&(this.faceVertexUvs[1]=s)}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 h=this.parameters;for(let m in h)h[m]!==void 0&&(t[m]=h[m]);return t}let e=[];for(let h=0;h<this.vertices.length;h++){let m=this.vertices[h];e.push(m.x,m.y,m.z)}let n=[],o=[],i={},a=[],s={},l=[],u={};for(let h=0;h<this.faces.length;h++){let m=this.faces[h],g=!0,v=!1,x=this.faceVertexUvs[0][h]!==void 0,b=m.normal.length()>0,w=m.vertexNormals.length>0,S=m.color.r!==1||m.color.g!==1||m.color.b!==1,_=m.vertexColors.length>0,T=0;if(T=c(T,0,0),T=c(T,1,g),T=c(T,2,v),T=c(T,3,x),T=c(T,4,b),T=c(T,5,w),T=c(T,6,S),T=c(T,7,_),n.push(T),n.push(m.a,m.b,m.c),n.push(m.materialIndex),x){let y=this.faceVertexUvs[0][h];n.push(d(y[0]),d(y[1]),d(y[2]))}if(b&&n.push(p(m.normal)),w){let y=m.vertexNormals;n.push(p(y[0]),p(y[1]),p(y[2]))}if(S&&n.push(f(m.color)),_){let y=m.vertexColors;n.push(f(y[0]),f(y[1]),f(y[2]))}}function c(h,m,g){return g?h|1<<m:h&~(1<<m)}function p(h){let m=h.x.toString()+h.y.toString()+h.z.toString();return i[m]!==void 0||(i[m]=o.length/3,o.push(h.x,h.y,h.z)),i[m]}function f(h){let m=h.r.toString()+h.g.toString()+h.b.toString();return s[m]!==void 0||(s[m]=a.length,a.push(h.getHex())),s[m]}function d(h){let m=h.x.toString()+h.y.toString();return u[m]!==void 0||(u[m]=l.length/2,l.push(h.x,h.y)),u[m]}return t.data={},t.data.vertices=e,t.data.normals=o,a.length>0&&(t.data.colors=a),l.length>0&&(t.data.uvs=[l]),t.data.faces=n,t}clone(){return new Vn().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 f=0,d=e.length;f<d;f++)this.vertices.push(e[f].clone());let n=t.colors;for(let f=0,d=n.length;f<d;f++)this.colors.push(n[f].clone());let o=t.faces;for(let f=0,d=o.length;f<d;f++)this.faces.push(o[f].clone());for(let f=0,d=t.faceVertexUvs.length;f<d;f++){let h=t.faceVertexUvs[f];this.faceVertexUvs[f]===void 0&&(this.faceVertexUvs[f]=[]);for(let m=0,g=h.length;m<g;m++){let v=h[m],x=[];for(let b=0,w=v.length;b<w;b++){let S=v[b];x.push(S.clone())}this.faceVertexUvs[f].push(x)}}let i=t.morphTargets;for(let f=0,d=i.length;f<d;f++){let h={};if(h.name=i[f].name,i[f].vertices!==void 0){h.vertices=[];for(let m=0,g=i[f].vertices.length;m<g;m++)h.vertices.push(i[f].vertices[m].clone())}if(i[f].normals!==void 0){h.normals=[];for(let m=0,g=i[f].normals.length;m<g;m++)h.normals.push(i[f].normals[m].clone())}this.morphTargets.push(h)}let a=t.morphNormals;for(let f=0,d=a.length;f<d;f++){let h={};if(a[f].vertexNormals!==void 0){h.vertexNormals=[];for(let m=0,g=a[f].vertexNormals.length;m<g;m++){let v=a[f].vertexNormals[m],x={};x.a=v.a.clone(),x.b=v.b.clone(),x.c=v.c.clone(),h.vertexNormals.push(x)}}if(a[f].faceNormals!==void 0){h.faceNormals=[];for(let m=0,g=a[f].faceNormals.length;m<g;m++)h.faceNormals.push(a[f].faceNormals[m].clone())}this.morphNormals.push(h)}let s=t.skinWeights;for(let f=0,d=s.length;f<d;f++)this.skinWeights.push(s[f].clone());let l=t.skinIndices;for(let f=0,d=l.length;f<d;f++)this.skinIndices.push(l[f].clone());let u=t.lineDistances;for(let f=0,d=u.length;f<d;f++)this.lineDistances.push(u[f]);let c=t.boundingBox;c!==null&&(this.boundingBox=c.clone());let p=t.boundingSphere;return p!==null&&(this.boundingSphere=p.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 mu().fromGeometry(this),e=new ce.BufferGeometry,n=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",new ce.BufferAttribute(n,3).copyVector3sArray(t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",new ce.BufferAttribute(o,3).copyVector3sArray(t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",new ce.BufferAttribute(o,3).copyColorsArray(t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",new ce.BufferAttribute(o,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",new ce.BufferAttribute(o,2).copyVector2sArray(t.uvs2))}e.groups=t.groups;for(let o in t.morphTargets){let i=[],a=t.morphTargets[o];for(let s=0,l=a.length;s<l;s++){let u=a[s],c=new ce.Float32BufferAttribute(u.data.length*3,3);c.name=u.name,i.push(c.copyVector3sArray(u.data))}e.morphAttributes[o]=i}if(t.skinIndices.length>0){let o=new ce.Float32BufferAttribute(t.skinIndices.length*4,4);e.setAttribute("skinIndex",o.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){let o=new ce.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 ce.BufferGeometry,n=t.geometry;if(t.isPoints||t.isLine){let o=new ce.Float32BufferAttribute(n.vertices.length*3,3),i=new ce.Float32BufferAttribute(n.colors.length*3,3);if(e.setAttribute("position",o.copyVector3sArray(n.vertices)),e.setAttribute("color",i.copyColorsArray(n.colors)),n.lineDistances&&n.lineDistances.length===n.vertices.length){let a=new ce.Float32BufferAttribute(n.lineDistances.length,1);e.setAttribute("lineDistance",a.copyArray(n.lineDistances))}n.boundingSphere!==null&&(e.boundingSphere=n.boundingSphere.clone()),n.boundingBox!==null&&(e.boundingBox=n.boundingBox.clone())}else t.isMesh&&(e=n.toBufferGeometry());return e}};Vn.prototype.isGeometry=!0;var mu=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=[],n,o,i,a=t.faces;for(o=0;o<a.length;o++){let s=a[o];s.materialIndex!==i&&(i=s.materialIndex,n!==void 0&&(n.count=o*3-n.start,e.push(n)),n={start:o*3,materialIndex:i})}n!==void 0&&(n.count=o*3-n.start,e.push(n)),this.groups=e}fromGeometry(t){let e=t.faces,n=t.vertices,o=t.faceVertexUvs,i=o[0]&&o[0].length>0,a=o[1]&&o[1].length>0,s=t.morphTargets,l=s.length,u;if(l>0){u=[];for(let v=0;v<l;v++)u[v]={name:s[v].name,data:[]};this.morphTargets.position=u}let c=t.morphNormals,p=c.length,f;if(p>0){f=[];for(let v=0;v<p;v++)f[v]={name:c[v].name,data:[]};this.morphTargets.normal=f}let d=t.skinIndices,h=t.skinWeights,m=d.length===n.length,g=h.length===n.length;n.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let v=0;v<e.length;v++){let x=e[v];this.vertices.push(n[x.a],n[x.b],n[x.c]);let b=x.vertexNormals;if(b.length===3)this.normals.push(b[0],b[1],b[2]);else{let S=x.normal;this.normals.push(S,S,S)}let w=x.vertexColors;if(w.length===3)this.colors.push(w[0],w[1],w[2]);else{let S=x.color;this.colors.push(S,S,S)}if(i===!0){let S=o[0][v];S!==void 0?this.uvs.push(S[0],S[1],S[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",v),this.uvs.push(new ce.Vector2,new ce.Vector2,new ce.Vector2))}if(a===!0){let S=o[1][v];S!==void 0?this.uvs2.push(S[0],S[1],S[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",v),this.uvs2.push(new ce.Vector2,new ce.Vector2,new ce.Vector2))}for(let S=0;S<l;S++){let _=s[S].vertices;u[S].data.push(_[x.a],_[x.b],_[x.c])}for(let S=0;S<p;S++){let _=c[S].vertexNormals[v];f[S].data.push(_.a,_.b,_.c)}m&&this.skinIndices.push(d[x.a],d[x.b],d[x.c]),g&&this.skinWeights.push(h[x.a],h[x.b],h[x.c])}return this.computeGroups(t),this.verticesNeedUpdate=t.verticesNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),this}},yi=class{constructor(t,e,n,o,i,a=0){this.a=t,this.b=e,this.c=n,this.normal=o&&o.isVector3?o:new ce.Vector3,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new ce.Color,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=a}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,n=t.vertexNormals.length;e<n;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,n=t.vertexColors.length;e<n;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}};var uC=["a","b","c"];function pC(r,t){switch(t){case"c":return r.c;case"b":return r.b;case"a":default:return r.a}}function gu(r,t,e){let n=Math.min(r,t),o=Math.max(r,t),i=n+"_"+o;return e.get(i)}function yu(r,t,e,n,o,i){let a=Math.min(r,t),s=Math.max(r,t),l=a+"_"+s,u;if(n.has(l))u=n.get(l);else{let c=e[a],p=e[s];u={a:c,b:p,newEdge:null,faces:[]},n.set(l,u)}u.faces.push(o),i[r].edges.push(u),i[t].edges.push(u)}function fC(r,t,e,n){let o,i,a;for(o=0,i=r.length;o<i;o++)e[o]={edges:[]};for(o=0,i=t.length;o<i;o++)a=t[o],yu(a.a,a.b,r,n,a,e),yu(a.b,a.c,r,n,a,e),yu(a.c,a.a,r,n,a,e)}function Ml(r,t,e,n,o){r.push(new yi(t,e,n,void 0,void 0,o))}function vi(r,t){return Math.abs(t-r)/2+Math.min(r,t)}function El(r,t,e,n){r.push([t.clone(),e.clone(),n.clone()])}var Dl=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof gn.BufferGeometry?t=new Vn().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 gn.Vector3,n,o,i,a,s,l=t.vertices,u=t.faces,c=t.faceVertexUvs[0],p=c!==void 0&&c.length>0,f=[],d=new Map;fC(l,u,f,d);let h=[],m,g,v,x,b,w,S;for(let q of Array.from(d.keys())){for(g=d.get(q),v=new gn.Vector3,b=3/8,w=1/8,S=g.faces.length,S!=2&&(b=.5,w=0,S!=1),v.addVectors(g.a,g.b).multiplyScalar(b),e.set(0,0,0),a=0;a<S;a++){for(x=g.faces[a],s=0;s<3&&(m=l[pC(x,uC[s])],!(m!==g.a&&m!==g.b));s++);m&&e.add(m)}e.multiplyScalar(w),v.add(e),g.newEdge=h.length,h.push(v)}let _,T,y,O,A,I,C,N=[];for(o=0,i=l.length;o<i;o++){for(I=l[o],A=f[o].edges,n=A.length,n==3?_=3/16:n>3&&(_=3/(8*n)),T=1-n*Number(_),y=_,n<=2&&(n==2?(T=3/4,y=1/8):n==1||n==0),C=I.clone().multiplyScalar(T),e.set(0,0,0),a=0;a<n;a++)O=A[a],m=O.a!==I?O.a:O.b,e.add(m);e.multiplyScalar(Number(y)),C.add(e),N.push(C)}let P=N.concat(h),G=N.length,$,Y,ie,j=[],H=[],V,R,D,F,B=new gn.Vector2,X=new gn.Vector2,K=new gn.Vector2;for(o=0,i=u.length;o<i;o++)x=u[o],$=Number(gu(x.a,x.b,d).newEdge)+G,Y=Number(gu(x.b,x.c,d).newEdge)+G,ie=Number(gu(x.c,x.a,d).newEdge)+G,Ml(j,$,Y,ie,x.materialIndex),Ml(j,x.a,$,ie,x.materialIndex),Ml(j,x.b,Y,$,x.materialIndex),Ml(j,x.c,ie,Y,x.materialIndex),p&&(V=c[o],R=V[0],D=V[1],F=V[2],B.set(vi(R.x,D.x),vi(R.y,D.y)),X.set(vi(D.x,F.x),vi(D.y,F.y)),K.set(vi(R.x,F.x),vi(R.y,F.y)),El(H,B,X,K),El(H,R,B,K),El(H,D,X,B),El(H,F,K,X));t.vertices=P,t.faces=j,p&&(t.faceVertexUvs[0]=H)}};var ut=new zr.Vector3,Rm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=r.geometry??t?.geometry??new zr.BufferGeometry().copy(new zr.BoxBufferGeometry(100,100,100)),n;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(ut),n={width:ut.x,height:ut.y,depth:ut.z,subdivisions:0}):n=t.parameters;let o={...n,...r.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(r){let{width:t,height:e,depth:n,subdivisions:o}=r.parameters,i=r.geometry??new zr.BufferGeometry().copy(new zr.BoxBufferGeometry(100,100,100)),a=i.userData.parameters;a===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(ut)):ut.set(a.width,a.height,a.depth),(t!==ut.x||e!==ut.y||n!==ut.z)&&i.scale(ut.x===0?1:t/ut.x,ut.y===0?1:e/ut.y,ut.z===0?1:n/ut.z);let s=i.originalGeometry;return o>0?(s===void 0||a?.subdivisions!==o)&&(s===void 0&&(s=i),i=new Dl(o).modify(s).toBufferGeometry()):(s!==void 0&&(i=s),s=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()),s!==void 0&&Object.assign(i,{originalGeometry:s}),delete r.geometry,Object.assign(i,{userData:{...r,type:"NonParametricGeometry"}})}static loadFromUrl(r,t,e){new zr.BufferGeometryLoader(e).load(r,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(ut);let a=100/ut.x;Object.assign(i.parameters,{width:100,height:ut.y*a,depth:ut.z*a}),t(this.build(i))})}};var km=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},r.parameters);return{shape:r.shape&&r.shape instanceof Ne?r.shape:new Ne,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(r){let{width:t,height:e,spikes:n,cornerRadius:o,depth:i,extrudeBevelSize:a,extrudeBevelSegments:s}=r.parameters,l=r.shape,u=t*.5,c=e*.5,p=0,f=0,d=2*Math.PI/n;for(let m=0;m<n;m++){let g=d*m,v=p+Math.sin(g)*u,x=f+Math.cos(g)*c;l.addPoint(l.createPoint(v,x))}l.isClosed=!0;for(let m=0,g=l.points.length;m<g;m++)l.points[m].roundness=o;l.roundness=o,l.update();let h=At.create({shape:l,parameters:{roundness:o,depth:i,extrudeBevelSize:a,extrudeBevelSegments:s}});return Object.assign(h,{userData:{...r,type:"PolygonGeometry"}})}};var Oe=require("three"),Gm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},r.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(r){let{width:t,height:e,depth:n,radialSegments:o,heightSegments:i,openEnded:a,cornerRadius:s,cornerSegments:l}=r.parameters,u=new xu(t*.5,e,o,i,a,s,l);return u.scale(1,1,n/t),Object.assign(u,{userData:{...r,type:"PyramidGeometry"}})}};function wa(r,t,e){e.x=r.x*t.x,e.y=r.y,e.z=r.x*t.y}function vu(r,t,e,n,o,i){let a=t.clone().sub(r),s=e.clone().sub(r),l=a.angleTo(s);if(a.normalize(),s.normalize(),n===o){let u=a.add(s).normalize();i.copy(r).addScaledVector(u,n/Math.sin(l/2))}else{let u=a.angleTo(s);i.copy(r),i.addScaledVector(a,o/Math.sin(u)),i.addScaledVector(s,n/Math.sin(u))}}function dC(r,t,e){let n=r.clone().sub(t),o=e.clone().sub(t);return n.projectOnVector(o),n.add(t)}var xu=class extends Oe.BufferGeometry{constructor(t=.5,e=1,n=4,o=1,i=!1,a=0,s=4){super(),n=Math.floor(Math.max(3,n)),o=Math.floor(o),s=Math.floor(s);let l=[],u=[],c=[],p=[],f=0,d=e/2,h=Math.PI/n,m=t*Math.cos(Math.PI/n),g=2*Math.PI/n,v=(n-2)*Math.PI/n,x=Math.PI-v,b=new Oe.Vector3(0,-d,0),w=new Oe.Vector3(0,d,0),S=new Oe.Vector2(t,-d),_=new Oe.Vector2(m,-d),T=new Oe.Vector2(0,w.y).sub(_),y=new Oe.Vector2(0,w.y).sub(S),O=new Oe.Vector2(T.y,-T.x).normalize(),A=new Oe.Vector2(y.y,-y.x).normalize(),C=t*Math.cos(Math.PI/n)*Math.tan((Math.PI-T.angle())/2)-1e-8;a=Math.min(a,C);let N;{let H=new Oe.Vector3(O.x,O.y,0),V=new Oe.Vector3(Math.cos(g)*H.x,H.y,Math.sin(g)*H.x);N=H.angleTo(V)}let P=a/Math.tan((Math.PI-T.angle())/2),G=a/Math.tan((Math.PI-N)/2),$=new Oe.Vector3;if(!i){u.push(b.x,b.y,b.z),c.push(0,-1,0),p.push(0,0);let H=f++,V=[],R=S.clone(),D=P/Math.cos(Math.PI/n);R.x-=D;for(let F=0;F<n;F++){let B=F/n*Math.PI*2+h,X=new Oe.Vector2(Math.sin(B),Math.cos(B));wa(R,X,$),u.push($.x,$.y,$.z),c.push(0,-1,0),p.push(0,0),V.push(f++)}for(let F=0;F<V.length;F++)l.push(V[F],H,V[(F+1)%V.length])}let Y=[];{let H=new Oe.Vector3,V=new Oe.Vector3,R=new Oe.Vector3,D=new Oe.Vector3,F=new Oe.Vector3,B=new Oe.Vector3;for(let X=0;X<n;X++){let K=X/n*Math.PI*2+h,q=(X+.5)/n*Math.PI*2+h,z=(X+1)/n*Math.PI*2+h,U=new Oe.Vector2(Math.sin(K),Math.cos(K)),W=new Oe.Vector2(Math.sin(q),Math.cos(q)),re=new Oe.Vector2(Math.sin(z),Math.cos(z));wa(S,U,V),wa(S,re,R),wa(O,W,H),vu(w,V,R,G,G,D),u.push(D.x,D.y,D.z),vu(V,w,R,G,P,F),u.push(F.x,F.y,F.z),vu(R,V,w,P,G,B),u.push(B.x,B.y,B.z),c.push(H.x,H.y,H.z),c.push(H.x,H.y,H.z),c.push(H.x,H.y,H.z),p.push(0,0),p.push(0,0),p.push(0,0);let ae=f++,fe=f++,oe=f++;if(l.push(ae,fe,oe),a>0){{let Q=V.clone().add(R).multiplyScalar(.5),Se=w.clone().sub(Q).normalize(),Ae=b.clone().sub(Q).normalize().add(Se).normalize().multiplyScalar(-1),gt=B.clone().sub(F);ie(Q,gt,Ae,T.angle())}let ne,ee;{let Q=new Oe.Vector3;wa(A,re,Q);let Se=B.clone().add(D).multiplyScalar(.5);Se=dC(Se,R,w);let ye=B.clone().sub(D);[ne,ee]=ie(Se,ye,Q,N,D.y)}{let Q=ne,Se=Q.clone().setY(0).normalize(),ye=new Oe.Vector3(0,-1,0),Ae=Se.clone().cross(ye);j(Q,Se,ye,Ae)}Y.concat(ee);{let Q=T.angle(),Se=Math.PI-Q,ye=w.clone();ye.y-=a/Math.sin(Q-Math.PI/2);let Ae=new Oe.Vector3,gt=[];for(let Be=0;Be<s;Be++){let ke=[],or=Math.PI/2-Se*Be/s,wn=Math.cos(or),Xt=Math.sin(or),Lo=q;for(let ys=0;ys<=Be;ys++){let vs=Math.cos(Lo),tt=Math.sin(Lo);H.x=wn*tt,H.y=Xt,H.z=wn*vs,Ae.copy(ye).addScaledVector(H,a),u.push(Ae.x,Ae.y,Ae.z),c.push(H.x,H.y,H.z),p.push(0,0),ke.push(f++),Lo+=Math.PI*2/Be/n}gt.push(ke)}ee.reverse(),gt.push(ee);let Ee=gt.length-1;for(let Be=0;Be<Ee;Be++){let ke=gt[Be],or=gt[Be+1],wn=ke.length-1;l.push(or[1],ke[0],or[0]);for(let Xt=1;Xt<=wn;Xt++)l.push(ke[Xt],ke[Xt-1],or[Xt]),l.push(or[Xt+1],ke[Xt],or[Xt])}}}}}this.setIndex(l),this.setAttribute("position",new Oe.Float32BufferAttribute(u,3)),this.setAttribute("normal",new Oe.Float32BufferAttribute(c,3)),this.setAttribute("uv",new Oe.Float32BufferAttribute(p,2));function ie(H,V,R,D,F){let B=-D/2,X=(Math.PI-D)/2,K=V.clone().normalize().cross(R);H.addScaledVector(R,-a/Math.sin(X));let q=new Oe.Vector3,z=new Oe.Vector3,U=1,W=f,re=[];for(let ae=0;ae<=s;ae++){let fe=B+ae/s*D;z.set(0,0,0),z.addScaledVector(K,Math.sin(fe)),z.addScaledVector(R,Math.cos(fe));for(let oe=0;oe<=U;oe++){let ne=oe/U-.5;if(q.copy(H),q.addScaledVector(V,ne),q.addScaledVector(z,a),F!=null){let ee=Math.max(0,q.y-F);q.addScaledVector(V,-ee/V.y)}u.push(q.x,q.y,q.z),c.push(z.x,z.y,z.z),p.push(0,0),oe===0&&re.push(f),f++}}for(let ae=0;ae<s;ae++)for(let fe=0;fe<U;fe++){let oe=W+fe+(U+1)*ae,ne=oe+(U+1),ee=ne+1,Q=oe+1;l.push(oe,ne,Q),l.push(ne,ee,Q)}return[H.clone().addScaledVector(V,.5),re]}function j(H,V,R,D){let F=Math.PI/2,B=y.angle()-F,X=[],K=new Oe.Vector3,q=new Oe.Vector3;for(let U=0;U<=s;U++){let W=[],re=U/s;for(let ae=0;ae<=U;ae++){let oe=((U?ae/U:0)-.5)*x,ne=Math.cos(oe),ee=Math.sin(oe),Q=Math.atan(Math.tan(B)*ne),Se=(F+Q)*re,ye=Math.cos(Se),Ae=Math.sin(Se);K.set(0,0,0),K.addScaledVector(V,Ae*ne),K.addScaledVector(R,ye),K.addScaledVector(D,Ae*ee),q.copy(H).addScaledVector(K,a),u.push(q.x,q.y,q.z),c.push(K.x,K.y,K.z),p.push(0,0),W.push(f++)}X.push(W)}let z=X.length-1;for(let U=0;U<z;U++){let W=X[U],re=X[U+1],ae=W.length-1;l.push(W[0],re[1],re[0]);for(let fe=1;fe<=ae;fe++)l.push(W[fe-1],W[fe],re[fe]),l.push(W[fe],re[fe+1],re[fe])}}}};var Um=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},r.parameters),n=Object.assign(t?.ui??{enabledIndieCorners:!1},r.ui);return{shape:r.shape&&r.shape instanceof Ne?r.shape:new Ne,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)}),ui:n}}static build(r){let t=r.shape,{width:e,height:n,cornerRadius:o,cornerType:i,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}=r.parameters,u={x:e*.5,y:n*.5},c={x:-u.x,y:-u.y},p={x:u.x,y:u.y};function f(w,S,_){return S>e&&_>n?Math.min(w*e/S,w*n/_):S>e?w*e/S:_>n?w*n/_:w}let d=[];d[0]=o[0]===0?0:f(o[0],o[0]+o[3],o[0]+o[1]),d[1]=o[1]===0?0:f(o[1],o[1]+o[2],o[1]+o[0]),d[2]=o[2]===0?0:f(o[2],o[2]+o[1],o[2]+o[3]),d[3]=o[3]===0?0:f(o[3],o[3]+o[0],o[3]+o[2]);let h=c.x,m=p.x,g=p.y,v=c.y;t.addPoint(t.createPoint(h,g)),t.addPoint(t.createPoint(m,g)),t.addPoint(t.createPoint(m,v)),t.addPoint(t.createPoint(h,v)),t.isClosed=!0;let x=!0;for(let w=0,S=t.points.length;w<S;w++)t.points[w].roundness=d[w],w>0&&d[w]!==d[w-1]&&(x=!1);x&&(t.roundness=d[0]),t.useCubicForRoundedCorners=i!==1,t.update();let b=At.create({shape:t,parameters:{depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(b,{userData:{...r,type:"RectangleGeometry"}})}};var Vm=require("three"),zm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},r.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(r){let{width:t=100,height:e=t,depth:n=t,widthSegments:o=64,heightSegments:i=64,phiStart:a,phiLength:s,thetaStart:l,thetaLength:u}=r.parameters,c=new Vm.SphereBufferGeometry(.5*t,o,i,a,s,l,u);return c.scale(1,e/t,n/t),Object.assign(c,{userData:{...r,type:"SphereGeometry"}})}};var jm=require("three"),Hm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:0})}}static build(r){let{width:t=100,height:e=t,widthSegments:n=8,heightSegments:o=8}=r.parameters,i=new jm.PlaneBufferGeometry(t,e,n,o);return i.scale(1,1,1),Object.assign(i,{userData:{...r,type:"PlaneGeometry"}})}};var zn=require("three"),Wm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},r.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(r){let{width:t,height:e,depth:n,angle:o,cornerRadius:i,cornerSegments:a}=r.parameters,s=new bu(t,e,n,o,i,a);return Object.assign(s,{userData:{...r,type:"BackdropGeometry"}})}},bu=class extends zn.BufferGeometry{constructor(t=1,e=1,n=1,o=90,i=10,a=24){super(),this.type="BackdropGeometry";let s=[],l=[],u=[],c=.001;i==0&&(a=1),a=Math.max(1,Math.floor(a)),i=Math.min(i,100),o=Math.min(180-c,o),o*=Math.PI/180;let p=[],f=Math.PI/2,d=(q=0,z=0,U=0)=>new zn.Vector3(q,z,U),h=d(),m=d(),[g,v,x]=[e/2,t/2,n/2],b=-v,w=+v,[S,_,T]=[d(b,-g,+x),d(b,-g,-x),d(b,+g,-x)],y=(q,z=!1)=>Math.sin(q-Math.PI/(1+ +z)),O=(q,z=!1)=>Math.cos(q-Math.PI/(1+ +z));T.y=Math.sin(o)*e-g;let A=Math.cos(o)*e-x,I=S.z-c;o<=f?(T.z=Math.min(A,I),T.z==I&&(T.y-=(A-I)/Math.tan(f-o))):_.z=Math.min(_.z-A-x,S.z-c),h.subVectors(S,_),m.subVectors(T,_);let C=Math.min(h.length(),m.length())*i/100,N=C*Math.tan(o/2),P=C/Math.cos(o/2),G=h.clone().normalize().add(m.normalize()).setLength(P).add(_);h.set(0,y(o,!0),O(o,!0)),p.push([T,h.clone()]);let $=(Math.PI-o)/a;for(let q=0;q<=a;q++){let z=f+o+q*$;h.set(0,Math.sin(z)*N,Math.cos(z)*N),h.add(G),m.set(0,y(z),O(z)),p.push([h.clone(),m.clone()])}p.push([S,d(0,1,0)]);let Y=Math.sin($/2)*N*2,ie=p.length-1,j=p[0][0].distanceTo(p[1][0]),H=p[ie-1][0].distanceTo(p[ie][0]),V=j+Y*a+H;p[0].push(1);for(let q=0;q<=a;q++)p[q+1].push(1-(j+q*Y)/V);p[ie].push(0);let[R,D,F]=p[0],B,X,K;for(let q=1;q<p.length;q++)[B,X,K]=p[q],s.push(b,R.y,R.z,b,B.y,B.z,w,R.y,R.z,w,R.y,R.z,b,B.y,B.z,w,B.y,B.z),l.push(0,D.y,D.z,0,X.y,X.z,0,D.y,D.z,0,D.y,D.z,0,X.y,X.z,0,X.y,X.z),u.push(0,F,0,K,1,F,1,F,0,K,1,K),[R,D,F]=[B,X,K];this.setAttribute("position",new zn.Float32BufferAttribute(s,3)),this.setAttribute("normal",new zn.Float32BufferAttribute(l,3)),this.setAttribute("uv",new zn.Float32BufferAttribute(u,2))}};var qm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},r.parameters);return{shape:r.shape&&r.shape instanceof Ne?r.shape:new Ne,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(r){let{width:t,height:e,innerRadiusPercent:n,spikes:o,cornerRadius:i,angle:a,depth:s,extrudeBevelSize:l,extrudeBevelSegments:u}=r.parameters,c=r.shape,p=t*.5,f=e*.5,d=0,h=0,m=a*Math.PI/360/o,g=Math.PI/2*3*-1,v=p*n/100,x=f*n/100;if(o===3&&n===50){m=2*Math.PI/o;for(let w=0;w<o;w++){let S=m*w,_=d+Math.sin(S)*p,T=h+Math.cos(S)*f;c.addPoint(c.createPoint(_,T))}}else for(let w=0;w<o;w++){let S=d+Math.cos(g)*p,_=h+Math.sin(g)*f;c.addPoint(c.createPoint(S,_)),g+=m,S=d+Math.cos(g)*v,_=h+Math.sin(g)*x,w<=o,c.addPoint(c.createPoint(S,_)),g+=m}c.isClosed=!0;for(let w=0,S=c.points.length;w<S;w++)c.points[w].roundness=i;c.roundness=i,c.update();let b=At.create({shape:c,parameters:{roundness:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:u}});return Object.assign(b,{userData:{...r,type:"StarGeometry"}})}};var Xm=require("three"),Ym=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0},r.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(r){let{width:t,height:e}=r.parameters,n=new Xm.PlaneBufferGeometry(t,e);return Object.assign(n,{userData:{...r,type:"TextFrameGeometry"}})}};var $m=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},r.parameters),n=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:n,height:o,depth:i})}}static build(r){let{width:t,height:e,depth:n,radialSegments:o,tubularSegments:i,arc:a,cornerRadius:s,cornerSegments:l}=r.parameters,u=hC(t,e,n,t*.5,a,i,0,0,o,s,l);return u.scale(1,e/t,1),Object.assign(u,{userData:{...r,type:"TorusGeometry"}})}};function hC(r,t,e,n,o,i,a,s,l,u,c){return[t,e]=[e,t],a=t/2,o/=2*Math.PI,o==1&&(u=0),new ba(!0,r,t,e,n,o,i,a,s,l,u,c)}var Km=require("three"),Zm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},r.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(r){let{width:t,tube:e,tubularSegments:n,radialSegments:o,p:i,q:a}=r.parameters,s=t*.5;s!==e&&(s-=e);let l=new Km.TorusKnotBufferGeometry(s,e,n,o,i,a);return Object.assign(l,{userData:{...r,type:"TorusKnotGeometry"}})}};var Qm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},r.parameters);return{shape:r.shape&&r.shape instanceof Ne?r.shape:new Ne,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(r){let{width:t=100,height:e,cornerRadius:n,depth:o,extrudeBevelSize:i,extrudeBevelSegments:a,isRect:s}=r.parameters,l=r.shape,u=t*.5,c=e*.5;s?(l.addPoint(l.createPoint(-u,c)),l.addPoint(l.createPoint(u,-c)),l.addPoint(l.createPoint(-u,-c))):(l.addPoint(l.createPoint(0,c)),l.addPoint(l.createPoint(u,-c)),l.addPoint(l.createPoint(-u,-c))),l.isClosed=!0;for(let f=0,d=l.points.length;f<d;f++)l.points[f].roundness=n;l.roundness=n,l.update();let p=At.create({shape:l,parameters:{roundness:n,depth:o,extrudeBevelSize:i,extrudeBevelSegments:a}});return Object.assign(p,{userData:{...r,type:"TriangleGeometry"}})}};var yo=require("three"),eg=require("three/examples/jsm/utils/BufferGeometryUtils.js");function Jm(){let r=new yo.BufferGeometry;return r.setAttribute("position",new yo.BufferAttribute(new Float32Array([]),3)),r.setIndex(new yo.BufferAttribute(new Uint16Array([]),1)),r}var mC=12;var xi=class extends yo.BufferGeometry{constructor(e,n){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let o=Jm();Object.entries(o.attributes).forEach(([i,a])=>{this.setAttribute(i,a)}),this.setIndex(o.index),this.updateFont(e.font,n),this.update(e)}async updateFont(e,n){let o=n.getFont(e);o&&(this.font=o,await o.loadingPromise)}async update(e){let n=this.font;if(this.userData={parameters:e,type:"TextGeometry"},!n||!n.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:o,height:i,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l,text:u,textTransform:c,subdivisions:p}=e;await n.loadingPromise;let f=c===2?u.toUpperCase():c===3?u.toLowerCase():u,d=gC(e,n,f),{shapes:h,charWidths:m,charCoords:g}=await n.generateShapes(d,e),v=o*.5,x=i*.5,b=h.map(_=>new Ne().fromShape(_));this.vectorShapes=b;let w=b.map(_=>At.create({shape:_,parameters:{depth:a,extrudeBevelSegments:l,extrudeBevelSize:s,windingRule:a<=0?Ge.NONZERO:Ge.ODD,subdivisions:p??mC}})),S=w.length?(0,eg.mergeBufferGeometries)(w):Jm();S.translate(-v,x,0),this.dispose(),this.wrappedText=d,this.charCoords=g,this.charWidths=m,Object.entries(S.attributes).forEach(([_,T])=>{this.setAttribute(_,T)}),this.setIndex(S.index),this.computeBoundingSphere()}clone(){let e=po(new yo.BufferGeometry,xi.prototype);return e.copy(this),e}copy(e){return Object.entries(e.attributes).forEach(([n,o])=>{this.setAttribute(n,o)}),this.setIndex(e.index),this.userData={parameters:{...e.userData.parameters},type:"TextGeometry"},this}async setText(e){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:e})}get text(){return this.userData.parameters.text??""}};function gC(r,t,e){e=e??r.text;let n=[""],o="";for(let i of e)o+=i,i===" "||i===`
2
- `?(n[n.length-1]+=o,o="",i===`
3
- `&&n.push("")):t.getTextWidth(n[n.length-1]+o,r)>r.width&&(n[n.length-1].length&&n.push(""),t.getTextWidth(n[n.length-1]+o,r)>r.width&&(o.length===1?(n[n.length-1]+=o,o=""):(n[n.length-1]+=o.slice(0,-1),o=o[o.length-1],n.push(""))));return n[n.length-1]+=o,n}var nt=require("three");var yC,Bl=new Promise(r=>{yC=r});var tg=require("three");function Fl(r,t){return vC(r)}function vC(r){let t={parameters:r,type:r.type};if(r.type==="VectorGeometry"){let n=Ne.createFromState(r.shape,r.width,r.height);t.shape=n}else r.type==="NonParametricGeometry"&&(r.data.groups&&r.data.groups.forEach(n=>n.materialIndex=Math.max(n.materialIndex??0,0)),t.geometry=new tg.BufferGeometryLoader().parse(r));let e;try{e=Ta(t)}catch(n){console.error(n)}if(!e){let n=Ne.createFromState(Ro.defaultData(),100,100);t.shape=n,e=Ta(t)}return e}var ge;Bl.then(r=>{ge=r});var rg=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),ng=new Uint32Array([0,1,2,3]),og=new Uint8Array([4]),cr=class{static build(r,t,e,n,o){let i,a,s,l=r?.phongAngle??t?.phongAngle??35;if(n===!1&&(l=-1),r.positionWASM!==void 0){e&&e!==0&&(ge.free_bvh(e),ge.free_subdivision_surface(e));try{i=cr.allocate(r,o)}catch(u){console.error(u,r),i=cr.allocate({positionWASM:rg,indexWASM:ng,verticesPerFaceWASM:og},o)}ge.set_destination_refinement_level(i,0),a=cr.buildLevel(i,!0,l)}else i=e,r.phongAngle!==void 0&&(a=cr.buildLevel(i,!0,l));return r.subdivisions!==void 0&&(ge.set_destination_refinement_level(i,r.subdivisions),r.subdivisions>0?s=cr.buildLevel(i,!1,l):s=null),{subdivPointer:i,originalGeometry:a,subdividedGeometry:s}}static primitiveToQuads(r,t){r.widthSegments>16&&(r.widthSegments=16),r.heightSegments>16&&(r.heightSegments=16),r.depthSegments>16&&(r.depthSegments=16),r.radialSegments>16&&(r.radialSegments=16),r.type==="DodecahedronGeometry"&&(r.detail=0);let e=r.shape!==void 0?t.geometry:Fl(r),n,o,i,a;({positions:n,triIndices:a}=Cu(e.getAttribute("position"),e.getIndex()));let s;if(r.type==="CylinderGeometry"&&r.cornerRadius===0&&r.hollow===0&&r.openEnded===!1){let l=r.radialSegments*r.heightSegments*3*2,u=l+r.radialSegments*3;s=[l,u]}return{indices:o,verticesPerFace:i}=Au(n,a,e,s),{positions:n,indices:o,verticesPerFace:i}}static allocate(r,t){let e,n,o,i=[],a=[];r.positionWASM&&r.positionWASM.length>0?(e=r.positionWASM,n=r.indexWASM,o=r.verticesPerFaceWASM):(e=rg,n=ng,o=og);let s=e.length,l=n.length,u=o.length,c=e.length+i.length+a.length,p=n.length+o.length,f=c*Float32Array.BYTES_PER_ELEMENT+p*Uint32Array.BYTES_PER_ELEMENT,d=c*Float32Array.BYTES_PER_ELEMENT,h=p*Uint32Array.BYTES_PER_ELEMENT,m=ge._malloc(f),g=new Float32Array(ge.HEAPF32.buffer,m,c),v=new Uint32Array(ge.HEAPU32.buffer,m+d,p);g.set(e,0),g.set(i,e.length),g.set(a,e.length+i.length),v.set(n,0),v.set(o,n.length);let x;r?.scaleBaked?.some(w=>w!==1)&&(x=new nt.Matrix4().makeScale(...r.scaleBaked)),t&&(x?x.premultiply(t):x=t);let b=x?ge.alloc_subdivision_surface2(m,s,m+d,l,m+d+n.length*Uint32Array.BYTES_PER_ELEMENT,u,x.elements):ge.alloc_subdivision_surface(m,s,m+d,l,m+d+n.length*Uint32Array.BYTES_PER_ELEMENT,u);return ge._free(m),b}static buildLevel(r,t,e,n,o){let i=o?ge.get_mesh_data2(r,t?ge.Level.CONTROL:ge.Level.REFINED,e,o.elements):ge.get_mesh_data(r,t?ge.Level.CONTROL:ge.Level.REFINED,e),a=8,s=ge.HEAPU32.subarray(i>>2,(i>>2)+a),l=s.subarray(4,4+4),u=0,c=ge.HEAPU32[s[u]>>2],p=ge.HEAPF32.subarray(c>>2,(c>>2)+l[u]);u++;let f=ge.HEAPU32[s[u]>>2],d=ge.HEAPF32.subarray(f>>2,(f>>2)+l[u]);u++;let h=ge.HEAPU32[s[u]>>2],m=ge.HEAPU32.subarray(h>>2,(h>>2)+l[u]);u++;let g=ge.HEAPU32[s[u]>>2],v=ge.HEAPU32.subarray(g>>2,(g>>2)+l[u]);if(u++,n===void 0){let x=new nt.BufferGeometry;if(x.setIndex(new nt.Uint32BufferAttribute(v,1)),x.setAttribute("position",new nt.Float32BufferAttribute(p,3)),x.setAttribute("normal",new nt.Float32BufferAttribute(d,3)),t){x.setAttribute("faceMap",new nt.Uint32BufferAttribute(m,1));let b=new Float32Array(d.length/3*4).fill(0);x.setAttribute("color",new nt.BufferAttribute(b,4))}return ge.free_mesh_data(i),x.userData.type="SubdivGeometry",x}n.getAttribute("position").copyArray(p),n.getAttribute("normal").copyArray(d),n.attributes.position.needsUpdate=!0,n.attributes.normal.needsUpdate=!0,ge.free_mesh_data(i)}static buildControlCageWireframe(r,t,e){let n=ge.get_wireframe_data_for_base_level(r),o=4,i=ge.HEAPU32.subarray(n>>2,(n>>2)+o),a=i.subarray(2,2+2),s=0,l=ge.HEAPU32[i[s]>>2],u=ge.HEAPF32.subarray(l>>2,(l>>2)+a[s]);s++;let c=ge.HEAPU32[i[s]>>2],p=ge.HEAPU32.subarray(c>>2,(c>>2)+a[s]);if(t===void 0){let f=new nt.BufferGeometry;f.setAttribute("position",new nt.Float32BufferAttribute(u,3));let d=new Float32Array(u.length);for(let h=0,m=u.length;h<m;)d[h++]=e.r,d[h++]=e.g,d[h++]=e.b;return f.setAttribute("color",new nt.BufferAttribute(d,3)),f.setIndex(new nt.Uint32BufferAttribute(p,1)),ge.free_wireframe_data_for_base_level(n),f}t.getAttribute("position").copyArray(u),t.attributes.position.needsUpdate=!0,ge.free_wireframe_data_for_base_level(n)}static updateCollabMesh(r,t,e){let n=t===0;n||ge.set_destination_refinement_level(r,t);let o=e?ge.get_topological_data2(r,n?ge.Level.CONTROL:ge.Level.REFINED,e.elements):ge.get_topological_data(r,n?ge.Level.CONTROL:ge.Level.REFINED),i=6,a=ge.HEAPU32.subarray(o>>2,(o>>2)+i),s=a.subarray(3,3+3),l=0,u=ge.HEAPU32[a[l]>>2],c=new Float32Array(ge.HEAPF32.subarray(u>>2,(u>>2)+s[l]));l++;let p=ge.HEAPU32[a[l]>>2],f=new Uint32Array(ge.HEAPU32.subarray(p>>2,(p>>2)+s[l]));l++;let d=ge.HEAPU32[a[l]>>2],h=new Uint8Array(ge.HEAPU32.subarray(d>>2,(d>>2)+s[l]));return ge.free_topological_data(o),{positions:c,indices:f,verticesPerFace:h}}};var ig=["getX","getY","getZ"];function Cu(r,t){let e={},n=t?t.count:r.count,o=0,i=[],a=[],s=1e4;for(let u=0;u<n;u++){let c=t?t.getX(u):u,p="";for(let f=0;f<3;f++)p+=`${~~(r[ig[f]](c)*s)},`;if(p in e)i.push(e[p]);else{for(let f=0;f<3;f++)a.push(r[ig[f]](c));e[p]=o,i.push(o),o++}}let l=[];for(let u=0;u<i.length;u+=3)i[u]===i[u+1]||i[u]===i[u+2]||i[u+1]===i[u+2]||l.push(i[u],i[u+1],i[u+2]);return{positions:a,triIndices:l}}var Rl=new nt.Vector3,Su=new nt.Vector3,wu=new nt.Vector3,Tu=new nt.Vector3;function Au(r,t,e,n){let o=[],i=[];if(e.userData.shape!==void 0&&e.userData.parameters.depth===0&&e.userData.shape.shapeHoles.length===0){let a=e.userData.shape.extractShapePointsToFlatArray([]),s=0;for(let u=0;u<a.length;u+=2)s+=(a[u]-a[(u===0?a.length:u)-2])*(a[u+1]+a[(u===0?a.length:u)-1]);r.length=0;let l=0;if(s<0)for(let u=0;u<a.length;u+=2)r.push(a[u],a[u+1],0),o.push(l++);else for(let u=a.length-2;u>=0;u-=2)r.push(a[u],a[u+1],0),o.push(l++);return i.push(l),{indices:o,verticesPerFace:i}}for(let a=0,s=e.capStartIndex??t.length;a<s;)if(t[a+1]===t[a+3]&&t[a+2]===t[a+5]||t[a+0]===t[a+3]&&t[a+2]===t[a+4]){Rl.set(r[t[a]*3],r[t[a]*3+1],r[t[a]*3+2]),Su.set(r[t[a+1]*3],r[t[a+1]*3+1],r[t[a+1]*3+2]),wu.set(r[t[a+4]*3],r[t[a+4]*3+1],r[t[a+4]*3+2]),Tu.set(r[t[a+5]*3],r[t[a+5]*3+1],r[t[a+5]*3+2]),Su.sub(Rl).normalize(),wu.sub(Rl).normalize(),Tu.sub(Rl).normalize();let l=Su.cross(wu).dot(Tu);Math.abs(l)>.005||n&&n.some((u,c)=>c%2===1?!1:a>=n[c]&&a<n[c+1])?(o.push(t[a],t[a+1],t[a+2]),i.push(3),a+=3):(o.push(t[a],t[a+1],t[a+4],t[a+5]),i.push(4),a+=6)}else o.push(t[a],t[a+1],t[a+2]),i.push(3),a+=3;if(e.capStartIndex!==void 0){let a=[],s=[],l=0,u=new Float32Array([e.userData.parameters.depth])[0];for(let c=0,p=0;c<r.length;c+=3,p++)r[c+2]===0&&(a.push(p),l++),r[c+2]===u&&s.push(p);if(e.userData.parameters.extrudeBevelSize===0){let c=s[0];s[0]=s[1],s[1]=c}a.reverse(),o.push(...a,...s),i.push(l,l)}return{indices:o,verticesPerFace:i}}var yr={};Gp(yr,{calcBoolean:()=>wC,calcBooleanTopological:()=>SC,freeMeshSet:()=>AC,getMeshSet:()=>TC,transformMeshSet:()=>CC});var xC,ag=new Promise(r=>{xC=r});var Ca=require("three");var Ce,bi;ag.then(r=>Ce=r);function bC(r,t,e){let n,{positions:o,triIndices:i}=Cu(r.getAttribute("position"),r.getIndex()),a;if(t&&e){let{indices:s,verticesPerFace:l}=Au(o,i,r);a=l.length,n=[];for(let u=0,c=0;u<a;u++){n.push(l[u]);for(let p=0;p<l[u];p++)n.push(s[c++])}}else{let s=i.length;n=Array(s+s/3),a=0;for(let l=0,u=0;u<n.length;)n[u++]=3,a++,n[u++]=i[l++],n[u++]=i[l++],n[u++]=i[l++]}return{positions:o,faceIndices:n,nFaces:a}}function sg(r){let t=r.length,e=t*Uint32Array.BYTES_PER_ELEMENT,n=t*Float32Array.BYTES_PER_ELEMENT,o=Number.isInteger(r[0])?e:n,i=Ce._malloc(o);return(Number.isInteger(r[0])?new Uint32Array(Ce.HEAPU32.buffer,i,t):new Float32Array(Ce.HEAPF32.buffer,i,t)).set(r,0),i}function lg(r){switch(r){case 0:return Ce.OP.UNION;case 1:return Ce.OP.INTERSECTION;case 2:return Ce.OP.A_MINUS_B;case 3:return Ce.OP.B_MINUS_A;case 4:return Ce.OP.SYMMETRIC_DIFFERENCE;case 5:return Ce.OP.ALL;default:throw new Error("Unknown boolean operation "+r)}}function SC(r,t){bi===void 0&&(bi=Ce.init_csg());let e=sg(r),n=Ce.csg_calc_topological(bi,e,r.length,lg(t));Ce._free(e);let o=6,i=Ce.HEAPU32.subarray(n>>2,(n>>2)+o),a=i.subarray(3,3+3),s=0,l=Ce.HEAPU32[i[s]>>2],u=new Float32Array(Ce.HEAPF32.subarray(l>>2,(l>>2)+a[s]));s++;let c=Ce.HEAPU32[i[s]>>2],p=new Uint32Array(Ce.HEAPU32.subarray(c>>2,(c>>2)+a[s]));s++;let f=Ce.HEAPU32[i[s]>>2],d=new Uint8Array(Ce.HEAPU32.subarray(f>>2,(f>>2)+a[s]));return Ce.free_mesh_data(n),{positions:u,indices:p,verticesPerFace:d}}function wC(r,t,e,n){bi===void 0&&(bi=Ce.init_csg());let o=sg(r),i=Ce.csg_calc(bi,o,r.length,n,lg(t));Ce._free(o);let a=5,s=Ce.HEAPU32.subarray(i>>2,(i>>2)+a),l=s.subarray(2,2+3),u=0,c=Ce.HEAPU32[s[u]>>2],p=Ce.HEAPF32.subarray(c>>2,(c>>2)+l[u]);u++;let f=Ce.HEAPU32[s[u]>>2],d=Ce.HEAPF32.subarray(f>>2,(f>>2)+l[u]);u++;let h=l[u];e.setAttribute("position",new Ca.Float32BufferAttribute(p,3)),e.setAttribute("normal",new Ca.Float32BufferAttribute(d,3));let m=Ce.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new Ca.Sphere),e.boundingSphere.center.set(m[0],m[1],m[2]),e.boundingSphere.radius=(m[3]**2+m[4]**2+m[5]**2)**.5,e.userData.parameters={width:m[3]*2,height:m[4]*2,depth:m[5]*2},Ce.free_mesh_data(i),h}function TC(r,t,e){if(Ce===void 0)return-1;let n,o,i;if(t&&r.userData.positions!==void 0){let g=r.userData;i=g.verticesPerFace.length,n=g.positions,o=Array(g.verticesPerFace.reduce((v,x)=>v+x,0)+i);for(let v=0,x=0,b=0;v<g.verticesPerFace.length;v++){o[b++]=g.verticesPerFace[v];for(let w=0;w<g.verticesPerFace[v];w++)o[b++]=g.indices[x++]}}else({positions:n,faceIndices:o,nFaces:i}=bC(r,t,e));let a=n.length,s=o.length,l=n.length,u=o.length,c=l*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,p=l*Float32Array.BYTES_PER_ELEMENT,f=u*Uint32Array.BYTES_PER_ELEMENT,d=Ce._malloc(c),h=new Float32Array(Ce.HEAPF32.buffer,d,l),m=new Uint32Array(Ce.HEAPU32.buffer,d+p,u);return h.set(n,0),m.set(o,0),Ce.get_csg_mesh(d,a,d+p,s,i)}function CC(r,t){Ce.transform_csg_mesh(r,t.elements)}function AC(r){Ce.free_csg_mesh(r)}var _u={ConeGeometry:Sm,CubeGeometry:wm,CylinderGeometry:xm,DodecahedronGeometry:Cm,EllipseGeometry:Lm,HelixGeometry:Em,IcosahedronGeometry:Bm,LatheGeometry:Fm,NonParametricGeometry:Rm,PolygonGeometry:km,PyramidGeometry:Gm,RectangleGeometry:Um,SphereGeometry:zm,PlaneGeometry:Hm,BackdropGeometry:Wm,StarGeometry:qm,TextFrameGeometry:Ym,TorusGeometry:$m,TorusKnotGeometry:Zm,TriangleGeometry:Qm,VectorGeometry:At},Ta=r=>_u[r.type].create(r);var Lu=require("three");var Gl=require("three");var Ou=require("three");function vt(r,t){return t.color(r)}var Iu=r=>"isEntity"in r,jr=r=>"isAbstractMesh"in r,Hr=r=>r!==null&&r.objectType==="BooleanObject",cg=r=>r.objectType==="CombinedCamera";var kl=r=>"objectHelper"in r;function _C(r,t){let e=!1;t.position&&(r.position.fromArray(t.position),e=!0),t.rotation&&(r.rotation.fromArray(t.rotation),e=!0),t.scale&&(e=!0,r.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&"hiddenMatrix"in r&&(e=!0,r.hiddenMatrix.fromArray(t.hiddenMatrix??On.identity)),e&&(r.updateMatrix(),Hr(r.parent)&&jr(r)&&r.invalidateDownstreamBooleanData(!0).recomputeBoolean()),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&r.updateWorldMatrix(!1,!0),r.objectType==="CombinedCamera"&&(t.isUpVectorFlipped!==void 0&&(r.isUpVectorFlipped=t.isUpVectorFlipped),r.updateUp())}function OC(r,t){_C(r,t),t.name!==void 0&&(r.name=t.name),t.visible!==void 0&&(r.visible=t.visible)}function ug(r,t,e){OC(r,t),t.color!==void 0&&(r.color=vt(t.color,e)),t.intensity!==void 0&&(r.intensity=t.intensity),t.shadows!==void 0&&!(r instanceof Ou.HemisphereLight)&&(r.castShadow=t.shadows),r.shadow&&!(r instanceof Ou.HemisphereLight)&&t.depth!==void 0&&(r.shadow.camera.far=t.depth,r.shadow.needsUpdate=!0)}function pg(r,t){r.shadow.camera.right=t/2,r.shadow.camera.left=-t/2,r.shadow.camera.top=t/2,r.shadow.camera.bottom=-t/2,r.shadow.needsUpdate=!0}var Ul=r=>class extends r{hasEntityChild(){return this.children.some(e=>Iu(e))}isDescendantOf(e){e instanceof Gl.Object3D&&(e=e.uuid);let n=this;for(;n.parent;){if(n.parent.uuid===e)return!0;n=n.parent}return!1}attach(e,n){this.updateWorldMatrix(!0,!1);let o=new Gl.Matrix4().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),Iu(e)?e.hiddenMatrix.premultiply(o):e.applyMatrix4(o),e.updateWorldMatrix(!1,!1),this.add(e),n!==void 0&&(this.children.pop(),this.children.splice(n,0,e)),this}copy(e,n=!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)),n===!0)for(let o=0;o<e.children.length;o++){let i=e.children[o];this.add(i.clone())}return this}};var Qe=require("three");var Si=new Qe.Box3,vr=new Qe.Vector3,Wr=new Qe.Vector3,wi=new Qe.Matrix4,dg=[new Qe.Vector3(-1,1,1),new Qe.Vector3(-1,-1,1),new Qe.Vector3(1,-1,1),new Qe.Vector3(1,1,1),new Qe.Vector3(-1,1,-1),new Qe.Vector3(-1,-1,-1),new Qe.Vector3(1,-1,-1),new Qe.Vector3(1,1,-1)],IC=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],LC=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function NC(r,t,e=0,n=t.count){let o=1/0,i=1/0,a=1/0,s=-1/0,l=-1/0,u=-1/0;for(let c=e;c<n;c++){let p=t.getX(c),f=t.getY(c),d=t.getZ(c);p<o&&(o=p),f<i&&(i=f),d<a&&(a=d),p>s&&(s=p),f>l&&(l=f),d>u&&(u=d)}return r.min.set(o,i,a),r.max.set(s,l,u),r}var fg=(r,t,e)=>{if(jr(r)){let n=r.geometry.userData.parameters,o=r.geometry.getAttribute("position");r.geometry.userData.type==="SubdivGeometry"?vr.copy(r.originalGeometry.boundingSphere.center):r.geometry.userData.type==="TextGeometry"?vr.set(0,0,n.depth*.5):o!==void 0&&(NC(Si,o,r.geometry.drawRange.start,r.geometry.drawRange.count<1/0?r.geometry.drawRange.count:o.count),Si.getCenter(vr)),r.forceComputeSize?Si.getSize(Wr).multiplyScalar(.5):Wr.set(n.width,n.height,n.depth??0).multiplyScalar(.5)}else if(kl(r)&&r.objectHelper.visible){let n=r.geometryHelper.getAttribute("position");Si.setFromArray(n.array),Si.getCenter(vr),Si.getSize(Wr).multiplyScalar(.5)}else vr.setScalar(0),Wr.setScalar(0);wi.copy(t).multiply(r.matrixWorld),Wr.x===0&&Wr.y===0&&Wr.z===0?e.push(new Qe.Vector3(vr.x,vr.y,vr.z).applyMatrix4(wi)):dg.forEach(n=>{e.push(n.clone().multiply(Wr).add(vr).applyMatrix4(wi))})},Aa=class extends Qe.Box3{constructor(){super(...arguments);this.matrix=new Qe.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(n=>n.clone()),this.faces=e.faces.map(n=>n.clone()),this.edges=e.edges.map(n=>n.clone()),this.centerEdges=e.centerEdges.map(n=>n.clone()),this}setFromObjectSize(e,n=!1){e.updateWorldMatrix(!1,n),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let o=new Qe.Matrix4().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,n)}expandByObjectSize(e,n,o=!1){let i=[];return o===!0?e.traverseEntity(a=>{a.visible&&fg(a,n,i)}):fg(e,n,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(wi.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(Wr).multiplyScalar(.5),this.getCenter(vr),wi.copy(this.matrix).setPosition(vr),this.vertices=dg.map(e=>e.clone().multiply(Wr).applyMatrix4(wi))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=IC.map(([e,n])=>new Qe.Line3(this.vertices[e],this.vertices[n])),this.centerEdges=this.edges.map(e=>e.getCenter(new Qe.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=LC.map(([e,n])=>this.vertices[e].clone().add(this.vertices[n]).multiplyScalar(.5))}};var qr=r=>"isEntity"in r,hg=r=>"isAbstractMesh"in r,ur=r=>class extends Ul(r){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new Lu.Matrix4;this._singleBBox=new Aa;this._recursiveBBox=new Aa;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1;this.states={};this.currentState=null;this.currentTransitionAction=null}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}resetBBoxNeedsUpdate(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0,this.traverseAncestors(n=>{qr(n)&&(n.singleBBoxNeedsUpdate=!0,n.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(n=>{n.singleBBoxNeedsUpdate=!0,n.recursiveBBoxNeedsUpdate=!0})}traverseEntity(n){n(this);for(let o of this.children)qr(o)&&o.traverseEntity(n)}traverseVisibleEntity(n){n(this);for(let o of this.children)qr(o)&&o.visible&&o.traverseVisibleEntity(n)}updateMatrix(){super.updateMatrix(),this.dispatchEvent({type:"updateMatrix"})}updateMatrixWorld(n){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||n)&&(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,n=!0);for(let o of this.children)o.updateMatrixWorld(n)}updateWorldMatrix(n,o){let i=this.parent;if(n&&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 a of this.children)a.updateWorldMatrix(!1,!0)}clone(n){return new this.constructor().copy(this,n)}copy(n,o=!0){if(super.copy(n,!1),this.raycastLock=n.raycastLock,this.scaleLock=n.scaleLock,this.hiddenMatrix.copy(n.hiddenMatrix),o===!0)for(let i of n.children)qr(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let n=new Lu.Matrix4,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),n.copy(this.matrixWorld).invert(),n.multiply(o);for(let i of this.children)qr(i)&&i.hiddenMatrix.premultiply(n)}toObjectTransformState(n=[]){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 ni(o,n)}fromObjectTransformState(n){return n.position&&this.position.fromArray(n.position),n.rotation&&this.rotation.fromArray(n.rotation),n.scale&&this.scale.fromArray(n.scale),n.hiddenMatrix&&this.hiddenMatrix.fromArray(n.hiddenMatrix),this.updateMatrix(),this}toState(n=[]){let o={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(n)};return ni(o,n)}fromState(n,o){return n.name&&(this.name=n.name),n.raycastLock!==void 0&&(this.raycastLock=n.raycastLock),n.type!=="OrthographicCamera"&&n.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),n.visible!==void 0&&(this.visible=n.visible),this.fromObjectTransformState(n),this}};var $l=require("three");var br=require("three");var _a=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 mg=require("three"),xt=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=mg.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,n){return n=n??{},this.analyze(t,n),this.flow(t,e,n)}flow(t,e,n){n=n??{},t.addFlow(n.slot,n.cache,n.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,n){e=e??this.getType(t,e);let o=t.getNodeData(n??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,n)}updateFrame(t){}generateReadonly(t,e,n,o,i,a){return""}generate(t,e,n,o,i){return""}parse(t,e,n,o){}appendDepsNode(t,e,n){e.deps=(e.deps||0)+1;let o=t.getTypeLength(n);(o>(e.outputMax||0)||this.getType(t,n))&&(e.outputMax=o,e.output=n)}setName(t){this.name=t}getName(){return this.name}getType(t,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}getHash(){let t="{",e,n;for(e in this)n=this[e],n instanceof xt&&(t+='"'+e+'":'+n.getHash()+",");if(this.hashProperties)for(let o=0;o<this.hashProperties.length;o++)e=this.hashProperties[o],n=this[e],t+='"'+e+'":"'+String(n)+'",';return t+='"id":"'+this.uuid+'"}',t}};var Nu=class{constructor(){this.nodes={};this.keywords={}}add(t){this.nodes[t.name]=t}addKeyword(t,e,n){n=n!==void 0?n:!0,this.keywords[t]={callback:e,cache:n}}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}},pt=new Nu;var Pu=require("three");var gg=require("three"),he=class extends xt{constructor(e,n){super(e);this.scope="";n=n??{},this.shared=n.shared!==void 0?n.shared:!0,this.unique=n.unique!==void 0?n.unique:!1}build(e,n,o,i){if(n=n??this.getType(e),this.getShared(e,n)){let a=this.getUnique(e,n);a&&this.uuid===void 0&&(this.uuid=gg.MathUtils.generateUUID()),o=e.getUUID(o??this.getUUID(),!a);let s=e.getNodeData(o),l=s.output||this.getType(e);if(e.analyzing)return(s.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,s,n),this.generate(e,n,o)):super.build(e,n,o);if(a)return s.name=s.name||super.build(e,n,o),s.name;if(!this.getLabel()&&(!this.getShared(e,l)||e.context.ignoreCache||s.deps===1))return super.build(e,n,o);o=this.getUUID(!1);let u=this.getTemp(e,o);if(u)return e.format(u,l,n);{u=super.generate(e,n,o,s.output,i);let c=this.generate(e,l,o);return e.addNodeCode(u+" = "+c+";"),e.format(u,l,n)}}return super.build(e,n,o)}getShared(e,n){return n!=="sampler2D"&&n!=="samplerCube"&&this.shared}getUnique(e,n){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let n=this.uuid;return typeof this.scope=="string"&&(n=this.scope+"-"+n),n}getTemp(e,n){n=n||this.uuid;let o=e.getVars()[n];return o?o.name:void 0}generate(e,n,o,i,a){return this.getShared(e,n)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,i??this.getType(e),a,this.getLabel()).name}};var Ue=class extends he{constructor(e,n){n=n??{},n.shared=n.shared!==void 0?n.shared:!1;super(e,n);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(e,n,o,i,a,s){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let l=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,n,o,i,a,s):e.isShader("vertex")?(l.vertex||(l.vertex=e.createVertexUniform(i,this,a,s,this.getLabel())),e.format(l.vertex.name,i,n)):(l.fragment||(l.fragment=e.createFragmentUniform(i,this,a,s,this.getLabel())),e.format(l.fragment.name,i,n))}};var bt=class extends Ue{constructor(e=0,n){super("v2");this.nodeType="Vector2";this.value=e instanceof Pu.Vector2?e:new Pu.Vector2(e,n)}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,n,o,i,a,s){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,n)}};var Mu=require("three");var _t=class extends Ue{constructor(e=0,n,o){super("v3");this.nodeType="Vector3";this.value=e instanceof Mu.Vector3?e:new Mu.Vector3(e,n,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,n,o,i,a,s){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,n)}};var yg=require("three"),ft=class extends yg.Color{constructor(e,n,o,i){super(e,n,o);this.isColorA=!0;this.a=i}setRGBA(e,n,o,i){super.setRGB(e,n,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 pr=class extends Ue{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof ft?e:new ft(e.r,e.g,e.b,e.a)}generateReadonly(e,n,o,i,a,s){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,n)}};var PC=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,vg=/[a-z_0-9]+/gi,Z=class extends he{constructor(e,n,o,i,a){super(a);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=a===void 0,this.isInterface=!1,this.parse(e,n,o,i)}getShared(e,n){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let n=this.inputs.length;for(;n--;)if(this.inputs[n].name===e)return this.inputs[n]}}getIncludeByName(e){if(this.includes){let n=this.includes.length;for(;n--;)if(this.includes[n].name===e)return this.includes[n]}}generate(e,n,o,i,a){let s,l=0,u=this.src;if(this.includes)for(let p=0;p<this.includes.length;p++)e.include(this.includes[p],this);for(let p in this.extensions)e.extensions[p]=!0;let c=[];for(;s=vg.exec(this.src);)c.push(s);for(let p=0;p<c.length;p++){let f=c[p],d=f[0],h=this.isMethod?!this.getInputByName(d):!0,m=d;if(this.keywords[d]||this.useKeywords&&h&&pt.containsKeyword(d)){let g=this.keywords[d];if(!g){let v=pt.getKeywordData(d);v.cache&&(g=e.keywords[d]),g=g||pt.getKeyword(d,e),v.cache&&(e.keywords[d]=g)}m=g.build(e)}d!==m&&u[f.index+l-1]!=="."&&(u=u.substring(0,f.index+l)+m+u.substring(f.index+d.length+l),l+=m.length-d.length),this.getIncludeByName(m)===void 0&&pt.contains(m)&&e.include(pt.get(m))}return n==="source"?u:this.isMethod?(this.isInterface||e.include(this,void 0,u),this.name):e.format("( "+u+" )",this.getType(e),n)}parse(e,n,o,i){if(this.src=e||"",this.includes=n??[],this.extensions=o??{},this.keywords=i??{},this.isMethod){let a=PC.exec(this.src);if(this.inputs=[],a&&a.length==4){this.type=a[1],this.name=a[2];let s=a[3].match(vg);if(s){let l=0;for(;l<s.length;){let u=s[l++],c;u==="in"||u==="out"||u==="inout"?c=s[l++]:(c=u,u="");let p=s[l++];this.inputs.push({name:p,type:c,qualifier:u})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var MC=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Eu=class extends he{constructor(e="",n){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||Eu.PI,void 0,void 0,void 0,n)}getType(e){return e.getTypeByFormat(this.type)}parse(e,n,o,i,a){this.src=e||"";let s,l,u="",c=MC.exec(e);this.useDefine=a??this.src.charAt(0)==="#",c&&c.length>1?(l=c[1],s=c[2],u=c[3]):(s=this.src,l="f"),this.name=s,this.type=l,this.value=u}build(e,n){if(n==="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),n)}generate(e,n,o,i,a){return e.format(this.name,this.getType(e),n)}},Le=Eu;Le.PI="PI",Le.PI2="PI2",Le.RECIPROCAL_PI="RECIPROCAL_PI",Le.RECIPROCAL_PI2="RECIPROCAL_PI2",Le.LOG2="LOG2",Le.EPSILON="EPSILON";var EC=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
4
- )*?)}`,"gim"),DC=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Ti=class extends he{constructor(e=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(e)}getType(e){return e.getTypeByFormat(this.name)}getInputByName(e){let n=this.inputs.length;for(;n--;)if(this.inputs[n].name===e)return this.inputs[n]}generate(e,n,o,i,a){return n==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),n)}parse(e=""){this.src=e,this.inputs=[];let n=EC.exec(e);if(n){let o=n[2],i;for(;i=DC.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=n[1]}else this.name="";this.type=this.name}};var Ci=class extends he{constructor(e){super("v2",{shared:!1});this.nodeType="UV";this.index=e??0}generate(e,n){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),n)}};pt.addKeyword("uv",function(){return new Ci});pt.addKeyword("uv2",function(){return new Ci(1)});var Vl=require("three");var vo=class extends he{constructor(e,n){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=n??vo.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case Vl.LinearEncoding:return["Linear"];case Vl.sRGBEncoding:return["sRGB"];default:return[]}}generate(e,n){let o=this.input.build(e,"v4"),i=this.getType(e),a=vo.Nodes[this.method],s=e.include(a);if(s===vo.LINEAR_TO_LINEAR)return e.format(o,i,n);if(a.inputs?.length===2){let l=this.factor.build(e,"f");return e.format(s+"( "+o+", "+l+" )",i,n)}else return e.format(s+"( "+o+" )",i,n)}fromEncoding(e){let n=vo.getEncodingComponents(e);this.method="LinearTo"+n[0],this.factor=n[1]}fromDecoding(e){let n=vo.getEncodingComponents(e);this.method=n[0]+"ToLinear",this.factor=n[1]}},Dt=vo;Dt.Nodes={LinearToLinear:new Z(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
5
- `)),sRGBToLinear:new Z(["vec4 sRGBToLinear( in vec4 value ) {"," return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );","}"].join(`
6
- `)),LinearTosRGB:new Z(["vec4 LinearTosRGB( in vec4 value ) {"," return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );","}"].join(`
7
- `))},Dt.LINEAR_TO_LINEAR="LinearToLinear",Dt.SRGB_TO_LINEAR="sRGBToLinear",Dt.LINEAR_TO_SRGB="LinearTosRGB";var Me=class extends Z{constructor(e="",n,o,i,a){super(e,a,i,o,n);this.nodeType="Expression"}};var xg=require("three"),jt=class extends Ue{constructor(e=new xg.Texture,n,o,i){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=n??new Ci,this.bias=o,this.project=i!==void 0?i:!1}getTexture(e,n){return super.generate(e,n,this.value.uuid,"t")}generate(e,n){if(n==="sampler2D")return this.getTexture(e,n);let o=this.getTexture(e,n),i=this.uv.build(e,this.project?"v4":"v2"),a=this.bias?this.bias.build(e,"f"):void 0;a===void 0&&e.context.bias&&(a=e.context.bias.setTexture(this).build(e,"f"));let s,l;this.project?s="texture2DProj":s=a?"tex2DBias":"tex2D",a?l=s+"( "+o+", "+i+", "+a+" )":l=s+"( "+o+", "+i+" )";let u={include:e.isShader("vertex"),ignoreCache:!0},c=this.getType(e);return e.addContext(u),this.colorSpace=this.colorSpace??new Dt(new Me("",c)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(l),l=this.colorSpace.build(e,c),e.removeContext(),e.format(l,c,n)}};var J=class extends Ue{constructor(e){super("f");this.nodeType="Float";this.value=e??0}generateReadonly(e,n,o,i,a,s){return e.format(this.value+(this.value%1?"":".0"),i,n)}};var Oa=class extends he{constructor(e,n){super();this.inputs=[];this.nodeType="FunctionCall";this.value=e,this.inputs=n??[]}getFunction(){return this.value}getType(e){return this.value.getType(e)}generate(e,n,o,i,a){i=this.getType(e);let s=this.value,l=s.build(e,n)+"( ",u=[];if(s.inputs){for(let c=0;c<s.inputs.length;c++){let p=s.inputs[c],f=this.inputs[c]||this.inputs[p.name];u.push(f.build(e,e.getTypeByFormat(p.type)))}l+=u.join(", ")+" )"}return e.format(l,i,n)}};var Du=class extends he{constructor(e,n,o=Du.ADD){super();this.nodeType="Operator";this.type=e.type,this.a=e,this.b=n,this.op=o}getType(e){let n=this.a.getType(e),o=this.b.getType(e);return e.isTypeMatrix(n)?"v4":e.getTypeLength(o)>e.getTypeLength(n)?o:n}generate(e,n){let o=this.getType(e);this.type=o;let i=this.a.build(e,o),a=this.b.build(e,o);return e.format("( "+i+" "+this.op+" "+a+" )",o,n)}},Ht=Du;Ht.ADD="+",Ht.SUB="-",Ht.MUL="*",Ht.DIV="/";var Re=class extends he{constructor(e,n=Re.ABS,o,i){super();this.nodeType="Math";this.a=e,typeof n!="string"?this.b=n:i=n,typeof o!="string"?this.c=o:i=o,this.method=i,this.hashProperties=["method"]}getNumInputs(e){switch(this.method){case Re.MIX:case Re.CLAMP:case Re.REFRACT:case Re.SMOOTHSTEP:case Re.FACEFORWARD:return 3;case Re.MIN:case Re.MAX:case Re.MOD:case Re.STEP:case Re.REFLECT:case Re.DISTANCE:case Re.DOT:case Re.CROSS:case Re.POW:return 2;default:return 1}}getInputType(e){let n=e.getTypeLength(this.a.getType(e)),o=this.b?e.getTypeLength(this.b.getType(e)):0,i=this.c?e.getTypeLength(this.c.getType(e)):0;return n>o&&n>i?this.a.getType(e):o>i?this.b.getType(e):this.c.getType(e)}getType(e){switch(this.method){case Re.LENGTH:case Re.DISTANCE:case Re.DOT:return"f";case Re.CROSS:return"v3"}return this.getInputType(e)}generate(e,n){let o,i,a,s=this.a?e.getTypeLength(this.a.getType(e)):0,l=this.b?e.getTypeLength(this.b.getType(e)):0,u=this.c?e.getTypeLength(this.c.getType(e)):0,c=this.getInputType(e),p=this.getType(e);switch(this.type=p,this.method){case Re.NEGATE:return e.format("( -"+this.a.build(e,c)+" )",c,n);case Re.INVERT:return e.format("( 1.0 - "+this.a.build(e,c)+" )",c,n);case Re.CROSS:o=this.a.build(e,"v3"),i=this.b.build(e,"v3");break;case Re.STEP:o=this.a.build(e,s===1?"f":c),i=this.b.build(e,c);break;case Re.MIN:case Re.MAX:case Re.MOD:o=this.a.build(e,c),i=this.b.build(e,l===1?"f":c);break;case Re.REFRACT:o=this.a.build(e,c),i=this.b.build(e,c),a=this.c.build(e,"f");break;case Re.MIX:o=this.a.build(e,c),i=this.b.build(e,c),a=this.c.build(e,u===1?"f":c);break;default:o=this.a.build(e,c),this.b&&(i=this.b.build(e,c)),this.c&&(a=this.c.build(e,c));break}let f=[];f.push(o),i&&f.push(i),a&&f.push(a);let d=this.getNumInputs(e);if(f.length!==d)throw Error(`Arguments not match used in "${this.method}". Require ${d}, currently ${f.length}.`);return e.format(this.method+"( "+f.join(", ")+" )",p,n)}},ve=Re;ve.RAD="radians",ve.DEG="degrees",ve.EXP="exp",ve.EXP2="exp2",ve.LOG="log",ve.LOG2="log2",ve.SQRT="sqrt",ve.INV_SQRT="inversesqrt",ve.FLOOR="floor",ve.CEIL="ceil",ve.NORMALIZE="normalize",ve.FRACT="fract",ve.SATURATE="saturate",ve.SIN="sin",ve.COS="cos",ve.TAN="tan",ve.ASIN="asin",ve.ACOS="acos",ve.ARCTAN="atan",ve.ABS="abs",ve.SIGN="sign",ve.LENGTH="length",ve.NEGATE="negate",ve.INVERT="invert",ve.MIN="min",ve.MAX="max",ve.MOD="mod",ve.STEP="step",ve.REFLECT="reflect",ve.DISTANCE="distance",ve.DOT="dot",ve.CROSS="cross",ve.POW="pow",ve.MIX="mix",ve.CLAMP="clamp",ve.REFRACT="refract",ve.SMOOTHSTEP="smoothstep",ve.FACEFORWARD="faceforward";var Ai=class extends he{constructor(e,n,o){super("v4");this.nodeType="TextureCubeUV";this.value=e,this.uv=n,this.bias=o}bilinearCubeUV(e,n,o,i){let a=new Oa(Ai.Nodes.bilinearCubeUV,[n,o,i]);this.colorSpaceTL=this.colorSpaceTL??new Dt(new Me("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(a.build(e)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new Dt(new Me("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(a.build(e)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new Dt(new Me("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(a.build(e)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new Dt(new Me("","v4")),this.colorSpaceBR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(a.build(e)+".br");let s={include:e.isShader("vertex"),ignoreCache:!0};e.addContext(s),this.colorSpaceTLExp=new Me(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new Me(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new Me(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new Me(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let l=new Me("mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )","v4");return l.keywords.cubeUV_TL=this.colorSpaceTLExp,l.keywords.cubeUV_TR=this.colorSpaceTRExp,l.keywords.cubeUV_BL=this.colorSpaceBLExp,l.keywords.cubeUV_BR=this.colorSpaceBRExp,l.keywords.cubeUV=a,l}generate(e,n){if(e.isShader("fragment")){let o=this.uv,i=this.bias||e.context.roughness,a=new Oa(Ai.Nodes.roughnessToMip,[i]),s=new ve(a,Ai.Nodes.m0,Ai.Nodes.cubeUV_maxMipLevel,ve.CLAMP),l=new ve(s,ve.FLOOR),u=new ve(s,ve.FRACT),c=this.bilinearCubeUV(e,this.value,o,l),p=this.bilinearCubeUV(e,this.value,o,new Ht(l,new J(1).setReadonly(!0),Ht.ADD)),f=new ve(c,p,u,ve.MIX);return e.format(f.build(e),"v4",n)}else return console.warn("TextureCubeUVNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),n)}},_i=Ai;_i.Nodes=function(){let e=new Ti(`struct TextureCubeUVData {
1
+ var Ah=Object.create;var ps=Object.defineProperty;var Nh=Object.getOwnPropertyDescriptor;var Ih=Object.getOwnPropertyNames;var Ph=Object.getPrototypeOf,Oh=Object.prototype.hasOwnProperty;var Mc=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),Ec=(n,t)=>{for(var e in t)ps(n,e,{get:t[e],enumerable:!0})},Bc=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ih(t))!Oh.call(n,o)&&o!==e&&ps(n,o,{get:()=>t[o],enumerable:!(r=Nh(t,o))||r.enumerable});return n};var Ja=(n,t,e)=>(e=n!=null?Ah(Ph(n)):{},Bc(t||!n||!n.__esModule?ps(e,"default",{value:n,enumerable:!0}):e,n)),Ch=n=>Bc(ps({},"__esModule",{value:!0}),n);var km=Mc((qa,jm)=>{(function(n,t){typeof qa=="object"&&typeof jm<"u"?t(qa):typeof define=="function"&&define.amd?define(["exports"],t):t((n=typeof globalThis<"u"?globalThis:n||self).SVDJS={})})(qa,function(n){"use strict";n.SVD=function(t,e,r,o,i){if(e=e===void 0||e,r=r===void 0||r,i=1e-64/(o=o||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var s,l,c,p,a,u,d,f,m,h,g,x,v=t[0].length,w=t.length;if(w<v)throw new TypeError("Invalid matrix: m < n");for(var S=[],b=[],N=[],T=e==="f"?w:v,y=h=d=0;y<w;y++)b[y]=new Array(T).fill(0);for(y=0;y<v;y++)N[y]=new Array(v).fill(0);var P,A=new Array(v).fill(0);for(y=0;y<w;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<w;s++)m+=Math.pow(b[s][y],2);if(m<i)d=0;else for(f=(u=b[y][y])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,b[y][y]=u-d,s=c;s<v;s++){for(m=0,l=y;l<w;l++)m+=b[l][y]*b[l][s];for(u=m/f,l=y;l<w;l++)b[l][s]=b[l][s]+u*b[l][y]}for(A[y]=d,m=0,s=c;s<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<w;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(A[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++)N[s][y]=b[y][s]/f;for(s=c;s<v;s++){for(m=0,l=c;l<v;l++)m+=b[y][l]*N[l][s];for(l=c;l<v;l++)N[l][s]=N[l][s]+m*N[l][y]}}for(s=c;s<v;s++)N[y][s]=0,N[s][y]=0;N[y][y]=1,d=S[y],c=y}if(e){if(e==="f")for(y=v;y<w;y++){for(s=v;s<w;s++)b[y][s]=0;b[y][y]=1}for(y=v-1;0<=y;y--){for(c=y+1,d=A[y],s=c;s<T;s++)b[y][s]=0;if(d!==0){for(f=b[y][y]*d,s=c;s<T;s++){for(m=0,l=c;l<w;l++)m+=b[l][y]*b[l][s];for(u=m/f,l=y;l<w;l++)b[l][s]=b[l][s]+u*b[l][y]}for(s=y;s<w;s++)b[s][y]=b[s][y]/d}else for(s=y;s<w;s++)b[s][y]=0;b[y][y]=b[y][y]+1}}for(o*=h,l=v-1;0<=l;l--)for(var O=0;O<50;O++){for(P=!1,c=l;0<=c;c--){if(Math.abs(S[c])<=o){P=!0;break}if(Math.abs(A[c-1])<=o)break}if(!P){for(a=0,p=c-(m=1),y=c;y<l+1&&(u=m*S[y],S[y]=a*S[y],!(Math.abs(u)<=o));y++)if(d=A[y],A[y]=Math.sqrt(u*u+d*d),a=d/(f=A[y]),m=-u/f,e)for(s=0;s<w;s++)g=b[s][p],x=b[s][y],b[s][p]=g*a+x*m,b[s][y]=-g*m+x*a}if(x=A[l],c===l){if(x<0&&(A[l]=-x,r))for(s=0;s<v;s++)N[s][l]=-N[s][l];break}for(h=A[c],u=(((g=A[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=A[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=N[s][y-1],x=N[s][y],N[s][y-1]=h*a+x*m,N[s][y]=-h*m+x*a;if(x=Math.sqrt(u*u+f*f),u=(a=u/(A[y-1]=x))*d+(m=f/x)*g,h=-m*d+a*g,e)for(s=0;s<w;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,A[l]=h}for(y=0;y<v;y++)A[y]<o&&(A[y]=0);return{u:b,q:A,v:N}},n.VERSION="1.1.1",Object.defineProperty(n,"__esModule",{value:!0})})});var oh=Mc($a=>{(function(){"use strict";var n=function(){this.init()};n.prototype={init:function(){var a=this||t;return a._counter=1e3,a._html5AudioPool=[],a.html5PoolSize=10,a._codecs={},a._howls=[],a._muted=!1,a._volume=1,a._canPlayEvent="canplaythrough",a._navigator=typeof window<"u"&&window.navigator?window.navigator:null,a.masterGain=null,a.noAudio=!1,a.usingWebAudio=!0,a.autoSuspend=!0,a.ctx=null,a.autoUnlock=!0,a._setup(),a},volume:function(a){var u=this||t;if(a=parseFloat(a),u.ctx||p(),typeof a<"u"&&a>=0&&a<=1){if(u._volume=a,u._muted)return u;u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.volume=h._volume*a)}return u}return u._volume},mute:function(a){var u=this||t;u.ctx||p(),u._muted=a,u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a?0:u._volume,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.muted=a?!0:h._muted)}return u},stop:function(){for(var a=this||t,u=0;u<a._howls.length;u++)a._howls[u].stop();return a},unload:function(){for(var a=this||t,u=a._howls.length-1;u>=0;u--)a._howls[u].unload();return a.usingWebAudio&&a.ctx&&typeof a.ctx.close<"u"&&(a.ctx.close(),a.ctx=null,p()),a},codecs:function(a){return(this||t)._codecs[a.replace(/^x-/,"")]},_setup:function(){var a=this||t;if(a.state=a.ctx&&a.ctx.state||"suspended",a._autoSuspend(),!a.usingWebAudio)if(typeof Audio<"u")try{var u=new Audio;typeof u.oncanplaythrough>"u"&&(a._canPlayEvent="canplay")}catch{a.noAudio=!0}else a.noAudio=!0;try{var u=new Audio;u.muted&&(a.noAudio=!0)}catch{}return a.noAudio||a._setupCodecs(),a},_setupCodecs:function(){var a=this||t,u=null;try{u=typeof Audio<"u"?new Audio:null}catch{return a}if(!u||typeof u.canPlayType!="function")return a;var d=u.canPlayType("audio/mpeg;").replace(/^no$/,""),f=a._navigator?a._navigator.userAgent:"",m=f.match(/OPR\/([0-6].)/g),h=m&&parseInt(m[0].split("/")[1],10)<33,g=f.indexOf("Safari")!==-1&&f.indexOf("Chrome")===-1,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 w=0;w<a._howls.length;w++)a._howls[w]._emit("unlock")}};return document.addEventListener("touchstart",u,!0),document.addEventListener("touchend",u,!0),document.addEventListener("click",u,!0),document.addEventListener("keydown",u,!0),a}},_obtainHtml5Audio:function(){var a=this||t;if(a._html5AudioPool.length)return a._html5AudioPool.pop();var u=new Audio().play();return u&&typeof Promise<"u"&&(u instanceof Promise||typeof u.then=="function")&&u.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(a){var u=this||t;return a._unlocked&&u._html5AudioPool.push(a),u},_autoSuspend:function(){var a=this;if(!(!a.autoSuspend||!a.ctx||typeof a.ctx.suspend>"u"||!t.usingWebAudio)){for(var u=0;u<a._howls.length;u++)if(a._howls[u]._webAudio){for(var d=0;d<a._howls[u]._sounds.length;d++)if(!a._howls[u]._sounds[d]._paused)return a}return a._suspendTimer&&clearTimeout(a._suspendTimer),a._suspendTimer=setTimeout(function(){if(!!a.autoSuspend){a._suspendTimer=null,a.state="suspending";var f=function(){a.state="suspended",a._resumeAfterSuspend&&(delete a._resumeAfterSuspend,a._autoResume())};a.ctx.suspend().then(f,f)}},3e4),a}},_autoResume:function(){var a=this;if(!(!a.ctx||typeof a.ctx.resume>"u"||!t.usingWebAudio))return a.state==="running"&&a.ctx.state!=="interrupted"&&a._suspendTimer?(clearTimeout(a._suspendTimer),a._suspendTimer=null):a.state==="suspended"||a.state==="running"&&a.ctx.state==="interrupted"?(a.ctx.resume().then(function(){a.state="running";for(var u=0;u<a._howls.length;u++)a._howls[u]._emit("resume")}),a._suspendTimer&&(clearTimeout(a._suspendTimer),a._suspendTimer=null)):a.state==="suspending"&&(a._resumeAfterSuspend=!0),a}};var t=new n,e=function(a){var u=this;if(!a.src||a.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}u.init(a)};e.prototype={init:function(a){var u=this;return t.ctx||p(),u._autoplay=a.autoplay||!1,u._format=typeof a.format!="string"?a.format:[a.format],u._html5=a.html5||!1,u._muted=a.mute||!1,u._loop=a.loop||!1,u._pool=a.pool||5,u._preload=typeof a.preload=="boolean"||a.preload==="metadata"?a.preload:!0,u._rate=a.rate||1,u._sprite=a.sprite||{},u._src=typeof a.src!="string"?a.src:[a.src],u._volume=a.volume!==void 0?a.volume:1,u._xhr={method:a.xhr&&a.xhr.method?a.xhr.method:"GET",headers:a.xhr&&a.xhr.headers?a.xhr.headers:null,withCredentials:a.xhr&&a.xhr.withCredentials?a.xhr.withCredentials:!1},u._duration=0,u._state="unloaded",u._sounds=[],u._endTimers={},u._queue=[],u._playLock=!1,u._onend=a.onend?[{fn:a.onend}]:[],u._onfade=a.onfade?[{fn:a.onfade}]:[],u._onload=a.onload?[{fn:a.onload}]:[],u._onloaderror=a.onloaderror?[{fn:a.onloaderror}]:[],u._onplayerror=a.onplayerror?[{fn:a.onplayerror}]:[],u._onpause=a.onpause?[{fn:a.onpause}]:[],u._onplay=a.onplay?[{fn:a.onplay}]:[],u._onstop=a.onstop?[{fn:a.onstop}]:[],u._onmute=a.onmute?[{fn:a.onmute}]:[],u._onvolume=a.onvolume?[{fn:a.onvolume}]:[],u._onrate=a.onrate?[{fn:a.onrate}]:[],u._onseek=a.onseek?[{fn:a.onseek}]:[],u._onunlock=a.onunlock?[{fn:a.onunlock}]:[],u._onresume=[],u._webAudio=t.usingWebAudio&&!u._html5,typeof t.ctx<"u"&&t.ctx&&t.autoUnlock&&t._unlockAudio(),t._howls.push(u),u._autoplay&&u._queue.push({event:"play",action:function(){u.play()}}),u._preload&&u._preload!=="none"&&u.load(),u},load:function(){var a=this,u=null;if(t.noAudio){a._emit("loaderror",null,"No audio support.");return}typeof a._src=="string"&&(a._src=[a._src]);for(var d=0;d<a._src.length;d++){var f,m;if(a._format&&a._format[d])f=a._format[d];else{if(m=a._src[d],typeof m!="string"){a._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}f=/^data:audio\/([^;,]+);/i.exec(m),f||(f=/\.([^.]+)$/.exec(m.split("?",1)[0])),f&&(f=f[1].toLowerCase())}if(f||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),f&&t.codecs(f)){u=a._src[d];break}}if(!u){a._emit("loaderror",null,"No codec support for selected audio sources.");return}return a._src=u,a._state="loading",window.location.protocol==="https:"&&u.slice(0,5)==="http:"&&(a._html5=!0,a._webAudio=!1),new r(a),a._webAudio&&i(a),a},play:function(a,u){var d=this,f=null;if(typeof a=="number")f=a,a=null;else{if(typeof a=="string"&&d._state==="loaded"&&!d._sprite[a])return null;if(typeof a>"u"&&(a="__default",!d._playLock)){for(var m=0,h=0;h<d._sounds.length;h++)d._sounds[h]._paused&&!d._sounds[h]._ended&&(m++,f=d._sounds[h]._id);m===1?a=null:f=null}}var g=f?d._soundById(f):d._inactiveSound();if(!g)return null;if(f&&!a&&(a=g._sprite||"__default"),d._state!=="loaded"){g._sprite=a,g._ended=!1;var 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),w=Math.max(0,(d._sprite[a][0]+d._sprite[a][1])/1e3-v),S=w*1e3/Math.abs(g._rate),b=d._sprite[a][0]/1e3,N=(d._sprite[a][0]+d._sprite[a][1])/1e3;g._sprite=a,g._ended=!1;var T=function(){g._paused=!1,g._seek=v,g._start=b,g._stop=N,g._loop=!!(g._loop||d._sprite[a][2])};if(v>=N){d._ended(g);return}var y=g._node;if(d._webAudio){var P=function(){d._playLock=!1,T(),d._refreshBuffer(g);var L=g._muted||d._muted?0:g._volume;y.gain.setValueAtTime(L,t.ctx.currentTime),g._playStart=t.ctx.currentTime,typeof y.bufferSource.start>"u"?g._loop?y.bufferSource.noteGrainOn(0,v,86400):y.bufferSource.noteGrainOn(0,v,w):g._loop?y.bufferSource.start(0,v,86400):y.bufferSource.start(0,v,w),S!==1/0&&(d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),S)),u||setTimeout(function(){d._emit("play",g._id),d._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?P():(d._playLock=!0,d.once("resume",P),d._clearTimer(g._id))}else{var A=function(){y.currentTime=v,y.muted=g._muted||d._muted||t._muted||y.muted,y.volume=g._volume*t.volume(),y.playbackRate=g._rate;try{var L=y.play();if(L&&typeof Promise<"u"&&(L instanceof Promise||typeof L.then=="function")?(d._playLock=!0,T(),L.then(function(){d._playLock=!1,y._unlocked=!0,u?d._loadQueue():d._emit("play",g._id)}).catch(function(){d._playLock=!1,d._emit("playerror",g._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),g._ended=!0,g._paused=!0})):u||(d._playLock=!1,T(),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(D){d._emit("playerror",g._id,D)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=d._src,y.load());var O=window&&window.ejecta||!y.readyState&&t._navigator.isCocoonJS;if(y.readyState>=3||O)A();else{d._playLock=!0,d._state="loading";var _=function(){d._state="loaded",A(),y.removeEventListener(t._canPlayEvent,_,!1)};y.addEventListener(t._canPlayEvent,_,!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,w=v+d/1e3;x._volume=a,x._node.gain.setValueAtTime(a,v),x._node.gain.linearRampToValueAtTime(u,w)}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,w=Math.abs(v/.01),S=Math.max(4,w>0?f/w:f),b=Date.now();a._fadeTo=d,a._interval=setInterval(function(){var N=(Date.now()-b)/f;b=Date.now(),x+=v*N,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]),w=(a._sprite[g._sprite][0]+a._sprite[g._sprite][1])/1e3-v,S=w*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 w=function(){a._playLock?setTimeout(w,0):v()};setTimeout(w,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 $a<"u"&&($a.Howler=t,$a.Howl=e),typeof global<"u"?(global.HowlerGlobal=n,global.Howler=t,global.Howl=e,global.Sound=r):typeof window<"u"&&(window.HowlerGlobal=n,window.Howler=t,window.Howl=e,window.Sound=r)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var r=e._howls.length-1;r>=0;r--)e._howls[r].stereo(t);return e},HowlerGlobal.prototype.pos=function(t,e,r){var o=this;if(!o.ctx||!o.ctx.listener)return o;if(e=typeof e!="number"?o._pos[1]:e,r=typeof r!="number"?o._pos[2]:r,typeof t=="number")o._pos=[t,e,r],typeof o.ctx.listener.positionX<"u"?(o.ctx.listener.positionX.setTargetAtTime(o._pos[0],Howler.ctx.currentTime,.1),o.ctx.listener.positionY.setTargetAtTime(o._pos[1],Howler.ctx.currentTime,.1),o.ctx.listener.positionZ.setTargetAtTime(o._pos[2],Howler.ctx.currentTime,.1)):o.ctx.listener.setPosition(o._pos[0],o._pos[1],o._pos[2]);else return o._pos;return o},HowlerGlobal.prototype.orientation=function(t,e,r,o,i,s){var l=this;if(!l.ctx||!l.ctx.listener)return l;var c=l._orientation;if(e=typeof e!="number"?c[1]:e,r=typeof r!="number"?c[2]:r,o=typeof o!="number"?c[3]:o,i=typeof i!="number"?c[4]:i,s=typeof s!="number"?c[5]:s,typeof t=="number")l._orientation=[t,e,r,o,i,s],typeof l.ctx.listener.forwardX<"u"?(l.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),l.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),l.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),l.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),l.ctx.listener.upY.setTargetAtTime(i,Howler.ctx.currentTime,.1),l.ctx.listener.upZ.setTargetAtTime(s,Howler.ctx.currentTime,.1)):l.ctx.listener.setOrientation(t,e,r,o,i,s);else return c;return l},Howl.prototype.init=function(t){return function(e){var r=this;return r._orientation=e.orientation||[1,0,0],r._stereo=e.stereo||null,r._pos=e.pos||null,r._pannerAttr={coneInnerAngle:typeof e.coneInnerAngle<"u"?e.coneInnerAngle:360,coneOuterAngle:typeof e.coneOuterAngle<"u"?e.coneOuterAngle:360,coneOuterGain:typeof e.coneOuterGain<"u"?e.coneOuterGain:0,distanceModel:typeof e.distanceModel<"u"?e.distanceModel:"inverse",maxDistance:typeof e.maxDistance<"u"?e.maxDistance:1e4,panningModel:typeof e.panningModel<"u"?e.panningModel:"HRTF",refDistance:typeof e.refDistance<"u"?e.refDistance:1,rolloffFactor:typeof e.rolloffFactor<"u"?e.rolloffFactor:1},r._onstereo=e.onstereo?[{fn:e.onstereo}]:[],r._onpos=e.onpos?[{fn:e.onpos}]:[],r._onorientation=e.onorientation?[{fn:e.onorientation}]:[],t.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(t,e){var r=this;if(!r._webAudio)return r;if(r._state!=="loaded")return r._queue.push({event:"stereo",action:function(){r.stereo(t,e)}}),r;var o=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof e>"u")if(typeof t=="number")r._stereo=t,r._pos=[t,0,0];else return r._stereo;for(var i=r._getSoundIds(e),s=0;s<i.length;s++){var l=r._soundById(i[s]);if(l)if(typeof t=="number")l._stereo=t,l._pos=[t,0,0],l._node&&(l._pannerAttr.panningModel="equalpower",(!l._panner||!l._panner.pan)&&n(l,o),o==="spatial"?typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):l._panner.setPosition(t,0,0):l._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),r._emit("stereo",l._id);else return l._stereo}return r},Howl.prototype.pos=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"pos",action:function(){i.pos(t,e,r,o)}}),i;if(e=typeof e!="number"?0:e,r=typeof r!="number"?-.5:r,typeof o>"u")if(typeof t=="number")i._pos=[t,e,r];else return i._pos;for(var s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._pos=[t,e,r],c._node&&((!c._panner||c._panner.pan)&&n(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setPosition(t,e,r)),i._emit("pos",c._id);else return c._pos}return i},Howl.prototype.orientation=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"orientation",action:function(){i.orientation(t,e,r,o)}}),i;if(e=typeof e!="number"?i._orientation[1]:e,r=typeof r!="number"?i._orientation[2]:r,typeof o>"u")if(typeof t=="number")i._orientation=[t,e,r];else return i._orientation;for(var s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._orientation=[t,e,r],c._node&&(c._panner||(c._pos||(c._pos=i._pos||[0,0,-.5]),n(c,"spatial")),typeof c._panner.orientationX<"u"?(c._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setOrientation(t,e,r)),i._emit("orientation",c._id);else return c._orientation}return i},Howl.prototype.pannerAttr=function(){var t=this,e=arguments,r,o,i;if(!t._webAudio)return t;if(e.length===0)return t._pannerAttr;if(e.length===1)if(typeof e[0]=="object")r=e[0],typeof o>"u"&&(r.pannerAttr||(r.pannerAttr={coneInnerAngle:r.coneInnerAngle,coneOuterAngle:r.coneOuterAngle,coneOuterGain:r.coneOuterGain,distanceModel:r.distanceModel,maxDistance:r.maxDistance,refDistance:r.refDistance,rolloffFactor:r.rolloffFactor,panningModel:r.panningModel}),t._pannerAttr={coneInnerAngle:typeof r.pannerAttr.coneInnerAngle<"u"?r.pannerAttr.coneInnerAngle:t._coneInnerAngle,coneOuterAngle:typeof r.pannerAttr.coneOuterAngle<"u"?r.pannerAttr.coneOuterAngle:t._coneOuterAngle,coneOuterGain:typeof r.pannerAttr.coneOuterGain<"u"?r.pannerAttr.coneOuterGain:t._coneOuterGain,distanceModel:typeof r.pannerAttr.distanceModel<"u"?r.pannerAttr.distanceModel:t._distanceModel,maxDistance:typeof r.pannerAttr.maxDistance<"u"?r.pannerAttr.maxDistance:t._maxDistance,refDistance:typeof r.pannerAttr.refDistance<"u"?r.pannerAttr.refDistance:t._refDistance,rolloffFactor:typeof r.pannerAttr.rolloffFactor<"u"?r.pannerAttr.rolloffFactor:t._rolloffFactor,panningModel:typeof r.pannerAttr.panningModel<"u"?r.pannerAttr.panningModel:t._panningModel});else return i=t._soundById(parseInt(e[0],10)),i?i._pannerAttr:t._pannerAttr;else e.length===2&&(r=e[0],o=parseInt(e[1],10));for(var s=t._getSoundIds(o),l=0;l<s.length;l++)if(i=t._soundById(s[l]),i){var c=i._pannerAttr;c={coneInnerAngle:typeof r.coneInnerAngle<"u"?r.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:typeof r.coneOuterAngle<"u"?r.coneOuterAngle:c.coneOuterAngle,coneOuterGain:typeof r.coneOuterGain<"u"?r.coneOuterGain:c.coneOuterGain,distanceModel:typeof r.distanceModel<"u"?r.distanceModel:c.distanceModel,maxDistance:typeof r.maxDistance<"u"?r.maxDistance:c.maxDistance,refDistance:typeof r.refDistance<"u"?r.refDistance:c.refDistance,rolloffFactor:typeof r.rolloffFactor<"u"?r.rolloffFactor:c.rolloffFactor,panningModel:typeof r.panningModel<"u"?r.panningModel:c.panningModel};var p=i._panner;p?(p.coneInnerAngle=c.coneInnerAngle,p.coneOuterAngle=c.coneOuterAngle,p.coneOuterGain=c.coneOuterGain,p.distanceModel=c.distanceModel,p.maxDistance=c.maxDistance,p.refDistance=c.refDistance,p.rolloffFactor=c.rolloffFactor,p.panningModel=c.panningModel):(i._pos||(i._pos=t._pos||[0,0,-.5]),n(i,"spatial"))}return t},Sound.prototype.init=function(t){return function(){var e=this,r=e._parent;e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,t.call(this),e._stereo?r.stereo(e._stereo):e._pos&&r.pos(e._pos[0],e._pos[1],e._pos[2],e._id)}}(Sound.prototype.init),Sound.prototype.reset=function(t){return function(){var e=this,r=e._parent;return e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,e._stereo?r.stereo(e._stereo):e._pos?r.pos(e._pos[0],e._pos[1],e._pos[2],e._id):e._panner&&(e._panner.disconnect(0),e._panner=void 0,r._refreshBuffer(e)),t.call(this)}}(Sound.prototype.reset);var n=function(t,e){e=e||"spatial",e==="spatial"?(t._panner=Howler.ctx.createPanner(),t._panner.coneInnerAngle=t._pannerAttr.coneInnerAngle,t._panner.coneOuterAngle=t._pannerAttr.coneOuterAngle,t._panner.coneOuterGain=t._pannerAttr.coneOuterGain,t._panner.distanceModel=t._pannerAttr.distanceModel,t._panner.maxDistance=t._pannerAttr.maxDistance,t._panner.refDistance=t._pannerAttr.refDistance,t._panner.rolloffFactor=t._pannerAttr.rolloffFactor,t._panner.panningModel=t._pannerAttr.panningModel,typeof t._panner.positionX<"u"?(t._panner.positionX.setValueAtTime(t._pos[0],Howler.ctx.currentTime),t._panner.positionY.setValueAtTime(t._pos[1],Howler.ctx.currentTime),t._panner.positionZ.setValueAtTime(t._pos[2],Howler.ctx.currentTime)):t._panner.setPosition(t._pos[0],t._pos[1],t._pos[2]),typeof t._panner.orientationX<"u"?(t._panner.orientationX.setValueAtTime(t._orientation[0],Howler.ctx.currentTime),t._panner.orientationY.setValueAtTime(t._orientation[1],Howler.ctx.currentTime),t._panner.orientationZ.setValueAtTime(t._orientation[2],Howler.ctx.currentTime)):t._panner.setOrientation(t._orientation[0],t._orientation[1],t._orientation[2])):(t._panner=Howler.ctx.createStereoPanner(),t._panner.pan.setValueAtTime(t._stereo,Howler.ctx.currentTime)),t._panner.connect(t._node),t._paused||t._parent.pause(t._id,!0).play(t._id,!0)}})()});var Iw={};Ec(Iw,{default:()=>Ka});module.exports=Ch(Iw);var Qa=require("three");var Ge=class{modifyById(t,e){let r=this;if(r[t]===void 0)throw new Error("not expected");{let i={...r,[t]:e};return Object.setPrototypeOf(i,Ge.prototype),i}}add(t,e){return this.runOp({type:1,id:t,data:e})?.data??this}runOp(t){let e=this;if(t.type===1){let r=e[t.id],o;r===void 0?o={type:2,id:t.id}:o={type:1,id:t.id,data:r};let{id:i,data:s}=t,l={...e,[i]:s};return Object.setPrototypeOf(l,Ge.prototype),{data:l,actual:t,reverse:o}}else if(t.type===2){let{id:r}=t,o=e[r];if(o===void 0)return null;{let i={...e};return Object.setPrototypeOf(i,Ge.prototype),delete i[r],{data:i,actual:t,reverse:{type:1,id:r,data:o}}}}throw new Error("illegal arg")}};function Jn(n){if(n.deepFreeze!==void 0){n.deepFreeze(n);return}let t=Object.getOwnPropertyNames(n);for(let e of t){let r=n[e];r&&typeof r=="object"&&Jn(r)}return Object.freeze(n)}function Dc(n,t){let e=0;for(;e<n.length&&e<t.length;){if(n[e]<t[e])return-1;if(n[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==n.length?1:0}var Fo=class extends Error{};function ar(n,t,e){if(n===void 0?t===void 0?(n=0,t=10):n=t-10:t===void 0&&(t=n+10),n>t){let i=n;n=t,t=i}let r=[],o=1/(e+1);for(let i=0;i<e;i++){let s=n+(t-n)*(i+.75+Math.random()*.5)*o;r.push(s)}return r}function yo(n){return n instanceof Uint8Array||n instanceof Uint16Array||n instanceof Uint32Array||n instanceof Int8Array||n instanceof Int16Array||n instanceof Int32Array||n instanceof Float32Array||n instanceof Float64Array}function Gc(){return typeof process<"u"}function Rc(n,t){for(let e of n)t(e.id,e.data),Rc(e.children,t)}function Vc(n,t){t(n.id,n.data);for(let e of n.children)Vc(e,t)}var Fe=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Fe.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Jn(this[e]),e++}fillCaches0(e,r){this.objCaches.set(e.id,e),this.parentCaches.set(e.id,r);for(let o of e.children)this.fillCaches0(o,e.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let e of this)this.fillCaches0(e,null)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}isDescendantOf(e,r){for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}data(e){return this.get(e)?.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){return e===null?this:this.get(e)?.children}traverseFrom(e,r){if(e===null)this.traverse(r);else{let o=this.get(e);o&&Vc(o,r)}}traverse(e){Rc(this,e)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(e){return this.fillCaches(),this.parentCaches.get(e)}childrenArray(e){return e===null?this:this.get(e).children}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this.parent(e),s=this.childrenArray(i),l=s.findIndex(a=>a.id===e);if(l<0)throw new Error("not expected");let c=s[l];return s=[...s],s[l]={...c,data:r},this.modifyArrayBy(i,s)}}modifyArrayBy(e,r){let o=e,i=r;for(;o!==null;){let l=i,c=o;if(o=this.parent(o),o===void 0)throw new Error;i=this.childrenArray(o);let p=i.findIndex(a=>a.id===c);if(p<0)throw new Error;i=[...i],i[p]={...i[p],children:l}}Object.setPrototypeOf(i,Fe.prototype);let s=i;return s.fillCaches(),s}runOp(e){switch(e.type){case 7:return this.addOp(e);case 8:return this.deleteOp(e);case 9:return this.moveOp(e)}}checkDuplicatedIdRec({id:e,children:r}){if(this.get(e)!==void 0)return!0;for(let o of r)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:r,fi:o,id:i,data:s,children:l}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let c=r,p=this.childrenArray(c),a={fi:o,id:i,data:s,children:l};return p=[...p,a],p.sort((d,f)=>d.fi-f.fi),e.localIndex=p.indexOf(a),{data:this.modifyArrayBy(c,p),actual:e,reverse:{type:8,id:i}}}}deleteOp(e){let{id:r}=e;if(this.get(r)===null)return null;{let o=this.parent(r);if(o===void 0)return null;let i=this.childrenArray(o),s=i.findIndex(p=>p.id===r);e.localIndex=s,i=[...i];let l=i.splice(s,1)[0];return{data:this.modifyArrayBy(o,i),actual:e,reverse:{type:7,...l,parent:o}}}}moveOp(e){let{parent:r,fi:o,id:i}=e;if(r!==null&&this.get(r)===void 0)return this.deleteOp({type:8,id:i});if(r!==null){let f=r;for(;f!==null;){if(f===void 0)throw new Error;if(f===i)throw new Fo("cyclic tree");f=this.parent(f)}}let s=this.parent(i);if(s===void 0)return null;let l=s,c=this.childrenArray(s),p=c.findIndex(f=>f.id===i);c=[...c];let a=c.splice(p,1)[0],u=this.modifyArrayBy(s,c);s=r,c=u.childrenArray(s);let d=a.fi;return a={...a,fi:o},c=[...c,a],c.sort((f,m)=>f.fi-m.fi),e.localIndex=c.indexOf(a),u=u.modifyArrayBy(s,c),{data:u,actual:e,reverse:{type:9,parent:l,fi:d,id:i}}}previous(e,r){if(r===null){let i=this.childrenArray(e);return i.length===0?null:i[i.length-1].id}let o=null;for(let i of this.childrenArray(e)){if(i.id===r)return o;o=i.id}return null}traverseSortNext(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(s=>s.id===e)+1;if(i<o.length)return o[i].id;if(r)return this.traverseSortNext(r)}}sortNext(e){let r=this.childrenArray(e);return r.length>0?r[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let r=this.childrenArray(e);return r.length>0?this.traverseSortPrevious(r[r.length-1].id):e}sortPrevious(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(s=>s.id===e)-1;return i>=0?this.traverseSortPrevious(o[i].id):r}}getAllSorted(e){let r=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&r.push({...o,...i})}r.sort((o,i)=>Dc(o.sortKey,i.sortKey));for(let o of r)delete o.sortKey;return r}getWithSortKey(e){var r=e;let o=[],i=this.get(r),s=i;if(i!==void 0){for(;r;)o.splice(0,0,i.fi),r=this.parent(r),r!==null&&(i=this.get(r));return{...s,sortKey:o}}}insertBeforeHelper(e,r,o){return this.insertAfterHelper(e,this.previous(e,r),o)}insertAfterHelper(e,r,o){let i=this.childrenArray(e);if(r===null){if(i.length===0)return ar(0,o,o);{let s=i[0].fi;return ar(s-o,s,o)}}else{let s=this.get(r);if(s===void 0||this.parent(r)!==e)throw new Error("illegal args");let l=i.find(c=>c.fi>s.fi);if(l===void 0){let c=i[i.length-1].fi;return ar(c,c+o,o)}else return ar(s.fi,l.fi,o)}}};var zo;(t=>{function n(e,r){if(Array.isArray(e)){let o=r.props,i={},s=[...e],l=!1;if(o)for(let c of Object.keys(o)){let p=parseInt(c);if(isNaN(p))throw new Error("wrong index");i[c]=s[p],s[p]=o[c],l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}else{let o=r.props,i={},s={...e},l=!1;if(o)for(let c of Object.keys(o)){i[c]=s[c];let p=o[c];p===void 0?delete s[c]:s[c]=p,l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}}t.runOp=n})(zo||(zo={}));var ge=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,ge.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Jn(this[e]),e++}fillCaches0(e){this.objCaches.set(e.id,e)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let e of this)this.fillCaches0(e)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}data(e){return this.get(e)?.data}get(e){return this.fillCaches(),this.objCaches.get(e)}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this,s=i.findIndex(p=>p.id===e);if(s<0)throw new Error("not expected");let l=i[s];return i=[...i],i[s]={...l,data:r},this.modifyArrayBy(i)}}modifyArrayBy(e){Object.setPrototypeOf(e,ge.prototype);let r=e;return Gc()||r.fillCaches(),r}runOp(e){switch(e.type){case 4:return this.addOp(e);case 5:return this.deleteOp(e);case 6:return this.moveOp(e)}}addOp(e){let{fi:r,id:o,data:i}=e,s=this,l={fi:r,id:o,data:i};return s=[...s,l],s.sort((p,a)=>p.fi-a.fi),e.localIndex=s.indexOf(l),{data:this.modifyArrayBy(s),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:r}=e,o=this,i=o.findIndex(c=>c.id===r);if(i===-1)return null;e.localIndex=i,o=[...o];let s=o.splice(i,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...s}}}moveOp(e){let{fi:r,id:o}=e,i=this;i=[...i];let s=i.findIndex(a=>a.id===o);if(s===-1)return null;let l=i[s].fi,c={...i[s],fi:r};return i[s]=c,i.sort((a,u)=>a.fi-u.fi),e.localIndex=i.indexOf(c),{data:this.modifyArrayBy(i),actual:e,reverse:{type:6,fi:l,id:o}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let r=null;for(let o of this){if(o.id===e)return r;r=o.id}return null}insertBeforeHelper(e,r){return this.insertAfterHelper(this.previous(e),r)}insertAfterHelper(e,r){let o=this;if(e===null){if(o.length===0)return ar(0,r,r);{let i=o[0].fi;return ar(i-r,i,r)}}else{let i=this.get(e);if(i===void 0)throw new Error("illegal args");let s=o.find(l=>l.fi>i.fi);if(s===void 0){let l=o[o.length-1].fi;return ar(l,l+r,r)}else return ar(i.fi,s.fi,r)}}};var Dt=class{unusedFun(t){}runOp(t){let e=[],r=this,o=0,i={};for(;o<t.path.length;){if(e.push(r),r=r===void 0?void 0:r[t.path[o]],r instanceof Fe||r instanceof ge)return null;o+=1}r={...r};for(let[c,p]of Object.entries(t.props)){let a=r[c];i[c]=a,p===void 0?delete r[c]:r[c]=p}for(;o>0;)Object.keys(r).length===0?(r={...e[o-1]},delete r[t.path[o-1]]):r={...e[o-1],[t.path[o-1]]:r},o-=1;let s=Object.setPrototypeOf(r,Dt.prototype),l={...t,props:i};return{data:s,actual:t,reverse:l}}},Fc;(e=>{function n(r,o){return ei(r,o)??r}e.apply=n;function t(r,o){if(o.type===0){let i=0,s=o.path,l=r;for(;i<s.length&&l!==void 0;){if(l=lr.zoomOnce(l,s[i]),l instanceof Fe||l instanceof ge)return;i+=1}if(l===void 0)return o;if(typeof l=="string"||typeof l=="number"||yo(l))return;if(l&&typeof l=="object"){let c={...o.props};for(let p of Object.keys(l))delete c[p];return{...o,props:c}}else return}else if(o.type===1||o.type===4||o.type===7){let i=lr.zoom(r,[...o.path,o.id]);if(i===void 0)return o;if(typeof i=="string"||typeof i=="number"||yo(i))return;if(i&&typeof i=="object"){let s={...o.data,...i};return{...o,data:s}}else return}else return o}e.filterOp=t})(Fc||(Fc={}));function zc(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=ei(o.data,t[i]);e=e||s!==void 0,s===void 0&&(s=o.data);let l=zc(o.children,t);return l!==void 0?e=!0:l=o.children,{...o,id:i,data:s,children:l}});if(e)return r}function Lh(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=ei(o.data,t[i]);return e=e||s!==void 0,s===void 0&&(s=o.data),{...o,id:i,data:s}});if(e)return Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}function ei(n,t){if(t!==void 0){if(t instanceof ge||t instanceof Fe||typeof t=="string"||typeof t=="number"||t===null)return t;if(n instanceof Fe){let e=zc(n,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else{if(n instanceof ge)return Lh(n,t);if(Array.isArray(n)){let e=!1,r=n.map((o,i)=>{let s=ei(o,t[i]);return e=e||s!==void 0,s===void 0&&(s=o),s});return e?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(n&&typeof n=="object"){let e={},r=!1;for(let[o,i]of Object.entries(n)){let s=ei(i,t[o]);r=r||s!==void 0,s===void 0&&(s=i),e[o]=s}return r?(Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e):void 0}else return t??n}}}function Uc(n,t){let e={cur:[],result:[],len:0};return n=ti(n,t,e)??n,[n,e.result]}function ds(n,t){return n===null?null:(n.cur[n.len]=t,n.len+=1,n)}function fs(n){n&&(n.len-=1)}function Mh(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function jc(n,t,e){let r=!1,o=n.map(i=>{let s=i.id,l=t[s];if(l!==void 0&&typeof l=="string"&&(r=!0,s=l,e!==null))throw new Error("not supported");let c=ti(i.data,t,ds(e,s));fs(e),r=r||c!==void 0,c===void 0&&(c=i.data);let p=jc(i.children,t,e);return p!==void 0?r=!0:p=i.children,{...i,id:s,data:c,children:p}});if(r)return o}function Eh(n,t,e){let r=!1,o=n.map(i=>{let s=i.id,l=t[s];if(l!==void 0&&typeof l=="string"&&(r=!0,s=l,e!==null))throw new Error("not supported");let c=ti(i.data,t,ds(e,s));return fs(e),r=r||c!==void 0,c===void 0&&(c=i.data),{...i,id:s,data:c}});if(r)return Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o}function ti(n,t,e){if(n instanceof Fe){let r=jc(n,t,e);return r!==void 0&&Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}else{if(n instanceof ge)return Eh(n,t,e);if(Array.isArray(n)){let r=!1,o=n.map((i,s)=>{let l=ti(i,t,ds(e,s));return fs(e),r=r||l!==void 0,l===void 0&&(l=i),l});return r?(Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o):void 0}else if(n&&typeof n=="object"){let r={},o=!1;for(let[i,s]of Object.entries(n))if(i!=="name"&&i!=="text"){let l=t[i];if(typeof l=="string"){if(e!==null)throw new Error("not supported");o=!0,i=l}let c=ti(s,t,ds(e,i));fs(e),o=o||c!==void 0,c===void 0&&(c=s),r[i]=c}else r[i]=s;return o?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(typeof n=="string"){let r=t[n];if(r!==void 0){if(n.length!==36)throw new Error("for now you should only call this method when the key is a uuid");Mh(e)}return r}else return}}var kc;(t=>{function n(e,r){let o=lr.zoom(r,e.path);if(typeof o=="object"){let i={};for(let s of Object.keys(e.props))i[s]=o[s];return{...e,props:i}}else return{...e,props:{}}}t.replaceProps=n})(kc||(kc={}));var kr;(l=>{function n(c,p){return{...c,path:c.path.slice(p)}}l.drop=n;function t(c,p){return e(c,p)?.data??c}l.applySimple=t;function e(c,p){let a=p.path;for(var u=[];;){let d;if(c instanceof Dt&&p.type===0&&(d=c.runOp({...p,path:a.slice(u.length)}),d===null&&(d=void 0)),u.length===a.length&&(c instanceof Fe||c instanceof ge||c instanceof Ge?d=c.runOp(p):d=zo.runOp(c,p)),d!==void 0)if(d!==null){let h=d.data;for(let g=u.length-1;g>=0;g--){let x=a[g],v=u[g];if(v instanceof Fe){if(typeof x=="number")throw new Error("illegal arg");h=v.modifyById(x,h)}else if(v instanceof ge){if(typeof x=="number")throw new Error("illegal arg");h=v.modifyById(x,h)}else if(v instanceof Ge){if(typeof x=="number")throw new Error("illegal arg");h=v.modifyById(x,h)}else if(v instanceof Dt){let w={...v,[x]:h};h=Object.setPrototypeOf(w,Dt.prototype)}else if(typeof v=="object")if(Array.isArray(v)){if(typeof x=="string"&&(x=parseInt(x),isNaN(x)))throw new Error("Invalid path");let w=h;h=[...v],h[x]=w}else h={...v,[x]:h};else return null}return{data:h,actual:{...d.actual,path:a},reverse:{...d.reverse,path:a}}}else return null;let f=a[u.length],m;if(c instanceof Fe){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else if(c instanceof ge){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else c!==null&&(m=c[f]);if(m!==void 0)u.push(c),c=m;else return null}}l.apply=e;function r(c,p){for(let a=0;a<c.length&&a<p.length;a++)if(c[a]!==p[a])return!0;return!1}l.pathDisjoint=r;function o(c,p){if(c.length!==p.length)return!1;for(let a=0;a<c.length;a++)if(c[a]!==p[a])return!1;return!0}l.pathEq=o;function i(c,p){return r(c.path,p.path)}l.commutative=i;function s(c,p){return c.type===0&&p.type===0&&o(c.path,p.path)?Object.keys(c.props).every(a=>p.props[a]!==void 0):!1}l.subsumed=s})(kr||(kr={}));var Hc;(c=>{function n(){return[]}c.empty=n;function t(p,a){let u=[];for(let d of p){let[f,...m]=d.path;f===a&&u.push({...d,path:m})}return u}c.removePrefix=t;function e(p,a){return p.map(u=>({...u,path:[a,...u.path]}))}c.addPrefix=e;function r(p,a){return[...p,...a]}c.concat=r;function o(p,a){return[...p.filter(d=>!a.some(f=>kr.subsumed(d,f))),...a]}c.compress=o;function i(p,a){return p.every(u=>a.every(d=>kr.commutative(u,d)))}c.commutative=i;function s(p,a){for(let u of a){let d=l(p,u);d!==null&&(p=d.data)}return p}c.applyAll=s;function l(p,a){var u=p;let d=[],f=[];for(let m of a)try{if(m.type===3){let h=lr.zoom(u,[...m.path,m.id]),g=kr.apply(u,{...m,type:2});if(g!==null){u=g.data;let[x,v]=Uc(u,{[m.id]:h});u=x;for(let w of v){let S=w[w.length-1];w.splice(w.length-1,1),d.push({type:0,path:w,props:{[S]:h}}),f.push({type:0,path:w,props:{[S]:m.id}})}f.push(g.reverse),d.push(g.actual)}}else{let h=kr.apply(u,m);h!==null&&(d.push(h.actual),u=h.data,f.push(h.reverse))}}catch(h){if(h instanceof Fo)return null;throw h}return{data:u,actual:d,reverse:f.reverse()}}c.apply=l})(Hc||(Hc={}));var Wc=Symbol(),ri=Symbol(),xo=class{reportOp(t,e,r=[]){let o=this;if(e===null)return;o._current=e.data;let i=r;for(;!(o instanceof hs);){let s=o._path,l=o._current;if(s!==""&&i.splice(0,0,s),o=o._parent,o===null)return;o.update(s,l)}o.push(i,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[ri];r&&r(),delete this._children[t]}}}},tl=class extends xo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){if(Array.isArray(this._current)){if(typeof t=="string"&&(t=parseInt(t),isNaN(t)))throw new Error("Invalid path");this._current=[...this._current],this._current[t]=e}else this._current={...this._current,[t]:e}}runOp(t){this.reportOp(t,zo.runOp(this._current,t),t.path)}},rl=class extends xo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){this._current={...this._current,[t]:e},Object.setPrototypeOf(this._current,Ge.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},qc={get(n,t){if(t===ri)return()=>{n._parent=null};if(t===Wc)return n._current;let{_current:e,_children:r}=n;if(t==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e[t],s=gs(n,t,i);return s!==i?(r===void 0&&(r={},n._children=r),r[t]=s,s):i},has(n,t){return t in n._current},ownKeys(n){return Reflect.ownKeys(n._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(n){return Object.getPrototypeOf(n._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(n,t){let e=n._current,r=Reflect.getOwnPropertyDescriptor(e,t);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:e[t]}}},Bh={...qc,set(n,t,e){let r={type:0,props:{[t]:Tt(e)??e}};return n.deleteChildren(t),n.runOp(r),!0},deleteProperty(n,t){let e={type:0,props:{[t]:void 0}};return n.deleteChildren(t),n.runOp(e),!0}},Dh={...qc,set(n,t,e){return e===void 0?this.deleteProperty(n,t):(n.deleteChildren(t),n.runOp({type:1,id:t,data:e})),!0},deleteProperty(n,t){return n.runOp({type:2,id:t}),!0}},Uo=class extends xo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[ri]=()=>{this._parent=null}}unproxy(){return this._current}update(t,e){this._current=this._current.modifyById(t,e)}runOp(t){this.reportOp(t,this._current.runOp(t))}randomId(){return this._current.randomId()}isDescendantOf(t,e){return this._current.isDescendantOf(t,e)}childrenOf(t){return this._current.childrenOf(t)}traverse(t){return this._current.traverse(t)}get(t){return this._current.get(t)}parent(t){return this._current.parent(t)}traverse(t){this._current.traverse((e,r)=>{t(e,this.data(e))})}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,s=gs(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):i}add(t,e,r,o,i){this.runOp({type:7,parent:t,fi:e,id:r,data:o,children:i})}move(t,e,r){this.runOp({type:9,parent:t,fi:e,id:r})}insertAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}insertBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}moveAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}moveBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}delete(t){this.deleteChildren(t),this.runOp({type:8,id:t})}sortNext(t){return this._current.sortNext(t)}sortPrevious(t){return this._current.sortPrevious(t)}getAllSorted(t){return this._current.getAllSorted(t)}},ms=class extends xo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r,this[ri]=()=>{this._parent=null}}feedOp(t){let{path:e,...r}=t;this.reportOp(r,kr.apply(this._current,t),e)}},jo=class extends xo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[ri]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id,i=this._current[r].fi;t(this.data(this._current[r].id),o,i)}}find(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id;if(t(this.data(o),o))return this.get(o)}}update(t,e){this._current=this._current.modifyById(t,e)}randomId(){return this._current.randomId()}get(t){return{...this._current.get(t),data:this.data(t)}}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,s=gs(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):i}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,e,r){this.runOp({type:4,fi:t,id:e,data:r})}move(t,e){this.runOp({type:6,fi:t,id:e})}insertAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}insertBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}moveAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}moveBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function el(n,t,e){if(n.length>0){let r=n[n.length-1];if(r.type===0&&t.type===0&&lr.equal(r.path,e)){Object.assign(r.props,t.props);return}}n.push({...t,path:e})}var hs=class{constructor(t){this.ts=[],this.actual=[],this.reverse=[],this._current=t}update(t,e){if(t!=="")throw new Error("");this._current=e}push(t,e,r,o){el(this.ts,e,t),el(this.actual,r,t),el(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function gs(n,t,e){return e instanceof Fe?new Uo(n,t,e):e instanceof ge?new jo(n,t,e):e instanceof Dt?new ms(n,t,e):e instanceof Ge?new Proxy(new rl(n,t,e),Dh):e!==null&&typeof e=="object"?yo(e)?e:new Proxy(new tl(n,t,e),Bh):e}function ol(n){let t=new hs(n);return[gs(t,"",n),t]}function nl(n,t){let[e,r]=ol(n);return t(e),r.result()}function Tt(n){return n instanceof Uo||n instanceof jo||n instanceof ms?n._current:n!==null&&typeof n=="object"?n[Wc]:n}var lr;(o=>{function n(i,s){if(s.length===i.length)for(var l=0;l<i.length;){if(i[l]!==s[l])return!1;l+=1}else return!1;return!0}o.equal=n;function t(i,s,l){let c=r(l,i);if(c!==void 0&&typeof c=="object"&&c!==null){let p={...s};return Object.keys(c).forEach(a=>{delete p[a]}),p}else return s}o.removeOverridden=t;function e(i,s){if((i instanceof Fe||i instanceof Uo)&&typeof s=="string")return i.data(s);if((i instanceof ge||i instanceof jo)&&typeof s=="string")return i.data(s);if(typeof s=="number"&&Array.isArray(i))return i[s];if(typeof s=="string"&&typeof i=="object")return i[s]}o.zoomOnce=e;function r(i,s,l=0){for(;l<s.length&&i!==void 0;)i=e(i,s[l]),l+=1;return i}o.zoom=r})(lr||(lr={}));var ys=class{},oi=class extends ys{constructor(e){super();this.id=e}},ni=class extends ys{constructor(e){super();this.data=e}};var sl;try{sl=new TextDecoder}catch{}var ne,Wr,I=0;var eu=[],al=eu,ll=0,At={},Te,Hr,jt=0,cr=0,Gt,Er,vt=[],Oe,$c={useRecords:!1,mapsAsObjects:!0},ii=class{},ul=new ii;ul.name="MessagePack 0xC1";var ko=!1,ur=class{constructor(t){t&&(t.useRecords===!1&&t.mapsAsObjects===void 0&&(t.mapsAsObjects=!0),t.structures?t.structures.sharedLength=t.structures.length:t.getStructures&&((t.structures=[]).uninitialized=!0,t.structures.sharedLength=0)),Object.assign(this,t)}unpack(t,e){if(ne)return iu(()=>(vs(),this?this.unpack(t,e):ur.prototype.unpack.call($c,t,e)));Wr=e>-1?e:t.length,I=0,ll=0,cr=0,Hr=null,al=eu,Gt=null,ne=t;try{Oe=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw ne=null,t instanceof Uint8Array?r:new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof ur){if(At=this,this.structures)return Te=this.structures,xs();(!Te||Te.length>0)&&(Te=[])}else At=$c,(!Te||Te.length>0)&&(Te=[]);return xs()}unpackMultiple(t,e){let r,o=0;try{ko=!0;let i=t.length,s=this?this.unpack(t,i):ws.unpack(t,i);if(e){for(e(s);I<i;)if(o=I,e(xs())===!1)return}else{for(r=[s];I<i;)o=I,r.push(xs());return r}}catch(i){throw i.lastPosition=o,i.values=r,i}finally{ko=!1,vs()}}_mergeStructures(t,e){t=t||[];for(let r=0,o=t.length;r<o;r++){let i=t[r];i&&(i.isShared=!0,r>=32&&(i.highByte=r-32>>5))}t.sharedLength=t.length;for(let r in e||[])if(r>=0){let o=t[r],i=e[r];i&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[r]=o),t[r]=i)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function xs(){try{if(!At.trusted&&!ko){let t=Te.sharedLength||0;t<Te.length&&(Te.length=t)}let n=Ue();if(I==Wr)Te.restoreStructures&&Xc(),Te=null,ne=null,Er&&(Er=null);else if(I>Wr){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!ko)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw Te.restoreStructures&&Xc(),vs(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function Xc(){for(let n in Te.restoreStructures)Te[n]=Te.restoreStructures[n];Te.restoreStructures=null}function Ue(){let n=ne[I++];if(n<160)if(n<128){if(n<64)return n;{let t=Te[n&63]||At.getStructures&&tu()[n&63];return t?(t.read||(t.read=pl(t,n&63)),t.read()):n}}else if(n<144)if(n-=128,At.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[ou()]=Ue();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Ue(),Ue());return t}else{n-=144;let t=new Array(n);for(let e=0;e<n;e++)t[e]=Ue();return t}else if(n<192){let t=n-160;if(cr>=I)return Hr.slice(I-jt,(I+=t)-jt);if(cr==0&&Wr<140){let e=t<16?dl(t):ru(t);if(e!=null)return e}return cl(t)}else{let t;switch(n){case 192:return null;case 193:return Gt?(t=Ue(),t>0?Gt[1].slice(Gt.position1,Gt.position1+=t):Gt[0].slice(Gt.position0,Gt.position0-=t)):ul;case 194:return!1;case 195:return!0;case 196:return il(ne[I++]);case 197:return t=Oe.getUint16(I),I+=2,il(t);case 198:return t=Oe.getUint32(I),I+=4,il(t);case 199:return vo(ne[I++]);case 200:return t=Oe.getUint16(I),I+=2,vo(t);case 201:return t=Oe.getUint32(I),I+=4,vo(t);case 202:if(t=Oe.getFloat32(I),At.useFloat32>2){let e=Ss[(ne[I]&127)<<1|ne[I+1]>>7];return I+=4,(e*t+(t>0?.5:-.5)>>0)/e}return I+=4,t;case 203:return t=Oe.getFloat64(I),I+=8,t;case 204:return ne[I++];case 205:return t=Oe.getUint16(I),I+=2,t;case 206:return t=Oe.getUint32(I),I+=4,t;case 207:return At.int64AsNumber?(t=Oe.getUint32(I)*4294967296,t+=Oe.getUint32(I+4)):t=Oe.getBigUint64(I),I+=8,t;case 208:return Oe.getInt8(I++);case 209:return t=Oe.getInt16(I),I+=2,t;case 210:return t=Oe.getInt32(I),I+=4,t;case 211:return At.int64AsNumber?(t=Oe.getInt32(I)*4294967296,t+=Oe.getUint32(I+4)):t=Oe.getBigInt64(I),I+=8,t;case 212:if(t=ne[I++],t==114)return Jc(ne[I++]&63);{let e=vt[t];if(e)return e.read?(I++,e.read(Ue())):e.noBuffer?(I++,e()):e(ne.subarray(I,++I));throw new Error("Unknown extension "+t)}case 213:return t=ne[I],t==114?(I++,Jc(ne[I++]&63,ne[I++])):vo(2);case 214:return vo(4);case 215:return vo(8);case 216:return vo(16);case 217:return t=ne[I++],cr>=I?Hr.slice(I-jt,(I+=t)-jt):Rh(t);case 218:return t=Oe.getUint16(I),I+=2,cr>=I?Hr.slice(I-jt,(I+=t)-jt):Vh(t);case 219:return t=Oe.getUint32(I),I+=4,cr>=I?Hr.slice(I-jt,(I+=t)-jt):Fh(t);case 220:return t=Oe.getUint16(I),I+=2,Kc(t);case 221:return t=Oe.getUint32(I),I+=4,Kc(t);case 222:return t=Oe.getUint16(I),I+=2,Qc(t);case 223:return t=Oe.getUint32(I),I+=4,Qc(t);default:if(n>=224)return n-256;if(n===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+n)}}}var Gh=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function pl(n,t){function e(){if(e.count++>2){let o=n.read=new Function("r","return function(){return {"+n.map(i=>Gh.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(Ue);return n.highByte===0&&(n.read=Yc(t,n.read)),o()}let r={};for(let o=0,i=n.length;o<i;o++){let s=n[o];r[s]=Ue()}return r}return e.count=0,n.highByte===0?Yc(t,e):e}var Yc=(n,t)=>function(){let e=ne[I++];if(e===0)return t();let r=n<32?-(n+(e<<5)):n+(e<<5),o=Te[r]||tu()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=pl(o,n)),o.read()};function tu(){let n=iu(()=>(ne=null,At.getStructures()));return Te=At._mergeStructures(n,Te)}var cl=bs,Rh=bs,Vh=bs,Fh=bs;function bs(n){let t;if(n<16&&(t=dl(n)))return t;if(n>64&&sl)return sl.decode(ne.subarray(I,I+=n));let e=I+n,r=[];for(t="";I<e;){let o=ne[I++];if((o&128)===0)r.push(o);else if((o&224)===192){let i=ne[I++]&63;r.push((o&31)<<6|i)}else if((o&240)===224){let i=ne[I++]&63,s=ne[I++]&63;r.push((o&31)<<12|i<<6|s)}else if((o&248)===240){let i=ne[I++]&63,s=ne[I++]&63,l=ne[I++]&63,c=(o&7)<<18|i<<12|s<<6|l;c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|c&1023),r.push(c)}else r.push(o);r.length>=4096&&(t+=it.apply(String,r),r.length=0)}return r.length>0&&(t+=it.apply(String,r)),t}function Kc(n){let t=new Array(n);for(let e=0;e<n;e++)t[e]=Ue();return t}function Qc(n){if(At.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[ou()]=Ue();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Ue(),Ue());return t}}var it=String.fromCharCode;function ru(n){let t=I,e=new Array(n);for(let r=0;r<n;r++){let o=ne[I++];if((o&128)>0){I=t;return}e[r]=o}return it.apply(String,e)}function dl(n){if(n<4)if(n<2){if(n===0)return"";{let t=ne[I++];if((t&128)>1){I-=1;return}return it(t)}}else{let t=ne[I++],e=ne[I++];if((t&128)>0||(e&128)>0){I-=2;return}if(n<3)return it(t,e);let r=ne[I++];if((r&128)>0){I-=3;return}return it(t,e,r)}else{let t=ne[I++],e=ne[I++],r=ne[I++],o=ne[I++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){I-=4;return}if(n<6){if(n===4)return it(t,e,r,o);{let i=ne[I++];if((i&128)>0){I-=5;return}return it(t,e,r,o,i)}}else if(n<8){let i=ne[I++],s=ne[I++];if((i&128)>0||(s&128)>0){I-=6;return}if(n<7)return it(t,e,r,o,i,s);let l=ne[I++];if((l&128)>0){I-=7;return}return it(t,e,r,o,i,s,l)}else{let i=ne[I++],s=ne[I++],l=ne[I++],c=ne[I++];if((i&128)>0||(s&128)>0||(l&128)>0||(c&128)>0){I-=8;return}if(n<10){if(n===8)return it(t,e,r,o,i,s,l,c);{let p=ne[I++];if((p&128)>0){I-=9;return}return it(t,e,r,o,i,s,l,c,p)}}else if(n<12){let p=ne[I++],a=ne[I++];if((p&128)>0||(a&128)>0){I-=10;return}if(n<11)return it(t,e,r,o,i,s,l,c,p,a);let u=ne[I++];if((u&128)>0){I-=11;return}return it(t,e,r,o,i,s,l,c,p,a,u)}else{let p=ne[I++],a=ne[I++],u=ne[I++],d=ne[I++];if((p&128)>0||(a&128)>0||(u&128)>0||(d&128)>0){I-=12;return}if(n<14){if(n===12)return it(t,e,r,o,i,s,l,c,p,a,u,d);{let f=ne[I++];if((f&128)>0){I-=13;return}return it(t,e,r,o,i,s,l,c,p,a,u,d,f)}}else{let f=ne[I++],m=ne[I++];if((f&128)>0||(m&128)>0){I-=14;return}if(n<15)return it(t,e,r,o,i,s,l,c,p,a,u,d,f,m);let h=ne[I++];if((h&128)>0){I-=15;return}return it(t,e,r,o,i,s,l,c,p,a,u,d,f,m,h)}}}}}function il(n){return At.copyBuffers?Uint8Array.prototype.slice.call(ne,I,I+=n):ne.subarray(I,I+=n)}function vo(n){let t=ne[I++];if(vt[t])return vt[t](ne.subarray(I,I+=n));throw new Error("Unknown extension type "+t)}var Zc=new Array(4096);function ou(){let n=ne[I++];if(n>=160&&n<192){if(n=n-160,cr>=I)return Hr.slice(I-jt,(I+=n)-jt);if(!(cr==0&&Wr<180))return cl(n)}else return I--,Ue();let t=(n<<5^(n>1?Oe.getUint16(I):n>0?ne[I]:0))&4095,e=Zc[t],r=I,o=I+n-3,i,s=0;if(e&&e.bytes==n){for(;r<o;){if(i=Oe.getUint32(r),i!=e[s++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(i=ne[r++],i!=e[s++]){r=1879048192;break}if(r===o)return I=r,e.string;o-=3,r=I}for(e=[],Zc[t]=e,e.bytes=n;r<o;)i=Oe.getUint32(r),e.push(i),r+=4;for(o+=3;r<o;)i=ne[r++],e.push(i);let l=n<16?dl(n):ru(n);return l!=null?e.string=l:e.string=cl(n)}var Jc=(n,t)=>{var e=Ue();let r=n;t!==void 0&&(n=n<32?-((t<<5)+n):(t<<5)+n,e.highByte=t);let o=Te[n];return o&&o.isShared&&((Te.restoreStructures||(Te.restoreStructures=[]))[n]=o),Te[n]=e,e.read=pl(e,r),e.read()},nu=typeof self=="object"?self:global;vt[0]=()=>{};vt[0].noBuffer=!0;vt[101]=()=>{let n=Ue();return(nu[n[0]]||Error)(n[1])};vt[105]=n=>{let t=Oe.getUint32(I-4);Er||(Er=new Map);let e=ne[I],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};Er.set(t,o);let i=Ue();return o.used?Object.assign(r,i):(o.target=i,i)};vt[112]=n=>{let t=Oe.getUint32(I-4),e=Er.get(t);return e.used=!0,e.target};vt[115]=()=>new Set(Ue());var fl=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");vt[116]=n=>{let t=n[0],e=fl[t];if(!e)throw new Error("Could not find typed array for code "+t);return new nu[e](Uint8Array.prototype.slice.call(n,1).buffer)};vt[120]=()=>{let n=Ue();return new RegExp(n[0],n[1])};vt[98]=n=>{let t=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],e=I;I+=t-4,Gt=[Ue(),Ue()],Gt.position0=0,Gt.position1=0;let r=I;I=e;try{return Ue()}finally{I=r}};vt[255]=n=>n.length==4?new Date((n[0]*16777216+(n[1]<<16)+(n[2]<<8)+n[3])*1e3):n.length==8?new Date(((n[0]<<22)+(n[1]<<14)+(n[2]<<6)+(n[3]>>2))/1e6+((n[3]&3)*4294967296+n[4]*16777216+(n[5]<<16)+(n[6]<<8)+n[7])*1e3):n.length==12?new Date(((n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3])/1e6+((n[4]&128?-281474976710656:0)+n[6]*1099511627776+n[7]*4294967296+n[8]*16777216+(n[9]<<16)+(n[10]<<8)+n[11])*1e3):new Date("invalid");function iu(n){let t=Wr,e=I,r=ll,o=jt,i=cr,s=Hr,l=al,c=Er,p=Gt,a=new Uint8Array(ne.slice(0,Wr)),u=Te,d=Te.slice(0,Te.length),f=At,m=ko,h=n();return Wr=t,I=e,ll=r,jt=o,cr=i,Hr=s,al=l,Er=c,Gt=p,ne=a,ko=m,Te=u,Te.splice(0,Te.length,...d),At=f,Oe=new DataView(ne.buffer,ne.byteOffset,ne.byteLength),h}function vs(){ne=null,Er=null,Te=null}function su(n){n.unpack?vt[n.type]=n.unpack:vt[n.type]=n}var Ss=new Array(147);for(let n=0;n<256;n++)Ss[n]=+("1e"+Math.floor(45.15-n*.30103));var ws=new ur({useRecords:!1}),zh=ws.unpack,Uh=ws.unpackMultiple,jh=ws.unpack,_s={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},kh=new Float32Array(1),C1=new Uint8Array(kh.buffer,0,4);var Ts;try{Ts=new TextEncoder}catch{}var As,hl,Ns=typeof Buffer<"u",ml=Ns?Buffer.allocUnsafeSlow:Uint8Array,uu=Ns?Buffer:Uint8Array,au=Ns?4294967296:2144337920,G,qe,C=0,pr,dr=null,Hh=/[\u0080-\uFFFF]/,si=Symbol("record-id"),bo=class extends ur{constructor(t){super(t),this.offset=0;let e,r,o,i,s,l,c=0,p=uu.prototype.utf8Write?function(y,P,A){return G.utf8Write(y,P,A)}:Ts&&Ts.encodeInto?function(y,P){return Ts.encodeInto(y,G.subarray(P)).written}:!1,a=this;t||(t={});let u=t&&t.sequential,d=t.structures||t.saveStructures,f=t.maxSharedStructures;if(f==null&&(f=d?32:0),f>8160)throw new Error("Maximum maxSharedStructure is 8160");let m=t.maxOwnStructures;m==null&&(m=d?32:64),u&&!t.saveStructures&&(this.structures=[]);let h=f>32||m+f>64,g=f+64,x=f+m+64;if(x>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let v=[],w=0,S=0;this.pack=this.encode=function(y,P){if(G||(G=new ml(8192),qe=new DataView(G.buffer,0,8192),C=0),pr=G.length-10,pr-C<2048?(G=new ml(G.length),qe=new DataView(G.buffer,0,G.length),pr=G.length-10,C=0):C=C+7&2147483640,r=C,l=a.structuredClone?new Map:null,a.bundleStrings?(dr=["",""],G[C++]=214,G[C++]=98,dr.position=C-r,C+=4):dr=null,o=a.structures,o){o.uninitialized&&(o=a._mergeStructures(a.getStructures()));let A=o.sharedLength||0;if(A>f)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+o.sharedLength);if(!o.transitions){o.transitions=Object.create(null);for(let O=0;O<A;O++){let _=o[O];if(!_)continue;let L,D=o.transitions;for(let U=0,re=_.length;U<re;U++){let Q=_[U];L=D[Q],L||(L=D[Q]=Object.create(null)),D=L}D[si]=O+64}c=A}u||(o.nextId=A+64)}i&&(i=!1),s=o||[];try{if(b(y),dr){qe.setUint32(dr.position+r,C-dr.position-r);let A=dr;dr=null,b(A[0]),b(A[1])}if(a.offset=C,l&&l.idsToInsert){C+=l.idsToInsert.length*6,C>pr&&T(C),a.offset=C;let A=qh(G.subarray(r,C),l.idsToInsert);return l=null,A}return P&du?(G.start=r,G.end=C,G):G.subarray(r,C)}finally{if(o){if(S<10&&S++,w>1e4)o.transitions=null,S=0,w=0,v.length>0&&(v=[]);else if(v.length>0&&!u){for(let A=0,O=v.length;A<O;A++)v[A][si]=0;v=[]}if(i&&a.saveStructures){let A=o.sharedLength||f;o.length>A&&(o=o.slice(0,A));let O=G.subarray(r,C);return a.saveStructures(o,c)===!1?(a._mergeStructures(a.getStructures()),a.pack(y)):(c=A,O)}}P&Jh&&(C=r)}};let b=y=>{C>pr&&(G=T(C));var P=typeof y,A;if(P==="string"){let O=y.length;if(dr&&O>=8&&O<4096){let D=Hh.test(y);dr[D?0:1]+=y,G[C++]=193,b(D?-O:O);return}let _;O<32?_=1:O<256?_=2:O<65536?_=3:_=5;let L=O*3;if(C+L>pr&&(G=T(C+L)),O<64||!p){let D,U,re,Q=C+_;for(D=0;D<O;D++)U=y.charCodeAt(D),U<128?G[Q++]=U:U<2048?(G[Q++]=U>>6|192,G[Q++]=U&63|128):(U&64512)===55296&&((re=y.charCodeAt(D+1))&64512)===56320?(U=65536+((U&1023)<<10)+(re&1023),D++,G[Q++]=U>>18|240,G[Q++]=U>>12&63|128,G[Q++]=U>>6&63|128,G[Q++]=U&63|128):(G[Q++]=U>>12|224,G[Q++]=U>>6&63|128,G[Q++]=U&63|128);A=Q-C-_}else A=p(y,C+_,L);A<32?G[C++]=160|A:A<256?(_<2&&G.copyWithin(C+2,C+1,C+1+A),G[C++]=217,G[C++]=A):A<65536?(_<3&&G.copyWithin(C+3,C+2,C+2+A),G[C++]=218,G[C++]=A>>8,G[C++]=A&255):(_<5&&G.copyWithin(C+5,C+3,C+3+A),G[C++]=219,qe.setUint32(C,A),C+=4),C+=A}else if(P==="number")if(y>>>0===y)y<64?G[C++]=y:y<256?(G[C++]=204,G[C++]=y):y<65536?(G[C++]=205,G[C++]=y>>8,G[C++]=y&255):(G[C++]=206,qe.setUint32(C,y),C+=4);else if(y>>0===y)y>=-32?G[C++]=256+y:y>=-128?(G[C++]=208,G[C++]=y+256):y>=-32768?(G[C++]=209,qe.setInt16(C,y),C+=2):(G[C++]=210,qe.setInt32(C,y),C+=4);else{let O;if((O=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){G[C++]=202,qe.setFloat32(C,y);let _;if(O<4||(_=y*Ss[(G[C]&127)<<1|G[C+1]>>7])>>0===_){C+=4;return}else C--}G[C++]=203,qe.setFloat64(C,y),C+=8}else if(P==="object")if(!y)G[C++]=192;else{if(l){let _=l.get(y);if(_){if(!_.id){let L=l.idsToInsert||(l.idsToInsert=[]);_.id=L.push(_)}G[C++]=214,G[C++]=112,qe.setUint32(C,_.id),C+=4;return}else l.set(y,{offset:C-r})}let O=y.constructor;if(O===Object)N(y,!0);else if(O===Array){A=y.length,A<16?G[C++]=144|A:A<65536?(G[C++]=220,G[C++]=A>>8,G[C++]=A&255):(G[C++]=221,qe.setUint32(C,A),C+=4);for(let _=0;_<A;_++)b(y[_])}else if(O===Map){A=y.size,A<16?G[C++]=128|A:A<65536?(G[C++]=222,G[C++]=A>>8,G[C++]=A&255):(G[C++]=223,qe.setUint32(C,A),C+=4);for(let[_,L]of y)b(_),b(L)}else{for(let _=0,L=As.length;_<L;_++){let D=hl[_];if(y instanceof D){let U=As[_];if(U.write){U.type&&(G[C++]=212,G[C++]=U.type,G[C++]=0),b(U.write.call(this,y));return}let re=G,Q=qe,ce=C;G=null;let H;try{H=U.pack.call(this,y,W=>(G=re,re=null,C+=W,C>pr&&T(C),{target:G,targetView:qe,position:C-W}),b)}finally{re&&(G=re,qe=Q,C=ce,pr=G.length-10)}H&&(H.length+C>pr&&T(H.length+C),C=Wh(H,G,C,U.type));return}}N(y,!y.hasOwnProperty)}}else if(P==="boolean")G[C++]=y?195:194;else if(P==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))G[C++]=211,qe.setBigInt64(C,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)G[C++]=207,qe.setBigUint64(C,y);else if(this.largeBigIntToFloat)G[C++]=203,qe.setFloat64(C,Number(y));else throw new RangeError(y+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");C+=8}else if(P==="undefined")this.encodeUndefinedAsNil?G[C++]=192:(G[C++]=212,G[C++]=0,G[C++]=0);else if(P==="function")b(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+P)},N=this.useRecords===!1?this.variableMapSize?y=>{let P=Object.keys(y),A=P.length;A<16?G[C++]=128|A:A<65536?(G[C++]=222,G[C++]=A>>8,G[C++]=A&255):(G[C++]=223,qe.setUint32(C,A),C+=4);let O;for(let _=0;_<A;_++)b(O=P[_]),b(y[O])}:(y,P)=>{G[C++]=222;let A=C-r;C+=2;let O=0;for(let _ in y)(P||y.hasOwnProperty(_))&&(b(_),b(y[_]),O++);G[A+++r]=O>>8,G[A+r]=O&255}:y=>{let P=Object.keys(y),A,O=s.transitions||(s.transitions=Object.create(null)),_=0;for(let D=0,U=P.length;D<U;D++){let re=P[D];A=O[re],A||(A=O[re]=Object.create(null),_++),O=A}let L=O[si];if(L)L>=96&&h?(G[C++]=((L-=96)&31)+96,G[C++]=L>>5):G[C++]=L;else{L=s.nextId,L||(L=64),L<g&&this.shouldShareStructure&&!this.shouldShareStructure(P)?(L=s.nextOwnId,L<x||(L=g),s.nextOwnId=L+1):(L>=x&&(L=g),s.nextId=L+1);let D=P.highByte=L>=96&&h?L-96>>5:-1;O[si]=L,s[L-64]=P,L<g?(P.isShared=!0,s.sharedLength=L-63,i=!0,D>=0?(G[C++]=(L&31)+96,G[C++]=D):G[C++]=L):(D>=0?(G[C++]=213,G[C++]=114,G[C++]=(L&31)+96,G[C++]=D):(G[C++]=212,G[C++]=114,G[C++]=L),_&&(w+=S*_),v.length>=m&&(v.shift()[si]=0),v.push(O),b(P))}for(let D=0,U=P.length;D<U;D++)b(y[P[D]])},T=y=>{let P;if(y>16777216){if(y-r>au)throw new Error("Packed buffer would be larger than maximum buffer size");P=Math.min(au,Math.round(Math.max((y-r)*(y>67108864?1.25:2),4194304)/4096)*4096)}else P=(Math.max(y-r<<2,G.length-1)>>12)+1<<12;let A=new ml(P);return qe=new DataView(A.buffer,0,P),G.copy?G.copy(A,0,r,y):A.set(G.slice(r,y)),C-=r,r=0,pr=A.length-10,G=A}}useBuffer(t){G=t,qe=new DataView(G.buffer,G.byteOffset,G.byteLength),C=0}};hl=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,ii];As=[{pack(n,t,e){let r=n.getTime()/1e3;if((this.useTimestamp32||n.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:o,targetView:i,position:s}=t(6);o[s++]=214,o[s++]=255,i.setUint32(s,r)}else if(r>0&&r<17179869184){let{target:o,targetView:i,position:s}=t(10);o[s++]=215,o[s++]=255,i.setUint32(s,n.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),i.setUint32(s+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:i,position:s}=t(3);o[s++]=212,o[s++]=255,o[s++]=255}else{let{target:o,targetView:i,position:s}=t(15);o[s++]=199,o[s++]=12,o[s++]=255,i.setUint32(s,n.getMilliseconds()*1e6),i.setBigInt64(s+4,BigInt(Math.floor(r)))}}},{pack(n,t,e){let r=Array.from(n),{target:o,position:i}=t(this.structuredClone?3:0);this.structuredClone&&(o[i++]=212,o[i++]=115,o[i++]=0),e(r)}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=101,r[o++]=0),e([n.name,n.message])}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=120,r[o++]=0),e([n.source,n.flags])}},{pack(n,t){this.structuredClone?lu(n,16,t):cu(Ns?Buffer.from(n):new Uint8Array(n),t)}},{pack(n,t){let e=n.constructor;e!==uu&&this.structuredClone?lu(n,fl.indexOf(e.name),t):cu(n,t)}},{pack(n,t){let{target:e,position:r}=t(1);e[r]=193}}];function lu(n,t,e,r){let o=n.byteLength;if(o+1<256){var{target:i,position:s}=e(4+o);i[s++]=199,i[s++]=o+1}else if(o+1<65536){var{target:i,position:s}=e(5+o);i[s++]=200,i[s++]=o+1>>8,i[s++]=o+1&255}else{var{target:i,position:s,targetView:l}=e(7+o);i[s++]=201,l.setUint32(s,o+1),s+=4}i[s++]=116,i[s++]=t,i.set(new Uint8Array(n.buffer,n.byteOffset,n.byteLength),s)}function cu(n,t){let e=n.byteLength;var r,o;if(e<256){var{target:r,position:o}=t(e+2);r[o++]=196,r[o++]=e}else if(e<65536){var{target:r,position:o}=t(e+3);r[o++]=197,r[o++]=e>>8,r[o++]=e&255}else{var{target:r,position:o,targetView:i}=t(e+5);r[o++]=198,i.setUint32(o,e),o+=4}r.set(n,o)}function Wh(n,t,e,r){let o=n.length;switch(o){case 1:t[e++]=212;break;case 2:t[e++]=213;break;case 4:t[e++]=214;break;case 8:t[e++]=215;break;case 16:t[e++]=216;break;default:o<256?(t[e++]=199,t[e++]=o):o<65536?(t[e++]=200,t[e++]=o>>8,t[e++]=o&255):(t[e++]=201,t[e++]=o>>24,t[e++]=o>>16&255,t[e++]=o>>8&255,t[e++]=o&255)}return t[e++]=r,t.set(n,e),e+=o,e}function qh(n,t){let e,r=t.length*6,o=n.length-r;for(t.sort((i,s)=>i.offset>s.offset?1:-1);e=t.pop();){let i=e.offset,s=e.id;n.copyWithin(i+r,i,o),r-=6;let l=i+r;n[l++]=214,n[l++]=105,n[l++]=s>>24,n[l++]=s>>16&255,n[l++]=s>>8&255,n[l++]=s&255,o=i}return n}function qr(n){if(n.Class){if(!n.pack&&!n.write)throw new Error("Extension has no pack or write function");if(n.pack&&!n.type)throw new Error("Extension has no type (numeric code to identify the extension)");hl.unshift(n.Class),As.unshift(n)}su(n)}var pu=new bo({useRecords:!1}),$h=pu.pack,Xh=pu.pack;var{NEVER:Yh,ALWAYS:Kh,DECIMAL_ROUND:Qh,DECIMAL_FIT:Zh}=_s,du=512,Jh=1024;var fu=new bo({structuredClone:!0});qr({Class:Ge.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Ge.prototype),n}});qr({Class:ge.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,ge.prototype),n}});qr({Class:Fe.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,Fe.prototype),n}});qr({Class:oi.prototype.constructor,type:4,write(n){return n.id},read(n){return new oi(n)}});qr({Class:ni.prototype.constructor,type:5,write(n){return n.data},read(n){return new ni(n)}});qr({Class:Dt.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Dt.prototype),n}});function eg(n){var t=0;if(n.length===0)return t;for(let e=0;e<n.length;e++){let r=n[e];t=(t<<5)-t+r,t=t&t}return t}function gl(n){if(yo(n))return n;if(Array.isArray(n))return n.map(gl);if(typeof n=="object"&&n!==null){let t={};for(let e of Object.keys(n).sort())t[e]=gl(n[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else return n}var Is;(r=>{function n(o){return fu.pack(o)}r.serialize=n;function t(o){return fu.unpack(o)}r.deserialize=t;function e(o){return eg(n(gl(o))).toString()}r.checksum=e})(Is||(Is={}));var mu;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i]}e.lerp=t})(mu||(mu={}));var Ho;(o=>{function n(i,s){return i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]}o.isEqual=n;function t(i,s){return[i[0]+s[0],i[1]+s[1],i[2]+s[2]]}o.add=t;function e(i,s){return[i[0]-s[0],i[1]-s[1],i[2]-s[2]]}o.sub=e;function r(i,s,l){return[i[0]+(s[0]-i[0])*l,i[1]+(s[1]-i[1])*l,i[2]+(s[2]-i[2])*l]}o.lerp=r})(Ho||(Ho={}));var hu;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]&&r[2]===o[2]&&r[3]===o[3]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i,r[2]+(o[2]-r[2])*i,r[3]+(o[3]-r[3])*i]}e.lerp=t})(hu||(hu={}));var $r;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(i,s){for(let l=0;l<16;l++)if(i[l]!==s[l])return!1;return!0}o.isEqual=t;function e(i){return i??o.identity}o.simplify=e;function r(i,s){let l=s.slice(0);for(var c=0,p=s.length;c<p;c+=3){let a=i[3]*s[c]+i[7]*s[c+1]+i[11]*s[c+2]+i[15];l[c]=(i[0]*s[c]+i[4]*s[c+1]+i[8]*s[c+2]+i[12])/a,l[c+1]=(i[1]*s[c]+i[5]*s[c+1]+i[9]*s[c+2]+i[13])/a,l[c+2]=(i[2]*s[c]+i[6]*s[c+1]+i[10]*s[c+2]+i[14])/a}return l}o.applyMatrix4=r})($r||($r={}));var Nt;(c=>{c.white={r:1,g:1,b:1},c.red={r:1,g:0,b:0},c.black={r:0,g:0,b:0};function r(p){return{r:Math.round(p.r*255),g:Math.round(p.g*255),b:Math.round(p.b*255),a:1}}c.toRgb255a1=r;function o(p){return{r:p.r,g:p.g,b:p.b}}c.clone=o;function i(p){return p=Math.floor(p),{r:(p>>16&255)/255,g:(p>>8&255)/255,b:(p&255)/255}}c.fromHex=i;function s(p,a){return p.r===a.r&&p.g===a.g&&p.b===a.b}c.equals=s;function l(p,a,u){return{r:p.r+(a.r-p.r)*u,g:p.g+(a.g-p.g)*u,b:p.b+(a.b-p.b)*u}}c.lerp=l})(Nt||(Nt={}));var Yt;(l=>{l.white={...Nt.white,a:1},l.transparent={...Nt.white,a:0};function e(c){return{r:c[0],g:c[1],b:c[2],a:c[3]}}l.from0to1=e;function r(c,p){return{...Nt.fromHex(c),a:p}}l.fromHexAndA=r;function o(c){return{r:Math.round(c.r*255),g:Math.round(c.g*255),b:Math.round(c.b*255),a:c.a}}l.toRgb255a1=o;function i(c,p){return Nt.equals(c,p)&&c.a===p.a}l.equals=i;function s(c,p,a){return{r:c.r+(p.r-c.r)*a,g:c.g+(p.g-c.g)*a,b:c.b+(p.b-c.b)*a,a:c.a+(p.a-c.a)*a}}l.lerp=s})(Yt||(Yt={}));var Ps;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Ps||(Ps={}));var gu;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(gu||(gu={}));var yu;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(yu||(yu={}));var Wo;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(Wo||(Wo={}));var So;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:o.DefaultUp,isUpVectorFlipped:!1,targetOffset:o.DefaultTargetOffset};function r(i){return i.type==="PerspectiveCamera"?i.perspective.zoom:i.orthographic.zoom}o.getZoom=r})(So||(So={}));var Os;(t=>{function n(e,r=.1){return{type:"radial",hideBase:!1,count:3,radial:{radius:Math.max(e[0],e[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},linear:{scale:[1,1,1],rotation:[0,0,0],position:[e[0]+e[0]*r,0,0]},grid:{count:[2,2,2],size:e.map(o=>o*(1+r)),useCenter:!0}}}t.defaultData=n})(Os||(Os={}));var Cs;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Cs||(Cs={}));var Ls;(e=>{function n(r){return t(r)}e.defaultData=n;function t(r){if(r==="PointLight")return{type:r,color:Yt.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(r==="SpotLight")return{type:r,color:Yt.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(r==="DirectionalLight")return{type:r,color:Yt.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(Ls||(Ls={}));var yl;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(yl||(yl={}));var xl;(e=>{e.defaultData={flatShading:!1,wireframe:!1,side:0};function t(r,o){return r.flatShading===o.flatShading&&r.side===o.side&&r.wireframe===o.wireframe}e.equals=t})(xl||(xl={}));var Ms;(t=>t.defaultData={...xl.defaultData,...yl.defaultData,cloner:null,booleanExclude:null})(Ms||(Ms={}));var xu=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],vu=["wrapping","image"],Xr;(r=>{function n(o,i){return o==="light"&&i?t(i):e(o)}r.defaultData=n;function t(o){switch(o){case"basic":return{type:"light",category:"basic",alpha:1,visible:!0,mode:0};case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess: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:Nt.fromHex(4737101)};case"depth":return{type:"depth",alpha:1,visible:!0,mode:0,gradientType:1,smooth:!1,isVector:!0,isWorldSpace:!1,origin:[0,0,0],direction:[1,0,0],colors:[[1,1,1,1],[0,0,0,1]],steps:[0,1],near:50,far:200};case"normal":return{type:"normal",alpha:1,visible:!0,mode:0,cnormal:[1,1,1]};case"gradient":return{type:"gradient",alpha:1,visible:!0,mode:0,gradientType:0,smooth:!1,colors:[[0,0,0,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,angle:0,offset:[0,0],morph:[0,0]};case"noise":return{type:"noise",alpha:1,visible:!0,mode:0,size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...Nt.fromHex(6710886),a:1},colorB:{...Nt.fromHex(6710886),a:1},colorC:{...Nt.fromHex(16777215),a:1},colorD:{...Nt.fromHex(16777215),a:1},distortion:[1,1],fA:[1.7,9.2],fB:[8.3,2.8]};case"fresnel":return{type:"fresnel",alpha:1,visible:!0,mode:0,color:Yt.fromHexAndA(16777215,1),bias:.1,scale:1,intensity:2,factor:1};case"rainbow":return{type:"rainbow",alpha:1,visible:!0,mode:0,filmThickness:30,movement:0,wavelengths:[0,0,0],noiseStrength:0,noiseScale:1,offset:[0,0,0]};case"toon":return{type:"toon",alpha:1,visible:!0,mode:0,positioning:2,colors:[[0,0,0,1],[.5,.5,.5,1],[.5,.5,.5,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,.475,.525,1,1,1,1,1,1,1],num:4,source:[0,1e3,0],isWorldSpace:!0,noiseStrength:0,noiseScale:1,shadowColor:Yt.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:Yt.fromHexAndA(0,1),contourColor:Yt.fromHexAndA(0,1),outlineWidth:2,contourWidth:5,outlineThreshold:.4,contourThreshold:0,outlineSmoothing:0,contourFrequency:10,contourDirection:[0,1,0],positionalLines:!1,compensation:!0};case"matcap":return{type:"matcap",alpha:1,visible:!0,mode:0,texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0]}};case"transmission":return{type:"transmission",alpha:1,visible:!0,mode:0,thickness:10,ior:1.5,roughness:1};case"displace":return{type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,visible:!0}}}})(Xr||(Xr={}));var Rt;(l=>{function n(c){return!c.layers.some(a=>{if(a.data.type==="texture"&&a.data.projection!==0||a.data.type==="depth"&&!a.data.isWorldSpace||a.data.type==="noise"||a.data.type==="displace")return!0})&&!e(c)}l.isMergable=n;function t(c){let p="";return c.layers.forEach(a=>{Object.entries(a.data).forEach(([u,d])=>{p+=`${u}${d}`,Array.isArray(d)?d.forEach(f=>p+=`${f}`):typeof d=="object"?Object.values(d).forEach(f=>{typeof f=="number"?p+=`${f.toFixed(4)}`:p+=`${f}`}):p+=`${d}`})}),p}l.getHash=t;function e(c){let p=0;for(let a of c.layers)"alpha"in a.data&&a.data.type!=="light"&&a.data.type!=="fresnel"&&(p+=(1-p)*a.data.alpha);return p<1}l.isTransparent=e;function r(){return{layers:new ge}}l.defaultEmptyData=r;function o(c="layer1",p="layer2"){return i("phong",c,p)}l.defaultData=o;function i(c,p="layer1",a="layer2"){let u=new ge;return u.push({fi:0,data:Xr.defaultData("light",c),id:p}),u.push({fi:1,data:Xr.defaultData("color"),id:a}),{layers:u}}l.defaultTwoLayerData=i;function s(c,p="basic",a="layer1",u="layer2"){let d=Xr.defaultData("texture");Object.assign(d.texture,{image:c});let f=new ge;return f.push({fi:0,data:d,id:a}),f.push({fi:1,data:Xr.defaultData("light",p),id:u}),{layers:f}}l.defaultTwoLayerTextureData=s})(Rt||(Rt={}));var qo;(t=>{function n(){return{points:new ge,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=n})(qo||(qo={}));var Es;(t=>{function n(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=n})(Es||(Es={}));var Yr;(t=>{function n(e){if(e==="RectangleGeometry")return{width:320,height:320,type:e,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="VectorGeometry")return{width:1,height:1,type:e,subdivisions:12,shape:qo.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="BooleanGeometry")return{type:e,operation:2,width:0,height:0,depth:0,phongAngle:35};if(e==="TextGeometry")return{type:e,width:100,height:100,depth:0,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.2,letterSpacing:0,text:"",textTransform:1,font:"Roboto_regular",extrudeBevelSize:0,extrudeBevelSegments:1};throw new Error("not implemented")}t.defaultData=n})(Yr||(Yr={}));var tg=typeof global=="object"&&global&&global.Object===Object&&global,Bs=tg;var rg=typeof self=="object"&&self&&self.Object===Object&&self,og=Bs||rg||Function("return this")(),Ye=og;var ng=Ye.Symbol,bt=ng;var bu=Object.prototype,ig=bu.hasOwnProperty,sg=bu.toString,ai=bt?bt.toStringTag:void 0;function ag(n){var t=ig.call(n,ai),e=n[ai];try{n[ai]=void 0;var r=!0}catch{}var o=sg.call(n);return r&&(t?n[ai]=e:delete n[ai]),o}var Su=ag;var lg=Object.prototype,cg=lg.toString;function ug(n){return cg.call(n)}var wu=ug;var pg="[object Null]",dg="[object Undefined]",_u=bt?bt.toStringTag:void 0;function fg(n){return n==null?n===void 0?dg:pg:_u&&_u in Object(n)?Su(n):wu(n)}var Vt=fg;function mg(n){return n!=null&&typeof n=="object"}var ht=mg;var hg="[object Symbol]";function gg(n){return typeof n=="symbol"||ht(n)&&Vt(n)==hg}var $o=gg;function yg(n,t){for(var e=-1,r=n==null?0:n.length,o=Array(r);++e<r;)o[e]=t(n[e],e,n);return o}var Ds=yg;var xg=Array.isArray,je=xg;var vg=1/0,Tu=bt?bt.prototype:void 0,Au=Tu?Tu.toString:void 0;function Nu(n){if(typeof n=="string")return n;if(je(n))return Ds(n,Nu)+"";if($o(n))return Au?Au.call(n):"";var t=n+"";return t=="0"&&1/n==-vg?"-0":t}var Iu=Nu;function bg(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}var Qe=bg;function Sg(n){return n}var Gs=Sg;var wg="[object AsyncFunction]",_g="[object Function]",Tg="[object GeneratorFunction]",Ag="[object Proxy]";function Ng(n){if(!Qe(n))return!1;var t=Vt(n);return t==_g||t==Tg||t==wg||t==Ag}var Xo=Ng;var Ig=Ye["__core-js_shared__"],Rs=Ig;var Pu=function(){var n=/[^.]+$/.exec(Rs&&Rs.keys&&Rs.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function Pg(n){return!!Pu&&Pu in n}var Ou=Pg;var Og=Function.prototype,Cg=Og.toString;function Lg(n){if(n!=null){try{return Cg.call(n)}catch{}try{return n+""}catch{}}return""}var Br=Lg;var Mg=/[\\^$.*+?()[\]{}|]/g,Eg=/^\[object .+?Constructor\]$/,Bg=Function.prototype,Dg=Object.prototype,Gg=Bg.toString,Rg=Dg.hasOwnProperty,Vg=RegExp("^"+Gg.call(Rg).replace(Mg,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Fg(n){if(!Qe(n)||Ou(n))return!1;var t=Xo(n)?Vg:Eg;return t.test(Br(n))}var Cu=Fg;function zg(n,t){return n?.[t]}var Lu=zg;function Ug(n,t){var e=Lu(n,t);return Cu(e)?e:void 0}var It=Ug;var jg=It(Ye,"WeakMap"),Vs=jg;var Mu=Object.create,kg=function(){function n(){}return function(t){if(!Qe(t))return{};if(Mu)return Mu(t);n.prototype=t;var e=new n;return n.prototype=void 0,e}}(),Eu=kg;function Hg(n,t,e){switch(e.length){case 0:return n.call(t);case 1:return n.call(t,e[0]);case 2:return n.call(t,e[0],e[1]);case 3:return n.call(t,e[0],e[1],e[2])}return n.apply(t,e)}var Bu=Hg;function Wg(n,t){var e=-1,r=n.length;for(t||(t=Array(r));++e<r;)t[e]=n[e];return t}var Fs=Wg;var qg=800,$g=16,Xg=Date.now;function Yg(n){var t=0,e=0;return function(){var r=Xg(),o=$g-(r-e);if(e=r,o>0){if(++t>=qg)return arguments[0]}else t=0;return n.apply(void 0,arguments)}}var Du=Yg;function Kg(n){return function(){return n}}var Gu=Kg;var Qg=function(){try{var n=It(Object,"defineProperty");return n({},"",{}),n}catch{}}(),Yo=Qg;var Zg=Yo?function(n,t){return Yo(n,"toString",{configurable:!0,enumerable:!1,value:Gu(t),writable:!0})}:Gs,Ru=Zg;var Jg=Du(Ru),zs=Jg;function ey(n,t){for(var e=-1,r=n==null?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}var Vu=ey;var ty=9007199254740991,ry=/^(?:0|[1-9]\d*)$/;function oy(n,t){var e=typeof n;return t=t??ty,!!t&&(e=="number"||e!="symbol"&&ry.test(n))&&n>-1&&n%1==0&&n<t}var Kr=oy;function ny(n,t,e){t=="__proto__"&&Yo?Yo(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}var Ko=ny;function iy(n,t){return n===t||n!==n&&t!==t}var Qr=iy;var sy=Object.prototype,ay=sy.hasOwnProperty;function ly(n,t,e){var r=n[t];(!(ay.call(n,t)&&Qr(r,e))||e===void 0&&!(t in n))&&Ko(n,t,e)}var Qo=ly;function cy(n,t,e,r){var o=!e;e||(e={});for(var i=-1,s=t.length;++i<s;){var l=t[i],c=r?r(e[l],n[l],l,e,n):void 0;c===void 0&&(c=n[l]),o?Ko(e,l,c):Qo(e,l,c)}return e}var kt=cy;var Fu=Math.max;function uy(n,t,e){return t=Fu(t===void 0?n.length-1:t,0),function(){for(var r=arguments,o=-1,i=Fu(r.length-t,0),s=Array(i);++o<i;)s[o]=r[t+o];o=-1;for(var l=Array(t+1);++o<t;)l[o]=r[o];return l[t]=e(s),Bu(n,this,l)}}var Us=uy;function py(n,t){return zs(Us(n,t,Gs),n+"")}var zu=py;var dy=9007199254740991;function fy(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=dy}var Zo=fy;function my(n){return n!=null&&Zo(n.length)&&!Xo(n)}var Zr=my;function hy(n,t,e){if(!Qe(e))return!1;var r=typeof t;return(r=="number"?Zr(e)&&Kr(t,e.length):r=="string"&&t in e)?Qr(e[t],n):!1}var Uu=hy;function gy(n){return zu(function(t,e){var r=-1,o=e.length,i=o>1?e[o-1]:void 0,s=o>2?e[2]:void 0;for(i=n.length>3&&typeof i=="function"?(o--,i):void 0,s&&Uu(e[0],e[1],s)&&(i=o<3?void 0:i,o=1),t=Object(t);++r<o;){var l=e[r];l&&n(t,l,r,i)}return t})}var ju=gy;var yy=Object.prototype;function xy(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||yy;return n===e}var Jo=xy;function vy(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}var ku=vy;var by="[object Arguments]";function Sy(n){return ht(n)&&Vt(n)==by}var vl=Sy;var Hu=Object.prototype,wy=Hu.hasOwnProperty,_y=Hu.propertyIsEnumerable,Ty=vl(function(){return arguments}())?vl:function(n){return ht(n)&&wy.call(n,"callee")&&!_y.call(n,"callee")},Dr=Ty;function Ay(){return!1}var Wu=Ay;var Xu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,qu=Xu&&typeof module=="object"&&module&&!module.nodeType&&module,Ny=qu&&qu.exports===Xu,$u=Ny?Ye.Buffer:void 0,Iy=$u?$u.isBuffer:void 0,Py=Iy||Wu,en=Py;var Oy="[object Arguments]",Cy="[object Array]",Ly="[object Boolean]",My="[object Date]",Ey="[object Error]",By="[object Function]",Dy="[object Map]",Gy="[object Number]",Ry="[object Object]",Vy="[object RegExp]",Fy="[object Set]",zy="[object String]",Uy="[object WeakMap]",jy="[object ArrayBuffer]",ky="[object DataView]",Hy="[object Float32Array]",Wy="[object Float64Array]",qy="[object Int8Array]",$y="[object Int16Array]",Xy="[object Int32Array]",Yy="[object Uint8Array]",Ky="[object Uint8ClampedArray]",Qy="[object Uint16Array]",Zy="[object Uint32Array]",Re={};Re[Hy]=Re[Wy]=Re[qy]=Re[$y]=Re[Xy]=Re[Yy]=Re[Ky]=Re[Qy]=Re[Zy]=!0;Re[Oy]=Re[Cy]=Re[jy]=Re[Ly]=Re[ky]=Re[My]=Re[Ey]=Re[By]=Re[Dy]=Re[Gy]=Re[Ry]=Re[Vy]=Re[Fy]=Re[zy]=Re[Uy]=!1;function Jy(n){return ht(n)&&Zo(n.length)&&!!Re[Vt(n)]}var Yu=Jy;function ex(n){return function(t){return n(t)}}var tn=ex;var Ku=typeof exports=="object"&&exports&&!exports.nodeType&&exports,li=Ku&&typeof module=="object"&&module&&!module.nodeType&&module,tx=li&&li.exports===Ku,bl=tx&&Bs.process,rx=function(){try{var n=li&&li.require&&li.require("util").types;return n||bl&&bl.binding&&bl.binding("util")}catch{}}(),Gr=rx;var Qu=Gr&&Gr.isTypedArray,ox=Qu?tn(Qu):Yu,js=ox;var nx=Object.prototype,ix=nx.hasOwnProperty;function sx(n,t){var e=je(n),r=!e&&Dr(n),o=!e&&!r&&en(n),i=!e&&!r&&!o&&js(n),s=e||r||o||i,l=s?ku(n.length,String):[],c=l.length;for(var p in n)(t||ix.call(n,p))&&!(s&&(p=="length"||o&&(p=="offset"||p=="parent")||i&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||Kr(p,c)))&&l.push(p);return l}var ks=sx;function ax(n,t){return function(e){return n(t(e))}}var Hs=ax;var lx=Hs(Object.keys,Object),Zu=lx;var cx=Object.prototype,ux=cx.hasOwnProperty;function px(n){if(!Jo(n))return Zu(n);var t=[];for(var e in Object(n))ux.call(n,e)&&e!="constructor"&&t.push(e);return t}var Ju=px;function dx(n){return Zr(n)?ks(n):Ju(n)}var rn=dx;function fx(n){var t=[];if(n!=null)for(var e in Object(n))t.push(e);return t}var ep=fx;var mx=Object.prototype,hx=mx.hasOwnProperty;function gx(n){if(!Qe(n))return ep(n);var t=Jo(n),e=[];for(var r in n)r=="constructor"&&(t||!hx.call(n,r))||e.push(r);return e}var tp=gx;function yx(n){return Zr(n)?ks(n,!0):tp(n)}var fr=yx;var xx=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,vx=/^\w*$/;function bx(n,t){if(je(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||$o(n)?!0:vx.test(n)||!xx.test(n)||t!=null&&n in Object(t)}var rp=bx;var Sx=It(Object,"create"),Rr=Sx;function wx(){this.__data__=Rr?Rr(null):{},this.size=0}var op=wx;function _x(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}var np=_x;var Tx="__lodash_hash_undefined__",Ax=Object.prototype,Nx=Ax.hasOwnProperty;function Ix(n){var t=this.__data__;if(Rr){var e=t[n];return e===Tx?void 0:e}return Nx.call(t,n)?t[n]:void 0}var ip=Ix;var Px=Object.prototype,Ox=Px.hasOwnProperty;function Cx(n){var t=this.__data__;return Rr?t[n]!==void 0:Ox.call(t,n)}var sp=Cx;var Lx="__lodash_hash_undefined__";function Mx(n,t){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=Rr&&t===void 0?Lx:t,this}var ap=Mx;function on(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}on.prototype.clear=op;on.prototype.delete=np;on.prototype.get=ip;on.prototype.has=sp;on.prototype.set=ap;var Sl=on;function Ex(){this.__data__=[],this.size=0}var lp=Ex;function Bx(n,t){for(var e=n.length;e--;)if(Qr(n[e][0],t))return e;return-1}var Jr=Bx;var Dx=Array.prototype,Gx=Dx.splice;function Rx(n){var t=this.__data__,e=Jr(t,n);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():Gx.call(t,e,1),--this.size,!0}var cp=Rx;function Vx(n){var t=this.__data__,e=Jr(t,n);return e<0?void 0:t[e][1]}var up=Vx;function Fx(n){return Jr(this.__data__,n)>-1}var pp=Fx;function zx(n,t){var e=this.__data__,r=Jr(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}var dp=zx;function nn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}nn.prototype.clear=lp;nn.prototype.delete=cp;nn.prototype.get=up;nn.prototype.has=pp;nn.prototype.set=dp;var eo=nn;var Ux=It(Ye,"Map"),to=Ux;function jx(){this.size=0,this.__data__={hash:new Sl,map:new(to||eo),string:new Sl}}var fp=jx;function kx(n){var t=typeof n;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?n!=="__proto__":n===null}var mp=kx;function Hx(n,t){var e=n.__data__;return mp(t)?e[typeof t=="string"?"string":"hash"]:e.map}var ro=Hx;function Wx(n){var t=ro(this,n).delete(n);return this.size-=t?1:0,t}var hp=Wx;function qx(n){return ro(this,n).get(n)}var gp=qx;function $x(n){return ro(this,n).has(n)}var yp=$x;function Xx(n,t){var e=ro(this,n),r=e.size;return e.set(n,t),this.size+=e.size==r?0:1,this}var xp=Xx;function sn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}sn.prototype.clear=fp;sn.prototype.delete=hp;sn.prototype.get=gp;sn.prototype.has=yp;sn.prototype.set=xp;var ci=sn;var Yx="Expected a function";function wl(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError(Yx);var e=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=e.cache;if(i.has(o))return i.get(o);var s=n.apply(this,r);return e.cache=i.set(o,s)||i,s};return e.cache=new(wl.Cache||ci),e}wl.Cache=ci;var vp=wl;var Kx=500;function Qx(n){var t=vp(n,function(r){return e.size===Kx&&e.clear(),r}),e=t.cache;return t}var bp=Qx;var Zx=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Jx=/\\(\\)?/g,e0=bp(function(n){var t=[];return n.charCodeAt(0)===46&&t.push(""),n.replace(Zx,function(e,r,o,i){t.push(o?i.replace(Jx,"$1"):r||e)}),t}),Sp=e0;function t0(n){return n==null?"":Iu(n)}var wp=t0;function r0(n,t){return je(n)?n:rp(n,t)?[n]:Sp(wp(n))}var Ht=r0;var o0=1/0;function n0(n){if(typeof n=="string"||$o(n))return n;var t=n+"";return t=="0"&&1/n==-o0?"-0":t}var oo=n0;function i0(n,t){t=Ht(t,n);for(var e=0,r=t.length;n!=null&&e<r;)n=n[oo(t[e++])];return e&&e==r?n:void 0}var Ws=i0;function s0(n,t){for(var e=-1,r=t.length,o=n.length;++e<r;)n[o+e]=t[e];return n}var an=s0;var _p=bt?bt.isConcatSpreadable:void 0;function a0(n){return je(n)||Dr(n)||!!(_p&&n&&n[_p])}var Tp=a0;function Ap(n,t,e,r,o){var i=-1,s=n.length;for(e||(e=Tp),o||(o=[]);++i<s;){var l=n[i];t>0&&e(l)?t>1?Ap(l,t-1,e,r,o):an(o,l):r||(o[o.length]=l)}return o}var Np=Ap;function l0(n){var t=n==null?0:n.length;return t?Np(n,1):[]}var Ip=l0;function c0(n){return zs(Us(n,void 0,Ip),n+"")}var qs=c0;var u0=Hs(Object.getPrototypeOf,Object),ln=u0;var p0="[object Object]",d0=Function.prototype,f0=Object.prototype,Pp=d0.toString,m0=f0.hasOwnProperty,h0=Pp.call(Object);function g0(n){if(!ht(n)||Vt(n)!=p0)return!1;var t=ln(n);if(t===null)return!0;var e=m0.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Pp.call(e)==h0}var $s=g0;function y0(n,t,e){var r=-1,o=n.length;t<0&&(t=-t>o?0:o+t),e=e>o?o:e,e<0&&(e+=o),o=t>e?0:e-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=n[r+t];return i}var Op=y0;function x0(){this.__data__=new eo,this.size=0}var Cp=x0;function v0(n){var t=this.__data__,e=t.delete(n);return this.size=t.size,e}var Lp=v0;function b0(n){return this.__data__.get(n)}var Mp=b0;function S0(n){return this.__data__.has(n)}var Ep=S0;var w0=200;function _0(n,t){var e=this.__data__;if(e instanceof eo){var r=e.__data__;if(!to||r.length<w0-1)return r.push([n,t]),this.size=++e.size,this;e=this.__data__=new ci(r)}return e.set(n,t),this.size=e.size,this}var Bp=_0;function cn(n){var t=this.__data__=new eo(n);this.size=t.size}cn.prototype.clear=Cp;cn.prototype.delete=Lp;cn.prototype.get=Mp;cn.prototype.has=Ep;cn.prototype.set=Bp;var Xs=cn;function T0(n,t){return n&&kt(t,rn(t),n)}var Dp=T0;function A0(n,t){return n&&kt(t,fr(t),n)}var Gp=A0;var zp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Rp=zp&&typeof module=="object"&&module&&!module.nodeType&&module,N0=Rp&&Rp.exports===zp,Vp=N0?Ye.Buffer:void 0,Fp=Vp?Vp.allocUnsafe:void 0;function I0(n,t){if(t)return n.slice();var e=n.length,r=Fp?Fp(e):new n.constructor(e);return n.copy(r),r}var Ys=I0;function P0(n,t){for(var e=-1,r=n==null?0:n.length,o=0,i=[];++e<r;){var s=n[e];t(s,e,n)&&(i[o++]=s)}return i}var Up=P0;function O0(){return[]}var Ks=O0;var C0=Object.prototype,L0=C0.propertyIsEnumerable,jp=Object.getOwnPropertySymbols,M0=jp?function(n){return n==null?[]:(n=Object(n),Up(jp(n),function(t){return L0.call(n,t)}))}:Ks,un=M0;function E0(n,t){return kt(n,un(n),t)}var kp=E0;var B0=Object.getOwnPropertySymbols,D0=B0?function(n){for(var t=[];n;)an(t,un(n)),n=ln(n);return t}:Ks,Qs=D0;function G0(n,t){return kt(n,Qs(n),t)}var Hp=G0;function R0(n,t,e){var r=t(n);return je(n)?r:an(r,e(n))}var Zs=R0;function V0(n){return Zs(n,rn,un)}var Wp=V0;function F0(n){return Zs(n,fr,Qs)}var Js=F0;var z0=It(Ye,"DataView"),ea=z0;var U0=It(Ye,"Promise"),ta=U0;var j0=It(Ye,"Set"),ra=j0;var qp="[object Map]",k0="[object Object]",$p="[object Promise]",Xp="[object Set]",Yp="[object WeakMap]",Kp="[object DataView]",H0=Br(ea),W0=Br(to),q0=Br(ta),$0=Br(ra),X0=Br(Vs),wo=Vt;(ea&&wo(new ea(new ArrayBuffer(1)))!=Kp||to&&wo(new to)!=qp||ta&&wo(ta.resolve())!=$p||ra&&wo(new ra)!=Xp||Vs&&wo(new Vs)!=Yp)&&(wo=function(n){var t=Vt(n),e=t==k0?n.constructor:void 0,r=e?Br(e):"";if(r)switch(r){case H0:return Kp;case W0:return qp;case q0:return $p;case $0:return Xp;case X0:return Yp}return t});var pn=wo;var Y0=Object.prototype,K0=Y0.hasOwnProperty;function Q0(n){var t=n.length,e=new n.constructor(t);return t&&typeof n[0]=="string"&&K0.call(n,"index")&&(e.index=n.index,e.input=n.input),e}var Qp=Q0;var Z0=Ye.Uint8Array,_l=Z0;function J0(n){var t=new n.constructor(n.byteLength);return new _l(t).set(new _l(n)),t}var dn=J0;function ev(n,t){var e=t?dn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var Zp=ev;var tv=/\w*$/;function rv(n){var t=new n.constructor(n.source,tv.exec(n));return t.lastIndex=n.lastIndex,t}var Jp=rv;var ed=bt?bt.prototype:void 0,td=ed?ed.valueOf:void 0;function ov(n){return td?Object(td.call(n)):{}}var rd=ov;function nv(n,t){var e=t?dn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}var oa=nv;var iv="[object Boolean]",sv="[object Date]",av="[object Map]",lv="[object Number]",cv="[object RegExp]",uv="[object Set]",pv="[object String]",dv="[object Symbol]",fv="[object ArrayBuffer]",mv="[object DataView]",hv="[object Float32Array]",gv="[object Float64Array]",yv="[object Int8Array]",xv="[object Int16Array]",vv="[object Int32Array]",bv="[object Uint8Array]",Sv="[object Uint8ClampedArray]",wv="[object Uint16Array]",_v="[object Uint32Array]";function Tv(n,t,e){var r=n.constructor;switch(t){case fv:return dn(n);case iv:case sv:return new r(+n);case mv:return Zp(n,e);case hv:case gv:case yv:case xv:case vv:case bv:case Sv:case wv:case _v:return oa(n,e);case av:return new r;case lv:case pv:return new r(n);case cv:return Jp(n);case uv:return new r;case dv:return rd(n)}}var od=Tv;function Av(n){return typeof n.constructor=="function"&&!Jo(n)?Eu(ln(n)):{}}var na=Av;var Nv="[object Map]";function Iv(n){return ht(n)&&pn(n)==Nv}var nd=Iv;var id=Gr&&Gr.isMap,Pv=id?tn(id):nd,sd=Pv;var Ov="[object Set]";function Cv(n){return ht(n)&&pn(n)==Ov}var ad=Cv;var ld=Gr&&Gr.isSet,Lv=ld?tn(ld):ad,cd=Lv;var Mv=1,Ev=2,Bv=4,ud="[object Arguments]",Dv="[object Array]",Gv="[object Boolean]",Rv="[object Date]",Vv="[object Error]",pd="[object Function]",Fv="[object GeneratorFunction]",zv="[object Map]",Uv="[object Number]",dd="[object Object]",jv="[object RegExp]",kv="[object Set]",Hv="[object String]",Wv="[object Symbol]",qv="[object WeakMap]",$v="[object ArrayBuffer]",Xv="[object DataView]",Yv="[object Float32Array]",Kv="[object Float64Array]",Qv="[object Int8Array]",Zv="[object Int16Array]",Jv="[object Int32Array]",eb="[object Uint8Array]",tb="[object Uint8ClampedArray]",rb="[object Uint16Array]",ob="[object Uint32Array]",Be={};Be[ud]=Be[Dv]=Be[$v]=Be[Xv]=Be[Gv]=Be[Rv]=Be[Yv]=Be[Kv]=Be[Qv]=Be[Zv]=Be[Jv]=Be[zv]=Be[Uv]=Be[dd]=Be[jv]=Be[kv]=Be[Hv]=Be[Wv]=Be[eb]=Be[tb]=Be[rb]=Be[ob]=!0;Be[Vv]=Be[pd]=Be[qv]=!1;function ia(n,t,e,r,o,i){var s,l=t&Mv,c=t&Ev,p=t&Bv;if(e&&(s=o?e(n,r,o,i):e(n)),s!==void 0)return s;if(!Qe(n))return n;var a=je(n);if(a){if(s=Qp(n),!l)return Fs(n,s)}else{var u=pn(n),d=u==pd||u==Fv;if(en(n))return Ys(n,l);if(u==dd||u==ud||d&&!o){if(s=c||d?{}:na(n),!l)return c?Hp(n,Gp(s,n)):kp(n,Dp(s,n))}else{if(!Be[u])return o?n:{};s=od(n,u,l)}}i||(i=new Xs);var f=i.get(n);if(f)return f;i.set(n,s),cd(n)?n.forEach(function(g){s.add(ia(g,t,e,g,n,i))}):sd(n)&&n.forEach(function(g,x){s.set(x,ia(g,t,e,x,n,i))});var m=p?c?Js:Wp:c?fr:rn,h=a?void 0:m(n);return Vu(h||n,function(g,x){h&&(x=g,g=n[x]),Qo(s,x,ia(g,t,e,x,n,i))}),s}var sa=ia;var nb=1,ib=4;function sb(n){return sa(n,nb|ib)}var ui=sb;function ab(n,t){return n!=null&&t in Object(n)}var fd=ab;function lb(n,t,e){t=Ht(t,n);for(var r=-1,o=t.length,i=!1;++r<o;){var s=oo(t[r]);if(!(i=n!=null&&e(n,s)))break;n=n[s]}return i||++r!=o?i:(o=n==null?0:n.length,!!o&&Zo(o)&&Kr(s,o)&&(je(n)||Dr(n)))}var md=lb;function cb(n,t){return n!=null&&md(n,t,fd)}var hd=cb;function ub(n){return function(t,e,r){for(var o=-1,i=Object(t),s=r(t),l=s.length;l--;){var c=s[n?l:++o];if(e(i[c],c,i)===!1)break}return t}}var gd=ub;var pb=gd(),yd=pb;function db(n,t,e){(e!==void 0&&!Qr(n[t],e)||e===void 0&&!(t in n))&&Ko(n,t,e)}var pi=db;function fb(n){return ht(n)&&Zr(n)}var xd=fb;function mb(n,t){if(!(t==="constructor"&&typeof n[t]=="function")&&t!="__proto__")return n[t]}var di=mb;function hb(n){return kt(n,fr(n))}var vd=hb;function gb(n,t,e,r,o,i,s){var l=di(n,e),c=di(t,e),p=s.get(c);if(p){pi(n,e,p);return}var a=i?i(l,c,e+"",n,t,s):void 0,u=a===void 0;if(u){var d=je(c),f=!d&&en(c),m=!d&&!f&&js(c);a=c,d||f||m?je(l)?a=l:xd(l)?a=Fs(l):f?(u=!1,a=Ys(c,!0)):m?(u=!1,a=oa(c,!0)):a=[]:$s(c)||Dr(c)?(a=l,Dr(l)?a=vd(l):(!Qe(l)||Xo(l))&&(a=na(c))):u=!1}u&&(s.set(c,a),o(a,c,r,i,s),s.delete(c)),pi(n,e,a)}var bd=gb;function Sd(n,t,e,r,o){n!==t&&yd(t,function(i,s){if(o||(o=new Xs),Qe(i))bd(n,t,s,e,Sd,r,o);else{var l=r?r(di(n,s),i,s+"",n,t,o):void 0;l===void 0&&(l=i),pi(n,s,l)}},fr)}var wd=Sd;function yb(n){var t=n==null?0:n.length;return t?n[t-1]:void 0}var _d=yb;function xb(n,t){return t.length<2?n:Ws(n,Op(t,0,-1))}var Td=xb;var vb=ju(function(n,t,e){wd(n,t,e)}),_o=vb;function bb(n,t){return t=Ht(t,n),n=Td(n,t),n==null||delete n[oo(_d(t))]}var Ad=bb;function Sb(n){return $s(n)?void 0:n}var Nd=Sb;var wb=1,_b=2,Tb=4,Ab=qs(function(n,t){var e={};if(n==null)return e;var r=!1;t=Ds(t,function(i){return i=Ht(i,n),r||(r=i.length>1),i}),kt(n,Js(n),e),r&&(e=sa(e,wb|_b|Tb,Nd));for(var o=t.length;o--;)Ad(e,t[o]);return e}),fn=Ab;function Nb(n,t,e,r){if(!Qe(n))return n;t=Ht(t,n);for(var o=-1,i=t.length,s=i-1,l=n;l!=null&&++o<i;){var c=oo(t[o]),p=e;if(c==="__proto__"||c==="constructor"||c==="prototype")return n;if(o!=s){var a=l[c];p=r?r(a,c,l):void 0,p===void 0&&(p=Qe(a)?a:Kr(t[o+1])?[]:{})}Qo(l,c,p),l=l[c]}return n}var Id=Nb;function Ib(n,t,e){for(var r=-1,o=t.length,i={};++r<o;){var s=t[r],l=Ws(n,s);e(l,s)&&Id(i,Ht(s,n),l)}return i}var Pd=Ib;function Pb(n,t){return Pd(n,t,function(e,r){return hd(n,r)})}var Od=Pb;var Ob=qs(function(n,t){return n==null?{}:Od(n,t)}),mn=Ob;var fi;(o=>{o.identity={...Ps.identity,hiddenMatrix:$r.identity};function t(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}o.fromObject=t;function e(i,s){return{position:s?.position||i.position,rotation:s?.rotation||i.rotation,scale:s?.scale||i.scale,hiddenMatrix:s?.hiddenMatrix||i.hiddenMatrix}}o.merge=e;function r(i,s){return{position:Ho.isEqual(i.position,s.position)?null:s.position,rotation:Ho.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:Ho.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:$r.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}o.diff=r})(fi||(fi={}));var Tl;(t=>t.defaultData={fusedBody:!0,rigidBody:"positioned",density:1,pointMass:0,gravityScale:1,friction:.5,damping:0,restitution:.2,colliderType:"convex",enabledRotation:[!0,!0,!0],enabledTranslation:[!0,!0,!0]})(Tl||(Tl={}));var Kt;(t=>t.defaultData={states:new ge,events:new ge,visible:!0,raycastLock:!1,physics:null,...fi.identity})(Kt||(Kt={}));var Cd;(t=>t.defaultData={type:"Empty",...Kt.defaultData})(Cd||(Cd={}));var To;(t=>t.defaultData={type:"Mesh",...Kt.defaultData,...Ms.defaultData})(To||(To={}));var aa;(t=>t.defaultData={...Kt.defaultData,...fi.identity,...So.defaultData})(aa||(aa={}));var Ld;(t=>{function n(e){return{...Kt.defaultData,...Ls.defaultData(e)}}t.defaultData=n})(Ld||(Ld={}));var Md;(o=>(o.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:$r.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Tl.defaultData,states:new ge,events:new ge,...So.defaultData},o.defaultMeshObject={name:"Rectangle",...Kt.defaultData,...To.defaultData,geometry:Yr.defaultData("RectangleGeometry"),material:Rt.defaultTwoLayerData("basic","layer1","layer2")},o.defaultBooleanObject={name:"Boolean",...Kt.defaultData,...To.defaultData,geometry:Yr.defaultData("BooleanGeometry"),material:Rt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultTextObject={name:"Text",...Kt.defaultData,...To.defaultData,geometry:Yr.defaultData("TextGeometry"),material:Rt.defaultTwoLayerData("phong","layer1","layer2")}))(Md||(Md={}));var Ed;(e=>{function n(r,o){if(o===void 0)return r;let i={...r};return"material"in i&&"material"in o&&o.material&&(i.material=nl(i.material,s=>{if(typeof s!="string")for(let[l,c]of Object.entries(o.material.layers)){let p=s.layers.data(l);p&&_o(p,c)}}).data),i.materials&&o.materials&&(i.materials=nl(i.materials,s=>{for(let l=0;l<i.materials.length;l++){let c=o.materials[l];if(typeof c!="string")for(let[p,a]of Object.entries(c.layers)){let u=s[l]?.layers?.data(p);u&&_o(u,a)}}}).data),i}e.patchMaterialState=n;function t(r,o){if(o===void 0)return r;let i={...r};if(Object.assign(i,fi.merge(i,o)),Wo.is(r.type)){i.orthographic={...i.orthographic},i.perspective={...i.perspective};let s=o;s.orthographic?.zoom!==void 0&&(i.orthographic.zoom=s.orthographic.zoom),s.perspective?.zoom!==void 0&&(i.perspective.zoom=s.perspective.zoom),s.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=s.isUpVectorFlipped),s.targetOffset!==void 0&&(i.targetOffset=s.targetOffset)}else if(r.type==="Mesh")i.geometry={...i.geometry},Object.assign(i.geometry,o.geometry),i=n(i,o);else if(Cs.is(r.type)){let s=o;s.intensity!==void 0&&(i.intensity=s.intensity),s.color!==void 0&&(typeof s.color=="string"?i.color=s.color:i.color=Nt.clone(s.color))}return i}e.patch=t})(Ed||(Ed={}));var hn;(t=>t.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,isTouchZoom:!0,orbitTouches:2,panTouches:3})(hn||(hn={}));var la;(t=>t.defaultData={orbitControls:hn.defaultData,playCamera:null,withBackground:!0,preventScroll:!1,settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:1,stopMode:"manual",duration:5e3},web:{compress:!0,preset:1,preload:!0}},stopRaycast:!0,joystickSizeAndXYOffset:Array(12).fill(0).map((e,r)=>{let o=0,i=0;return r<5?i=-30:r<10&&(i=30),r===0||r===10||r===5?o=30:(r===4||r===11||r===9)&&(o=-30),[120,[o,i],"show"]}),gameControlObject:null})(la||(la={}));function Ao(n,t){return Object.setPrototypeOf(n,t),n}function Bd(n){return Array.isArray(n)?n:[n]}var ca;(e=>{function n(){let r={};return r["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Ao(r,Ge.prototype)}e.defaultColors=n;function t(){return{materials:new Ge,images:new Ge,colors:new Ge,audios:new Ge,fonts:new Ge,penumbraSize:[.5,.5,.5]}}e.emptyData=t})(ca||(ca={}));var mi=require("three");function Dd(n){n.layers.forEach(t=>{if(t.type==="depth"&&t.colorA!==void 0){let e=t.colorA,r=t.colorB,o=[[e.r,e.g,e.b,e.a],[r.r,r.g,r.b,r.a]],i=[0,1];for(let l=2;l<10;l++)o.push(o[1]),i.push(1);let s={...mn(Tt(t),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,t.near),far:Math.max(0,t.far),colors:o,steps:i,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(t,s)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={...Tt(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function Al(n,t){Object.values(n.shared.materials).forEach(e=>t(e))}function Nl(n,t){n.scene.objects.traverse((e,r)=>{"materials"in r?r.materials.forEach(o=>{typeof o!="string"&&t(o)}):"material"in r&&typeof r.material!="string"&&t(r.material)})}function Cb(n){Object.assign(n.scene.publish,{orbitControls:{...hn.defaultData,...Tt(n.scene.publish.orbitControls)}})}function Lb(n){Object.assign(n.scene.publish.settings,{video:{...la.defaultData.settings.video,...Tt(n.scene.publish.settings.video)}})}function Mb(n){function t(e){if(e.layers){for(let r of Object.values(e.layers))if(r){for(let[o,i]of Object.entries(r))if((xu.includes(o)||typeof i=="boolean")&&delete r[o],o==="texture")for(let[s,l]of Object.entries(i))(vu.includes(s)||typeof l=="boolean")&&delete i[s]}}}n.scene.objects.traverse((e,r)=>{r.states.forEach(o=>{let i=o;i.material?t(i.material):i.materials&&i.materials.forEach(s=>{t(s)})})})}function Eb(n){n.scene.publish.withBackground=!0}function Bb(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function Db(n){n.scene.objects.traverse((t,e)=>{let r=e.cloner;r&&(r.radial.scale=r.radial.scale.map(o=>o+1),r.linear.scale=r.linear.scale.map(o=>o+1))})}function Gb(n){n.scene.objects.traverse((t,e)=>{let r=e.geometry;r&&(r.type==="DodecahedronGeometry"||r.type==="IcosahedronGeometry")&&(r.detail=Math.round(r.detail))})}function Rb(n){n.scene.objects.traverse((t,e)=>{let r=n.scene.objects.parent(t);e.type==="Mesh"&&(!r||n.scene.objects.data(r).geometry?.type!=="BooleanGeometry")&&(e.booleanExclude=null)})}function Gd(n){n.layers===void 0&&Object.assign(n,Rt.defaultTwoLayerData("lambert"))}function Il(n){!n.layers||n.layers.forEach(t=>{if(t.type==="depth"&&t.colors.length===10){let e=[...t.colors];e.push(t.colors[9]);let r=[...t.steps];r.push(t.steps[9]);let o={...Tt(t),colors:e,steps:r};Object.assign(t,o)}})}function Vb(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function Rd(n){n.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&Il(r)}):"material"in e&&typeof e.material!="string"&&Il(e.material)}),Object.values(n.shared.materials).forEach(t=>Il(t))}function Fb(n){n.scene.environment.ambientLight.softShadows=!1,n.scene.environment.ambientLight.softShadowQuality="low",n.scene.objects.traverse((t,e)=>{(e.type==="DirectionalLight"||e.type==="SpotLight")&&(e.shadowResolution=1024,e.shadowRadius=1,e.depth=1e5)}),n.shared.penumbraSize=new Array(5).fill(.5)}function zb(n){n.shared.audios=Ao({},Ge.prototype)}function Ub(n){let t=n.shared.materials;Object.entries(t).forEach(([e,r])=>{if(!r.layers){let o={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"basic",alpha:1,visible:!0,mode:0},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(t,{[e]:o})}})}function jb(n){Object.entries(Tt(n.shared.images)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.images[r]}),Object.entries(Tt(n.shared.audios)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.audios[r]})}function kb(n){n.scene.publish.settings.web.preload=!1}function Vd(n){n.layers&&n.layers.forEach(t=>{t.type==="depth"&&t.num!==void 0&&(t.colors=t.colors.slice(0,t.num),t.steps=t.steps.slice(0,t.num),delete t.num)})}function Hb(n){n.shared.fonts=Ao({},Ge.prototype)}function Wb(n){return n.replace(".typeface","").replace(/optimer/gi,"open sans").replace("space_mono","space mono").replace(/alma_mono/gi,"varela round").replace(/droid_sans_mono/gi,"noto sans mono").replace(/droid_sans|gentilis|gnomon_(simple|foreground)|helvetiker/gi,"roboto").replace(/droid_serif/gi,"roboto slab").replace("_sans"," sans").replace("crimson_text","crimson text").replace("medium_medium","medium").replace("fatface_fatface","fatface").replace("100hairline","thin").replace("200thin","extralight").replace("300light","light").replace("500medium","medium").replace("600semi","semibold").replace("800heavy","extrabold").replace("900black","black").replace(/bodoni_(11|16|24|36|48|72|96)([^_])/gi,"bodoni_$1_$2").replace(/bodoni_(11|16|24|36|48|72|96)/gi,"bodoni moda").replace(/(thin|hairline)(_regular)?/gi,"100").replace(/(extra|ultra)light(_regular)?/gi,"200").replace(/light(_regular)?/gi,"300").replace(/_book|_normal|_roman/gi,"_regular").replace(/medium(_regular)?/gi,"500").replace(/(semi|demi)bold(_regular)?/gi,"600").replace(/(extra|ultra)bold(_regular)?/gi,"800").replace(/bold(_regular)?/gi,"700").replace(/(black|heavy|fatface)(_regular)?/gi,"900").replace(/([1-9]00)_italic/gi,"$1italic").replace(/regularitalic/gi,"italic").replace(/regularitalic/gi,"italic").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function qb(n){let t=[];n.scene.objects.traverse((e,r)=>{let o=r;if(o.type==="TextFrame"){let i=Rt.defaultTwoLayerData("basic"),s=typeof o.color=="string"?n.shared.colors[o.color]:o.color;i.layers[1].data.color={r:s.r,g:s.g,b:s.b},i.layers[1].data.alpha=o.alpha;let l=Wb(o.font);n.shared.fonts[l]===void 0&&(n.shared.fonts[l]={name:l});let c={name:o.name,...Kt.defaultData,...To.defaultData,flatShading:!1,wireframe:!1,geometry:{...Yr.defaultData("TextGeometry"),width:o.width,height:o.height,font:l,depth:0,horizontalAlign:o.horizontalAlign,verticalAlign:o.verticalAlign,fontSize:o.fontSize*1.40625,lineHeight:o.lineHeight/1.40625,letterSpacing:o.letterSpacing-1,text:o.text,textTransform:o.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:i,states:Tt(o.states),events:Tt(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},p=Tt(n.scene.objects).parent(e);n.scene.objects.insertAfter(p??null,e,[{id:e+"new",data:c,children:[]}]),t.push(e)}}),t.forEach(e=>{n.scene.objects.delete(e)})}function $b(n){let t={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};n.scene.objects.traverse((e,r)=>{r.events.forEach(o=>{if(!!t[Number(o.type)])if(Object.assign(o,{type:t[Number(o.type)]}),o.type==="Audio"&&"audioEvent"in o&&(Object.assign(o,{playAudio:o.audioEvent}),delete o.audioEvent),o.type==="GameControl")Object.assign(o,{gameActions:{idle:new ge,move:new ge,jump:new ge}});else{let i=new ge;Object.assign(o,{actions:i}),(o.type==="MouseDown"||o.type==="MouseUp"||o.type==="KeyDown"||o.type==="KeyUp")&&"url"in o&&i.push({fi:0,id:mi.MathUtils.generateUUID(),data:{type:"Link",url:o.url,delay:0}}),"targets"in o&&(o.targets.forEach((s,l,c)=>{let p={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},a={easing:s.easing,duration:s.duration};s.easing===6?Object.assign(a,mn(s,"mass","stiffness","damping","velocity")):s.easing===5&&Object.assign(a,{control1:{...s.control1},control2:{...s.control2}});let u={repeat:s.repeat?-1:0,delay:s.delay,delayDirection:s.delayDirection,direction:s.cycle&&s.rewind?"pingpong-rewind":s.cycle?"pingpong":"normal"},d={state:s.state,...u,...a},f={allowSlerp:!0,type:"Transition",object:s.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new ge({fi:0,id:mi.MathUtils.generateUUID(),data:p},{fi:1,id:mi.MathUtils.generateUUID(),data:d})};i.push({fi:c,id:l,data:f})}),delete o.targets)}})})}function Xb(n){n.scene.objects.traverse((t,e)=>{function r(o,i){let s=new ge,l=[];if(e.events.forEach((c,p,a)=>{if(c.type==="Audio"&&c.trigger===i){let u;l.push(p),c.interaction==="play"?u={...mn(c,"interaction","audio","delay","volume","loop"),triggerAfter:"after"in c?c.after:void 0,toggle:"after"in c?c.toggle:void 0,type:"Audio"}:(c.interaction==="pause"||c.interaction==="stop")&&(u={...mn(c,"interaction","delay","object","playAudio"),type:"Audio"}),u&&s.push({fi:a,id:p,data:u})}}),l.forEach(c=>e.events.delete(c)),s.length){let c=e.events.find(p=>p.type===o)?.data;c?"actions"in c&&c.actions.insertBefore(null,s):e.events.insertBefore(null,[{id:mi.MathUtils.generateUUID(),data:{type:o,actions:s}}])}}r("Start","start"),r("MouseDown","mouseDown"),r("MouseUp","mouseUp"),r("KeyDown","keyDown"),r("KeyUp","keyUp")})}var Fd=21;function zd(n){let t=n.schema??0;t!==Fd&&(console.warn("updating from ",t,"to ",Fd),t<1&&(Nl(n,Dd),Al(n,Dd),n.schema=1),t<2&&(Cb(n),n.schema=2),t<3&&(Mb(n),n.schema=3),t<4&&(Eb(n),n.schema=4),t<5&&(Bb(n),n.schema=5),t<6&&(Db(n),n.schema=6),t<7&&(Gb(n),n.schema=7),t<8&&(Rb(n),n.schema=8),t<9&&(Rd(n),n.schema=9),t<10&&(Vb(n),n.schema=10),t<11&&(Fb(n),n.schema=11),t<12&&(Rd(n),n.schema=12),t<13&&(zb(n),n.schema=13),t<14&&(Ub(n),n.schema=14),t<15&&(jb(n),n.schema=15),t<16&&(kb(n),n.schema=16),t<17&&(Nl(n,Vd),Al(n,Vd),n.schema=17),t<18&&(Nl(n,Gd),Al(n,Gd),n.schema=18),t<19&&(Lb(n),n.schema=19),t<20&&(Hb(n),qb(n),n.schema=20),t<21&&($b(n),Xb(n),n.schema=21))}var ua;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(ua||(ua={}));var Ke=require("three");var Ud=require("three"),Pl=class extends Ud.Object3D{},pa=class extends Pl{constructor(e){super();this.object=e;this.matrixAutoUpdate=!0}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return!0}get isLight(){return!1}get layers(){return this.object.layers}set layers(e){}get isCamera(){return!1}get geometry(){return this.object.geometry}get material(){return this.object.material}};var No=class extends Ke.Object3D{constructor(e,r={}){super();this.object=e;let o=e.recursiveBBox.getSize(new Ke.Vector3),i=.1;this.parameters=Os.defaultData(o.toArray(),i),_o(this.parameters,r),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(e){this.parameters.hideBase=e}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters)}this.children.forEach(e=>e.updateMatrix())}_updateCount(){let e=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count;if(this.children.length!==e)if(this.children.length<e)for(let r=0,o=e-this.children.length;r<o;++r){let i=new pa(this.object);i.visible=!0,this.add(i),this.parameters.hideBase&&this.setHideBase(!0)}else for(let r=0,o=this.children.length-e;r<o;++r)this.remove(this.children[0])}_updateRadial(e){let r=e.radial,o=r.start*Ke.MathUtils.DEG2RAD,i=r.end*Ke.MathUtils.DEG2RAD,s=o-i,l=new Ke.Euler(r.rotation[0]*Ke.MathUtils.DEG2RAD,r.rotation[1]*Ke.MathUtils.DEG2RAD,r.rotation[2]*Ke.MathUtils.DEG2RAD),c;switch(r.axis){case"z":c=new Ke.Vector3(0,0,1);break;case"y":c=new Ke.Vector3(0,1,0);break;default:case"x":c=new Ke.Vector3(1,0,0);break}for(let[p,a]of this.children.entries()){a.scale.x=r.scale[0],a.scale.y=r.scale[1],a.scale.z=r.scale[2],a.position.setScalar(0);let u=s/e.count*p-o;switch(r.axis){case"x":a.rotation.set(0,u,0);break;case"y":a.rotation.set(0,0,u);break;case"z":a.rotation.set(u,0,0);break}a.translateOnAxis(c,r.radius),a.position.x+=r.position[0],a.position.y+=r.position[1],a.position.z+=r.position[2],r.alignment===!0?(a.rotation.x+=l.x,a.rotation.y+=l.y,a.rotation.z+=l.z):a.rotation.copy(l)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,o=new Ke.Euler(r.rotation[0]*Ke.MathUtils.DEG2RAD,r.rotation[1]*Ke.MathUtils.DEG2RAD,r.rotation[2]*Ke.MathUtils.DEG2RAD);for(let[i,s]of this.children.entries())s.scale.x=1+(r.scale[0]-1)*i,s.scale.y=1+(r.scale[1]-1)*i,s.scale.z=1+(r.scale[2]-1)*i,s.rotation.x=o.x*i,s.rotation.y=o.y*i,s.rotation.z=o.z*i,s.position.x=r.position[0]*i,s.position.y=r.position[1]*i,s.position.z=r.position[2]*i}_updateGrid(e){let r=0,o=e.grid;if(o.useCenter===!0){let i={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},s=new Ke.Vector3(o.size[0]*(o.count[0]-i.x)*.5,o.size[1]*(o.count[1]-i.y)*.5,o.size[2]*(o.count[2]-i.z)*.5);for(let l=0;l<o.count[0];l++)for(let c=0;c<o.count[1];c++)for(let p=0;p<o.count[2];p++){let a=this.children[r++];a.scale.setScalar(1),a.rotation.set(0,0,0),a.position.x=o.size[0]*l-s.x,a.position.y=o.size[1]*c-s.y,a.position.z=o.size[2]*p-s.z}}else for(let i=0;i<o.count[0];i++)for(let s=0;s<o.count[1];s++)for(let l=0;l<o.count[2];l++){let c=this.children[r++];c.scale.setScalar(1),c.rotation.set(0,0,0),c.position.x=o.size[0]*i,c.position.y=-o.size[1]*s,c.position.z=-o.size[2]*l}}fromClonerState(e){return e.hideBase!==void 0&&this.setHideBase(e.hideBase),_o(this.parameters,e),this.update(),this}};var Lr=require("three");var ze=require("three");var jd=require("three"),mr=n=>{var t;return t=class extends n{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new jd.BoxBufferGeometry(30,30,30),t};var pt=require("three");var gt=require("three"),da=new gt.Ray,Ol=new gt.Sphere,kd=new gt.Matrix4,hr=(n,t,e,r,o=!1)=>{let i=t,s=n.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),Ol.copy(i.boundingSphere),Ol.applyMatrix4(s),e.ray.intersectsSphere(Ol)===!1||(kd.copy(s).invert(),da.copy(e.ray).applyMatrix4(kd),i.boundingBox!==null&&da.intersectsBox(i.boundingBox)===!1))return;let l,c,p,a,u=i.index,d=i.attributes.position,f=i.drawRange,m,h;if(o===!1){let x=Math.max(0,f.start),v=Math.min(u.count,f.start+f.count);for(m=x,h=v;m<h;m+=3)if(c=u.getX(m),p=u.getX(m+1),a=u.getX(m+2),l=g(n,e,da,d,c,p,a),l){l.faceIndex=Math.floor(m/3),r.push(l);return}}else{let v=i.attributes.position,w=new gt.Vector3,S=new gt.Vector3,b=new gt.Vector3,N=new gt.Vector3,T=2,P=1/((n.scale.x+n.scale.y+n.scale.z)/3),A=P*P,O=Math.max(0,f.start),_=Math.min(v.count,f.start+f.count);for(let L=O,D=_-1;L<D;L+=T){if(w.fromBufferAttribute(v,L),S.fromBufferAttribute(v,L+1),da.distanceSqToSegment(w,S,N,b)>A)continue;N.applyMatrix4(n.matrixWorld);let re=e.ray.origin.distanceTo(N);re<e.near||re>e.far||r.push({distance:re,point:b.clone().applyMatrix4(n.matrixWorld),object:n})}}function g(x,v,w,S,b,N,T){let y=new gt.Vector3,P=new gt.Vector3,A=new gt.Vector3,O=new gt.Vector3,_=new gt.Vector3;if(y.fromBufferAttribute(S,b),P.fromBufferAttribute(S,N),A.fromBufferAttribute(S,T),w.intersectTriangle(y,P,A,!1,O)===null)return null;_.copy(O),_.applyMatrix4(x.matrixWorld);let D=v.ray.origin.distanceTo(_);return D<v.near||D>v.far?null:{faceIndex:1,distance:D,point:_.clone(),object:x}}};var fa=new pt.Vector3,Wt=new pt.Camera,Cl=class extends pt.LineSegments{constructor(e){let r=new pt.BufferGeometry,o=new pt.LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],s=[],l={},c=new pt.Color(15711266),p=new pt.Color(15711266),a=new pt.Color(2857471);u("n1","n2",c),u("n2","n4",c),u("n4","n3",c),u("n3","n1",c),u("f1","f2",c),u("f2","f4",c),u("f4","f3",c),u("f3","f1",c),u("n1","f1",c),u("n2","f2",c),u("n3","f3",c),u("n4","f4",c),u("p","n1",p),u("p","n2",p),u("p","n3",p),u("p","n4",p),u("u1","u2",a),u("u2","u3",a),u("u3","u1",a);function u(f,m,h){d(f,h),d(m,h)}function d(f,m){i.push(0,0,0),s.push(m.r,m.g,m.b),l[f]===void 0&&(l[f]=[]),l[f].push(i.length/3-1)}r.setAttribute("position",new pt.Float32BufferAttribute(i,3)),r.setAttribute("color",new pt.Float32BufferAttribute(s,3));super(r,o);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=l,this.update()}update(){let e=this.geometry,r=this.pointMap,o=!0;Wt.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let i=1,s=1,l=o?.8:1e-4;Qt("n1",r,e,Wt,-i,-s,l),Qt("n2",r,e,Wt,i,-s,l),Qt("n3",r,e,Wt,-i,s,l),Qt("n4",r,e,Wt,i,s,l);let c=l;Qt("f1",r,e,Wt,-i,-s,c),Qt("f2",r,e,Wt,i,-s,c),Qt("f3",r,e,Wt,-i,s,c),Qt("f4",r,e,Wt,i,s,c);let p=c,a=.5;Qt("u1",r,e,Wt,i*.7*a,s*1.1,p),Qt("u2",r,e,Wt,-i*.7*a,s*1.1,p),Qt("u3",r,e,Wt,0,s*(1.1+.9*a),p),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function Qt(n,t,e,r,o,i,s){fa.set(o,i,s).unproject(r);let l=t[n];if(l!==void 0){let c=e.getAttribute("position");for(let p=0,a=l.length;p<a;p++)c.setXYZ(l[p],fa.x,fa.y,fa.z)}}var ma=class extends mr(Cl){constructor(e){super(e);this.object=e;this.object=e,this.name=`CombinedCameraHelper: ${e.uuid}`}updateMatrixWorld(e){super.updateMatrixWorld(e),this.updateTarget()}updateTarget(){let e=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(e)}raycast(e,r){hr(this.object,this.geometry,e,r,!0)}};var Hd=require("three");var gn=class extends mr(Hd.DirectionalLightHelper){constructor(e,r=15,o=10066329){super(e,r,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,r){hr(this.object,gn.geometryHelper,e,r)}};var Wd=require("three");var yn=class extends mr(Wd.AxesHelper){constructor(e,r=15){super(r);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,r){hr(this.object,yn.geometryHelper,e,r)}update(){}};var qd=require("three");var xn=class extends mr(qd.PointLightHelper){constructor(e,r=15,o=6710886){super(e,r,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,r){hr(this.object,xn.geometryHelper,e,r)}};var ga=require("three");var ha=class extends mr(ga.SpotLightHelper){constructor(e,r=6710886){super(e,r);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,r){hr(this.object,ha.geometryHelper,e,r)}update(){if(this.object!==void 0){let e=ha._vector,r=this.object.distance?this.object.distance:1e3,o=r*Math.tan(this.object.angle);this.cone.scale.set(o,o,r),e.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(e);let i=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let s=0,l=this.cone.material.length;s<l;s++)this.cone.material[s].color.set(i);else this.cone.material.color.set(i)}}},gi=ha;gi._vector=new ga.Vector3;var he=require("three"),yi=1e-12,vn=class{constructor(t){this.position=new he.Vector2;this.startPosition=new he.Vector2;this.uuid=he.MathUtils.generateUUID();this.position=t.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(t){this.position.copy(this.startPosition).add(t)}copy(t){return this.position.copy(t.position),this.startPosition.copy(t.startPosition),this}clone(){return new vn(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},bn=class extends vn{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new bn(this.parent).copy(this)}},Zt=class extends vn{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new bn(this),new bn(this))}static create(e,r){let o=new Zt(e,new he.Vector2(...r.position));return o.controls[0].position.set(...r.controlPrevious.position),o.controls[1].position.set(...r.controlNext.position),o.roundness=r.roundness,o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored,o}getOppositeControl(e){let r=this.controls.indexOf(e);return r===0?this.controls[1]:r===1?this.controls[0]:null}applyOffsetToControls(e,r=1){for(let o=0,i=this.controls.length;o<i;o++){let s=this.controls[o];this.position.distanceTo(s.position)<=r?s.position.copy(this.position):s.applyOffset(e)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(e){return super.copy(e),this.controls[0].copy(e.controls[0]),this.controls[1].copy(e.controls[1]),this.roundness=e.roundness,this.uuid=e.uuid,this}clone(){return new Zt(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let e=this.curveBefore?.getTangentAt(1),r=this.curveAfter?.getTangentAt(0);return[e,r]}computeNormals(e=new he.Vector2,r=new he.Vector2){let[o,i]=this.computeTangents();return o&&i&&($d(o,e),$d(i,r)),[e,r]}computeTangent(e=new he.Vector2){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new he.Vector2){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function $d(n,t=new he.Vector2){let e=n.length();return t.set(-n.y/e,n.x/e)}var Ml=n=>n,Sn=new he.Vector2,ya=new he.Vector2,Kb=new he.Vector2,Qb=new he.Vector2,Zb=new he.Vector2,Jb=new he.Vector2,Yd=new he.Vector3,Kd=new he.Vector3;function Qd(n){let t=new he.Vector2;t.addVectors(n.v0,Sn.subVectors(n.v1,n.v0).multiplyScalar(2/3));let e=new he.Vector2;return e.addVectors(n.v2,ya.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new he.CubicBezierCurve(n.v0,t,e,n.v2)}function xi(n,t,e=Number.EPSILON){return Math.abs(n-t)<e}function eS(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function tS(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function El(n,t,e){let r=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),i=Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2));return Math.acos((o*o+r*r-i*i)/(2*o*r))}function Zd(n,t,e){return Xd(n,t)&&Xd(t,e)&&Ll(n.position,t.position,e.position)}function Ll(n,t,e){return Sn.copy(t).sub(n).cross(ya.copy(e).sub(n))===0}function Jd(n,t,e,r,o){let i=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),s=(n.y+t.y)/2,l=(n.x+t.x)/2,c=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(n.y-t.y)/i,p=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(t.x-n.x)/i;return r.set(l+c,s+p),o.set(l-c,s-p),[r,o]}function ef(n,t,e){let r=n.distanceTo(e),o=t.distanceTo(e);return r<o?t:n}function tf(n,t,e,r,o,i){let s=t.x-n.x,l=t.y-n.y,c=e.x-n.x,p=e.y-n.y,a=Math.sqrt((s+c)*(s+c)+(l+p)*(l+p)),u;return El(t,n,e)>Math.PI&&(a*=-1),xi(p,l)?u=(l+p)*(r/a-.5)*8/3/(s-c):u=(s+c)*(r/a-.5)*8/3/(p-l),o.set(t.x-u*l,t.y+u*s),i.set(e.x+u*p,e.y-u*c),[o,i]}function Bl(n,t){return n.position.equals(n.controls[1].position)&&t.position.equals(t.controls[0].position)}function Xd(n,t){return Ll(n.position,n.controls[1].position,t.position)&&Ll(n.position,t.controls[0].position,t.position)}function rf(n,t,e,r,o=.5){let i=Sn.subVectors(t,n).multiplyScalar(o).add(n),s=ya.subVectors(e,t).multiplyScalar(o).add(t),l=Kb.subVectors(r,e).multiplyScalar(o).add(e),c=i,p=Qb.subVectors(s,i).multiplyScalar(o).add(i),a=Zb.subVectors(l,s).multiplyScalar(o).add(s),u=l,d=Jb.subVectors(a,p).multiplyScalar(o).add(p);return[n.x,n.y,c.x,c.y,p.x,p.y,d.x,d.y,a.x,a.y,u.x,u.y,r.x,r.y]}function of(n,t,e=12,r=!0){let o=Kd.set(0,0,0),i,s=0,l=[];for(let c=0;c<t.length;c++){let p=Ml(t[c]),a=Sn,u=no(p,e);l.push(u);for(let d=0;d<=u;d++)if(p instanceof he.CubicBezierCurve||p instanceof he.QuadraticBezierCurve||p instanceof he.LineCurve){if(p.getPoint(d/u,a),o.set(a.x,a.y,0),i!==void 0&&tS(i,o))continue;i===void 0&&(i=Yd),i.copy(o),n.setXYZ(s,o.x,o.y,o.z),s++}}return r&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),n}function nf(n,t,e,r=12,o=!0){let i=Kd.set(0,0,0),s=0,l=[];for(let c=0;c<t.length;c++){if(e[c]===!1)continue;let p,a=Ml(t[c]),u=Sn,d=no(a,r);l.push(d);for(let f=0;f<=d;f++)if(a instanceof he.CubicBezierCurve||a instanceof he.QuadraticBezierCurve||a instanceof he.LineCurve){if(a.getPoint(f/d,u),i.set(u.x,u.y,0),p?.equals(i))continue;p===void 0?p=Yd:(n.setXYZ(s,p.x,p.y,p.z),s++,n.setXYZ(s,i.x,i.y,i.z),s++),p.copy(i)}}return o&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),l}function Dl(n,t=12,e=!1){let r=[];for(let o=0,i=n.length;o<i;o++){let s=n[o],l=0;if(e&&s.roundedCurveCorner!==void 0){let c=no(s.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=c),l+=c}s.curveAfter!==void 0&&(l+=no(s.curveAfter,t)),r.push(l)}return n.length>0&&e&&n[0].roundedCurveCorner!==void 0&&(r[n.length-1]+=no(n[0].roundedCurveCorner,t)*.5),r}function no(n,t=12){return n&&n instanceof he.EllipseCurve?t*2:n&&(n instanceof he.LineCurve||n instanceof he.LineCurve3)?1:n&&n instanceof he.SplineCurve?t*n.points.length:t}function sf(n,t,e=12,r=!0){let o,i=0;for(let s=0;s<t.length;s++){let l=Ml(t[s]),c=no(l,e),p=Sn;for(let a=0;a<=c;a++)if(l instanceof he.CubicBezierCurve||l instanceof he.QuadraticBezierCurve||l instanceof he.LineCurve){if(l.getPoint(a/c,p),o!==void 0&&eS(o,p,yi))continue;o===void 0&&(o=ya),o.copy(p),n.push(p.x,p.y),i++}}return xi(n[0],n[n.length-2],yi)&&xi(n[1],n[n.length-1],yi)&&(n.pop(),n.pop()),r&&i>1&&!(xi(n[i-1],n[1],yi)&&xi(n[i-2],n[0],yi))&&(n.push(n[0],n[1]),i++),n}var fo=require("three");var Se=require("three");var Gl=new Se.Vector2,rS=new Se.Vector2,oS=new Se.Vector2,nS=new Se.Vector2,iS=new Se.Vector2,sS=new Se.Vector2,_e=class extends Se.Shape{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new Se.EventDispatcher;this.plane=new Se.Plane(new Se.Vector3(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=Se.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,o){let i=new _e;return i.isClosed=e.isClosed,i.points=e.points.map(s=>Zt.create(s.id,s.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(s=>_e.createFromState(s)),r!==void 0&&o!==void 0&&i.applySize(r,o),i.update(),i}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(e){if(this._roundness!==e){this._roundness=e;for(let r=0,o=this.points.length;r<o;r++)this.points[r].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(r=>this.getPointIndexById(r)).filter(r=>r>=0)}getPointIndexById(e){let r=this.points.length,o=this.points.findIndex(i=>i.uuid===e);if(o<0){let i=r;for(let s=0,l=this.shapeHoles.length;s<l;s++){let c=this.shapeHoles[s],p=c.points.length,a=c.getPointIndexById(e);if(a<0)i+=p;else return a+i}}return o}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0){let r=this.points.length;for(let o=0,i=this.shapeHoles.length;o<i;o++){let s=this.shapeHoles[o],l=e-r;if(l<=s.points.length-1)return s.points[l];r+=s.points.length}}throw new Error("This shape does not have a point for this index: "+e)}getBezierPointIndex(e){let r=this.points.indexOf(e);if(r>=0)return r;if(r=this.points.length,this.shapeHoles.length>0)for(let o=0,i=this.shapeHoles.length;o<i;o++){let s=this.shapeHoles[o],l=s.points.indexOf(e);if(l>=0)return r+l;r+=s.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(r=>r.points));return[...this.points,...e]}applySize(e,r){e===0&&(e=.001),r===0&&(r=.001),this._width=e,this._height=r}applyScale(e,r){let o=Gl.set(e,r);for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i];l.position.multiply(o),l.controls[0].position.multiply(o),l.controls[1].position.multiply(o)}for(let i=0,s=this.shapeHoles.length;i<s;i++)this.shapeHoles[i].applyScale(e,r);this._update(!1)}createPoint(e,r=0,o=Se.MathUtils.generateUUID()){let i;e instanceof Se.Vector2?i=e:i=new Se.Vector2(e,r);let s=new Zt(o,i);return s.roundness=this.roundness,s}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,r){this.points.splice(r,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let r=0,o=this.points.length;r<o;r++){let i=this.points[r];if(i.uuid===e)return i}for(let r=0,o=this.shapeHoles.length;r<o;r++){let s=this.shapeHoles[r].getPointByUuid(e);if(s)return s}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let r=this.points.indexOf(e);r>=0&&this.points.splice(r,1),this.needsUpdate=!0}removePointById(e){let r=this.points.find(o=>o.uuid===e);r&&this.removePoint(r)}update(e=!0){for(let r=0,o=this.shapeHoles.length;r<o;r++)this.shapeHoles[r].update(!1);this._update(e)}extractShapePointsToBuffer(e,r=12,o=!1){this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r);let i=o?this.roundedCurveDivisions:this.curveDivisions;return of(e,o?this.roundedCurves:this.curves,r,this.autoClose),i.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Dl(this.points,e,!1),this.roundedCurveDivisions=Dl(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return nf(e,this.curves,r,o,this.autoClose).reduce((s,l)=>s+l,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),sf(e,this.roundedCurves,r,this.autoClose)}getCurveIndexFromVertexId(e,r=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=r?this.roundedCurveDivisions:this.curveDivisions,s=0;r&&this.points[0].roundedCurveCorner!==void 0&&(s=no(this.points[0].roundedCurveCorner,this.subdivision)*.5);let l=e-s;l<0&&(l+=i.reduce((c,p)=>c+p,0));for(let c=0,p=i.length;c<p;c++){let a=i[c];if(l<o+a)return[c,(l-o+1)/a];o+=a}return[0,1]}getCurveT(e,r,o){let i=this.points[e],s=this.points[e>=this.points.length-1?0:e+1],l=this.curveDivisions,c=l[e];if(Bl(i,s)){let u=i.position.distanceTo(s.position);return i.position.distanceTo(Gl.set(o.x,o.y))/u}let p=0;for(let u=0;u<e;u++)p+=l[u];return(r-p)/c}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,r){Bl(r,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(r.controls[1].position.x,r.controls[1].position.y,e.controls[0].position.x,e.controls[0].position.y,e.position.x,e.position.y);let o=this.curves[this.curves.length-1];e.curveBefore=o,r.curveAfter=o;let i=o.clone();e.roundedCurveBefore=i,r.roundedCurveAfter=i,e.roundedCurveCorner=void 0,this.roundedCurves.push(i)}_update(e=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let o=0,i=this.points.length;o<i;o++){let s=this.points[o];if(o===0)this.moveTo(s.position.x,s.position.y);else{let l=this.points[o-1];this._applyCurveForPoint(s,l)}}let r=this.getLastPoint();if(r?.curveAfter&&(r.curveAfter=void 0),this.isClosed){let o=this.points[0],i=this.points[this.points.length-1];this._applyCurveForPoint(o,i)}if(this.points.length>2){let o=0;for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i],c=this.points[i-1]??this.points[this.points.length-1],p=this.points[i+1]??this.points[0],a=l.roundness,u=c&&p&&Zd(c,l,p);if(!l.controlsMoved()&&a>0&&!u){let d=l.curveBefore,f=l.curveAfter;if(d===void 0||f===void 0)continue;let m=l.roundedCurveBefore,h=l.roundedCurveAfter,g=d.getLength(),x=f.getLength(),v=Math.min(a,g*.499),w=Math.min(a,x*.499),S=Math.min(v,w),b=1-S/g,N=S/x,T=d.getPointAt(b,Gl),y=f.getPointAt(N,rS);this._subSplitCurve(d,m,b,T,void 0),this._subSplitCurve(f,h,N,void 0,y);let P;if(this.useCubicForRoundedCorners){let A=El(T,l.position,y)/2,O=Math.tan(A)*T.distanceTo(l.position),[_,L]=Jd(T,y,O,oS,nS),D=ef(_,L,l.position),[U,re]=tf(D,T,y,O,iS,sS);P=new Se.CubicBezierCurve(T.clone(),U.clone(),re.clone(),y.clone())}else P=new Se.QuadraticBezierCurve(T.clone(),l.position.clone(),y.clone());l.roundedCurveCorner=P,this.roundedCurves.splice(i+o,0,P),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,r,o,i,s){if(e instanceof Se.LineCurve)i!==void 0&&r.v2.copy(i),s!==void 0&&r.v1.copy(s);else{let l=e,c=r,p=l.getUtoTmapping(o,0),a=rf(l.v0,l.v1,l.v2,l.v3,p);return i!==void 0&&(c.v0.set(a[0],a[1]),c.v1.set(a[2],a[3]),c.v2.set(a[4],a[5]),c.v3.set(a[6],a[7])),s!==void 0&&(c.v0.set(a[6],a[7]),c.v1.set(a[8],a[9]),c.v2.set(a[10],a[11]),c.v3.set(a[12],a[13])),c}return r}clone(){let e=new _e(this._width,this._height);return e.points=this.points.map(r=>r.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(r=>r.clone()),e}toJSON(){return{points:this.points.reduce((e,r)=>e.concat(r.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){this.points=[],this.pointIDs=0;let r=e.points.length/7;for(let o=0;o<r;o++){let i=o*7,s=e.points[i+0],l=e.points[i+1],c=e.points[i+2],p=e.points[i+3],a=e.points[i+4],u=e.points[i+5],d=e.points[i+6],f=new Zt(Se.MathUtils.generateUUID(),new Se.Vector2(s,l));f.controls[0].position.set(c,p),f.controls[1].position.set(a,u),f.roundness=d,this.points.push(f)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let i=new _e;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let r=(i,s)=>{s instanceof Se.CubicBezierCurve&&s.v3.equals(i.position)&&i.controls[0].position.copy(s.v2)},o=i=>{let s=[],l,c;for(l=0,c=i.length;l<c;l++)i[l]instanceof Se.QuadraticBezierCurve&&(i[l]=Qd(i[l]));for(l=0,c=i.length;l<c;l++){let u=i[l],d=l>0?i[l-1]:null,f;u instanceof Se.CubicBezierCurve?(f=this.createPoint(u.v0),f.controls[1].position.copy(u.v1)):u instanceof Se.LineCurve&&(f=this.createPoint(u.v1)),f!==void 0&&(d!==null&&r(f,d),s.push(f))}let p=i[i.length-1],a=!1;return p instanceof Se.CubicBezierCurve?p.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(p.v2),a=!0):p instanceof Se.LineCurve&&p.v2.equals(s[0].position)&&(a=!0),this.isClosed=a,s};return this.points=o(e.curves),e instanceof Se.Shape&&(this.shapeHoles=e.holes.map(i=>{let s=new _e;return s.fromShape(i),s})),this.update(),this}};var Po=require("three");var Me;(function(n){n[n.ODD=0]="ODD",n[n.NONZERO=1]="NONZERO",n[n.POSITIVE=2]="POSITIVE",n[n.NEGATIVE=3]="NEGATIVE",n[n.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Me||(Me={}));var Ze;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Ze||(Ze={}));function ue(n,t){if(!n)throw t||"Assertion Failed!"}var 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){ue(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?o<i?e.t-t.t+(t.t-r.t)*(o/(o+i)):e.t-r.t+(r.t-t.t)*(i/(o+i)):0},n.edgeSign=function(t,e,r){ue(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?(e.t-r.t)*o+(e.t-t.t)*i:0},n.transEval=function(t,e,r){ue(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?o<i?e.s-t.s+(t.s-r.s)*(o/(o+i)):e.s-r.s+(r.s-t.s)*(i/(o+i)):0},n.transSign=function(t,e,r){ue(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?(e.s-r.s)*o+(e.s-t.s)*i:0},n.vertCCW=function(t,e,r){return t.s*(e.t-r.t)+e.s*(r.t-t.t)+r.s*(t.t-e.t)>=0},n.interpolate=function(t,e,r,o){return t=t<0?0:t,r=r<0?0:r,t<=r?r===0?(e+o)/2:e+(o-e)*(t/(t+r)):o+(e-o)*(r/(t+r))},n.intersect=function(t,e,r,o,i){var s,l,c;n.vertLeq(t,e)||(c=t,t=e,e=c),n.vertLeq(r,o)||(c=r,r=o,o=c),n.vertLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.vertLeq(r,e)?n.vertLeq(e,o)?(s=n.edgeEval(t,r,e),l=n.edgeEval(r,e,o),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,e.s)):(s=n.edgeSign(t,r,e),l=-n.edgeSign(t,o,e),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,o.s)):i.s=(r.s+e.s)/2,n.transLeq(t,e)||(c=t,t=e,e=c),n.transLeq(r,o)||(c=r,r=o,o=c),n.transLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.transLeq(r,e)?n.transLeq(e,o)?(s=n.transEval(t,r,e),l=n.transEval(r,e,o),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,e.t)):(s=n.transSign(t,r,e),l=-n.transSign(t,o,e),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,o.t)):i.t=(r.t+e.t)/2},n}(),vi=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return n}(),xa=function(){function n(t){this.side=t,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(n.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),n}(),wn=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}return n}(),af=function(){function n(){var t=new wn,e=new vi,r=new xa(0),o=new xa(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,r.next=r,r.Sym=o,o.next=o,o.Sym=r,this.vHead=t,this.fHead=e,this.eHead=r,this.eHeadSym=o}return n.prototype.makeEdge_=function(t){var e=new xa(0),r=new xa(1);t.Sym.side<t.side&&(t=t.Sym);var o=t.Sym.next;return r.next=o,o.Sym.next=e,e.next=t,t.Sym.next=r,e.Sym=r,e.Onext=e,e.Lnext=r,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,r.Sym=e,r.Onext=r,r.Lnext=e,r.Org=null,r.Lface=null,r.winding=0,r.activeRegion=null,e},n.prototype.splice_=function(t,e){var r=t.Onext,o=e.Onext;r.Sym.Lnext=e,o.Sym.Lnext=t,t.Onext=o,e.Onext=r},n.prototype.makeVertex_=function(t,e,r){var o=t;ue(o,"Vertex can't be null!");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e;var s=e;do s.Org=o,s=s.Onext;while(s!==e)},n.prototype.makeFace_=function(t,e,r){var o=t;ue(o,"Face can't be null");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e,o.trail=null,o.marked=!1,o.inside=r.inside;var s=e;do s.Lface=o,s=s.Lnext;while(s!==e)},n.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,r=t.Sym.next;e.Sym.next=r,r.Sym.next=e},n.prototype.killVertex_=function(t,e){var r=t.anEdge,o=r;do o.Org=e,o=o.Onext;while(o!==r);var i=t.prev,s=t.next;s.prev=i,i.next=s},n.prototype.killFace_=function(t,e){var r=t.anEdge,o=r;do o.Lface=e,o=o.Lnext;while(o!==r);var i=t.prev,s=t.next;s.prev=i,i.next=s},n.prototype.makeEdge=function(){var t=new wn,e=new wn,r=new vi,o=this.makeEdge_(this.eHead);return this.makeVertex_(t,o,this.vHead),this.makeVertex_(e,o.Sym,this.vHead),this.makeFace_(r,o,this.fHead),o},n.prototype.splice=function(t,e){var r=!1,o=!1;if(t!==e){if(e.Org!==t.Org&&(o=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!o){var i=new wn;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!r){var s=new vi;this.makeFace_(s,e,t.Lface),t.Lface.anEdge=t}}},n.prototype.delete=function(t){var e=t.Sym,r=!1;if(t.Lface!==t.Rface&&(r=!0,this.killFace_(t.Lface,t.Rface)),t.Onext===t)this.killVertex_(t.Org,null);else if(t.Rface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev),!r){var o=new vi;this.makeFace_(o,t,t.Lface)}e.Onext===e?(this.killVertex_(e.Org,null),this.killFace_(e.Lface,null)):(t.Lface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),this.killEdge_(t)},n.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),r=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new wn;return this.makeVertex_(o,r,e.Org),e.Lface=r.Lface=t.Lface,e},n.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t),r=e.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,r),t.Dst=r.Org,r.Dst.anEdge=r.Sym,r.Rface=t.Rface,r.winding=t.winding,r.Sym.winding=t.Sym.winding,r.idx=t.idx,r.Sym.idx=t.Sym.idx,r},n.prototype.connect=function(t,e){var r=!1,o=this.makeEdge_(t),i=o.Sym;if(e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(o,t.Lnext),this.splice_(i,e),o.Org=t.Dst,i.Org=e.Org,o.Lface=i.Lface=t.Lface,t.Lface.anEdge=i,!r){var s=new vi;this.makeFace_(s,o,t.Lface)}return o},n.prototype.zapFace=function(t){var e=t.anEdge,r,o,i,s,l;o=e.Lnext;do r=o,o=r.Lnext,r.Lface=null,r.Rface===null&&(r.Onext===r?this.killVertex_(r.Org,null):(r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev)),i=r.Sym,i.Onext===i?this.killVertex_(i.Org,null):(i.Org.anEdge=i.Onext,this.splice_(i,i.Oprev)),this.killEdge_(r));while(r!=e);s=t.prev,l=t.next,l.prev=s,s.next=l},n.prototype.countFaceVerts_=function(t){var e=t.anEdge,r=0;do r++,e=e.Lnext;while(e!==t.anEdge);return r},n.prototype.mergeConvexFaces=function(t){var e,r,o,i,s,l,c;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(r=e.anEdge,s=r.Org;o=r.Lnext,i=r.Sym,i&&i.Lface&&i.Lface.inside&&(l=this.countFaceVerts_(e),c=this.countFaceVerts_(i.Lface),l+c-2<=t&&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){ue(o.prev===i),c=o.anEdge;do ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c),ue(c.Lface===o),c=c.Lnext;while(c!==o.anEdge)}for(ue(o.prev===i&&o.anEdge===null),l=e,l=e;(s=l.next)!==e;l=s){ue(s.prev===l),c=s.anEdge;do ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c),ue(c.Org===s),c=c.Onext;while(c!==s.anEdge)}for(ue(s.prev===l&&s.anEdge===null),p=r,p=r;(c=p.next)!==r;p=c)ue(c.Sym.next===p.Sym),ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Org!==null),ue(c.Dst!==null),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c);ue(c.Sym.next===p.Sym&&c.Sym===this.eHeadSym&&c.Sym.Sym===c&&c.Org===null&&c.Dst===null&&c.Lface===null&&c.Rface===null)},n}(),lf=function(){function n(){this.handle=null}return n}(),cf=function(){function n(){this.key=null,this.node=0}return n}(),aS=function(){function n(t,e){this.leq=e,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=t,this.nodes=[],this.handles=[];for(var r=0;r<t+1;r++)this.nodes[r]=new lf,this.handles[r]=new cf;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return n.prototype.floatDown_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t<<1,s<this.size&&this.leq(r[e[s+1].handle].key,r[e[s].handle].key)&&++s,ue(s<=this.max),i=e[s].handle,s>this.size||this.leq(r[o].key,r[i].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=s}},n.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t>>1,i=e[s].handle,s===0||this.leq(r[i].key,r[o].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=s}},n.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},n.prototype.min=function(){return this.handles[this.nodes[1].handle].key},n.prototype.insert=function(t){var e,r;if(e=++this.size,e*2>this.max){this.max*=2;var o,i;for(i=this.nodes.length,this.nodes.length=this.max+1,o=i;o<this.nodes.length;o++)this.nodes[o]=new lf;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new cf}return this.freeList===0?r=e:(r=this.freeList,this.freeList=this.handles[r].node),this.nodes[e].handle=r,this.handles[r].node=e,this.handles[r].key=t,this.initialized&&this.floatUp_(e),r},n.prototype.extractMin=function(){var t=this.nodes,e=this.handles,r=t[1].handle,o=e[r].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[r].key=null,e[r].node=this.freeList,this.freeList=r,--this.size,this.size>0&&this.floatDown_(1)),o},n.prototype.delete=function(t){var e=this.nodes,r=this.handles,o;ue(t>=1&&t<=this.max&&r[t].key!==null),o=r[t].node,e[o].handle=e[this.size].handle,r[e[o].handle].node=o,--this.size,o<=this.size&&(o<=1||this.leq(r[e[o>>1].handle].key,r[e[o].handle].key)?this.floatDown_(o):this.floatUp_(o)),r[t].key=null,r[t].node=this.freeList,this.freeList=t},n}(),Rl=function(){function n(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return n}(),uf=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),lS=function(){function n(t,e){this.frame=t,this.leq=e,this.head=new uf,this.head.next=this.head,this.head.prev=this.head}return n.prototype.min=function(){return this.head.next},n.prototype.max=function(){return this.head.prev},n.prototype.insert=function(t){return this.insertBefore(this.head,t)},n.prototype.search=function(t){var e=this.head;do e=e.next;while(e.key!==null&&!this.leq(this.frame,t,e.key));return e},n.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var r=new uf;return r.key=e,r.next=t.next,t.next.prev=r,r.prev=t,t.next=r,r},n.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},n}(),cS=function(){function n(){}return n.regionBelow=function(t){return t.nodeUp.prev.key},n.regionAbove=function(t){return t.nodeUp.next.key},n.debugEvent=function(t){},n.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.edgeLeq=function(t,e,r){var o=t.event,i=e.eUp,s=r.eUp;if(i.Dst===o)return s.Dst===o?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&&ue(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},n.fixUpperEdge=function(t,e,r){ue(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=r,r.activeRegion=e},n.topLeftRegion=function(t,e){var r=e.eUp.Org,o;do e=n.regionAbove(e);while(e.eUp.Org===r);if(e.fixUpperEdge){if(o=t.mesh.connect(n.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;n.fixUpperEdge(t,e,o),e=n.regionAbove(e)}return e},n.topRightRegion=function(t){var e=t.eUp.Dst;do t=n.regionAbove(t);while(t.eUp.Dst===e);return t},n.addRegionBelow=function(t,e,r){var o=new Rl;return o.eUp=r,o.nodeUp=t.dict.insertBefore(e.nodeUp,o),o.fixUpperEdge=!1,o.sentinel=!1,o.dirty=!1,r.activeRegion=o,o},n.isWindingInside=function(t,e){switch(t.windingRule){case Me.ODD:return(e&1)!==0;case Me.NONZERO:return e!==0;case Me.POSITIVE:return e>0;case Me.NEGATIVE:return e<0;case Me.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},n.computeWinding=function(t,e){e.windingNumber=n.regionAbove(e).windingNumber+e.eUp.winding,e.inside=n.isWindingInside(t,e.windingNumber)},n.finishRegion=function(t,e){var r=e.eUp,o=r.Lface;o.inside=e.inside,o.anEdge=r,n.deleteRegion(t,e)},n.finishLeftRegions=function(t,e,r){for(var o,i=null,s=e,l=e.eUp;s!==r;){if(s.fixUpperEdge=!1,i=n.regionBelow(s),o=i.eUp,o.Org!=l.Org){if(!i.fixUpperEdge){n.finishRegion(t,s);break}o=t.mesh.connect(l.Lprev,o.Sym),n.fixUpperEdge(t,i,o)}l.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(l,o)),n.finishRegion(t,s),l=i.eUp,s=i}return l},n.addRightEdges=function(t,e,r,o,i,s){var l,c,p,a,u=!0;p=r;do ue(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,ue(c.windingNumber-p.winding===l.windingNumber),s&&n.walkDirtyRegions(t,c)},n.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},n.vertexWeights=function(t,e,r){var o=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(ue(!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 wn,f,m;if(ue(!ae.vertEq(p,c)),ue(ae.edgeSign(c,t.event,s)<=0),ue(ae.edgeSign(p,t.event,l)>=0),ue(s!==t.event&&l!==t.event),ue(!e.fixUpperEdge&&!r.fixUpperEdge),s===l||(a=Math.min(s.t,c.t),u=Math.max(l.t,p.t),a>u))return!1;if(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),ue(Math.min(s.t,c.t)<=d.t),ue(d.t<=Math.max(l.t,p.t)),ue(Math.min(p.s,c.s)<=d.s),ue(d.s<=Math.max(l.s,s.s)),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)){ue(!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}ue(!1),e=n.topRightRegion(e),c=n.regionBelow(e),s=c.eUp.Sym,i=l=s.Onext,c.fixUpperEdge&&(ue(i!==s),n.deleteRegion(t,c),t.mesh.delete(s),s=i.Oprev),t.mesh.splice(r.anEdge,s),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 Rl;if(p.eUp=e.anEdge.Sym,r=t.dict.search(p).key,o=n.regionBelow(r),!!o){if(s=r.eUp,l=o.eUp,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);ue(o!==null);var i=n.regionBelow(o),s=i.eUp,l=n.finishLeftRegions(t,i,null);l.Onext===s?n.connectRightVertex(t,o,l):n.addRightEdges(t,o,l.Onext,s,s,!0)},n.addSentinel=function(t,e,r,o){var i=new Rl,s=t.mesh.makeEdge();s.Org.s=r,s.Org.t=o,s.Dst.s=e,s.Dst.t=o,t.event=s.Dst,i.eUp=s,i.windingNumber=0,i.inside=!1,i.fixUpperEdge=!1,i.sentinel=!0,i.dirty=!1,i.nodeUp=t.dict.insert(i)},n.initEdgeDict=function(t){t.dict=new lS(t,n.edgeLeq);var e=t.bmax[0]-t.bmin[0],r=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,i=t.bmax[0]+e,s=t.bmin[1]-r,l=t.bmax[1]+r;n.addSentinel(t,o,i,s),n.addSentinel(t,o,i,l)},n.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(ue(e.fixUpperEdge),ue(++r===1)),ue(e.windingNumber===0),n.deleteRegion(t,e)},n.removeDegenerateEdges=function(t){var e,r,o,i=t.mesh.eHead;for(e=i.next;e!==i;e=r)r=e.next,o=e.Lnext,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 aS(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,ue(i.Lnext!==i),i.Lnext.Lnext===i&&(n.addWinding(i.Onext,i),t.mesh.delete(i));return!0},n.computeInterior=function(t,e){e===void 0&&(e=!0);var r,o;if(n.removeDegenerateEdges(t),!n.initPriorityQ(t))return!1;for(n.initEdgeDict(t);(r=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!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}(),uS=function(){function n(){this.mesh=new af,this.normal=[0,0,0],this.sUnit=[0,0,0],this.tUnit=[0,0,0],this.bmin=[0,0],this.bmax=[0,0],this.windingRule=Me.ODD,this.dict=null,this.pq=null,this.event=null,this.vertexIndexCounter=0,this.vertices=[],this.vertexIndices=[],this.vertexCount=0,this.elements=[],this.elementCount=0}return n.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},n.prototype.normalize_=function(t){var e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];if(!e)throw"Zero-size vector!";e=Math.sqrt(e),t[0]/=e,t[1]/=e,t[2]/=e},n.prototype.longAxis_=function(t){var e=0;return Math.abs(t[1])>Math.abs(t[0])&&(e=1),Math.abs(t[2])>Math.abs(t[e])&&(e=2),e},n.prototype.computeNormal_=function(t){var e,r,o,i,s,l,c=[0,0,0],p=[0,0,0],a=[0,0,0],u=[0,0,0],d=[0,0,0],f=[null,null,null],m=[null,null,null],h=this.mesh.vHead;e=h.next;for(var g=0;g<3;++g)i=e.coords[g],p[g]=i,m[g]=e,c[g]=i,f[g]=e;for(e=h.next;e!==h;e=e.next)for(var 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===Ze.CONNECTED_POLYGONS&&(s*=2),this.elements=[],this.elements.length=s*r,this.vertexCount=l,this.vertices=[],this.vertices.length=l*o,this.vertexIndices=[],this.vertexIndices.length=l;for(var p=t.vHead.next;p!==t.vHead;p=p.next)if(p.n!==-1){var u=p.n*o;this.vertices[u+0]=p.coords[0],this.vertices[u+1]=p.coords[1],o>2&&(this.vertices[u+2]=p.coords[2]),this.vertexIndices[p.n]=p.idx}for(var d=0,a=t.fHead.next;a!==t.fHead;a=a.next)if(!!a.inside){i=a.anEdge,c=0;do{var p=i.Org;this.elements[d++]=p.n,c++,i=i.Lnext}while(i!==a.anEdge);for(var f=c;f<r;++f)this.elements[d++]=-1;if(e===Ze.CONNECTED_POLYGONS){i=a.anEdge;do this.elements[d++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==a.anEdge);for(var m=c;m<r;++m)this.elements[d++]=-1}}},n.prototype.outputContours_=function(t,e){var r,o,i=0,s=0;this.vertexCount=0,this.elementCount=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){o=r=l.anEdge;do this.vertexCount++,r=r.Lnext;while(r!==o);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*e,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var c=0,p=0,a=0;i=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){s=0,o=r=l.anEdge;do this.vertices[c++]=r.Org.coords[0],this.vertices[c++]=r.Org.coords[1],e>2&&(this.vertices[c++]=r.Org.coords[2]),this.vertexIndices[p++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,s++,r=r.Lnext;while(r!==o);this.elements[a++]=i,this.elements[a++]=s,i+=s}},n.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new af),t<2&&(t=2),t>3&&(t=3);for(var r=null,o=0;o<e.length;o+=t)r===null?(r=this.mesh.makeEdge(),this.mesh.splice(r,r.Sym)):(this.mesh.splitEdge(r),r=r.Lnext),r.Org.coords[0]=e[o+0],r.Org.coords[1]=e[o+1],t>2?r.Org.coords[2]=e[o+2]:r.Org.coords[2]=0,r.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(r),r.winding=1,r.Sym.winding=-1},n.prototype.tesselate=function(t,e,r,o,i,s){if(t===void 0&&(t=Me.ODD),e===void 0&&(e=Ze.POLYGONS),s===void 0&&(s=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,i&&(this.normal[0]=i[0],this.normal[1]=i[1],this.normal[2]=i[2]),this.windingRule=t,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),cS.computeInterior(this,s);var l=this.mesh;return e===Ze.BOUNDARY_CONTOURS?this.setWindingNumber_(l,1,!0):this.tessellateInterior_(l),s&&l.check(),e===Ze.BOUNDARY_CONTOURS?this.outputContours_(l,o):this.outputPolymesh_(l,e,r,o),!0},n}();function Io(n){var t=n.windingRule,e=t===void 0?Me.ODD:t,r=n.elementType,o=r===void 0?Ze.POLYGONS:r,i=n.polySize,s=i===void 0?3:i,l=n.vertexSize,c=l===void 0?2:l,p=n.normal,a=p===void 0?[0,0,1]:p,u=n.contours,d=u===void 0?[]:u,f=n.strict,m=f===void 0?!0:f,h=n.debug,g=h===void 0?!1:h;if(!d&&m)throw new Error("Contours can't be empty");if(!!d){var x=new uS;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 e3=Me.ODD,t3=Me.NONZERO,r3=Me.POSITIVE,o3=Me.NEGATIVE,n3=Me.ABS_GEQ_TWO,i3=Ze.POLYGONS,s3=Ze.CONNECTED_POLYGONS,a3=Ze.BOUNDARY_CONTOURS;var _n=class extends Po.BufferGeometry{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Me.ODD;this.elementType=Ze.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:Me.ODD,elementType:Ze.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),s=this._shape.shapeHoles.map(m=>m.extractShapePointsToFlatArray([],this._curveSegments)),l,c=!0,p=!0,a,u;for(let m=0,h=i.length/2;m<h;m++){let g=m*2,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=Io({contours:[i,...s],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let d=l?.vertexCount??1,f=l?.elementCount??1;if(this._positionAttribute=new Po.BufferAttribute(new Float32Array(d*3),3),this._normalAttribute=new Po.BufferAttribute(new Float32Array(d*3),3),this._uvAttribute=new Po.BufferAttribute(new Float32Array(d*2),2),this._indexAttribute=new Po.BufferAttribute(new Uint32Array(f*3),1),l){let m=1/0,h=-1/0,g=1/0,x=-1/0;for(let S=0,b=d;S<b;S++){let N=S*2,T=l.vertices[N+0],y=l.vertices[N+1];T<m&&(m=T),T>h&&(h=T),y<g&&(g=y),y>x&&(x=y)}let v=h-m,w=x-g;for(let S=0,b=d;S<b;S++){let N=S*2,T=l.vertices[N+0],y=l.vertices[N+1],P=(T-m)/v,A=(y-g)/w;this._positionAttribute.setXYZ(S,T,y,0),this._normalAttribute.setXYZ(S,0,0,1),this._uvAttribute.setXY(S,P,A)}for(let S=0,b=f;S<b;S++){let N=S*3,T=l.elements[N+0],y=l.elements[N+1],P=l.elements[N+2];this._indexAttribute.setX(N+0,T),this._indexAttribute.setX(N+1,y),this._indexAttribute.setX(N+2,P)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(l?.elementCount??1)*3)}clone(){let e=new _n(this._shape,this._curveSegments);return e.userData=ui(this.userData),e}};var Oo=require("three");var va=class{constructor(t=256,e=!1){this.capacity=t,this.size=0,this.debug=e,this.debug&&console.log(`allocating with cap ${t}`);let r=t*va.eSize;this.buffer=new ArrayBuffer(r);let o=Float32Array.BYTES_PER_ELEMENT,i=0;this.positions=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.normals=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.uvs=new Float32Array(this.buffer,i*o,2*t)}realloc(t,e=!1){if(t<this.size)throw Error("cannot shrink buffer");if(t<=this.capacity&&!e)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${t}`);let r=t*va.eSize,o=new ArrayBuffer(r),i=Float32Array.BYTES_PER_ELEMENT,s=0,l=new Float32Array(o,s*i,3*t);s+=3*t;let c=new Float32Array(o,s*i,3*t);s+=3*t;let p=new Float32Array(o,s*i,2*t);l.set(this.positions.slice(0,this.size*3)),c.set(this.normals.slice(0,this.size*3)),p.set(this.uvs.slice(0,this.size*2)),this.buffer=o,this.positions=l,this.normals=c,this.uvs=p,this.capacity=t}get(t=1){let e=this.size+t;if(e>this.capacity){let o=this.capacity;for(;e>o;)o*=2;this.realloc(o)}let r=this.size;return this.size=e,r}reserve(t){let e=this.size+t;e>this.capacity&&this.realloc(e)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},bi=va;bi.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Vl=(n,t)=>([e,r])=>(r<e&&(r+=t),(n>=e?n:n+t)<=r),Tn=class extends Oo.BufferGeometry{constructor(e,r,o=0,i=12,s=3,l=Me.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=r,this._bevel=o,this._curveSegments=i,this._bevelSegmentsInput=s,o<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(o,r/2-1e-12),this._bevelSegments=Math.floor(s));let c=this._shape.extractShapePointsToFlatArray([],i),p=this._shape.shapeHoles.map(y=>{let P=y.extractShapePointsToFlatArray([],i),A=[];for(let O=P.length-1;O>=1;O-=2){let _=P[O-1],L=P[O-0];A.push(_,L)}return A}),a=Io({windingRule:l,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[c]}),u=Io({windingRule:Me.ODD,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...p]});if(!a)throw new Error("error generating geometry");let d=a.elementCount;if(u){a.elementCount+=u.elementCount;for(let y=0;y<u.elements.length;y++){let P=u.elements[y],A=y%2===0?a.vertexCount:0;a.elements.push(P+A)}for(let y=0;y<u.vertexIndices.length;y++){let P=u.vertexIndices[y],A=a.vertexCount;a.vertexIndices.push(P+A)}for(let y=0;y<u.vertices.length;y++){let P=u.vertices[y];a.vertices.push(P)}}let f=1/0,m=-1/0,h=1/0,g=-1/0;for(let y=0,P=a.vertexCount;y<P;y++){let A=y*2,O=a.vertices[A+0],_=a.vertices[A+1];O<f&&(f=O),O>m&&(m=O),_<h&&(h=_),_>g&&(g=_)}this._minX=f,this._minY=h,this._width=m-f,this._height=g-h;let x=a.vertexCount*2*(2+this._bevelSegments);this._buffer=new bi(x);let v=[],w=[];for(let y=a.elementCount-1;y>=0;y--){let P=y>=d,A=y*2,O=a.elements[A+0],_=a.elements[A+1],L=O+_,D={start:O,count:_,normals:[],continuous:[],concave:[]},U=O,re=L-1,Q=O+1,ce=this._shape.roundedCurves.length;do{let F=U-O,M=a.vertices[re*2+0],B=a.vertices[re*2+1],E=a.vertices[U*2+0],j=a.vertices[U*2+1],Z=a.vertices[Q*2+0],k=a.vertices[Q*2+1],V=E-M,R=j-B,z=Math.sqrt(V*V+R*R);V/=z,R/=z;let J=E-Z,oe=j-k,se=Math.sqrt(J*J+oe*oe);J/=se,oe/=se,D.normals[F*2+0]=-oe,D.normals[F*2+1]=J,D.concave[F]=V*oe-R*J>0;let te=a.vertexIndices[U];if(Array.isArray(te))D.continuous[F]=!1;else{let[ee,K]=this._shape.getCurveIndexFromVertexId(te-1,!0);if(K>0&&K<1)D.continuous[F]=!0;else{let X=K===1?ee+1:ee-1;X=(X+ce)%ce;let me=K===1?0:1,de=this._shape.roundedCurves[ee].getTangent(K),xe=this._shape.roundedCurves[X].getTangent(me);D.continuous[F]=de.dot(xe)>.95}}P&&(D.normals[F*2+0]*=-1,D.normals[F*2+1]*=-1),[re,U,Q]=[U,Q,Q+1],Q>=L&&(Q-=_)}while(Q!==O+1);let H=[];H.push({bevelI:0,angle:0,size:0,boundary:{vertices:a.vertices.slice(O*2,L*2),vertexCount:_,vertexIndices:new Array(_).fill(!0).map((F,M)=>[M,M]),elements:[0,_],elementCount:1,mesh:null},reverseMap:[],insetPoints:a.vertices.slice(O*2,L*2)});for(let F=1;F<=this._bevelSegments;F++){let M=F/this._bevelSegments*Math.PI/2,B=(1-Math.cos(M))*this._bevelSize,E=[],j=[],Z=[],k=[],V=0;for(let z=0;z<_;z++){let J=z*2,oe=(z-1+_)%_*2,se=a.vertices[D.start*2+J+0],te=a.vertices[D.start*2+J+1],ee=-D.normals[oe+0]*B,K=-D.normals[oe+1]*B,X=-D.normals[J+0]*B,me=-D.normals[J+1]*B;if(D.concave[z]||!D.concave[z]&&P){let de=Math.atan2(K,ee),xe=Math.atan2(me,X);xe>de&&(xe-=Math.PI*2);let nt=xe-de;if(D.continuous[z]||P){let Ne=de+nt/2,Pe=Math.cos(Ne)*B,Le=Math.sin(Ne)*B;E[2*V+0]=se+Pe*(P?-1:1),E[2*V+1]=te+Le*(P?-1:1),k[V]=z,V++}else{let Ne=Math.max(1,Math.floor(i/4*Math.abs(nt)/Math.PI));for(let Pe=0;Pe<=Ne;Pe++){let Le=de+nt*(Pe/Ne),Ut=Math.cos(Le)*B,jr=Math.sin(Le)*B;E[2*V+0]=se+Ut,E[2*V+1]=te+jr,k[V]=z,V++}}}else E[2*V+0]=se+ee,E[2*V+1]=te+K,k[V]=z,j[z]=V,V++,E[2*V+0]=se,E[2*V+1]=te,k[V]=z,V++,E[2*V+0]=se+X,E[2*V+1]=te+me,k[V]=z,Z[z]=V,V++}let R=Io({windingRule:Me.POSITIVE,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[E],edgeCreateCallback:z=>{let oe=z.Org.idx,se=k[oe],te=k[(oe+1)%k.length];z.idx=[se,te],z.Sym.idx=[te,se]},vertexIdCallback:z=>{let J=z.Lprev.idx;return[J?J[1]:0,z.idx[0]]}});if(!R)throw console.log("Error"),new Error(`error generating bevel geometry for ${F}'th loop`);if(!R.vertexCount)break;for(let z=0;z<R.vertexIndices.length;z++){let[J,oe]=R.vertexIndices[z];if(J===oe)continue;let se=oe;oe<J&&(se+=_);for(let te=J;te<se;te++){let ee=te%_,K=(te+1)%_;if(!D.continuous[ee]||!D.continuous[K]){R.vertexIndices[z]=[J,ee],R.vertexIndices.splice(z+1,0,[K,oe]),R.vertices.splice((z+1)*2,0,R.vertices[z*2],R.vertices[z*2+1]);break}}}H.push({bevelI:F,angle:M,size:B,boundary:R,reverseMap:k,insetPoints:E})}let W=(F,M,B)=>{let E=0,j=F.boundary.vertexIndices.length;for(;E<j&&B(F.boundary.vertexIndices[M]);)M=(M+1)%j,E++;return E},q=v.length;for(let F=1;F<H.length;F++){let M=H[F-1],B=H[F],E=M.boundary.vertexIndices.length,j=B.boundary.vertexIndices.length;if(!E||!j)break;let Z=D.concave.length,k=0,V=Vl(k,_);for(;!M.boundary.vertexIndices.filter(V).length||!B.boundary.vertexIndices.filter(V).length;)k++,V=Vl(k,_);let R=M.boundary.vertexIndices.findIndex(V),z=B.boundary.vertexIndices.findIndex(V);do R=(R+1)%E;while(V(M.boundary.vertexIndices[R]));do z=(z+1)%j;while(V(B.boundary.vertexIndices[z]));k=(k+1)%_;let J=k,oe=this.buildBevelVert(D,M,(R-1+E)%E),se=this.buildBevelVert(D,B,(z-1+j)%j),te=oe,ee=se,K,X,me=!1;do{V=Vl(k,_);let de=W(M,R,V),xe=W(B,z,V),nt=me;if(me=!1,de&&!xe){for(let Ne=0;Ne<de;Ne++)K=this.buildBevelVert(D,M,(R+Ne)%E,Ne/(de-1)),v.push(te.topN,K.topP,ee.topN),v.push(K.bottomP,te.bottomN,ee.bottomN),te=K;me=!0}else if(!de&&xe)for(let Ne=0;Ne<xe;Ne++)X=this.buildBevelVert(D,B,(z+Ne)%j,Ne/(xe-1)),v.push(ee.topN,te.topP,X.topP),v.push(te.bottomP,ee.bottomN,X.bottomP),ee=X;else if(de&&xe)if(K=this.buildBevelVert(D,M,R,0),X=this.buildBevelVert(D,B,z,0),nt?(v.push(te.topN,X.topP,ee.topN),v.push(te.topN,K.topP,X.topP),v.push(X.bottomP,te.bottomN,ee.bottomN),v.push(X.bottomP,K.bottomP,te.bottomN)):(v.push(ee.topN,te.topN,K.topP),v.push(ee.topN,K.topP,X.topP),v.push(K.bottomP,te.bottomN,ee.bottomN),v.push(K.bottomP,ee.bottomN,X.bottomP)),te=K,ee=X,de===xe)for(let Ne=1;Ne<de;Ne++)K=this.buildBevelVert(D,M,(R+Ne)%E,Ne/(de-1)),X=this.buildBevelVert(D,B,(z+Ne)%j,Ne/(xe-1)),v.push(te.topN,K.topP,ee.topN),v.push(ee.topN,K.topP,X.topP),v.push(K.bottomP,te.bottomN,ee.bottomN),v.push(K.bottomP,ee.bottomN,X.bottomP),te=K,ee=X;else if(de>xe){let Ne=de/xe,Pe=0;for(let Le=1;Le<de;Le++)K=this.buildBevelVert(D,M,(R+Le)%E,Le/(de-1)),v.push(te.topN,K.topP,ee.topN),v.push(K.bottomP,te.bottomN,ee.bottomN),te=K,Le>(Pe+1)*Ne&&(Pe++,X=this.buildBevelVert(D,B,(z+Pe)%j,Pe/(xe-1)),v.push(ee.topN,K.topP,X.topP),v.push(K.bottomP,ee.bottomN,X.bottomP),ee=X)}else{let Ne=xe/de,Pe=0;for(let Le=1;Le<xe;Le++)X=this.buildBevelVert(D,B,(z+Le)%j,Le/(xe-1)),v.push(ee.topN,K.topP,X.topP),v.push(K.bottomP,ee.bottomN,X.bottomP),ee=X,Le>(Pe+1)*Ne&&(Pe++,K=this.buildBevelVert(D,M,(R+Pe)%E,Pe/(de-1)),v.push(te.topN,K.topP,ee.topN),v.push(K.bottomP,te.bottomN,ee.bottomN),te=K)}R=(R+de)%E,z=(z+xe)%j,k=(k+1)%Z}while(k!==J)}{let F=H[0];for(let M=0,B=F.boundary.vertexCount;M<B;M++){let E=this.buildBevelVert(D,F,M),j=this.buildBevelVert(D,F,(M+1)%B);v.push(j.topP,E.topN,E.bottomN),v.push(j.topP,E.bottomN,j.bottomP)}}if(P){let F=[];for(let M=v.length-1;M>=q+2;M-=3){let B=v[M-2],E=v[M-1],j=v[M-0];F.push(j,E,B)}v.splice(q,v.length-q,...F)}if(P){let F=[];for(let M=H[H.length-1].boundary.vertices.length-1;M>=1;M-=2){let B=H[H.length-1].boundary.vertices[M-1],E=H[H.length-1].boundary.vertices[M-0];F.push(B,E)}w.push(F)}if(!P){let F=H[H.length-1],M=Io({windingRule:H.length>1?Me.POSITIVE:Me.ODD,elementType:Ze.POLYGONS,vertexSize:2,strict:!0,contours:[F.insetPoints,...w]});if(!M)throw new Error("Error generating geometry for surface");p.length===0&&Object.assign(this,{capStartIndex:v.length});for(let B=0;B<M.elementCount*3;B+=3){let E=this.buildSurfaceVert(M,M.elements[B+0]),j=this.buildSurfaceVert(M,M.elements[B+1]),Z=this.buildSurfaceVert(M,M.elements[B+2]);v.push(E.top,j.top,Z.top),v.push(Z.bottom,j.bottom,E.bottom)}}this.vertexCache={}}this._buffer.shrink();let S=new Oo.BufferAttribute(Uint32Array.from(v),1),b=new Oo.BufferAttribute(this._buffer.positions,3),N=new Oo.BufferAttribute(this._buffer.normals,3),T=new Oo.BufferAttribute(this._buffer.uvs,2);b.needsUpdate=!0,N.needsUpdate=!0,T.needsUpdate=!0,S.needsUpdate=!0,this.setAttribute("position",b),this.setAttribute("normal",N),this.setAttribute("uv",T),this.setIndex(S)}buildSurfaceVert(e,r){let o=r.toString();if(o in this.vertexCache)return this.vertexCache[o];let i=e.vertices[r*2+0],s=e.vertices[r*2+1],l=(i-this._minX)/this._width,c=(s-this._minY)/this._height,p=this._buffer.get(2),a=p*3,u=p*2,d={top:p+0,bottom:p+1};return this._buffer.positions[a+0]=i,this._buffer.positions[a+1]=s,this._buffer.positions[a+2]=this._depth,this._buffer.normals[a+0]=0,this._buffer.normals[a+1]=0,this._buffer.normals[a+2]=1,this._buffer.uvs[u+0]=l,this._buffer.uvs[u+1]=c,this._buffer.positions[a+3]=i,this._buffer.positions[a+4]=s,this._buffer.positions[a+5]=0,this._buffer.normals[a+3]=0,this._buffer.normals[a+4]=0,this._buffer.normals[a+5]=-1,this._buffer.uvs[u+2]=l,this._buffer.uvs[u+3]=c,this.vertexCache[o]=d,d}buildBevelVert(e,r,o,i=1){let s=`${r.bevelI}:${o}`;if(s in this.vertexCache)return this.vertexCache[s];let[l,c]=r.boundary.vertexIndices[o],p,a,u,d;l!==c?(a=l,p=c,d=!1,u=e.continuous[a]&&e.continuous[p]):(p=l,a=(p-1+e.count)%e.count,d=e.concave[p]&&r.bevelI>0,u=e.continuous[p]||d);let f=Math.cos(r.angle),m=Math.sin(r.angle),h=o*2,g=p*2,x=a*2,v=r.boundary.vertices[h+0],w=r.boundary.vertices[h+1],S=(1-m)*this._bevelSize,b=(v-this._minX)/this._width,N=(w-this._minY)/this._height,T=e.normals[g+0],y=e.normals[g+1],P=e.normals[x+0],A=e.normals[x+1];if(d){let U=P-T,re=A-y;T=T+U*(1-i),y=y+re*(1-i);let Q=Math.sqrt(T*T+y*y);T/=Q,y/=Q}let O=this._buffer.get(u?2:4),_=O*3,L=O*2,D={i:o,fi:p,topP:O+0,topN:O+0,bottomP:O+1,bottomN:O+1};return this._buffer.positions[_+0]=v,this._buffer.positions[_+1]=w,this._buffer.positions[_+2]=this._depth-S,this._buffer.normals[_+0]=T*f,this._buffer.normals[_+1]=y*f,this._buffer.normals[_+2]=m,this._buffer.uvs[L+0]=b,this._buffer.uvs[L+1]=N,this._buffer.positions[_+3]=v,this._buffer.positions[_+4]=w,this._buffer.positions[_+5]=S,this._buffer.normals[_+3]=T*f,this._buffer.normals[_+4]=y*f,this._buffer.normals[_+5]=-m,this._buffer.uvs[L+2]=N,this._buffer.uvs[L+3]=b,u||(O+=2,_+=6,L+=4,D.topP=O+0,D.bottomP=O+1,this._buffer.positions[_+0]=v,this._buffer.positions[_+1]=w,this._buffer.positions[_+2]=this._depth-S,this._buffer.normals[_+0]=P*f,this._buffer.normals[_+1]=A*f,this._buffer.normals[_+2]=m,this._buffer.uvs[L+0]=b,this._buffer.uvs[L+1]=N,this._buffer.positions[_+3]=v,this._buffer.positions[_+4]=w,this._buffer.positions[_+5]=S,this._buffer.normals[_+3]=P*f,this._buffer.normals[_+4]=A*f,this._buffer.normals[_+5]=-m,this._buffer.uvs[L+2]=N,this._buffer.uvs[L+3]=b),this.vertexCache[s]=D,D}clone(){let e=new Tn(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=ui(this.userData),e}};var dt=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:Me.ODD},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),s=n.shape??t?.shape,l=s?.roundness??e.roundness;s!==void 0&&(s instanceof _e?(s.width!==r||s.height!==o)&&s.applySize(r,o):s=new _e(r,o).fromJSON(s),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&s.update(!1));let c=s??new _e(r,o);return{parameters:Object.assign(e,{width:r,height:o,depth:i,roundness:l}),shape:c}}static build(n){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:r,subdivisions:o,roundness:i,windingRule:s}=n.parameters;n.shape.roundness=i;let l;return t<=0?l=new _n(n.shape,o,{windingRule:s}):l=new Tn(n.shape,t,e,o,r,s),Object.assign(l,{userData:{...n,type:"VectorGeometry"}})}};var Ua=require("three");var ff=require("three");var Ve=require("three"),df=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},n.parameters),r=e.width/2,o=e.radiusTop??r,i=e.radiusBottom??r;return o===i?(o=r,i=r):o>i?(o=r,i=i*r/o):(o=o*r/i,i=r),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),radiusTop:o,radiusBottom:i})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,radiusTop:p,radiusBottom:a,cornerRadius:u,cornerSegments:d,hollow:f}=n.parameters,m;return u||f?m=new Si(p,a,r,o,i,s,l,c*Math.PI/180,u,u,d,f):m=new Ve.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 io(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function pf(n){return new Ve.Vector2(n.y,-n.x)}var Si=class extends Ve.BufferGeometry{constructor(t,e,r,o,i,s,l,c,p,a,u,d,f=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,e=e!==void 0?e:1,r=r||1,o=Math.floor(o)||8,i=Math.floor(i)||1,s=s!==void 0?s:!1,l=l!==void 0?l:0,c=c!==void 0?c:Math.PI*2,s&&(p=0,a=0);let m=[],h=[],g=[],x=[],v=0,w=r/2,S=new Ve.Vector3,b=new Ve.Vector3;f&&t==0&&(t=p),f&&e==0&&(e=a);let N=new Ve.Vector2(t,w),T=new Ve.Vector2(e,-w),y=null,P=null,A=null,O=null,_=N.clone().sub(T),L=0,D=0,U=0;d>0&&(L=Math.min(t,e)*(1-d),D=t-L,U=e-L);let re=N.clone();re.x-=L;let Q=Math.PI-_.angle(),ce=_.angle(),H=Math.tan(ce/2),W=Math.tan(Q/2),q=H+W,F=d?q:W,M=d?q:H;if(p=Math.min(p,(t-D)/F,_.length()/q),a=Math.min(a,(e-U)/M,_.length()/q),p>0){let V=p/H;y=N.clone().sub(new Ve.Vector2(V,p)),d&&(A=y.clone(),A.x-=L-q*p),N.sub(_.clone().setLength(V))}if(a>0){let V=a/W;P=T.clone().sub(new Ve.Vector2(V,-a)),T.add(_.clone().setLength(V)),d&&(O=P.clone(),O.x-=L-q*a,re.sub(_.clone().setLength(V)))}_=N.clone().sub(T);let B=_.length()<.5,E=[];for(let V=0;V<=o;V++){let R=[],z=V/o,J=z*c+l,oe=new Ve.Vector2(Math.sin(J),Math.cos(J));O&&P?(j(R,z,oe,Q,a,O,-1,!0),j(R,z,oe,ce,a,P,-1,!1)):P?(Z(R,oe,P.x,0,-1),j(R,z,oe,ce,a,P,-1,!1)):s||Z(R,oe,e,U,-1);let se=pf(_).normalize();if(io(se,oe,S),!B)for(let te=0;te<=i;te++){let ee=te/i,K=_.clone().multiplyScalar(ee).add(T);io(K,oe,b),h.push(b.x,b.y,b.z),g.push(S.x,S.y,S.z),x.push(z,.5+b.y/r),R.push(v++)}if(A&&y?(j(R,z,oe,Q,p,y,1,!1),j(R,z,oe,ce,p,A,1,!0)):y?(j(R,z,oe,Q,p,y,1,!1),Z(R,oe,y.x,0,1)):s||Z(R,oe,t,D,1),d&&!B){let te=pf(_).multiplyScalar(-1).normalize();io(te,oe,S);for(let ee=0;ee<=i;ee++){let K=ee/i,X=_.clone().multiplyScalar(-K).add(re);io(X,oe,b),h.push(b.x,b.y,b.z),g.push(S.x,S.y,S.z),x.push(z,.5+b.y/r),R.push(v++)}}d&&!s&&R.push(R[0]),E.push(R)}for(let V=0;V<E.length-1;V++)for(let R=0;R<E[0].length-1;R++){if(s&&d&&R==i)continue;let z=E[V][R],J=E[V+1][R],oe=E[V+1][R+1],se=E[V][R+1],te=h[oe*3+0],ee=h[oe*3+2];m.push(z,J,se),(te!=0||ee!=0)&&m.push(J,oe,se)}c<Math.PI*2&&(k(-1,E[0],l),k(1,E[E.length-1],l+c)),this.setIndex(m),this.setAttribute("position",new Ve.Float32BufferAttribute(h,3)),this.setAttribute("normal",new Ve.Float32BufferAttribute(g,3)),this.setAttribute("uv",new Ve.Float32BufferAttribute(x,2));function j(V,R,z,J,oe,se,te,ee){for(let K=0;K<u+1;K++){let X=K/u,me=te<0?X:1-X;ee&&(me-=1),me*=J;let de=new Ve.Vector2(Math.sin(me),Math.cos(me)*te),xe=de.clone().multiplyScalar(oe).add(se);io(xe,z,b),h.push(b.x,b.y,b.z),io(de,z,S),g.push(S.x,S.y,S.z),x.push(R,.5+b.y/r),V.push(v++)}}function Z(V,R,z,J,oe){let se=new Ve.Vector3,te=new Ve.Vector2,ee=[z,J];oe<0&&ee.reverse();for(let K of ee)te.set(K,w*oe),io(te,R,se),h.push(se.x,se.y,se.z),g.push(0,oe,0),x.push(.5,.5),V.push(v++)}function k(V,R,z){let J=new Ve.Vector2(Math.sin(z),Math.cos(z)),oe=new Ve.Vector2(-Math.cos(z),Math.sin(z)),se=new Ve.Vector3,te=V<0?(X,me,de)=>m.push(X,me,de):(X,me,de)=>m.push(X,de,me),ee=new Ve.Vector2((t+e+D+U)/4,0);io(ee,J,se),h.push(se.x,se.y,se.z),g.push(oe.x,0,oe.y),x.push(.5,.5);let K=v++;for(let X of R){let me=h.slice(X*3,X*3+3);h.push(...me),g.push(oe.x,0,oe.y);let de=x.slice(X*2,X*2+2);x.push(...de),v++}for(let X=K+1;X<v-1;X++)te(K,X,X+1);te(K,v-1,K+1)}}};var mf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,cornerRadiusTop:p,cornerRadiusBottom:a,cornerSegments:u}=n.parameters,d;return p>0||a>0||c<360?d=new Si(0,t/2,r,o,i,s,l,c*Math.PI/180,p,a,u,0,!0):d=new ff.ConeBufferGeometry(t/2,r,o,i,s),d.scale(1,1,e/t),Object.assign(d,{userData:{...n,type:"ConeGeometry"}})}};var Pt=require("three"),hf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,widthSegments:o,heightSegments:i,depthSegments:s,cornerRadius:l,cornerSegments:c}=n.parameters,p;return l==0?p=new Pt.BoxBufferGeometry(t,e,r,o,i,s):p=new zl(t,e,r,o,i,s,l,c),Object.assign(p,{userData:{...n,type:"CubeGeometry"}})}},Fl=Math.PI/2,zl=class extends Pt.BufferGeometry{constructor(t=1,e=1,r=1,o=1,i=1,s=1,l=0,c=4){super(),this.type="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 Pt.Float32BufferAttribute(u,3)),this.setAttribute("normal",new Pt.Float32BufferAttribute(d,3)),this.setAttribute("uv",new Pt.Float32BufferAttribute(f,2));function g(w,S,b,N,T,y,P,A,O,_,L){let D=(y-2*l)/O,U=(P-2*l)/_,re=y/2-l,Q=P/2-l,ce=A/2,H=O+1,W=_+1,q=0,F=0,M=new Pt.Vector3;for(let B=0;B<W;B++){let E=B*U-Q;for(let j=0;j<H;j++){let Z=j*D-re;M[w]=Z*N,M[S]=E*T,M[b]=ce,u.push(M.x,M.y,M.z),M[w]=0,M[S]=0,M[b]=A>0?1:-1,d.push(M.x,M.y,M.z),f.push(j/O),f.push(1-B/_),q+=1}}for(let B=0;B<_;B++)for(let E=0;E<O;E++){let j=m+E+H*B,Z=m+E+H*(B+1),k=m+(E+1)+H*(B+1),V=m+(E+1)+H*B;a.push(j,Z,V),a.push(Z,k,V),F+=6}p.addGroup(h,F,L),h+=F,m+=q}function x(w,S,b,N,T,y,P,A,O,_,L){let D=(P-2*l)/_,U=P/2-l,re=A/2-l,Q=O/2,ce=_+1,H=0,W=0,q=new Pt.Vector3,F=new Pt.Vector3;for(let M=0;M<c+1;M++){let B=M/c*Fl,E=Math.sin(B)*l,j=(1-Math.cos(B))*l,Z=Math.sin(B),k=Math.cos(B);q[S]=(re+E)*T,q[b]=(Q-j)*y,F[w]=0,F[S]=Z*Math.sign(q[S]),F[b]=k*Math.sign(q[b]);for(let V=0;V<ce;V++){let R=V*D-U;q[w]=R*N,u.push(q.x,q.y,q.z),d.push(F.x,F.y,F.z),f.push(V/_),f.push(0),H+=1}}for(let M=0;M<c;M++)for(let B=0;B<_;B++){let E=m+B+ce*M,j=m+B+ce*(M+1),Z=m+(B+1)+ce*(M+1),k=m+(B+1)+ce*M;a.push(E,j,k),a.push(j,Z,k),W+=6}p.addGroup(h,W,L),h+=W,m+=H}function v(w,S,b){let N=new Pt.Vector3,T=new Pt.Vector3(t/2,e/2,r/2);T.subScalar(l);let y=[],P=w*S*b>0?(O,_,L)=>a.push(O,_,L):(O,_,L)=>a.push(O,L,_);for(let O=0;O<=c;O++){let _=[],L=Fl*(1-O/c),D=Math.cos(L),U=Math.sin(L),re=0;for(let Q=0;Q<=O;Q++){let ce=Math.cos(re),H=Math.sin(re);N.x=D*ce,N.y=U,N.z=D*H;let W=T.clone().addScaledVector(N,l);u.push(w*W.x,S*W.y,b*W.z),d.push(w*N.x,S*N.y,b*N.z),f.push(0,0),_.push(m++),re+=Fl/O}y.push(_)}let A=y.length-1;for(let O=0;O<A;O++){let _=y[O],L=y[O+1],D=_.length-1;P(_[0],L[1],L[0]);for(let U=1;U<=D;U++)P(_[U-1],_[U],L[U]),P(_[U],L[U+1],L[U])}}}};var ke=require("three"),so=class extends ke.BufferGeometry{constructor(t=[],e=[],r="",o=1,i=.2,s=4){super(),this.type="PolyhedronGeometryRound";let l=[],c=[],p=[];a(),u(),this.setAttribute("position",new ke.Float32BufferAttribute(l,3)),this.setAttribute("normal",new ke.Float32BufferAttribute(p,3)),this.setAttribute("uv",new ke.Float32BufferAttribute(c,2));return;function a(){i=Math.min(1-1e-5,i),i==0&&(s=0);let f={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],m=new ke.Vector3,h=m.clone(),g=new ke.Triangle,x=i*o,v=o-x,w=s+1,S=new ke.Vector3,b=(H,W)=>S.subVectors(H,W).normalize(),N=(H,W)=>Array(H).fill(void 0).map(W),T=N(t.length/3,(H,W)=>new ke.Vector3().fromArray(t,W*3).setLength(o)),y=[],P=1e6;for(let H=0;H<T.length;H++){let W=T[H],q=[],F,M,B,E=1e10,j=-1;for(;(j=e.indexOf(H,j+1))!=-1;){let R=j-j%3;F=e[R+(j+1)%3],M=e[R+(j+2)%3],B=W.distanceToSquared(T[F]),E=Math.min(E,B),q.push([F,M,B])}E+=1e-6;let Z=[],k=0,V=q.length;for(let R=0;R<V;R++){[F,M,B]=q[k];let z=y[F]?.includes(H)==!0;B<=E&&Z.push(F+ +z*P),k=q.findIndex(J=>J[0]==M)}y.push(Z)}let A=[];{let H=0,W=0,q,F,M=f==3;for(let B=0;B<=s;B++){q=B*(B+1)/2,F=(B+1)*(B+2)/2;for(let E=0;E<s-B;E++)[H,W]=[q+E+B+2,F+E+B+3],A.push(q,F,...M?[W,q]:[H,F],W,H),[q,F]=[H,W];A.push(q,F,q+s+2)}}let O=m.clone(),_=m.clone(),L=m.clone(),D=m.clone(),U=m.clone(),re=[],Q=N(T.length,()=>N(f,()=>m.clone()));for(let H=0;H<T.length;H++){m.copy(T[H]).normalize(),O.copy(m).multiplyScalar(v);let W=y[H];for(let Z=0;Z<W.length;Z++){let k=W[Z],V=W[(Z+1)%f];g.setFromPointsAndIndices(T,H,k%P,V%P),g.b.sub(g.a).setLength(1e10).add(g.a),g.c.sub(g.a).setLength(1e10).add(g.a),g.closestPointToPoint(O,Q[H][Z])}let q=[],F=[],M=[],B=new ke.Vector3;s==0&&[...Q[H]].reduce((Z,k)=>Z.add(k),B).multiplyScalar(1/f);for(let Z=0;Z<f;Z++){let k=[],V=(Z-1+f)%f,R=Q[H][V],z=Q[H][Z];m.copy(R).sub(O),h.copy(z).sub(O);let J=O.angleTo(m),oe=m.angleTo(h),se=Math.cos(J)*x;s==0?_.copy(B):_.copy(O).setLength(v+se),F.push(se);let te=[_,R,z];for(let ee=0;ee<2;ee++){let K=te[ee],X=te[ee+1];D.subVectors(K,O),U.subVectors(X,O),L.crossVectors(D,U).normalize();for(let me=0;me<w;me++){let de=[J,oe][ee]*me/w;m.copy(D).applyAxisAngle(L,de).add(O),q.push(m.clone()),ee&&(b(m,O),k.push([me==0?K:m.clone(),S.clone()]))}ee&&(b(X,O),k.push([X,S.clone()]))}M.push(k)}re.push(M);let E=2*w,j=2;for(let Z=0;Z<f;Z++){let k=E*Z,V=E*((Z+1)%f),R=[q[k]];for(let J=1;J<w;J++){D=q[k+J],U=q[V+J],R.push(D);for(let oe=1,se=J-j+1;oe<=se;oe++)m.lerpVectors(D,U,oe/(se+1)),m.sub(O).setLength(F[Z]).add(O),R.push(m.clone());R.push(U)}for(let J=0;J<w;J++)R.push(q[J+w+k]);R.push(q[V+w]);let z=A.map(J=>R[J]);l.push(...z.map(J=>[J.x,J.y,J.z]).flat()),p.push(...z.map(J=>(b(J,O),[S.x,S.y,S.z])).flat())}}let ce=[];for(let H=0;H<y.length;H++)for(let W=0;W<f;W++){let q=y[H][W];if(q<P){let F=y[q].findIndex(E=>E%P==H),M=re[H][W],B=re[q][F];for(let E=0;E<w;E++){let j=M[E],Z=B[w-E],k=M[E+1],V=B[w-(E+1)];[j,Z,k,k,Z,V].forEach(R=>{l.push(R[0].x,R[0].y,R[0].z),p.push(R[1].x,R[1].y,R[1].z)})}ce.push(M[0][0],B[w][0],M[w][0],B[0][0])}}for(;ce.length;){let H,W,q,F;[H,W]=ce.splice(0,2);let M=[H];for(;H!=W;)M.push(W),q=ce.indexOf(W),F=q%2,W=ce.splice(q-F,2)[1-F];S.subVectors(M[0],M[1]).cross(m.subVectors(M[0],M[2])).normalize();let B=S.dot(M[0])<0;B&&S.negate();for(let E=1;E<=M.length-2;E++)[M[E+ +B],M[E+1-+B],M[0]].forEach(j=>{l.push(j.x,j.y,j.z),p.push(S.x,S.y,S.z)})}}function u(){let d=new ke.Vector3;for(let T=0;T<l.length;T+=3){d.x=l[T+0],d.y=l[T+1],d.z=l[T+2];let y=b(d)/2/Math.PI+.5,P=N(d)/Math.PI+.5;c.push(y,1-P)}let f=new ke.Vector3,m=new ke.Vector3,h=new ke.Vector3,g=new ke.Vector3,x=new ke.Vector2,v=new ke.Vector2,w=new ke.Vector2,S=(T,y,P,A)=>{A<0&&T.x===1&&(c[y]=T.x-1),P.x===0&&P.z===0&&(c[y]=A/2/Math.PI+.5)};for(let T=0,y=0;T<l.length;T+=9,y+=6){f.set(l[T+0],l[T+1],l[T+2]),m.set(l[T+3],l[T+4],l[T+5]),h.set(l[T+6],l[T+7],l[T+8]),x.set(c[y+0],c[y+1]),v.set(c[y+2],c[y+3]),w.set(c[y+4],c[y+5]),g.copy(f).add(m).add(h).divideScalar(3);let P=b(g);S(x,y+0,f,P),S(v,y+2,m,P),S(w,y+4,h,P)}for(let T=0;T<c.length;T+=6){let y=c[T+0],P=c[T+2],A=c[T+4],O=Math.max(y,P,A),_=Math.min(y,P,A);O>.9&&_<.1&&(y<.2&&(c[T+0]+=1),P<.2&&(c[T+2]+=1),A<.2&&(c[T+4]+=1))}function b(T){return Math.atan2(T.z,-T.x)}function N(T){return Math.atan2(-T.y,Math.sqrt(T.x*T.x+T.z*T.z))}}}static fromJSON(t){return new so(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};var gf=require("three"),yf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new wi(t*.5,i,s):new gf.DodecahedronBufferGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"DodecahedronGeometry"}})}},wi=class extends so{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=1/o,s=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-o,0,-i,o,0,i,-o,0,i,o,-i,-o,0,-i,o,0,i,-o,0,i,o,0,-o,0,-i,o,0,-i,-o,0,i,o,0,i],l=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],c="DodecahedronGeometry";super(s,l,c,t,e,r),this.type=c}static fromJSON(t){return new wi(t.radius,t.corner,t.cornerSides)}};var jl=Math.PI*2;function Ul({x:n,y:t},e,r,o,i){return{x:n*e+o,y:t*r+i}}function pS(n,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=Math.cos(n),o=Math.sin(n),i=Math.cos(n+t),s=Math.sin(n+t);return[{x:r-o*e,y:o+r*e},{x:i+s*e,y:s-i*e},{x:i,y:s}]}function xf(n,t,e,r){let o=n*r-t*e<0?-1:1,i=Math.min(1,Math.max(-1,n*e+t*r));return o*Math.acos(i)}function dS(n,t,e,r,o,i,s,l,c,p){let a=Math.pow(o,2),u=Math.pow(i,2),d=Math.pow(s,2),f=Math.pow(l,2),m=a*u-a*f-u*d;m<0&&(m=0),m/=a*f+u*d,m=Math.sqrt(m)*(c===p?-1:1);let h=m*o/i*l,g=m*-i/o*s,x=h+(n+e)/2,v=g+(t+r)/2,w=(s-h)/o,S=(l-g)/i,b=(-s-h)/o,N=(-l-g)/i,T=xf(1,0,w,S),y=xf(w,S,b,N);return!p&&y>0&&(y-=jl),p&&y<0&&(y+=jl),{centerx:x,centery:v,ang1:T,ang2:y}}function vf({px:n,py:t,cx:e,cy:r,rx:o,ry:i,largeArcFlag:s,sweepFlag:l}){let c=[];if(o===0||i===0)return[];let p=(n-e)/2,a=(t-r)/2;if(p===0&&a===0)return[];o=Math.abs(o),i=Math.abs(i);let u=Math.pow(p,2)/Math.pow(o,2)+Math.pow(a,2)/Math.pow(i,2);u>1&&(o*=Math.sqrt(u),i*=Math.sqrt(u));let d=dS(n,t,e,r,o,i,p,a,s,l),{ang1:f,ang2:m}=d,{centerx:h,centery:g}=d,x=Math.abs(m)/(jl/4);Math.abs(1-x)<1e-7&&(x=1);let v=Math.max(Math.ceil(x),1);m/=v;for(let w=0;w<v;w++)c.push(pS(f,m)),f+=m;return c.map(w=>{let{x:S,y:b}=Ul(w[0],o,i,h,g),{x:N,y:T}=Ul(w[1],o,i,h,g),{x:y,y:P}=Ul(w[2],o,i,h,g);return{x1:S,y1:b,x2:N,y2:T,x:y,y:P}})}var Nn=require("three"),Sf=Math.PI*2,wf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,angle:o,innerRadius:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p=n.shape,a=t*.5,u=e*.5,d=fS(p,a,u,o*Math.PI/180,r,i);p.isClosed=!0,p.update();let f=dt.create({shape:p,parameters:{subdivisions:d,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(f,{userData:{...n,type:"EllipseGeometry"}})}};function fS(n,t,e,r,o,i){if(r>=Sf)return o>30||o%4===0?(hS(n,t,e,i),Math.round(o/4)):bf(n,r,o,t,e,i);let s={x:0,y:e},l=r+Math.PI*.5,c={x:Math.cos(l)*t,y:Math.sin(l)*e},p=vf({px:s.x,py:s.y,cx:c.x,cy:c.y,rx:t,ry:e,largeArcFlag:r>Math.PI,sweepFlag:!0});return o>30||o%p.length===0?mS(n,s.x,s.y,p,o,t,e,i):bf(n,r,o,t,e,i)}function mS(n,t,e,r,o,i,s,l){let c=Math.round(o/r.length);n.addPoint(An(t,e));for(let p=0,a=r.length;p<a;p++){let u=r[p],d=n.points[p],f=An(u.x,u.y);d.controls[1].position.set(u.x1,u.y1),f.controls[0].position.set(u.x2,u.y2),n.addPoint(f)}return l>0?_f(n,i,s,l):n.addPoint(An(0,0)),c}function bf(n,t,e,r,o,i){let s=-t/e;for(let l=0;l<=e;l++){let c=s*l,p=Math.sin(c)*r,a=Math.cos(c)*o;n.addPoint(An(p,a))}return t<Sf?i>0?_f(n,r,o,i):n.addPoint(An(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&Tf(n,r,o,i)),1}function hS(n,t,e,r=0,o=0,i=0){let s=.5522847498,l=t*s,c=e*s;n.addPoint(ba(o-t,i,o-t,i-c,o-t,i+c)),n.addPoint(ba(o,i+e,o-l,i+e,o+l,i+e)),n.addPoint(ba(o+t,i,o+t,i+c,o+t,i-c)),n.addPoint(ba(o,i-e,o+l,i-e,o-l,i-e)),r>0&&Tf(n,t,e,r)}function An(n,t){return new Zt(Nn.MathUtils.generateUUID(),new Nn.Vector2(n,t))}function ba(n,t,e,r,o,i){let s=An(n,t);return s.controls[0].position.set(e,r),s.controls[1].position.set(o,i),s}function _f(n,t,e,r){Af(n,t,e,r).forEach(i=>n.addPoint(i))}function Tf(n,t,e,r){let o=Af(n,t,e,r),i=new _e;o.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function Af(n,t,e,r){let o=r*t/100,i=o*(Math.abs(e)/Math.abs(t)),s=new Nn.Vector2(o/t,i/e),l=n.points.map(c=>{let p=c.clone();return p.uuid=Nn.MathUtils.generateUUID(),p}).reverse();return l.forEach(c=>{c.position.multiply(s);let p=c.controls[0].position.clone().multiply(s),a=c.controls[1].position.clone().multiply(s);c.controls[0].position.copy(a),c.controls[1].position.copy(p)}),l}var Vr=require("three"),Nf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??r),i=Math.abs(e.depth??r),s=Math.abs(Math.min(r,i))/2;return{parameters:Object.assign(e,{width:r,height:o,depth:i,radius:s,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(n){let{width:t,height:e,depth:r,radius:o,revolutions:i,segments:s,pathRadius:l,pathType:c,pathSegments:p,cornerRadius:a,cornerSegments:u}=n.parameters,d=new _i(!1,t,e,r,o,i,s,l,c,p,a,u);return Object.assign(d,{userData:{...n,type:"HelixGeometry"}})}},_i=class extends Vr.BufferGeometry{constructor(t=!0,e=1,r=1,o=1,i=1,s=1,l=1,c=1,p=1,a=1,u=1,d=1){super();let f=t&&s===1;f&&(d=0),u>100&&(u=100);let m=()=>new Vr.Vector3,h=new Vr.Vector3,g=m(),x=m(),v=m(),w,S,b,N,T,y,P,A,O=m(),_=m(),L=m(),D=m(),U=m(),re=m(),Q=m(),ce=m(),H=r-2*c+.001,W=H/s,q=Math.ceil(l*s),F=q+1,M=H/q,B=-H/2,E=a+1,j=2*Math.PI/a,Z=Math.PI/2/d,k=.01,V=Math.min((1-u/100)*c,c-k),R=c-V,z=0,J=2,oe=d*J+J,se=E*oe/J,te=se+E*F,ee=E*(F+oe),[K,X,me]=[3,3,2].map(We=>Array(ee*We).fill(0)),de=[],xe=i-c;function nt(We,Bt){let sr=Math.PI/2;y=Bt*M,A=2*Math.PI*(y%W)/W+sr,y+=B,P=Math.sin(A)*xe,T=Math.cos(A)*xe,t?We.set(T,P,y):We.set(T,y,P)}nt(h,-1e-10),nt(g,0),O.copy(h),nt(h,1);let Ne=h.distanceTo(g),Pe=R+V,Le=Ne*q+2*Pe,Ut=V,jr=Le-Pe;for(let We=0;We<=q;We++){nt(x,We),ce.subVectors(x,O).normalize(),O.copy(x),re.copy(x).setComponent(+t+1,0).normalize(),Q.crossVectors(ce,re).normalize();let Bt=We===0,sr=We===q,xh=Bt?3*Math.PI/2:Z,vh=Bt?Ut:jr,bh=Bt?E:te,Sh=Bt?0:ee-E,wh=ce.clone().multiplyScalar(Bt?-R:R).add(x),_h=ce.clone().multiplyScalar(Bt?-1:1).normalize();for(let Mr=0;Mr<E;Mr++){let Lc=Mr*j;if(_.addVectors(h.copy(re).multiplyScalar(c*Math.cos(Lc)),g.copy(Q).multiplyScalar(c*Math.sin(Lc))),L.copy(_).normalize(),Bt||sr){f||(z=Sh+Mr,[0,1,2].forEach(_t=>{K[z*3+_t]=wh.getComponent(_t),X[z*3+_t]=_h.getComponent(_t)}),me[z*2]=+sr,me[z*2+1]=Mr/a),g.copy(L).multiplyScalar(V),v.addVectors(x,g);for(let _t=0;_t<d;_t++){let Za=_t*Z+xh;D.addVectors(h.copy(ce).multiplyScalar(R*Math.sin(Za)),g.copy(L).multiplyScalar(R*Math.cos(Za))),U.copy(D).normalize(),g.addVectors(v,D),D.normalize(),z=bh+_t*E+Mr,[0,1,2].forEach(us=>{K[z*3+us]=g.getComponent(us),X[z*3+us]=U.getComponent(us)});let Th=+Bt+Math.sin(Za);me[z*2]=(vh+R*Th)/Le,me[z*2+1]=Mr/a}}g.addVectors(x,_),z=se+We*E+Mr,[0,1,2].forEach(_t=>{K[z*3+_t]=g.getComponent(_t),X[z*3+_t]=L.getComponent(_t)}),me[z*2]=(Pe+We*Ne)/Le,me[z*2+1]=Mr/a}}let Et=F+2*d+J,Vo=1,[ls,cs]=f?[Vo,Vo+F-1]:[0,Et-1];for(let We=ls;We<=cs-1;We++){let Bt=f&&We===cs-1;for(let sr=0;sr<E-1;sr++)w=We*E+sr,S=w+1,b=(Bt?sr:w)+E,N=(Bt?sr+1:S)+E,We===0?de.push(S,N,b):We===Et-2?de.push(w,S,b):de.push(w,S,b,S,N,b)}this.setIndex(de),this.setAttribute("position",new Vr.Float32BufferAttribute(K,3)),this.setAttribute("normal",new Vr.Float32BufferAttribute(X,3)),this.setAttribute("uv",new Vr.Float32BufferAttribute(me,2))}};var If=require("three");var Pf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new Ti(t*.5,i,s):new If.IcosahedronBufferGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"IcosahedronGeometry"}})}},Ti=class extends so{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=[-1,o,0,1,o,0,-1,-o,0,1,-o,0,0,-1,o,0,1,o,0,-1,-o,0,1,-o,o,0,-1,o,0,1,-o,0,-1,-o,0,1],s=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],l="IcosahedronGeometry";super(i,s,l,t,e,r),this.type=l}static fromJSON(t){return new Ti(t.radius,t.corner,t.cornerSides)}};var Sa=require("three"),Of=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){(n.parameters?.points??[]).forEach(r=>{Array.isArray(r)&&(r.x=r[0],r.y=r[1])});let e=Object.assign({},t?.parameters??{width:100,segments:64,verticalSegments:64,points:[{x:0,y:-50,id:0},{x:50,y:-50,id:1},{x:50,y:50,id:2},{x:0,y:50,id:3}]},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{points:t,segments:e,verticalSegments:r}=n.parameters,o=new Sa.Shape;o.moveTo(t[0].x,t[0].y),o.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let i=new Sa.LatheBufferGeometry(o.extractPoints(r).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};var yr=require("three");var Fr=require("three");var ie=require("three"),gr=new ie.Matrix4,kl=new ie.Object3D,wa=new ie.Vector3,ao=class extends ie.EventDispatcher{constructor(){super(),this.uuid=ie.MathUtils.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(t){let e=new ie.Matrix3().getNormalMatrix(t);for(let r=0,o=this.vertices.length;r<o;r++)this.vertices[r].applyMatrix4(t);for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];i.normal.applyMatrix3(e).normalize();for(let s=0,l=i.vertexNormals.length;s<l;s++)i.vertexNormals[s].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return gr.makeRotationX(t),this.applyMatrix4(gr),this}rotateY(t){return gr.makeRotationY(t),this.applyMatrix4(gr),this}rotateZ(t){return gr.makeRotationZ(t),this.applyMatrix4(gr),this}translate(t,e,r){return gr.makeTranslation(t,e,r),this.applyMatrix4(gr),this}scale(t,e,r){return gr.makeScale(t,e,r),this.applyMatrix4(gr),this}lookAt(t){return kl.lookAt(t),kl.updateMatrix(),this.applyMatrix4(kl.matrix),this}fromBufferGeometry(t){let e=this,r=t.index!==null?t.index:void 0,o=t.attributes;if(o.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let i=o.position,s=o.normal,l=o.color,c=o.uv,p=o.uv2;p!==void 0&&(this.faceVertexUvs[1]=[]);for(let d=0;d<i.count;d++)e.vertices.push(new ie.Vector3().fromBufferAttribute(i,d)),l!==void 0&&e.colors.push(new ie.Color().fromBufferAttribute(l,d));function a(d,f,m,h){let g=l===void 0?[]:[e.colors[d].clone(),e.colors[f].clone(),e.colors[m].clone()],x=s===void 0?[]:[new ie.Vector3().fromBufferAttribute(s,d),new ie.Vector3().fromBufferAttribute(s,f),new ie.Vector3().fromBufferAttribute(s,m)],v=new In(d,f,m,x,g,h);e.faces.push(v),c!==void 0&&e.faceVertexUvs[0].push([new ie.Vector2().fromBufferAttribute(c,d),new ie.Vector2().fromBufferAttribute(c,f),new ie.Vector2().fromBufferAttribute(c,m)]),p!==void 0&&e.faceVertexUvs[1].push([new ie.Vector2().fromBufferAttribute(p,d),new ie.Vector2().fromBufferAttribute(p,f),new ie.Vector2().fromBufferAttribute(p,m)])}let u=t.groups;if(u.length>0)for(let d=0;d<u.length;d++){let f=u[d],m=f.start,h=f.count;for(let g=m,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(wa).negate(),this.translate(wa.x,wa.y,wa.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,r=e===0?1:1/e,o=new ie.Matrix4;return o.set(r,0,0,-r*t.x,0,r,0,-r*t.y,0,0,r,-r*t.z,0,0,0,1),this.applyMatrix4(o),this}computeFaceNormals(){let t=new ie.Vector3,e=new ie.Vector3;for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],s=this.vertices[i.a],l=this.vertices[i.b],c=this.vertices[i.c];t.subVectors(c,l),e.subVectors(s,l),t.cross(e),t.normalize(),i.normal.copy(t)}}computeVertexNormals(t=!0){let e=new Array(this.vertices.length);for(let r=0,o=this.vertices.length;r<o;r++)e[r]=new ie.Vector3;if(t){let r=new ie.Vector3,o=new ie.Vector3;for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=this.vertices[l.a],p=this.vertices[l.b],a=this.vertices[l.c];r.subVectors(a,p),o.subVectors(c,p),r.cross(o),e[l.a].add(r),e[l.b].add(r),e[l.c].add(r)}}else{this.computeFaceNormals();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];e[i.a].add(i.normal),e[i.b].add(i.normal),e[i.c].add(i.normal)}}for(let r=0,o=this.vertices.length;r<o;r++)e[r].normalize();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],s=i.vertexNormals;s.length===3?(s[0].copy(e[i.a]),s[1].copy(e[i.b]),s[2].copy(e[i.c])):(s[0]=e[i.a].clone(),s[1]=e[i.b].clone(),s[2]=e[i.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let t=0,e=this.faces.length;t<e;t++){let r=this.faces[t],o=r.vertexNormals;o.length===3?(o[0].copy(r.normal),o[1].copy(r.normal),o[2].copy(r.normal)):(o[0]=r.normal.clone(),o[1]=r.normal.clone(),o[2]=r.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.__originalFaceNormal?o.__originalFaceNormal.copy(o.normal):o.__originalFaceNormal=o.normal.clone(),o.__originalVertexNormals||(o.__originalVertexNormals=[]);for(let i=0,s=o.vertexNormals.length;i<s;i++)o.__originalVertexNormals[i]?o.__originalVertexNormals[i].copy(o.vertexNormals[i]):o.__originalVertexNormals[i]=o.vertexNormals[i].clone()}let t=new ao;t.faces=this.faces;for(let e=0,r=this.morphTargets.length;e<r;e++){if(!this.morphNormals[e]){this.morphNormals[e]={},this.morphNormals[e].faceNormals=[],this.morphNormals[e].vertexNormals=[];let i=this.morphNormals[e].faceNormals,s=this.morphNormals[e].vertexNormals;for(let l=0,c=this.faces.length;l<c;l++){let p=new ie.Vector3,a={a:new ie.Vector3,b:new ie.Vector3,c:new ie.Vector3};i.push(p),s.push(a)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=o.faceNormals[i],p=o.vertexNormals[i];c.copy(l.normal),p.a.copy(l.vertexNormals[0]),p.b.copy(l.vertexNormals[1]),p.c.copy(l.vertexNormals[2])}}for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.normal=o.__originalFaceNormal,o.vertexNormals=o.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new ie.Box3),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new ie.Sphere),this.boundingSphere.setFromPoints(this.vertices)}merge(t,e,r=0){if(!(t&&t.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t);return}let o,i=this.vertices.length,s=this.vertices,l=t.vertices,c=this.faces,p=t.faces,a=this.colors,u=t.colors;e!==void 0&&(o=new ie.Matrix3().getNormalMatrix(e));for(let d=0,f=l.length;d<f;d++){let h=l[d].clone();e!==void 0&&h.applyMatrix4(e),s.push(h)}for(let d=0,f=u.length;d<f;d++)a.push(u[d].clone());for(let d=0,f=p.length;d<f;d++){let m=p[d],h,g,x=m.vertexNormals,v=m.vertexColors,w=new In(m.a+i,m.b+i,m.c+i);w.normal.copy(m.normal),o!==void 0&&w.normal.applyMatrix3(o).normalize();for(let S=0,b=x.length;S<b;S++)h=x[S].clone(),o!==void 0&&h.applyMatrix3(o).normalize(),w.vertexNormals.push(h);w.color.copy(m.color);for(let S=0,b=v.length;S<b;S++)g=v[S],w.vertexColors.push(g.clone());w.materialIndex=m.materialIndex+r,c.push(w)}for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let x=m[h],v=[];for(let w=0,S=x.length;w<S;w++)v.push(x[w].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 ie.Vector3(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,e=t.length;for(let c=0;c<e;c++)t[c]._id=c;function r(c,p){return c.materialIndex-p.materialIndex}t.sort(r);let o=this.faceVertexUvs[0],i=this.faceVertexUvs[1],s,l;o&&o.length===e&&(s=[]),i&&i.length===e&&(l=[]);for(let c=0;c<e;c++){let p=t[c]._id;s&&s.push(o[p]),l&&l.push(i[p])}s&&(this.faceVertexUvs[0]=s),l&&(this.faceVertexUvs[1]=l)}toJSON(){let t={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,this.name!==""&&(t.name=this.name),this.parameters!==void 0){let m=this.parameters;for(let h in m)m[h]!==void 0&&(t[h]=m[h]);return t}let e=[];for(let m=0;m<this.vertices.length;m++){let h=this.vertices[m];e.push(h.x,h.y,h.z)}let r=[],o=[],i={},s=[],l={},c=[],p={};for(let m=0;m<this.faces.length;m++){let h=this.faces[m],g=!0,x=!1,v=this.faceVertexUvs[0][m]!==void 0,w=h.normal.length()>0,S=h.vertexNormals.length>0,b=h.color.r!==1||h.color.g!==1||h.color.b!==1,N=h.vertexColors.length>0,T=0;if(T=a(T,0,0),T=a(T,1,g),T=a(T,2,x),T=a(T,3,v),T=a(T,4,w),T=a(T,5,S),T=a(T,6,b),T=a(T,7,N),r.push(T),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(w&&r.push(u(h.normal)),S){let y=h.vertexNormals;r.push(u(y[0]),u(y[1]),u(y[2]))}if(b&&r.push(d(h.color)),N){let y=h.vertexColors;r.push(d(y[0]),d(y[1]),d(y[2]))}}function a(m,h,g){return g?m|1<<h:m&~(1<<h)}function u(m){let h=m.x.toString()+m.y.toString()+m.z.toString();return i[h]!==void 0||(i[h]=o.length/3,o.push(m.x,m.y,m.z)),i[h]}function d(m){let h=m.r.toString()+m.g.toString()+m.b.toString();return l[h]!==void 0||(l[h]=s.length,s.push(m.getHex())),l[h]}function f(m){let h=m.x.toString()+m.y.toString();return p[h]!==void 0||(p[h]=c.length/2,c.push(m.x,m.y)),p[h]}return t.data={},t.data.vertices=e,t.data.normals=o,s.length>0&&(t.data.colors=s),c.length>0&&(t.data.uvs=[c]),t.data.faces=r,t}clone(){return new ao().copy(this)}copy(t){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;let e=t.vertices;for(let d=0,f=e.length;d<f;d++)this.vertices.push(e[d].clone());let r=t.colors;for(let d=0,f=r.length;d<f;d++)this.colors.push(r[d].clone());let o=t.faces;for(let d=0,f=o.length;d<f;d++)this.faces.push(o[d].clone());for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let x=m[h],v=[];for(let w=0,S=x.length;w<S;w++){let b=x[w];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 Hl().fromGeometry(this),e=new ie.BufferGeometry,r=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",new ie.BufferAttribute(r,3).copyVector3sArray(t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",new ie.BufferAttribute(o,3).copyVector3sArray(t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",new ie.BufferAttribute(o,3).copyColorsArray(t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",new ie.BufferAttribute(o,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",new ie.BufferAttribute(o,2).copyVector2sArray(t.uvs2))}e.groups=t.groups;for(let o in t.morphTargets){let i=[],s=t.morphTargets[o];for(let l=0,c=s.length;l<c;l++){let p=s[l],a=new ie.Float32BufferAttribute(p.data.length*3,3);a.name=p.name,i.push(a.copyVector3sArray(p.data))}e.morphAttributes[o]=i}if(t.skinIndices.length>0){let o=new ie.Float32BufferAttribute(t.skinIndices.length*4,4);e.setAttribute("skinIndex",o.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){let o=new ie.Float32BufferAttribute(t.skinWeights.length*4,4);e.setAttribute("skinWeight",o.copyVector4sArray(t.skinWeights))}return t.boundingSphere!==null&&(e.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(e.boundingBox=t.boundingBox.clone()),e}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(t){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(t){let e=new ie.BufferGeometry,r=t.geometry;if(t.isPoints||t.isLine){let o=new ie.Float32BufferAttribute(r.vertices.length*3,3),i=new ie.Float32BufferAttribute(r.colors.length*3,3);if(e.setAttribute("position",o.copyVector3sArray(r.vertices)),e.setAttribute("color",i.copyColorsArray(r.colors)),r.lineDistances&&r.lineDistances.length===r.vertices.length){let s=new ie.Float32BufferAttribute(r.lineDistances.length,1);e.setAttribute("lineDistance",s.copyArray(r.lineDistances))}r.boundingSphere!==null&&(e.boundingSphere=r.boundingSphere.clone()),r.boundingBox!==null&&(e.boundingBox=r.boundingBox.clone())}else t.isMesh&&(e=r.toBufferGeometry());return e}};ao.prototype.isGeometry=!0;var Hl=class{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(t){let e=[],r,o,i,s=t.faces;for(o=0;o<s.length;o++){let l=s[o];l.materialIndex!==i&&(i=l.materialIndex,r!==void 0&&(r.count=o*3-r.start,e.push(r)),r={start:o*3,materialIndex:i})}r!==void 0&&(r.count=o*3-r.start,e.push(r)),this.groups=e}fromGeometry(t){let e=t.faces,r=t.vertices,o=t.faceVertexUvs,i=o[0]&&o[0].length>0,s=o[1]&&o[1].length>0,l=t.morphTargets,c=l.length,p;if(c>0){p=[];for(let 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 w=v.vertexNormals;if(w.length===3)this.normals.push(w[0],w[1],w[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 ie.Vector2,new ie.Vector2,new ie.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 ie.Vector2,new ie.Vector2,new ie.Vector2))}for(let b=0;b<c;b++){let N=l[b].vertices;p[b].data.push(N[v.a],N[v.b],N[v.c])}for(let b=0;b<u;b++){let N=a[b].vertexNormals[x];d[b].data.push(N.a,N.b,N.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}},In=class{constructor(t,e,r,o,i,s=0){this.a=t,this.b=e,this.c=r,this.normal=o&&o.isVector3?o:new ie.Vector3,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new ie.Color,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=s}clone(){return new this.constructor().copy(this)}copy(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(let e=0,r=t.vertexNormals.length;e<r;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,r=t.vertexColors.length;e<r;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}};var gS=["a","b","c"];function yS(n,t){switch(t){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function Wl(n,t,e){let r=Math.min(n,t),o=Math.max(n,t),i=r+"_"+o;return e.get(i)}function ql(n,t,e,r,o,i){let s=Math.min(n,t),l=Math.max(n,t),c=s+"_"+l,p;if(r.has(c))p=r.get(c);else{let a=e[s],u=e[l];p={a,b:u,newEdge:null,faces:[]},r.set(c,p)}p.faces.push(o),i[n].edges.push(p),i[t].edges.push(p)}function xS(n,t,e,r){let o,i,s;for(o=0,i=n.length;o<i;o++)e[o]={edges:[]};for(o=0,i=t.length;o<i;o++)s=t[o],ql(s.a,s.b,n,r,s,e),ql(s.b,s.c,n,r,s,e),ql(s.c,s.a,n,r,s,e)}function _a(n,t,e,r,o){n.push(new In(t,e,r,void 0,void 0,o))}function Pn(n,t){return Math.abs(t-n)/2+Math.min(n,t)}function Ta(n,t,e,r){n.push([t.clone(),e.clone(),r.clone()])}var Aa=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof Fr.BufferGeometry?t=new ao().fromBufferGeometry(t):t=t.clone(),t.mergeVertices();let e=this.subdivisions;for(;e-- >0;)this._smooth(t);return t.computeFaceNormals(),t.computeVertexNormals(),t}_smooth(t){let e=new Fr.Vector3,r,o,i,s,l,c=t.vertices,p=t.faces,a=t.faceVertexUvs[0],u=a!==void 0&&a.length>0,d=[],f=new Map;xS(c,p,d,f);let m=[],h,g,x,v,w,S,b;for(let k of Array.from(f.keys())){for(g=f.get(k),x=new Fr.Vector3,w=3/8,S=1/8,b=g.faces.length,b!=2&&(w=.5,S=0,b!=1),x.addVectors(g.a,g.b).multiplyScalar(w),e.set(0,0,0),s=0;s<b;s++){for(v=g.faces[s],l=0;l<3&&(h=c[yS(v,gS[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 N,T,y,P,A,O,_,L=[];for(o=0,i=c.length;o<i;o++){for(O=c[o],A=d[o].edges,r=A.length,r==3?N=3/16:r>3&&(N=3/(8*r)),T=1-r*Number(N),y=N,r<=2&&(r==2?(T=3/4,y=1/8):r==1||r==0),_=O.clone().multiplyScalar(T),e.set(0,0,0),s=0;s<r;s++)P=A[s],h=P.a!==O?P.a:P.b,e.add(h);e.multiplyScalar(Number(y)),_.add(e),L.push(_)}let D=L.concat(m),U=L.length,re,Q,ce,H=[],W=[],q,F,M,B,E=new Fr.Vector2,j=new Fr.Vector2,Z=new Fr.Vector2;for(o=0,i=p.length;o<i;o++)v=p[o],re=Number(Wl(v.a,v.b,f).newEdge)+U,Q=Number(Wl(v.b,v.c,f).newEdge)+U,ce=Number(Wl(v.c,v.a,f).newEdge)+U,_a(H,re,Q,ce,v.materialIndex),_a(H,v.a,re,ce,v.materialIndex),_a(H,v.b,Q,re,v.materialIndex),_a(H,v.c,ce,Q,v.materialIndex),u&&(q=a[o],F=q[0],M=q[1],B=q[2],E.set(Pn(F.x,M.x),Pn(F.y,M.y)),j.set(Pn(M.x,B.x),Pn(M.y,B.y)),Z.set(Pn(F.x,B.x),Pn(F.y,B.y)),Ta(W,E,j,Z),Ta(W,F,E,Z),Ta(W,M,j,E),Ta(W,B,Z,j));t.vertices=D,t.faces=H,u&&(t.faceVertexUvs[0]=W)}};var Je=new yr.Vector3,Cf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=n.geometry??t?.geometry??new yr.BufferGeometry().copy(new yr.BoxBufferGeometry(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(Je),r={width:Je.x,height:Je.y,depth:Je.z,subdivisions:0}):r=t.parameters;let o={...r,...n.parameters};return{parameters:{width:Math.abs(o.width),height:Math.abs(o.height),depth:Math.abs(o.depth),subdivisions:Math.abs(o.subdivisions)},geometry:e}}static build(n){let{width:t,height:e,depth:r,subdivisions:o}=n.parameters,i=n.geometry??new yr.BufferGeometry().copy(new yr.BoxBufferGeometry(100,100,100)),s=i.userData.parameters;s===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(Je)):Je.set(s.width,s.height,s.depth),(t!==Je.x||e!==Je.y||r!==Je.z)&&i.scale(Je.x===0?1:t/Je.x,Je.y===0?1:e/Je.y,Je.z===0?1:r/Je.z);let l=i.originalGeometry;return o>0?(l===void 0||s?.subdivisions!==o)&&(l===void 0&&(l=i),i=new Aa(o).modify(l).toBufferGeometry()):(l!==void 0&&(i=l),l=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()),l!==void 0&&Object.assign(i,{originalGeometry:l}),delete n.geometry,Object.assign(i,{userData:{...n,type:"NonParametricGeometry"}})}static loadFromUrl(n,t,e){new yr.BufferGeometryLoader(e).load(n,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(Je);let s=100/Je.x;Object.assign(i.parameters,{width:100,height:Je.y*s,depth:Je.z*s}),t(this.build(i))})}};var Lf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,cornerRadius:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5,u=0,d=0,f=2*Math.PI/r;for(let h=0;h<r;h++){let g=f*h,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=dt.create({shape:c,parameters:{roundness:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(m,{userData:{...n,type:"PolygonGeometry"}})}};var be=require("three"),Mf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,heightSegments:i,openEnded:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=new Xl(t*.5,e,o,i,s,l,c);return p.scale(1,1,r/t),Object.assign(p,{userData:{...n,type:"PyramidGeometry"}})}};function Ai(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function $l(n,t,e,r,o,i){let s=t.clone().sub(n),l=e.clone().sub(n),c=s.angleTo(l);if(s.normalize(),l.normalize(),r===o){let p=s.add(l).normalize();i.copy(n).addScaledVector(p,r/Math.sin(c/2))}else{let p=s.angleTo(l);i.copy(n),i.addScaledVector(s,o/Math.sin(p)),i.addScaledVector(l,r/Math.sin(p))}}function vS(n,t,e){let r=n.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var Xl=class extends be.BufferGeometry{constructor(t=.5,e=1,r=4,o=1,i=!1,s=0,l=4){super(),r=Math.floor(Math.max(3,r)),o=Math.floor(o),l=Math.floor(l);let c=[],p=[],a=[],u=[],d=0,f=e/2,m=Math.PI/r,h=t*Math.cos(Math.PI/r),g=2*Math.PI/r,x=(r-2)*Math.PI/r,v=Math.PI-x,w=new be.Vector3(0,-f,0),S=new be.Vector3(0,f,0),b=new be.Vector2(t,-f),N=new be.Vector2(h,-f),T=new be.Vector2(0,S.y).sub(N),y=new be.Vector2(0,S.y).sub(b),P=new be.Vector2(T.y,-T.x).normalize(),A=new be.Vector2(y.y,-y.x).normalize(),_=t*Math.cos(Math.PI/r)*Math.tan((Math.PI-T.angle())/2)-1e-8;s=Math.min(s,_);let L;{let W=new be.Vector3(P.x,P.y,0),q=new be.Vector3(Math.cos(g)*W.x,W.y,Math.sin(g)*W.x);L=W.angleTo(q)}let D=s/Math.tan((Math.PI-T.angle())/2),U=s/Math.tan((Math.PI-L)/2),re=new be.Vector3;if(!i){p.push(w.x,w.y,w.z),a.push(0,-1,0),u.push(0,0);let W=d++,q=[],F=b.clone(),M=D/Math.cos(Math.PI/r);F.x-=M;for(let B=0;B<r;B++){let E=B/r*Math.PI*2+m,j=new be.Vector2(Math.sin(E),Math.cos(E));Ai(F,j,re),p.push(re.x,re.y,re.z),a.push(0,-1,0),u.push(0,0),q.push(d++)}for(let B=0;B<q.length;B++)c.push(q[B],W,q[(B+1)%q.length])}let Q=[];{let W=new be.Vector3,q=new be.Vector3,F=new be.Vector3,M=new be.Vector3,B=new be.Vector3,E=new be.Vector3;for(let j=0;j<r;j++){let Z=j/r*Math.PI*2+m,k=(j+.5)/r*Math.PI*2+m,V=(j+1)/r*Math.PI*2+m,R=new be.Vector2(Math.sin(Z),Math.cos(Z)),z=new be.Vector2(Math.sin(k),Math.cos(k)),J=new be.Vector2(Math.sin(V),Math.cos(V));Ai(b,R,q),Ai(b,J,F),Ai(P,z,W),$l(S,q,F,U,U,M),p.push(M.x,M.y,M.z),$l(q,S,F,U,D,B),p.push(B.x,B.y,B.z),$l(F,q,S,D,U,E),p.push(E.x,E.y,E.z),a.push(W.x,W.y,W.z),a.push(W.x,W.y,W.z),a.push(W.x,W.y,W.z),u.push(0,0),u.push(0,0),u.push(0,0);let oe=d++,se=d++,te=d++;if(c.push(oe,se,te),s>0){{let X=q.clone().add(F).multiplyScalar(.5),me=S.clone().sub(X).normalize(),xe=w.clone().sub(X).normalize().add(me).normalize().multiplyScalar(-1),nt=E.clone().sub(B);ce(X,nt,xe,T.angle())}let ee,K;{let X=new be.Vector3;Ai(A,J,X);let me=E.clone().add(M).multiplyScalar(.5);me=vS(me,F,S);let de=E.clone().sub(M);[ee,K]=ce(me,de,X,L,M.y)}{let X=ee,me=X.clone().setY(0).normalize(),de=new be.Vector3(0,-1,0),xe=me.clone().cross(de);H(X,me,de,xe)}Q.concat(K);{let X=T.angle(),me=Math.PI-X,de=S.clone();de.y-=s/Math.sin(X-Math.PI/2);let xe=new be.Vector3,nt=[];for(let Pe=0;Pe<l;Pe++){let Le=[],Ut=Math.PI/2-me*Pe/l,jr=Math.cos(Ut),Et=Math.sin(Ut),Vo=k;for(let ls=0;ls<=Pe;ls++){let cs=Math.cos(Vo),We=Math.sin(Vo);W.x=jr*We,W.y=Et,W.z=jr*cs,xe.copy(de).addScaledVector(W,s),p.push(xe.x,xe.y,xe.z),a.push(W.x,W.y,W.z),u.push(0,0),Le.push(d++),Vo+=Math.PI*2/Pe/r}nt.push(Le)}K.reverse(),nt.push(K);let Ne=nt.length-1;for(let Pe=0;Pe<Ne;Pe++){let Le=nt[Pe],Ut=nt[Pe+1],jr=Le.length-1;c.push(Ut[1],Le[0],Ut[0]);for(let Et=1;Et<=jr;Et++)c.push(Le[Et],Le[Et-1],Ut[Et]),c.push(Ut[Et+1],Le[Et],Ut[Et])}}}}}this.setIndex(c),this.setAttribute("position",new be.Float32BufferAttribute(p,3)),this.setAttribute("normal",new be.Float32BufferAttribute(a,3)),this.setAttribute("uv",new be.Float32BufferAttribute(u,2));function ce(W,q,F,M,B){let E=-M/2,j=(Math.PI-M)/2,Z=q.clone().normalize().cross(F);W.addScaledVector(F,-s/Math.sin(j));let k=new be.Vector3,V=new be.Vector3,R=1,z=d,J=[];for(let oe=0;oe<=l;oe++){let se=E+oe/l*M;V.set(0,0,0),V.addScaledVector(Z,Math.sin(se)),V.addScaledVector(F,Math.cos(se));for(let te=0;te<=R;te++){let ee=te/R-.5;if(k.copy(W),k.addScaledVector(q,ee),k.addScaledVector(V,s),B!=null){let K=Math.max(0,k.y-B);k.addScaledVector(q,-K/q.y)}p.push(k.x,k.y,k.z),a.push(V.x,V.y,V.z),u.push(0,0),te===0&&J.push(d),d++}}for(let oe=0;oe<l;oe++)for(let se=0;se<R;se++){let te=z+se+(R+1)*oe,ee=te+(R+1),K=ee+1,X=te+1;c.push(te,ee,X),c.push(ee,K,X)}return[W.clone().addScaledVector(q,.5),J]}function H(W,q,F,M){let B=Math.PI/2,E=y.angle()-B,j=[],Z=new be.Vector3,k=new be.Vector3;for(let R=0;R<=l;R++){let z=[],J=R/l;for(let oe=0;oe<=R;oe++){let te=((R?oe/R:0)-.5)*v,ee=Math.cos(te),K=Math.sin(te),X=Math.atan(Math.tan(E)*ee),me=(B+X)*J,de=Math.cos(me),xe=Math.sin(me);Z.set(0,0,0),Z.addScaledVector(q,xe*ee),Z.addScaledVector(F,de),Z.addScaledVector(M,xe*K),k.copy(W).addScaledVector(Z,s),p.push(k.x,k.y,k.z),a.push(Z.x,Z.y,Z.z),u.push(0,0),z.push(d++)}j.push(z)}let V=j.length-1;for(let R=0;R<V;R++){let z=j[R],J=j[R+1],oe=z.length-1;c.push(z[0],J[1],J[0]);for(let se=1;se<=oe;se++)c.push(z[se-1],z[se],J[se]),c.push(z[se],J[se+1],J[se])}}}};var Ef=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters),r=Object.assign(t?.ui??{enabledIndieCorners:!1},n.ui);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)}),ui:r}}static build(n){let t=n.shape,{width:e,height:r,cornerRadius:o,cornerType:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p={x:e*.5,y:r*.5},a={x:-p.x,y:-p.y},u={x:p.x,y:p.y};function d(S,b,N){return b>e&&N>r?Math.min(S*e/b,S*r/N):b>e?S*e/b:N>r?S*r/N: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 w=dt.create({shape:t,parameters:{depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(w,{userData:{...n,type:"RectangleGeometry"}})}};var Bf=require("three"),Df=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t=100,height:e=t,depth:r=t,widthSegments:o=64,heightSegments:i=64,phiStart:s,phiLength:l,thetaStart:c,thetaLength:p}=n.parameters,a=new Bf.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 Gf=require("three"),Rf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:0})}}static build(n){let{width:t=100,height:e=t,widthSegments:r=8,heightSegments:o=8}=n.parameters,i=new Gf.PlaneBufferGeometry(t,e,r,o);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};var lo=require("three"),Vf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,angle:o,cornerRadius:i,cornerSegments:s}=n.parameters,l=new Yl(t,e,r,o,i,s);return Object.assign(l,{userData:{...n,type:"BackdropGeometry"}})}},Yl=class extends lo.BufferGeometry{constructor(t=1,e=1,r=1,o=90,i=10,s=24){super(),this.type="BackdropGeometry";let l=[],c=[],p=[],a=.001;i==0&&(s=1),s=Math.max(1,Math.floor(s)),i=Math.min(i,100),o=Math.min(180-a,o),o*=Math.PI/180;let u=[],d=Math.PI/2,f=(k=0,V=0,R=0)=>new lo.Vector3(k,V,R),m=f(),h=f(),[g,x,v]=[e/2,t/2,r/2],w=-x,S=+x,[b,N,T]=[f(w,-g,+v),f(w,-g,-v),f(w,+g,-v)],y=(k,V=!1)=>Math.sin(k-Math.PI/(1+ +V)),P=(k,V=!1)=>Math.cos(k-Math.PI/(1+ +V));T.y=Math.sin(o)*e-g;let A=Math.cos(o)*e-v,O=b.z-a;o<=d?(T.z=Math.min(A,O),T.z==O&&(T.y-=(A-O)/Math.tan(d-o))):N.z=Math.min(N.z-A-v,b.z-a),m.subVectors(b,N),h.subVectors(T,N);let _=Math.min(m.length(),h.length())*i/100,L=_*Math.tan(o/2),D=_/Math.cos(o/2),U=m.clone().normalize().add(h.normalize()).setLength(D).add(N);m.set(0,y(o,!0),P(o,!0)),u.push([T,m.clone()]);let re=(Math.PI-o)/s;for(let k=0;k<=s;k++){let V=d+o+k*re;m.set(0,Math.sin(V)*L,Math.cos(V)*L),m.add(U),h.set(0,y(V),P(V)),u.push([m.clone(),h.clone()])}u.push([b,f(0,1,0)]);let Q=Math.sin(re/2)*L*2,ce=u.length-1,H=u[0][0].distanceTo(u[1][0]),W=u[ce-1][0].distanceTo(u[ce][0]),q=H+Q*s+W;u[0].push(1);for(let k=0;k<=s;k++)u[k+1].push(1-(H+k*Q)/q);u[ce].push(0);let[F,M,B]=u[0],E,j,Z;for(let k=1;k<u.length;k++)[E,j,Z]=u[k],l.push(w,F.y,F.z,w,E.y,E.z,S,F.y,F.z,S,F.y,F.z,w,E.y,E.z,S,E.y,E.z),c.push(0,M.y,M.z,0,j.y,j.z,0,M.y,M.z,0,M.y,M.z,0,j.y,j.z,0,j.y,j.z),p.push(0,B,0,Z,1,B,1,B,0,Z,1,Z),[F,M,B]=[E,j,Z];this.setAttribute("position",new lo.Float32BufferAttribute(l,3)),this.setAttribute("normal",new lo.Float32BufferAttribute(c,3)),this.setAttribute("uv",new lo.Float32BufferAttribute(p,2))}};var Ff=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,innerRadiusPercent:r,spikes:o,cornerRadius:i,angle:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}=n.parameters,a=n.shape,u=t*.5,d=e*.5,f=0,m=0,h=s*Math.PI/360/o,g=Math.PI/2*3*-1,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,N=f+Math.sin(b)*u,T=m+Math.cos(b)*d;a.addPoint(a.createPoint(N,T))}}else for(let S=0;S<o;S++){let b=f+Math.cos(g)*u,N=m+Math.sin(g)*d;a.addPoint(a.createPoint(b,N)),g+=h,b=f+Math.cos(g)*x,N=m+Math.sin(g)*v,S<=o,a.addPoint(a.createPoint(b,N)),g+=h}a.isClosed=!0;for(let S=0,b=a.points.length;S<b;S++)a.points[S].roundness=i;a.roundness=i,a.update();let w=dt.create({shape:a,parameters:{roundness:i,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}});return Object.assign(w,{userData:{...n,type:"StarGeometry"}})}};var zf=require("three"),Uf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e}=n.parameters,r=new zf.PlaneBufferGeometry(t,e);return Object.assign(r,{userData:{...n,type:"TextFrameGeometry"}})}};var jf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??e.width*.25);return{parameters:Object.assign(e,{width:r,height:o,depth:i})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,tubularSegments:i,arc:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=bS(t,e,r,t*.5,s,i,0,0,o,l,c);return p.scale(1,e/t,1),Object.assign(p,{userData:{...n,type:"TorusGeometry"}})}};function bS(n,t,e,r,o,i,s,l,c,p,a){return[t,e]=[e,t],s=t/2,o/=2*Math.PI,o==1&&(p=0),new _i(!0,n,t,e,r,o,i,s,l,c,p,a)}var kf=require("three"),Hf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),tube:e.tube??e.width*.125})}}static build(n){let{width:t,tube:e,tubularSegments:r,radialSegments:o,p:i,q:s}=n.parameters,l=t*.5;l!==e&&(l-=e);let c=new kf.TorusKnotBufferGeometry(l,e,r,o,i,s);return Object.assign(c,{userData:{...n,type:"TorusKnotGeometry"}})}};var Wf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width*(e.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t=100,height:e,cornerRadius:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s,isRect:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5;l?(c.addPoint(c.createPoint(-p,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))):(c.addPoint(c.createPoint(0,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))),c.isClosed=!0;for(let d=0,f=c.points.length;d<f;d++)c.points[d].roundness=r;c.roundness=r,c.update();let u=dt.create({shape:c,parameters:{roundness:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s}});return Object.assign(u,{userData:{...n,type:"TriangleGeometry"}})}};var Co=require("three"),$f=require("three/examples/jsm/utils/BufferGeometryUtils.js");function qf(){let n=new Co.BufferGeometry;return n.setAttribute("position",new Co.BufferAttribute(new Float32Array([]),3)),n.setIndex(new Co.BufferAttribute(new Uint16Array([]),1)),n}var SS=12;var On=class extends Co.BufferGeometry{constructor(e,r){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let o=qf();Object.entries(o.attributes).forEach(([i,s])=>{this.setAttribute(i,s)}),this.setIndex(o.index),this.updateFont(e.font,r),this.update(e)}async updateFont(e,r){let o=r.getFont(e);o&&(this.font=o,await o.loadingPromise)}async update(e){let r=this.font;if(this.userData={parameters:e,type:"TextGeometry"},!r||!r.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:o,height:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c,text:p,textTransform:a,subdivisions:u}=e;await r.loadingPromise;let d=a===2?p.toUpperCase():a===3?p.toLowerCase():p,f=wS(e,r,d),{shapes:m,charWidths:h,charCoords:g}=await r.generateShapes(f,e),x=o*.5,v=i*.5,w=m.map(N=>new _e().fromShape(N));this.vectorShapes=w;let S=w.map(N=>dt.create({shape:N,parameters:{depth:s,extrudeBevelSegments:c,extrudeBevelSize:l,windingRule:s<=0?Me.NONZERO:Me.ODD,subdivisions:u??SS}})),b=S.length?(0,$f.mergeBufferGeometries)(S):qf();b.translate(-x,v,0),this.dispose(),this.wrappedText=f,this.charCoords=g,this.charWidths=h,Object.entries(b.attributes).forEach(([N,T])=>{this.setAttribute(N,T)}),this.setIndex(b.index),this.computeBoundingSphere()}clone(){let e=Ao(new Co.BufferGeometry,On.prototype);return e.copy(this),e}copy(e){return Object.entries(e.attributes).forEach(([r,o])=>{this.setAttribute(r,o)}),this.setIndex(e.index),this.userData={parameters:{...e.userData.parameters},type:"TextGeometry"},this}async setText(e){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:e})}get text(){return this.userData.parameters.text??""}};function wS(n,t,e){e=e??n.text;let r=[""],o="";for(let i of e)o+=i,i===" "||i===`
2
+ `?(r[r.length-1]+=o,o="",i===`
3
+ `&&r.push("")):t.getTextWidth(r[r.length-1]+o,n)>n.width&&(r[r.length-1].length&&r.push(""),t.getTextWidth(r[r.length-1]+o,n)>n.width&&(o.length===1?(r[r.length-1]+=o,o=""):(r[r.length-1]+=o.slice(0,-1),o=o[o.length-1],r.push(""))));return r[r.length-1]+=o,r}var $e=require("three");var _S,Na=new Promise(n=>{_S=n});var Xf=require("three");function Ia(n,t){return TS(n)}function TS(n){let t={parameters:n,type:n.type};if(n.type==="VectorGeometry"){let r=_e.createFromState(n.shape,n.width,n.height);t.shape=r}else n.type==="NonParametricGeometry"&&(n.data.groups&&n.data.groups.forEach(r=>r.materialIndex=Math.max(r.materialIndex??0,0)),t.geometry=new Xf.BufferGeometryLoader().parse(n));let e;try{e=Ni(t)}catch(r){console.error(r)}if(!e){let r=_e.createFromState(qo.defaultData(),100,100);t.shape=r,e=Ni(t)}return e}var pe;Na.then(n=>{pe=n});var Yf=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),Kf=new Uint32Array([0,1,2,3]),Qf=new Uint8Array([4]),qt=class{static build(n,t,e,r,o){let i,s,l,c=n?.phongAngle??t?.phongAngle??35;if(r===!1&&(c=-1),n.positionWASM!==void 0){e&&e!==0&&(pe.free_bvh(e),pe.free_subdivision_surface(e));try{i=qt.allocate(n,o)}catch(p){console.error(p,n),i=qt.allocate({positionWASM:Yf,indexWASM:Kf,verticesPerFaceWASM:Qf},o)}pe.set_destination_refinement_level(i,0),s=qt.buildLevel(i,!0,c)}else i=e,n.phongAngle!==void 0&&(s=qt.buildLevel(i,!0,c));return n.subdivisions!==void 0&&(pe.set_destination_refinement_level(i,n.subdivisions),n.subdivisions>0?l=qt.buildLevel(i,!1,c):l=null),{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}}static primitiveToQuads(n,t){n.widthSegments>16&&(n.widthSegments=16),n.heightSegments>16&&(n.heightSegments=16),n.depthSegments>16&&(n.depthSegments=16),n.radialSegments>16&&(n.radialSegments=16),n.type==="DodecahedronGeometry"&&(n.detail=0);let e=n.shape!==void 0?t.geometry:Ia(n),r,o,i,s;({positions:r,triIndices:s}=Jl(e.getAttribute("position"),e.getIndex()));let l;if(n.type==="CylinderGeometry"&&n.cornerRadius===0&&n.hollow===0&&n.openEnded===!1){let c=n.radialSegments*n.heightSegments*3*2,p=c+n.radialSegments*3;l=[c,p]}return{indices:o,verticesPerFace:i}=ec(r,s,e,l),{positions:r,indices:o,verticesPerFace:i}}static allocate(n,t){let e,r,o,i=[],s=[];n.positionWASM&&n.positionWASM.length>0?(e=n.positionWASM,r=n.indexWASM,o=n.verticesPerFaceWASM):(e=Yf,r=Kf,o=Qf);let l=e.length,c=r.length,p=o.length,a=e.length+i.length+s.length,u=r.length+o.length,d=a*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,f=a*Float32Array.BYTES_PER_ELEMENT,m=u*Uint32Array.BYTES_PER_ELEMENT,h=pe._malloc(d),g=new Float32Array(pe.HEAPF32.buffer,h,a),x=new Uint32Array(pe.HEAPU32.buffer,h+f,u);g.set(e,0),g.set(i,e.length),g.set(s,e.length+i.length),x.set(r,0),x.set(o,r.length);let v;n?.scaleBaked?.some(S=>S!==1)&&(v=new $e.Matrix4().makeScale(...n.scaleBaked)),t&&(v?v.premultiply(t):v=t);let w=v?pe.alloc_subdivision_surface2(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p,v.elements):pe.alloc_subdivision_surface(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p);return pe._free(h),w}static buildLevel(n,t,e,r,o){let i=o?pe.get_mesh_data2(n,t?pe.Level.CONTROL:pe.Level.REFINED,e,o.elements):pe.get_mesh_data(n,t?pe.Level.CONTROL:pe.Level.REFINED,e),s=8,l=pe.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(4,4+4),p=0,a=pe.HEAPU32[l[p]>>2],u=pe.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=pe.HEAPU32[l[p]>>2],f=pe.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=pe.HEAPU32[l[p]>>2],h=pe.HEAPU32.subarray(m>>2,(m>>2)+c[p]);p++;let g=pe.HEAPU32[l[p]>>2],x=pe.HEAPU32.subarray(g>>2,(g>>2)+c[p]);if(p++,r===void 0){let v=new $e.BufferGeometry;if(v.setIndex(new $e.Uint32BufferAttribute(x,1)),v.setAttribute("position",new $e.Float32BufferAttribute(u,3)),v.setAttribute("normal",new $e.Float32BufferAttribute(f,3)),t){v.setAttribute("faceMap",new $e.Uint32BufferAttribute(h,1));let w=new Float32Array(f.length/3*4).fill(0);v.setAttribute("color",new $e.BufferAttribute(w,4))}return pe.free_mesh_data(i),v.userData.type="SubdivGeometry",v}r.getAttribute("position").copyArray(u),r.getAttribute("normal").copyArray(f),r.attributes.position.needsUpdate=!0,r.attributes.normal.needsUpdate=!0,pe.free_mesh_data(i)}static buildControlCageWireframe(n,t,e){let r=pe.get_wireframe_data_for_base_level(n),o=4,i=pe.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(2,2+2),l=0,c=pe.HEAPU32[i[l]>>2],p=pe.HEAPF32.subarray(c>>2,(c>>2)+s[l]);l++;let a=pe.HEAPU32[i[l]>>2],u=pe.HEAPU32.subarray(a>>2,(a>>2)+s[l]);if(t===void 0){let d=new $e.BufferGeometry;d.setAttribute("position",new $e.Float32BufferAttribute(p,3));let f=new Float32Array(p.length);for(let m=0,h=p.length;m<h;)f[m++]=e.r,f[m++]=e.g,f[m++]=e.b;return d.setAttribute("color",new $e.BufferAttribute(f,3)),d.setIndex(new $e.Uint32BufferAttribute(u,1)),pe.free_wireframe_data_for_base_level(r),d}t.getAttribute("position").copyArray(p),t.attributes.position.needsUpdate=!0,pe.free_wireframe_data_for_base_level(r)}static updateCollabMesh(n,t,e){let r=t===0;r||pe.set_destination_refinement_level(n,t);let o=e?pe.get_topological_data2(n,r?pe.Level.CONTROL:pe.Level.REFINED,e.elements):pe.get_topological_data(n,r?pe.Level.CONTROL:pe.Level.REFINED),i=6,s=pe.HEAPU32.subarray(o>>2,(o>>2)+i),l=s.subarray(3,3+3),c=0,p=pe.HEAPU32[s[c]>>2],a=new Float32Array(pe.HEAPF32.subarray(p>>2,(p>>2)+l[c]));c++;let u=pe.HEAPU32[s[c]>>2],d=new Uint32Array(pe.HEAPU32.subarray(u>>2,(u>>2)+l[c]));c++;let f=pe.HEAPU32[s[c]>>2],m=new Uint8Array(pe.HEAPU32.subarray(f>>2,(f>>2)+l[c]));return pe.free_topological_data(o),{positions:a,indices:d,verticesPerFace:m}}};var Zf=["getX","getY","getZ"];function Jl(n,t){let e={},r=t?t.count:n.count,o=0,i=[],s=[],l=1e4;for(let p=0;p<r;p++){let a=t?t.getX(p):p,u="";for(let d=0;d<3;d++)u+=`${~~(n[Zf[d]](a)*l)},`;if(u in e)i.push(e[u]);else{for(let d=0;d<3;d++)s.push(n[Zf[d]](a));e[u]=o,i.push(o),o++}}let c=[];for(let p=0;p<i.length;p+=3)i[p]===i[p+1]||i[p]===i[p+2]||i[p+1]===i[p+2]||c.push(i[p],i[p+1],i[p+2]);return{positions:s,triIndices:c}}var Pa=new $e.Vector3,Kl=new $e.Vector3,Ql=new $e.Vector3,Zl=new $e.Vector3;function ec(n,t,e,r){let o=[],i=[];if(e.userData.shape!==void 0&&e.userData.parameters.depth===0&&e.userData.shape.shapeHoles.length===0){let s=e.userData.shape.extractShapePointsToFlatArray([]),l=0;for(let p=0;p<s.length;p+=2)l+=(s[p]-s[(p===0?s.length:p)-2])*(s[p+1]+s[(p===0?s.length:p)-1]);n.length=0;let c=0;if(l<0)for(let p=0;p<s.length;p+=2)n.push(s[p],s[p+1],0),o.push(c++);else for(let p=s.length-2;p>=0;p-=2)n.push(s[p],s[p+1],0),o.push(c++);return i.push(c),{indices:o,verticesPerFace:i}}for(let s=0,l=e.capStartIndex??t.length;s<l;)if(t[s+1]===t[s+3]&&t[s+2]===t[s+5]||t[s+0]===t[s+3]&&t[s+2]===t[s+4]){Pa.set(n[t[s]*3],n[t[s]*3+1],n[t[s]*3+2]),Kl.set(n[t[s+1]*3],n[t[s+1]*3+1],n[t[s+1]*3+2]),Ql.set(n[t[s+4]*3],n[t[s+4]*3+1],n[t[s+4]*3+2]),Zl.set(n[t[s+5]*3],n[t[s+5]*3+1],n[t[s+5]*3+2]),Kl.sub(Pa).normalize(),Ql.sub(Pa).normalize(),Zl.sub(Pa).normalize();let c=Kl.cross(Ql).dot(Zl);Math.abs(c)>.005||r&&r.some((p,a)=>a%2===1?!1:s>=r[a]&&s<r[a+1])?(o.push(t[s],t[s+1],t[s+2]),i.push(3),s+=3):(o.push(t[s],t[s+1],t[s+4],t[s+5]),i.push(4),s+=6)}else o.push(t[s],t[s+1],t[s+2]),i.push(3),s+=3;if(e.capStartIndex!==void 0){let s=[],l=[],c=0,p=new Float32Array([e.userData.parameters.depth])[0];for(let a=0,u=0;a<n.length;a+=3,u++)n[a+2]===0&&(s.push(u),c++),n[a+2]===p&&l.push(u);if(e.userData.parameters.extrudeBevelSize===0){let a=l[0];l[0]=l[1],l[1]=a}s.reverse(),o.push(...s,...l),i.push(c,c)}return{indices:o,verticesPerFace:i}}var Jt={};Ec(Jt,{calcBoolean:()=>PS,calcBooleanTopological:()=>IS,freeMeshSet:()=>LS,getMeshSet:()=>OS,transformMeshSet:()=>CS});var AS,Jf=new Promise(n=>{AS=n});var Ii=require("three");var ye,Cn;Jf.then(n=>ye=n);function NS(n,t,e){let r,{positions:o,triIndices:i}=Jl(n.getAttribute("position"),n.getIndex()),s;if(t&&e){let{indices:l,verticesPerFace:c}=ec(o,i,n);s=c.length,r=[];for(let p=0,a=0;p<s;p++){r.push(c[p]);for(let u=0;u<c[p];u++)r.push(l[a++])}}else{let l=i.length;r=Array(l+l/3),s=0;for(let c=0,p=0;p<r.length;)r[p++]=3,s++,r[p++]=i[c++],r[p++]=i[c++],r[p++]=i[c++]}return{positions:o,faceIndices:r,nFaces:s}}function em(n){let t=n.length,e=t*Uint32Array.BYTES_PER_ELEMENT,r=t*Float32Array.BYTES_PER_ELEMENT,o=Number.isInteger(n[0])?e:r,i=ye._malloc(o);return(Number.isInteger(n[0])?new Uint32Array(ye.HEAPU32.buffer,i,t):new Float32Array(ye.HEAPF32.buffer,i,t)).set(n,0),i}function tm(n){switch(n){case 0:return ye.OP.UNION;case 1:return ye.OP.INTERSECTION;case 2:return ye.OP.A_MINUS_B;case 3:return ye.OP.B_MINUS_A;case 4:return ye.OP.SYMMETRIC_DIFFERENCE;case 5:return ye.OP.ALL;default:throw new Error("Unknown boolean operation "+n)}}function IS(n,t){Cn===void 0&&(Cn=ye.init_csg());let e=em(n),r=ye.csg_calc_topological(Cn,e,n.length,tm(t));ye._free(e);let o=6,i=ye.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(3,3+3),l=0,c=ye.HEAPU32[i[l]>>2],p=new Float32Array(ye.HEAPF32.subarray(c>>2,(c>>2)+s[l]));l++;let a=ye.HEAPU32[i[l]>>2],u=new Uint32Array(ye.HEAPU32.subarray(a>>2,(a>>2)+s[l]));l++;let d=ye.HEAPU32[i[l]>>2],f=new Uint8Array(ye.HEAPU32.subarray(d>>2,(d>>2)+s[l]));return ye.free_mesh_data(r),{positions:p,indices:u,verticesPerFace:f}}function PS(n,t,e,r){Cn===void 0&&(Cn=ye.init_csg());let o=em(n),i=ye.csg_calc(Cn,o,n.length,r,tm(t));ye._free(o);let s=5,l=ye.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(2,2+3),p=0,a=ye.HEAPU32[l[p]>>2],u=ye.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=ye.HEAPU32[l[p]>>2],f=ye.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=c[p];e.setAttribute("position",new Ii.Float32BufferAttribute(u,3)),e.setAttribute("normal",new Ii.Float32BufferAttribute(f,3));let h=ye.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new Ii.Sphere),e.boundingSphere.center.set(h[0],h[1],h[2]),e.boundingSphere.radius=(h[3]**2+h[4]**2+h[5]**2)**.5,e.userData.parameters={width:h[3]*2,height:h[4]*2,depth:h[5]*2},ye.free_mesh_data(i),m}function OS(n,t,e){if(ye===void 0)return-1;let r,o,i;if(t&&n.userData.positions!==void 0){let g=n.userData;i=g.verticesPerFace.length,r=g.positions,o=Array(g.verticesPerFace.reduce((x,v)=>x+v,0)+i);for(let x=0,v=0,w=0;x<g.verticesPerFace.length;x++){o[w++]=g.verticesPerFace[x];for(let S=0;S<g.verticesPerFace[x];S++)o[w++]=g.indices[v++]}}else({positions:r,faceIndices:o,nFaces:i}=NS(n,t,e));let s=r.length,l=o.length,c=r.length,p=o.length,a=c*Float32Array.BYTES_PER_ELEMENT+p*Uint32Array.BYTES_PER_ELEMENT,u=c*Float32Array.BYTES_PER_ELEMENT,d=p*Uint32Array.BYTES_PER_ELEMENT,f=ye._malloc(a),m=new Float32Array(ye.HEAPF32.buffer,f,c),h=new Uint32Array(ye.HEAPU32.buffer,f+u,p);return m.set(r,0),h.set(o,0),ye.get_csg_mesh(f,s,f+u,l,i)}function CS(n,t){ye.transform_csg_mesh(n,t.elements)}function LS(n){ye.free_csg_mesh(n)}var tc={ConeGeometry:mf,CubeGeometry:hf,CylinderGeometry:df,DodecahedronGeometry:yf,EllipseGeometry:wf,HelixGeometry:Nf,IcosahedronGeometry:Pf,LatheGeometry:Of,NonParametricGeometry:Cf,PolygonGeometry:Lf,PyramidGeometry:Mf,RectangleGeometry:Ef,SphereGeometry:Df,PlaneGeometry:Rf,BackdropGeometry:Vf,StarGeometry:Ff,TextFrameGeometry:Uf,TorusGeometry:jf,TorusKnotGeometry:Hf,TriangleGeometry:Wf,VectorGeometry:dt},Ni=n=>tc[n.type].create(n);var nc=require("three");var Ca=require("three");var rc=require("three");function st(n,t){return t.color(n)}var oc=n=>"isEntity"in n,xr=n=>"isAbstractMesh"in n,vr=n=>n!==null&&n.objectType==="BooleanObject",rm=n=>n.objectType==="CombinedCamera";var Oa=n=>"objectHelper"in n;function MS(n,t){let e=!1;t.position&&(n.position.fromArray(t.position),e=!0),t.rotation&&(n.rotation.fromArray(t.rotation),e=!0),t.scale&&(e=!0,n.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&"hiddenMatrix"in n&&(e=!0,n.hiddenMatrix.fromArray(t.hiddenMatrix??$r.identity)),e&&(n.updateMatrix(),vr(n.parent)&&xr(n)&&n.invalidateDownstreamBooleanData(!0).recomputeBoolean()),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&n.updateWorldMatrix(!1,!0),n.objectType==="CombinedCamera"&&(t.isUpVectorFlipped!==void 0&&(n.isUpVectorFlipped=t.isUpVectorFlipped),n.updateUp())}function ES(n,t){MS(n,t),t.name!==void 0&&(n.name=t.name),t.visible!==void 0&&(n.visible=t.visible)}function om(n,t,e){ES(n,t),t.color!==void 0&&(n.color=st(t.color,e)),t.intensity!==void 0&&(n.intensity=t.intensity),t.shadows!==void 0&&!(n instanceof rc.HemisphereLight)&&(n.castShadow=t.shadows),n.shadow&&!(n instanceof rc.HemisphereLight)&&t.depth!==void 0&&(n.shadow.camera.far=t.depth,n.shadow.needsUpdate=!0)}function nm(n,t){n.shadow.camera.right=t/2,n.shadow.camera.left=-t/2,n.shadow.camera.top=t/2,n.shadow.camera.bottom=-t/2,n.shadow.needsUpdate=!0}var La=n=>class extends n{hasEntityChild(){return this.children.some(e=>oc(e))}isDescendantOf(e){e instanceof Ca.Object3D&&(e=e.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===e)return!0;r=r.parent}return!1}attach(e,r){this.updateWorldMatrix(!0,!1);let o=new Ca.Matrix4().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),oc(e)?e.hiddenMatrix.premultiply(o):e.applyMatrix4(o),e.updateWorldMatrix(!1,!1),this.add(e),r!==void 0&&(this.children.pop(),this.children.splice(r,0,e)),this}copy(e,r=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),r===!0)for(let o=0;o<e.children.length;o++){let i=e.children[o];this.add(i.clone())}return this}};var He=require("three");var Ln=new He.Box3,er=new He.Vector3,br=new He.Vector3,Mn=new He.Matrix4,sm=[new He.Vector3(-1,1,1),new He.Vector3(-1,-1,1),new He.Vector3(1,-1,1),new He.Vector3(1,1,1),new He.Vector3(-1,1,-1),new He.Vector3(-1,-1,-1),new He.Vector3(1,-1,-1),new He.Vector3(1,1,-1)],BS=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],DS=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function GS(n,t,e=0,r=t.count){let o=1/0,i=1/0,s=1/0,l=-1/0,c=-1/0,p=-1/0;for(let a=e;a<r;a++){let u=t.getX(a),d=t.getY(a),f=t.getZ(a);u<o&&(o=u),d<i&&(i=d),f<s&&(s=f),u>l&&(l=u),d>c&&(c=d),f>p&&(p=f)}return n.min.set(o,i,s),n.max.set(l,c,p),n}var im=(n,t,e)=>{if(xr(n)){let r=n.geometry.userData.parameters,o=n.geometry.getAttribute("position");n.geometry.userData.type==="SubdivGeometry"?er.copy(n.originalGeometry.boundingSphere.center):n.geometry.userData.type==="TextGeometry"?er.set(0,0,r.depth*.5):o!==void 0&&(GS(Ln,o,n.geometry.drawRange.start,n.geometry.drawRange.count<1/0?n.geometry.drawRange.count:o.count),Ln.getCenter(er)),n.forceComputeSize?Ln.getSize(br).multiplyScalar(.5):br.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}else if(Oa(n)&&n.objectHelper.visible){let r=n.geometryHelper.getAttribute("position");Ln.setFromArray(r.array),Ln.getCenter(er),Ln.getSize(br).multiplyScalar(.5)}else er.setScalar(0),br.setScalar(0);Mn.copy(t).multiply(n.matrixWorld),br.x===0&&br.y===0&&br.z===0?e.push(new He.Vector3(er.x,er.y,er.z).applyMatrix4(Mn)):sm.forEach(r=>{e.push(r.clone().multiply(br).add(er).applyMatrix4(Mn))})},Pi=class extends He.Box3{constructor(){super(...arguments);this.matrix=new He.Matrix4;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(e){return super.copy(e),this.matrix.copy(e.matrix),this.vertices=e.vertices.map(r=>r.clone()),this.faces=e.faces.map(r=>r.clone()),this.edges=e.edges.map(r=>r.clone()),this.centerEdges=e.centerEdges.map(r=>r.clone()),this}setFromObjectSize(e,r=!1){e.updateWorldMatrix(!1,r),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let o=new He.Matrix4().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,r)}expandByObjectSize(e,r,o=!1){let i=[];return o===!0?e.traverseEntity(s=>{s.visible&&im(s,r,i)}):im(e,r,i),this.setFromPoints(i)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4(Mn.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(br).multiplyScalar(.5),this.getCenter(er),Mn.copy(this.matrix).setPosition(er),this.vertices=sm.map(e=>e.clone().multiply(br).applyMatrix4(Mn))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=BS.map(([e,r])=>new He.Line3(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new He.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=DS.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var Sr=n=>"isEntity"in n,am=n=>"isAbstractMesh"in n,$t=n=>class extends La(n){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new nc.Matrix4;this._singleBBox=new Pi;this._recursiveBBox=new Pi;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1;this.states={};this.currentState=null;this.currentTransitionAction=null}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}resetBBoxNeedsUpdate(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0,this.traverseAncestors(r=>{Sr(r)&&(r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(r=>{r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0})}traverseEntity(r){r(this);for(let o of this.children)Sr(o)&&o.traverseEntity(r)}traverseVisibleEntity(r){r(this);for(let o of this.children)Sr(o)&&o.visible&&o.traverseVisibleEntity(r)}updateMatrix(){super.updateMatrix(),this.dispatchEvent({type:"updateMatrix"})}updateMatrixWorld(r){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||r)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,r=!0);for(let o of this.children)o.updateMatrixWorld(r)}updateWorldMatrix(r,o){let i=this.parent;if(r&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),o)for(let s of this.children)s.updateWorldMatrix(!1,!0)}clone(r){return new this.constructor().copy(this,r)}copy(r,o=!0){if(super.copy(r,!1),this.raycastLock=r.raycastLock,this.scaleLock=r.scaleLock,this.hiddenMatrix.copy(r.hiddenMatrix),o===!0)for(let i of r.children)Sr(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let r=new nc.Matrix4,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),r.copy(this.matrixWorld).invert(),r.multiply(o);for(let i of this.children)Sr(i)&&i.hiddenMatrix.premultiply(r)}toObjectTransformState(r=[]){this.updateWorldMatrix(!0,!1);let o={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return fn(o,r)}fromObjectTransformState(r){return r.position&&this.position.fromArray(r.position),r.rotation&&this.rotation.fromArray(r.rotation),r.scale&&this.scale.fromArray(r.scale),r.hiddenMatrix&&this.hiddenMatrix.fromArray(r.hiddenMatrix),this.updateMatrix(),this}toState(r=[]){let o={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(r)};return fn(o,r)}fromState(r,o){return r.name&&(this.name=r.name),r.raycastLock!==void 0&&(this.raycastLock=r.raycastLock),r.type!=="OrthographicCamera"&&r.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),r.visible!==void 0&&(this.visible=r.visible),this.fromObjectTransformState(r),this}};var za=require("three");var rr=require("three");var Oi=class{constructor(t){t=t??{},this.name=t.name,this.type=t.type,this.node=t.node,this.size=t.size,this.needsUpdate=t.needsUpdate}get value(){return this.node.value}set value(t){this.node.value=t}};var lm=require("three"),at=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=lm.MathUtils.generateUUID(),this.type=t,this.name=""}analyze(t,e){e=e??{},t.analyzing=!0,this.build(t.addFlow(e.slot,e.cache,e.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,e,r){return r=r??{},this.analyze(t,r),this.flow(t,e,r)}flow(t,e,r){r=r??{},t.addFlow(r.slot,r.cache,r.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,r){e=e??this.getType(t,e);let o=t.getNodeData(r??this);return t.analyzing&&this.appendDepsNode(t,o,e),t.nodes.indexOf(this)===-1&&t.nodes.push(this),this.updateFrame!==void 0&&t.updaters.indexOf(this)===-1&&t.updaters.push(this),this.generate(t,e,r)}updateFrame(t){}generateReadonly(t,e,r,o,i,s){return""}generate(t,e,r,o,i){return""}parse(t,e,r,o){}appendDepsNode(t,e,r){e.deps=(e.deps||0)+1;let o=t.getTypeLength(r);(o>(e.outputMax||0)||this.getType(t,r))&&(e.outputMax=o,e.output=r)}setName(t){this.name=t}getName(){return this.name}getType(t,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}getHash(){let t="{",e,r;for(e in this)r=this[e],r instanceof at&&(t+='"'+e+'":'+r.getHash()+",");if(this.hashProperties)for(let o=0;o<this.hashProperties.length;o++)e=this.hashProperties[o],r=this[e],t+='"'+e+'":"'+String(r)+'",';return t+='"id":"'+this.uuid+'"}',t}};var ic=class{constructor(){this.nodes={};this.keywords={}}add(t){this.nodes[t.name]=t}addKeyword(t,e,r){r=r!==void 0?r:!0,this.keywords[t]={callback:e,cache:r}}remove(t){delete this.nodes[t.name]}removeKeyword(t){delete this.keywords[t]}get(t){return this.nodes[t]}getKeyword(t,e){return this.keywords[t].callback(e)}getKeywordData(t){return this.keywords[t]}contains(t){return this.nodes[t]!==void 0}containsKeyword(t){return this.keywords[t]!==void 0}},et=new ic;var sc=require("three");var cm=require("three"),le=class extends at{constructor(e,r){super(e);this.scope="";r=r??{},this.shared=r.shared!==void 0?r.shared:!0,this.unique=r.unique!==void 0?r.unique:!1}build(e,r,o,i){if(r=r??this.getType(e),this.getShared(e,r)){let s=this.getUnique(e,r);s&&this.uuid===void 0&&(this.uuid=cm.MathUtils.generateUUID()),o=e.getUUID(o??this.getUUID(),!s);let l=e.getNodeData(o),c=l.output||this.getType(e);if(e.analyzing)return(l.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,l,r),this.generate(e,r,o)):super.build(e,r,o);if(s)return l.name=l.name||super.build(e,r,o),l.name;if(!this.getLabel()&&(!this.getShared(e,c)||e.context.ignoreCache||l.deps===1))return super.build(e,r,o);o=this.getUUID(!1);let p=this.getTemp(e,o);if(p)return e.format(p,c,r);{p=super.generate(e,r,o,l.output,i);let a=this.generate(e,c,o);return e.addNodeCode(p+" = "+a+";"),e.format(p,c,r)}}return super.build(e,r,o)}getShared(e,r){return r!=="sampler2D"&&r!=="samplerCube"&&this.shared}getUnique(e,r){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let r=this.uuid;return typeof this.scope=="string"&&(r=this.scope+"-"+r),r}getTemp(e,r){r=r||this.uuid;let o=e.getVars()[r];return o?o.name:void 0}generate(e,r,o,i,s){return this.getShared(e,r)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,i??this.getType(e),s,this.getLabel()).name}};var Ee=class extends 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 lt=class extends Ee{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof sc.Vector2?e:new sc.Vector2(e,r)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,r,o,i,s,l){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,r)}};var ac=require("three");var ft=class extends Ee{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof ac.Vector3?e:new ac.Vector3(e,r,o)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,r,o,i,s,l){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,r)}};var um=require("three"),tt=class extends um.Color{constructor(e,r,o,i){super(e,r,o);this.isColorA=!0;this.a=i}setRGBA(e,r,o,i){super.setRGB(e,r,o),this.a=i}copy(e){return super.copy(e),this.a="a"in e?e.a:1,this}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}get x(){return this.r}get y(){return this.g}get z(){return this.b}get w(){return this.a}set x(e){this.r=e}set y(e){this.g=e}set z(e){this.b=e}set w(e){this.a=e}};var Xt=class extends Ee{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof tt?e:new tt(e.r,e.g,e.b,e.a)}generateReadonly(e,r,o,i,s,l){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,r)}};var RS=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,pm=/[a-z_0-9]+/gi,$=class extends 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=pm.exec(this.src);)a.push(l);for(let u=0;u<a.length;u++){let d=a[u],f=d[0],m=this.isMethod?!this.getInputByName(f):!0,h=f;if(this.keywords[f]||this.useKeywords&&m&&et.containsKeyword(f)){let g=this.keywords[f];if(!g){let x=et.getKeywordData(f);x.cache&&(g=e.keywords[f]),g=g||et.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&&et.contains(h)&&e.include(et.get(h))}return r==="source"?p:this.isMethod?(this.isInterface||e.include(this,void 0,p),this.name):e.format("( "+p+" )",this.getType(e),r)}parse(e,r,o,i){if(this.src=e||"",this.includes=r??[],this.extensions=o??{},this.keywords=i??{},this.isMethod){let s=RS.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(pm);if(l){let c=0;for(;c<l.length;){let p=l[c++],a;p==="in"||p==="out"||p==="inout"?a=l[c++]:(a=p,p="");let u=l[c++];this.inputs.push({name:u,type:a,qualifier:p})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var VS=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,lc=class extends le{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||lc.PI,void 0,void 0,void 0,r)}getType(e){return e.getTypeByFormat(this.type)}parse(e,r,o,i,s){this.src=e||"";let l,c,p="",a=VS.exec(e);this.useDefine=s??this.src.charAt(0)==="#",a&&a.length>1?(c=a[1],l=a[2],p=a[3]):(l=this.src,c="f"),this.name=l,this.type=c,this.value=p}build(e,r){if(r==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return e.include(this),e.format(this.name,this.getType(e),r)}generate(e,r,o,i,s){return e.format(this.name,this.getType(e),r)}},we=lc;we.PI="PI",we.PI2="PI2",we.RECIPROCAL_PI="RECIPROCAL_PI",we.RECIPROCAL_PI2="RECIPROCAL_PI2",we.LOG2="LOG2",we.EPSILON="EPSILON";var FS=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
4
+ )*?)}`,"gim"),zS=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),En=class extends 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=FS.exec(e);if(r){let o=r[2],i;for(;i=zS.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=r[1]}else this.name="";this.type=this.name}};var Bn=class extends 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)}};et.addKeyword("uv",function(){return new Bn});et.addKeyword("uv2",function(){return new Bn(1)});var Ma=require("three");var Lo=class extends le{constructor(e,r){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=r??Lo.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case Ma.LinearEncoding:return["Linear"];case Ma.sRGBEncoding:return["sRGB"];default:return[]}}generate(e,r){let o=this.input.build(e,"v4"),i=this.getType(e),s=Lo.Nodes[this.method],l=e.include(s);if(l===Lo.LINEAR_TO_LINEAR)return e.format(o,i,r);if(s.inputs?.length===2){let c=this.factor.build(e,"f");return e.format(l+"( "+o+", "+c+" )",i,r)}else return e.format(l+"( "+o+" )",i,r)}fromEncoding(e){let r=Lo.getEncodingComponents(e);this.method="LinearTo"+r[0],this.factor=r[1]}fromDecoding(e){let r=Lo.getEncodingComponents(e);this.method=r[0]+"ToLinear",this.factor=r[1]}},St=Lo;St.Nodes={LinearToLinear:new $(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
5
+ `)),sRGBToLinear:new $(["vec4 sRGBToLinear( in vec4 value ) {"," return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );","}"].join(`
6
+ `)),LinearTosRGB:new $(["vec4 LinearTosRGB( in vec4 value ) {"," return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );","}"].join(`
7
+ `))},St.LINEAR_TO_LINEAR="LinearToLinear",St.SRGB_TO_LINEAR="sRGBToLinear",St.LINEAR_TO_SRGB="LinearTosRGB";var Ae=class extends ${constructor(e="",r,o,i,s){super(e,s,i,o,r);this.nodeType="Expression"}};var dm=require("three"),Ot=class extends Ee{constructor(e=new dm.Texture,r,o,i){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=r??new Bn,this.bias=o,this.project=i!==void 0?i:!1}getTexture(e,r){return super.generate(e,r,this.value.uuid,"t")}generate(e,r){if(r==="sampler2D")return this.getTexture(e,r);let o=this.getTexture(e,r),i=this.uv.build(e,this.project?"v4":"v2"),s=this.bias?this.bias.build(e,"f"):void 0;s===void 0&&e.context.bias&&(s=e.context.bias.setTexture(this).build(e,"f"));let l,c;this.project?l="texture2DProj":l=s?"tex2DBias":"tex2D",s?c=l+"( "+o+", "+i+", "+s+" )":c=l+"( "+o+", "+i+" )";let p={include:e.isShader("vertex"),ignoreCache:!0},a=this.getType(e);return e.addContext(p),this.colorSpace=this.colorSpace??new St(new Ae("",a)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(c),c=this.colorSpace.build(e,a),e.removeContext(),e.format(c,a,r)}};var Y=class extends Ee{constructor(e){super("f");this.nodeType="Float";this.value=e??0}generateReadonly(e,r,o,i,s,l){return e.format(this.value+(this.value%1?"":".0"),i,r)}};var Ci=class extends le{constructor(e,r){super();this.inputs=[];this.nodeType="FunctionCall";this.value=e,this.inputs=r??[]}getFunction(){return this.value}getType(e){return this.value.getType(e)}generate(e,r,o,i,s){i=this.getType(e);let l=this.value,c=l.build(e,r)+"( ",p=[];if(l.inputs){for(let a=0;a<l.inputs.length;a++){let u=l.inputs[a],d=this.inputs[a]||this.inputs[u.name];p.push(d.build(e,e.getTypeByFormat(u.type)))}c+=p.join(", ")+" )"}return e.format(c,i,r)}};var cc=class extends le{constructor(e,r,o=cc.ADD){super();this.nodeType="Operator";this.type=e.type,this.a=e,this.b=r,this.op=o}getType(e){let r=this.a.getType(e),o=this.b.getType(e);return e.isTypeMatrix(r)?"v4":e.getTypeLength(o)>e.getTypeLength(r)?o:r}generate(e,r){let o=this.getType(e);this.type=o;let i=this.a.build(e,o),s=this.b.build(e,o);return e.format("( "+i+" "+this.op+" "+s+" )",o,r)}},Ct=cc;Ct.ADD="+",Ct.SUB="-",Ct.MUL="*",Ct.DIV="/";var Ce=class extends le{constructor(e,r=Ce.ABS,o,i){super();this.nodeType="Math";this.a=e,typeof r!="string"?this.b=r:i=r,typeof o!="string"?this.c=o:i=o,this.method=i,this.hashProperties=["method"]}getNumInputs(e){switch(this.method){case Ce.MIX:case Ce.CLAMP:case Ce.REFRACT:case Ce.SMOOTHSTEP:case Ce.FACEFORWARD:return 3;case Ce.MIN:case Ce.MAX:case Ce.MOD:case Ce.STEP:case Ce.REFLECT:case Ce.DISTANCE:case Ce.DOT:case Ce.CROSS:case Ce.POW:return 2;default:return 1}}getInputType(e){let r=e.getTypeLength(this.a.getType(e)),o=this.b?e.getTypeLength(this.b.getType(e)):0,i=this.c?e.getTypeLength(this.c.getType(e)):0;return r>o&&r>i?this.a.getType(e):o>i?this.b.getType(e):this.c.getType(e)}getType(e){switch(this.method){case Ce.LENGTH:case Ce.DISTANCE:case Ce.DOT:return"f";case Ce.CROSS:return"v3"}return this.getInputType(e)}generate(e,r){let o,i,s,l=this.a?e.getTypeLength(this.a.getType(e)):0,c=this.b?e.getTypeLength(this.b.getType(e)):0,p=this.c?e.getTypeLength(this.c.getType(e)):0,a=this.getInputType(e),u=this.getType(e);switch(this.type=u,this.method){case Ce.NEGATE:return e.format("( -"+this.a.build(e,a)+" )",a,r);case Ce.INVERT:return e.format("( 1.0 - "+this.a.build(e,a)+" )",a,r);case Ce.CROSS:o=this.a.build(e,"v3"),i=this.b.build(e,"v3");break;case Ce.STEP:o=this.a.build(e,l===1?"f":a),i=this.b.build(e,a);break;case Ce.MIN:case Ce.MAX:case Ce.MOD:o=this.a.build(e,a),i=this.b.build(e,c===1?"f":a);break;case Ce.REFRACT:o=this.a.build(e,a),i=this.b.build(e,a),s=this.c.build(e,"f");break;case Ce.MIX:o=this.a.build(e,a),i=this.b.build(e,a),s=this.c.build(e,p===1?"f":a);break;default:o=this.a.build(e,a),this.b&&(i=this.b.build(e,a)),this.c&&(s=this.c.build(e,a));break}let d=[];d.push(o),i&&d.push(i),s&&d.push(s);let f=this.getNumInputs(e);if(d.length!==f)throw Error(`Arguments not match used in "${this.method}". Require ${f}, currently ${d.length}.`);return e.format(this.method+"( "+d.join(", ")+" )",u,r)}},fe=Ce;fe.RAD="radians",fe.DEG="degrees",fe.EXP="exp",fe.EXP2="exp2",fe.LOG="log",fe.LOG2="log2",fe.SQRT="sqrt",fe.INV_SQRT="inversesqrt",fe.FLOOR="floor",fe.CEIL="ceil",fe.NORMALIZE="normalize",fe.FRACT="fract",fe.SATURATE="saturate",fe.SIN="sin",fe.COS="cos",fe.TAN="tan",fe.ASIN="asin",fe.ACOS="acos",fe.ARCTAN="atan",fe.ABS="abs",fe.SIGN="sign",fe.LENGTH="length",fe.NEGATE="negate",fe.INVERT="invert",fe.MIN="min",fe.MAX="max",fe.MOD="mod",fe.STEP="step",fe.REFLECT="reflect",fe.DISTANCE="distance",fe.DOT="dot",fe.CROSS="cross",fe.POW="pow",fe.MIX="mix",fe.CLAMP="clamp",fe.REFRACT="refract",fe.SMOOTHSTEP="smoothstep",fe.FACEFORWARD="faceforward";var Dn=class extends le{constructor(e,r,o){super("v4");this.nodeType="TextureCubeUV";this.value=e,this.uv=r,this.bias=o}bilinearCubeUV(e,r,o,i){let s=new Ci(Dn.Nodes.bilinearCubeUV,[r,o,i]);this.colorSpaceTL=this.colorSpaceTL??new St(new Ae("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(s.build(e)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new St(new Ae("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(s.build(e)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new St(new Ae("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(s.build(e)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new St(new Ae("","v4")),this.colorSpaceBR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(s.build(e)+".br");let l={include:e.isShader("vertex"),ignoreCache:!0};e.addContext(l),this.colorSpaceTLExp=new Ae(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new Ae(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new Ae(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new Ae(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let c=new Ae("mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )","v4");return c.keywords.cubeUV_TL=this.colorSpaceTLExp,c.keywords.cubeUV_TR=this.colorSpaceTRExp,c.keywords.cubeUV_BL=this.colorSpaceBLExp,c.keywords.cubeUV_BR=this.colorSpaceBRExp,c.keywords.cubeUV=s,c}generate(e,r){if(e.isShader("fragment")){let o=this.uv,i=this.bias||e.context.roughness,s=new Ci(Dn.Nodes.roughnessToMip,[i]),l=new fe(s,Dn.Nodes.m0,Dn.Nodes.cubeUV_maxMipLevel,fe.CLAMP),c=new fe(l,fe.FLOOR),p=new fe(l,fe.FRACT),a=this.bilinearCubeUV(e,this.value,o,c),u=this.bilinearCubeUV(e,this.value,o,new Ct(c,new Y(1).setReadonly(!0),Ct.ADD)),d=new fe(a,u,p,fe.MIX);return e.format(d.build(e),"v4",r)}else return console.warn("TextureCubeUVNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r)}},Gn=Dn;Gn.Nodes=function(){let e=new En(`struct TextureCubeUVData {
8
8
  vec4 tl;
9
9
  vec4 tr;
10
10
  vec4 br;
11
11
  vec4 bl;
12
12
  vec2 f;
13
- }`),n=new Le("float cubeUV_maxMipLevel 8.0",!0),o=new Le("float cubeUV_minMipLevel 4.0",!0),i=new Le("float cubeUV_maxTileSize 256.0",!0),a=new Le("float cubeUV_minTileSize 16.0",!0),s=new Z(`float getFace(vec3 direction) {
13
+ }`),r=new we("float cubeUV_maxMipLevel 8.0",!0),o=new we("float cubeUV_minMipLevel 4.0",!0),i=new we("float cubeUV_maxTileSize 256.0",!0),s=new we("float cubeUV_minTileSize 16.0",!0),l=new $(`float getFace(vec3 direction) {
14
14
  vec3 absDirection = abs(direction);
15
15
  float face = -1.0;
16
16
  if (absDirection.x > absDirection.z) {
@@ -25,7 +25,7 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
25
25
  face = direction.y > 0.0 ? 1.0 : 4.0;
26
26
  }
27
27
  return face;
28
- }`);s.useKeywords=!1;let l=new Z(`vec2 getUV(vec3 direction, float face) {
28
+ }`);l.useKeywords=!1;let c=new $(`vec2 getUV(vec3 direction, float face) {
29
29
  vec2 uv;
30
30
  if (face == 0.0) {
31
31
  uv = vec2(direction.z, direction.y) / abs(direction.x); // pos x
@@ -41,7 +41,7 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
41
41
  uv = vec2(direction.x, direction.y) / abs(direction.z); // neg z
42
42
  }
43
43
  return 0.5 * (uv + 1.0);
44
- }`);l.useKeywords=!1;let u=new Z(`TextureCubeUVData bilinearCubeUV(sampler2D envMap, vec3 direction, float mipInt) {
44
+ }`);c.useKeywords=!1;let p=new $(`TextureCubeUVData bilinearCubeUV(sampler2D envMap, vec3 direction, float mipInt) {
45
45
  float face = getFace(direction);
46
46
  float filterInt = max(cubeUV_minMipLevel - mipInt, 0.0);
47
47
  mipInt = max(mipInt, cubeUV_minMipLevel);
@@ -69,7 +69,7 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
69
69
  uv.x -= texelSize;
70
70
  vec4 bl = texture2D(envMap, uv);
71
71
  return TextureCubeUVData( tl, tr, br, bl, f );
72
- }`,[e,s,l,n,o,i,a]);u.useKeywords=!1;let c=new Le("float r0 1.0",!0),p=new Le("float v0 0.339",!0),f=new Le("float m0 -2.0",!0),d=new Le("float r1 0.8",!0),h=new Le("float v1 0.276",!0),m=new Le("float m1 -1.0",!0),g=new Le("float r4 0.4",!0),v=new Le("float v4 0.046",!0),x=new Le("float m4 2.0",!0),b=new Le("float r5 0.305",!0),w=new Le("float v5 0.016",!0),S=new Le("float m5 3.0",!0),_=new Le("float r6 0.21",!0),T=new Le("float v6 0.0038",!0),y=new Le("float m6 4.0",!0),O=[c,p,f,d,h,m,g,v,x,b,w,S,_,T,y],A=new Z(`float roughnessToMip(float roughness) {
72
+ }`,[e,l,c,r,o,i,s]);p.useKeywords=!1;let a=new we("float r0 1.0",!0),u=new we("float v0 0.339",!0),d=new we("float m0 -2.0",!0),f=new we("float r1 0.8",!0),m=new we("float v1 0.276",!0),h=new we("float m1 -1.0",!0),g=new we("float r4 0.4",!0),x=new we("float v4 0.046",!0),v=new we("float m4 2.0",!0),w=new we("float r5 0.305",!0),S=new we("float v5 0.016",!0),b=new we("float m5 3.0",!0),N=new we("float r6 0.21",!0),T=new we("float v6 0.0038",!0),y=new we("float m6 4.0",!0),P=[a,u,d,f,m,h,g,x,v,w,S,b,N,T,y],A=new $(`float roughnessToMip(float roughness) {
73
73
  float mip = 0.0;
74
74
  if (roughness >= r1) {
75
75
  mip = (r0 - roughness) * (m1 - m0) / (r0 - r1) + m0;
@@ -83,8 +83,8 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
83
83
  mip = -2.0 * log2(1.16 * roughness);// 1.16 = 1.79^0.25
84
84
  }
85
85
  return mip;
86
- }`,O);return{bilinearCubeUV:u,roughnessToMip:A,m0:f,cubeUV_maxMipLevel:n}}();var xo=class extends he{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??xo.VIEW}getShared(){return this.scope===xo.WORLD}build(e,n,o,i){let a=e.context[this.scope+"Normal"];return a?a.build(e,n,o,i):super.build(e,n,o)}generate(e,n,o,i,a){let s;switch(this.scope){case xo.VIEW:e.isShader("vertex")?s="transformedNormal":s="geometryNormal";break;case xo.LOCAL:e.isShader("vertex")?s="objectNormal":(e.requires.normal=!0,s="vObjectNormal");break;case xo.WORLD:e.isShader("vertex")?s="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,s="vWNormal");break}return e.format(s,this.getType(e),n)}},St=xo;St.LOCAL="local",St.WORLD="world",St.VIEW="view",St.NORMAL="normal";pt.addKeyword("viewNormal",function(){return new St(St.VIEW)});pt.addKeyword("localNormal",function(){return new St(St.NORMAL)});pt.addKeyword("worldNormal",function(){return new St(St.WORLD)});var Xr=class extends he{constructor(e){super("v3");this.nodeType="Position";this.scope=e??Xr.LOCAL}getType(){switch(this.scope){case Xr.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case Xr.LOCAL:case Xr.WORLD:return!1}return!0}generate(e,n,o,i,a){let s;switch(this.scope){case Xr.LOCAL:e.isShader("vertex")?s="transformed":(e.requires.position=!0,s="vPosition");break;case Xr.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,s="vWPosition";break;case Xr.VIEW:s=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case Xr.PROJECTION:s=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(s,this.getType(),n)}},Wt=Xr;Wt.LOCAL="local",Wt.WORLD="world",Wt.VIEW="view",Wt.PROJECTION="projection";pt.addKeyword("position",function(){return new Wt});pt.addKeyword("worldPosition",function(){return new Wt(Wt.WORLD)});pt.addKeyword("viewPosition",function(){return new Wt(Wt.VIEW)});var xr=class extends he{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e??xr.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case xr.SPHERE:return"v2"}return this.type}generate(e,n){let o=this.getUnique(e);if(e.isShader("fragment")){let i;switch(this.scope){case xr.VECTOR:{let a=new St(St.VIEW),s=e.context.roughness,l=a.build(e,"v3"),u=new Wt(Wt.VIEW).build(e,"v3"),c=s?s.build(e,"f"):void 0,p=`reflect( -normalize( ${u} ), ${l} )`;c&&(p=`normalize( mix( ${p}, ${l}, ${c} * ${c} ) )`);let f=`inverseTransformDirection( ${p}, viewMatrix )`;o?(e.addNodeCode(`vec3 reflectVec = ${f};`),i="reflectVec"):i=f;break}case xr.CUBE:{let a=new xr(xr.VECTOR).build(e,"v3"),s="vec3( -"+a+".x, "+a+".yz )";o?(e.addNodeCode(`vec3 reflectCubeVec = ${s};`),i="reflectCubeVec"):i=s;break}case xr.SPHERE:{let a=new xr(xr.VECTOR).build(e,"v3"),s="normalize( ( viewMatrix * vec4( "+a+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";o?(e.addNodeCode(`vec2 reflectSphereVec = ${s};`),i="reflectSphereVec"):i=s;break}}return e.format(i,this.getType(),n)}else return console.warn("ReflectNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.type,n)}},Yr=xr;Yr.CUBE="cube",Yr.SPHERE="sphere",Yr.VECTOR="vector";var zl=class extends he{constructor(e=new jt,n,o){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new _i(this.value,n??new Yr(Yr.VECTOR),o),this.irradianceNode=new _i(this.value,new St(St.WORLD),new J(1).setReadonly(!0))}generate(e,n){return e.isShader("fragment")?(e.require("irradiance"),e.context.bias&&e.context.bias.setTexture(this.value),(e.slot==="irradiance"?this.irradianceNode:this.radianceNode).build(e,n)):(console.warn("TextureCubeNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),n))}};var bg=require("three");var jl=class extends Ue{constructor(e=new bg.CubeTexture,n,o){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=n??new Yr,this.bias=o}getTexture(e,n){return super.generate(e,n,this.value.uuid,"tc")}generate(e,n){if(n==="samplerCube")return this.getTexture(e,n);let o=this.getTexture(e,n),i=this.uv?.build(e,"v3"),a=this.bias?this.bias.build(e,"f"):void 0;a===void 0&&e.context.bias&&(a=e.context.bias.setTexture(this).build(e,"f"));let s;a?s="texCubeBias( "+o+", "+i+", "+a+" )":s="texCube( "+o+", "+i+" )";let l={include:e.isShader("vertex"),ignoreCache:!0},u=this.getType(e);return e.addContext(l),this.colorSpace=this.colorSpace??new Dt(new Me("",u)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(s),s=this.colorSpace.build(e,u),e.removeContext(),e.format(s,u,n)}};var Sg=["x","y","z","w"],BC=["float","vec2","vec3","vec4"],FC={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},RC={t:"sampler2D",tc:"samplerCube",b:"bool",i:"int",f:"float",c:"vec3",v2:"vec2",v3:"vec3",v4:"vec4",m3:"mat3",m4:"mat4","f[]":"float[]","v4[]":"vec4[]"},Hl=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};this.getIncludesCode=function(){function t(e,n){return e.deps.length-n.deps.length}return function(n,o){let i=this.getIncludes(n,o);if(!i)return"";let a="";i=i.sort(t);for(let s=0;s<i.length;s++)i[s].src&&(a+=i[s].src+`
87
- `);return a}}();this.slots=[],this.caches=[],this.contexts=[],this.keywords={},this.nodeData={},this.fragmentVariables={},this.fragmentParsVariables={},this.vertexParsVariables={},this.requires={uv:[],color:[],transparent:!1,irradiance:!1,position:!1,worldPosition:!1,normal:!1,worldNormal:!1,vWorldViewDir:!1,modelMatrix:!1,viewMatrix:!1,projectionMatrix:!1},this.includes={consts:[],functions:[],structs:[]},this.attributes={},this.prefixCode=["#ifdef TEXTURE_LOD_EXT"," #define texCube(a, b) textureCube(a, b)"," #define texCubeBias(a, b, c) textureCubeLodEXT(a, b, c)"," #define tex2D(a, b) texture2D(a, b)"," #define tex2DBias(a, b, c) texture2DLodEXT(a, b, c)","#else"," #define texCube(a, b) textureCube(a, b)"," #define texCubeBias(a, b, c) textureCube(a, b, c)"," #define tex2D(a, b) texture2D(a, b)"," #define tex2DBias(a, b, c) texture2D(a, b, c)","#endif",`
86
+ }`,P);return{bilinearCubeUV:p,roughnessToMip:A,m0:d,cubeUV_maxMipLevel:r}}();var Mo=class extends le{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??Mo.VIEW}getShared(){return this.scope===Mo.WORLD}build(e,r,o,i){let s=e.context[this.scope+"Normal"];return s?s.build(e,r,o,i):super.build(e,r,o)}generate(e,r,o,i,s){let l;switch(this.scope){case Mo.VIEW:e.isShader("vertex")?l="transformedNormal":l="geometryNormal";break;case Mo.LOCAL:e.isShader("vertex")?l="objectNormal":(e.requires.normal=!0,l="vObjectNormal");break;case Mo.WORLD:e.isShader("vertex")?l="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,l="vWNormal");break}return e.format(l,this.getType(e),r)}},ct=Mo;ct.LOCAL="local",ct.WORLD="world",ct.VIEW="view",ct.NORMAL="normal";et.addKeyword("viewNormal",function(){return new ct(ct.VIEW)});et.addKeyword("localNormal",function(){return new ct(ct.NORMAL)});et.addKeyword("worldNormal",function(){return new ct(ct.WORLD)});var wr=class extends le{constructor(e){super("v3");this.nodeType="Position";this.scope=e??wr.LOCAL}getType(){switch(this.scope){case wr.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case wr.LOCAL:case wr.WORLD:return!1}return!0}generate(e,r,o,i,s){let l;switch(this.scope){case wr.LOCAL:e.isShader("vertex")?l="transformed":(e.requires.position=!0,l="vPosition");break;case wr.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,l="vWPosition";break;case wr.VIEW:l=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case wr.PROJECTION:l=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(l,this.getType(),r)}},Lt=wr;Lt.LOCAL="local",Lt.WORLD="world",Lt.VIEW="view",Lt.PROJECTION="projection";et.addKeyword("position",function(){return new Lt});et.addKeyword("worldPosition",function(){return new Lt(Lt.WORLD)});et.addKeyword("viewPosition",function(){return new Lt(Lt.VIEW)});var tr=class extends le{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e??tr.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case tr.SPHERE:return"v2"}return this.type}generate(e,r){let o=this.getUnique(e);if(e.isShader("fragment")){let i;switch(this.scope){case tr.VECTOR:{let s=new ct(ct.VIEW),l=e.context.roughness,c=s.build(e,"v3"),p=new Lt(Lt.VIEW).build(e,"v3"),a=l?l.build(e,"f"):void 0,u=`reflect( -normalize( ${p} ), ${c} )`;a&&(u=`normalize( mix( ${u}, ${c}, ${a} * ${a} ) )`);let d=`inverseTransformDirection( ${u}, viewMatrix )`;o?(e.addNodeCode(`vec3 reflectVec = ${d};`),i="reflectVec"):i=d;break}case tr.CUBE:{let s=new tr(tr.VECTOR).build(e,"v3"),l="vec3( -"+s+".x, "+s+".yz )";o?(e.addNodeCode(`vec3 reflectCubeVec = ${l};`),i="reflectCubeVec"):i=l;break}case tr.SPHERE:{let s=new tr(tr.VECTOR).build(e,"v3"),l="normalize( ( viewMatrix * vec4( "+s+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";o?(e.addNodeCode(`vec2 reflectSphereVec = ${l};`),i="reflectSphereVec"):i=l;break}}return e.format(i,this.getType(),r)}else return console.warn("ReflectNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.type,r)}},_r=tr;_r.CUBE="cube",_r.SPHERE="sphere",_r.VECTOR="vector";var Ea=class extends le{constructor(e=new Ot,r,o){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new Gn(this.value,r??new _r(_r.VECTOR),o),this.irradianceNode=new Gn(this.value,new ct(ct.WORLD),new Y(1).setReadonly(!0))}generate(e,r){return e.isShader("fragment")?(e.require("irradiance"),e.context.bias&&e.context.bias.setTexture(this.value),(e.slot==="irradiance"?this.irradianceNode:this.radianceNode).build(e,r)):(console.warn("TextureCubeNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r))}};var fm=require("three");var Ba=class extends Ee{constructor(e=new fm.CubeTexture,r,o){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=r??new _r,this.bias=o}getTexture(e,r){return super.generate(e,r,this.value.uuid,"tc")}generate(e,r){if(r==="samplerCube")return this.getTexture(e,r);let o=this.getTexture(e,r),i=this.uv?.build(e,"v3"),s=this.bias?this.bias.build(e,"f"):void 0;s===void 0&&e.context.bias&&(s=e.context.bias.setTexture(this).build(e,"f"));let l;s?l="texCubeBias( "+o+", "+i+", "+s+" )":l="texCube( "+o+", "+i+" )";let c={include:e.isShader("vertex"),ignoreCache:!0},p=this.getType(e);return e.addContext(c),this.colorSpace=this.colorSpace??new St(new Ae("",p)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(l),l=this.colorSpace.build(e,p),e.removeContext(),e.format(l,p,r)}};var mm=["x","y","z","w"],US=["float","vec2","vec3","vec4"],jS={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},kS={t:"sampler2D",tc:"samplerCube",b:"bool",i:"int",f:"float",c:"vec3",v2:"vec2",v3:"vec3",v4:"vec4",m3:"mat3",m4:"mat4","f[]":"float[]","v4[]":"vec4[]"},Da=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};this.getIncludesCode=function(){function t(e,r){return e.deps.length-r.deps.length}return function(r,o){let i=this.getIncludes(r,o);if(!i)return"";let s="";i=i.sort(t);for(let l=0;l<i.length;l++)i[l].src&&(s+=i[l].src+`
87
+ `);return s}}();this.slots=[],this.caches=[],this.contexts=[],this.keywords={},this.nodeData={},this.fragmentVariables={},this.fragmentParsVariables={},this.vertexParsVariables={},this.requires={uv:[],color:[],transparent:!1,irradiance:!1,position:!1,worldPosition:!1,normal:!1,worldNormal:!1,vWorldViewDir:!1,modelMatrix:!1,viewMatrix:!1,projectionMatrix:!1},this.includes={consts:[],functions:[],structs:[]},this.attributes={},this.prefixCode=["#ifdef TEXTURE_LOD_EXT"," #define texCube(a, b) textureCube(a, b)"," #define texCubeBias(a, b, c) textureCubeLodEXT(a, b, c)"," #define tex2D(a, b) texture2D(a, b)"," #define tex2DBias(a, b, c) texture2DLodEXT(a, b, c)","#else"," #define texCube(a, b) textureCube(a, b)"," #define texCubeBias(a, b, c) textureCube(a, b, c)"," #define tex2D(a, b) texture2D(a, b)"," #define tex2DBias(a, b, c) texture2D(a, b, c)","#endif",`
88
88
  // NOTE: Include Spline's blending modes. This could be part of BlendNode
89
89
  #define SPE_BLENDING_NORMAL 0
90
90
  #define SPE_BLENDING_MULTIPLY 1
@@ -121,14 +121,14 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
121
121
  `),fragment:["float accumAlpha = 0.0;",`void accumulateAlpha(float alpha) {
122
122
  accumAlpha += (1.0 - accumAlpha) * alpha;
123
123
  }`,""].join(`
124
- `)},this.code={vertex:"",fragment:""},this.nodeCode={vertex:"",fragment:""},this.resultCode={vertex:"",fragment:""},this.finalCode={vertex:"",fragment:""},this.inputs={uniforms:{list:[],vertex:[],fragment:[]},arrayUniforms:{list:[],vertex:[],fragment:[]},vars:{varying:[],vertex:[],fragment:[]}},this.defines={},this.uniforms={},this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.updaters=[],this.nodes=[],this.analyzing=!1}build(t,e){this.buildShader("vertex",t),this.buildShader("fragment",e);for(let n=0;n<this.requires.uv.length;n++)if(this.requires.uv[n]){let o=n>0?n+1:"";this.addVaryCode("varying vec2 vUv"+o+";"),n>0&&this.addVertexParsCode("attribute vec2 uv"+o+";"),this.addVertexFinalCode("vUv"+o+" = uv"+o+";")}return this.requires.color[0]&&(this.addVaryCode("varying vec4 vColor;"),this.addVertexParsCode("attribute vec4 color;"),this.addVertexFinalCode("vColor = color;")),this.requires.color[1]&&(this.addVaryCode("varying vec4 vColor2;"),this.addVertexParsCode("attribute vec4 color2;"),this.addVertexFinalCode("vColor2 = color2;")),this.requires.position&&(this.addVaryCode("varying vec3 vPosition;"),this.addVertexFinalCode("vPosition = transformed;")),this.requires.worldPosition,this.requires.normal&&(this.addVaryCode("varying vec3 vObjectNormal;"),this.addVertexFinalCode("vObjectNormal = normal;")),this.requires.modelMatrix&&this.addFragmentParsCode("uniform mat4 modelMatrix;"),this.requires.viewMatrix&&this.addFragmentParsCode("uniform mat4 viewMatrix;"),this.requires.projectionMatrix&&this.addFragmentParsCode("uniform mat4 projectionMatrix;"),this.requires.worldNormal&&(this.addVaryCode("varying vec3 vWNormal;"),this.addVertexFinalCode("vWNormal = inverseTransformDirection( transformedNormal, viewMatrix ).xyz;")),this.requires.vWorldViewDir&&(this.addVaryCode("varying vec3 vWorldViewDir;"),this.addVertexFinalCode("vWorldViewDir = isPerspectiveMatrix( projectionMatrix ) ? ( (modelMatrix * vec4(position, 1.0)).xyz - cameraPosition ) : vec3( -viewMatrix[0][2], -viewMatrix[1][2], -viewMatrix[2][2] );")),this}buildShader(t,e){this.resultCode[t]=e.build(this.setShader(t),"v4")}setMaterial(t,e){return this.material=t,this.renderer=e,this.defines={},this}addFlow(t,e,n){return this.addSlot(t).addCache(e).addContext(n)}removeFlow(){return this.removeSlot().removeCache().removeContext()}addCache(t){return this.cache=t??"",this.caches.push(this.cache),this}removeCache(){return this.caches.pop(),this.cache=this.caches[this.caches.length-1]||"",this}addContext(t){return this.context=Object.assign({},this.context,t),this.context.extra=this.context.extra||{},this.contexts.push(this.context),this}removeContext(){return this.contexts.pop(),this.context=this.contexts[this.contexts.length-1]||{},this}addSlot(t){return this.slot=t||"",this.slots.push(this.slot),this}removeSlot(){return this.slots.pop(),this.slot=this.slots[this.slots.length-1]||"",this}addFragmentVariable(t,e){this.fragmentVariables[t]===void 0&&(this.addFragmentCode(`${e} ${t};`),this.fragmentVariables[t]="")}addFragmentParsVariable(t,e){this.fragmentParsVariables[t]===void 0&&(this.addFragmentParsCode(`${e} ${t};`),this.fragmentParsVariables[t]="")}addVertexParsVariable(t,e){this.vertexParsVariables[t]===void 0&&(this.addVertexParsCode(`${e} ${t};`),this.vertexParsVariables[t]="")}addVertexCode(t){this.addCode(t,"vertex")}addFragmentCode(t){this.addCode(t,"fragment")}addCode(t,e){this.code[e??this.shader]+=t+`
124
+ `)},this.code={vertex:"",fragment:""},this.nodeCode={vertex:"",fragment:""},this.resultCode={vertex:"",fragment:""},this.finalCode={vertex:"",fragment:""},this.inputs={uniforms:{list:[],vertex:[],fragment:[]},arrayUniforms:{list:[],vertex:[],fragment:[]},vars:{varying:[],vertex:[],fragment:[]}},this.defines={},this.uniforms={},this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.updaters=[],this.nodes=[],this.analyzing=!1}build(t,e){this.buildShader("vertex",t),this.buildShader("fragment",e);for(let r=0;r<this.requires.uv.length;r++)if(this.requires.uv[r]){let o=r>0?r+1:"";this.addVaryCode("varying vec2 vUv"+o+";"),r>0&&this.addVertexParsCode("attribute vec2 uv"+o+";"),this.addVertexFinalCode("vUv"+o+" = uv"+o+";")}return this.requires.color[0]&&(this.addVaryCode("varying vec4 vColor;"),this.addVertexParsCode("attribute vec4 color;"),this.addVertexFinalCode("vColor = color;")),this.requires.color[1]&&(this.addVaryCode("varying vec4 vColor2;"),this.addVertexParsCode("attribute vec4 color2;"),this.addVertexFinalCode("vColor2 = color2;")),this.requires.position&&(this.addVaryCode("varying vec3 vPosition;"),this.addVertexFinalCode("vPosition = transformed;")),this.requires.worldPosition,this.requires.normal&&(this.addVaryCode("varying vec3 vObjectNormal;"),this.addVertexFinalCode("vObjectNormal = normal;")),this.requires.modelMatrix&&this.addFragmentParsCode("uniform mat4 modelMatrix;"),this.requires.viewMatrix&&this.addFragmentParsCode("uniform mat4 viewMatrix;"),this.requires.projectionMatrix&&this.addFragmentParsCode("uniform mat4 projectionMatrix;"),this.requires.worldNormal&&(this.addVaryCode("varying vec3 vWNormal;"),this.addVertexFinalCode("vWNormal = inverseTransformDirection( transformedNormal, viewMatrix ).xyz;")),this.requires.vWorldViewDir&&(this.addVaryCode("varying vec3 vWorldViewDir;"),this.addVertexFinalCode("vWorldViewDir = isPerspectiveMatrix( projectionMatrix ) ? ( (modelMatrix * vec4(position, 1.0)).xyz - cameraPosition ) : vec3( -viewMatrix[0][2], -viewMatrix[1][2], -viewMatrix[2][2] );")),this}buildShader(t,e){this.resultCode[t]=e.build(this.setShader(t),"v4")}setMaterial(t,e){return this.material=t,this.renderer=e,this.defines={},this}addFlow(t,e,r){return this.addSlot(t).addCache(e).addContext(r)}removeFlow(){return this.removeSlot().removeCache().removeContext()}addCache(t){return this.cache=t??"",this.caches.push(this.cache),this}removeCache(){return this.caches.pop(),this.cache=this.caches[this.caches.length-1]||"",this}addContext(t){return this.context=Object.assign({},this.context,t),this.context.extra=this.context.extra||{},this.contexts.push(this.context),this}removeContext(){return this.contexts.pop(),this.context=this.contexts[this.contexts.length-1]||{},this}addSlot(t){return this.slot=t||"",this.slots.push(this.slot),this}removeSlot(){return this.slots.pop(),this.slot=this.slots[this.slots.length-1]||"",this}addFragmentVariable(t,e){this.fragmentVariables[t]===void 0&&(this.addFragmentCode(`${e} ${t};`),this.fragmentVariables[t]="")}addFragmentParsVariable(t,e){this.fragmentParsVariables[t]===void 0&&(this.addFragmentParsCode(`${e} ${t};`),this.fragmentParsVariables[t]="")}addVertexParsVariable(t,e){this.vertexParsVariables[t]===void 0&&(this.addVertexParsCode(`${e} ${t};`),this.vertexParsVariables[t]="")}addVertexCode(t){this.addCode(t,"vertex")}addFragmentCode(t){this.addCode(t,"fragment")}addCode(t,e){this.code[e??this.shader]+=t+`
125
125
  `}addVertexNodeCode(t){this.addNodeCode(t,"vertex")}addFragmentNodeCode(t){this.addNodeCode(t,"fragment")}addNodeCode(t,e){this.nodeCode[e??this.shader]+=t+`
126
126
  `}clearNodeCode(t){t=t??this.shader;let e=this.nodeCode[t];return this.nodeCode[t]="",e}clearVertexNodeCode(){return this.clearNodeCode("vertex")}clearFragmentNodeCode(){return this.clearNodeCode("fragment")}addVertexFinalCode(t){this.addFinalCode(t,"vertex")}addFragmentFinalCode(t){this.addFinalCode(t,"fragment")}addFinalCode(t,e){this.finalCode[e??this.shader]+=t+`
127
127
  `}addVertexParsCode(t){this.addParsCode(t,"vertex")}addFragmentParsCode(t){this.addParsCode(t,"fragment")}addParsCode(t,e){this.parsCode[e??this.shader]+=t+`
128
- `}addVaryCode(t){this.addVertexParsCode(t),this.addFragmentParsCode(t)}isCache(t){return this.caches.indexOf(t)!==-1}isSlot(t){return this.slots.indexOf(t)!==-1}define(t,e){this.defines[t]=e===void 0?1:e}require(t){this.requires[t]=!0}isDefined(t){return this.defines[t]!==void 0}getVar(t,e,n,o="varying",i="V",a=""){let s=this.getVars(o),l=s[t];if(!l){let u=s.length;l={name:n||"node"+i+u+(a?"_"+a:""),type:e},s.push(l),s[t]=l}return l}getTempVar(t,e,n,o){return this.getVar(t,e,n,this.shader,"T",o)}getAttribute(t,e){if(!this.attributes[t]){let n=this.getVar(t,e);this.addVertexParsCode("attribute "+e+" "+t+";"),this.addVertexFinalCode(n.name+" = "+t+";"),this.attributes[t]={varying:n,name:t,type:e}}return this.attributes[t]}getCode(t){return[this.prefixCode,this.parsCode[t],this.getVarListCode(this.getVars("varying"),"varying"),this.getVarListCode(this.inputs.uniforms[t],"uniform"),this.getVarListCode(this.inputs.arrayUniforms[t],"uniform"),this.getIncludesCode("consts",t),this.getIncludesCode("structs",t),this.getIncludesCode("functions",t),"void main() {",this.getVarListCode(this.getVars(t)),this.code[t],this.resultCode[t],this.finalCode[t],"}"].join(`
129
- `)}getVarListCode(t,e){e=e??"";let n="";for(let o=0,i=t.length;o<i;++o){let a=t[o],s=a.type,l=a.name,u=a.size,c=this.getFormatByType(s);if(c===void 0)throw new Error("Node pars "+c+" not found.");c.includes("[]")?n+=e+" "+c.substring(0,c.length-2)+" "+l+`[${u}];
130
- `:n+=e+" "+c+" "+l+`;
131
- `}return n}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let e=t instanceof xt?t.uuid:t;return this.nodeData[e]=this.nodeData[e]||{}}createUniform(t,e,n,o,i,a){if(e.includes("[]")){let s=this.inputs.arrayUniforms,l=s.list.length,u=new _a({type:e,size:n.size,name:o||"nodeUA"+l+(a?"_"+a:""),node:n,needsUpdate:i});return s.list.push(u),s[t].push(u),s[t][u.name]=u,this.uniforms[u.name]=u,u}else{let s=this.inputs.uniforms,l=s.list.length,u=new _a({type:e,name:o||"nodeU"+l+(a?"_"+a:""),node:n,needsUpdate:i});return s.list.push(u),s[t].push(u),s[t][u.name]=u,this.uniforms[u.name]=u,u}}createVertexUniform(t,e,n,o,i){return this.createUniform("vertex",t,e,n,o,i)}createFragmentUniform(t,e,n,o,i){return this.createUniform("fragment",t,e,n,o,i)}include(t,e,n){let o;if(t=typeof t=="string"?pt.get(t):t,this.context.include===!1)return t.name;t instanceof Z?o=this.includes.functions:t instanceof Le?o=this.includes.consts:t instanceof Ti&&(o=this.includes.structs);let i=o[this.shader]=o[this.shader]||[];if(t){let a=i[t.name];if(a||(a=i[t.name]={node:t,deps:[]},i.push(a),a.src=t.build(this,"source")),t instanceof Z&&e&&i[e.name]&&i[e.name].deps.indexOf(t)===-1&&(i[e.name].deps.push(t),t.includes?.length)){let s=0;do this.include(t.includes[s++],e);while(s<t.includes.length)}return n&&(a.src=n),t.name}else throw new Error("Include not found.")}colorToVectorProperties(t){return t.replace("r","x").replace("g","y").replace("b","z").replace("a","w")}colorToVector(t){return t.replace(/c/g,"v3")}getIncludes(t,e){return this.includes[t][e||this.shader]}getConstructorFromLength(t){return BC[t-1]}isTypeMatrix(t){return/^m/.test(t)}getTypeLength(t){return t==="f"?1:parseInt(this.colorToVector(t).substr(1))}getTypeFromLength(t){return t===1?"f":"v"+t}findNode(...t){for(let e=0;e<arguments.length;e++){let n=t[e];if(n?.isNode)return n}}resolve(...t){for(let e=0;e<arguments.length;e++){let n=t[e];if(n!==void 0){if(n.isNode)return n;if(n.isTexture)switch(n.mapping){case br.CubeReflectionMapping:case br.CubeRefractionMapping:return new jl(n);case br.CubeUVReflectionMapping:return new zl(new jt(n));default:return new jt(n)}else{if(n.isVector2)return new bt(n);if(n.isVector3)return new _t(n);if(n.isVector4)return new pr(n)}}}}format(t,e,n){switch(this.colorToVector(n+" <- "+e)){case"f <- v2":return t+".x";case"f <- v3":return t+".x";case"f <- v4":return t+".x";case"f <- i":case"f <- b":return"float( "+t+" )";case"v2 <- f":return"vec2( "+t+" )";case"v2 <- v3":return t+".xy";case"v2 <- v4":return t+".xy";case"v2 <- i":case"v2 <- b":return"vec2( float( "+t+" ) )";case"v3 <- f":return"vec3( "+t+" )";case"v3 <- v2":return"vec3( "+t+", 0.0 )";case"v3 <- v4":return t+".xyz";case"v3 <- i":case"v3 <- b":return"vec2( float( "+t+" ) )";case"v4 <- f":return"vec4( "+t+" )";case"v4 <- v2":return"vec4( "+t+", 0.0, 1.0 )";case"v4 <- v3":return"vec4( "+t+", 1.0 )";case"v4 <- i":case"v4 <- b":return"vec4( float( "+t+" ) )";case"i <- f":case"i <- b":return"int( "+t+" )";case"i <- v2":return"int( "+t+".x )";case"i <- v3":return"int( "+t+".x )";case"i <- v4":return"int( "+t+".x )";case"b <- f":return"( "+t+" != 0.0 )";case"b <- v2":return"( "+t+" != vec2( 0.0 ) )";case"b <- v3":return"( "+t+" != vec3( 0.0 ) )";case"b <- v4":return"( "+t+" != vec4( 0.0 ) )";case"b <- i":return"( "+t+" != 0 )"}return t}getTypeByFormat(t){return FC[t]||t}getFormatByType(t){return RC[t]||t}getUUID(t,e){return e=e!==void 0?e:!0,e&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return Sg[t]}getIndexByElement(t){return Sg.indexOf(t)}isShader(t){return this.shader===t}setShader(t){return this.shader=t,this}mergeDefines(t){for(let e in t)this.defines[e]=t[e];return this.defines}mergeUniform(t){for(let e in t)this.uniforms[e]=t[e];return this.uniforms}getTextureEncodingFromMap(t){let e;return t?t.isTexture&&(e=t.encoding):e=br.LinearEncoding,e===br.LinearEncoding&&this.context.gamma&&(e=br.sRGBEncoding),e}};var je=require("three");var De=class extends Ue{constructor(e=0,n,o,i){super("c");this.nodeType="Color";this.value=e instanceof ft?e:new ft(e||0,n,o,i)}setRGBA(e){this.value.setRGBA(e.r,e.g,e.b,e.a)}generate(e,n,o,i,a,s){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let l=e.getNodeData(o),u=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let c=this.alpha.build(e,"f");e.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${c};`)}return u?this.generateReadonly(e,n,o,i,a,s):e.isShader("vertex")?(l.vertex||(l.vertex=e.createVertexUniform(i,this,a,s,this.getLabel())),e.format(l.vertex.name,i,n)):(l.fragment||(l.fragment=e.createFragmentUniform(i,this,a,s,this.getLabel())),e.format(l.fragment.name,i,n))}generateReadonly(e,n,o,i,a,s){return e.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",i,n)}};var _e=class extends Ue{constructor(e){super("i");this.nodeType="Int";this.value=Math.floor(e??0)}generateReadonly(e,n,o,i,a,s){return e.format(this.value.toString(),i,n)}};var Wl=require("three");var bo=class extends xt{constructor(){super("basic");this.nodeType="Basic";this.color=new De(5855577),this.shadingAlpha=new J(1),this.shadingBlend=new _e(0)}generate(e){let n;if(e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(Wl.UniformsUtils.merge([Wl.UniformsLib.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
128
+ `}addVaryCode(t){this.addVertexParsCode(t),this.addFragmentParsCode(t)}isCache(t){return this.caches.indexOf(t)!==-1}isSlot(t){return this.slots.indexOf(t)!==-1}define(t,e){this.defines[t]=e===void 0?1:e}require(t){this.requires[t]=!0}isDefined(t){return this.defines[t]!==void 0}getVar(t,e,r,o="varying",i="V",s=""){let l=this.getVars(o),c=l[t];if(!c){let p=l.length;c={name:r||"node"+i+p+(s?"_"+s:""),type:e},l.push(c),l[t]=c}return c}getTempVar(t,e,r,o){return this.getVar(t,e,r,this.shader,"T",o)}getAttribute(t,e){if(!this.attributes[t]){let r=this.getVar(t,e);this.addVertexParsCode("attribute "+e+" "+t+";"),this.addVertexFinalCode(r.name+" = "+t+";"),this.attributes[t]={varying:r,name:t,type:e}}return this.attributes[t]}getCode(t){return[this.prefixCode,this.parsCode[t],this.getVarListCode(this.getVars("varying"),"varying"),this.getVarListCode(this.inputs.uniforms[t],"uniform"),this.getVarListCode(this.inputs.arrayUniforms[t],"uniform"),this.getIncludesCode("consts",t),this.getIncludesCode("structs",t),this.getIncludesCode("functions",t),"void main() {",this.getVarListCode(this.getVars(t)),this.code[t],this.resultCode[t],this.finalCode[t],"}"].join(`
129
+ `)}getVarListCode(t,e){e=e??"";let r="";for(let o=0,i=t.length;o<i;++o){let s=t[o],l=s.type,c=s.name,p=s.size,a=this.getFormatByType(l);if(a===void 0)throw new Error("Node pars "+a+" not found.");a.includes("[]")?r+=e+" "+a.substring(0,a.length-2)+" "+c+`[${p}];
130
+ `:r+=e+" "+a+" "+c+`;
131
+ `}return r}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let e=t instanceof at?t.uuid:t;return this.nodeData[e]=this.nodeData[e]||{}}createUniform(t,e,r,o,i,s){if(e.includes("[]")){let l=this.inputs.arrayUniforms,c=l.list.length,p=new Oi({type:e,size:r.size,name:o||"nodeUA"+c+(s?"_"+s:""),node:r,needsUpdate:i});return l.list.push(p),l[t].push(p),l[t][p.name]=p,this.uniforms[p.name]=p,p}else{let l=this.inputs.uniforms,c=l.list.length,p=new Oi({type:e,name:o||"nodeU"+c+(s?"_"+s:""),node:r,needsUpdate:i});return l.list.push(p),l[t].push(p),l[t][p.name]=p,this.uniforms[p.name]=p,p}}createVertexUniform(t,e,r,o,i){return this.createUniform("vertex",t,e,r,o,i)}createFragmentUniform(t,e,r,o,i){return this.createUniform("fragment",t,e,r,o,i)}include(t,e,r){let o;if(t=typeof t=="string"?et.get(t):t,this.context.include===!1)return t.name;t instanceof $?o=this.includes.functions:t instanceof we?o=this.includes.consts:t instanceof En&&(o=this.includes.structs);let i=o[this.shader]=o[this.shader]||[];if(t){let s=i[t.name];if(s||(s=i[t.name]={node:t,deps:[]},i.push(s),s.src=t.build(this,"source")),t instanceof $&&e&&i[e.name]&&i[e.name].deps.indexOf(t)===-1&&(i[e.name].deps.push(t),t.includes?.length)){let l=0;do this.include(t.includes[l++],e);while(l<t.includes.length)}return r&&(s.src=r),t.name}else throw new Error("Include not found.")}colorToVectorProperties(t){return t.replace("r","x").replace("g","y").replace("b","z").replace("a","w")}colorToVector(t){return t.replace(/c/g,"v3")}getIncludes(t,e){return this.includes[t][e||this.shader]}getConstructorFromLength(t){return US[t-1]}isTypeMatrix(t){return/^m/.test(t)}getTypeLength(t){return t==="f"?1:parseInt(this.colorToVector(t).substr(1))}getTypeFromLength(t){return t===1?"f":"v"+t}findNode(...t){for(let e=0;e<arguments.length;e++){let r=t[e];if(r?.isNode)return r}}resolve(...t){for(let e=0;e<arguments.length;e++){let r=t[e];if(r!==void 0){if(r.isNode)return r;if(r.isTexture)switch(r.mapping){case rr.CubeReflectionMapping:case rr.CubeRefractionMapping:return new Ba(r);case rr.CubeUVReflectionMapping:return new Ea(new Ot(r));default:return new Ot(r)}else{if(r.isVector2)return new lt(r);if(r.isVector3)return new ft(r);if(r.isVector4)return new Xt(r)}}}}format(t,e,r){switch(this.colorToVector(r+" <- "+e)){case"f <- v2":return t+".x";case"f <- v3":return t+".x";case"f <- v4":return t+".x";case"f <- i":case"f <- b":return"float( "+t+" )";case"v2 <- f":return"vec2( "+t+" )";case"v2 <- v3":return t+".xy";case"v2 <- v4":return t+".xy";case"v2 <- i":case"v2 <- b":return"vec2( float( "+t+" ) )";case"v3 <- f":return"vec3( "+t+" )";case"v3 <- v2":return"vec3( "+t+", 0.0 )";case"v3 <- v4":return t+".xyz";case"v3 <- i":case"v3 <- b":return"vec2( float( "+t+" ) )";case"v4 <- f":return"vec4( "+t+" )";case"v4 <- v2":return"vec4( "+t+", 0.0, 1.0 )";case"v4 <- v3":return"vec4( "+t+", 1.0 )";case"v4 <- i":case"v4 <- b":return"vec4( float( "+t+" ) )";case"i <- f":case"i <- b":return"int( "+t+" )";case"i <- v2":return"int( "+t+".x )";case"i <- v3":return"int( "+t+".x )";case"i <- v4":return"int( "+t+".x )";case"b <- f":return"( "+t+" != 0.0 )";case"b <- v2":return"( "+t+" != vec2( 0.0 ) )";case"b <- v3":return"( "+t+" != vec3( 0.0 ) )";case"b <- v4":return"( "+t+" != vec4( 0.0 ) )";case"b <- i":return"( "+t+" != 0 )"}return t}getTypeByFormat(t){return jS[t]||t}getFormatByType(t){return kS[t]||t}getUUID(t,e){return e=e!==void 0?e:!0,e&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return mm[t]}getIndexByElement(t){return mm.indexOf(t)}isShader(t){return this.shader===t}setShader(t){return this.shader=t,this}mergeDefines(t){for(let e in t)this.defines[e]=t[e];return this.defines}mergeUniform(t){for(let e in t)this.uniforms[e]=t[e];return this.uniforms}getTextureEncodingFromMap(t){let e;return t?t.isTexture&&(e=t.encoding):e=rr.LinearEncoding,e===rr.LinearEncoding&&this.context.gamma&&(e=rr.sRGBEncoding),e}};var De=require("three");var Ie=class extends Ee{constructor(e=0,r,o,i){super("c");this.nodeType="Color";this.value=e instanceof tt?e:new tt(e||0,r,o,i)}setRGBA(e){this.value.setRGBA(e.r,e.g,e.b,e.a)}generate(e,r,o,i,s,l){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let c=e.getNodeData(o),p=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let a=this.alpha.build(e,"f");e.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${a};`)}return p?this.generateReadonly(e,r,o,i,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(i,this,s,l,this.getLabel())),e.format(c.vertex.name,i,r)):(c.fragment||(c.fragment=e.createFragmentUniform(i,this,s,l,this.getLabel())),e.format(c.fragment.name,i,r))}generateReadonly(e,r,o,i,s,l){return e.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",i,r)}};var ve=class extends Ee{constructor(e){super("i");this.nodeType="Int";this.value=Math.floor(e??0)}generateReadonly(e,r,o,i,s,l){return e.format(this.value.toString(),i,r)}};var Ga=require("three");var Eo=class extends at{constructor(){super("basic");this.nodeType="Basic";this.color=new Ie(5855577),this.shadingAlpha=new Y(1),this.shadingBlend=new ve(0)}generate(e){let r;if(e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(Ga.UniformsUtils.merge([Ga.UniformsLib.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
132
132
  `));let i=["#include <beginnormal_vertex>",`
133
133
  #if !defined( USE_LAYER_DISPLACE )
134
134
  #include <defaultnormal_vertex>
@@ -145,10 +145,10 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
145
145
  #if !defined( USE_LAYER_DISPLACE )
146
146
  #include <begin_vertex>
147
147
  #endif /* !USE_LAYER_DISPLACE */
148
- `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),n=i.join(`
149
- `)}else{this.color===void 0&&(this.color=new De(5855577)),this.color.analyze(e,{slot:"color"}),this.alpha&&this.alpha.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"});let o=this.color.flow(e,"c",{slot:"color"}),i=this.alpha?this.alpha.flow(e,"f"):void 0,a=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0;e.requires.transparent=i!==void 0,e.addParsCode(["varying vec3 vWPosition;","#include <fog_pars_fragment>","#include <dithering_pars_fragment>","varying vec3 vViewPosition;","#include <normal_pars_fragment>"].join(`
150
- `));let s=["#include <normal_fragment_begin>",o.code];i&&s.push(i.code,"#ifdef ALPHATEST"," if ( "+i.result+" <= ALPHATEST ) discard;","#endif"),a?s.push(a.code,`vec3 outgoingLight = ${o.result};`,`vec3 finalColor = spe_blend(outgoingLight, ${a.result}, 1.0, SPE_BLENDING_NORMAL);`):s.push(`vec3 finalColor = ${o.result};`),i?s.push(`gl_FragColor = vec4( finalColor, accumAlpha * ${i.result} );`):s.push("gl_FragColor = vec4("+o.result+", 1.0 );"),s.push("#include <fog_fragment>","#include <dithering_fragment>"),n=s.join(`
151
- `)}return n}};var za=require("three");var jn=class extends Ue{constructor(e){super("b");this.nodeType="Bool";this.value=e??!1}generateReadonly(e,n,o,i){return e.format(this.value?"true":"false",i,n)}};var wg=require("three");var Oi=class extends Ue{constructor(e){super("m3");this.nodeType="Matrix3";this.value=e??new wg.Matrix3}generateReadonly(e,n,o,i,a,s){return e.format("mat3("+this.value.elements.join(", ")+")",i,n)}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};var Sr=class extends Ue{constructor(e=1,n){super("f[]");this.nodeType="FloatArray";this.size=e,this.value=Array.isArray(n)?n:typeof n=="number"?new Array(e).fill(n):new Array(e).fill(0)}};var Bu=require("three");var wr=class extends Ue{constructor(e=1,n){super("v4[]");this.nodeType="Vector4Array";this.size=e,this.value=Array.isArray(n)?n:n instanceof Bu.Vector4?new Array(e).fill(n):new Array(e).fill(new Bu.Vector4(0))}};var Ia=(i=>(i.SIMPLEX="simplex3d",i.SIMPLEX_FRACTAL="simplex3dFractal",i.ASHIMA="simplexAshima",i.FBM="fbm",i.PERLIN="perlin",i))(Ia||{}),Nt=function(){let t=new Z(`vec3 random3(vec3 c) {
148
+ `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
149
+ `)}else{this.color===void 0&&(this.color=new Ie(5855577)),this.color.analyze(e,{slot:"color"}),this.alpha&&this.alpha.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"});let o=this.color.flow(e,"c",{slot:"color"}),i=this.alpha?this.alpha.flow(e,"f"):void 0,s=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0;e.requires.transparent=i!==void 0,e.addParsCode(["varying vec3 vWPosition;","#include <fog_pars_fragment>","#include <dithering_pars_fragment>","varying vec3 vViewPosition;","#include <normal_pars_fragment>"].join(`
150
+ `));let l=["#include <normal_fragment_begin>",o.code];i&&l.push(i.code,"#ifdef ALPHATEST"," if ( "+i.result+" <= ALPHATEST ) discard;","#endif"),s?l.push(s.code,`vec3 outgoingLight = ${o.result};`,`vec3 finalColor = spe_blend(outgoingLight, ${s.result}, 1.0, SPE_BLENDING_NORMAL);`):l.push(`vec3 finalColor = ${o.result};`),i?l.push(`gl_FragColor = vec4( finalColor, accumAlpha * ${i.result} );`):l.push("gl_FragColor = vec4("+o.result+", 1.0 );"),l.push("#include <fog_fragment>","#include <dithering_fragment>"),r=l.join(`
151
+ `)}return r}};var Wi=require("three");var co=class extends Ee{constructor(e){super("b");this.nodeType="Bool";this.value=e??!1}generateReadonly(e,r,o,i){return e.format(this.value?"true":"false",i,r)}};var hm=require("three");var Rn=class extends Ee{constructor(e){super("m3");this.nodeType="Matrix3";this.value=e??new hm.Matrix3}generateReadonly(e,r,o,i,s,l){return e.format("mat3("+this.value.elements.join(", ")+")",i,r)}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};var or=class extends Ee{constructor(e=1,r){super("f[]");this.nodeType="FloatArray";this.size=e,this.value=Array.isArray(r)?r:typeof r=="number"?new Array(e).fill(r):new Array(e).fill(0)}};var uc=require("three");var nr=class extends Ee{constructor(e=1,r){super("v4[]");this.nodeType="Vector4Array";this.size=e,this.value=Array.isArray(r)?r:r instanceof uc.Vector4?new Array(e).fill(r):new Array(e).fill(new uc.Vector4(0))}};var Li=(i=>(i.SIMPLEX="simplex3d",i.SIMPLEX_FRACTAL="simplex3dFractal",i.ASHIMA="simplexAshima",i.FBM="fbm",i.PERLIN="perlin",i))(Li||{}),yt=function(){let t=new $(`vec3 random3(vec3 c) {
152
152
  float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));
153
153
  vec3 r;
154
154
  r.z = fract(512.0*j);
@@ -157,7 +157,7 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
157
157
  j *= .125;
158
158
  r.y = fract(512.0*j);
159
159
  return r-0.5;
160
- }`),e=new Z(`float simplex3d(vec3 p) {
160
+ }`),e=new $(`float simplex3d(vec3 p) {
161
161
  vec3 s = floor(p + dot(p, vec3(F3)));
162
162
  vec3 x = p - s + dot(s, vec3(G3));
163
163
 
@@ -188,7 +188,7 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
188
188
  d *= w;
189
189
 
190
190
  return dot(d, vec4(52.0));
191
- }`,[t]);e.keywords.F3=new Le("float F3 0.3333333"),e.keywords.G3=new Le("float G3 0.1666667");let n=new Z(`float simplex3dFractal(vec3 m) {
191
+ }`,[t]);e.keywords.F3=new we("float F3 0.3333333"),e.keywords.G3=new we("float G3 0.1666667");let r=new $(`float simplex3dFractal(vec3 m) {
192
192
  mat3 rot1 = mat3(-0.37, 0.36, 0.85,-0.14,-0.93, 0.34,0.92, 0.01,0.4);
193
193
  mat3 rot2 = mat3(-0.55,-0.39, 0.74, 0.33,-0.91,-0.24,0.77, 0.12,0.63);
194
194
  mat3 rot3 = mat3(-0.71, 0.52,-0.47,-0.08,-0.72,-0.68,-0.7,-0.45,0.56);
@@ -196,7 +196,7 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
196
196
  + 0.2666667 * simplex3d(2.0 * m * rot2)
197
197
  + 0.1333333 * simplex3d(4.0 * m * rot3)
198
198
  + 0.0666667 * simplex3d(8.0 * m);
199
- }`,[e]),o=new Z("vec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}"),i=new Z("vec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}"),a=new Z(`float simplexAshima(vec3 v) {
199
+ }`,[e]),o=new $("vec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}"),i=new $("vec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}"),s=new $(`float simplexAshima(vec3 v) {
200
200
  const vec2 C = vec2(1.0/6.0, 1.0/3.0) ;
201
201
  const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);
202
202
  vec3 i = floor(v + dot(v, C.yyy) );
@@ -241,7 +241,7 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
241
241
  m = m * m;
242
242
  return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1),
243
243
  dot(p2,x2), dot(p3,x3) ) );
244
- }`,[o,i]),s=new Z("vec4 mod289(vec4 x){return x - floor(x * (1.0 / 289.0)) * 289.0;}"),l=new Z("vec4 perm(vec4 x){return mod289(((x * 34.0) + 1.0) * x);}",[s]),u=new Z(`float noise(vec3 p){
244
+ }`,[o,i]),l=new $("vec4 mod289(vec4 x){return x - floor(x * (1.0 / 289.0)) * 289.0;}"),c=new $("vec4 perm(vec4 x){return mod289(((x * 34.0) + 1.0) * x);}",[l]),p=new $(`float noise(vec3 p){
245
245
  vec3 a = floor(p);
246
246
  vec3 d = p - a;
247
247
  d = d * d * (3.0 - 2.0 * d);
@@ -256,7 +256,7 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
256
256
  vec4 o3 = o2 * d.z + o1 * (1.0 - d.z);
257
257
  vec2 o4 = o3.yw * d.x + o3.xz * (1.0 - d.x);
258
258
  return o4.y * d.y + o4.x * (1.0 - d.y);
259
- }`,[l]),c=new Z(`float fbm(vec3 x) {
259
+ }`,[c]),a=new $(`float fbm(vec3 x) {
260
260
  float v = 0.0;
261
261
  float a = 0.5;
262
262
  vec3 shift = vec3(100);
@@ -266,7 +266,7 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
266
266
  a *= 0.5;
267
267
  }
268
268
  return v;
269
- }`,[u]);c.keywords.NUM_OCTAVES=new Le(`int NUM_OCTAVES ${5}`);let p=new Z("vec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}"),f=new Z(`float perlin(vec3 P){
269
+ }`,[p]);a.keywords.NUM_OCTAVES=new we(`int NUM_OCTAVES ${5}`);let u=new $("vec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}"),d=new $(`float perlin(vec3 P){
270
270
  vec3 Pi0 = floor(P);
271
271
  vec3 Pi1 = Pi0 + vec3(1.0);
272
272
  Pi0 = mod(Pi0, 289.0);
@@ -325,16 +325,16 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
325
325
  vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);
326
326
  float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);
327
327
  return 2.2 * n_xyz;
328
- }`,[o,i,p]);return{simplex:e,simplexFractal:n,simplexAshima:a,fbm:c,perlin:f}}();var La=class extends he{constructor(e,n,o,i,a,s,l,u,c,p,f,d){super("v3");this.nodeType="Noise";this.scale=e,this.size=n,this.move=o,this.fA=i,this.fB=a,this.distortion=s,this.colorA=l,this.colorB=u,this.colorC=c,this.colorD=p,this.alpha=f,this.noiseType=d,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n,o,i,a){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let s=Object.values(Ia)[this.noiseType.value],l=new Z(`vec3 ${s}customNoise(float scale, vec3 size, float move, vec2 fA, vec2 fB, vec2 distortion, vec4 colorA, vec4 colorB, vec4 colorC, vec4 colorD, float alpha, out float calpha) {
328
+ }`,[o,i,u]);return{simplex:e,simplexFractal:r,simplexAshima:s,fbm:a,perlin:d}}();var Mi=class extends le{constructor(e,r,o,i,s,l,c,p,a,u,d,f){super("v3");this.nodeType="Noise";this.scale=e,this.size=r,this.move=o,this.fA=i,this.fB=s,this.distortion=l,this.colorA=c,this.colorB=p,this.colorC=a,this.colorD=u,this.alpha=d,this.noiseType=f,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r,o,i,s){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let l=Object.values(Li)[this.noiseType.value],c=new $(`vec3 ${l}customNoise(float scale, vec3 size, float move, vec2 fA, vec2 fB, vec2 distortion, vec4 colorA, vec4 colorB, vec4 colorC, vec4 colorD, float alpha, out float calpha) {
329
329
  vec3 st = position / size;
330
330
  st /= scale;
331
- vec3 q = vec3(${s}(st),
332
- ${s}(st + vec3(1.0)),
333
- ${s}(st + vec3(1.0)));
334
- vec3 r = vec3(${s}(st + vec3(distortion, 1.0) * q + vec3(fA, 1.0) + move),
335
- ${s}(st + vec3(distortion, 1.0) * q + vec3(fB, 1.0) + move),
336
- ${s}(st * q));
337
- float f = ${s}(st + r);
331
+ vec3 q = vec3(${l}(st),
332
+ ${l}(st + vec3(1.0)),
333
+ ${l}(st + vec3(1.0)));
334
+ vec3 r = vec3(${l}(st + vec3(distortion, 1.0) * q + vec3(fA, 1.0) + move),
335
+ ${l}(st + vec3(distortion, 1.0) * q + vec3(fB, 1.0) + move),
336
+ ${l}(st * q));
337
+ float f = ${l}(st + r);
338
338
  vec4 color;
339
339
  color = mix(colorA, colorB, clamp((f * f) * 4.0, 0.0, 1.0));
340
340
  color = mix(color, colorC, clamp(length(q), 0.0, 1.0));
@@ -345,7 +345,7 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
345
345
 
346
346
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
347
347
  return clamp(color, 0.0, 1.0).rgb;
348
- }`,[Nt.simplex,Nt.simplexFractal,Nt.simplexAshima,Nt.fbm,Nt.perlin]),u=e.include(l),c=[];return c.push(this.scale.build(e,"f")),c.push(this.size.build(e,"v3")),c.push(this.move.build(e,"f")),c.push(this.fA.build(e,"v2")),c.push(this.fB.build(e,"v2")),c.push(this.distortion.build(e,"v2")),c.push(this.colorA.build(e,"v4")),c.push(this.colorB.build(e,"v4")),c.push(this.colorC.build(e,"v4")),c.push(this.colorD.build(e,"v4")),c.push(this.alpha.build(e,"f")),c.push(this.calpha),e.format(u+"("+c.join(",")+")",this.getType(e),n)}};La.numOctaves=5;var Na=require("three");var ql=class extends xt{constructor(){super("phong");this.nodeType="Phong";this.color=new De(5855577),this.specular=new De(1118481),this.shininess=new J(30),this.shadingAlpha=new J(1),this.shadingBlend=new _e(0)}build(e){let n;if(e.define("PHONG"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(Na.UniformsUtils.merge([Na.UniformsLib.fog,Na.UniformsLib.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
348
+ }`,[yt.simplex,yt.simplexFractal,yt.simplexAshima,yt.fbm,yt.perlin]),p=e.include(c),a=[];return a.push(this.scale.build(e,"f")),a.push(this.size.build(e,"v3")),a.push(this.move.build(e,"f")),a.push(this.fA.build(e,"v2")),a.push(this.fB.build(e,"v2")),a.push(this.distortion.build(e,"v2")),a.push(this.colorA.build(e,"v4")),a.push(this.colorB.build(e,"v4")),a.push(this.colorC.build(e,"v4")),a.push(this.colorD.build(e,"v4")),a.push(this.alpha.build(e,"f")),a.push(this.calpha),e.format(p+"("+a.join(",")+")",this.getType(e),r)}};Mi.numOctaves=5;var Ei=require("three");var Ra=class extends at{constructor(){super("phong");this.nodeType="Phong";this.color=new Ie(5855577),this.specular=new Ie(1118481),this.shininess=new Y(30),this.shadingAlpha=new Y(1),this.shadingBlend=new ve(0)}build(e){let r;if(e.define("PHONG"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(Ei.UniformsUtils.merge([Ei.UniformsLib.fog,Ei.UniformsLib.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
349
349
  `));let i=["#include <beginnormal_vertex>",`
350
350
  #ifndef USE_LAYER_DISPLACE
351
351
  #include <defaultnormal_vertex>
@@ -363,9 +363,9 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
363
363
  #ifndef USE_LAYER_DISPLACE
364
364
  #include <begin_vertex>
365
365
  #endif
366
- `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push(" #include <project_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),n=i.join(`
367
- `)}else{e.mergeUniform({penumbraSize:Ot.penumbraSize}),this.color===void 0&&(this.color=new De(5855577)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.specular.flow(e,"c"),a=this.shininess.flow(e,"f"),s=this.shadingAlpha.flow(e,"f"),l=this.shadingBlend.flow(e,"i"),u=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=c!==void 0,e.addParsCode(["varying vec3 vWPosition;","uniform vec3 emissive;",`uniform float penumbraSize[${5}];`,"#include <normal_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_phong_pars_fragment>","#include <shadowmap_pars_fragment>","#include <dithering_pars_fragment>"].join(`
368
- `));let p=["#include <normal_fragment_begin>",`
366
+ `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push(" #include <project_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
367
+ `)}else{e.mergeUniform({penumbraSize:mt.penumbraSize}),this.color===void 0&&(this.color=new Ie(5855577)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.specular.flow(e,"c"),s=this.shininess.flow(e,"f"),l=this.shadingAlpha.flow(e,"f"),c=this.shadingBlend.flow(e,"i"),p=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,a=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=a!==void 0,e.addParsCode(["varying vec3 vWPosition;","uniform vec3 emissive;",`uniform float penumbraSize[${5}];`,"#include <normal_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_phong_pars_fragment>","#include <shadowmap_pars_fragment>","#include <dithering_pars_fragment>"].join(`
368
+ `));let u=["#include <normal_fragment_begin>",`
369
369
  // NOTE: gl_FrontFacing alternative using face normal estimation.
370
370
  vec3 viewdx = dFdx(vViewPosition);
371
371
  vec3 viewdy = dFdy(vViewPosition);
@@ -373,21 +373,21 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
373
373
  if (dot(normal, faceNormal) < 0.0) {
374
374
  normal *= -1.0;
375
375
  }
376
- `," BlinnPhongMaterial material;"];p.push(o.code," vec3 diffuseColor = "+o.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveRadiance = emissive;",i.code," vec3 specular = "+i.result+";",a.code," float shininess = max( 0.0001, "+a.result+" );"," float specularStrength = 1.0;"),c&&p.push(c.code,"#ifdef ALPHATEST","if ( "+c.result+" <= ALPHATEST ) discard;","#endif"),p.push("material.diffuseColor = diffuseColor;"),p.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),p.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;"),p.push(`
376
+ `," BlinnPhongMaterial material;"];u.push(o.code," vec3 diffuseColor = "+o.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveRadiance = emissive;",i.code," vec3 specular = "+i.result+";",s.code," float shininess = max( 0.0001, "+s.result+" );"," float specularStrength = 1.0;"),a&&u.push(a.code,"#ifdef ALPHATEST","if ( "+a.result+" <= ALPHATEST ) discard;","#endif"),u.push("material.diffuseColor = diffuseColor;"),u.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),u.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;"),u.push(`
377
377
  if (outgoingLight != diffuseColor) {
378
378
  float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
379
- accumAlpha += ( 1.0 - accumAlpha ) * ${s.result} * lightAccu;
380
- outgoingLight = spe_blend( diffuseColor, outgoingLight, ${s.result}, ${l.result} );
379
+ accumAlpha += ( 1.0 - accumAlpha ) * ${l.result} * lightAccu;
380
+ outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${c.result} );
381
381
  }
382
- `),u&&p.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),c?p.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${c.result} );`):p.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),p.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),n=p.join(`
383
- `)}return n}};var Fu=class extends he{constructor(e,n,o,i,a,s,l){super("v3");this.nodeType="Fresnel";this.color=e,this.bias=n,this.scale=o,this.intensity=i,this.factor=a,this.alpha=s,this.mode=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(Fu.Nodes.fresnel),i=[];return i.push(this.color.build(e,"c")),i.push(this.bias.build(e,"f")),i.push(this.scale.build(e,"f")),i.push(this.intensity.build(e,"f")),i.push(this.factor.build(e,"f")),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("FresnelNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},Pa=Fu;Pa.Nodes=function(){return{fresnel:new Z(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, float alpha, int mode, out float calpha) {
382
+ `),p&&u.push(p.code,`outgoingLight = spe_blend(outgoingLight, ${p.result}, 1.0, SPE_BLENDING_NORMAL);`),a?u.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${a.result} );`):u.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),u.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=u.join(`
383
+ `)}return r}};var pc=class extends le{constructor(e,r,o,i,s,l,c){super("v3");this.nodeType="Fresnel";this.color=e,this.bias=r,this.scale=o,this.intensity=i,this.factor=s,this.alpha=l,this.mode=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(pc.Nodes.fresnel),i=[];return i.push(this.color.build(e,"c")),i.push(this.bias.build(e,"f")),i.push(this.scale.build(e,"f")),i.push(this.intensity.build(e,"f")),i.push(this.factor.build(e,"f")),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("FresnelNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Bi=pc;Bi.Nodes=function(){return{fresnel:new $(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, float alpha, int mode, out float calpha) {
384
384
  float fresnel = bias + scale * pow( abs( factor + dot( normalize( vWorldViewDir ), normalize( vWNormal ) ) ), intensity );
385
385
 
386
386
  float lalpha = clamp( fresnel, 0.0, 1.0 ) * alpha;
387
387
  calpha = lalpha / clamp(lalpha + accumAlpha, 0.001, 1.0);
388
388
  accumAlpha += (1.0 - accumAlpha) * lalpha;
389
389
  return color;
390
- }`)}}();var Ru=class extends he{constructor(e,n,o,i,a,s,l){super("v3");this.nodeType="Rainbow";this.filmThickness=e,this.movement=n,this.wavelengths=o,this.noiseStrength=i,this.noiseScale=a,this.offset=s,this.alpha=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(Ru.Nodes.rainbow),i=[];return i.push(this.filmThickness.build(e,"f")),i.push(this.movement.build(e,"f")),i.push(this.wavelengths.build(e,"v3")),i.push(this.noiseStrength.build(e,"f")),i.push(this.noiseScale.build(e,"f")),i.push(this.offset.build(e,"v3")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("RainbowNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},Ma=Ru;Ma.Nodes=function(){let e=new Z(`vec3 attenuation(vec3 wavelengths, float filmThickness, float movement, float noiseStrength, float noiseScale, vec3 offset) {
390
+ }`)}}();var dc=class extends le{constructor(e,r,o,i,s,l,c){super("v3");this.nodeType="Rainbow";this.filmThickness=e,this.movement=r,this.wavelengths=o,this.noiseStrength=i,this.noiseScale=s,this.offset=l,this.alpha=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(dc.Nodes.rainbow),i=[];return i.push(this.filmThickness.build(e,"f")),i.push(this.movement.build(e,"f")),i.push(this.wavelengths.build(e,"v3")),i.push(this.noiseStrength.build(e,"f")),i.push(this.noiseScale.build(e,"f")),i.push(this.offset.build(e,"v3")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("RainbowNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Di=dc;Di.Nodes=function(){let e=new $(`vec3 attenuation(vec3 wavelengths, float filmThickness, float movement, float noiseStrength, float noiseScale, vec3 offset) {
391
391
  vec3 st = position / noiseScale;
392
392
  vec3 q = vec3(simplex3d(st),
393
393
  simplex3d(st + vec3(1.0)),
@@ -400,7 +400,7 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
400
400
  float noise = simplex3d(st + r);
401
401
 
402
402
  return .5 + .5 * cos((((filmThickness + (noise * noiseStrength)) / (vec3(wavelengths.r * 1.0, wavelengths.g * 0.8, wavelengths.b * 0.6) + 1.0)) * dot(normalize(vWorldViewDir + (offset * -0.001)), normalize(vWNormal))) + movement);
403
- }`,[Nt.simplex]);return{rainbow:new Z(`vec3 rainbow(float filmThickness, float movement, vec3 wavelengths, float noiseStrength, float noiseScale, vec3 offset, float alpha, out float calpha) {
403
+ }`,[yt.simplex]);return{rainbow:new $(`vec3 rainbow(float filmThickness, float movement, vec3 wavelengths, float noiseStrength, float noiseScale, vec3 offset, float alpha, out float calpha) {
404
404
  vec3 res = clamp(attenuation(wavelengths, filmThickness, movement, noiseStrength, noiseScale, offset), 0.0, 2.0);
405
405
 
406
406
  float rainbowContribution = clamp(res.r + res.g + res.b, 0.0, 1.0);
@@ -409,21 +409,21 @@ var xv=Object.create;var bs=Object.defineProperty;var bv=Object.getOwnPropertyDe
409
409
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
410
410
 
411
411
  return res;
412
- }`,[e])}}();var ku=class extends he{constructor(e,n,o,i,a,s,l,u,c,p,f,d,h,m,g,v){super("v3");this.nodeType="Outline";this.firstTime=!0,this.outlineColor=e,this.contourColor=n,this.outlineWidth=o,this.contourWidth=i,this.contourThreshold=a,this.outlineThreshold=s,this.contourFrequency=l,this.outlineSmoothing=u,this.contourDirection=c,this.positionalLines=p,this.compensation=f,this.resolution=d,this.normalMap=h,this.depthMap=m,this.pixelRatio=g,this.alpha=v,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.extensions.derivatives=!0,this.firstTime){let o=this.outlineWidth.build(e,"f"),i=this.resolution.build(e,"v2"),a=this.compensation.build(e,"b"),s=this.pixelRatio.build(e,"f");e.addVertexParsVariable("randomColor","attribute vec3"),e.addVertexParsVariable("extrudeNormal","attribute vec3"),e.addVertexParsVariable(o,"uniform float"),e.addVertexParsVariable(i,"uniform vec2"),e.addVertexParsVariable(a,"uniform bool"),e.addVertexParsVariable(s,"uniform float"),e.addVertexParsVariable("vID","flat out float"),e.addFragmentParsVariable("vID","flat in float");let l=`g${this.uuid.toString().replace(/-/g,"")}`;e.addVertexFinalCode(`
412
+ }`,[e])}}();var fc=class extends le{constructor(e,r,o,i,s,l,c,p,a,u,d,f,m,h,g,x){super("v3");this.nodeType="Outline";this.firstTime=!0,this.outlineColor=e,this.contourColor=r,this.outlineWidth=o,this.contourWidth=i,this.contourThreshold=s,this.outlineThreshold=l,this.contourFrequency=c,this.outlineSmoothing=p,this.contourDirection=a,this.positionalLines=u,this.compensation=d,this.resolution=f,this.normalMap=m,this.depthMap=h,this.pixelRatio=g,this.alpha=x,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.extensions.derivatives=!0,this.firstTime){let o=this.outlineWidth.build(e,"f"),i=this.resolution.build(e,"v2"),s=this.compensation.build(e,"b"),l=this.pixelRatio.build(e,"f");e.addVertexParsVariable("randomColor","attribute vec3"),e.addVertexParsVariable("extrudeNormal","attribute vec3"),e.addVertexParsVariable(o,"uniform float"),e.addVertexParsVariable(i,"uniform vec2"),e.addVertexParsVariable(s,"uniform bool"),e.addVertexParsVariable(l,"uniform float"),e.addVertexParsVariable("vID","flat out float"),e.addFragmentParsVariable("vID","flat in float");let c=`g${this.uuid.toString().replace(/-/g,"")}`;e.addVertexFinalCode(`
413
413
  vID = randomColor.r;
414
- if (${a}) {
415
- vec4 ${l}_clipPosition = projectionMatrix * (modelViewMatrix * vec4(position, 1.0));
414
+ if (${s}) {
415
+ vec4 ${c}_clipPosition = projectionMatrix * (modelViewMatrix * vec4(position, 1.0));
416
416
  // NOTE: For certain shapes, like spheres, we get incorrect extrusion when the
417
417
  // normals face the camera directly. So we hackily fix this by offsetting the normal
418
418
  // by a tiny amount.
419
- vec3 ${l}_clipNormal = mat3(projectionMatrix) * (mat3(modelViewMatrix) * extrudeNormal) + 0.0000001;
420
- vec2 ${l}_offset = normalize(${l}_clipNormal.xy) / ${i} * (${o} / 2.0) * ${l}_clipPosition.w * 2.0 * ${s};
421
- ${l}_clipPosition.xy += ${l}_offset;
419
+ vec3 ${c}_clipNormal = mat3(projectionMatrix) * (mat3(modelViewMatrix) * extrudeNormal) + 0.0000001;
420
+ vec2 ${c}_offset = normalize(${c}_clipNormal.xy) / ${i} * (${o} / 2.0) * ${c}_clipPosition.w * 2.0 * ${l};
421
+ ${c}_clipPosition.xy += ${c}_offset;
422
422
  // TODO(MAX): To handle multiple outline layers, we only want to extrude
423
423
  // if this offset is the biggest of all the potential offsets
424
- gl_Position = ${l}_clipPosition;
424
+ gl_Position = ${c}_clipPosition;
425
425
  }
426
- `)}if(e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(ku.Nodes.outline),i=[];return i.push(this.outlineColor.build(e,"c")),i.push(this.contourColor.build(e,"c")),i.push(this.outlineWidth.build(e,"f")),i.push(this.contourWidth.build(e,"f")),i.push(this.contourThreshold.build(e,"f")),i.push(this.outlineThreshold.build(e,"f")),i.push(this.contourFrequency.build(e,"f")),i.push(this.outlineSmoothing.build(e,"f")),i.push(this.contourDirection.build(e,"v3")),i.push(this.positionalLines.build(e,"b")),i.push(this.resolution.build(e,"v2")),i.push(this.normalMap.getTexture(e,"t")),i.push(this.depthMap.getTexture(e,"t")),i.push(this.pixelRatio.build(e,"f")),i.push(this.compensation.build(e,"b")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),this.firstTime=!this.firstTime,e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("OutlineNode is not compatible with "+e.shader+" shader."),""}},Ea=ku;Ea.Nodes=function(){let e=new Z(`
426
+ `)}if(e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(fc.Nodes.outline),i=[];return i.push(this.outlineColor.build(e,"c")),i.push(this.contourColor.build(e,"c")),i.push(this.outlineWidth.build(e,"f")),i.push(this.contourWidth.build(e,"f")),i.push(this.contourThreshold.build(e,"f")),i.push(this.outlineThreshold.build(e,"f")),i.push(this.contourFrequency.build(e,"f")),i.push(this.outlineSmoothing.build(e,"f")),i.push(this.contourDirection.build(e,"v3")),i.push(this.positionalLines.build(e,"b")),i.push(this.resolution.build(e,"v2")),i.push(this.normalMap.getTexture(e,"t")),i.push(this.depthMap.getTexture(e,"t")),i.push(this.pixelRatio.build(e,"f")),i.push(this.compensation.build(e,"b")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),this.firstTime=!this.firstTime,e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("OutlineNode is not compatible with "+e.shader+" shader."),""}},Gi=fc;Gi.Nodes=function(){let e=new $(`
427
427
  float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outlineWidth, float pixelRatio)
428
428
  {
429
429
  vec2 texelSize = (vec2(1.0) / resolution) * outlineWidth * pixelRatio;
@@ -524,7 +524,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
524
524
  float edgeNormal = sqrt(dot(sobel_edge_h, sobel_edge_h) + dot(sobel_edge_v, sobel_edge_v));
525
525
  return edgeNormal;
526
526
  }
527
- `);return{outline:new Z(`vec3 outline(vec3 outlineColor, vec3 contourColor, float outlineWidth, float contourWidth, float outlineThreshold, float contourThreshold, float outlineSmoothing, float contourFrequency, vec3 contourDirection, bool positionalLines, vec2 resolution, sampler2D normalMap, sampler2D depthMap, float pixelRatio, bool compensation, float alpha, out float calpha) {
527
+ `);return{outline:new $(`vec3 outline(vec3 outlineColor, vec3 contourColor, float outlineWidth, float contourWidth, float outlineThreshold, float contourThreshold, float outlineSmoothing, float contourFrequency, vec3 contourDirection, bool positionalLines, vec2 resolution, sampler2D normalMap, sampler2D depthMap, float pixelRatio, bool compensation, float alpha, out float calpha) {
528
528
  vec3 result = outlineColor;
529
529
  float resultAlpha = 0.0;
530
530
 
@@ -563,11 +563,11 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
563
563
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
564
564
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
565
565
  return result;
566
- }`,[e])}}();var Gu=class extends he{constructor(e,n,o,i,a,s,l,u){super("v3");this.nodeType="Transmission";this.thickness=e,this.ior=n,this.roughness=o,this.transmissionSamplerSize=i,this.transmissionSamplerMap=a,this.transmissionDepthMap=s,this.aspectRatio=l,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.extensions.shaderTextureLOD=!0,e.extensions.derivatives=!0,e.isShader("fragment")){e.define("NUM_SAMPLES",30),e.require("worldPosition"),e.requires.worldNormal=!0,e.requires.modelMatrix=!0,e.requires.projectionMatrix=!0,e.addFragmentVariable(this.calpha,"float");let o=e.include(Gu.Nodes.transmission),i=[];return i.push(this.thickness.build(e,"f")),i.push(this.ior.build(e,"f")),i.push(this.roughness.build(e,"f")),i.push(this.transmissionSamplerSize.build(e,"v2")),i.push(this.transmissionSamplerMap.getTexture(e,"t")),i.push(this.transmissionDepthMap.getTexture(e,"t")),i.push(this.aspectRatio.build(e,"v2")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("TransmissionNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},Da=Gu;Da.Nodes=function(){let e=new Z(`
566
+ }`,[e])}}();var mc=class extends le{constructor(e,r,o,i,s,l,c,p){super("v3");this.nodeType="Transmission";this.thickness=e,this.ior=r,this.roughness=o,this.transmissionSamplerSize=i,this.transmissionSamplerMap=s,this.transmissionDepthMap=l,this.aspectRatio=c,this.alpha=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.extensions.shaderTextureLOD=!0,e.extensions.derivatives=!0,e.isShader("fragment")){e.define("NUM_SAMPLES",30),e.require("worldPosition"),e.requires.worldNormal=!0,e.requires.modelMatrix=!0,e.requires.projectionMatrix=!0,e.addFragmentVariable(this.calpha,"float");let o=e.include(mc.Nodes.transmission),i=[];return i.push(this.thickness.build(e,"f")),i.push(this.ior.build(e,"f")),i.push(this.roughness.build(e,"f")),i.push(this.transmissionSamplerSize.build(e,"v2")),i.push(this.transmissionSamplerMap.getTexture(e,"t")),i.push(this.transmissionDepthMap.getTexture(e,"t")),i.push(this.aspectRatio.build(e,"v2")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("TransmissionNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Ri=mc;Ri.Nodes=function(){let e=new $(`
567
567
  float gaussian(vec2 i) {
568
568
  const float sigma = float(NUM_SAMPLES) * .25;
569
569
  return exp( -.5* dot(i/=sigma,i) ) / ( 6.28 * sigma*sigma );
570
- }`),n=new Z(`
570
+ }`),r=new $(`
571
571
  vec3 blur(sampler2D sp, vec2 U, vec2 scale, float lod, sampler2D dm, vec2 unrefractedU, vec2 aspectRatio) {
572
572
  // Slightly modified version of this:
573
573
  // https://www.shadertoy.com/view/ltScRG
@@ -597,7 +597,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
597
597
  a += gaussian;
598
598
  }
599
599
  return O / a;
600
- }`,[e]),o=new Z(`
600
+ }`,[e]),o=new $(`
601
601
  vec3 getVolumeTransmissionRay( vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix ) {
602
602
  // Direction of refracted light.
603
603
  vec3 refractionVector = refract( -v, n, 1.0 / ior );
@@ -608,18 +608,18 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
608
608
  modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );
609
609
  // The thickness is specified in local space.
610
610
  return normalize( refractionVector ) * thickness * modelScale;
611
- }`),i=new Z(`
611
+ }`),i=new $(`
612
612
  float applyIorToRoughness( float roughness, float ior ) {
613
613
  // Scale roughness with IOR so that an IOR of 1.0 results in no microfacet refraction and
614
614
  // an IOR of 1.5 results in the default amount of microfacet refraction.
615
615
  return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );
616
- } `),a=new Z(`
616
+ } `),s=new $(`
617
617
  vec3 getTransmissionSample( vec2 fragCoord, float roughness, float ior, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 unrefractedCoords, vec2 aspectRatio) {
618
618
  float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );
619
619
  float lod = applyIorToRoughness(roughness, ior);
620
620
 
621
621
  return blur(transmissionSamplerMap, fragCoord, vec2(lod / (transmissionSamplerSize.x / 2.)), min(framebufferLod / 5.5, 8.5), transmissionDepthMap, unrefractedCoords, aspectRatio);
622
- }`,[i,n]),s=new Z(`
622
+ }`,[i,r]),l=new $(`
623
623
  vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 aspectRatio ) {
624
624
  vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );
625
625
  vec3 refractedRayExit = position + transmissionRay;
@@ -637,7 +637,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
637
637
 
638
638
  // Sample framebuffer to get pixel the refracted ray hits.
639
639
  return getTransmissionSample( refractionCoords, roughness, ior, transmissionSamplerSize, transmissionSamplerMap, transmissionDepthMap, unrefractedCoords, aspectRatio );
640
- }`,[a,o]);return{transmission:new Z(`
640
+ }`,[s,o]);return{transmission:new $(`
641
641
  vec3 transmission(float thickness, float ior, float roughness, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 aspectRatio, vec3 normal, float alpha, out float calpha) {
642
642
  vec3 v = vec3(0.);
643
643
  if (isOrthographic) {
@@ -651,7 +651,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
651
651
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
652
652
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
653
653
  return transmission;
654
- }`,[s])}}();var Ii=class extends he{constructor(e,n,o,i,a,s,l,u,c,p,f){super("v3");this.nodeType="Depth";this.gradientType=e,this.smooth=n,this.near=o,this.far=i,this.isVector=a,this.isWorldSpace=s,this.origin=l,this.direction=u,this.colors=c,this.steps=p,this.alpha=f,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){let o=`g${this.uuid.toString().replace(/-/g,"")}`,i=new Z(`vec3 ${o}_sdepth(float near, float far, vec3 origin, vec3 direction, vec4 colors[${o}_MAX_COLORS], float steps[${o}_MAX_COLORS], float alpha, out float calpha) {
654
+ }`,[l])}}();var Vn=class extends le{constructor(e,r,o,i,s,l,c,p,a,u,d){super("v3");this.nodeType="Depth";this.gradientType=e,this.smooth=r,this.near=o,this.far=i,this.isVector=s,this.isWorldSpace=l,this.origin=c,this.direction=p,this.colors=a,this.steps=u,this.alpha=d,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){let o=`g${this.uuid.toString().replace(/-/g,"")}`,i=new $(`vec3 ${o}_sdepth(float near, float far, vec3 origin, vec3 direction, vec4 colors[${o}_MAX_COLORS], float steps[${o}_MAX_COLORS], float alpha, out float calpha) {
655
655
  vec4 color = colors[0];
656
656
  #ifdef ${o}_IS_VECTOR
657
657
  #ifdef ${o}_LINEAR
@@ -691,25 +691,25 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
691
691
 
692
692
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
693
693
  return color.rgb;
694
- }`,[Ii.Nodes.vectorLinearWorldSpaceDepth,Ii.Nodes.vectorLinearObjectSpaceDepth,Ii.Nodes.vectorSphericalObjectSpaceDepth,Ii.Nodes.vectorSphericalWorldSpaceDepth]);if(e.isShader("fragment")){e.define(`${o}_MAX_COLORS`,this.colors.value.length),this.smooth.value&&e.define(`${o}_SMOOTH`),this.isVector.value>.5&&e.define(`${o}_IS_VECTOR`),this.gradientType.value===0&&e.define(`${o}_LINEAR`),this.isWorldSpace.value>.5&&e.define(`${o}_WORLDSPACE`),e.require("worldPosition"),e.addFragmentVariable(this.calpha,"float");let a=e.include(i),s=[];return s.push(this.near.build(e,"f")),s.push(this.far.build(e,"f")),s.push(this.origin.build(e,"v3")),s.push(this.direction.build(e,"v3")),s.push(this.colors.build(e,"v4[]")),s.push(this.steps.build(e,"f[]")),s.push(this.alpha.build(e,"f")),s.push(this.calpha),e.format(a+"("+s.join(",")+")",this.getType(e),n)}else return console.warn("DepthNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},Ba=Ii;Ba.Nodes=function(){let e=new Z(`float vectorLinearWorldSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
694
+ }`,[Vn.Nodes.vectorLinearWorldSpaceDepth,Vn.Nodes.vectorLinearObjectSpaceDepth,Vn.Nodes.vectorSphericalObjectSpaceDepth,Vn.Nodes.vectorSphericalWorldSpaceDepth]);if(e.isShader("fragment")){e.define(`${o}_MAX_COLORS`,this.colors.value.length),this.smooth.value&&e.define(`${o}_SMOOTH`),this.isVector.value>.5&&e.define(`${o}_IS_VECTOR`),this.gradientType.value===0&&e.define(`${o}_LINEAR`),this.isWorldSpace.value>.5&&e.define(`${o}_WORLDSPACE`),e.require("worldPosition"),e.addFragmentVariable(this.calpha,"float");let s=e.include(i),l=[];return l.push(this.near.build(e,"f")),l.push(this.far.build(e,"f")),l.push(this.origin.build(e,"v3")),l.push(this.direction.build(e,"v3")),l.push(this.colors.build(e,"v4[]")),l.push(this.steps.build(e,"f[]")),l.push(this.alpha.build(e,"f")),l.push(this.calpha),e.format(s+"("+l.join(",")+")",this.getType(e),r)}else return console.warn("DepthNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Vi=Vn;Vi.Nodes=function(){let e=new $(`float vectorLinearWorldSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
695
695
  vec3 n = normalize(direction);
696
696
  float dist = (n.x*(vWPosition.x - origin.x) + n.y*(vWPosition.y - origin.y) + n.z*(vWPosition.z - origin.z));
697
697
  return ( dist - near ) / ( far - near );
698
- }`),n=new Z(`float vectorLinearObjectSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
698
+ }`),r=new $(`float vectorLinearObjectSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
699
699
  vec3 n = normalize(direction);
700
700
  float dist = (n.x*(position.x - origin.x) + n.y*(position.y - origin.y) + n.z*(position.z - origin.z));
701
701
  return ( dist - near ) / ( far - near );
702
- }`),o=new Z(`float vectorSphericalWorldSpaceDepth(vec3 origin, float near, float far) {
702
+ }`),o=new $(`float vectorSphericalWorldSpaceDepth(vec3 origin, float near, float far) {
703
703
  float dist = length(vWPosition - origin);
704
704
  return ( dist - near ) / ( far - near );
705
- }`),i=new Z(`float vectorSphericalObjectSpaceDepth(vec3 origin, float near, float far) {
705
+ }`),i=new $(`float vectorSphericalObjectSpaceDepth(vec3 origin, float near, float far) {
706
706
  float dist = length(position - origin);
707
707
  return ( dist - near ) / ( far - near );
708
- }`);return{vectorLinearWorldSpaceDepth:e,vectorLinearObjectSpaceDepth:n,vectorSphericalWorldSpaceDepth:o,vectorSphericalObjectSpaceDepth:i}}();var Fa=class extends he{constructor(e,n,o,i){super("v3");this.nodeType="Blend";this.a=e,this.b=n,this.alpha=o,this.mode=i}generate(e,n){if(e.isShader("fragment")){let o=[];return o.push(this.a.build(e,"c")),o.push(this.b.build(e,"c")),o.push(this.alpha.build(e,"f")),o.push(this.mode.build(e,"i")),e.format("spe_blend("+o.join(",")+")",this.getType(e),n)}else return console.warn("BlendNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}};var Uu=(e=>(e.NOISE="noise",e.MAP="map",e))(Uu||{}),Vu=class extends he{constructor(e,n,o,i,a){super("v3");this.displacementTypeIndex=new _e(0);this.nodeType="VertexDisplacement";this.intensity=e,this.movementOrTexture=n,Object.values(Uu)[this.displacementTypeIndex.value]==="map"&&(this.mat=new Oi(this.movementOrTexture.value.matrix)),this.cropOrOffset=o,this.scale=i,this.noiseFunctionIndex=a}generate(e,n){if(e.isShader("vertex")){e.define("USE_LAYER_DISPLACE");let o,i=[];switch(i.push("displaced_position"),i.push("displaced_normal"),Object.values(Uu)[this.displacementTypeIndex.value]){case"map":{o=e.include(Vu.Nodes.map),i.push(this.movementOrTexture.getTexture(e,"t")),i.push("uv"),i.push(this.cropOrOffset.build(e,"f")),this.mat&&i.push(this.mat.build(e,"mat3"));break}case"noise":{let s=Object.values(Ia)[this.noiseFunctionIndex.value],l=new Z(`vec3 orthogonal(vec3 v) {
708
+ }`);return{vectorLinearWorldSpaceDepth:e,vectorLinearObjectSpaceDepth:r,vectorSphericalWorldSpaceDepth:o,vectorSphericalObjectSpaceDepth:i}}();var Fi=class extends le{constructor(e,r,o,i){super("v3");this.nodeType="Blend";this.a=e,this.b=r,this.alpha=o,this.mode=i}generate(e,r){if(e.isShader("fragment")){let o=[];return o.push(this.a.build(e,"c")),o.push(this.b.build(e,"c")),o.push(this.alpha.build(e,"f")),o.push(this.mode.build(e,"i")),e.format("spe_blend("+o.join(",")+")",this.getType(e),r)}else return console.warn("BlendNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}};var hc=(e=>(e.NOISE="noise",e.MAP="map",e))(hc||{}),gc=class extends le{constructor(e,r,o,i,s){super("v3");this.displacementTypeIndex=new ve(0);this.nodeType="VertexDisplacement";this.intensity=e,this.movementOrTexture=r,Object.values(hc)[this.displacementTypeIndex.value]==="map"&&(this.mat=new Rn(this.movementOrTexture.value.matrix)),this.cropOrOffset=o,this.scale=i,this.noiseFunctionIndex=s}generate(e,r){if(e.isShader("vertex")){e.define("USE_LAYER_DISPLACE");let o,i=[];switch(i.push("displaced_position"),i.push("displaced_normal"),Object.values(hc)[this.displacementTypeIndex.value]){case"map":{o=e.include(gc.Nodes.map),i.push(this.movementOrTexture.getTexture(e,"t")),i.push("uv"),i.push(this.cropOrOffset.build(e,"f")),this.mat&&i.push(this.mat.build(e,"mat3"));break}case"noise":{let l=Object.values(Li)[this.noiseFunctionIndex.value],c=new $(`vec3 orthogonal(vec3 v) {
709
709
  return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
710
- }`),u=new Z(`vec3 distorted(vec3 p, vec3 n, float scale, float intensity, vec3 offset, float neighbour_offset, float movement) {
711
- return p + n * ${s}((p + offset) * scale * 0.001 + neighbour_offset + (movement * 0.1)) * intensity;
712
- }`,[Nt.simplex,Nt.simplexFractal,Nt.simplexAshima,Nt.fbm,Nt.perlin]),c=new Z(`vec3 vertexDisplacementNoise(vec3 position, vec3 normal, float scale, vec3 offset, float movement, float intensity, out vec3 displaced_normal) {
710
+ }`),p=new $(`vec3 distorted(vec3 p, vec3 n, float scale, float intensity, vec3 offset, float neighbour_offset, float movement) {
711
+ return p + n * ${l}((p + offset) * scale * 0.001 + neighbour_offset + (movement * 0.1)) * intensity;
712
+ }`,[yt.simplex,yt.simplexFractal,yt.simplexAshima,yt.fbm,yt.perlin]),a=new $(`vec3 vertexDisplacementNoise(vec3 position, vec3 normal, float scale, vec3 offset, float movement, float intensity, out vec3 displaced_normal) {
713
713
  vec3 displaced_position = distorted(position, normal, scale, intensity, offset, neighbor_offset, movement);
714
714
  vec3 tangent1 = orthogonal(normal);
715
715
  vec3 tangent2 = normalize(cross(normal, tangent1));
@@ -725,9 +725,9 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
725
725
  vec3 distorted2 = distorted(nearby2, normal, scale, intensity, offset, neighbor_offset, movement);
726
726
  displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
727
727
  return displaced_position;
728
- }`,[u,l]);o=e.include(c),i.push(this.scale.build(e,"f")),i.push(this.cropOrOffset.build(e,"v3")),i.push(this.movementOrTexture.build(e,"f"));break}}return i.push(this.intensity.build(e,"f")),i.push("displaced_normal"),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("VertexDisplacementNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},Ra=Vu;Ra.Nodes=function(){let e=new Z(`vec3 orthogonal(vec3 v) {
728
+ }`,[p,c]);o=e.include(a),i.push(this.scale.build(e,"f")),i.push(this.cropOrOffset.build(e,"v3")),i.push(this.movementOrTexture.build(e,"f"));break}}return i.push(this.intensity.build(e,"f")),i.push("displaced_normal"),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("VertexDisplacementNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},zi=gc;zi.Nodes=function(){let e=new $(`vec3 orthogonal(vec3 v) {
729
729
  return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
730
- }`),n=new Z(`float displacementMapTexture(sampler2D tex, float crop, vec2 uv, mat3 mat, vec2 offset) {
730
+ }`),r=new $(`float displacementMapTexture(sampler2D tex, float crop, vec2 uv, mat3 mat, vec2 offset) {
731
731
  vec2 uvs = (mat * vec3(uv * 2.0 - 1.0, 1.0) / 2.0 + 0.5).xy + offset;
732
732
  vec4 tmp = texture2D(tex, uvs);
733
733
  vec3 col = tmp.rgb;
@@ -737,7 +737,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
737
737
  }
738
738
  }
739
739
  return col.r;
740
- }`);return{map:new Z(`vec3 vertexDisplacementMap(vec3 position, vec3 normal, sampler2D tex, vec2 uv, float crop, mat3 mat, float intensity, out vec3 displaced_normal) {
740
+ }`);return{map:new $(`vec3 vertexDisplacementMap(vec3 position, vec3 normal, sampler2D tex, vec2 uv, float crop, mat3 mat, float intensity, out vec3 displaced_normal) {
741
741
  vec3 displaced_position = position + normal * displacementMapTexture(tex, crop, uv, mat, vec2(0.0)) * intensity;
742
742
  vec3 tangent1 = normalize(orthogonal(normal));
743
743
  vec3 tangent2 = normalize(cross(normal, tangent1));
@@ -747,7 +747,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
747
747
  vec3 distorted2 = nearby2 + normal * displacementMapTexture(tex, crop, uv, mat, vec2(neighbor_offset)) * intensity;
748
748
  displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
749
749
  return displaced_position;
750
- }`,[e,n])}}();var zu=class extends he{constructor(e,n,o,i,a,s,l,u){super("v3");this.nodeType="Gradient";this.gradientType=e,this.smooth=n,this.colors=o,this.steps=i,this.offset=a,this.morph=s,this.angle=l,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.isShader("fragment")){e.define("GRAD_MAX",10),e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(zu.Nodes.gradient),i=[];return i.push(this.gradientType.build(e,"i")),i.push(this.smooth.build(e,"b")),i.push(this.colors.build(e,"v4[]")),i.push(this.steps.build(e,"f[]")),i.push(this.offset.build(e,"v2")),i.push(this.morph.build(e,"v2")),i.push(this.angle.build(e,"f")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("GradientNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},ka=zu;ka.Nodes=function(){return{gradient:new Z(`vec3 gradient(int gradientType, bool smoothed, vec4 colors[GRAD_MAX], float steps[GRAD_MAX], vec2 offset, vec2 morph, float angle, float alpha, out float calpha) {
750
+ }`,[e,r])}}();var yc=class extends le{constructor(e,r,o,i,s,l,c,p){super("v3");this.nodeType="Gradient";this.gradientType=e,this.smooth=r,this.colors=o,this.steps=i,this.offset=s,this.morph=l,this.angle=c,this.alpha=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.isShader("fragment")){e.define("GRAD_MAX",10),e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(yc.Nodes.gradient),i=[];return i.push(this.gradientType.build(e,"i")),i.push(this.smooth.build(e,"b")),i.push(this.colors.build(e,"v4[]")),i.push(this.steps.build(e,"f[]")),i.push(this.offset.build(e,"v2")),i.push(this.morph.build(e,"v2")),i.push(this.angle.build(e,"f")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("GradientNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Ui=yc;Ui.Nodes=function(){return{gradient:new $(`vec3 gradient(int gradientType, bool smoothed, vec4 colors[GRAD_MAX], float steps[GRAD_MAX], vec2 offset, vec2 morph, float angle, float alpha, out float calpha) {
751
751
  vec4 color = colors[0];
752
752
  vec2 m = morph / vUv.xy;
753
753
  vec2 rot = vec2( 0.5 + m.x, m.y );
@@ -789,7 +789,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
789
789
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
790
790
 
791
791
  return color.xyz;
792
- }`)}}();var Ua=class extends he{constructor(e,n,o,i,a,s,l,u,c,p){super("v3");this.nodeType="CustomTexture";this.firstTime=!0,this.texture=e,this.textureSize=n,this.crop=o,this.projection=i,this.axis=a,this.side=s,this.size=l,this.mat=u,this.alpha=c,this.mode=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){e.require("position"),e.require("normal"),e.require("uv"),e.requires.uv=[!0],e.extensions.shaderTextureLOD=!0,e.extensions.derivatives=!0;let o=`g${this.uuid.toString().replace(/-/g,"")}`,i;switch(this.projection.value){case 3:i=e.include(Ua.Nodes.cylindrical);break;case 2:i=e.include(Ua.Nodes.spherical);break;case 1:let s=["vec3(1.0, 0.0, 0.0)","vec3(0.0, 1.0, 0.0)","vec3(0.0, 0.0, 1.0)"][this.axis.value],l=new Z(`
792
+ }`)}}();var ki=class extends le{constructor(e,r,o,i,s,l,c,p,a,u){super("v3");this.nodeType="CustomTexture";this.firstTime=!0,this.texture=e,this.textureSize=r,this.crop=o,this.projection=i,this.axis=s,this.side=l,this.size=c,this.mat=p,this.alpha=a,this.mode=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){e.require("position"),e.require("normal"),e.require("uv"),e.requires.uv=[!0],e.extensions.shaderTextureLOD=!0,e.extensions.derivatives=!0;let o=`g${this.uuid.toString().replace(/-/g,"")}`,i;switch(this.projection.value){case 3:i=e.include(ki.Nodes.cylindrical);break;case 2:i=e.include(ki.Nodes.spherical);break;case 1:let l=["vec3(1.0, 0.0, 0.0)","vec3(0.0, 1.0, 0.0)","vec3(0.0, 0.0, 1.0)"][this.axis.value],c=new $(`
793
793
  vec3 ${o}_planarTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
794
794
 
795
795
  vec2 uvs = ( mat * vec3( (${o}_vCustomUv * 2. - 1.) / (size * .5), 1. ) / 2. + 0.5 ).xy;
@@ -798,7 +798,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
798
798
 
799
799
  vec3 col = tmp.rgb;
800
800
  float lalpha = alpha * tmp.a;
801
- ${this.side.value===2?"":`lalpha *= step(0.0, ${this.side.value===1?"-1.0 * ":""}dot(vObjectNormal, mat * ${s}));`}
801
+ ${this.side.value===2?"":`lalpha *= step(0.0, ${this.side.value===1?"-1.0 * ":""}dot(vObjectNormal, mat * ${l}));`}
802
802
 
803
803
  if ( crop > 0.5 ) {
804
804
  if ( uvs.x < 0.0 || uvs.x > 1.0 || uvs.y < 0.0 || uvs.y > 1.0 ) {
@@ -808,7 +808,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
808
808
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
809
809
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
810
810
  return col;
811
- }`);i=e.include(l);break;default:i=e.include(Ua.Nodes.uv);break}if(this.projection.value===1&&this.firstTime){e.addVertexParsCode(`varying vec2 ${o}_vCustomUv;`),e.addFragmentParsCode(`varying vec2 ${o}_vCustomUv;`);let s=["zy","xz","xy"][this.axis.value];e.addVertexFinalCode(`${o}_vCustomUv = (1. + (transformed.${s})) / 2.;`)}e.addFragmentVariable(this.calpha,"float");let a=[];return a.push(this.texture.generate(e,"t")),a.push(this.textureSize.build(e,"v2")),a.push(this.crop.build(e,"f")),a.push(this.mat.build(e,"mat3")),a.push(this.size.build(e,"v2")),a.push(this.alpha.build(e,"f")),a.push(this.mode.build(e,"i")),a.push(this.calpha),this.firstTime=!this.firstTime,e.format(i+"("+a.join(",")+")",this.getType(e),n)}},Ga=Ua;Ga.Nodes=function(){let e=new Z(`
811
+ }`);i=e.include(c);break;default:i=e.include(ki.Nodes.uv);break}if(this.projection.value===1&&this.firstTime){e.addVertexParsCode(`varying vec2 ${o}_vCustomUv;`),e.addFragmentParsCode(`varying vec2 ${o}_vCustomUv;`);let l=["zy","xz","xy"][this.axis.value];e.addVertexFinalCode(`${o}_vCustomUv = (1. + (transformed.${l})) / 2.;`)}e.addFragmentVariable(this.calpha,"float");let s=[];return s.push(this.texture.generate(e,"t")),s.push(this.textureSize.build(e,"v2")),s.push(this.crop.build(e,"f")),s.push(this.mat.build(e,"mat3")),s.push(this.size.build(e,"v2")),s.push(this.alpha.build(e,"f")),s.push(this.mode.build(e,"i")),s.push(this.calpha),this.firstTime=!this.firstTime,e.format(i+"("+s.join(",")+")",this.getType(e),r)}},ji=ki;ji.Nodes=function(){let e=new $(`
812
812
  vec3 cylindricalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
813
813
  vec3 posN = normalize(position);
814
814
  float u = 0.5 + atan(posN.z, posN.x) / (2.*3.1415);
@@ -838,7 +838,7 @@ vec3 cylindricalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, v
838
838
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
839
839
  return col;
840
840
  }
841
- `),n=new Z(`
841
+ `),r=new $(`
842
842
  vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
843
843
  vec3 posN = normalize(vPosition);
844
844
  float u = 0.5 + atan(posN.z, posN.x) / (2.*3.1415);
@@ -866,7 +866,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
866
866
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
867
867
  return col;
868
868
  }
869
- `),o=new Z(`vec3 uvTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
869
+ `),o=new $(`vec3 uvTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
870
870
 
871
871
  vec2 uvs = ( mat * vec3( vUv * 2. - 1., 1. ) / 2. + 0.5 ).xy;
872
872
  vec4 tmp = texture2D( tex, uvs );
@@ -882,14 +882,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
882
882
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
883
883
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
884
884
  return col;
885
- }`);return{cylindrical:e,spherical:n,uv:o}}();var ju=class extends he{constructor(e,n){super("v3");this.nodeType="CustomNormal";this.cnormal=e,this.alpha=n}generate(e,n){if(e.isShader("fragment")){let o=e.include(ju.Nodes.customNormal),i=[];return i.push(this.cnormal.build(e,"v3")),i.push("normal"),i.push(this.alpha.build(e,"f")),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("CustomNormalNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},Va=ju;Va.Nodes=function(){return{customNormal:new Z(`vec3 customNormal(vec3 cnormal, vec3 norm, float alpha) {
885
+ }`);return{cylindrical:e,spherical:r,uv:o}}();var xc=class extends le{constructor(e,r){super("v3");this.nodeType="CustomNormal";this.cnormal=e,this.alpha=r}generate(e,r){if(e.isShader("fragment")){let o=e.include(xc.Nodes.customNormal),i=[];return i.push(this.cnormal.build(e,"v3")),i.push("normal"),i.push(this.alpha.build(e,"f")),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("CustomNormalNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Hi=xc;Hi.Nodes=function(){return{customNormal:new $(`vec3 customNormal(vec3 cnormal, vec3 norm, float alpha) {
886
886
  vec3 normal = packNormalToRGB( norm ).rgb;
887
887
  normal *= step( vec3(0.5), cnormal );
888
888
 
889
889
  accumAlpha += ( 1.0 - accumAlpha ) * alpha;
890
890
 
891
891
  return normal;
892
- }`)}}();var Ot={normalRenderTarget:new jt,normalRenderTargetDepth:new jt,transmissionRenderTarget:new jt,transmissionSize:new bt(2048,2048),transmissionRenderTargetDepth:new jt,pixelRatioNode:new J(1),resolution:new bt,penumbraSize:new Sr(5,.5)};for(let r of Object.values(Ot))r.isRenderGlobal=!0;var ja=class extends xt{constructor(){super("lambert");this.nodeType="Lambert";this.color=new De(5855577),this.emissive=new De(0),this.emissiveIntensity=new J(1),this.shadingAlpha=new J(1),this.shadingBlend=new _e(0)}build(e){let n;if(e.define("LAMBERT"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(za.UniformsUtils.merge([za.UniformsLib.fog,za.UniformsLib.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <color_pars_vertex>","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
892
+ }`)}}();var mt={normalRenderTarget:new Ot,normalRenderTargetDepth:new Ot,transmissionRenderTarget:new Ot,transmissionSize:new lt(2048,2048),transmissionRenderTargetDepth:new Ot,pixelRatioNode:new Y(1),resolution:new lt,penumbraSize:new or(5,.5)};for(let n of Object.values(mt))n.isRenderGlobal=!0;var qi=class extends at{constructor(){super("lambert");this.nodeType="Lambert";this.color=new Ie(5855577),this.emissive=new Ie(0),this.emissiveIntensity=new Y(1),this.shadingAlpha=new Y(1),this.shadingBlend=new ve(0)}build(e){let r;if(e.define("LAMBERT"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(Wi.UniformsUtils.merge([Wi.UniformsLib.fog,Wi.UniformsLib.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <color_pars_vertex>","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
893
893
  `));let i=["#include <beginnormal_vertex>",`
894
894
  #ifndef USE_LAYER_DISPLACE
895
895
  #include <defaultnormal_vertex>
@@ -980,22 +980,22 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
980
980
  }
981
981
  #pragma unroll_loop_end
982
982
  #endif
983
- `," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),n=i.join(`
984
- `)}else{e.mergeUniform({penumbraSize:Ot.penumbraSize}),this.color===void 0&&(this.color=new De(5855577)),this.color.analyze(e,{slot:"color"}),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.emissive.flow(e,"c",{slot:"emissive"}),a=this.emissiveIntensity.flow(e,"f",{slot:"emissive"}),s=this.shadingAlpha.flow(e,"f"),l=this.shadingBlend.flow(e,"i"),u=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=c!==void 0,e.addParsCode([`uniform float penumbraSize[${5}];`,"varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#include <normal_pars_fragment>","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <fog_pars_fragment>","#include <shadowmap_pars_fragment>","#include <shadowmask_pars_fragment>","#include <clipping_planes_pars_fragment>","#include <dithering_pars_fragment>"].join(`
985
- `));let p=["#include <normal_fragment_begin>",`
983
+ `," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
984
+ `)}else{e.mergeUniform({penumbraSize:mt.penumbraSize}),this.color===void 0&&(this.color=new Ie(5855577)),this.color.analyze(e,{slot:"color"}),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.emissive.flow(e,"c",{slot:"emissive"}),s=this.emissiveIntensity.flow(e,"f",{slot:"emissive"}),l=this.shadingAlpha.flow(e,"f"),c=this.shadingBlend.flow(e,"i"),p=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,a=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=a!==void 0,e.addParsCode([`uniform float penumbraSize[${5}];`,"varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#include <normal_pars_fragment>","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <fog_pars_fragment>","#include <shadowmap_pars_fragment>","#include <shadowmask_pars_fragment>","#include <clipping_planes_pars_fragment>","#include <dithering_pars_fragment>"].join(`
985
+ `));let u=["#include <normal_fragment_begin>",`
986
986
  // NOTE: gl_FrontFacing alternative using face normal estimation.
987
987
  vec3 viewdx = dFdx(vViewPosition);
988
988
  vec3 viewdy = dFdy(vViewPosition);
989
989
  vec3 faceNormal = normalize(cross(viewdx, viewdy));
990
990
  bool isFrontFacing = (dot(normal, faceNormal) >= 0.0);
991
- `,"#include <clipping_planes_fragment>"];p.push(o.code,"vec3 diffuseColor = "+o.result+";","ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"),c&&p.push(c.code,"#ifdef ALPHATEST","if ( "+c.result+" <= ALPHATEST ) discard;","#endif"),p.push("#ifdef DOUBLE_SIDED"," reflectedLight.indirectDiffuse += ( isFrontFacing ) ? vIndirectFront : vIndirectBack;","#else"," reflectedLight.indirectDiffuse += vIndirectFront;","#endif","#include <lightmap_fragment>","reflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );","#ifdef DOUBLE_SIDED"," reflectedLight.directDiffuse = ( isFrontFacing ) ? vLightFront : vLightBack;","#else"," reflectedLight.directDiffuse = vLightFront;","#endif","reflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();"),i&&p.push(i.code,"reflectedLight.directDiffuse += "+i.result+" * "+a.result+";"),p.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;"),p.push(`
991
+ `,"#include <clipping_planes_fragment>"];u.push(o.code,"vec3 diffuseColor = "+o.result+";","ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"),a&&u.push(a.code,"#ifdef ALPHATEST","if ( "+a.result+" <= ALPHATEST ) discard;","#endif"),u.push("#ifdef DOUBLE_SIDED"," reflectedLight.indirectDiffuse += ( isFrontFacing ) ? vIndirectFront : vIndirectBack;","#else"," reflectedLight.indirectDiffuse += vIndirectFront;","#endif","#include <lightmap_fragment>","reflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );","#ifdef DOUBLE_SIDED"," reflectedLight.directDiffuse = ( isFrontFacing ) ? vLightFront : vLightBack;","#else"," reflectedLight.directDiffuse = vLightFront;","#endif","reflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();"),i&&u.push(i.code,"reflectedLight.directDiffuse += "+i.result+" * "+s.result+";"),u.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;"),u.push(`
992
992
  if (outgoingLight != diffuseColor) {
993
993
  float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
994
- accumAlpha += ( 1.0 - accumAlpha ) * ${s.result} * lightAccu;
995
- outgoingLight = spe_blend( diffuseColor, outgoingLight, ${s.result}, ${l.result} );
994
+ accumAlpha += ( 1.0 - accumAlpha ) * ${l.result} * lightAccu;
995
+ outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${c.result} );
996
996
  }
997
- `),u&&p.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),c?p.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${c.result} );`):p.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),p.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),n=p.join(`
998
- `)}return n}};var Li=require("three");var Ha=class extends xt{constructor(){super("standard");this.nodeType="Standard";this.color=new De(5855577),this.roughness=new J(.3),this.metalness=new J(0),this.reflectivity=new J(.5),this.shadingAlpha=new J(1),this.shadingBlend=new _e(0)}build(e){let n;if(e.define("STANDARD"),e.requires.lights=!0,e.extensions.derivatives=!0,e.extensions.shaderTextureLOD=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(Li.UniformsUtils.merge([Li.UniformsLib.fog,Li.UniformsLib.lights])),Li.UniformsLib.LTC_1&&(e.uniforms.ltc_1={value:void 0},e.uniforms.ltc_2={value:void 0}),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
997
+ `),p&&u.push(p.code,`outgoingLight = spe_blend(outgoingLight, ${p.result}, 1.0, SPE_BLENDING_NORMAL);`),a?u.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${a.result} );`):u.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),u.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=u.join(`
998
+ `)}return r}};var Fn=require("three");var $i=class extends at{constructor(){super("standard");this.nodeType="Standard";this.color=new Ie(5855577),this.roughness=new Y(.3),this.metalness=new Y(0),this.reflectivity=new Y(.5),this.shadingAlpha=new Y(1),this.shadingBlend=new ve(0)}build(e){let r;if(e.define("STANDARD"),e.requires.lights=!0,e.extensions.derivatives=!0,e.extensions.shaderTextureLOD=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(Fn.UniformsUtils.merge([Fn.UniformsLib.fog,Fn.UniformsLib.lights])),Fn.UniformsLib.LTC_1&&(e.uniforms.ltc_1={value:void 0},e.uniforms.ltc_2={value:void 0}),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
999
999
  `));let i=["#include <beginnormal_vertex>",`
1000
1000
  #if !defined( USE_LAYER_DISPLACE )
1001
1001
  #include <defaultnormal_vertex>
@@ -1012,9 +1012,9 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1012
1012
  #if !defined( USE_LAYER_DISPLACE )
1013
1013
  #include <begin_vertex>
1014
1014
  #endif /* !USE_LAYER_DISPLACE */
1015
- `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>","#include <shadowmap_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),n=i.join(`
1016
- `)}else{e.mergeUniform({penumbraSize:Ot.penumbraSize});let o={gamma:!0};this.color===void 0&&(this.color=new De(5855577)),this.color.analyze(e,{slot:"color",context:o}),this.roughness.analyze(e),this.metalness.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e),this.reflectivity&&this.reflectivity.analyze(e);let i=this.color.flow(e,"c",{slot:"color",context:o}),a=this.roughness.flow(e,"f"),s=this.metalness.flow(e,"f"),l=this.shadingAlpha.flow(e,"f"),u=this.shadingBlend.flow(e,"i"),c=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,p=this.alpha?this.alpha.flow(e,"f"):void 0,f=this.reflectivity?this.reflectivity.flow(e,"f"):void 0;e.requires.transparent=p!==void 0,e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;",`uniform float penumbraSize[${5}];`,"#include <normal_pars_fragment>","#include <dithering_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_physical_pars_fragment>","#include <shadowmap_pars_fragment>"].join(`
1017
- `));let d=["#include <clipping_planes_fragment>"," #include <normal_fragment_begin>",`
1015
+ `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>","#include <shadowmap_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
1016
+ `)}else{e.mergeUniform({penumbraSize:mt.penumbraSize});let o={gamma:!0};this.color===void 0&&(this.color=new Ie(5855577)),this.color.analyze(e,{slot:"color",context:o}),this.roughness.analyze(e),this.metalness.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e),this.reflectivity&&this.reflectivity.analyze(e);let i=this.color.flow(e,"c",{slot:"color",context:o}),s=this.roughness.flow(e,"f"),l=this.metalness.flow(e,"f"),c=this.shadingAlpha.flow(e,"f"),p=this.shadingBlend.flow(e,"i"),a=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,u=this.alpha?this.alpha.flow(e,"f"):void 0,d=this.reflectivity?this.reflectivity.flow(e,"f"):void 0;e.requires.transparent=u!==void 0,e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;",`uniform float penumbraSize[${5}];`,"#include <normal_pars_fragment>","#include <dithering_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_physical_pars_fragment>","#include <shadowmap_pars_fragment>"].join(`
1017
+ `));let f=["#include <clipping_planes_fragment>"," #include <normal_fragment_begin>",`
1018
1018
  // NOTE: gl_FrontFacing alternative using face normal estimation.
1019
1019
  vec3 viewdx = dFdx(vViewPosition);
1020
1020
  vec3 viewdy = dFdy(vViewPosition);
@@ -1022,14 +1022,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1022
1022
  if (dot(normal, faceNormal) < 0.0) {
1023
1023
  normal *= -1.0;
1024
1024
  }
1025
- `," PhysicalMaterial material;"," material.diffuseColor = vec3( 1.0 );"];d.push(i.code," vec3 diffuseColor = "+i.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",a.code," float roughnessFactor = "+a.result+";",s.code," float metalnessFactor = "+s.result+";"),p&&d.push(p.code,"#ifdef ALPHATEST"," if ( "+p.result+" <= ALPHATEST ) discard;","#endif"),d.push("vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );"),d.push("material.diffuseColor = diffuseColor * ( 1.0 - metalnessFactor );","material.roughness = max( roughnessFactor, 0.0525 );","material.roughness += geometryRoughness;","material.roughness = min( material.roughness, 1.0 );","material.roughness = clamp( roughnessFactor, 0.04, 1.0 );"),f?d.push(f.code,"material.specularColor = mix( vec3( 0.16 * pow2( "+f.result+" ) ), diffuseColor, metalnessFactor );"):d.push("material.specularColor = mix( vec3( 0.04 ), diffuseColor, metalnessFactor );"),d.push("#include <lights_fragment_begin>"),d.push("#include <lights_fragment_end>"),d.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;"),d.push(`
1025
+ `," PhysicalMaterial material;"," material.diffuseColor = vec3( 1.0 );"];f.push(i.code," vec3 diffuseColor = "+i.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",s.code," float roughnessFactor = "+s.result+";",l.code," float metalnessFactor = "+l.result+";"),u&&f.push(u.code,"#ifdef ALPHATEST"," if ( "+u.result+" <= ALPHATEST ) discard;","#endif"),f.push("vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );"),f.push("material.diffuseColor = diffuseColor * ( 1.0 - metalnessFactor );","material.roughness = max( roughnessFactor, 0.0525 );","material.roughness += geometryRoughness;","material.roughness = min( material.roughness, 1.0 );","material.roughness = clamp( roughnessFactor, 0.04, 1.0 );"),d?f.push(d.code,"material.specularColor = mix( vec3( 0.16 * pow2( "+d.result+" ) ), diffuseColor, metalnessFactor );"):f.push("material.specularColor = mix( vec3( 0.04 ), diffuseColor, metalnessFactor );"),f.push("#include <lights_fragment_begin>"),f.push("#include <lights_fragment_end>"),f.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;"),f.push(`
1026
1026
  if (outgoingLight != diffuseColor) {
1027
1027
  float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
1028
- accumAlpha += ( 1.0 - accumAlpha ) * ${l.result} * lightAccu;
1029
- outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${u.result} );
1028
+ accumAlpha += ( 1.0 - accumAlpha ) * ${c.result} * lightAccu;
1029
+ outgoingLight = spe_blend( diffuseColor, outgoingLight, ${c.result}, ${p.result} );
1030
1030
  }
1031
- `),c&&d.push(c.code,`outgoingLight = spe_blend(outgoingLight, ${c.result}, 1.0, SPE_BLENDING_NORMAL);`),p?d.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${p.result} );`):d.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),d.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),n=d.join(`
1032
- `)}return n}};var Wa=require("three");var qa=class extends xt{constructor(){super("toon");this.nodeType="Toon";this.color=new De(5855577),this.specular=new De(1118481),this.shininess=new J(30),this.shadingAlpha=new J(1),this.shadingBlend=new _e(0)}build(e){let n;if(e.define("TOON"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(Wa.UniformsUtils.merge([Wa.UniformsLib.fog,Wa.UniformsLib.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
1031
+ `),a&&f.push(a.code,`outgoingLight = spe_blend(outgoingLight, ${a.result}, 1.0, SPE_BLENDING_NORMAL);`),u?f.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${u.result} );`):f.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),f.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=f.join(`
1032
+ `)}return r}};var Xi=require("three");var Yi=class extends at{constructor(){super("toon");this.nodeType="Toon";this.color=new Ie(5855577),this.specular=new Ie(1118481),this.shininess=new Y(30),this.shadingAlpha=new Y(1),this.shadingBlend=new ve(0)}build(e){let r;if(e.define("TOON"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(Xi.UniformsUtils.merge([Xi.UniformsLib.fog,Xi.UniformsLib.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
1033
1033
  `));let i=["#include <beginnormal_vertex>",`
1034
1034
  #ifndef USE_LAYER_DISPLACE
1035
1035
  #include <defaultnormal_vertex>
@@ -1046,8 +1046,8 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1046
1046
  #ifndef USE_LAYER_DISPLACE
1047
1047
  #include <begin_vertex>
1048
1048
  #endif
1049
- `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push(" #include <project_vertex>"," #include <fog_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),n=i.join(`
1050
- `)}else{e.mergeUniform({penumbraSize:Ot.penumbraSize}),this.color===void 0&&(this.color=new De(5855577)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.specular.flow(e,"c"),a=this.shininess.flow(e,"f"),s=this.shadingAlpha.flow(e,"f"),l=this.shadingBlend.flow(e,"i"),u=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=c!==void 0,e.addParsCode([`uniform float penumbraSize[${5}];`,"varying vec3 vWPosition;","#include <normal_pars_fragment>","#include <gradientmap_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <dithering_pars_fragment>",`
1049
+ `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push(" #include <project_vertex>"," #include <fog_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
1050
+ `)}else{e.mergeUniform({penumbraSize:mt.penumbraSize}),this.color===void 0&&(this.color=new Ie(5855577)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.specular.flow(e,"c"),s=this.shininess.flow(e,"f"),l=this.shadingAlpha.flow(e,"f"),c=this.shadingBlend.flow(e,"i"),p=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,a=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=a!==void 0,e.addParsCode([`uniform float penumbraSize[${5}];`,"varying vec3 vWPosition;","#include <normal_pars_fragment>","#include <gradientmap_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <dithering_pars_fragment>",`
1051
1051
  varying vec3 vViewPosition;
1052
1052
  struct ToonMaterial {
1053
1053
  vec3 diffuseColor;
@@ -1068,7 +1068,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1068
1068
  #define RE_IndirectDiffuse RE_IndirectDiffuse_Toon
1069
1069
  #define Material_LightProbeLOD( material ) (0)
1070
1070
  `,"#include <shadowmap_pars_fragment>","#include <bumpmap_pars_fragment>","#include <normalmap_pars_fragment>"].join(`
1071
- `));let p=["#include <normal_fragment_begin>",`
1071
+ `));let u=["#include <normal_fragment_begin>",`
1072
1072
  // NOTE: gl_FrontFacing alternative using face normal estimation.
1073
1073
  vec3 viewdx = dFdx(vViewPosition);
1074
1074
  vec3 viewdy = dFdy(vViewPosition);
@@ -1076,14 +1076,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1076
1076
  if (dot(normal, faceNormal) < 0.0) {
1077
1077
  normal *= -1.0;
1078
1078
  }
1079
- `," ToonMaterial material;"];p.push(o.code," vec3 diffuseColor = "+o.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",i.code," vec3 specular = "+i.result+";",a.code," float shininess = max( 0.0001, "+a.result+" );"," float specularStrength = 1.0;"),c&&p.push(c.code,"#ifdef ALPHATEST","if ( "+c.result+" <= ALPHATEST ) discard;","#endif"),p.push("material.diffuseColor = diffuseColor;"),p.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),p.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;"),p.push(`
1079
+ `," ToonMaterial material;"];u.push(o.code," vec3 diffuseColor = "+o.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",i.code," vec3 specular = "+i.result+";",s.code," float shininess = max( 0.0001, "+s.result+" );"," float specularStrength = 1.0;"),a&&u.push(a.code,"#ifdef ALPHATEST","if ( "+a.result+" <= ALPHATEST ) discard;","#endif"),u.push("material.diffuseColor = diffuseColor;"),u.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),u.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;"),u.push(`
1080
1080
  if (outgoingLight != diffuseColor) {
1081
1081
  float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
1082
- accumAlpha += ( 1.0 - accumAlpha ) * ${s.result} * lightAccu;
1083
- outgoingLight = spe_blend( diffuseColor, outgoingLight, ${s.result}, ${l.result} );
1082
+ accumAlpha += ( 1.0 - accumAlpha ) * ${l.result} * lightAccu;
1083
+ outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${c.result} );
1084
1084
  }
1085
- `),u&&p.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),c?p.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${c.result} );`):p.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),p.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),n=p.join(`
1086
- `)}return n}};var ot=require("three");function Tg(r,t){switch(r.type){case"fresnel":return UC(r,t);case"gradient":return VC(r);case"depth":return zC(r);case"normal":return jC(r);case"noise":return HC(r,t);case"rainbow":return WC(r);case"toon":return qC(r,t);case"outline":return XC(r,t);case"transmission":return YC(r,t);case"color":return GC(r,t)}}function kC(r){return{type:r.type}}function Kr(r){let{alpha:t,mode:e}=r;return{...kC(r),alpha:t,mode:e}}function GC(r,t){return{...Kr(r),color:vt(r.color,t)}}function UC(r,t){let{bias:e,scale:n,intensity:o,factor:i,color:a}=r;return{...Kr(r),color:vt(a,t),bias:e,scale:n,intensity:o,factor:i}}function VC(r){let{gradientType:t,smooth:e,colors:n,steps:o,angle:i,offset:a,morph:s}=r;return{...Kr(r),gradientType:t,smooth:e,colors:n.map(l=>new ot.Vector4(l[0],l[1],l[2],l[3])),num:n.length,steps:o,offset:new ot.Vector2(...a),morph:new ot.Vector2(...s),angle:i}}function zC(r){let{gradientType:t,near:e,far:n,isVector:o,isWorldSpace:i,origin:a,direction:s,colors:l,steps:u,smooth:c}=r;return{...Kr(r),gradientType:t,near:e,far:n,isVector:o,isWorldSpace:i,origin:new ot.Vector3(...a),direction:s?new ot.Vector3(...s):new ot.Vector3(1,0,0),colors:l.map(p=>p!==void 0?new ot.Vector4(p[0],p[1],p[2],p[3]):new ot.Vector4(0,0,0,0)),steps:u.slice(0,l.length),smooth:c}}function jC(r){let{cnormal:t}=r;return{...Kr(r),cnormal:new ot.Vector3(t[0],t[1],t[2])}}function HC(r,t){return{...Kr(r),scale:r.scale,move:r.move,fA:new ot.Vector2(...r.fA),fB:new ot.Vector2(...r.fB),size:new ot.Vector3(...r.size),distortion:new ot.Vector2(...r.distortion),colorA:vt(r.colorA,t),colorB:vt(r.colorB,t),colorC:vt(r.colorC,t),colorD:vt(r.colorD,t),noiseType:r.noiseType}}function WC(r){return{...Kr(r),filmThickness:r.filmThickness,movement:r.movement,wavelengths:new ot.Vector3(...r.wavelengths),noiseStrength:r.noiseStrength,noiseScale:r.noiseScale,offset:new ot.Vector3(...r.offset)}}function qC(r,t){return{...Kr(r),positioning:r.positioning,colors:r.colors.map(e=>new ot.Vector4(e[0],e[1],e[2],e[3])),num:r.colors.length,steps:r.steps,source:new ot.Vector3(...r.source),isWorldSpace:r.isWorldSpace,noiseStrength:r.noiseStrength,noiseScale:r.noiseScale,shadowColor:vt(r.shadowColor,t),offset:new ot.Vector3(...r.offset)}}function XC(r,t){return{...Kr(r),outlineColor:vt(r.outlineColor,t),contourColor:vt(r.contourColor,t),outlineWidth:r.outlineWidth,contourWidth:r.contourWidth,outlineThreshold:r.outlineThreshold,contourThreshold:r.contourThreshold,outlineSmoothing:r.outlineSmoothing,contourFrequency:r.contourFrequency,contourDirection:r.contourDirection,positionalLines:r.positionalLines,compensation:r.compensation}}function YC(r,t){return{...Kr(r),thickness:r.thickness,ior:r.ior,roughness:r.roughness}}var Hn=class extends ft{};var Og=require("three");var _g=require("three");var Hu=new Map,Xa={url:"head",time:0,data:null,next:null,prev:null},Ni={url:"tail",time:1/0,data:null,next:null,prev:null};Xa.next=Ni;Ni.prev=Xa;var Cg=0;function Ag(r){if(typeof r=="string")return r;let t=Date.now(),e=Hu.get(r);return e===void 0?(e={url:URL.createObjectURL(new Blob([r])),data:r,time:t,next:null,prev:null},Hu.set(r,e)):(e.time=t,e.prev.next=e.next,e.next.prev=e.prev),e.prev=Ni.prev,e.next=Ni,Ni.prev.next=e,Ni.prev=e,t-Cg>1e3*10&&(Cg=t+1e3,setTimeout(()=>{let n=Date.now(),o=Xa.next;for(;o.time<n-1e3*10;)URL.revokeObjectURL(o.url),Hu.delete(o.data),o=o.next,o.prev=Xa,Xa.next=o},900)),e.url}var Pi=class{constructor(t,e){this.data=t;this.onImageLoad=e;this.loaded=!1;this.updateSrc(t.data)}updateSrc(t){typeof document>"u"||(this.dispose(),this.loaded=!1,this.img=new Image,this.img.src=Ag(t),this.img.onload=()=>{this.loaded=!0;let e=[1e3,1001,1002];for(let n of e){let o=this[n];o&&(o.image=this.img,o.needsUpdate=!0)}this.onImageLoad&&this.onImageLoad()})}getTexture(t){let e=this[t];if(e)return e;{let n=new _g.Texture(this.img,void 0,t,t);return this.loaded&&(n.needsUpdate=!0),this[t]=n,n}}dispose(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}};1e3,1001,1002;var So=class extends Pi{};var Wn=class extends Ue{};var Wu={noise:["noiseType"],texture:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},qu={depth:["colors"]};function $C(r,t,e){let n=Wu[r.type],o=qu[r.type];if(o!==void 0){let i=r.color;if(o.includes(t)){let a=i[t]?.value?.length;if(a!==void 0&&a!==e.length)return!0}}return n!==void 0?n.includes(t):!1}function Xu(r,t,e){let n=e.uniforms[`f${e.id}_texture`];if(!n)return!1;let o=!1,i=r;if("image"in i){let a=i.image,s=t.image(a),l=n;l instanceof So||l.image.dispose(),l.image=s}if("wrapping"in i){let a=n;a.wrap=i.wrapping}if("repeat"in i||"offset"in i){let a="mat",s=e.uniforms[`f${e.id}_${a}`];"repeat"in i&&(s.repeat=i.repeat),"offset"in i&&(s.offset=i.offset),s.updateMatrix()}return o}function Ig(r,t,e,n){let o=!1;for(let[i,a]of Object.entries(r)){if(!i||a===void 0||Yu(i,e,n))continue;e.visible=n.visible;let s=e.uniforms[`f${e.id}_${i}`];if(!!s&&!(s instanceof Wn))switch(o=o||$C(e,i,a),s.constructor){case De:if(typeof a=="string"){let l=t.getColor(a);l&&(s.value=l);break}else{let l=a;s.value instanceof Hn?s.value=new ft(l.r,l.g,l.b,l.a):s.setRGBA(l);break}case pr:if(typeof a=="string"){let l=t.getColor(a);l&&(s.value=l);break}else{let l=a;s.value instanceof Hn?s.value=new ft(l.r,l.g,l.b,l.a):s.value.setRGBA(l.r,l.g,l.b,l.a);break}case bt:{let l=a;s.value.setX(l[0]),s.value.setY(l[1]);break}case _t:{let l=a;s.value.setX(l[0]),s.value.setY(l[1]),s.value.setZ(l[2]);break}case jt:{Xu(a,t,e);break}case wr:{s.value=a.map(l=>new Og.Vector4(...l));break}default:{s.value=a;break}}}return o}var $u=class extends he{constructor(e,n,o){super("v3");this.nodeType="Matcap";this.texture=e,this.alpha=n,this.mode=o,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include($u.Nodes.matcap);e.require("normal"),e.requires.normal=!0;let i=[];return i.push(this.texture.generate(e,"t")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("MatcapNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},Ya=$u;Ya.Nodes=function(){return{matcap:new Z(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
1085
+ `),p&&u.push(p.code,`outgoingLight = spe_blend(outgoingLight, ${p.result}, 1.0, SPE_BLENDING_NORMAL);`),a?u.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${a.result} );`):u.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),u.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=u.join(`
1086
+ `)}return r}};var Xe=require("three");function gm(n,t){switch(n.type){case"fresnel":return qS(n,t);case"gradient":return $S(n);case"depth":return XS(n);case"normal":return YS(n);case"noise":return KS(n,t);case"rainbow":return QS(n);case"toon":return ZS(n,t);case"outline":return JS(n,t);case"transmission":return ew(n,t);case"color":return WS(n,t)}}function HS(n){return{type:n.type}}function Ar(n){let{alpha:t,mode:e}=n;return{...HS(n),alpha:t,mode:e}}function WS(n,t){return{...Ar(n),color:st(n.color,t)}}function qS(n,t){let{bias:e,scale:r,intensity:o,factor:i,color:s}=n;return{...Ar(n),color:st(s,t),bias:e,scale:r,intensity:o,factor:i}}function $S(n){let{gradientType:t,smooth:e,colors:r,steps:o,angle:i,offset:s,morph:l}=n;return{...Ar(n),gradientType:t,smooth:e,colors:r.map(c=>new Xe.Vector4(c[0],c[1],c[2],c[3])),num:r.length,steps:o,offset:new Xe.Vector2(...s),morph:new Xe.Vector2(...l),angle:i}}function XS(n){let{gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:s,direction:l,colors:c,steps:p,smooth:a}=n;return{...Ar(n),gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:new Xe.Vector3(...s),direction:l?new Xe.Vector3(...l):new Xe.Vector3(1,0,0),colors:c.map(u=>u!==void 0?new Xe.Vector4(u[0],u[1],u[2],u[3]):new Xe.Vector4(0,0,0,0)),steps:p.slice(0,c.length),smooth:a}}function YS(n){let{cnormal:t}=n;return{...Ar(n),cnormal:new Xe.Vector3(t[0],t[1],t[2])}}function KS(n,t){return{...Ar(n),scale:n.scale,move:n.move,fA:new Xe.Vector2(...n.fA),fB:new Xe.Vector2(...n.fB),size:new Xe.Vector3(...n.size),distortion:new Xe.Vector2(...n.distortion),colorA:st(n.colorA,t),colorB:st(n.colorB,t),colorC:st(n.colorC,t),colorD:st(n.colorD,t),noiseType:n.noiseType}}function QS(n){return{...Ar(n),filmThickness:n.filmThickness,movement:n.movement,wavelengths:new Xe.Vector3(...n.wavelengths),noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,offset:new Xe.Vector3(...n.offset)}}function ZS(n,t){return{...Ar(n),positioning:n.positioning,colors:n.colors.map(e=>new Xe.Vector4(e[0],e[1],e[2],e[3])),num:n.colors.length,steps:n.steps,source:new Xe.Vector3(...n.source),isWorldSpace:n.isWorldSpace,noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,shadowColor:st(n.shadowColor,t),offset:new Xe.Vector3(...n.offset)}}function JS(n,t){return{...Ar(n),outlineColor:st(n.outlineColor,t),contourColor:st(n.contourColor,t),outlineWidth:n.outlineWidth,contourWidth:n.contourWidth,outlineThreshold:n.outlineThreshold,contourThreshold:n.contourThreshold,outlineSmoothing:n.outlineSmoothing,contourFrequency:n.contourFrequency,contourDirection:n.contourDirection,positionalLines:n.positionalLines,compensation:n.compensation}}function ew(n,t){return{...Ar(n),thickness:n.thickness,ior:n.ior,roughness:n.roughness}}var uo=class extends tt{};var bm=require("three");var vm=require("three");var vc=new Map,Ki={url:"head",time:0,data:null,next:null,prev:null},zn={url:"tail",time:1/0,data:null,next:null,prev:null};Ki.next=zn;zn.prev=Ki;var ym=0;function xm(n){if(typeof n=="string")return n;let t=Date.now(),e=vc.get(n);return e===void 0?(e={url:URL.createObjectURL(new Blob([n])),data:n,time:t,next:null,prev:null},vc.set(n,e)):(e.time=t,e.prev.next=e.next,e.next.prev=e.prev),e.prev=zn.prev,e.next=zn,zn.prev.next=e,zn.prev=e,t-ym>1e3*10&&(ym=t+1e3,setTimeout(()=>{let r=Date.now(),o=Ki.next;for(;o.time<r-1e3*10;)URL.revokeObjectURL(o.url),vc.delete(o.data),o=o.next,o.prev=Ki,Ki.next=o},900)),e.url}var Un=class{constructor(t,e){this.data=t;this.onImageLoad=e;this.loaded=!1;this.updateSrc(t.data)}updateSrc(t){typeof document>"u"||(this.dispose(),this.loaded=!1,this.img=new Image,this.img.src=xm(t),this.img.onload=()=>{this.loaded=!0;let e=[1e3,1001,1002];for(let r of e){let o=this[r];o&&(o.image=this.img,o.needsUpdate=!0)}this.onImageLoad&&this.onImageLoad()})}getTexture(t){let e=this[t];if(e)return e;{let r=new vm.Texture(this.img,void 0,t,t);return this.loaded&&(r.needsUpdate=!0),this[t]=r,r}}dispose(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}};1e3,1001,1002;var Bo=class extends Un{};var po=class extends Ee{};var bc={noise:["noiseType"],texture:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},Sc={depth:["colors"]};function tw(n,t,e){let r=bc[n.type],o=Sc[n.type];if(o!==void 0){let i=n.color;if(o.includes(t)){let s=i[t]?.value?.length;if(s!==void 0&&s!==e.length)return!0}}return r!==void 0?r.includes(t):!1}function wc(n,t,e){let r=e.uniforms[`f${e.id}_texture`];if(!r)return!1;let o=!1,i=n;if("image"in i){let s=i.image,l=t.image(s),c=r;c instanceof Bo||c.image.dispose(),c.image=l}if("wrapping"in i){let s=r;s.wrap=i.wrapping}if("repeat"in i||"offset"in i){let s="mat",l=e.uniforms[`f${e.id}_${s}`];"repeat"in i&&(l.repeat=i.repeat),"offset"in i&&(l.offset=i.offset),l.updateMatrix()}return o}function Sm(n,t,e,r){let o=!1;for(let[i,s]of Object.entries(n)){if(!i||s===void 0||_c(i,e,r))continue;e.visible=r.visible;let l=e.uniforms[`f${e.id}_${i}`];if(!!l&&!(l instanceof po))switch(o=o||tw(e,i,s),l.constructor){case Ie:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof uo?l.value=new tt(c.r,c.g,c.b,c.a):l.setRGBA(c);break}case Xt:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof uo?l.value=new tt(c.r,c.g,c.b,c.a):l.value.setRGBA(c.r,c.g,c.b,c.a);break}case lt:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]);break}case ft:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]),l.value.setZ(c[2]);break}case Ot:{wc(s,t,e);break}case nr:{l.value=s.map(c=>new bm.Vector4(...c));break}default:{l.value=s;break}}}return o}var Tc=class extends le{constructor(e,r,o){super("v3");this.nodeType="Matcap";this.texture=e,this.alpha=r,this.mode=o,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(Tc.Nodes.matcap);e.require("normal"),e.requires.normal=!0;let i=[];return i.push(this.texture.generate(e,"t")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("MatcapNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Qi=Tc;Qi.Nodes=function(){return{matcap:new $(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
1087
1087
  vec3 viewDir = normalize( vViewPosition );
1088
1088
  vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
1089
1089
  vec3 y = cross( viewDir, x );
@@ -1095,14 +1095,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1095
1095
 
1096
1096
  return matcapColor.rgb;
1097
1097
  }
1098
- `)}}();var $a=class extends Wn{constructor(e,n){super("t");this.image=e;this.wrap=n}get value(){return this.image.getTexture(this.wrap)}};var Lg=require("three");var Xl=class extends Wn{constructor(e){super("v3");this.image=e;this._value=new Lg.Vector3}get value(){return this._value.x=this.image.img.width,this._value.y=this.image.img.height,this._value}};var Ku=class extends he{constructor(e,n,o,i,a,s,l,u,c,p){super("v3");this.nodeType="Toon";this.positioning=e,this.colors=n,this.steps=o,this.source=i,this.isWorldSpace=a,this.noiseStrength=s,this.noiseScale=l,this.shadowColor=u,this.offset=c,this.alpha=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.require("worldNormal"),e.require("worldPosition"),e.isShader("fragment")){e.define("COLORS_MAX",10),e.addFragmentVariable(this.calpha,"float");let o=e.include(Ku.Nodes.toon),i=[];return i.push(this.positioning.build(e,"i")),i.push(this.colors.build(e,"v4[]")),i.push(this.steps.build(e,"f[]")),i.push(this.source.build(e,"v3")),i.push(this.isWorldSpace.build(e,"b")),i.push(this.noiseStrength.build(e,"f")),i.push(this.noiseScale.build(e,"f")),i.push(this.shadowColor.build(e,"v4")),i.push(this.offset.build(e,"v3")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("ToonNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},Ka=Ku;Ka.Nodes=function(){let e=new Z(`float rand(float n) {
1098
+ `)}}();var Zi=class extends po{constructor(e,r){super("t");this.image=e;this.wrap=r}get value(){return this.image.getTexture(this.wrap)}};var wm=require("three");var Va=class extends po{constructor(e){super("v3");this.image=e;this._value=new wm.Vector3}get value(){return this._value.x=this.image.img.width,this._value.y=this.image.img.height,this._value}};var Ac=class extends le{constructor(e,r,o,i,s,l,c,p,a,u){super("v3");this.nodeType="Toon";this.positioning=e,this.colors=r,this.steps=o,this.source=i,this.isWorldSpace=s,this.noiseStrength=l,this.noiseScale=c,this.shadowColor=p,this.offset=a,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("worldNormal"),e.require("worldPosition"),e.isShader("fragment")){e.define("COLORS_MAX",10),e.addFragmentVariable(this.calpha,"float");let o=e.include(Ac.Nodes.toon),i=[];return i.push(this.positioning.build(e,"i")),i.push(this.colors.build(e,"v4[]")),i.push(this.steps.build(e,"f[]")),i.push(this.source.build(e,"v3")),i.push(this.isWorldSpace.build(e,"b")),i.push(this.noiseStrength.build(e,"f")),i.push(this.noiseScale.build(e,"f")),i.push(this.shadowColor.build(e,"v4")),i.push(this.offset.build(e,"v3")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("ToonNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Ji=Ac;Ji.Nodes=function(){let e=new $(`float rand(float n) {
1099
1099
  return fract(sin(n) * 43758.5453123);
1100
- }`),n=new Z(`float hash1(float p) {
1100
+ }`),r=new $(`float hash1(float p) {
1101
1101
  p = fract(p * 0.011);
1102
1102
  p *= p + 7.5;
1103
1103
  p *= p + p;
1104
1104
  return fract(p);
1105
- }`),o=new Z(`float valueNoise(vec3 x) {
1105
+ }`),o=new $(`float valueNoise(vec3 x) {
1106
1106
  const vec3 step = vec3(110, 241, 171);
1107
1107
 
1108
1108
  vec3 i = floor(x);
@@ -1117,13 +1117,13 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1117
1117
  mix( hash1(n + dot(step, vec3(0, 1, 0))), hash1(n + dot(step, vec3(1, 1, 0))), u.x), u.y),
1118
1118
  mix(mix( hash1(n + dot(step, vec3(0, 0, 1))), hash1(n + dot(step, vec3(1, 0, 1))), u.x),
1119
1119
  mix( hash1(n + dot(step, vec3(0, 1, 1))), hash1(n + dot(step, vec3(1, 1, 1))), u.x), u.y), u.z);
1120
- }`,[n]),i=new Z(`vec3 hash3(vec3 x) {
1120
+ }`,[r]),i=new $(`vec3 hash3(vec3 x) {
1121
1121
  x = vec3(dot(x,vec3(127.1, 311.7, 74.7)),
1122
1122
  dot(x,vec3(269.5, 183.3, 246.1)),
1123
1123
  dot(x,vec3(113.5, 271.9, 124.6)));
1124
1124
 
1125
1125
  return fract(sin(x)*43758.5453123);
1126
- }`),a=new Z(`vec3 voronoiNoise(in vec3 x)
1126
+ }`),s=new $(`vec3 voronoiNoise(in vec3 x)
1127
1127
  {
1128
1128
  vec3 p = floor(x);
1129
1129
  vec3 f = fract(x);
@@ -1154,7 +1154,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1154
1154
 
1155
1155
  return vec3(sqrt(res), abs(id));
1156
1156
  }
1157
- `,[i]);return{toon:new Z(`vec3 toon(int positioning, vec4 colors[COLORS_MAX], float steps[COLORS_MAX], vec3 source, bool isWorldSpace, float noiseStrength, float noiseScale, vec4 shadowColor, vec3 offset, float alpha, out float calpha) {
1157
+ `,[i]);return{toon:new $(`vec3 toon(int positioning, vec4 colors[COLORS_MAX], float steps[COLORS_MAX], vec3 source, bool isWorldSpace, float noiseStrength, float noiseScale, vec4 shadowColor, vec3 offset, float alpha, out float calpha) {
1158
1158
  float t = 0.0;
1159
1159
  float shadow = 1.0;
1160
1160
 
@@ -1331,7 +1331,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1331
1331
 
1332
1332
  return color.xyz;
1333
1333
 
1334
- }`,[Nt.simplex,e,o,a])}}();var Pg=require("three");function Ng(r,t,e){r.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var Yl=class extends Oi{constructor(e,n){super(new Pg.Matrix3);this.repeat=e;this.offset=n;Ng(this.value,e,n)}updateMatrix(){Ng(this.value,this.repeat,this.offset)}};var Zr=class{constructor(t,e,n,o){this.id=t;this.uuid=e;this.data=n;this.uniforms={};for(let i in o)this.uniforms[`f${this.id}_${i}`]=o[i];for(let i in n)Yu(i,this,n)}get type(){return this.data.type}static create(t,e,n,o){if(n.type==="light")return Qr.createLigherLayer(t,e,n,o);if(n.type==="texture"){let i=o.image(n.texture.image),a=new $a(i,n.texture.wrapping),s=new Xl(i),l=new Yl(n.texture.repeat,n.texture.offset),u=new J(n.crop?1:0),c=new _e(n.projection??0),p=new _e(["x","y","z"].indexOf(n.axis)??0),f=new _e(n.side??0),d=new bt(n.size?new je.Vector2(n.size[0],n.size[1]):new je.Vector2(100,100)),h=new J(n.alpha??1),m=new _e(n.mode??0),g=new Ga(a,s,u,c,p,f,d,l,h,m),v=new Me(g.calpha,"f");return new dt(t,e,n,{texture:a,textureSize:s,crop:u,projection:c,axis:p,side:f,size:d,mat:l,alpha:h,mode:m},g,m,v)}else if(n.type==="matcap"){let i=o.image(n.texture.image),a=new $a(i,n.texture.wrapping),s=new J(n.alpha??1),l=new _e(n.mode??0),u=new Ya(a,s,l),c=new Me(u.calpha,"f");return new dt(t,e,n,{texture:a,alpha:s,mode:l},u,l,c)}else if(n.type==="displace")if(n.displacementType==="noise"){let i=new _t(new je.Vector3(...n.offset)),a=new J(n.scale??10),s=new J(n.intensity??8),l=new J(n.movement??1),u=new _e(n.noiseType??0),c=new Ra(s,l,i,a,u);return new Za(t,e,n,{offset:i,scale:a,intensity:s,movement:l,noiseType:u},c)}else throw new Error;else return ZC(t,e,n,o)}updateByOp(t,e,n){let o=t;if(o.path[0]===void 0){if(o.type===0)return"type"in o.props||"category"in o.props?!0:Ig(o.props,n,this,e)}else if(o.path[0]==="texture")return"texture"in e?Xu(o.props,n,this):!0;return!1}dispose(){}hasValueByKey(t){return this.uniforms[t]!==void 0}hasValue(t){return this.hasValueByKey(`f${this.id}_${t}`)}setValue(t,e){let n=`f${this.id}_${t}`;this.hasValueByKey(n)&&e!==void 0&&(this.uniforms[n].value=e)}getNode(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e]}getValue(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e].value}getName(t){let n=/f\d+_(.*)/.exec(t);if(n&&n.length>1)return n[1];console.log(`Layer.getName: error ${t}`)}getNames(){let t=[];for(let e in this.uniforms){let n=this.getName(e);n&&t.push(n)}return t}},dt=class extends Zr{constructor(e,n,o,i,a,s,l){super(e,n,o,i);this.color=a;this.mode=s;this.alpha=l}},Za=class extends Zr{constructor(e,n,o,i,a){super(e,n,o,i);this.position=a}},Qr=class extends Zr{constructor(e,n,o,i,a){super(e,n,o,a);this.data=o;this.node=i}static createLigherLayer(e,n,o,i){let a,s=new J(o.alpha),l=new _e(o.mode),u;if(o.category==="lambert"){a=new ja;let c=new De(i.color(o.emissive)??0);u={emissive:c},a.emissive=c}else if(o.category==="phong"){a=new ql;let c=new J(o.shininess??30),p=new De(i.color(o.specular)??1118481);u={shininess:c,specular:p},a.shininess=c,a.specular=p}else if(o.category==="toon"){a=new qa;let c=new J(o.shininess??30),p=new De(i.color(o.specular)??1118481);u={shininess:c,specular:p},a.shininess=c,a.specular=p}else if(o.category==="physical"){a=new Ha;let c=new J(o.roughness??.3),p=new J(o.metalness??0),f=new J(o.reflectivity??.5);u={roughness:c,metalness:p,reflectivity:f},a.roughness=c,a.metalness=p,a.reflectivity=f}else a=new bo,u={};return a.alpha=new J(1),a.shadingAlpha=s,a.shadingBlend=l,u.alpha=a.shadingAlpha,u.mode=a.shadingBlend,new Qr(e,n,o,a,u)}};function Mg(r){let t=r instanceof Zr?r.type:r;return t==="texture"||t==="displace_map"||t==="matcap"}function KC(r,t,e,n){switch(r.type){case"color":{let o=new De(n.color??5855577),i=new J(n.alpha??1),a=new Me("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");a.keywords.alpha=i;let s=new _e(n.mode??0);return o.alpha=i,new dt(t,e,r,{color:o,alpha:i,mode:s},o,s,a)}case"fresnel":{let o=new De(n.color??16777215),i=new J(n.bias??.1),a=new J(n.scale??1),s=new J(n.intensity??2),l=new J(n.factor??1),u=new J(n.alpha??1),c=new _e(n.mode??0),p=new Pa(o,i,a,s,l,u,c),f=new Me(p.calpha,"f");return new dt(t,e,r,{color:o,bias:i,scale:a,intensity:s,factor:l,alpha:u,mode:c},p,c,f)}case"rainbow":{let o=new J(n.filmThickness??30),i=new J(n.movement??0),a=new _t(n.wavelengths??new je.Vector3(0,0,0)),s=new J(n.noiseStrength??0),l=new J(n.noiseScale??1),u=new _t(n.offset??new je.Vector3(0,0,0)),c=new J(n.alpha??1),p=new Ma(o,i,a,s,l,u,c),f=new Me(p.calpha,"f"),d=new _e(n.mode??0);return new dt(t,e,r,{filmThickness:o,movement:i,wavelengths:a,noiseStrength:s,noiseScale:l,offset:u,alpha:c,mode:d},p,d,f)}case"transmission":{let o=new J(n.thickness??10),i=new J(n.ior??1.5),a=new J(n.roughness??.5),s=Ot.transmissionSize,l=Ot.transmissionRenderTarget,u=Ot.transmissionRenderTargetDepth,c=window.innerWidth,p=window.innerHeight,f=c>=p?new bt(p/c,1):new bt(1,c/p),d=new J(n.alpha??1),h=new Da(o,i,a,s,l,u,f,d),m=new Me(h.calpha,"f"),g=new _e(n.mode??0);return new dt(t,e,r,{thickness:o,ior:i,roughness:a,aspectRatio:f,alpha:d,mode:g},h,g,m)}case"toon":{let o=new _e(n.positioning??0),i;n.colors?i=new wr(n.colors.length,n.colors):(i=new wr(10,new je.Vector4(0,0,0,1)),i.value[1]=new je.Vector4(1,1,1,1));let a;n.steps?a=new Sr(n.steps.length,n.steps):(a=new Sr(10,1),a.value[0]=0);let s=new _t(n.source??new je.Vector3(0,0,0)),l=new jn(n.isWorldSpace??!0),u=new J(n.noiseStrength??0),c=new J(n.noiseScale??1),p=new pr(n.shadowColor),f=new _t(n.offset??new je.Vector3(0,0,0)),d=new J(n.alpha??1),h=new Ka(o,i,a,s,l,u,c,p,f,d),m=new Me(h.calpha,"f"),g=new _e(n.mode??0);return new dt(t,e,r,{positioning:o,colors:i,steps:a,source:s,isWorldSpace:l,noiseStrength:u,noiseScale:c,shadowColor:p,offset:f,alpha:d,mode:g},h,g,m)}case"outline":{let o=new De(n.outlineColor??16777215),i=new De(n.contourColor??16777215),a=new J(n.outlineWidth??.1),s=new J(n.contourWidth??.1),l=new J(n.outlineThreshold??.1),u=new J(n.contourThreshold??.1),c=new J(n.outlineSmoothing??.1),p=new J(n.contourFrequency??.1),f=new _t(n.contourDirections??new je.Vector3(0,1,0)),d=new jn(n.positionalLines??!1),h=new jn(n.compensation??!0),m=Ot.normalRenderTarget,g=Ot.normalRenderTargetDepth,v=Ot.pixelRatioNode,x=Ot.resolution,b=new J(n.alpha??1),w=new Ea(o,i,a,s,l,u,c,p,f,d,h,x,m,g,v,b),S=new Me(w.calpha,"f"),_=new _e(n.mode??0);return new dt(t,e,r,{outlineColor:o,contourColor:i,outlineWidth:a,contourWidth:s,outlineThreshold:l,contourThreshold:u,outlineSmoothing:c,contourFrequency:p,contourDirection:f,positionalLines:d,compensation:h,alpha:b,mode:_},w,_,S)}case"depth":{let o=new _e(n.gradientType??0),i=new jn(n.smooth??!1),a=new J(n.near??50),s=new J(n.far??200),l=new J(n.isVector??1),u=new J(n.isWorldSpace??0),c=new _t(n.origin??new je.Vector3),p=new _t(n.direction??new je.Vector3),f;n.colors?f=new wr(n.colors.length,n.colors):(f=new wr(2,new je.Vector4(0,0,0,1)),f.value[1]=new je.Vector4(1,1,1,1));let d;n.steps?d=new Sr(n.steps.length,n.steps):(d=new Sr(2,1),d.value[0]=0);let h=new J(n.alpha??1),m=new _e(n.mode??0),g=new Ba(o,i,a,s,l,u,c,p,f,d,h),v=new Me(g.calpha,"f");return new dt(t,e,r,{gradientType:o,smooth:i,near:a,far:s,isVector:l,isWorldSpace:u,origin:c,direction:p,colors:f,steps:d,alpha:h,mode:m},g,m,v)}case"noise":{let o=new J(n.scale??1),i=new _t(n.size??new je.Vector3(100,100,100)),a=new J(n.move??1),s=new bt(n.fA??new je.Vector2(1.7,9.2)),l=new bt(n.fB??new je.Vector2(8.3,2.8)),u=new bt(n.distortion??new je.Vector2(1,1)),c=new pr(n.colorA),p=new pr(n.colorB),f=new pr(n.colorC),d=new pr(n.colorD),h=new J(n.alpha??1),m=new _e(n.mode??0),g=new _e(n.noiseType??0),v=new La(o,i,a,s,l,u,c,p,f,d,h,g),x=new Me(v.calpha,"f");return new dt(t,e,r,{scale:o,size:i,move:a,fA:s,fB:l,distortion:u,colorA:c,colorB:p,colorC:f,colorD:d,alpha:h,mode:m,noiseType:g},v,m,x)}case"normal":{let o=new _t(n.cnormal??new je.Vector3(1,1,1)),i=new J(n.alpha??1),a=new _e(n.mode??0),s=new Va(o,i),l=new Me("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return l.keywords.alpha=i,new dt(t,e,r,{cnormal:o,alpha:i,mode:a},s,a,l)}case"gradient":{let o=new _e(n.gradientType??0),i=new jn(n.smooth??!1),a;n.colors?a=new wr(n.colors.length,n.colors):(a=new wr(10,new je.Vector4(0,0,0,1)),a.value[1]=new je.Vector4(1,1,1,1));let s;n.steps?s=new Sr(n.steps.length,n.steps):(s=new Sr(10,1),s.value[0]=0);let l=new bt(n.offset??new je.Vector2(0,0)),u=new bt(n.morph??new je.Vector2(0,0)),c=new J(n.angle??0),p=new J(n.alpha??1),f=new _e(n.mode??0),d=new ka(o,i,a,s,l,u,c,p),h=new Me(d.calpha,"f");return new dt(t,e,r,{gradientType:o,smooth:i,colors:a,steps:s,offset:l,morph:u,angle:c,alpha:p,mode:f},d,f,h)}default:{let o=new De(1,0,0,1),i=new J(1),a=new Me("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");a.keywords.alpha=i;let s=new _e(0);return o.alpha=i,new dt(t,e,r,{color:o,alpha:i,mode:s},o,s,a)}}}function ZC(r,t,e,n){let o=Tg(e,n);return KC(e,r,t,o)}function Yu(r,t,e){if(e.type==="displace"&&(r==="intensity"||r==="visible")){let n=t.uniforms[`f${t.id}_intensity`];return n?(n.value=e.intensity*(e.visible?1:0),n):void 0}if(e.type!=="displace"&&(r==="alpha"||r==="visible")){let n=t.uniforms[`f${t.id}_alpha`];if(!n)return;if(n.value=e.alpha*(e.visible?1:0),e.type==="outline"&&r=="visible"){let o=t.uniforms[`f${t.id}_compensation`];o&&(o.value=e.compensation&&e.visible)}return n}}var Jt=class extends $l.ShaderMaterial{constructor(e,n){super(void 0);this.data=e;this.layerIdGen=0;this.type="NodeMaterial";this.uniformsBackup={};this.fog=!0,this.updaters=[],this.dithering=!0,this.vertexColors=!0,this.onBeforeCompile=this._onBeforeCompile,this.transparent=!0,this.reset(e,n)}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.data.category}reset(e,n){let o=e.layers??Zt.defaultTwoLayerData("phong").layers;this.layers=o.map(i=>Zr.create(this.layerIdGen++,i.id,i.data,n)),this.layers.reverse(),this.name=e.name??"Untitled Material",this.onUpdate(n)}getLayersOfType(e){return this.layers.filter(n=>n.type===e)}getLayerByUuid(e){return this.layers.find(n=>n.uuid===e)}onUpdate(e){this.lightLayer=this.layers.find(n=>n instanceof Qr),this.lightLayer===void 0&&(this.lightLayer=new Qr(0,"",In.defaultData("light","basic"),new bo,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(e,n,o){if(this.data=n,e.path[0]==="layers"){let i=e.path[1];if(i===void 0){if(this.layers.reverse(),e.type===4){let a=Zr.create(this.layerIdGen++,e.id,e.data,o);this.layers.splice(e.localIndex,0,a)}else if(e.type===5)this.layers.splice(e.localIndex,1)[0].dispose();else if(e.type===6){let a=this.layers.findIndex(l=>l.uuid===e.id),s=this.layers[a];this.layers.splice(a,1),this.layers.splice(e.localIndex,0,s)}this.layers.reverse(),this.onUpdate(o)}else{let a=this.layers.find(s=>s.uuid===i);if(a){let s=n.layers.data(i);if(a.updateByOp({...e,path:e.path.slice(2)},s,o)){let u=Zr.create(this.layerIdGen++,i,s,o);this.layers.splice(this.layers.findIndex(c=>c.uuid===i),1,u),this.onUpdate(o)}}}}}blendColors(){let e=this.layers.findIndex(o=>o instanceof dt),n=this.layers.findIndex(o=>o instanceof Qr);if(e!==-1&&e<n){let o=this.layers[e].color;for(let i=e+1;i<n;++i){let a=this.layers[i];a instanceof dt&&(o=new Fa(o,a.color,a.alpha,a.mode))}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new Me("outgoingLight","f"),n=this.layers.findIndex(o=>o instanceof Qr);if(this.layers.length>n+1){for(let o=n+1;o<this.layers.length;++o){let i=this.layers[o];i instanceof dt&&(e=new Fa(e,i.color,i.alpha,i.mode))}this.fragment.afterColor=e}else this.fragment.afterColor=void 0}blendPositions(){let e=this.layers.filter(n=>n instanceof Za);if(e.length>0){let n=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(n=new Ht(n,e[o].position,Ht.ADD),n=new Ht(n,new J(.5).setReadonly(!0),Ht.MUL));this.fragment.position=n}else this.fragment.position=void 0}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}_onBeforeCompile(e,n){this.build({renderer:n}),e.defines=this.defines,e.uniforms=this.uniforms,e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.extensionDerivatives=this.extensions.derivatives===!0,e.extensionFragDepth=this.extensions.fragDepth===!0,e.extensionDrawBuffers=this.extensions.drawBuffers===!0,e.extensionShaderTextureLOD=this.extensions.shaderTextureLOD===!0}clampUniformsForPreview(e,n){let o=(i,a,s)=>Math.min(Math.max(i,a),s);for(let i of this.layers)if(i.type==="displace"){this.uniformsBackup[`f${i.id}_intensity`]=i.uniforms[`f${i.id}_intensity`].value;let a=o(i.uniforms[`f${i.id}_intensity`].value,e,n);i.uniforms[`f${i.id}_intensity`].value=a}}restoreClampedUniforms(){for(let e of this.layers)e.type==="displace"&&(e.uniforms[`f${e.id}_intensity`].value=this.uniformsBackup[`f${e.id}_intensity`])}customProgramCacheKey(){let e="[";for(let{data:n}of this.data.layers)if(n.type==="light")e+=`"${n.category.toUpperCase()}",`;else{let o=(Wu[n.type]??[]).map(s=>n[s]),i=(qu[n.type]??[]).map(s=>n[s]?.length??0),a=[...o,...i];a.length?e+=`["${n.type}", "${a.join('","')}"],`:e+=`"${n.type}",`}return e=e.slice(0,-1)+"]",e}updateFrame(e){for(let n=0;n<this.updaters.length;++n)e.updateNode(this.updaters[n])}build(e){e=e??{};let n=e.builder??new Hl;return this.lights=this.lightLayer.data.category!=="basic",n.setMaterial(this,e.renderer),n.build(this.fragment,this.fragment),this.vertexShader=n.getCode("vertex"),this.fragmentShader=n.getCode("fragment"),this.defines=n.defines,this.uniforms=n.uniforms,this.extensions=n.extensions,this.updaters=n.updaters,this.transparent=n.requires.transparent||this.blending>$l.NormalBlending,this}dispose(){this.layers.forEach(e=>e.dispose()),super.dispose()}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(Jt.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(r){r===!0&&this.version++,this.needsCompile=r},get:function(){return this.needsCompile}}});var er=require("three");function QC(r){if(r.geometry.attributes.extrudeNormal||!r.geometry.attributes.position)return;let t=new Map,e=r.geometry.attributes.position.array,n=r.geometry.attributes.normal.array,o=new Float32Array(e.length);for(let i=0;i<e.length;i+=3){let a=`${e[i]}_${e[i+1]}_${e[i+2]}`,s=new er.Vector3(n[i],n[i+1],n[i+2]);t.has(a)?t.get(a)?.normals.push(s):t.set(a,{normals:[s],result:new er.Vector3})}t.forEach((i,a)=>{for(let s of i.normals)i.result.add(s);i.result.divideScalar(i.normals.length)});for(let i=0;i<e.length;i+=3){let a=`${e[i]}_${e[i+1]}_${e[i+2]}`,s=t.get(a)?.result;s&&(o[i]=s.x,o[i+1]=s.y,o[i+2]=s.z)}r.geometry.setAttribute("extrudeNormal",new er.Float32BufferAttribute(o,3))}function JC(r){if(r.geometry.attributes.extrudeNormals||!r.geometry.attributes.position)return;let t=r.geometry.attributes.position.array,e=new Float32Array(t.length),n=new er.Vector3;for(let o=0;o<t.length;o+=3)n.set(t[o],t[o+1],t[o+2]).normalize(),e[o]=n.x,e[o+1]=n.y,e[o+2]=n.z;r.geometry.setAttribute("extrudeNormal",new er.Float32BufferAttribute(e,3))}function Jr(r){if(Array.isArray(r.material)){for(let t of r.material)if(t.getLayersOfType("outline").length===0)return}else if(!(r.material instanceof Jt)||r.material.getLayersOfType("outline").length===0)return;r.objectType==="Mesh2D"||r.objectType==="TextFrame"&&r.data?.geometry?.depth===0?JC(r):QC(r)}function en(r){if(!r.geometry.attributes.position)return;let t=r.geometry.attributes.position.array,e=new Float32Array(t.length),n=parseInt(r.uuid.replace(/\D/g,"")),o=[er.MathUtils.seededRandom(n),er.MathUtils.seededRandom(n+1e4),er.MathUtils.seededRandom(n+2e4)];for(let i=0;i<t.length;i++)e[i]=o[i%3];r.geometry.setAttribute("randomColor",new er.BufferAttribute(e,3))}var wt=class extends ur(Kl.Mesh){constructor(e,n){super(e,n);this.isAbstractMesh=!0;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new Kl.Matrix4;this.booleanExclude=null;Array.isArray(n)&&e.groups.length===0&&e.addGroup(0,Math.max(e.getIndex()?.count??0,e.getAttribute("position").count),0)}get isGroup(){return this._cloner?.parameters.hideBase===!0}get isMesh(){return!this.isGroup}set isMesh(e){}get cloner(){return this._cloner}set cloner(e){this._cloner&&this.remove(this._cloner),e&&this.add(e),this._cloner=e}updateGeometry(e,n){let o=this.geometry,i=_u[o.userData.type],a=this.objectType==="NonParametric"?Object.assign({},o.userData,{geometry:o}):o.userData,s=i.build(i.normalizeInputs(e,a)),l=o.uuid;this.geometry.dispose(),this.geometry=s,this.geometry.uuid=l,this.geometry.computeBoundingSphere(),Jr(this),o.getAttribute("randomColor")&&en(this)}clone(e){let n=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,o=Ta(n),i=this.material;return new this.constructor(o,i).copy(this,e)}copy(e,n=!0){return super.copy(e,n),e.cloner&&(this.cloner=new fo(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new fo(this)),this.cloner.fromClonerState(e))}fromState(e,n){return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=e.castShadow??!0,this.receiveShadow=e.receiveShadow??!0,this.booleanExclude=e.booleanExclude??null),this}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(yr.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),Hr(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)jr(e)&&(e.freeBooleanPointer(),Hr(e)&&e.invalidateUpstreamBooleanData())}};var eA=new qn.Vector3(0,0,1),Eg=new qn.Vector3,Dg=new qn.Vector3,Bg=new qn.Matrix3,Mi=class extends wt{constructor(e=At.create({}),n){super(e,n);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new qn.EventDispatcher;this._onShapeUpdate=()=>{this.updateGeometry({}),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e,n){if(super.updateGeometry(e,n),"userData"in this.geometry){let o=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:o})}}setShape(e){this.shape&&this.shape.eventDispatcher?.removeEventListener("update",this._onShapeUpdate),this.shape=e,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(e,n){super.updateWorldMatrix(e,n),Bg.getNormalMatrix(this.matrixWorld),Eg.copy(eA).applyMatrix3(Bg).normalize(),Dg.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(Eg,Dg)}clone(e){let n=this.shape.clone(),o=this.material,i=this.geometry.userData,a=At.create(Object.assign({},i,{shape:n})),s=new Mi(a,o).copy(this,e);return s.shape=n,n.update(),s}raycast(e,n){wt.prototype.raycast.call(this,e,n)}};var tn=(r,t)=>class extends r{constructor(){super(...arguments);this.objectHelper=new t(this)}get geometryHelper(){return t.geometryHelper}raycast(o,i){this.objectHelper.raycast(o,i)}fromLightState(o,i){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let a=this;o.color!==void 0&&(a.color=vt(o.color,i)),o.intensity!==void 0&&(a.intensity=o.intensity),o.depth!==void 0&&(a.shadow.camera.far=o.depth,a.shadow.needsUpdate=!0),o.shadows!==void 0&&(this.castShadow=o.shadows)}return this}};var Ei=new Ye.Vector3,Zu=new Ye.Vector3,yn=class extends tn(ur(Ye.Camera),Tl){constructor(e=window.innerWidth,n=window.innerHeight,o=45,i,a=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=so.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=n,this.orthoCamera=new Ye.OrthographicCamera(e*-.5,e*.5,n*.5,n*-.5,i??-5e4,a),this.perspCamera=new Ye.PerspectiveCamera(o,e/n,i??50,a),this.left=this.orthoCamera.left,this.right=this.orthoCamera.right,this.top=this.orthoCamera.top,this.bottom=this.orthoCamera.bottom,this.far=this.orthoCamera.far,this.view=this.orthoCamera.view,this.aspect=this.perspCamera.aspect,this.fov=this.perspCamera.fov,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.toOrthographic()}static createFromState(e,n){let o=new yn().fromState(n);return o.objectHelper.update(),o.uuid=e,o}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}setNear(e,n){e==="PerspectiveCamera"?this.perspCamera.near=n:this.orthoCamera.near=n}setZoom(e,n){n>=0&&(e==="PerspectiveCamera"?this.perspCamera.zoom=n:this.orthoCamera.zoom=n)}set cameraType(e){e==="PerspectiveCamera"?this.toPerspective():e==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(e){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=e:this.orthoCamera.near=e}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(e){e>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=e:this.orthoCamera.zoom=e)}lookAt(e){super.lookAt(e),this.getWorldPosition(Ei),this.targetOffset=Ei.distanceTo(e)}getTarget(e=new Ye.Vector3){return this.getWorldDirection(Zu),this.getWorldPosition(Ei),Zu.multiplyScalar(this.targetOffset),e.copy(Ei).add(Zu),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(Ei),Ei.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new Ye.Quaternion),n=new Ye.Vector3(0,0,1).applyQuaternion(e),o=new Ye.Vector3().copy(Ye.Object3D.DefaultUp);this.isUpVectorFlipped&&o.negate(),o.applyQuaternion(e);let i=new Ye.Vector3().copy(Ye.Object3D.DefaultUp).projectOnPlane(n),a=new Ye.Vector3().crossVectors(i,o).dot(n)>=0?1:-1;this.angleOffsetFromUp=i.angleTo(o)*a}getViewFrontToObject(e){let n=e.getWorldPosition(new Ye.Vector3),i=e.getWorldDirection(new Ye.Vector3).multiplyScalar(this.targetOffset);return{position:n.clone().add(i),target:n}}getViewToObject(e){let n=e.getWorldPosition(new Ye.Vector3),i=this.getWorldDirection(new Ye.Vector3).multiplyScalar(this.targetOffset);return{position:n.clone().sub(i),target:n}}setViewplaneSize(e,n){this.left=-e*.5,this.right=e*.5,this.top=n*.5,this.bottom=-n*.5,this.aspect=e/n,this.updateProjectionMatrix()}toOrthographic(){this.orthoCamera.left=this.left,this.orthoCamera.right=this.right,this.orthoCamera.top=this.top,this.orthoCamera.bottom=this.bottom,this.orthoCamera.view=this.view,this.orthoCamera.far=this.far,this.orthoCamera.updateProjectionMatrix(),this.projectionMatrix=this.orthoCamera.projectionMatrix,this.projectionMatrixInverse=this.orthoCamera.projectionMatrixInverse,this._cameraType="OrthographicCamera",this.objectHelper&&this.objectHelper.update()}toPerspective(){this.perspCamera.aspect=this.aspect,this.perspCamera.fov=this.fov,this.perspCamera.view=this.view,this.perspCamera.far=this.far,this.perspCamera.updateProjectionMatrix(),this.projectionMatrix=this.perspCamera.projectionMatrix,this.projectionMatrixInverse=this.perspCamera.projectionMatrixInverse,this._cameraType="PerspectiveCamera",this.objectHelper&&this.objectHelper.update()}setFocalLength(e){this.perspCamera.setFocalLength(e),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(e,n,o,i,a,s){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,n,o,i,a,s):this.orthoCamera.setViewOffset(e,n,o,i,a,s)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}updateProjectionMatrix(){this._cameraType==="PerspectiveCamera"?this.toPerspective():this._cameraType==="OrthographicCamera"&&this.toOrthographic()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,n){super.updateWorldMatrix(e,n),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,n){return super.copy(e,n),this.orthoCamera.copy(e.orthoCamera),this.perspCamera.copy(e.perspCamera),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.far=e.far,this.view=e.view===null?null:Object.assign({},e.view),this._cameraType=e._cameraType,this.aspect=e.aspect,this.fov=e.fov,this.focus=e.focus,this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this.targetOffset=e.targetOffset,this.updateProjectionMatrix(),this}toCameraState(e=[]){let n={type:this.cameraType,far:this.far,orthographic:{near:this.orthoCamera.near,zoom:this.orthoCamera.zoom},perspective:{near:this.perspCamera.near,fov:this.perspCamera.fov,zoom:this.perspCamera.zoom},up:this.up.toArray(),targetOffset:this.targetOffset,isUpVectorFlipped:this.isUpVectorFlipped};return ni(n,e)}fromCameraState(e){let{orthographic:n,perspective:o}=e;return e.type!==void 0&&(this.cameraType=e.type),e.far!==void 0&&(this.far=e.far),n!==void 0&&(n.near!==void 0&&(this.orthoCamera.near=n.near),n.zoom!==void 0&&(this.orthoCamera.zoom=n.zoom)),o!==void 0&&(o.near!==void 0&&(this.perspCamera.near=o.near),o.fov!==void 0&&(this.perspCamera.fov=o.fov),o.zoom!==void 0&&(this.perspCamera.zoom=o.zoom)),e.type==="PerspectiveCamera"?(this.zoom=this.perspCamera.zoom,this.fov=this.perspCamera.fov,this.near=this.perspCamera.near):(this.near=this.orthoCamera.near,this.zoom=this.orthoCamera.zoom),e.up!==void 0&&this.up.fromArray(e.up),e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateProjectionMatrix(),this}toState(e){return{...super.toState(e),...this.toCameraState(e),type:this.cameraType}}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};var Qa=require("three");var Fg=new Qa.Matrix4;var Zl=class extends wt{constructor(e=new Qa.BufferGeometry,n){super(e,n);this.booleanOp=2;this.phongAngle=35;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.objectType="BooleanObject",this.castShadow=!0,this.receiveShadow=!0,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}reInit(){this.objectType="BooleanObject",this.meshSetAddresses=[],this.needsTransformForDownstream=!1,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}recomputeBoolean(e,n=!0){if(this.booleanMeshSetAddress!==-1)return;for(let i=0;i<this.children.length;i++){let a=this.children[i];Hr(a)&&a.recomputeBoolean(e===!0,n)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let a=this.children[i];if(hg(a)&&a.booleanExclude===!1&&a.geometry.attributes.position?.count>0&&a.geometry.drawRange.count>0){if(a.booleanMeshSetAddress===-1){if((a.geometry.index??a.geometry.getAttribute("position")).count/3<15e5&&(a.booleanMeshSetAddress=yr.getMeshSet(a.geometry,e===!0,n)),a.booleanMeshSetAddress===-1)return;yr.transformMeshSet(a.booleanMeshSetAddress,a.matrix),a.booleanMatrixInvOld.copy(a.matrix).invert(),a.booleanWasTransformed=!1}else Hr(a)&&a.needsTransformForDownstream===!0?(yr.transformMeshSet(a.booleanMeshSetAddress,a.matrix),a.needsTransformForDownstream=!1):a.booleanWasTransformed===!0&&(Fg.multiplyMatrices(a.matrix,a.booleanMatrixInvOld),yr.transformMeshSet(a.booleanMeshSetAddress,Fg),a.booleanMatrixInvOld.copy(a.matrix).invert(),a.booleanWasTransformed=!1);this.meshSetAddresses.push(a.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setDrawRange(0,0);return}if(e===!0)return yr.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let o=this.geometry;o.dispose(),this.geometry=new Qa.BufferGeometry,this.geometry.userData=o.userData,this.geometry.boundingSphere=o.boundingSphere;try{this.booleanMeshSetAddress=yr.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(i){this.booleanMeshSetAddress=0,console.error(i)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,Jr(this),en(this)}updateGeometry(e,n){let o=e.parameters;o.operation!==void 0&&(this.booleanOp=o.operation),o.phongAngle!==void 0&&(this.phongAngle=o.phongAngle),this.invalidateDownstreamBooleanData().recomputeBoolean()}};var Rg=require("three");var wo=class extends tn(ur(Rg.Group),si){constructor(){super(...arguments);this.objectType="EmptyObject"}static createFromState(e,n){let o=new wo().fromState(n);return o.uuid=e,o.objectHelper.update(),o}};var To=require("three");var Di=class extends tn(ur(To.DirectionalLight),ai){constructor(...e){super(...e);this.objectType="LightDirectional";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.top=1250,o.bottom=-1250,o.right=1250,o.left=-1250,o.near=-1e4,o.far=2500;let i=new To.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,n,o){let i=new Di().fromState(n,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof To.CameraHelper&&(n.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof To.CameraHelper&&(n.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let n=this._gizmos[e];n instanceof To.CameraHelper&&n.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromDirectionalLightState(e,n){let o=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;return super.fromLightState(e,n),e.size!==void 0&&pg(this,e.size),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),o&&this.update(),this}fromState(e,n){return super.fromState(e),this.fromDirectionalLightState(e,n),this}};var Pt=require("three");var Bi=class extends tn(ur(Pt.PointLight),li){constructor(...e){super(...e);this.objectType="LightPoint";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=90,o.aspect=1,o.near=100,o.far=2500;let i=new Pt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),a=new Pt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z),s=new Pt.Box3(i,a),l=new Pt.Box3Helper(s,new Pt.Color(16755200));l.visible=!1,this._gizmos.shadowmap=l,this.update()}static createFromState(e,n,o){let i=new Bi().fromState(n,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof Pt.Box3Helper&&(n.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof Pt.Box3Helper&&(n.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let n=this._gizmos[e];if(n instanceof Pt.Box3Helper){let o=this.shadow.camera,i=new Pt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),a=new Pt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z);n.box.set(i,a),n.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromPointLightState(e,n){return super.fromLightState(e,n),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,n){return super.fromState(e),this.fromPointLightState(e,n),this}};var qt=require("three");var kg=new qt.Vector3,Gg=new qt.Vector3,Ug=new qt.Quaternion,Fi=class extends tn(ur(qt.SpotLight),da){constructor(...e){super(...e);this.objectType="LightSpot";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=qt.MathUtils.RAD2DEG*2*this.angle,o.aspect=1,o.near=100,o.far=2500;let i=new qt.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,n,o){let i=new Fi().fromState(n,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof qt.CameraHelper&&(n.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof qt.CameraHelper&&(n.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let n=this._gizmos[e];n instanceof qt.CameraHelper&&n.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Gg.setFromMatrixPosition(this.matrixWorld),Ug.setFromRotationMatrix(this.matrixWorld),kg.copy(this.up).applyQuaternion(Ug).negate().multiplyScalar(this.distance),this.target.position.copy(Gg).add(kg),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}fromSpotLightState(e,n){return super.fromLightState(e,n),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.angle!==void 0&&(this.angle=e.angle),e.penumbra!==void 0&&(this.penumbra=e.penumbra),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,n){return super.fromState(e),this.fromSpotLightState(e,n),this}};var Vg=r=>r.tagName==="VIDEO",Ri=class{static resize(t,e,n){let o=t/e,i;if(!n.image)return;let a=n.image;Vg(a)?i=a.videoWidth/a.videoHeight:i=a.width/a.height,o>i&&(n.imageType=="WEBCAM"?n.repeat.set(-1,1*i/o):n.repeat.set(1,1*i/o)),o<i&&(n.imageType=="WEBCAM"?n.repeat.set(1*o/i*-1,1):n.repeat.set(1*o/i,1)),o==i&&(n.imageType=="WEBCAM"?n.repeat.set(-1,1):n.repeat.set(1,1))}static resizeTextureLayer(t,e,n){let o=t/e,i=n.image!==void 0?n.image.width/n.image.height:1,a;o>i?a={x:1,y:i/o}:o<i?a={x:o/i,y:1}:a={x:1,y:1},n.repeat.set(a.x,a.y),n.updateMatrix()}static resizeTextureLayers(t,e,n){let o=n.layers;for(let i=0;i<o.length;i++){let a=o[i];Mg(a)&&Ri.resizeTextureLayer(t,e,a.uniforms[`f${a.id}_texture`].value)}}static resizeComplex(t,e,n,o){let i=t/e,a,s=n.image;Vg(s)?a=s.videoWidth/s.videoHeight:a=s.width/s.height,o.geometry.type.includes("Shape")?(i>a&&(n.imageType=="WEBCAM"?n.repeat.set(1/t*-1,1/e*a/i):n.repeat.set(1/t,1/e*a/i)),i<a&&(n.imageType=="WEBCAM"?n.repeat.set(1/t*i/a*-1,1/e):n.repeat.set(1/t*i/a,1/e)),i==a&&(n.imageType=="WEBCAM"?n.repeat.set(1/t*-1,1/e):n.repeat.set(1/t,1/e))):(i>a&&(n.imageType=="WEBCAM"?n.repeat.set(-1,1*a/i):n.repeat.set(1,1*a/i)),i<a&&(n.imageType=="WEBCAM"?n.repeat.set(1*i/a*-1,1):n.repeat.set(1*i/a,1)),i==a&&(n.imageType=="WEBCAM"?n.repeat.set(-1,1):n.repeat.set(1,1)))}};var Ql=class extends wt{constructor(e,n){super(e,n);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e,n){super.updateGeometry(e,n),this.material.layers&&Ri.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var ki=class extends wt{constructor(e,n){super(e,n);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var Jl=class extends ki{constructor(e,n){super(e,n);this.objectType="NonParametric"}};String.prototype.codePointAt||function(){var r=function(){try{var e={},n=Object.defineProperty,o=n(e,e,e)&&n}catch{}return o}(),t=function(e){if(this==null)throw TypeError();var n=String(this),o=n.length,i=e?Number(e):0;if(i!=i&&(i=0),!(i<0||i>=o)){var a=n.charCodeAt(i),s;return a>=55296&&a<=56319&&o>i+1&&(s=n.charCodeAt(i+1),s>=56320&&s<=57343)?(a-55296)*1024+s-56320+65536:a}};r?r(String.prototype,"codePointAt",{value:t,configurable:!0,writable:!0}):String.prototype.codePointAt=t}();var yp=0,Oy=-3;function rs(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function tA(r,t){this.source=r,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=t,this.destLen=0,this.ltree=new rs,this.dtree=new rs}var Iy=new rs,Ly=new rs,vp=new Uint8Array(30),xp=new Uint16Array(30),Ny=new Uint8Array(30),Py=new Uint16Array(30),rA=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),zg=new rs,rn=new Uint8Array(288+32);function My(r,t,e,n){var o,i;for(o=0;o<e;++o)r[o]=0;for(o=0;o<30-e;++o)r[o+e]=o/e|0;for(i=n,o=0;o<30;++o)t[o]=i,i+=1<<r[o]}function nA(r,t){var e;for(e=0;e<7;++e)r.table[e]=0;for(r.table[7]=24,r.table[8]=152,r.table[9]=112,e=0;e<24;++e)r.trans[e]=256+e;for(e=0;e<144;++e)r.trans[24+e]=e;for(e=0;e<8;++e)r.trans[24+144+e]=280+e;for(e=0;e<112;++e)r.trans[24+144+8+e]=144+e;for(e=0;e<5;++e)t.table[e]=0;for(t.table[5]=32,e=0;e<32;++e)t.trans[e]=e}var jg=new Uint16Array(16);function Ju(r,t,e,n){var o,i;for(o=0;o<16;++o)r.table[o]=0;for(o=0;o<n;++o)r.table[t[e+o]]++;for(r.table[0]=0,i=0,o=0;o<16;++o)jg[o]=i,i+=r.table[o];for(o=0;o<n;++o)t[e+o]&&(r.trans[jg[t[e+o]]++]=o)}function oA(r){r.bitcount--||(r.tag=r.source[r.sourceIndex++],r.bitcount=7);var t=r.tag&1;return r.tag>>>=1,t}function nn(r,t,e){if(!t)return e;for(;r.bitcount<24;)r.tag|=r.source[r.sourceIndex++]<<r.bitcount,r.bitcount+=8;var n=r.tag&65535>>>16-t;return r.tag>>>=t,r.bitcount-=t,n+e}function lp(r,t){for(;r.bitcount<24;)r.tag|=r.source[r.sourceIndex++]<<r.bitcount,r.bitcount+=8;var e=0,n=0,o=0,i=r.tag;do n=2*n+(i&1),i>>>=1,++o,e+=t.table[o],n-=t.table[o];while(n>=0);return r.tag=i,r.bitcount-=o,t.trans[e+n]}function iA(r,t,e){var n,o,i,a,s,l;for(n=nn(r,5,257),o=nn(r,5,1),i=nn(r,4,4),a=0;a<19;++a)rn[a]=0;for(a=0;a<i;++a){var u=nn(r,3,0);rn[rA[a]]=u}for(Ju(zg,rn,0,19),s=0;s<n+o;){var c=lp(r,zg);switch(c){case 16:var p=rn[s-1];for(l=nn(r,2,3);l;--l)rn[s++]=p;break;case 17:for(l=nn(r,3,3);l;--l)rn[s++]=0;break;case 18:for(l=nn(r,7,11);l;--l)rn[s++]=0;break;default:rn[s++]=c;break}}Ju(t,rn,0,n),Ju(e,rn,n,o)}function Hg(r,t,e){for(;;){var n=lp(r,t);if(n===256)return yp;if(n<256)r.dest[r.destLen++]=n;else{var o,i,a,s;for(n-=257,o=nn(r,vp[n],xp[n]),i=lp(r,e),a=r.destLen-nn(r,Ny[i],Py[i]),s=a;s<a+o;++s)r.dest[r.destLen++]=r.dest[s]}}}function aA(r){for(var t,e,n;r.bitcount>8;)r.sourceIndex--,r.bitcount-=8;if(t=r.source[r.sourceIndex+1],t=256*t+r.source[r.sourceIndex],e=r.source[r.sourceIndex+3],e=256*e+r.source[r.sourceIndex+2],t!==(~e&65535))return Oy;for(r.sourceIndex+=4,n=t;n;--n)r.dest[r.destLen++]=r.source[r.sourceIndex++];return r.bitcount=0,yp}function sA(r,t){var e=new tA(r,t),n,o,i;do{switch(n=oA(e),o=nn(e,2,0),o){case 0:i=aA(e);break;case 1:i=Hg(e,Iy,Ly);break;case 2:iA(e,e.ltree,e.dtree),i=Hg(e,e.ltree,e.dtree);break;default:i=Oy}if(i!==yp)throw new Error("Data error")}while(!n);return e.destLen<e.dest.length?typeof e.dest.slice=="function"?e.dest.slice(0,e.destLen):e.dest.subarray(0,e.destLen):e.dest}nA(Iy,Ly);My(vp,xp,4,3);My(Ny,Py,2,1);vp[28]=0;xp[28]=258;var lA=sA;function Gi(r,t,e,n,o){return Math.pow(1-o,3)*r+3*Math.pow(1-o,2)*o*t+3*(1-o)*Math.pow(o,2)*e+Math.pow(o,3)*n}function Jn(){this.x1=Number.NaN,this.y1=Number.NaN,this.x2=Number.NaN,this.y2=Number.NaN}Jn.prototype.isEmpty=function(){return isNaN(this.x1)||isNaN(this.y1)||isNaN(this.x2)||isNaN(this.y2)};Jn.prototype.addPoint=function(r,t){typeof r=="number"&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=r,this.x2=r),r<this.x1&&(this.x1=r),r>this.x2&&(this.x2=r)),typeof t=="number"&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),t<this.y1&&(this.y1=t),t>this.y2&&(this.y2=t))};Jn.prototype.addX=function(r){this.addPoint(r,null)};Jn.prototype.addY=function(r){this.addPoint(null,r)};Jn.prototype.addBezier=function(r,t,e,n,o,i,a,s){var l=[r,t],u=[e,n],c=[o,i],p=[a,s];this.addPoint(r,t),this.addPoint(a,s);for(var f=0;f<=1;f++){var d=6*l[f]-12*u[f]+6*c[f],h=-3*l[f]+9*u[f]-9*c[f]+3*p[f],m=3*u[f]-3*l[f];if(h===0){if(d===0)continue;var g=-m/d;0<g&&g<1&&(f===0&&this.addX(Gi(l[f],u[f],c[f],p[f],g)),f===1&&this.addY(Gi(l[f],u[f],c[f],p[f],g)));continue}var v=Math.pow(d,2)-4*m*h;if(!(v<0)){var x=(-d+Math.sqrt(v))/(2*h);0<x&&x<1&&(f===0&&this.addX(Gi(l[f],u[f],c[f],p[f],x)),f===1&&this.addY(Gi(l[f],u[f],c[f],p[f],x)));var b=(-d-Math.sqrt(v))/(2*h);0<b&&b<1&&(f===0&&this.addX(Gi(l[f],u[f],c[f],p[f],b)),f===1&&this.addY(Gi(l[f],u[f],c[f],p[f],b)))}}};Jn.prototype.addQuad=function(r,t,e,n,o,i){var a=r+.6666666666666666*(e-r),s=t+2/3*(n-t),l=a+1/3*(o-r),u=s+1/3*(i-t);this.addBezier(r,t,a,s,l,u,o,i)};function ht(){this.commands=[],this.fill="black",this.stroke=null,this.strokeWidth=1}ht.prototype.moveTo=function(r,t){this.commands.push({type:"M",x:r,y:t})};ht.prototype.lineTo=function(r,t){this.commands.push({type:"L",x:r,y:t})};ht.prototype.curveTo=ht.prototype.bezierCurveTo=function(r,t,e,n,o,i){this.commands.push({type:"C",x1:r,y1:t,x2:e,y2:n,x:o,y:i})};ht.prototype.quadTo=ht.prototype.quadraticCurveTo=function(r,t,e,n){this.commands.push({type:"Q",x1:r,y1:t,x:e,y:n})};ht.prototype.close=ht.prototype.closePath=function(){this.commands.push({type:"Z"})};ht.prototype.extend=function(r){if(r.commands)r=r.commands;else if(r instanceof Jn){var t=r;this.moveTo(t.x1,t.y1),this.lineTo(t.x2,t.y1),this.lineTo(t.x2,t.y2),this.lineTo(t.x1,t.y2),this.close();return}Array.prototype.push.apply(this.commands,r)};ht.prototype.getBoundingBox=function(){for(var r=new Jn,t=0,e=0,n=0,o=0,i=0;i<this.commands.length;i++){var a=this.commands[i];switch(a.type){case"M":r.addPoint(a.x,a.y),t=n=a.x,e=o=a.y;break;case"L":r.addPoint(a.x,a.y),n=a.x,o=a.y;break;case"Q":r.addQuad(n,o,a.x1,a.y1,a.x,a.y),n=a.x,o=a.y;break;case"C":r.addBezier(n,o,a.x1,a.y1,a.x2,a.y2,a.x,a.y),n=a.x,o=a.y;break;case"Z":n=t,o=e;break;default:throw new Error("Unexpected path command "+a.type)}}return r.isEmpty()&&r.addPoint(0,0),r};ht.prototype.draw=function(r){r.beginPath();for(var t=0;t<this.commands.length;t+=1){var e=this.commands[t];e.type==="M"?r.moveTo(e.x,e.y):e.type==="L"?r.lineTo(e.x,e.y):e.type==="C"?r.bezierCurveTo(e.x1,e.y1,e.x2,e.y2,e.x,e.y):e.type==="Q"?r.quadraticCurveTo(e.x1,e.y1,e.x,e.y):e.type==="Z"&&r.closePath()}this.fill&&(r.fillStyle=this.fill,r.fill()),this.stroke&&(r.strokeStyle=this.stroke,r.lineWidth=this.strokeWidth,r.stroke())};ht.prototype.toPathData=function(r){r=r!==void 0?r:2;function t(a){return Math.round(a)===a?""+Math.round(a):a.toFixed(r)}function e(){for(var a=arguments,s="",l=0;l<arguments.length;l+=1){var u=a[l];u>=0&&l>0&&(s+=" "),s+=t(u)}return s}for(var n="",o=0;o<this.commands.length;o+=1){var i=this.commands[o];i.type==="M"?n+="M"+e(i.x,i.y):i.type==="L"?n+="L"+e(i.x,i.y):i.type==="C"?n+="C"+e(i.x1,i.y1,i.x2,i.y2,i.x,i.y):i.type==="Q"?n+="Q"+e(i.x1,i.y1,i.x,i.y):i.type==="Z"&&(n+="Z")}return n};ht.prototype.toSVG=function(r){var t='<path d="';return t+=this.toPathData(r),t+='"',this.fill&&this.fill!=="black"&&(this.fill===null?t+=' fill="none"':t+=' fill="'+this.fill+'"'),this.stroke&&(t+=' stroke="'+this.stroke+'" stroke-width="'+this.strokeWidth+'"'),t+="/>",t};ht.prototype.toDOMElement=function(r){var t=this.toPathData(r),e=document.createElementNS("http://www.w3.org/2000/svg","path");return e.setAttribute("d",t),e};function Ey(r){throw new Error(r)}function Wg(r,t){r||Ey(t)}var xe={fail:Ey,argument:Wg,assert:Wg},qg=32768,Xg=2147483648,Vi={},te={},be={};function _r(r){return function(){return r}}te.BYTE=function(r){return xe.argument(r>=0&&r<=255,"Byte value should be between 0 and 255."),[r]};be.BYTE=_r(1);te.CHAR=function(r){return[r.charCodeAt(0)]};be.CHAR=_r(1);te.CHARARRAY=function(r){typeof r>"u"&&(r="",console.warn("Undefined CHARARRAY encountered and treated as an empty string. This is probably caused by a missing glyph name."));for(var t=[],e=0;e<r.length;e+=1)t[e]=r.charCodeAt(e);return t};be.CHARARRAY=function(r){return typeof r>"u"?0:r.length};te.USHORT=function(r){return[r>>8&255,r&255]};be.USHORT=_r(2);te.SHORT=function(r){return r>=qg&&(r=-(2*qg-r)),[r>>8&255,r&255]};be.SHORT=_r(2);te.UINT24=function(r){return[r>>16&255,r>>8&255,r&255]};be.UINT24=_r(3);te.ULONG=function(r){return[r>>24&255,r>>16&255,r>>8&255,r&255]};be.ULONG=_r(4);te.LONG=function(r){return r>=Xg&&(r=-(2*Xg-r)),[r>>24&255,r>>16&255,r>>8&255,r&255]};be.LONG=_r(4);te.FIXED=te.ULONG;be.FIXED=be.ULONG;te.FWORD=te.SHORT;be.FWORD=be.SHORT;te.UFWORD=te.USHORT;be.UFWORD=be.USHORT;te.LONGDATETIME=function(r){return[0,0,0,0,r>>24&255,r>>16&255,r>>8&255,r&255]};be.LONGDATETIME=_r(8);te.TAG=function(r){return xe.argument(r.length===4,"Tag should be exactly 4 ASCII characters."),[r.charCodeAt(0),r.charCodeAt(1),r.charCodeAt(2),r.charCodeAt(3)]};be.TAG=_r(4);te.Card8=te.BYTE;be.Card8=be.BYTE;te.Card16=te.USHORT;be.Card16=be.USHORT;te.OffSize=te.BYTE;be.OffSize=be.BYTE;te.SID=te.USHORT;be.SID=be.USHORT;te.NUMBER=function(r){return r>=-107&&r<=107?[r+139]:r>=108&&r<=1131?(r=r-108,[(r>>8)+247,r&255]):r>=-1131&&r<=-108?(r=-r-108,[(r>>8)+251,r&255]):r>=-32768&&r<=32767?te.NUMBER16(r):te.NUMBER32(r)};be.NUMBER=function(r){return te.NUMBER(r).length};te.NUMBER16=function(r){return[28,r>>8&255,r&255]};be.NUMBER16=_r(3);te.NUMBER32=function(r){return[29,r>>24&255,r>>16&255,r>>8&255,r&255]};be.NUMBER32=_r(5);te.REAL=function(r){var t=r.toString(),e=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(t);if(e){var n=parseFloat("1e"+((e[2]?+e[2]:0)+e[1].length));t=(Math.round(r*n)/n).toString()}for(var o="",i=0,a=t.length;i<a;i+=1){var s=t[i];s==="e"?o+=t[++i]==="-"?"c":"b":s==="."?o+="a":s==="-"?o+="e":o+=s}o+=o.length&1?"f":"ff";for(var l=[30],u=0,c=o.length;u<c;u+=2)l.push(parseInt(o.substr(u,2),16));return l};be.REAL=function(r){return te.REAL(r).length};te.NAME=te.CHARARRAY;be.NAME=be.CHARARRAY;te.STRING=te.CHARARRAY;be.STRING=be.CHARARRAY;Vi.UTF8=function(r,t,e){for(var n=[],o=e,i=0;i<o;i++,t+=1)n[i]=r.getUint8(t);return String.fromCharCode.apply(null,n)};Vi.UTF16=function(r,t,e){for(var n=[],o=e/2,i=0;i<o;i++,t+=2)n[i]=r.getUint16(t);return String.fromCharCode.apply(null,n)};te.UTF16=function(r){for(var t=[],e=0;e<r.length;e+=1){var n=r.charCodeAt(e);t[t.length]=n>>8&255,t[t.length]=n&255}return t};be.UTF16=function(r){return r.length*2};var cp={"x-mac-croatian":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u03A9\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uF8FF\xA9\u2044\u20AC\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7","x-mac-cyrillic":"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E","x-mac-gaelic":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u1E02\xB1\u2264\u2265\u1E03\u010A\u010B\u1E0A\u1E0B\u1E1E\u1E1F\u0120\u0121\u1E40\xE6\xF8\u1E41\u1E56\u1E57\u027C\u0192\u017F\u1E60\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\u1E61\u1E9B\xFF\u0178\u1E6A\u20AC\u2039\u203A\u0176\u0177\u1E6B\xB7\u1EF2\u1EF3\u204A\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u2663\xD2\xDA\xDB\xD9\u0131\xDD\xFD\u0174\u0175\u1E84\u1E85\u1E80\u1E81\u1E82\u1E83","x-mac-greek":"\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\u20AC\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\xB7\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\xAD","x-mac-icelandic":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7","x-mac-inuit":"\u1403\u1404\u1405\u1406\u140A\u140B\u1431\u1432\u1433\u1434\u1438\u1439\u1449\u144E\u144F\u1450\u1451\u1455\u1456\u1466\u146D\u146E\u146F\u1470\u1472\u1473\u1483\u148B\u148C\u148D\u148E\u1490\u1491\xB0\u14A1\u14A5\u14A6\u2022\xB6\u14A7\xAE\xA9\u2122\u14A8\u14AA\u14AB\u14BB\u14C2\u14C3\u14C4\u14C5\u14C7\u14C8\u14D0\u14EF\u14F0\u14F1\u14F2\u14F4\u14F5\u1505\u14D5\u14D6\u14D7\u14D8\u14DA\u14DB\u14EA\u1528\u1529\u152A\u152B\u152D\u2026\xA0\u152E\u153E\u1555\u1556\u1557\u2013\u2014\u201C\u201D\u2018\u2019\u1558\u1559\u155A\u155D\u1546\u1547\u1548\u1549\u154B\u154C\u1550\u157F\u1580\u1581\u1582\u1583\u1584\u1585\u158F\u1590\u1591\u1592\u1593\u1594\u1595\u1671\u1672\u1673\u1674\u1675\u1676\u1596\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5\u15A6\u157C\u0141\u0142","x-mac-ce":"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7",macintosh:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7","x-mac-romanian":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u0218\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\u0103\u0219\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\u2039\u203A\u021A\u021B\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7","x-mac-turkish":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\uF8A0\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"};Vi.MACSTRING=function(r,t,e,n){var o=cp[n];if(o!==void 0){for(var i="",a=0;a<e;a++){var s=r.getUint8(t+a);s<=127?i+=String.fromCharCode(s):i+=o[s&127]}return i}};var ec=typeof WeakMap=="function"&&new WeakMap,tc,cA=function(r){if(!tc){tc={};for(var t in cp)tc[t]=new String(t)}var e=tc[r];if(e!==void 0){if(ec){var n=ec.get(e);if(n!==void 0)return n}var o=cp[r];if(o!==void 0){for(var i={},a=0;a<o.length;a++)i[o.charCodeAt(a)]=a+128;return ec&&ec.set(e,i),i}}};te.MACSTRING=function(r,t){var e=cA(t);if(e!==void 0){for(var n=[],o=0;o<r.length;o++){var i=r.charCodeAt(o);if(i>=128&&(i=e[i],i===void 0))return;n[o]=i}return n}};be.MACSTRING=function(r,t){var e=te.MACSTRING(r,t);return e!==void 0?e.length:0};function up(r){return r>=-128&&r<=127}function uA(r,t,e){for(var n=0,o=r.length;t<o&&n<64&&r[t]===0;)++t,++n;return e.push(128|n-1),t}function pA(r,t,e){for(var n=0,o=r.length,i=t;i<o&&n<64;){var a=r[i];if(!up(a)||a===0&&i+1<o&&r[i+1]===0)break;++i,++n}e.push(n-1);for(var s=t;s<i;++s)e.push(r[s]+256&255);return i}function fA(r,t,e){for(var n=0,o=r.length,i=t;i<o&&n<64;){var a=r[i];if(a===0||up(a)&&i+1<o&&up(r[i+1]))break;++i,++n}e.push(64|n-1);for(var s=t;s<i;++s){var l=r[s];e.push(l+65536>>8&255,l+256&255)}return i}te.VARDELTAS=function(r){for(var t=0,e=[];t<r.length;){var n=r[t];n===0?t=uA(r,t,e):n>=-128&&n<=127?t=pA(r,t,e):t=fA(r,t,e)}return e};te.INDEX=function(r){for(var t=1,e=[t],n=[],o=0;o<r.length;o+=1){var i=te.OBJECT(r[o]);Array.prototype.push.apply(n,i),t+=i.length,e.push(t)}if(n.length===0)return[0,0];for(var a=[],s=1+Math.floor(Math.log(t)/Math.log(2))/8|0,l=[void 0,te.BYTE,te.USHORT,te.UINT24,te.ULONG][s],u=0;u<e.length;u+=1){var c=l(e[u]);Array.prototype.push.apply(a,c)}return Array.prototype.concat(te.Card16(r.length),te.OffSize(s),a,n)};be.INDEX=function(r){return te.INDEX(r).length};te.DICT=function(r){for(var t=[],e=Object.keys(r),n=e.length,o=0;o<n;o+=1){var i=parseInt(e[o],0),a=r[i];t=t.concat(te.OPERAND(a.value,a.type)),t=t.concat(te.OPERATOR(i))}return t};be.DICT=function(r){return te.DICT(r).length};te.OPERATOR=function(r){return r<1200?[r]:[12,r-1200]};te.OPERAND=function(r,t){var e=[];if(Array.isArray(t))for(var n=0;n<t.length;n+=1)xe.argument(r.length===t.length,"Not enough arguments given for type"+t),e=e.concat(te.OPERAND(r[n],t[n]));else if(t==="SID")e=e.concat(te.NUMBER(r));else if(t==="offset")e=e.concat(te.NUMBER32(r));else if(t==="number")e=e.concat(te.NUMBER(r));else if(t==="real")e=e.concat(te.REAL(r));else throw new Error("Unknown operand type "+t);return e};te.OP=te.BYTE;be.OP=be.BYTE;var rc=typeof WeakMap=="function"&&new WeakMap;te.CHARSTRING=function(r){if(rc){var t=rc.get(r);if(t!==void 0)return t}for(var e=[],n=r.length,o=0;o<n;o+=1){var i=r[o];e=e.concat(te[i.type](i.value))}return rc&&rc.set(r,e),e};be.CHARSTRING=function(r){return te.CHARSTRING(r).length};te.OBJECT=function(r){var t=te[r.type];return xe.argument(t!==void 0,"No encoding function for type "+r.type),t(r.value)};be.OBJECT=function(r){var t=be[r.type];return xe.argument(t!==void 0,"No sizeOf function for type "+r.type),t(r.value)};te.TABLE=function(r){for(var t=[],e=r.fields.length,n=[],o=[],i=0;i<e;i+=1){var a=r.fields[i],s=te[a.type];xe.argument(s!==void 0,"No encoding function for field type "+a.type+" ("+a.name+")");var l=r[a.name];l===void 0&&(l=a.value);var u=s(l);a.type==="TABLE"?(o.push(t.length),t=t.concat([0,0]),n.push(u)):t=t.concat(u)}for(var c=0;c<n.length;c+=1){var p=o[c],f=t.length;xe.argument(f<65536,"Table "+r.tableName+" too big."),t[p]=f>>8,t[p+1]=f&255,t=t.concat(n[c])}return t};be.TABLE=function(r){for(var t=0,e=r.fields.length,n=0;n<e;n+=1){var o=r.fields[n],i=be[o.type];xe.argument(i!==void 0,"No sizeOf function for field type "+o.type+" ("+o.name+")");var a=r[o.name];a===void 0&&(a=o.value),t+=i(a),o.type==="TABLE"&&(t+=2)}return t};te.RECORD=te.TABLE;be.RECORD=be.TABLE;te.LITERAL=function(r){return r};be.LITERAL=function(r){return r.length};function Tt(r,t,e){if(t.length&&(t[0].name!=="coverageFormat"||t[0].value===1))for(var n=0;n<t.length;n+=1){var o=t[n];this[o.name]=o.value}if(this.tableName=r,this.fields=t,e)for(var i=Object.keys(e),a=0;a<i.length;a+=1){var s=i[a],l=e[s];this[s]!==void 0&&(this[s]=l)}}Tt.prototype.encode=function(){return te.TABLE(this)};Tt.prototype.sizeOf=function(){return be.TABLE(this)};function ns(r,t,e){e===void 0&&(e=t.length);var n=new Array(t.length+1);n[0]={name:r+"Count",type:"USHORT",value:e};for(var o=0;o<t.length;o++)n[o+1]={name:r+o,type:"USHORT",value:t[o]};return n}function pp(r,t,e){var n=t.length,o=new Array(n+1);o[0]={name:r+"Count",type:"USHORT",value:n};for(var i=0;i<n;i++)o[i+1]={name:r+i,type:"TABLE",value:e(t[i],i)};return o}function os(r,t,e){var n=t.length,o=[];o[0]={name:r+"Count",type:"USHORT",value:n};for(var i=0;i<n;i++)o=o.concat(e(t[i],i));return o}function sc(r){r.format===1?Tt.call(this,"coverageTable",[{name:"coverageFormat",type:"USHORT",value:1}].concat(ns("glyph",r.glyphs))):r.format===2?Tt.call(this,"coverageTable",[{name:"coverageFormat",type:"USHORT",value:2}].concat(os("rangeRecord",r.ranges,function(t){return[{name:"startGlyphID",type:"USHORT",value:t.start},{name:"endGlyphID",type:"USHORT",value:t.end},{name:"startCoverageIndex",type:"USHORT",value:t.index}]}))):xe.assert(!1,"Coverage format must be 1 or 2.")}sc.prototype=Object.create(Tt.prototype);sc.prototype.constructor=sc;function lc(r){Tt.call(this,"scriptListTable",os("scriptRecord",r,function(t,e){var n=t.script,o=n.defaultLangSys;return xe.assert(!!o,"Unable to write GSUB: script "+t.tag+" has no default language system."),[{name:"scriptTag"+e,type:"TAG",value:t.tag},{name:"script"+e,type:"TABLE",value:new Tt("scriptTable",[{name:"defaultLangSys",type:"TABLE",value:new Tt("defaultLangSys",[{name:"lookupOrder",type:"USHORT",value:0},{name:"reqFeatureIndex",type:"USHORT",value:o.reqFeatureIndex}].concat(ns("featureIndex",o.featureIndexes)))}].concat(os("langSys",n.langSysRecords,function(i,a){var s=i.langSys;return[{name:"langSysTag"+a,type:"TAG",value:i.tag},{name:"langSys"+a,type:"TABLE",value:new Tt("langSys",[{name:"lookupOrder",type:"USHORT",value:0},{name:"reqFeatureIndex",type:"USHORT",value:s.reqFeatureIndex}].concat(ns("featureIndex",s.featureIndexes)))}]})))}]}))}lc.prototype=Object.create(Tt.prototype);lc.prototype.constructor=lc;function cc(r){Tt.call(this,"featureListTable",os("featureRecord",r,function(t,e){var n=t.feature;return[{name:"featureTag"+e,type:"TAG",value:t.tag},{name:"feature"+e,type:"TABLE",value:new Tt("featureTable",[{name:"featureParams",type:"USHORT",value:n.featureParams}].concat(ns("lookupListIndex",n.lookupListIndexes)))}]}))}cc.prototype=Object.create(Tt.prototype);cc.prototype.constructor=cc;function uc(r,t){Tt.call(this,"lookupListTable",pp("lookup",r,function(e){var n=t[e.lookupType];return xe.assert(!!n,"Unable to write GSUB lookup type "+e.lookupType+" tables."),new Tt("lookupTable",[{name:"lookupType",type:"USHORT",value:e.lookupType},{name:"lookupFlag",type:"USHORT",value:e.lookupFlag}].concat(pp("subtable",e.subtables,n)))}))}uc.prototype=Object.create(Tt.prototype);uc.prototype.constructor=uc;var le={Table:Tt,Record:Tt,Coverage:sc,ScriptList:lc,FeatureList:cc,LookupList:uc,ushortList:ns,tableList:pp,recordList:os};function Yg(r,t){return r.getUint8(t)}function pc(r,t){return r.getUint16(t,!1)}function dA(r,t){return r.getInt16(t,!1)}function bp(r,t){return r.getUint32(t,!1)}function Dy(r,t){var e=r.getInt16(t,!1),n=r.getUint16(t+2,!1);return e+n/65535}function hA(r,t){for(var e="",n=t;n<t+4;n+=1)e+=String.fromCharCode(r.getInt8(n));return e}function mA(r,t,e){for(var n=0,o=0;o<e;o+=1)n<<=8,n+=r.getUint8(t+o);return n}function gA(r,t,e){for(var n=[],o=t;o<e;o+=1)n.push(r.getUint8(o));return n}function yA(r){for(var t="",e=0;e<r.length;e+=1)t+=String.fromCharCode(r[e]);return t}var vA={byte:1,uShort:2,short:2,uLong:4,fixed:4,longDateTime:8,tag:4};function E(r,t){this.data=r,this.offset=t,this.relativeOffset=0}E.prototype.parseByte=function(){var r=this.data.getUint8(this.offset+this.relativeOffset);return this.relativeOffset+=1,r};E.prototype.parseChar=function(){var r=this.data.getInt8(this.offset+this.relativeOffset);return this.relativeOffset+=1,r};E.prototype.parseCard8=E.prototype.parseByte;E.prototype.parseUShort=function(){var r=this.data.getUint16(this.offset+this.relativeOffset);return this.relativeOffset+=2,r};E.prototype.parseCard16=E.prototype.parseUShort;E.prototype.parseSID=E.prototype.parseUShort;E.prototype.parseOffset16=E.prototype.parseUShort;E.prototype.parseShort=function(){var r=this.data.getInt16(this.offset+this.relativeOffset);return this.relativeOffset+=2,r};E.prototype.parseF2Dot14=function(){var r=this.data.getInt16(this.offset+this.relativeOffset)/16384;return this.relativeOffset+=2,r};E.prototype.parseULong=function(){var r=bp(this.data,this.offset+this.relativeOffset);return this.relativeOffset+=4,r};E.prototype.parseOffset32=E.prototype.parseULong;E.prototype.parseFixed=function(){var r=Dy(this.data,this.offset+this.relativeOffset);return this.relativeOffset+=4,r};E.prototype.parseString=function(r){var t=this.data,e=this.offset+this.relativeOffset,n="";this.relativeOffset+=r;for(var o=0;o<r;o++)n+=String.fromCharCode(t.getUint8(e+o));return n};E.prototype.parseTag=function(){return this.parseString(4)};E.prototype.parseLongDateTime=function(){var r=bp(this.data,this.offset+this.relativeOffset+4);return r-=2082844800,this.relativeOffset+=8,r};E.prototype.parseVersion=function(r){var t=pc(this.data,this.offset+this.relativeOffset),e=pc(this.data,this.offset+this.relativeOffset+2);return this.relativeOffset+=4,r===void 0&&(r=4096),t+e/r/10};E.prototype.skip=function(r,t){t===void 0&&(t=1),this.relativeOffset+=vA[r]*t};E.prototype.parseULongList=function(r){r===void 0&&(r=this.parseULong());for(var t=new Array(r),e=this.data,n=this.offset+this.relativeOffset,o=0;o<r;o++)t[o]=e.getUint32(n),n+=4;return this.relativeOffset+=r*4,t};E.prototype.parseOffset16List=E.prototype.parseUShortList=function(r){r===void 0&&(r=this.parseUShort());for(var t=new Array(r),e=this.data,n=this.offset+this.relativeOffset,o=0;o<r;o++)t[o]=e.getUint16(n),n+=2;return this.relativeOffset+=r*2,t};E.prototype.parseShortList=function(r){for(var t=new Array(r),e=this.data,n=this.offset+this.relativeOffset,o=0;o<r;o++)t[o]=e.getInt16(n),n+=2;return this.relativeOffset+=r*2,t};E.prototype.parseByteList=function(r){for(var t=new Array(r),e=this.data,n=this.offset+this.relativeOffset,o=0;o<r;o++)t[o]=e.getUint8(n++);return this.relativeOffset+=r,t};E.prototype.parseList=function(r,t){t||(t=r,r=this.parseUShort());for(var e=new Array(r),n=0;n<r;n++)e[n]=t.call(this);return e};E.prototype.parseList32=function(r,t){t||(t=r,r=this.parseULong());for(var e=new Array(r),n=0;n<r;n++)e[n]=t.call(this);return e};E.prototype.parseRecordList=function(r,t){t||(t=r,r=this.parseUShort());for(var e=new Array(r),n=Object.keys(t),o=0;o<r;o++){for(var i={},a=0;a<n.length;a++){var s=n[a],l=t[s];i[s]=l.call(this)}e[o]=i}return e};E.prototype.parseRecordList32=function(r,t){t||(t=r,r=this.parseULong());for(var e=new Array(r),n=Object.keys(t),o=0;o<r;o++){for(var i={},a=0;a<n.length;a++){var s=n[a],l=t[s];i[s]=l.call(this)}e[o]=i}return e};E.prototype.parseStruct=function(r){if(typeof r=="function")return r.call(this);for(var t=Object.keys(r),e={},n=0;n<t.length;n++){var o=t[n],i=r[o];e[o]=i.call(this)}return e};E.prototype.parseValueRecord=function(r){if(r===void 0&&(r=this.parseUShort()),r!==0){var t={};return r&1&&(t.xPlacement=this.parseShort()),r&2&&(t.yPlacement=this.parseShort()),r&4&&(t.xAdvance=this.parseShort()),r&8&&(t.yAdvance=this.parseShort()),r&16&&(t.xPlaDevice=void 0,this.parseShort()),r&32&&(t.yPlaDevice=void 0,this.parseShort()),r&64&&(t.xAdvDevice=void 0,this.parseShort()),r&128&&(t.yAdvDevice=void 0,this.parseShort()),t}};E.prototype.parseValueRecordList=function(){for(var r=this.parseUShort(),t=this.parseUShort(),e=new Array(t),n=0;n<t;n++)e[n]=this.parseValueRecord(r);return e};E.prototype.parsePointer=function(r){var t=this.parseOffset16();if(t>0)return new E(this.data,this.offset+t).parseStruct(r)};E.prototype.parsePointer32=function(r){var t=this.parseOffset32();if(t>0)return new E(this.data,this.offset+t).parseStruct(r)};E.prototype.parseListOfLists=function(r){for(var t=this.parseOffset16List(),e=t.length,n=this.relativeOffset,o=new Array(e),i=0;i<e;i++){var a=t[i];if(a===0){o[i]=void 0;continue}if(this.relativeOffset=a,r){for(var s=this.parseOffset16List(),l=new Array(s.length),u=0;u<s.length;u++)this.relativeOffset=a+s[u],l[u]=r.call(this);o[i]=l}else o[i]=this.parseUShortList()}return this.relativeOffset=n,o};E.prototype.parseCoverage=function(){var r=this.offset+this.relativeOffset,t=this.parseUShort(),e=this.parseUShort();if(t===1)return{format:1,glyphs:this.parseUShortList(e)};if(t===2){for(var n=new Array(e),o=0;o<e;o++)n[o]={start:this.parseUShort(),end:this.parseUShort(),index:this.parseUShort()};return{format:2,ranges:n}}throw new Error("0x"+r.toString(16)+": Coverage format must be 1 or 2.")};E.prototype.parseClassDef=function(){var r=this.offset+this.relativeOffset,t=this.parseUShort();if(t===1)return{format:1,startGlyph:this.parseUShort(),classes:this.parseUShortList()};if(t===2)return{format:2,ranges:this.parseRecordList({start:E.uShort,end:E.uShort,classId:E.uShort})};throw new Error("0x"+r.toString(16)+": ClassDef format must be 1 or 2.")};E.list=function(r,t){return function(){return this.parseList(r,t)}};E.list32=function(r,t){return function(){return this.parseList32(r,t)}};E.recordList=function(r,t){return function(){return this.parseRecordList(r,t)}};E.recordList32=function(r,t){return function(){return this.parseRecordList32(r,t)}};E.pointer=function(r){return function(){return this.parsePointer(r)}};E.pointer32=function(r){return function(){return this.parsePointer32(r)}};E.tag=E.prototype.parseTag;E.byte=E.prototype.parseByte;E.uShort=E.offset16=E.prototype.parseUShort;E.uShortList=E.prototype.parseUShortList;E.uLong=E.offset32=E.prototype.parseULong;E.uLongList=E.prototype.parseULongList;E.struct=E.prototype.parseStruct;E.coverage=E.prototype.parseCoverage;E.classDef=E.prototype.parseClassDef;var $g={reserved:E.uShort,reqFeatureIndex:E.uShort,featureIndexes:E.uShortList};E.prototype.parseScriptList=function(){return this.parsePointer(E.recordList({tag:E.tag,script:E.pointer({defaultLangSys:E.pointer($g),langSysRecords:E.recordList({tag:E.tag,langSys:E.pointer($g)})})}))||[]};E.prototype.parseFeatureList=function(){return this.parsePointer(E.recordList({tag:E.tag,feature:E.pointer({featureParams:E.offset16,lookupListIndexes:E.uShortList})}))||[]};E.prototype.parseLookupList=function(r){return this.parsePointer(E.list(E.pointer(function(){var t=this.parseUShort();xe.argument(1<=t&&t<=9,"GPOS/GSUB lookup type "+t+" unknown.");var e=this.parseUShort(),n=e&16;return{lookupType:t,lookupFlag:e,subtables:this.parseList(E.pointer(r[t])),markFilteringSet:n?this.parseUShort():void 0}})))||[]};E.prototype.parseFeatureVariationsList=function(){return this.parsePointer32(function(){var r=this.parseUShort(),t=this.parseUShort();xe.argument(r===1&&t<1,"GPOS/GSUB feature variations table unknown.");var e=this.parseRecordList32({conditionSetOffset:E.offset32,featureTableSubstitutionOffset:E.offset32});return e})||[]};var pe={getByte:Yg,getCard8:Yg,getUShort:pc,getCard16:pc,getShort:dA,getULong:bp,getFixed:Dy,getTag:hA,getOffset:mA,getBytes:gA,bytesToString:yA,Parser:E};function xA(r,t){t.parseUShort(),r.length=t.parseULong(),r.language=t.parseULong();var e;r.groupCount=e=t.parseULong(),r.glyphIndexMap={};for(var n=0;n<e;n+=1)for(var o=t.parseULong(),i=t.parseULong(),a=t.parseULong(),s=o;s<=i;s+=1)r.glyphIndexMap[s]=a,a++}function bA(r,t,e,n,o){r.length=t.parseUShort(),r.language=t.parseUShort();var i;r.segCount=i=t.parseUShort()>>1,t.skip("uShort",3),r.glyphIndexMap={};for(var a=new pe.Parser(e,n+o+14),s=new pe.Parser(e,n+o+16+i*2),l=new pe.Parser(e,n+o+16+i*4),u=new pe.Parser(e,n+o+16+i*6),c=n+o+16+i*8,p=0;p<i-1;p+=1)for(var f=void 0,d=a.parseUShort(),h=s.parseUShort(),m=l.parseShort(),g=u.parseUShort(),v=h;v<=d;v+=1)g!==0?(c=u.offset+u.relativeOffset-2,c+=g,c+=(v-h)*2,f=pe.getUShort(e,c),f!==0&&(f=f+m&65535)):f=v+m&65535,r.glyphIndexMap[v]=f}function SA(r,t){var e={};e.version=pe.getUShort(r,t),xe.argument(e.version===0,"cmap table version should be 0."),e.numTables=pe.getUShort(r,t+2);for(var n=-1,o=e.numTables-1;o>=0;o-=1){var i=pe.getUShort(r,t+4+o*8),a=pe.getUShort(r,t+4+o*8+2);if(i===3&&(a===0||a===1||a===10)||i===0&&(a===0||a===1||a===2||a===3||a===4)){n=pe.getULong(r,t+4+o*8+4);break}}if(n===-1)throw new Error("No valid cmap sub-tables found.");var s=new pe.Parser(r,t+n);if(e.format=s.parseUShort(),e.format===12)xA(e,s);else if(e.format===4)bA(e,s,r,t,n);else throw new Error("Only format 4 and 12 cmap tables are supported (found format "+e.format+").");return e}function wA(r,t,e){r.segments.push({end:t,start:t,delta:-(t-e),offset:0,glyphIndex:e})}function TA(r){r.segments.push({end:65535,start:65535,delta:1,offset:0})}function CA(r){var t=!0,e;for(e=r.length-1;e>0;e-=1){var n=r.get(e);if(n.unicode>65535){console.log("Adding CMAP format 12 (needed!)"),t=!1;break}}var o=[{name:"version",type:"USHORT",value:0},{name:"numTables",type:"USHORT",value:t?1:2},{name:"platformID",type:"USHORT",value:3},{name:"encodingID",type:"USHORT",value:1},{name:"offset",type:"ULONG",value:t?12:12+8}];t||(o=o.concat([{name:"cmap12PlatformID",type:"USHORT",value:3},{name:"cmap12EncodingID",type:"USHORT",value:10},{name:"cmap12Offset",type:"ULONG",value:0}])),o=o.concat([{name:"format",type:"USHORT",value:4},{name:"cmap4Length",type:"USHORT",value:0},{name:"language",type:"USHORT",value:0},{name:"segCountX2",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);var i=new le.Table("cmap",o);for(i.segments=[],e=0;e<r.length;e+=1){for(var a=r.get(e),s=0;s<a.unicodes.length;s+=1)wA(i,a.unicodes[s],e);i.segments=i.segments.sort(function(x,b){return x.start-b.start})}TA(i);var l=i.segments.length,u=0,c=[],p=[],f=[],d=[],h=[],m=[];for(e=0;e<l;e+=1){var g=i.segments[e];g.end<=65535&&g.start<=65535?(c=c.concat({name:"end_"+e,type:"USHORT",value:g.end}),p=p.concat({name:"start_"+e,type:"USHORT",value:g.start}),f=f.concat({name:"idDelta_"+e,type:"SHORT",value:g.delta}),d=d.concat({name:"idRangeOffset_"+e,type:"USHORT",value:g.offset}),g.glyphId!==void 0&&(h=h.concat({name:"glyph_"+e,type:"USHORT",value:g.glyphId}))):u+=1,!t&&g.glyphIndex!==void 0&&(m=m.concat({name:"cmap12Start_"+e,type:"ULONG",value:g.start}),m=m.concat({name:"cmap12End_"+e,type:"ULONG",value:g.end}),m=m.concat({name:"cmap12Glyph_"+e,type:"ULONG",value:g.glyphIndex}))}if(i.segCountX2=(l-u)*2,i.searchRange=Math.pow(2,Math.floor(Math.log(l-u)/Math.log(2)))*2,i.entrySelector=Math.log(i.searchRange/2)/Math.log(2),i.rangeShift=i.segCountX2-i.searchRange,i.fields=i.fields.concat(c),i.fields.push({name:"reservedPad",type:"USHORT",value:0}),i.fields=i.fields.concat(p),i.fields=i.fields.concat(f),i.fields=i.fields.concat(d),i.fields=i.fields.concat(h),i.cmap4Length=14+c.length*2+2+p.length*2+f.length*2+d.length*2+h.length*2,!t){var v=16+m.length*4;i.cmap12Offset=12+2*2+4+i.cmap4Length,i.fields=i.fields.concat([{name:"cmap12Format",type:"USHORT",value:12},{name:"cmap12Reserved",type:"USHORT",value:0},{name:"cmap12Length",type:"ULONG",value:v},{name:"cmap12Language",type:"ULONG",value:0},{name:"cmap12nGroups",type:"ULONG",value:m.length/3}]),i.fields=i.fields.concat(m)}return i}var By={parse:SA,make:CA},ic=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","266 ff","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],AA=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],_A=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],Ao=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function Fy(r){this.font=r}Fy.prototype.charToGlyphIndex=function(r){var t=r.codePointAt(0),e=this.font.glyphs;if(e){for(var n=0;n<e.length;n+=1)for(var o=e.get(n),i=0;i<o.unicodes.length;i+=1)if(o.unicodes[i]===t)return n}return null};function Ry(r){this.cmap=r}Ry.prototype.charToGlyphIndex=function(r){return this.cmap.glyphIndexMap[r.codePointAt(0)]||0};function fc(r,t){this.encoding=r,this.charset=t}fc.prototype.charToGlyphIndex=function(r){var t=r.codePointAt(0),e=this.encoding[t];return this.charset.indexOf(e)};function Sp(r){switch(r.version){case 1:this.names=Ao.slice();break;case 2:this.names=new Array(r.numberOfGlyphs);for(var t=0;t<r.numberOfGlyphs;t++)r.glyphNameIndex[t]<Ao.length?this.names[t]=Ao[r.glyphNameIndex[t]]:this.names[t]=r.names[r.glyphNameIndex[t]-Ao.length];break;case 2.5:this.names=new Array(r.numberOfGlyphs);for(var e=0;e<r.numberOfGlyphs;e++)this.names[e]=Ao[e+r.glyphNameIndex[e]];break;case 3:this.names=[];break;default:this.names=[];break}}Sp.prototype.nameToGlyphIndex=function(r){return this.names.indexOf(r)};Sp.prototype.glyphIndexToName=function(r){return this.names[r]};function OA(r){for(var t,e=r.tables.cmap.glyphIndexMap,n=Object.keys(e),o=0;o<n.length;o+=1){var i=n[o],a=e[i];t=r.glyphs.get(a),t.addUnicode(parseInt(i))}for(var s=0;s<r.glyphs.length;s+=1)t=r.glyphs.get(s),r.cffEncoding?r.isCIDFont?t.name="gid"+s:t.name=r.cffEncoding.charset[s]:r.glyphNames.names&&(t.name=r.glyphNames.glyphIndexToName(s))}function IA(r){r._IndexToUnicodeMap={};for(var t=r.tables.cmap.glyphIndexMap,e=Object.keys(t),n=0;n<e.length;n+=1){var o=e[n],i=t[o];r._IndexToUnicodeMap[i]===void 0?r._IndexToUnicodeMap[i]={unicodes:[parseInt(o)]}:r._IndexToUnicodeMap[i].unicodes.push(parseInt(o))}}function LA(r,t){t.lowMemory?IA(r):OA(r)}function NA(r,t,e,n,o){r.beginPath(),r.moveTo(t,e),r.lineTo(n,o),r.stroke()}var Co={line:NA};function PA(r,t){var e=t||new ht;return{configurable:!0,get:function(){return typeof e=="function"&&(e=e()),e},set:function(n){e=n}}}function fr(r){this.bindConstructorValues(r)}fr.prototype.bindConstructorValues=function(r){this.index=r.index||0,this.name=r.name||null,this.unicode=r.unicode||void 0,this.unicodes=r.unicodes||r.unicode!==void 0?[r.unicode]:[],"xMin"in r&&(this.xMin=r.xMin),"yMin"in r&&(this.yMin=r.yMin),"xMax"in r&&(this.xMax=r.xMax),"yMax"in r&&(this.yMax=r.yMax),"advanceWidth"in r&&(this.advanceWidth=r.advanceWidth),Object.defineProperty(this,"path",PA(this,r.path))};fr.prototype.addUnicode=function(r){this.unicodes.length===0&&(this.unicode=r),this.unicodes.push(r)};fr.prototype.getBoundingBox=function(){return this.path.getBoundingBox()};fr.prototype.getPath=function(r,t,e,n,o){r=r!==void 0?r:0,t=t!==void 0?t:0,e=e!==void 0?e:72;var i,a;n||(n={});var s=n.xScale,l=n.yScale;if(n.hinting&&o&&o.hinting&&(a=this.path&&o.hinting.exec(this,e)),a)i=o.hinting.getCommands(a),r=Math.round(r),t=Math.round(t),s=l=1;else{i=this.path.commands;var u=1/(this.path.unitsPerEm||1e3)*e;s===void 0&&(s=u),l===void 0&&(l=u)}for(var c=new ht,p=0;p<i.length;p+=1){var f=i[p];f.type==="M"?c.moveTo(r+f.x*s,t+-f.y*l):f.type==="L"?c.lineTo(r+f.x*s,t+-f.y*l):f.type==="Q"?c.quadraticCurveTo(r+f.x1*s,t+-f.y1*l,r+f.x*s,t+-f.y*l):f.type==="C"?c.curveTo(r+f.x1*s,t+-f.y1*l,r+f.x2*s,t+-f.y2*l,r+f.x*s,t+-f.y*l):f.type==="Z"&&c.closePath()}return c};fr.prototype.getContours=function(){if(this.points===void 0)return[];for(var r=[],t=[],e=0;e<this.points.length;e+=1){var n=this.points[e];t.push(n),n.lastPointOfContour&&(r.push(t),t=[])}return xe.argument(t.length===0,"There are still points left in the current contour."),r};fr.prototype.getMetrics=function(){for(var r=this.path.commands,t=[],e=[],n=0;n<r.length;n+=1){var o=r[n];o.type!=="Z"&&(t.push(o.x),e.push(o.y)),(o.type==="Q"||o.type==="C")&&(t.push(o.x1),e.push(o.y1)),o.type==="C"&&(t.push(o.x2),e.push(o.y2))}var i={xMin:Math.min.apply(null,t),yMin:Math.min.apply(null,e),xMax:Math.max.apply(null,t),yMax:Math.max.apply(null,e),leftSideBearing:this.leftSideBearing};return isFinite(i.xMin)||(i.xMin=0),isFinite(i.xMax)||(i.xMax=this.advanceWidth),isFinite(i.yMin)||(i.yMin=0),isFinite(i.yMax)||(i.yMax=0),i.rightSideBearing=this.advanceWidth-i.leftSideBearing-(i.xMax-i.xMin),i};fr.prototype.draw=function(r,t,e,n,o){this.getPath(t,e,n,o).draw(r)};fr.prototype.drawPoints=function(r,t,e,n){function o(p,f,d,h){r.beginPath();for(var m=0;m<p.length;m+=1)r.moveTo(f+p[m].x*h,d+p[m].y*h),r.arc(f+p[m].x*h,d+p[m].y*h,2,0,Math.PI*2,!1);r.closePath(),r.fill()}t=t!==void 0?t:0,e=e!==void 0?e:0,n=n!==void 0?n:24;for(var i=1/this.path.unitsPerEm*n,a=[],s=[],l=this.path,u=0;u<l.commands.length;u+=1){var c=l.commands[u];c.x!==void 0&&a.push({x:c.x,y:-c.y}),c.x1!==void 0&&s.push({x:c.x1,y:-c.y1}),c.x2!==void 0&&s.push({x:c.x2,y:-c.y2})}r.fillStyle="blue",o(a,t,e,i),r.fillStyle="red",o(s,t,e,i)};fr.prototype.drawMetrics=function(r,t,e,n){var o;t=t!==void 0?t:0,e=e!==void 0?e:0,n=n!==void 0?n:24,o=1/this.path.unitsPerEm*n,r.lineWidth=1,r.strokeStyle="black",Co.line(r,t,-1e4,t,1e4),Co.line(r,-1e4,e,1e4,e);var i=this.xMin||0,a=this.yMin||0,s=this.xMax||0,l=this.yMax||0,u=this.advanceWidth||0;r.strokeStyle="blue",Co.line(r,t+i*o,-1e4,t+i*o,1e4),Co.line(r,t+s*o,-1e4,t+s*o,1e4),Co.line(r,-1e4,e+-a*o,1e4,e+-a*o),Co.line(r,-1e4,e+-l*o,1e4,e+-l*o),r.strokeStyle="green",Co.line(r,t+u*o,-1e4,t+u*o,1e4)};function nc(r,t,e){Object.defineProperty(r,t,{get:function(){return r.path,r[e]},set:function(n){r[e]=n},enumerable:!0,configurable:!0})}function wp(r,t){if(this.font=r,this.glyphs={},Array.isArray(t))for(var e=0;e<t.length;e++){var n=t[e];n.path.unitsPerEm=r.unitsPerEm,this.glyphs[e]=n}this.length=t&&t.length||0}wp.prototype.get=function(r){if(this.glyphs[r]===void 0){this.font._push(r),typeof this.glyphs[r]=="function"&&(this.glyphs[r]=this.glyphs[r]());var t=this.glyphs[r],e=this.font._IndexToUnicodeMap[r];if(e)for(var n=0;n<e.unicodes.length;n++)t.addUnicode(e.unicodes[n]);this.font.cffEncoding?this.font.isCIDFont?t.name="gid"+r:t.name=this.font.cffEncoding.charset[r]:this.font.glyphNames.names&&(t.name=this.font.glyphNames.glyphIndexToName(r)),this.glyphs[r].advanceWidth=this.font._hmtxTableData[r].advanceWidth,this.glyphs[r].leftSideBearing=this.font._hmtxTableData[r].leftSideBearing}else typeof this.glyphs[r]=="function"&&(this.glyphs[r]=this.glyphs[r]());return this.glyphs[r]};wp.prototype.push=function(r,t){this.glyphs[r]=t,this.length++};function MA(r,t){return new fr({index:t,font:r})}function EA(r,t,e,n,o,i){return function(){var a=new fr({index:t,font:r});return a.path=function(){e(a,n,o);var s=i(r.glyphs,a);return s.unitsPerEm=r.unitsPerEm,s},nc(a,"xMin","_xMin"),nc(a,"xMax","_xMax"),nc(a,"yMin","_yMin"),nc(a,"yMax","_yMax"),a}}function DA(r,t,e,n){return function(){var o=new fr({index:t,font:r});return o.path=function(){var i=e(r,o,n);return i.unitsPerEm=r.unitsPerEm,i},o}}var an={GlyphSet:wp,glyphLoader:MA,ttfGlyphLoader:EA,cffGlyphLoader:DA};function ky(r,t){if(r===t)return!0;if(Array.isArray(r)&&Array.isArray(t)){if(r.length!==t.length)return!1;for(var e=0;e<r.length;e+=1)if(!ky(r[e],t[e]))return!1;return!0}else return!1}function fp(r){var t;return r.length<1240?t=107:r.length<33900?t=1131:t=32768,t}function $n(r,t,e){var n=[],o=[],i=pe.getCard16(r,t),a,s;if(i!==0){var l=pe.getByte(r,t+2);a=t+(i+1)*l+2;for(var u=t+3,c=0;c<i+1;c+=1)n.push(pe.getOffset(r,u,l)),u+=l;s=a+n[i]}else s=t+2;for(var p=0;p<n.length-1;p+=1){var f=pe.getBytes(r,a+n[p],a+n[p+1]);e&&(f=e(f)),o.push(f)}return{objects:o,startOffset:t,endOffset:s}}function BA(r,t){var e=[],n=pe.getCard16(r,t),o,i;if(n!==0){var a=pe.getByte(r,t+2);o=t+(n+1)*a+2;for(var s=t+3,l=0;l<n+1;l+=1)e.push(pe.getOffset(r,s,a)),s+=a;i=o+e[n]}else i=t+2;return{offsets:e,startOffset:t,endOffset:i}}function FA(r,t,e,n,o){var i=pe.getCard16(e,n),a=0;if(i!==0){var s=pe.getByte(e,n+2);a=n+(i+1)*s+2}var l=pe.getBytes(e,a+t[r],a+t[r+1]);return o&&(l=o(l)),l}function RA(r){for(var t="",e=15,n=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];;){var o=r.parseByte(),i=o>>4,a=o&15;if(i===e||(t+=n[i],a===e))break;t+=n[a]}return parseFloat(t)}function kA(r,t){var e,n,o,i;if(t===28)return e=r.parseByte(),n=r.parseByte(),e<<8|n;if(t===29)return e=r.parseByte(),n=r.parseByte(),o=r.parseByte(),i=r.parseByte(),e<<24|n<<16|o<<8|i;if(t===30)return RA(r);if(t>=32&&t<=246)return t-139;if(t>=247&&t<=250)return e=r.parseByte(),(t-247)*256+e+108;if(t>=251&&t<=254)return e=r.parseByte(),-(t-251)*256-e-108;throw new Error("Invalid b0 "+t)}function GA(r){for(var t={},e=0;e<r.length;e+=1){var n=r[e][0],o=r[e][1],i=void 0;if(o.length===1?i=o[0]:i=o,t.hasOwnProperty(n)&&!isNaN(t[n]))throw new Error("Object "+t+" already has key "+n);t[n]=i}return t}function Gy(r,t,e){t=t!==void 0?t:0;var n=new pe.Parser(r,t),o=[],i=[];for(e=e!==void 0?e:r.length;n.relativeOffset<e;){var a=n.parseByte();a<=21?(a===12&&(a=1200+n.parseByte()),o.push([a,i]),i=[]):i.push(kA(n,a))}return GA(o)}function ts(r,t){return t<=390?t=ic[t]:t=r[t-391],t}function Uy(r,t,e){for(var n={},o,i=0;i<t.length;i+=1){var a=t[i];if(Array.isArray(a.type)){var s=[];s.length=a.type.length;for(var l=0;l<a.type.length;l++)o=r[a.op]!==void 0?r[a.op][l]:void 0,o===void 0&&(o=a.value!==void 0&&a.value[l]!==void 0?a.value[l]:null),a.type[l]==="SID"&&(o=ts(e,o)),s[l]=o;n[a.name]=s}else o=r[a.op],o===void 0&&(o=a.value!==void 0?a.value:null),a.type==="SID"&&(o=ts(e,o)),n[a.name]=o}return n}function UA(r,t){var e={};return e.formatMajor=pe.getCard8(r,t),e.formatMinor=pe.getCard8(r,t+1),e.size=pe.getCard8(r,t+2),e.offsetSize=pe.getCard8(r,t+3),e.startOffset=t,e.endOffset=t+4,e}var Vy=[{name:"version",op:0,type:"SID"},{name:"notice",op:1,type:"SID"},{name:"copyright",op:1200,type:"SID"},{name:"fullName",op:2,type:"SID"},{name:"familyName",op:3,type:"SID"},{name:"weight",op:4,type:"SID"},{name:"isFixedPitch",op:1201,type:"number",value:0},{name:"italicAngle",op:1202,type:"number",value:0},{name:"underlinePosition",op:1203,type:"number",value:-100},{name:"underlineThickness",op:1204,type:"number",value:50},{name:"paintType",op:1205,type:"number",value:0},{name:"charstringType",op:1206,type:"number",value:2},{name:"fontMatrix",op:1207,type:["real","real","real","real","real","real"],value:[.001,0,0,.001,0,0]},{name:"uniqueId",op:13,type:"number"},{name:"fontBBox",op:5,type:["number","number","number","number"],value:[0,0,0,0]},{name:"strokeWidth",op:1208,type:"number",value:0},{name:"xuid",op:14,type:[],value:null},{name:"charset",op:15,type:"offset",value:0},{name:"encoding",op:16,type:"offset",value:0},{name:"charStrings",op:17,type:"offset",value:0},{name:"private",op:18,type:["number","offset"],value:[0,0]},{name:"ros",op:1230,type:["SID","SID","number"]},{name:"cidFontVersion",op:1231,type:"number",value:0},{name:"cidFontRevision",op:1232,type:"number",value:0},{name:"cidFontType",op:1233,type:"number",value:0},{name:"cidCount",op:1234,type:"number",value:8720},{name:"uidBase",op:1235,type:"number"},{name:"fdArray",op:1236,type:"offset"},{name:"fdSelect",op:1237,type:"offset"},{name:"fontName",op:1238,type:"SID"}],zy=[{name:"subrs",op:19,type:"offset",value:0},{name:"defaultWidthX",op:20,type:"number",value:0},{name:"nominalWidthX",op:21,type:"number",value:0}];function VA(r,t){var e=Gy(r,0,r.byteLength);return Uy(e,Vy,t)}function jy(r,t,e,n){var o=Gy(r,t,e);return Uy(o,zy,n)}function Kg(r,t,e,n){for(var o=[],i=0;i<e.length;i+=1){var a=new DataView(new Uint8Array(e[i]).buffer),s=VA(a,n);s._subrs=[],s._subrsBias=0,s._defaultWidthX=0,s._nominalWidthX=0;var l=s.private[0],u=s.private[1];if(l!==0&&u!==0){var c=jy(r,u+t,l,n);if(s._defaultWidthX=c.defaultWidthX,s._nominalWidthX=c.nominalWidthX,c.subrs!==0){var p=u+c.subrs,f=$n(r,p+t);s._subrs=f.objects,s._subrsBias=fp(s._subrs)}s._privateDict=c}o.push(s)}return o}function zA(r,t,e,n){var o,i,a=new pe.Parser(r,t);e-=1;var s=[".notdef"],l=a.parseCard8();if(l===0)for(var u=0;u<e;u+=1)o=a.parseSID(),s.push(ts(n,o));else if(l===1)for(;s.length<=e;){o=a.parseSID(),i=a.parseCard8();for(var c=0;c<=i;c+=1)s.push(ts(n,o)),o+=1}else if(l===2)for(;s.length<=e;){o=a.parseSID(),i=a.parseCard16();for(var p=0;p<=i;p+=1)s.push(ts(n,o)),o+=1}else throw new Error("Unknown charset format "+l);return s}function jA(r,t,e){var n,o={},i=new pe.Parser(r,t),a=i.parseCard8();if(a===0)for(var s=i.parseCard8(),l=0;l<s;l+=1)n=i.parseCard8(),o[n]=l;else if(a===1){var u=i.parseCard8();n=1;for(var c=0;c<u;c+=1)for(var p=i.parseCard8(),f=i.parseCard8(),d=p;d<=p+f;d+=1)o[d]=n,n+=1}else throw new Error("Unknown encoding format "+a);return new fc(o,e)}function Zg(r,t,e){var n,o,i,a,s=new ht,l=[],u=0,c=!1,p=!1,f=0,d=0,h,m,g,v;if(r.isCIDFont){var x=r.tables.cff.topDict._fdSelect[t.index],b=r.tables.cff.topDict._fdArray[x];h=b._subrs,m=b._subrsBias,g=b._defaultWidthX,v=b._nominalWidthX}else h=r.tables.cff.topDict._subrs,m=r.tables.cff.topDict._subrsBias,g=r.tables.cff.topDict._defaultWidthX,v=r.tables.cff.topDict._nominalWidthX;var w=g;function S(y,O){p&&s.closePath(),s.moveTo(y,O),p=!0}function _(){var y;y=l.length%2!==0,y&&!c&&(w=l.shift()+v),u+=l.length>>1,l.length=0,c=!0}function T(y){for(var O,A,I,C,N,P,G,$,Y,ie,j,H,V=0;V<y.length;){var R=y[V];switch(V+=1,R){case 1:_();break;case 3:_();break;case 4:l.length>1&&!c&&(w=l.shift()+v,c=!0),d+=l.pop(),S(f,d);break;case 5:for(;l.length>0;)f+=l.shift(),d+=l.shift(),s.lineTo(f,d);break;case 6:for(;l.length>0&&(f+=l.shift(),s.lineTo(f,d),l.length!==0);)d+=l.shift(),s.lineTo(f,d);break;case 7:for(;l.length>0&&(d+=l.shift(),s.lineTo(f,d),l.length!==0);)f+=l.shift(),s.lineTo(f,d);break;case 8:for(;l.length>0;)n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a+l.shift(),s.curveTo(n,o,i,a,f,d);break;case 10:N=l.pop()+m,P=h[N],P&&T(P);break;case 11:return;case 12:switch(R=y[V],V+=1,R){case 35:n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),G=i+l.shift(),$=a+l.shift(),Y=G+l.shift(),ie=$+l.shift(),j=Y+l.shift(),H=ie+l.shift(),f=j+l.shift(),d=H+l.shift(),l.shift(),s.curveTo(n,o,i,a,G,$),s.curveTo(Y,ie,j,H,f,d);break;case 34:n=f+l.shift(),o=d,i=n+l.shift(),a=o+l.shift(),G=i+l.shift(),$=a,Y=G+l.shift(),ie=a,j=Y+l.shift(),H=d,f=j+l.shift(),s.curveTo(n,o,i,a,G,$),s.curveTo(Y,ie,j,H,f,d);break;case 36:n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),G=i+l.shift(),$=a,Y=G+l.shift(),ie=a,j=Y+l.shift(),H=ie+l.shift(),f=j+l.shift(),s.curveTo(n,o,i,a,G,$),s.curveTo(Y,ie,j,H,f,d);break;case 37:n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),G=i+l.shift(),$=a+l.shift(),Y=G+l.shift(),ie=$+l.shift(),j=Y+l.shift(),H=ie+l.shift(),Math.abs(j-f)>Math.abs(H-d)?f=j+l.shift():d=H+l.shift(),s.curveTo(n,o,i,a,G,$),s.curveTo(Y,ie,j,H,f,d);break;default:console.log("Glyph "+t.index+": unknown operator "+1200+R),l.length=0}break;case 14:l.length>0&&!c&&(w=l.shift()+v,c=!0),p&&(s.closePath(),p=!1);break;case 18:_();break;case 19:case 20:_(),V+=u+7>>3;break;case 21:l.length>2&&!c&&(w=l.shift()+v,c=!0),d+=l.pop(),f+=l.pop(),S(f,d);break;case 22:l.length>1&&!c&&(w=l.shift()+v,c=!0),f+=l.pop(),S(f,d);break;case 23:_();break;case 24:for(;l.length>2;)n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a+l.shift(),s.curveTo(n,o,i,a,f,d);f+=l.shift(),d+=l.shift(),s.lineTo(f,d);break;case 25:for(;l.length>6;)f+=l.shift(),d+=l.shift(),s.lineTo(f,d);n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a+l.shift(),s.curveTo(n,o,i,a,f,d);break;case 26:for(l.length%2&&(f+=l.shift());l.length>0;)n=f,o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i,d=a+l.shift(),s.curveTo(n,o,i,a,f,d);break;case 27:for(l.length%2&&(d+=l.shift());l.length>0;)n=f+l.shift(),o=d,i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a,s.curveTo(n,o,i,a,f,d);break;case 28:O=y[V],A=y[V+1],l.push((O<<24|A<<16)>>16),V+=2;break;case 29:N=l.pop()+r.gsubrsBias,P=r.gsubrs[N],P&&T(P);break;case 30:for(;l.length>0&&(n=f,o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a+(l.length===1?l.shift():0),s.curveTo(n,o,i,a,f,d),l.length!==0);)n=f+l.shift(),o=d,i=n+l.shift(),a=o+l.shift(),d=a+l.shift(),f=i+(l.length===1?l.shift():0),s.curveTo(n,o,i,a,f,d);break;case 31:for(;l.length>0&&(n=f+l.shift(),o=d,i=n+l.shift(),a=o+l.shift(),d=a+l.shift(),f=i+(l.length===1?l.shift():0),s.curveTo(n,o,i,a,f,d),l.length!==0);)n=f,o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a+(l.length===1?l.shift():0),s.curveTo(n,o,i,a,f,d);break;default:R<32?console.log("Glyph "+t.index+": unknown operator "+R):R<247?l.push(R-139):R<251?(O=y[V],V+=1,l.push((R-247)*256+O+108)):R<255?(O=y[V],V+=1,l.push(-(R-251)*256-O-108)):(O=y[V],A=y[V+1],I=y[V+2],C=y[V+3],V+=4,l.push((O<<24|A<<16|I<<8|C)/65536))}}}return T(e),t.advanceWidth=w,s}function HA(r,t,e,n){var o=[],i,a=new pe.Parser(r,t),s=a.parseCard8();if(s===0)for(var l=0;l<e;l++){if(i=a.parseCard8(),i>=n)throw new Error("CFF table CID Font FDSelect has bad FD index value "+i+" (FD count "+n+")");o.push(i)}else if(s===3){var u=a.parseCard16(),c=a.parseCard16();if(c!==0)throw new Error("CFF Table CID Font FDSelect format 3 range has bad initial GID "+c);for(var p,f=0;f<u;f++){if(i=a.parseCard8(),p=a.parseCard16(),i>=n)throw new Error("CFF table CID Font FDSelect has bad FD index value "+i+" (FD count "+n+")");if(p>e)throw new Error("CFF Table CID Font FDSelect format 3 range has bad GID "+p);for(;c<p;c++)o.push(i);c=p}if(p!==e)throw new Error("CFF Table CID Font FDSelect format 3 range has bad final GID "+p)}else throw new Error("CFF Table CID Font FDSelect table has unsupported format "+s);return o}function WA(r,t,e,n){e.tables.cff={};var o=UA(r,t),i=$n(r,o.endOffset,pe.bytesToString),a=$n(r,i.endOffset),s=$n(r,a.endOffset,pe.bytesToString),l=$n(r,s.endOffset);e.gsubrs=l.objects,e.gsubrsBias=fp(e.gsubrs);var u=Kg(r,t,a.objects,s.objects);if(u.length!==1)throw new Error("CFF table has too many fonts in 'FontSet' - count of fonts NameIndex.length = "+u.length);var c=u[0];if(e.tables.cff.topDict=c,c._privateDict&&(e.defaultWidthX=c._privateDict.defaultWidthX,e.nominalWidthX=c._privateDict.nominalWidthX),c.ros[0]!==void 0&&c.ros[1]!==void 0&&(e.isCIDFont=!0),e.isCIDFont){var p=c.fdArray,f=c.fdSelect;if(p===0||f===0)throw new Error("Font is marked as a CID font, but FDArray and/or FDSelect information is missing");p+=t;var d=$n(r,p),h=Kg(r,t,d.objects,s.objects);c._fdArray=h,f+=t,c._fdSelect=HA(r,f,e.numGlyphs,h.length)}var m=t+c.private[1],g=jy(r,m,c.private[0],s.objects);if(e.defaultWidthX=g.defaultWidthX,e.nominalWidthX=g.nominalWidthX,g.subrs!==0){var v=m+g.subrs,x=$n(r,v);e.subrs=x.objects,e.subrsBias=fp(e.subrs)}else e.subrs=[],e.subrsBias=0;var b;n.lowMemory?(b=BA(r,t+c.charStrings),e.nGlyphs=b.offsets.length):(b=$n(r,t+c.charStrings),e.nGlyphs=b.objects.length);var w=zA(r,t+c.charset,e.nGlyphs,s.objects);if(c.encoding===0?e.cffEncoding=new fc(AA,w):c.encoding===1?e.cffEncoding=new fc(_A,w):e.cffEncoding=jA(r,t+c.encoding,w),e.encoding=e.encoding||e.cffEncoding,e.glyphs=new an.GlyphSet(e),n.lowMemory)e._push=function(T){var y=FA(T,b.offsets,r,t+c.charStrings);e.glyphs.push(T,an.cffGlyphLoader(e,T,Zg,y))};else for(var S=0;S<e.nGlyphs;S+=1){var _=b.objects[S];e.glyphs.push(S,an.cffGlyphLoader(e,S,Zg,_))}}function Hy(r,t){var e,n=ic.indexOf(r);return n>=0&&(e=n),n=t.indexOf(r),n>=0?e=n+ic.length:(e=ic.length+t.length,t.push(r)),e}function qA(){return new le.Record("Header",[{name:"major",type:"Card8",value:1},{name:"minor",type:"Card8",value:0},{name:"hdrSize",type:"Card8",value:4},{name:"major",type:"Card8",value:1}])}function XA(r){var t=new le.Record("Name INDEX",[{name:"names",type:"INDEX",value:[]}]);t.names=[];for(var e=0;e<r.length;e+=1)t.names.push({name:"name_"+e,type:"NAME",value:r[e]});return t}function Wy(r,t,e){for(var n={},o=0;o<r.length;o+=1){var i=r[o],a=t[i.name];a!==void 0&&!ky(a,i.value)&&(i.type==="SID"&&(a=Hy(a,e)),n[i.op]={name:i.name,type:i.type,value:a})}return n}function Qg(r,t){var e=new le.Record("Top DICT",[{name:"dict",type:"DICT",value:{}}]);return e.dict=Wy(Vy,r,t),e}function Jg(r){var t=new le.Record("Top DICT INDEX",[{name:"topDicts",type:"INDEX",value:[]}]);return t.topDicts=[{name:"topDict_0",type:"TABLE",value:r}],t}function YA(r){var t=new le.Record("String INDEX",[{name:"strings",type:"INDEX",value:[]}]);t.strings=[];for(var e=0;e<r.length;e+=1)t.strings.push({name:"string_"+e,type:"STRING",value:r[e]});return t}function $A(){return new le.Record("Global Subr INDEX",[{name:"subrs",type:"INDEX",value:[]}])}function KA(r,t){for(var e=new le.Record("Charsets",[{name:"format",type:"Card8",value:0}]),n=0;n<r.length;n+=1){var o=r[n],i=Hy(o,t);e.fields.push({name:"glyph_"+n,type:"SID",value:i})}return e}function ZA(r){var t=[],e=r.path;t.push({name:"width",type:"NUMBER",value:r.advanceWidth});for(var n=0,o=0,i=0;i<e.commands.length;i+=1){var a=void 0,s=void 0,l=e.commands[i];if(l.type==="Q"){var u=.3333333333333333,c=2/3;l={type:"C",x:l.x,y:l.y,x1:Math.round(u*n+c*l.x1),y1:Math.round(u*o+c*l.y1),x2:Math.round(u*l.x+c*l.x1),y2:Math.round(u*l.y+c*l.y1)}}if(l.type==="M")a=Math.round(l.x-n),s=Math.round(l.y-o),t.push({name:"dx",type:"NUMBER",value:a}),t.push({name:"dy",type:"NUMBER",value:s}),t.push({name:"rmoveto",type:"OP",value:21}),n=Math.round(l.x),o=Math.round(l.y);else if(l.type==="L")a=Math.round(l.x-n),s=Math.round(l.y-o),t.push({name:"dx",type:"NUMBER",value:a}),t.push({name:"dy",type:"NUMBER",value:s}),t.push({name:"rlineto",type:"OP",value:5}),n=Math.round(l.x),o=Math.round(l.y);else if(l.type==="C"){var p=Math.round(l.x1-n),f=Math.round(l.y1-o),d=Math.round(l.x2-l.x1),h=Math.round(l.y2-l.y1);a=Math.round(l.x-l.x2),s=Math.round(l.y-l.y2),t.push({name:"dx1",type:"NUMBER",value:p}),t.push({name:"dy1",type:"NUMBER",value:f}),t.push({name:"dx2",type:"NUMBER",value:d}),t.push({name:"dy2",type:"NUMBER",value:h}),t.push({name:"dx",type:"NUMBER",value:a}),t.push({name:"dy",type:"NUMBER",value:s}),t.push({name:"rrcurveto",type:"OP",value:8}),n=Math.round(l.x),o=Math.round(l.y)}}return t.push({name:"endchar",type:"OP",value:14}),t}function QA(r){for(var t=new le.Record("CharStrings INDEX",[{name:"charStrings",type:"INDEX",value:[]}]),e=0;e<r.length;e+=1){var n=r.get(e),o=ZA(n);t.charStrings.push({name:n.name,type:"CHARSTRING",value:o})}return t}function JA(r,t){var e=new le.Record("Private DICT",[{name:"dict",type:"DICT",value:{}}]);return e.dict=Wy(zy,r,t),e}function e_(r,t){for(var e=new le.Table("CFF ",[{name:"header",type:"RECORD"},{name:"nameIndex",type:"RECORD"},{name:"topDictIndex",type:"RECORD"},{name:"stringIndex",type:"RECORD"},{name:"globalSubrIndex",type:"RECORD"},{name:"charsets",type:"RECORD"},{name:"charStringsIndex",type:"RECORD"},{name:"privateDict",type:"RECORD"}]),n=1/t.unitsPerEm,o={version:t.version,fullName:t.fullName,familyName:t.familyName,weight:t.weightName,fontBBox:t.fontBBox||[0,0,0,0],fontMatrix:[n,0,0,n,0,0],charset:999,encoding:0,charStrings:999,private:[0,999]},i={},a=[],s,l=1;l<r.length;l+=1)s=r.get(l),a.push(s.name);var u=[];e.header=qA(),e.nameIndex=XA([t.postScriptName]);var c=Qg(o,u);e.topDictIndex=Jg(c),e.globalSubrIndex=$A(),e.charsets=KA(a,u),e.charStringsIndex=QA(r),e.privateDict=JA(i,u),e.stringIndex=YA(u);var p=e.header.sizeOf()+e.nameIndex.sizeOf()+e.topDictIndex.sizeOf()+e.stringIndex.sizeOf()+e.globalSubrIndex.sizeOf();return o.charset=p,o.encoding=0,o.charStrings=o.charset+e.charsets.sizeOf(),o.private[1]=o.charStrings+e.charStringsIndex.sizeOf(),c=Qg(o,u),e.topDictIndex=Jg(c),e}var qy={parse:WA,make:e_};function t_(r,t){var e={},n=new pe.Parser(r,t);return e.version=n.parseVersion(),e.fontRevision=Math.round(n.parseFixed()*1e3)/1e3,e.checkSumAdjustment=n.parseULong(),e.magicNumber=n.parseULong(),xe.argument(e.magicNumber===1594834165,"Font header has wrong magic number."),e.flags=n.parseUShort(),e.unitsPerEm=n.parseUShort(),e.created=n.parseLongDateTime(),e.modified=n.parseLongDateTime(),e.xMin=n.parseShort(),e.yMin=n.parseShort(),e.xMax=n.parseShort(),e.yMax=n.parseShort(),e.macStyle=n.parseUShort(),e.lowestRecPPEM=n.parseUShort(),e.fontDirectionHint=n.parseShort(),e.indexToLocFormat=n.parseShort(),e.glyphDataFormat=n.parseShort(),e}function r_(r){var t=Math.round(new Date().getTime()/1e3)+2082844800,e=t;return r.createdTimestamp&&(e=r.createdTimestamp+2082844800),new le.Table("head",[{name:"version",type:"FIXED",value:65536},{name:"fontRevision",type:"FIXED",value:65536},{name:"checkSumAdjustment",type:"ULONG",value:0},{name:"magicNumber",type:"ULONG",value:1594834165},{name:"flags",type:"USHORT",value:0},{name:"unitsPerEm",type:"USHORT",value:1e3},{name:"created",type:"LONGDATETIME",value:e},{name:"modified",type:"LONGDATETIME",value:t},{name:"xMin",type:"SHORT",value:0},{name:"yMin",type:"SHORT",value:0},{name:"xMax",type:"SHORT",value:0},{name:"yMax",type:"SHORT",value:0},{name:"macStyle",type:"USHORT",value:0},{name:"lowestRecPPEM",type:"USHORT",value:0},{name:"fontDirectionHint",type:"SHORT",value:2},{name:"indexToLocFormat",type:"SHORT",value:0},{name:"glyphDataFormat",type:"SHORT",value:0}],r)}var Xy={parse:t_,make:r_};function n_(r,t){var e={},n=new pe.Parser(r,t);return e.version=n.parseVersion(),e.ascender=n.parseShort(),e.descender=n.parseShort(),e.lineGap=n.parseShort(),e.advanceWidthMax=n.parseUShort(),e.minLeftSideBearing=n.parseShort(),e.minRightSideBearing=n.parseShort(),e.xMaxExtent=n.parseShort(),e.caretSlopeRise=n.parseShort(),e.caretSlopeRun=n.parseShort(),e.caretOffset=n.parseShort(),n.relativeOffset+=8,e.metricDataFormat=n.parseShort(),e.numberOfHMetrics=n.parseUShort(),e}function o_(r){return new le.Table("hhea",[{name:"version",type:"FIXED",value:65536},{name:"ascender",type:"FWORD",value:0},{name:"descender",type:"FWORD",value:0},{name:"lineGap",type:"FWORD",value:0},{name:"advanceWidthMax",type:"UFWORD",value:0},{name:"minLeftSideBearing",type:"FWORD",value:0},{name:"minRightSideBearing",type:"FWORD",value:0},{name:"xMaxExtent",type:"FWORD",value:0},{name:"caretSlopeRise",type:"SHORT",value:1},{name:"caretSlopeRun",type:"SHORT",value:0},{name:"caretOffset",type:"SHORT",value:0},{name:"reserved1",type:"SHORT",value:0},{name:"reserved2",type:"SHORT",value:0},{name:"reserved3",type:"SHORT",value:0},{name:"reserved4",type:"SHORT",value:0},{name:"metricDataFormat",type:"SHORT",value:0},{name:"numberOfHMetrics",type:"USHORT",value:0}],r)}var Yy={parse:n_,make:o_};function i_(r,t,e,n,o){for(var i,a,s=new pe.Parser(r,t),l=0;l<n;l+=1){l<e&&(i=s.parseUShort(),a=s.parseShort());var u=o.get(l);u.advanceWidth=i,u.leftSideBearing=a}}function a_(r,t,e,n,o){r._hmtxTableData={};for(var i,a,s=new pe.Parser(t,e),l=0;l<o;l+=1)l<n&&(i=s.parseUShort(),a=s.parseShort()),r._hmtxTableData[l]={advanceWidth:i,leftSideBearing:a}}function s_(r,t,e,n,o,i,a){a.lowMemory?a_(r,t,e,n,o):i_(t,e,n,o,i)}function l_(r){for(var t=new le.Table("hmtx",[]),e=0;e<r.length;e+=1){var n=r.get(e),o=n.advanceWidth||0,i=n.leftSideBearing||0;t.fields.push({name:"advanceWidth_"+e,type:"USHORT",value:o}),t.fields.push({name:"leftSideBearing_"+e,type:"SHORT",value:i})}return t}var $y={parse:s_,make:l_};function c_(r){for(var t=new le.Table("ltag",[{name:"version",type:"ULONG",value:1},{name:"flags",type:"ULONG",value:0},{name:"numTags",type:"ULONG",value:r.length}]),e="",n=12+r.length*4,o=0;o<r.length;++o){var i=e.indexOf(r[o]);i<0&&(i=e.length,e+=r[o]),t.fields.push({name:"offset "+o,type:"USHORT",value:n+i}),t.fields.push({name:"length "+o,type:"USHORT",value:r[o].length})}return t.fields.push({name:"stringPool",type:"CHARARRAY",value:e}),t}function u_(r,t){var e=new pe.Parser(r,t),n=e.parseULong();xe.argument(n===1,"Unsupported ltag table version."),e.skip("uLong",1);for(var o=e.parseULong(),i=[],a=0;a<o;a++){for(var s="",l=t+e.parseUShort(),u=e.parseUShort(),c=l;c<l+u;++c)s+=String.fromCharCode(r.getInt8(c));i.push(s)}return i}var Ky={make:c_,parse:u_};function p_(r,t){var e={},n=new pe.Parser(r,t);return e.version=n.parseVersion(),e.numGlyphs=n.parseUShort(),e.version===1&&(e.maxPoints=n.parseUShort(),e.maxContours=n.parseUShort(),e.maxCompositePoints=n.parseUShort(),e.maxCompositeContours=n.parseUShort(),e.maxZones=n.parseUShort(),e.maxTwilightPoints=n.parseUShort(),e.maxStorage=n.parseUShort(),e.maxFunctionDefs=n.parseUShort(),e.maxInstructionDefs=n.parseUShort(),e.maxStackElements=n.parseUShort(),e.maxSizeOfInstructions=n.parseUShort(),e.maxComponentElements=n.parseUShort(),e.maxComponentDepth=n.parseUShort()),e}function f_(r){return new le.Table("maxp",[{name:"version",type:"FIXED",value:20480},{name:"numGlyphs",type:"USHORT",value:r}])}var Zy={parse:p_,make:f_},Qy=["copyright","fontFamily","fontSubfamily","uniqueID","fullName","version","postScriptName","trademark","manufacturer","designer","description","manufacturerURL","designerURL","license","licenseURL","reserved","preferredFamily","preferredSubfamily","compatibleFullName","sampleText","postScriptFindFontName","wwsFamily","wwsSubfamily"],Jy={0:"en",1:"fr",2:"de",3:"it",4:"nl",5:"sv",6:"es",7:"da",8:"pt",9:"no",10:"he",11:"ja",12:"ar",13:"fi",14:"el",15:"is",16:"mt",17:"tr",18:"hr",19:"zh-Hant",20:"ur",21:"hi",22:"th",23:"ko",24:"lt",25:"pl",26:"hu",27:"es",28:"lv",29:"se",30:"fo",31:"fa",32:"ru",33:"zh",34:"nl-BE",35:"ga",36:"sq",37:"ro",38:"cz",39:"sk",40:"si",41:"yi",42:"sr",43:"mk",44:"bg",45:"uk",46:"be",47:"uz",48:"kk",49:"az-Cyrl",50:"az-Arab",51:"hy",52:"ka",53:"mo",54:"ky",55:"tg",56:"tk",57:"mn-CN",58:"mn",59:"ps",60:"ks",61:"ku",62:"sd",63:"bo",64:"ne",65:"sa",66:"mr",67:"bn",68:"as",69:"gu",70:"pa",71:"or",72:"ml",73:"kn",74:"ta",75:"te",76:"si",77:"my",78:"km",79:"lo",80:"vi",81:"id",82:"tl",83:"ms",84:"ms-Arab",85:"am",86:"ti",87:"om",88:"so",89:"sw",90:"rw",91:"rn",92:"ny",93:"mg",94:"eo",128:"cy",129:"eu",130:"ca",131:"la",132:"qu",133:"gn",134:"ay",135:"tt",136:"ug",137:"dz",138:"jv",139:"su",140:"gl",141:"af",142:"br",143:"iu",144:"gd",145:"gv",146:"ga",147:"to",148:"el-polyton",149:"kl",150:"az",151:"nn"},d_={0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:5,11:1,12:4,13:0,14:6,15:0,16:0,17:0,18:0,19:2,20:4,21:9,22:21,23:3,24:29,25:29,26:29,27:29,28:29,29:0,30:0,31:4,32:7,33:25,34:0,35:0,36:0,37:0,38:29,39:29,40:0,41:5,42:7,43:7,44:7,45:7,46:7,47:7,48:7,49:7,50:4,51:24,52:23,53:7,54:7,55:7,56:7,57:27,58:7,59:4,60:4,61:4,62:4,63:26,64:9,65:9,66:9,67:13,68:13,69:11,70:10,71:12,72:17,73:16,74:14,75:15,76:18,77:19,78:20,79:22,80:30,81:0,82:0,83:0,84:4,85:28,86:28,87:28,88:0,89:0,90:0,91:0,92:0,93:0,94:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:7,136:4,137:26,138:0,139:0,140:0,141:0,142:0,143:28,144:0,145:0,146:0,147:0,148:6,149:0,150:0,151:0},e0={1078:"af",1052:"sq",1156:"gsw",1118:"am",5121:"ar-DZ",15361:"ar-BH",3073:"ar",2049:"ar-IQ",11265:"ar-JO",13313:"ar-KW",12289:"ar-LB",4097:"ar-LY",6145:"ary",8193:"ar-OM",16385:"ar-QA",1025:"ar-SA",10241:"ar-SY",7169:"aeb",14337:"ar-AE",9217:"ar-YE",1067:"hy",1101:"as",2092:"az-Cyrl",1068:"az",1133:"ba",1069:"eu",1059:"be",2117:"bn",1093:"bn-IN",8218:"bs-Cyrl",5146:"bs",1150:"br",1026:"bg",1027:"ca",3076:"zh-HK",5124:"zh-MO",2052:"zh",4100:"zh-SG",1028:"zh-TW",1155:"co",1050:"hr",4122:"hr-BA",1029:"cs",1030:"da",1164:"prs",1125:"dv",2067:"nl-BE",1043:"nl",3081:"en-AU",10249:"en-BZ",4105:"en-CA",9225:"en-029",16393:"en-IN",6153:"en-IE",8201:"en-JM",17417:"en-MY",5129:"en-NZ",13321:"en-PH",18441:"en-SG",7177:"en-ZA",11273:"en-TT",2057:"en-GB",1033:"en",12297:"en-ZW",1061:"et",1080:"fo",1124:"fil",1035:"fi",2060:"fr-BE",3084:"fr-CA",1036:"fr",5132:"fr-LU",6156:"fr-MC",4108:"fr-CH",1122:"fy",1110:"gl",1079:"ka",3079:"de-AT",1031:"de",5127:"de-LI",4103:"de-LU",2055:"de-CH",1032:"el",1135:"kl",1095:"gu",1128:"ha",1037:"he",1081:"hi",1038:"hu",1039:"is",1136:"ig",1057:"id",1117:"iu",2141:"iu-Latn",2108:"ga",1076:"xh",1077:"zu",1040:"it",2064:"it-CH",1041:"ja",1099:"kn",1087:"kk",1107:"km",1158:"quc",1159:"rw",1089:"sw",1111:"kok",1042:"ko",1088:"ky",1108:"lo",1062:"lv",1063:"lt",2094:"dsb",1134:"lb",1071:"mk",2110:"ms-BN",1086:"ms",1100:"ml",1082:"mt",1153:"mi",1146:"arn",1102:"mr",1148:"moh",1104:"mn",2128:"mn-CN",1121:"ne",1044:"nb",2068:"nn",1154:"oc",1096:"or",1123:"ps",1045:"pl",1046:"pt",2070:"pt-PT",1094:"pa",1131:"qu-BO",2155:"qu-EC",3179:"qu",1048:"ro",1047:"rm",1049:"ru",9275:"smn",4155:"smj-NO",5179:"smj",3131:"se-FI",1083:"se",2107:"se-SE",8251:"sms",6203:"sma-NO",7227:"sms",1103:"sa",7194:"sr-Cyrl-BA",3098:"sr",6170:"sr-Latn-BA",2074:"sr-Latn",1132:"nso",1074:"tn",1115:"si",1051:"sk",1060:"sl",11274:"es-AR",16394:"es-BO",13322:"es-CL",9226:"es-CO",5130:"es-CR",7178:"es-DO",12298:"es-EC",17418:"es-SV",4106:"es-GT",18442:"es-HN",2058:"es-MX",19466:"es-NI",6154:"es-PA",15370:"es-PY",10250:"es-PE",20490:"es-PR",3082:"es",1034:"es",21514:"es-US",14346:"es-UY",8202:"es-VE",2077:"sv-FI",1053:"sv",1114:"syr",1064:"tg",2143:"tzm",1097:"ta",1092:"tt",1098:"te",1054:"th",1105:"bo",1055:"tr",1090:"tk",1152:"ug",1058:"uk",1070:"hsb",1056:"ur",2115:"uz-Cyrl",1091:"uz",1066:"vi",1106:"cy",1160:"wo",1157:"sah",1144:"ii",1130:"yo"};function h_(r,t,e){switch(r){case 0:if(t===65535)return"und";if(e)return e[t];break;case 1:return Jy[t];case 3:return e0[t]}}var dp="utf-16",m_={0:"macintosh",1:"x-mac-japanese",2:"x-mac-chinesetrad",3:"x-mac-korean",6:"x-mac-greek",7:"x-mac-cyrillic",9:"x-mac-devanagai",10:"x-mac-gurmukhi",11:"x-mac-gujarati",12:"x-mac-oriya",13:"x-mac-bengali",14:"x-mac-tamil",15:"x-mac-telugu",16:"x-mac-kannada",17:"x-mac-malayalam",18:"x-mac-sinhalese",19:"x-mac-burmese",20:"x-mac-khmer",21:"x-mac-thai",22:"x-mac-lao",23:"x-mac-georgian",24:"x-mac-armenian",25:"x-mac-chinesesimp",26:"x-mac-tibetan",27:"x-mac-mongolian",28:"x-mac-ethiopic",29:"x-mac-ce",30:"x-mac-vietnamese",31:"x-mac-extarabic"},g_={15:"x-mac-icelandic",17:"x-mac-turkish",18:"x-mac-croatian",24:"x-mac-ce",25:"x-mac-ce",26:"x-mac-ce",27:"x-mac-ce",28:"x-mac-ce",30:"x-mac-icelandic",37:"x-mac-romanian",38:"x-mac-ce",39:"x-mac-ce",40:"x-mac-ce",143:"x-mac-inuit",146:"x-mac-gaelic"};function t0(r,t,e){switch(r){case 0:return dp;case 1:return g_[e]||m_[t];case 3:if(t===1||t===10)return dp;break}}function y_(r,t,e){for(var n={},o=new pe.Parser(r,t),i=o.parseUShort(),a=o.parseUShort(),s=o.offset+o.parseUShort(),l=0;l<a;l++){var u=o.parseUShort(),c=o.parseUShort(),p=o.parseUShort(),f=o.parseUShort(),d=Qy[f]||f,h=o.parseUShort(),m=o.parseUShort(),g=h_(u,p,e),v=t0(u,c,p);if(v!==void 0&&g!==void 0){var x=void 0;if(v===dp?x=Vi.UTF16(r,s+m,h):x=Vi.MACSTRING(r,s+m,h,v),x){var b=n[d];b===void 0&&(b=n[d]={}),b[g]=x}}}var w=0;return i===1&&(w=o.parseUShort()),n}function ep(r){var t={};for(var e in r)t[r[e]]=parseInt(e);return t}function ey(r,t,e,n,o,i){return new le.Record("NameRecord",[{name:"platformID",type:"USHORT",value:r},{name:"encodingID",type:"USHORT",value:t},{name:"languageID",type:"USHORT",value:e},{name:"nameID",type:"USHORT",value:n},{name:"length",type:"USHORT",value:o},{name:"offset",type:"USHORT",value:i}])}function v_(r,t){var e=r.length,n=t.length-e+1;e:for(var o=0;o<n;o++)for(;o<n;o++){for(var i=0;i<e;i++)if(t[o+i]!==r[i])continue e;return o}return-1}function ty(r,t){var e=v_(r,t);if(e<0){e=t.length;for(var n=0,o=r.length;n<o;++n)t.push(r[n])}return e}function x_(r,t){var e,n=[],o={},i=ep(Qy);for(var a in r){var s=i[a];if(s===void 0&&(s=a),e=parseInt(s),isNaN(e))throw new Error('Name table entry "'+a+'" does not exist, see nameTableNames for complete list.');o[e]=r[a],n.push(e)}for(var l=ep(Jy),u=ep(e0),c=[],p=[],f=0;f<n.length;f++){e=n[f];var d=o[e];for(var h in d){var m=d[h],g=1,v=l[h],x=d_[v],b=t0(g,x,v),w=te.MACSTRING(m,b);w===void 0&&(g=0,v=t.indexOf(h),v<0&&(v=t.length,t.push(h)),x=4,w=te.UTF16(m));var S=ty(w,p);c.push(ey(g,x,v,e,w.length,S));var _=u[h];if(_!==void 0){var T=te.UTF16(m),y=ty(T,p);c.push(ey(3,1,_,e,T.length,y))}}}c.sort(function(I,C){return I.platformID-C.platformID||I.encodingID-C.encodingID||I.languageID-C.languageID||I.nameID-C.nameID});for(var O=new le.Table("name",[{name:"format",type:"USHORT",value:0},{name:"count",type:"USHORT",value:c.length},{name:"stringOffset",type:"USHORT",value:6+c.length*12}]),A=0;A<c.length;A++)O.fields.push({name:"record_"+A,type:"RECORD",value:c[A]});return O.fields.push({name:"strings",type:"LITERAL",value:p}),O}var r0={parse:y_,make:x_},hp=[{begin:0,end:127},{begin:128,end:255},{begin:256,end:383},{begin:384,end:591},{begin:592,end:687},{begin:688,end:767},{begin:768,end:879},{begin:880,end:1023},{begin:11392,end:11519},{begin:1024,end:1279},{begin:1328,end:1423},{begin:1424,end:1535},{begin:42240,end:42559},{begin:1536,end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}];function b_(r){for(var t=0;t<hp.length;t+=1){var e=hp[t];if(r>=e.begin&&r<e.end)return t}return-1}function S_(r,t){var e={},n=new pe.Parser(r,t);e.version=n.parseUShort(),e.xAvgCharWidth=n.parseShort(),e.usWeightClass=n.parseUShort(),e.usWidthClass=n.parseUShort(),e.fsType=n.parseUShort(),e.ySubscriptXSize=n.parseShort(),e.ySubscriptYSize=n.parseShort(),e.ySubscriptXOffset=n.parseShort(),e.ySubscriptYOffset=n.parseShort(),e.ySuperscriptXSize=n.parseShort(),e.ySuperscriptYSize=n.parseShort(),e.ySuperscriptXOffset=n.parseShort(),e.ySuperscriptYOffset=n.parseShort(),e.yStrikeoutSize=n.parseShort(),e.yStrikeoutPosition=n.parseShort(),e.sFamilyClass=n.parseShort(),e.panose=[];for(var o=0;o<10;o++)e.panose[o]=n.parseByte();return e.ulUnicodeRange1=n.parseULong(),e.ulUnicodeRange2=n.parseULong(),e.ulUnicodeRange3=n.parseULong(),e.ulUnicodeRange4=n.parseULong(),e.achVendID=String.fromCharCode(n.parseByte(),n.parseByte(),n.parseByte(),n.parseByte()),e.fsSelection=n.parseUShort(),e.usFirstCharIndex=n.parseUShort(),e.usLastCharIndex=n.parseUShort(),e.sTypoAscender=n.parseShort(),e.sTypoDescender=n.parseShort(),e.sTypoLineGap=n.parseShort(),e.usWinAscent=n.parseUShort(),e.usWinDescent=n.parseUShort(),e.version>=1&&(e.ulCodePageRange1=n.parseULong(),e.ulCodePageRange2=n.parseULong()),e.version>=2&&(e.sxHeight=n.parseShort(),e.sCapHeight=n.parseShort(),e.usDefaultChar=n.parseUShort(),e.usBreakChar=n.parseUShort(),e.usMaxContent=n.parseUShort()),e}function w_(r){return new le.Table("OS/2",[{name:"version",type:"USHORT",value:3},{name:"xAvgCharWidth",type:"SHORT",value:0},{name:"usWeightClass",type:"USHORT",value:0},{name:"usWidthClass",type:"USHORT",value:0},{name:"fsType",type:"USHORT",value:0},{name:"ySubscriptXSize",type:"SHORT",value:650},{name:"ySubscriptYSize",type:"SHORT",value:699},{name:"ySubscriptXOffset",type:"SHORT",value:0},{name:"ySubscriptYOffset",type:"SHORT",value:140},{name:"ySuperscriptXSize",type:"SHORT",value:650},{name:"ySuperscriptYSize",type:"SHORT",value:699},{name:"ySuperscriptXOffset",type:"SHORT",value:0},{name:"ySuperscriptYOffset",type:"SHORT",value:479},{name:"yStrikeoutSize",type:"SHORT",value:49},{name:"yStrikeoutPosition",type:"SHORT",value:258},{name:"sFamilyClass",type:"SHORT",value:0},{name:"bFamilyType",type:"BYTE",value:0},{name:"bSerifStyle",type:"BYTE",value:0},{name:"bWeight",type:"BYTE",value:0},{name:"bProportion",type:"BYTE",value:0},{name:"bContrast",type:"BYTE",value:0},{name:"bStrokeVariation",type:"BYTE",value:0},{name:"bArmStyle",type:"BYTE",value:0},{name:"bLetterform",type:"BYTE",value:0},{name:"bMidline",type:"BYTE",value:0},{name:"bXHeight",type:"BYTE",value:0},{name:"ulUnicodeRange1",type:"ULONG",value:0},{name:"ulUnicodeRange2",type:"ULONG",value:0},{name:"ulUnicodeRange3",type:"ULONG",value:0},{name:"ulUnicodeRange4",type:"ULONG",value:0},{name:"achVendID",type:"CHARARRAY",value:"XXXX"},{name:"fsSelection",type:"USHORT",value:0},{name:"usFirstCharIndex",type:"USHORT",value:0},{name:"usLastCharIndex",type:"USHORT",value:0},{name:"sTypoAscender",type:"SHORT",value:0},{name:"sTypoDescender",type:"SHORT",value:0},{name:"sTypoLineGap",type:"SHORT",value:0},{name:"usWinAscent",type:"USHORT",value:0},{name:"usWinDescent",type:"USHORT",value:0},{name:"ulCodePageRange1",type:"ULONG",value:0},{name:"ulCodePageRange2",type:"ULONG",value:0},{name:"sxHeight",type:"SHORT",value:0},{name:"sCapHeight",type:"SHORT",value:0},{name:"usDefaultChar",type:"USHORT",value:0},{name:"usBreakChar",type:"USHORT",value:0},{name:"usMaxContext",type:"USHORT",value:0}],r)}var mp={parse:S_,make:w_,unicodeRanges:hp,getUnicodeRange:b_};function T_(r,t){var e={},n=new pe.Parser(r,t);switch(e.version=n.parseVersion(),e.italicAngle=n.parseFixed(),e.underlinePosition=n.parseShort(),e.underlineThickness=n.parseShort(),e.isFixedPitch=n.parseULong(),e.minMemType42=n.parseULong(),e.maxMemType42=n.parseULong(),e.minMemType1=n.parseULong(),e.maxMemType1=n.parseULong(),e.version){case 1:e.names=Ao.slice();break;case 2:e.numberOfGlyphs=n.parseUShort(),e.glyphNameIndex=new Array(e.numberOfGlyphs);for(var o=0;o<e.numberOfGlyphs;o++)e.glyphNameIndex[o]=n.parseUShort();e.names=[];for(var i=0;i<e.numberOfGlyphs;i++)if(e.glyphNameIndex[i]>=Ao.length){var a=n.parseChar();e.names.push(n.parseString(a))}break;case 2.5:e.numberOfGlyphs=n.parseUShort(),e.offset=new Array(e.numberOfGlyphs);for(var s=0;s<e.numberOfGlyphs;s++)e.offset[s]=n.parseChar();break}return e}function C_(){return new le.Table("post",[{name:"version",type:"FIXED",value:196608},{name:"italicAngle",type:"FIXED",value:0},{name:"underlinePosition",type:"FWORD",value:0},{name:"underlineThickness",type:"FWORD",value:0},{name:"isFixedPitch",type:"ULONG",value:0},{name:"minMemType42",type:"ULONG",value:0},{name:"maxMemType42",type:"ULONG",value:0},{name:"minMemType1",type:"ULONG",value:0},{name:"maxMemType1",type:"ULONG",value:0}])}var n0={parse:T_,make:C_},Tr=new Array(9);Tr[1]=function(){var t=this.offset+this.relativeOffset,e=this.parseUShort();if(e===1)return{substFormat:1,coverage:this.parsePointer(E.coverage),deltaGlyphId:this.parseUShort()};if(e===2)return{substFormat:2,coverage:this.parsePointer(E.coverage),substitute:this.parseOffset16List()};xe.assert(!1,"0x"+t.toString(16)+": lookup type 1 format must be 1 or 2.")};Tr[2]=function(){var t=this.parseUShort();return xe.argument(t===1,"GSUB Multiple Substitution Subtable identifier-format must be 1"),{substFormat:t,coverage:this.parsePointer(E.coverage),sequences:this.parseListOfLists()}};Tr[3]=function(){var t=this.parseUShort();return xe.argument(t===1,"GSUB Alternate Substitution Subtable identifier-format must be 1"),{substFormat:t,coverage:this.parsePointer(E.coverage),alternateSets:this.parseListOfLists()}};Tr[4]=function(){var t=this.parseUShort();return xe.argument(t===1,"GSUB ligature table identifier-format must be 1"),{substFormat:t,coverage:this.parsePointer(E.coverage),ligatureSets:this.parseListOfLists(function(){return{ligGlyph:this.parseUShort(),components:this.parseUShortList(this.parseUShort()-1)}})}};var Ui={sequenceIndex:E.uShort,lookupListIndex:E.uShort};Tr[5]=function(){var t=this.offset+this.relativeOffset,e=this.parseUShort();if(e===1)return{substFormat:e,coverage:this.parsePointer(E.coverage),ruleSets:this.parseListOfLists(function(){var i=this.parseUShort(),a=this.parseUShort();return{input:this.parseUShortList(i-1),lookupRecords:this.parseRecordList(a,Ui)}})};if(e===2)return{substFormat:e,coverage:this.parsePointer(E.coverage),classDef:this.parsePointer(E.classDef),classSets:this.parseListOfLists(function(){var i=this.parseUShort(),a=this.parseUShort();return{classes:this.parseUShortList(i-1),lookupRecords:this.parseRecordList(a,Ui)}})};if(e===3){var n=this.parseUShort(),o=this.parseUShort();return{substFormat:e,coverages:this.parseList(n,E.pointer(E.coverage)),lookupRecords:this.parseRecordList(o,Ui)}}xe.assert(!1,"0x"+t.toString(16)+": lookup type 5 format must be 1, 2 or 3.")};Tr[6]=function(){var t=this.offset+this.relativeOffset,e=this.parseUShort();if(e===1)return{substFormat:1,coverage:this.parsePointer(E.coverage),chainRuleSets:this.parseListOfLists(function(){return{backtrack:this.parseUShortList(),input:this.parseUShortList(this.parseShort()-1),lookahead:this.parseUShortList(),lookupRecords:this.parseRecordList(Ui)}})};if(e===2)return{substFormat:2,coverage:this.parsePointer(E.coverage),backtrackClassDef:this.parsePointer(E.classDef),inputClassDef:this.parsePointer(E.classDef),lookaheadClassDef:this.parsePointer(E.classDef),chainClassSet:this.parseListOfLists(function(){return{backtrack:this.parseUShortList(),input:this.parseUShortList(this.parseShort()-1),lookahead:this.parseUShortList(),lookupRecords:this.parseRecordList(Ui)}})};if(e===3)return{substFormat:3,backtrackCoverage:this.parseList(E.pointer(E.coverage)),inputCoverage:this.parseList(E.pointer(E.coverage)),lookaheadCoverage:this.parseList(E.pointer(E.coverage)),lookupRecords:this.parseRecordList(Ui)};xe.assert(!1,"0x"+t.toString(16)+": lookup type 6 format must be 1, 2 or 3.")};Tr[7]=function(){var t=this.parseUShort();xe.argument(t===1,"GSUB Extension Substitution subtable identifier-format must be 1");var e=this.parseUShort(),n=new E(this.data,this.offset+this.parseULong());return{substFormat:1,lookupType:e,extension:Tr[e].call(n)}};Tr[8]=function(){var t=this.parseUShort();return xe.argument(t===1,"GSUB Reverse Chaining Contextual Single Substitution Subtable identifier-format must be 1"),{substFormat:t,coverage:this.parsePointer(E.coverage),backtrackCoverage:this.parseList(E.pointer(E.coverage)),lookaheadCoverage:this.parseList(E.pointer(E.coverage)),substitutes:this.parseUShortList()}};function A_(r,t){t=t||0;var e=new E(r,t),n=e.parseVersion(1);return xe.argument(n===1||n===1.1,"Unsupported GSUB table version."),n===1?{version:n,scripts:e.parseScriptList(),features:e.parseFeatureList(),lookups:e.parseLookupList(Tr)}:{version:n,scripts:e.parseScriptList(),features:e.parseFeatureList(),lookups:e.parseLookupList(Tr),variations:e.parseFeatureVariationsList()}}var zi=new Array(9);zi[1]=function(t){return t.substFormat===1?new le.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)},{name:"deltaGlyphID",type:"USHORT",value:t.deltaGlyphId}]):new le.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:2},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)}].concat(le.ushortList("substitute",t.substitute)))};zi[2]=function(t){return xe.assert(t.substFormat===1,"Lookup type 2 substFormat must be 1."),new le.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)}].concat(le.tableList("seqSet",t.sequences,function(e){return new le.Table("sequenceSetTable",le.ushortList("sequence",e))})))};zi[3]=function(t){return xe.assert(t.substFormat===1,"Lookup type 3 substFormat must be 1."),new le.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)}].concat(le.tableList("altSet",t.alternateSets,function(e){return new le.Table("alternateSetTable",le.ushortList("alternate",e))})))};zi[4]=function(t){return xe.assert(t.substFormat===1,"Lookup type 4 substFormat must be 1."),new le.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)}].concat(le.tableList("ligSet",t.ligatureSets,function(e){return new le.Table("ligatureSetTable",le.tableList("ligature",e,function(n){return new le.Table("ligatureTable",[{name:"ligGlyph",type:"USHORT",value:n.ligGlyph}].concat(le.ushortList("component",n.components,n.components.length+1)))}))})))};zi[6]=function(t){if(t.substFormat===1){var e=new le.Table("chainContextTable",[{name:"substFormat",type:"USHORT",value:t.substFormat},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)}].concat(le.tableList("chainRuleSet",t.chainRuleSets,function(i){return new le.Table("chainRuleSetTable",le.tableList("chainRule",i,function(a){var s=le.ushortList("backtrackGlyph",a.backtrack,a.backtrack.length).concat(le.ushortList("inputGlyph",a.input,a.input.length+1)).concat(le.ushortList("lookaheadGlyph",a.lookahead,a.lookahead.length)).concat(le.ushortList("substitution",[],a.lookupRecords.length));return a.lookupRecords.forEach(function(l,u){s=s.concat({name:"sequenceIndex"+u,type:"USHORT",value:l.sequenceIndex}).concat({name:"lookupListIndex"+u,type:"USHORT",value:l.lookupListIndex})}),new le.Table("chainRuleTable",s)}))})));return e}else if(t.substFormat===2)xe.assert(!1,"lookup type 6 format 2 is not yet supported.");else if(t.substFormat===3){var n=[{name:"substFormat",type:"USHORT",value:t.substFormat}];n.push({name:"backtrackGlyphCount",type:"USHORT",value:t.backtrackCoverage.length}),t.backtrackCoverage.forEach(function(i,a){n.push({name:"backtrackCoverage"+a,type:"TABLE",value:new le.Coverage(i)})}),n.push({name:"inputGlyphCount",type:"USHORT",value:t.inputCoverage.length}),t.inputCoverage.forEach(function(i,a){n.push({name:"inputCoverage"+a,type:"TABLE",value:new le.Coverage(i)})}),n.push({name:"lookaheadGlyphCount",type:"USHORT",value:t.lookaheadCoverage.length}),t.lookaheadCoverage.forEach(function(i,a){n.push({name:"lookaheadCoverage"+a,type:"TABLE",value:new le.Coverage(i)})}),n.push({name:"substitutionCount",type:"USHORT",value:t.lookupRecords.length}),t.lookupRecords.forEach(function(i,a){n=n.concat({name:"sequenceIndex"+a,type:"USHORT",value:i.sequenceIndex}).concat({name:"lookupListIndex"+a,type:"USHORT",value:i.lookupListIndex})});var o=new le.Table("chainContextTable",n);return o}xe.assert(!1,"lookup type 6 format must be 1, 2 or 3.")};function __(r){return new le.Table("GSUB",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new le.ScriptList(r.scripts)},{name:"features",type:"TABLE",value:new le.FeatureList(r.features)},{name:"lookups",type:"TABLE",value:new le.LookupList(r.lookups,zi)}])}var o0={parse:A_,make:__};function O_(r,t){var e=new pe.Parser(r,t),n=e.parseULong();xe.argument(n===1,"Unsupported META table version."),e.parseULong(),e.parseULong();for(var o=e.parseULong(),i={},a=0;a<o;a++){var s=e.parseTag(),l=e.parseULong(),u=e.parseULong(),c=Vi.UTF8(r,t+l,u);i[s]=c}return i}function I_(r){var t=Object.keys(r).length,e="",n=16+t*12,o=new le.Table("meta",[{name:"version",type:"ULONG",value:1},{name:"flags",type:"ULONG",value:0},{name:"offset",type:"ULONG",value:n},{name:"numTags",type:"ULONG",value:t}]);for(var i in r){var a=e.length;e+=r[i],o.fields.push({name:"tag "+i,type:"TAG",value:i}),o.fields.push({name:"offset "+i,type:"ULONG",value:n+a}),o.fields.push({name:"length "+i,type:"ULONG",value:r[i].length})}return o.fields.push({name:"stringPool",type:"CHARARRAY",value:e}),o}var i0={parse:O_,make:I_};function ry(r){return Math.log(r)/Math.log(2)|0}function Tp(r){for(;r.length%4!==0;)r.push(0);for(var t=0,e=0;e<r.length;e+=4)t+=(r[e]<<24)+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];return t%=Math.pow(2,32),t}function ny(r,t,e,n){return new le.Record("Table Record",[{name:"tag",type:"TAG",value:r!==void 0?r:""},{name:"checkSum",type:"ULONG",value:t!==void 0?t:0},{name:"offset",type:"ULONG",value:e!==void 0?e:0},{name:"length",type:"ULONG",value:n!==void 0?n:0}])}function a0(r){var t=new le.Table("sfnt",[{name:"version",type:"TAG",value:"OTTO"},{name:"numTables",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);t.tables=r,t.numTables=r.length;var e=Math.pow(2,ry(t.numTables));t.searchRange=16*e,t.entrySelector=ry(e),t.rangeShift=t.numTables*16-t.searchRange;for(var n=[],o=[],i=t.sizeOf()+ny().sizeOf()*t.numTables;i%4!==0;)i+=1,o.push({name:"padding",type:"BYTE",value:0});for(var a=0;a<r.length;a+=1){var s=r[a];xe.argument(s.tableName.length===4,"Table name"+s.tableName+" is invalid.");var l=s.sizeOf(),u=ny(s.tableName,Tp(s.encode()),i,l);for(n.push({name:u.tag+" Table Record",type:"RECORD",value:u}),o.push({name:s.tableName+" table",type:"RECORD",value:s}),i+=l,xe.argument(!isNaN(i),"Something went wrong calculating the offset.");i%4!==0;)i+=1,o.push({name:"padding",type:"BYTE",value:0})}return n.sort(function(c,p){return c.value.tag>p.value.tag?1:-1}),t.fields=t.fields.concat(n),t.fields=t.fields.concat(o),t}function oy(r,t,e){for(var n=0;n<t.length;n+=1){var o=r.charToGlyphIndex(t[n]);if(o>0){var i=r.glyphs.get(o);return i.getMetrics()}}return e}function L_(r){for(var t=0,e=0;e<r.length;e+=1)t+=r[e];return t/r.length}function N_(r){for(var t=[],e=[],n=[],o=[],i=[],a=[],s=[],l,u=0,c=0,p=0,f=0,d=0,h=0;h<r.glyphs.length;h+=1){var m=r.glyphs.get(h),g=m.unicode|0;if(isNaN(m.advanceWidth))throw new Error("Glyph "+m.name+" ("+h+"): advanceWidth is not a number.");(l>g||l===void 0)&&g>0&&(l=g),u<g&&(u=g);var v=mp.getUnicodeRange(g);if(v<32)c|=1<<v;else if(v<64)p|=1<<v-32;else if(v<96)f|=1<<v-64;else if(v<123)d|=1<<v-96;else throw new Error("Unicode ranges bits > 123 are reserved for internal usage");if(m.name!==".notdef"){var x=m.getMetrics();t.push(x.xMin),e.push(x.yMin),n.push(x.xMax),o.push(x.yMax),a.push(x.leftSideBearing),s.push(x.rightSideBearing),i.push(m.advanceWidth)}}var b={xMin:Math.min.apply(null,t),yMin:Math.min.apply(null,e),xMax:Math.max.apply(null,n),yMax:Math.max.apply(null,o),advanceWidthMax:Math.max.apply(null,i),advanceWidthAvg:L_(i),minLeftSideBearing:Math.min.apply(null,a),maxLeftSideBearing:Math.max.apply(null,a),minRightSideBearing:Math.min.apply(null,s)};b.ascender=r.ascender,b.descender=r.descender;var w=Xy.make({flags:3,unitsPerEm:r.unitsPerEm,xMin:b.xMin,yMin:b.yMin,xMax:b.xMax,yMax:b.yMax,lowestRecPPEM:3,createdTimestamp:r.createdTimestamp}),S=Yy.make({ascender:b.ascender,descender:b.descender,advanceWidthMax:b.advanceWidthMax,minLeftSideBearing:b.minLeftSideBearing,minRightSideBearing:b.minRightSideBearing,xMaxExtent:b.maxLeftSideBearing+(b.xMax-b.xMin),numberOfHMetrics:r.glyphs.length}),_=Zy.make(r.glyphs.length),T=mp.make(Object.assign({xAvgCharWidth:Math.round(b.advanceWidthAvg),usFirstCharIndex:l,usLastCharIndex:u,ulUnicodeRange1:c,ulUnicodeRange2:p,ulUnicodeRange3:f,ulUnicodeRange4:d,sTypoAscender:b.ascender,sTypoDescender:b.descender,sTypoLineGap:0,usWinAscent:b.yMax,usWinDescent:Math.abs(b.yMin),ulCodePageRange1:1,sxHeight:oy(r,"xyvw",{yMax:Math.round(b.ascender/2)}).yMax,sCapHeight:oy(r,"HIKLEFJMNTZBDPRAGOQSUVWXY",b).yMax,usDefaultChar:r.hasChar(" ")?32:0,usBreakChar:r.hasChar(" ")?32:0},r.tables.os2)),y=$y.make(r.glyphs),O=By.make(r.glyphs),A=r.getEnglishName("fontFamily"),I=r.getEnglishName("fontSubfamily"),C=A+" "+I,N=r.getEnglishName("postScriptName");N||(N=A.replace(/\s/g,"")+"-"+I);var P={};for(var G in r.names)P[G]=r.names[G];P.uniqueID||(P.uniqueID={en:r.getEnglishName("manufacturer")+":"+C}),P.postScriptName||(P.postScriptName={en:N}),P.preferredFamily||(P.preferredFamily=r.names.fontFamily),P.preferredSubfamily||(P.preferredSubfamily=r.names.fontSubfamily);var $=[],Y=r0.make(P,$),ie=$.length>0?Ky.make($):void 0,j=n0.make(),H=qy.make(r.glyphs,{version:r.getEnglishName("version"),fullName:C,familyName:A,weightName:I,postScriptName:N,unitsPerEm:r.unitsPerEm,fontBBox:[0,b.yMin,b.ascender,b.advanceWidthMax]}),V=r.metas&&Object.keys(r.metas).length>0?i0.make(r.metas):void 0,R=[w,S,_,T,Y,O,j,H,y];ie&&R.push(ie),r.tables.gsub&&R.push(o0.make(r.tables.gsub)),V&&R.push(V);for(var D=a0(R),F=D.encode(),B=Tp(F),X=D.fields,K=!1,q=0;q<X.length;q+=1)if(X[q].name==="head table"){X[q].value.checkSumAdjustment=2981146554-B,K=!0;break}if(!K)throw new Error("Could not find head table with checkSum to adjust.");return D}var P_={make:a0,fontToTable:N_,computeCheckSum:Tp};function tp(r,t){for(var e=0,n=r.length-1;e<=n;){var o=e+n>>>1,i=r[o].tag;if(i===t)return o;i<t?e=o+1:n=o-1}return-e-1}function iy(r,t){for(var e=0,n=r.length-1;e<=n;){var o=e+n>>>1,i=r[o];if(i===t)return o;i<t?e=o+1:n=o-1}return-e-1}function ay(r,t){for(var e,n=0,o=r.length-1;n<=o;){var i=n+o>>>1;e=r[i];var a=e.start;if(a===t)return e;a<t?n=i+1:o=i-1}if(n>0)return e=r[n-1],t>e.end?0:e}function as(r,t){this.font=r,this.tableName=t}as.prototype={searchTag:tp,binSearch:iy,getTable:function(r){var t=this.font.tables[this.tableName];return!t&&r&&(t=this.font.tables[this.tableName]=this.createDefaultTable()),t},getScriptNames:function(){var r=this.getTable();return r?r.scripts.map(function(t){return t.tag}):[]},getDefaultScriptName:function(){var r=this.getTable();if(!!r){for(var t=!1,e=0;e<r.scripts.length;e++){var n=r.scripts[e].tag;if(n==="DFLT")return n;n==="latn"&&(t=!0)}if(t)return"latn"}},getScriptTable:function(r,t){var e=this.getTable(t);if(e){r=r||"DFLT";var n=e.scripts,o=tp(e.scripts,r);if(o>=0)return n[o].script;if(t){var i={tag:r,script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}};return n.splice(-1-o,0,i),i.script}}},getLangSysTable:function(r,t,e){var n=this.getScriptTable(r,e);if(n){if(!t||t==="dflt"||t==="DFLT")return n.defaultLangSys;var o=tp(n.langSysRecords,t);if(o>=0)return n.langSysRecords[o].langSys;if(e){var i={tag:t,langSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]}};return n.langSysRecords.splice(-1-o,0,i),i.langSys}}},getFeatureTable:function(r,t,e,n){var o=this.getLangSysTable(r,t,n);if(o){for(var i,a=o.featureIndexes,s=this.font.tables[this.tableName].features,l=0;l<a.length;l++)if(i=s[a[l]],i.tag===e)return i.feature;if(n){var u=s.length;return xe.assert(u===0||e>=s[u-1].tag,"Features must be added in alphabetical order."),i={tag:e,feature:{params:0,lookupListIndexes:[]}},s.push(i),a.push(u),i.feature}}},getLookupTables:function(r,t,e,n,o){var i=this.getFeatureTable(r,t,e,o),a=[];if(i){for(var s,l=i.lookupListIndexes,u=this.font.tables[this.tableName].lookups,c=0;c<l.length;c++)s=u[l[c]],s.lookupType===n&&a.push(s);if(a.length===0&&o){s={lookupType:n,lookupFlag:0,subtables:[],markFilteringSet:void 0};var p=u.length;return u.push(s),l.push(p),[s]}}return a},getGlyphClass:function(r,t){switch(r.format){case 1:return r.startGlyph<=t&&t<r.startGlyph+r.classes.length?r.classes[t-r.startGlyph]:0;case 2:var e=ay(r.ranges,t);return e?e.classId:0}},getCoverageIndex:function(r,t){switch(r.format){case 1:var e=iy(r.glyphs,t);return e>=0?e:-1;case 2:var n=ay(r.ranges,t);return n?n.index+t-n.start:-1}},expandCoverage:function(r){if(r.format===1)return r.glyphs;for(var t=[],e=r.ranges,n=0;n<e.length;n++)for(var o=e[n],i=o.start,a=o.end,s=i;s<=a;s++)t.push(s);return t}};function ss(r){as.call(this,r,"gpos")}ss.prototype=as.prototype;ss.prototype.init=function(){var r=this.getDefaultScriptName();this.defaultKerningTables=this.getKerningTables(r)};ss.prototype.getKerningValue=function(r,t,e){for(var n=0;n<r.length;n++)for(var o=r[n].subtables,i=0;i<o.length;i++){var a=o[i],s=this.getCoverageIndex(a.coverage,t);if(!(s<0))switch(a.posFormat){case 1:for(var l=a.pairSets[s],u=0;u<l.length;u++){var c=l[u];if(c.secondGlyph===e)return c.value1&&c.value1.xAdvance||0}break;case 2:var p=this.getGlyphClass(a.classDef1,t),f=this.getGlyphClass(a.classDef2,e),d=a.classRecords[p][f];return d.value1&&d.value1.xAdvance||0}}return 0};ss.prototype.getKerningTables=function(r,t){if(this.font.tables.gpos)return this.getLookupTables(r,t,"kern",2)};function tr(r){as.call(this,r,"gsub")}function M_(r,t){var e=r.length;if(e!==t.length)return!1;for(var n=0;n<e;n++)if(r[n]!==t[n])return!1;return!0}function Cp(r,t,e){for(var n=r.subtables,o=0;o<n.length;o++){var i=n[o];if(i.substFormat===t)return i}if(e)return n.push(e),e}tr.prototype=as.prototype;tr.prototype.createDefaultTable=function(){return{version:1,scripts:[{tag:"DFLT",script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}}],features:[],lookups:[]}};tr.prototype.getSingle=function(r,t,e){for(var n=[],o=this.getLookupTables(t,e,r,1),i=0;i<o.length;i++)for(var a=o[i].subtables,s=0;s<a.length;s++){var l=a[s],u=this.expandCoverage(l.coverage),c=void 0;if(l.substFormat===1){var p=l.deltaGlyphId;for(c=0;c<u.length;c++){var f=u[c];n.push({sub:f,by:f+p})}}else{var d=l.substitute;for(c=0;c<u.length;c++)n.push({sub:u[c],by:d[c]})}}return n};tr.prototype.getMultiple=function(r,t,e){for(var n=[],o=this.getLookupTables(t,e,r,2),i=0;i<o.length;i++)for(var a=o[i].subtables,s=0;s<a.length;s++){var l=a[s],u=this.expandCoverage(l.coverage),c=void 0;for(c=0;c<u.length;c++){var p=u[c],f=l.sequences[c];n.push({sub:p,by:f})}}return n};tr.prototype.getAlternates=function(r,t,e){for(var n=[],o=this.getLookupTables(t,e,r,3),i=0;i<o.length;i++)for(var a=o[i].subtables,s=0;s<a.length;s++)for(var l=a[s],u=this.expandCoverage(l.coverage),c=l.alternateSets,p=0;p<u.length;p++)n.push({sub:u[p],by:c[p]});return n};tr.prototype.getLigatures=function(r,t,e){for(var n=[],o=this.getLookupTables(t,e,r,4),i=0;i<o.length;i++)for(var a=o[i].subtables,s=0;s<a.length;s++)for(var l=a[s],u=this.expandCoverage(l.coverage),c=l.ligatureSets,p=0;p<u.length;p++)for(var f=u[p],d=c[p],h=0;h<d.length;h++){var m=d[h];n.push({sub:[f].concat(m.components),by:m.ligGlyph})}return n};tr.prototype.addSingle=function(r,t,e,n){var o=this.getLookupTables(e,n,r,1,!0)[0],i=Cp(o,2,{substFormat:2,coverage:{format:1,glyphs:[]},substitute:[]});xe.assert(i.coverage.format===1,"Single: unable to modify coverage table format "+i.coverage.format);var a=t.sub,s=this.binSearch(i.coverage.glyphs,a);s<0&&(s=-1-s,i.coverage.glyphs.splice(s,0,a),i.substitute.splice(s,0,0)),i.substitute[s]=t.by};tr.prototype.addMultiple=function(r,t,e,n){xe.assert(t.by instanceof Array&&t.by.length>1,'Multiple: "by" must be an array of two or more ids');var o=this.getLookupTables(e,n,r,2,!0)[0],i=Cp(o,1,{substFormat:1,coverage:{format:1,glyphs:[]},sequences:[]});xe.assert(i.coverage.format===1,"Multiple: unable to modify coverage table format "+i.coverage.format);var a=t.sub,s=this.binSearch(i.coverage.glyphs,a);s<0&&(s=-1-s,i.coverage.glyphs.splice(s,0,a),i.sequences.splice(s,0,0)),i.sequences[s]=t.by};tr.prototype.addAlternate=function(r,t,e,n){var o=this.getLookupTables(e,n,r,3,!0)[0],i=Cp(o,1,{substFormat:1,coverage:{format:1,glyphs:[]},alternateSets:[]});xe.assert(i.coverage.format===1,"Alternate: unable to modify coverage table format "+i.coverage.format);var a=t.sub,s=this.binSearch(i.coverage.glyphs,a);s<0&&(s=-1-s,i.coverage.glyphs.splice(s,0,a),i.alternateSets.splice(s,0,0)),i.alternateSets[s]=t.by};tr.prototype.addLigature=function(r,t,e,n){var o=this.getLookupTables(e,n,r,4,!0)[0],i=o.subtables[0];i||(i={substFormat:1,coverage:{format:1,glyphs:[]},ligatureSets:[]},o.subtables[0]=i),xe.assert(i.coverage.format===1,"Ligature: unable to modify coverage table format "+i.coverage.format);var a=t.sub[0],s=t.sub.slice(1),l={ligGlyph:t.by,components:s},u=this.binSearch(i.coverage.glyphs,a);if(u>=0){for(var c=i.ligatureSets[u],p=0;p<c.length;p++)if(M_(c[p].components,s))return;c.push(l)}else u=-1-u,i.coverage.glyphs.splice(u,0,a),i.ligatureSets.splice(u,0,[l])};tr.prototype.getFeature=function(r,t,e){if(/ss\d\d/.test(r))return this.getSingle(r,t,e);switch(r){case"aalt":case"salt":return this.getSingle(r,t,e).concat(this.getAlternates(r,t,e));case"dlig":case"liga":case"rlig":return this.getLigatures(r,t,e);case"ccmp":return this.getMultiple(r,t,e).concat(this.getLigatures(r,t,e));case"stch":return this.getMultiple(r,t,e)}};tr.prototype.add=function(r,t,e,n){if(/ss\d\d/.test(r))return this.addSingle(r,t,e,n);switch(r){case"aalt":case"salt":return typeof t.by=="number"?this.addSingle(r,t,e,n):this.addAlternate(r,t,e,n);case"dlig":case"liga":case"rlig":return this.addLigature(r,t,e,n);case"ccmp":return t.by instanceof Array?this.addMultiple(r,t,e,n):this.addLigature(r,t,e,n)}};function E_(){return typeof window<"u"}function D_(r){for(var t=new ArrayBuffer(r.length),e=new Uint8Array(t),n=0;n<r.length;++n)e[n]=r[n];return t}function B_(r){for(var t=new Buffer(r.byteLength),e=new Uint8Array(r),n=0;n<t.length;++n)t[n]=e[n];return t}function es(r,t){if(!r)throw t}function sy(r,t,e,n,o){var i;return(t&n)>0?(i=r.parseByte(),(t&o)===0&&(i=-i),i=e+i):(t&o)>0?i=e:i=e+r.parseShort(),i}function s0(r,t,e){var n=new pe.Parser(t,e);r.numberOfContours=n.parseShort(),r._xMin=n.parseShort(),r._yMin=n.parseShort(),r._xMax=n.parseShort(),r._yMax=n.parseShort();var o,i;if(r.numberOfContours>0){for(var a=r.endPointIndices=[],s=0;s<r.numberOfContours;s+=1)a.push(n.parseUShort());r.instructionLength=n.parseUShort(),r.instructions=[];for(var l=0;l<r.instructionLength;l+=1)r.instructions.push(n.parseByte());var u=a[a.length-1]+1;o=[];for(var c=0;c<u;c+=1)if(i=n.parseByte(),o.push(i),(i&8)>0)for(var p=n.parseByte(),f=0;f<p;f+=1)o.push(i),c+=1;if(xe.argument(o.length===u,"Bad flags."),a.length>0){var d=[],h;if(u>0){for(var m=0;m<u;m+=1)i=o[m],h={},h.onCurve=!!(i&1),h.lastPointOfContour=a.indexOf(m)>=0,d.push(h);for(var g=0,v=0;v<u;v+=1)i=o[v],h=d[v],h.x=sy(n,i,g,2,16),g=h.x;for(var x=0,b=0;b<u;b+=1)i=o[b],h=d[b],h.y=sy(n,i,x,4,32),x=h.y}r.points=d}else r.points=[]}else if(r.numberOfContours===0)r.points=[];else{r.isComposite=!0,r.points=[],r.components=[];for(var w=!0;w;){o=n.parseUShort();var S={glyphIndex:n.parseUShort(),xScale:1,scale01:0,scale10:0,yScale:1,dx:0,dy:0};(o&1)>0?(o&2)>0?(S.dx=n.parseShort(),S.dy=n.parseShort()):S.matchedPoints=[n.parseUShort(),n.parseUShort()]:(o&2)>0?(S.dx=n.parseChar(),S.dy=n.parseChar()):S.matchedPoints=[n.parseByte(),n.parseByte()],(o&8)>0?S.xScale=S.yScale=n.parseF2Dot14():(o&64)>0?(S.xScale=n.parseF2Dot14(),S.yScale=n.parseF2Dot14()):(o&128)>0&&(S.xScale=n.parseF2Dot14(),S.scale01=n.parseF2Dot14(),S.scale10=n.parseF2Dot14(),S.yScale=n.parseF2Dot14()),r.components.push(S),w=!!(o&32)}if(o&256){r.instructionLength=n.parseUShort(),r.instructions=[];for(var _=0;_<r.instructionLength;_+=1)r.instructions.push(n.parseByte())}}}function rp(r,t){for(var e=[],n=0;n<r.length;n+=1){var o=r[n],i={x:t.xScale*o.x+t.scale01*o.y+t.dx,y:t.scale10*o.x+t.yScale*o.y+t.dy,onCurve:o.onCurve,lastPointOfContour:o.lastPointOfContour};e.push(i)}return e}function F_(r){for(var t=[],e=[],n=0;n<r.length;n+=1){var o=r[n];e.push(o),o.lastPointOfContour&&(t.push(e),e=[])}return xe.argument(e.length===0,"There are still points left in the current contour."),t}function l0(r){var t=new ht;if(!r)return t;for(var e=F_(r),n=0;n<e.length;++n){var o=e[n],i=null,a=o[o.length-1],s=o[0];if(a.onCurve)t.moveTo(a.x,a.y);else if(s.onCurve)t.moveTo(s.x,s.y);else{var l={x:(a.x+s.x)*.5,y:(a.y+s.y)*.5};t.moveTo(l.x,l.y)}for(var u=0;u<o.length;++u)if(i=a,a=s,s=o[(u+1)%o.length],a.onCurve)t.lineTo(a.x,a.y);else{var c=i,p=s;i.onCurve||(c={x:(a.x+i.x)*.5,y:(a.y+i.y)*.5}),s.onCurve||(p={x:(a.x+s.x)*.5,y:(a.y+s.y)*.5}),t.quadraticCurveTo(a.x,a.y,p.x,p.y)}t.closePath()}return t}function c0(r,t){if(t.isComposite)for(var e=0;e<t.components.length;e+=1){var n=t.components[e],o=r.get(n.glyphIndex);if(o.getPath(),o.points){var i=void 0;if(n.matchedPoints===void 0)i=rp(o.points,n);else{if(n.matchedPoints[0]>t.points.length-1||n.matchedPoints[1]>o.points.length-1)throw Error("Matched points out of range in "+t.name);var a=t.points[n.matchedPoints[0]],s=o.points[n.matchedPoints[1]],l={xScale:n.xScale,scale01:n.scale01,scale10:n.scale10,yScale:n.yScale,dx:0,dy:0};s=rp([s],l)[0],l.dx=a.x-s.x,l.dy=a.y-s.y,i=rp(o.points,l)}t.points=t.points.concat(i)}}return l0(t.points)}function R_(r,t,e,n){for(var o=new an.GlyphSet(n),i=0;i<e.length-1;i+=1){var a=e[i],s=e[i+1];a!==s?o.push(i,an.ttfGlyphLoader(n,i,s0,r,t+a,c0)):o.push(i,an.glyphLoader(n,i))}return o}function k_(r,t,e,n){var o=new an.GlyphSet(n);return n._push=function(i){var a=e[i],s=e[i+1];a!==s?o.push(i,an.ttfGlyphLoader(n,i,s0,r,t+a,c0)):o.push(i,an.glyphLoader(n,i))},o}function G_(r,t,e,n,o){return o.lowMemory?k_(r,t,e,n):R_(r,t,e,n)}var u0={getPath:l0,parse:G_},p0,Oo,f0,gp;function d0(r){this.font=r,this.getCommands=function(t){return u0.getPath(t).commands},this._fpgmState=this._prepState=void 0,this._errorState=0}function U_(r){return r}function h0(r){return Math.sign(r)*Math.round(Math.abs(r))}function V_(r){return Math.sign(r)*Math.round(Math.abs(r*2))/2}function z_(r){return Math.sign(r)*(Math.round(Math.abs(r)+.5)-.5)}function j_(r){return Math.sign(r)*Math.ceil(Math.abs(r))}function H_(r){return Math.sign(r)*Math.floor(Math.abs(r))}var m0=function(r){var t=this.srPeriod,e=this.srPhase,n=this.srThreshold,o=1;return r<0&&(r=-r,o=-1),r+=n-e,r=Math.trunc(r/t)*t,r+=e,r<0?e*o:r*o},on={x:1,y:0,axis:"x",distance:function(r,t,e,n){return(e?r.xo:r.x)-(n?t.xo:t.x)},interpolate:function(r,t,e,n){var o,i,a,s,l,u,c;if(!n||n===this){if(o=r.xo-t.xo,i=r.xo-e.xo,l=t.x-t.xo,u=e.x-e.xo,a=Math.abs(o),s=Math.abs(i),c=a+s,c===0){r.x=r.xo+(l+u)/2;return}r.x=r.xo+(l*s+u*a)/c;return}if(o=n.distance(r,t,!0,!0),i=n.distance(r,e,!0,!0),l=n.distance(t,t,!1,!0),u=n.distance(e,e,!1,!0),a=Math.abs(o),s=Math.abs(i),c=a+s,c===0){on.setRelative(r,r,(l+u)/2,n,!0);return}on.setRelative(r,r,(l*s+u*a)/c,n,!0)},normalSlope:Number.NEGATIVE_INFINITY,setRelative:function(r,t,e,n,o){if(!n||n===this){r.x=(o?t.xo:t.x)+e;return}var i=o?t.xo:t.x,a=o?t.yo:t.y,s=i+e*n.x,l=a+e*n.y;r.x=s+(r.y-l)/n.normalSlope},slope:0,touch:function(r){r.xTouched=!0},touched:function(r){return r.xTouched},untouch:function(r){r.xTouched=!1}},vn={x:0,y:1,axis:"y",distance:function(r,t,e,n){return(e?r.yo:r.y)-(n?t.yo:t.y)},interpolate:function(r,t,e,n){var o,i,a,s,l,u,c;if(!n||n===this){if(o=r.yo-t.yo,i=r.yo-e.yo,l=t.y-t.yo,u=e.y-e.yo,a=Math.abs(o),s=Math.abs(i),c=a+s,c===0){r.y=r.yo+(l+u)/2;return}r.y=r.yo+(l*s+u*a)/c;return}if(o=n.distance(r,t,!0,!0),i=n.distance(r,e,!0,!0),l=n.distance(t,t,!1,!0),u=n.distance(e,e,!1,!0),a=Math.abs(o),s=Math.abs(i),c=a+s,c===0){vn.setRelative(r,r,(l+u)/2,n,!0);return}vn.setRelative(r,r,(l*s+u*a)/c,n,!0)},normalSlope:0,setRelative:function(r,t,e,n,o){if(!n||n===this){r.y=(o?t.yo:t.y)+e;return}var i=o?t.xo:t.x,a=o?t.yo:t.y,s=i+e*n.x,l=a+e*n.y;r.y=l+n.normalSlope*(r.x-s)},slope:Number.POSITIVE_INFINITY,touch:function(r){r.yTouched=!0},touched:function(r){return r.yTouched},untouch:function(r){r.yTouched=!1}};Object.freeze(on);Object.freeze(vn);function ls(r,t){this.x=r,this.y=t,this.axis=void 0,this.slope=t/r,this.normalSlope=-r/t,Object.freeze(this)}ls.prototype.distance=function(r,t,e,n){return this.x*on.distance(r,t,e,n)+this.y*vn.distance(r,t,e,n)};ls.prototype.interpolate=function(r,t,e,n){var o,i,a,s,l,u,c;if(a=n.distance(r,t,!0,!0),s=n.distance(r,e,!0,!0),o=n.distance(t,t,!1,!0),i=n.distance(e,e,!1,!0),l=Math.abs(a),u=Math.abs(s),c=l+u,c===0){this.setRelative(r,r,(o+i)/2,n,!0);return}this.setRelative(r,r,(o*u+i*l)/c,n,!0)};ls.prototype.setRelative=function(r,t,e,n,o){n=n||this;var i=o?t.xo:t.x,a=o?t.yo:t.y,s=i+e*n.x,l=a+e*n.y,u=n.normalSlope,c=this.slope,p=r.x,f=r.y;r.x=(c*p-u*s+l-f)/(c-u),r.y=c*(r.x-p)+f};ls.prototype.touch=function(r){r.xTouched=!0,r.yTouched=!0};function cs(r,t){var e=Math.sqrt(r*r+t*t);return r/=e,t/=e,r===1&&t===0?on:r===0&&t===1?vn:new ls(r,t)}function xn(r,t,e,n){this.x=this.xo=Math.round(r*64)/64,this.y=this.yo=Math.round(t*64)/64,this.lastPointOfContour=e,this.onCurve=n,this.prevPointOnContour=void 0,this.nextPointOnContour=void 0,this.xTouched=!1,this.yTouched=!1,Object.preventExtensions(this)}xn.prototype.nextTouched=function(r){for(var t=this.nextPointOnContour;!r.touched(t)&&t!==this;)t=t.nextPointOnContour;return t};xn.prototype.prevTouched=function(r){for(var t=this.prevPointOnContour;!r.touched(t)&&t!==this;)t=t.prevPointOnContour;return t};var is=Object.freeze(new xn(0,0)),W_={cvCutIn:17/16,deltaBase:9,deltaShift:.125,loop:1,minDis:1,autoFlip:!0};function Kn(r,t){switch(this.env=r,this.stack=[],this.prog=t,r){case"glyf":this.zp0=this.zp1=this.zp2=1,this.rp0=this.rp1=this.rp2=0;case"prep":this.fv=this.pv=this.dpv=on,this.round=h0}}d0.prototype.exec=function(r,t){if(typeof t!="number")throw new Error("Point size is not a number!");if(!(this._errorState>2)){var e=this.font,n=this._prepState;if(!n||n.ppem!==t){var o=this._fpgmState;if(!o){Kn.prototype=W_,o=this._fpgmState=new Kn("fpgm",e.tables.fpgm),o.funcs=[],o.font=e,exports.DEBUG&&(console.log("---EXEC FPGM---"),o.step=-1);try{Oo(o)}catch(u){console.log("Hinting error in FPGM:"+u),this._errorState=3;return}}Kn.prototype=o,n=this._prepState=new Kn("prep",e.tables.prep),n.ppem=t;var i=e.tables.cvt;if(i)for(var a=n.cvt=new Array(i.length),s=t/e.unitsPerEm,l=0;l<i.length;l++)a[l]=i[l]*s;else n.cvt=[];exports.DEBUG&&(console.log("---EXEC PREP---"),n.step=-1);try{Oo(n)}catch(u){this._errorState<2&&console.log("Hinting error in PREP:"+u),this._errorState=2}}if(!(this._errorState>1))try{return f0(r,n)}catch(u){this._errorState<1&&(console.log("Hinting error:"+u),console.log("Note: further hinting errors are silenced")),this._errorState=1;return}}};f0=function(r,t){var e=t.ppem/t.font.unitsPerEm,n=e,o=r.components,i,a,s;if(Kn.prototype=t,!o)s=new Kn("glyf",r.instructions),exports.DEBUG&&(console.log("---EXEC GLYPH---"),s.step=-1),gp(r,s,e,n),a=s.gZone;else{var l=t.font;a=[],i=[];for(var u=0;u<o.length;u++){var c=o[u],p=l.glyphs.get(c.glyphIndex);s=new Kn("glyf",p.instructions),exports.DEBUG&&(console.log("---EXEC COMP "+u+"---"),s.step=-1),gp(p,s,e,n);for(var f=Math.round(c.dx*e),d=Math.round(c.dy*n),h=s.gZone,m=s.contours,g=0;g<h.length;g++){var v=h[g];v.xTouched=v.yTouched=!1,v.xo=v.x=v.x+f,v.yo=v.y=v.y+d}var x=a.length;a.push.apply(a,h);for(var b=0;b<m.length;b++)i.push(m[b]+x)}r.instructions&&!s.inhibitGridFit&&(s=new Kn("glyf",r.instructions),s.gZone=s.z0=s.z1=s.z2=a,s.contours=i,a.push(new xn(0,0),new xn(Math.round(r.advanceWidth*e),0)),exports.DEBUG&&(console.log("---EXEC COMPOSITE---"),s.step=-1),Oo(s),a.length-=2)}return a};gp=function(r,t,e,n){for(var o=r.points||[],i=o.length,a=t.gZone=t.z0=t.z1=t.z2=[],s=t.contours=[],l,u=0;u<i;u++)l=o[u],a[u]=new xn(l.x*e,l.y*n,l.lastPointOfContour,l.onCurve);for(var c,p,f=0;f<i;f++)l=a[f],c||(c=l,s.push(f)),l.lastPointOfContour?(l.nextPointOnContour=c,c.prevPointOnContour=l,c=void 0):(p=a[f+1],l.nextPointOnContour=p,p.prevPointOnContour=l);if(!t.inhibitGridFit){if(exports.DEBUG){console.log("PROCESSING GLYPH",t.stack);for(var d=0;d<i;d++)console.log(d,a[d].x,a[d].y)}if(a.push(new xn(0,0),new xn(Math.round(r.advanceWidth*e),0)),Oo(t),a.length-=2,exports.DEBUG){console.log("FINISHED GLYPH",t.stack);for(var h=0;h<i;h++)console.log(h,a[h].x,a[h].y)}}};Oo=function(r){var t=r.prog;if(!!t){var e=t.length,n;for(r.ip=0;r.ip<e;r.ip++){if(exports.DEBUG&&r.step++,n=p0[t[r.ip]],!n)throw new Error("unknown instruction: 0x"+Number(t[r.ip]).toString(16));n(r)}}};function dc(r){for(var t=r.tZone=new Array(r.gZone.length),e=0;e<t.length;e++)t[e]=new xn(0,0)}function g0(r,t){var e=r.prog,n=r.ip,o=1,i;do if(i=e[++n],i===88)o++;else if(i===89)o--;else if(i===64)n+=e[n+1]+1;else if(i===65)n+=2*e[n+1]+1;else if(i>=176&&i<=183)n+=i-176+1;else if(i>=184&&i<=191)n+=(i-184+1)*2;else if(t&&o===1&&i===27)break;while(o>0);r.ip=n}function ly(r,t){exports.DEBUG&&console.log(t.step,"SVTCA["+r.axis+"]"),t.fv=t.pv=t.dpv=r}function cy(r,t){exports.DEBUG&&console.log(t.step,"SPVTCA["+r.axis+"]"),t.pv=t.dpv=r}function uy(r,t){exports.DEBUG&&console.log(t.step,"SFVTCA["+r.axis+"]"),t.fv=r}function py(r,t){var e=t.stack,n=e.pop(),o=e.pop(),i=t.z2[n],a=t.z1[o];exports.DEBUG&&console.log("SPVTL["+r+"]",n,o);var s,l;r?(s=i.y-a.y,l=a.x-i.x):(s=a.x-i.x,l=a.y-i.y),t.pv=t.dpv=cs(s,l)}function fy(r,t){var e=t.stack,n=e.pop(),o=e.pop(),i=t.z2[n],a=t.z1[o];exports.DEBUG&&console.log("SFVTL["+r+"]",n,o);var s,l;r?(s=i.y-a.y,l=a.x-i.x):(s=a.x-i.x,l=a.y-i.y),t.fv=cs(s,l)}function q_(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"SPVFS[]",e,n),r.pv=r.dpv=cs(n,e)}function X_(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"SPVFS[]",e,n),r.fv=cs(n,e)}function Y_(r){var t=r.stack,e=r.pv;exports.DEBUG&&console.log(r.step,"GPV[]"),t.push(e.x*16384),t.push(e.y*16384)}function $_(r){var t=r.stack,e=r.fv;exports.DEBUG&&console.log(r.step,"GFV[]"),t.push(e.x*16384),t.push(e.y*16384)}function K_(r){r.fv=r.pv,exports.DEBUG&&console.log(r.step,"SFVTPV[]")}function Z_(r){var t=r.stack,e=t.pop(),n=t.pop(),o=t.pop(),i=t.pop(),a=t.pop(),s=r.z0,l=r.z1,u=s[e],c=s[n],p=l[o],f=l[i],d=r.z2[a];exports.DEBUG&&console.log("ISECT[], ",e,n,o,i,a);var h=u.x,m=u.y,g=c.x,v=c.y,x=p.x,b=p.y,w=f.x,S=f.y,_=(h-g)*(b-S)-(m-v)*(x-w),T=h*v-m*g,y=x*S-b*w;d.x=(T*(x-w)-y*(h-g))/_,d.y=(T*(b-S)-y*(m-v))/_}function Q_(r){r.rp0=r.stack.pop(),exports.DEBUG&&console.log(r.step,"SRP0[]",r.rp0)}function J_(r){r.rp1=r.stack.pop(),exports.DEBUG&&console.log(r.step,"SRP1[]",r.rp1)}function eO(r){r.rp2=r.stack.pop(),exports.DEBUG&&console.log(r.step,"SRP2[]",r.rp2)}function tO(r){var t=r.stack.pop();switch(exports.DEBUG&&console.log(r.step,"SZP0[]",t),r.zp0=t,t){case 0:r.tZone||dc(r),r.z0=r.tZone;break;case 1:r.z0=r.gZone;break;default:throw new Error("Invalid zone pointer")}}function rO(r){var t=r.stack.pop();switch(exports.DEBUG&&console.log(r.step,"SZP1[]",t),r.zp1=t,t){case 0:r.tZone||dc(r),r.z1=r.tZone;break;case 1:r.z1=r.gZone;break;default:throw new Error("Invalid zone pointer")}}function nO(r){var t=r.stack.pop();switch(exports.DEBUG&&console.log(r.step,"SZP2[]",t),r.zp2=t,t){case 0:r.tZone||dc(r),r.z2=r.tZone;break;case 1:r.z2=r.gZone;break;default:throw new Error("Invalid zone pointer")}}function oO(r){var t=r.stack.pop();switch(exports.DEBUG&&console.log(r.step,"SZPS[]",t),r.zp0=r.zp1=r.zp2=t,t){case 0:r.tZone||dc(r),r.z0=r.z1=r.z2=r.tZone;break;case 1:r.z0=r.z1=r.z2=r.gZone;break;default:throw new Error("Invalid zone pointer")}}function iO(r){r.loop=r.stack.pop(),exports.DEBUG&&console.log(r.step,"SLOOP[]",r.loop)}function aO(r){exports.DEBUG&&console.log(r.step,"RTG[]"),r.round=h0}function sO(r){exports.DEBUG&&console.log(r.step,"RTHG[]"),r.round=z_}function lO(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"SMD[]",t),r.minDis=t/64}function cO(r){exports.DEBUG&&console.log(r.step,"ELSE[]"),g0(r,!1)}function uO(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"JMPR[]",t),r.ip+=t-1}function pO(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"SCVTCI[]",t),r.cvCutIn=t/64}function fO(r){var t=r.stack;exports.DEBUG&&console.log(r.step,"DUP[]"),t.push(t[t.length-1])}function np(r){exports.DEBUG&&console.log(r.step,"POP[]"),r.stack.pop()}function dO(r){exports.DEBUG&&console.log(r.step,"CLEAR[]"),r.stack.length=0}function hO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"SWAP[]"),t.push(e),t.push(n)}function mO(r){var t=r.stack;exports.DEBUG&&console.log(r.step,"DEPTH[]"),t.push(t.length)}function gO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"LOOPCALL[]",e,n);var o=r.ip,i=r.prog;r.prog=r.funcs[e];for(var a=0;a<n;a++)Oo(r),exports.DEBUG&&console.log(++r.step,a+1<n?"next loopcall":"done loopcall",a);r.ip=o,r.prog=i}function yO(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"CALL[]",t);var e=r.ip,n=r.prog;r.prog=r.funcs[t],Oo(r),r.ip=e,r.prog=n,exports.DEBUG&&console.log(++r.step,"returning from",t)}function vO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"CINDEX[]",e),t.push(t[t.length-e])}function xO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"MINDEX[]",e),t.push(t.splice(t.length-e,1)[0])}function bO(r){if(r.env!=="fpgm")throw new Error("FDEF not allowed here");var t=r.stack,e=r.prog,n=r.ip,o=t.pop(),i=n;for(exports.DEBUG&&console.log(r.step,"FDEF[]",o);e[++n]!==45;);r.ip=n,r.funcs[o]=e.slice(i+1,n)}function dy(r,t){var e=t.stack.pop(),n=t.z0[e],o=t.fv,i=t.pv;exports.DEBUG&&console.log(t.step,"MDAP["+r+"]",e);var a=i.distance(n,is);r&&(a=t.round(a)),o.setRelative(n,is,a,i),o.touch(n),t.rp0=t.rp1=e}function hy(r,t){var e=t.z2,n=e.length-2,o,i,a;exports.DEBUG&&console.log(t.step,"IUP["+r.axis+"]");for(var s=0;s<n;s++)o=e[s],!r.touched(o)&&(i=o.prevTouched(r),i!==o&&(a=o.nextTouched(r),i===a&&r.setRelative(o,o,r.distance(i,i,!1,!0),r,!0),r.interpolate(o,i,a,r)))}function my(r,t){for(var e=t.stack,n=r?t.rp1:t.rp2,o=(r?t.z0:t.z1)[n],i=t.fv,a=t.pv,s=t.loop,l=t.z2;s--;){var u=e.pop(),c=l[u],p=a.distance(o,o,!1,!0);i.setRelative(c,c,p,a),i.touch(c),exports.DEBUG&&console.log(t.step,(t.loop>1?"loop "+(t.loop-s)+": ":"")+"SHP["+(r?"rp1":"rp2")+"]",u)}t.loop=1}function gy(r,t){var e=t.stack,n=r?t.rp1:t.rp2,o=(r?t.z0:t.z1)[n],i=t.fv,a=t.pv,s=e.pop(),l=t.z2[t.contours[s]],u=l;exports.DEBUG&&console.log(t.step,"SHC["+r+"]",s);var c=a.distance(o,o,!1,!0);do u!==o&&i.setRelative(u,u,c,a),u=u.nextPointOnContour;while(u!==l)}function yy(r,t){var e=t.stack,n=r?t.rp1:t.rp2,o=(r?t.z0:t.z1)[n],i=t.fv,a=t.pv,s=e.pop();exports.DEBUG&&console.log(t.step,"SHZ["+r+"]",s);var l;switch(s){case 0:l=t.tZone;break;case 1:l=t.gZone;break;default:throw new Error("Invalid zone")}for(var u,c=a.distance(o,o,!1,!0),p=l.length-2,f=0;f<p;f++)u=l[f],i.setRelative(u,u,c,a)}function SO(r){for(var t=r.stack,e=r.loop,n=r.fv,o=t.pop()/64,i=r.z2;e--;){var a=t.pop(),s=i[a];exports.DEBUG&&console.log(r.step,(r.loop>1?"loop "+(r.loop-e)+": ":"")+"SHPIX[]",a,o),n.setRelative(s,s,o),n.touch(s)}r.loop=1}function wO(r){for(var t=r.stack,e=r.rp1,n=r.rp2,o=r.loop,i=r.z0[e],a=r.z1[n],s=r.fv,l=r.dpv,u=r.z2;o--;){var c=t.pop(),p=u[c];exports.DEBUG&&console.log(r.step,(r.loop>1?"loop "+(r.loop-o)+": ":"")+"IP[]",c,e,"<->",n),s.interpolate(p,i,a,l),s.touch(p)}r.loop=1}function vy(r,t){var e=t.stack,n=e.pop()/64,o=e.pop(),i=t.z1[o],a=t.z0[t.rp0],s=t.fv,l=t.pv;s.setRelative(i,a,n,l),s.touch(i),exports.DEBUG&&console.log(t.step,"MSIRP["+r+"]",n,o),t.rp1=t.rp0,t.rp2=o,r&&(t.rp0=o)}function TO(r){for(var t=r.stack,e=r.rp0,n=r.z0[e],o=r.loop,i=r.fv,a=r.pv,s=r.z1;o--;){var l=t.pop(),u=s[l];exports.DEBUG&&console.log(r.step,(r.loop>1?"loop "+(r.loop-o)+": ":"")+"ALIGNRP[]",l),i.setRelative(u,n,0,a),i.touch(u)}r.loop=1}function CO(r){exports.DEBUG&&console.log(r.step,"RTDG[]"),r.round=V_}function xy(r,t){var e=t.stack,n=e.pop(),o=e.pop(),i=t.z0[o],a=t.fv,s=t.pv,l=t.cvt[n];exports.DEBUG&&console.log(t.step,"MIAP["+r+"]",n,"(",l,")",o);var u=s.distance(i,is);r&&(Math.abs(u-l)<t.cvCutIn&&(u=l),u=t.round(u)),a.setRelative(i,is,u,s),t.zp0===0&&(i.xo=i.x,i.yo=i.y),a.touch(i),t.rp0=t.rp1=o}function AO(r){var t=r.prog,e=r.ip,n=r.stack,o=t[++e];exports.DEBUG&&console.log(r.step,"NPUSHB[]",o);for(var i=0;i<o;i++)n.push(t[++e]);r.ip=e}function _O(r){var t=r.ip,e=r.prog,n=r.stack,o=e[++t];exports.DEBUG&&console.log(r.step,"NPUSHW[]",o);for(var i=0;i<o;i++){var a=e[++t]<<8|e[++t];a&32768&&(a=-((a^65535)+1)),n.push(a)}r.ip=t}function OO(r){var t=r.stack,e=r.store;e||(e=r.store=[]);var n=t.pop(),o=t.pop();exports.DEBUG&&console.log(r.step,"WS",n,o),e[o]=n}function IO(r){var t=r.stack,e=r.store,n=t.pop();exports.DEBUG&&console.log(r.step,"RS",n);var o=e&&e[n]||0;t.push(o)}function LO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"WCVTP",e,n),r.cvt[n]=e/64}function NO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"RCVT",e),t.push(r.cvt[e]*64)}function by(r,t){var e=t.stack,n=e.pop(),o=t.z2[n];exports.DEBUG&&console.log(t.step,"GC["+r+"]",n),e.push(t.dpv.distance(o,is,r,!1)*64)}function Sy(r,t){var e=t.stack,n=e.pop(),o=e.pop(),i=t.z1[n],a=t.z0[o],s=t.dpv.distance(a,i,r,r);exports.DEBUG&&console.log(t.step,"MD["+r+"]",n,o,"->",s),t.stack.push(Math.round(s*64))}function PO(r){exports.DEBUG&&console.log(r.step,"MPPEM[]"),r.stack.push(r.ppem)}function MO(r){exports.DEBUG&&console.log(r.step,"FLIPON[]"),r.autoFlip=!0}function EO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"LT[]",e,n),t.push(n<e?1:0)}function DO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"LTEQ[]",e,n),t.push(n<=e?1:0)}function BO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"GT[]",e,n),t.push(n>e?1:0)}function FO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"GTEQ[]",e,n),t.push(n>=e?1:0)}function RO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"EQ[]",e,n),t.push(e===n?1:0)}function kO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"NEQ[]",e,n),t.push(e!==n?1:0)}function GO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"ODD[]",e),t.push(Math.trunc(e)%2?1:0)}function UO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"EVEN[]",e),t.push(Math.trunc(e)%2?0:1)}function VO(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"IF[]",t),t||(g0(r,!0),exports.DEBUG&&console.log(r.step,"EIF[]"))}function zO(r){exports.DEBUG&&console.log(r.step,"EIF[]")}function jO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"AND[]",e,n),t.push(e&&n?1:0)}function HO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"OR[]",e,n),t.push(e||n?1:0)}function WO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"NOT[]",e),t.push(e?0:1)}function op(r,t){var e=t.stack,n=e.pop(),o=t.fv,i=t.pv,a=t.ppem,s=t.deltaBase+(r-1)*16,l=t.deltaShift,u=t.z0;exports.DEBUG&&console.log(t.step,"DELTAP["+r+"]",n,e);for(var c=0;c<n;c++){var p=e.pop(),f=e.pop(),d=s+((f&240)>>4);if(d===a){var h=(f&15)-8;h>=0&&h++,exports.DEBUG&&console.log(t.step,"DELTAPFIX",p,"by",h*l);var m=u[p];o.setRelative(m,m,h*l,i)}}}function qO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"SDB[]",e),r.deltaBase=e}function XO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"SDS[]",e),r.deltaShift=Math.pow(.5,e)}function YO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"ADD[]",e,n),t.push(n+e)}function $O(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"SUB[]",e,n),t.push(n-e)}function KO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"DIV[]",e,n),t.push(n*64/e)}function ZO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"MUL[]",e,n),t.push(n*e/64)}function QO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"ABS[]",e),t.push(Math.abs(e))}function JO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"NEG[]",e),t.push(-e)}function e2(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"FLOOR[]",e),t.push(Math.floor(e/64)*64)}function t2(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"CEILING[]",e),t.push(Math.ceil(e/64)*64)}function oc(r,t){var e=t.stack,n=e.pop();exports.DEBUG&&console.log(t.step,"ROUND[]"),e.push(t.round(n/64)*64)}function r2(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"WCVTF[]",e,n),r.cvt[n]=e*r.ppem/r.font.unitsPerEm}function ip(r,t){var e=t.stack,n=e.pop(),o=t.ppem,i=t.deltaBase+(r-1)*16,a=t.deltaShift;exports.DEBUG&&console.log(t.step,"DELTAC["+r+"]",n,e);for(var s=0;s<n;s++){var l=e.pop(),u=e.pop(),c=i+((u&240)>>4);if(c===o){var p=(u&15)-8;p>=0&&p++;var f=p*a;exports.DEBUG&&console.log(t.step,"DELTACFIX",l,"by",f),t.cvt[l]+=f}}}function n2(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"SROUND[]",t),r.round=m0;var e;switch(t&192){case 0:e=.5;break;case 64:e=1;break;case 128:e=2;break;default:throw new Error("invalid SROUND value")}switch(r.srPeriod=e,t&48){case 0:r.srPhase=0;break;case 16:r.srPhase=.25*e;break;case 32:r.srPhase=.5*e;break;case 48:r.srPhase=.75*e;break;default:throw new Error("invalid SROUND value")}t&=15,t===0?r.srThreshold=0:r.srThreshold=(t/8-.5)*e}function o2(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"S45ROUND[]",t),r.round=m0;var e;switch(t&192){case 0:e=Math.sqrt(2)/2;break;case 64:e=Math.sqrt(2);break;case 128:e=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(r.srPeriod=e,t&48){case 0:r.srPhase=0;break;case 16:r.srPhase=.25*e;break;case 32:r.srPhase=.5*e;break;case 48:r.srPhase=.75*e;break;default:throw new Error("invalid S45ROUND value")}t&=15,t===0?r.srThreshold=0:r.srThreshold=(t/8-.5)*e}function i2(r){exports.DEBUG&&console.log(r.step,"ROFF[]"),r.round=U_}function a2(r){exports.DEBUG&&console.log(r.step,"RUTG[]"),r.round=j_}function s2(r){exports.DEBUG&&console.log(r.step,"RDTG[]"),r.round=H_}function l2(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"SCANCTRL[]",t)}function wy(r,t){var e=t.stack,n=e.pop(),o=e.pop(),i=t.z2[n],a=t.z1[o];exports.DEBUG&&console.log(t.step,"SDPVTL["+r+"]",n,o);var s,l;r?(s=i.y-a.y,l=a.x-i.x):(s=a.x-i.x,l=a.y-i.y),t.dpv=cs(s,l)}function c2(r){var t=r.stack,e=t.pop(),n=0;exports.DEBUG&&console.log(r.step,"GETINFO[]",e),e&1&&(n=35),e&32&&(n|=4096),t.push(n)}function u2(r){var t=r.stack,e=t.pop(),n=t.pop(),o=t.pop();exports.DEBUG&&console.log(r.step,"ROLL[]"),t.push(n),t.push(e),t.push(o)}function p2(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"MAX[]",e,n),t.push(Math.max(n,e))}function f2(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"MIN[]",e,n),t.push(Math.min(n,e))}function d2(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"SCANTYPE[]",t)}function h2(r){var t=r.stack.pop(),e=r.stack.pop();switch(exports.DEBUG&&console.log(r.step,"INSTCTRL[]",t,e),t){case 1:r.inhibitGridFit=!!e;return;case 2:r.ignoreCvt=!!e;return;default:throw new Error("invalid INSTCTRL[] selector")}}function Xn(r,t){var e=t.stack,n=t.prog,o=t.ip;exports.DEBUG&&console.log(t.step,"PUSHB["+r+"]");for(var i=0;i<r;i++)e.push(n[++o]);t.ip=o}function Yn(r,t){var e=t.ip,n=t.prog,o=t.stack;exports.DEBUG&&console.log(t.ip,"PUSHW["+r+"]");for(var i=0;i<r;i++){var a=n[++e]<<8|n[++e];a&32768&&(a=-((a^65535)+1)),o.push(a)}t.ip=e}function ue(r,t,e,n,o,i){var a=i.stack,s=r&&a.pop(),l=a.pop(),u=i.rp0,c=i.z0[u],p=i.z1[l],f=i.minDis,d=i.fv,h=i.dpv,m,g,v,x;g=m=h.distance(p,c,!0,!0),v=g>=0?1:-1,g=Math.abs(g),r&&(x=i.cvt[s],n&&Math.abs(g-x)<i.cvCutIn&&(g=x)),e&&g<f&&(g=f),n&&(g=i.round(g)),d.setRelative(p,c,v*g,h),d.touch(p),exports.DEBUG&&console.log(i.step,(r?"MIRP[":"MDRP[")+(t?"M":"m")+(e?">":"_")+(n?"R":"_")+(o===0?"Gr":o===1?"Bl":o===2?"Wh":"")+"]",r?s+"("+i.cvt[s]+","+x+")":"",l,"(d =",m,"->",v*g,")"),i.rp1=i.rp0,i.rp2=l,t&&(i.rp0=l)}p0=[ly.bind(void 0,vn),ly.bind(void 0,on),cy.bind(void 0,vn),cy.bind(void 0,on),uy.bind(void 0,vn),uy.bind(void 0,on),py.bind(void 0,0),py.bind(void 0,1),fy.bind(void 0,0),fy.bind(void 0,1),q_,X_,Y_,$_,K_,Z_,Q_,J_,eO,tO,rO,nO,oO,iO,aO,sO,lO,cO,uO,pO,void 0,void 0,fO,np,dO,hO,mO,vO,xO,void 0,void 0,void 0,gO,yO,bO,void 0,dy.bind(void 0,0),dy.bind(void 0,1),hy.bind(void 0,vn),hy.bind(void 0,on),my.bind(void 0,0),my.bind(void 0,1),gy.bind(void 0,0),gy.bind(void 0,1),yy.bind(void 0,0),yy.bind(void 0,1),SO,wO,vy.bind(void 0,0),vy.bind(void 0,1),TO,CO,xy.bind(void 0,0),xy.bind(void 0,1),AO,_O,OO,IO,LO,NO,by.bind(void 0,0),by.bind(void 0,1),void 0,Sy.bind(void 0,0),Sy.bind(void 0,1),PO,void 0,MO,void 0,void 0,EO,DO,BO,FO,RO,kO,GO,UO,VO,zO,jO,HO,WO,op.bind(void 0,1),qO,XO,YO,$O,KO,ZO,QO,JO,e2,t2,oc.bind(void 0,0),oc.bind(void 0,1),oc.bind(void 0,2),oc.bind(void 0,3),void 0,void 0,void 0,void 0,r2,op.bind(void 0,2),op.bind(void 0,3),ip.bind(void 0,1),ip.bind(void 0,2),ip.bind(void 0,3),n2,o2,void 0,void 0,i2,void 0,a2,s2,np,np,void 0,void 0,void 0,void 0,void 0,l2,wy.bind(void 0,0),wy.bind(void 0,1),c2,void 0,u2,p2,f2,d2,h2,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,Xn.bind(void 0,1),Xn.bind(void 0,2),Xn.bind(void 0,3),Xn.bind(void 0,4),Xn.bind(void 0,5),Xn.bind(void 0,6),Xn.bind(void 0,7),Xn.bind(void 0,8),Yn.bind(void 0,1),Yn.bind(void 0,2),Yn.bind(void 0,3),Yn.bind(void 0,4),Yn.bind(void 0,5),Yn.bind(void 0,6),Yn.bind(void 0,7),Yn.bind(void 0,8),ue.bind(void 0,0,0,0,0,0),ue.bind(void 0,0,0,0,0,1),ue.bind(void 0,0,0,0,0,2),ue.bind(void 0,0,0,0,0,3),ue.bind(void 0,0,0,0,1,0),ue.bind(void 0,0,0,0,1,1),ue.bind(void 0,0,0,0,1,2),ue.bind(void 0,0,0,0,1,3),ue.bind(void 0,0,0,1,0,0),ue.bind(void 0,0,0,1,0,1),ue.bind(void 0,0,0,1,0,2),ue.bind(void 0,0,0,1,0,3),ue.bind(void 0,0,0,1,1,0),ue.bind(void 0,0,0,1,1,1),ue.bind(void 0,0,0,1,1,2),ue.bind(void 0,0,0,1,1,3),ue.bind(void 0,0,1,0,0,0),ue.bind(void 0,0,1,0,0,1),ue.bind(void 0,0,1,0,0,2),ue.bind(void 0,0,1,0,0,3),ue.bind(void 0,0,1,0,1,0),ue.bind(void 0,0,1,0,1,1),ue.bind(void 0,0,1,0,1,2),ue.bind(void 0,0,1,0,1,3),ue.bind(void 0,0,1,1,0,0),ue.bind(void 0,0,1,1,0,1),ue.bind(void 0,0,1,1,0,2),ue.bind(void 0,0,1,1,0,3),ue.bind(void 0,0,1,1,1,0),ue.bind(void 0,0,1,1,1,1),ue.bind(void 0,0,1,1,1,2),ue.bind(void 0,0,1,1,1,3),ue.bind(void 0,1,0,0,0,0),ue.bind(void 0,1,0,0,0,1),ue.bind(void 0,1,0,0,0,2),ue.bind(void 0,1,0,0,0,3),ue.bind(void 0,1,0,0,1,0),ue.bind(void 0,1,0,0,1,1),ue.bind(void 0,1,0,0,1,2),ue.bind(void 0,1,0,0,1,3),ue.bind(void 0,1,0,1,0,0),ue.bind(void 0,1,0,1,0,1),ue.bind(void 0,1,0,1,0,2),ue.bind(void 0,1,0,1,0,3),ue.bind(void 0,1,0,1,1,0),ue.bind(void 0,1,0,1,1,1),ue.bind(void 0,1,0,1,1,2),ue.bind(void 0,1,0,1,1,3),ue.bind(void 0,1,1,0,0,0),ue.bind(void 0,1,1,0,0,1),ue.bind(void 0,1,1,0,0,2),ue.bind(void 0,1,1,0,0,3),ue.bind(void 0,1,1,0,1,0),ue.bind(void 0,1,1,0,1,1),ue.bind(void 0,1,1,0,1,2),ue.bind(void 0,1,1,0,1,3),ue.bind(void 0,1,1,1,0,0),ue.bind(void 0,1,1,1,0,1),ue.bind(void 0,1,1,1,0,2),ue.bind(void 0,1,1,1,0,3),ue.bind(void 0,1,1,1,1,0),ue.bind(void 0,1,1,1,1,1),ue.bind(void 0,1,1,1,1,2),ue.bind(void 0,1,1,1,1,3)];function ji(r){this.char=r,this.state={},this.activeState=null}function Ap(r,t,e){this.contextName=e,this.startIndex=r,this.endOffset=t}function m2(r,t,e){this.contextName=r,this.openRange=null,this.ranges=[],this.checkStart=t,this.checkEnd=e}function Cr(r,t){this.context=r,this.index=t,this.length=r.length,this.current=r[t],this.backtrack=r.slice(0,t),this.lookahead=r.slice(t+1)}function hc(r){this.eventId=r,this.subscribers=[]}function g2(r){var t=this,e=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];e.forEach(function(o){Object.defineProperty(t.events,o,{value:new hc(o)})}),r&&e.forEach(function(o){var i=r[o];typeof i=="function"&&t.events[o].subscribe(i)});var n=["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"];n.forEach(function(o){t.events[o].subscribe(t.updateContextsRanges)})}function Je(r){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],g2.call(this,r)}ji.prototype.setState=function(r,t){return this.state[r]=t,this.activeState={key:r,value:this.state[r]},this.activeState};ji.prototype.getState=function(r){return this.state[r]||null};Je.prototype.inboundIndex=function(r){return r>=0&&r<this.tokens.length};Je.prototype.composeRUD=function(r){var t=this,e=!0,n=r.map(function(i){return t[i[0]].apply(t,i.slice(1).concat(e))}),o=function(i){return typeof i=="object"&&i.hasOwnProperty("FAIL")};if(n.every(o))return{FAIL:"composeRUD: one or more operations hasn't completed successfully",report:n.filter(o)};this.dispatch("composeRUD",[n.filter(function(i){return!o(i)})])};Je.prototype.replaceRange=function(r,t,e,n){t=t!==null?t:this.tokens.length;var o=e.every(function(a){return a instanceof ji});if(!isNaN(r)&&this.inboundIndex(r)&&o){var i=this.tokens.splice.apply(this.tokens,[r,t].concat(e));return n||this.dispatch("replaceToken",[r,t,e]),[i,e]}else return{FAIL:"replaceRange: invalid tokens or startIndex."}};Je.prototype.replaceToken=function(r,t,e){if(!isNaN(r)&&this.inboundIndex(r)&&t instanceof ji){var n=this.tokens.splice(r,1,t);return e||this.dispatch("replaceToken",[r,t]),[n[0],t]}else return{FAIL:"replaceToken: invalid token or index."}};Je.prototype.removeRange=function(r,t,e){t=isNaN(t)?this.tokens.length:t;var n=this.tokens.splice(r,t);return e||this.dispatch("removeRange",[n,r,t]),n};Je.prototype.removeToken=function(r,t){if(!isNaN(r)&&this.inboundIndex(r)){var e=this.tokens.splice(r,1);return t||this.dispatch("removeToken",[e,r]),e}else return{FAIL:"removeToken: invalid token index."}};Je.prototype.insertToken=function(r,t,e){var n=r.every(function(o){return o instanceof ji});return n?(this.tokens.splice.apply(this.tokens,[t,0].concat(r)),e||this.dispatch("insertToken",[r,t]),r):{FAIL:"insertToken: invalid token(s)."}};Je.prototype.registerModifier=function(r,t,e){this.events.newToken.subscribe(function(n,o){var i=[n,o],a=t===null||t.apply(this,i)===!0,s=[n,o];if(a){var l=e.apply(this,s);n.setState(r,l)}}),this.registeredModifiers.push(r)};hc.prototype.subscribe=function(r){return typeof r=="function"?this.subscribers.push(r)-1:{FAIL:"invalid '"+this.eventId+"' event handler"}};hc.prototype.unsubscribe=function(r){this.subscribers.splice(r,1)};Cr.prototype.setCurrentIndex=function(r){this.index=r,this.current=this.context[r],this.backtrack=this.context.slice(0,r),this.lookahead=this.context.slice(r+1)};Cr.prototype.get=function(r){switch(!0){case r===0:return this.current;case(r<0&&Math.abs(r)<=this.backtrack.length):return this.backtrack.slice(r)[0];case(r>0&&r<=this.lookahead.length):return this.lookahead[r-1];default:return null}};Je.prototype.rangeToText=function(r){if(r instanceof Ap)return this.getRangeTokens(r).map(function(t){return t.char}).join("")};Je.prototype.getText=function(){return this.tokens.map(function(r){return r.char}).join("")};Je.prototype.getContext=function(r){var t=this.registeredContexts[r];return t||null};Je.prototype.on=function(r,t){var e=this.events[r];return e?e.subscribe(t):null};Je.prototype.dispatch=function(r,t){var e=this,n=this.events[r];n instanceof hc&&n.subscribers.forEach(function(o){o.apply(e,t||[])})};Je.prototype.registerContextChecker=function(r,t,e){if(this.getContext(r))return{FAIL:"context name '"+r+"' is already registered."};if(typeof t!="function")return{FAIL:"missing context start check."};if(typeof e!="function")return{FAIL:"missing context end check."};var n=new m2(r,t,e);return this.registeredContexts[r]=n,this.contextCheckers.push(n),n};Je.prototype.getRangeTokens=function(r){var t=r.startIndex+r.endOffset;return[].concat(this.tokens.slice(r.startIndex,t))};Je.prototype.getContextRanges=function(r){var t=this.getContext(r);return t?t.ranges:{FAIL:"context checker '"+r+"' is not registered."}};Je.prototype.resetContextsRanges=function(){var r=this.registeredContexts;for(var t in r)if(r.hasOwnProperty(t)){var e=r[t];e.ranges=[]}};Je.prototype.updateContextsRanges=function(){this.resetContextsRanges();for(var r=this.tokens.map(function(n){return n.char}),t=0;t<r.length;t++){var e=new Cr(r,t);this.runContextCheck(e)}this.dispatch("updateContextsRanges",[this.registeredContexts])};Je.prototype.setEndOffset=function(r,t){var e=this.getContext(t).openRange.startIndex,n=new Ap(e,r,t),o=this.getContext(t).ranges;return n.rangeId=t+"."+o.length,o.push(n),this.getContext(t).openRange=null,n};Je.prototype.runContextCheck=function(r){var t=this,e=r.index;this.contextCheckers.forEach(function(n){var o=n.contextName,i=t.getContext(o).openRange;if(!i&&n.checkStart(r)&&(i=new Ap(e,null,o),t.getContext(o).openRange=i,t.dispatch("contextStart",[o,e])),!!i&&n.checkEnd(r)){var a=e-i.startIndex+1,s=t.setEndOffset(a,o);t.dispatch("contextEnd",[o,s])}})};Je.prototype.tokenize=function(r){this.tokens=[],this.resetContextsRanges();var t=Array.from(r);this.dispatch("start");for(var e=0;e<t.length;e++){var n=t[e],o=new Cr(t,e);this.dispatch("next",[o]),this.runContextCheck(o);var i=new ji(n);this.tokens.push(i),this.dispatch("newToken",[i,o])}return this.dispatch("end",[this.tokens]),this.tokens};function Zn(r){return/[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(r)}function y0(r){return/[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(r)}function Qn(r){return/[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(r)}function ac(r){return/[A-z]/.test(r)}function y2(r){return/\s/.test(r)}function rr(r){this.font=r,this.features={}}function _o(r){this.id=r.id,this.tag=r.tag,this.substitution=r.substitution}function us(r,t){if(!r)return-1;switch(t.format){case 1:return t.glyphs.indexOf(r);case 2:for(var e=t.ranges,n=0;n<e.length;n++){var o=e[n];if(r>=o.start&&r<=o.end){var i=r-o.start;return o.index+i}}break;default:return-1}return-1}function v2(r,t){var e=us(r,t.coverage);return e===-1?null:r+t.deltaGlyphId}function x2(r,t){var e=us(r,t.coverage);return e===-1?null:t.substitute[e]}function ap(r,t){for(var e=[],n=0;n<r.length;n++){var o=r[n],i=t.current;i=Array.isArray(i)?i[0]:i;var a=us(i,o);a!==-1&&e.push(a)}return e.length!==r.length?-1:e}function b2(r,t){var e=t.inputCoverage.length+t.lookaheadCoverage.length+t.backtrackCoverage.length;if(r.context.length<e)return[];var n=ap(t.inputCoverage,r);if(n===-1)return[];var o=t.inputCoverage.length-1;if(r.lookahead.length<t.lookaheadCoverage.length)return[];for(var i=r.lookahead.slice(o);i.length&&Qn(i[0].char);)i.shift();var a=new Cr(i,0),s=ap(t.lookaheadCoverage,a),l=[].concat(r.backtrack);for(l.reverse();l.length&&Qn(l[0].char);)l.shift();if(l.length<t.backtrackCoverage.length)return[];var u=new Cr(l,0),c=ap(t.backtrackCoverage,u),p=n.length===t.inputCoverage.length&&s.length===t.lookaheadCoverage.length&&c.length===t.backtrackCoverage.length,f=[];if(p)for(var d=0;d<t.lookupRecords.length;d++)for(var h=t.lookupRecords[d],m=h.lookupListIndex,g=this.getLookupByIndex(m),v=0;v<g.subtables.length;v++){var x=g.subtables[v],b=this.getLookupMethod(g,x),w=this.getSubstitutionType(g,x);if(w==="12")for(var S=0;S<n.length;S++){var _=r.get(S),T=b(_);T&&f.push(T)}}return f}function S2(r,t){var e=r.current,n=us(e,t.coverage);if(n===-1)return null;for(var o,i=t.ligatureSets[n],a=0;a<i.length;a++){o=i[a];for(var s=0;s<o.components.length;s++){var l=r.lookahead[s],u=o.components[s];if(l!==u)break;if(s===o.components.length-1)return o}}return null}function w2(r,t){var e=us(r,t.coverage);return e===-1?null:t.sequences[e]}rr.prototype.getDefaultScriptFeaturesIndexes=function(){for(var r=this.font.tables.gsub.scripts,t=0;t<r.length;t++){var e=r[t];if(e.tag==="DFLT")return e.script.defaultLangSys.featureIndexes}return[]};rr.prototype.getScriptFeaturesIndexes=function(r){var t=this.font.tables;if(!t.gsub)return[];if(!r)return this.getDefaultScriptFeaturesIndexes();for(var e=this.font.tables.gsub.scripts,n=0;n<e.length;n++){var o=e[n];if(o.tag===r&&o.script.defaultLangSys)return o.script.defaultLangSys.featureIndexes;var i=o.langSysRecords;if(i)for(var a=0;a<i.length;a++){var s=i[a];if(s.tag===r){var l=s.langSys;return l.featureIndexes}}}return this.getDefaultScriptFeaturesIndexes()};rr.prototype.mapTagsToFeatures=function(r,t){for(var e={},n=0;n<r.length;n++){var o=r[n].tag,i=r[n].feature;e[o]=i}this.features[t].tags=e};rr.prototype.getScriptFeatures=function(r){var t=this.features[r];if(this.features.hasOwnProperty(r))return t;var e=this.getScriptFeaturesIndexes(r);if(!e)return null;var n=this.font.tables.gsub;return t=e.map(function(o){return n.features[o]}),this.features[r]=t,this.mapTagsToFeatures(t,r),t};rr.prototype.getSubstitutionType=function(r,t){var e=r.lookupType.toString(),n=t.substFormat.toString();return e+n};rr.prototype.getLookupMethod=function(r,t){var e=this,n=this.getSubstitutionType(r,t);switch(n){case"11":return function(o){return v2.apply(e,[o,t])};case"12":return function(o){return x2.apply(e,[o,t])};case"63":return function(o){return b2.apply(e,[o,t])};case"41":return function(o){return S2.apply(e,[o,t])};case"21":return function(o){return w2.apply(e,[o,t])};default:throw new Error("lookupType: "+r.lookupType+" - substFormat: "+t.substFormat+" is not yet supported")}};rr.prototype.lookupFeature=function(r){var t=r.contextParams,e=t.index,n=this.getFeature({tag:r.tag,script:r.script});if(!n)return new Error("font '"+this.font.names.fullName.en+"' doesn't support feature '"+r.tag+"' for script '"+r.script+"'.");for(var o=this.getFeatureLookups(n),i=[].concat(t.context),a=0;a<o.length;a++)for(var s=o[a],l=this.getLookupSubtables(s),u=0;u<l.length;u++){var c=l[u],p=this.getSubstitutionType(s,c),f=this.getLookupMethod(s,c),d=void 0;switch(p){case"11":d=f(t.current),d&&i.splice(e,1,new _o({id:11,tag:r.tag,substitution:d}));break;case"12":d=f(t.current),d&&i.splice(e,1,new _o({id:12,tag:r.tag,substitution:d}));break;case"63":d=f(t),Array.isArray(d)&&d.length&&i.splice(e,1,new _o({id:63,tag:r.tag,substitution:d}));break;case"41":d=f(t),d&&i.splice(e,1,new _o({id:41,tag:r.tag,substitution:d}));break;case"21":d=f(t.current),d&&i.splice(e,1,new _o({id:21,tag:r.tag,substitution:d}));break}t=new Cr(i,e),!(Array.isArray(d)&&!d.length)&&(d=null)}return i.length?i:null};rr.prototype.supports=function(r){if(!r.script)return!1;this.getScriptFeatures(r.script);var t=this.features.hasOwnProperty(r.script);if(!r.tag)return t;var e=this.features[r.script].some(function(n){return n.tag===r.tag});return t&&e};rr.prototype.getLookupSubtables=function(r){return r.subtables||null};rr.prototype.getLookupByIndex=function(r){var t=this.font.tables.gsub.lookups;return t[r]||null};rr.prototype.getFeatureLookups=function(r){return r.lookupListIndexes.map(this.getLookupByIndex.bind(this))};rr.prototype.getFeature=function(t){if(!this.font)return{FAIL:"No font was found"};this.features.hasOwnProperty(t.script)||this.getScriptFeatures(t.script);var e=this.features[t.script];return e?e.tags[t.tag]?this.features[t.script].tags[t.tag]:null:{FAIL:"No feature for script "+t.script}};function T2(r){var t=r.current,e=r.get(-1);return e===null&&Zn(t)||!Zn(e)&&Zn(t)}function C2(r){var t=r.get(1);return t===null||!Zn(t)}var A2={startCheck:T2,endCheck:C2};function _2(r){var t=r.current,e=r.get(-1);return(Zn(t)||Qn(t))&&!Zn(e)}function O2(r){var t=r.get(1);switch(!0){case t===null:return!0;case(!Zn(t)&&!Qn(t)):var e=y2(t);if(!e)return!0;if(e){var n=!1;if(n=r.lookahead.some(function(o){return Zn(o)||Qn(o)}),!n)return!0}break;default:return!1}}var I2={startCheck:_2,endCheck:O2};function L2(r,t,e){t[e].setState(r.tag,r.substitution)}function N2(r,t,e){t[e].setState(r.tag,r.substitution)}function P2(r,t,e){r.substitution.forEach(function(n,o){var i=t[e+o];i.setState(r.tag,n)})}function M2(r,t,e){var n=t[e];n.setState(r.tag,r.substitution.ligGlyph);for(var o=r.substitution.components.length,i=0;i<o;i++)n=t[e+i+1],n.setState("deleted",!0)}var Ty={11:L2,12:N2,63:P2,41:M2};function _p(r,t,e){r instanceof _o&&Ty[r.id]&&Ty[r.id](r,t,e)}function E2(r){for(var t=[].concat(r.backtrack),e=t.length-1;e>=0;e--){var n=t[e],o=y0(n),i=Qn(n);if(!o&&!i)return!0;if(o)return!1}return!1}function D2(r){if(y0(r.current))return!1;for(var t=0;t<r.lookahead.length;t++){var e=r.lookahead[t],n=Qn(e);if(!n)return!0}return!1}function B2(r){var t=this,e="arab",n=this.featuresTags[e],o=this.tokenizer.getRangeTokens(r);if(o.length!==1){var i=new Cr(o.map(function(s){return s.getState("glyphIndex")}),0),a=new Cr(o.map(function(s){return s.char}),0);o.forEach(function(s,l){if(!Qn(s.char)){i.setCurrentIndex(l),a.setCurrentIndex(l);var u=0;E2(a)&&(u|=1),D2(a)&&(u|=2);var c;switch(u){case 1:c="fina";break;case 2:c="init";break;case 3:c="medi";break}if(n.indexOf(c)!==-1){var p=t.query.lookupFeature({tag:c,script:e,contextParams:i});if(p instanceof Error)return console.info(p.message);p.forEach(function(f,d){f instanceof _o&&(_p(f,o,d),i.context[d]=f.substitution)})}}})}}function Cy(r,t){var e=r.map(function(n){return n.activeState.value});return new Cr(e,t||0)}function F2(r){var t=this,e="arab",n=this.tokenizer.getRangeTokens(r),o=Cy(n);o.context.forEach(function(i,a){o.setCurrentIndex(a);var s=t.query.lookupFeature({tag:"rlig",script:e,contextParams:o});s.length&&(s.forEach(function(l){return _p(l,n,a)}),o=Cy(n))})}function R2(r){var t=r.current,e=r.get(-1);return e===null&&ac(t)||!ac(e)&&ac(t)}function k2(r){var t=r.get(1);return t===null||!ac(t)}var G2={startCheck:R2,endCheck:k2};function Ay(r,t){var e=r.map(function(n){return n.activeState.value});return new Cr(e,t||0)}function U2(r){var t=this,e="latn",n=this.tokenizer.getRangeTokens(r),o=Ay(n);o.context.forEach(function(i,a){o.setCurrentIndex(a);var s=t.query.lookupFeature({tag:"liga",script:e,contextParams:o});s.length&&(s.forEach(function(l){return _p(l,n,a)}),o=Ay(n))})}function Or(r){this.baseDir=r||"ltr",this.tokenizer=new Je,this.featuresTags={}}Or.prototype.setText=function(r){this.text=r};Or.prototype.contextChecks={latinWordCheck:G2,arabicWordCheck:A2,arabicSentenceCheck:I2};function sp(r){var t=this.contextChecks[r+"Check"];return this.tokenizer.registerContextChecker(r,t.startCheck,t.endCheck)}function V2(){return sp.call(this,"latinWord"),sp.call(this,"arabicWord"),sp.call(this,"arabicSentence"),this.tokenizer.tokenize(this.text)}function z2(){var r=this,t=this.tokenizer.getContextRanges("arabicSentence");t.forEach(function(e){var n=r.tokenizer.getRangeTokens(e);r.tokenizer.replaceRange(e.startIndex,e.endOffset,n.reverse())})}Or.prototype.registerFeatures=function(r,t){var e=this,n=t.filter(function(o){return e.query.supports({script:r,tag:o})});this.featuresTags.hasOwnProperty(r)?this.featuresTags[r]=this.featuresTags[r].concat(n):this.featuresTags[r]=n};Or.prototype.applyFeatures=function(r,t){if(!r)throw new Error("No valid font was provided to apply features");this.query||(this.query=new rr(r));for(var e=0;e<t.length;e++){var n=t[e];!this.query.supports({script:n.script})||this.registerFeatures(n.script,n.tags)}};Or.prototype.registerModifier=function(r,t,e){this.tokenizer.registerModifier(r,t,e)};function Op(){if(this.tokenizer.registeredModifiers.indexOf("glyphIndex")===-1)throw new Error("glyphIndex modifier is required to apply arabic presentation features.")}function j2(){var r=this,t="arab";if(!!this.featuresTags.hasOwnProperty(t)){Op.call(this);var e=this.tokenizer.getContextRanges("arabicWord");e.forEach(function(n){B2.call(r,n)})}}function H2(){var r=this,t="arab";if(!!this.featuresTags.hasOwnProperty(t)){var e=this.featuresTags[t];if(e.indexOf("rlig")!==-1){Op.call(this);var n=this.tokenizer.getContextRanges("arabicWord");n.forEach(function(o){F2.call(r,o)})}}}function W2(){var r=this,t="latn";if(!!this.featuresTags.hasOwnProperty(t)){var e=this.featuresTags[t];if(e.indexOf("liga")!==-1){Op.call(this);var n=this.tokenizer.getContextRanges("latinWord");n.forEach(function(o){U2.call(r,o)})}}}Or.prototype.checkContextReady=function(r){return!!this.tokenizer.getContext(r)};Or.prototype.applyFeaturesToContexts=function(){this.checkContextReady("arabicWord")&&(j2.call(this),H2.call(this)),this.checkContextReady("latinWord")&&W2.call(this),this.checkContextReady("arabicSentence")&&z2.call(this)};Or.prototype.processText=function(r){(!this.text||this.text!==r)&&(this.setText(r),V2.call(this),this.applyFeaturesToContexts())};Or.prototype.getBidiText=function(r){return this.processText(r),this.tokenizer.getText()};Or.prototype.getTextGlyphs=function(r){this.processText(r);for(var t=[],e=0;e<this.tokenizer.tokens.length;e++){var n=this.tokenizer.tokens[e];if(!n.state.deleted){var o=n.activeState.value;t.push(Array.isArray(o)?o[0]:o)}}return t};function Ve(r){r=r||{},r.tables=r.tables||{},r.empty||(es(r.familyName,"When creating a new Font object, familyName is required."),es(r.styleName,"When creating a new Font object, styleName is required."),es(r.unitsPerEm,"When creating a new Font object, unitsPerEm is required."),es(r.ascender,"When creating a new Font object, ascender is required."),es(r.descender<=0,"When creating a new Font object, negative descender value is required."),this.names={fontFamily:{en:r.familyName||" "},fontSubfamily:{en:r.styleName||" "},fullName:{en:r.fullName||r.familyName+" "+r.styleName},postScriptName:{en:r.postScriptName||(r.familyName+r.styleName).replace(/\s/g,"")},designer:{en:r.designer||" "},designerURL:{en:r.designerURL||" "},manufacturer:{en:r.manufacturer||" "},manufacturerURL:{en:r.manufacturerURL||" "},license:{en:r.license||" "},licenseURL:{en:r.licenseURL||" "},version:{en:r.version||"Version 0.1"},description:{en:r.description||" "},copyright:{en:r.copyright||" "},trademark:{en:r.trademark||" "}},this.unitsPerEm=r.unitsPerEm||1e3,this.ascender=r.ascender,this.descender=r.descender,this.createdTimestamp=r.createdTimestamp,this.tables=Object.assign(r.tables,{os2:Object.assign({usWeightClass:r.weightClass||this.usWeightClasses.MEDIUM,usWidthClass:r.widthClass||this.usWidthClasses.MEDIUM,fsSelection:r.fsSelection||this.fsSelectionValues.REGULAR},r.tables.os2)})),this.supported=!0,this.glyphs=new an.GlyphSet(this,r.glyphs||[]),this.encoding=new Fy(this),this.position=new ss(this),this.substitution=new tr(this),this.tables=this.tables||{},this._push=null,this._hmtxTableData={},Object.defineProperty(this,"hinting",{get:function(){if(this._hinting)return this._hinting;if(this.outlinesFormat==="truetype")return this._hinting=new d0(this)}})}Ve.prototype.hasChar=function(r){return this.encoding.charToGlyphIndex(r)!==null};Ve.prototype.charToGlyphIndex=function(r){return this.encoding.charToGlyphIndex(r)};Ve.prototype.charToGlyph=function(r){var t=this.charToGlyphIndex(r),e=this.glyphs.get(t);return e||(e=this.glyphs.get(0)),e};Ve.prototype.updateFeatures=function(r){return this.defaultRenderOptions.features.map(function(t){return t.script==="latn"?{script:"latn",tags:t.tags.filter(function(e){return r[e]})}:t})};Ve.prototype.stringToGlyphs=function(r,t){var e=this,n=new Or,o=function(p){return e.charToGlyphIndex(p.char)};n.registerModifier("glyphIndex",null,o);var i=t?this.updateFeatures(t.features):this.defaultRenderOptions.features;n.applyFeatures(this,i);for(var a=n.getTextGlyphs(r),s=a.length,l=new Array(s),u=this.glyphs.get(0),c=0;c<s;c+=1)l[c]=this.glyphs.get(a[c])||u;return l};Ve.prototype.nameToGlyphIndex=function(r){return this.glyphNames.nameToGlyphIndex(r)};Ve.prototype.nameToGlyph=function(r){var t=this.nameToGlyphIndex(r),e=this.glyphs.get(t);return e||(e=this.glyphs.get(0)),e};Ve.prototype.glyphIndexToName=function(r){return this.glyphNames.glyphIndexToName?this.glyphNames.glyphIndexToName(r):""};Ve.prototype.getKerningValue=function(r,t){r=r.index||r,t=t.index||t;var e=this.position.defaultKerningTables;return e?this.position.getKerningValue(e,r,t):this.kerningPairs[r+","+t]||0};Ve.prototype.defaultRenderOptions={kerning:!0,features:[{script:"arab",tags:["init","medi","fina","rlig"]},{script:"latn",tags:["liga","rlig"]}]};Ve.prototype.forEachGlyph=function(r,t,e,n,o,i){t=t!==void 0?t:0,e=e!==void 0?e:0,n=n!==void 0?n:72,o=Object.assign({},this.defaultRenderOptions,o);var a=1/this.unitsPerEm*n,s=this.stringToGlyphs(r,o),l;if(o.kerning){var u=o.script||this.position.getDefaultScriptName();l=this.position.getKerningTables(u,o.language)}for(var c=0;c<s.length;c+=1){var p=s[c];if(i.call(this,p,t,e,n,o),p.advanceWidth&&(t+=p.advanceWidth*a),o.kerning&&c<s.length-1){var f=l?this.position.getKerningValue(l,p.index,s[c+1].index):this.getKerningValue(p,s[c+1]);t+=f*a}o.letterSpacing?t+=o.letterSpacing*n:o.tracking&&(t+=o.tracking/1e3*n)}return t};Ve.prototype.getPath=function(r,t,e,n,o){var i=new ht;return this.forEachGlyph(r,t,e,n,o,function(a,s,l,u){var c=a.getPath(s,l,u,o,this);i.extend(c)}),i};Ve.prototype.getPaths=function(r,t,e,n,o){var i=[];return this.forEachGlyph(r,t,e,n,o,function(a,s,l,u){var c=a.getPath(s,l,u,o,this);i.push(c)}),i};Ve.prototype.getAdvanceWidth=function(r,t,e){return this.forEachGlyph(r,0,0,t,e,function(){})};Ve.prototype.draw=function(r,t,e,n,o,i){this.getPath(t,e,n,o,i).draw(r)};Ve.prototype.drawPoints=function(r,t,e,n,o,i){this.forEachGlyph(t,e,n,o,i,function(a,s,l,u){a.drawPoints(r,s,l,u)})};Ve.prototype.drawMetrics=function(r,t,e,n,o,i){this.forEachGlyph(t,e,n,o,i,function(a,s,l,u){a.drawMetrics(r,s,l,u)})};Ve.prototype.getEnglishName=function(r){var t=this.names[r];if(t)return t.en};Ve.prototype.validate=function(){var r=this;function t(n,o){}function e(n){var o=r.getEnglishName(n);o&&o.trim().length>0}e("fontFamily"),e("weightName"),e("manufacturer"),e("copyright"),e("version"),this.unitsPerEm>0};Ve.prototype.toTables=function(){return P_.fontToTable(this)};Ve.prototype.toBuffer=function(){return console.warn("Font.toBuffer is deprecated. Use Font.toArrayBuffer instead."),this.toArrayBuffer()};Ve.prototype.toArrayBuffer=function(){for(var r=this.toTables(),t=r.encode(),e=new ArrayBuffer(t.length),n=new Uint8Array(e),o=0;o<t.length;o++)n[o]=t[o];return e};Ve.prototype.download=function(r){var t=this.getEnglishName("fontFamily"),e=this.getEnglishName("fontSubfamily");r=r||t.replace(/\s/g,"")+"-"+e+".otf";var n=this.toArrayBuffer();if(E_())if(window.URL=window.URL||window.webkitURL,window.URL){var o=new DataView(n),i=new Blob([o],{type:"font/opentype"}),a=document.createElement("a");a.href=window.URL.createObjectURL(i),a.download=r;var s=document.createEvent("MouseEvents");s.initEvent("click",!0,!1),a.dispatchEvent(s)}else console.warn("Font file could not be downloaded. Try using a different browser.");else{var l=Qu(),u=B_(n);l.writeFileSync(r,u)}};Ve.prototype.fsSelectionValues={ITALIC:1,UNDERSCORE:2,NEGATIVE:4,OUTLINED:8,STRIKEOUT:16,BOLD:32,REGULAR:64,USER_TYPO_METRICS:128,WWS:256,OBLIQUE:512};Ve.prototype.usWidthClasses={ULTRA_CONDENSED:1,EXTRA_CONDENSED:2,CONDENSED:3,SEMI_CONDENSED:4,MEDIUM:5,SEMI_EXPANDED:6,EXPANDED:7,EXTRA_EXPANDED:8,ULTRA_EXPANDED:9};Ve.prototype.usWeightClasses={THIN:100,EXTRA_LIGHT:200,LIGHT:300,NORMAL:400,MEDIUM:500,SEMI_BOLD:600,BOLD:700,EXTRA_BOLD:800,BLACK:900};function v0(r,t){var e=JSON.stringify(r),n=256;for(var o in t){var i=parseInt(o);if(!(!i||i<256)){if(JSON.stringify(t[o])===e)return i;n<=i&&(n=i+1)}}return t[n]=r,n}function q2(r,t,e){var n=v0(t.name,e);return[{name:"tag_"+r,type:"TAG",value:t.tag},{name:"minValue_"+r,type:"FIXED",value:t.minValue<<16},{name:"defaultValue_"+r,type:"FIXED",value:t.defaultValue<<16},{name:"maxValue_"+r,type:"FIXED",value:t.maxValue<<16},{name:"flags_"+r,type:"USHORT",value:0},{name:"nameID_"+r,type:"USHORT",value:n}]}function X2(r,t,e){var n={},o=new pe.Parser(r,t);return n.tag=o.parseTag(),n.minValue=o.parseFixed(),n.defaultValue=o.parseFixed(),n.maxValue=o.parseFixed(),o.skip("uShort",1),n.name=e[o.parseUShort()]||{},n}function Y2(r,t,e,n){for(var o=v0(t.name,n),i=[{name:"nameID_"+r,type:"USHORT",value:o},{name:"flags_"+r,type:"USHORT",value:0}],a=0;a<e.length;++a){var s=e[a].tag;i.push({name:"axis_"+r+" "+s,type:"FIXED",value:t.coordinates[s]<<16})}return i}function $2(r,t,e,n){var o={},i=new pe.Parser(r,t);o.name=n[i.parseUShort()]||{},i.skip("uShort",1),o.coordinates={};for(var a=0;a<e.length;++a)o.coordinates[e[a].tag]=i.parseFixed();return o}function K2(r,t){var e=new le.Table("fvar",[{name:"version",type:"ULONG",value:65536},{name:"offsetToData",type:"USHORT",value:0},{name:"countSizePairs",type:"USHORT",value:2},{name:"axisCount",type:"USHORT",value:r.axes.length},{name:"axisSize",type:"USHORT",value:20},{name:"instanceCount",type:"USHORT",value:r.instances.length},{name:"instanceSize",type:"USHORT",value:4+r.axes.length*4}]);e.offsetToData=e.sizeOf();for(var n=0;n<r.axes.length;n++)e.fields=e.fields.concat(q2(n,r.axes[n],t));for(var o=0;o<r.instances.length;o++)e.fields=e.fields.concat(Y2(o,r.instances[o],r.axes,t));return e}function Z2(r,t,e){var n=new pe.Parser(r,t),o=n.parseULong();xe.argument(o===65536,"Unsupported fvar table version.");var i=n.parseOffset16();n.skip("uShort",1);for(var a=n.parseUShort(),s=n.parseUShort(),l=n.parseUShort(),u=n.parseUShort(),c=[],p=0;p<a;p++)c.push(X2(r,t+i+p*s,e));for(var f=[],d=t+i+a*s,h=0;h<l;h++)f.push($2(r,d+h*u,c,e));return{axes:c,instances:f}}var Q2={make:K2,parse:Z2},J2=function(){return{coverage:this.parsePointer(E.coverage),attachPoints:this.parseList(E.pointer(E.uShortList))}},eI=function(){var r=this.parseUShort();if(xe.argument(r===1||r===2||r===3,"Unsupported CaretValue table version."),r===1)return{coordinate:this.parseShort()};if(r===2)return{pointindex:this.parseShort()};if(r===3)return{coordinate:this.parseShort()}},tI=function(){return this.parseList(E.pointer(eI))},rI=function(){return{coverage:this.parsePointer(E.coverage),ligGlyphs:this.parseList(E.pointer(tI))}},nI=function(){return this.parseUShort(),this.parseList(E.pointer(E.coverage))};function oI(r,t){t=t||0;var e=new E(r,t),n=e.parseVersion(1);xe.argument(n===1||n===1.2||n===1.3,"Unsupported GDEF table version.");var o={version:n,classDef:e.parsePointer(E.classDef),attachList:e.parsePointer(J2),ligCaretList:e.parsePointer(rI),markAttachClassDef:e.parsePointer(E.classDef)};return n>=1.2&&(o.markGlyphSets=e.parsePointer(nI)),o}var iI={parse:oI},Ar=new Array(10);Ar[1]=function(){var t=this.offset+this.relativeOffset,e=this.parseUShort();if(e===1)return{posFormat:1,coverage:this.parsePointer(E.coverage),value:this.parseValueRecord()};if(e===2)return{posFormat:2,coverage:this.parsePointer(E.coverage),values:this.parseValueRecordList()};xe.assert(!1,"0x"+t.toString(16)+": GPOS lookup type 1 format must be 1 or 2.")};Ar[2]=function(){var t=this.offset+this.relativeOffset,e=this.parseUShort();xe.assert(e===1||e===2,"0x"+t.toString(16)+": GPOS lookup type 2 format must be 1 or 2.");var n=this.parsePointer(E.coverage),o=this.parseUShort(),i=this.parseUShort();if(e===1)return{posFormat:e,coverage:n,valueFormat1:o,valueFormat2:i,pairSets:this.parseList(E.pointer(E.list(function(){return{secondGlyph:this.parseUShort(),value1:this.parseValueRecord(o),value2:this.parseValueRecord(i)}})))};if(e===2){var a=this.parsePointer(E.classDef),s=this.parsePointer(E.classDef),l=this.parseUShort(),u=this.parseUShort();return{posFormat:e,coverage:n,valueFormat1:o,valueFormat2:i,classDef1:a,classDef2:s,class1Count:l,class2Count:u,classRecords:this.parseList(l,E.list(u,function(){return{value1:this.parseValueRecord(o),value2:this.parseValueRecord(i)}}))}}};Ar[3]=function(){return{error:"GPOS Lookup 3 not supported"}};Ar[4]=function(){return{error:"GPOS Lookup 4 not supported"}};Ar[5]=function(){return{error:"GPOS Lookup 5 not supported"}};Ar[6]=function(){return{error:"GPOS Lookup 6 not supported"}};Ar[7]=function(){return{error:"GPOS Lookup 7 not supported"}};Ar[8]=function(){return{error:"GPOS Lookup 8 not supported"}};Ar[9]=function(){return{error:"GPOS Lookup 9 not supported"}};function aI(r,t){t=t||0;var e=new E(r,t),n=e.parseVersion(1);return xe.argument(n===1||n===1.1,"Unsupported GPOS table version "+n),n===1?{version:n,scripts:e.parseScriptList(),features:e.parseFeatureList(),lookups:e.parseLookupList(Ar)}:{version:n,scripts:e.parseScriptList(),features:e.parseFeatureList(),lookups:e.parseLookupList(Ar),variations:e.parseFeatureVariationsList()}}var sI=new Array(10);function lI(r){return new le.Table("GPOS",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new le.ScriptList(r.scripts)},{name:"features",type:"TABLE",value:new le.FeatureList(r.features)},{name:"lookups",type:"TABLE",value:new le.LookupList(r.lookups,sI)}])}var cI={parse:aI,make:lI};function uI(r){var t={};r.skip("uShort");var e=r.parseUShort();xe.argument(e===0,"Unsupported kern sub-table version."),r.skip("uShort",2);var n=r.parseUShort();r.skip("uShort",3);for(var o=0;o<n;o+=1){var i=r.parseUShort(),a=r.parseUShort(),s=r.parseShort();t[i+","+a]=s}return t}function pI(r){var t={};r.skip("uShort");var e=r.parseULong();e>1&&console.warn("Only the first kern subtable is supported."),r.skip("uLong");var n=r.parseUShort(),o=n&255;if(r.skip("uShort"),o===0){var i=r.parseUShort();r.skip("uShort",3);for(var a=0;a<i;a+=1){var s=r.parseUShort(),l=r.parseUShort(),u=r.parseShort();t[s+","+l]=u}}return t}function fI(r,t){var e=new pe.Parser(r,t),n=e.parseUShort();if(n===0)return uI(e);if(n===1)return pI(e);throw new Error("Unsupported kern table version ("+n+").")}var dI={parse:fI};function hI(r,t,e,n){for(var o=new pe.Parser(r,t),i=n?o.parseUShort:o.parseULong,a=[],s=0;s<e+1;s+=1){var l=i.call(o);n&&(l*=2),a.push(l)}return a}var mI={parse:hI};function gI(r,t){var e=Qu();e.readFile(r,function(n,o){if(n)return t(n.message);t(null,D_(o))})}function yI(r,t){var e=new XMLHttpRequest;e.open("get",r,!0),e.responseType="arraybuffer",e.onload=function(){return e.response?t(null,e.response):t("Font could not be loaded: "+e.statusText)},e.onerror=function(){t("Font could not be loaded")},e.send()}function _y(r,t){for(var e=[],n=12,o=0;o<t;o+=1){var i=pe.getTag(r,n),a=pe.getULong(r,n+4),s=pe.getULong(r,n+8),l=pe.getULong(r,n+12);e.push({tag:i,checksum:a,offset:s,length:l,compression:!1}),n+=16}return e}function vI(r,t){for(var e=[],n=44,o=0;o<t;o+=1){var i=pe.getTag(r,n),a=pe.getULong(r,n+4),s=pe.getULong(r,n+8),l=pe.getULong(r,n+12),u=void 0;s<l?u="WOFF":u=!1,e.push({tag:i,offset:a,compression:u,compressedLength:s,length:l}),n+=20}return e}function it(r,t){if(t.compression==="WOFF"){var e=new Uint8Array(r.buffer,t.offset+2,t.compressedLength-2),n=new Uint8Array(t.length);if(lA(e,n),n.byteLength!==t.length)throw new Error("Decompression error: "+t.tag+" decompressed length doesn't match recorded length");var o=new DataView(n.buffer,0);return{data:o,offset:0}}else return{data:r,offset:t.offset}}function Ip(r,t){t=t??{};var e,n,o=new Ve({empty:!0}),i=new DataView(r,0),a,s=[],l=pe.getTag(i,0);if(l===String.fromCharCode(0,1,0,0)||l==="true"||l==="typ1")o.outlinesFormat="truetype",a=pe.getUShort(i,4),s=_y(i,a);else if(l==="OTTO")o.outlinesFormat="cff",a=pe.getUShort(i,4),s=_y(i,a);else if(l==="wOFF"){var u=pe.getTag(i,4);if(u===String.fromCharCode(0,1,0,0))o.outlinesFormat="truetype";else if(u==="OTTO")o.outlinesFormat="cff";else throw new Error("Unsupported OpenType flavor "+l);a=pe.getUShort(i,12),s=vI(i,a)}else throw new Error("Unsupported OpenType signature "+l);for(var c,p,f,d,h,m,g,v,x,b,w,S,_=0;_<a;_+=1){var T=s[_],y=void 0;switch(T.tag){case"cmap":y=it(i,T),o.tables.cmap=By.parse(y.data,y.offset),o.encoding=new Ry(o.tables.cmap);break;case"cvt ":y=it(i,T),S=new pe.Parser(y.data,y.offset),o.tables.cvt=S.parseShortList(T.length/2);break;case"fvar":p=T;break;case"fpgm":y=it(i,T),S=new pe.Parser(y.data,y.offset),o.tables.fpgm=S.parseByteList(T.length);break;case"head":y=it(i,T),o.tables.head=Xy.parse(y.data,y.offset),o.unitsPerEm=o.tables.head.unitsPerEm,e=o.tables.head.indexToLocFormat;break;case"hhea":y=it(i,T),o.tables.hhea=Yy.parse(y.data,y.offset),o.ascender=o.tables.hhea.ascender,o.descender=o.tables.hhea.descender,o.numberOfHMetrics=o.tables.hhea.numberOfHMetrics;break;case"hmtx":g=T;break;case"ltag":y=it(i,T),n=Ky.parse(y.data,y.offset);break;case"maxp":y=it(i,T),o.tables.maxp=Zy.parse(y.data,y.offset),o.numGlyphs=o.tables.maxp.numGlyphs;break;case"name":b=T;break;case"OS/2":y=it(i,T),o.tables.os2=mp.parse(y.data,y.offset);break;case"post":y=it(i,T),o.tables.post=n0.parse(y.data,y.offset),o.glyphNames=new Sp(o.tables.post);break;case"prep":y=it(i,T),S=new pe.Parser(y.data,y.offset),o.tables.prep=S.parseByteList(T.length);break;case"glyf":f=T;break;case"loca":x=T;break;case"CFF ":c=T;break;case"kern":v=T;break;case"GDEF":d=T;break;case"GPOS":h=T;break;case"GSUB":m=T;break;case"meta":w=T;break}}var O=it(i,b);if(o.tables.name=r0.parse(O.data,O.offset,n),o.names=o.tables.name,f&&x){var A=e===0,I=it(i,x),C=mI.parse(I.data,I.offset,o.numGlyphs,A),N=it(i,f);o.glyphs=u0.parse(N.data,N.offset,C,o,t)}else if(c){var P=it(i,c);qy.parse(P.data,P.offset,o,t)}else throw new Error("Font doesn't contain TrueType or CFF outlines.");var G=it(i,g);if($y.parse(o,G.data,G.offset,o.numberOfHMetrics,o.numGlyphs,o.glyphs,t),LA(o,t),v){var $=it(i,v);o.kerningPairs=dI.parse($.data,$.offset)}else o.kerningPairs={};if(d){var Y=it(i,d);o.tables.gdef=iI.parse(Y.data,Y.offset)}if(h){var ie=it(i,h);o.tables.gpos=cI.parse(ie.data,ie.offset),o.position.init()}if(m){var j=it(i,m);o.tables.gsub=o0.parse(j.data,j.offset)}if(p){var H=it(i,p);o.tables.fvar=Q2.parse(H.data,H.offset,o.names)}if(w){var V=it(i,w);o.tables.meta=i0.parse(V.data,V.offset),o.metas=o.tables.meta}return o}function x0(r,t,e){e=e??{};var n=typeof window>"u",o=n&&!e.isUrl?gI:yI;return new Promise(function(i,a){o(r,function(s,l){if(s){if(t)return t(s);a(s)}var u;try{u=Ip(l,e)}catch(c){if(t)return t(c,null);a(c)}if(t)return t(null,u);i(u)})})}var ps=class{load(t,e,n=()=>{}){x0(t,(o,i)=>{o||!i?n(o??"Something went wrong"):e(i)})}parse(t){try{return Ip(t)}catch(e){console.error(e)}}};async function xI(r){return await(await fetch(r)).arrayBuffer()}var bI=new ps;async function Lp(r){let t,e,n=!1;if(r.url?(t=await xI(r.url),e=r.url,n=r.url.startsWith("/")):r.data&&(t=r.data.buffer),t){let o=bI.parse(t);if(o)return{font:o,url:e,intercepted:n,arr:t}}}var Hi=require("three");var b0=new Hi.Vector3,S0=new Hi.Matrix4,w0=new Hi.Ray,mc=class extends wt{constructor(e,n,o){super(new xi(n.geometry,o),o.material(n.material));this.data=n;this.objectType="TextFrame";this.wrappedText=[""];this.charWidths=[];this.charCoords=[];this.castShadow=n.castShadow,this.receiveShadow=n.receiveShadow,this.name=n.name,this.uuid=e,this.updateState(n,o)}async updateGeometry(e,n){let o=e.parameters,i=this.geometry.getAttribute("randomColor"),a={...this.geometry.userData.parameters,...o};this.geometry.userData={parameters:a,type:"TextGeometry"},n&&(o.font||!this.geometry.font&&n.getFont(a.font))&&await this.geometry.updateFont(o.font??a.font,n),await this.geometry.update(a),Jr(this),i&&en(this);let{wrappedText:s,charCoords:l,charWidths:u}=this.geometry;this.wrappedText=s,this.charWidths=u,this.charCoords=l,this.resetBBoxNeedsUpdate()}updateState(e,n){this.data=e,this.material=n.material(e.material),this.fromState(e,n),this.updateGeometry({parameters:e.geometry},n)}get font(){return this.geometry.font}get initialOffsetY(){return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,this.geometry.userData.parameters.height,this.fontScale,this.geometry.userData.parameters.verticalAlign)??0}get fontScale(){return this.font?this.geometry.userData.parameters.fontSize/this.font.unitsPerEm:1}get AD(){return Math.abs(this.ascender-this.descender)}get ascender(){return(this.font?.ascender??1)*this.fontScale}get descender(){return(this.font?.descender??1)*this.fontScale}get lineHeight(){return this.geometry.userData.parameters.fontSize*this.geometry.userData.parameters.lineHeight}raycast(e,n){let{matrixWorld:o}=this;if(S0.copy(o).invert(),w0.copy(e.ray).applyMatrix4(S0),w0.intersectBox(this.singleBBox,b0)){let i=b0.applyMatrix4(o),a=e.ray.origin.distanceTo(i);n.push({distance:a,point:i.clone(),object:this})}}};var Bt=require("three");var _0=Vp(C0());var Np;Bl.then(r=>{Np=r});var O0=new Bt.Matrix4,SI=new Bt.Matrix4,wI=new Bt.Matrix4,Ir=new Bt.Box3,eo=new Bt.Vector3,TI=new Bt.Matrix4,CI=new Bt.Matrix4,Wi=class extends wt{constructor(e,n,o,i){super(o??n,i);this.subdivPointer=e;this.originalGeometry=n;this.subdividedGeometry=o;this.objectType="SubdivObject";this.hiddenMatrixOld=new Bt.Matrix4;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new Bt.Matrix4;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,n,o){let{subdivPointer:i,originalGeometry:a,subdividedGeometry:s}=cr.build(n.geometry,void 0,void 0,!n.flatShading),l=o.material(n.material),u=new Wi(i,a,s||void 0,l);return n.geometry.phongAngle!==void 0&&(u.phongAngle=n.geometry.phongAngle),u.calcBoundingBox(),u.freeSubdivPointer(),u.uuid=e,u.fromState(n),u}buildFromStore(e,n){let{originalGeometry:o,subdividedGeometry:i,subdivPointer:a}=cr.build(e,n,this.subdivPointer,this.smoothShading,this.shearScale);e.phongAngle!==void 0&&(this.phongAngle=e.phongAngle),this.subdivPointer=a,o!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=o),i!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=i??void 0),this.geometry=this.subdividedGeometry??this.originalGeometry,Jr(this),en(this),e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){cr.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&cr.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=cr.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=cr.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(e,n){this.geometry=this.originalGeometry,wt.prototype.raycast.call(this,e,n),this.geometry=this.subdividedGeometry??this.originalGeometry}updateMatrixWorldSVD(){let e=this.matrixWorld.elements,n=[[e[0],e[4],e[8]],[e[1],e[5],e[9]],[e[2],e[6],e[10]]],{u:o,v:i,q:a}=(0,_0.SVD)(n),s=O0.set(o[0][0],o[0][1],o[0][2],0,o[1][0],o[1][1],o[1][2],0,o[2][0],o[2][1],o[2][2],0,0,0,0,1),l=SI.set(i[0][0],i[0][1],i[0][2],0,i[1][0],i[1][1],i[1][2],0,i[2][0],i[2][1],i[2][2],0,0,0,0,1),u=wI.copy(l).transpose();this.shearScale=TI.makeScale(a[0],a[1],a[2]).multiply(u).premultiply(l),this.shearScaleInv=CI.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(s,u),a.every(c=>Math.abs(a[0]-c)<.01)&&(this.shearScale=void 0,this.shearScaleInv=void 0)}activateSVDCompensation(){this.shearScale!==void 0&&(this.matrixAutoUpdate=!1,this.matrix.copy(this.matrixWorldRigid).copyPosition(this.matrixWorld),this.hiddenMatrixOld.copy(this.hiddenMatrix),this.hiddenMatrix.copy(this.parent.matrixWorld).invert())}deactivateSVDCompensation(){this.shearScale!==void 0&&(this.shearScale=void 0,this.shearScaleInv=void 0,this.matrixAutoUpdate=!0,this.hiddenMatrix.copy(this.hiddenMatrixOld))}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new Bt.Sphere);let n=e.attributes.position,o=e.boundingSphere.center;Ir.setFromBufferAttribute(n),Ir.getCenter(o),e.boundingSphere.radius=o.distanceTo(Ir.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Ir.getSize(eo);let i={width:eo.x,height:eo.y,depth:eo.z};return this.geometry.userData.parameters=i,i}updateBoundingBox(e){let n=this.originalGeometry;Ir.min.set(e[0],e[2],e[4]),Ir.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(Ir.min.applyMatrix4(this.shearScaleInv),Ir.max.applyMatrix4(this.shearScaleInv)),n.boundingSphere===null&&(n.boundingSphere=new Bt.Sphere);let o=n.boundingSphere.center;Ir.getCenter(o),n.boundingSphere.radius=o.distanceTo(Ir.max),isNaN(n.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Ir.getSize(eo);let i={width:eo.x,height:eo.y,depth:eo.z};return this.geometry.userData.parameters=i,i}freeSubdivPointer(){this.subdivPointer&&(Np.free_bvh(this.subdivPointer),Np.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(e,n){this.geometry.userData.scale||(this.geometry.userData.scale=Array(3)),this.geometry.userData.scale[0]=this.geometry.userData.parameters.width===0?1:e.parameters.width/this.geometry.userData.parameters.width,this.geometry.userData.scale[1]=this.geometry.userData.parameters.height===0?1:e.parameters.height/this.geometry.userData.parameters.height,this.geometry.userData.scale[2]=this.geometry.userData.parameters.depth===0?1:e.parameters.depth/this.geometry.userData.parameters.depth,A0(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(A0(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters={...e.parameters}}};function A0(r,t,e,n){let o=r.position.array,i=r.normal.array,a=O0.makeScale(t,e,n).invert().elements,s,l,u;for(var c=0,p=o.length;c<p;c+=3)o[c]*=t,o[c+1]*=e,o[c+2]*=n,s=i[c],l=i[c+1],u=i[c+2],i[c]=a[0]*s+a[4]*l+a[8]*u,i[c+1]=a[1]*s+a[5]*l+a[9]*u,i[c+2]=a[2]*s+a[6]*l+a[10]*u}var to=require("three");function I0(r,t){t.flatShading!==void 0&&(r.flatShading=t.flatShading,r.needsUpdate=!0),t.wireframe!==void 0&&(r.wireframe=t.wireframe),t.side!==void 0&&(t.side===0?r.side=to.FrontSide:t.side===1?r.side=to.BackSide:r.side=to.DoubleSide)}function AI(r,t){if(Array.isArray(r.material))for(let e of r.material)I0(e,t);else{let e=r.material;I0(e,t)}r.objectType==="SubdivObject"&&t.flatShading!==void 0&&(r.material.flatShading=!1,r.smoothShading=!t.flatShading,r.updateMesh())}function L0(r,t,e){let n;if(t.geometry.type==="SubdivGeometry")n=Wi.createFromState(r,t,e);else{let o=t.geometry.type==="BooleanGeometry"?new to.BufferGeometry:Fl(t.geometry,e),i="materials"in t?t.materials.map(a=>e.material(a)):e.material(t.material);zs.is2DParametricMesh(o.userData.type)?n=new Ql(o,i):o?.userData.type==="VectorGeometry"?n=new Mi(o,i):t.geometry.type==="NonParametricGeometry"?n=new Jl(o,i):t.geometry.type==="BooleanGeometry"?(n=new Zl(void 0,i),n.booleanOp=t.geometry.operation,t.geometry.phongAngle!==void 0&&(n.phongAngle=t.geometry.phongAngle)):n=new ki(o,i),n.uuid=r,n.fromState(t,e)}return AI(n,t),n}function N0(r,t,e){return t.type==="Mesh"?t.geometry.type==="TextGeometry"?new mc(r,t,e):L0(r,t,e):t.type==="Empty"?wo.createFromState(r,t):t.type==="PointLight"?Bi.createFromState(r,t,e):t.type==="SpotLight"?Fi.createFromState(r,t,e):t.type==="DirectionalLight"?Di.createFromState(r,t,e):Fo.is(t.type)?yn.createFromState(r,t):(console.error(t),new wo)}var Io=class extends Jt{};var bn=require("three");function P0(r,t){let e=!1,n=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return o.length>0&&(r.layers.set(8),n.length>0&&r.layers.enable(3),e=!0,en(r),Jr(r)),n.length===0&&o.length===0&&r.layers.set(0),e}function M0(r,t){if(!t.layers)return!1;let e=!1,n=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return n.length>0&&(r.layers.set(3),o.length>0&&r.layers.enable(8),e=!0),n.length===0&&o.length===0&&r.layers.set(0),e}function E0(r){let t=!1;return r.traverseEntity(e=>{if(e instanceof bn.Mesh)if(Array.isArray(e.material))for(let n=0;n<e.material.length;n++)P0(e,e.material[n])&&(t=!0);else P0(e,e.material)&&(t=!0)}),t}function D0(r){let t=!1;return r.traverseEntity(e=>{if(e instanceof bn.Mesh)if(Array.isArray(e.material))for(let n=0;n<e.material.length;n++)M0(e,e.material[n])&&(t=!0);else M0(e,e.material)&&(t=!0)}),t}function B0(r){"material"in r&&OI(r.material),"geometry"in r&&r.geometry.dispose()}function OI(r){zh(r).forEach(t=>{t instanceof Io||t.dispose()})}var II=new bn.Raycaster,LI=new bn.Matrix4,NI=new bn.Ray;function F0(r,t,e){let n=r.cloner;if(n)for(let o of n.children){let i=LI.copy(o.matrixWorld).invert(),a=NI.copy(t.ray).applyMatrix4(i),s=r.matrixWorld;a.applyMatrix4(s);let l=II;l.set(a.origin,a.direction),l.near=t.near,l.far=t.far,l.intersectObject(r,!1).length>0&&e.push({object:r})}}var R0=new sn.Vector3,Pp=class extends Ul(sn.Scene){constructor(e,n){super();this.objectType="Scene";this.backupFog=new sn.Fog(16777215,.1,2e3);this.fogUseBGColor=!1;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this.bgColor=new ft(1,1,1,1);this.entityByUuid={};this.ambientLight=new sn.HemisphereLight(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.ambientLight.layers.enable(3),this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.postprocessing=e.postprocessing,this.init(e,n),this.matrixAutoUpdate=!1}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=D0(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=E0(this),this.needsNormalDirty=!1),this._needsNormal}find(e){if(e===""||e===void 0)return;let n=this.entityByUuid[e];return n===void 0?this.getObjectByProperty("uuid",e):n}get enableFog(){return this.fog!==null}set enableFog(e){this.fog=e===!0?this.backupFog:null}init(e,n){if(this.createChildrenObjects(e.objects,this,n),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(vt(e.backgroundColor,n)),this.updateFog(e.fog,n),this.updateAmbientLight(e.environment.ambientLight,n),this.activeCamera=this.personalCamera,e.publish.playCamera!==null){let o=this.find(e.publish.playCamera);o instanceof yn&&this.switchActiveCamera(o)}this.traverse(o=>{Hr(o)&&o.recomputeBoolean()})}clearScene(){this.traverseEntity(e=>{B0(e)});for(let e of this.children)qr(e)&&e.removeFromParent()}resetAfterClear(e,n){this.init(e,n)}createPersonalCamera(){let e=yn.createFromState(Pp.PERSONAL_CAMERA_ID,{...gl.defaultData,name:"Personal Camera"});return e.objectHelper.visible=!1,delete e.isEntity,this.registerObjectCreatedInLegacy(e),e}raycast(e){let n=[],o=i=>{for(let a of i.children)qr(a)&&!a.raycastLock&&a.visible&&((jr(a)||kl(a)&&this.enableHelpers&&a.objectHelper.visible)&&(e.intersectObject(a,!1,n),F0(a,e,n)),o(a))};return o(this),n}traverseEntity(e){for(let n of this.children)qr(n)&&n.traverseEntity(e)}traverseVisibleEntity(e){for(let n of this.children)qr(n)&&n.visible&&n.traverseVisibleEntity(e)}updateFog(e,n){this.enableFog=e.enabled,this.fogUseBGColor=e.useBackgroundColor,e.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=vt(e.color,n),this.backupFog.near=e.near,this.backupFog.far=e.far}dispose(){this.clearScene()}updateAmbientLight(e,n){ug(this.ambientLight,e,n),e.groundColor!==void 0&&(this.ambientLight.groundColor=vt(e.groundColor,n)),e.enabled!==void 0&&(this.ambientLight.visible=e.enabled)}switchActiveCamera(e){this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=e,e.objectHelper.visible=!1}setBackgroundColor(e){this.bgColor=e,this.fogUseBGColor===!0&&(this.backupFog.color=e)}createChildrenObjects(e,n,o){for(let i of e)this.createChildObject(i.id,i.data,i.children,n,o)}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let n of e.children)this.unregisterObject(n)}createChildObject(e,n,o,i,a){let s=N0(e,n,a);return s&&(this.entityByUuid[e]=s,i.add(s),Hr(i)&&jr(s)&&(s.prevBooleanObjectParent=i),this.createChildrenObjects(o,s,a)),s}getCenter(e){let n=[];for(let i=0,a=e.length;i<a;++i){let{id:s,recursive:l}=e[i],u=this.find(s),c=l?u.recursiveBBox:u.singleBBox;n.push(...c.vertices)}let o=new sn.Box3;return o.setFromPoints(n),o.getCenter(R0),R0}copyMatrixWorld(e,n){if(e===null){n.identity();return}let o=this.find(e);o?n.copy(o.matrixWorld):n.identity()}copyParentMatrixWorld(e,n){if(e===null){n.identity();return}let o=this.find(e)?.parent;o?n.copy(o.matrixWorld):n.identity()}traverseMaterial(e){this.traverseEntity(n=>{if(n instanceof wt)if(Array.isArray(n.material))for(let o=0;o<n.material.length;o++)n.material[o]instanceof Jt&&e(n.material[o]);else n.material instanceof Jt&&e(n.material)})}updateCanvasSize(e,n){this.activeCamera.setViewplaneSize(e,n);let o,i;e>=n?(o=n/e,i=1):(o=1,i=e/n),this.traverseMaterial(a=>{a.getLayersOfType("transmission").forEach(l=>{l.uniforms[`f${l.id}_aspectRatio`].value.x=o,l.uniforms[`f${l.id}_aspectRatio`].value.y=i})})}},fs=Pp;fs.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var V0=Vp(k0());var G0=new Map;function U0(r){if(typeof r=="string")return r;let t=G0.get(r);return t||(t={url:URL.createObjectURL(new Blob([r]))},G0.set(r,t)),t.url}var qi=class{constructor({src:t,volume:e,delay:n,loop:o}){this._volume=1;this.delay=0;this._loop=1;this.loopsRemaining=0;this._status="stopped";this.onEnd=()=>{this.loopsRemaining===1/0?this.replay():this.loopsRemaining>1?(this.replay(),this.loopsRemaining--):(this._status="stopped",this.loopsRemaining=this._loop)};let i;typeof t=="string"?i={src:t}:i={src:U0(t),format:"wav"},this.sound=new V0.Howl(i),this.sound.on("end",this.onEnd),this.src=t,e!==void 0&&(this.volume=e),n!==void 0&&(this.delay=n),o!==void 0&&(this.loop=o)}get status(){return this._status}get volume(){return this._volume}set volume(t){this._volume=t,this.sound.volume(t)}get loop(){return this._loop}set loop(t){this._loop=t,this.loopsRemaining=t}replay(){this.clearDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.clearDelay()},this.delay)}fade(t,e=1e3){t?(this.sound.volume(this._volume),this.clearFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,e),this.clearFade()},t)):this.sound.fade(this._volume,0,e)}on(t,e,n){this.sound.on(t,e,n)}off(t,e,n){this.sound.off(t,e,n)}play(){this._status==="playing"||this.sound.playing()||(this._status==="paused"?(this.sound.seek()===0?this.replay():this.sound.play(),this._status="playing"):this._status==="stopped"&&(this.replay(),this._status="playing"))}pause(){this._status==="playing"&&(this.sound.pause(),this.clearFade(),this.clearDelay(),this._status="paused")}stop(){this.sound.stop(),this.loopsRemaining=this._loop,this.clearFade(),this.clearDelay(),this._status="stopped"}clearFade(){this.fadeTimerId&&(clearTimeout(this.fadeTimerId),delete this.fadeTimerId)}clearDelay(){this.delayTimerId&&(clearTimeout(this.delayTimerId),delete this.delayTimerId)}dispose(t=!1){this.off(),this.stop(),this.clearFade(),this.clearDelay()}};function Xi(r){this.char=r,this.state={},this.activeState=null}function Mp(r,t,e){this.contextName=e,this.startIndex=r,this.endOffset=t}function PI(r,t,e){this.contextName=r,this.openRange=null,this.ranges=[],this.checkStart=t,this.checkEnd=e}function Ft(r,t){this.context=r,this.index=t,this.length=r.length,this.current=r[t],this.backtrack=r.slice(0,t),this.lookahead=r.slice(t+1)}function vc(r){this.eventId=r,this.subscribers=[]}function MI(r){let t=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];t.forEach(n=>{Object.defineProperty(this.events,n,{value:new vc(n)})}),r&&t.forEach(n=>{let o=r[n];typeof o=="function"&&this.events[n].subscribe(o)}),["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"].forEach(n=>{this.events[n].subscribe(this.updateContextsRanges)})}function et(r){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],MI.call(this,r)}Xi.prototype.setState=function(r,t){return this.state[r]=t,this.activeState={key:r,value:this.state[r]},this.activeState};Xi.prototype.getState=function(r){return this.state[r]||null};et.prototype.inboundIndex=function(r){return r>=0&&r<this.tokens.length};et.prototype.composeRUD=function(r){let e=r.map(o=>this[o[0]].apply(this,o.slice(1).concat(!0))),n=o=>typeof o=="object"&&o.hasOwnProperty("FAIL");if(e.every(n))return{FAIL:"composeRUD: one or more operations hasn't completed successfully",report:e.filter(n)};this.dispatch("composeRUD",[e.filter(o=>!n(o))])};et.prototype.replaceRange=function(r,t,e,n){t=t!==null?t:this.tokens.length;let o=e.every(i=>i instanceof Xi);if(!isNaN(r)&&this.inboundIndex(r)&&o){let i=this.tokens.splice.apply(this.tokens,[r,t].concat(e));return n||this.dispatch("replaceToken",[r,t,e]),[i,e]}else return{FAIL:"replaceRange: invalid tokens or startIndex."}};et.prototype.replaceToken=function(r,t,e){if(!isNaN(r)&&this.inboundIndex(r)&&t instanceof Xi){let n=this.tokens.splice(r,1,t);return e||this.dispatch("replaceToken",[r,t]),[n[0],t]}else return{FAIL:"replaceToken: invalid token or index."}};et.prototype.removeRange=function(r,t,e){t=isNaN(t)?this.tokens.length:t;let n=this.tokens.splice(r,t);return e||this.dispatch("removeRange",[n,r,t]),n};et.prototype.removeToken=function(r,t){if(!isNaN(r)&&this.inboundIndex(r)){let e=this.tokens.splice(r,1);return t||this.dispatch("removeToken",[e,r]),e}else return{FAIL:"removeToken: invalid token index."}};et.prototype.insertToken=function(r,t,e){return r.every(o=>o instanceof Xi)?(this.tokens.splice.apply(this.tokens,[t,0].concat(r)),e||this.dispatch("insertToken",[r,t]),r):{FAIL:"insertToken: invalid token(s)."}};et.prototype.registerModifier=function(r,t,e){this.events.newToken.subscribe(function(n,o){let i=[n,o],a=t===null||t.apply(this,i)===!0,s=[n,o];if(a){let l=e.apply(this,s);n.setState(r,l)}}),this.registeredModifiers.push(r)};vc.prototype.subscribe=function(r){return typeof r=="function"?this.subscribers.push(r)-1:{FAIL:`invalid '${this.eventId}' event handler`}};vc.prototype.unsubscribe=function(r){this.subscribers.splice(r,1)};Ft.prototype.setCurrentIndex=function(r){this.index=r,this.current=this.context[r],this.backtrack=this.context.slice(0,r),this.lookahead=this.context.slice(r+1)};Ft.prototype.get=function(r){switch(!0){case r===0:return this.current;case(r<0&&Math.abs(r)<=this.backtrack.length):return this.backtrack.slice(r)[0];case(r>0&&r<=this.lookahead.length):return this.lookahead[r-1];default:return null}};et.prototype.rangeToText=function(r){if(r instanceof Mp)return this.getRangeTokens(r).map(t=>t.char).join("")};et.prototype.getText=function(){return this.tokens.map(r=>r.char).join("")};et.prototype.getContext=function(r){let t=this.registeredContexts[r];return t||null};et.prototype.on=function(r,t){let e=this.events[r];return e?e.subscribe(t):null};et.prototype.dispatch=function(r,t){let e=this.events[r];e instanceof vc&&e.subscribers.forEach(n=>{n.apply(this,t||[])})};et.prototype.registerContextChecker=function(r,t,e){if(this.getContext(r))return{FAIL:`context name '${r}' is already registered.`};if(typeof t!="function")return{FAIL:"missing context start check."};if(typeof e!="function")return{FAIL:"missing context end check."};let n=new PI(r,t,e);return this.registeredContexts[r]=n,this.contextCheckers.push(n),n};et.prototype.getRangeTokens=function(r){let t=r.startIndex+r.endOffset;return[].concat(this.tokens.slice(r.startIndex,t))};et.prototype.getContextRanges=function(r){let t=this.getContext(r);return t?t.ranges:{FAIL:`context checker '${r}' is not registered.`}};et.prototype.resetContextsRanges=function(){let r=this.registeredContexts;for(let t in r)if(r.hasOwnProperty(t)){let e=r[t];e.ranges=[]}};et.prototype.updateContextsRanges=function(){this.resetContextsRanges();let r=this.tokens.map(t=>t.char);for(let t=0;t<r.length;t++){let e=new Ft(r,t);this.runContextCheck(e)}this.dispatch("updateContextsRanges",[this.registeredContexts])};et.prototype.setEndOffset=function(r,t){let e=this.getContext(t).openRange.startIndex,n=new Mp(e,r,t),o=this.getContext(t).ranges;return n.rangeId=`${t}.${o.length}`,o.push(n),this.getContext(t).openRange=null,n};et.prototype.runContextCheck=function(r){let t=r.index;this.contextCheckers.forEach(e=>{let n=e.contextName,o=this.getContext(n).openRange;if(!o&&e.checkStart(r)&&(o=new Mp(t,null,n),this.getContext(n).openRange=o,this.dispatch("contextStart",[n,t])),!!o&&e.checkEnd(r)){let i=t-o.startIndex+1,a=this.setEndOffset(i,n);this.dispatch("contextEnd",[n,a])}})};et.prototype.tokenize=function(r){this.tokens=[],this.resetContextsRanges();let t=Array.from(r);this.dispatch("start");for(let e=0;e<t.length;e++){let n=t[e],o=new Ft(t,e);this.dispatch("next",[o]),this.runContextCheck(o);let i=new Xi(n);this.tokens.push(i),this.dispatch("newToken",[i,o])}return this.dispatch("end",[this.tokens]),this.tokens};var z0=et;function ln(r){return/[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(r)}function Ep(r){return/[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(r)}function Lr(r){return/[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(r)}function ds(r){return/[A-z]/.test(r)}function j0(r){return/\s/.test(r)}function nr(r){this.font=r,this.features={}}function Sn(r){this.id=r.id,this.tag=r.tag,this.substitution=r.substitution}function hs(r,t){if(!r)return-1;switch(t.format){case 1:return t.glyphs.indexOf(r);case 2:let e=t.ranges;for(let n=0;n<e.length;n++){let o=e[n];if(r>=o.start&&r<=o.end){let i=r-o.start;return o.index+i}}break;default:return-1}return-1}function EI(r,t){return hs(r,t.coverage)===-1?null:r+t.deltaGlyphId}function DI(r,t){let e=hs(r,t.coverage);return e===-1?null:t.substitute[e]}function Dp(r,t){let e=[];for(let n=0;n<r.length;n++){let o=r[n],i=t.current;i=Array.isArray(i)?i[0]:i;let a=hs(i,o);a!==-1&&e.push(a)}return e.length!==r.length?-1:e}function BI(r,t){let e=t.inputCoverage.length+t.lookaheadCoverage.length+t.backtrackCoverage.length;if(r.context.length<e)return[];let n=Dp(t.inputCoverage,r);if(n===-1)return[];let o=t.inputCoverage.length-1;if(r.lookahead.length<t.lookaheadCoverage.length)return[];let i=r.lookahead.slice(o);for(;i.length&&Lr(i[0].char);)i.shift();let a=new Ft(i,0),s=Dp(t.lookaheadCoverage,a),l=[].concat(r.backtrack);for(l.reverse();l.length&&Lr(l[0].char);)l.shift();if(l.length<t.backtrackCoverage.length)return[];let u=new Ft(l,0),c=Dp(t.backtrackCoverage,u),p=n.length===t.inputCoverage.length&&s.length===t.lookaheadCoverage.length&&c.length===t.backtrackCoverage.length,f=[];if(p)for(let d=0;d<t.lookupRecords.length;d++){let m=t.lookupRecords[d].lookupListIndex,g=this.getLookupByIndex(m);for(let v=0;v<g.subtables.length;v++){let x=g.subtables[v],b=this.getLookupMethod(g,x);if(this.getSubstitutionType(g,x)==="12")for(let S=0;S<n.length;S++){let _=r.get(S),T=b(_);T&&f.push(T)}}}return f}function FI(r,t){let e=r.current,n=hs(e,t.coverage);if(n===-1)return null;let o,i=t.ligatureSets[n];for(let a=0;a<i.length;a++){o=i[a];for(let s=0;s<o.components.length;s++){let l=r.lookahead[s],u=o.components[s];if(l!==u)break;if(s===o.components.length-1)return o}}return null}function RI(r,t){let e=hs(r,t.coverage);return e===-1?null:t.sequences[e]}nr.prototype.getDefaultScriptFeaturesIndexes=function(){let r=this.font.tables.gsub.scripts;for(let t=0;t<r.length;t++){let e=r[t];if(e.tag==="DFLT")return e.script.defaultLangSys.featureIndexes}return[]};nr.prototype.getScriptFeaturesIndexes=function(r){if(!this.font.tables.gsub)return[];if(!r)return this.getDefaultScriptFeaturesIndexes();let e=this.font.tables.gsub.scripts;for(let n=0;n<e.length;n++){let o=e[n];if(o.tag===r&&o.script.defaultLangSys)return o.script.defaultLangSys.featureIndexes;{let i=o.langSysRecords;if(i)for(let a=0;a<i.length;a++){let s=i[a];if(s.tag===r)return s.langSys.featureIndexes}}}return this.getDefaultScriptFeaturesIndexes()};nr.prototype.mapTagsToFeatures=function(r,t){let e={};for(let n=0;n<r.length;n++){let o=r[n].tag,i=r[n].feature;e[o]=i}this.features[t].tags=e};nr.prototype.getScriptFeatures=function(r){let t=this.features[r];if(this.features.hasOwnProperty(r))return t;let e=this.getScriptFeaturesIndexes(r);if(!e)return null;let n=this.font.tables.gsub;return t=e.map(o=>n.features[o]),this.features[r]=t,this.mapTagsToFeatures(t,r),t};nr.prototype.getSubstitutionType=function(r,t){let e=r.lookupType.toString(),n=t.substFormat.toString();return e+n};nr.prototype.getLookupMethod=function(r,t){switch(this.getSubstitutionType(r,t)){case"11":return n=>EI.apply(this,[n,t]);case"12":return n=>DI.apply(this,[n,t]);case"63":return n=>BI.apply(this,[n,t]);case"41":return n=>FI.apply(this,[n,t]);case"21":return n=>RI.apply(this,[n,t]);default:throw new Error(`lookupType: ${r.lookupType} - substFormat: ${t.substFormat} is not yet supported`)}};nr.prototype.lookupFeature=function(r){let t=r.contextParams,e=t.index,n=this.getFeature({tag:r.tag,script:r.script});if(!n)return new Error(`font '${this.font.names.fullName.en}' doesn't support feature '${r.tag}' for script '${r.script}'.`);let o=this.getFeatureLookups(n),i=[].concat(t.context);for(let a=0;a<o.length;a++){let s=o[a],l=this.getLookupSubtables(s);for(let u=0;u<l.length;u++){let c=l[u],p=this.getSubstitutionType(s,c),f=this.getLookupMethod(s,c),d;switch(p){case"11":d=f(t.current),d&&i.splice(e,1,new Sn({id:11,tag:r.tag,substitution:d}));break;case"12":d=f(t.current),d&&i.splice(e,1,new Sn({id:12,tag:r.tag,substitution:d}));break;case"63":d=f(t),Array.isArray(d)&&d.length&&i.splice(e,1,new Sn({id:63,tag:r.tag,substitution:d}));break;case"41":d=f(t),d&&i.splice(e,1,new Sn({id:41,tag:r.tag,substitution:d}));break;case"21":d=f(t.current),d&&i.splice(e,1,new Sn({id:21,tag:r.tag,substitution:d}));break}t=new Ft(i,e),!(Array.isArray(d)&&!d.length)&&(d=null)}}return i.length?i:null};nr.prototype.supports=function(r){if(!r.script)return!1;this.getScriptFeatures(r.script);let t=this.features.hasOwnProperty(r.script);if(!r.tag)return t;let e=this.features[r.script].some(n=>n.tag===r.tag);return t&&e};nr.prototype.getLookupSubtables=function(r){return r.subtables||null};nr.prototype.getLookupByIndex=function(r){return this.font.tables.gsub.lookups[r]||null};nr.prototype.getFeatureLookups=function(r){return r.lookupListIndexes.map(this.getLookupByIndex.bind(this))};nr.prototype.getFeature=function(t){if(!this.font)return{FAIL:"No font was found"};this.features.hasOwnProperty(t.script)||this.getScriptFeatures(t.script);let e=this.features[t.script];return e?e.tags[t.tag]?this.features[t.script].tags[t.tag]:null:{FAIL:`No feature for script ${t.script}`}};var H0=nr;function kI(r){let t=r.current,e=r.get(-1);return e===null&&ln(t)||!ln(e)&&ln(t)}function GI(r){let t=r.get(1);return t===null||!ln(t)}var W0={startCheck:kI,endCheck:GI};function UI(r){let t=r.current,e=r.get(-1);return(ln(t)||Lr(t))&&!ln(e)}function VI(r){let t=r.get(1);switch(!0){case t===null:return!0;case(!ln(t)&&!Lr(t)):let e=j0(t);if(!e)return!0;if(e){let n=!1;if(n=r.lookahead.some(o=>ln(o)||Lr(o)),!n)return!0}break;default:return!1}}var q0={startCheck:UI,endCheck:VI};function zI(r,t,e){t[e].setState(r.tag,r.substitution)}function jI(r,t,e){t[e].setState(r.tag,r.substitution)}function HI(r,t,e){r.substitution.forEach((n,o)=>{t[e+o].setState(r.tag,n)})}function WI(r,t,e){let n=t[e];n.setState(r.tag,r.substitution.ligGlyph);let o=r.substitution.components.length;for(let i=0;i<o;i++)n=t[e+i+1],n.setState("deleted",!0)}var X0={11:zI,12:jI,63:HI,41:WI};function qI(r,t,e){r instanceof Sn&&X0[r.id]&&X0[r.id](r,t,e)}var Yi=qI;function XI(r){let t=[].concat(r.backtrack);for(let e=t.length-1;e>=0;e--){let n=t[e],o=Ep(n),i=Lr(n);if(!o&&!i)return!0;if(o)return!1}return!1}function YI(r){if(Ep(r.current))return!1;for(let t=0;t<r.lookahead.length;t++){let e=r.lookahead[t];if(!Lr(e))return!0}return!1}function $I(r){let t="arab",e=this.featuresTags[t],n=this.tokenizer.getRangeTokens(r);if(n.length===1)return;let o=new Ft(n.map(a=>a.getState("glyphIndex")),0),i=new Ft(n.map(a=>a.char),0);n.forEach((a,s)=>{if(Lr(a.char))return;o.setCurrentIndex(s),i.setCurrentIndex(s);let l=0;XI(i)&&(l|=1),YI(i)&&(l|=2);let u;switch(l){case 1:u="fina";break;case 2:u="init";break;case 3:u="medi";break}if(e.indexOf(u)===-1)return;let c=this.query.lookupFeature({tag:u,script:t,contextParams:o});if(c instanceof Error)return console.info(c.message);c.forEach((p,f)=>{p instanceof Sn&&(Yi(p,n,f),o.context[f]=p.substitution)})})}var Y0=$I;function $0(r,t){let e=r.map(n=>n.activeState.value);return new Ft(e,t||0)}function KI(r){let t="arab",e=this.tokenizer.getRangeTokens(r),n=$0(e);n.context.forEach((o,i)=>{n.setCurrentIndex(i);let a=this.query.lookupFeature({tag:"rlig",script:t,contextParams:n});a.length&&(a.forEach(s=>Yi(s,e,i)),n=$0(e))})}var K0=KI;function ZI(r){let t=r.current,e=r.get(-1);return e===null&&ds(t)||!ds(e)&&ds(t)}function QI(r){let t=r.get(1);return t===null||!ds(t)}var Z0={startCheck:ZI,endCheck:QI};function Q0(r,t){let e=r.map(n=>n.activeState.value);return new Ft(e,t||0)}function JI(r){let t="latn",e=this.tokenizer.getRangeTokens(r),n=Q0(e);n.context.forEach((o,i)=>{n.setCurrentIndex(i);let a=this.query.lookupFeature({tag:"liga",script:t,contextParams:n});a.length&&(a.forEach(s=>Yi(s,e,i)),n=Q0(e))})}var J0=JI;function Nr(r){this.baseDir=r||"ltr",this.tokenizer=new z0,this.featuresTags={}}Nr.prototype.setText=function(r){this.text=r};Nr.prototype.contextChecks={latinWordCheck:Z0,arabicWordCheck:W0,arabicSentenceCheck:q0};function Bp(r){let t=this.contextChecks[`${r}Check`];return this.tokenizer.registerContextChecker(r,t.startCheck,t.endCheck)}function eL(){return Bp.call(this,"latinWord"),Bp.call(this,"arabicWord"),Bp.call(this,"arabicSentence"),this.tokenizer.tokenize(this.text)}function tL(){this.tokenizer.getContextRanges("arabicSentence").forEach(t=>{let e=this.tokenizer.getRangeTokens(t);this.tokenizer.replaceRange(t.startIndex,t.endOffset,e.reverse())})}Nr.prototype.registerFeatures=function(r,t){let e=t.filter(n=>this.query.supports({script:r,tag:n}));this.featuresTags.hasOwnProperty(r)?this.featuresTags[r]=this.featuresTags[r].concat(e):this.featuresTags[r]=e};Nr.prototype.applyFeatures=function(r,t){if(!r)throw new Error("No valid font was provided to apply features");this.query||(this.query=new H0(r));for(let e=0;e<t.length;e++){let n=t[e];!this.query.supports({script:n.script})||this.registerFeatures(n.script,n.tags)}};Nr.prototype.registerModifier=function(r,t,e){this.tokenizer.registerModifier(r,t,e)};function Fp(){if(this.tokenizer.registeredModifiers.indexOf("glyphIndex")===-1)throw new Error("glyphIndex modifier is required to apply arabic presentation features.")}function rL(){let r="arab";if(!this.featuresTags.hasOwnProperty(r))return;Fp.call(this),this.tokenizer.getContextRanges("arabicWord").forEach(e=>{Y0.call(this,e)})}function nL(){let r="arab";if(!this.featuresTags.hasOwnProperty(r)||this.featuresTags[r].indexOf("rlig")===-1)return;Fp.call(this),this.tokenizer.getContextRanges("arabicWord").forEach(n=>{K0.call(this,n)})}function oL(){let r="latn";if(!this.featuresTags.hasOwnProperty(r)||this.featuresTags[r].indexOf("liga")===-1)return;Fp.call(this),this.tokenizer.getContextRanges("latinWord").forEach(n=>{J0.call(this,n)})}Nr.prototype.checkContextReady=function(r){return!!this.tokenizer.getContext(r)};Nr.prototype.applyFeaturesToContexts=function(){this.checkContextReady("arabicWord")&&(rL.call(this),nL.call(this)),this.checkContextReady("latinWord")&&oL.call(this),this.checkContextReady("arabicSentence")&&tL.call(this)};Nr.prototype.processText=function(r){(!this.text||this.text!==r)&&(this.setText(r),eL.call(this),this.applyFeaturesToContexts())};Nr.prototype.getBidiText=function(r){return this.processText(r),this.tokenizer.getText()};Nr.prototype.getTextGlyphs=function(r){this.processText(r);let t=[];for(let e=0;e<this.tokenizer.tokens.length;e++){let n=this.tokenizer.tokens[e];if(n.state.deleted)continue;let o=n.activeState.value;t.push(Array.isArray(o)?o[0]:o)}return t};var ev=Nr;var mt=require("three"),xc=class{constructor(){this.type="ShapePath";this.color=new mt.Color;this.subPaths=[];this.currentPath=null}moveTo(t,e){return this.currentPath=new mt.Path,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath?.lineTo(t,e),this}quadraticCurveTo(t,e,n,o){return this.currentPath?.quadraticCurveTo(t,e,n,o),this}bezierCurveTo(t,e,n,o,i,a){return this.currentPath?.bezierCurveTo(t,e,n,o,i,a),this}splineThru(t){return this.currentPath?.splineThru(t),this}toShapes(){let e={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},n={loc:e.ORIGIN,t:0};function o(m,g,v,x){let b=m.x,w=g.x,S=v.x,_=x.x,T=m.y,y=g.y,O=v.y,A=x.y,I=(_-S)*(T-O)-(A-O)*(b-S),C=(w-b)*(T-O)-(y-T)*(b-S),N=(A-O)*(w-b)-(_-S)*(y-T),P=I/N,G=C/N;if(N===0&&I!==0||P<=0||P>=1||G<0||G>1)return null;if(I===0&&N===0){for(let $=0;$<2;$++)if(i($===0?v:x,m,g),n.loc===e.ORIGIN){let Y=$===0?v:x;return{x:Y.x,y:Y.y,t:n.t}}else if(n.loc===e.BETWEEN){let Y=+(b+n.t*(w-b)).toPrecision(10),ie=+(T+n.t*(y-T)).toPrecision(10);return{x:Y,y:ie,t:n.t}}return null}else{for(let ie=0;ie<2;ie++)if(i(ie===0?v:x,m,g),n.loc===e.ORIGIN){let j=ie===0?v:x;return{x:j.x,y:j.y,t:n.t}}let $=+(b+P*(w-b)).toPrecision(10),Y=+(T+P*(y-T)).toPrecision(10);return{x:$,y:Y,t:P}}}function i(m,g,v){let x=v.x-g.x,b=v.y-g.y,w=m.x-g.x,S=m.y-g.y,_=x*S-w*b;if(m.x===g.x&&m.y===g.y){n.loc=e.ORIGIN,n.t=0;return}if(m.x===v.x&&m.y===v.y){n.loc=e.DESTINATION,n.t=1;return}if(_<-Number.EPSILON){n.loc=e.LEFT;return}if(_>Number.EPSILON){n.loc=e.RIGHT;return}if(x*w<0||b*S<0){n.loc=e.BEHIND;return}if(Math.sqrt(x*x+b*b)<Math.sqrt(w*w+S*S)){n.loc=e.BEYOND;return}let T;x!==0?T=w/x:T=S/b,n.loc=e.BETWEEN,n.t=T}function a(m,g){let v=[],x=[];for(let b=1;b<m.length;b++){let w=m[b-1],S=m[b];for(let _=1;_<g.length;_++){let T=g[_-1],y=g[_],O=o(w,S,T,y);O!==null&&v.find(A=>A.t<=O.t+Number.EPSILON&&A.t>=O.t-Number.EPSILON)===void 0&&(v.push(O),x.push(new mt.Vector2(O.x,O.y)))}}return x}function s(m,g,v){let x=new mt.Vector2;g.getCenter(x);let b=[];return v.forEach(w=>{w.boundingBox.containsPoint(x)&&a(m,w.points).forEach(_=>{b.push({identifier:w.identifier,isCW:w.isCW,point:_})})}),b.sort((w,S)=>w.point.x-S.point.x),b}function l(m,g,v,x,b){(b==null||b==="")&&(b="nonzero");let w=new mt.Vector2;m.boundingBox.getCenter(w);let S=[new mt.Vector2(v,w.y),new mt.Vector2(x,w.y)],_=s(S,m.boundingBox,g);_.sort((C,N)=>C.point.x-N.point.x);let T=[],y=[];_.forEach(C=>{C.identifier===m.identifier?T.push(C):y.push(C)});let O=T[0].point.x,A=[],I=0;for(;I<y.length&&y[I].point.x<O;)A.length>0&&A[A.length-1]===y[I].identifier?A.pop():A.push(y[I].identifier),I++;if(A.push(m.identifier),b==="evenodd"){let C=A.length%2===0,N=A[A.length-2];return{identifier:m.identifier,isHole:C,for:N}}else if(b==="nonzero"){let C=!0,N=null,P=null;for(let G=0;G<A.length;G++){let $=A[G];g[$]&&(C?(P=g[$].isCW,C=!1,N=$):P!==g[$].isCW&&(P=g[$].isCW,C=!0))}return{identifier:m.identifier,isHole:C,for:N}}else console.warn('fill-rule: "'+b+'" is currently not implemented.')}let u=0,c=999999999,p=-999999999,f=[];this.subPaths.forEach(m=>{let g=m.getPoints(),v=-999999999,x=999999999,b=-999999999,w=999999999;for(let S=0;S<g.length;S++){let _=g[S];_.y>v&&(v=_.y),_.y<x&&(x=_.y),_.x>b&&(b=_.x),_.x<w&&(w=_.x)}p<=b&&(p=b+1),c>=w&&(c=w-1),g.length&&f.push({curves:m.curves,points:g,isCW:mt.ShapeUtils.isClockWise(g),identifier:u++,boundingBox:new mt.Box2(new mt.Vector2(w,x),new mt.Vector2(b,v))})});let d=f.map(m=>l(m,f,c,p,this.userData?.style.fillRule)),h=[];return f.forEach(m=>{let g=d[m.identifier];if(g&&!g.isHole){let v=new mt.Shape;v.curves=m.curves,d.filter(b=>b?.isHole&&b.for===m.identifier).forEach(b=>{if(b){let w=f[b.identifier],S=new mt.Path;S.curves=w.curves,v.holes.push(S)}}),h.push(v)}}),h}};var $i=require("three");function iL(r,t){return t.state.glyphIndex===r||t.state.fina===r||t.state.medi===r||t.state.init===r}var bc=class{constructor(t,e){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=Lp(t).then(n=>{n&&(this._arrayBuffer=n.arr,this._url=n.url,this.font=n.font,this._intercepted=n.intercepted,this._isLoaded=!0,e())})}update(t,e){this._isLoaded=!1,this._isUserFont=t.isUserFont??!1,this._loadingPromise=Lp(t).then(n=>{n&&(this._arrayBuffer=n.arr,this._url=n.url,this.font=n.font,this._intercepted=n.intercepted,this._isLoaded=!0,e())})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}reverseLigaturesTable(t,e,n){let o=new ev,i=c=>t.charToGlyphIndex(c.char);o.registerModifier("glyphIndex",null,i),o.applyFeatures(t,t.defaultRenderOptions.features),o.getTextGlyphs(e);let a=o.tokenizer.tokens,s=[],l=0,u=n.length===a.length;for(let c=0;c<n.length;c++){let p=n[c].index,f=String.fromCharCode(n[c].unicode),d=a[l];if(iL(p,d)||u)s.push({char:f,index:p,replacements:[d.state.glyphIndex],replacementChars:[d.char]}),l++;else{let h=d.char,m="",g=[d.state.glyphIndex],v=[],x=!1;for(;!x;)l++,m=e.charAt(l),h+=m,g.push(t.charToGlyphIndex(m)),v=t.stringToGlyphs(h),v.length===1&&v[0].index===p&&(x=!0),l>e.length&&(x=!0);s.push({char:f,index:p,replacements:g,replacementChars:Array.from(h)}),l++}}return s}async generateShapes(t,e){await this._loadingPromise;let n=this.font,o=e.fontSize/this.unitsPerEm,i=e.fontSize*e.lineHeight,a=t.map(v=>this.getTextWidth(v,e)),s=e.width,l=this.getLineInitialOffsetX(a[0],s,e.horizontalAlign),u=this.getLineInitialOffsetY(i,t.length,e.height,o,e.verticalAlign),c=this.computeSpaceWidthForLine(t,0,e),p=this.getCharWidth(`
1335
- `,e),f=[],d=t.map(v=>[]),h=t.map(v=>[]),m;for(let v=0;v<t.length;v++){let x=t[v],b={features:{liga:!0}},w=[];try{w=n.stringToGlyphs(x,b)}catch(_){console.warn(_)}l=this.getLineInitialOffsetX(a[v],s,e.horizontalAlign);let S=[];try{S=this.reverseLigaturesTable(n,x,w)}catch(_){console.warn(_)}c=this.computeSpaceWidthForLine(t,v,e);for(let _=0;_<w.length;_++){let T=w[_],y=T.index===0?`
1336
- `:T.unicode?String.fromCharCode(T.unicode):void 0,O=S[_],A=0,I=0;_===0&&e.horizontalAlign===2&&T.leftSideBearing!==void 0&&(I=-T.leftSideBearing*o),m&&(A=n.getKerningValue(T,m)*o),l+=I+A;let C=0;if(y===`
1337
- `)C=p;else if(y===" ")C=c;else{let N=this.createPath(T,o,l,u,e);N&&(C=N.offsetX-(A+I),f.push(N.path))}if(O.replacements.length===1)h[v].push([l,u]),d[v].push(C);else{let N=O.replacements.map(Y=>(n.glyphs.get(Y).advanceWidth??0)*o),P=N.reduce((Y,ie)=>Y+=ie,0),G=N.map(Y=>Y/P),$=l;for(let Y=0;Y<G.length;Y++){let ie=C*G[Y];h[v].push([$,u]),d[v].push(ie),$+=ie}}l+=C,m=T}u-=i}let g=[];for(let v=0,x=f.length;v<x;v++)g.push(...f[v].toShapes());return{shapes:g,charWidths:d,lineWidths:a,charCoords:h}}get isUserFont(){return this._isUserFont}get arrayBuffer(){return this._arrayBuffer}get ascender(){return this.font?.ascender??0}get descender(){return this.font?.descender??0}get familyName(){return this.font?.names.fontFamily??""}get subfamilyName(){return this.font?.names.fontSubfamily??""}get unitsPerEm(){return this.font?.unitsPerEm??1}getLineInitialOffsetX(t,e,n){return n===3?e*.5-t*.5:n===2?e-t:0}getLineInitialOffsetY(t,e,n,o,i){let a=e*t,s=Math.abs(this.ascender-this.descender)*o,l=t-s,u=-this.ascender*o-l/2;return i===3?-(n-a-u):i===2?-(n*.5-a*.5-u):u}createPath(t,e,n,o,i){let a=t.getPath(n,-o,i.fontSize,{kerning:!1,letterSpacing:i.letterSpacing});if(!a){console.error('THREE.Font: character "'+t+'" does not exists in font family '+this.familyName+".");return}let s=new xc,l=(t.advanceWidth??1)*e;if(t)for(let u of a.commands){let c=s.currentPath?.currentPoint;if(!(c&&u.type!=="Z"&&c.x===u.x&&-c.y===u.y))switch(u.type){case"M":s.moveTo(u.x,-u.y);break;case"L":s.lineTo(u.x,-u.y);break;case"Q":s.quadraticCurveTo(u.x1,-u.y1,u.x,-u.y);break;case"C":s.bezierCurveTo(u.x1,-u.y1,u.x2,-u.y2,u.x,-u.y);break}}return s.subPaths.forEach(u=>{let c=aL(u.curves);c!==void 0&&u.currentPoint.distanceTo(c)>0&&u.lineTo(c.x,c.y)}),{offsetX:l+i.fontSize*i.letterSpacing,path:s}}getCharWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}getTextWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}computeSpaceWidthForLine(t,e,n){let o=this.getCharWidth(" ",n),i=t[e];if(i){let a=this.countSpaces(i.trimEnd());if(n.horizontalAlign===4&&e<t.length-1&&a){let s=n.width,l=this.getTextWidth(i,n);return(s-(l-a*o))/a}}return o}countSpaces(t){return(t.match(/ /g)||[]).length}};function aL(r){if(r.length){let t=r[0];if(t instanceof $i.LineCurve)return t.v1;if(t instanceof $i.CubicBezierCurve||t instanceof $i.QuadraticBezierCurve)return t.v0}}var ms=class{constructor(t,e={}){this.deletedMaterial=new Io(Zt.defaultTwoLayerData("basic"),this);this.deletedImage=new So(xl.emptyImage);this.materials={};this.images={};this.colors={};this.audios={};this.fonts={};this.penumbraSize=[];this.onImageLoad=()=>{this._onImageLoad&&this._onImageLoad()};this.onFontLoad=()=>{this._onFontLoad&&this._onFontLoad()};if(e.images)for(let[n,o]of Object.entries(e.images))this.addImage(n,o);if(e.audios)for(let[n,o]of Object.entries(e.audios))this.addAudio(n,o.data);this.reset(t)}setOnImageLoad(t){this._onImageLoad=t}setOnFontLoad(t){this._onFontLoad=t}reset(t){for(let[e,n]of Object.entries(t.images))this.addImage(e,n);for(let[e,n]of Object.entries(t.colors))this.addColor(e,n);for(let[e,n]of Object.entries(t.materials))this.addMaterial(e,new Io(n,this));for(let[e,n]of Object.entries(t.audios))this.addAudio(e,n.data);for(let[e,n]of Object.entries(t.fonts))this.addFont(e,n);this.penumbraSize=t.penumbraSize}addMaterial(t,e){e.uuid=t,this.materials[t]=e}deleteMaterial(t){this.materials[t]&&(this.materials[t].dispose(),delete this.materials[t])}getMaterial(t){let e=this.materials[t];return e}getMaterialOrDeletedPlaceholder(t){return this.materials[t]??this.deletedMaterial}material(t){return typeof t=="string"?this.getMaterialOrDeletedPlaceholder(t):new Jt(t,this)}getMaterials(){return this.materials}addImage(t,e){return this.images[t]?(this.images[t].updateSrc(e.data),!0):(this.images[t]=new So(e,this.onImageLoad),!1)}deleteImage(t){this.images[t]&&delete this.images[t]}getDefaultImage(){return this.images.image_0}getImage(t){return this.images[t]??this.deletedImage}image(t){return typeof t=="string"?this.getImage(t):new Pi(t,this.onImageLoad)}getImages(){return this.images}addColor(t,e){return this.colors[t]?("a"in e?this.colors[t].setRGBA(e.r,e.g,e.b,e.a):this.colors[t].setRGBA(e.r,e.g,e.b,1),!0):("a"in e?this.colors[t]=new Hn(e.r,e.g,e.b,e.a):this.colors[t]=new Hn(e.r,e.g,e.b,1),!1)}updateColor(t,e){if(this.colors[t]){let n=this.colors[t];return this.colors[t].r=e.r??n.r,this.colors[t].g=e.g??n.g,this.colors[t].b=e.b??n.b,this.colors[t].a=e.a??n.a,!0}return!1}deleteColor(t){this.colors[t]&&delete this.colors[t]}getColor(t){return this.colors[t]}color(t){let e;if(typeof t=="string"){let n=this.getColor(t);n?e=n:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),e=new ft(0,0,0,0))}else return"a"in t?new ft(t.r,t.g,t.b,t.a):new ft(t.r,t.g,t.b,1);return e}addAudio(t,e){this.audios[t]=e}getAudio(t){let e=this.audios[t];if(e instanceof qi)return e;{let n=new qi({src:e});return this.audios[t]=n,n}}deleteAudio(t){this.audios[t]&&delete this.audios[t]}addFont(t,e){this.fonts[t]=new bc(e,this.onFontLoad)}getFont(t){return this.fonts[t]}deleteFont(t){this.fonts[t]&&delete this.fonts[t]}dispose(){Object.keys(this.materials).forEach(e=>this.deleteMaterial(e)),this._onImageLoad=void 0,Object.values(this.audios).forEach(e=>{e instanceof qi&&e.dispose()}),this.audios={}}},TX=new ms(vl.emptyData());var tv=require("three/examples/jsm/loaders/DRACOLoader.js");var ro;function sL(){return ro||(ro=new tv.DRACOLoader,ro.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),ro.decoderPending}async function lL(r){if(ro){let t={attributeIDs:ro.defaultAttributeIDs,attributeTypes:ro.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await ro.decodeGeometry(new Int8Array(r).buffer,t)}catch(n){console.error(n)}if(e)return{index:e.index?{array:e.index.array}:void 0,attributes:Object.entries(e.attributes).map(([n,o])=>({name:n,itemSize:o.itemSize,array:o.array}))}}return null}async function rv(r,t){let[e,n]=Ic(Fs.deserialize(new Uint8Array(r)));Yh(e);let o=[];e.scene.objects.traverse((i,a)=>{a.type==="Mesh"&&a.geometry.type==="NonParametricGeometry"&&a.geometry.data.draco!==void 0&&o.push(a)}),o.length&&await sL();for(let i of o){let a=await lL(kt(i.geometry.data.draco));if(a){a.index&&(i.geometry.data.index={array:a.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let s={};a.attributes.forEach(({name:l,array:u,itemSize:c})=>{s[l]={array:u,itemSize:c,type:"Float32Array",normalized:!1}}),i.geometry.data.attributes=s,i.geometry.data.draco=void 0}}return t&&t(e),n.result().data}var cL=require("three"),uL=require("three/examples/jsm/utils/BufferGeometryUtils.js");function nv(r){let t;if(!!r.index)for(let e=0;e<r.index.array.length;e+=3)t=r.index.array[e],r.index.array[e]=r.index.array[e+2],r.index.array[e+2]=t}var gs=require("three");function ov(r){let t=new Set;return r.traverse(e=>{if(jr(e))if(Ke(e.material))e.material.forEach(n=>{let o=n;t.has(o)||t.add(o)});else{let n=e.material;t.has(n)||t.add(n)}}),t.forEach(e=>{if(e instanceof Array)return;let n=e.onBeforeCompile.bind(e);if(pL(e)){Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new gs.Color,specularColor:new gs.Color});let o=0;e.onBeforeCompile=(i,a)=>{n&&n(i,a),i.uniforms=Object.assign({},gs.ShaderLib.physical.uniforms,i.uniforms),e.getLayersOfType("transmission").forEach(s=>{if(i.uniforms.transmissionSamplerMap.value){let l=s.color;l&&(l.transmissionSamplerMap.value=i.uniforms.transmissionSamplerMap.value,l.transmissionSamplerSize.value=i.uniforms.transmissionSamplerSize.value)}else o++,o<2&&(e.needsUpdate=!0)})}}else fL(e)||(e.onBeforeCompile=(o,i)=>{n&&n(o,i),e.transparent=!1})}),r}function pL(r){return r.getLayersOfType("transmission").length>0}function fL(r){let t=0;return r.layers.forEach(e=>{if(e.type!=="light"&&e.type!=="fresnel"){let n=e.uniforms["f"+e.id+"_alpha"];n&&(t+=(1-t)*n.value)}}),t<1}function iv(r){return r.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),r}function av(r){let t=[],e=(n,o=0)=>{let i=o>0?n+o:n;return t.includes(i)?e(n,o+1):i};return r.traverse(n=>{if(t.includes(n.name)){let o=n.name,i=e(n.name);if(n.name=i,n.isMesh){let a=n;a.material instanceof Array?a.material.forEach(s=>{s.name=s.name.replace(o,i)}):a.material.isAsset||(a.material.name=a.material.name.replace(o,i))}}t.push(n.name)}),r}var sv=require("three/examples/jsm/utils/BufferGeometryUtils.js");function lv(r){let t=[];return r.traverse(e=>{e instanceof fo&&t.push(e)}),t.forEach(e=>{let n=e.object,i=e.children.map(s=>{s.updateMatrix();let l=s.geometry.clone().applyMatrix4(s.matrix);return s.matrix.determinant()<0&&nv(l),l}),a=(0,sv.mergeBufferGeometries)(e.parameters.hideBase?i:[n.geometry,...i]);n.geometry=a,n.remove(e),n.cloner=void 0}),r}function cv(r){return r.traverse(t=>{t.matrixAutoUpdate=!0}),r}function uv(r){Object.values(r.shared.materials).forEach(t=>{Rp(t)}),r.scene.objects.traverse((t,e)=>{"material"in e?Rp(e.material):"materials"in e&&e.materials.forEach(n=>{Rp(n)})})}function Rp(r){if(typeof r=="string")return;let t=[];r.layers.forEach((e,n)=>{e.type==="outline"&&t.push(n)}),t.reverse().forEach(e=>{r.layers.delete(e)}),t.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var pv="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",Sc=class extends wc.Loader{load(t,e,n,o=console.error){let i=new wc.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(pv+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(pv),i.load(t,async a=>{try{if(typeof a=="string")throw new Error("The .spline file is not binary!");let s=await this.parse(a);e(s)}catch(s){o(s)}},n,o)}async parse(t){let e=await rv(t,uv),n=new ms(e.shared);Object.values(n.getMaterials()).forEach(a=>Object.assign(a,{isAsset:!0}));let o=new fs(e.scene,n);o.remove(o.personalCamera),e.scene.environment.ambientLight.enabled||o.remove(o.ambientLight);let i=e.scene.publish.playCamera;if(i){let a=o.find(i);a&&cg(a)&&Object.assign(a,{makeDefault:!0})}return o=lv(o),o=ov(o),o=iv(o),o=av(o),o=cv(o),o}};
1334
+ }`,[yt.simplex,e,o,s])}}();var Tm=require("three");function _m(n,t,e){n.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var Fa=class extends Rn{constructor(e,r){super(new Tm.Matrix3);this.repeat=e;this.offset=r;_m(this.value,e,r)}updateMatrix(){_m(this.value,this.repeat,this.offset)}};var Nr=class{constructor(t,e,r,o){this.id=t;this.uuid=e;this.data=r;this.uniforms={};for(let i in o)this.uniforms[`f${this.id}_${i}`]=o[i];for(let i in r)_c(i,this,r)}get type(){return this.data.type}static create(t,e,r,o){if(r.type==="light")return Ir.createLigherLayer(t,e,r,o);if(r.type==="texture"){let i=o.image(r.texture.image),s=new Zi(i,r.texture.wrapping),l=new Va(i),c=new Fa(r.texture.repeat,r.texture.offset),p=new Y(r.crop?1:0),a=new ve(r.projection??0),u=new ve(["x","y","z"].indexOf(r.axis)??0),d=new ve(r.side??0),f=new lt(r.size?new De.Vector2(r.size[0],r.size[1]):new De.Vector2(100,100)),m=new Y(r.alpha??1),h=new ve(r.mode??0),g=new ji(s,l,p,a,u,d,f,c,m,h),x=new Ae(g.calpha,"f");return new rt(t,e,r,{texture:s,textureSize:l,crop:p,projection:a,axis:u,side:d,size:f,mat:c,alpha:m,mode:h},g,h,x)}else if(r.type==="matcap"){let i=o.image(r.texture.image),s=new Zi(i,r.texture.wrapping),l=new Y(r.alpha??1),c=new ve(r.mode??0),p=new Qi(s,l,c),a=new Ae(p.calpha,"f");return new rt(t,e,r,{texture:s,alpha:l,mode:c},p,c,a)}else if(r.type==="displace")if(r.displacementType==="noise"){let i=new ft(new De.Vector3(...r.offset)),s=new Y(r.scale??10),l=new Y(r.intensity??8),c=new Y(r.movement??1),p=new ve(r.noiseType??0),a=new zi(l,c,i,s,p);return new es(t,e,r,{offset:i,scale:s,intensity:l,movement:c,noiseType:p},a)}else throw new Error;else return ow(t,e,r,o)}updateByOp(t,e,r){let o=t;if(o.path[0]===void 0){if(o.type===0)return"type"in o.props||"category"in o.props?!0:Sm(o.props,r,this,e)}else if(o.path[0]==="texture")return"texture"in e?wc(o.props,r,this):!0;return!1}dispose(){}hasValueByKey(t){return this.uniforms[t]!==void 0}hasValue(t){return this.hasValueByKey(`f${this.id}_${t}`)}setValue(t,e){let r=`f${this.id}_${t}`;this.hasValueByKey(r)&&e!==void 0&&(this.uniforms[r].value=e)}getNode(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e]}getValue(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e].value}getName(t){let r=/f\d+_(.*)/.exec(t);if(r&&r.length>1)return r[1];console.log(`Layer.getName: error ${t}`)}getNames(){let t=[];for(let e in this.uniforms){let r=this.getName(e);r&&t.push(r)}return t}},rt=class extends Nr{constructor(e,r,o,i,s,l,c){super(e,r,o,i);this.color=s;this.mode=l;this.alpha=c}},es=class extends Nr{constructor(e,r,o,i,s){super(e,r,o,i);this.position=s}},Ir=class extends Nr{constructor(e,r,o,i,s){super(e,r,o,s);this.data=o;this.node=i}static createLigherLayer(e,r,o,i){let s,l=new Y(o.alpha),c=new ve(o.mode),p;if(o.category==="lambert"){s=new qi;let a=new Ie(i.color(o.emissive)??0);p={emissive:a},s.emissive=a}else if(o.category==="phong"){s=new Ra;let a=new Y(o.shininess??30),u=new Ie(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}else if(o.category==="toon"){s=new Yi;let a=new Y(o.shininess??30),u=new Ie(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}else if(o.category==="physical"){s=new $i;let a=new Y(o.roughness??.3),u=new Y(o.metalness??0),d=new Y(o.reflectivity??.5);p={roughness:a,metalness:u,reflectivity:d},s.roughness=a,s.metalness=u,s.reflectivity=d}else s=new Eo,p={};return s.alpha=new Y(1),s.shadingAlpha=l,s.shadingBlend=c,p.alpha=s.shadingAlpha,p.mode=s.shadingBlend,new Ir(e,r,o,s,p)}};function Am(n){let t=n instanceof Nr?n.type:n;return t==="texture"||t==="displace_map"||t==="matcap"}function rw(n,t,e,r){switch(n.type){case"color":{let o=new Ie(r.color??5855577),i=new Y(r.alpha??1),s=new Ae("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new ve(r.mode??0);return o.alpha=i,new rt(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}case"fresnel":{let o=new Ie(r.color??16777215),i=new Y(r.bias??.1),s=new Y(r.scale??1),l=new Y(r.intensity??2),c=new Y(r.factor??1),p=new Y(r.alpha??1),a=new ve(r.mode??0),u=new Bi(o,i,s,l,c,p,a),d=new Ae(u.calpha,"f");return new rt(t,e,n,{color:o,bias:i,scale:s,intensity:l,factor:c,alpha:p,mode:a},u,a,d)}case"rainbow":{let o=new Y(r.filmThickness??30),i=new Y(r.movement??0),s=new ft(r.wavelengths??new De.Vector3(0,0,0)),l=new Y(r.noiseStrength??0),c=new Y(r.noiseScale??1),p=new ft(r.offset??new De.Vector3(0,0,0)),a=new Y(r.alpha??1),u=new Di(o,i,s,l,c,p,a),d=new Ae(u.calpha,"f"),f=new ve(r.mode??0);return new rt(t,e,n,{filmThickness:o,movement:i,wavelengths:s,noiseStrength:l,noiseScale:c,offset:p,alpha:a,mode:f},u,f,d)}case"transmission":{let o=new Y(r.thickness??10),i=new Y(r.ior??1.5),s=new Y(r.roughness??.5),l=mt.transmissionSize,c=mt.transmissionRenderTarget,p=mt.transmissionRenderTargetDepth,a=window.innerWidth,u=window.innerHeight,d=a>=u?new lt(u/a,1):new lt(1,a/u),f=new Y(r.alpha??1),m=new Ri(o,i,s,l,c,p,d,f),h=new Ae(m.calpha,"f"),g=new ve(r.mode??0);return new rt(t,e,n,{thickness:o,ior:i,roughness:s,aspectRatio:d,alpha:f,mode:g},m,g,h)}case"toon":{let o=new ve(r.positioning??0),i;r.colors?i=new nr(r.colors.length,r.colors):(i=new nr(10,new De.Vector4(0,0,0,1)),i.value[1]=new De.Vector4(1,1,1,1));let s;r.steps?s=new or(r.steps.length,r.steps):(s=new or(10,1),s.value[0]=0);let l=new ft(r.source??new De.Vector3(0,0,0)),c=new co(r.isWorldSpace??!0),p=new Y(r.noiseStrength??0),a=new Y(r.noiseScale??1),u=new Xt(r.shadowColor),d=new ft(r.offset??new De.Vector3(0,0,0)),f=new Y(r.alpha??1),m=new Ji(o,i,s,l,c,p,a,u,d,f),h=new Ae(m.calpha,"f"),g=new ve(r.mode??0);return new rt(t,e,n,{positioning:o,colors:i,steps:s,source:l,isWorldSpace:c,noiseStrength:p,noiseScale:a,shadowColor:u,offset:d,alpha:f,mode:g},m,g,h)}case"outline":{let o=new Ie(r.outlineColor??16777215),i=new Ie(r.contourColor??16777215),s=new Y(r.outlineWidth??.1),l=new Y(r.contourWidth??.1),c=new Y(r.outlineThreshold??.1),p=new Y(r.contourThreshold??.1),a=new Y(r.outlineSmoothing??.1),u=new Y(r.contourFrequency??.1),d=new ft(r.contourDirections??new De.Vector3(0,1,0)),f=new co(r.positionalLines??!1),m=new co(r.compensation??!0),h=mt.normalRenderTarget,g=mt.normalRenderTargetDepth,x=mt.pixelRatioNode,v=mt.resolution,w=new Y(r.alpha??1),S=new Gi(o,i,s,l,c,p,a,u,d,f,m,v,h,g,x,w),b=new Ae(S.calpha,"f"),N=new ve(r.mode??0);return new rt(t,e,n,{outlineColor:o,contourColor:i,outlineWidth:s,contourWidth:l,outlineThreshold:c,contourThreshold:p,outlineSmoothing:a,contourFrequency:u,contourDirection:d,positionalLines:f,compensation:m,alpha:w,mode:N},S,N,b)}case"depth":{let o=new ve(r.gradientType??0),i=new co(r.smooth??!1),s=new Y(r.near??50),l=new Y(r.far??200),c=new Y(r.isVector??1),p=new Y(r.isWorldSpace??0),a=new ft(r.origin??new De.Vector3),u=new ft(r.direction??new De.Vector3),d;r.colors?d=new nr(r.colors.length,r.colors):(d=new nr(2,new De.Vector4(0,0,0,1)),d.value[1]=new De.Vector4(1,1,1,1));let f;r.steps?f=new or(r.steps.length,r.steps):(f=new or(2,1),f.value[0]=0);let m=new Y(r.alpha??1),h=new ve(r.mode??0),g=new Vi(o,i,s,l,c,p,a,u,d,f,m),x=new Ae(g.calpha,"f");return new rt(t,e,n,{gradientType:o,smooth:i,near:s,far:l,isVector:c,isWorldSpace:p,origin:a,direction:u,colors:d,steps:f,alpha:m,mode:h},g,h,x)}case"noise":{let o=new Y(r.scale??1),i=new ft(r.size??new De.Vector3(100,100,100)),s=new Y(r.move??1),l=new lt(r.fA??new De.Vector2(1.7,9.2)),c=new lt(r.fB??new De.Vector2(8.3,2.8)),p=new lt(r.distortion??new De.Vector2(1,1)),a=new Xt(r.colorA),u=new Xt(r.colorB),d=new Xt(r.colorC),f=new Xt(r.colorD),m=new Y(r.alpha??1),h=new ve(r.mode??0),g=new ve(r.noiseType??0),x=new Mi(o,i,s,l,c,p,a,u,d,f,m,g),v=new Ae(x.calpha,"f");return new rt(t,e,n,{scale:o,size:i,move:s,fA:l,fB:c,distortion:p,colorA:a,colorB:u,colorC:d,colorD:f,alpha:m,mode:h,noiseType:g},x,h,v)}case"normal":{let o=new ft(r.cnormal??new De.Vector3(1,1,1)),i=new Y(r.alpha??1),s=new ve(r.mode??0),l=new Hi(o,i),c=new Ae("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return c.keywords.alpha=i,new rt(t,e,n,{cnormal:o,alpha:i,mode:s},l,s,c)}case"gradient":{let o=new ve(r.gradientType??0),i=new co(r.smooth??!1),s;r.colors?s=new nr(r.colors.length,r.colors):(s=new nr(10,new De.Vector4(0,0,0,1)),s.value[1]=new De.Vector4(1,1,1,1));let l;r.steps?l=new or(r.steps.length,r.steps):(l=new or(10,1),l.value[0]=0);let c=new lt(r.offset??new De.Vector2(0,0)),p=new lt(r.morph??new De.Vector2(0,0)),a=new Y(r.angle??0),u=new Y(r.alpha??1),d=new ve(r.mode??0),f=new Ui(o,i,s,l,c,p,a,u),m=new Ae(f.calpha,"f");return new rt(t,e,n,{gradientType:o,smooth:i,colors:s,steps:l,offset:c,morph:p,angle:a,alpha:u,mode:d},f,d,m)}default:{let o=new Ie(1,0,0,1),i=new Y(1),s=new Ae("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new ve(0);return o.alpha=i,new rt(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}}}function ow(n,t,e,r){let o=gm(e,r);return rw(e,n,t,o)}function _c(n,t,e){if(e.type==="displace"&&(n==="intensity"||n==="visible")){let r=t.uniforms[`f${t.id}_intensity`];return r?(r.value=e.intensity*(e.visible?1:0),r):void 0}if(e.type!=="displace"&&(n==="alpha"||n==="visible")){let r=t.uniforms[`f${t.id}_alpha`];if(!r)return;if(r.value=e.alpha*(e.visible?1:0),e.type==="outline"&&n=="visible"){let o=t.uniforms[`f${t.id}_compensation`];o&&(o.value=e.compensation&&e.visible)}return r}}var Ft=class extends za.ShaderMaterial{constructor(e,r){super(void 0);this.data=e;this.layerIdGen=0;this.type="NodeMaterial";this.uniformsBackup={};this.fog=!0,this.updaters=[],this.dithering=!0,this.vertexColors=!0,this.onBeforeCompile=this._onBeforeCompile,this.transparent=!0,this.reset(e,r)}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.data.category}reset(e,r){let o=e.layers??Rt.defaultTwoLayerData("phong").layers;this.layers=o.map(i=>Nr.create(this.layerIdGen++,i.id,i.data,r)),this.layers.reverse(),this.name=e.name??"Untitled Material",this.onUpdate(r)}getLayersOfType(e){return this.layers.filter(r=>r.type===e)}getLayerByUuid(e){return this.layers.find(r=>r.uuid===e)}onUpdate(e){this.lightLayer=this.layers.find(r=>r instanceof Ir),this.lightLayer===void 0&&(this.lightLayer=new Ir(0,"",Xr.defaultData("light","basic"),new Eo,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(e,r,o){if(this.data=r,e.path[0]==="layers"){let i=e.path[1];if(i===void 0){if(this.layers.reverse(),e.type===4){let s=Nr.create(this.layerIdGen++,e.id,e.data,o);this.layers.splice(e.localIndex,0,s)}else if(e.type===5)this.layers.splice(e.localIndex,1)[0].dispose();else if(e.type===6){let s=this.layers.findIndex(c=>c.uuid===e.id),l=this.layers[s];this.layers.splice(s,1),this.layers.splice(e.localIndex,0,l)}this.layers.reverse(),this.onUpdate(o)}else{let s=this.layers.find(l=>l.uuid===i);if(s){let l=r.layers.data(i);if(s.updateByOp({...e,path:e.path.slice(2)},l,o)){let p=Nr.create(this.layerIdGen++,i,l,o);this.layers.splice(this.layers.findIndex(a=>a.uuid===i),1,p),this.onUpdate(o)}}}}}blendColors(){let e=this.layers.findIndex(o=>o instanceof rt),r=this.layers.findIndex(o=>o instanceof Ir);if(e!==-1&&e<r){let o=this.layers[e].color;for(let i=e+1;i<r;++i){let s=this.layers[i];s instanceof rt&&(o=new Fi(o,s.color,s.alpha,s.mode))}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new Ae("outgoingLight","f"),r=this.layers.findIndex(o=>o instanceof Ir);if(this.layers.length>r+1){for(let o=r+1;o<this.layers.length;++o){let i=this.layers[o];i instanceof rt&&(e=new Fi(e,i.color,i.alpha,i.mode))}this.fragment.afterColor=e}else this.fragment.afterColor=void 0}blendPositions(){let e=this.layers.filter(r=>r instanceof es);if(e.length>0){let r=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(r=new Ct(r,e[o].position,Ct.ADD),r=new Ct(r,new Y(.5).setReadonly(!0),Ct.MUL));this.fragment.position=r}else this.fragment.position=void 0}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}_onBeforeCompile(e,r){this.build({renderer:r}),e.defines=this.defines,e.uniforms=this.uniforms,e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.extensionDerivatives=this.extensions.derivatives===!0,e.extensionFragDepth=this.extensions.fragDepth===!0,e.extensionDrawBuffers=this.extensions.drawBuffers===!0,e.extensionShaderTextureLOD=this.extensions.shaderTextureLOD===!0}clampUniformsForPreview(e,r){let o=(i,s,l)=>Math.min(Math.max(i,s),l);for(let i of this.layers)if(i.type==="displace"){this.uniformsBackup[`f${i.id}_intensity`]=i.uniforms[`f${i.id}_intensity`].value;let s=o(i.uniforms[`f${i.id}_intensity`].value,e,r);i.uniforms[`f${i.id}_intensity`].value=s}}restoreClampedUniforms(){for(let e of this.layers)e.type==="displace"&&(e.uniforms[`f${e.id}_intensity`].value=this.uniformsBackup[`f${e.id}_intensity`])}customProgramCacheKey(){let e="[";for(let{data:r}of this.data.layers)if(r.type==="light")e+=`"${r.category.toUpperCase()}",`;else{let o=(bc[r.type]??[]).map(l=>r[l]),i=(Sc[r.type]??[]).map(l=>r[l]?.length??0),s=[...o,...i];s.length?e+=`["${r.type}", "${s.join('","')}"],`:e+=`"${r.type}",`}return e=e.slice(0,-1)+"]",e}updateFrame(e){for(let r=0;r<this.updaters.length;++r)e.updateNode(this.updaters[r])}build(e){e=e??{};let r=e.builder??new Da;return this.lights=this.lightLayer.data.category!=="basic",r.setMaterial(this,e.renderer),r.build(this.fragment,this.fragment),this.vertexShader=r.getCode("vertex"),this.fragmentShader=r.getCode("fragment"),this.defines=r.defines,this.uniforms=r.uniforms,this.extensions=r.extensions,this.updaters=r.updaters,this.transparent=r.requires.transparent||this.blending>za.NormalBlending,this}dispose(){this.layers.forEach(e=>e.dispose()),super.dispose()}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(Ft.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(n){n===!0&&this.version++,this.needsCompile=n},get:function(){return this.needsCompile}}});var zt=require("three");function nw(n){if(n.geometry.attributes.extrudeNormal||!n.geometry.attributes.position)return;let t=new Map,e=n.geometry.attributes.position.array,r=n.geometry.attributes.normal.array,o=new Float32Array(e.length);for(let i=0;i<e.length;i+=3){let s=`${e[i]}_${e[i+1]}_${e[i+2]}`,l=new zt.Vector3(r[i],r[i+1],r[i+2]);t.has(s)?t.get(s)?.normals.push(l):t.set(s,{normals:[l],result:new zt.Vector3})}t.forEach((i,s)=>{for(let l of i.normals)i.result.add(l);i.result.divideScalar(i.normals.length)});for(let i=0;i<e.length;i+=3){let s=`${e[i]}_${e[i+1]}_${e[i+2]}`,l=t.get(s)?.result;l&&(o[i]=l.x,o[i+1]=l.y,o[i+2]=l.z)}n.geometry.setAttribute("extrudeNormal",new zt.Float32BufferAttribute(o,3))}function iw(n){if(n.geometry.attributes.extrudeNormals||!n.geometry.attributes.position)return;let t=n.geometry.attributes.position.array,e=new Float32Array(t.length),r=new zt.Vector3;for(let o=0;o<t.length;o+=3)r.set(t[o],t[o+1],t[o+2]).normalize(),e[o]=r.x,e[o+1]=r.y,e[o+2]=r.z;n.geometry.setAttribute("extrudeNormal",new zt.Float32BufferAttribute(e,3))}function Pr(n){if(Array.isArray(n.material)){for(let t of n.material)if(t.getLayersOfType("outline").length===0)return}else if(!(n.material instanceof Ft)||n.material.getLayersOfType("outline").length===0)return;n.objectType==="Mesh2D"||n.objectType==="TextFrame"&&n.data?.geometry?.depth===0?iw(n):nw(n)}function Or(n){if(!n.geometry.attributes.position)return;let t=n.geometry.attributes.position.array,e=new Float32Array(t.length),r=parseInt(n.uuid.replace(/\D/g,"")),o=[zt.MathUtils.seededRandom(r),zt.MathUtils.seededRandom(r+1e4),zt.MathUtils.seededRandom(r+2e4)];for(let i=0;i<t.length;i++)e[i]=o[i%3];n.geometry.setAttribute("randomColor",new zt.BufferAttribute(e,3))}var ut=class extends $t(Ua.Mesh){constructor(e,r){super(e,r);this.isAbstractMesh=!0;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new Ua.Matrix4;this.booleanExclude=null;Array.isArray(r)&&e.groups.length===0&&e.addGroup(0,Math.max(e.getIndex()?.count??0,e.getAttribute("position").count),0)}get isGroup(){return this._cloner?.parameters.hideBase===!0}get isMesh(){return!this.isGroup}set isMesh(e){}get cloner(){return this._cloner}set cloner(e){this._cloner&&this.remove(this._cloner),e&&this.add(e),this._cloner=e}updateGeometry(e,r){let o=this.geometry,i=tc[o.userData.type],s=this.objectType==="NonParametric"?Object.assign({},o.userData,{geometry:o}):o.userData,l=i.build(i.normalizeInputs(e,s)),c=o.uuid;this.geometry.dispose(),this.geometry=l,this.geometry.uuid=c,this.geometry.computeBoundingSphere(),Pr(this),o.getAttribute("randomColor")&&Or(this)}clone(e){let r=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,o=Ni(r),i=this.material;return new this.constructor(o,i).copy(this,e)}copy(e,r=!0){return super.copy(e,r),e.cloner&&(this.cloner=new No(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new No(this)),this.cloner.fromClonerState(e))}fromState(e,r){return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=e.castShadow??!0,this.receiveShadow=e.receiveShadow??!0,this.booleanExclude=e.booleanExclude??null),this}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(Jt.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),vr(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)xr(e)&&(e.freeBooleanPointer(),vr(e)&&e.invalidateUpstreamBooleanData())}};var sw=new fo.Vector3(0,0,1),Nm=new fo.Vector3,Im=new fo.Vector3,Pm=new fo.Matrix3,jn=class extends ut{constructor(e=dt.create({}),r){super(e,r);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new fo.EventDispatcher;this._onShapeUpdate=()=>{this.updateGeometry({}),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e,r){if(super.updateGeometry(e,r),"userData"in this.geometry){let o=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:o})}}setShape(e){this.shape&&this.shape.eventDispatcher?.removeEventListener("update",this._onShapeUpdate),this.shape=e,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),Pm.getNormalMatrix(this.matrixWorld),Nm.copy(sw).applyMatrix3(Pm).normalize(),Im.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(Nm,Im)}clone(e){let r=this.shape.clone(),o=this.material,i=this.geometry.userData,s=dt.create(Object.assign({},i,{shape:r})),l=new jn(s,o).copy(this,e);return l.shape=r,r.update(),l}raycast(e,r){ut.prototype.raycast.call(this,e,r)}};var Cr=(n,t)=>class extends n{constructor(){super(...arguments);this.objectHelper=new t(this)}get geometryHelper(){return t.geometryHelper}raycast(o,i){this.objectHelper.raycast(o,i)}fromLightState(o,i){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let s=this;o.color!==void 0&&(s.color=st(o.color,i)),o.intensity!==void 0&&(s.intensity=o.intensity),o.depth!==void 0&&(s.shadow.camera.far=o.depth,s.shadow.needsUpdate=!0),o.shadows!==void 0&&(this.castShadow=o.shadows)}return this}};var kn=new ze.Vector3,Nc=new ze.Vector3,zr=class extends Cr($t(ze.Camera),ma){constructor(e=window.innerWidth,r=window.innerHeight,o=45,i,s=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=So.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=r,this.orthoCamera=new ze.OrthographicCamera(e*-.5,e*.5,r*.5,r*-.5,i??-5e4,s),this.perspCamera=new ze.PerspectiveCamera(o,e/r,i??50,s),this.left=this.orthoCamera.left,this.right=this.orthoCamera.right,this.top=this.orthoCamera.top,this.bottom=this.orthoCamera.bottom,this.far=this.orthoCamera.far,this.view=this.orthoCamera.view,this.aspect=this.perspCamera.aspect,this.fov=this.perspCamera.fov,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.toOrthographic()}static createFromState(e,r){let o=new zr().fromState(r);return o.objectHelper.update(),o.uuid=e,o}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}setNear(e,r){e==="PerspectiveCamera"?this.perspCamera.near=r:this.orthoCamera.near=r}setZoom(e,r){r>=0&&(e==="PerspectiveCamera"?this.perspCamera.zoom=r:this.orthoCamera.zoom=r)}set cameraType(e){e==="PerspectiveCamera"?this.toPerspective():e==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(e){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=e:this.orthoCamera.near=e}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(e){e>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=e:this.orthoCamera.zoom=e)}lookAt(e){super.lookAt(e),this.getWorldPosition(kn),this.targetOffset=kn.distanceTo(e)}getTarget(e=new ze.Vector3){return this.getWorldDirection(Nc),this.getWorldPosition(kn),Nc.multiplyScalar(this.targetOffset),e.copy(kn).add(Nc),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(kn),kn.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new ze.Quaternion),r=new ze.Vector3(0,0,1).applyQuaternion(e),o=new ze.Vector3().copy(ze.Object3D.DefaultUp);this.isUpVectorFlipped&&o.negate(),o.applyQuaternion(e);let i=new ze.Vector3().copy(ze.Object3D.DefaultUp).projectOnPlane(r),s=new ze.Vector3().crossVectors(i,o).dot(r)>=0?1:-1;this.angleOffsetFromUp=i.angleTo(o)*s}getViewFrontToObject(e){let r=e.getWorldPosition(new ze.Vector3),i=e.getWorldDirection(new ze.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().add(i),target:r}}getViewToObject(e){let r=e.getWorldPosition(new ze.Vector3),i=this.getWorldDirection(new ze.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().sub(i),target:r}}setViewplaneSize(e,r){this.left=-e*.5,this.right=e*.5,this.top=r*.5,this.bottom=-r*.5,this.aspect=e/r,this.updateProjectionMatrix()}toOrthographic(){this.orthoCamera.left=this.left,this.orthoCamera.right=this.right,this.orthoCamera.top=this.top,this.orthoCamera.bottom=this.bottom,this.orthoCamera.view=this.view,this.orthoCamera.far=this.far,this.orthoCamera.updateProjectionMatrix(),this.projectionMatrix=this.orthoCamera.projectionMatrix,this.projectionMatrixInverse=this.orthoCamera.projectionMatrixInverse,this._cameraType="OrthographicCamera",this.objectHelper&&this.objectHelper.update()}toPerspective(){this.perspCamera.aspect=this.aspect,this.perspCamera.fov=this.fov,this.perspCamera.view=this.view,this.perspCamera.far=this.far,this.perspCamera.updateProjectionMatrix(),this.projectionMatrix=this.perspCamera.projectionMatrix,this.projectionMatrixInverse=this.perspCamera.projectionMatrixInverse,this._cameraType="PerspectiveCamera",this.objectHelper&&this.objectHelper.update()}setFocalLength(e){this.perspCamera.setFocalLength(e),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(e,r,o,i,s,l){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,r,o,i,s,l):this.orthoCamera.setViewOffset(e,r,o,i,s,l)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}updateProjectionMatrix(){this._cameraType==="PerspectiveCamera"?this.toPerspective():this._cameraType==="OrthographicCamera"&&this.toOrthographic()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,r){return super.copy(e,r),this.orthoCamera.copy(e.orthoCamera),this.perspCamera.copy(e.perspCamera),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.far=e.far,this.view=e.view===null?null:Object.assign({},e.view),this._cameraType=e._cameraType,this.aspect=e.aspect,this.fov=e.fov,this.focus=e.focus,this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this.targetOffset=e.targetOffset,this.updateProjectionMatrix(),this}toCameraState(e=[]){let r={type:this.cameraType,far:this.far,orthographic:{near:this.orthoCamera.near,zoom:this.orthoCamera.zoom},perspective:{near:this.perspCamera.near,fov:this.perspCamera.fov,zoom:this.perspCamera.zoom},up:this.up.toArray(),targetOffset:this.targetOffset,isUpVectorFlipped:this.isUpVectorFlipped};return fn(r,e)}fromCameraState(e){let{orthographic:r,perspective:o}=e;return e.type!==void 0&&(this.cameraType=e.type),e.far!==void 0&&(this.far=e.far),r!==void 0&&(r.near!==void 0&&(this.orthoCamera.near=r.near),r.zoom!==void 0&&(this.orthoCamera.zoom=r.zoom)),o!==void 0&&(o.near!==void 0&&(this.perspCamera.near=o.near),o.fov!==void 0&&(this.perspCamera.fov=o.fov),o.zoom!==void 0&&(this.perspCamera.zoom=o.zoom)),e.type==="PerspectiveCamera"?(this.zoom=this.perspCamera.zoom,this.fov=this.perspCamera.fov,this.near=this.perspCamera.near):(this.near=this.orthoCamera.near,this.zoom=this.orthoCamera.zoom),e.up!==void 0&&this.up.fromArray(e.up),e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateProjectionMatrix(),this}toState(e){return{...super.toState(e),...this.toCameraState(e),type:this.cameraType}}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};var ts=require("three");var Om=new ts.Matrix4;var ja=class extends ut{constructor(e=new ts.BufferGeometry,r){super(e,r);this.booleanOp=2;this.phongAngle=35;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.objectType="BooleanObject",this.castShadow=!0,this.receiveShadow=!0,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}reInit(){this.objectType="BooleanObject",this.meshSetAddresses=[],this.needsTransformForDownstream=!1,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}recomputeBoolean(e,r=!0){if(this.booleanMeshSetAddress!==-1)return;for(let i=0;i<this.children.length;i++){let s=this.children[i];vr(s)&&s.recomputeBoolean(e===!0,r)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let s=this.children[i];if(am(s)&&s.booleanExclude===!1&&s.geometry.attributes.position?.count>0&&s.geometry.drawRange.count>0){if(s.booleanMeshSetAddress===-1){if((s.geometry.index??s.geometry.getAttribute("position")).count/3<15e5&&(s.booleanMeshSetAddress=Jt.getMeshSet(s.geometry,e===!0,r)),s.booleanMeshSetAddress===-1)return;Jt.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1}else vr(s)&&s.needsTransformForDownstream===!0?(Jt.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.needsTransformForDownstream=!1):s.booleanWasTransformed===!0&&(Om.multiplyMatrices(s.matrix,s.booleanMatrixInvOld),Jt.transformMeshSet(s.booleanMeshSetAddress,Om),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1);this.meshSetAddresses.push(s.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setDrawRange(0,0);return}if(e===!0)return Jt.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let o=this.geometry;o.dispose(),this.geometry=new ts.BufferGeometry,this.geometry.userData=o.userData,this.geometry.boundingSphere=o.boundingSphere;try{this.booleanMeshSetAddress=Jt.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(i){this.booleanMeshSetAddress=0,console.error(i)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,Pr(this),Or(this)}updateGeometry(e,r){let o=e.parameters;o.operation!==void 0&&(this.booleanOp=o.operation),o.phongAngle!==void 0&&(this.phongAngle=o.phongAngle),this.invalidateDownstreamBooleanData().recomputeBoolean()}};var Cm=require("three");var Do=class extends Cr($t(Cm.Group),yn){constructor(){super(...arguments);this.objectType="EmptyObject"}static createFromState(e,r){let o=new Do().fromState(r);return o.uuid=e,o.objectHelper.update(),o}};var Go=require("three");var Hn=class extends Cr($t(Go.DirectionalLight),gn){constructor(...e){super(...e);this.objectType="LightDirectional";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.top=1250,o.bottom=-1250,o.right=1250,o.left=-1250,o.near=-1e4,o.far=2500;let i=new Go.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new Hn().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Go.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Go.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Go.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromDirectionalLightState(e,r){let o=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;return super.fromLightState(e,r),e.size!==void 0&&nm(this,e.size),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),o&&this.update(),this}fromState(e,r){return super.fromState(e),this.fromDirectionalLightState(e,r),this}};var xt=require("three");var Wn=class extends Cr($t(xt.PointLight),xn){constructor(...e){super(...e);this.objectType="LightPoint";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=90,o.aspect=1,o.near=100,o.far=2500;let i=new xt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new xt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z),l=new xt.Box3(i,s),c=new xt.Box3Helper(l,new xt.Color(16755200));c.visible=!1,this._gizmos.shadowmap=c,this.update()}static createFromState(e,r,o){let i=new Wn().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof xt.Box3Helper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof xt.Box3Helper&&(r.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let r=this._gizmos[e];if(r instanceof xt.Box3Helper){let o=this.shadow.camera,i=new xt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new xt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z);r.box.set(i,s),r.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromPointLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromPointLightState(e,r),this}};var Mt=require("three");var Lm=new Mt.Vector3,Mm=new Mt.Vector3,Em=new Mt.Quaternion,qn=class extends Cr($t(Mt.SpotLight),gi){constructor(...e){super(...e);this.objectType="LightSpot";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=Mt.MathUtils.RAD2DEG*2*this.angle,o.aspect=1,o.near=100,o.far=2500;let i=new Mt.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new qn().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Mt.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Mt.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Mt.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Mm.setFromMatrixPosition(this.matrixWorld),Em.setFromRotationMatrix(this.matrixWorld),Lm.copy(this.up).applyQuaternion(Em).negate().multiplyScalar(this.distance),this.target.position.copy(Mm).add(Lm),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}fromSpotLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.angle!==void 0&&(this.angle=e.angle),e.penumbra!==void 0&&(this.penumbra=e.penumbra),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromSpotLightState(e,r),this}};var Bm=n=>n.tagName==="VIDEO",$n=class{static resize(t,e,r){let o=t/e,i;if(!r.image)return;let s=r.image;Bm(s)?i=s.videoWidth/s.videoHeight:i=s.width/s.height,o>i&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*i/o):r.repeat.set(1,1*i/o)),o<i&&(r.imageType=="WEBCAM"?r.repeat.set(1*o/i*-1,1):r.repeat.set(1*o/i,1)),o==i&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1))}static resizeTextureLayer(t,e,r){let o=t/e,i=r.image!==void 0?r.image.width/r.image.height:1,s;o>i?s={x:1,y:i/o}:o<i?s={x:o/i,y:1}:s={x:1,y:1},r.repeat.set(s.x,s.y),r.updateMatrix()}static resizeTextureLayers(t,e,r){let o=r.layers;for(let i=0;i<o.length;i++){let s=o[i];Am(s)&&$n.resizeTextureLayer(t,e,s.uniforms[`f${s.id}_texture`].value)}}static resizeComplex(t,e,r,o){let i=t/e,s,l=r.image;Bm(l)?s=l.videoWidth/l.videoHeight:s=l.width/l.height,o.geometry.type.includes("Shape")?(i>s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e*s/i):r.repeat.set(1/t,1/e*s/i)),i<s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*i/s*-1,1/e):r.repeat.set(1/t*i/s,1/e)),i==s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e):r.repeat.set(1/t,1/e))):(i>s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*s/i):r.repeat.set(1,1*s/i)),i<s&&(r.imageType=="WEBCAM"?r.repeat.set(1*i/s*-1,1):r.repeat.set(1*i/s,1)),i==s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1)))}};var ka=class extends ut{constructor(e,r){super(e,r);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e,r){super.updateGeometry(e,r),this.material.layers&&$n.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var Xn=class extends ut{constructor(e,r){super(e,r);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var Ha=class extends Xn{constructor(e,r){super(e,r);this.objectType="NonParametric"}};var Gm,os=new Promise(n=>{Gm=n}),Dm=!1;async function Rm(){if(Dm)return;let n=await import("./opentype.js");Gm(n),Dm=!0}var ns=class{async load(t,e,r=()=>{}){let{load:o}=await os;o(t,(i,s)=>{i||!s?r(i??"Something went wrong"):e(s)})}async parse(t){let{parse:e}=await os;try{return e(t)}catch(r){console.error(r)}}};async function aw(n){return await(await fetch(n)).arrayBuffer()}var lw=new ns;async function Ic(n){let t,e,r=!1;if(n.url?(t=await aw(n.url),e=n.url,r=n.url.startsWith("/")):n.data&&(t=n.data.buffer),t){let o=await lw.parse(t);if(o)return{font:o,url:e,intercepted:r,arr:t}}}var Yn=require("three");var Vm=new Yn.Vector3,Fm=new Yn.Matrix4,zm=new Yn.Ray;function Um(n){let t=!1;return n.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="TextGeometry"&&(t=!0)}),t}var Wa=class extends ut{constructor(e,r,o){super(new On(r.geometry,o),o.material(r.material));this.data=r;this.objectType="TextFrame";this.wrappedText=[""];this.charWidths=[];this.charCoords=[];this.castShadow=r.castShadow,this.receiveShadow=r.receiveShadow,this.name=r.name,this.uuid=e,this.updateState(r,o)}async updateGeometry(e,r){let o=e.parameters,i=this.geometry.getAttribute("randomColor"),s={...this.geometry.userData.parameters,...o};this.geometry.userData={parameters:s,type:"TextGeometry"},r&&(o.font||!this.geometry.font&&r.getFont(s.font))&&await this.geometry.updateFont(o.font??s.font,r),await this.geometry.update(s),Pr(this),i&&Or(this);let{wrappedText:l,charCoords:c,charWidths:p}=this.geometry;this.wrappedText=l,this.charWidths=p,this.charCoords=c,this.resetBBoxNeedsUpdate()}updateState(e,r){this.data=e,this.material=r.material(e.material),this.fromState(e,r),this.updateGeometry({parameters:e.geometry},r)}get font(){return this.geometry.font}get initialOffsetY(){return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,this.geometry.userData.parameters.height,this.fontScale,this.geometry.userData.parameters.verticalAlign)??0}get fontScale(){return this.font?this.geometry.userData.parameters.fontSize/this.font.unitsPerEm:1}get AD(){return Math.abs(this.ascender-this.descender)}get ascender(){return(this.font?.ascender??1)*this.fontScale}get descender(){return(this.font?.descender??1)*this.fontScale}get lineHeight(){return this.geometry.userData.parameters.fontSize*this.geometry.userData.parameters.lineHeight}raycast(e,r){let{matrixWorld:o}=this;if(Fm.copy(o).invert(),zm.copy(e.ray).applyMatrix4(Fm),zm.intersectBox(this.singleBBox,Vm)){let i=Vm.applyMatrix4(o),s=e.ray.origin.distanceTo(i);r.push({distance:s,point:i.clone(),object:this})}}};var wt=require("three");var Wm=Ja(km());var Pc;Na.then(n=>{Pc=n});var qm=new wt.Matrix4,cw=new wt.Matrix4,uw=new wt.Matrix4,ir=new wt.Box3,mo=new wt.Vector3,pw=new wt.Matrix4,dw=new wt.Matrix4;var Kn=class extends ut{constructor(e,r,o,i){super(o??r,i);this.subdivPointer=e;this.originalGeometry=r;this.subdividedGeometry=o;this.objectType="SubdivObject";this.hiddenMatrixOld=new wt.Matrix4;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new wt.Matrix4;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,r,o){let{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}=qt.build(r.geometry,void 0,void 0,!r.flatShading),c=o.material(r.material),p=new Kn(i,s,l||void 0,c);return r.geometry.phongAngle!==void 0&&(p.phongAngle=r.geometry.phongAngle),p.calcBoundingBox(),p.freeSubdivPointer(),p.uuid=e,p.fromState(r),p}buildFromStore(e,r){let{originalGeometry:o,subdividedGeometry:i,subdivPointer:s}=qt.build(e,r,this.subdivPointer,this.smoothShading,this.shearScale);e.phongAngle!==void 0&&(this.phongAngle=e.phongAngle),this.subdivPointer=s,o!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=o),i!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=i??void 0),this.geometry=this.subdividedGeometry??this.originalGeometry,Pr(this),Or(this),e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){qt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&qt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=qt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=qt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(e,r){this.geometry=this.originalGeometry,ut.prototype.raycast.call(this,e,r),this.geometry=this.subdividedGeometry??this.originalGeometry}updateMatrixWorldSVD(){let e=this.matrixWorld.elements,r=[[e[0],e[4],e[8]],[e[1],e[5],e[9]],[e[2],e[6],e[10]]],{u:o,v:i,q:s}=(0,Wm.SVD)(r),l=qm.set(o[0][0],o[0][1],o[0][2],0,o[1][0],o[1][1],o[1][2],0,o[2][0],o[2][1],o[2][2],0,0,0,0,1),c=cw.set(i[0][0],i[0][1],i[0][2],0,i[1][0],i[1][1],i[1][2],0,i[2][0],i[2][1],i[2][2],0,0,0,0,1),p=uw.copy(c).transpose();this.shearScale=pw.makeScale(s[0],s[1],s[2]).multiply(p).premultiply(c),this.shearScaleInv=dw.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(l,p),s.every(a=>Math.abs(s[0]-a)<.01)&&(this.shearScale=void 0,this.shearScaleInv=void 0)}activateSVDCompensation(){this.shearScale!==void 0&&(this.matrixAutoUpdate=!1,this.matrix.copy(this.matrixWorldRigid).copyPosition(this.matrixWorld),this.hiddenMatrixOld.copy(this.hiddenMatrix),this.hiddenMatrix.copy(this.parent.matrixWorld).invert())}deactivateSVDCompensation(){this.shearScale!==void 0&&(this.shearScale=void 0,this.shearScaleInv=void 0,this.matrixAutoUpdate=!0,this.hiddenMatrix.copy(this.hiddenMatrixOld))}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new wt.Sphere);let r=e.attributes.position,o=e.boundingSphere.center;ir.setFromBufferAttribute(r),ir.getCenter(o),e.boundingSphere.radius=o.distanceTo(ir.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ir.getSize(mo);let i={width:mo.x,height:mo.y,depth:mo.z};return this.geometry.userData.parameters=i,i}updateBoundingBox(e){let r=this.originalGeometry;ir.min.set(e[0],e[2],e[4]),ir.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(ir.min.applyMatrix4(this.shearScaleInv),ir.max.applyMatrix4(this.shearScaleInv)),r.boundingSphere===null&&(r.boundingSphere=new wt.Sphere);let o=r.boundingSphere.center;ir.getCenter(o),r.boundingSphere.radius=o.distanceTo(ir.max),isNaN(r.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ir.getSize(mo);let i={width:mo.x,height:mo.y,depth:mo.z};return this.geometry.userData.parameters=i,i}freeSubdivPointer(){this.subdivPointer&&(Pc.free_bvh(this.subdivPointer),Pc.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(e,r){this.geometry.userData.scale||(this.geometry.userData.scale=Array(3)),this.geometry.userData.scale[0]=this.geometry.userData.parameters.width===0?1:e.parameters.width/this.geometry.userData.parameters.width,this.geometry.userData.scale[1]=this.geometry.userData.parameters.height===0?1:e.parameters.height/this.geometry.userData.parameters.height,this.geometry.userData.scale[2]=this.geometry.userData.parameters.depth===0?1:e.parameters.depth/this.geometry.userData.parameters.depth,Hm(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(Hm(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters={...e.parameters}}};function Hm(n,t,e,r){let o=n.position.array,i=n.normal.array,s=qm.makeScale(t,e,r).invert().elements,l,c,p;for(var a=0,u=o.length;a<u;a+=3)o[a]*=t,o[a+1]*=e,o[a+2]*=r,l=i[a],c=i[a+1],p=i[a+2],i[a]=s[0]*l+s[4]*c+s[8]*p,i[a+1]=s[1]*l+s[5]*c+s[9]*p,i[a+2]=s[2]*l+s[6]*c+s[10]*p}var ho=require("three");function $m(n,t){t.flatShading!==void 0&&(n.flatShading=t.flatShading,n.needsUpdate=!0),t.wireframe!==void 0&&(n.wireframe=t.wireframe),t.side!==void 0&&(t.side===0?n.side=ho.FrontSide:t.side===1?n.side=ho.BackSide:n.side=ho.DoubleSide)}function fw(n,t){if(Array.isArray(n.material))for(let e of n.material)$m(e,t);else{let e=n.material;$m(e,t)}n.objectType==="SubdivObject"&&t.flatShading!==void 0&&(n.material.flatShading=!1,n.smoothShading=!t.flatShading,n.updateMesh())}function Xm(n,t,e){let r;if(t.geometry.type==="SubdivGeometry")r=Kn.createFromState(n,t,e);else{let o=t.geometry.type==="BooleanGeometry"?new ho.BufferGeometry:Ia(t.geometry,e),i="materials"in t?t.materials.map(s=>e.material(s)):e.material(t.material);Es.is2DParametricMesh(o.userData.type)?r=new ka(o,i):o?.userData.type==="VectorGeometry"?r=new jn(o,i):t.geometry.type==="NonParametricGeometry"?r=new Ha(o,i):t.geometry.type==="BooleanGeometry"?(r=new ja(void 0,i),r.booleanOp=t.geometry.operation,t.geometry.phongAngle!==void 0&&(r.phongAngle=t.geometry.phongAngle)):r=new Xn(o,i),r.uuid=n,r.fromState(t,e)}return fw(r,t),r}function Ym(n,t,e){return t.type==="Mesh"?t.geometry.type==="TextGeometry"?new Wa(n,t,e):Xm(n,t,e):t.type==="Empty"?Do.createFromState(n,t):t.type==="PointLight"?Wn.createFromState(n,t,e):t.type==="SpotLight"?qn.createFromState(n,t,e):t.type==="DirectionalLight"?Hn.createFromState(n,t,e):Wo.is(t.type)?zr.createFromState(n,t):(console.error(t),new Do)}var Ro=class extends Ft{};var Ur=require("three");function Km(n,t){let e=!1,r=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return o.length>0&&(n.layers.set(8),r.length>0&&n.layers.enable(3),e=!0,Or(n),Pr(n)),r.length===0&&o.length===0&&n.layers.set(0),e}function Qm(n,t){if(!t.layers)return!1;let e=!1,r=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return r.length>0&&(n.layers.set(3),o.length>0&&n.layers.enable(8),e=!0),r.length===0&&o.length===0&&n.layers.set(0),e}function Zm(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof Ur.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)Km(e,e.material[r])&&(t=!0);else Km(e,e.material)&&(t=!0)}),t}function Jm(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof Ur.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)Qm(e,e.material[r])&&(t=!0);else Qm(e,e.material)&&(t=!0)}),t}function eh(n){"material"in n&&hw(n.material),"geometry"in n&&n.geometry.dispose()}function hw(n){Bd(n).forEach(t=>{t instanceof Ro||t.dispose()})}var gw=new Ur.Raycaster,yw=new Ur.Matrix4,xw=new Ur.Ray;function th(n,t,e){let r=n.cloner;if(r)for(let o of r.children){let i=yw.copy(o.matrixWorld).invert(),s=xw.copy(t.ray).applyMatrix4(i),l=n.matrixWorld;s.applyMatrix4(l);let c=gw;c.set(s.origin,s.direction),c.near=t.near,c.far=t.far,c.intersectObject(n,!1).length>0&&e.push({object:n})}}var rh=new Lr.Vector3,Oc=class extends La(Lr.Scene){constructor(e,r){super();this.objectType="Scene";this.backupFog=new Lr.Fog(16777215,.1,2e3);this.fogUseBGColor=!1;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this.bgColor=new tt(1,1,1,1);this.entityByUuid={};this.ambientLight=new Lr.HemisphereLight(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.ambientLight.layers.enable(3),this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.postprocessing=e.postprocessing,this.init(e,r),this.matrixAutoUpdate=!1}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=Jm(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=Zm(this),this.needsNormalDirty=!1),this._needsNormal}find(e){if(e===""||e===void 0)return;let r=this.entityByUuid[e];return r===void 0?this.getObjectByProperty("uuid",e):r}get enableFog(){return this.fog!==null}set enableFog(e){this.fog=e===!0?this.backupFog:null}init(e,r){if(this.createChildrenObjects(e.objects,this,r),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(st(e.backgroundColor,r)),this.updateFog(e.fog,r),this.updateAmbientLight(e.environment.ambientLight,r),this.activeCamera=this.personalCamera,e.publish.playCamera!==null){let o=this.find(e.publish.playCamera);o instanceof zr&&this.switchActiveCamera(o)}this.traverse(o=>{vr(o)&&o.recomputeBoolean()})}clearScene(){this.traverseEntity(e=>{eh(e)});for(let e of this.children)Sr(e)&&e.removeFromParent()}resetAfterClear(e,r){this.init(e,r)}createPersonalCamera(){let e=zr.createFromState(Oc.PERSONAL_CAMERA_ID,{...aa.defaultData,name:"Personal Camera"});return e.objectHelper.visible=!1,delete e.isEntity,this.registerObjectCreatedInLegacy(e),e}raycast(e){let r=[],o=i=>{for(let s of i.children)Sr(s)&&!s.raycastLock&&s.visible&&((xr(s)||Oa(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,r),th(s,e,r)),o(s))};return o(this),r}traverseEntity(e){for(let r of this.children)Sr(r)&&r.traverseEntity(e)}traverseVisibleEntity(e){for(let r of this.children)Sr(r)&&r.visible&&r.traverseVisibleEntity(e)}updateFog(e,r){this.enableFog=e.enabled,this.fogUseBGColor=e.useBackgroundColor,e.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=st(e.color,r),this.backupFog.near=e.near,this.backupFog.far=e.far}dispose(){this.clearScene()}updateAmbientLight(e,r){om(this.ambientLight,e,r),e.groundColor!==void 0&&(this.ambientLight.groundColor=st(e.groundColor,r)),e.enabled!==void 0&&(this.ambientLight.visible=e.enabled)}switchActiveCamera(e){this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=e,e.objectHelper.visible=!1}setBackgroundColor(e){this.bgColor=e,this.fogUseBGColor===!0&&(this.backupFog.color=e)}createChildrenObjects(e,r,o){for(let i of e)this.createChildObject(i.id,i.data,i.children,r,o)}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let r of e.children)this.unregisterObject(r)}createChildObject(e,r,o,i,s){let l=Ym(e,r,s);return l&&(this.entityByUuid[e]=l,i.add(l),vr(i)&&xr(l)&&(l.prevBooleanObjectParent=i),this.createChildrenObjects(o,l,s)),l}getCenter(e){let r=[];for(let i=0,s=e.length;i<s;++i){let{id:l,recursive:c}=e[i],p=this.find(l),a=c?p.recursiveBBox:p.singleBBox;r.push(...a.vertices)}let o=new Lr.Box3;return o.setFromPoints(r),o.getCenter(rh),rh}copyMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e);o?r.copy(o.matrixWorld):r.identity()}copyParentMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e)?.parent;o?r.copy(o.matrixWorld):r.identity()}traverseMaterial(e){this.traverseEntity(r=>{if(r instanceof ut)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)r.material[o]instanceof Ft&&e(r.material[o]);else r.material instanceof Ft&&e(r.material)})}updateCanvasSize(e,r){this.activeCamera.setViewplaneSize(e,r);let o,i;e>=r?(o=r/e,i=1):(o=1,i=e/r),this.traverseMaterial(s=>{s.getLayersOfType("transmission").forEach(c=>{c.uniforms[`f${c.id}_aspectRatio`].value.x=o,c.uniforms[`f${c.id}_aspectRatio`].value.y=i})})}},is=Oc;is.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var sh=Ja(oh());var nh=new Map;function ih(n){if(typeof n=="string")return n;let t=nh.get(n);return t||(t={url:URL.createObjectURL(new Blob([n]))},nh.set(n,t)),t.url}var Qn=class{constructor({src:t,volume:e,delay:r,loop:o}){this._volume=1;this.delay=0;this._loop=1;this.loopsRemaining=0;this._status="stopped";this.onEnd=()=>{this.loopsRemaining===1/0?this.replay():this.loopsRemaining>1?(this.replay(),this.loopsRemaining--):(this._status="stopped",this.loopsRemaining=this._loop)};let i;typeof t=="string"?i={src:t}:i={src:ih(t),format:"wav"},this.sound=new sh.Howl(i),this.sound.on("end",this.onEnd),this.src=t,e!==void 0&&(this.volume=e),r!==void 0&&(this.delay=r),o!==void 0&&(this.loop=o)}get status(){return this._status}get volume(){return this._volume}set volume(t){this._volume=t,this.sound.volume(t)}get loop(){return this._loop}set loop(t){this._loop=t,this.loopsRemaining=t}replay(){this.clearDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.clearDelay()},this.delay)}fade(t,e=1e3){t?(this.sound.volume(this._volume),this.clearFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,e),this.clearFade()},t)):this.sound.fade(this._volume,0,e)}on(t,e,r){this.sound.on(t,e,r)}off(t,e,r){this.sound.off(t,e,r)}play(){this._status==="playing"||this.sound.playing()||(this._status==="paused"?(this.sound.seek()===0?this.replay():this.sound.play(),this._status="playing"):this._status==="stopped"&&(this.replay(),this._status="playing"))}pause(){this._status==="playing"&&(this.sound.pause(),this.clearFade(),this.clearDelay(),this._status="paused")}stop(){this.sound.stop(),this.loopsRemaining=this._loop,this.clearFade(),this.clearDelay(),this._status="stopped"}clearFade(){this.fadeTimerId&&(clearTimeout(this.fadeTimerId),delete this.fadeTimerId)}clearDelay(){this.delayTimerId&&(clearTimeout(this.delayTimerId),delete this.delayTimerId)}dispose(t=!1){this.off(),this.stop(),this.clearFade(),this.clearDelay()}};var ot=require("three"),Xa=class{constructor(){this.type="ShapePath";this.color=new ot.Color;this.subPaths=[];this.currentPath=null}moveTo(t,e){return this.currentPath=new ot.Path,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath?.lineTo(t,e),this}quadraticCurveTo(t,e,r,o){return this.currentPath?.quadraticCurveTo(t,e,r,o),this}bezierCurveTo(t,e,r,o,i,s){return this.currentPath?.bezierCurveTo(t,e,r,o,i,s),this}splineThru(t){return this.currentPath?.splineThru(t),this}toShapes(){let e={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:e.ORIGIN,t:0};function o(h,g,x,v){let w=h.x,S=g.x,b=x.x,N=v.x,T=h.y,y=g.y,P=x.y,A=v.y,O=(N-b)*(T-P)-(A-P)*(w-b),_=(S-w)*(T-P)-(y-T)*(w-b),L=(A-P)*(S-w)-(N-b)*(y-T),D=O/L,U=_/L;if(L===0&&O!==0||D<=0||D>=1||U<0||U>1)return null;if(O===0&&L===0){for(let re=0;re<2;re++)if(i(re===0?x:v,h,g),r.loc===e.ORIGIN){let Q=re===0?x:v;return{x:Q.x,y:Q.y,t:r.t}}else if(r.loc===e.BETWEEN){let Q=+(w+r.t*(S-w)).toPrecision(10),ce=+(T+r.t*(y-T)).toPrecision(10);return{x:Q,y:ce,t:r.t}}return null}else{for(let ce=0;ce<2;ce++)if(i(ce===0?x:v,h,g),r.loc===e.ORIGIN){let H=ce===0?x:v;return{x:H.x,y:H.y,t:r.t}}let re=+(w+D*(S-w)).toPrecision(10),Q=+(T+D*(y-T)).toPrecision(10);return{x:re,y:Q,t:D}}}function i(h,g,x){let v=x.x-g.x,w=x.y-g.y,S=h.x-g.x,b=h.y-g.y,N=v*b-S*w;if(h.x===g.x&&h.y===g.y){r.loc=e.ORIGIN,r.t=0;return}if(h.x===x.x&&h.y===x.y){r.loc=e.DESTINATION,r.t=1;return}if(N<-Number.EPSILON){r.loc=e.LEFT;return}if(N>Number.EPSILON){r.loc=e.RIGHT;return}if(v*S<0||w*b<0){r.loc=e.BEHIND;return}if(Math.sqrt(v*v+w*w)<Math.sqrt(S*S+b*b)){r.loc=e.BEYOND;return}let T;v!==0?T=S/v:T=b/w,r.loc=e.BETWEEN,r.t=T}function s(h,g){let x=[],v=[];for(let w=1;w<h.length;w++){let S=h[w-1],b=h[w];for(let N=1;N<g.length;N++){let T=g[N-1],y=g[N],P=o(S,b,T,y);P!==null&&x.find(A=>A.t<=P.t+Number.EPSILON&&A.t>=P.t-Number.EPSILON)===void 0&&(x.push(P),v.push(new ot.Vector2(P.x,P.y)))}}return v}function l(h,g,x){let v=new ot.Vector2;g.getCenter(v);let w=[];return x.forEach(S=>{S.boundingBox.containsPoint(v)&&s(h,S.points).forEach(N=>{w.push({identifier:S.identifier,isCW:S.isCW,point:N})})}),w.sort((S,b)=>S.point.x-b.point.x),w}function c(h,g,x,v,w){(w==null||w==="")&&(w="nonzero");let S=new ot.Vector2;h.boundingBox.getCenter(S);let b=[new ot.Vector2(x,S.y),new ot.Vector2(v,S.y)],N=l(b,h.boundingBox,g);N.sort((_,L)=>_.point.x-L.point.x);let T=[],y=[];N.forEach(_=>{_.identifier===h.identifier?T.push(_):y.push(_)});let P=T[0].point.x,A=[],O=0;for(;O<y.length&&y[O].point.x<P;)A.length>0&&A[A.length-1]===y[O].identifier?A.pop():A.push(y[O].identifier),O++;if(A.push(h.identifier),w==="evenodd"){let _=A.length%2===0,L=A[A.length-2];return{identifier:h.identifier,isHole:_,for:L}}else if(w==="nonzero"){let _=!0,L=null,D=null;for(let U=0;U<A.length;U++){let re=A[U];g[re]&&(_?(D=g[re].isCW,_=!1,L=re):D!==g[re].isCW&&(D=g[re].isCW,_=!0))}return{identifier:h.identifier,isHole:_,for:L}}else console.warn('fill-rule: "'+w+'" is currently not implemented.')}let p=0,a=999999999,u=-999999999,d=[];this.subPaths.forEach(h=>{let g=h.getPoints(),x=-999999999,v=999999999,w=-999999999,S=999999999;for(let b=0;b<g.length;b++){let N=g[b];N.y>x&&(x=N.y),N.y<v&&(v=N.y),N.x>w&&(w=N.x),N.x<S&&(S=N.x)}u<=w&&(u=w+1),a>=S&&(a=S-1),g.length&&d.push({curves:h.curves,points:g,isCW:ot.ShapeUtils.isClockWise(g),identifier:p++,boundingBox:new ot.Box2(new ot.Vector2(S,v),new ot.Vector2(w,x))})});let f=d.map(h=>c(h,d,a,u,this.userData?.style.fillRule)),m=[];return d.forEach(h=>{let g=f[h.identifier];if(g&&!g.isHole){let x=new ot.Shape;x.curves=h.curves,f.filter(w=>w?.isHole&&w.for===h.identifier).forEach(w=>{if(w){let S=d[w.identifier],b=new ot.Path;b.curves=S.curves,x.holes.push(b)}}),m.push(x)}}),m}};var Zn=require("three");var ah=require("three/examples/jsm/loaders/DRACOLoader.js");var go;function vw(){return go||(go=new ah.DRACOLoader,go.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),go.decoderPending}async function bw(n){if(go){let t={attributeIDs:go.defaultAttributeIDs,attributeTypes:go.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await go.decodeGeometry(new Int8Array(n).buffer,t)}catch(r){console.error(r)}if(e)return{index:e.index?{array:e.index.array}:void 0,attributes:Object.entries(e.attributes).map(([r,o])=>({name:r,itemSize:o.itemSize,array:o.array}))}}return null}async function lh(n,t){let[e,r]=ol(Is.deserialize(new Uint8Array(n)));zd(e);let o=[];e.scene.objects.traverse((i,s)=>{s.type==="Mesh"&&s.geometry.type==="NonParametricGeometry"&&s.geometry.data.draco!==void 0&&o.push(s)}),o.length&&await vw();for(let i of o){let s=await bw(Tt(i.geometry.data.draco));if(s){s.index&&(i.geometry.data.index={array:s.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let l={};s.attributes.forEach(({name:c,array:p,itemSize:a})=>{l[c]={array:p,itemSize:a,type:"Float32Array",normalized:!1}}),i.geometry.data.attributes=l,i.geometry.data.draco=void 0}}return t&&t(e),r.result().data}function Sw(n,t){return t.state.glyphIndex===n||t.state.fina===n||t.state.medi===n||t.state.init===n}var Ya=class{constructor(t,e){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=Ic(t).then(r=>{r&&(this._arrayBuffer=r.arr,this._url=r.url,this.font=r.font,this._intercepted=r.intercepted,this._isLoaded=!0,e())})}update(t,e){this._isLoaded=!1,this._isUserFont=t.isUserFont??!1,this._loadingPromise=Ic(t).then(r=>{r&&(this._arrayBuffer=r.arr,this._url=r.url,this.font=r.font,this._intercepted=r.intercepted,this._isLoaded=!0,e())})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}async reverseLigaturesTable(t,e,r){let{Bidi:o}=await os,i=new o,s=u=>t.charToGlyphIndex(u.char);i.registerModifier("glyphIndex",null,s),i.applyFeatures(t,t.defaultRenderOptions.features),i.getTextGlyphs(e);let l=i.tokenizer.tokens,c=[],p=0,a=r.length===l.length;for(let u=0;u<r.length;u++){let d=r[u].index,f=String.fromCharCode(r[u].unicode),m=l[p];if(Sw(d,m)||a)c.push({char:f,index:d,replacements:[m.state.glyphIndex],replacementChars:[m.char]}),p++;else{let h=m.char,g="",x=[m.state.glyphIndex],v=[],w=!1;for(;!w;)p++,g=e.charAt(p),h+=g,x.push(t.charToGlyphIndex(g)),v=t.stringToGlyphs(h),v.length===1&&v[0].index===d&&(w=!0),p>e.length&&(w=!0);c.push({char:f,index:d,replacements:x,replacementChars:Array.from(h)}),p++}}return c}async generateShapes(t,e){await this._loadingPromise;let r=this.font,o=e.fontSize/this.unitsPerEm,i=e.fontSize*e.lineHeight,s=t.map(x=>this.getTextWidth(x,e)),l=e.width,c=this.getLineInitialOffsetX(s[0],l,e.horizontalAlign),p=this.getLineInitialOffsetY(i,t.length,e.height,o,e.verticalAlign),a=this.computeSpaceWidthForLine(t,0,e),u=this.getCharWidth(`
1335
+ `,e),d=[],f=t.map(x=>[]),m=t.map(x=>[]),h;for(let x=0;x<t.length;x++){let v=t[x],w={features:{liga:!0}},S=[];try{S=r.stringToGlyphs(v,w)}catch(N){console.warn(N)}c=this.getLineInitialOffsetX(s[x],l,e.horizontalAlign);let b=[];try{b=await this.reverseLigaturesTable(r,v,S)}catch(N){console.warn(N)}a=this.computeSpaceWidthForLine(t,x,e);for(let N=0;N<S.length;N++){let T=S[N],y=T.index===0?`
1336
+ `:T.unicode?String.fromCharCode(T.unicode):void 0,P=b[N],A=0,O=0;N===0&&e.horizontalAlign===2&&T.leftSideBearing!==void 0&&(O=-T.leftSideBearing*o),h&&(A=r.getKerningValue(T,h)*o),c+=O+A;let _=0;if(y===`
1337
+ `)_=u;else if(y===" ")_=a;else{let L=this.createPath(T,o,c,p,e);L&&(_=L.offsetX-(A+O),d.push(L.path))}if(P.replacements.length===1)m[x].push([c,p]),f[x].push(_);else{let L=P.replacements.map(Q=>(r.glyphs.get(Q).advanceWidth??0)*o),D=L.reduce((Q,ce)=>Q+=ce,0),U=L.map(Q=>Q/D),re=c;for(let Q=0;Q<U.length;Q++){let ce=_*U[Q];m[x].push([re,p]),f[x].push(ce),re+=ce}}c+=_,h=T}p-=i}let g=[];for(let x=0,v=d.length;x<v;x++)g.push(...d[x].toShapes());return{shapes:g,charWidths:f,lineWidths:s,charCoords:m}}get isUserFont(){return this._isUserFont}get arrayBuffer(){return this._arrayBuffer}get ascender(){return this.font?.ascender??0}get descender(){return this.font?.descender??0}get familyName(){return this.font?.names.fontFamily??""}get subfamilyName(){return this.font?.names.fontSubfamily??""}get unitsPerEm(){return this.font?.unitsPerEm??1}getLineInitialOffsetX(t,e,r){return r===3?e*.5-t*.5:r===2?e-t:0}getLineInitialOffsetY(t,e,r,o,i){let s=e*t,l=Math.abs(this.ascender-this.descender)*o,c=t-l,p=-this.ascender*o-c/2;return i===3?-(r-s-p):i===2?-(r*.5-s*.5-p):p}createPath(t,e,r,o,i){let s=t.getPath(r,-o,i.fontSize,{kerning:!1,letterSpacing:i.letterSpacing});if(!s){console.error('THREE.Font: character "'+t+'" does not exists in font family '+this.familyName+".");return}let l=new Xa,c=(t.advanceWidth??1)*e;if(t)for(let p of s.commands){let a=l.currentPath?.currentPoint;if(!(a&&p.type!=="Z"&&a.x===p.x&&-a.y===p.y))switch(p.type){case"M":l.moveTo(p.x,-p.y);break;case"L":l.lineTo(p.x,-p.y);break;case"Q":l.quadraticCurveTo(p.x1,-p.y1,p.x,-p.y);break;case"C":l.bezierCurveTo(p.x1,-p.y1,p.x2,-p.y2,p.x,-p.y);break}}return l.subPaths.forEach(p=>{let a=ww(p.curves);a!==void 0&&p.currentPoint.distanceTo(a)>0&&p.lineTo(a.x,a.y)}),{offsetX:c+i.fontSize*i.letterSpacing,path:l}}getCharWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}getTextWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}computeSpaceWidthForLine(t,e,r){let o=this.getCharWidth(" ",r),i=t[e];if(i){let s=this.countSpaces(i.trimEnd());if(r.horizontalAlign===4&&e<t.length-1&&s){let l=r.width,c=this.getTextWidth(i,r);return(l-(c-s*o))/s}}return o}countSpaces(t){return(t.match(/ /g)||[]).length}};function ww(n){if(n.length){let t=n[0];if(t instanceof Zn.LineCurve)return t.v1;if(t instanceof Zn.CubicBezierCurve||t instanceof Zn.QuadraticBezierCurve)return t.v0}}var ss=class{constructor(t,e={}){this.deletedMaterial=new Ro(Rt.defaultTwoLayerData("basic"),this);this.deletedImage=new Bo(ua.emptyImage);this.materials={};this.images={};this.colors={};this.audios={};this.fonts={};this.penumbraSize=[];this.onImageLoad=()=>{this._onImageLoad&&this._onImageLoad()};this.onFontLoad=()=>{this._onFontLoad&&this._onFontLoad()};if(e.images)for(let[r,o]of Object.entries(e.images))this.addImage(r,o);if(e.audios)for(let[r,o]of Object.entries(e.audios))this.addAudio(r,o.data);this.reset(t)}setOnImageLoad(t){this._onImageLoad=t}setOnFontLoad(t){this._onFontLoad=t}reset(t){for(let[e,r]of Object.entries(t.images))this.addImage(e,r);for(let[e,r]of Object.entries(t.colors))this.addColor(e,r);for(let[e,r]of Object.entries(t.materials))this.addMaterial(e,new Ro(r,this));for(let[e,r]of Object.entries(t.audios))this.addAudio(e,r.data);for(let[e,r]of Object.entries(t.fonts))this.addFont(e,r);this.penumbraSize=t.penumbraSize}addMaterial(t,e){e.uuid=t,this.materials[t]=e}deleteMaterial(t){this.materials[t]&&(this.materials[t].dispose(),delete this.materials[t])}getMaterial(t){let e=this.materials[t];return e}getMaterialOrDeletedPlaceholder(t){return this.materials[t]??this.deletedMaterial}material(t){return typeof t=="string"?this.getMaterialOrDeletedPlaceholder(t):new Ft(t,this)}getMaterials(){return this.materials}addImage(t,e){return this.images[t]?(this.images[t].updateSrc(e.data),!0):(this.images[t]=new Bo(e,this.onImageLoad),!1)}deleteImage(t){this.images[t]&&delete this.images[t]}getDefaultImage(){return this.images.image_0}getImage(t){return this.images[t]??this.deletedImage}image(t){return typeof t=="string"?this.getImage(t):new Un(t,this.onImageLoad)}getImages(){return this.images}addColor(t,e){return this.colors[t]?("a"in e?this.colors[t].setRGBA(e.r,e.g,e.b,e.a):this.colors[t].setRGBA(e.r,e.g,e.b,1),!0):("a"in e?this.colors[t]=new uo(e.r,e.g,e.b,e.a):this.colors[t]=new uo(e.r,e.g,e.b,1),!1)}updateColor(t,e){if(this.colors[t]){let r=this.colors[t];return this.colors[t].r=e.r??r.r,this.colors[t].g=e.g??r.g,this.colors[t].b=e.b??r.b,this.colors[t].a=e.a??r.a,!0}return!1}deleteColor(t){this.colors[t]&&delete this.colors[t]}getColor(t){return this.colors[t]}color(t){let e;if(typeof t=="string"){let r=this.getColor(t);r?e=r:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),e=new tt(0,0,0,0))}else return"a"in t?new tt(t.r,t.g,t.b,t.a):new tt(t.r,t.g,t.b,1);return e}addAudio(t,e){this.audios[t]=e}getAudio(t){let e=this.audios[t];if(e instanceof Qn)return e;{let r=new Qn({src:e});return this.audios[t]=r,r}}deleteAudio(t){this.audios[t]&&delete this.audios[t]}addFont(t,e){this.fonts[t]=new Ya(e,this.onFontLoad)}getFont(t){return this.fonts[t]}deleteFont(t){this.fonts[t]&&delete this.fonts[t]}dispose(){Object.keys(this.materials).forEach(e=>this.deleteMaterial(e)),this._onImageLoad=void 0,Object.values(this.audios).forEach(e=>{e instanceof Qn&&e.dispose()}),this.audios={}}},l4=new ss(ca.emptyData());var _w=require("three"),Tw=require("three/examples/jsm/utils/BufferGeometryUtils.js");function ch(n){let t;if(!!n.index)for(let e=0;e<n.index.array.length;e+=3)t=n.index.array[e],n.index.array[e]=n.index.array[e+2],n.index.array[e+2]=t}var as=require("three");function uh(n){let t=new Set;return n.traverse(e=>{if(xr(e))if(je(e.material))e.material.forEach(r=>{let o=r;t.has(o)||t.add(o)});else{let r=e.material;t.has(r)||t.add(r)}}),t.forEach(e=>{if(e instanceof Array)return;let r=e.onBeforeCompile.bind(e);if(Aw(e)){Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new as.Color,specularColor:new as.Color});let o=0;e.onBeforeCompile=(i,s)=>{r&&r(i,s),i.uniforms=Object.assign({},as.ShaderLib.physical.uniforms,i.uniforms),e.getLayersOfType("transmission").forEach(l=>{if(i.uniforms.transmissionSamplerMap.value){let c=l.color;c&&(c.transmissionSamplerMap.value=i.uniforms.transmissionSamplerMap.value,c.transmissionSamplerSize.value=i.uniforms.transmissionSamplerSize.value)}else o++,o<2&&(e.needsUpdate=!0)})}}else Nw(e)||(e.onBeforeCompile=(o,i)=>{r&&r(o,i),e.transparent=!1})}),n}function Aw(n){return n.getLayersOfType("transmission").length>0}function Nw(n){let t=0;return n.layers.forEach(e=>{if(e.type!=="light"&&e.type!=="fresnel"){let r=e.uniforms["f"+e.id+"_alpha"];r&&(t+=(1-t)*r.value)}}),t<1}function ph(n){return n.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),n}function dh(n){let t=[],e=(r,o=0)=>{let i=o>0?r+o:r;return t.includes(i)?e(r,o+1):i};return n.traverse(r=>{if(t.includes(r.name)){let o=r.name,i=e(r.name);if(r.name=i,r.isMesh){let s=r;s.material instanceof Array?s.material.forEach(l=>{l.name=l.name.replace(o,i)}):s.material.isAsset||(s.material.name=s.material.name.replace(o,i))}}t.push(r.name)}),n}var fh=require("three/examples/jsm/utils/BufferGeometryUtils.js");function mh(n){let t=[];return n.traverse(e=>{e instanceof No&&t.push(e)}),t.forEach(e=>{let r=e.object,i=e.children.map(l=>{l.updateMatrix();let c=l.geometry.clone().applyMatrix4(l.matrix);return l.matrix.determinant()<0&&ch(c),c}),s=(0,fh.mergeBufferGeometries)(e.parameters.hideBase?i:[r.geometry,...i]);r.geometry=s,r.remove(e),r.cloner=void 0}),n}function hh(n){return n.traverse(t=>{t.matrixAutoUpdate=!0}),n}function gh(n){Object.values(n.shared.materials).forEach(t=>{Cc(t)}),n.scene.objects.traverse((t,e)=>{"material"in e?Cc(e.material):"materials"in e&&e.materials.forEach(r=>{Cc(r)})})}function Cc(n){if(typeof n=="string")return;let t=[];n.layers.forEach((e,r)=>{e.type==="outline"&&t.push(r)}),t.reverse().forEach(e=>{n.layers.delete(e)}),t.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var yh="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",Ka=class extends Qa.Loader{load(t,e,r,o=console.error){let i=new Qa.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(yh+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(yh),i.load(t,async s=>{try{if(typeof s=="string")throw new Error("The .spline file is not binary!");let l=await this.parse(s);e(l)}catch(l){o(l)}},r,o)}async parse(t){let e=await lh(t,gh);Um(e)&&await Rm();let r=new ss(e.shared);Object.values(r.getMaterials()).forEach(s=>Object.assign(s,{isAsset:!0}));let o=new is(e.scene,r);o.remove(o.personalCamera),e.scene.environment.ambientLight.enabled||o.remove(o.ambientLight);let i=e.scene.publish.playCamera;if(i){let s=o.find(i);s&&rm(s)&&Object.assign(s,{makeDefault:!0})}return o=mh(o),o=uh(o),o=ph(o),o=dh(o),o=hh(o),o}};