@splinetool/loader 0.9.154 → 0.9.156
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/SplineLoader.cjs +263 -263
- package/build/SplineLoader.js +260 -260
- package/package.json +1 -1
package/build/SplineLoader.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
var Ch=Object.create;var sa=Object.defineProperty;var Lh=Object.getOwnPropertyDescriptor;var Mh=Object.getOwnPropertyNames;var Bh=Object.getPrototypeOf,Eh=Object.prototype.hasOwnProperty;var aa=(o,e)=>()=>(e||o((e={exports:{}}).exports,e),e.exports),Dh=(o,e)=>{for(var A in e)sa(o,A,{get:e[A],enumerable:!0})},Gh=(o,e,A,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Mh(e))!Eh.call(o,r)&&r!==A&&sa(o,r,{get:()=>e[r],enumerable:!(t=Lh(e,r))||t.enumerable});return o};var la=(o,e,A)=>(A=o!=null?Ch(Bh(o)):{},Gh(e||!o||!o.__esModule?sa(A,"default",{value:o,enumerable:!0}):A,o));var vp=aa((Fa,xp)=>{(function(o,e){typeof Fa=="object"?xp.exports=e():typeof define=="function"&&define.amd?define(e):o.Alea=e()})(Fa,function(){"use strict";return o.importState=function(A){var t=new o;return t.importState(A),t},o;function o(){return function(A){var t=0,r=0,n=0,i=1;A.length==0&&(A=[+new Date]);var a=e();t=a(" "),r=a(" "),n=a(" ");for(var l=0;l<A.length;l++)t-=a(A[l]),t<0&&(t+=1),r-=a(A[l]),r<0&&(r+=1),n-=a(A[l]),n<0&&(n+=1);a=null;var u=function(){var s=2091639*t+i*23283064365386963e-26;return t=r,r=n,n=s-(i=s|0)};return u.next=u,u.uint32=function(){return u()*4294967296},u.fract53=function(){return u()+(u()*2097152|0)*11102230246251565e-32},u.version="Alea 0.9",u.args=A,u.exportState=function(){return[t,r,n,i]},u.importState=function(s){t=+s[0]||0,r=+s[1]||0,n=+s[2]||0,i=+s[3]||0},u}(Array.prototype.slice.call(arguments))}function e(){var A=4022871197,t=function(r){r=r.toString();for(var n=0;n<r.length;n++){A+=r.charCodeAt(n);var i=.02519603282416938*A;A=i>>>0,i-=A,i*=A,A=i>>>0,i-=A,A+=i*4294967296}return(A>>>0)*23283064365386963e-26};return t.version="Mash 0.9",t}})});var qm=aa((ta,Wm)=>{(function(o,e){typeof ta=="object"&&typeof Wm<"u"?e(ta):typeof define=="function"&&define.amd?define(["exports"],e):e((o=typeof globalThis<"u"?globalThis:o||self).SVDJS={})})(ta,function(o){"use strict";o.SVD=function(e,A,t,r,n){if(A=A===void 0||A,t=t===void 0||t,n=1e-64/(r=r||Math.pow(2,-52)),!e)throw new TypeError("Matrix a is not defined");var i,a,l,u,s,c,d,p,f,m,h,x,y=e[0].length,b=e.length;if(b<y)throw new TypeError("Invalid matrix: m < n");for(var w=[],v=[],I=[],S=A==="f"?b:y,g=m=d=0;g<b;g++)v[g]=new Array(S).fill(0);for(g=0;g<y;g++)I[g]=new Array(y).fill(0);var P,N=new Array(y).fill(0);for(g=0;g<b;g++)for(i=0;i<y;i++)v[g][i]=e[g][i];for(g=0;g<y;g++){for(w[g]=d,f=0,l=g+1,i=g;i<b;i++)f+=Math.pow(v[i][g],2);if(f<n)d=0;else for(p=(c=v[g][g])*(d=c<0?Math.sqrt(f):-Math.sqrt(f))-f,v[g][g]=c-d,i=l;i<y;i++){for(f=0,a=g;a<b;a++)f+=v[a][g]*v[a][i];for(c=f/p,a=g;a<b;a++)v[a][i]=v[a][i]+c*v[a][g]}for(N[g]=d,f=0,i=l;i<y;i++)f+=Math.pow(v[g][i],2);if(f<n)d=0;else{for(p=(c=v[g][g+1])*(d=c<0?Math.sqrt(f):-Math.sqrt(f))-f,v[g][g+1]=c-d,i=l;i<y;i++)w[i]=v[g][i]/p;for(i=l;i<b;i++){for(f=0,a=l;a<y;a++)f+=v[i][a]*v[g][a];for(a=l;a<y;a++)v[i][a]=v[i][a]+f*w[a]}}m<(h=Math.abs(N[g])+Math.abs(w[g]))&&(m=h)}if(t)for(g=y-1;0<=g;g--){if(d!==0){for(p=v[g][g+1]*d,i=l;i<y;i++)I[i][g]=v[g][i]/p;for(i=l;i<y;i++){for(f=0,a=l;a<y;a++)f+=v[g][a]*I[a][i];for(a=l;a<y;a++)I[a][i]=I[a][i]+f*I[a][g]}}for(i=l;i<y;i++)I[g][i]=0,I[i][g]=0;I[g][g]=1,d=w[g],l=g}if(A){if(A==="f")for(g=y;g<b;g++){for(i=y;i<b;i++)v[g][i]=0;v[g][g]=1}for(g=y-1;0<=g;g--){for(l=g+1,d=N[g],i=l;i<S;i++)v[g][i]=0;if(d!==0){for(p=v[g][g]*d,i=l;i<S;i++){for(f=0,a=l;a<b;a++)f+=v[a][g]*v[a][i];for(c=f/p,a=g;a<b;a++)v[a][i]=v[a][i]+c*v[a][g]}for(i=g;i<b;i++)v[i][g]=v[i][g]/d}else for(i=g;i<b;i++)v[i][g]=0;v[g][g]=v[g][g]+1}}for(r*=m,a=y-1;0<=a;a--)for(var O=0;O<50;O++){for(P=!1,l=a;0<=l;l--){if(Math.abs(w[l])<=r){P=!0;break}if(Math.abs(N[l-1])<=r)break}if(!P){for(s=0,u=l-(f=1),g=l;g<a+1&&(c=f*w[g],w[g]=s*w[g],!(Math.abs(c)<=r));g++)if(d=N[g],N[g]=Math.sqrt(c*c+d*d),s=d/(p=N[g]),f=-c/p,A)for(i=0;i<b;i++)h=v[i][u],x=v[i][g],v[i][u]=h*s+x*f,v[i][g]=-h*f+x*s}if(x=N[a],l===a){if(x<0&&(N[a]=-x,t))for(i=0;i<y;i++)I[i][a]=-I[i][a];break}for(m=N[l],c=(((h=N[a-1])-x)*(h+x)+((d=w[a-1])-(p=w[a]))*(d+p))/(2*p*h),d=Math.sqrt(c*c+1),c=((m-x)*(m+x)+p*(h/(c<0?c-d:c+d)-p))/m,g=l+(f=s=1);g<a+1;g++){if(d=w[g],h=N[g],p=f*d,d*=s,x=Math.sqrt(c*c+p*p),c=m*(s=c/(w[g-1]=x))+d*(f=p/x),d=-m*f+d*s,p=h*f,h*=s,t)for(i=0;i<y;i++)m=I[i][g-1],x=I[i][g],I[i][g-1]=m*s+x*f,I[i][g]=-m*f+x*s;if(x=Math.sqrt(c*c+p*p),c=(s=c/(N[g-1]=x))*d+(f=p/x)*h,m=-f*d+s*h,A)for(i=0;i<b;i++)h=v[i][g-1],x=v[i][g],v[i][g-1]=h*s+x*f,v[i][g]=-h*f+x*s}w[l]=0,w[a]=c,N[a]=m}for(g=0;g<y;g++)N[g]<r&&(N[g]=0);return{u:v,q:N,v:I}},o.VERSION="1.1.1",Object.defineProperty(o,"__esModule",{value:!0})})});var sh=aa(ra=>{(function(){"use strict";var o=function(){this.init()};o.prototype={init:function(){var s=this||e;return s._counter=1e3,s._html5AudioPool=[],s.html5PoolSize=10,s._codecs={},s._howls=[],s._muted=!1,s._volume=1,s._canPlayEvent="canplaythrough",s._navigator=typeof window<"u"&&window.navigator?window.navigator:null,s.masterGain=null,s.noAudio=!1,s.usingWebAudio=!0,s.autoSuspend=!0,s.ctx=null,s.autoUnlock=!0,s._setup(),s},volume:function(s){var c=this||e;if(s=parseFloat(s),c.ctx||u(),typeof s<"u"&&s>=0&&s<=1){if(c._volume=s,c._muted)return c;c.usingWebAudio&&c.masterGain.gain.setValueAtTime(s,e.ctx.currentTime);for(var d=0;d<c._howls.length;d++)if(!c._howls[d]._webAudio)for(var p=c._howls[d]._getSoundIds(),f=0;f<p.length;f++){var m=c._howls[d]._soundById(p[f]);m&&m._node&&(m._node.volume=m._volume*s)}return c}return c._volume},mute:function(s){var c=this||e;c.ctx||u(),c._muted=s,c.usingWebAudio&&c.masterGain.gain.setValueAtTime(s?0:c._volume,e.ctx.currentTime);for(var d=0;d<c._howls.length;d++)if(!c._howls[d]._webAudio)for(var p=c._howls[d]._getSoundIds(),f=0;f<p.length;f++){var m=c._howls[d]._soundById(p[f]);m&&m._node&&(m._node.muted=s?!0:m._muted)}return c},stop:function(){for(var s=this||e,c=0;c<s._howls.length;c++)s._howls[c].stop();return s},unload:function(){for(var s=this||e,c=s._howls.length-1;c>=0;c--)s._howls[c].unload();return s.usingWebAudio&&s.ctx&&typeof s.ctx.close<"u"&&(s.ctx.close(),s.ctx=null,u()),s},codecs:function(s){return(this||e)._codecs[s.replace(/^x-/,"")]},_setup:function(){var s=this||e;if(s.state=s.ctx&&s.ctx.state||"suspended",s._autoSuspend(),!s.usingWebAudio)if(typeof Audio<"u")try{var c=new Audio;typeof c.oncanplaythrough>"u"&&(s._canPlayEvent="canplay")}catch{s.noAudio=!0}else s.noAudio=!0;try{var c=new Audio;c.muted&&(s.noAudio=!0)}catch{}return s.noAudio||s._setupCodecs(),s},_setupCodecs:function(){var s=this||e,c=null;try{c=typeof Audio<"u"?new Audio:null}catch{return s}if(!c||typeof c.canPlayType!="function")return s;var d=c.canPlayType("audio/mpeg;").replace(/^no$/,""),p=s._navigator?s._navigator.userAgent:"",f=p.match(/OPR\/([0-6].)/g),m=f&&parseInt(f[0].split("/")[1],10)<33,h=p.indexOf("Safari")!==-1&&p.indexOf("Chrome")===-1,x=p.match(/Version\/(.*?) /),y=h&&x&&parseInt(x[1],10)<15;return s._codecs={mp3:!!(!m&&(d||c.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!d,opus:!!c.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!c.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!c.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(c.canPlayType('audio/wav; codecs="1"')||c.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!c.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!c.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(c.canPlayType("audio/x-m4a;")||c.canPlayType("audio/m4a;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(c.canPlayType("audio/x-m4b;")||c.canPlayType("audio/m4b;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(c.canPlayType("audio/x-mp4;")||c.canPlayType("audio/mp4;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!y&&c.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!y&&c.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!c.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(c.canPlayType("audio/x-flac;")||c.canPlayType("audio/flac;")).replace(/^no$/,"")},s},_unlockAudio:function(){var s=this||e;if(!(s._audioUnlocked||!s.ctx)){s._audioUnlocked=!1,s.autoUnlock=!1,!s._mobileUnloaded&&s.ctx.sampleRate!==44100&&(s._mobileUnloaded=!0,s.unload()),s._scratchBuffer=s.ctx.createBuffer(1,1,22050);var c=function(d){for(;s._html5AudioPool.length<s.html5PoolSize;)try{var p=new Audio;p._unlocked=!0,s._releaseHtml5Audio(p)}catch{s.noAudio=!0;break}for(var f=0;f<s._howls.length;f++)if(!s._howls[f]._webAudio)for(var m=s._howls[f]._getSoundIds(),h=0;h<m.length;h++){var x=s._howls[f]._soundById(m[h]);x&&x._node&&!x._node._unlocked&&(x._node._unlocked=!0,x._node.load())}s._autoResume();var y=s.ctx.createBufferSource();y.buffer=s._scratchBuffer,y.connect(s.ctx.destination),typeof y.start>"u"?y.noteOn(0):y.start(0),typeof s.ctx.resume=="function"&&s.ctx.resume(),y.onended=function(){y.disconnect(0),s._audioUnlocked=!0,document.removeEventListener("touchstart",c,!0),document.removeEventListener("touchend",c,!0),document.removeEventListener("click",c,!0),document.removeEventListener("keydown",c,!0);for(var b=0;b<s._howls.length;b++)s._howls[b]._emit("unlock")}};return document.addEventListener("touchstart",c,!0),document.addEventListener("touchend",c,!0),document.addEventListener("click",c,!0),document.addEventListener("keydown",c,!0),s}},_obtainHtml5Audio:function(){var s=this||e;if(s._html5AudioPool.length)return s._html5AudioPool.pop();var c=new Audio().play();return c&&typeof Promise<"u"&&(c instanceof Promise||typeof c.then=="function")&&c.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(s){var c=this||e;return s._unlocked&&c._html5AudioPool.push(s),c},_autoSuspend:function(){var s=this;if(!(!s.autoSuspend||!s.ctx||typeof s.ctx.suspend>"u"||!e.usingWebAudio)){for(var c=0;c<s._howls.length;c++)if(s._howls[c]._webAudio){for(var d=0;d<s._howls[c]._sounds.length;d++)if(!s._howls[c]._sounds[d]._paused)return s}return s._suspendTimer&&clearTimeout(s._suspendTimer),s._suspendTimer=setTimeout(function(){if(!!s.autoSuspend){s._suspendTimer=null,s.state="suspending";var p=function(){s.state="suspended",s._resumeAfterSuspend&&(delete s._resumeAfterSuspend,s._autoResume())};s.ctx.suspend().then(p,p)}},3e4),s}},_autoResume:function(){var s=this;if(!(!s.ctx||typeof s.ctx.resume>"u"||!e.usingWebAudio))return s.state==="running"&&s.ctx.state!=="interrupted"&&s._suspendTimer?(clearTimeout(s._suspendTimer),s._suspendTimer=null):s.state==="suspended"||s.state==="running"&&s.ctx.state==="interrupted"?(s.ctx.resume().then(function(){s.state="running";for(var c=0;c<s._howls.length;c++)s._howls[c]._emit("resume")}),s._suspendTimer&&(clearTimeout(s._suspendTimer),s._suspendTimer=null)):s.state==="suspending"&&(s._resumeAfterSuspend=!0),s}};var e=new o,A=function(s){var c=this;if(!s.src||s.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}c.init(s)};A.prototype={init:function(s){var c=this;return e.ctx||u(),c._autoplay=s.autoplay||!1,c._format=typeof s.format!="string"?s.format:[s.format],c._html5=s.html5||!1,c._muted=s.mute||!1,c._loop=s.loop||!1,c._pool=s.pool||5,c._preload=typeof s.preload=="boolean"||s.preload==="metadata"?s.preload:!0,c._rate=s.rate||1,c._sprite=s.sprite||{},c._src=typeof s.src!="string"?s.src:[s.src],c._volume=s.volume!==void 0?s.volume:1,c._xhr={method:s.xhr&&s.xhr.method?s.xhr.method:"GET",headers:s.xhr&&s.xhr.headers?s.xhr.headers:null,withCredentials:s.xhr&&s.xhr.withCredentials?s.xhr.withCredentials:!1},c._duration=0,c._state="unloaded",c._sounds=[],c._endTimers={},c._queue=[],c._playLock=!1,c._onend=s.onend?[{fn:s.onend}]:[],c._onfade=s.onfade?[{fn:s.onfade}]:[],c._onload=s.onload?[{fn:s.onload}]:[],c._onloaderror=s.onloaderror?[{fn:s.onloaderror}]:[],c._onplayerror=s.onplayerror?[{fn:s.onplayerror}]:[],c._onpause=s.onpause?[{fn:s.onpause}]:[],c._onplay=s.onplay?[{fn:s.onplay}]:[],c._onstop=s.onstop?[{fn:s.onstop}]:[],c._onmute=s.onmute?[{fn:s.onmute}]:[],c._onvolume=s.onvolume?[{fn:s.onvolume}]:[],c._onrate=s.onrate?[{fn:s.onrate}]:[],c._onseek=s.onseek?[{fn:s.onseek}]:[],c._onunlock=s.onunlock?[{fn:s.onunlock}]:[],c._onresume=[],c._webAudio=e.usingWebAudio&&!c._html5,typeof e.ctx<"u"&&e.ctx&&e.autoUnlock&&e._unlockAudio(),e._howls.push(c),c._autoplay&&c._queue.push({event:"play",action:function(){c.play()}}),c._preload&&c._preload!=="none"&&c.load(),c},load:function(){var s=this,c=null;if(e.noAudio){s._emit("loaderror",null,"No audio support.");return}typeof s._src=="string"&&(s._src=[s._src]);for(var d=0;d<s._src.length;d++){var p,f;if(s._format&&s._format[d])p=s._format[d];else{if(f=s._src[d],typeof f!="string"){s._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}p=/^data:audio\/([^;,]+);/i.exec(f),p||(p=/\.([^.]+)$/.exec(f.split("?",1)[0])),p&&(p=p[1].toLowerCase())}if(p||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),p&&e.codecs(p)){c=s._src[d];break}}if(!c){s._emit("loaderror",null,"No codec support for selected audio sources.");return}return s._src=c,s._state="loading",window.location.protocol==="https:"&&c.slice(0,5)==="http:"&&(s._html5=!0,s._webAudio=!1),new t(s),s._webAudio&&n(s),s},play:function(s,c){var d=this,p=null;if(typeof s=="number")p=s,s=null;else{if(typeof s=="string"&&d._state==="loaded"&&!d._sprite[s])return null;if(typeof s>"u"&&(s="__default",!d._playLock)){for(var f=0,m=0;m<d._sounds.length;m++)d._sounds[m]._paused&&!d._sounds[m]._ended&&(f++,p=d._sounds[m]._id);f===1?s=null:p=null}}var h=p?d._soundById(p):d._inactiveSound();if(!h)return null;if(p&&!s&&(s=h._sprite||"__default"),d._state!=="loaded"){h._sprite=s,h._ended=!1;var x=h._id;return d._queue.push({event:"play",action:function(){d.play(x)}}),x}if(p&&!h._paused)return c||d._loadQueue("play"),h._id;d._webAudio&&e._autoResume();var y=Math.max(0,h._seek>0?h._seek:d._sprite[s][0]/1e3),b=Math.max(0,(d._sprite[s][0]+d._sprite[s][1])/1e3-y),w=b*1e3/Math.abs(h._rate),v=d._sprite[s][0]/1e3,I=(d._sprite[s][0]+d._sprite[s][1])/1e3;h._sprite=s,h._ended=!1;var S=function(){h._paused=!1,h._seek=y,h._start=v,h._stop=I,h._loop=!!(h._loop||d._sprite[s][2])};if(y>=I){d._ended(h);return}var g=h._node;if(d._webAudio){var P=function(){d._playLock=!1,S(),d._refreshBuffer(h);var L=h._muted||d._muted?0:h._volume;g.gain.setValueAtTime(L,e.ctx.currentTime),h._playStart=e.ctx.currentTime,typeof g.bufferSource.start>"u"?h._loop?g.bufferSource.noteGrainOn(0,y,86400):g.bufferSource.noteGrainOn(0,y,b):h._loop?g.bufferSource.start(0,y,86400):g.bufferSource.start(0,y,b),w!==1/0&&(d._endTimers[h._id]=setTimeout(d._ended.bind(d,h),w)),c||setTimeout(function(){d._emit("play",h._id),d._loadQueue()},0)};e.state==="running"&&e.ctx.state!=="interrupted"?P():(d._playLock=!0,d.once("resume",P),d._clearTimer(h._id))}else{var N=function(){g.currentTime=y,g.muted=h._muted||d._muted||e._muted||g.muted,g.volume=h._volume*e.volume(),g.playbackRate=h._rate;try{var L=g.play();if(L&&typeof Promise<"u"&&(L instanceof Promise||typeof L.then=="function")?(d._playLock=!0,S(),L.then(function(){d._playLock=!1,g._unlocked=!0,c?d._loadQueue():d._emit("play",h._id)}).catch(function(){d._playLock=!1,d._emit("playerror",h._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."),h._ended=!0,h._paused=!0})):c||(d._playLock=!1,S(),d._emit("play",h._id)),g.playbackRate=h._rate,g.paused){d._emit("playerror",h._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}s!=="__default"||h._loop?d._endTimers[h._id]=setTimeout(d._ended.bind(d,h),w):(d._endTimers[h._id]=function(){d._ended(h),g.removeEventListener("ended",d._endTimers[h._id],!1)},g.addEventListener("ended",d._endTimers[h._id],!1))}catch(B){d._emit("playerror",h._id,B)}};g.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(g.src=d._src,g.load());var O=window&&window.ejecta||!g.readyState&&e._navigator.isCocoonJS;if(g.readyState>=3||O)N();else{d._playLock=!0,d._state="loading";var T=function(){d._state="loaded",N(),g.removeEventListener(e._canPlayEvent,T,!1)};g.addEventListener(e._canPlayEvent,T,!1),d._clearTimer(h._id)}}return h._id},pause:function(s){var c=this;if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"pause",action:function(){c.pause(s)}}),c;for(var d=c._getSoundIds(s),p=0;p<d.length;p++){c._clearTimer(d[p]);var f=c._soundById(d[p]);if(f&&!f._paused&&(f._seek=c.seek(d[p]),f._rateSeek=0,f._paused=!0,c._stopFade(d[p]),f._node))if(c._webAudio){if(!f._node.bufferSource)continue;typeof f._node.bufferSource.stop>"u"?f._node.bufferSource.noteOff(0):f._node.bufferSource.stop(0),c._cleanBuffer(f._node)}else(!isNaN(f._node.duration)||f._node.duration===1/0)&&f._node.pause();arguments[1]||c._emit("pause",f?f._id:null)}return c},stop:function(s,c){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"stop",action:function(){d.stop(s)}}),d;for(var p=d._getSoundIds(s),f=0;f<p.length;f++){d._clearTimer(p[f]);var m=d._soundById(p[f]);m&&(m._seek=m._start||0,m._rateSeek=0,m._paused=!0,m._ended=!0,d._stopFade(p[f]),m._node&&(d._webAudio?m._node.bufferSource&&(typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),d._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&&d._clearSound(m._node))),c||d._emit("stop",m._id))}return d},mute:function(s,c){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"mute",action:function(){d.mute(s,c)}}),d;if(typeof c>"u")if(typeof s=="boolean")d._muted=s;else return d._muted;for(var p=d._getSoundIds(c),f=0;f<p.length;f++){var m=d._soundById(p[f]);m&&(m._muted=s,m._interval&&d._stopFade(m._id),d._webAudio&&m._node?m._node.gain.setValueAtTime(s?0:m._volume,e.ctx.currentTime):m._node&&(m._node.muted=e._muted?!0:s),d._emit("mute",m._id))}return d},volume:function(){var s=this,c=arguments,d,p;if(c.length===0)return s._volume;if(c.length===1||c.length===2&&typeof c[1]>"u"){var f=s._getSoundIds(),m=f.indexOf(c[0]);m>=0?p=parseInt(c[0],10):d=parseFloat(c[0])}else c.length>=2&&(d=parseFloat(c[0]),p=parseInt(c[1],10));var h;if(typeof d<"u"&&d>=0&&d<=1){if(s._state!=="loaded"||s._playLock)return s._queue.push({event:"volume",action:function(){s.volume.apply(s,c)}}),s;typeof p>"u"&&(s._volume=d),p=s._getSoundIds(p);for(var x=0;x<p.length;x++)h=s._soundById(p[x]),h&&(h._volume=d,c[2]||s._stopFade(p[x]),s._webAudio&&h._node&&!h._muted?h._node.gain.setValueAtTime(d,e.ctx.currentTime):h._node&&!h._muted&&(h._node.volume=d*e.volume()),s._emit("volume",h._id))}else return h=p?s._soundById(p):s._sounds[0],h?h._volume:0;return s},fade:function(s,c,d,p){var f=this;if(f._state!=="loaded"||f._playLock)return f._queue.push({event:"fade",action:function(){f.fade(s,c,d,p)}}),f;s=Math.min(Math.max(0,parseFloat(s)),1),c=Math.min(Math.max(0,parseFloat(c)),1),d=parseFloat(d),f.volume(s,p);for(var m=f._getSoundIds(p),h=0;h<m.length;h++){var x=f._soundById(m[h]);if(x){if(p||f._stopFade(m[h]),f._webAudio&&!x._muted){var y=e.ctx.currentTime,b=y+d/1e3;x._volume=s,x._node.gain.setValueAtTime(s,y),x._node.gain.linearRampToValueAtTime(c,b)}f._startFadeInterval(x,s,c,d,m[h],typeof p>"u")}}return f},_startFadeInterval:function(s,c,d,p,f,m){var h=this,x=c,y=d-c,b=Math.abs(y/.01),w=Math.max(4,b>0?p/b:p),v=Date.now();s._fadeTo=d,s._interval=setInterval(function(){var I=(Date.now()-v)/p;v=Date.now(),x+=y*I,x=Math.round(x*100)/100,y<0?x=Math.max(d,x):x=Math.min(d,x),h._webAudio?s._volume=x:h.volume(x,s._id,!0),m&&(h._volume=x),(d<c&&x<=d||d>c&&x>=d)&&(clearInterval(s._interval),s._interval=null,s._fadeTo=null,h.volume(d,s._id),h._emit("fade",s._id))},w)},_stopFade:function(s){var c=this,d=c._soundById(s);return d&&d._interval&&(c._webAudio&&d._node.gain.cancelScheduledValues(e.ctx.currentTime),clearInterval(d._interval),d._interval=null,c.volume(d._fadeTo,s),d._fadeTo=null,c._emit("fade",s)),c},loop:function(){var s=this,c=arguments,d,p,f;if(c.length===0)return s._loop;if(c.length===1)if(typeof c[0]=="boolean")d=c[0],s._loop=d;else return f=s._soundById(parseInt(c[0],10)),f?f._loop:!1;else c.length===2&&(d=c[0],p=parseInt(c[1],10));for(var m=s._getSoundIds(p),h=0;h<m.length;h++)f=s._soundById(m[h]),f&&(f._loop=d,s._webAudio&&f._node&&f._node.bufferSource&&(f._node.bufferSource.loop=d,d&&(f._node.bufferSource.loopStart=f._start||0,f._node.bufferSource.loopEnd=f._stop,s.playing(m[h])&&(s.pause(m[h],!0),s.play(m[h],!0)))));return s},rate:function(){var s=this,c=arguments,d,p;if(c.length===0)p=s._sounds[0]._id;else if(c.length===1){var f=s._getSoundIds(),m=f.indexOf(c[0]);m>=0?p=parseInt(c[0],10):d=parseFloat(c[0])}else c.length===2&&(d=parseFloat(c[0]),p=parseInt(c[1],10));var h;if(typeof d=="number"){if(s._state!=="loaded"||s._playLock)return s._queue.push({event:"rate",action:function(){s.rate.apply(s,c)}}),s;typeof p>"u"&&(s._rate=d),p=s._getSoundIds(p);for(var x=0;x<p.length;x++)if(h=s._soundById(p[x]),h){s.playing(p[x])&&(h._rateSeek=s.seek(p[x]),h._playStart=s._webAudio?e.ctx.currentTime:h._playStart),h._rate=d,s._webAudio&&h._node&&h._node.bufferSource?h._node.bufferSource.playbackRate.setValueAtTime(d,e.ctx.currentTime):h._node&&(h._node.playbackRate=d);var y=s.seek(p[x]),b=(s._sprite[h._sprite][0]+s._sprite[h._sprite][1])/1e3-y,w=b*1e3/Math.abs(h._rate);(s._endTimers[p[x]]||!h._paused)&&(s._clearTimer(p[x]),s._endTimers[p[x]]=setTimeout(s._ended.bind(s,h),w)),s._emit("rate",h._id)}}else return h=s._soundById(p),h?h._rate:s._rate;return s},seek:function(){var s=this,c=arguments,d,p;if(c.length===0)s._sounds.length&&(p=s._sounds[0]._id);else if(c.length===1){var f=s._getSoundIds(),m=f.indexOf(c[0]);m>=0?p=parseInt(c[0],10):s._sounds.length&&(p=s._sounds[0]._id,d=parseFloat(c[0]))}else c.length===2&&(d=parseFloat(c[0]),p=parseInt(c[1],10));if(typeof p>"u")return 0;if(typeof d=="number"&&(s._state!=="loaded"||s._playLock))return s._queue.push({event:"seek",action:function(){s.seek.apply(s,c)}}),s;var h=s._soundById(p);if(h)if(typeof d=="number"&&d>=0){var x=s.playing(p);x&&s.pause(p,!0),h._seek=d,h._ended=!1,s._clearTimer(p),!s._webAudio&&h._node&&!isNaN(h._node.duration)&&(h._node.currentTime=d);var y=function(){x&&s.play(p,!0),s._emit("seek",p)};if(x&&!s._webAudio){var b=function(){s._playLock?setTimeout(b,0):y()};setTimeout(b,0)}else y()}else if(s._webAudio){var w=s.playing(p)?e.ctx.currentTime-h._playStart:0,v=h._rateSeek?h._rateSeek-h._seek:0;return h._seek+(v+w*Math.abs(h._rate))}else return h._node.currentTime;return s},playing:function(s){var c=this;if(typeof s=="number"){var d=c._soundById(s);return d?!d._paused:!1}for(var p=0;p<c._sounds.length;p++)if(!c._sounds[p]._paused)return!0;return!1},duration:function(s){var c=this,d=c._duration,p=c._soundById(s);return p&&(d=c._sprite[p._sprite][1]/1e3),d},state:function(){return this._state},unload:function(){for(var s=this,c=s._sounds,d=0;d<c.length;d++)c[d]._paused||s.stop(c[d]._id),s._webAudio||(s._clearSound(c[d]._node),c[d]._node.removeEventListener("error",c[d]._errorFn,!1),c[d]._node.removeEventListener(e._canPlayEvent,c[d]._loadFn,!1),c[d]._node.removeEventListener("ended",c[d]._endFn,!1),e._releaseHtml5Audio(c[d]._node)),delete c[d]._node,s._clearTimer(c[d]._id);var p=e._howls.indexOf(s);p>=0&&e._howls.splice(p,1);var f=!0;for(d=0;d<e._howls.length;d++)if(e._howls[d]._src===s._src||s._src.indexOf(e._howls[d]._src)>=0){f=!1;break}return r&&f&&delete r[s._src],e.noAudio=!1,s._state="unloaded",s._sounds=[],s=null,null},on:function(s,c,d,p){var f=this,m=f["_on"+s];return typeof c=="function"&&m.push(p?{id:d,fn:c,once:p}:{id:d,fn:c}),f},off:function(s,c,d){var p=this,f=p["_on"+s],m=0;if(typeof c=="number"&&(d=c,c=null),c||d)for(m=0;m<f.length;m++){var h=d===f[m].id;if(c===f[m].fn&&h||!c&&h){f.splice(m,1);break}}else if(s)p["_on"+s]=[];else{var x=Object.keys(p);for(m=0;m<x.length;m++)x[m].indexOf("_on")===0&&Array.isArray(p[x[m]])&&(p[x[m]]=[])}return p},once:function(s,c,d){var p=this;return p.on(s,c,d,1),p},_emit:function(s,c,d){for(var p=this,f=p["_on"+s],m=f.length-1;m>=0;m--)(!f[m].id||f[m].id===c||s==="load")&&(setTimeout(function(h){h.call(this,c,d)}.bind(p,f[m].fn),0),f[m].once&&p.off(s,f[m].fn,f[m].id));return p._loadQueue(s),p},_loadQueue:function(s){var c=this;if(c._queue.length>0){var d=c._queue[0];d.event===s&&(c._queue.shift(),c._loadQueue()),s||d.action()}return c},_ended:function(s){var c=this,d=s._sprite;if(!c._webAudio&&s._node&&!s._node.paused&&!s._node.ended&&s._node.currentTime<s._stop)return setTimeout(c._ended.bind(c,s),100),c;var p=!!(s._loop||c._sprite[d][2]);if(c._emit("end",s._id),!c._webAudio&&p&&c.stop(s._id,!0).play(s._id),c._webAudio&&p){c._emit("play",s._id),s._seek=s._start||0,s._rateSeek=0,s._playStart=e.ctx.currentTime;var f=(s._stop-s._start)*1e3/Math.abs(s._rate);c._endTimers[s._id]=setTimeout(c._ended.bind(c,s),f)}return c._webAudio&&!p&&(s._paused=!0,s._ended=!0,s._seek=s._start||0,s._rateSeek=0,c._clearTimer(s._id),c._cleanBuffer(s._node),e._autoSuspend()),!c._webAudio&&!p&&c.stop(s._id,!0),c},_clearTimer:function(s){var c=this;if(c._endTimers[s]){if(typeof c._endTimers[s]!="function")clearTimeout(c._endTimers[s]);else{var d=c._soundById(s);d&&d._node&&d._node.removeEventListener("ended",c._endTimers[s],!1)}delete c._endTimers[s]}return c},_soundById:function(s){for(var c=this,d=0;d<c._sounds.length;d++)if(s===c._sounds[d]._id)return c._sounds[d];return null},_inactiveSound:function(){var s=this;s._drain();for(var c=0;c<s._sounds.length;c++)if(s._sounds[c]._ended)return s._sounds[c].reset();return new t(s)},_drain:function(){var s=this,c=s._pool,d=0,p=0;if(!(s._sounds.length<c)){for(p=0;p<s._sounds.length;p++)s._sounds[p]._ended&&d++;for(p=s._sounds.length-1;p>=0;p--){if(d<=c)return;s._sounds[p]._ended&&(s._webAudio&&s._sounds[p]._node&&s._sounds[p]._node.disconnect(0),s._sounds.splice(p,1),d--)}}},_getSoundIds:function(s){var c=this;if(typeof s>"u"){for(var d=[],p=0;p<c._sounds.length;p++)d.push(c._sounds[p]._id);return d}else return[s]},_refreshBuffer:function(s){var c=this;return s._node.bufferSource=e.ctx.createBufferSource(),s._node.bufferSource.buffer=r[c._src],s._panner?s._node.bufferSource.connect(s._panner):s._node.bufferSource.connect(s._node),s._node.bufferSource.loop=s._loop,s._loop&&(s._node.bufferSource.loopStart=s._start||0,s._node.bufferSource.loopEnd=s._stop||0),s._node.bufferSource.playbackRate.setValueAtTime(s._rate,e.ctx.currentTime),c},_cleanBuffer:function(s){var c=this,d=e._navigator&&e._navigator.vendor.indexOf("Apple")>=0;if(e._scratchBuffer&&s.bufferSource&&(s.bufferSource.onended=null,s.bufferSource.disconnect(0),d))try{s.bufferSource.buffer=e._scratchBuffer}catch{}return s.bufferSource=null,c},_clearSound:function(s){var c=/MSIE |Trident\//.test(e._navigator&&e._navigator.userAgent);c||(s.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var t=function(s){this._parent=s,this.init()};t.prototype={init:function(){var s=this,c=s._parent;return s._muted=c._muted,s._loop=c._loop,s._volume=c._volume,s._rate=c._rate,s._seek=0,s._paused=!0,s._ended=!0,s._sprite="__default",s._id=++e._counter,c._sounds.push(s),s.create(),s},create:function(){var s=this,c=s._parent,d=e._muted||s._muted||s._parent._muted?0:s._volume;return c._webAudio?(s._node=typeof e.ctx.createGain>"u"?e.ctx.createGainNode():e.ctx.createGain(),s._node.gain.setValueAtTime(d,e.ctx.currentTime),s._node.paused=!0,s._node.connect(e.masterGain)):e.noAudio||(s._node=e._obtainHtml5Audio(),s._errorFn=s._errorListener.bind(s),s._node.addEventListener("error",s._errorFn,!1),s._loadFn=s._loadListener.bind(s),s._node.addEventListener(e._canPlayEvent,s._loadFn,!1),s._endFn=s._endListener.bind(s),s._node.addEventListener("ended",s._endFn,!1),s._node.src=c._src,s._node.preload=c._preload===!0?"auto":c._preload,s._node.volume=d*e.volume(),s._node.load()),s},reset:function(){var s=this,c=s._parent;return s._muted=c._muted,s._loop=c._loop,s._volume=c._volume,s._rate=c._rate,s._seek=0,s._rateSeek=0,s._paused=!0,s._ended=!0,s._sprite="__default",s._id=++e._counter,s},_errorListener:function(){var s=this;s._parent._emit("loaderror",s._id,s._node.error?s._node.error.code:0),s._node.removeEventListener("error",s._errorFn,!1)},_loadListener:function(){var s=this,c=s._parent;c._duration=Math.ceil(s._node.duration*10)/10,Object.keys(c._sprite).length===0&&(c._sprite={__default:[0,c._duration*1e3]}),c._state!=="loaded"&&(c._state="loaded",c._emit("load"),c._loadQueue()),s._node.removeEventListener(e._canPlayEvent,s._loadFn,!1)},_endListener:function(){var s=this,c=s._parent;c._duration===1/0&&(c._duration=Math.ceil(s._node.duration*10)/10,c._sprite.__default[1]===1/0&&(c._sprite.__default[1]=c._duration*1e3),c._ended(s)),s._node.removeEventListener("ended",s._endFn,!1)}};var r={},n=function(s){var c=s._src;if(r[c]){s._duration=r[c].duration,l(s);return}if(/^data:[^;]+;base64,/.test(c)){for(var d=atob(c.split(",")[1]),p=new Uint8Array(d.length),f=0;f<d.length;++f)p[f]=d.charCodeAt(f);a(p.buffer,s)}else{var m=new XMLHttpRequest;m.open(s._xhr.method,c,!0),m.withCredentials=s._xhr.withCredentials,m.responseType="arraybuffer",s._xhr.headers&&Object.keys(s._xhr.headers).forEach(function(h){m.setRequestHeader(h,s._xhr.headers[h])}),m.onload=function(){var h=(m.status+"")[0];if(h!=="0"&&h!=="2"&&h!=="3"){s._emit("loaderror",null,"Failed loading audio file with status: "+m.status+".");return}a(m.response,s)},m.onerror=function(){s._webAudio&&(s._html5=!0,s._webAudio=!1,s._sounds=[],delete r[c],s.load())},i(m)}},i=function(s){try{s.send()}catch{s.onerror()}},a=function(s,c){var d=function(){c._emit("loaderror",null,"Decoding audio data failed.")},p=function(f){f&&c._sounds.length>0?(r[c._src]=f,l(c,f)):d()};typeof Promise<"u"&&e.ctx.decodeAudioData.length===1?e.ctx.decodeAudioData(s).then(p).catch(d):e.ctx.decodeAudioData(s,p,d)},l=function(s,c){c&&!s._duration&&(s._duration=c.duration),Object.keys(s._sprite).length===0&&(s._sprite={__default:[0,s._duration*1e3]}),s._state!=="loaded"&&(s._state="loaded",s._emit("load"),s._loadQueue())},u=function(){if(!!e.usingWebAudio){try{typeof AudioContext<"u"?e.ctx=new AudioContext:typeof webkitAudioContext<"u"?e.ctx=new webkitAudioContext:e.usingWebAudio=!1}catch{e.usingWebAudio=!1}e.ctx||(e.usingWebAudio=!1);var s=/iP(hone|od|ad)/.test(e._navigator&&e._navigator.platform),c=e._navigator&&e._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),d=c?parseInt(c[1],10):null;if(s&&d&&d<9){var p=/safari/.test(e._navigator&&e._navigator.userAgent.toLowerCase());e._navigator&&!p&&(e.usingWebAudio=!1)}e.usingWebAudio&&(e.masterGain=typeof e.ctx.createGain>"u"?e.ctx.createGainNode():e.ctx.createGain(),e.masterGain.gain.setValueAtTime(e._muted?0:e._volume,e.ctx.currentTime),e.masterGain.connect(e.ctx.destination)),e._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:e,Howl:A}}),typeof ra<"u"&&(ra.Howler=e,ra.Howl=A),typeof global<"u"?(global.HowlerGlobal=o,global.Howler=e,global.Howl=A,global.Sound=t):typeof window<"u"&&(window.HowlerGlobal=o,window.Howler=e,window.Howl=A,window.Sound=t)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){var A=this;if(!A.ctx||!A.ctx.listener)return A;for(var t=A._howls.length-1;t>=0;t--)A._howls[t].stereo(e);return A},HowlerGlobal.prototype.pos=function(e,A,t){var r=this;if(!r.ctx||!r.ctx.listener)return r;if(A=typeof A!="number"?r._pos[1]:A,t=typeof t!="number"?r._pos[2]:t,typeof e=="number")r._pos=[e,A,t],typeof r.ctx.listener.positionX<"u"?(r.ctx.listener.positionX.setTargetAtTime(r._pos[0],Howler.ctx.currentTime,.1),r.ctx.listener.positionY.setTargetAtTime(r._pos[1],Howler.ctx.currentTime,.1),r.ctx.listener.positionZ.setTargetAtTime(r._pos[2],Howler.ctx.currentTime,.1)):r.ctx.listener.setPosition(r._pos[0],r._pos[1],r._pos[2]);else return r._pos;return r},HowlerGlobal.prototype.orientation=function(e,A,t,r,n,i){var a=this;if(!a.ctx||!a.ctx.listener)return a;var l=a._orientation;if(A=typeof A!="number"?l[1]:A,t=typeof t!="number"?l[2]:t,r=typeof r!="number"?l[3]:r,n=typeof n!="number"?l[4]:n,i=typeof i!="number"?l[5]:i,typeof e=="number")a._orientation=[e,A,t,r,n,i],typeof a.ctx.listener.forwardX<"u"?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(A,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(i,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,A,t,r,n,i);else return l;return a},Howl.prototype.init=function(e){return function(A){var t=this;return t._orientation=A.orientation||[1,0,0],t._stereo=A.stereo||null,t._pos=A.pos||null,t._pannerAttr={coneInnerAngle:typeof A.coneInnerAngle<"u"?A.coneInnerAngle:360,coneOuterAngle:typeof A.coneOuterAngle<"u"?A.coneOuterAngle:360,coneOuterGain:typeof A.coneOuterGain<"u"?A.coneOuterGain:0,distanceModel:typeof A.distanceModel<"u"?A.distanceModel:"inverse",maxDistance:typeof A.maxDistance<"u"?A.maxDistance:1e4,panningModel:typeof A.panningModel<"u"?A.panningModel:"HRTF",refDistance:typeof A.refDistance<"u"?A.refDistance:1,rolloffFactor:typeof A.rolloffFactor<"u"?A.rolloffFactor:1},t._onstereo=A.onstereo?[{fn:A.onstereo}]:[],t._onpos=A.onpos?[{fn:A.onpos}]:[],t._onorientation=A.onorientation?[{fn:A.onorientation}]:[],e.call(this,A)}}(Howl.prototype.init),Howl.prototype.stereo=function(e,A){var t=this;if(!t._webAudio)return t;if(t._state!=="loaded")return t._queue.push({event:"stereo",action:function(){t.stereo(e,A)}}),t;var r=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof A>"u")if(typeof e=="number")t._stereo=e,t._pos=[e,0,0];else return t._stereo;for(var n=t._getSoundIds(A),i=0;i<n.length;i++){var a=t._soundById(n[i]);if(a)if(typeof e=="number")a._stereo=e,a._pos=[e,0,0],a._node&&(a._pannerAttr.panningModel="equalpower",(!a._panner||!a._panner.pan)&&o(a,r),r==="spatial"?typeof a._panner.positionX<"u"?(a._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),a._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),a._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):a._panner.setPosition(e,0,0):a._panner.pan.setValueAtTime(e,Howler.ctx.currentTime)),t._emit("stereo",a._id);else return a._stereo}return t},Howl.prototype.pos=function(e,A,t,r){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"pos",action:function(){n.pos(e,A,t,r)}}),n;if(A=typeof A!="number"?0:A,t=typeof t!="number"?-.5:t,typeof r>"u")if(typeof e=="number")n._pos=[e,A,t];else return n._pos;for(var i=n._getSoundIds(r),a=0;a<i.length;a++){var l=n._soundById(i[a]);if(l)if(typeof e=="number")l._pos=[e,A,t],l._node&&((!l._panner||l._panner.pan)&&o(l,"spatial"),typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(A,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(t,Howler.ctx.currentTime)):l._panner.setPosition(e,A,t)),n._emit("pos",l._id);else return l._pos}return n},Howl.prototype.orientation=function(e,A,t,r){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"orientation",action:function(){n.orientation(e,A,t,r)}}),n;if(A=typeof A!="number"?n._orientation[1]:A,t=typeof t!="number"?n._orientation[2]:t,typeof r>"u")if(typeof e=="number")n._orientation=[e,A,t];else return n._orientation;for(var i=n._getSoundIds(r),a=0;a<i.length;a++){var l=n._soundById(i[a]);if(l)if(typeof e=="number")l._orientation=[e,A,t],l._node&&(l._panner||(l._pos||(l._pos=n._pos||[0,0,-.5]),o(l,"spatial")),typeof l._panner.orientationX<"u"?(l._panner.orientationX.setValueAtTime(e,Howler.ctx.currentTime),l._panner.orientationY.setValueAtTime(A,Howler.ctx.currentTime),l._panner.orientationZ.setValueAtTime(t,Howler.ctx.currentTime)):l._panner.setOrientation(e,A,t)),n._emit("orientation",l._id);else return l._orientation}return n},Howl.prototype.pannerAttr=function(){var e=this,A=arguments,t,r,n;if(!e._webAudio)return e;if(A.length===0)return e._pannerAttr;if(A.length===1)if(typeof A[0]=="object")t=A[0],typeof r>"u"&&(t.pannerAttr||(t.pannerAttr={coneInnerAngle:t.coneInnerAngle,coneOuterAngle:t.coneOuterAngle,coneOuterGain:t.coneOuterGain,distanceModel:t.distanceModel,maxDistance:t.maxDistance,refDistance:t.refDistance,rolloffFactor:t.rolloffFactor,panningModel:t.panningModel}),e._pannerAttr={coneInnerAngle:typeof t.pannerAttr.coneInnerAngle<"u"?t.pannerAttr.coneInnerAngle:e._coneInnerAngle,coneOuterAngle:typeof t.pannerAttr.coneOuterAngle<"u"?t.pannerAttr.coneOuterAngle:e._coneOuterAngle,coneOuterGain:typeof t.pannerAttr.coneOuterGain<"u"?t.pannerAttr.coneOuterGain:e._coneOuterGain,distanceModel:typeof t.pannerAttr.distanceModel<"u"?t.pannerAttr.distanceModel:e._distanceModel,maxDistance:typeof t.pannerAttr.maxDistance<"u"?t.pannerAttr.maxDistance:e._maxDistance,refDistance:typeof t.pannerAttr.refDistance<"u"?t.pannerAttr.refDistance:e._refDistance,rolloffFactor:typeof t.pannerAttr.rolloffFactor<"u"?t.pannerAttr.rolloffFactor:e._rolloffFactor,panningModel:typeof t.pannerAttr.panningModel<"u"?t.pannerAttr.panningModel:e._panningModel});else return n=e._soundById(parseInt(A[0],10)),n?n._pannerAttr:e._pannerAttr;else A.length===2&&(t=A[0],r=parseInt(A[1],10));for(var i=e._getSoundIds(r),a=0;a<i.length;a++)if(n=e._soundById(i[a]),n){var l=n._pannerAttr;l={coneInnerAngle:typeof t.coneInnerAngle<"u"?t.coneInnerAngle:l.coneInnerAngle,coneOuterAngle:typeof t.coneOuterAngle<"u"?t.coneOuterAngle:l.coneOuterAngle,coneOuterGain:typeof t.coneOuterGain<"u"?t.coneOuterGain:l.coneOuterGain,distanceModel:typeof t.distanceModel<"u"?t.distanceModel:l.distanceModel,maxDistance:typeof t.maxDistance<"u"?t.maxDistance:l.maxDistance,refDistance:typeof t.refDistance<"u"?t.refDistance:l.refDistance,rolloffFactor:typeof t.rolloffFactor<"u"?t.rolloffFactor:l.rolloffFactor,panningModel:typeof t.panningModel<"u"?t.panningModel:l.panningModel};var u=n._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):(n._pos||(n._pos=e._pos||[0,0,-.5]),o(n,"spatial"))}return e},Sound.prototype.init=function(e){return function(){var A=this,t=A._parent;A._orientation=t._orientation,A._stereo=t._stereo,A._pos=t._pos,A._pannerAttr=t._pannerAttr,e.call(this),A._stereo?t.stereo(A._stereo):A._pos&&t.pos(A._pos[0],A._pos[1],A._pos[2],A._id)}}(Sound.prototype.init),Sound.prototype.reset=function(e){return function(){var A=this,t=A._parent;return A._orientation=t._orientation,A._stereo=t._stereo,A._pos=t._pos,A._pannerAttr=t._pannerAttr,A._stereo?t.stereo(A._stereo):A._pos?t.pos(A._pos[0],A._pos[1],A._pos[2],A._id):A._panner&&(A._panner.disconnect(0),A._panner=void 0,t._refreshBuffer(A)),e.call(this)}}(Sound.prototype.reset);var o=function(e,A){A=A||"spatial",A==="spatial"?(e._panner=Howler.ctx.createPanner(),e._panner.coneInnerAngle=e._pannerAttr.coneInnerAngle,e._panner.coneOuterAngle=e._pannerAttr.coneOuterAngle,e._panner.coneOuterGain=e._pannerAttr.coneOuterGain,e._panner.distanceModel=e._pannerAttr.distanceModel,e._panner.maxDistance=e._pannerAttr.maxDistance,e._panner.refDistance=e._pannerAttr.refDistance,e._panner.rolloffFactor=e._pannerAttr.rolloffFactor,e._panner.panningModel=e._pannerAttr.panningModel,typeof e._panner.positionX<"u"?(e._panner.positionX.setValueAtTime(e._pos[0],Howler.ctx.currentTime),e._panner.positionY.setValueAtTime(e._pos[1],Howler.ctx.currentTime),e._panner.positionZ.setValueAtTime(e._pos[2],Howler.ctx.currentTime)):e._panner.setPosition(e._pos[0],e._pos[1],e._pos[2]),typeof e._panner.orientationX<"u"?(e._panner.orientationX.setValueAtTime(e._orientation[0],Howler.ctx.currentTime),e._panner.orientationY.setValueAtTime(e._orientation[1],Howler.ctx.currentTime),e._panner.orientationZ.setValueAtTime(e._orientation[2],Howler.ctx.currentTime)):e._panner.setOrientation(e._orientation[0],e._orientation[1],e._orientation[2])):(e._panner=Howler.ctx.createStereoPanner(),e._panner.pan.setValueAtTime(e._stereo,Howler.ctx.currentTime)),e._panner.connect(e._node),e._paused||e._parent.pause(e._id,!0).play(e._id,!0)}})()});import{FileLoader as SN,Loader as TN}from"three";var MA=class{modifyById(e,A){let t=this;if(t[e]===void 0)throw new Error("not expected");{let n={...t,[e]:A};return Object.setPrototypeOf(n,MA.prototype),n}}add(e,A){return this.runOp({type:1,id:e,data:A})?.data??this}runOp(e){let A=this;if(e.type===1){let t=A[e.id],r;t===void 0?r={type:2,id:e.id}:r={type:1,id:e.id,data:t};let{id:n,data:i}=e,a={...A,[n]:i};return Object.setPrototypeOf(a,MA.prototype),{data:a,actual:e,reverse:r}}else if(e.type===2){let{id:t}=e,r=A[t];if(r===void 0)return null;{let n={...A};return Object.setPrototypeOf(n,MA.prototype),delete n[t],{data:n,actual:e,reverse:{type:1,id:t,data:r}}}}return null}};function Jo(o){if(o.deepFreeze!==void 0){o.deepFreeze(o);return}let e=Object.getOwnPropertyNames(o);for(let A of e){let t=o[A];t&&typeof t=="object"&&Jo(t)}return Object.freeze(o)}function uc(o,e){let A=0;for(;A<o.length&&A<e.length;){if(o[A]<e[A])return-1;if(o[A]>e[A])return 1;A+=1}return A!==e.length?-1:A!==o.length?1:0}var Er=class extends Error{};var mA=class extends Array{constructor(...A){super(...A);Object.setPrototypeOf(this,mA.prototype)}deepFreeze(){let A=0;for(;A<this.length;)Jo(this[A]),A++}fillCaches0(A){this.objCaches.set(A.id,A)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let A of this)this.fillCaches0(A)}}randomId(){this.fillCaches();let A=Array.from(this.objCaches.keys());if(A.length!==0)return A[Math.max(0,Math.floor(Math.random()*A.length)-1)]}data(A){return this.get(A)?.data}get(A){return this.fillCaches(),this.objCaches.get(A)}modifyById(A,t){if(this.get(A)===void 0)throw new Error("not expected");{let n=this,i=n.findIndex(u=>u.id===A);if(i<0)throw new Error("not expected");let a=n[i];return n=[...n],n[i]={...a,data:t},this.modifyArrayBy(n)}}modifyArrayBy(A){Object.setPrototypeOf(A,mA.prototype);let t=A;return dc()||t.fillCaches(),t}runOp(A){switch(A.type){case 4:return this.addOp(A);case 5:return this.deleteOp(A);case 6:return this.moveOp(A)}return null}addOp(A){let{fi:t,id:r,data:n}=A,i=this,a={fi:t,id:r,data:n};return i=[...i,a],i.sort((u,s)=>u.fi-s.fi),A.localIndex=i.indexOf(a),{data:this.modifyArrayBy(i),actual:A,reverse:{type:5,id:r}}}deleteOp(A){let{id:t}=A,r=this,n=r.findIndex(l=>l.id===t);if(n===-1)return null;A.localIndex=n,r=[...r];let i=r.splice(n,1)[0];return{data:this.modifyArrayBy(r),actual:A,reverse:{type:4,...i}}}moveOp(A){let{fi:t,id:r}=A,n=this;n=[...n];let i=n.findIndex(s=>s.id===r);if(i===-1)return null;let a=n[i].fi,l={...n[i],fi:t};return n[i]=l,n.sort((s,c)=>s.fi-c.fi),A.localIndex=n.indexOf(l),{data:this.modifyArrayBy(n),actual:A,reverse:{type:6,fi:a,id:r}}}previous(A){if(A===null)return this.length===0?null:this[this.length-1].id;let t=null;for(let r of this){if(r.id===A)return t;t=r.id}return null}insertBeforeHelper(A,t){return this.insertAfterHelper(this.previous(A),t)}insertAfterHelper(A,t){let r=this;if(A===null){if(r.length===0)return At(0,t,t);{let n=r[0].fi;return At(n-t,n,t)}}else{let n=this.get(A);if(n===void 0)throw new Error("illegal args");let i=r.find(a=>a.fi>n.fi);if(i===void 0){let a=r[r.length-1].fi;return At(a,a+t,t)}else return At(n.fi,i.fi,t)}}};function ui(o){let e={...o};return Object.setPrototypeOf(e,Object.getPrototypeOf(o)),e}function At(o,e,A){if(o===void 0?e===void 0?(o=0,e=10):o=e-10:e===void 0&&(e=o+10),o>e){let n=o;o=e,e=n}let t=[],r=1/(A+1);for(let n=0;n<A;n++){let i=o+(e-o)*(n+.75+Math.random()*.5)*r;t.push(i)}return t}function Dr(o){return o instanceof Uint8Array||o instanceof Uint16Array||o instanceof Uint32Array||o instanceof Int8Array||o instanceof Int16Array||o instanceof Int32Array||o instanceof Float32Array||o instanceof Float64Array}function dc(){return typeof process<"u"}function pc(o,e){for(let A of o)e(A.id,A.data)!==!0&&pc(A.children,e)}function fc(o,e){if(e(o.id,o.data)!==!0)for(let A of o.children)fc(A,e)}var jA=class extends Array{constructor(...A){super(...A);Object.setPrototypeOf(this,jA.prototype)}deepFreeze(){let A=0;for(;A<this.length;)Jo(this[A]),A++}fillCaches0(A,t){this.objCaches.set(A.id,A),this.parentCaches.set(A.id,t);for(let r of A.children)this.fillCaches0(r,A.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let A of this)this.fillCaches0(A,null)}}randomId(){this.fillCaches();let A=Array.from(this.objCaches.keys());if(A.length!==0)return A[Math.max(0,Math.floor(Math.random()*A.length)-1)]}nonExistOrDescendantOf(A,t){if(!this.has(A))return!0;for(;A;){let r=this.parent(A);if(r===t)return!0;A=r}return!1}isDescendantOf(A,t){for(;A;){let r=this.parent(A);if(r===t)return!0;A=r}return!1}data(A){return this.get(A)?.data}has(A){return this.childrenOf(A)!==void 0}get(A){return this.fillCaches(),this.objCaches.get(A)}childrenOf(A){return A===null?this:this.get(A)?.children}traverseFrom(A,t){if(A===null)this.traverse(t);else{let r=this.get(A);r&&fc(r,t)}}traverse(A){pc(this,A)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(A){return this.fillCaches(),this.parentCaches.get(A)}childrenArray(A){return A===null?this:this.get(A).children}modifyById(A,t){if(this.get(A)===void 0)throw new Error("not expected");{let n=this.parent(A),i=this.childrenArray(n),a=i.findIndex(s=>s.id===A);if(a<0)throw new Error("not expected");let l=i[a];return i=[...i],i[a]={...l,data:t},this.modifyArrayBy(n,i)}}modifyArrayBy(A,t){let r=A,n=t;for(;r!==null;){let a=n,l=r;if(r=this.parent(r),r===void 0)throw new Error;n=this.childrenArray(r);let u=n.findIndex(s=>s.id===l);if(u<0)throw new Error;n=[...n],n[u]={...n[u],children:a}}Object.setPrototypeOf(n,jA.prototype);let i=n;return i.fillCaches(),i}runOp(A){switch(A.type){case 7:return this.addOp(A);case 8:return this.deleteOp(A);case 9:return this.moveOp(A)}return null}checkDuplicatedIdRec({id:A,children:t}){if(this.get(A)!==void 0)return!0;for(let r of t)if(this.checkDuplicatedIdRec(r))return!0;return!1}addOp(A){let{parent:t,fi:r,id:n,data:i,children:a}=A;if(t!==null&&this.get(t)===void 0)return null;if(this.checkDuplicatedIdRec(A))return null;{let l=t,u=this.childrenArray(l),s={fi:r,id:n,data:i,children:a};return u=[...u,s],u.sort((d,p)=>d.fi-p.fi),A.localIndex=u.indexOf(s),{data:this.modifyArrayBy(l,u),actual:A,reverse:{type:8,id:n}}}}deleteOp(A){let{id:t}=A;if(this.get(t)===null)return null;{let r=this.parent(t);if(r===void 0)return null;let n=this.childrenArray(r),i=n.findIndex(u=>u.id===t);A.localIndex=i,n=[...n];let a=n.splice(i,1)[0];return{data:this.modifyArrayBy(r,n),actual:A,reverse:{type:7,...a,parent:r}}}}moveOp(A){let{parent:t,fi:r,id:n}=A;if(t!==null&&this.get(t)===void 0)return this.deleteOp({type:8,id:n});if(t!==null){let p=t;for(;p!==null;){if(p===void 0)throw new Error;if(p===n)throw new Er("cyclic tree");p=this.parent(p)}}let i=this.parent(n);if(i===void 0)return null;let a=i,l=this.childrenArray(i),u=l.findIndex(p=>p.id===n);l=[...l];let s=l.splice(u,1)[0],c=this.modifyArrayBy(i,l);i=t,l=c.childrenArray(i);let d=s.fi;return s={...s,fi:r},l=[...l,s],l.sort((p,f)=>p.fi-f.fi),A.localIndex=l.indexOf(s),c=c.modifyArrayBy(i,l),{data:c,actual:A,reverse:{type:9,parent:a,fi:d,id:n}}}previous(A,t){if(t===null){let n=this.childrenArray(A);return n.length===0?null:n[n.length-1].id}let r=null;for(let n of this.childrenArray(A)){if(n.id===t)return r;r=n.id}return null}traverseSortNext(A){let t=this.parent(A);if(t!==void 0){let r=this.childrenArray(t),n=r.findIndex(i=>i.id===A)+1;if(n<r.length)return r[n].id;if(t)return this.traverseSortNext(t)}}sortNext(A){let t=this.childrenArray(A);return t.length>0?t[0].id:this.traverseSortNext(A)}traverseSortPrevious(A){let t=this.childrenArray(A);return t.length>0?this.traverseSortPrevious(t[t.length-1].id):A}sortPrevious(A){let t=this.parent(A);if(t!==void 0){let r=this.childrenArray(t),n=r.findIndex(i=>i.id===A)-1;return n>=0?this.traverseSortPrevious(r[n].id):t}}getAllSorted(A){let t=[];for(let r of A){let n=this.getWithSortKey(r.id);n!==void 0&&t.push({...r,...n})}t.sort((r,n)=>uc(r.sortKey,n.sortKey));for(let r of t)delete r.sortKey;return t}getWithSortKey(A){var t=A;let r=[],n=this.get(t),i=n;if(n!==void 0){for(;t;)r.splice(0,0,n.fi),t=this.parent(t),t!==null&&(n=this.get(t));return{...i,sortKey:r}}}insertBeforeHelper(A,t,r){return this.insertAfterHelper(A,this.previous(A,t),r)}insertAfterHelper(A,t,r){let n=this.childrenArray(A);if(t===null){if(n.length===0)return At(0,r,r);{let i=n[0].fi;return At(i-r,i,r)}}else{let i=this.get(t);if(i===void 0||this.parent(t)!==A)throw new Error("illegal args");let a=n.find(l=>l.fi>i.fi);if(a===void 0){let l=n[n.length-1].fi;return At(l,l+r,r)}else return At(i.fi,a.fi,r)}}};var Gr;(e=>{function o(A,t){if(t.type!==0)return null;if(Array.isArray(A)){let r=t.props,n={},i=[...A],a=!1;if(r)for(let l of Object.keys(r)){let u=parseInt(l);if(isNaN(u))throw new Error("wrong index");n[l]=i[u],i[u]=r[l],a=!0}return a?{data:i,actual:t,reverse:{type:0,props:n}}:null}else{let r=t.props,n={},i={...A},a=!1;if(r)for(let l of Object.keys(r)){n[l]=i[l];let u=r[l];u===void 0?delete i[l]:i[l]=u,a=!0}return a?{data:i,actual:t,reverse:{type:0,props:n}}:null}}e.runOp=o})(Gr||(Gr={}));function Rr(o){return o&&typeof o=="object"&&o instanceof Ae}var Ae=class{unusedFunOverridesTable(e){}runOp(e){let A=[],t=this,r=0,n={};for(;r<e.path.length;){if(A.push(t),t=t===void 0?void 0:t[e.path[r]],t!==void 0&&!Rr(t))return null;r+=1}t=t?ui(t):new Ae;for(let[l,u]of Object.entries(e.props)){let s=t[l];n[l]=s,u===void 0?delete t[l]:t[l]=u}for(;r>0;){if(Object.keys(t).length===0){let l=A[r-1];l&&(t=ui(l),delete t[e.path[r-1]])}else{let l=A[r-1];if(l){let u=ui(l);u[e.path[r-1]]=t,t=u}else{let u=new Ae;u[e.path[r-1]]=t,t=u}}r-=1}let i=Object.setPrototypeOf(t,Ae.prototype),a={...e,props:n};return{data:i,actual:e,reverse:a}}},ca;(t=>{function o(r,n){return _o(r,n)??r}t.apply=o;function e(r,n){return mc(r,n)}t.merge=e;function A(r,n){let i=0,a=n.path,l=r;for(;i<a.length&&l!==void 0;){if(l=Ot.zoomOnce(l,a[i]),l===void 0)return n;if(!Rr(l))return;i+=1}if(l===void 0)return n;if(!!Rr(l))if(n.type===0){let u={...n.props};for(let s of Object.keys(l))delete u[s];return{...n,props:u}}else if(n.type===1||n.type===4||n.type===7){let u=ua([n],l);return u?(console.log(u),u):n}else return n}t.filterOp=A})(ca||(ca={}));function ua(o,e){if(e===void 0)return;let A=!1,t=o.map(r=>{let n=r.id,i=_o(r.data,e[n]);if(A=A||i!==void 0,i===void 0&&(i=r.data),r.children){let a=ua(r.children,e);return a!==void 0?A=!0:a=r.children,{...r,id:n,data:i,children:a}}else return{...r,id:n,data:i}});if(A)return t}function Rh(o,e){if(e===void 0)return;let A=!1,t=o.map(r=>{let n=r.id,i=_o(r.data,e[n]);return A=A||i!==void 0,i===void 0&&(i=r.data),{...r,id:n,data:i}});if(A)return Object.setPrototypeOf(t,Object.getPrototypeOf(o)),t}function _o(o,e){if(!Rr(e))return e;if(o instanceof jA){let A=ua(o,e);return A!==void 0&&Object.setPrototypeOf(A,Object.getPrototypeOf(o)),A}else{if(o instanceof mA)return Rh(o,e);if(Array.isArray(o)){let A=!1,t=o.map((r,n)=>{let i=_o(r,e[n]);return A=A||i!==void 0,i===void 0&&(i=r),i});return A?(Object.setPrototypeOf(t,Object.getPrototypeOf(o)),t):void 0}else if(o&&typeof o=="object"){let A={},t=!1;for(let[r,n]of Object.entries(o)){let i=_o(n,e[r]);t=t||i!==void 0,i===void 0&&(i=n),A[r]=i}return t?(Object.setPrototypeOf(A,Object.getPrototypeOf(o)),A):void 0}}}function mc(o,e){if(o===void 0)return e;if(e===void 0)return o;if(!Rr(e))return e;if(!Rr(o))return ca.apply(o,e);let A=new Set;for(let r of Object.keys(o))A.add(r);for(let r of Object.keys(e))A.add(r);let t=new Ae;for(let r of A){let n=mc(o===void 0?void 0:o[r],e===void 0?void 0:e[r]);t[r]=n}return t}function hc(o,e){let A={cur:[],result:[],len:0};return o=$o(o,e,A)??o,[o,A.result]}function di(o,e){return o===null?null:(o.cur[o.len]=e,o.len+=1,o)}function pi(o){o&&(o.len-=1)}function Vh(o){if(o===null)return null;o.result.push(o.cur.slice(0,o.len))}function gc(o,e,A){let t=!1,r=o.map(n=>{let i=n.id,a=e[i];if(a!==void 0&&typeof a=="string"&&(t=!0,i=a,A!==null))throw new Error("not supported");let l=$o(n.data,e,di(A,i));pi(A),t=t||l!==void 0,l===void 0&&(l=n.data);let u=gc(n.children,e,A);return u!==void 0?t=!0:u=n.children,{...n,id:i,data:l,children:u}});if(t)return r}function Fh(o,e,A){let t=!1,r=o.map(n=>{let i=n.id,a=e[i];if(a!==void 0&&typeof a=="string"&&(t=!0,i=a,A!==null))throw new Error("not supported");let l=$o(n.data,e,di(A,i));return pi(A),t=t||l!==void 0,l===void 0&&(l=n.data),{...n,id:i,data:l}});if(t)return Object.setPrototypeOf(r,Object.getPrototypeOf(o)),r}function $o(o,e,A){if(o instanceof jA){let t=gc(o,e,A);return t!==void 0&&Object.setPrototypeOf(t,Object.getPrototypeOf(o)),t}else{if(o instanceof mA)return Fh(o,e,A);if(Array.isArray(o)){let t=!1,r=o.map((n,i)=>{let a=$o(n,e,di(A,i));return pi(A),t=t||a!==void 0,a===void 0&&(a=n),a});return t?(Object.setPrototypeOf(r,Object.getPrototypeOf(o)),r):void 0}else if(o&&typeof o=="object"&&!Dr(o)){let t={},r=!1;for(let[n,i]of Object.entries(o))if(n!=="name"&&n!=="text"){let a=e[n];if(typeof a=="string"){if(A!==null)throw new Error("not supported");r=!0,n=a}let l=$o(i,e,di(A,n));pi(A),r=r||l!==void 0,l===void 0&&(l=i),t[n]=l}else t[n]=i;return r?(Object.setPrototypeOf(t,Object.getPrototypeOf(o)),t):void 0}else if(typeof o=="string"){let t=e[o];if(t!==void 0){if(o.length!==36)throw new Error("for now you should only call this method when the key is a uuid");Vh(A)}return t}else return}}var yc;(e=>{function o(A,t){let r=Ot.zoom(t,A.path);if(typeof r=="object"){let n={};for(let i of Object.keys(A.props))n[i]=r[i];return{...A,props:n}}else return{...A,props:{}}}e.replaceProps=o})(yc||(yc={}));var Ht;(a=>{function o(l,u){return{...l,path:l.path.slice(u)}}a.drop=o;function e(l,u){return A(l,u)?.data??l}a.applySimple=e;function A(l,u){let s=u.path;for(var c=[];;){let d;if(l instanceof Ae&&u.type===0&&(d=l.runOp({...u,path:s.slice(c.length)}),d===null&&(d=void 0)),c.length===s.length&&(l instanceof jA||l instanceof mA||l instanceof MA?d=l.runOp(u):d=Gr.runOp(l,u)),d!==void 0)if(d!==null){let m=d.data;for(let h=c.length-1;h>=0;h--){let x=s[h],y=c[h];if(y instanceof jA){if(typeof x=="number")throw new Error("illegal arg");m=y.modifyById(x,m)}else if(y instanceof mA){if(typeof x=="number")throw new Error("illegal arg");m=y.modifyById(x,m)}else if(y instanceof MA){if(typeof x=="number")throw new Error("illegal arg");m=y.modifyById(x,m)}else if(y instanceof Ae){let b={...y,[x]:m};m=Object.setPrototypeOf(b,Ae.prototype)}else if(typeof y=="object")if(Array.isArray(y)){if(typeof x=="string"&&(x=parseInt(x),isNaN(x)))throw new Error("Invalid path");let b=m;m=[...y],m[x]=b}else m={...y,[x]:m};else return null}return{data:m,actual:{...d.actual,path:s},reverse:{...d.reverse,path:s}}}else return null;let p=s[c.length],f;if(l instanceof jA){if(typeof p=="number")throw new Error("");f=l.get(p)?.data}else if(l instanceof mA){if(typeof p=="number")throw new Error("");f=l.get(p)?.data}else l!==null&&(f=l[p]);if(f!==void 0)c.push(l),l=f;else return null}}a.apply=A;function t(l,u){for(let s=0;s<l.length&&s<u.length;s++)if(l[s]!==u[s])return!0;return!1}a.pathDisjoint=t;function r(l,u){if(l.length!==u.length)return!1;for(let s=0;s<l.length;s++)if(l[s]!==u[s])return!1;return!0}a.pathEq=r;function n(l,u){return t(l.path,u.path)}a.commutative=n;function i(l,u){return l.type===0&&u.type===0&&r(l.path,u.path)?Object.keys(l.props).every(s=>u.props[s]!==void 0):!1}a.subsumed=i})(Ht||(Ht={}));var xc;(l=>{function o(){return[]}l.empty=o;function e(u,s){let c=[];for(let d of u){let[p,...f]=d.path;p===s&&c.push({...d,path:f})}return c}l.removePrefix=e;function A(u,s){return u.map(c=>({...c,path:[s,...c.path]}))}l.addPrefix=A;function t(u,s){return[...u,...s]}l.concat=t;function r(u,s){return[...u.filter(d=>!s.some(p=>Ht.subsumed(d,p))),...s]}l.compress=r;function n(u,s){return u.every(c=>s.every(d=>Ht.commutative(c,d)))}l.commutative=n;function i(u,s){for(let c of s){let d=a(u,c);d!==null&&(u=d.data)}return u}l.applyAll=i;function a(u,s){var c=u;let d=[],p=[];for(let f of s)try{if(f.type===3){let m=Ot.zoom(c,[...f.path,f.id]),h=Ht.apply(c,{...f,type:2});if(h!==null){c=h.data;let[x,y]=hc(c,{[f.id]:m});c=x;for(let b of y){let w=b[b.length-1];b.splice(b.length-1,1),d.push({type:0,path:b,props:{[w]:m}}),p.push({type:0,path:b,props:{[w]:f.id}})}p.push(h.reverse),d.push(h.actual)}}else{let m=Ht.apply(c,f);m!==null&&(d.push(m.actual),c=m.data,p.push(m.reverse))}}catch(m){if(m instanceof Er)return null;throw m}return{data:c,actual:d,reverse:p.reverse()}}l.apply=a})(xc||(xc={}));var vc=Symbol(),An=Symbol(),fr=class{reportOp(e,A,t=[]){let r=this;if(A===null)return;r._current=A.data;let n=t;for(;!(r instanceof mi);){let i=r._path,a=r._current;if(i!==""&&n.splice(0,0,i),r=r._parent,r===null)return;r.update(i,a)}r.push(n,e,A.actual,A.reverse)}deleteChildren(e){if(this._children){let A=this._children[e];if(A){let t=A[An];t&&t(),delete this._children[e]}}}},pa=class extends fr{constructor(e,A,t){super(),this._parent=e,this._path=A,this._current=t}update(e,A){if(Array.isArray(this._current)){if(typeof e=="string"&&(e=parseInt(e),isNaN(e)))throw new Error("Invalid path");this._current=[...this._current],this._current[e]=A}else this._current={...this._current,[e]:A}}runOp(e){this.reportOp(e,Gr.runOp(this._current,e),e.path)}},fa=class extends fr{constructor(e,A,t){super(),this._parent=e,this._path=A,this._current=t}update(e,A){this._current={...this._current,[e]:A},Object.setPrototypeOf(this._current,MA.prototype)}runOp(e){this.reportOp(e,this._current.runOp(e))}},bc={get(o,e){if(e===An)return()=>{o._parent=null};if(e===vc)return o._current;let{_current:A,_children:t}=o;if(e==="push"&&Array.isArray(A))throw new Error("not supported to expand array");let r=t===void 0?void 0:t[e];if(r!==void 0)return r;let n=A[e],i=hi(o,e,n);return i!==n?(t===void 0&&(t={},o._children=t),t[e]=i,i):n},has(o,e){return e in o._current},ownKeys(o){return Reflect.ownKeys(o._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(o){return Object.getPrototypeOf(o._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(o,e){let A=o._current,t=Reflect.getOwnPropertyDescriptor(A,e);return t&&{writable:!0,configurable:!0,enumerable:t.enumerable,value:A[e]}}},jh={...bc,set(o,e,A){let t={type:0,props:{[e]:me(A)??A}};return o.deleteChildren(e),o.runOp(t),!0},deleteProperty(o,e){let A={type:0,props:{[e]:void 0}};return o.deleteChildren(e),o.runOp(A),!0}},zh={...bc,set(o,e,A){return A===void 0?this.deleteProperty(o,e):(o.deleteChildren(e),o.runOp({type:1,id:e,data:A})),!0},deleteProperty(o,e){return o.runOp({type:2,id:e}),!0}},Vr=class extends fr{constructor(e,A,t){super(),this._children={},this._parent=e,this._path=A,this._current=t,this[An]=()=>{this._parent=null}}unproxy(){return this._current}update(e,A){this._current=this._current.modifyById(e,A)}runOp(e){this.reportOp(e,this._current.runOp(e))}randomId(){return this._current.randomId()}isDescendantOf(e,A){return this._current.isDescendantOf(e,A)}childrenOf(e){return this._current.childrenOf(e)}traverse(e){return this._current.traverse(e)}get(e){return this._current.get(e)}parent(e){return this._current.parent(e)}traverse(e){this._current.traverse((A,t)=>{e(A,this.data(A))})}data(e){let{_current:A,_children:t}=this,r=t===void 0?void 0:t[e];if(r!==void 0)return r;let n=A.get(e)?.data,i=hi(this,e,n);return i!==n?(t===void 0&&(t={},this._children=t),t[e]=i,i):n}add(e,A,t,r,n){this.runOp({type:7,parent:e,fi:A,id:t,data:r,children:n})}move(e,A,t){this.runOp({type:9,parent:e,fi:A,id:t})}insertAfter(e,A,t){let r=this._current.insertAfterHelper(e,A,t.length);for(let n=0;n<t.length;n++){let i=t[n];this.add(e,r[n],i.id,i.data,i.children)}}insertBefore(e,A,t){let r=this._current.insertBeforeHelper(e,A,t.length);for(let n=0;n<t.length;n++){let i=t[n];this.add(e,r[n],i.id,i.data,i.children)}}moveAfter(e,A,t){let r=this._current.insertAfterHelper(e,A,t.length);for(let n=0;n<t.length;n++){let i=t[n];this.move(e,r[n],i)}}moveBefore(e,A,t){let r=this._current.insertBeforeHelper(e,A,t.length);for(let n=0;n<t.length;n++){let i=t[n];this.move(e,r[n],i)}}delete(e){this.deleteChildren(e),this.runOp({type:8,id:e})}sortNext(e){return this._current.sortNext(e)}sortPrevious(e){return this._current.sortPrevious(e)}getAllSorted(e){return this._current.getAllSorted(e)}},fi=class extends fr{constructor(e,A,t){super(),this._parent=e,this._path=A,this._current=t,this[An]=()=>{this._parent=null}}feedOp(e){let{path:A,...t}=e;this.reportOp(t,Ht.apply(this._current,e),A)}},Fr=class extends fr{constructor(e,A,t){super(),this._children={},this._parent=e,this._path=A,this._current=t,this[An]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(e){let A=this.length;for(let t=0;t<A;t++){let r=this._current[t].id,n=this._current[t].fi;e(this.data(this._current[t].id),r,n)}}find(e){let A=this.length;for(let t=0;t<A;t++){let r=this._current[t].id;if(e(this.data(r),r))return this.get(r)}}update(e,A){this._current=this._current.modifyById(e,A)}randomId(){return this._current.randomId()}get(e){return{...this._current.get(e),data:this.data(e)}}data(e){let{_current:A,_children:t}=this,r=t===void 0?void 0:t[e];if(r!==void 0)return r;let n=A.get(e)?.data,i=hi(this,e,n);return i!==n?(t===void 0&&(t={},this._children=t),t[e]=i,i):n}runOp(e){this.reportOp(e,this._current.runOp(e))}add(e,A,t){this.runOp({type:4,fi:e,id:A,data:t})}move(e,A){this.runOp({type:6,fi:e,id:A})}insertAfter(e,A){let t=this._current.insertAfterHelper(e,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.add(t[r],n.id,n.data)}}insertBefore(e,A){let t=this._current.insertBeforeHelper(e,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.add(t[r],n.id,n.data)}}moveAfter(e,A){let t=this._current.insertAfterHelper(e,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.move(t[r],n)}}moveBefore(e,A){let t=this._current.insertBeforeHelper(e,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.move(t[r],n)}}delete(e){this.deleteChildren(e),this.runOp({type:5,id:e})}};function da(o,e,A){if(o.length>0){let t=o[o.length-1];if(t.type===0&&e.type===0&&Ot.equal(t.path,A)){Object.assign(t.props,e.props);return}}o.push({...e,path:A})}var mi=class{constructor(e){this.ts=[],this.actual=[],this.reverse=[],this._current=e}update(e,A){if(e!=="")throw new Error("");this._current=A}push(e,A,t,r){da(this.ts,A,e),da(this.actual,t,e),da(this.reverse,r,e)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function hi(o,e,A){return A instanceof jA?new Vr(o,e,A):A instanceof mA?new Fr(o,e,A):A instanceof Ae?new fi(o,e,A):A instanceof MA?new Proxy(new fa(o,e,A),zh):A!==null&&typeof A=="object"?Dr(A)?A:new Proxy(new pa(o,e,A),jh):A}function ma(o){let e=new mi(o);return[hi(e,"",o),e]}function ha(o,e){let[A,t]=ma(o);return e(A),t.result()}function me(o){return o instanceof Vr||o instanceof Fr||o instanceof fi?o._current:o!==null&&typeof o=="object"?o[vc]:o}var Ot;(r=>{function o(n,i){if(i.length===n.length)for(var a=0;a<n.length;){if(n[a]!==i[a])return!1;a+=1}else return!1;return!0}r.equal=o;function e(n,i,a){let l=t(a,n);if(l!==void 0&&typeof l=="object"&&l!==null){let u={...i};return Object.keys(l).forEach(s=>{delete u[s]}),u}else return i}r.removeOverridden=e;function A(n,i){if((n instanceof jA||n instanceof Vr)&&typeof i=="string")return n.data(i);if((n instanceof mA||n instanceof Fr)&&typeof i=="string")return n.data(i);if(typeof i=="number"&&Array.isArray(n))return n[i];if(typeof i=="string"&&typeof n=="object"&&n!==null)return n[i]}r.zoomOnce=A;function t(n,i,a=0){for(;a<i.length&&n!==void 0;)n=A(n,i[a]),a+=1;return n}r.zoom=t})(Ot||(Ot={}));var gi=class{},en=class extends gi{constructor(A){super();this.id=A}},tn=class extends gi{constructor(A){super();this.data=A}};var ya;try{ya=new TextDecoder}catch{}var oA,qt,C=0;var Cc=[],xa=Cc,va=0,he={},bA,Wt,Ce=0,et=0,Ne,Ct,ae=[],IA,wc={useRecords:!1,mapsAsObjects:!0},rn=class{},wa=new rn;wa.name="MessagePack 0xC1";var jr=!1,tt=class{constructor(e){e&&(e.useRecords===!1&&e.mapsAsObjects===void 0&&(e.mapsAsObjects=!0),e.structures?e.structures.sharedLength=e.structures.length:e.getStructures&&((e.structures=[]).uninitialized=!0,e.structures.sharedLength=0)),Object.assign(this,e)}unpack(e,A){if(oA)return Dc(()=>(xi(),this?this.unpack(e,A):tt.prototype.unpack.call(wc,e,A)));qt=A>-1?A:e.length,C=0,va=0,et=0,Wt=null,xa=Cc,Ne=null,oA=e;try{IA=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(t){throw oA=null,e instanceof Uint8Array?t:new Error("Source must be a Uint8Array or Buffer but was a "+(e&&typeof e=="object"?e.constructor.name:typeof e))}if(this instanceof tt){if(he=this,this.structures)return bA=this.structures,yi();(!bA||bA.length>0)&&(bA=[])}else he=wc,(!bA||bA.length>0)&&(bA=[]);return yi()}unpackMultiple(e,A){let t,r=0;try{jr=!0;let n=e.length,i=this?this.unpack(e,n):wi.unpack(e,n);if(A){for(A(i);C<n;)if(r=C,A(yi())===!1)return}else{for(t=[i];C<n;)r=C,t.push(yi());return t}}catch(n){throw n.lastPosition=r,n.values=t,n}finally{jr=!1,xi()}}_mergeStructures(e,A){e=e||[];for(let t=0,r=e.length;t<r;t++){let n=e[t];n&&(n.isShared=!0,t>=32&&(n.highByte=t-32>>5))}e.sharedLength=e.length;for(let t in A||[])if(t>=0){let r=e[t],n=A[t];n&&(r&&((e.restoreStructures||(e.restoreStructures=[]))[t]=r),e[t]=n)}return this.structures=e}decode(e,A){return this.unpack(e,A)}};function yi(){try{if(!he.trusted&&!jr){let e=bA.sharedLength||0;e<bA.length&&(bA.length=e)}let o=DA();if(C==qt)bA.restoreStructures&&Sc(),bA=null,oA=null,Ct&&(Ct=null);else if(C>qt){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}else if(!jr)throw new Error("Data read, but end of buffer not reached");return o}catch(o){throw bA.restoreStructures&&Sc(),xi(),(o instanceof RangeError||o.message.startsWith("Unexpected end of buffer"))&&(o.incomplete=!0),o}}function Sc(){for(let o in bA.restoreStructures)bA[o]=bA.restoreStructures[o];bA.restoreStructures=null}function DA(){let o=oA[C++];if(o<160)if(o<128){if(o<64)return o;{let e=bA[o&63]||he.getStructures&&Lc()[o&63];return e?(e.read||(e.read=Sa(e,o&63)),e.read()):o}}else if(o<144)if(o-=128,he.mapsAsObjects){let e={};for(let A=0;A<o;A++)e[Bc()]=DA();return e}else{let e=new Map;for(let A=0;A<o;A++)e.set(DA(),DA());return e}else{o-=144;let e=new Array(o);for(let A=0;A<o;A++)e[A]=DA();return e}else if(o<192){let e=o-160;if(et>=C)return Wt.slice(C-Ce,(C+=e)-Ce);if(et==0&&qt<140){let A=e<16?Ta(e):Mc(e);if(A!=null)return A}return ba(e)}else{let e;switch(o){case 192:return null;case 193:return Ne?(e=DA(),e>0?Ne[1].slice(Ne.position1,Ne.position1+=e):Ne[0].slice(Ne.position0,Ne.position0-=e)):wa;case 194:return!1;case 195:return!0;case 196:return ga(oA[C++]);case 197:return e=IA.getUint16(C),C+=2,ga(e);case 198:return e=IA.getUint32(C),C+=4,ga(e);case 199:return mr(oA[C++]);case 200:return e=IA.getUint16(C),C+=2,mr(e);case 201:return e=IA.getUint32(C),C+=4,mr(e);case 202:if(e=IA.getFloat32(C),he.useFloat32>2){let A=bi[(oA[C]&127)<<1|oA[C+1]>>7];return C+=4,(A*e+(e>0?.5:-.5)>>0)/A}return C+=4,e;case 203:return e=IA.getFloat64(C),C+=8,e;case 204:return oA[C++];case 205:return e=IA.getUint16(C),C+=2,e;case 206:return e=IA.getUint32(C),C+=4,e;case 207:return he.int64AsNumber?(e=IA.getUint32(C)*4294967296,e+=IA.getUint32(C+4)):e=IA.getBigUint64(C),C+=8,e;case 208:return IA.getInt8(C++);case 209:return e=IA.getInt16(C),C+=2,e;case 210:return e=IA.getInt32(C),C+=4,e;case 211:return he.int64AsNumber?(e=IA.getInt32(C)*4294967296,e+=IA.getUint32(C+4)):e=IA.getBigInt64(C),C+=8,e;case 212:if(e=oA[C++],e==114)return Oc(oA[C++]&63);{let A=ae[e];if(A)return A.read?(C++,A.read(DA())):A.noBuffer?(C++,A()):A(oA.subarray(C,++C));throw new Error("Unknown extension "+e)}case 213:return e=oA[C],e==114?(C++,Oc(oA[C++]&63,oA[C++])):mr(2);case 214:return mr(4);case 215:return mr(8);case 216:return mr(16);case 217:return e=oA[C++],et>=C?Wt.slice(C-Ce,(C+=e)-Ce):Uh(e);case 218:return e=IA.getUint16(C),C+=2,et>=C?Wt.slice(C-Ce,(C+=e)-Ce):Hh(e);case 219:return e=IA.getUint32(C),C+=4,et>=C?Wt.slice(C-Ce,(C+=e)-Ce):Wh(e);case 220:return e=IA.getUint16(C),C+=2,Nc(e);case 221:return e=IA.getUint32(C),C+=4,Nc(e);case 222:return e=IA.getUint16(C),C+=2,Ic(e);case 223:return e=IA.getUint32(C),C+=4,Ic(e);default:if(o>=224)return o-256;if(o===void 0){let A=new Error("Unexpected end of MessagePack data");throw A.incomplete=!0,A}throw new Error("Unknown MessagePack token "+o)}}}var kh=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Sa(o,e){function A(){if(A.count++>2){let r=o.read=new Function("r","return function(){return {"+o.map(n=>kh.test(n)?n+":r()":"["+JSON.stringify(n)+"]:r()").join(",")+"}}")(DA);return o.highByte===0&&(o.read=Tc(e,o.read)),r()}let t={};for(let r=0,n=o.length;r<n;r++){let i=o[r];t[i]=DA()}return t}return A.count=0,o.highByte===0?Tc(e,A):A}var Tc=(o,e)=>function(){let A=oA[C++];if(A===0)return e();let t=o<32?-(o+(A<<5)):o+(A<<5),r=bA[t]||Lc()[t];if(!r)throw new Error("Record id is not defined for "+t);return r.read||(r.read=Sa(r,o)),r.read()};function Lc(){let o=Dc(()=>(oA=null,he.getStructures()));return bA=he._mergeStructures(o,bA)}var ba=vi,Uh=vi,Hh=vi,Wh=vi;function vi(o){let e;if(o<16&&(e=Ta(o)))return e;if(o>64&&ya)return ya.decode(oA.subarray(C,C+=o));let A=C+o,t=[];for(e="";C<A;){let r=oA[C++];if((r&128)===0)t.push(r);else if((r&224)===192){let n=oA[C++]&63;t.push((r&31)<<6|n)}else if((r&240)===224){let n=oA[C++]&63,i=oA[C++]&63;t.push((r&31)<<12|n<<6|i)}else if((r&248)===240){let n=oA[C++]&63,i=oA[C++]&63,a=oA[C++]&63,l=(r&7)<<18|n<<12|i<<6|a;l>65535&&(l-=65536,t.push(l>>>10&1023|55296),l=56320|l&1023),t.push(l)}else t.push(r);t.length>=4096&&(e+=XA.apply(String,t),t.length=0)}return t.length>0&&(e+=XA.apply(String,t)),e}function Nc(o){let e=new Array(o);for(let A=0;A<o;A++)e[A]=DA();return e}function Ic(o){if(he.mapsAsObjects){let e={};for(let A=0;A<o;A++)e[Bc()]=DA();return e}else{let e=new Map;for(let A=0;A<o;A++)e.set(DA(),DA());return e}}var XA=String.fromCharCode;function Mc(o){let e=C,A=new Array(o);for(let t=0;t<o;t++){let r=oA[C++];if((r&128)>0){C=e;return}A[t]=r}return XA.apply(String,A)}function Ta(o){if(o<4)if(o<2){if(o===0)return"";{let e=oA[C++];if((e&128)>1){C-=1;return}return XA(e)}}else{let e=oA[C++],A=oA[C++];if((e&128)>0||(A&128)>0){C-=2;return}if(o<3)return XA(e,A);let t=oA[C++];if((t&128)>0){C-=3;return}return XA(e,A,t)}else{let e=oA[C++],A=oA[C++],t=oA[C++],r=oA[C++];if((e&128)>0||(A&128)>0||(t&128)>0||(r&128)>0){C-=4;return}if(o<6){if(o===4)return XA(e,A,t,r);{let n=oA[C++];if((n&128)>0){C-=5;return}return XA(e,A,t,r,n)}}else if(o<8){let n=oA[C++],i=oA[C++];if((n&128)>0||(i&128)>0){C-=6;return}if(o<7)return XA(e,A,t,r,n,i);let a=oA[C++];if((a&128)>0){C-=7;return}return XA(e,A,t,r,n,i,a)}else{let n=oA[C++],i=oA[C++],a=oA[C++],l=oA[C++];if((n&128)>0||(i&128)>0||(a&128)>0||(l&128)>0){C-=8;return}if(o<10){if(o===8)return XA(e,A,t,r,n,i,a,l);{let u=oA[C++];if((u&128)>0){C-=9;return}return XA(e,A,t,r,n,i,a,l,u)}}else if(o<12){let u=oA[C++],s=oA[C++];if((u&128)>0||(s&128)>0){C-=10;return}if(o<11)return XA(e,A,t,r,n,i,a,l,u,s);let c=oA[C++];if((c&128)>0){C-=11;return}return XA(e,A,t,r,n,i,a,l,u,s,c)}else{let u=oA[C++],s=oA[C++],c=oA[C++],d=oA[C++];if((u&128)>0||(s&128)>0||(c&128)>0||(d&128)>0){C-=12;return}if(o<14){if(o===12)return XA(e,A,t,r,n,i,a,l,u,s,c,d);{let p=oA[C++];if((p&128)>0){C-=13;return}return XA(e,A,t,r,n,i,a,l,u,s,c,d,p)}}else{let p=oA[C++],f=oA[C++];if((p&128)>0||(f&128)>0){C-=14;return}if(o<15)return XA(e,A,t,r,n,i,a,l,u,s,c,d,p,f);let m=oA[C++];if((m&128)>0){C-=15;return}return XA(e,A,t,r,n,i,a,l,u,s,c,d,p,f,m)}}}}}function ga(o){return he.copyBuffers?Uint8Array.prototype.slice.call(oA,C,C+=o):oA.subarray(C,C+=o)}function mr(o){let e=oA[C++];if(ae[e])return ae[e](oA.subarray(C,C+=o));throw new Error("Unknown extension type "+e)}var Pc=new Array(4096);function Bc(){let o=oA[C++];if(o>=160&&o<192){if(o=o-160,et>=C)return Wt.slice(C-Ce,(C+=o)-Ce);if(!(et==0&&qt<180))return ba(o)}else return C--,DA();let e=(o<<5^(o>1?IA.getUint16(C):o>0?oA[C]:0))&4095,A=Pc[e],t=C,r=C+o-3,n,i=0;if(A&&A.bytes==o){for(;t<r;){if(n=IA.getUint32(t),n!=A[i++]){t=1879048192;break}t+=4}for(r+=3;t<r;)if(n=oA[t++],n!=A[i++]){t=1879048192;break}if(t===r)return C=t,A.string;r-=3,t=C}for(A=[],Pc[e]=A,A.bytes=o;t<r;)n=IA.getUint32(t),A.push(n),t+=4;for(r+=3;t<r;)n=oA[t++],A.push(n);let a=o<16?Ta(o):Mc(o);return a!=null?A.string=a:A.string=ba(o)}var Oc=(o,e)=>{var A=DA();let t=o;e!==void 0&&(o=o<32?-((e<<5)+o):(e<<5)+o,A.highByte=e);let r=bA[o];return r&&r.isShared&&((bA.restoreStructures||(bA.restoreStructures=[]))[o]=r),bA[o]=A,A.read=Sa(A,t),A.read()},Ec=typeof self=="object"?self:global;ae[0]=()=>{};ae[0].noBuffer=!0;ae[101]=()=>{let o=DA();return(Ec[o[0]]||Error)(o[1])};ae[105]=o=>{let e=IA.getUint32(C-4);Ct||(Ct=new Map);let A=oA[C],t;A>=144&&A<160||A==220||A==221?t=[]:t={};let r={target:t};Ct.set(e,r);let n=DA();return r.used?Object.assign(t,n):(r.target=n,n)};ae[112]=o=>{let e=IA.getUint32(C-4),A=Ct.get(e);return A.used=!0,A.target};ae[115]=()=>new Set(DA());var Na=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(o=>o+"Array");ae[116]=o=>{let e=o[0],A=Na[e];if(!A)throw new Error("Could not find typed array for code "+e);return new Ec[A](Uint8Array.prototype.slice.call(o,1).buffer)};ae[120]=()=>{let o=DA();return new RegExp(o[0],o[1])};ae[98]=o=>{let e=(o[0]<<24)+(o[1]<<16)+(o[2]<<8)+o[3],A=C;C+=e-4,Ne=[DA(),DA()],Ne.position0=0,Ne.position1=0;let t=C;C=A;try{return DA()}finally{C=t}};ae[255]=o=>o.length==4?new Date((o[0]*16777216+(o[1]<<16)+(o[2]<<8)+o[3])*1e3):o.length==8?new Date(((o[0]<<22)+(o[1]<<14)+(o[2]<<6)+(o[3]>>2))/1e6+((o[3]&3)*4294967296+o[4]*16777216+(o[5]<<16)+(o[6]<<8)+o[7])*1e3):o.length==12?new Date(((o[0]<<24)+(o[1]<<16)+(o[2]<<8)+o[3])/1e6+((o[4]&128?-281474976710656:0)+o[6]*1099511627776+o[7]*4294967296+o[8]*16777216+(o[9]<<16)+(o[10]<<8)+o[11])*1e3):new Date("invalid");function Dc(o){let e=qt,A=C,t=va,r=Ce,n=et,i=Wt,a=xa,l=Ct,u=Ne,s=new Uint8Array(oA.slice(0,qt)),c=bA,d=bA.slice(0,bA.length),p=he,f=jr,m=o();return qt=e,C=A,va=t,Ce=r,et=n,Wt=i,xa=a,Ct=l,Ne=u,oA=s,jr=f,bA=c,bA.splice(0,bA.length,...d),he=p,IA=new DataView(oA.buffer,oA.byteOffset,oA.byteLength),m}function xi(){oA=null,Ct=null,bA=null}function Gc(o){o.unpack?ae[o.type]=o.unpack:ae[o.type]=o}var bi=new Array(147);for(let o=0;o<256;o++)bi[o]=+("1e"+Math.floor(45.15-o*.30103));var wi=new tt({useRecords:!1}),qh=wi.unpack,Qh=wi.unpackMultiple,Yh=wi.unpack,Si={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},Xh=new Float32Array(1),CI=new Uint8Array(Xh.buffer,0,4);var Ti;try{Ti=new TextEncoder}catch{}var Ni,Pa,Ii=typeof Buffer<"u",Ia=Ii?Buffer.allocUnsafeSlow:Uint8Array,jc=Ii?Buffer:Uint8Array,Rc=Ii?4294967296:2144337920,V,VA,M=0,rt,ot=null,Kh=/[\u0080-\uFFFF]/,on=Symbol("record-id"),hr=class extends tt{constructor(e){super(e),this.offset=0;let A,t,r,n,i,a,l=0,u=jc.prototype.utf8Write?function(g,P,N){return V.utf8Write(g,P,N)}:Ti&&Ti.encodeInto?function(g,P){return Ti.encodeInto(g,V.subarray(P)).written}:!1,s=this;e||(e={});let c=e&&e.sequential,d=e.structures||e.saveStructures,p=e.maxSharedStructures;if(p==null&&(p=d?32:0),p>8160)throw new Error("Maximum maxSharedStructure is 8160");let f=e.maxOwnStructures;f==null&&(f=d?32:64),c&&!e.saveStructures&&(this.structures=[]);let m=p>32||f+p>64,h=p+64,x=p+f+64;if(x>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let y=[],b=0,w=0;this.pack=this.encode=function(g,P){if(V||(V=new Ia(8192),VA=new DataView(V.buffer,0,8192),M=0),rt=V.length-10,rt-M<2048?(V=new Ia(V.length),VA=new DataView(V.buffer,0,V.length),rt=V.length-10,M=0):M=M+7&2147483640,t=M,a=s.structuredClone?new Map:null,s.bundleStrings?(ot=["",""],V[M++]=214,V[M++]=98,ot.position=M-t,M+=4):ot=null,r=s.structures,r){r.uninitialized&&(r=s._mergeStructures(s.getStructures()));let N=r.sharedLength||0;if(N>p)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+r.sharedLength);if(!r.transitions){r.transitions=Object.create(null);for(let O=0;O<N;O++){let T=r[O];if(!T)continue;let L,B=r.transitions;for(let k=0,X=T.length;k<X;k++){let eA=T[k];L=B[eA],L||(L=B[eA]=Object.create(null)),B=L}B[on]=O+64}l=N}c||(r.nextId=N+64)}n&&(n=!1),i=r||[];try{if(v(g),ot){VA.setUint32(ot.position+t,M-ot.position-t);let N=ot;ot=null,v(N[0]),v(N[1])}if(s.offset=M,a&&a.idsToInsert){M+=a.idsToInsert.length*6,M>rt&&S(M),s.offset=M;let N=Jh(V.subarray(t,M),a.idsToInsert);return a=null,N}return P&kc?(V.start=t,V.end=M,V):V.subarray(t,M)}finally{if(r){if(w<10&&w++,b>1e4)r.transitions=null,w=0,b=0,y.length>0&&(y=[]);else if(y.length>0&&!c){for(let N=0,O=y.length;N<O;N++)y[N][on]=0;y=[]}if(n&&s.saveStructures){let N=r.sharedLength||p;r.length>N&&(r=r.slice(0,N));let O=V.subarray(t,M);return s.saveStructures(r,l)===!1?(s._mergeStructures(s.getStructures()),s.pack(g)):(l=N,O)}}P&og&&(M=t)}};let v=g=>{M>rt&&(V=S(M));var P=typeof g,N;if(P==="string"){let O=g.length;if(ot&&O>=8&&O<4096){let B=Kh.test(g);ot[B?0:1]+=g,V[M++]=193,v(B?-O:O);return}let T;O<32?T=1:O<256?T=2:O<65536?T=3:T=5;let L=O*3;if(M+L>rt&&(V=S(M+L)),O<64||!u){let B,k,X,eA=M+T;for(B=0;B<O;B++)k=g.charCodeAt(B),k<128?V[eA++]=k:k<2048?(V[eA++]=k>>6|192,V[eA++]=k&63|128):(k&64512)===55296&&((X=g.charCodeAt(B+1))&64512)===56320?(k=65536+((k&1023)<<10)+(X&1023),B++,V[eA++]=k>>18|240,V[eA++]=k>>12&63|128,V[eA++]=k>>6&63|128,V[eA++]=k&63|128):(V[eA++]=k>>12|224,V[eA++]=k>>6&63|128,V[eA++]=k&63|128);N=eA-M-T}else N=u(g,M+T,L);N<32?V[M++]=160|N:N<256?(T<2&&V.copyWithin(M+2,M+1,M+1+N),V[M++]=217,V[M++]=N):N<65536?(T<3&&V.copyWithin(M+3,M+2,M+2+N),V[M++]=218,V[M++]=N>>8,V[M++]=N&255):(T<5&&V.copyWithin(M+5,M+3,M+3+N),V[M++]=219,VA.setUint32(M,N),M+=4),M+=N}else if(P==="number")if(g>>>0===g)g<64?V[M++]=g:g<256?(V[M++]=204,V[M++]=g):g<65536?(V[M++]=205,V[M++]=g>>8,V[M++]=g&255):(V[M++]=206,VA.setUint32(M,g),M+=4);else if(g>>0===g)g>=-32?V[M++]=256+g:g>=-128?(V[M++]=208,V[M++]=g+256):g>=-32768?(V[M++]=209,VA.setInt16(M,g),M+=2):(V[M++]=210,VA.setInt32(M,g),M+=4);else{let O;if((O=this.useFloat32)>0&&g<4294967296&&g>=-2147483648){V[M++]=202,VA.setFloat32(M,g);let T;if(O<4||(T=g*bi[(V[M]&127)<<1|V[M+1]>>7])>>0===T){M+=4;return}else M--}V[M++]=203,VA.setFloat64(M,g),M+=8}else if(P==="object")if(!g)V[M++]=192;else{if(a){let T=a.get(g);if(T){if(!T.id){let L=a.idsToInsert||(a.idsToInsert=[]);T.id=L.push(T)}V[M++]=214,V[M++]=112,VA.setUint32(M,T.id),M+=4;return}else a.set(g,{offset:M-t})}let O=g.constructor;if(O===Object)I(g,!0);else if(O===Array){N=g.length,N<16?V[M++]=144|N:N<65536?(V[M++]=220,V[M++]=N>>8,V[M++]=N&255):(V[M++]=221,VA.setUint32(M,N),M+=4);for(let T=0;T<N;T++)v(g[T])}else if(O===Map){N=g.size,N<16?V[M++]=128|N:N<65536?(V[M++]=222,V[M++]=N>>8,V[M++]=N&255):(V[M++]=223,VA.setUint32(M,N),M+=4);for(let[T,L]of g)v(T),v(L)}else{for(let T=0,L=Ni.length;T<L;T++){let B=Pa[T];if(g instanceof B){let k=Ni[T];if(k.write){k.type&&(V[M++]=212,V[M++]=k.type,V[M++]=0),v(k.write.call(this,g));return}let X=V,eA=VA,nA=M;V=null;let U;try{U=k.pack.call(this,g,q=>(V=X,X=null,M+=q,M>rt&&S(M),{target:V,targetView:VA,position:M-q}),v)}finally{X&&(V=X,VA=eA,M=nA,rt=V.length-10)}U&&(U.length+M>rt&&S(U.length+M),M=Zh(U,V,M,k.type));return}}I(g,!g.hasOwnProperty)}}else if(P==="boolean")V[M++]=g?195:194;else if(P==="bigint"){if(g<BigInt(1)<<BigInt(63)&&g>=-(BigInt(1)<<BigInt(63)))V[M++]=211,VA.setBigInt64(M,g);else if(g<BigInt(1)<<BigInt(64)&&g>0)V[M++]=207,VA.setBigUint64(M,g);else if(this.largeBigIntToFloat)V[M++]=203,VA.setFloat64(M,Number(g));else throw new RangeError(g+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");M+=8}else if(P==="undefined")this.encodeUndefinedAsNil?V[M++]=192:(V[M++]=212,V[M++]=0,V[M++]=0);else if(P==="function")v(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+P)},I=this.useRecords===!1?this.variableMapSize?g=>{let P=Object.keys(g),N=P.length;N<16?V[M++]=128|N:N<65536?(V[M++]=222,V[M++]=N>>8,V[M++]=N&255):(V[M++]=223,VA.setUint32(M,N),M+=4);let O;for(let T=0;T<N;T++)v(O=P[T]),v(g[O])}:(g,P)=>{V[M++]=222;let N=M-t;M+=2;let O=0;for(let T in g)(P||g.hasOwnProperty(T))&&(v(T),v(g[T]),O++);V[N+++t]=O>>8,V[N+t]=O&255}:g=>{let P=Object.keys(g),N,O=i.transitions||(i.transitions=Object.create(null)),T=0;for(let B=0,k=P.length;B<k;B++){let X=P[B];N=O[X],N||(N=O[X]=Object.create(null),T++),O=N}let L=O[on];if(L)L>=96&&m?(V[M++]=((L-=96)&31)+96,V[M++]=L>>5):V[M++]=L;else{L=i.nextId,L||(L=64),L<h&&this.shouldShareStructure&&!this.shouldShareStructure(P)?(L=i.nextOwnId,L<x||(L=h),i.nextOwnId=L+1):(L>=x&&(L=h),i.nextId=L+1);let B=P.highByte=L>=96&&m?L-96>>5:-1;O[on]=L,i[L-64]=P,L<h?(P.isShared=!0,i.sharedLength=L-63,n=!0,B>=0?(V[M++]=(L&31)+96,V[M++]=B):V[M++]=L):(B>=0?(V[M++]=213,V[M++]=114,V[M++]=(L&31)+96,V[M++]=B):(V[M++]=212,V[M++]=114,V[M++]=L),T&&(b+=w*T),y.length>=f&&(y.shift()[on]=0),y.push(O),v(P))}for(let B=0,k=P.length;B<k;B++)v(g[P[B]])},S=g=>{let P;if(g>16777216){if(g-t>Rc)throw new Error("Packed buffer would be larger than maximum buffer size");P=Math.min(Rc,Math.round(Math.max((g-t)*(g>67108864?1.25:2),4194304)/4096)*4096)}else P=(Math.max(g-t<<2,V.length-1)>>12)+1<<12;let N=new Ia(P);return VA=new DataView(N.buffer,0,P),V.copy?V.copy(N,0,t,g):N.set(V.slice(t,g)),M-=t,t=0,rt=N.length-10,V=N}}useBuffer(e){V=e,VA=new DataView(V.buffer,V.byteOffset,V.byteLength),M=0}};Pa=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,rn];Ni=[{pack(o,e,A){let t=o.getTime()/1e3;if((this.useTimestamp32||o.getMilliseconds()===0)&&t>=0&&t<4294967296){let{target:r,targetView:n,position:i}=e(6);r[i++]=214,r[i++]=255,n.setUint32(i,t)}else if(t>0&&t<17179869184){let{target:r,targetView:n,position:i}=e(10);r[i++]=215,r[i++]=255,n.setUint32(i,o.getMilliseconds()*4e6+(t/1e3/4294967296>>0)),n.setUint32(i+4,t)}else if(isNaN(t)){if(this.onInvalidDate)return e(0),A(this.onInvalidDate());let{target:r,targetView:n,position:i}=e(3);r[i++]=212,r[i++]=255,r[i++]=255}else{let{target:r,targetView:n,position:i}=e(15);r[i++]=199,r[i++]=12,r[i++]=255,n.setUint32(i,o.getMilliseconds()*1e6),n.setBigInt64(i+4,BigInt(Math.floor(t)))}}},{pack(o,e,A){let t=Array.from(o),{target:r,position:n}=e(this.structuredClone?3:0);this.structuredClone&&(r[n++]=212,r[n++]=115,r[n++]=0),A(t)}},{pack(o,e,A){let{target:t,position:r}=e(this.structuredClone?3:0);this.structuredClone&&(t[r++]=212,t[r++]=101,t[r++]=0),A([o.name,o.message])}},{pack(o,e,A){let{target:t,position:r}=e(this.structuredClone?3:0);this.structuredClone&&(t[r++]=212,t[r++]=120,t[r++]=0),A([o.source,o.flags])}},{pack(o,e){this.structuredClone?Vc(o,16,e):Fc(Ii?Buffer.from(o):new Uint8Array(o),e)}},{pack(o,e){let A=o.constructor;A!==jc&&this.structuredClone?Vc(o,Na.indexOf(A.name),e):Fc(o,e)}},{pack(o,e){let{target:A,position:t}=e(1);A[t]=193}}];function Vc(o,e,A,t){let r=o.byteLength;if(r+1<256){var{target:n,position:i}=A(4+r);n[i++]=199,n[i++]=r+1}else if(r+1<65536){var{target:n,position:i}=A(5+r);n[i++]=200,n[i++]=r+1>>8,n[i++]=r+1&255}else{var{target:n,position:i,targetView:a}=A(7+r);n[i++]=201,a.setUint32(i,r+1),i+=4}n[i++]=116,n[i++]=e,n.set(new Uint8Array(o.buffer,o.byteOffset,o.byteLength),i)}function Fc(o,e){let A=o.byteLength;var t,r;if(A<256){var{target:t,position:r}=e(A+2);t[r++]=196,t[r++]=A}else if(A<65536){var{target:t,position:r}=e(A+3);t[r++]=197,t[r++]=A>>8,t[r++]=A&255}else{var{target:t,position:r,targetView:n}=e(A+5);t[r++]=198,n.setUint32(r,A),r+=4}t.set(o,r)}function Zh(o,e,A,t){let r=o.length;switch(r){case 1:e[A++]=212;break;case 2:e[A++]=213;break;case 4:e[A++]=214;break;case 8:e[A++]=215;break;case 16:e[A++]=216;break;default:r<256?(e[A++]=199,e[A++]=r):r<65536?(e[A++]=200,e[A++]=r>>8,e[A++]=r&255):(e[A++]=201,e[A++]=r>>24,e[A++]=r>>16&255,e[A++]=r>>8&255,e[A++]=r&255)}return e[A++]=t,e.set(o,A),A+=r,A}function Jh(o,e){let A,t=e.length*6,r=o.length-t;for(e.sort((n,i)=>n.offset>i.offset?1:-1);A=e.pop();){let n=A.offset,i=A.id;o.copyWithin(n+t,n,r),t-=6;let a=n+t;o[a++]=214,o[a++]=105,o[a++]=i>>24,o[a++]=i>>16&255,o[a++]=i>>8&255,o[a++]=i&255,r=n}return o}function Qt(o){if(o.Class){if(!o.pack&&!o.write)throw new Error("Extension has no pack or write function");if(o.pack&&!o.type)throw new Error("Extension has no type (numeric code to identify the extension)");Pa.unshift(o.Class),Ni.unshift(o)}Gc(o)}var zc=new hr({useRecords:!1}),_h=zc.pack,$h=zc.pack;var{NEVER:Ag,ALWAYS:eg,DECIMAL_ROUND:tg,DECIMAL_FIT:rg}=Si,kc=512,og=1024;var Uc=new hr({structuredClone:!0});Qt({Class:MA.prototype.constructor,type:1,write(o){return{...o}},read(o){return Object.setPrototypeOf(o,MA.prototype),o}});Qt({Class:mA.prototype.constructor,type:2,write(o){return[...o]},read(o){return Object.setPrototypeOf(o,mA.prototype),o}});Qt({Class:jA.prototype.constructor,type:3,write(o){return[...o]},read(o){return Object.setPrototypeOf(o,jA.prototype),o}});Qt({Class:en.prototype.constructor,type:4,write(o){return o.id},read(o){return new en(o)}});Qt({Class:tn.prototype.constructor,type:5,write(o){return o.data},read(o){return new tn(o)}});Qt({Class:Ae.prototype.constructor,type:6,write(o){return{...o}},read(o){return Object.setPrototypeOf(o,Ae.prototype),o}});function ng(o){var e=0;if(o.length===0)return e;for(let A=0;A<o.length;A++){let t=o[A];e=(e<<5)-e+t,e=e&e}return e}function Oa(o){if(Dr(o))return o;if(Array.isArray(o))return o.map(Oa);if(typeof o=="object"&&o!==null){let e={};for(let A of Object.keys(o).sort())e[A]=Oa(o[A]);return Object.setPrototypeOf(e,Object.getPrototypeOf(o)),e}else return o}var Pi;(t=>{function o(r){return Uc.pack(r)}t.serialize=o;function e(r){return Uc.unpack(r)}t.deserialize=e;function A(r){return ng(o(Oa(r))).toString()}t.checksum=A})(Pi||(Pi={}));var Hc;(A=>{function o(t,r){return t[0]===r[0]&&t[1]===r[1]}A.isEqual=o;function e(t,r,n){return[t[0]+(r[0]-t[0])*n,t[1]+(r[1]-t[1])*n]}A.lerp=e})(Hc||(Hc={}));var zr;(r=>{function o(n,i){return n[0]===i[0]&&n[1]===i[1]&&n[2]===i[2]}r.isEqual=o;function e(n,i){return[n[0]+i[0],n[1]+i[1],n[2]+i[2]]}r.add=e;function A(n,i){return[n[0]-i[0],n[1]-i[1],n[2]-i[2]]}r.sub=A;function t(n,i,a){return[n[0]+(i[0]-n[0])*a,n[1]+(i[1]-n[1])*a,n[2]+(i[2]-n[2])*a]}r.lerp=t})(zr||(zr={}));var Wc;(A=>{function o(t,r){return t[0]===r[0]&&t[1]===r[1]&&t[2]===r[2]&&t[3]===r[3]}A.isEqual=o;function e(t,r,n){return[t[0]+(r[0]-t[0])*n,t[1]+(r[1]-t[1])*n,t[2]+(r[2]-t[2])*n,t[3]+(r[3]-t[3])*n]}A.lerp=e})(Wc||(Wc={}));var Yt;(r=>{r.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function e(n,i){for(let a=0;a<16;a++)if(n[a]!==i[a])return!1;return!0}r.isEqual=e;function A(n){return n??r.identity}r.simplify=A;function t(n,i){let a=i.slice(0);for(var l=0,u=i.length;l<u;l+=3){let s=n[3]*i[l]+n[7]*i[l+1]+n[11]*i[l+2]+n[15];a[l]=(n[0]*i[l]+n[4]*i[l+1]+n[8]*i[l+2]+n[12])/s,a[l+1]=(n[1]*i[l]+n[5]*i[l+1]+n[9]*i[l+2]+n[13])/s,a[l+2]=(n[2]*i[l]+n[6]*i[l+1]+n[10]*i[l+2]+n[14])/s}return a}r.applyMatrix4=t})(Yt||(Yt={}));var ge;(u=>{function o(s){return typeof s=="object"&&typeof s.r=="number"&&typeof s.g=="number"&&typeof s.b=="number"}u.isRGB=o,u.white={r:1,g:1,b:1},u.red={r:1,g:0,b:0},u.black={r:0,g:0,b:0};function r(s){return{r:Math.round(s.r*255),g:Math.round(s.g*255),b:Math.round(s.b*255),a:1}}u.toRgb255a1=r;function n(s){return{r:s.r,g:s.g,b:s.b}}u.clone=n;function i(s){return s=Math.floor(s),{r:(s>>16&255)/255,g:(s>>8&255)/255,b:(s&255)/255}}u.fromHex=i;function a(s,c){return s.r===c.r&&s.g===c.g&&s.b===c.b}u.equals=a;function l(s,c,d){return{r:s.r+(c.r-s.r)*d,g:s.g+(c.g-s.g)*d,b:s.b+(c.b-s.b)*d}}u.lerp=l})(ge||(ge={}));var ke;(a=>{a.white={...ge.white,a:1},a.transparent={...ge.white,a:0};function A(l){return{r:l[0],g:l[1],b:l[2],a:l[3]}}a.from0to1=A;function t(l,u){return{...ge.fromHex(l),a:u}}a.fromHexAndA=t;function r(l){return{r:Math.round(l.r*255),g:Math.round(l.g*255),b:Math.round(l.b*255),a:l.a}}a.toRgb255a1=r;function n(l,u){return ge.equals(l,u)&&l.a===u.a}a.equals=n;function i(l,u,s){return{r:l.r+(u.r-l.r)*s,g:l.g+(u.g-l.g)*s,b:l.b+(u.b-l.b)*s,a:l.a+(u.a-l.a)*s}}a.lerp=i})(ke||(ke={}));var Oi;(e=>e.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Oi||(Oi={}));var qc;(e=>e.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(qc||(qc={}));var Qc;(e=>e.defaultData={control1:[.5,.05],control2:[.1,.3]})(Qc||(Qc={}));var kr;(A=>{A.all=["PerspectiveCamera","OrthographicCamera"];function e(t){return A.all.includes(t)}A.is=e})(kr||(kr={}));var gr;(r=>{r.DefaultUp=[0,1,0],r.DefaultTargetOffset=1e3,r.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:r.DefaultUp,isUpVectorFlipped:!1,targetOffset:r.DefaultTargetOffset};function t(n){return n.type==="PerspectiveCamera"?n.perspective.zoom:n.orthographic.zoom}r.getZoom=t})(gr||(gr={}));var yr;(A=>{function o(t,r=.1){return{disabled:!1,type:"linear",hideBase:!1,count:3,radial:{radius:Math.max(t[0],t[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},linear:{scale:[1,1,1],rotation:[0,0,0],position:[t[0]+t[0]*r,0,0]},grid:{count:[2,2,2],size:t.map(n=>n*(1+r)),useCenter:!0},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}}}A.defaultData=o;function e(t,r){let n={...t};if(ig.forEach(i=>{Object.assign(n,{[i]:r[i]??t[i]})}),n.radial={...t.radial},r.radial){let i=t.radial,a=r.radial;sg.forEach(l=>{Object.assign(n.radial,{[l]:a[l]??i[l]})})}if(n.linear={...t.linear},r.linear){let i=t.linear,a=r.linear;ag.forEach(l=>{Object.assign(n.linear,{[l]:a[l]??i[l]})})}if(n.grid={...t.grid},r.grid){let i=t.grid,a=r.grid;lg.forEach(l=>{Object.assign(n.grid,{[l]:a[l]??i[l]})})}if(n.toObject={...t.toObject},r.toObject){let i=t.toObject,a=r.toObject;cg.forEach(l=>{Object.assign(n.toObject,{[l]:a[l]??i[l]})})}if(n.randomnessObject={...t.randomnessObject},r.randomnessObject){let i=t.randomnessObject,a=r.randomnessObject;ug.forEach(l=>{Object.assign(n.randomnessObject,{[l]:a[l]??i[l]})})}return n}A.merge=e})(yr||(yr={}));var Yc;(e=>e.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}})(Yc||(Yc={}));var ig=["count"],sg=["radius","start","end","position","scale","rotation"],ag=["position","scale","rotation"],lg=["count","size"],cg=["count","position","scale","rotation"],ug=["strength","scale","rotation","position","movement","seed","freqScale"];var Ci;(A=>{A.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function e(t){return A.all.includes(t)}A.is=e})(Ci||(Ci={}));var Li;(A=>{function o(t){return e(t)}A.defaultData=o;function e(t){if(t==="PointLight")return{type:t,color:ke.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(t==="SpotLight")return{type:t,color:ke.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(t==="DirectionalLight")return{type:t,color:ke.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(Li||(Li={}));var Ca;(A=>{A.defaultData={castShadow:!0,receiveShadow:!0};function e(t,r){return t.castShadow===r.castShadow&&t.receiveShadow===r.receiveShadow}A.equals=e})(Ca||(Ca={}));var La;(A=>{A.defaultData={flatShading:!1,wireframe:!1,side:0};function e(t,r){return t.flatShading===r.flatShading&&t.side===r.side&&t.wireframe===r.wireframe}A.equals=e})(La||(La={}));var Mi;(e=>e.defaultData={...La.defaultData,...Ca.defaultData,cloner:null,booleanExclude:null})(Mi||(Mi={}));var Xc="data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQADQJhtZGF0AAGl4AAAAB4GBRpHVkrcXExDP5TvxRE80UOoAf/MzP8CAAehIIAAABh4JbggAz8Y7EI2/GkPZNGfzo5EehQLVTuuP0OBFOxILTFxsVf9a2/45D1ui52qjvtpmvj5DWLGXspDlksmn3Y4x5JuVpYnIJtUmm3F5gP9TkUUEAPXtgZeTPyfI+QyzV5WdAUpW/QRj3WGhARBKOF7cfLxTjMa/fQHR8DJxcJUTlBZM5OU/iRvy3I5Q07/vm8iE2S3g8vQRUYkz7XvCOzTpPwulWS9N29NmnjyGD80r1j6BT/S6k0ac4ZuBoYDr9CiV6GjcklJwft7rgcinlto+oi8yqYNlLB1KCP9PokAG6Jw8eMlwq7BQH0tToxe7GTF6SQyNxtTbH5mO9AkkhYxPpvrWPT0gVRRqkQfgpbVdAVpvy0P13tpfo4MCgWY64sjO5fF5vzeVUu1rUrZRvTLmzvxlF+R+rama7VOLmpMP0RSU/ackmkv7PJely5QuXzyANUBhJiVTC64qvWVEi2FqlPZChFCNc/4uNS2oG/4MLxrBV56VXBNYGJkQg2CqdnPvRkuCQab2abuGHMw1eLMS5zoRmO63cnVoef6qL5Aio5zmY60W+SCeu8BC+Lu4Ks70+mB/xXLuOiFSsxqYAQ8d88VYJmNfDw9p4pw24+Cp0j0mT4rkxdGSsw3nTNTCqRZOAp7BaHHSPsJIyC42ZyHxenF31bZ7zcnkWSn607K5t95rkul97kUmoGt+tOo8B1gXWp4afz2tvug2CsOhvEZMzznsQBreRnFB6v5+MQPqquqMnT6ep4J8VsKNjyvPFoX9CJuw10bv5RbQK5Fhc5uaadRKVyF4mmBOWHhbQiu+ritEzNQGFN7yDoWfoV9p0jvlswHWXzQN7V3jf0nl5Apm/htbs/CkQTe/EK2sl5RjC9zABqw4fBLDqv1mVN0HwcXVDzP4vexawplrnN/gZhvSkJ8zuSe+UbPG6sqdUn1Qqpe3811qbptDnL9TCq0mO5+h7hgOp3MqnbfVSqLJY9o5b18dFSDM2FQRNjgzs47w9KRyviVZKKeqtlbsOGUoAS2FmCUwriaC6FKUrwH+iKRL2rb34MXDBH95VCv/ncYt+B15Qe450tsg2v0bSG7kPJ6SUxxkjVMmA6/SgQo5H2ol1St3NI/1bO/HA4driDr07i1N8zJjSH6HE6mO043JoVwoxS84nIc3a1XIpriVZKB6Um3W1BDBYsYgkc4wdNc12cfDuP02dSfrPxtq6foeuctdWknnxbDMUfHk3n9RakEt/eMGI+rQ3BO7lQXeNqovMs5t9HtMseXfNIOuBGsacNXwjrGS6gYqLV13Hkkpu4utqAVGEASebSnDx1vcWWtT5O4rCS5tOB3Q+IRYJDZKC1WBrzg1evektkjhgll/OvSpk90D4X1MKbVQkSZLR5IFieHhnoYvsI7l8D5jY6f8efiwNyhoyyCdXzv9F3yPQg8IN5pRlmgTTpt7ThLqCAMuu16zvi7X9+nkguPr+RWDFIVRv4YQ0kDjHsz0jM0hu2TWVgDlqejsFZ5jybC57rfJ+ey8TSfp49UbunOKfeeLahs+1OLiamOofqofX+sHami8avf8+UMGT9sPXOt/FNC2D/gM7GZoOqIadUVW33xT27qj/IibgSHEOUaeVBXA+SOGDsP+5YoILY72p1E8Ok+s+RBDag6gS1JkE9OaUSXLMWDwsN49k5sM5PiN7Lm4bm+L++usPKpZxSjQgbZ3R4ylzJNywJd9NriJgnm03B5WFEtLQ9yjZCo1+y5ZJGrHNM4UGIf61abPcyrHtF95s67kgGa5/G6Vt/ezyisYUpvjebnJk6YAvprZu2325EVEG02sHPoioeIrneYV4tJJFJP4zosY642jxOQYslldP4yh9YPpwc2NzCUJcmXuPGwfJQ4LK8V2i2S+i+M0ewhX60jtJ7ubwxMkmibRDs3GE/LBMQ6OlOqEC5GWKIUxljr/YJGYe9oUqq4YIYDRgXV1OnXeRLoVFnlnmIfPwe4rbH4NVlroUpYEU15OIETBtHiE39BvxC74ejVJoyu2K+SK7ygUljutqyO18WLEPUWWTVRbF91Rf/IxcGJZo0VdwQcTZDdFv1qIFA1fDD33QC/1ZyUnF9K4s47M4srU51dSUbZ7ceiu7EQwUhksC5GM+xgOypuv6/jp+fF0gm+cqXggFQZTsUiJK7avALehRdUnmR7p/fKu+X3Flq6NZYLvheUvXC0lzW9ojLOtvggROKxAfQVdhLW49J4LLyNelBFmwyi0NTvY9CS0BCpciWkz/G1sVLUDC3uEXrh5gi3CqFZSYtGC9hwgRURFCuaeQimYA2BEfBP/BsJJ9pSOp6NBL3Ya+RxrnYu+ULGxkgfh84PhbIcEjj9dCtfQnDYFZUvCopqmQNWVxIWEtYZ/XDq/udA7lbU5I4YIxA8VNHsh7+/1BPikLYTZWEiVbwwFckWnEKdOegbyJmyfLCt8lroWf+TDus0+eF5aJZRpzS1ktggc7eyiiJnm86aIcqCRSbwFHbgpWf7PmTH3qVtJY5SU3hGrcobXZKJYihOWo/ZMbJcOX+RgZ+8BpxVnTFwBnBNVXF5EBs9P54tw+SWWv8xMdoOoVJiw6zkv27T2NGs471H305vkq2dHh7HZWDqgVVCOhw2R6508DGQdP/2DKcMIpa/v2Wo6YBsxIl7S2ebdDu+inqc1RkofXc4S6GjeJYKhhYwNfxuxBVMMNtMxbHLPP15CM0Wks5ExwD+oNjuYwxFgR2ya3OTkSJQdbPG63kX6RZTzsim4C/m19XSd4aVPM7NigfyDWi1IK2QogYd49PbOnGjp8/+gkUzAK/C04o8Z7iQ2PnTnpQOVzR1EqqH/xR0JEgCG/SsVqMn/86gXH/IIFN9dTYQKE2ASHM0mwfIwK1EXFUSciQbiQ79WHLrUJLldsWPjfZh1/0WP7WC4yJFhxJuD2tM+IP61dTgZdfUdFfMMylE5Jhc/AsecivWncV87v+/Y1oecoeb7qSa+K9y7QtNAM3TUyV0DkmCHyXKoUTlnQC9OQIRbS+iX0G1lpDLCOCxXR/tAjX66V0r8E62F/MRiliHqUTKPs45E9JHma09EOPA3p30f7gX2O+BUtj0jZOmvn8dbxyKMXEyj0D14a+6AeFtzOHS0VXyH9VBBqzyxgJlSQBgWhwvTA3RQHRv2ERnkwWrXmINcYMSPTOYvw+zahSjK3cgAPt8rBUqlbJxB+QRj3oo0lRLMOgNIRBMEvp+uzj7CGx4u5daVF84MLue8Yw4cEs3AZF+5E7Ck8RXZoNMBUFSJoo6Bc0TCD3eusWwNsv+tnLyXK2HOuWSnH0uCKqwTgl/CcUd/r2H003k8NhfKWaO3r2IUuEfkeSxQhpkzkrfePZSY4OGuj1Inl/l5MD8lFqTXUR2AteHGGeglfJkPq6P+Apsa5jcbIg3jipyINemhFO3MLf8iZQlN09D4NgvkKBOO3rEOjlFsMwby8tChNng748JbLxG9oiCXfyH5iXp+BsaYqlVgTaQg/GmyAXJOETlHzXPSnBql8H4qSd0jc4uGsaARFr0c1wjAT9woHrn7GaGZ1lMuyNRoJtvPrN7zEyjM1+w5fs/uLFBvbbUwDASsUI+qVCFbVL+qFBn1rEJleSKyv+wutNr4UcTlw8NRNTC50iheNiSqxa7Td9ZbvBbiJOj/F1GziT+vJdBgPsCVp3sU7OHWmImi/Xxt2bDL9JcKe2ILP851WB+QPAvdAcc8Mm2vrjKvu3bxF4OL2kP4Voj6h2MzpPpRwkioOof+2bovAllA8m52u24iF7epSNsCic7IVUZUzU7NSukVAE0pZl/qZoiHfL+NYoAwvR7ODREBobzncs9RQTzmvWT4IWifiV+FI66g0Y+/dOS45H3fNP8Ixp31MFOsJAcDCo3x6RkuKDKh0uXokroWd6L4HMcY4iQo4vSZRZr/2cFGXYOvNJP0YINw/EbX38+WAsSfnPcCYAdlF/Wv34sQqRRLOJI4l4jzBFa8efbNlVWiexUF1mviR4hu+B6WsknY1A8zsOKwSPHoLG+kEn0wPYhE0pgIICnDS81KgIXgqJPWHHIRv/kDNI/xy60AhNpTI3sdvktTIGkLPv0CZA6RRl2RCM48ThHxSlEFcfl7wej4kmSEyQmtSdbyPdZMBIDa7cWedUAYueGQfgrmG/GDOV3dj8tucTSUoteF/DblJdnuSLyUQamFE76nSyQbPYv4YmmYawp+mD3nD1WfAWMszdILzMLgSKhJD8HLHKuedwZipXGPR4WaqexVn6n9Yah8aBLmGuxFqdxJuYU+7IMh5ITrNq/E5vztCbuZYSvtyC6Zex7I1u6eg6akP0j54M0Ph+duurX6Yn0G38Rw3gT5LhRd4CcrSfbSzAWdJtGfeQZlaWf9TOu0BJzFAo0AsgQelWN/2+14dUZnUF7d9jDJgWhw0A9V+hAKqXnvCtQd1C28QYrKTJGwcktia4TeBvxMGwCql3bjRGDlX3aoOEEumvuJLAauuEK7AA19rMhhaI3r7Ki/Hsrf7ld2BTbEUQAkhHdJW+oydjFPe9W1p117gQ0LTWoCJpIJKTFYz9DRx5ytx2k+O3XsWlbVx+jtZ4nVyeIbuDPh4wyWJWHdU1QKOmW8VwDFB5xeXAUev+DTtO80U5MNcZGVn0hsR8gJ0tFhmY1XA7IU/m4HDcV1X9Ef8ZWIKRBqY920yhtqTZs7J17CyUV4QkLCCAwCmk2l15ZaxE88Xb3ntI88SztCjeZxCdqzSRO/5tQ2Uulgqf4EoXy8RINEhLS70eMtdW0cnqmRtMs9QVu6J500woPjRGmbVfa0KDR7v3iYsS6paTUgK3kdeM8FoK7vWrjc4ziR80oGqmR4mdbkShgk74u+JKZymaSMWVVbAJwx2Wlozzj/MF/yV766ox5Ipejs+ig+bAYzlAsELmFgv6xhYbqUz4ar8Te5FnAgOcu3BS723gisNaCRWMU+GhiAYliDQR+MjbF8X6V16s2E4c7JGoWOTGD0Vcr//uyXVvVUedDuMVqvaph283f8dk3V1qpQ/bt+xQ4S8s/fPhn7d0JIYm0yiLGgXpIpRv4CmQvh45HRrHEfI42Hc7PEYooAjW7EiZqfWHZtJCJhgyuxn2F4FAJHyxnoUA5SSoi8skKM6/5ctKDxB8ugzK5kvB2Uq8tA77omQYBH8GXtJp2JEY8MPMOcdOPjphQqEEXJp0XgOGZs0AnpQLvDUQka4MW6gxMCLGYhVmfHVRRB5WH0EL3rgDIYnrcm3NjUGkM1ytD0ECYVZKcEQHUyRD2XnnWriCMdfKnBZYgDt37lN7TKbJe/Od5WEnKX644OFHhASSGIxOt0LUh0I4vxp7iTMvVmEfDzfuxgHYyWa5qHorrarMAS3QQDerD+oxvmBgfK4htgXD4TRaW9WXFb/miKPwhdB1mlCAqBqYAd2kjos/r3iDLUOtXQmejM7GvsPS2UQpLBo5gO1Uj0qeH5CtnRCMNl5sOCWn0O9PfMELMPXGQ80aQHEE39p/xwiRrVdtf/vX//mAA7eVGYbeVH/AUxP9aC6oGI73YmmGwT1Gs/BDtNTdMTsnLJMKXl6mAFe7T4VYE+g8stbKXz3O9sC0FwYEzHkPZI144DOKC8dJYKRAI8ajRvve1JPJEH0eBUW4P9jJSXNT78jjCgAGemU0g5El3mzIiDH3iD7DXt+4iOZtStCquKHz9L22xjMeHqzpqM4I30o5k2HjKaEej7wJJ7dB9feB+bND1g032/RdVA6BHMDso9b55I8DMCsqdOKtP++cX/MWdQvRaB+z2O//8d9qYABtCABkwXAossj7DJXVT9IJqp22PlTQ9nWsCRchIbUAh7IAHhgDOAETL5hHXeNXQW+xHIU52xl/IX4pyK0aROeXMUX6kY5s4KjDCXUt8d+p3quAQdGmRy2RzBgiBS9vQuJ+Bavyr5GaOnR0q9ygjYOXNe8KeAKyP4HfVyZYwIDZMKV2FIGtKjvMDe2wvvGdasN6hY9dlXEWNRD3vbfzEj1isCMT6n+C2iuFR8wyTCcs/cUb6pu7vFoyl6j2Qtn6urabJ6YupQ96lpGIMR22qDNA7LtrmVrrxj1KU/Jw3Rionhe1tSVc+pCYuEQDJTyxjj+JssARNKk/fBYGmwqf5Q00qrUCohKwBcBNjBlKMDbldxbC1bHTDDjnhUEtwMmirR6mBgs5MioFOA3NMJ2bNpeHynLC5vKKsEh1jUkQkQUUQb721T795oyu4W94upxFNPUkyMytUSwNvQcrukip4B9mSxjCwdLwhAGq9ELSd0SRdBAnWQmS4tbwA7Mx21WtW4EgEu3ed2zB/SvoDrdaLw1D2TrqVR+nUDO0xIZz1Og07WvDAZ0I+t6vTNKXXsvf8C/Fz5k3hsGos4G7jxQI14mDH+JaCRtn+BXJ0sCq+nRXYsk6I0td/pJv3/t6jLuj4PJ9jEn0ls+cksEIdAD5wWoqgMWgbknxHYomwRYXiELPD3tHLnvVmmm0WD/+dWNtyZpfmh95vFtWL4Fkk0UD1z9BFFn+wiwDNBQ7i1C7CVoydzQry5hwU0IG1GEGA0h1+s8u5w3IhxJ3B5m5xX5ATXwNnjdVLw75pzCbvc01tloczu2wCvrAuiEb2yb2ai3ysykT3nM0x4fYaAtOonTCgHsg8lAtvt3mFfkgMZYj7FkKVnqTciXaPhySLdKTTPmLNdkq2Z+OaAmzVLynr8yxBZtCwSBsKrO+Ag3A0uQR/+aLhK34/PG9n0ebmcShFP8Y/X5uXwnyTA0m5J5KVLlm73HqgJxNrgDkWY6k9eEWQGtfmQeJm2cb3K/3bfkEi0R2T6B88MWNmxLkyYbPAS8L+x6zcT3KncXr8maA0gBYapbyLZZML0JU+JZhq5XbPb6svP7A6yVIDg2z/WgMf/945usfaHqx4A9rB4Hdm9+RId97V6YTpgdRX/ph2kBhdTbYanVR4WQuD1KR4tQeE9JE1Oz7U+J8umxU0n71Aj8rYe0xcSykSm2N9NQ3MruHsR/6853MvLnnW/x4KMPc1mGit6TvmAgbVHoC94Oilw5ZMz9fWJO4XBRSB0i3PxxTgW7xuuyvSIISRYTj1XBAQwVGIGJOoikl020SrSJpp1NCdknPTwvFyHiClSIzhQ6LOirHFI0VIQJ8dvRrCkgvOoivdfnVRSSQGkyRbvIG2hY8ZHnLOJEr49UpVCkZTZDonKZ5mReFUz1r6mO4TASL+5JXOj1hGSHneyuQoEYznnH/TwmVa/RrmzEnmN8fBUHzTueo6H8Tg0jMrSMt1O7E1BlTrBJMFkWGfSvrfa0jKj/Vak5vYMDrZBV2Cs7wLmD0BBemCvz79yQce2V4Dw1CrAOR2KNeUamECWf2Y7X55OGn05OXBl03/xPuAhKxzBcfAgxnp+vJAdB0MCIHbRI3lthBnFtfXy1X9k/HOB3CLqjql36ZhBrhYi0kOofnsHmwzXAEljO/ngwchuDvd+8tunB4+bfDNaF2l3OC4xlwIxvqa26QI83rtLZY8U2b7K+/WFXxWvncYxdzanwPnbwAbz79/0YoYn51gQbbQzP68ye20yAhrg4K/L8OLV0oqwag0HEEKMrB3R/rtYH35dHj+qVAo15O/MgldbuUkorc99VYShzSTIB0CytnvJnxZY/uLj3KA0tBmHdoK1BqHzedRXhH1hjHyugcd9aJGCLzi4hG1Aw5VG/gBm2WyeKuZUQa6+6yRf8VJMD8YKhcRahx5B30Bs68U4yCxgLEWjUlnlvopGajZ8TMs2EdtqJlFulMUWNTtIGBT/r23x+drF4qrhaqGMDXKkaSivg4OKG7iXkUG3D1HmDXSMYaZ1qEih3ZDrRFGFsEp7ZqXr67u5PwHgf60g7njVQNZ2AhHtw+osfRSxyNRYArKWuaNejHQYGKmrWtYmGwbfpiSJe7VebIFBPA7H+rAepFI0Q8/K6v6DXDrEPgSRzLSCWqv2FDMBmTFLVG3f7d5PbTaa9BBjBHOhHHNQ7lzg1rCvycogJkGqk4fjdzkNxzceJs8xaa/g7hSMLOx1Cg6HlQxZmxipdWHQxANPx5f4NgIXDpIrOY1fVTq1446/zBoNQEibKXsbsxtB02xZ6yldn+J9Y1njYnVY8EZ3VPp8hchp7VJ0eNtGnEyYuTr9ECvMmtHORGph0ayNc4vlzEIbPtvtb4esA/8rUDAlbAqiFziVqtftkxsaaqni7kdPeho3p9PvhtfV+KxXXHvGqV7n8NwtUXrk2y/WGCDXaaPKl00l8HS4gLuujEsCA4e6Uu+kx93oKiZpzIi3iagaGurEiPLGdUyfN7hKA65sL3ZVTdbmJjrUEQF+Dh8bIX3jle1mb4jguk+e+MH0Py8axlcIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4CEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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Lb/mqRv1RGizssN0zl5LaFhWN+cgTuNPIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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";var Ur;(A=>(A.defaultVideo={data:Xc,thumb:"/_assets/_videos/catThumb.png",type:"video",name:"Cat video"},A.maxSize=3e7))(Ur||(Ur={}));var dg=typeof global=="object"&&global&&global.Object===Object&&global,Bi=dg;var pg=typeof self=="object"&&self&&self.Object===Object&&self,fg=Bi||pg||Function("return this")(),zA=fg;var mg=zA.Symbol,le=mg;var Kc=Object.prototype,hg=Kc.hasOwnProperty,gg=Kc.toString,nn=le?le.toStringTag:void 0;function yg(o){var e=hg.call(o,nn),A=o[nn];try{o[nn]=void 0;var t=!0}catch{}var r=gg.call(o);return t&&(e?o[nn]=A:delete o[nn]),r}var Zc=yg;var xg=Object.prototype,vg=xg.toString;function bg(o){return vg.call(o)}var Jc=bg;var wg="[object Null]",Sg="[object Undefined]",_c=le?le.toStringTag:void 0;function Tg(o){return o==null?o===void 0?Sg:wg:_c&&_c in Object(o)?Zc(o):Jc(o)}var Ie=Tg;function Ng(o){return o!=null&&typeof o=="object"}var oe=Ng;var Ig="[object Symbol]";function Pg(o){return typeof o=="symbol"||oe(o)&&Ie(o)==Ig}var Hr=Pg;function Og(o,e){for(var A=-1,t=o==null?0:o.length,r=Array(t);++A<t;)r[A]=e(o[A],A,o);return r}var Ei=Og;var Cg=Array.isArray,GA=Cg;var Lg=1/0,$c=le?le.prototype:void 0,Au=$c?$c.toString:void 0;function eu(o){if(typeof o=="string")return o;if(GA(o))return Ei(o,eu)+"";if(Hr(o))return Au?Au.call(o):"";var e=o+"";return e=="0"&&1/o==-Lg?"-0":e}var tu=eu;function Mg(o){var e=typeof o;return o!=null&&(e=="object"||e=="function")}var kA=Mg;function Bg(o){return o}var Di=Bg;var Eg="[object AsyncFunction]",Dg="[object Function]",Gg="[object GeneratorFunction]",Rg="[object Proxy]";function Vg(o){if(!kA(o))return!1;var e=Ie(o);return e==Dg||e==Gg||e==Eg||e==Rg}var Wr=Vg;var Fg=zA["__core-js_shared__"],Gi=Fg;var ru=function(){var o=/[^.]+$/.exec(Gi&&Gi.keys&&Gi.keys.IE_PROTO||"");return o?"Symbol(src)_1."+o:""}();function jg(o){return!!ru&&ru in o}var ou=jg;var zg=Function.prototype,kg=zg.toString;function Ug(o){if(o!=null){try{return kg.call(o)}catch{}try{return o+""}catch{}}return""}var Lt=Ug;var Hg=/[\\^$.*+?()[\]{}|]/g,Wg=/^\[object .+?Constructor\]$/,qg=Function.prototype,Qg=Object.prototype,Yg=qg.toString,Xg=Qg.hasOwnProperty,Kg=RegExp("^"+Yg.call(Xg).replace(Hg,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Zg(o){if(!kA(o)||ou(o))return!1;var e=Wr(o)?Kg:Wg;return e.test(Lt(o))}var nu=Zg;function Jg(o,e){return o?.[e]}var iu=Jg;function _g(o,e){var A=iu(o,e);return nu(A)?A:void 0}var ye=_g;var $g=ye(zA,"WeakMap"),Ri=$g;var su=Object.create,Ay=function(){function o(){}return function(e){if(!kA(e))return{};if(su)return su(e);o.prototype=e;var A=new o;return o.prototype=void 0,A}}(),au=Ay;function ey(o,e,A){switch(A.length){case 0:return o.call(e);case 1:return o.call(e,A[0]);case 2:return o.call(e,A[0],A[1]);case 3:return o.call(e,A[0],A[1],A[2])}return o.apply(e,A)}var lu=ey;function ty(o,e){var A=-1,t=o.length;for(e||(e=Array(t));++A<t;)e[A]=o[A];return e}var Vi=ty;var ry=800,oy=16,ny=Date.now;function iy(o){var e=0,A=0;return function(){var t=ny(),r=oy-(t-A);if(A=t,r>0){if(++e>=ry)return arguments[0]}else e=0;return o.apply(void 0,arguments)}}var cu=iy;function sy(o){return function(){return o}}var uu=sy;var ay=function(){try{var o=ye(Object,"defineProperty");return o({},"",{}),o}catch{}}(),qr=ay;var ly=qr?function(o,e){return qr(o,"toString",{configurable:!0,enumerable:!1,value:uu(e),writable:!0})}:Di,du=ly;var cy=cu(du),Fi=cy;function uy(o,e){for(var A=-1,t=o==null?0:o.length;++A<t&&e(o[A],A,o)!==!1;);return o}var pu=uy;var dy=9007199254740991,py=/^(?:0|[1-9]\d*)$/;function fy(o,e){var A=typeof o;return e=e??dy,!!e&&(A=="number"||A!="symbol"&&py.test(o))&&o>-1&&o%1==0&&o<e}var Xt=fy;function my(o,e,A){e=="__proto__"&&qr?qr(o,e,{configurable:!0,enumerable:!0,value:A,writable:!0}):o[e]=A}var Qr=my;function hy(o,e){return o===e||o!==o&&e!==e}var Kt=hy;var gy=Object.prototype,yy=gy.hasOwnProperty;function xy(o,e,A){var t=o[e];(!(yy.call(o,e)&&Kt(t,A))||A===void 0&&!(e in o))&&Qr(o,e,A)}var Yr=xy;function vy(o,e,A,t){var r=!A;A||(A={});for(var n=-1,i=e.length;++n<i;){var a=e[n],l=t?t(A[a],o[a],a,A,o):void 0;l===void 0&&(l=o[a]),r?Qr(A,a,l):Yr(A,a,l)}return A}var Le=vy;var fu=Math.max;function by(o,e,A){return e=fu(e===void 0?o.length-1:e,0),function(){for(var t=arguments,r=-1,n=fu(t.length-e,0),i=Array(n);++r<n;)i[r]=t[e+r];r=-1;for(var a=Array(e+1);++r<e;)a[r]=t[r];return a[e]=A(i),lu(o,this,a)}}var ji=by;function wy(o,e){return Fi(ji(o,e,Di),o+"")}var mu=wy;var Sy=9007199254740991;function Ty(o){return typeof o=="number"&&o>-1&&o%1==0&&o<=Sy}var Xr=Ty;function Ny(o){return o!=null&&Xr(o.length)&&!Wr(o)}var Zt=Ny;function Iy(o,e,A){if(!kA(A))return!1;var t=typeof e;return(t=="number"?Zt(A)&&Xt(e,A.length):t=="string"&&e in A)?Kt(A[e],o):!1}var hu=Iy;function Py(o){return mu(function(e,A){var t=-1,r=A.length,n=r>1?A[r-1]:void 0,i=r>2?A[2]:void 0;for(n=o.length>3&&typeof n=="function"?(r--,n):void 0,i&&hu(A[0],A[1],i)&&(n=r<3?void 0:n,r=1),e=Object(e);++t<r;){var a=A[t];a&&o(e,a,t,n)}return e})}var gu=Py;var Oy=Object.prototype;function Cy(o){var e=o&&o.constructor,A=typeof e=="function"&&e.prototype||Oy;return o===A}var Kr=Cy;function Ly(o,e){for(var A=-1,t=Array(o);++A<o;)t[A]=e(A);return t}var yu=Ly;var My="[object Arguments]";function By(o){return oe(o)&&Ie(o)==My}var Ma=By;var xu=Object.prototype,Ey=xu.hasOwnProperty,Dy=xu.propertyIsEnumerable,Gy=Ma(function(){return arguments}())?Ma:function(o){return oe(o)&&Ey.call(o,"callee")&&!Dy.call(o,"callee")},Mt=Gy;function Ry(){return!1}var vu=Ry;var Su=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bu=Su&&typeof module=="object"&&module&&!module.nodeType&&module,Vy=bu&&bu.exports===Su,wu=Vy?zA.Buffer:void 0,Fy=wu?wu.isBuffer:void 0,jy=Fy||vu,Zr=jy;var zy="[object Arguments]",ky="[object Array]",Uy="[object Boolean]",Hy="[object Date]",Wy="[object Error]",qy="[object Function]",Qy="[object Map]",Yy="[object Number]",Xy="[object Object]",Ky="[object RegExp]",Zy="[object Set]",Jy="[object String]",_y="[object WeakMap]",$y="[object ArrayBuffer]",A0="[object DataView]",e0="[object Float32Array]",t0="[object Float64Array]",r0="[object Int8Array]",o0="[object Int16Array]",n0="[object Int32Array]",i0="[object Uint8Array]",s0="[object Uint8ClampedArray]",a0="[object Uint16Array]",l0="[object Uint32Array]",EA={};EA[e0]=EA[t0]=EA[r0]=EA[o0]=EA[n0]=EA[i0]=EA[s0]=EA[a0]=EA[l0]=!0;EA[zy]=EA[ky]=EA[$y]=EA[Uy]=EA[A0]=EA[Hy]=EA[Wy]=EA[qy]=EA[Qy]=EA[Yy]=EA[Xy]=EA[Ky]=EA[Zy]=EA[Jy]=EA[_y]=!1;function c0(o){return oe(o)&&Xr(o.length)&&!!EA[Ie(o)]}var Tu=c0;function u0(o){return function(e){return o(e)}}var Jr=u0;var Nu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,sn=Nu&&typeof module=="object"&&module&&!module.nodeType&&module,d0=sn&&sn.exports===Nu,Ba=d0&&Bi.process,p0=function(){try{var o=sn&&sn.require&&sn.require("util").types;return o||Ba&&Ba.binding&&Ba.binding("util")}catch{}}(),Bt=p0;var Iu=Bt&&Bt.isTypedArray,f0=Iu?Jr(Iu):Tu,zi=f0;var m0=Object.prototype,h0=m0.hasOwnProperty;function g0(o,e){var A=GA(o),t=!A&&Mt(o),r=!A&&!t&&Zr(o),n=!A&&!t&&!r&&zi(o),i=A||t||r||n,a=i?yu(o.length,String):[],l=a.length;for(var u in o)(e||h0.call(o,u))&&!(i&&(u=="length"||r&&(u=="offset"||u=="parent")||n&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Xt(u,l)))&&a.push(u);return a}var ki=g0;function y0(o,e){return function(A){return o(e(A))}}var Ui=y0;var x0=Ui(Object.keys,Object),Pu=x0;var v0=Object.prototype,b0=v0.hasOwnProperty;function w0(o){if(!Kr(o))return Pu(o);var e=[];for(var A in Object(o))b0.call(o,A)&&A!="constructor"&&e.push(A);return e}var Ou=w0;function S0(o){return Zt(o)?ki(o):Ou(o)}var _r=S0;function T0(o){var e=[];if(o!=null)for(var A in Object(o))e.push(A);return e}var Cu=T0;var N0=Object.prototype,I0=N0.hasOwnProperty;function P0(o){if(!kA(o))return Cu(o);var e=Kr(o),A=[];for(var t in o)t=="constructor"&&(e||!I0.call(o,t))||A.push(t);return A}var Lu=P0;function O0(o){return Zt(o)?ki(o,!0):Lu(o)}var nt=O0;var C0=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,L0=/^\w*$/;function M0(o,e){if(GA(o))return!1;var A=typeof o;return A=="number"||A=="symbol"||A=="boolean"||o==null||Hr(o)?!0:L0.test(o)||!C0.test(o)||e!=null&&o in Object(e)}var Mu=M0;var B0=ye(Object,"create"),Et=B0;function E0(){this.__data__=Et?Et(null):{},this.size=0}var Bu=E0;function D0(o){var e=this.has(o)&&delete this.__data__[o];return this.size-=e?1:0,e}var Eu=D0;var G0="__lodash_hash_undefined__",R0=Object.prototype,V0=R0.hasOwnProperty;function F0(o){var e=this.__data__;if(Et){var A=e[o];return A===G0?void 0:A}return V0.call(e,o)?e[o]:void 0}var Du=F0;var j0=Object.prototype,z0=j0.hasOwnProperty;function k0(o){var e=this.__data__;return Et?e[o]!==void 0:z0.call(e,o)}var Gu=k0;var U0="__lodash_hash_undefined__";function H0(o,e){var A=this.__data__;return this.size+=this.has(o)?0:1,A[o]=Et&&e===void 0?U0:e,this}var Ru=H0;function $r(o){var e=-1,A=o==null?0:o.length;for(this.clear();++e<A;){var t=o[e];this.set(t[0],t[1])}}$r.prototype.clear=Bu;$r.prototype.delete=Eu;$r.prototype.get=Du;$r.prototype.has=Gu;$r.prototype.set=Ru;var Ea=$r;function W0(){this.__data__=[],this.size=0}var Vu=W0;function q0(o,e){for(var A=o.length;A--;)if(Kt(o[A][0],e))return A;return-1}var Jt=q0;var Q0=Array.prototype,Y0=Q0.splice;function X0(o){var e=this.__data__,A=Jt(e,o);if(A<0)return!1;var t=e.length-1;return A==t?e.pop():Y0.call(e,A,1),--this.size,!0}var Fu=X0;function K0(o){var e=this.__data__,A=Jt(e,o);return A<0?void 0:e[A][1]}var ju=K0;function Z0(o){return Jt(this.__data__,o)>-1}var zu=Z0;function J0(o,e){var A=this.__data__,t=Jt(A,o);return t<0?(++this.size,A.push([o,e])):A[t][1]=e,this}var ku=J0;function Ao(o){var e=-1,A=o==null?0:o.length;for(this.clear();++e<A;){var t=o[e];this.set(t[0],t[1])}}Ao.prototype.clear=Vu;Ao.prototype.delete=Fu;Ao.prototype.get=ju;Ao.prototype.has=zu;Ao.prototype.set=ku;var _t=Ao;var _0=ye(zA,"Map"),$t=_0;function $0(){this.size=0,this.__data__={hash:new Ea,map:new($t||_t),string:new Ea}}var Uu=$0;function Ax(o){var e=typeof o;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?o!=="__proto__":o===null}var Hu=Ax;function ex(o,e){var A=o.__data__;return Hu(e)?A[typeof e=="string"?"string":"hash"]:A.map}var Ar=ex;function tx(o){var e=Ar(this,o).delete(o);return this.size-=e?1:0,e}var Wu=tx;function rx(o){return Ar(this,o).get(o)}var qu=rx;function ox(o){return Ar(this,o).has(o)}var Qu=ox;function nx(o,e){var A=Ar(this,o),t=A.size;return A.set(o,e),this.size+=A.size==t?0:1,this}var Yu=nx;function eo(o){var e=-1,A=o==null?0:o.length;for(this.clear();++e<A;){var t=o[e];this.set(t[0],t[1])}}eo.prototype.clear=Uu;eo.prototype.delete=Wu;eo.prototype.get=qu;eo.prototype.has=Qu;eo.prototype.set=Yu;var an=eo;var ix="Expected a function";function Da(o,e){if(typeof o!="function"||e!=null&&typeof e!="function")throw new TypeError(ix);var A=function(){var t=arguments,r=e?e.apply(this,t):t[0],n=A.cache;if(n.has(r))return n.get(r);var i=o.apply(this,t);return A.cache=n.set(r,i)||n,i};return A.cache=new(Da.Cache||an),A}Da.Cache=an;var Xu=Da;var sx=500;function ax(o){var e=Xu(o,function(t){return A.size===sx&&A.clear(),t}),A=e.cache;return e}var Ku=ax;var lx=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,cx=/\\(\\)?/g,ux=Ku(function(o){var e=[];return o.charCodeAt(0)===46&&e.push(""),o.replace(lx,function(A,t,r,n){e.push(r?n.replace(cx,"$1"):t||A)}),e}),Zu=ux;function dx(o){return o==null?"":tu(o)}var Ju=dx;function px(o,e){return GA(o)?o:Mu(o,e)?[o]:Zu(Ju(o))}var Me=px;var fx=1/0;function mx(o){if(typeof o=="string"||Hr(o))return o;var e=o+"";return e=="0"&&1/o==-fx?"-0":e}var er=mx;function hx(o,e){e=Me(e,o);for(var A=0,t=e.length;o!=null&&A<t;)o=o[er(e[A++])];return A&&A==t?o:void 0}var Hi=hx;function gx(o,e){for(var A=-1,t=e.length,r=o.length;++A<t;)o[r+A]=e[A];return o}var to=gx;var _u=le?le.isConcatSpreadable:void 0;function yx(o){return GA(o)||Mt(o)||!!(_u&&o&&o[_u])}var $u=yx;function Ad(o,e,A,t,r){var n=-1,i=o.length;for(A||(A=$u),r||(r=[]);++n<i;){var a=o[n];e>0&&A(a)?e>1?Ad(a,e-1,A,t,r):to(r,a):t||(r[r.length]=a)}return r}var ed=Ad;function xx(o){var e=o==null?0:o.length;return e?ed(o,1):[]}var td=xx;function vx(o){return Fi(ji(o,void 0,td),o+"")}var Wi=vx;var bx=Ui(Object.getPrototypeOf,Object),ro=bx;var wx="[object Object]",Sx=Function.prototype,Tx=Object.prototype,rd=Sx.toString,Nx=Tx.hasOwnProperty,Ix=rd.call(Object);function Px(o){if(!oe(o)||Ie(o)!=wx)return!1;var e=ro(o);if(e===null)return!0;var A=Nx.call(e,"constructor")&&e.constructor;return typeof A=="function"&&A instanceof A&&rd.call(A)==Ix}var qi=Px;function Ox(o,e,A){var t=-1,r=o.length;e<0&&(e=-e>r?0:r+e),A=A>r?r:A,A<0&&(A+=r),r=e>A?0:A-e>>>0,e>>>=0;for(var n=Array(r);++t<r;)n[t]=o[t+e];return n}var od=Ox;function Cx(){this.__data__=new _t,this.size=0}var nd=Cx;function Lx(o){var e=this.__data__,A=e.delete(o);return this.size=e.size,A}var id=Lx;function Mx(o){return this.__data__.get(o)}var sd=Mx;function Bx(o){return this.__data__.has(o)}var ad=Bx;var Ex=200;function Dx(o,e){var A=this.__data__;if(A instanceof _t){var t=A.__data__;if(!$t||t.length<Ex-1)return t.push([o,e]),this.size=++A.size,this;A=this.__data__=new an(t)}return A.set(o,e),this.size=A.size,this}var ld=Dx;function oo(o){var e=this.__data__=new _t(o);this.size=e.size}oo.prototype.clear=nd;oo.prototype.delete=id;oo.prototype.get=sd;oo.prototype.has=ad;oo.prototype.set=ld;var Qi=oo;function Gx(o,e){return o&&Le(e,_r(e),o)}var cd=Gx;function Rx(o,e){return o&&Le(e,nt(e),o)}var ud=Rx;var md=typeof exports=="object"&&exports&&!exports.nodeType&&exports,dd=md&&typeof module=="object"&&module&&!module.nodeType&&module,Vx=dd&&dd.exports===md,pd=Vx?zA.Buffer:void 0,fd=pd?pd.allocUnsafe:void 0;function Fx(o,e){if(e)return o.slice();var A=o.length,t=fd?fd(A):new o.constructor(A);return o.copy(t),t}var Yi=Fx;function jx(o,e){for(var A=-1,t=o==null?0:o.length,r=0,n=[];++A<t;){var i=o[A];e(i,A,o)&&(n[r++]=i)}return n}var hd=jx;function zx(){return[]}var Xi=zx;var kx=Object.prototype,Ux=kx.propertyIsEnumerable,gd=Object.getOwnPropertySymbols,Hx=gd?function(o){return o==null?[]:(o=Object(o),hd(gd(o),function(e){return Ux.call(o,e)}))}:Xi,no=Hx;function Wx(o,e){return Le(o,no(o),e)}var yd=Wx;var qx=Object.getOwnPropertySymbols,Qx=qx?function(o){for(var e=[];o;)to(e,no(o)),o=ro(o);return e}:Xi,Ki=Qx;function Yx(o,e){return Le(o,Ki(o),e)}var xd=Yx;function Xx(o,e,A){var t=e(o);return GA(o)?t:to(t,A(o))}var Zi=Xx;function Kx(o){return Zi(o,_r,no)}var vd=Kx;function Zx(o){return Zi(o,nt,Ki)}var Ji=Zx;var Jx=ye(zA,"DataView"),_i=Jx;var _x=ye(zA,"Promise"),$i=_x;var $x=ye(zA,"Set"),As=$x;var bd="[object Map]",Av="[object Object]",wd="[object Promise]",Sd="[object Set]",Td="[object WeakMap]",Nd="[object DataView]",ev=Lt(_i),tv=Lt($t),rv=Lt($i),ov=Lt(As),nv=Lt(Ri),xr=Ie;(_i&&xr(new _i(new ArrayBuffer(1)))!=Nd||$t&&xr(new $t)!=bd||$i&&xr($i.resolve())!=wd||As&&xr(new As)!=Sd||Ri&&xr(new Ri)!=Td)&&(xr=function(o){var e=Ie(o),A=e==Av?o.constructor:void 0,t=A?Lt(A):"";if(t)switch(t){case ev:return Nd;case tv:return bd;case rv:return wd;case ov:return Sd;case nv:return Td}return e});var io=xr;var iv=Object.prototype,sv=iv.hasOwnProperty;function av(o){var e=o.length,A=new o.constructor(e);return e&&typeof o[0]=="string"&&sv.call(o,"index")&&(A.index=o.index,A.input=o.input),A}var Id=av;var lv=zA.Uint8Array,Ga=lv;function cv(o){var e=new o.constructor(o.byteLength);return new Ga(e).set(new Ga(o)),e}var so=cv;function uv(o,e){var A=e?so(o.buffer):o.buffer;return new o.constructor(A,o.byteOffset,o.byteLength)}var Pd=uv;var dv=/\w*$/;function pv(o){var e=new o.constructor(o.source,dv.exec(o));return e.lastIndex=o.lastIndex,e}var Od=pv;var Cd=le?le.prototype:void 0,Ld=Cd?Cd.valueOf:void 0;function fv(o){return Ld?Object(Ld.call(o)):{}}var Md=fv;function mv(o,e){var A=e?so(o.buffer):o.buffer;return new o.constructor(A,o.byteOffset,o.length)}var es=mv;var hv="[object Boolean]",gv="[object Date]",yv="[object Map]",xv="[object Number]",vv="[object RegExp]",bv="[object Set]",wv="[object String]",Sv="[object Symbol]",Tv="[object ArrayBuffer]",Nv="[object DataView]",Iv="[object Float32Array]",Pv="[object Float64Array]",Ov="[object Int8Array]",Cv="[object Int16Array]",Lv="[object Int32Array]",Mv="[object Uint8Array]",Bv="[object Uint8ClampedArray]",Ev="[object Uint16Array]",Dv="[object Uint32Array]";function Gv(o,e,A){var t=o.constructor;switch(e){case Tv:return so(o);case hv:case gv:return new t(+o);case Nv:return Pd(o,A);case Iv:case Pv:case Ov:case Cv:case Lv:case Mv:case Bv:case Ev:case Dv:return es(o,A);case yv:return new t;case xv:case wv:return new t(o);case vv:return Od(o);case bv:return new t;case Sv:return Md(o)}}var Bd=Gv;function Rv(o){return typeof o.constructor=="function"&&!Kr(o)?au(ro(o)):{}}var ts=Rv;var Vv="[object Map]";function Fv(o){return oe(o)&&io(o)==Vv}var Ed=Fv;var Dd=Bt&&Bt.isMap,jv=Dd?Jr(Dd):Ed,Gd=jv;var zv="[object Set]";function kv(o){return oe(o)&&io(o)==zv}var Rd=kv;var Vd=Bt&&Bt.isSet,Uv=Vd?Jr(Vd):Rd,Fd=Uv;var Hv=1,Wv=2,qv=4,jd="[object Arguments]",Qv="[object Array]",Yv="[object Boolean]",Xv="[object Date]",Kv="[object Error]",zd="[object Function]",Zv="[object GeneratorFunction]",Jv="[object Map]",_v="[object Number]",kd="[object Object]",$v="[object RegExp]",Ab="[object Set]",eb="[object String]",tb="[object Symbol]",rb="[object WeakMap]",ob="[object ArrayBuffer]",nb="[object DataView]",ib="[object Float32Array]",sb="[object Float64Array]",ab="[object Int8Array]",lb="[object Int16Array]",cb="[object Int32Array]",ub="[object Uint8Array]",db="[object Uint8ClampedArray]",pb="[object Uint16Array]",fb="[object Uint32Array]",BA={};BA[jd]=BA[Qv]=BA[ob]=BA[nb]=BA[Yv]=BA[Xv]=BA[ib]=BA[sb]=BA[ab]=BA[lb]=BA[cb]=BA[Jv]=BA[_v]=BA[kd]=BA[$v]=BA[Ab]=BA[eb]=BA[tb]=BA[ub]=BA[db]=BA[pb]=BA[fb]=!0;BA[Kv]=BA[zd]=BA[rb]=!1;function rs(o,e,A,t,r,n){var i,a=e&Hv,l=e&Wv,u=e&qv;if(A&&(i=r?A(o,t,r,n):A(o)),i!==void 0)return i;if(!kA(o))return o;var s=GA(o);if(s){if(i=Id(o),!a)return Vi(o,i)}else{var c=io(o),d=c==zd||c==Zv;if(Zr(o))return Yi(o,a);if(c==kd||c==jd||d&&!r){if(i=l||d?{}:ts(o),!a)return l?xd(o,ud(i,o)):yd(o,cd(i,o))}else{if(!BA[c])return r?o:{};i=Bd(o,c,a)}}n||(n=new Qi);var p=n.get(o);if(p)return p;n.set(o,i),Fd(o)?o.forEach(function(h){i.add(rs(h,e,A,h,o,n))}):Gd(o)&&o.forEach(function(h,x){i.set(x,rs(h,e,A,x,o,n))});var f=u?l?Ji:vd:l?nt:_r,m=s?void 0:f(o);return pu(m||o,function(h,x){m&&(x=h,h=o[x]),Yr(i,x,rs(h,e,A,x,o,n))}),i}var os=rs;var mb=1,hb=4;function gb(o){return os(o,mb|hb)}var ln=gb;function yb(o,e){return o!=null&&e in Object(o)}var Ud=yb;function xb(o,e,A){e=Me(e,o);for(var t=-1,r=e.length,n=!1;++t<r;){var i=er(e[t]);if(!(n=o!=null&&A(o,i)))break;o=o[i]}return n||++t!=r?n:(r=o==null?0:o.length,!!r&&Xr(r)&&Xt(i,r)&&(GA(o)||Mt(o)))}var Hd=xb;function vb(o,e){return o!=null&&Hd(o,e,Ud)}var Wd=vb;function bb(o){return function(e,A,t){for(var r=-1,n=Object(e),i=t(e),a=i.length;a--;){var l=i[o?a:++r];if(A(n[l],l,n)===!1)break}return e}}var qd=bb;var wb=qd(),Qd=wb;function Sb(o,e,A){(A!==void 0&&!Kt(o[e],A)||A===void 0&&!(e in o))&&Qr(o,e,A)}var cn=Sb;function Tb(o){return oe(o)&&Zt(o)}var Yd=Tb;function Nb(o,e){if(!(e==="constructor"&&typeof o[e]=="function")&&e!="__proto__")return o[e]}var un=Nb;function Ib(o){return Le(o,nt(o))}var Xd=Ib;function Pb(o,e,A,t,r,n,i){var a=un(o,A),l=un(e,A),u=i.get(l);if(u){cn(o,A,u);return}var s=n?n(a,l,A+"",o,e,i):void 0,c=s===void 0;if(c){var d=GA(l),p=!d&&Zr(l),f=!d&&!p&&zi(l);s=l,d||p||f?GA(a)?s=a:Yd(a)?s=Vi(a):p?(c=!1,s=Yi(l,!0)):f?(c=!1,s=es(l,!0)):s=[]:qi(l)||Mt(l)?(s=a,Mt(a)?s=Xd(a):(!kA(a)||Wr(a))&&(s=ts(l))):c=!1}c&&(i.set(l,s),r(s,l,t,n,i),i.delete(l)),cn(o,A,s)}var Kd=Pb;function Zd(o,e,A,t,r){o!==e&&Qd(e,function(n,i){if(r||(r=new Qi),kA(n))Kd(o,e,i,A,Zd,t,r);else{var a=t?t(un(o,i),n,i+"",o,e,r):void 0;a===void 0&&(a=n),cn(o,i,a)}},nt)}var Jd=Zd;function Ob(o){var e=o==null?0:o.length;return e?o[e-1]:void 0}var _d=Ob;function Cb(o,e){return e.length<2?o:Hi(o,od(e,0,-1))}var $d=Cb;var Lb=gu(function(o,e,A){Jd(o,e,A)}),ao=Lb;function Mb(o,e){return e=Me(e,o),o=$d(o,e),o==null||delete o[er(_d(e))]}var Ap=Mb;function Bb(o){return qi(o)?void 0:o}var ep=Bb;var Eb=1,Db=2,Gb=4,Rb=Wi(function(o,e){var A={};if(o==null)return A;var t=!1;e=Ei(e,function(n){return n=Me(n,o),t||(t=n.length>1),n}),Le(o,Ji(o),A),t&&(A=os(A,Eb|Db|Gb,ep));for(var r=e.length;r--;)Ap(A,e[r]);return A}),lo=Rb;function Vb(o,e,A,t){if(!kA(o))return o;e=Me(e,o);for(var r=-1,n=e.length,i=n-1,a=o;a!=null&&++r<n;){var l=er(e[r]),u=A;if(l==="__proto__"||l==="constructor"||l==="prototype")return o;if(r!=i){var s=a[l];u=t?t(s,l,a):void 0,u===void 0&&(u=kA(s)?s:Xt(e[r+1])?[]:{})}Yr(a,l,u),a=a[l]}return o}var tp=Vb;function Fb(o,e,A){for(var t=-1,r=e.length,n={};++t<r;){var i=e[t],a=Hi(o,i);A(a,i)&&tp(n,Me(i,o),a)}return n}var rp=Fb;function jb(o,e){return rp(o,e,function(A,t){return Wd(o,t)})}var op=jb;var zb=Wi(function(o,e){return o==null?{}:op(o,e)}),co=zb;var np=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],ip=["wrapping","image","video"],ce;(r=>{function o(n,i){ao(n,i)}r.patch=o;function e(n,i){return n==="light"&&i?A(i):t(n)}r.defaultData=e;function A(n){switch(n){case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:5,type:"light",alpha:.6,visible:!0,mode:0};case"toon":return{category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"lambert":return{category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0};case"physical":return{category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0}}}function t(n){switch(n){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:!1};case"video":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"video",projection:0,texture:{video:Ur.defaultVideo,wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:ge.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:{...ge.fromHex(6710886),a:1},colorB:{...ge.fromHex(6710886),a:1},colorC:{...ge.fromHex(16777215),a:1},colorD:{...ge.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:ke.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:ke.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:ke.fromHexAndA(0,1),contourColor:ke.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}}}})(ce||(ce={}));var ue;(l=>{function o(u){return!u.layers.some(c=>c.data.type==="texture"&&c.data.projection!==0||c.data.type==="depth"&&!c.data.isWorldSpace||c.data.type==="noise"||c.data.type==="displace")}l.isMergable=o;function e(u){let s="";return u.layers.forEach(c=>{Object.entries(c.data).forEach(([d,p])=>{s+=`${d}${p}`,Array.isArray(p)?p.forEach(f=>s+=`${f}`):typeof p=="object"?Object.values(p).forEach(f=>{typeof f=="number"?s+=`${f.toFixed(4)}`:s+=`${f}`}):s+=`${p}`})}),s}l.getHash=e;function A(u,s){let c=0;for(let d of u.layers)if(d.data.type!=="displace"&&"alpha"in d.data&&d.data.type!=="light"&&d.data.type!=="fresnel"&&d.data.type!=="texture"&&d.data.type!=="matcap"&&d.data.type!=="rainbow"&&d.data.type!=="outline"){let p=d.data.visible?d.data.alpha:0;if(p==1&&d.data.type=="depth"||d.data.type=="gradient"){for(let f of d.data.colors)if(f[3]<1){p=f[3];break}}else if(p==1&&d.data.type=="noise"){let f=s.color(d.data.colorA).a,m=s.color(d.data.colorB).a,h=s.color(d.data.colorC).a,x=s.color(d.data.colorD).a,y=Math.min(f,Math.min(m,Math.min(h,x)));y<1&&(p=y)}c+=(1-c)*p}return c<1}l.isTransparent=A;function t(){return{layers:new mA}}l.defaultEmptyData=t;function r(u="layer1",s="layer2"){return n("phong",u,s)}l.defaultData=r;function n(u,s="layer1",c="layer2"){let d=new mA;return d.push({fi:0,data:ce.defaultData("light",u),id:s}),d.push({fi:1,data:ce.defaultData("color"),id:c}),{layers:d}}l.defaultTwoLayerData=n;function i(u,s="phong",c="layer1",d="layer2"){let p=ce.defaultData("texture");Object.assign(p.texture,{image:u});let f=new mA;return f.push({fi:0,data:p,id:c}),f.push({fi:1,data:ce.defaultData("light",s),id:d}),{layers:f}}l.defaultTwoLayerTextureData=i;function a(u,s="phong",c="layer1",d="layer2"){let p=ce.defaultData("video");Object.assign(p.texture,{video:u});let f=new mA;return f.push({fi:0,data:p,id:c}),f.push({fi:1,data:ce.defaultData("light",s),id:d}),{layers:f}}l.defaultTwoLayerVideoTextureData=a})(ue||(ue={}));var uo;(e=>{function o(){return{points:new mA,roundness:0,shapeHoles:[],isClosed:!1}}e.defaultData=o})(uo||(uo={}));var po;(e=>{function o(A){return A==="PolygonGeometry"||A==="RectangleGeometry"||A==="StarGeometry"||A==="TriangleGeometry"||A==="EllipseGeometry"}e.is2DParametricMesh=o})(po||(po={}));var tr;(e=>{function o(A){if(A==="RectangleGeometry")return{width:320,height:320,type:A,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(A==="VectorGeometry")return{width:1,height:1,type:A,subdivisions:12,shape:uo.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(A==="BooleanGeometry")return{type:A,operation:2,width:0,height:0,depth:0,phongAngle:35};if(A==="TextGeometry")return{type:A,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")}e.defaultData=o})(tr||(tr={}));var dn;(r=>{r.identity={...Oi.identity,hiddenMatrix:Yt.identity};function e(n){return{position:n.position,rotation:n.rotation,scale:n.scale,hiddenMatrix:n.hiddenMatrix}}r.fromObject=e;function A(n,i){return{position:i?.position||n.position,rotation:i?.rotation||n.rotation,scale:i?.scale||n.scale,hiddenMatrix:i?.hiddenMatrix||n.hiddenMatrix}}r.merge=A;function t(n,i){return{position:zr.isEqual(n.position,i.position)?null:i.position,rotation:zr.isEqual(n.rotation,i.rotation)?null:i.rotation,scale:zr.isEqual(n.scale,i.scale)?null:i.scale,hiddenMatrix:Yt.isEqual(n.hiddenMatrix,i.hiddenMatrix)?null:i.hiddenMatrix}}r.diff=t})(dn||(dn={}));var Ra;(e=>e.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]})(Ra||(Ra={}));var Ue;(e=>e.defaultData={states:new mA,events:new mA,visible:!0,raycastLock:!1,physics:null,...dn.identity})(Ue||(Ue={}));var sp;(e=>e.defaultData={type:"Empty",cloner:null,...Ue.defaultData})(sp||(sp={}));var vr;(e=>e.defaultData={type:"Mesh",...Ue.defaultData,...Mi.defaultData})(vr||(vr={}));var ns;(e=>e.defaultData={...Ue.defaultData,...dn.identity,...gr.defaultData})(ns||(ns={}));var ap;(e=>{function o(A){return{...Ue.defaultData,...Li.defaultData(A)}}e.defaultData=o})(ap||(ap={}));var lp;(r=>(r.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:Yt.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Ra.defaultData,states:new mA,events:new mA,...gr.defaultData},r.defaultMeshObject={name:"Rectangle",...Ue.defaultData,...vr.defaultData,geometry:tr.defaultData("RectangleGeometry"),material:ue.defaultTwoLayerData("phong","layer1","layer2")},r.defaultBooleanObject={name:"Boolean",...Ue.defaultData,...vr.defaultData,geometry:tr.defaultData("BooleanGeometry"),material:ue.defaultTwoLayerData("phong","layer1","layer2")},r.defaultTextObject={name:"Text",...Ue.defaultData,...vr.defaultData,geometry:tr.defaultData("TextGeometry"),material:ue.defaultTwoLayerData("phong","layer1","layer2")}))(lp||(lp={}));var cp;(A=>{function o(t,r){if(r===void 0)return t;let n={...t};return"material"in n&&"material"in r&&r.material&&(n.material=ha(n.material,i=>{if(typeof i!="string")for(let[a,l]of Object.entries(r.material.layers)){let u=i.layers.data(a);u&&ce.patch(u,l)}}).data),n.materials&&r.materials&&(n.materials=ha(n.materials,i=>{for(let a=0;a<n.materials.length;a++){let l=r.materials[a];if(typeof l!="string")for(let[u,s]of Object.entries(l.layers)){let c=i[a]?.layers?.data(u);c&&ce.patch(c,s)}}}).data),n}A.patchMaterialState=o;function e(t,r){if(r===void 0)return t;let n={...t};if(Object.assign(n,dn.merge(n,r)),kr.is(t.type)){n.orthographic={...n.orthographic},n.perspective={...n.perspective};let i=r;i.orthographic?.zoom!==void 0&&(n.orthographic.zoom=i.orthographic.zoom),i.perspective?.zoom!==void 0&&(n.perspective.zoom=i.perspective.zoom),i.isUpVectorFlipped!==void 0&&(n.isUpVectorFlipped=i.isUpVectorFlipped),i.targetOffset!==void 0&&(n.targetOffset=i.targetOffset)}else if(t.type==="Mesh")n.geometry={...n.geometry},Object.assign(n.geometry,r.geometry),n=o(n,r),n.cloner&&"cloner"in r&&Object.assign(n,{cloner:yr.merge(n.cloner,r.cloner)});else if(t.type==="Empty")n.cloner&&"cloner"in r&&Object.assign(n,{cloner:yr.merge(n.cloner,r.cloner)});else if(Ci.is(t.type)){let i=r;i.intensity!==void 0&&(n.intensity=i.intensity),i.color!==void 0&&(typeof i.color=="string"?n.color=i.color:n.color=ge.clone(i.color))}return n}A.patch=e})(cp||(cp={}));var fo;(e=>e.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,isTouchZoom:!0,orbitTouches:2,panTouches:3,resetHoverEffectOnPointerLeave:!0})(fo||(fo={}));var is;(e=>e.defaultData={orbitControls:fo.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((A,t)=>{let r=0,n=0;return t<5?n=-30:t<10&&(n=30),t===0||t===10||t===5?r=30:(t===4||t===11||t===9)&&(r=-30),[120,[r,n],"show"]}),gameControlObject:null})(is||(is={}));function rr(o,e){return Object.setPrototypeOf(o,e),o}function up(o){return Array.isArray(o)?o:[o]}var ss;(A=>{function o(){let t={};return t["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},rr(t,MA.prototype)}A.defaultColors=o;function e(){return{materials:new MA,images:new MA,videos:new MA,colors:new MA,audios:new MA,fonts:new MA,penumbraSize:[.5,.5,.5]}}A.emptyData=e})(ss||(ss={}));import{MathUtils as as}from"three";function dp(o){o.layers.forEach(e=>{if(e.type==="depth"&&e.colorA!==void 0){let A=e.colorA,t=e.colorB,r=[[A.r,A.g,A.b,A.a],[t.r,t.g,t.b,t.a]],n=[0,1];for(let a=2;a<10;a++)r.push(r[1]),n.push(1);let i={...co(me(e),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,e.near),far:Math.max(0,e.far),colors:r,steps:n,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(e,i)}else if(e.type==="depth"&&e.gradientType===1&&(e.near<0||e.far<0)){let A={...me(e),near:Math.max(e.near,0),far:Math.max(e.far,0)};Object.assign(e,A)}})}function ls(o,e){Object.values(o.shared.materials).forEach(A=>e(A))}function cs(o,e){o.scene.objects.traverse((A,t)=>{"materials"in t?t.materials.forEach(r=>{typeof r!="string"&&e(r)}):"material"in t&&typeof t.material!="string"&&e(t.material)})}function kb(o){Object.assign(o.scene.publish,{orbitControls:{...fo.defaultData,...me(o.scene.publish.orbitControls)}})}function Ub(o){Object.assign(o.scene.publish.settings,{video:{...is.defaultData.settings.video,...me(o.scene.publish.settings.video)}})}function Hb(o){function e(A){if(A.layers){for(let t of Object.values(A.layers))if(t){for(let[r,n]of Object.entries(t))if((np.includes(r)||typeof n=="boolean")&&delete t[r],r==="texture")for(let[i,a]of Object.entries(n))(ip.includes(i)||typeof a=="boolean")&&delete n[i]}}}o.scene.objects.traverse((A,t)=>{t.states.forEach(r=>{let n=r;n.material?e(n.material):n.materials&&n.materials.forEach(i=>{e(i)})})})}function Wb(o){o.scene.publish.withBackground=!0}function qb(o){o.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function Qb(o){o.scene.objects.traverse((e,A)=>{let t=A.cloner;t&&(t.radial.scale=t.radial.scale.map(r=>r+1),t.linear.scale=t.linear.scale.map(r=>r+1))})}function Yb(o){o.scene.objects.traverse((e,A)=>{let t=A.geometry;t&&(t.type==="DodecahedronGeometry"||t.type==="IcosahedronGeometry")&&(t.detail=Math.round(t.detail))})}function Xb(o){o.scene.objects.traverse((e,A)=>{let t=o.scene.objects.parent(e);A.type==="Mesh"&&(!t||o.scene.objects.data(t).geometry?.type!=="BooleanGeometry")&&(A.booleanExclude=null)})}function pp(o){o.layers===void 0&&Object.assign(o,ue.defaultTwoLayerData("lambert"))}function Va(o){!o.layers||o.layers.forEach(e=>{if(e.type==="depth"&&e.colors.length===10){let A=[...e.colors];A.push(e.colors[9]);let t=[...e.steps];t.push(e.steps[9]);let r={...me(e),colors:A,steps:t};Object.assign(e,r)}})}function Kb(o){o.scene.objects.traverse((e,A)=>{A.type==="Mesh"&&(A.geometry.type==="BooleanGeometry"||A.geometry.type==="SubdivGeometry")&&(A.geometry.phongAngle=35)})}function fp(o){o.scene.objects.traverse((e,A)=>{"materials"in A?A.materials.forEach(t=>{typeof t!="string"&&Va(t)}):"material"in A&&typeof A.material!="string"&&Va(A.material)}),Object.values(o.shared.materials).forEach(e=>Va(e))}function Zb(o){o.scene.environment.ambientLight.softShadows=!1,o.scene.environment.ambientLight.softShadowQuality="low",o.scene.objects.traverse((e,A)=>{(A.type==="DirectionalLight"||A.type==="SpotLight")&&(A.shadowResolution=1024,A.shadowRadius=1,A.depth=1e5)}),o.shared.penumbraSize=new Array(5).fill(.5)}function Jb(o){o.shared.audios=rr({},MA.prototype)}function _b(o){o.shared.videos=rr({},MA.prototype)}function $b(o){let e=o.shared.materials;Object.entries(e).forEach(([A,t])=>{if(!t.layers){let r={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"phong",alpha:.6,visible:!0,mode:0,specular:{r:.2,g:.2,b:.2},shininess:5},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(e,{[A]:r})}})}function A1(o){Object.entries(me(o.shared.images)).filter(t=>t[1].asset===!1).map(t=>t[0]).forEach(t=>{delete o.shared.images[t]}),Object.entries(me(o.shared.audios)).filter(t=>t[1].asset===!1).map(t=>t[0]).forEach(t=>{delete o.shared.audios[t]})}function e1(o){o.scene.publish.settings.web.preload=!1}function mp(o){o.layers&&o.layers.forEach(e=>{e.type==="depth"&&e.num!==void 0&&(e.colors=e.colors.slice(0,e.num),e.steps=e.steps.slice(0,e.num),delete e.num)})}function t1(o){o.shared.fonts=rr({},MA.prototype)}function r1(o){return o.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(A=>A.charAt(0).toUpperCase()+A.slice(1)).join(" ")}function o1(o){let e=[];o.scene.objects.traverse((A,t)=>{let r=t;if(r.type==="TextFrame"){let n=ue.defaultTwoLayerData("phong"),i=typeof r.color=="string"?o.shared.colors[r.color]:r.color;n.layers[1].data.color={r:i.r,g:i.g,b:i.b},n.layers[1].data.alpha=r.alpha;let a=r1(r.font);o.shared.fonts[a]===void 0&&(o.shared.fonts[a]={name:a});let l={name:r.name,...Ue.defaultData,...vr.defaultData,flatShading:!1,wireframe:!1,geometry:{...tr.defaultData("TextGeometry"),width:r.width,height:r.height,font:a,depth:0,horizontalAlign:r.horizontalAlign,verticalAlign:r.verticalAlign,fontSize:r.fontSize*1.40625,lineHeight:r.lineHeight/1.40625,letterSpacing:r.letterSpacing-1,text:r.text,textTransform:r.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:n,states:me(r.states),events:me(r.events),visible:r.visible,raycastLock:r.raycastLock,position:r.position,rotation:r.rotation,scale:r.scale,hiddenMatrix:r.hiddenMatrix},u=me(o.scene.objects).parent(A);o.scene.objects.insertAfter(u??null,A,[{id:A+"new",data:l,children:[]}]),e.push(A)}}),e.forEach(A=>{o.scene.objects.delete(A)})}function n1(o){let e={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};o.scene.objects.traverse((A,t)=>{t.events.forEach(r=>{if(!!e[Number(r.type)])if(Object.assign(r,{type:e[Number(r.type)]}),r.type==="Audio"&&"audioEvent"in r&&(Object.assign(r,{playAudio:r.audioEvent}),delete r.audioEvent),r.type==="GameControl")Object.assign(r,{gameActions:{idle:new mA,move:new mA,jump:new mA}});else{let n=new mA;Object.assign(r,{actions:n}),(r.type==="MouseDown"||r.type==="MouseUp"||r.type==="KeyDown"||r.type==="KeyUp")&&"url"in r&&n.push({fi:0,id:as.generateUUID(),data:{type:"Link",url:r.url,delay:0}}),"targets"in r&&(r.targets.forEach((i,a,l)=>{let u={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},s={easing:i.easing,duration:i.duration};i.easing===6?Object.assign(s,co(i,"mass","stiffness","damping","velocity")):i.easing===5&&Object.assign(s,{control1:{...i.control1},control2:{...i.control2}});let c={repeat:i.repeat?-1:0,delay:i.delay,delayDirection:i.delayDirection,direction:i.cycle&&i.rewind?"pingpong-rewind":i.cycle?"pingpong":"normal"},d={state:i.state,...c,...s},p={allowSlerp:!0,type:"Transition",object:i.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new mA({fi:0,id:as.generateUUID(),data:u},{fi:1,id:as.generateUUID(),data:d})};n.push({fi:l,id:a,data:p})}),delete r.targets)}})})}function i1(o){o.scene.objects.traverse((e,A)=>{function t(r,n){let i=new mA,a=[];if(A.events.forEach((l,u,s)=>{if(l.type==="Audio"&&l.trigger===n){let c;a.push(u),l.interaction==="play"?c={...co(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")&&(c={...co(l,"interaction","delay","object","playAudio"),type:"Audio"}),c&&i.push({fi:s,id:u,data:c})}}),a.forEach(l=>A.events.delete(l)),i.length){let l=A.events.find(u=>u.type===r)?.data;l?"actions"in l&&l.actions.insertBefore(null,i):A.events.insertBefore(null,[{id:as.generateUUID(),data:{type:r,actions:i}}])}}t("Start","start"),t("MouseDown","mouseDown"),t("MouseUp","mouseUp"),t("KeyDown","keyDown"),t("KeyUp","keyUp")})}function hp(o){let e=o.layers.find(A=>A.type==="light")?.data;if(e?.category==="basic"){let A=ce.defaultData("light","phong"),t=e;Object.assign(t,A),t.visible=!1}}function s1(o){ls(o,hp),cs(o,hp)}function a1(o){o.scene.objects.traverse((e,A)=>{A.type==="Mesh"&&A.geometry.type==="SubdivGeometry"&&(A.geometry.scaleBaked||(A.geometry.scaleBaked=[1,1,1]))})}function l1(o){o.scene.objects.traverse((e,A)=>{(A.type==="Empty"||A.type==="Mesh")&&A.cloner&&!A.cloner.randomnessObject&&!A.cloner.toObject&&!A.cloner.randomness&&(A.cloner={...A.cloner,toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}})})}var gp=25;function yp(o){let e=o.schema??0;e!==gp&&(console.warn("updating from ",e,"to ",gp),e<1&&(cs(o,dp),ls(o,dp),o.schema=1),e<2&&(kb(o),o.schema=2),e<3&&(Hb(o),o.schema=3),e<4&&(Wb(o),o.schema=4),e<5&&(qb(o),o.schema=5),e<6&&(Qb(o),o.schema=6),e<7&&(Yb(o),o.schema=7),e<8&&(Xb(o),o.schema=8),e<9&&(fp(o),o.schema=9),e<10&&(Kb(o),o.schema=10),e<11&&(Zb(o),o.schema=11),e<12&&(fp(o),o.schema=12),e<13&&(Jb(o),o.schema=13),e<14&&($b(o),o.schema=14),e<15&&(A1(o),o.schema=15),e<16&&(e1(o),o.schema=16),e<17&&(cs(o,mp),ls(o,mp),o.schema=17),e<18&&(cs(o,pp),ls(o,pp),o.schema=18),e<19&&(Ub(o),o.schema=19),e<20&&(t1(o),o1(o),o.schema=20),e<21&&(n1(o),i1(o),o.schema=21),e<22&&(s1(o),o.schema=22),e<23&&(a1(o),o.schema=23),e<24&&(l1(o),o.schema=24),e<25&&(_b(o),o.schema=25))}var us;(e=>e.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(us||(us={}));var xo=la(vp());import{Object3D as B1,Vector3 as xe,Euler as qa,MathUtils as zp,Matrix4 as xn}from"three";var c1=.5*(Math.sqrt(3)-1),fn=(3-Math.sqrt(3))/6,u1=1/3,it=1/6,rG=(Math.sqrt(5)-1)/4,oG=(5-Math.sqrt(5))/20,mn=o=>Math.floor(o)|0,bp=new Float64Array([1,1,-1,1,1,-1,-1,-1,1,0,-1,0,1,0,-1,0,0,1,0,-1,0,1,0,-1]),ja=new Float64Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]);function ds(o=Math.random){let e=Sp(o),A=new Float64Array(e).map(r=>bp[r%12*2]),t=new Float64Array(e).map(r=>bp[r%12*2+1]);return function(n,i){let a=0,l=0,u=0,s=(n+i)*c1,c=mn(n+s),d=mn(i+s),p=(c+d)*fn,f=c-p,m=d-p,h=n-f,x=i-m,y,b;h>x?(y=1,b=0):(y=0,b=1);let w=h-y+fn,v=x-b+fn,I=h-1+2*fn,S=x-1+2*fn,g=c&255,P=d&255,N=.5-h*h-x*x;if(N>=0){let L=g+e[P],B=A[L],k=t[L];N*=N,a=N*N*(B*h+k*x)}let O=.5-w*w-v*v;if(O>=0){let L=g+y+e[P+b],B=A[L],k=t[L];O*=O,l=O*O*(B*w+k*v)}let T=.5-I*I-S*S;if(T>=0){let L=g+1+e[P+1],B=A[L],k=t[L];T*=T,u=T*T*(B*I+k*S)}return 70*(a+l+u)}}function wp(o=Math.random){let e=Sp(o),A=new Float64Array(e).map(n=>ja[n%12*3]),t=new Float64Array(e).map(n=>ja[n%12*3+1]),r=new Float64Array(e).map(n=>ja[n%12*3+2]);return function(i,a,l){let u,s,c,d,p=(i+a+l)*u1,f=mn(i+p),m=mn(a+p),h=mn(l+p),x=(f+m+h)*it,y=f-x,b=m-x,w=h-x,v=i-y,I=a-b,S=l-w,g,P,N,O,T,L;v>=I?I>=S?(g=1,P=0,N=0,O=1,T=1,L=0):v>=S?(g=1,P=0,N=0,O=1,T=0,L=1):(g=0,P=0,N=1,O=1,T=0,L=1):I<S?(g=0,P=0,N=1,O=0,T=1,L=1):v<S?(g=0,P=1,N=0,O=0,T=1,L=1):(g=0,P=1,N=0,O=1,T=1,L=0);let B=v-g+it,k=I-P+it,X=S-N+it,eA=v-O+2*it,nA=I-T+2*it,U=S-L+2*it,q=v-1+3*it,Q=I-1+3*it,j=S-1+3*it,E=f&255,G=m&255,D=h&255,H=.6-v*v-I*I-S*S;if(H<0)u=0;else{let R=E+e[G+e[D]];H*=H,u=H*H*(A[R]*v+t[R]*I+r[R]*S)}let Y=.6-B*B-k*k-X*X;if(Y<0)s=0;else{let R=E+g+e[G+P+e[D+N]];Y*=Y,s=Y*Y*(A[R]*B+t[R]*k+r[R]*X)}let W=.6-eA*eA-nA*nA-U*U;if(W<0)c=0;else{let R=E+O+e[G+T+e[D+L]];W*=W,c=W*W*(A[R]*eA+t[R]*nA+r[R]*U)}let F=.6-q*q-Q*Q-j*j;if(F<0)d=0;else{let R=E+1+e[G+1+e[D+1]];F*=F,d=F*F*(A[R]*q+t[R]*Q+r[R]*j)}return 32*(u+s+c+d)}}function Sp(o){let A=new Uint8Array(512);for(let t=0;t<512/2;t++)A[t]=t;for(let t=0;t<512/2-1;t++){let r=t+~~(o()*(256-t)),n=A[t];A[t]=A[r],A[r]=n}for(let t=256;t<512;t++)A[t]=A[t-256];return A}import{Triangle as d1}from"three";var He=new d1,ps=class{constructor(e){this.weightAttribute=null;let A=e.geometry;if(!A.isBufferGeometry||A.attributes.position.itemSize!==3)throw new Error("THREE.MeshSurfaceSampler: Requires BufferGeometry triangle mesh.");A.index&&(A=A.toNonIndexed()),this.geometry=A,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.distribution=null}build(){let e=this.positionAttribute,A=new Float32Array(e.count/3);for(let r=0;r<e.count;r+=3){let n=1;He.a.fromBufferAttribute(e,r),He.b.fromBufferAttribute(e,r+1),He.c.fromBufferAttribute(e,r+2),n*=He.getArea(),A[r/3]=n}this.distribution=new Float32Array(e.count/3);let t=0;for(let r=0;r<A.length;r++)t+=A[r],this.distribution[r]=t;return this}setRandomGenerator(e){return this.randomFunction=e,this}sample(e,A){if(this.distribution){let t=this.distribution[this.distribution.length-1],r=this.binarySearch(this.randomFunction()*t);return this.sampleFace(r,e,A)}}binarySearch(e){if(!this.distribution)return 0;let A=this.distribution,t=0,r=A.length-1,n=-1;for(;t<=r;){let i=Math.ceil((t+r)/2);if(i===0||A[i-1]<=e&&A[i]>e){n=i;break}else e<A[i]?r=i-1:t=i+1}return n}sampleFace(e,A,t){let r=this.randomFunction(),n=this.randomFunction();return r+n>1&&(r=1-r,n=1-n),He.a.fromBufferAttribute(this.positionAttribute,e*3),He.b.fromBufferAttribute(this.positionAttribute,e*3+1),He.c.fromBufferAttribute(this.positionAttribute,e*3+2),A.set(0,0,0).addScaledVector(He.a,r).addScaledVector(He.b,n).addScaledVector(He.c,1-(r+n)),He.getNormal(t),this}};import{Matrix4 as b1,Object3D as w1}from"three";import{Matrix4 as Mp}from"three";import{Object3D as m1,Matrix4 as h1}from"three";import{HemisphereLight as Tp}from"three";function KA(o,e){return e.color(o)}var za=o=>"isEntity"in o,st=o=>"isAbstractMesh"in o,at=o=>o!==null&&o.objectType==="BooleanObject",Np=o=>o.objectType==="CombinedCamera";var fs=o=>"objectHelper"in o;function p1(o,e){let A=!1;e.position&&(o.position.fromArray(e.position),A=!0),e.rotation&&(o.rotation.fromArray(e.rotation),A=!0),e.scale&&(A=!0,o.scale.fromArray(e.scale)),e.hiddenMatrix!==void 0&&"hiddenMatrix"in o&&(A=!0,o.hiddenMatrix.fromArray(e.hiddenMatrix??Yt.identity)),A&&(o.updateMatrix(),at(o.parent)&&st(o)&&o.invalidateDownstreamBooleanData(!0).recomputeBoolean()),e.position&&e.rotation&&e.scale&&e.hiddenMatrix!==void 0&&o.updateWorldMatrix(!1,!0),o.objectType==="CombinedCamera"&&(e.isUpVectorFlipped!==void 0&&(o.isUpVectorFlipped=e.isUpVectorFlipped),o.updateUp())}function f1(o,e){p1(o,e),e.name!==void 0&&(o.name=e.name),e.visible!==void 0&&(o.visible=e.visible)}function Ip(o,e,A){f1(o,e),e.color!==void 0&&(o.color=KA(e.color,A)),e.intensity!==void 0&&(o.intensity=e.intensity),e.shadows!==void 0&&!(o instanceof Tp)&&(o.castShadow=e.shadows),o.shadow&&!(o instanceof Tp)&&e.depth!==void 0&&(o.shadow.camera.far=e.depth,o.shadow.needsUpdate=!0)}function Pp(o,e){o.shadow.camera.right=e/2,o.shadow.camera.left=-e/2,o.shadow.camera.top=e/2,o.shadow.camera.bottom=-e/2,o.shadow.needsUpdate=!0}var ms=o=>class extends o{hasEntityChild(){return this.children.some(A=>za(A))}isDescendantOf(A){A instanceof m1&&(A=A.uuid);let t=this;for(;t.parent;){if(t.parent.uuid===A)return!0;t=t.parent}return!1}attach(A,t){this.updateWorldMatrix(!0,!1);let r=new h1().copy(this.matrixWorld).invert();return A.parent!==null&&(A.parent.updateWorldMatrix(!0,!1),r.multiply(A.parent.matrixWorld)),za(A)?A.hiddenMatrix.premultiply(r):A.applyMatrix4(r),A.updateWorldMatrix(!1,!1),this.add(A),t!==void 0&&(this.children.pop(),this.children.splice(t,0,A)),this}copy(A,t=!0){if(this.name=A.name,this.up.copy(A.up),this.position.copy(A.position),this.rotation.order=A.rotation.order,this.quaternion.copy(A.quaternion),this.scale.copy(A.scale),this.matrix.copy(A.matrix),this.matrixWorld.copy(A.matrixWorld),this.matrixAutoUpdate=A.matrixAutoUpdate,this.matrixWorldNeedsUpdate=A.matrixWorldNeedsUpdate,this.layers.mask=A.layers.mask,this.visible=A.visible,this.castShadow=A.castShadow,this.receiveShadow=A.receiveShadow,this.frustumCulled=A.frustumCulled,this.renderOrder=A.renderOrder,this.userData=JSON.parse(JSON.stringify(A.userData)),t===!0)for(let r=0;r<A.children.length;r++){let n=A.children[r];this.add(n.clone())}return this}};import{Box3 as Cp,Line3 as g1,Matrix4 as ka,Vector3 as Ee}from"three";var mo=new Cp,Be=new Ee,lt=new Ee,ho=new ka,Lp=[new Ee(-1,1,1),new Ee(-1,-1,1),new Ee(1,-1,1),new Ee(1,1,1),new Ee(-1,1,-1),new Ee(-1,-1,-1),new Ee(1,-1,-1),new Ee(1,1,-1)],y1=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],x1=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function v1(o,e,A=0,t=e.count){let r=1/0,n=1/0,i=1/0,a=-1/0,l=-1/0,u=-1/0;for(let s=A;s<t;s++){let c=e.getX(s),d=e.getY(s),p=e.getZ(s);c<r&&(r=c),d<n&&(n=d),p<i&&(i=p),c>a&&(a=c),d>l&&(l=d),p>u&&(u=p)}return o.min.set(r,n,i),o.max.set(a,l,u),o}var Op=(o,e,A)=>{if(st(o)){let t=o.geometry.userData.parameters,r=o.geometry.getAttribute("position"),n=o.geometry.userData.type;n==="SubdivGeometry"?Be.copy(o.originalGeometry.boundingSphere.center):n==="TextGeometry"||po.is2DParametricMesh(n)?Be.set(0,0,t.depth*.5):n==="ConeGeometry"||n==="CubeGeometry"||n==="CylinderGeometry"||n==="DodecahedronGeometry"||n==="HelixGeometry"||n==="IcosahedronGeometry"||n==="PyramidGeometry"||n==="SphereGeometry"||n==="PlaneGeometry"||n==="BackdropGeometry"||n==="TorusGeometry"||n==="TorusKnotGeometry"?Be.set(0,0,0):r!==void 0&&(v1(mo,r,o.geometry.drawRange.start,o.geometry.drawRange.count<1/0?o.geometry.drawRange.count:r.count),mo.getCenter(Be)),o.forceComputeSize?mo.getSize(lt).multiplyScalar(.5):lt.set(t.width,t.height,t.depth??0).multiplyScalar(.5)}else if(fs(o)&&o.objectHelper.visible){let t=o.geometryHelper.getAttribute("position");mo.setFromArray(t.array),mo.getCenter(Be),mo.getSize(lt).multiplyScalar(.5)}else Be.setScalar(0),lt.setScalar(0);ho.copy(e).multiply(o.matrixWorld),lt.x===0&<.y===0&<.z===0?A.push(new Ee(Be.x,Be.y,Be.z).applyMatrix4(ho)):Lp.forEach(t=>{A.push(t.clone().multiply(lt).add(Be).applyMatrix4(ho))})},hn=class extends Cp{constructor(){super(...arguments);this.matrix=new ka;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(A){return super.copy(A),this.matrix.copy(A.matrix),this.vertices=A.vertices.map(t=>t.clone()),this.faces=A.faces.map(t=>t.clone()),this.edges=A.edges.map(t=>t.clone()),this.centerEdges=A.centerEdges.map(t=>t.clone()),this}setFromObjectSize(A,t=!1){A.updateWorldMatrix(!1,t),this.makeEmpty(),this.matrix.copy(A.matrixWorld);let r=new ka().copy(A.matrixWorld).invert();return this.expandByObjectSize(A,r,t)}expandByObjectSize(A,t,r=!1){let n=[];return r===!0?A.traverseEntity(i=>{i.visible&&Op(i,t,n)}):Op(A,t,n),this.setFromPoints(n)}getCenter(A){return A=super.getCenter(A),A.applyMatrix4(this.matrix),A}getPositionToCenter(A){return A=super.getCenter(A),A.applyMatrix4(ho.copy(this.matrix).setPosition(0,0,0)),A}computeVertices(){this.getSize(lt).multiplyScalar(.5),this.getCenter(Be),ho.copy(this.matrix).setPosition(Be),this.vertices=Lp.map(A=>A.clone().multiply(lt).applyMatrix4(ho))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=y1.map(([A,t])=>new g1(this.vertices[A],this.vertices[t])),this.centerEdges=this.edges.map(A=>A.getCenter(new Ee))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=x1.map(([A,t])=>this.vertices[A].clone().add(this.vertices[t]).multiplyScalar(.5))}};var De=o=>"isEntity"in o,Bp=o=>"isAbstractMesh"in o,Ge=o=>class extends ms(o){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new Mp;this._singleBBox=new hn;this._recursiveBBox=new hn;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1;this.currentState=null;this.currentTransitionAction=null}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}resetBBoxNeedsUpdate(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0,this.traverseAncestors(t=>{De(t)&&(t.singleBBoxNeedsUpdate=!0,t.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(t=>{t.singleBBoxNeedsUpdate=!0,t.recursiveBBoxNeedsUpdate=!0})}traverseEntity(t){t(this);for(let r of this.children)De(r)&&r.traverseEntity(t)}traverseVisibleEntity(t){t(this);for(let r of this.children)De(r)&&r.visible&&r.traverseVisibleEntity(t)}updateMatrix(){super.updateMatrix(),this.dispatchEvent({type:"updateMatrix"})}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(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,t=!0);for(let r of this.children)r.updateMatrixWorld(t)}updateWorldMatrix(t,r){let n=this.parent;if(t&&n!==null&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),r)for(let i of this.children)i.updateWorldMatrix(!1,!0)}clone(t){return new this.constructor().copy(this,t)}copy(t,r=!0){if(super.copy(t,!1),this.raycastLock=t.raycastLock,this.scaleLock=t.scaleLock,this.hiddenMatrix.copy(t.hiddenMatrix),r===!0)for(let n of t.children)De(n)&&this.add(n.clone());return this}keepChildrenMatrixWorld(){let t=new Mp,r=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),t.copy(this.matrixWorld).invert(),t.multiply(r);for(let n of this.children)De(n)&&n.hiddenMatrix.premultiply(t)}toObjectTransformState(t=[]){this.updateWorldMatrix(!0,!1);let r={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return lo(r,t)}fromObjectTransformState(t){return t.position&&this.position.fromArray(t.position),t.rotation&&this.rotation.fromArray(t.rotation),t.scale&&this.scale.fromArray(t.scale),t.hiddenMatrix&&this.hiddenMatrix.fromArray(t.hiddenMatrix),this.updateMatrix(),this}toState(t=[]){let r={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(t)};return lo(r,t)}fromState(t,r){return t.name&&(this.name=t.name),t.raycastLock!==void 0&&(this.raycastLock=t.raycastLock),t.type!=="OrthographicCamera"&&t.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),t.visible!==void 0&&(this.visible=t.visible),this.fromObjectTransformState(t),this}};var Ua=class extends w1{},S1=o=>o.type==="Mesh",ct=class extends Ua{constructor(A){super();this.object=A;this.hiddenMatrix=new b1;this.uuidOrigin=A.uuid,this.matrixAutoUpdate=!0;for(let t of this.object.children)if(De(t)){let r=new ct(t);r.visible=!0,this.add(r),r.matrixAutoUpdate=!1,r.matrix=t.matrix.clone(),r.matrix.premultiply(t.hiddenMatrix)}}get castShadow(){return this.object.castShadow}set castShadow(A){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(A){}get isMesh(){return S1(this.object)}updateMatrixWorld(A){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||A)&&(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,A=!0);for(let t of this.children)t.updateMatrixWorld(A)}get isLight(){return this.object.isLight}get layers(){return this.object.layers}set layers(A){}get isCamera(){return!1}get geometry(){if(this.object.geometry)return this.object.geometry}get material(){if(this.object.material)return this.object.material}};var T1,go=new Promise(o=>{T1=o});import{Triangle as N1,Vector3 as wr}from"three";var Ep=-1,I1=1,Dp={x:[1,0,0],"-x":[-1,0,0],y:[0,1,0],"-y":[0,-1,0],z:[0,0,1],"-z":[0,0,-1]},Gp={polygon_center:0,edge:1,vertex:2},gn=(o,e)=>(A,t)=>!e||A===0||o===0?0:o*t/100,fA=(o,e)=>{let A=Math.abs(e),t=A*-1;return(o-Ep)*(A-t)/(I1-Ep)+t};function Rp(o){let e=[],A={};for(var t=0,r=o.length;t<r;t++){var n=JSON.stringify(o[t].pos.map(i=>Math.round(i*1e4)/1e4));A[n]||(e.push(o[t]),A[n]=!0)}return e}var P1=new wr,hs=new wr,O1=new wr,C1=new wr;function yo(o,e){let A=O1.fromArray(o),t=C1.fromArray(e);hs.copy(t).sub(A);let r=hs.length();return hs.normalize().multiplyScalar(r*.5),P1.copy(A).add(hs).toArray()}var Re=new N1,gs=new wr,ys=new wr,br=new wr;function Vp(o){let e=[];for(let A=0;A<=o.index.count;A++)if(gs.fromArray(o.index.array,A*3),Re.setFromAttributeAndIndices(o.attributes.position,gs.x,gs.y,gs.z),Re.getNormal(ys),Re.getMidpoint(br),!(isNaN(br.x)||isNaN(br.y)||isNaN(br.z))){let{a:t,b:r,c:n}=Re,i=t.toArray(),a=r.toArray(),l=n.toArray(),u=t.distanceTo(r),s=r.distanceTo(n),c=n.distanceTo(t),d=yo(i,a),p=yo(a,l),f=yo(l,i),m=[u,s,c],h=Math.max(...m),x=m.filter(w=>Math.round(w)===Math.round(h)).length>1,y=[],b=Re.getMidpoint(br).toArray();h===u&&!x&&(y=[p,f,f],b=d),h===s&&!x&&(y=[d,f,f],b=p),h===c&&!x&&(y=[d,p,p],b=f),x&&(y=[d,p,f]),e.push({vertices:[i,a,l],faceCenters:y,midpoint:b,norm:Re.getNormal(ys).toArray()})}return e}function Fp(o){let e=[],{position:A}=o.attributes;for(let t=0;t<A.count;t++){Re.setFromAttributeAndIndices(A,t*3,t*3+1,t*3+2),Re.getNormal(ys),Re.getMidpoint(br);let r=Re.a.toArray(),n=Re.b.toArray(),i=Re.c.toArray();e.push({vertices:[r,n,i],faceCenters:[yo(r,n),yo(n,i),yo(i,r)],midpoint:br.toArray(),norm:ys.toArray()})}return e}var L1=4,M1=.5,Ha=o=>.5*(1-Math.cos(o*Math.PI)),Wa=class{constructor(){this.perlin=new Array(4095+1)}noise(e,A=0,t=0){if(this.perlin==null){this.perlin=new Array(4095+1);for(let x=0;x<4095+1;x++)this.perlin[x]=Math.random()}e<0&&(e=-e),A<0&&(A=-A),t<0&&(t=-t);let r=Math.floor(e),n=Math.floor(A),i=Math.floor(t),a=e-r,l=A-n,u=t-i,s,c,d=0,p=.5,f,m,h;for(let x=0;x<L1;x++){let y=r+(n<<4)+(i<<8);s=Ha(a),c=Ha(l),f=this.perlin[y&4095],f+=s*(this.perlin[y+1&4095]-f),m=this.perlin[y+16&4095],m+=s*(this.perlin[y+16+1&4095]-m),f+=c*(m-f),y+=256,m=this.perlin[y&4095],m+=s*(this.perlin[y+1&4095]-m),h=this.perlin[y+16&4095],h+=s*(this.perlin[y+16+1&4095]-h),m+=c*(h-m),f+=Ha(u)*(m-f),d+=f*p,p*=M1,r<<=1,a*=2,n<<=1,l*=2,i<<=1,u*=2,a>=1&&(r++,a--),l>=1&&(n++,l--),u>=1&&(i++,u--)}return d}noiseSeed(e){let A=(()=>{let i,a;return{setSeed(l){a=i=(l??Math.random()*4294967296)>>>0},getSeed(){return i},rand(){return a=(1664525*a+1013904223)%4294967296,a/4294967296}}})();A.setSeed(e),this.perlin=new Array(4095+1);for(let t=0;t<4095+1;t++)this.perlin[t]=A.rand()}},jp=Wa;var de=1e-4,ut,Hp,Wp,qp,kp=new xe,Up=new xe;go.then(o=>{ut=o,Hp=[ut.get_face_center,ut.get_edge_midpoint,ut.get_vertex_position],Wp=[ut.get_face_normal,ut.get_edge_normal,ut.get_vertex_normal],qp=[ut.face_count,ut.edge_count,ut.vertex_count]});var E1=new xn,D1=new xn,or=new xe,Sr=new xe,yn=new xe,Qa=new xe,G1=new xe,R1=new xe;var Dt=new jp,Gt=class extends B1{constructor(A,t={}){super();this.objectForSample=void 0;this.object=A;let r=A.recursiveBBox.getSize(new xe),n=.1;this.parameters=yr.defaultData(r.toArray(),n),ao(this.parameters,t),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(A){this.parameters.hideBase=A}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters);break;case"toObject":this._updateToObject(this.parameters)}this.parameters.type==="toObject"?this.objectForSample&&this.objectForSample.children.forEach(A=>A.updateMatrix()):this.children.forEach(A=>A.updateMatrix())}_updateCount(A){let t;if(A!==void 0?t=A:t=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count,this.parameters.type==="toObject"&&!this.parameters.toObject.object&&(t=0),this.parameters.type==="toObject"&&this.objectForSample){for(let n=0,i=this.children.length;n<i;++n)this.remove(this.children[0]);let r=[...this.objectForSample.children].filter(n=>n instanceof ct&&n.uuidOrigin===this.object.uuid);if(r.length===t)return;if(r.length<t)for(let n=0,i=t-r.length;n<i;++n){let a=new ct(this.object);a.visible=!0,this.objectForSample.add(a),this.parameters.hideBase&&this.setHideBase(!0)}else for(let n=0,i=r.length-t;n<i;++n)this.objectForSample.remove(r[n])}else{if(this.children.length===t)return;if(this.children.length<t)for(let r=0,n=t-this.children.length;r<n;++r){let i=new ct(this.object);i.visible=!0,this.add(i),this.parameters.hideBase&&this.setHideBase(!0)}else for(let r=0,n=this.children.length-t;r<n;++r)this.remove(this.children[0])}}_updateRadial(A){let t=A.radial,r=t.start*zp.DEG2RAD,n=t.end*zp.DEG2RAD,i=r-n,a=new qa(t.rotation[0],t.rotation[1],t.rotation[2]),l;switch(t.axis){case"z":l=new xe(0,0,1);break;case"y":l=new xe(0,1,0);break;default:case"x":l=new xe(1,0,0);break}let u=A.randomnessObject,s=u.noiseType==="perlin";Dt.noiseSeed(u.seed);let c=ds((0,xo.default)(u.seed)),d=gn(u.strength,this.parameters.randomness);for(let[p,f]of this.children.entries()){let m=p*(u.freqScale/10)+u.movement,h=s?Dt.noise(m):c(m,m);f.scale.x=t.scale[0]+d(p,fA(h,u.scale[0]))||de,f.scale.y=t.scale[1]+d(p,fA(h,u.scale[1]))||de,f.scale.z=t.scale[2]+d(p,fA(h,u.scale[2]))||de,f.position.setScalar(0);let x=i/A.count*p-r;switch(t.axis){case"x":f.rotation.set(0,x,0);break;case"y":f.rotation.set(0,0,x);break;case"z":f.rotation.set(x,0,0);break}f.translateOnAxis(l,t.radius),f.position.x+=t.position[0]+d(p,fA(h,u.position[0])),f.position.y+=t.position[1]+d(p,fA(h,u.position[1])),f.position.z+=t.position[2]+d(p,fA(h,u.position[2]));let y=d(p,fA(h,u.rotation[0])),b=d(p,fA(h,u.rotation[1])),w=d(p,fA(h,u.rotation[2]));t.alignment===!0?(f.rotation.x+=a.x+y,f.rotation.y+=a.y+b,f.rotation.z+=a.z+w):f.rotation.set(a.x+y,a.y+b,a.z+w)}}_updateLinear(A){if(A.type!=="linear")throw new Error;let t=A.linear,r=new qa(t.rotation[0],t.rotation[1],t.rotation[2]),n=A.randomnessObject,i=n.noiseType==="perlin";Dt.noiseSeed(n.seed);let a=ds((0,xo.default)(n.seed)),l=gn(n.strength,this.parameters.randomness);for(let[u,s]of this.children.entries()){let c=u*(n.freqScale/10)+n.movement,d=i?Dt.noise(c):a(c,c),p=l(u,fA(d,n.rotation[0])),f=l(u,fA(d,n.rotation[1])),m=l(u,fA(d,n.rotation[2]));s.scale.x=1+(t.scale[0]-1)*u+l(u,fA(d,n.scale[0]))||de,s.scale.y=1+(t.scale[1]-1)*u+l(u,fA(d,n.scale[1]))||de,s.scale.z=1+(t.scale[2]-1)*u+l(u,fA(d,n.scale[2]))||de,s.rotation.x=r.x*u+p,s.rotation.y=r.y*u+f,s.rotation.z=r.z*u+m,s.position.x=t.position[0]*u+l(u,fA(d,n.position[0])),s.position.y=t.position[1]*u+l(u,fA(d,n.position[1])),s.position.z=t.position[2]*u+l(u,fA(d,n.position[2]))}}_updateGrid(A){let t=0,r=A.grid,n=A.randomnessObject,i=gn(n.strength,this.parameters.randomness),a=n.noiseType==="perlin";Dt.noiseSeed(n.seed);let l=wp((0,xo.default)(n.seed));if(r.useCenter===!0){let u={x:r.count[0]%2===0?2:1,y:r.count[1]%2===0?2:1,z:r.count[2]%2===0?2:1},s=new xe(r.size[0]*(r.count[0]-u.x)*.5,r.size[1]*(r.count[1]-u.y)*.5,r.size[2]*(r.count[2]-u.z)*.5);for(let c=0;c<r.count[0];c++)for(let d=0;d<r.count[1];d++)for(let p=0;p<r.count[2];p++){let f=[(c+1)*(n.freqScale/10)+n.movement,(d+1)*(n.freqScale/10)+n.movement,(p+1)*(n.freqScale/10)+n.movement],m=a?Dt.noise(...f):l(...f),h=this.children[t++];h.scale.x=1+i(t,fA(m,n.scale[0]))||de,h.scale.y=1+i(t,fA(m,n.scale[1]))||de,h.scale.z=1+i(t,fA(m,n.scale[2]))||de;let x=i(t,fA(m,n.rotation[0])),y=i(t,fA(m,n.rotation[1])),b=i(t,fA(m,n.rotation[2]));h.rotation.set(x,y,b),h.position.x=r.size[0]*c-s.x+i(t,fA(m,n.position[0])),h.position.y=r.size[1]*d-s.y+i(t,fA(m,n.position[1])),h.position.z=r.size[2]*p-s.z+i(t,fA(m,n.position[2]))}}else for(let u=0;u<r.count[0];u++)for(let s=0;s<r.count[1];s++)for(let c=0;c<r.count[2];c++){let d=[(u+1)*(n.freqScale/10)+n.movement,(s+1)*(n.freqScale/10)+n.movement,(c+1)*(n.freqScale/10)+n.movement],p=a?Dt.noise(...d):l(...d),f=this.children[t++];f.scale.x=1+i(t,fA(p,n.scale[0]))||de,f.scale.y=1+i(t,fA(p,n.scale[1]))||de,f.scale.z=1+i(t,fA(p,n.scale[2]))||de;let m=i(t,fA(p,n.rotation[0])),h=i(t,fA(p,n.rotation[1])),x=i(t,fA(p,n.rotation[2]));f.rotation.set(m,h,x),f.position.x=r.size[0]*u+i(t,fA(p,n.position[0])),f.position.y=-r.size[1]*s+i(t,fA(p,n.position[1])),f.position.z=-r.size[2]*c+i(t,fA(p,n.position[2]))}}_updateToObject(A){if(A.type!=="toObject")throw new Error;let{toObject:t}=A,r=new qa(t.rotation[0],t.rotation[1],t.rotation[2]),n=A.randomnessObject,i=n.noiseType==="perlin";Dt.noiseSeed(n.seed);let a=ds((0,xo.default)(n.seed)),l=gn(n.strength,this.parameters.randomness);if(!t.object){for(let[,x]of this.children.entries())x.position.set(0,0,0),x.scale.setScalar(1),x.rotation.set(0,0,0);this.objectForSample=void 0;return}if(!this.objectForSample)return;let u=this.getSubdivData(),s=[],c=x=>{let y=x.length,b=x.map(I=>I[0]).reduce((I,S)=>I+S,0),w=x.map(I=>I[1]).reduce((I,S)=>I+S,0),v=x.map(I=>I[2]).reduce((I,S)=>I+S,0);return[b/y,w/y,v/y]},d=x=>Math.round(x*1e6)/1e6;u.forEach(x=>{let y=u.filter(b=>d(x.pos[0])===d(b.pos[0])&&d(x.pos[1])===d(b.pos[1])&&d(x.pos[2])===d(b.pos[2]));y.length>1?s.push({pos:x.pos,norm:c(y.map(b=>b.norm))}):s.push(x)});let p=Rp(s);if(u.length>0){let x=Math.round(p.length*t.count/100);this._updateCount(x)}this.objectForSample.updateMatrixWorld();let f=new ps(this.objectForSample).build(),m=Dp[t.axis],h=this.objectForSample.children.filter(x=>x instanceof ct&&x.uuidOrigin===this.object.uuid);f.setRandomGenerator((0,xo.default)(this.object.uuid+t.seed));for(let[x,y]of h.entries()){let b=x*(n.freqScale/10)+n.movement,w=i?Dt.noise(b):a(b,b),v=l(x,fA(w,n.rotation[0])),I=l(x,fA(w,n.rotation[1])),S=l(x,fA(w,n.rotation[2]));t.spreadType==="random"?f.sample(yn,Qa):(p.length&&(yn.fromArray(p[x].pos),Qa.fromArray(p[x].norm)),this.objectForSample.objectType==="SubdivObject"&&yn.applyMatrix4(E1.copy(this.objectForSample.matrixWorld).invert())),yn.applyMatrix4(this.object.hiddenMatrix.clone().invert()),y.position.copy(yn),or.fromArray(m);let g=t.align==="normal"?Qa:this.object.getWorldDirection(R1),P=Sr.fromArray(t.position);Sr.x+=Sr.x+l(x,fA(w,n.position[0])),Sr.y+=Sr.y+l(x,fA(w,n.position[1])),Sr.z+=Sr.z+l(x,fA(w,n.position[2]));let N=Math.acos(g.dot(or)),O=G1.crossVectors(or,g).normalize(),T=D1.makeRotationAxis(O,N),L=g.clone().cross(this.object.up).normalize(),B=L.clone().cross(g).normalize(),k=new xn().makeBasis(L,g,B),X=new xe(or.y,or.z,or.x).normalize(),eA=X.clone().cross(or).normalize(),nA=new xn().makeBasis(X,or,eA).invert(),U=new xn().multiplyMatrices(k,nA);y.rotation.setFromRotationMatrix(U),P.applyMatrix4(T),y.position.add(P),y.rotation.x=y.rotation.x+r.x+v,y.rotation.y=y.rotation.y+r.y+I,y.rotation.z=y.rotation.z+r.z+S,y.scale.setScalar(1),y.scale.x=y.scale.x+t.scale[0]+l(x,fA(w,n.scale[0]))||de,y.scale.y=y.scale.y+t.scale[1]+l(x,fA(w,n.scale[1]))||de,y.scale.z=y.scale.z+t.scale[2]+l(x,fA(w,n.scale[2]))||de,y.scale.multiply(this.object.scale),y.hiddenMatrix=this.object.hiddenMatrix}}setObjectForSample(A){this.objectForSample=A}getSubdivData(){if(!this.objectForSample)return[];let A=this.parameters.toObject.spreadType;if(A==="random")return[];if(this.objectForSample.objectType==="SubdivObject"){let t=this.objectForSample,r=Gp[A],n=qp[r],i=Hp[r],a=Wp[r],l=[],u=n(t.subdivPointer);for(let s=0;s<=u-1;s++){let c=i(t.subdivPointer,s),d=a(t.subdivPointer,s);kp.fromArray(c).applyMatrix4(t.matrixWorld),Up.fromArray(d),l.push({pos:kp.toArray(),norm:Up.toArray()})}return l}else return(this.objectForSample.geometry.index?Vp(this.objectForSample.geometry):Fp(this.objectForSample.geometry)).map((r,n)=>A==="polygon_center"?{pos:r.midpoint,norm:r.norm}:A==="vertex"?[{pos:r.vertices[0],norm:r.norm},{pos:r.vertices[1],norm:r.norm},{pos:r.vertices[2],norm:r.norm}]:A==="edge"?[{pos:r.faceCenters[0],norm:r.norm},{pos:r.faceCenters[1],norm:r.norm},{pos:r.faceCenters[2],norm:r.norm}]:[]).flat()}removeSampleObjectClones(){if(this.objectForSample)for(var A=this.objectForSample.children.length-1;A>=0;A--){let t=this.objectForSample.children[A];t instanceof ct&&t.uuidOrigin===this.object.uuid&&this.objectForSample.remove(t)}}fromClonerState(A){if(!A)return this;A.hideBase!==void 0&&this.setHideBase(A.hideBase);let t=A.hasOwnProperty("type");return A.toObject?.hasOwnProperty("object")&&!!this.parameters.toObject.object&&!A.toObject.object&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),this.parameters.type==="toObject"&&(t?A.type!=="toObject":!1)&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),ao(this.parameters,A),this.update(),this}};import{HemisphereLight as tN,Scene as rN,Vector3 as oN,Fog as nN,Box3 as iN}from"three";import{Camera as vT,OrthographicCamera as bT,PerspectiveCamera as wT,Vector3 as Je,Object3D as Cm,Quaternion as ST}from"three";import{BoxGeometry as V1}from"three";var dt=o=>{var e;return e=class extends o{constructor(){super(...arguments);this.isObjectHelper=!0}},e.geometryHelper=new V1(30,30,30),e};import{Camera as U1,LineSegments as H1,BufferGeometry as W1,LineBasicMaterial as q1,Color as Xa,Vector3 as Q1,Float32BufferAttribute as Yp}from"three";import{Ray as F1,Sphere as j1,Matrix4 as z1,Vector3 as Rt}from"three";var xs=new F1,Ya=new j1,Qp=new z1,pt=(o,e,A,t,r=!1)=>{let n=e,i=o.matrixWorld;if(n.boundingSphere===null&&n.computeBoundingSphere(),Ya.copy(n.boundingSphere),Ya.applyMatrix4(i),A.ray.intersectsSphere(Ya)===!1||(Qp.copy(i).invert(),xs.copy(A.ray).applyMatrix4(Qp),n.boundingBox!==null&&xs.intersectsBox(n.boundingBox)===!1))return;let a,l,u,s,c=n.index,d=n.attributes.position,p=n.drawRange,f,m;if(r===!1){let x=Math.max(0,p.start),y=Math.min(c.count,p.start+p.count);for(f=x,m=y;f<m;f+=3)if(l=c.getX(f),u=c.getX(f+1),s=c.getX(f+2),a=h(o,A,xs,d,l,u,s),a){a.faceIndex=Math.floor(f/3),t.push(a);return}}else{let y=n.attributes.position,b=new Rt,w=new Rt,v=new Rt,I=new Rt,S=2,P=1/((o.scale.x+o.scale.y+o.scale.z)/3),N=P*P,O=Math.max(0,p.start),T=Math.min(y.count,p.start+p.count);for(let L=O,B=T-1;L<B;L+=S){if(b.fromBufferAttribute(y,L),w.fromBufferAttribute(y,L+1),xs.distanceSqToSegment(b,w,I,v)>N)continue;I.applyMatrix4(o.matrixWorld);let X=A.ray.origin.distanceTo(I);X<A.near||X>A.far||t.push({distance:X,point:v.clone().applyMatrix4(o.matrixWorld),object:o})}}function h(x,y,b,w,v,I,S){let g=new Rt,P=new Rt,N=new Rt,O=new Rt,T=new Rt;if(g.fromBufferAttribute(w,v),P.fromBufferAttribute(w,I),N.fromBufferAttribute(w,S),b.intersectTriangle(g,P,N,!1,O)===null)return null;T.copy(O),T.applyMatrix4(x.matrixWorld);let B=y.ray.origin.distanceTo(T);return B<y.near||B>y.far?null:{faceIndex:1,distance:B,point:T.clone(),object:x}}};var vs=new Q1,Ve=new U1,Ka=class extends H1{constructor(A){let t=new W1,r=new q1({color:16777215,vertexColors:!0,toneMapped:!1}),n=[],i=[],a={},l=new Xa(15711266),u=new Xa(15711266),s=new Xa(2857471);c("n1","n2",l),c("n2","n4",l),c("n4","n3",l),c("n3","n1",l),c("f1","f2",l),c("f2","f4",l),c("f4","f3",l),c("f3","f1",l),c("n1","f1",l),c("n2","f2",l),c("n3","f3",l),c("n4","f4",l),c("p","n1",u),c("p","n2",u),c("p","n3",u),c("p","n4",u),c("u1","u2",s),c("u2","u3",s),c("u3","u1",s);function c(p,f,m){d(p,m),d(f,m)}function d(p,f){n.push(0,0,0),i.push(f.r,f.g,f.b),a[p]===void 0&&(a[p]=[]),a[p].push(n.length/3-1)}t.setAttribute("position",new Yp(n,3)),t.setAttribute("color",new Yp(i,3));super(t,r);this.type="CameraHelper",this.camera=A,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=A.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=a,this.update()}update(){let A=this.geometry,t=this.pointMap,r=!0;Ve.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let n=1,i=1,a=r?.8:1e-4;We("n1",t,A,Ve,-n,-i,a),We("n2",t,A,Ve,n,-i,a),We("n3",t,A,Ve,-n,i,a),We("n4",t,A,Ve,n,i,a);let l=a;We("f1",t,A,Ve,-n,-i,l),We("f2",t,A,Ve,n,-i,l),We("f3",t,A,Ve,-n,i,l),We("f4",t,A,Ve,n,i,l);let u=l,s=.5;We("u1",t,A,Ve,n*.7*s,i*1.1,u),We("u2",t,A,Ve,-n*.7*s,i*1.1,u),We("u3",t,A,Ve,0,i*(1.1+.9*s),u),A.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function We(o,e,A,t,r,n,i){vs.set(r,n,i).unproject(t);let a=e[o];if(a!==void 0){let l=A.getAttribute("position");for(let u=0,s=a.length;u<s;u++)l.setXYZ(a[u],vs.x,vs.y,vs.z)}}var bs=class extends dt(Ka){constructor(A){super(A);this.object=A;this.object=A,this.name=`CombinedCameraHelper: ${A.uuid}`}updateMatrixWorld(A){super.updateMatrixWorld(A),this.updateTarget()}updateTarget(){let A=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(A)}raycast(A,t){pt(this.object,this.geometry,A,t,!0)}};import{DirectionalLightHelper as Y1}from"three";var vo=class extends dt(Y1){constructor(A,t=15,r=10066329){super(A,t,r);this.object=A;this.added=!1;this.name=`DirectionalLightHelper: ${A.uuid}`}raycast(A,t){pt(this.object,vo.geometryHelper,A,t)}};import{AxesHelper as X1}from"three";var bo=class extends dt(X1){constructor(A,t=15){super(t);this.object=A;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${A.uuid}`,this.matrix=A.matrixWorld,this.matrixAutoUpdate=!1}raycast(A,t){pt(this.object,bo.geometryHelper,A,t)}update(){}};import{PointLightHelper as K1}from"three";var wo=class extends dt(K1){constructor(A,t=15,r=6710886){super(A,t,r);this.object=A;this.name=`PointLightHelper: ${A.uuid}`}raycast(A,t){pt(this.object,wo.geometryHelper,A,t)}};import{SpotLightHelper as Z1,Vector3 as J1}from"three";var ws=class extends dt(Z1){constructor(A,t=6710886){super(A,t);this.object=A;this.name=`SpotLightHelper: ${A.uuid}`}raycast(A,t){pt(this.object,ws.geometryHelper,A,t)}update(){if(this.object!==void 0){let A=ws._vector,t=this.object.distance?this.object.distance:1e3,r=t*Math.tan(this.object.angle);this.cone.scale.set(r,r,t),A.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(A);let n=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let i=0,a=this.cone.material.length;i<a;i++)this.cone.material[i].color.set(n);else this.cone.material.color.set(n)}}},vn=ws;vn._vector=new J1;import{CubicBezierCurve as Ss,EllipseCurve as _1,LineCurve as Ts,LineCurve3 as $1,MathUtils as Aw,QuadraticBezierCurve as Ja,SplineCurve as ew,Vector2 as ne,Vector3 as Zp}from"three";var bn=1e-12,So=class{constructor(e){this.position=new ne;this.startPosition=new ne;this.uuid=Aw.generateUUID();this.position=e.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(e){this.position.copy(this.startPosition).add(e)}copy(e){return this.position.copy(e.position),this.startPosition.copy(e.startPosition),this}clone(){return new So(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},To=class extends So{constructor(A){super(A.position);this.parent=A}copy(A){return super.copy(A),this}clone(){return new To(this.parent).copy(this)}},qe=class extends So{constructor(A,t){super(t);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=A,this.controls.push(new To(this),new To(this))}static create(A,t){let r=new qe(A,new ne(...t.position));return r.controls[0].position.set(...t.controlPrevious.position),r.controls[1].position.set(...t.controlNext.position),r.roundness=t.roundness,r.areControlsDirectionsMirrored=t.areControlsDirectionsMirrored,r}getOppositeControl(A){let t=this.controls.indexOf(A);return t===0?this.controls[1]:t===1?this.controls[0]:null}applyOffsetToControls(A,t=1){for(let r=0,n=this.controls.length;r<n;r++){let i=this.controls[r];this.position.distanceTo(i.position)<=t?i.position.copy(this.position):i.applyOffset(A)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(A){return super.copy(A),this.controls[0].copy(A.controls[0]),this.controls[1].copy(A.controls[1]),this.roundness=A.roundness,this.uuid=A.uuid,this}clone(){return new qe(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let A=this.curveBefore?.getTangentAt(1),t=this.curveAfter?.getTangentAt(0);return[A,t]}computeNormals(A=new ne,t=new ne){let[r,n]=this.computeTangents();return r&&n&&(Xp(r,A),Xp(n,t)),[A,t]}computeTangent(A=new ne){let[t,r]=this.computeTangents();return t&&r&&A.copy(t).add(r).normalize(),A}computeNormal(A=new ne){let[t,r]=this.computeNormals();return A.copy(t).add(r).normalize(),A}};function Xp(o,e=new ne){let A=o.length();return e.set(-o.y/A,o.x/A)}var _a=o=>o,No=new ne,Ns=new ne,tw=new ne,rw=new ne,ow=new ne,nw=new ne,Jp=new Zp,_p=new Zp;function $p(o){let e=new ne;e.addVectors(o.v0,No.subVectors(o.v1,o.v0).multiplyScalar(2/3));let A=new ne;return A.addVectors(o.v2,Ns.subVectors(o.v1,o.v2).multiplyScalar(2/3)),new Ss(o.v0,e,A,o.v2)}function wn(o,e,A=Number.EPSILON){return Math.abs(o-e)<A}function iw(o,e,A=Number.EPSILON){return o.distanceTo(e)<A}function sw(o,e,A=Number.EPSILON){return o.distanceTo(e)<A}function $a(o,e,A){let t=Math.sqrt(Math.pow(e.x-o.x,2)+Math.pow(e.y-o.y,2)),r=Math.sqrt(Math.pow(e.x-A.x,2)+Math.pow(e.y-A.y,2)),n=Math.sqrt(Math.pow(A.x-o.x,2)+Math.pow(A.y-o.y,2));return Math.acos((r*r+t*t-n*n)/(2*r*t))}function Af(o,e,A){return Kp(o,e)&&Kp(e,A)&&Za(o.position,e.position,A.position)}function Za(o,e,A){return No.copy(e).sub(o).cross(Ns.copy(A).sub(o))===0}function ef(o,e,A,t,r){let n=Math.sqrt(Math.pow(e.x-o.x,2)+Math.pow(e.y-o.y,2)),i=(o.y+e.y)/2,a=(o.x+e.x)/2,l=Math.sqrt(Math.pow(A,2)-Math.pow(n/2,2))*(o.y-e.y)/n,u=Math.sqrt(Math.pow(A,2)-Math.pow(n/2,2))*(e.x-o.x)/n;return t.set(a+l,i+u),r.set(a-l,i-u),[t,r]}function tf(o,e,A){let t=o.distanceTo(A),r=e.distanceTo(A);return t<r?e:o}function rf(o,e,A,t,r,n){let i=e.x-o.x,a=e.y-o.y,l=A.x-o.x,u=A.y-o.y,s=Math.sqrt((i+l)*(i+l)+(a+u)*(a+u)),c;return $a(e,o,A)>Math.PI&&(s*=-1),wn(u,a)?c=(a+u)*(t/s-.5)*8/3/(i-l):c=(i+l)*(t/s-.5)*8/3/(u-a),r.set(e.x-c*a,e.y+c*i),n.set(A.x+c*u,A.y-c*l),[r,n]}function Al(o,e){return o.position.equals(o.controls[1].position)&&e.position.equals(e.controls[0].position)}function Kp(o,e){return Za(o.position,o.controls[1].position,e.position)&&Za(o.position,e.controls[0].position,e.position)}function of(o,e,A,t,r=.5){let n=No.subVectors(e,o).multiplyScalar(r).add(o),i=Ns.subVectors(A,e).multiplyScalar(r).add(e),a=tw.subVectors(t,A).multiplyScalar(r).add(A),l=n,u=rw.subVectors(i,n).multiplyScalar(r).add(n),s=ow.subVectors(a,i).multiplyScalar(r).add(i),c=a,d=nw.subVectors(s,u).multiplyScalar(r).add(u);return[o.x,o.y,l.x,l.y,u.x,u.y,d.x,d.y,s.x,s.y,c.x,c.y,t.x,t.y]}function nf(o,e,A=12,t=!0){let r=_p.set(0,0,0),n,i=0,a=[];for(let l=0;l<e.length;l++){let u=_a(e[l]),s=No,c=nr(u,A);a.push(c);for(let d=0;d<=c;d++)if(u instanceof Ss||u instanceof Ja||u instanceof Ts){if(u.getPoint(d/c,s),r.set(s.x,s.y,0),n!==void 0&&sw(n,r))continue;n===void 0&&(n=Jp),n.copy(r),o.setXYZ(i,r.x,r.y,r.z),i++}}return t&&i>1&&!(o.getX(i-1)===o.getX(0)&&o.getY(i-1)===o.getY(0)&&o.getZ(i-1)===o.getZ(0))&&(o.setXYZ(i,o.getX(0),o.getY(0),o.getZ(0)),i++),o}function sf(o,e,A,t=12,r=!0){let n=_p.set(0,0,0),i=0,a=[];for(let l=0;l<e.length;l++){if(A[l]===!1)continue;let u,s=_a(e[l]),c=No,d=nr(s,t);a.push(d);for(let p=0;p<=d;p++)if(s instanceof Ss||s instanceof Ja||s instanceof Ts){if(s.getPoint(p/d,c),n.set(c.x,c.y,0),u?.equals(n))continue;u===void 0?u=Jp:(o.setXYZ(i,u.x,u.y,u.z),i++,o.setXYZ(i,n.x,n.y,n.z),i++),u.copy(n)}}return r&&i>1&&!(o.getX(i-1)===o.getX(0)&&o.getY(i-1)===o.getY(0)&&o.getZ(i-1)===o.getZ(0))&&(o.setXYZ(i,o.getX(0),o.getY(0),o.getZ(0)),i++),a}function el(o,e=12,A=!1){let t=[];for(let r=0,n=o.length;r<n;r++){let i=o[r],a=0;if(A&&i.roundedCurveCorner!==void 0){let l=nr(i.roundedCurveCorner,e)*.5;r>0&&(t[r-1]+=l),a+=l}i.curveAfter!==void 0&&(a+=nr(i.curveAfter,e)),t.push(a)}return o.length>0&&A&&o[0].roundedCurveCorner!==void 0&&(t[o.length-1]+=nr(o[0].roundedCurveCorner,e)*.5),t}function nr(o,e=12){return o&&o instanceof _1?e*2:o&&(o instanceof Ts||o instanceof $1)?1:o&&o instanceof ew?e*o.points.length:e}function af(o,e,A=12,t=!0){let r,n=0;for(let i=0;i<e.length;i++){let a=_a(e[i]),l=nr(a,A),u=No;for(let s=0;s<=l;s++)if(a instanceof Ss||a instanceof Ja||a instanceof Ts){if(a.getPoint(s/l,u),r!==void 0&&iw(r,u,bn))continue;r===void 0&&(r=Ns),r.copy(u),o.push(u.x,u.y),n++}}return wn(o[0],o[o.length-2],bn)&&wn(o[1],o[o.length-1],bn)&&(o.pop(),o.pop()),t&&n>1&&!(wn(o[n-1],o[1],bn)&&wn(o[n-2],o[0],bn))&&(o.push(o[0],o[1]),n++),o}import{EventDispatcher as gT,Matrix3 as yT,Vector3 as rc}from"three";import{EventDispatcher as aw,Plane as lw,Shape as lf,Vector2 as Vt,Vector3 as cw,MathUtils as tl,LineCurve as rl,QuadraticBezierCurve as cf,CubicBezierCurve as Is}from"three";var ol=new Vt,uw=new Vt,dw=new Vt,pw=new Vt,fw=new Vt,mw=new Vt,vA=class extends lf{constructor(A=100,t=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new aw;this.plane=new lw(new cw(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=tl.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=A,this._height=t}static createFromState(A,t,r){let n=new vA;return n.isClosed=A.isClosed,n.points=A.points.map(i=>qe.create(i.id,i.data)),typeof A.roundness=="number"&&(n.roundness=A.roundness),n.shapeHoles=A.shapeHoles.map(i=>vA.createFromState(i)),t!==void 0&&r!==void 0&&n.applySize(t,r),n.update(),n}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(A){if(this._roundness!==A){this._roundness=A;for(let t=0,r=this.points.length;t<r;t++)this.points[t].roundness=A;this.needsUpdate=!0}}getPointsIndexesByIds(A){return A.map(t=>this.getPointIndexById(t)).filter(t=>t>=0)}getPointIndexById(A){let t=this.points.length,r=this.points.findIndex(n=>n.uuid===A);if(r<0){let n=t;for(let i=0,a=this.shapeHoles.length;i<a;i++){let l=this.shapeHoles[i],u=l.points.length,s=l.getPointIndexById(A);if(s<0)n+=u;else return s+n}}return r}getLineIndexById(A){return this.getPointIndexById(A)}getBezierPoint(A){if(A<=this.points.length-1)return this.points[A];if(this.shapeHoles.length>0){let t=this.points.length;for(let r=0,n=this.shapeHoles.length;r<n;r++){let i=this.shapeHoles[r],a=A-t;if(a<=i.points.length-1)return i.points[a];t+=i.points.length}}throw new Error("This shape does not have a point for this index: "+A)}getBezierPointIndex(A){let t=this.points.indexOf(A);if(t>=0)return t;if(t=this.points.length,this.shapeHoles.length>0)for(let r=0,n=this.shapeHoles.length;r<n;r++){let i=this.shapeHoles[r],a=i.points.indexOf(A);if(a>=0)return t+a;t+=i.points.length}return-1}getAllPoints(){let A=[].concat(...this.shapeHoles.map(t=>t.points));return[...this.points,...A]}applySize(A,t){A===0&&(A=.001),t===0&&(t=.001),this._width=A,this._height=t}applyScale(A,t){let r=ol.set(A,t);for(let n=0,i=this.points.length;n<i;n++){let a=this.points[n];a.position.multiply(r),a.controls[0].position.multiply(r),a.controls[1].position.multiply(r)}for(let n=0,i=this.shapeHoles.length;n<i;n++)this.shapeHoles[n].applyScale(A,t);this._update(!1)}createPoint(A,t=0,r=tl.generateUUID()){let n;A instanceof Vt?n=A:n=new Vt(A,t);let i=new qe(r,n);return i.roundness=this.roundness,i}addPoint(A){this.points.push(A),this.needsUpdate=!0}addPointAt(A,t){this.points.splice(t,0,A),this.needsUpdate=!0}getPointByUuid(A){for(let t=0,r=this.points.length;t<r;t++){let n=this.points[t];if(n.uuid===A)return n}for(let t=0,r=this.shapeHoles.length;t<r;t++){let i=this.shapeHoles[t].getPointByUuid(A);if(i)return i}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(A){let t=this.points.indexOf(A);t>=0&&this.points.splice(t,1),this.needsUpdate=!0}removePointById(A){let t=this.points.find(r=>r.uuid===A);t&&this.removePoint(t)}update(A=!0){for(let t=0,r=this.shapeHoles.length;t<r;t++)this.shapeHoles[t].update(!1);this._update(A)}extractShapePointsToBuffer(A,t=12,r=!1){this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t);let n=r?this.roundedCurveDivisions:this.curveDivisions;return nf(A,r?this.roundedCurves:this.curves,t,this.autoClose),n.reduce((i,a)=>i+a,0)+1}computeCurveDivisions(A=12){return this.curveDivisions=el(this.points,A,!1),this.roundedCurveDivisions=el(this.points,A,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(A,t,r=12){return sf(A,this.curves,t,r,this.autoClose).reduce((i,a)=>i+a,0)*2}extractShapePointsToFlatArray(A,t=12){return this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t),af(A,this.roundedCurves,t,this.autoClose)}getCurveIndexFromVertexId(A,t=!1){let r=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let n=t?this.roundedCurveDivisions:this.curveDivisions,i=0;t&&this.points[0].roundedCurveCorner!==void 0&&(i=nr(this.points[0].roundedCurveCorner,this.subdivision)*.5);let a=A-i;a<0&&(a+=n.reduce((l,u)=>l+u,0));for(let l=0,u=n.length;l<u;l++){let s=n[l];if(a<r+s)return[l,(a-r+1)/s];r+=s}return[0,1]}getCurveT(A,t,r){let n=this.points[A],i=this.points[A>=this.points.length-1?0:A+1],a=this.curveDivisions,l=a[A];if(Al(n,i)){let c=n.position.distanceTo(i.position);return n.position.distanceTo(ol.set(r.x,r.y))/c}let u=0;for(let c=0;c<A;c++)u+=a[c];return(t-u)/l}dispose(){this.eventDispatcher=null}_applyCurveForPoint(A,t){Al(t,A)?this.lineTo(A.position.x,A.position.y):this.bezierCurveTo(t.controls[1].position.x,t.controls[1].position.y,A.controls[0].position.x,A.controls[0].position.y,A.position.x,A.position.y);let r=this.curves[this.curves.length-1];A.curveBefore=r,t.curveAfter=r;let n=r.clone();A.roundedCurveBefore=n,t.roundedCurveAfter=n,A.roundedCurveCorner=void 0,this.roundedCurves.push(n)}_update(A=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let r=0,n=this.points.length;r<n;r++){let i=this.points[r];if(r===0)this.moveTo(i.position.x,i.position.y);else{let a=this.points[r-1];this._applyCurveForPoint(i,a)}}let t=this.getLastPoint();if(t?.curveAfter&&(t.curveAfter=void 0),this.isClosed){let r=this.points[0],n=this.points[this.points.length-1];this._applyCurveForPoint(r,n)}if(this.points.length>2){let r=0;for(let n=0,i=this.points.length;n<i;n++){let a=this.points[n],l=this.points[n-1]??this.points[this.points.length-1],u=this.points[n+1]??this.points[0],s=a.roundness,c=l&&u&&Af(l,a,u);if(!a.controlsMoved()&&s>0&&!c){let d=a.curveBefore,p=a.curveAfter;if(d===void 0||p===void 0)continue;let f=a.roundedCurveBefore,m=a.roundedCurveAfter,h=d.getLength(),x=p.getLength(),y=Math.min(s,h*.499),b=Math.min(s,x*.499),w=Math.min(y,b),v=1-w/h,I=w/x,S=d.getPointAt(v,ol),g=p.getPointAt(I,uw);this._subSplitCurve(d,f,v,S,void 0),this._subSplitCurve(p,m,I,void 0,g);let P;if(this.useCubicForRoundedCorners){let N=$a(S,a.position,g)/2,O=Math.tan(N)*S.distanceTo(a.position),[T,L]=ef(S,g,O,dw,pw),B=tf(T,L,a.position),[k,X]=rf(B,S,g,O,fw,mw);P=new Is(S.clone(),k.clone(),X.clone(),g.clone())}else P=new cf(S.clone(),a.position.clone(),g.clone());a.roundedCurveCorner=P,this.roundedCurves.splice(n+r,0,P),r++}}}A&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(A,t,r,n,i){if(A instanceof rl)n!==void 0&&t.v2.copy(n),i!==void 0&&t.v1.copy(i);else{let a=A,l=t,u=a.getUtoTmapping(r,0),s=of(a.v0,a.v1,a.v2,a.v3,u);return n!==void 0&&(l.v0.set(s[0],s[1]),l.v1.set(s[2],s[3]),l.v2.set(s[4],s[5]),l.v3.set(s[6],s[7])),i!==void 0&&(l.v0.set(s[6],s[7]),l.v1.set(s[8],s[9]),l.v2.set(s[10],s[11]),l.v3.set(s[12],s[13])),l}return t}clone(){let A=new vA(this._width,this._height);return A.points=this.points.map(t=>t.clone()),A.isClosed=this.isClosed,A.roundness=this.roundness,A.isMesh2D=this.isMesh2D,A.shapeHoles=this.shapeHoles.map(t=>t.clone()),A}toJSON(){return{points:this.points.reduce((A,t)=>A.concat(t.toJSON()),[]),shapeHoles:this.shapeHoles.map(A=>A.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(A){this.points=[],this.pointIDs=0;let t=A.points.length/7;for(let r=0;r<t;r++){let n=r*7,i=A.points[n+0],a=A.points[n+1],l=A.points[n+2],u=A.points[n+3],s=A.points[n+4],c=A.points[n+5],d=A.points[n+6],p=new qe(tl.generateUUID(),new Vt(i,a));p.controls[0].position.set(l,u),p.controls[1].position.set(s,c),p.roundness=d,this.points.push(p)}return this.shapeHoles=A.shapeHoles?.length?A.shapeHoles.map(r=>{let n=new vA;return n.fromJSON(r),n}):[],this.isClosed=A.isClosed,this._roundness=A.roundness,this._update(),this}fromShape(A){let t=(n,i)=>{i instanceof Is&&i.v3.equals(n.position)&&n.controls[0].position.copy(i.v2)},r=n=>{let i=[],a,l;for(a=0,l=n.length;a<l;a++)n[a]instanceof cf&&(n[a]=$p(n[a]));for(a=0,l=n.length;a<l;a++){let c=n[a],d=a>0?n[a-1]:null,p;c instanceof Is?(p=this.createPoint(c.v0),p.controls[1].position.copy(c.v1)):c instanceof rl&&(p=this.createPoint(c.v1)),p!==void 0&&(d!==null&&t(p,d),i.push(p))}let u=n[n.length-1],s=!1;return u instanceof Is?u.v3.equals(i[0].position)&&(i[0].controls[0].position.copy(u.v2),s=!0):u instanceof rl&&u.v2.equals(i[0].position)&&(s=!0),this.isClosed=s,i};return this.points=r(A.curves),A instanceof lf&&(this.shapeHoles=A.holes.map(n=>{let i=new vA;return i.fromShape(n),i})),this.update(),this}};import{BufferAttribute as Os,BufferGeometry as vw}from"three";var CA;(function(o){o[o.ODD=0]="ODD",o[o.NONZERO=1]="NONZERO",o[o.POSITIVE=2]="POSITIVE",o[o.NEGATIVE=3]="NEGATIVE",o[o.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(CA||(CA={}));var UA;(function(o){o[o.POLYGONS=0]="POLYGONS",o[o.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",o[o.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(UA||(UA={}));function lA(o,e){if(!o)throw e||"Assertion Failed!"}var sA=function(){function o(){}return o.vertEq=function(e,A){return e.s===A.s&&e.t===A.t},o.vertLeq=function(e,A){return e.s<A.s||e.s===A.s&&e.t<=A.t},o.transLeq=function(e,A){return e.t<A.t||e.t===A.t&&e.s<=A.s},o.edgeGoesLeft=function(e){return o.vertLeq(e.Dst,e.Org)},o.edgeGoesRight=function(e){return o.vertLeq(e.Org,e.Dst)},o.vertL1dist=function(e,A){return Math.abs(e.s-A.s)+Math.abs(e.t-A.t)},o.edgeEval=function(e,A,t){lA(o.vertLeq(e,A)&&o.vertLeq(A,t));var r=A.s-e.s,n=t.s-A.s;return r+n>0?r<n?A.t-e.t+(e.t-t.t)*(r/(r+n)):A.t-t.t+(t.t-e.t)*(n/(r+n)):0},o.edgeSign=function(e,A,t){lA(o.vertLeq(e,A)&&o.vertLeq(A,t));var r=A.s-e.s,n=t.s-A.s;return r+n>0?(A.t-t.t)*r+(A.t-e.t)*n:0},o.transEval=function(e,A,t){lA(o.transLeq(e,A)&&o.transLeq(A,t));var r=A.t-e.t,n=t.t-A.t;return r+n>0?r<n?A.s-e.s+(e.s-t.s)*(r/(r+n)):A.s-t.s+(t.s-e.s)*(n/(r+n)):0},o.transSign=function(e,A,t){lA(o.transLeq(e,A)&&o.transLeq(A,t));var r=A.t-e.t,n=t.t-A.t;return r+n>0?(A.s-t.s)*r+(A.s-e.s)*n:0},o.vertCCW=function(e,A,t){return e.s*(A.t-t.t)+A.s*(t.t-e.t)+t.s*(e.t-A.t)>=0},o.interpolate=function(e,A,t,r){return e=e<0?0:e,t=t<0?0:t,e<=t?t===0?(A+r)/2:A+(r-A)*(e/(e+t)):r+(A-r)*(t/(e+t))},o.intersect=function(e,A,t,r,n){var i,a,l;o.vertLeq(e,A)||(l=e,e=A,A=l),o.vertLeq(t,r)||(l=t,t=r,r=l),o.vertLeq(e,t)||(l=e,e=t,t=l,l=A,A=r,r=l),o.vertLeq(t,A)?o.vertLeq(A,r)?(i=o.edgeEval(e,t,A),a=o.edgeEval(t,A,r),i+a<0&&(i=-i,a=-a),n.s=o.interpolate(i,t.s,a,A.s)):(i=o.edgeSign(e,t,A),a=-o.edgeSign(e,r,A),i+a<0&&(i=-i,a=-a),n.s=o.interpolate(i,t.s,a,r.s)):n.s=(t.s+A.s)/2,o.transLeq(e,A)||(l=e,e=A,A=l),o.transLeq(t,r)||(l=t,t=r,r=l),o.transLeq(e,t)||(l=e,e=t,t=l,l=A,A=r,r=l),o.transLeq(t,A)?o.transLeq(A,r)?(i=o.transEval(e,t,A),a=o.transEval(t,A,r),i+a<0&&(i=-i,a=-a),n.t=o.interpolate(i,t.t,a,A.t)):(i=o.transSign(e,t,A),a=-o.transSign(e,r,A),i+a<0&&(i=-i,a=-a),n.t=o.interpolate(i,t.t,a,r.t)):n.t=(t.t+A.t)/2},o}(),Sn=function(){function o(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return o}(),Ps=function(){function o(e){this.side=e,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(o.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(e){this.Sym.Lface=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(e){this.Sym.Org=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(e){this.Sym.Lnext=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(e){this.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(e){this.Lnext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(e){this.Sym.Onext=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(e){this.Sym.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(e){this.Sym.Lnext.Sym=e},enumerable:!0,configurable:!0}),o}(),Io=function(){function o(){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 o}(),uf=function(){function o(){var e=new Io,A=new Sn,t=new Ps(0),r=new Ps(1);e.next=e.prev=e,e.anEdge=null,A.next=A.prev=A,t.next=t,t.Sym=r,r.next=r,r.Sym=t,this.vHead=e,this.fHead=A,this.eHead=t,this.eHeadSym=r}return o.prototype.makeEdge_=function(e){var A=new Ps(0),t=new Ps(1);e.Sym.side<e.side&&(e=e.Sym);var r=e.Sym.next;return t.next=r,r.Sym.next=A,A.next=e,e.Sym.next=t,A.Sym=t,A.Onext=A,A.Lnext=t,A.Org=null,A.Lface=null,A.winding=0,A.activeRegion=null,t.Sym=A,t.Onext=t,t.Lnext=A,t.Org=null,t.Lface=null,t.winding=0,t.activeRegion=null,A},o.prototype.splice_=function(e,A){var t=e.Onext,r=A.Onext;t.Sym.Lnext=A,r.Sym.Lnext=e,e.Onext=r,A.Onext=t},o.prototype.makeVertex_=function(e,A,t){var r=e;lA(r,"Vertex can't be null!");var n=t.prev;r.prev=n,n.next=r,r.next=t,t.prev=r,r.anEdge=A;var i=A;do i.Org=r,i=i.Onext;while(i!==A)},o.prototype.makeFace_=function(e,A,t){var r=e;lA(r,"Face can't be null");var n=t.prev;r.prev=n,n.next=r,r.next=t,t.prev=r,r.anEdge=A,r.trail=null,r.marked=!1,r.inside=t.inside;var i=A;do i.Lface=r,i=i.Lnext;while(i!==A)},o.prototype.killEdge_=function(e){e.Sym.side<e.side&&(e=e.Sym);var A=e.next,t=e.Sym.next;A.Sym.next=t,t.Sym.next=A},o.prototype.killVertex_=function(e,A){var t=e.anEdge,r=t;do r.Org=A,r=r.Onext;while(r!==t);var n=e.prev,i=e.next;i.prev=n,n.next=i},o.prototype.killFace_=function(e,A){var t=e.anEdge,r=t;do r.Lface=A,r=r.Lnext;while(r!==t);var n=e.prev,i=e.next;i.prev=n,n.next=i},o.prototype.makeEdge=function(){var e=new Io,A=new Io,t=new Sn,r=this.makeEdge_(this.eHead);return this.makeVertex_(e,r,this.vHead),this.makeVertex_(A,r.Sym,this.vHead),this.makeFace_(t,r,this.fHead),r},o.prototype.splice=function(e,A){var t=!1,r=!1;if(e!==A){if(A.Org!==e.Org&&(r=!0,this.killVertex_(A.Org,e.Org)),A.Lface!==e.Lface&&(t=!0,this.killFace_(A.Lface,e.Lface)),this.splice_(A,e),!r){var n=new Io;this.makeVertex_(n,A,e.Org),e.Org.anEdge=e}if(!t){var i=new Sn;this.makeFace_(i,A,e.Lface),e.Lface.anEdge=e}}},o.prototype.delete=function(e){var A=e.Sym,t=!1;if(e.Lface!==e.Rface&&(t=!0,this.killFace_(e.Lface,e.Rface)),e.Onext===e)this.killVertex_(e.Org,null);else if(e.Rface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev),!t){var r=new Sn;this.makeFace_(r,e,e.Lface)}A.Onext===A?(this.killVertex_(A.Org,null),this.killFace_(A.Lface,null)):(e.Lface.anEdge=A.Oprev,A.Org.anEdge=A.Onext,this.splice_(A,A.Oprev)),this.killEdge_(e)},o.prototype.addEdgeVertex=function(e){var A=this.makeEdge_(e),t=A.Sym;this.splice_(A,e.Lnext),A.Org=e.Dst;var r=new Io;return this.makeVertex_(r,t,A.Org),A.Lface=t.Lface=e.Lface,A},o.prototype.splitEdge=function(e){var A=this.addEdgeVertex(e),t=A.Sym;return this.splice_(e.Sym,e.Sym.Oprev),this.splice_(e.Sym,t),e.Dst=t.Org,t.Dst.anEdge=t.Sym,t.Rface=e.Rface,t.winding=e.winding,t.Sym.winding=e.Sym.winding,t.idx=e.idx,t.Sym.idx=e.Sym.idx,t},o.prototype.connect=function(e,A){var t=!1,r=this.makeEdge_(e),n=r.Sym;if(A.Lface!==e.Lface&&(t=!0,this.killFace_(A.Lface,e.Lface)),this.splice_(r,e.Lnext),this.splice_(n,A),r.Org=e.Dst,n.Org=A.Org,r.Lface=n.Lface=e.Lface,e.Lface.anEdge=n,!t){var i=new Sn;this.makeFace_(i,r,e.Lface)}return r},o.prototype.zapFace=function(e){var A=e.anEdge,t,r,n,i,a;r=A.Lnext;do t=r,r=t.Lnext,t.Lface=null,t.Rface===null&&(t.Onext===t?this.killVertex_(t.Org,null):(t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev)),n=t.Sym,n.Onext===n?this.killVertex_(n.Org,null):(n.Org.anEdge=n.Onext,this.splice_(n,n.Oprev)),this.killEdge_(t));while(t!=A);i=e.prev,a=e.next,a.prev=i,i.next=a},o.prototype.countFaceVerts_=function(e){var A=e.anEdge,t=0;do t++,A=A.Lnext;while(A!==e.anEdge);return t},o.prototype.mergeConvexFaces=function(e){var A,t,r,n,i,a,l;for(A=this.fHead.next;A!==this.fHead;A=A.next)if(!!A.inside)for(t=A.anEdge,i=t.Org;r=t.Lnext,n=t.Sym,n&&n.Lface&&n.Lface.inside&&(a=this.countFaceVerts_(A),l=this.countFaceVerts_(n.Lface),a+l-2<=e&&sA.vertCCW(t.Lprev.Org,t.Org,n.Lnext.Lnext.Org)&&sA.vertCCW(n.Lprev.Org,n.Org,t.Lnext.Lnext.Org)&&(r=n.Lnext,this.delete(n),t=null,n=null)),!(t&&t.Lnext.Org===i);)t=r;return!0},o.prototype.check=function(){var e=this.fHead,A=this.vHead,t=this.eHead,r,n,i,a,l,u;for(n=e,n=e;(r=n.next)!==e;n=r){lA(r.prev===n),l=r.anEdge;do lA(l.Sym!==l),lA(l.Sym.Sym===l),lA(l.Lnext.Onext.Sym===l),lA(l.Onext.Sym.Lnext===l),lA(l.Lface===r),l=l.Lnext;while(l!==r.anEdge)}for(lA(r.prev===n&&r.anEdge===null),a=A,a=A;(i=a.next)!==A;a=i){lA(i.prev===a),l=i.anEdge;do lA(l.Sym!==l),lA(l.Sym.Sym===l),lA(l.Lnext.Onext.Sym===l),lA(l.Onext.Sym.Lnext===l),lA(l.Org===i),l=l.Onext;while(l!==i.anEdge)}for(lA(i.prev===a&&i.anEdge===null),u=t,u=t;(l=u.next)!==t;u=l)lA(l.Sym.next===u.Sym),lA(l.Sym!==l),lA(l.Sym.Sym===l),lA(l.Org!==null),lA(l.Dst!==null),lA(l.Lnext.Onext.Sym===l),lA(l.Onext.Sym.Lnext===l);lA(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)},o}(),df=function(){function o(){this.handle=null}return o}(),pf=function(){function o(){this.key=null,this.node=0}return o}(),hw=function(){function o(e,A){this.leq=A,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=e,this.nodes=[],this.handles=[];for(var t=0;t<e+1;t++)this.nodes[t]=new df,this.handles[t]=new pf;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return o.prototype.floatDown_=function(e){var A=this.nodes,t=this.handles,r,n,i;for(r=A[e].handle;;){if(i=e<<1,i<this.size&&this.leq(t[A[i+1].handle].key,t[A[i].handle].key)&&++i,lA(i<=this.max),n=A[i].handle,i>this.size||this.leq(t[r].key,t[n].key)){A[e].handle=r,t[r].node=e;break}A[e].handle=n,t[n].node=e,e=i}},o.prototype.floatUp_=function(e){var A=this.nodes,t=this.handles,r,n,i;for(r=A[e].handle;;){if(i=e>>1,n=A[i].handle,i===0||this.leq(t[n].key,t[r].key)){A[e].handle=r,t[r].node=e;break}A[e].handle=n,t[n].node=e,e=i}},o.prototype.init=function(){for(var e=this.size;e>=1;--e)this.floatDown_(e);this.initialized=!0},o.prototype.min=function(){return this.handles[this.nodes[1].handle].key},o.prototype.insert=function(e){var A,t;if(A=++this.size,A*2>this.max){this.max*=2;var r,n;for(n=this.nodes.length,this.nodes.length=this.max+1,r=n;r<this.nodes.length;r++)this.nodes[r]=new df;for(n=this.handles.length,this.handles.length=this.max+1,r=n;r<this.handles.length;r++)this.handles[r]=new pf}return this.freeList===0?t=A:(t=this.freeList,this.freeList=this.handles[t].node),this.nodes[A].handle=t,this.handles[t].node=A,this.handles[t].key=e,this.initialized&&this.floatUp_(A),t},o.prototype.extractMin=function(){var e=this.nodes,A=this.handles,t=e[1].handle,r=A[t].key;return this.size>0&&(e[1].handle=e[this.size].handle,A[e[1].handle].node=1,A[t].key=null,A[t].node=this.freeList,this.freeList=t,--this.size,this.size>0&&this.floatDown_(1)),r},o.prototype.delete=function(e){var A=this.nodes,t=this.handles,r;lA(e>=1&&e<=this.max&&t[e].key!==null),r=t[e].node,A[r].handle=A[this.size].handle,t[A[r].handle].node=r,--this.size,r<=this.size&&(r<=1||this.leq(t[A[r>>1].handle].key,t[A[r].handle].key)?this.floatDown_(r):this.floatUp_(r)),t[e].key=null,t[e].node=this.freeList,this.freeList=e},o}(),nl=function(){function o(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return o}(),ff=function(){function o(){this.key=null,this.next=null,this.prev=null}return o}(),gw=function(){function o(e,A){this.frame=e,this.leq=A,this.head=new ff,this.head.next=this.head,this.head.prev=this.head}return o.prototype.min=function(){return this.head.next},o.prototype.max=function(){return this.head.prev},o.prototype.insert=function(e){return this.insertBefore(this.head,e)},o.prototype.search=function(e){var A=this.head;do A=A.next;while(A.key!==null&&!this.leq(this.frame,e,A.key));return A},o.prototype.insertBefore=function(e,A){do e=e.prev;while(e.key!==null&&!this.leq(this.frame,e.key,A));var t=new ff;return t.key=A,t.next=e.next,e.next.prev=t,t.prev=e,e.next=t,t},o.prototype.delete=function(e){e.next.prev=e.prev,e.prev.next=e.next},o}(),yw=function(){function o(){}return o.regionBelow=function(e){return e.nodeUp.prev.key},o.regionAbove=function(e){return e.nodeUp.next.key},o.debugEvent=function(e){},o.addWinding=function(e,A){e.winding+=A.winding,e.Sym.winding+=A.Sym.winding},o.edgeLeq=function(e,A,t){var r=e.event,n=A.eUp,i=t.eUp;if(n.Dst===r)return i.Dst===r?sA.vertLeq(n.Org,i.Org)?sA.edgeSign(i.Dst,n.Org,i.Org)<=0:sA.edgeSign(n.Dst,i.Org,n.Org)>=0:sA.edgeSign(i.Dst,r,i.Org)<=0;if(i.Dst===r)return sA.edgeSign(n.Dst,r,n.Org)>=0;var a=sA.edgeEval(n.Dst,r,n.Org),l=sA.edgeEval(i.Dst,r,i.Org);return a>=l},o.deleteRegion=function(e,A){A.fixUpperEdge&&lA(A.eUp.winding===0),A.eUp.activeRegion=null,e.dict.delete(A.nodeUp)},o.fixUpperEdge=function(e,A,t){lA(A.fixUpperEdge),e.mesh.delete(A.eUp),A.fixUpperEdge=!1,A.eUp=t,t.activeRegion=A},o.topLeftRegion=function(e,A){var t=A.eUp.Org,r;do A=o.regionAbove(A);while(A.eUp.Org===t);if(A.fixUpperEdge){if(r=e.mesh.connect(o.regionBelow(A).eUp.Sym,A.eUp.Lnext),r===null)return null;o.fixUpperEdge(e,A,r),A=o.regionAbove(A)}return A},o.topRightRegion=function(e){var A=e.eUp.Dst;do e=o.regionAbove(e);while(e.eUp.Dst===A);return e},o.addRegionBelow=function(e,A,t){var r=new nl;return r.eUp=t,r.nodeUp=e.dict.insertBefore(A.nodeUp,r),r.fixUpperEdge=!1,r.sentinel=!1,r.dirty=!1,t.activeRegion=r,r},o.isWindingInside=function(e,A){switch(e.windingRule){case CA.ODD:return(A&1)!==0;case CA.NONZERO:return A!==0;case CA.POSITIVE:return A>0;case CA.NEGATIVE:return A<0;case CA.ABS_GEQ_TWO:return A>=2||A<=-2}throw new Error("Invalid winding rulle")},o.computeWinding=function(e,A){A.windingNumber=o.regionAbove(A).windingNumber+A.eUp.winding,A.inside=o.isWindingInside(e,A.windingNumber)},o.finishRegion=function(e,A){var t=A.eUp,r=t.Lface;r.inside=A.inside,r.anEdge=t,o.deleteRegion(e,A)},o.finishLeftRegions=function(e,A,t){for(var r,n=null,i=A,a=A.eUp;i!==t;){if(i.fixUpperEdge=!1,n=o.regionBelow(i),r=n.eUp,r.Org!=a.Org){if(!n.fixUpperEdge){o.finishRegion(e,i);break}r=e.mesh.connect(a.Lprev,r.Sym),o.fixUpperEdge(e,n,r)}a.Onext!==r&&(e.mesh.splice(r.Oprev,r),e.mesh.splice(a,r)),o.finishRegion(e,i),a=n.eUp,i=n}return a},o.addRightEdges=function(e,A,t,r,n,i){var a,l,u,s,c=!0;u=t;do lA(sA.vertLeq(u.Org,u.Dst)),o.addRegionBelow(e,A,u.Sym),u=u.Onext;while(u!==r);for(n===null&&(n=o.regionBelow(A).eUp.Rprev),l=A,s=n;a=o.regionBelow(l),u=a.eUp.Sym,u.Org===s.Org;)u.Onext!==s&&(e.mesh.splice(u.Oprev,u),e.mesh.splice(s.Oprev,u)),a.windingNumber=l.windingNumber-u.winding,a.inside=o.isWindingInside(e,a.windingNumber),l.dirty=!0,!c&&o.checkForRightSplice(e,l)&&(o.addWinding(u,s),o.deleteRegion(e,l),e.mesh.delete(s)),c=!1,l=a,s=u;l.dirty=!0,lA(l.windingNumber-u.winding===a.windingNumber),i&&o.walkDirtyRegions(e,l)},o.spliceMergeVertices=function(e,A,t){e.mesh.splice(A,t)},o.vertexWeights=function(e,A,t){var r=sA.vertL1dist(A,e),n=sA.vertL1dist(t,e),i=.5*n/(r+n),a=.5*r/(r+n);e.coords[0]+=i*A.coords[0]+a*t.coords[0],e.coords[1]+=i*A.coords[1]+a*t.coords[1],e.coords[2]+=i*A.coords[2]+a*t.coords[2]},o.getIntersectData=function(e,A,t,r,n,i){A.coords[0]=A.coords[1]=A.coords[2]=0,A.idx=-1,o.vertexWeights(A,t,r),o.vertexWeights(A,n,i)},o.checkForRightSplice=function(e,A){var t=o.regionBelow(A),r=A.eUp,n=t.eUp;if(sA.vertLeq(r.Org,n.Org)){if(sA.edgeSign(n.Dst,r.Org,n.Org)>0)return!1;sA.vertEq(r.Org,n.Org)?r.Org!==n.Org&&(e.pq.delete(r.Org.pqHandle),o.spliceMergeVertices(e,n.Oprev,r)):(e.mesh.splitEdge(n.Sym),e.mesh.splice(r,n.Oprev),A.dirty=t.dirty=!0)}else{if(sA.edgeSign(r.Dst,n.Org,r.Org)<0)return!1;o.regionAbove(A).dirty=A.dirty=!0,e.mesh.splitEdge(r.Sym),e.mesh.splice(n.Oprev,r)}return!0},o.checkForLeftSplice=function(e,A){var t=o.regionBelow(A),r=A.eUp,n=t.eUp,i;if(lA(!sA.vertEq(r.Dst,n.Dst)),sA.vertLeq(r.Dst,n.Dst)){if(sA.edgeSign(r.Dst,n.Dst,r.Org)<0)return!1;o.regionAbove(A).dirty=A.dirty=!0,i=e.mesh.splitEdge(r),e.mesh.splice(n.Sym,i),i.Lface.inside=A.inside}else{if(sA.edgeSign(n.Dst,r.Dst,n.Org)>0)return!1;A.dirty=t.dirty=!0,i=e.mesh.splitEdge(n),e.mesh.splice(r.Lnext,n.Sym),i.Rface.inside=A.inside}return!0},o.checkForIntersect=function(e,A){var t=o.regionBelow(A),r=A.eUp,n=t.eUp,i=r.Org,a=n.Org,l=r.Dst,u=n.Dst,s,c,d=new Io,p,f;if(lA(!sA.vertEq(u,l)),lA(sA.edgeSign(l,e.event,i)<=0),lA(sA.edgeSign(u,e.event,a)>=0),lA(i!==e.event&&a!==e.event),lA(!A.fixUpperEdge&&!t.fixUpperEdge),i===a||(s=Math.min(i.t,l.t),c=Math.max(a.t,u.t),s>c))return!1;if(sA.vertLeq(i,a)){if(sA.edgeSign(u,i,a)>0)return!1}else if(sA.edgeSign(l,a,i)<0)return!1;return o.debugEvent(e),sA.intersect(l,i,u,a,d),lA(Math.min(i.t,l.t)<=d.t),lA(d.t<=Math.max(a.t,u.t)),lA(Math.min(u.s,l.s)<=d.s),lA(d.s<=Math.max(a.s,i.s)),sA.vertLeq(d,e.event)&&(d.s=e.event.s,d.t=e.event.t),p=sA.vertLeq(i,a)?i:a,sA.vertLeq(p,d)&&(d.s=p.s,d.t=p.t),sA.vertEq(d,i)||sA.vertEq(d,a)?(o.checkForRightSplice(e,A),!1):!sA.vertEq(l,e.event)&&sA.edgeSign(l,e.event,d)>=0||!sA.vertEq(u,e.event)&&sA.edgeSign(u,e.event,d)<=0?u===e.event?(e.mesh.splitEdge(r.Sym),e.mesh.splice(n.Sym,r),A=o.topLeftRegion(e,A),r=o.regionBelow(A).eUp,o.finishLeftRegions(e,o.regionBelow(A),t),o.addRightEdges(e,A,r.Oprev,r,r,!0),!0):l===e.event?(e.mesh.splitEdge(n.Sym),e.mesh.splice(r.Lnext,n.Oprev),t=A,A=o.topRightRegion(A),f=o.regionBelow(A).eUp.Rprev,t.eUp=n.Oprev,n=o.finishLeftRegions(e,t,null),o.addRightEdges(e,A,n.Onext,r.Rprev,f,!0),!0):(sA.edgeSign(l,e.event,d)>=0&&(o.regionAbove(A).dirty=A.dirty=!0,e.mesh.splitEdge(r.Sym),r.Org.s=e.event.s,r.Org.t=e.event.t),sA.edgeSign(u,e.event,d)<=0&&(A.dirty=t.dirty=!0,e.mesh.splitEdge(n.Sym),n.Org.s=e.event.s,n.Org.t=e.event.t),!1):(e.mesh.splitEdge(r.Sym),e.mesh.splitEdge(n.Sym),e.mesh.splice(n.Oprev,r),r.Org.s=d.s,r.Org.t=d.t,r.Org.pqHandle=e.pq.insert(r.Org),o.getIntersectData(e,r.Org,i,l,a,u),o.regionAbove(A).dirty=A.dirty=t.dirty=!0,!1)},o.walkDirtyRegions=function(e,A){for(var t=o.regionBelow(A),r,n;;){for(;t.dirty;)A=t,t=o.regionBelow(t);if(!A.dirty&&(t=A,A=o.regionAbove(A),A===null||!A.dirty))return;if(A.dirty=!1,r=A.eUp,n=t.eUp,r.Dst!==n.Dst&&o.checkForLeftSplice(e,A)&&(t.fixUpperEdge?(o.deleteRegion(e,t),e.mesh.delete(n),t=o.regionBelow(A),n=t.eUp):A.fixUpperEdge&&(o.deleteRegion(e,A),e.mesh.delete(r),A=o.regionAbove(t),r=A.eUp)),r.Org!==n.Org)if(r.Dst!==n.Dst&&!A.fixUpperEdge&&!t.fixUpperEdge&&(r.Dst===e.event||n.Dst===e.event)){if(o.checkForIntersect(e,A))return}else o.checkForRightSplice(e,A);r.Org===n.Org&&r.Dst===n.Dst&&(o.addWinding(n,r),o.deleteRegion(e,A),e.mesh.delete(r),A=o.regionAbove(t))}},o.connectRightVertex=function(e,A,t){var r,n=t.Onext,i=o.regionBelow(A),a=A.eUp,l=i.eUp,u=!1;if(a.Dst!==l.Dst&&o.checkForIntersect(e,A),sA.vertEq(a.Org,e.event)&&(e.mesh.splice(n.Oprev,a),A=o.topLeftRegion(e,A),n=o.regionBelow(A).eUp,o.finishLeftRegions(e,o.regionBelow(A),i),u=!0),sA.vertEq(l.Org,e.event)&&(e.mesh.splice(t,l.Oprev),t=o.finishLeftRegions(e,i,null),u=!0),u){o.addRightEdges(e,A,t.Onext,n,n,!0);return}sA.vertLeq(l.Org,a.Org)?r=l.Oprev:r=a,r=e.mesh.connect(t.Lprev,r),o.addRightEdges(e,A,r,r.Onext,r.Onext,!1),r.Sym.activeRegion.fixUpperEdge=!0,o.walkDirtyRegions(e,A)},o.connectLeftDegenerate=function(e,A,t){var r,n,i,a,l;if(r=A.eUp,sA.vertEq(r.Org,t)){lA(!1),o.spliceMergeVertices(e,r,t.anEdge);return}if(!sA.vertEq(r.Dst,t)){e.mesh.splitEdge(r.Sym),A.fixUpperEdge&&(e.mesh.delete(r.Onext),A.fixUpperEdge=!1),e.mesh.splice(t.anEdge,r),o.sweepEvent(e,t);return}lA(!1),A=o.topRightRegion(A),l=o.regionBelow(A),i=l.eUp.Sym,n=a=i.Onext,l.fixUpperEdge&&(lA(n!==i),o.deleteRegion(e,l),e.mesh.delete(i),i=n.Oprev),e.mesh.splice(t.anEdge,i),sA.edgeGoesLeft(n)||(n=null),o.addRightEdges(e,A,i.Onext,a,n,!0)},o.connectLeftVertex=function(e,A){var t,r,n,i,a,l,u=new nl;if(u.eUp=A.anEdge.Sym,t=e.dict.search(u).key,r=o.regionBelow(t),!!r){if(i=t.eUp,a=r.eUp,sA.edgeSign(i.Dst,A,i.Org)===0){o.connectLeftDegenerate(e,t,A);return}if(n=sA.vertLeq(a.Dst,i.Dst)?t:r,t.inside||n.fixUpperEdge){if(n===t)l=e.mesh.connect(A.anEdge.Sym,i.Lnext);else{var s=e.mesh.connect(a.Dnext,A.anEdge);l=s.Sym}n.fixUpperEdge?o.fixUpperEdge(e,n,l):o.computeWinding(e,o.addRegionBelow(e,t,l)),o.sweepEvent(e,A)}else o.addRightEdges(e,t,A.anEdge,A.anEdge,null,!0)}},o.sweepEvent=function(e,A){e.event=A,o.debugEvent(e);for(var t=A.anEdge;t.activeRegion===null;)if(t=t.Onext,t===A.anEdge){o.connectLeftVertex(e,A);return}var r=o.topLeftRegion(e,t.activeRegion);lA(r!==null);var n=o.regionBelow(r),i=n.eUp,a=o.finishLeftRegions(e,n,null);a.Onext===i?o.connectRightVertex(e,r,a):o.addRightEdges(e,r,a.Onext,i,i,!0)},o.addSentinel=function(e,A,t,r){var n=new nl,i=e.mesh.makeEdge();i.Org.s=t,i.Org.t=r,i.Dst.s=A,i.Dst.t=r,e.event=i.Dst,n.eUp=i,n.windingNumber=0,n.inside=!1,n.fixUpperEdge=!1,n.sentinel=!0,n.dirty=!1,n.nodeUp=e.dict.insert(n)},o.initEdgeDict=function(e){e.dict=new gw(e,o.edgeLeq);var A=e.bmax[0]-e.bmin[0],t=e.bmax[1]-e.bmin[1],r=e.bmin[0]-A,n=e.bmax[0]+A,i=e.bmin[1]-t,a=e.bmax[1]+t;o.addSentinel(e,r,n,i),o.addSentinel(e,r,n,a)},o.doneEdgeDict=function(e){for(var A,t=0;(A=e.dict.min().key)!==null;)A.sentinel||(lA(A.fixUpperEdge),lA(++t===1)),lA(A.windingNumber===0),o.deleteRegion(e,A)},o.removeDegenerateEdges=function(e){var A,t,r,n=e.mesh.eHead;for(A=n.next;A!==n;A=t)t=A.next,r=A.Lnext,sA.vertEq(A.Org,A.Dst)&&A.Lnext.Lnext!==A&&(o.spliceMergeVertices(e,r,A),e.mesh.delete(A),A=r,r=A.Lnext),r.Lnext===A&&(r!==A&&((r===t||r===t.Sym)&&(t=t.next),e.mesh.delete(r)),(A===t||A===t.Sym)&&(t=t.next),e.mesh.delete(A))},o.initPriorityQ=function(e){var A,t,r,n=0;for(r=e.mesh.vHead,t=r.next;t!==r;t=t.next)n++;for(n+=8,A=e.pq=new hw(n,sA.vertLeq),r=e.mesh.vHead,t=r.next;t!==r;t=t.next)t.pqHandle=A.insert(t);return t!==r?!1:(A.init(),!0)},o.donePriorityQ=function(e){e.pq=null},o.removeDegenerateFaces=function(e,A){var t,r,n;for(t=A.fHead.next;t!==A.fHead;t=r)r=t.next,n=t.anEdge,lA(n.Lnext!==n),n.Lnext.Lnext===n&&(o.addWinding(n.Onext,n),e.mesh.delete(n));return!0},o.computeInterior=function(e,A){A===void 0&&(A=!0);var t,r;if(o.removeDegenerateEdges(e),!o.initPriorityQ(e))return!1;for(o.initEdgeDict(e);(t=e.pq.extractMin())!==null;){for(;r=e.pq.min(),!(r===null||!sA.vertEq(r,t));)r=e.pq.extractMin(),o.spliceMergeVertices(e,t.anEdge,r.anEdge);o.sweepEvent(e,t)}return e.event=e.dict.min().key.eUp.Org,o.debugEvent(e),o.doneEdgeDict(e),o.donePriorityQ(e),o.removeDegenerateFaces(e,e.mesh)?(A&&e.mesh.check(),!0):!1},o}(),xw=function(){function o(){this.mesh=new uf,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=CA.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 o.prototype.dot_=function(e,A){return e[0]*A[0]+e[1]*A[1]+e[2]*A[2]},o.prototype.normalize_=function(e){var A=e[0]*e[0]+e[1]*e[1]+e[2]*e[2];if(!A)throw"Zero-size vector!";A=Math.sqrt(A),e[0]/=A,e[1]/=A,e[2]/=A},o.prototype.longAxis_=function(e){var A=0;return Math.abs(e[1])>Math.abs(e[0])&&(A=1),Math.abs(e[2])>Math.abs(e[A])&&(A=2),A},o.prototype.computeNormal_=function(e){var A,t,r,n,i,a,l=[0,0,0],u=[0,0,0],s=[0,0,0],c=[0,0,0],d=[0,0,0],p=[null,null,null],f=[null,null,null],m=this.mesh.vHead;A=m.next;for(var h=0;h<3;++h)n=A.coords[h],u[h]=n,f[h]=A,l[h]=n,p[h]=A;for(A=m.next;A!==m;A=A.next)for(var x=0;x<3;++x)n=A.coords[x],n<u[x]&&(u[x]=n,f[x]=A),n>l[x]&&(l[x]=n,p[x]=A);var y=0;if(l[1]-u[1]>l[0]-u[0]&&(y=1),l[2]-u[2]>l[y]-u[y]&&(y=2),u[y]>=l[y]){e[0]=0,e[1]=0,e[2]=1;return}for(a=0,t=f[y],r=p[y],s[0]=t.coords[0]-r.coords[0],s[1]=t.coords[1]-r.coords[1],s[2]=t.coords[2]-r.coords[2],A=m.next;A!==m;A=A.next)c[0]=A.coords[0]-r.coords[0],c[1]=A.coords[1]-r.coords[1],c[2]=A.coords[2]-r.coords[2],d[0]=s[1]*c[2]-s[2]*c[1],d[1]=s[2]*c[0]-s[0]*c[2],d[2]=s[0]*c[1]-s[1]*c[0],i=d[0]*d[0]+d[1]*d[1]+d[2]*d[2],i>a&&(a=i,e[0]=d[0],e[1]=d[1],e[2]=d[2]);a<=0&&(e[0]=e[1]=e[2]=0,e[this.longAxis_(s)]=1)},o.prototype.checkOrientation_=function(){for(var e=this.mesh.fHead,A,t=this.mesh.vHead,r,n=0,i=e.next;i!==e;i=i.next)if(r=i.anEdge,!(r.winding<=0))do n+=(r.Org.s-r.Dst.s)*(r.Org.t+r.Dst.t),r=r.Lnext;while(r!==i.anEdge);if(n<0){for(A=t.next;A!==t;A=A.next)A.t=-A.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},o.prototype.projectPolygon_=function(){var e=this.mesh.vHead,A=[0,0,0],t,r,n=!1;A[0]=this.normal[0],A[1]=this.normal[1],A[2]=this.normal[2],!A[0]&&!A[1]&&!A[2]&&(this.computeNormal_(A),n=!0),t=this.sUnit,r=this.tUnit;var i=this.longAxis_(A);t[i]=0,t[(i+1)%3]=1,t[(i+2)%3]=0,r[i]=0,r[(i+1)%3]=0,r[(i+2)%3]=A[i]>0?1:-1;for(var a=e.next;a!==e;a=a.next)a.s=this.dot_(a.coords,t),a.t=this.dot_(a.coords,r);n&&this.checkOrientation_();for(var l=!0,u=e.next;u!==e;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))},o.prototype.addWinding_=function(e,A){e.winding+=A.winding,e.Sym.winding+=A.Sym.winding},o.prototype.tessellateMonoRegion_=function(e,A){var t,r;if(t=A.anEdge,!(t.Lnext!==t&&t.Lnext.Lnext!==t))throw"Mono region invalid";for(;sA.vertLeq(t.Dst,t.Org);t=t.Lprev);for(;sA.vertLeq(t.Org,t.Dst);t=t.Lnext);r=t.Lprev;for(var n=void 0;t.Lnext!==r;)if(sA.vertLeq(t.Dst,r.Org)){for(;r.Lnext!==t&&(sA.edgeGoesLeft(r.Lnext)||sA.edgeSign(r.Org,r.Dst,r.Lnext.Dst)<=0);)n=e.connect(r.Lnext,r),r=n.Sym;r=r.Lprev}else{for(;r.Lnext!==t&&(sA.edgeGoesRight(t.Lprev)||sA.edgeSign(t.Dst,t.Org,t.Lprev.Org)>=0);)n=e.connect(t,t.Lprev),t=n.Sym;t=t.Lnext}if(r.Lnext===t)throw"Mono region invalid";for(;r.Lnext.Lnext!==t;)n=e.connect(r.Lnext,r),r=n.Sym;return!0},o.prototype.tessellateInterior_=function(e){for(var A,t=e.fHead.next;t!==e.fHead;t=A)if(A=t.next,t.inside&&!this.tessellateMonoRegion_(e,t))return!1;return!0},o.prototype.discardExterior_=function(e){for(var A,t=e.fHead.next;t!==e.fHead;t=A)A=t.next,t.inside||e.zapFace(t)},o.prototype.setWindingNumber_=function(e,A,t){for(var r,n=e.eHead.next;n!==e.eHead;n=r)r=n.next,n.Rface.inside!==n.Lface.inside?n.winding=n.Lface.inside?A:-A:t?e.delete(n):n.winding=0},o.prototype.getNeighbourFace_=function(e){return!e.Rface||!e.Rface.inside?-1:e.Rface.n},o.prototype.outputPolymesh_=function(e,A,t,r){var n,i=0,a=0,l;t>3&&e.mergeConvexFaces(t);for(var u=e.vHead.next;u!==e.vHead;u=u.next)u.n=-1;for(var s=e.fHead.next;s!==e.fHead;s=s.next)if(s.n=-1,!!s.inside){n=s.anEdge,l=0;do{var u=n.Org;u.n===-1&&(u.n=a,a++),l++,n=n.Lnext}while(n!==s.anEdge);if(l>t)throw"Face vertex greater that support polygon";s.n=i,++i}this.elementCount=i,A===UA.CONNECTED_POLYGONS&&(i*=2),this.elements=[],this.elements.length=i*t,this.vertexCount=a,this.vertices=[],this.vertices.length=a*r,this.vertexIndices=[],this.vertexIndices.length=a;for(var u=e.vHead.next;u!==e.vHead;u=u.next)if(u.n!==-1){var c=u.n*r;this.vertices[c+0]=u.coords[0],this.vertices[c+1]=u.coords[1],r>2&&(this.vertices[c+2]=u.coords[2]),this.vertexIndices[u.n]=u.idx}for(var d=0,s=e.fHead.next;s!==e.fHead;s=s.next)if(!!s.inside){n=s.anEdge,l=0;do{var u=n.Org;this.elements[d++]=u.n,l++,n=n.Lnext}while(n!==s.anEdge);for(var p=l;p<t;++p)this.elements[d++]=-1;if(A===UA.CONNECTED_POLYGONS){n=s.anEdge;do this.elements[d++]=this.getNeighbourFace_(n),n=n.Lnext;while(n!==s.anEdge);for(var f=l;f<t;++f)this.elements[d++]=-1}}},o.prototype.outputContours_=function(e,A){var t,r,n=0,i=0;this.vertexCount=0,this.elementCount=0;for(var a=e.fHead.next;a!==e.fHead;a=a.next)if(!!a.inside){r=t=a.anEdge;do this.vertexCount++,t=t.Lnext;while(t!==r);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*A,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var l=0,u=0,s=0;n=0;for(var a=e.fHead.next;a!==e.fHead;a=a.next)if(!!a.inside){i=0,r=t=a.anEdge;do this.vertices[l++]=t.Org.coords[0],this.vertices[l++]=t.Org.coords[1],A>2&&(this.vertices[l++]=t.Org.coords[2]),this.vertexIndices[u++]=this.vertexIdCallback?this.vertexIdCallback(t):t.Org.idx,i++,t=t.Lnext;while(t!==r);this.elements[s++]=n,this.elements[s++]=i,n+=i}},o.prototype.addContour=function(e,A){this.mesh===null&&(this.mesh=new uf),e<2&&(e=2),e>3&&(e=3);for(var t=null,r=0;r<A.length;r+=e)t===null?(t=this.mesh.makeEdge(),this.mesh.splice(t,t.Sym)):(this.mesh.splitEdge(t),t=t.Lnext),t.Org.coords[0]=A[r+0],t.Org.coords[1]=A[r+1],e>2?t.Org.coords[2]=A[r+2]:t.Org.coords[2]=0,t.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(t),t.winding=1,t.Sym.winding=-1},o.prototype.tesselate=function(e,A,t,r,n,i){if(e===void 0&&(e=CA.ODD),A===void 0&&(A=UA.POLYGONS),i===void 0&&(i=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,n&&(this.normal[0]=n[0],this.normal[1]=n[1],this.normal[2]=n[2]),this.windingRule=e,r<2&&(r=2),r>3&&(r=3),!this.mesh)return!1;this.projectPolygon_(),yw.computeInterior(this,i);var a=this.mesh;return A===UA.BOUNDARY_CONTOURS?this.setWindingNumber_(a,1,!0):this.tessellateInterior_(a),i&&a.check(),A===UA.BOUNDARY_CONTOURS?this.outputContours_(a,r):this.outputPolymesh_(a,A,t,r),!0},o}();function Tr(o){var e=o.windingRule,A=e===void 0?CA.ODD:e,t=o.elementType,r=t===void 0?UA.POLYGONS:t,n=o.polySize,i=n===void 0?3:n,a=o.vertexSize,l=a===void 0?2:a,u=o.normal,s=u===void 0?[0,0,1]:u,c=o.contours,d=c===void 0?[]:c,p=o.strict,f=p===void 0?!0:p,m=o.debug,h=m===void 0?!1:m;if(!d&&f)throw new Error("Contours can't be empty");if(!!d){var x=new xw;o.edgeCreateCallback&&(x.edgeCreateCallback=o.edgeCreateCallback),o.vertexIdCallback&&(x.vertexIdCallback=o.vertexIdCallback);for(var y=0;y<d.length;y++)x.addContour(l||2,d[y]);return x.tesselate(A,r,i,l,s,f),{vertices:x.vertices,vertexIndices:x.vertexIndices,vertexCount:x.vertexCount,elements:x.elements,elementCount:x.elementCount,mesh:h?x.mesh:void 0}}}var NV=CA.ODD,IV=CA.NONZERO,PV=CA.POSITIVE,OV=CA.NEGATIVE,CV=CA.ABS_GEQ_TWO,LV=UA.POLYGONS,MV=UA.CONNECTED_POLYGONS,BV=UA.BOUNDARY_CONTOURS;var Po=class extends vw{constructor(A,t=12,r={}){super();this.type="ShapeGeometry";this.windingRule=CA.ODD;this.elementType=UA.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=A,this._curveSegments=t,this._triangulationOptions=Object.assign({windingRule:CA.ODD,elementType:UA.POLYGONS,polySize:3,vertexSize:2,strict:!0},r);let n=this._shape.extractShapePointsToFlatArray([],this._curveSegments),i=this._shape.shapeHoles.map(f=>f.extractShapePointsToFlatArray([],this._curveSegments)),a,l=!0,u=!0,s,c;for(let f=0,m=n.length/2;f<m;f++){let h=f*2,x=n[h+0],y=n[h+1];if(s!==void 0&&x!==s&&(l=!1),c!==void 0&&y!==c&&(u=!1),s=x,c=y,!l&&!u)break}!l&&!u&&(a=Tr({contours:[n,...i],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let d=a?.vertexCount??1,p=a?.elementCount??1;if(this._positionAttribute=new Os(new Float32Array(d*3),3),this._normalAttribute=new Os(new Float32Array(d*3),3),this._uvAttribute=new Os(new Float32Array(d*2),2),this._indexAttribute=new Os(new Uint32Array(p*3),1),a){let f=1/0,m=-1/0,h=1/0,x=-1/0;for(let w=0,v=d;w<v;w++){let I=w*2,S=a.vertices[I+0],g=a.vertices[I+1];S<f&&(f=S),S>m&&(m=S),g<h&&(h=g),g>x&&(x=g)}let y=m-f,b=x-h;for(let w=0,v=d;w<v;w++){let I=w*2,S=a.vertices[I+0],g=a.vertices[I+1],P=(S-f)/y,N=(g-h)/b;this._positionAttribute.setXYZ(w,S,g,0),this._normalAttribute.setXYZ(w,0,0,1),this._uvAttribute.setXY(w,P,N)}for(let w=0,v=p;w<v;w++){let I=w*3,S=a.elements[I+0],g=a.elements[I+1],P=a.elements[I+2];this._indexAttribute.setX(I+0,S),this._indexAttribute.setX(I+1,g),this._indexAttribute.setX(I+2,P)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(a?.elementCount??1)*3)}clone(){let A=new Po(this._shape,this._curveSegments);return A.userData=ln(this.userData),A}};import{BufferAttribute as Ls,BufferGeometry as bw}from"three";var Cs=class{constructor(e=256,A=!1){this.capacity=e,this.size=0,this.debug=A,this.debug&&console.log(`allocating with cap ${e}`);let t=e*Cs.eSize;this.buffer=new ArrayBuffer(t);let r=Float32Array.BYTES_PER_ELEMENT,n=0;this.positions=new Float32Array(this.buffer,n*r,3*e),n+=3*e,this.normals=new Float32Array(this.buffer,n*r,3*e),n+=3*e,this.uvs=new Float32Array(this.buffer,n*r,2*e)}realloc(e,A=!1){if(e<this.size)throw Error("cannot shrink buffer");if(e<=this.capacity&&!A)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${e}`);let t=e*Cs.eSize,r=new ArrayBuffer(t),n=Float32Array.BYTES_PER_ELEMENT,i=0,a=new Float32Array(r,i*n,3*e);i+=3*e;let l=new Float32Array(r,i*n,3*e);i+=3*e;let u=new Float32Array(r,i*n,2*e);a.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=r,this.positions=a,this.normals=l,this.uvs=u,this.capacity=e}get(e=1){let A=this.size+e;if(A>this.capacity){let r=this.capacity;for(;A>r;)r*=2;this.realloc(r)}let t=this.size;return this.size=A,t}reserve(e){let A=this.size+e;A>this.capacity&&this.realloc(A)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},Tn=Cs;Tn.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var il=(o,e)=>([A,t])=>(t<A&&(t+=e),(o>=A?o:o+e)<=t),Oo=class extends bw{constructor(A,t,r=0,n=12,i=3,a=CA.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=A,this._depth=t,this._bevel=r,this._curveSegments=n,this._bevelSegmentsInput=i,r<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(r,t/2-1e-12),this._bevelSegments=Math.floor(i));let l=this._shape.extractShapePointsToFlatArray([],n),u=this._shape.shapeHoles.map(g=>{let P=g.extractShapePointsToFlatArray([],n),N=[];for(let O=P.length-1;O>=1;O-=2){let T=P[O-1],L=P[O-0];N.push(T,L)}return N}),s=Tr({windingRule:a,elementType:UA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[l]}),c=Tr({windingRule:CA.ODD,elementType:UA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...u]});if(!s)throw new Error("error generating geometry");let d=s.elementCount;if(c){s.elementCount+=c.elementCount;for(let g=0;g<c.elements.length;g++){let P=c.elements[g],N=g%2===0?s.vertexCount:0;s.elements.push(P+N)}for(let g=0;g<c.vertexIndices.length;g++){let P=c.vertexIndices[g],N=s.vertexCount;s.vertexIndices.push(P+N)}for(let g=0;g<c.vertices.length;g++){let P=c.vertices[g];s.vertices.push(P)}}let p=1/0,f=-1/0,m=1/0,h=-1/0;for(let g=0,P=s.vertexCount;g<P;g++){let N=g*2,O=s.vertices[N+0],T=s.vertices[N+1];O<p&&(p=O),O>f&&(f=O),T<m&&(m=T),T>h&&(h=T)}this._minX=p,this._minY=m,this._width=f-p,this._height=h-m;let x=s.vertexCount*2*(2+this._bevelSegments);this._buffer=new Tn(x);let y=[],b=[];for(let g=s.elementCount-1;g>=0;g--){let P=g>=d,N=g*2,O=s.elements[N+0],T=s.elements[N+1],L=O+T,B={start:O,count:T,normals:[],continuous:[],concave:[]},k=O,X=L-1,eA=O+1,nA=this._shape.roundedCurves.length;do{let j=k-O,E=s.vertices[X*2+0],G=s.vertices[X*2+1],D=s.vertices[k*2+0],H=s.vertices[k*2+1],Y=s.vertices[eA*2+0],W=s.vertices[eA*2+1],F=D-E,R=H-G,z=Math.sqrt(F*F+R*R);F/=z,R/=z;let $=D-Y,rA=H-W,iA=Math.sqrt($*$+rA*rA);$/=iA,rA/=iA,B.normals[j*2+0]=-rA,B.normals[j*2+1]=$,B.concave[j]=F*rA-R*$>0;let tA=s.vertexIndices[k];if(Array.isArray(tA))B.continuous[j]=!1;else{let[AA,_]=this._shape.getCurveIndexFromVertexId(tA-1,!0);if(_>0&&_<1)B.continuous[j]=!0;else{let Z=_===1?AA+1:AA-1;Z=(Z+nA)%nA;let pA=_===1?0:1,uA=this._shape.roundedCurves[AA].getTangent(_),gA=this._shape.roundedCurves[Z].getTangent(pA);B.continuous[j]=uA.dot(gA)>.95}}P&&(B.normals[j*2+0]*=-1,B.normals[j*2+1]*=-1),[X,k,eA]=[k,eA,eA+1],eA>=L&&(eA-=T)}while(eA!==O+1);let U=[];U.push({bevelI:0,angle:0,size:0,boundary:{vertices:s.vertices.slice(O*2,L*2),vertexCount:T,vertexIndices:new Array(T).fill(!0).map((j,E)=>[E,E]),elements:[0,T],elementCount:1,mesh:null},reverseMap:[],insetPoints:s.vertices.slice(O*2,L*2)});for(let j=1;j<=this._bevelSegments;j++){let E=j/this._bevelSegments*Math.PI/2,G=(1-Math.cos(E))*this._bevelSize,D=[],H=[],Y=[],W=[],F=0;for(let z=0;z<T;z++){let $=z*2,rA=(z-1+T)%T*2,iA=s.vertices[B.start*2+$+0],tA=s.vertices[B.start*2+$+1],AA=-B.normals[rA+0]*G,_=-B.normals[rA+1]*G,Z=-B.normals[$+0]*G,pA=-B.normals[$+1]*G;if(B.concave[z]||!B.concave[z]&&P){let uA=Math.atan2(_,AA),gA=Math.atan2(pA,Z);gA>uA&&(gA-=Math.PI*2);let YA=gA-uA;if(B.continuous[z]||P){let SA=uA+YA/2,NA=Math.cos(SA)*G,OA=Math.sin(SA)*G;D[2*F+0]=iA+NA*(P?-1:1),D[2*F+1]=tA+OA*(P?-1:1),W[F]=z,F++}else{let SA=Math.max(1,Math.floor(n/4*Math.abs(YA)/Math.PI));for(let NA=0;NA<=SA;NA++){let OA=uA+YA*(NA/SA),Oe=Math.cos(OA)*G,Ut=Math.sin(OA)*G;D[2*F+0]=iA+Oe,D[2*F+1]=tA+Ut,W[F]=z,F++}}}else D[2*F+0]=iA+AA,D[2*F+1]=tA+_,W[F]=z,H[z]=F,F++,D[2*F+0]=iA,D[2*F+1]=tA,W[F]=z,F++,D[2*F+0]=iA+Z,D[2*F+1]=tA+pA,W[F]=z,Y[z]=F,F++}let R=Tr({windingRule:CA.POSITIVE,elementType:UA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[D],edgeCreateCallback:z=>{let rA=z.Org.idx,iA=W[rA],tA=W[(rA+1)%W.length];z.idx=[iA,tA],z.Sym.idx=[tA,iA]},vertexIdCallback:z=>{let $=z.Lprev.idx;return[$?$[1]:0,z.idx[0]]}});if(!R)throw console.log("Error"),new Error(`error generating bevel geometry for ${j}'th loop`);if(!R.vertexCount)break;for(let z=0;z<R.vertexIndices.length;z++){let[$,rA]=R.vertexIndices[z];if($===rA)continue;let iA=rA;rA<$&&(iA+=T);for(let tA=$;tA<iA;tA++){let AA=tA%T,_=(tA+1)%T;if(!B.continuous[AA]||!B.continuous[_]){R.vertexIndices[z]=[$,AA],R.vertexIndices.splice(z+1,0,[_,rA]),R.vertices.splice((z+1)*2,0,R.vertices[z*2],R.vertices[z*2+1]);break}}}U.push({bevelI:j,angle:E,size:G,boundary:R,reverseMap:W,insetPoints:D})}let q=(j,E,G)=>{let D=0,H=j.boundary.vertexIndices.length;for(;D<H&&G(j.boundary.vertexIndices[E]);)E=(E+1)%H,D++;return D},Q=y.length;for(let j=1;j<U.length;j++){let E=U[j-1],G=U[j],D=E.boundary.vertexIndices.length,H=G.boundary.vertexIndices.length;if(!D||!H)break;let Y=B.concave.length,W=0,F=il(W,T);for(;!E.boundary.vertexIndices.filter(F).length||!G.boundary.vertexIndices.filter(F).length;)W++,F=il(W,T);let R=E.boundary.vertexIndices.findIndex(F),z=G.boundary.vertexIndices.findIndex(F);do R=(R+1)%D;while(F(E.boundary.vertexIndices[R]));do z=(z+1)%H;while(F(G.boundary.vertexIndices[z]));W=(W+1)%T;let $=W,rA=this.buildBevelVert(B,E,(R-1+D)%D),iA=this.buildBevelVert(B,G,(z-1+H)%H),tA=rA,AA=iA,_,Z,pA=!1;do{F=il(W,T);let uA=q(E,R,F),gA=q(G,z,F),YA=pA;if(pA=!1,uA&&!gA){for(let SA=0;SA<uA;SA++)_=this.buildBevelVert(B,E,(R+SA)%D,SA/(uA-1)),y.push(tA.topN,_.topP,AA.topN),y.push(_.bottomP,tA.bottomN,AA.bottomN),tA=_;pA=!0}else if(!uA&&gA)for(let SA=0;SA<gA;SA++)Z=this.buildBevelVert(B,G,(z+SA)%H,SA/(gA-1)),y.push(AA.topN,tA.topP,Z.topP),y.push(tA.bottomP,AA.bottomN,Z.bottomP),AA=Z;else if(uA&&gA)if(_=this.buildBevelVert(B,E,R,0),Z=this.buildBevelVert(B,G,z,0),YA?(y.push(tA.topN,Z.topP,AA.topN),y.push(tA.topN,_.topP,Z.topP),y.push(Z.bottomP,tA.bottomN,AA.bottomN),y.push(Z.bottomP,_.bottomP,tA.bottomN)):(y.push(AA.topN,tA.topN,_.topP),y.push(AA.topN,_.topP,Z.topP),y.push(_.bottomP,tA.bottomN,AA.bottomN),y.push(_.bottomP,AA.bottomN,Z.bottomP)),tA=_,AA=Z,uA===gA)for(let SA=1;SA<uA;SA++)_=this.buildBevelVert(B,E,(R+SA)%D,SA/(uA-1)),Z=this.buildBevelVert(B,G,(z+SA)%H,SA/(gA-1)),y.push(tA.topN,_.topP,AA.topN),y.push(AA.topN,_.topP,Z.topP),y.push(_.bottomP,tA.bottomN,AA.bottomN),y.push(_.bottomP,AA.bottomN,Z.bottomP),tA=_,AA=Z;else if(uA>gA){let SA=uA/gA,NA=0;for(let OA=1;OA<uA;OA++)_=this.buildBevelVert(B,E,(R+OA)%D,OA/(uA-1)),y.push(tA.topN,_.topP,AA.topN),y.push(_.bottomP,tA.bottomN,AA.bottomN),tA=_,OA>(NA+1)*SA&&(NA++,Z=this.buildBevelVert(B,G,(z+NA)%H,NA/(gA-1)),y.push(AA.topN,_.topP,Z.topP),y.push(_.bottomP,AA.bottomN,Z.bottomP),AA=Z)}else{let SA=gA/uA,NA=0;for(let OA=1;OA<gA;OA++)Z=this.buildBevelVert(B,G,(z+OA)%H,OA/(gA-1)),y.push(AA.topN,_.topP,Z.topP),y.push(_.bottomP,AA.bottomN,Z.bottomP),AA=Z,OA>(NA+1)*SA&&(NA++,_=this.buildBevelVert(B,E,(R+NA)%D,NA/(uA-1)),y.push(tA.topN,_.topP,AA.topN),y.push(_.bottomP,tA.bottomN,AA.bottomN),tA=_)}R=(R+uA)%D,z=(z+gA)%H,W=(W+1)%Y}while(W!==$)}{let j=U[0];for(let E=0,G=j.boundary.vertexCount;E<G;E++){let D=this.buildBevelVert(B,j,E),H=this.buildBevelVert(B,j,(E+1)%G);y.push(H.topP,D.topN,D.bottomN),y.push(H.topP,D.bottomN,H.bottomP)}}if(P){let j=[];for(let E=y.length-1;E>=Q+2;E-=3){let G=y[E-2],D=y[E-1],H=y[E-0];j.push(H,D,G)}y.splice(Q,y.length-Q,...j)}if(P){let j=[];for(let E=U[U.length-1].boundary.vertices.length-1;E>=1;E-=2){let G=U[U.length-1].boundary.vertices[E-1],D=U[U.length-1].boundary.vertices[E-0];j.push(G,D)}b.push(j)}if(!P){let j=U[U.length-1],E=Tr({windingRule:U.length>1?CA.POSITIVE:CA.ODD,elementType:UA.POLYGONS,vertexSize:2,strict:!0,contours:[j.insetPoints,...b]});if(!E)throw new Error("Error generating geometry for surface");u.length===0&&Object.assign(this,{capStartIndex:y.length});for(let G=0;G<E.elementCount*3;G+=3){let D=this.buildSurfaceVert(E,E.elements[G+0]),H=this.buildSurfaceVert(E,E.elements[G+1]),Y=this.buildSurfaceVert(E,E.elements[G+2]);y.push(D.top,H.top,Y.top),y.push(Y.bottom,H.bottom,D.bottom)}}this.vertexCache={}}this._buffer.shrink();let w=new Ls(Uint32Array.from(y),1),v=new Ls(this._buffer.positions,3),I=new Ls(this._buffer.normals,3),S=new Ls(this._buffer.uvs,2);v.needsUpdate=!0,I.needsUpdate=!0,S.needsUpdate=!0,w.needsUpdate=!0,this.setAttribute("position",v),this.setAttribute("normal",I),this.setAttribute("uv",S),this.setIndex(w)}buildSurfaceVert(A,t){let r=t.toString();if(r in this.vertexCache)return this.vertexCache[r];let n=A.vertices[t*2+0],i=A.vertices[t*2+1],a=(n-this._minX)/this._width,l=(i-this._minY)/this._height,u=this._buffer.get(2),s=u*3,c=u*2,d={top:u+0,bottom:u+1};return this._buffer.positions[s+0]=n,this._buffer.positions[s+1]=i,this._buffer.positions[s+2]=this._depth,this._buffer.normals[s+0]=0,this._buffer.normals[s+1]=0,this._buffer.normals[s+2]=1,this._buffer.uvs[c+0]=a,this._buffer.uvs[c+1]=l,this._buffer.positions[s+3]=n,this._buffer.positions[s+4]=i,this._buffer.positions[s+5]=0,this._buffer.normals[s+3]=0,this._buffer.normals[s+4]=0,this._buffer.normals[s+5]=-1,this._buffer.uvs[c+2]=a,this._buffer.uvs[c+3]=l,this.vertexCache[r]=d,d}buildBevelVert(A,t,r,n=1){let i=`${t.bevelI}:${r}`;if(i in this.vertexCache)return this.vertexCache[i];let[a,l]=t.boundary.vertexIndices[r],u,s,c,d;a!==l?(s=a,u=l,d=!1,c=A.continuous[s]&&A.continuous[u]):(u=a,s=(u-1+A.count)%A.count,d=A.concave[u]&&t.bevelI>0,c=A.continuous[u]||d);let p=Math.cos(t.angle),f=Math.sin(t.angle),m=r*2,h=u*2,x=s*2,y=t.boundary.vertices[m+0],b=t.boundary.vertices[m+1],w=(1-f)*this._bevelSize,v=(y-this._minX)/this._width,I=(b-this._minY)/this._height,S=A.normals[h+0],g=A.normals[h+1],P=A.normals[x+0],N=A.normals[x+1];if(d){let k=P-S,X=N-g;S=S+k*(1-n),g=g+X*(1-n);let eA=Math.sqrt(S*S+g*g);S/=eA,g/=eA}let O=this._buffer.get(c?2:4),T=O*3,L=O*2,B={i:r,fi:u,topP:O+0,topN:O+0,bottomP:O+1,bottomN:O+1};return this._buffer.positions[T+0]=y,this._buffer.positions[T+1]=b,this._buffer.positions[T+2]=this._depth-w,this._buffer.normals[T+0]=S*p,this._buffer.normals[T+1]=g*p,this._buffer.normals[T+2]=f,this._buffer.uvs[L+0]=v,this._buffer.uvs[L+1]=I,this._buffer.positions[T+3]=y,this._buffer.positions[T+4]=b,this._buffer.positions[T+5]=w,this._buffer.normals[T+3]=S*p,this._buffer.normals[T+4]=g*p,this._buffer.normals[T+5]=-f,this._buffer.uvs[L+2]=I,this._buffer.uvs[L+3]=v,c||(O+=2,T+=6,L+=4,B.topP=O+0,B.bottomP=O+1,this._buffer.positions[T+0]=y,this._buffer.positions[T+1]=b,this._buffer.positions[T+2]=this._depth-w,this._buffer.normals[T+0]=P*p,this._buffer.normals[T+1]=N*p,this._buffer.normals[T+2]=f,this._buffer.uvs[L+0]=v,this._buffer.uvs[L+1]=I,this._buffer.positions[T+3]=y,this._buffer.positions[T+4]=b,this._buffer.positions[T+5]=w,this._buffer.normals[T+3]=P*p,this._buffer.normals[T+4]=N*p,this._buffer.normals[T+5]=-f,this._buffer.uvs[L+2]=I,this._buffer.uvs[L+3]=v),this.vertexCache[i]=B,B}clone(){let A=new Oo(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return A.userData=ln(this.userData),A}};var ee=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:CA.ODD},o.parameters),t=Math.abs(A.width),r=Math.abs(A.height??A.width),n=Math.abs(A.depth??0),i=o.shape??e?.shape,a=i?.roundness??A.roundness;i!==void 0&&(i instanceof vA?(i.width!==t||i.height!==r)&&i.applySize(t,r):i=new vA(t,r).fromJSON(i),o.parameters?.roundness!==void 0&&o.parameters?.roundness>0&&i.update(!1));let l=i??new vA(t,r);return{parameters:Object.assign(A,{width:t,height:r,depth:n,roundness:a}),shape:l}}static build(o){let{depth:e,extrudeBevelSize:A,extrudeBevelSegments:t,subdivisions:r,roundness:n,windingRule:i}=o.parameters;o.shape.roundness=n;let a;return e<=0?a=new Po(o.shape,r,{windingRule:i}):a=new Oo(o.shape,e,A,r,t,i),Object.assign(a,{userData:{...o,type:"VectorGeometry"}})}};import{Mesh as fT,Matrix4 as mT}from"three";import{ConeGeometry as Tw}from"three";import{BufferGeometry as ww,CylinderGeometry as Sw,Float32BufferAttribute as sl,Vector2 as Qe,Vector3 as Ms}from"three";var hf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},o.parameters),t=A.width/2,r=A.radiusTop??t,n=A.radiusBottom??t;return r===n?(r=t,n=t):r>n?(r=t,n=n*t/r):(r=r*t/n,n=t),{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width),radiusTop:r,radiusBottom:n})}}static build(o){let{width:e,depth:A,height:t,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:a,thetaLength:l,radiusTop:u,radiusBottom:s,cornerRadius:c,cornerSegments:d,hollow:p}=o.parameters,f;return c||p?f=new Nn(u,s,t,r,n,i,a,l*Math.PI/180,c,c,d,p):f=new Sw(u,s,t,r,n,i,a,l*Math.PI/180),f.scale(1,1,A/e),Object.assign(f,{userData:{...o,type:"CylinderGeometry"}})}};function ir(o,e,A){A.x=o.x*e.x,A.y=o.y,A.z=o.x*e.y}function mf(o){return new Qe(o.y,-o.x)}var Nn=class extends ww{constructor(e,A,t,r,n,i,a,l,u,s,c,d,p=!1){super(),this.type="RoundedCylinderBufferGeometry",e=e!==void 0?e:1,A=A!==void 0?A:1,t=t||1,r=Math.floor(r)||8,n=Math.floor(n)||1,i=i!==void 0?i:!1,a=a!==void 0?a:0,l=l!==void 0?l:Math.PI*2,i&&(u=0,s=0);let f=[],m=[],h=[],x=[],y=0,b=t/2,w=new Ms,v=new Ms;p&&e==0&&(e=u),p&&A==0&&(A=s);let I=new Qe(e,b),S=new Qe(A,-b),g=null,P=null,N=null,O=null,T=I.clone().sub(S),L=0,B=0,k=0;d>0&&(L=Math.min(e,A)*(1-d),B=e-L,k=A-L);let X=I.clone();X.x-=L;let eA=Math.PI-T.angle(),nA=T.angle(),U=Math.tan(nA/2),q=Math.tan(eA/2),Q=U+q,j=d?Q:q,E=d?Q:U;if(u=Math.min(u,(e-B)/j,T.length()/Q),s=Math.min(s,(A-k)/E,T.length()/Q),u>0){let F=u/U;g=I.clone().sub(new Qe(F,u)),d&&(N=g.clone(),N.x-=L-Q*u),I.sub(T.clone().setLength(F))}if(s>0){let F=s/q;P=S.clone().sub(new Qe(F,-s)),S.add(T.clone().setLength(F)),d&&(O=P.clone(),O.x-=L-Q*s,X.sub(T.clone().setLength(F)))}T=I.clone().sub(S);let G=T.length()<.5,D=[];for(let F=0;F<=r;F++){let R=[],z=F/r,$=z*l+a,rA=new Qe(Math.sin($),Math.cos($));O&&P?(H(R,z,rA,eA,s,O,-1,!0),H(R,z,rA,nA,s,P,-1,!1)):P?(Y(R,rA,P.x,0,-1),H(R,z,rA,nA,s,P,-1,!1)):i||Y(R,rA,A,k,-1);let iA=mf(T).normalize();if(ir(iA,rA,w),!G)for(let tA=0;tA<=n;tA++){let AA=tA/n,_=T.clone().multiplyScalar(AA).add(S);ir(_,rA,v),m.push(v.x,v.y,v.z),h.push(w.x,w.y,w.z),x.push(z,.5+v.y/t),R.push(y++)}if(N&&g?(H(R,z,rA,eA,u,g,1,!1),H(R,z,rA,nA,u,N,1,!0)):g?(H(R,z,rA,eA,u,g,1,!1),Y(R,rA,g.x,0,1)):i||Y(R,rA,e,B,1),d&&!G){let tA=mf(T).multiplyScalar(-1).normalize();ir(tA,rA,w);for(let AA=0;AA<=n;AA++){let _=AA/n,Z=T.clone().multiplyScalar(-_).add(X);ir(Z,rA,v),m.push(v.x,v.y,v.z),h.push(w.x,w.y,w.z),x.push(z,.5+v.y/t),R.push(y++)}}d&&!i&&R.push(R[0]),D.push(R)}for(let F=0;F<D.length-1;F++)for(let R=0;R<D[0].length-1;R++){if(i&&d&&R==n)continue;let z=D[F][R],$=D[F+1][R],rA=D[F+1][R+1],iA=D[F][R+1],tA=m[rA*3+0],AA=m[rA*3+2];f.push(z,$,iA),(tA!=0||AA!=0)&&f.push($,rA,iA)}l<Math.PI*2&&(W(-1,D[0],a),W(1,D[D.length-1],a+l)),this.setIndex(f),this.setAttribute("position",new sl(m,3)),this.setAttribute("normal",new sl(h,3)),this.setAttribute("uv",new sl(x,2));function H(F,R,z,$,rA,iA,tA,AA){for(let _=0;_<c+1;_++){let Z=_/c,pA=tA<0?Z:1-Z;AA&&(pA-=1),pA*=$;let uA=new Qe(Math.sin(pA),Math.cos(pA)*tA),gA=uA.clone().multiplyScalar(rA).add(iA);ir(gA,z,v),m.push(v.x,v.y,v.z),ir(uA,z,w),h.push(w.x,w.y,w.z),x.push(R,.5+v.y/t),F.push(y++)}}function Y(F,R,z,$,rA){let iA=new Ms,tA=new Qe,AA=[z,$];rA<0&&AA.reverse();for(let _ of AA)tA.set(_,b*rA),ir(tA,R,iA),m.push(iA.x,iA.y,iA.z),h.push(0,rA,0),x.push(.5,.5),F.push(y++)}function W(F,R,z){let $=new Qe(Math.sin(z),Math.cos(z)),rA=new Qe(-Math.cos(z),Math.sin(z)),iA=new Ms,tA=F<0?(Z,pA,uA)=>f.push(Z,pA,uA):(Z,pA,uA)=>f.push(Z,uA,pA),AA=new Qe((e+A+B+k)/4,0);ir(AA,$,iA),m.push(iA.x,iA.y,iA.z),h.push(rA.x,0,rA.y),x.push(.5,.5);let _=y++;for(let Z of R){let pA=m.slice(Z*3,Z*3+3);m.push(...pA),h.push(rA.x,0,rA.y);let uA=x.slice(Z*2,Z*2+2);x.push(...uA),y++}for(let Z=_+1;Z<y-1;Z++)tA(_,Z,Z+1);tA(_,y-1,_+1)}}};var gf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,depth:A,height:t,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:a,thetaLength:l,cornerRadiusTop:u,cornerRadiusBottom:s,cornerSegments:c}=o.parameters,d;return u>0||s>0||l<360?d=new Nn(0,e/2,t,r,n,i,a,l*Math.PI/180,u,s,c,0,!0):d=new Tw(e/2,t,r,n,i),d.scale(1,1,A/e),Object.assign(d,{userData:{...o,type:"ConeGeometry"}})}};import{BoxGeometry as Nw,BufferGeometry as Iw,Float32BufferAttribute as al,Vector3 as In}from"three";var yf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,height:A,depth:t,widthSegments:r,heightSegments:n,depthSegments:i,cornerRadius:a,cornerSegments:l}=o.parameters,u;return a==0?u=new Nw(e,A,t,r,n,i):u=new cl(e,A,t,r,n,i,a,l),Object.assign(u,{userData:{...o,type:"CubeGeometry"}})}},ll=Math.PI/2,cl=class extends Iw{constructor(e=1,A=1,t=1,r=1,n=1,i=1,a=0,l=4){super(),this.type="BoxGeometry";let u=this;r=Math.floor(r),n=Math.floor(n),i=Math.floor(i),l=Math.floor(l),a=Math.min(a,e/2,A/2,t/2);let s=[],c=[],d=[],p=[],f=0,m=0;h("z","y","x",-1,-1,t,A,e,i,n,0),h("z","y","x",1,-1,t,A,-e,i,n,1),h("x","z","y",1,1,e,t,A,r,i,2),h("x","z","y",1,-1,e,t,-A,r,i,3),h("x","y","z",1,-1,e,A,t,r,n,4),h("x","y","z",-1,-1,e,A,-t,r,n,5),a>0&&(x("z","y","x",-1,-1,1,t,A,e,i,0),x("z","y","x",1,-1,-1,t,A,e,i,1),x("z","y","x",-1,1,-1,t,A,e,i,1),x("z","y","x",1,1,1,t,A,e,i,0),x("x","y","z",-1,-1,-1,e,A,t,r,0),x("x","y","z",1,-1,1,e,A,t,r,1),x("x","y","z",-1,1,1,e,A,t,r,0),x("x","y","z",1,1,-1,e,A,t,r,1),x("y","x","z",-1,-1,1,A,e,t,n,0),x("y","x","z",1,-1,-1,A,e,t,n,1),x("y","x","z",1,1,1,A,e,t,n,1),x("y","x","z",-1,1,-1,A,e,t,n,0),y(1,1,1),y(-1,1,1),y(1,-1,1),y(-1,-1,1),y(1,1,-1),y(-1,1,-1),y(1,-1,-1),y(-1,-1,-1)),this.setIndex(s),this.setAttribute("position",new al(c,3)),this.setAttribute("normal",new al(d,3)),this.setAttribute("uv",new al(p,2));function h(b,w,v,I,S,g,P,N,O,T,L){let B=(g-2*a)/O,k=(P-2*a)/T,X=g/2-a,eA=P/2-a,nA=N/2,U=O+1,q=T+1,Q=0,j=0,E=new In;for(let G=0;G<q;G++){let D=G*k-eA;for(let H=0;H<U;H++){let Y=H*B-X;E[b]=Y*I,E[w]=D*S,E[v]=nA,c.push(E.x,E.y,E.z),E[b]=0,E[w]=0,E[v]=N>0?1:-1,d.push(E.x,E.y,E.z),p.push(H/O),p.push(1-G/T),Q+=1}}for(let G=0;G<T;G++)for(let D=0;D<O;D++){let H=f+D+U*G,Y=f+D+U*(G+1),W=f+(D+1)+U*(G+1),F=f+(D+1)+U*G;s.push(H,Y,F),s.push(Y,W,F),j+=6}u.addGroup(m,j,L),m+=j,f+=Q}function x(b,w,v,I,S,g,P,N,O,T,L){let B=(P-2*a)/T,k=P/2-a,X=N/2-a,eA=O/2,nA=T+1,U=0,q=0,Q=new In,j=new In;for(let E=0;E<l+1;E++){let G=E/l*ll,D=Math.sin(G)*a,H=(1-Math.cos(G))*a,Y=Math.sin(G),W=Math.cos(G);Q[w]=(X+D)*S,Q[v]=(eA-H)*g,j[b]=0,j[w]=Y*Math.sign(Q[w]),j[v]=W*Math.sign(Q[v]);for(let F=0;F<nA;F++){let R=F*B-k;Q[b]=R*I,c.push(Q.x,Q.y,Q.z),d.push(j.x,j.y,j.z),p.push(F/T),p.push(0),U+=1}}for(let E=0;E<l;E++)for(let G=0;G<T;G++){let D=f+G+nA*E,H=f+G+nA*(E+1),Y=f+(G+1)+nA*(E+1),W=f+(G+1)+nA*E;s.push(D,H,W),s.push(H,Y,W),q+=6}u.addGroup(m,q,L),m+=q,f+=U}function y(b,w,v){let I=new In,S=new In(e/2,A/2,t/2);S.subScalar(a);let g=[],P=b*w*v>0?(O,T,L)=>s.push(O,T,L):(O,T,L)=>s.push(O,L,T);for(let O=0;O<=l;O++){let T=[],L=ll*(1-O/l),B=Math.cos(L),k=Math.sin(L),X=0;for(let eA=0;eA<=O;eA++){let nA=Math.cos(X),U=Math.sin(X);I.x=B*nA,I.y=k,I.z=B*U;let q=S.clone().addScaledVector(I,a);c.push(b*q.x,w*q.y,v*q.z),d.push(b*I.x,w*I.y,v*I.z),p.push(0,0),T.push(f++),X+=ll/O}g.push(T)}let N=g.length-1;for(let O=0;O<N;O++){let T=g[O],L=g[O+1],B=T.length-1;P(T[0],L[1],L[0]);for(let k=1;k<=B;k++)P(T[k-1],T[k],L[k]),P(T[k],L[k+1],L[k])}}}};import{BufferGeometry as Pw,Float32BufferAttribute as ul,Triangle as Ow,Vector3 as Ft,Vector2 as dl}from"three";var sr=class extends Pw{constructor(e=[],A=[],t="",r=1,n=.2,i=4){super(),this.type="PolyhedronGeometryRound";let a=[],l=[],u=[];s(),c(),this.setAttribute("position",new ul(a,3)),this.setAttribute("normal",new ul(u,3)),this.setAttribute("uv",new ul(l,2));return;function s(){n=Math.min(1-1e-5,n),n==0&&(i=0);let p={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[t],f=new Ft,m=f.clone(),h=new Ow,x=n*r,y=r-x,b=i+1,w=new Ft,v=(U,q)=>w.subVectors(U,q).normalize(),I=(U,q)=>Array(U).fill(void 0).map(q),S=I(e.length/3,(U,q)=>new Ft().fromArray(e,q*3).setLength(r)),g=[],P=1e6;for(let U=0;U<S.length;U++){let q=S[U],Q=[],j,E,G,D=1e10,H=-1;for(;(H=A.indexOf(U,H+1))!=-1;){let R=H-H%3;j=A[R+(H+1)%3],E=A[R+(H+2)%3],G=q.distanceToSquared(S[j]),D=Math.min(D,G),Q.push([j,E,G])}D+=1e-6;let Y=[],W=0,F=Q.length;for(let R=0;R<F;R++){[j,E,G]=Q[W];let z=g[j]?.includes(U)==!0;G<=D&&Y.push(j+ +z*P),W=Q.findIndex($=>$[0]==E)}g.push(Y)}let N=[];{let U=0,q=0,Q,j,E=p==3;for(let G=0;G<=i;G++){Q=G*(G+1)/2,j=(G+1)*(G+2)/2;for(let D=0;D<i-G;D++)[U,q]=[Q+D+G+2,j+D+G+3],N.push(Q,j,...E?[q,Q]:[U,j],q,U),[Q,j]=[U,q];N.push(Q,j,Q+i+2)}}let O=f.clone(),T=f.clone(),L=f.clone(),B=f.clone(),k=f.clone(),X=[],eA=I(S.length,()=>I(p,()=>f.clone()));for(let U=0;U<S.length;U++){f.copy(S[U]).normalize(),O.copy(f).multiplyScalar(y);let q=g[U];for(let Y=0;Y<q.length;Y++){let W=q[Y],F=q[(Y+1)%p];h.setFromPointsAndIndices(S,U,W%P,F%P),h.b.sub(h.a).setLength(1e10).add(h.a),h.c.sub(h.a).setLength(1e10).add(h.a),h.closestPointToPoint(O,eA[U][Y])}let Q=[],j=[],E=[],G=new Ft;i==0&&[...eA[U]].reduce((Y,W)=>Y.add(W),G).multiplyScalar(1/p);for(let Y=0;Y<p;Y++){let W=[],F=(Y-1+p)%p,R=eA[U][F],z=eA[U][Y];f.copy(R).sub(O),m.copy(z).sub(O);let $=O.angleTo(f),rA=f.angleTo(m),iA=Math.cos($)*x;i==0?T.copy(G):T.copy(O).setLength(y+iA),j.push(iA);let tA=[T,R,z];for(let AA=0;AA<2;AA++){let _=tA[AA],Z=tA[AA+1];B.subVectors(_,O),k.subVectors(Z,O),L.crossVectors(B,k).normalize();for(let pA=0;pA<b;pA++){let uA=[$,rA][AA]*pA/b;f.copy(B).applyAxisAngle(L,uA).add(O),Q.push(f.clone()),AA&&(v(f,O),W.push([pA==0?_:f.clone(),w.clone()]))}AA&&(v(Z,O),W.push([Z,w.clone()]))}E.push(W)}X.push(E);let D=2*b,H=2;for(let Y=0;Y<p;Y++){let W=D*Y,F=D*((Y+1)%p),R=[Q[W]];for(let $=1;$<b;$++){B=Q[W+$],k=Q[F+$],R.push(B);for(let rA=1,iA=$-H+1;rA<=iA;rA++)f.lerpVectors(B,k,rA/(iA+1)),f.sub(O).setLength(j[Y]).add(O),R.push(f.clone());R.push(k)}for(let $=0;$<b;$++)R.push(Q[$+b+W]);R.push(Q[F+b]);let z=N.map($=>R[$]);a.push(...z.map($=>[$.x,$.y,$.z]).flat()),u.push(...z.map($=>(v($,O),[w.x,w.y,w.z])).flat())}}let nA=[];for(let U=0;U<g.length;U++)for(let q=0;q<p;q++){let Q=g[U][q];if(Q<P){let j=g[Q].findIndex(D=>D%P==U),E=X[U][q],G=X[Q][j];for(let D=0;D<b;D++){let H=E[D],Y=G[b-D],W=E[D+1],F=G[b-(D+1)];[H,Y,W,W,Y,F].forEach(R=>{a.push(R[0].x,R[0].y,R[0].z),u.push(R[1].x,R[1].y,R[1].z)})}nA.push(E[0][0],G[b][0],E[b][0],G[0][0])}}for(;nA.length;){let U,q,Q,j;[U,q]=nA.splice(0,2);let E=[U];for(;U!=q;)E.push(q),Q=nA.indexOf(q),j=Q%2,q=nA.splice(Q-j,2)[1-j];w.subVectors(E[0],E[1]).cross(f.subVectors(E[0],E[2])).normalize();let G=w.dot(E[0])<0;G&&w.negate();for(let D=1;D<=E.length-2;D++)[E[D+ +G],E[D+1-+G],E[0]].forEach(H=>{a.push(H.x,H.y,H.z),u.push(w.x,w.y,w.z)})}}function c(){let d=new Ft;for(let S=0;S<a.length;S+=3){d.x=a[S+0],d.y=a[S+1],d.z=a[S+2];let g=v(d)/2/Math.PI+.5,P=I(d)/Math.PI+.5;l.push(g,1-P)}let p=new Ft,f=new Ft,m=new Ft,h=new Ft,x=new dl,y=new dl,b=new dl,w=(S,g,P,N)=>{N<0&&S.x===1&&(l[g]=S.x-1),P.x===0&&P.z===0&&(l[g]=N/2/Math.PI+.5)};for(let S=0,g=0;S<a.length;S+=9,g+=6){p.set(a[S+0],a[S+1],a[S+2]),f.set(a[S+3],a[S+4],a[S+5]),m.set(a[S+6],a[S+7],a[S+8]),x.set(l[g+0],l[g+1]),y.set(l[g+2],l[g+3]),b.set(l[g+4],l[g+5]),h.copy(p).add(f).add(m).divideScalar(3);let P=v(h);w(x,g+0,p,P),w(y,g+2,f,P),w(b,g+4,m,P)}for(let S=0;S<l.length;S+=6){let g=l[S+0],P=l[S+2],N=l[S+4],O=Math.max(g,P,N),T=Math.min(g,P,N);O>.9&&T<.1&&(g<.2&&(l[S+0]+=1),P<.2&&(l[S+2]+=1),N<.2&&(l[S+4]+=1))}function v(S){return Math.atan2(S.z,-S.x)}function I(S){return Math.atan2(-S.y,Math.sqrt(S.x*S.x+S.z*S.z))}}}static fromJSON(e){return new sr(e.vertices,e.indices,e.radius,e.corner,e.cornerSides)}};import{DodecahedronGeometry as Cw}from"three";var xf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,detail:0,corner:0,cornerSides:4},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,height:A,depth:t,detail:r,corner:n,cornerSides:i}=o.parameters,a=r===0&&n!==0?new Pn(e*.5,n,i):new Cw(e*.5,r);return a.scale(1,A/e,t/e),Object.assign(a,{userData:{...o,type:"DodecahedronGeometry"}})}},Pn=class extends sr{constructor(e=1,A=.2,t=4){let r=(1+Math.sqrt(5))/2,n=1/r,i=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-n,-r,0,-n,r,0,n,-r,0,n,r,-n,-r,0,-n,r,0,n,-r,0,n,r,0,-r,0,-n,r,0,-n,-r,0,n,r,0,n],a=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],l="DodecahedronGeometry";super(i,a,l,e,A,t),this.type=l}static fromJSON(e){return new Pn(e.radius,e.corner,e.cornerSides)}};var fl=Math.PI*2;function pl({x:o,y:e},A,t,r,n){return{x:o*A+r,y:e*t+n}}function Lw(o,e){let A=e===1.5707963267948966?.551915024494:e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),t=Math.cos(o),r=Math.sin(o),n=Math.cos(o+e),i=Math.sin(o+e);return[{x:t-r*A,y:r+t*A},{x:n+i*A,y:i-n*A},{x:n,y:i}]}function vf(o,e,A,t){let r=o*t-e*A<0?-1:1,n=Math.min(1,Math.max(-1,o*A+e*t));return r*Math.acos(n)}function Mw(o,e,A,t,r,n,i,a,l,u){let s=Math.pow(r,2),c=Math.pow(n,2),d=Math.pow(i,2),p=Math.pow(a,2),f=s*c-s*p-c*d;f<0&&(f=0),f/=s*p+c*d,f=Math.sqrt(f)*(l===u?-1:1);let m=f*r/n*a,h=f*-n/r*i,x=m+(o+A)/2,y=h+(e+t)/2,b=(i-m)/r,w=(a-h)/n,v=(-i-m)/r,I=(-a-h)/n,S=vf(1,0,b,w),g=vf(b,w,v,I);return!u&&g>0&&(g-=fl),u&&g<0&&(g+=fl),{centerx:x,centery:y,ang1:S,ang2:g}}function bf({px:o,py:e,cx:A,cy:t,rx:r,ry:n,largeArcFlag:i,sweepFlag:a}){let l=[];if(r===0||n===0)return[];let u=(o-A)/2,s=(e-t)/2;if(u===0&&s===0)return[];r=Math.abs(r),n=Math.abs(n);let c=Math.pow(u,2)/Math.pow(r,2)+Math.pow(s,2)/Math.pow(n,2);c>1&&(r*=Math.sqrt(c),n*=Math.sqrt(c));let d=Mw(o,e,A,t,r,n,u,s,i,a),{ang1:p,ang2:f}=d,{centerx:m,centery:h}=d,x=Math.abs(f)/(fl/4);Math.abs(1-x)<1e-7&&(x=1);let y=Math.max(Math.ceil(x),1);f/=y;for(let b=0;b<y;b++)l.push(Lw(p,f)),p+=f;return l.map(b=>{let{x:w,y:v}=pl(b[0],r,n,m,h),{x:I,y:S}=pl(b[1],r,n,m,h),{x:g,y:P}=pl(b[2],r,n,m,h);return{x1:w,y1:v,x2:I,y2:S,x:g,y:P}})}import{MathUtils as Sf,Vector2 as Tf}from"three";var Nf=Math.PI*2,If=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},o.parameters);return{shape:o.shape&&o.shape instanceof vA?o.shape:new vA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:e,height:A,spikes:t,angle:r,innerRadius:n,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}=o.parameters,u=o.shape,s=e*.5,c=A*.5,d=Bw(u,s,c,r*Math.PI/180,t,n);u.isClosed=!0,u.update();let p=ee.create({shape:u,parameters:{subdivisions:d,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}});return Object.assign(p,{userData:{...o,type:"EllipseGeometry"}})}};function Bw(o,e,A,t,r,n){if(t>=Nf)return r>30||r%4===0?(Dw(o,e,A,n),Math.round(r/4)):wf(o,t,r,e,A,n);let i={x:0,y:A},a=t+Math.PI*.5,l={x:Math.cos(a)*e,y:Math.sin(a)*A},u=bf({px:i.x,py:i.y,cx:l.x,cy:l.y,rx:e,ry:A,largeArcFlag:t>Math.PI,sweepFlag:!0});return r>30||r%u.length===0?Ew(o,i.x,i.y,u,r,e,A,n):wf(o,t,r,e,A,n)}function Ew(o,e,A,t,r,n,i,a){let l=Math.round(r/t.length);o.addPoint(Co(e,A));for(let u=0,s=t.length;u<s;u++){let c=t[u],d=o.points[u],p=Co(c.x,c.y);d.controls[1].position.set(c.x1,c.y1),p.controls[0].position.set(c.x2,c.y2),o.addPoint(p)}return a>0?Pf(o,n,i,a):o.addPoint(Co(0,0)),l}function wf(o,e,A,t,r,n){let i=-e/A;for(let a=0;a<=A;a++){let l=i*a,u=Math.sin(l)*t,s=Math.cos(l)*r;o.addPoint(Co(u,s))}return e<Nf?n>0?Pf(o,t,r,n):o.addPoint(Co(0,0)):(o.removePoint(o.points[o.points.length-1]),n>0&&Of(o,t,r,n)),1}function Dw(o,e,A,t=0,r=0,n=0){let i=.5522847498,a=e*i,l=A*i;o.addPoint(Bs(r-e,n,r-e,n-l,r-e,n+l)),o.addPoint(Bs(r,n+A,r-a,n+A,r+a,n+A)),o.addPoint(Bs(r+e,n,r+e,n+l,r+e,n-l)),o.addPoint(Bs(r,n-A,r+a,n-A,r-a,n-A)),t>0&&Of(o,e,A,t)}function Co(o,e){return new qe(Sf.generateUUID(),new Tf(o,e))}function Bs(o,e,A,t,r,n){let i=Co(o,e);return i.controls[0].position.set(A,t),i.controls[1].position.set(r,n),i}function Pf(o,e,A,t){Cf(o,e,A,t).forEach(n=>o.addPoint(n))}function Of(o,e,A,t){let r=Cf(o,e,A,t),n=new vA;r.forEach(i=>n.addPoint(i)),n.isClosed=!0,o.shapeHoles.push(n)}function Cf(o,e,A,t){let r=t*e/100,n=r*(Math.abs(A)/Math.abs(e)),i=new Tf(r/e,n/A),a=o.points.map(l=>{let u=l.clone();return u.uuid=Sf.generateUUID(),u}).reverse();return a.forEach(l=>{l.position.multiply(i);let u=l.controls[0].position.clone().multiply(i),s=l.controls[1].position.clone().multiply(i);l.controls[0].position.copy(s),l.controls[1].position.copy(u)}),a}import{BufferGeometry as Gw,Float32BufferAttribute as ml,Vector3 as Lf}from"three";var Mf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},o.parameters),t=Math.abs(A.width),r=Math.abs(A.height??t),n=Math.abs(A.depth??t),i=Math.abs(Math.min(t,n))/2;return{parameters:Object.assign(A,{width:t,height:r,depth:n,radius:i,segments:Math.round(A.segments),pathSegments:Math.round(A.pathSegments),cornerSegments:Math.round(A.cornerSegments)})}}static build(o){let{width:e,height:A,depth:t,radius:r,revolutions:n,segments:i,pathRadius:a,pathType:l,pathSegments:u,cornerRadius:s,cornerSegments:c}=o.parameters,d=new On(!1,e,A,t,r,n,i,a,l,u,s,c);return Object.assign(d,{userData:{...o,type:"HelixGeometry"}})}},On=class extends Gw{constructor(e=!0,A=1,t=1,r=1,n=1,i=1,a=1,l=1,u=1,s=1,c=1,d=1){super();let p=e&&i===1;p&&(d=0),c>100&&(c=100);let f=()=>new Lf,m=new Lf,h=f(),x=f(),y=f(),b,w,v,I,S,g,P,N,O=f(),T=f(),L=f(),B=f(),k=f(),X=f(),eA=f(),nA=f(),U=t-2*l+.001,q=U/i,Q=Math.ceil(a*i),j=Q+1,E=U/Q,G=-U/2,D=s+1,H=2*Math.PI/s,Y=Math.PI/2/d,W=.01,F=Math.min((1-c/100)*l,l-W),R=l-F,z=0,$=2,rA=d*$+$,iA=D*rA/$,tA=iA+D*j,AA=D*(j+rA),[_,Z,pA]=[3,3,2].map(RA=>Array(AA*RA).fill(0)),uA=[],gA=n-l;function YA(RA,Te){let $e=Math.PI/2;g=Te*E,N=2*Math.PI*(g%q)/q+$e,g+=G,P=Math.sin(N)*gA,S=Math.cos(N)*gA,e?RA.set(S,P,g):RA.set(S,g,P)}YA(m,-1e-10),YA(h,0),O.copy(m),YA(m,1);let SA=m.distanceTo(h),NA=p?0:R+F,OA=SA*Q+2*NA,Oe=F,Ut=OA-NA;for(let RA=0;RA<=Q;RA++){YA(x,RA),nA.subVectors(x,O).normalize(),O.copy(x),X.copy(x).setComponent(+e+1,0).normalize(),eA.crossVectors(nA,X).normalize();let Te=RA===0,$e=RA===Q,wh=Te?3*Math.PI/2:Y,Sh=Te?Oe:Ut,Th=Te?D:tA,Nh=Te?0:AA-D,Ih=nA.clone().multiplyScalar(Te?-R:R).add(x),Ph=nA.clone().multiplyScalar(Te?-1:1).normalize();for(let Pt=0;Pt<D;Pt++){let cc=Pt*H;if(T.addVectors(m.copy(X).multiplyScalar(l*Math.cos(cc)),h.copy(eA).multiplyScalar(l*Math.sin(cc))),L.copy(T).normalize(),Te||$e){p||(z=Nh+Pt,[0,1,2].forEach(fe=>{_[z*3+fe]=Ih.getComponent(fe),Z[z*3+fe]=Ph.getComponent(fe)}),pA[z*2]=+$e,pA[z*2+1]=Pt/s),h.copy(L).multiplyScalar(F),y.addVectors(x,h);for(let fe=0;fe<d;fe++){let ia=fe*Y+wh;B.addVectors(m.copy(nA).multiplyScalar(R*Math.sin(ia)),h.copy(L).multiplyScalar(R*Math.cos(ia))),k.copy(B).normalize(),h.addVectors(y,B),B.normalize(),z=Th+fe*D+Pt,[0,1,2].forEach(ci=>{_[z*3+ci]=h.getComponent(ci),Z[z*3+ci]=k.getComponent(ci)});let Oh=+Te+Math.sin(ia);pA[z*2]=(Sh+R*Oh)/OA,pA[z*2+1]=Pt/s}}h.addVectors(x,T),z=iA+RA*D+Pt,[0,1,2].forEach(fe=>{_[z*3+fe]=h.getComponent(fe),Z[z*3+fe]=L.getComponent(fe)}),pA[z*2]=(NA+RA*SA)/OA,pA[z*2+1]=Pt/s}}let Se=j+2*d+$,si=1,[ai,li]=[+p,Se-1];for(let RA=ai;RA<=li-1;RA++){let Te=p&&RA===li-1;for(let $e=0;$e<D-1;$e++)b=RA*D+$e,w=b+1,v=(Te?$e:b)+D,I=(Te?$e+1:w)+D,RA===0?uA.push(w,I,v):RA===Se-2?uA.push(b,w,v):uA.push(b,w,v,w,I,v)}this.setIndex(uA),this.setAttribute("position",new ml(_,3)),this.setAttribute("normal",new ml(Z,3)),this.setAttribute("uv",new ml(pA,2))}};import{IcosahedronGeometry as Rw}from"three";var Bf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,detail:0,corner:0,cornerSides:4},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,height:A,depth:t,detail:r,corner:n,cornerSides:i}=o.parameters,a=r===0&&n!==0?new Cn(e*.5,n,i):new Rw(e*.5,r);return a.scale(1,A/e,t/e),Object.assign(a,{userData:{...o,type:"IcosahedronGeometry"}})}},Cn=class extends sr{constructor(e=1,A=.2,t=4){let r=(1+Math.sqrt(5))/2,n=[-1,r,0,1,r,0,-1,-r,0,1,-r,0,0,-1,r,0,1,r,0,-1,-r,0,1,-r,r,0,-1,r,0,1,-r,0,-1,-r,0,1],i=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],a="IcosahedronGeometry";super(n,i,a,e,A,t),this.type=a}static fromJSON(e){return new Cn(e.radius,e.corner,e.cornerSides)}};import{LatheGeometry as Vw,Shape as Fw}from"three";var Ef=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){(o.parameters?.points??[]).forEach(t=>{Array.isArray(t)&&(t.x=t[0],t.y=t[1])});let A=Object.assign({},e?.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}]},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{points:e,segments:A,verticalSegments:t}=o.parameters,r=new Fw;r.moveTo(e[0].x,e[0].y),r.bezierCurveTo(e[1].x,e[1].y,e[2].x,e[2].y,e[3].x,e[3].y);let n=new Vw(r.extractPoints(t).shape,A);return n.rotateZ(Math.PI),Object.assign(n,{userData:{...o,type:"LatheGeometry"}})}};import{BufferGeometry as jf,BufferGeometryLoader as Xw,Vector3 as Kw,BoxGeometry as zf}from"three";import{BufferGeometry as Ww,Vector2 as yl,Vector3 as Ff}from"three";import{Box3 as jw,BufferAttribute as Ln,BufferGeometry as Df,Color as Rf,EventDispatcher as zw,Float32BufferAttribute as Lo,Matrix3 as Gf,Matrix4 as Vf,MathUtils as kw,Object3D as Uw,Sphere as Hw,Vector2 as Fe,Vector3 as ie}from"three";var ft=new Vf,hl=new Uw,Es=new ie,ar=class extends zw{constructor(){super(),this.uuid=kw.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(e){let A=new Gf().getNormalMatrix(e);for(let t=0,r=this.vertices.length;t<r;t++)this.vertices[t].applyMatrix4(e);for(let t=0,r=this.faces.length;t<r;t++){let n=this.faces[t];n.normal.applyMatrix3(A).normalize();for(let i=0,a=n.vertexNormals.length;i<a;i++)n.vertexNormals[i].applyMatrix3(A).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(e){return ft.makeRotationX(e),this.applyMatrix4(ft),this}rotateY(e){return ft.makeRotationY(e),this.applyMatrix4(ft),this}rotateZ(e){return ft.makeRotationZ(e),this.applyMatrix4(ft),this}translate(e,A,t){return ft.makeTranslation(e,A,t),this.applyMatrix4(ft),this}scale(e,A,t){return ft.makeScale(e,A,t),this.applyMatrix4(ft),this}lookAt(e){return hl.lookAt(e),hl.updateMatrix(),this.applyMatrix4(hl.matrix),this}fromBufferGeometry(e){let A=this,t=e.index!==null?e.index:void 0,r=e.attributes;if(r.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let n=r.position,i=r.normal,a=r.color,l=r.uv,u=r.uv2;u!==void 0&&(this.faceVertexUvs[1]=[]);for(let d=0;d<n.count;d++)A.vertices.push(new ie().fromBufferAttribute(n,d)),a!==void 0&&A.colors.push(new Rf().fromBufferAttribute(a,d));function s(d,p,f,m){let h=a===void 0?[]:[A.colors[d].clone(),A.colors[p].clone(),A.colors[f].clone()],x=i===void 0?[]:[new ie().fromBufferAttribute(i,d),new ie().fromBufferAttribute(i,p),new ie().fromBufferAttribute(i,f)],y=new Mo(d,p,f,x,h,m);A.faces.push(y),l!==void 0&&A.faceVertexUvs[0].push([new Fe().fromBufferAttribute(l,d),new Fe().fromBufferAttribute(l,p),new Fe().fromBufferAttribute(l,f)]),u!==void 0&&A.faceVertexUvs[1].push([new Fe().fromBufferAttribute(u,d),new Fe().fromBufferAttribute(u,p),new Fe().fromBufferAttribute(u,f)])}let c=e.groups;if(c.length>0)for(let d=0;d<c.length;d++){let p=c[d],f=p.start,m=p.count;for(let h=f,x=f+m;h<x;h+=3)t!==void 0?s(t.getX(h),t.getX(h+1),t.getX(h+2),p.materialIndex):s(h,h+1,h+2,p.materialIndex)}else if(t!==void 0)for(let d=0;d<t.count;d+=3)s(t.getX(d),t.getX(d+1),t.getX(d+2));else for(let d=0;d<n.count;d+=3)s(d,d+1,d+2);return this.computeFaceNormals(),e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Es).negate(),this.translate(Es.x,Es.y,Es.z),this}normalize(){this.computeBoundingSphere();let e=this.boundingSphere.center,A=this.boundingSphere.radius,t=A===0?1:1/A,r=new Vf;return r.set(t,0,0,-t*e.x,0,t,0,-t*e.y,0,0,t,-t*e.z,0,0,0,1),this.applyMatrix4(r),this}computeFaceNormals(){let e=new ie,A=new ie;for(let t=0,r=this.faces.length;t<r;t++){let n=this.faces[t],i=this.vertices[n.a],a=this.vertices[n.b],l=this.vertices[n.c];e.subVectors(l,a),A.subVectors(i,a),e.cross(A),e.normalize(),n.normal.copy(e)}}computeVertexNormals(e=!0){let A=new Array(this.vertices.length);for(let t=0,r=this.vertices.length;t<r;t++)A[t]=new ie;if(e){let t=new ie,r=new ie;for(let n=0,i=this.faces.length;n<i;n++){let a=this.faces[n],l=this.vertices[a.a],u=this.vertices[a.b],s=this.vertices[a.c];t.subVectors(s,u),r.subVectors(l,u),t.cross(r),A[a.a].add(t),A[a.b].add(t),A[a.c].add(t)}}else{this.computeFaceNormals();for(let t=0,r=this.faces.length;t<r;t++){let n=this.faces[t];A[n.a].add(n.normal),A[n.b].add(n.normal),A[n.c].add(n.normal)}}for(let t=0,r=this.vertices.length;t<r;t++)A[t].normalize();for(let t=0,r=this.faces.length;t<r;t++){let n=this.faces[t],i=n.vertexNormals;i.length===3?(i[0].copy(A[n.a]),i[1].copy(A[n.b]),i[2].copy(A[n.c])):(i[0]=A[n.a].clone(),i[1]=A[n.b].clone(),i[2]=A[n.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let e=0,A=this.faces.length;e<A;e++){let t=this.faces[e],r=t.vertexNormals;r.length===3?(r[0].copy(t.normal),r[1].copy(t.normal),r[2].copy(t.normal)):(r[0]=t.normal.clone(),r[1]=t.normal.clone(),r[2]=t.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let A=0,t=this.faces.length;A<t;A++){let r=this.faces[A];r.__originalFaceNormal?r.__originalFaceNormal.copy(r.normal):r.__originalFaceNormal=r.normal.clone(),r.__originalVertexNormals||(r.__originalVertexNormals=[]);for(let n=0,i=r.vertexNormals.length;n<i;n++)r.__originalVertexNormals[n]?r.__originalVertexNormals[n].copy(r.vertexNormals[n]):r.__originalVertexNormals[n]=r.vertexNormals[n].clone()}let e=new ar;e.faces=this.faces;for(let A=0,t=this.morphTargets.length;A<t;A++){if(!this.morphNormals[A]){this.morphNormals[A]={},this.morphNormals[A].faceNormals=[],this.morphNormals[A].vertexNormals=[];let n=this.morphNormals[A].faceNormals,i=this.morphNormals[A].vertexNormals;for(let a=0,l=this.faces.length;a<l;a++){let u=new ie,s={a:new ie,b:new ie,c:new ie};n.push(u),i.push(s)}}let r=this.morphNormals[A];e.vertices=this.morphTargets[A].vertices,e.computeFaceNormals(),e.computeVertexNormals();for(let n=0,i=this.faces.length;n<i;n++){let a=this.faces[n],l=r.faceNormals[n],u=r.vertexNormals[n];l.copy(a.normal),u.a.copy(a.vertexNormals[0]),u.b.copy(a.vertexNormals[1]),u.c.copy(a.vertexNormals[2])}}for(let A=0,t=this.faces.length;A<t;A++){let r=this.faces[A];r.normal=r.__originalFaceNormal,r.vertexNormals=r.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new jw),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Hw),this.boundingSphere.setFromPoints(this.vertices)}merge(e,A,t=0){if(!(e&&e.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",e);return}let r,n=this.vertices.length,i=this.vertices,a=e.vertices,l=this.faces,u=e.faces,s=this.colors,c=e.colors;A!==void 0&&(r=new Gf().getNormalMatrix(A));for(let d=0,p=a.length;d<p;d++){let m=a[d].clone();A!==void 0&&m.applyMatrix4(A),i.push(m)}for(let d=0,p=c.length;d<p;d++)s.push(c[d].clone());for(let d=0,p=u.length;d<p;d++){let f=u[d],m,h,x=f.vertexNormals,y=f.vertexColors,b=new Mo(f.a+n,f.b+n,f.c+n);b.normal.copy(f.normal),r!==void 0&&b.normal.applyMatrix3(r).normalize();for(let w=0,v=x.length;w<v;w++)m=x[w].clone(),r!==void 0&&m.applyMatrix3(r).normalize(),b.vertexNormals.push(m);b.color.copy(f.color);for(let w=0,v=y.length;w<v;w++)h=y[w],b.vertexColors.push(h.clone());b.materialIndex=f.materialIndex+t,l.push(b)}for(let d=0,p=e.faceVertexUvs.length;d<p;d++){let f=e.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let m=0,h=f.length;m<h;m++){let x=f[m],y=[];for(let b=0,w=x.length;b<w;b++)y.push(x[b].clone());this.faceVertexUvs[d].push(y)}}}mergeMesh(e){if(!(e&&e.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",e);return}e.matrixAutoUpdate&&e.updateMatrix(),this.merge(e.geometry,e.matrix)}mergeVertices(e=4){let A={},t=[],r=[],n=Math.pow(10,e);for(let l=0,u=this.vertices.length;l<u;l++){let s=this.vertices[l],c=Math.round(s.x*n)+"_"+Math.round(s.y*n)+"_"+Math.round(s.z*n);A[c]===void 0?(A[c]=l,t.push(this.vertices[l]),r[l]=t.length-1):r[l]=r[A[c]]}let i=[];for(let l=0,u=this.faces.length;l<u;l++){let s=this.faces[l];s.a=r[s.a],s.b=r[s.b],s.c=r[s.c];let c=[s.a,s.b,s.c];for(let d=0;d<3;d++)if(c[d]===c[(d+1)%3]){i.push(l);break}}for(let l=i.length-1;l>=0;l--){let u=i[l];this.faces.splice(u,1);for(let s=0,c=this.faceVertexUvs.length;s<c;s++)this.faceVertexUvs[s].splice(u,1)}let a=this.vertices.length-t.length;return this.vertices=t,a}setFromPoints(e){this.vertices=[];for(let A=0,t=e.length;A<t;A++){let r=e[A];this.vertices.push(new ie(r.x,r.y,r.z||0))}return this}sortFacesByMaterialIndex(){let e=this.faces,A=e.length;for(let l=0;l<A;l++)e[l]._id=l;function t(l,u){return l.materialIndex-u.materialIndex}e.sort(t);let r=this.faceVertexUvs[0],n=this.faceVertexUvs[1],i,a;r&&r.length===A&&(i=[]),n&&n.length===A&&(a=[]);for(let l=0;l<A;l++){let u=e[l]._id;i&&i.push(r[u]),a&&a.push(n[u])}i&&(this.faceVertexUvs[0]=i),a&&(this.faceVertexUvs[1]=a)}toJSON(){let e={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,this.name!==""&&(e.name=this.name),this.parameters!==void 0){let f=this.parameters;for(let m in f)f[m]!==void 0&&(e[m]=f[m]);return e}let A=[];for(let f=0;f<this.vertices.length;f++){let m=this.vertices[f];A.push(m.x,m.y,m.z)}let t=[],r=[],n={},i=[],a={},l=[],u={};for(let f=0;f<this.faces.length;f++){let m=this.faces[f],h=!0,x=!1,y=this.faceVertexUvs[0][f]!==void 0,b=m.normal.length()>0,w=m.vertexNormals.length>0,v=m.color.r!==1||m.color.g!==1||m.color.b!==1,I=m.vertexColors.length>0,S=0;if(S=s(S,0,0),S=s(S,1,h),S=s(S,2,x),S=s(S,3,y),S=s(S,4,b),S=s(S,5,w),S=s(S,6,v),S=s(S,7,I),t.push(S),t.push(m.a,m.b,m.c),t.push(m.materialIndex),y){let g=this.faceVertexUvs[0][f];t.push(p(g[0]),p(g[1]),p(g[2]))}if(b&&t.push(c(m.normal)),w){let g=m.vertexNormals;t.push(c(g[0]),c(g[1]),c(g[2]))}if(v&&t.push(d(m.color)),I){let g=m.vertexColors;t.push(d(g[0]),d(g[1]),d(g[2]))}}function s(f,m,h){return h?f|1<<m:f&~(1<<m)}function c(f){let m=f.x.toString()+f.y.toString()+f.z.toString();return n[m]!==void 0||(n[m]=r.length/3,r.push(f.x,f.y,f.z)),n[m]}function d(f){let m=f.r.toString()+f.g.toString()+f.b.toString();return a[m]!==void 0||(a[m]=i.length,i.push(f.getHex())),a[m]}function p(f){let m=f.x.toString()+f.y.toString();return u[m]!==void 0||(u[m]=l.length/2,l.push(f.x,f.y)),u[m]}return e.data={},e.data.vertices=A,e.data.normals=r,i.length>0&&(e.data.colors=i),l.length>0&&(e.data.uvs=[l]),e.data.faces=t,e}clone(){return new ar().copy(this)}copy(e){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=e.name;let A=e.vertices;for(let d=0,p=A.length;d<p;d++)this.vertices.push(A[d].clone());let t=e.colors;for(let d=0,p=t.length;d<p;d++)this.colors.push(t[d].clone());let r=e.faces;for(let d=0,p=r.length;d<p;d++)this.faces.push(r[d].clone());for(let d=0,p=e.faceVertexUvs.length;d<p;d++){let f=e.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let m=0,h=f.length;m<h;m++){let x=f[m],y=[];for(let b=0,w=x.length;b<w;b++){let v=x[b];y.push(v.clone())}this.faceVertexUvs[d].push(y)}}let n=e.morphTargets;for(let d=0,p=n.length;d<p;d++){let f={};if(f.name=n[d].name,n[d].vertices!==void 0){f.vertices=[];for(let m=0,h=n[d].vertices.length;m<h;m++)f.vertices.push(n[d].vertices[m].clone())}if(n[d].normals!==void 0){f.normals=[];for(let m=0,h=n[d].normals.length;m<h;m++)f.normals.push(n[d].normals[m].clone())}this.morphTargets.push(f)}let i=e.morphNormals;for(let d=0,p=i.length;d<p;d++){let f={};if(i[d].vertexNormals!==void 0){f.vertexNormals=[];for(let m=0,h=i[d].vertexNormals.length;m<h;m++){let x=i[d].vertexNormals[m],y={};y.a=x.a.clone(),y.b=x.b.clone(),y.c=x.c.clone(),f.vertexNormals.push(y)}}if(i[d].faceNormals!==void 0){f.faceNormals=[];for(let m=0,h=i[d].faceNormals.length;m<h;m++)f.faceNormals.push(i[d].faceNormals[m].clone())}this.morphNormals.push(f)}let a=e.skinWeights;for(let d=0,p=a.length;d<p;d++)this.skinWeights.push(a[d].clone());let l=e.skinIndices;for(let d=0,p=l.length;d<p;d++)this.skinIndices.push(l[d].clone());let u=e.lineDistances;for(let d=0,p=u.length;d<p;d++)this.lineDistances.push(u[d]);let s=e.boundingBox;s!==null&&(this.boundingBox=s.clone());let c=e.boundingSphere;return c!==null&&(this.boundingSphere=c.clone()),this.elementsNeedUpdate=e.elementsNeedUpdate,this.verticesNeedUpdate=e.verticesNeedUpdate,this.uvsNeedUpdate=e.uvsNeedUpdate,this.normalsNeedUpdate=e.normalsNeedUpdate,this.colorsNeedUpdate=e.colorsNeedUpdate,this.lineDistancesNeedUpdate=e.lineDistancesNeedUpdate,this.groupsNeedUpdate=e.groupsNeedUpdate,this}toBufferGeometry(){let e=new gl().fromGeometry(this),A=new Df,t=new Float32Array(e.vertices.length*3);if(A.setAttribute("position",new Ln(t,3).copyVector3sArray(e.vertices)),e.normals.length>0){let r=new Float32Array(e.normals.length*3);A.setAttribute("normal",new Ln(r,3).copyVector3sArray(e.normals))}if(e.colors.length>0){let r=new Float32Array(e.colors.length*3);A.setAttribute("color",new Ln(r,3).copyColorsArray(e.colors))}if(e.uvs.length>0){let r=new Float32Array(e.uvs.length*2);A.setAttribute("uv",new Ln(r,2).copyVector2sArray(e.uvs))}if(e.uvs2.length>0){let r=new Float32Array(e.uvs2.length*2);A.setAttribute("uv2",new Ln(r,2).copyVector2sArray(e.uvs2))}A.groups=e.groups;for(let r in e.morphTargets){let n=[],i=e.morphTargets[r];for(let a=0,l=i.length;a<l;a++){let u=i[a],s=new Lo(u.data.length*3,3);s.name=u.name,n.push(s.copyVector3sArray(u.data))}A.morphAttributes[r]=n}if(e.skinIndices.length>0){let r=new Lo(e.skinIndices.length*4,4);A.setAttribute("skinIndex",r.copyVector4sArray(e.skinIndices))}if(e.skinWeights.length>0){let r=new Lo(e.skinWeights.length*4,4);A.setAttribute("skinWeight",r.copyVector4sArray(e.skinWeights))}return e.boundingSphere!==null&&(A.boundingSphere=e.boundingSphere.clone()),e.boundingBox!==null&&(A.boundingBox=e.boundingBox.clone()),A}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(e){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(e)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(e){let A=new Df,t=e.geometry;if(e.isPoints||e.isLine){let r=new Lo(t.vertices.length*3,3),n=new Lo(t.colors.length*3,3);if(A.setAttribute("position",r.copyVector3sArray(t.vertices)),A.setAttribute("color",n.copyColorsArray(t.colors)),t.lineDistances&&t.lineDistances.length===t.vertices.length){let i=new Lo(t.lineDistances.length,1);A.setAttribute("lineDistance",i.copyArray(t.lineDistances))}t.boundingSphere!==null&&(A.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(A.boundingBox=t.boundingBox.clone())}else e.isMesh&&(A=t.toBufferGeometry());return A}};ar.prototype.isGeometry=!0;var gl=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(e){let A=[],t,r,n,i=e.faces;for(r=0;r<i.length;r++){let a=i[r];a.materialIndex!==n&&(n=a.materialIndex,t!==void 0&&(t.count=r*3-t.start,A.push(t)),t={start:r*3,materialIndex:n})}t!==void 0&&(t.count=r*3-t.start,A.push(t)),this.groups=A}fromGeometry(e){let A=e.faces,t=e.vertices,r=e.faceVertexUvs,n=r[0]&&r[0].length>0,i=r[1]&&r[1].length>0,a=e.morphTargets,l=a.length,u;if(l>0){u=[];for(let x=0;x<l;x++)u[x]={name:a[x].name,data:[]};this.morphTargets.position=u}let s=e.morphNormals,c=s.length,d;if(c>0){d=[];for(let x=0;x<c;x++)d[x]={name:s[x].name,data:[]};this.morphTargets.normal=d}let p=e.skinIndices,f=e.skinWeights,m=p.length===t.length,h=f.length===t.length;t.length>0&&A.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let x=0;x<A.length;x++){let y=A[x];this.vertices.push(t[y.a],t[y.b],t[y.c]);let b=y.vertexNormals;if(b.length===3)this.normals.push(b[0],b[1],b[2]);else{let v=y.normal;this.normals.push(v,v,v)}let w=y.vertexColors;if(w.length===3)this.colors.push(w[0],w[1],w[2]);else{let v=y.color;this.colors.push(v,v,v)}if(n===!0){let v=r[0][x];v!==void 0?this.uvs.push(v[0],v[1],v[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",x),this.uvs.push(new Fe,new Fe,new Fe))}if(i===!0){let v=r[1][x];v!==void 0?this.uvs2.push(v[0],v[1],v[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",x),this.uvs2.push(new Fe,new Fe,new Fe))}for(let v=0;v<l;v++){let I=a[v].vertices;u[v].data.push(I[y.a],I[y.b],I[y.c])}for(let v=0;v<c;v++){let I=s[v].vertexNormals[x];d[v].data.push(I.a,I.b,I.c)}m&&this.skinIndices.push(p[y.a],p[y.b],p[y.c]),h&&this.skinWeights.push(f[y.a],f[y.b],f[y.c])}return this.computeGroups(e),this.verticesNeedUpdate=e.verticesNeedUpdate,this.normalsNeedUpdate=e.normalsNeedUpdate,this.colorsNeedUpdate=e.colorsNeedUpdate,this.uvsNeedUpdate=e.uvsNeedUpdate,this.groupsNeedUpdate=e.groupsNeedUpdate,e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),this}},Mo=class{constructor(e,A,t,r,n,i=0){this.a=e,this.b=A,this.c=t,this.normal=r&&r.isVector3?r:new ie,this.vertexNormals=Array.isArray(r)?r:[],this.color=n&&n.isColor?n:new Rf,this.vertexColors=Array.isArray(n)?n:[],this.materialIndex=i}clone(){return new this.constructor().copy(this)}copy(e){this.a=e.a,this.b=e.b,this.c=e.c,this.normal.copy(e.normal),this.color.copy(e.color),this.materialIndex=e.materialIndex;for(let A=0,t=e.vertexNormals.length;A<t;A++)this.vertexNormals[A]=e.vertexNormals[A].clone();for(let A=0,t=e.vertexColors.length;A<t;A++)this.vertexColors[A]=e.vertexColors[A].clone();return this}};var qw=["a","b","c"];function Qw(o,e){switch(e){case"c":return o.c;case"b":return o.b;case"a":default:return o.a}}function xl(o,e,A){let t=Math.min(o,e),r=Math.max(o,e),n=t+"_"+r;return A.get(n)}function vl(o,e,A,t,r,n){let i=Math.min(o,e),a=Math.max(o,e),l=i+"_"+a,u;if(t.has(l))u=t.get(l);else{let s=A[i],c=A[a];u={a:s,b:c,newEdge:null,faces:[]},t.set(l,u)}u.faces.push(r),n[o].edges.push(u),n[e].edges.push(u)}function Yw(o,e,A,t){let r,n,i;for(r=0,n=o.length;r<n;r++)A[r]={edges:[]};for(r=0,n=e.length;r<n;r++)i=e[r],vl(i.a,i.b,o,t,i,A),vl(i.b,i.c,o,t,i,A),vl(i.c,i.a,o,t,i,A)}function Ds(o,e,A,t,r){o.push(new Mo(e,A,t,void 0,void 0,r))}function Bo(o,e){return Math.abs(e-o)/2+Math.min(o,e)}function Gs(o,e,A,t){o.push([e.clone(),A.clone(),t.clone()])}var Rs=class{constructor(e=1){this.subdivisions=e}modify(e){e instanceof Ww?e=new ar().fromBufferGeometry(e):e=e.clone(),e.mergeVertices();let A=this.subdivisions;for(;A-- >0;)this._smooth(e);return e.computeFaceNormals(),e.computeVertexNormals(),e}_smooth(e){let A=new Ff,t,r,n,i,a,l=e.vertices,u=e.faces,s=e.faceVertexUvs[0],c=s!==void 0&&s.length>0,d=[],p=new Map;Yw(l,u,d,p);let f=[],m,h,x,y,b,w,v;for(let W of Array.from(p.keys())){for(h=p.get(W),x=new Ff,b=3/8,w=1/8,v=h.faces.length,v!=2&&(b=.5,w=0,v!=1),x.addVectors(h.a,h.b).multiplyScalar(b),A.set(0,0,0),i=0;i<v;i++){for(y=h.faces[i],a=0;a<3&&(m=l[Qw(y,qw[a])],!(m!==h.a&&m!==h.b));a++);m&&A.add(m)}A.multiplyScalar(w),x.add(A),h.newEdge=f.length,f.push(x)}let I,S,g,P,N,O,T,L=[];for(r=0,n=l.length;r<n;r++){for(O=l[r],N=d[r].edges,t=N.length,t==3?I=3/16:t>3&&(I=3/(8*t)),S=1-t*Number(I),g=I,t<=2&&(t==2?(S=3/4,g=1/8):t==1||t==0),T=O.clone().multiplyScalar(S),A.set(0,0,0),i=0;i<t;i++)P=N[i],m=P.a!==O?P.a:P.b,A.add(m);A.multiplyScalar(Number(g)),T.add(A),L.push(T)}let B=L.concat(f),k=L.length,X,eA,nA,U=[],q=[],Q,j,E,G,D=new yl,H=new yl,Y=new yl;for(r=0,n=u.length;r<n;r++)y=u[r],X=Number(xl(y.a,y.b,p).newEdge)+k,eA=Number(xl(y.b,y.c,p).newEdge)+k,nA=Number(xl(y.c,y.a,p).newEdge)+k,Ds(U,X,eA,nA,y.materialIndex),Ds(U,y.a,X,nA,y.materialIndex),Ds(U,y.b,eA,X,y.materialIndex),Ds(U,y.c,nA,eA,y.materialIndex),c&&(Q=s[r],j=Q[0],E=Q[1],G=Q[2],D.set(Bo(j.x,E.x),Bo(j.y,E.y)),H.set(Bo(E.x,G.x),Bo(E.y,G.y)),Y.set(Bo(j.x,G.x),Bo(j.y,G.y)),Gs(q,D,H,Y),Gs(q,j,D,Y),Gs(q,E,H,D),Gs(q,G,Y,H));e.vertices=B,e.faces=U,c&&(e.faceVertexUvs[0]=q)}};var HA=new Kw,kf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=o.geometry??e?.geometry??new jf().copy(new zf(100,100,100)),t;e===void 0?(A.computeBoundingBox(),A.boundingBox.getSize(HA),t={width:HA.x,height:HA.y,depth:HA.z,subdivisions:0}):t=e.parameters;let r={...t,...o.parameters};return{parameters:{width:Math.abs(r.width),height:Math.abs(r.height),depth:Math.abs(r.depth),subdivisions:Math.abs(r.subdivisions)},geometry:A}}static build(o){let{width:e,height:A,depth:t,subdivisions:r}=o.parameters,n=o.geometry??new jf().copy(new zf(100,100,100)),i=n.userData.parameters;i===void 0?(n.computeBoundingBox(),n.boundingBox.getSize(HA)):HA.set(i.width,i.height,i.depth),(e!==HA.x||A!==HA.y||t!==HA.z)&&n.scale(HA.x===0?1:e/HA.x,HA.y===0?1:A/HA.y,HA.z===0?1:t/HA.z);let a=n.originalGeometry;return r>0?(a===void 0||i?.subdivisions!==r)&&(a===void 0&&(a=n),n=new Rs(r).modify(a).toBufferGeometry()):(a!==void 0&&(n=a),a=void 0,n.getAttribute("normal")===void 0&&n.computeVertexNormals()),a!==void 0&&Object.assign(n,{originalGeometry:a}),delete o.geometry,Object.assign(n,{userData:{...o,type:"NonParametricGeometry"}})}static loadFromUrl(o,e,A){new Xw(A).load(o,r=>{let n=this.normalizeInputs({geometry:r});r.boundingBox.getSize(HA);let i=100/HA.x;Object.assign(n.parameters,{width:100,height:HA.y*i,depth:HA.z*i}),e(this.build(n))})}};var Uf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},o.parameters);return{shape:o.shape&&o.shape instanceof vA?o.shape:new vA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:e,height:A,spikes:t,cornerRadius:r,depth:n,extrudeBevelSize:i,extrudeBevelSegments:a}=o.parameters,l=o.shape,u=e*.5,s=A*.5,c=0,d=0,p=2*Math.PI/t;for(let m=0;m<t;m++){let h=p*m,x=c+Math.sin(h)*u,y=d+Math.cos(h)*s;l.addPoint(l.createPoint(x,y))}l.isClosed=!0;for(let m=0,h=l.points.length;m<h;m++)l.points[m].roundness=r;l.roundness=r,l.update();let f=ee.create({shape:l,parameters:{roundness:r,depth:n,extrudeBevelSize:i,extrudeBevelSegments:a}});return Object.assign(f,{userData:{...o,type:"PolygonGeometry"}})}};import{BufferGeometry as Zw,Float32BufferAttribute as bl,Vector2 as mt,Vector3 as ZA}from"three";var Hf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,height:A,depth:t,radialSegments:r,heightSegments:n,openEnded:i,cornerRadius:a,cornerSegments:l}=o.parameters,u=new Sl(e*.5,A,r,n,i,a,l);return u.scale(1,1,t/e),Object.assign(u,{userData:{...o,type:"PyramidGeometry"}})}};function Mn(o,e,A){A.x=o.x*e.x,A.y=o.y,A.z=o.x*e.y}function wl(o,e,A,t,r,n){let i=e.clone().sub(o),a=A.clone().sub(o),l=i.angleTo(a);if(i.normalize(),a.normalize(),t===r){let u=i.add(a).normalize();n.copy(o).addScaledVector(u,t/Math.sin(l/2))}else{let u=i.angleTo(a);n.copy(o),n.addScaledVector(i,r/Math.sin(u)),n.addScaledVector(a,t/Math.sin(u))}}function Jw(o,e,A){let t=o.clone().sub(e),r=A.clone().sub(e);return t.projectOnVector(r),t.add(e)}var Sl=class extends Zw{constructor(e=.5,A=1,t=4,r=1,n=!1,i=0,a=4){super(),t=Math.floor(Math.max(3,t)),r=Math.floor(r),a=Math.floor(a);let l=[],u=[],s=[],c=[],d=0,p=A/2,f=Math.PI/t,m=e*Math.cos(Math.PI/t),h=2*Math.PI/t,x=(t-2)*Math.PI/t,y=Math.PI-x,b=new ZA(0,-p,0),w=new ZA(0,p,0),v=new mt(e,-p),I=new mt(m,-p),S=new mt(0,w.y).sub(I),g=new mt(0,w.y).sub(v),P=new mt(S.y,-S.x).normalize(),N=new mt(g.y,-g.x).normalize(),T=e*Math.cos(Math.PI/t)*Math.tan((Math.PI-S.angle())/2)-1e-8;i=Math.min(i,T);let L;{let q=new ZA(P.x,P.y,0),Q=new ZA(Math.cos(h)*q.x,q.y,Math.sin(h)*q.x);L=q.angleTo(Q)}let B=i/Math.tan((Math.PI-S.angle())/2),k=i/Math.tan((Math.PI-L)/2),X=new ZA;if(!n){u.push(b.x,b.y,b.z),s.push(0,-1,0),c.push(0,0);let q=d++,Q=[],j=v.clone(),E=B/Math.cos(Math.PI/t);j.x-=E;for(let G=0;G<t;G++){let D=G/t*Math.PI*2+f,H=new mt(Math.sin(D),Math.cos(D));Mn(j,H,X),u.push(X.x,X.y,X.z),s.push(0,-1,0),c.push(0,0),Q.push(d++)}for(let G=0;G<Q.length;G++)l.push(Q[G],q,Q[(G+1)%Q.length])}let eA=[];{let q=new ZA,Q=new ZA,j=new ZA,E=new ZA,G=new ZA,D=new ZA;for(let H=0;H<t;H++){let Y=H/t*Math.PI*2+f,W=(H+.5)/t*Math.PI*2+f,F=(H+1)/t*Math.PI*2+f,R=new mt(Math.sin(Y),Math.cos(Y)),z=new mt(Math.sin(W),Math.cos(W)),$=new mt(Math.sin(F),Math.cos(F));Mn(v,R,Q),Mn(v,$,j),Mn(P,z,q),wl(w,Q,j,k,k,E),u.push(E.x,E.y,E.z),wl(Q,w,j,k,B,G),u.push(G.x,G.y,G.z),wl(j,Q,w,B,k,D),u.push(D.x,D.y,D.z),s.push(q.x,q.y,q.z),s.push(q.x,q.y,q.z),s.push(q.x,q.y,q.z),c.push(0,0),c.push(0,0),c.push(0,0);let rA=d++,iA=d++,tA=d++;if(l.push(rA,iA,tA),i>0){{let Z=Q.clone().add(j).multiplyScalar(.5),pA=w.clone().sub(Z).normalize(),gA=b.clone().sub(Z).normalize().add(pA).normalize().multiplyScalar(-1),YA=D.clone().sub(G);nA(Z,YA,gA,S.angle())}let AA,_;{let Z=new ZA;Mn(N,$,Z);let pA=D.clone().add(E).multiplyScalar(.5);pA=Jw(pA,j,w);let uA=D.clone().sub(E);[AA,_]=nA(pA,uA,Z,L,E.y)}{let Z=AA,pA=Z.clone().setY(0).normalize(),uA=new ZA(0,-1,0),gA=pA.clone().cross(uA);U(Z,pA,uA,gA)}eA.concat(_);{let Z=S.angle(),pA=Math.PI-Z,uA=w.clone();uA.y-=i/Math.sin(Z-Math.PI/2);let gA=new ZA,YA=[];for(let NA=0;NA<a;NA++){let OA=[],Oe=Math.PI/2-pA*NA/a,Ut=Math.cos(Oe),Se=Math.sin(Oe),si=W;for(let ai=0;ai<=NA;ai++){let li=Math.cos(si),RA=Math.sin(si);q.x=Ut*RA,q.y=Se,q.z=Ut*li,gA.copy(uA).addScaledVector(q,i),u.push(gA.x,gA.y,gA.z),s.push(q.x,q.y,q.z),c.push(0,0),OA.push(d++),si+=Math.PI*2/NA/t}YA.push(OA)}_.reverse(),YA.push(_);let SA=YA.length-1;for(let NA=0;NA<SA;NA++){let OA=YA[NA],Oe=YA[NA+1],Ut=OA.length-1;l.push(Oe[1],OA[0],Oe[0]);for(let Se=1;Se<=Ut;Se++)l.push(OA[Se],OA[Se-1],Oe[Se]),l.push(Oe[Se+1],OA[Se],Oe[Se])}}}}}this.setIndex(l),this.setAttribute("position",new bl(u,3)),this.setAttribute("normal",new bl(s,3)),this.setAttribute("uv",new bl(c,2));function nA(q,Q,j,E,G){let D=-E/2,H=(Math.PI-E)/2,Y=Q.clone().normalize().cross(j);q.addScaledVector(j,-i/Math.sin(H));let W=new ZA,F=new ZA,R=1,z=d,$=[];for(let rA=0;rA<=a;rA++){let iA=D+rA/a*E;F.set(0,0,0),F.addScaledVector(Y,Math.sin(iA)),F.addScaledVector(j,Math.cos(iA));for(let tA=0;tA<=R;tA++){let AA=tA/R-.5;if(W.copy(q),W.addScaledVector(Q,AA),W.addScaledVector(F,i),G!=null){let _=Math.max(0,W.y-G);W.addScaledVector(Q,-_/Q.y)}u.push(W.x,W.y,W.z),s.push(F.x,F.y,F.z),c.push(0,0),tA===0&&$.push(d),d++}}for(let rA=0;rA<a;rA++)for(let iA=0;iA<R;iA++){let tA=z+iA+(R+1)*rA,AA=tA+(R+1),_=AA+1,Z=tA+1;l.push(tA,AA,Z),l.push(AA,_,Z)}return[q.clone().addScaledVector(Q,.5),$]}function U(q,Q,j,E){let G=Math.PI/2,D=g.angle()-G,H=[],Y=new ZA,W=new ZA;for(let R=0;R<=a;R++){let z=[],$=R/a;for(let rA=0;rA<=R;rA++){let tA=((R?rA/R:0)-.5)*y,AA=Math.cos(tA),_=Math.sin(tA),Z=Math.atan(Math.tan(D)*AA),pA=(G+Z)*$,uA=Math.cos(pA),gA=Math.sin(pA);Y.set(0,0,0),Y.addScaledVector(Q,gA*AA),Y.addScaledVector(j,uA),Y.addScaledVector(E,gA*_),W.copy(q).addScaledVector(Y,i),u.push(W.x,W.y,W.z),s.push(Y.x,Y.y,Y.z),c.push(0,0),z.push(d++)}H.push(z)}let F=H.length-1;for(let R=0;R<F;R++){let z=H[R],$=H[R+1],rA=z.length-1;l.push(z[0],$[1],$[0]);for(let iA=1;iA<=rA;iA++)l.push(z[iA-1],z[iA],$[iA]),l.push(z[iA],$[iA+1],$[iA])}}}};var Wf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},o.parameters),t=Object.assign(e?.ui??{enabledIndieCorners:!1},o.ui);return{shape:o.shape&&o.shape instanceof vA?o.shape:new vA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)}),ui:t}}static build(o){let e=o.shape,{width:A,height:t,cornerRadius:r,cornerType:n,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}=o.parameters,u={x:A*.5,y:t*.5},s={x:-u.x,y:-u.y},c={x:u.x,y:u.y};function d(w,v,I){return v>A&&I>t?Math.min(w*A/v,w*t/I):v>A?w*A/v:I>t?w*t/I:w}let p=[];p[0]=r[0]===0?0:d(r[0],r[0]+r[3],r[0]+r[1]),p[1]=r[1]===0?0:d(r[1],r[1]+r[2],r[1]+r[0]),p[2]=r[2]===0?0:d(r[2],r[2]+r[1],r[2]+r[3]),p[3]=r[3]===0?0:d(r[3],r[3]+r[0],r[3]+r[2]);let f=s.x,m=c.x,h=c.y,x=s.y;e.addPoint(e.createPoint(f,h)),e.addPoint(e.createPoint(m,h)),e.addPoint(e.createPoint(m,x)),e.addPoint(e.createPoint(f,x)),e.isClosed=!0;let y=!0;for(let w=0,v=e.points.length;w<v;w++)e.points[w].roundness=p[w],w>0&&p[w]!==p[w-1]&&(y=!1);y&&(e.roundness=p[0]),e.useCubicForRoundedCorners=n!==1,e.update();let b=ee.create({shape:e,parameters:{depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}});return Object.assign(b,{userData:{...o,type:"RectangleGeometry"}})}};import{SphereGeometry as _w}from"three";var qf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e=100,height:A=e,depth:t=e,widthSegments:r=64,heightSegments:n=64,phiStart:i,phiLength:a,thetaStart:l,thetaLength:u}=o.parameters,s=new _w(.5*e,r,n,i,a,l,u);return s.scale(1,A/e,t/e),Object.assign(s,{userData:{...o,type:"SphereGeometry"}})}};import{PlaneGeometry as $w}from"three";var Qf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:0})}}static build(o){let{width:e=100,height:A=e,widthSegments:t=8,heightSegments:r=8}=o.parameters,n=new $w(e,A,t,r);return n.scale(1,1,1),Object.assign(n,{userData:{...o,type:"PlaneGeometry"}})}};import{BufferGeometry as AS,Float32BufferAttribute as Tl,Vector3 as eS}from"three";var Yf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,height:A,depth:t,angle:r,cornerRadius:n,cornerSegments:i}=o.parameters,a=new Nl(e,A,t,r,n,i);return Object.assign(a,{userData:{...o,type:"BackdropGeometry"}})}},Nl=class extends AS{constructor(e=1,A=1,t=1,r=90,n=10,i=24){super(),this.type="BackdropGeometry";let a=[],l=[],u=[],s=.001;n==0&&(i=1),i=Math.max(1,Math.floor(i)),n=Math.min(n,100),r=Math.min(180-s,r),r*=Math.PI/180;let c=[],d=Math.PI/2,p=(W=0,F=0,R=0)=>new eS(W,F,R),f=p(),m=p(),[h,x,y]=[A/2,e/2,t/2],b=-x,w=+x,[v,I,S]=[p(b,-h,+y),p(b,-h,-y),p(b,+h,-y)],g=(W,F=!1)=>Math.sin(W-Math.PI/(1+ +F)),P=(W,F=!1)=>Math.cos(W-Math.PI/(1+ +F));S.y=Math.sin(r)*A-h;let N=Math.cos(r)*A-y,O=v.z-s;r<=d?(S.z=Math.min(N,O),S.z==O&&(S.y-=(N-O)/Math.tan(d-r))):I.z=Math.min(I.z-N-y,v.z-s),f.subVectors(v,I),m.subVectors(S,I);let T=Math.min(f.length(),m.length())*n/100,L=T*Math.tan(r/2),B=T/Math.cos(r/2),k=f.clone().normalize().add(m.normalize()).setLength(B).add(I);f.set(0,g(r,!0),P(r,!0)),c.push([S,f.clone()]);let X=(Math.PI-r)/i;for(let W=0;W<=i;W++){let F=d+r+W*X;f.set(0,Math.sin(F)*L,Math.cos(F)*L),f.add(k),m.set(0,g(F),P(F)),c.push([f.clone(),m.clone()])}c.push([v,p(0,1,0)]);let eA=Math.sin(X/2)*L*2,nA=c.length-1,U=c[0][0].distanceTo(c[1][0]),q=c[nA-1][0].distanceTo(c[nA][0]),Q=U+eA*i+q;c[0].push(1);for(let W=0;W<=i;W++)c[W+1].push(1-(U+W*eA)/Q);c[nA].push(0);let[j,E,G]=c[0],D,H,Y;for(let W=1;W<c.length;W++)[D,H,Y]=c[W],a.push(b,j.y,j.z,b,D.y,D.z,w,j.y,j.z,w,j.y,j.z,b,D.y,D.z,w,D.y,D.z),l.push(0,E.y,E.z,0,H.y,H.z,0,E.y,E.z,0,E.y,E.z,0,H.y,H.z,0,H.y,H.z),u.push(0,G,0,Y,1,G,1,G,0,Y,1,Y),[j,E,G]=[D,H,Y];this.setAttribute("position",new Tl(a,3)),this.setAttribute("normal",new Tl(l,3)),this.setAttribute("uv",new Tl(u,2))}};var Xf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},o.parameters);return{shape:o.shape&&o.shape instanceof vA?o.shape:new vA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:e,height:A,innerRadiusPercent:t,spikes:r,cornerRadius:n,angle:i,depth:a,extrudeBevelSize:l,extrudeBevelSegments:u}=o.parameters,s=o.shape,c=e*.5,d=A*.5,p=0,f=0,m=i*Math.PI/360/r,h=Math.PI/2*3*-1,x=c*t/100,y=d*t/100;if(r===3&&t===50){m=2*Math.PI/r;for(let w=0;w<r;w++){let v=m*w,I=p+Math.sin(v)*c,S=f+Math.cos(v)*d;s.addPoint(s.createPoint(I,S))}}else for(let w=0;w<r;w++){let v=p+Math.cos(h)*c,I=f+Math.sin(h)*d;s.addPoint(s.createPoint(v,I)),h+=m,v=p+Math.cos(h)*x,I=f+Math.sin(h)*y,w<=r,s.addPoint(s.createPoint(v,I)),h+=m}s.isClosed=!0;for(let w=0,v=s.points.length;w<v;w++)s.points[w].roundness=n;s.roundness=n,s.update();let b=ee.create({shape:s,parameters:{roundness:n,depth:a,extrudeBevelSize:l,extrudeBevelSegments:u}});return Object.assign(b,{userData:{...o,type:"StarGeometry"}})}};import{PlaneGeometry as tS}from"three";var Kf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:e,height:A}=o.parameters,t=new tS(e,A);return Object.assign(t,{userData:{...o,type:"TextFrameGeometry"}})}};var Zf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},o.parameters),t=Math.abs(A.width),r=Math.abs(A.height??A.width),n=Math.round(Math.abs(A.depth??A.width*.25));return{parameters:Object.assign(A,{width:t,height:r,depth:n})}}static build(o){let{width:e,height:A,depth:t,radialSegments:r,tubularSegments:n,arc:i,cornerRadius:a,cornerSegments:l}=o.parameters,u=rS(e,A,t,e*.5,i,n,0,0,r,a,l);return u.scale(1,A/e,1),Object.assign(u,{userData:{...o,type:"TorusGeometry"}})}};function rS(o,e,A,t,r,n,i,a,l,u,s){return[e,A]=[A,e],i=e/2,r/=2*Math.PI,r==1&&(u=0),new On(!0,o,e,A,t,r,n,i,a,l,u,s)}import{TorusKnotGeometry as oS}from"three";var Jf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width),tube:A.tube??A.width*.125})}}static build(o){let{width:e,tube:A,tubularSegments:t,radialSegments:r,p:n,q:i}=o.parameters,a=e*.5;a!==A&&(a-=A);let l=new oS(a,A,t,r,n,i);return Object.assign(l,{userData:{...o,type:"TorusKnotGeometry"}})}};var _f=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},o.parameters);return{shape:o.shape&&o.shape instanceof vA?o.shape:new vA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width*(A.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(A.depth??0)})}}static build(o){let{width:e=100,height:A,cornerRadius:t,depth:r,extrudeBevelSize:n,extrudeBevelSegments:i,isRect:a}=o.parameters,l=o.shape,u=e*.5,s=A*.5;a?(l.addPoint(l.createPoint(-u,s)),l.addPoint(l.createPoint(u,-s)),l.addPoint(l.createPoint(-u,-s))):(l.addPoint(l.createPoint(0,s)),l.addPoint(l.createPoint(u,-s)),l.addPoint(l.createPoint(-u,-s))),l.isClosed=!0;for(let d=0,p=l.points.length;d<p;d++)l.points[d].roundness=t;l.roundness=t,l.update();let c=ee.create({shape:l,parameters:{roundness:t,depth:r,extrudeBevelSize:n,extrudeBevelSegments:i}});return Object.assign(c,{userData:{...o,type:"TriangleGeometry"}})}};import{BufferAttribute as $f,BufferGeometry as Il}from"three";import{mergeBufferGeometries as nS}from"three/examples/jsm/utils/BufferGeometryUtils.js";function Am(){let o=new Il;return o.setAttribute("position",new $f(new Float32Array([]),3)),o.setIndex(new $f(new Uint16Array([]),1)),o}var iS=12;var Eo=class extends Il{constructor(A,t){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let r=Am();Object.entries(r.attributes).forEach(([n,i])=>{this.setAttribute(n,i)}),this.setIndex(r.index),this.updateFont(A.font,t),this.update(A)}async updateFont(A,t){let r=t.getFont(A);r&&(this.font=r,await r.loadingPromise)}async update(A){let t=this.font;if(this.userData={parameters:A,type:"TextGeometry"},!t||!t.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:r,height:n,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l,text:u,textTransform:s,subdivisions:c}=A;await t.loadingPromise;let d=s===2?u.toUpperCase():s===3?u.toLowerCase():u,p=sS(A,t,d),{shapes:f,charWidths:m,charCoords:h}=await t.generateShapes(p,A),x=r*.5,y=n*.5,b=f.map(I=>new vA().fromShape(I));this.vectorShapes=b;let w=b.map(I=>ee.create({shape:I,parameters:{depth:i,extrudeBevelSegments:l,extrudeBevelSize:a,windingRule:i<=0?CA.NONZERO:CA.ODD,subdivisions:c??iS}})),v=w.length?nS(w):Am();v.translate(-x,y,0),this.dispose(),this.wrappedText=p,this.charCoords=h,this.charWidths=m,this.deleteAttribute("extrudeNormal"),Object.entries(v.attributes).forEach(([I,S])=>{this.setAttribute(I,S)}),this.setIndex(v.index),this.computeBoundingSphere()}clone(){let A=rr(new Il,Eo.prototype);return A.copy(this),A}copy(A){return Object.entries(A.attributes).forEach(([t,r])=>{this.setAttribute(t,r)}),this.setIndex(A.index),this.userData={parameters:{...A.userData.parameters},type:"TextGeometry"},this}async setText(A){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:A})}get text(){return this.userData.parameters.text??""}};function sS(o,e,A){A=A??o.text;let t=[""],r="";for(let n of A)r+=n,n===" "||n===`
|
|
1
|
+
var Lh=Object.create;var da=Object.defineProperty;var Mh=Object.getOwnPropertyDescriptor;var Bh=Object.getOwnPropertyNames;var Eh=Object.getPrototypeOf,Dh=Object.prototype.hasOwnProperty;var pa=(o,e)=>()=>(e||o((e={exports:{}}).exports,e),e.exports),Gh=(o,e)=>{for(var A in e)da(o,A,{get:e[A],enumerable:!0})},Rh=(o,e,A,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Bh(e))!Dh.call(o,r)&&r!==A&&da(o,r,{get:()=>e[r],enumerable:!(t=Mh(e,r))||t.enumerable});return o};var fa=(o,e,A)=>(A=o!=null?Lh(Eh(o)):{},Rh(e||!o||!o.__esModule?da(A,"default",{value:o,enumerable:!0}):A,o));var Mp=pa((qa,Lp)=>{(function(o,e){typeof qa=="object"?Lp.exports=e():typeof define=="function"&&define.amd?define(e):o.Alea=e()})(qa,function(){"use strict";return o.importState=function(A){var t=new o;return t.importState(A),t},o;function o(){return function(A){var t=0,r=0,n=0,i=1;A.length==0&&(A=[+new Date]);var a=e();t=a(" "),r=a(" "),n=a(" ");for(var l=0;l<A.length;l++)t-=a(A[l]),t<0&&(t+=1),r-=a(A[l]),r<0&&(r+=1),n-=a(A[l]),n<0&&(n+=1);a=null;var u=function(){var s=2091639*t+i*23283064365386963e-26;return t=r,r=n,n=s-(i=s|0)};return u.next=u,u.uint32=function(){return u()*4294967296},u.fract53=function(){return u()+(u()*2097152|0)*11102230246251565e-32},u.version="Alea 0.9",u.args=A,u.exportState=function(){return[t,r,n,i]},u.importState=function(s){t=+s[0]||0,r=+s[1]||0,n=+s[2]||0,i=+s[3]||0},u}(Array.prototype.slice.call(arguments))}function e(){var A=4022871197,t=function(r){r=r.toString();for(var n=0;n<r.length;n++){A+=r.charCodeAt(n);var i=.02519603282416938*A;A=i>>>0,i-=A,i*=A,A=i>>>0,i-=A,A+=i*4294967296}return(A>>>0)*23283064365386963e-26};return t.version="Mash 0.9",t}})});var $f=pa((js,_f)=>{(function(o,e){typeof js=="object"&&typeof _f<"u"?e(js):typeof define=="function"&&define.amd?define(["exports"],e):e((o=typeof globalThis<"u"?globalThis:o||self).SVDJS={})})(js,function(o){"use strict";o.SVD=function(e,A,t,r,n){if(A=A===void 0||A,t=t===void 0||t,n=1e-64/(r=r||Math.pow(2,-52)),!e)throw new TypeError("Matrix a is not defined");var i,a,l,u,s,c,d,p,f,m,h,g,x=e[0].length,w=e.length;if(w<x)throw new TypeError("Invalid matrix: m < n");for(var v=[],b=[],N=[],S=A==="f"?w:x,y=m=d=0;y<w;y++)b[y]=new Array(S).fill(0);for(y=0;y<x;y++)N[y]=new Array(x).fill(0);var P,O=new Array(x).fill(0);for(y=0;y<w;y++)for(i=0;i<x;i++)b[y][i]=e[y][i];for(y=0;y<x;y++){for(v[y]=d,f=0,l=y+1,i=y;i<w;i++)f+=Math.pow(b[i][y],2);if(f<n)d=0;else for(p=(c=b[y][y])*(d=c<0?Math.sqrt(f):-Math.sqrt(f))-f,b[y][y]=c-d,i=l;i<x;i++){for(f=0,a=y;a<w;a++)f+=b[a][y]*b[a][i];for(c=f/p,a=y;a<w;a++)b[a][i]=b[a][i]+c*b[a][y]}for(O[y]=d,f=0,i=l;i<x;i++)f+=Math.pow(b[y][i],2);if(f<n)d=0;else{for(p=(c=b[y][y+1])*(d=c<0?Math.sqrt(f):-Math.sqrt(f))-f,b[y][y+1]=c-d,i=l;i<x;i++)v[i]=b[y][i]/p;for(i=l;i<w;i++){for(f=0,a=l;a<x;a++)f+=b[i][a]*b[y][a];for(a=l;a<x;a++)b[i][a]=b[i][a]+f*v[a]}}m<(h=Math.abs(O[y])+Math.abs(v[y]))&&(m=h)}if(t)for(y=x-1;0<=y;y--){if(d!==0){for(p=b[y][y+1]*d,i=l;i<x;i++)N[i][y]=b[y][i]/p;for(i=l;i<x;i++){for(f=0,a=l;a<x;a++)f+=b[y][a]*N[a][i];for(a=l;a<x;a++)N[a][i]=N[a][i]+f*N[a][y]}}for(i=l;i<x;i++)N[y][i]=0,N[i][y]=0;N[y][y]=1,d=v[y],l=y}if(A){if(A==="f")for(y=x;y<w;y++){for(i=x;i<w;i++)b[y][i]=0;b[y][y]=1}for(y=x-1;0<=y;y--){for(l=y+1,d=O[y],i=l;i<S;i++)b[y][i]=0;if(d!==0){for(p=b[y][y]*d,i=l;i<S;i++){for(f=0,a=l;a<w;a++)f+=b[a][y]*b[a][i];for(c=f/p,a=y;a<w;a++)b[a][i]=b[a][i]+c*b[a][y]}for(i=y;i<w;i++)b[i][y]=b[i][y]/d}else for(i=y;i<w;i++)b[i][y]=0;b[y][y]=b[y][y]+1}}for(r*=m,a=x-1;0<=a;a--)for(var C=0;C<50;C++){for(P=!1,l=a;0<=l;l--){if(Math.abs(v[l])<=r){P=!0;break}if(Math.abs(O[l-1])<=r)break}if(!P){for(s=0,u=l-(f=1),y=l;y<a+1&&(c=f*v[y],v[y]=s*v[y],!(Math.abs(c)<=r));y++)if(d=O[y],O[y]=Math.sqrt(c*c+d*d),s=d/(p=O[y]),f=-c/p,A)for(i=0;i<w;i++)h=b[i][u],g=b[i][y],b[i][u]=h*s+g*f,b[i][y]=-h*f+g*s}if(g=O[a],l===a){if(g<0&&(O[a]=-g,t))for(i=0;i<x;i++)N[i][a]=-N[i][a];break}for(m=O[l],c=(((h=O[a-1])-g)*(h+g)+((d=v[a-1])-(p=v[a]))*(d+p))/(2*p*h),d=Math.sqrt(c*c+1),c=((m-g)*(m+g)+p*(h/(c<0?c-d:c+d)-p))/m,y=l+(f=s=1);y<a+1;y++){if(d=v[y],h=O[y],p=f*d,d*=s,g=Math.sqrt(c*c+p*p),c=m*(s=c/(v[y-1]=g))+d*(f=p/g),d=-m*f+d*s,p=h*f,h*=s,t)for(i=0;i<x;i++)m=N[i][y-1],g=N[i][y],N[i][y-1]=m*s+g*f,N[i][y]=-m*f+g*s;if(g=Math.sqrt(c*c+p*p),c=(s=c/(O[y-1]=g))*d+(f=p/g)*h,m=-f*d+s*h,A)for(i=0;i<w;i++)h=b[i][y-1],g=b[i][y],b[i][y-1]=h*s+g*f,b[i][y]=-h*f+g*s}v[l]=0,v[a]=c,O[a]=m}for(y=0;y<x;y++)O[y]<r&&(O[y]=0);return{u:b,q:O,v:N}},o.VERSION="1.1.1",Object.defineProperty(o,"__esModule",{value:!0})})});var fm=pa(Xs=>{(function(){"use strict";var o=function(){this.init()};o.prototype={init:function(){var s=this||e;return s._counter=1e3,s._html5AudioPool=[],s.html5PoolSize=10,s._codecs={},s._howls=[],s._muted=!1,s._volume=1,s._canPlayEvent="canplaythrough",s._navigator=typeof window<"u"&&window.navigator?window.navigator:null,s.masterGain=null,s.noAudio=!1,s.usingWebAudio=!0,s.autoSuspend=!0,s.ctx=null,s.autoUnlock=!0,s._setup(),s},volume:function(s){var c=this||e;if(s=parseFloat(s),c.ctx||u(),typeof s<"u"&&s>=0&&s<=1){if(c._volume=s,c._muted)return c;c.usingWebAudio&&c.masterGain.gain.setValueAtTime(s,e.ctx.currentTime);for(var d=0;d<c._howls.length;d++)if(!c._howls[d]._webAudio)for(var p=c._howls[d]._getSoundIds(),f=0;f<p.length;f++){var m=c._howls[d]._soundById(p[f]);m&&m._node&&(m._node.volume=m._volume*s)}return c}return c._volume},mute:function(s){var c=this||e;c.ctx||u(),c._muted=s,c.usingWebAudio&&c.masterGain.gain.setValueAtTime(s?0:c._volume,e.ctx.currentTime);for(var d=0;d<c._howls.length;d++)if(!c._howls[d]._webAudio)for(var p=c._howls[d]._getSoundIds(),f=0;f<p.length;f++){var m=c._howls[d]._soundById(p[f]);m&&m._node&&(m._node.muted=s?!0:m._muted)}return c},stop:function(){for(var s=this||e,c=0;c<s._howls.length;c++)s._howls[c].stop();return s},unload:function(){for(var s=this||e,c=s._howls.length-1;c>=0;c--)s._howls[c].unload();return s.usingWebAudio&&s.ctx&&typeof s.ctx.close<"u"&&(s.ctx.close(),s.ctx=null,u()),s},codecs:function(s){return(this||e)._codecs[s.replace(/^x-/,"")]},_setup:function(){var s=this||e;if(s.state=s.ctx&&s.ctx.state||"suspended",s._autoSuspend(),!s.usingWebAudio)if(typeof Audio<"u")try{var c=new Audio;typeof c.oncanplaythrough>"u"&&(s._canPlayEvent="canplay")}catch{s.noAudio=!0}else s.noAudio=!0;try{var c=new Audio;c.muted&&(s.noAudio=!0)}catch{}return s.noAudio||s._setupCodecs(),s},_setupCodecs:function(){var s=this||e,c=null;try{c=typeof Audio<"u"?new Audio:null}catch{return s}if(!c||typeof c.canPlayType!="function")return s;var d=c.canPlayType("audio/mpeg;").replace(/^no$/,""),p=s._navigator?s._navigator.userAgent:"",f=p.match(/OPR\/([0-6].)/g),m=f&&parseInt(f[0].split("/")[1],10)<33,h=p.indexOf("Safari")!==-1&&p.indexOf("Chrome")===-1,g=p.match(/Version\/(.*?) /),x=h&&g&&parseInt(g[1],10)<15;return s._codecs={mp3:!!(!m&&(d||c.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!d,opus:!!c.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!c.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!c.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(c.canPlayType('audio/wav; codecs="1"')||c.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!c.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!c.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(c.canPlayType("audio/x-m4a;")||c.canPlayType("audio/m4a;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(c.canPlayType("audio/x-m4b;")||c.canPlayType("audio/m4b;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(c.canPlayType("audio/x-mp4;")||c.canPlayType("audio/mp4;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!x&&c.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!x&&c.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!c.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(c.canPlayType("audio/x-flac;")||c.canPlayType("audio/flac;")).replace(/^no$/,"")},s},_unlockAudio:function(){var s=this||e;if(!(s._audioUnlocked||!s.ctx)){s._audioUnlocked=!1,s.autoUnlock=!1,!s._mobileUnloaded&&s.ctx.sampleRate!==44100&&(s._mobileUnloaded=!0,s.unload()),s._scratchBuffer=s.ctx.createBuffer(1,1,22050);var c=function(d){for(;s._html5AudioPool.length<s.html5PoolSize;)try{var p=new Audio;p._unlocked=!0,s._releaseHtml5Audio(p)}catch{s.noAudio=!0;break}for(var f=0;f<s._howls.length;f++)if(!s._howls[f]._webAudio)for(var m=s._howls[f]._getSoundIds(),h=0;h<m.length;h++){var g=s._howls[f]._soundById(m[h]);g&&g._node&&!g._node._unlocked&&(g._node._unlocked=!0,g._node.load())}s._autoResume();var x=s.ctx.createBufferSource();x.buffer=s._scratchBuffer,x.connect(s.ctx.destination),typeof x.start>"u"?x.noteOn(0):x.start(0),typeof s.ctx.resume=="function"&&s.ctx.resume(),x.onended=function(){x.disconnect(0),s._audioUnlocked=!0,document.removeEventListener("touchstart",c,!0),document.removeEventListener("touchend",c,!0),document.removeEventListener("click",c,!0),document.removeEventListener("keydown",c,!0);for(var w=0;w<s._howls.length;w++)s._howls[w]._emit("unlock")}};return document.addEventListener("touchstart",c,!0),document.addEventListener("touchend",c,!0),document.addEventListener("click",c,!0),document.addEventListener("keydown",c,!0),s}},_obtainHtml5Audio:function(){var s=this||e;if(s._html5AudioPool.length)return s._html5AudioPool.pop();var c=new Audio().play();return c&&typeof Promise<"u"&&(c instanceof Promise||typeof c.then=="function")&&c.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(s){var c=this||e;return s._unlocked&&c._html5AudioPool.push(s),c},_autoSuspend:function(){var s=this;if(!(!s.autoSuspend||!s.ctx||typeof s.ctx.suspend>"u"||!e.usingWebAudio)){for(var c=0;c<s._howls.length;c++)if(s._howls[c]._webAudio){for(var d=0;d<s._howls[c]._sounds.length;d++)if(!s._howls[c]._sounds[d]._paused)return s}return s._suspendTimer&&clearTimeout(s._suspendTimer),s._suspendTimer=setTimeout(function(){if(!!s.autoSuspend){s._suspendTimer=null,s.state="suspending";var p=function(){s.state="suspended",s._resumeAfterSuspend&&(delete s._resumeAfterSuspend,s._autoResume())};s.ctx.suspend().then(p,p)}},3e4),s}},_autoResume:function(){var s=this;if(!(!s.ctx||typeof s.ctx.resume>"u"||!e.usingWebAudio))return s.state==="running"&&s.ctx.state!=="interrupted"&&s._suspendTimer?(clearTimeout(s._suspendTimer),s._suspendTimer=null):s.state==="suspended"||s.state==="running"&&s.ctx.state==="interrupted"?(s.ctx.resume().then(function(){s.state="running";for(var c=0;c<s._howls.length;c++)s._howls[c]._emit("resume")}),s._suspendTimer&&(clearTimeout(s._suspendTimer),s._suspendTimer=null)):s.state==="suspending"&&(s._resumeAfterSuspend=!0),s}};var e=new o,A=function(s){var c=this;if(!s.src||s.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}c.init(s)};A.prototype={init:function(s){var c=this;return e.ctx||u(),c._autoplay=s.autoplay||!1,c._format=typeof s.format!="string"?s.format:[s.format],c._html5=s.html5||!1,c._muted=s.mute||!1,c._loop=s.loop||!1,c._pool=s.pool||5,c._preload=typeof s.preload=="boolean"||s.preload==="metadata"?s.preload:!0,c._rate=s.rate||1,c._sprite=s.sprite||{},c._src=typeof s.src!="string"?s.src:[s.src],c._volume=s.volume!==void 0?s.volume:1,c._xhr={method:s.xhr&&s.xhr.method?s.xhr.method:"GET",headers:s.xhr&&s.xhr.headers?s.xhr.headers:null,withCredentials:s.xhr&&s.xhr.withCredentials?s.xhr.withCredentials:!1},c._duration=0,c._state="unloaded",c._sounds=[],c._endTimers={},c._queue=[],c._playLock=!1,c._onend=s.onend?[{fn:s.onend}]:[],c._onfade=s.onfade?[{fn:s.onfade}]:[],c._onload=s.onload?[{fn:s.onload}]:[],c._onloaderror=s.onloaderror?[{fn:s.onloaderror}]:[],c._onplayerror=s.onplayerror?[{fn:s.onplayerror}]:[],c._onpause=s.onpause?[{fn:s.onpause}]:[],c._onplay=s.onplay?[{fn:s.onplay}]:[],c._onstop=s.onstop?[{fn:s.onstop}]:[],c._onmute=s.onmute?[{fn:s.onmute}]:[],c._onvolume=s.onvolume?[{fn:s.onvolume}]:[],c._onrate=s.onrate?[{fn:s.onrate}]:[],c._onseek=s.onseek?[{fn:s.onseek}]:[],c._onunlock=s.onunlock?[{fn:s.onunlock}]:[],c._onresume=[],c._webAudio=e.usingWebAudio&&!c._html5,typeof e.ctx<"u"&&e.ctx&&e.autoUnlock&&e._unlockAudio(),e._howls.push(c),c._autoplay&&c._queue.push({event:"play",action:function(){c.play()}}),c._preload&&c._preload!=="none"&&c.load(),c},load:function(){var s=this,c=null;if(e.noAudio){s._emit("loaderror",null,"No audio support.");return}typeof s._src=="string"&&(s._src=[s._src]);for(var d=0;d<s._src.length;d++){var p,f;if(s._format&&s._format[d])p=s._format[d];else{if(f=s._src[d],typeof f!="string"){s._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}p=/^data:audio\/([^;,]+);/i.exec(f),p||(p=/\.([^.]+)$/.exec(f.split("?",1)[0])),p&&(p=p[1].toLowerCase())}if(p||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),p&&e.codecs(p)){c=s._src[d];break}}if(!c){s._emit("loaderror",null,"No codec support for selected audio sources.");return}return s._src=c,s._state="loading",window.location.protocol==="https:"&&c.slice(0,5)==="http:"&&(s._html5=!0,s._webAudio=!1),new t(s),s._webAudio&&n(s),s},play:function(s,c){var d=this,p=null;if(typeof s=="number")p=s,s=null;else{if(typeof s=="string"&&d._state==="loaded"&&!d._sprite[s])return null;if(typeof s>"u"&&(s="__default",!d._playLock)){for(var f=0,m=0;m<d._sounds.length;m++)d._sounds[m]._paused&&!d._sounds[m]._ended&&(f++,p=d._sounds[m]._id);f===1?s=null:p=null}}var h=p?d._soundById(p):d._inactiveSound();if(!h)return null;if(p&&!s&&(s=h._sprite||"__default"),d._state!=="loaded"){h._sprite=s,h._ended=!1;var g=h._id;return d._queue.push({event:"play",action:function(){d.play(g)}}),g}if(p&&!h._paused)return c||d._loadQueue("play"),h._id;d._webAudio&&e._autoResume();var x=Math.max(0,h._seek>0?h._seek:d._sprite[s][0]/1e3),w=Math.max(0,(d._sprite[s][0]+d._sprite[s][1])/1e3-x),v=w*1e3/Math.abs(h._rate),b=d._sprite[s][0]/1e3,N=(d._sprite[s][0]+d._sprite[s][1])/1e3;h._sprite=s,h._ended=!1;var S=function(){h._paused=!1,h._seek=x,h._start=b,h._stop=N,h._loop=!!(h._loop||d._sprite[s][2])};if(x>=N){d._ended(h);return}var y=h._node;if(d._webAudio){var P=function(){d._playLock=!1,S(),d._refreshBuffer(h);var L=h._muted||d._muted?0:h._volume;y.gain.setValueAtTime(L,e.ctx.currentTime),h._playStart=e.ctx.currentTime,typeof y.bufferSource.start>"u"?h._loop?y.bufferSource.noteGrainOn(0,x,86400):y.bufferSource.noteGrainOn(0,x,w):h._loop?y.bufferSource.start(0,x,86400):y.bufferSource.start(0,x,w),v!==1/0&&(d._endTimers[h._id]=setTimeout(d._ended.bind(d,h),v)),c||setTimeout(function(){d._emit("play",h._id),d._loadQueue()},0)};e.state==="running"&&e.ctx.state!=="interrupted"?P():(d._playLock=!0,d.once("resume",P),d._clearTimer(h._id))}else{var O=function(){y.currentTime=x,y.muted=h._muted||d._muted||e._muted||y.muted,y.volume=h._volume*e.volume(),y.playbackRate=h._rate;try{var L=y.play();if(L&&typeof Promise<"u"&&(L instanceof Promise||typeof L.then=="function")?(d._playLock=!0,S(),L.then(function(){d._playLock=!1,y._unlocked=!0,c?d._loadQueue():d._emit("play",h._id)}).catch(function(){d._playLock=!1,d._emit("playerror",h._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."),h._ended=!0,h._paused=!0})):c||(d._playLock=!1,S(),d._emit("play",h._id)),y.playbackRate=h._rate,y.paused){d._emit("playerror",h._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}s!=="__default"||h._loop?d._endTimers[h._id]=setTimeout(d._ended.bind(d,h),v):(d._endTimers[h._id]=function(){d._ended(h),y.removeEventListener("ended",d._endTimers[h._id],!1)},y.addEventListener("ended",d._endTimers[h._id],!1))}catch(B){d._emit("playerror",h._id,B)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=d._src,y.load());var C=window&&window.ejecta||!y.readyState&&e._navigator.isCocoonJS;if(y.readyState>=3||C)O();else{d._playLock=!0,d._state="loading";var T=function(){d._state="loaded",O(),y.removeEventListener(e._canPlayEvent,T,!1)};y.addEventListener(e._canPlayEvent,T,!1),d._clearTimer(h._id)}}return h._id},pause:function(s){var c=this;if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"pause",action:function(){c.pause(s)}}),c;for(var d=c._getSoundIds(s),p=0;p<d.length;p++){c._clearTimer(d[p]);var f=c._soundById(d[p]);if(f&&!f._paused&&(f._seek=c.seek(d[p]),f._rateSeek=0,f._paused=!0,c._stopFade(d[p]),f._node))if(c._webAudio){if(!f._node.bufferSource)continue;typeof f._node.bufferSource.stop>"u"?f._node.bufferSource.noteOff(0):f._node.bufferSource.stop(0),c._cleanBuffer(f._node)}else(!isNaN(f._node.duration)||f._node.duration===1/0)&&f._node.pause();arguments[1]||c._emit("pause",f?f._id:null)}return c},stop:function(s,c){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"stop",action:function(){d.stop(s)}}),d;for(var p=d._getSoundIds(s),f=0;f<p.length;f++){d._clearTimer(p[f]);var m=d._soundById(p[f]);m&&(m._seek=m._start||0,m._rateSeek=0,m._paused=!0,m._ended=!0,d._stopFade(p[f]),m._node&&(d._webAudio?m._node.bufferSource&&(typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),d._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&&d._clearSound(m._node))),c||d._emit("stop",m._id))}return d},mute:function(s,c){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"mute",action:function(){d.mute(s,c)}}),d;if(typeof c>"u")if(typeof s=="boolean")d._muted=s;else return d._muted;for(var p=d._getSoundIds(c),f=0;f<p.length;f++){var m=d._soundById(p[f]);m&&(m._muted=s,m._interval&&d._stopFade(m._id),d._webAudio&&m._node?m._node.gain.setValueAtTime(s?0:m._volume,e.ctx.currentTime):m._node&&(m._node.muted=e._muted?!0:s),d._emit("mute",m._id))}return d},volume:function(){var s=this,c=arguments,d,p;if(c.length===0)return s._volume;if(c.length===1||c.length===2&&typeof c[1]>"u"){var f=s._getSoundIds(),m=f.indexOf(c[0]);m>=0?p=parseInt(c[0],10):d=parseFloat(c[0])}else c.length>=2&&(d=parseFloat(c[0]),p=parseInt(c[1],10));var h;if(typeof d<"u"&&d>=0&&d<=1){if(s._state!=="loaded"||s._playLock)return s._queue.push({event:"volume",action:function(){s.volume.apply(s,c)}}),s;typeof p>"u"&&(s._volume=d),p=s._getSoundIds(p);for(var g=0;g<p.length;g++)h=s._soundById(p[g]),h&&(h._volume=d,c[2]||s._stopFade(p[g]),s._webAudio&&h._node&&!h._muted?h._node.gain.setValueAtTime(d,e.ctx.currentTime):h._node&&!h._muted&&(h._node.volume=d*e.volume()),s._emit("volume",h._id))}else return h=p?s._soundById(p):s._sounds[0],h?h._volume:0;return s},fade:function(s,c,d,p){var f=this;if(f._state!=="loaded"||f._playLock)return f._queue.push({event:"fade",action:function(){f.fade(s,c,d,p)}}),f;s=Math.min(Math.max(0,parseFloat(s)),1),c=Math.min(Math.max(0,parseFloat(c)),1),d=parseFloat(d),f.volume(s,p);for(var m=f._getSoundIds(p),h=0;h<m.length;h++){var g=f._soundById(m[h]);if(g){if(p||f._stopFade(m[h]),f._webAudio&&!g._muted){var x=e.ctx.currentTime,w=x+d/1e3;g._volume=s,g._node.gain.setValueAtTime(s,x),g._node.gain.linearRampToValueAtTime(c,w)}f._startFadeInterval(g,s,c,d,m[h],typeof p>"u")}}return f},_startFadeInterval:function(s,c,d,p,f,m){var h=this,g=c,x=d-c,w=Math.abs(x/.01),v=Math.max(4,w>0?p/w:p),b=Date.now();s._fadeTo=d,s._interval=setInterval(function(){var N=(Date.now()-b)/p;b=Date.now(),g+=x*N,g=Math.round(g*100)/100,x<0?g=Math.max(d,g):g=Math.min(d,g),h._webAudio?s._volume=g:h.volume(g,s._id,!0),m&&(h._volume=g),(d<c&&g<=d||d>c&&g>=d)&&(clearInterval(s._interval),s._interval=null,s._fadeTo=null,h.volume(d,s._id),h._emit("fade",s._id))},v)},_stopFade:function(s){var c=this,d=c._soundById(s);return d&&d._interval&&(c._webAudio&&d._node.gain.cancelScheduledValues(e.ctx.currentTime),clearInterval(d._interval),d._interval=null,c.volume(d._fadeTo,s),d._fadeTo=null,c._emit("fade",s)),c},loop:function(){var s=this,c=arguments,d,p,f;if(c.length===0)return s._loop;if(c.length===1)if(typeof c[0]=="boolean")d=c[0],s._loop=d;else return f=s._soundById(parseInt(c[0],10)),f?f._loop:!1;else c.length===2&&(d=c[0],p=parseInt(c[1],10));for(var m=s._getSoundIds(p),h=0;h<m.length;h++)f=s._soundById(m[h]),f&&(f._loop=d,s._webAudio&&f._node&&f._node.bufferSource&&(f._node.bufferSource.loop=d,d&&(f._node.bufferSource.loopStart=f._start||0,f._node.bufferSource.loopEnd=f._stop,s.playing(m[h])&&(s.pause(m[h],!0),s.play(m[h],!0)))));return s},rate:function(){var s=this,c=arguments,d,p;if(c.length===0)p=s._sounds[0]._id;else if(c.length===1){var f=s._getSoundIds(),m=f.indexOf(c[0]);m>=0?p=parseInt(c[0],10):d=parseFloat(c[0])}else c.length===2&&(d=parseFloat(c[0]),p=parseInt(c[1],10));var h;if(typeof d=="number"){if(s._state!=="loaded"||s._playLock)return s._queue.push({event:"rate",action:function(){s.rate.apply(s,c)}}),s;typeof p>"u"&&(s._rate=d),p=s._getSoundIds(p);for(var g=0;g<p.length;g++)if(h=s._soundById(p[g]),h){s.playing(p[g])&&(h._rateSeek=s.seek(p[g]),h._playStart=s._webAudio?e.ctx.currentTime:h._playStart),h._rate=d,s._webAudio&&h._node&&h._node.bufferSource?h._node.bufferSource.playbackRate.setValueAtTime(d,e.ctx.currentTime):h._node&&(h._node.playbackRate=d);var x=s.seek(p[g]),w=(s._sprite[h._sprite][0]+s._sprite[h._sprite][1])/1e3-x,v=w*1e3/Math.abs(h._rate);(s._endTimers[p[g]]||!h._paused)&&(s._clearTimer(p[g]),s._endTimers[p[g]]=setTimeout(s._ended.bind(s,h),v)),s._emit("rate",h._id)}}else return h=s._soundById(p),h?h._rate:s._rate;return s},seek:function(){var s=this,c=arguments,d,p;if(c.length===0)s._sounds.length&&(p=s._sounds[0]._id);else if(c.length===1){var f=s._getSoundIds(),m=f.indexOf(c[0]);m>=0?p=parseInt(c[0],10):s._sounds.length&&(p=s._sounds[0]._id,d=parseFloat(c[0]))}else c.length===2&&(d=parseFloat(c[0]),p=parseInt(c[1],10));if(typeof p>"u")return 0;if(typeof d=="number"&&(s._state!=="loaded"||s._playLock))return s._queue.push({event:"seek",action:function(){s.seek.apply(s,c)}}),s;var h=s._soundById(p);if(h)if(typeof d=="number"&&d>=0){var g=s.playing(p);g&&s.pause(p,!0),h._seek=d,h._ended=!1,s._clearTimer(p),!s._webAudio&&h._node&&!isNaN(h._node.duration)&&(h._node.currentTime=d);var x=function(){g&&s.play(p,!0),s._emit("seek",p)};if(g&&!s._webAudio){var w=function(){s._playLock?setTimeout(w,0):x()};setTimeout(w,0)}else x()}else if(s._webAudio){var v=s.playing(p)?e.ctx.currentTime-h._playStart:0,b=h._rateSeek?h._rateSeek-h._seek:0;return h._seek+(b+v*Math.abs(h._rate))}else return h._node.currentTime;return s},playing:function(s){var c=this;if(typeof s=="number"){var d=c._soundById(s);return d?!d._paused:!1}for(var p=0;p<c._sounds.length;p++)if(!c._sounds[p]._paused)return!0;return!1},duration:function(s){var c=this,d=c._duration,p=c._soundById(s);return p&&(d=c._sprite[p._sprite][1]/1e3),d},state:function(){return this._state},unload:function(){for(var s=this,c=s._sounds,d=0;d<c.length;d++)c[d]._paused||s.stop(c[d]._id),s._webAudio||(s._clearSound(c[d]._node),c[d]._node.removeEventListener("error",c[d]._errorFn,!1),c[d]._node.removeEventListener(e._canPlayEvent,c[d]._loadFn,!1),c[d]._node.removeEventListener("ended",c[d]._endFn,!1),e._releaseHtml5Audio(c[d]._node)),delete c[d]._node,s._clearTimer(c[d]._id);var p=e._howls.indexOf(s);p>=0&&e._howls.splice(p,1);var f=!0;for(d=0;d<e._howls.length;d++)if(e._howls[d]._src===s._src||s._src.indexOf(e._howls[d]._src)>=0){f=!1;break}return r&&f&&delete r[s._src],e.noAudio=!1,s._state="unloaded",s._sounds=[],s=null,null},on:function(s,c,d,p){var f=this,m=f["_on"+s];return typeof c=="function"&&m.push(p?{id:d,fn:c,once:p}:{id:d,fn:c}),f},off:function(s,c,d){var p=this,f=p["_on"+s],m=0;if(typeof c=="number"&&(d=c,c=null),c||d)for(m=0;m<f.length;m++){var h=d===f[m].id;if(c===f[m].fn&&h||!c&&h){f.splice(m,1);break}}else if(s)p["_on"+s]=[];else{var g=Object.keys(p);for(m=0;m<g.length;m++)g[m].indexOf("_on")===0&&Array.isArray(p[g[m]])&&(p[g[m]]=[])}return p},once:function(s,c,d){var p=this;return p.on(s,c,d,1),p},_emit:function(s,c,d){for(var p=this,f=p["_on"+s],m=f.length-1;m>=0;m--)(!f[m].id||f[m].id===c||s==="load")&&(setTimeout(function(h){h.call(this,c,d)}.bind(p,f[m].fn),0),f[m].once&&p.off(s,f[m].fn,f[m].id));return p._loadQueue(s),p},_loadQueue:function(s){var c=this;if(c._queue.length>0){var d=c._queue[0];d.event===s&&(c._queue.shift(),c._loadQueue()),s||d.action()}return c},_ended:function(s){var c=this,d=s._sprite;if(!c._webAudio&&s._node&&!s._node.paused&&!s._node.ended&&s._node.currentTime<s._stop)return setTimeout(c._ended.bind(c,s),100),c;var p=!!(s._loop||c._sprite[d][2]);if(c._emit("end",s._id),!c._webAudio&&p&&c.stop(s._id,!0).play(s._id),c._webAudio&&p){c._emit("play",s._id),s._seek=s._start||0,s._rateSeek=0,s._playStart=e.ctx.currentTime;var f=(s._stop-s._start)*1e3/Math.abs(s._rate);c._endTimers[s._id]=setTimeout(c._ended.bind(c,s),f)}return c._webAudio&&!p&&(s._paused=!0,s._ended=!0,s._seek=s._start||0,s._rateSeek=0,c._clearTimer(s._id),c._cleanBuffer(s._node),e._autoSuspend()),!c._webAudio&&!p&&c.stop(s._id,!0),c},_clearTimer:function(s){var c=this;if(c._endTimers[s]){if(typeof c._endTimers[s]!="function")clearTimeout(c._endTimers[s]);else{var d=c._soundById(s);d&&d._node&&d._node.removeEventListener("ended",c._endTimers[s],!1)}delete c._endTimers[s]}return c},_soundById:function(s){for(var c=this,d=0;d<c._sounds.length;d++)if(s===c._sounds[d]._id)return c._sounds[d];return null},_inactiveSound:function(){var s=this;s._drain();for(var c=0;c<s._sounds.length;c++)if(s._sounds[c]._ended)return s._sounds[c].reset();return new t(s)},_drain:function(){var s=this,c=s._pool,d=0,p=0;if(!(s._sounds.length<c)){for(p=0;p<s._sounds.length;p++)s._sounds[p]._ended&&d++;for(p=s._sounds.length-1;p>=0;p--){if(d<=c)return;s._sounds[p]._ended&&(s._webAudio&&s._sounds[p]._node&&s._sounds[p]._node.disconnect(0),s._sounds.splice(p,1),d--)}}},_getSoundIds:function(s){var c=this;if(typeof s>"u"){for(var d=[],p=0;p<c._sounds.length;p++)d.push(c._sounds[p]._id);return d}else return[s]},_refreshBuffer:function(s){var c=this;return s._node.bufferSource=e.ctx.createBufferSource(),s._node.bufferSource.buffer=r[c._src],s._panner?s._node.bufferSource.connect(s._panner):s._node.bufferSource.connect(s._node),s._node.bufferSource.loop=s._loop,s._loop&&(s._node.bufferSource.loopStart=s._start||0,s._node.bufferSource.loopEnd=s._stop||0),s._node.bufferSource.playbackRate.setValueAtTime(s._rate,e.ctx.currentTime),c},_cleanBuffer:function(s){var c=this,d=e._navigator&&e._navigator.vendor.indexOf("Apple")>=0;if(e._scratchBuffer&&s.bufferSource&&(s.bufferSource.onended=null,s.bufferSource.disconnect(0),d))try{s.bufferSource.buffer=e._scratchBuffer}catch{}return s.bufferSource=null,c},_clearSound:function(s){var c=/MSIE |Trident\//.test(e._navigator&&e._navigator.userAgent);c||(s.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var t=function(s){this._parent=s,this.init()};t.prototype={init:function(){var s=this,c=s._parent;return s._muted=c._muted,s._loop=c._loop,s._volume=c._volume,s._rate=c._rate,s._seek=0,s._paused=!0,s._ended=!0,s._sprite="__default",s._id=++e._counter,c._sounds.push(s),s.create(),s},create:function(){var s=this,c=s._parent,d=e._muted||s._muted||s._parent._muted?0:s._volume;return c._webAudio?(s._node=typeof e.ctx.createGain>"u"?e.ctx.createGainNode():e.ctx.createGain(),s._node.gain.setValueAtTime(d,e.ctx.currentTime),s._node.paused=!0,s._node.connect(e.masterGain)):e.noAudio||(s._node=e._obtainHtml5Audio(),s._errorFn=s._errorListener.bind(s),s._node.addEventListener("error",s._errorFn,!1),s._loadFn=s._loadListener.bind(s),s._node.addEventListener(e._canPlayEvent,s._loadFn,!1),s._endFn=s._endListener.bind(s),s._node.addEventListener("ended",s._endFn,!1),s._node.src=c._src,s._node.preload=c._preload===!0?"auto":c._preload,s._node.volume=d*e.volume(),s._node.load()),s},reset:function(){var s=this,c=s._parent;return s._muted=c._muted,s._loop=c._loop,s._volume=c._volume,s._rate=c._rate,s._seek=0,s._rateSeek=0,s._paused=!0,s._ended=!0,s._sprite="__default",s._id=++e._counter,s},_errorListener:function(){var s=this;s._parent._emit("loaderror",s._id,s._node.error?s._node.error.code:0),s._node.removeEventListener("error",s._errorFn,!1)},_loadListener:function(){var s=this,c=s._parent;c._duration=Math.ceil(s._node.duration*10)/10,Object.keys(c._sprite).length===0&&(c._sprite={__default:[0,c._duration*1e3]}),c._state!=="loaded"&&(c._state="loaded",c._emit("load"),c._loadQueue()),s._node.removeEventListener(e._canPlayEvent,s._loadFn,!1)},_endListener:function(){var s=this,c=s._parent;c._duration===1/0&&(c._duration=Math.ceil(s._node.duration*10)/10,c._sprite.__default[1]===1/0&&(c._sprite.__default[1]=c._duration*1e3),c._ended(s)),s._node.removeEventListener("ended",s._endFn,!1)}};var r={},n=function(s){var c=s._src;if(r[c]){s._duration=r[c].duration,l(s);return}if(/^data:[^;]+;base64,/.test(c)){for(var d=atob(c.split(",")[1]),p=new Uint8Array(d.length),f=0;f<d.length;++f)p[f]=d.charCodeAt(f);a(p.buffer,s)}else{var m=new XMLHttpRequest;m.open(s._xhr.method,c,!0),m.withCredentials=s._xhr.withCredentials,m.responseType="arraybuffer",s._xhr.headers&&Object.keys(s._xhr.headers).forEach(function(h){m.setRequestHeader(h,s._xhr.headers[h])}),m.onload=function(){var h=(m.status+"")[0];if(h!=="0"&&h!=="2"&&h!=="3"){s._emit("loaderror",null,"Failed loading audio file with status: "+m.status+".");return}a(m.response,s)},m.onerror=function(){s._webAudio&&(s._html5=!0,s._webAudio=!1,s._sounds=[],delete r[c],s.load())},i(m)}},i=function(s){try{s.send()}catch{s.onerror()}},a=function(s,c){var d=function(){c._emit("loaderror",null,"Decoding audio data failed.")},p=function(f){f&&c._sounds.length>0?(r[c._src]=f,l(c,f)):d()};typeof Promise<"u"&&e.ctx.decodeAudioData.length===1?e.ctx.decodeAudioData(s).then(p).catch(d):e.ctx.decodeAudioData(s,p,d)},l=function(s,c){c&&!s._duration&&(s._duration=c.duration),Object.keys(s._sprite).length===0&&(s._sprite={__default:[0,s._duration*1e3]}),s._state!=="loaded"&&(s._state="loaded",s._emit("load"),s._loadQueue())},u=function(){if(!!e.usingWebAudio){try{typeof AudioContext<"u"?e.ctx=new AudioContext:typeof webkitAudioContext<"u"?e.ctx=new webkitAudioContext:e.usingWebAudio=!1}catch{e.usingWebAudio=!1}e.ctx||(e.usingWebAudio=!1);var s=/iP(hone|od|ad)/.test(e._navigator&&e._navigator.platform),c=e._navigator&&e._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),d=c?parseInt(c[1],10):null;if(s&&d&&d<9){var p=/safari/.test(e._navigator&&e._navigator.userAgent.toLowerCase());e._navigator&&!p&&(e.usingWebAudio=!1)}e.usingWebAudio&&(e.masterGain=typeof e.ctx.createGain>"u"?e.ctx.createGainNode():e.ctx.createGain(),e.masterGain.gain.setValueAtTime(e._muted?0:e._volume,e.ctx.currentTime),e.masterGain.connect(e.ctx.destination)),e._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:e,Howl:A}}),typeof Xs<"u"&&(Xs.Howler=e,Xs.Howl=A),typeof global<"u"?(global.HowlerGlobal=o,global.Howler=e,global.Howl=A,global.Sound=t):typeof window<"u"&&(window.HowlerGlobal=o,window.Howler=e,window.Howl=A,window.Sound=t)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){var A=this;if(!A.ctx||!A.ctx.listener)return A;for(var t=A._howls.length-1;t>=0;t--)A._howls[t].stereo(e);return A},HowlerGlobal.prototype.pos=function(e,A,t){var r=this;if(!r.ctx||!r.ctx.listener)return r;if(A=typeof A!="number"?r._pos[1]:A,t=typeof t!="number"?r._pos[2]:t,typeof e=="number")r._pos=[e,A,t],typeof r.ctx.listener.positionX<"u"?(r.ctx.listener.positionX.setTargetAtTime(r._pos[0],Howler.ctx.currentTime,.1),r.ctx.listener.positionY.setTargetAtTime(r._pos[1],Howler.ctx.currentTime,.1),r.ctx.listener.positionZ.setTargetAtTime(r._pos[2],Howler.ctx.currentTime,.1)):r.ctx.listener.setPosition(r._pos[0],r._pos[1],r._pos[2]);else return r._pos;return r},HowlerGlobal.prototype.orientation=function(e,A,t,r,n,i){var a=this;if(!a.ctx||!a.ctx.listener)return a;var l=a._orientation;if(A=typeof A!="number"?l[1]:A,t=typeof t!="number"?l[2]:t,r=typeof r!="number"?l[3]:r,n=typeof n!="number"?l[4]:n,i=typeof i!="number"?l[5]:i,typeof e=="number")a._orientation=[e,A,t,r,n,i],typeof a.ctx.listener.forwardX<"u"?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(A,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(i,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,A,t,r,n,i);else return l;return a},Howl.prototype.init=function(e){return function(A){var t=this;return t._orientation=A.orientation||[1,0,0],t._stereo=A.stereo||null,t._pos=A.pos||null,t._pannerAttr={coneInnerAngle:typeof A.coneInnerAngle<"u"?A.coneInnerAngle:360,coneOuterAngle:typeof A.coneOuterAngle<"u"?A.coneOuterAngle:360,coneOuterGain:typeof A.coneOuterGain<"u"?A.coneOuterGain:0,distanceModel:typeof A.distanceModel<"u"?A.distanceModel:"inverse",maxDistance:typeof A.maxDistance<"u"?A.maxDistance:1e4,panningModel:typeof A.panningModel<"u"?A.panningModel:"HRTF",refDistance:typeof A.refDistance<"u"?A.refDistance:1,rolloffFactor:typeof A.rolloffFactor<"u"?A.rolloffFactor:1},t._onstereo=A.onstereo?[{fn:A.onstereo}]:[],t._onpos=A.onpos?[{fn:A.onpos}]:[],t._onorientation=A.onorientation?[{fn:A.onorientation}]:[],e.call(this,A)}}(Howl.prototype.init),Howl.prototype.stereo=function(e,A){var t=this;if(!t._webAudio)return t;if(t._state!=="loaded")return t._queue.push({event:"stereo",action:function(){t.stereo(e,A)}}),t;var r=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof A>"u")if(typeof e=="number")t._stereo=e,t._pos=[e,0,0];else return t._stereo;for(var n=t._getSoundIds(A),i=0;i<n.length;i++){var a=t._soundById(n[i]);if(a)if(typeof e=="number")a._stereo=e,a._pos=[e,0,0],a._node&&(a._pannerAttr.panningModel="equalpower",(!a._panner||!a._panner.pan)&&o(a,r),r==="spatial"?typeof a._panner.positionX<"u"?(a._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),a._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),a._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):a._panner.setPosition(e,0,0):a._panner.pan.setValueAtTime(e,Howler.ctx.currentTime)),t._emit("stereo",a._id);else return a._stereo}return t},Howl.prototype.pos=function(e,A,t,r){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"pos",action:function(){n.pos(e,A,t,r)}}),n;if(A=typeof A!="number"?0:A,t=typeof t!="number"?-.5:t,typeof r>"u")if(typeof e=="number")n._pos=[e,A,t];else return n._pos;for(var i=n._getSoundIds(r),a=0;a<i.length;a++){var l=n._soundById(i[a]);if(l)if(typeof e=="number")l._pos=[e,A,t],l._node&&((!l._panner||l._panner.pan)&&o(l,"spatial"),typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(A,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(t,Howler.ctx.currentTime)):l._panner.setPosition(e,A,t)),n._emit("pos",l._id);else return l._pos}return n},Howl.prototype.orientation=function(e,A,t,r){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"orientation",action:function(){n.orientation(e,A,t,r)}}),n;if(A=typeof A!="number"?n._orientation[1]:A,t=typeof t!="number"?n._orientation[2]:t,typeof r>"u")if(typeof e=="number")n._orientation=[e,A,t];else return n._orientation;for(var i=n._getSoundIds(r),a=0;a<i.length;a++){var l=n._soundById(i[a]);if(l)if(typeof e=="number")l._orientation=[e,A,t],l._node&&(l._panner||(l._pos||(l._pos=n._pos||[0,0,-.5]),o(l,"spatial")),typeof l._panner.orientationX<"u"?(l._panner.orientationX.setValueAtTime(e,Howler.ctx.currentTime),l._panner.orientationY.setValueAtTime(A,Howler.ctx.currentTime),l._panner.orientationZ.setValueAtTime(t,Howler.ctx.currentTime)):l._panner.setOrientation(e,A,t)),n._emit("orientation",l._id);else return l._orientation}return n},Howl.prototype.pannerAttr=function(){var e=this,A=arguments,t,r,n;if(!e._webAudio)return e;if(A.length===0)return e._pannerAttr;if(A.length===1)if(typeof A[0]=="object")t=A[0],typeof r>"u"&&(t.pannerAttr||(t.pannerAttr={coneInnerAngle:t.coneInnerAngle,coneOuterAngle:t.coneOuterAngle,coneOuterGain:t.coneOuterGain,distanceModel:t.distanceModel,maxDistance:t.maxDistance,refDistance:t.refDistance,rolloffFactor:t.rolloffFactor,panningModel:t.panningModel}),e._pannerAttr={coneInnerAngle:typeof t.pannerAttr.coneInnerAngle<"u"?t.pannerAttr.coneInnerAngle:e._coneInnerAngle,coneOuterAngle:typeof t.pannerAttr.coneOuterAngle<"u"?t.pannerAttr.coneOuterAngle:e._coneOuterAngle,coneOuterGain:typeof t.pannerAttr.coneOuterGain<"u"?t.pannerAttr.coneOuterGain:e._coneOuterGain,distanceModel:typeof t.pannerAttr.distanceModel<"u"?t.pannerAttr.distanceModel:e._distanceModel,maxDistance:typeof t.pannerAttr.maxDistance<"u"?t.pannerAttr.maxDistance:e._maxDistance,refDistance:typeof t.pannerAttr.refDistance<"u"?t.pannerAttr.refDistance:e._refDistance,rolloffFactor:typeof t.pannerAttr.rolloffFactor<"u"?t.pannerAttr.rolloffFactor:e._rolloffFactor,panningModel:typeof t.pannerAttr.panningModel<"u"?t.pannerAttr.panningModel:e._panningModel});else return n=e._soundById(parseInt(A[0],10)),n?n._pannerAttr:e._pannerAttr;else A.length===2&&(t=A[0],r=parseInt(A[1],10));for(var i=e._getSoundIds(r),a=0;a<i.length;a++)if(n=e._soundById(i[a]),n){var l=n._pannerAttr;l={coneInnerAngle:typeof t.coneInnerAngle<"u"?t.coneInnerAngle:l.coneInnerAngle,coneOuterAngle:typeof t.coneOuterAngle<"u"?t.coneOuterAngle:l.coneOuterAngle,coneOuterGain:typeof t.coneOuterGain<"u"?t.coneOuterGain:l.coneOuterGain,distanceModel:typeof t.distanceModel<"u"?t.distanceModel:l.distanceModel,maxDistance:typeof t.maxDistance<"u"?t.maxDistance:l.maxDistance,refDistance:typeof t.refDistance<"u"?t.refDistance:l.refDistance,rolloffFactor:typeof t.rolloffFactor<"u"?t.rolloffFactor:l.rolloffFactor,panningModel:typeof t.panningModel<"u"?t.panningModel:l.panningModel};var u=n._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):(n._pos||(n._pos=e._pos||[0,0,-.5]),o(n,"spatial"))}return e},Sound.prototype.init=function(e){return function(){var A=this,t=A._parent;A._orientation=t._orientation,A._stereo=t._stereo,A._pos=t._pos,A._pannerAttr=t._pannerAttr,e.call(this),A._stereo?t.stereo(A._stereo):A._pos&&t.pos(A._pos[0],A._pos[1],A._pos[2],A._id)}}(Sound.prototype.init),Sound.prototype.reset=function(e){return function(){var A=this,t=A._parent;return A._orientation=t._orientation,A._stereo=t._stereo,A._pos=t._pos,A._pannerAttr=t._pannerAttr,A._stereo?t.stereo(A._stereo):A._pos?t.pos(A._pos[0],A._pos[1],A._pos[2],A._id):A._panner&&(A._panner.disconnect(0),A._panner=void 0,t._refreshBuffer(A)),e.call(this)}}(Sound.prototype.reset);var o=function(e,A){A=A||"spatial",A==="spatial"?(e._panner=Howler.ctx.createPanner(),e._panner.coneInnerAngle=e._pannerAttr.coneInnerAngle,e._panner.coneOuterAngle=e._pannerAttr.coneOuterAngle,e._panner.coneOuterGain=e._pannerAttr.coneOuterGain,e._panner.distanceModel=e._pannerAttr.distanceModel,e._panner.maxDistance=e._pannerAttr.maxDistance,e._panner.refDistance=e._pannerAttr.refDistance,e._panner.rolloffFactor=e._pannerAttr.rolloffFactor,e._panner.panningModel=e._pannerAttr.panningModel,typeof e._panner.positionX<"u"?(e._panner.positionX.setValueAtTime(e._pos[0],Howler.ctx.currentTime),e._panner.positionY.setValueAtTime(e._pos[1],Howler.ctx.currentTime),e._panner.positionZ.setValueAtTime(e._pos[2],Howler.ctx.currentTime)):e._panner.setPosition(e._pos[0],e._pos[1],e._pos[2]),typeof e._panner.orientationX<"u"?(e._panner.orientationX.setValueAtTime(e._orientation[0],Howler.ctx.currentTime),e._panner.orientationY.setValueAtTime(e._orientation[1],Howler.ctx.currentTime),e._panner.orientationZ.setValueAtTime(e._orientation[2],Howler.ctx.currentTime)):e._panner.setOrientation(e._orientation[0],e._orientation[1],e._orientation[2])):(e._panner=Howler.ctx.createStereoPanner(),e._panner.pan.setValueAtTime(e._stereo,Howler.ctx.currentTime)),e._panner.connect(e._node),e._paused||e._parent.pause(e._id,!0).play(e._id,!0)}})()});import{FileLoader as MO,Loader as BO}from"three";var NA=class{modifyById(e,A){let t=this;if(t[e]===void 0)throw new Error("not expected");{let n={...t,[e]:A};return Object.setPrototypeOf(n,NA.prototype),n}}add(e,A){return this.runOp({type:1,id:e,data:A})?.data??this}runOp(e){let A=this;if(e.type===1){let t=A[e.id],r;t===void 0?r={type:2,id:e.id}:r={type:1,id:e.id,data:t};let{id:n,data:i}=e,a={...A,[n]:i};return Object.setPrototypeOf(a,NA.prototype),{data:a,actual:e,reverse:r}}else if(e.type===2){let{id:t}=e,r=A[t];if(r===void 0)return null;{let n={...A};return Object.setPrototypeOf(n,NA.prototype),delete n[t],{data:n,actual:e,reverse:{type:1,id:t,data:r}}}}return null}};function An(o){if(o.deepFreeze!==void 0){o.deepFreeze(o);return}let e=Object.getOwnPropertyNames(o);for(let A of e){let t=o[A];t&&typeof t=="object"&&An(t)}return Object.freeze(o)}function wc(o,e){let A=0;for(;A<o.length&&A<e.length;){if(o[A]<e[A])return-1;if(o[A]>e[A])return 1;A+=1}return A!==e.length?-1:A!==o.length?1:0}var Fr=class extends Error{};function yi(o){let e={...o};return Object.setPrototypeOf(e,Object.getPrototypeOf(o)),e}function nt(o,e,A){if(o===void 0?e===void 0?(o=0,e=10):o=e-10:e===void 0&&(e=o+10),o>e){let n=o;o=e,e=n}let t=[],r=1/(A+1);for(let n=0;n<A;n++){let i=o+(e-o)*(n+.75+Math.random()*.5)*r;t.push(i)}return t}function jr(o){return o instanceof Uint8Array||o instanceof Uint16Array||o instanceof Uint32Array||o instanceof Int8Array||o instanceof Int16Array||o instanceof Int32Array||o instanceof Float32Array||o instanceof Float64Array}function Sc(){return typeof process<"u"}function Tc(o,e){for(let A of o)e(A.id,A.data)!==!0&&Tc(A.children,e)}function Oc(o,e){if(e(o.id,o.data)!==!0)for(let A of o.children)Oc(A,e)}var FA=class extends Array{constructor(...A){super(...A);Object.setPrototypeOf(this,FA.prototype)}deepFreeze(){let A=0;for(;A<this.length;)An(this[A]),A++}fillCaches0(A,t){this.objCaches.set(A.id,A),this.parentCaches.set(A.id,t);for(let r of A.children)this.fillCaches0(r,A.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let A of this)this.fillCaches0(A,null)}}randomId(){this.fillCaches();let A=Array.from(this.objCaches.keys());if(A.length!==0)return A[Math.max(0,Math.floor(Math.random()*A.length)-1)]}nonExistOrDescendantOf(A,t){if(!this.has(A))return!0;for(;A;){let r=this.parent(A);if(r===t)return!0;A=r}return!1}isDescendantOf(A,t){for(;A;){let r=this.parent(A);if(r===t)return!0;A=r}return!1}data(A){return this.get(A)?.data}has(A){return this.childrenOf(A)!==void 0}get(A){return this.fillCaches(),this.objCaches.get(A)}childrenOf(A){return A===null?this:this.get(A)?.children}traverseFrom(A,t){if(A===null)this.traverse(t);else{let r=this.get(A);r&&Oc(r,t)}}traverse(A){Tc(this,A)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(A){return this.fillCaches(),this.parentCaches.get(A)}childrenArray(A){return A===null?this:this.get(A).children}modifyById(A,t){if(this.get(A)===void 0)throw new Error("not expected");{let n=this.parent(A),i=this.childrenArray(n),a=i.findIndex(s=>s.id===A);if(a<0)throw new Error("not expected");let l=i[a];return i=[...i],i[a]={...l,data:t},this.modifyArrayBy(n,i)}}modifyArrayBy(A,t){let r=A,n=t;for(;r!==null;){let a=n,l=r;if(r=this.parent(r),r===void 0)throw new Error;n=this.childrenArray(r);let u=n.findIndex(s=>s.id===l);if(u<0)throw new Error;n=[...n],n[u]={...n[u],children:a}}Object.setPrototypeOf(n,FA.prototype);let i=n;return i.fillCaches(),i}runOp(A){switch(A.type){case 7:return this.addOp(A);case 8:return this.deleteOp(A);case 9:return this.moveOp(A)}return null}checkDuplicatedIdRec({id:A,children:t}){if(this.get(A)!==void 0)return!0;for(let r of t)if(this.checkDuplicatedIdRec(r))return!0;return!1}addOp(A){let{parent:t,fi:r,id:n,data:i,children:a}=A;if(t!==null&&this.get(t)===void 0)return null;if(this.checkDuplicatedIdRec(A))return null;{let l=t,u=this.childrenArray(l),s={fi:r,id:n,data:i,children:a};return u=[...u,s],u.sort((d,p)=>d.fi-p.fi),A.localIndex=u.indexOf(s),{data:this.modifyArrayBy(l,u),actual:A,reverse:{type:8,id:n}}}}deleteOp(A){let{id:t}=A;if(this.get(t)===null)return null;{let r=this.parent(t);if(r===void 0)return null;let n=this.childrenArray(r),i=n.findIndex(u=>u.id===t);A.localIndex=i,n=[...n];let a=n.splice(i,1)[0];return{data:this.modifyArrayBy(r,n),actual:A,reverse:{type:7,...a,parent:r}}}}moveOp(A){let{parent:t,fi:r,id:n}=A;if(t!==null&&this.get(t)===void 0)return this.deleteOp({type:8,id:n});if(t!==null){let p=t;for(;p!==null;){if(p===void 0)throw new Error;if(p===n)throw new Fr("cyclic tree");p=this.parent(p)}}let i=this.parent(n);if(i===void 0)return null;let a=i,l=this.childrenArray(i),u=l.findIndex(p=>p.id===n);l=[...l];let s=l.splice(u,1)[0],c=this.modifyArrayBy(i,l);i=t,l=c.childrenArray(i);let d=s.fi;return s={...s,fi:r},l=[...l,s],l.sort((p,f)=>p.fi-f.fi),A.localIndex=l.indexOf(s),c=c.modifyArrayBy(i,l),{data:c,actual:A,reverse:{type:9,parent:a,fi:d,id:n}}}previous(A,t){if(t===null){let n=this.childrenArray(A);return n.length===0?null:n[n.length-1].id}let r=null;for(let n of this.childrenArray(A)){if(n.id===t)return r;r=n.id}return null}traverseSortNext(A){let t=this.parent(A);if(t!==void 0){let r=this.childrenArray(t),n=r.findIndex(i=>i.id===A)+1;if(n<r.length)return r[n].id;if(t)return this.traverseSortNext(t)}}sortNext(A){let t=this.childrenArray(A);return t.length>0?t[0].id:this.traverseSortNext(A)}traverseSortPrevious(A){let t=this.childrenArray(A);return t.length>0?this.traverseSortPrevious(t[t.length-1].id):A}sortPrevious(A){let t=this.parent(A);if(t!==void 0){let r=this.childrenArray(t),n=r.findIndex(i=>i.id===A)-1;return n>=0?this.traverseSortPrevious(r[n].id):t}}getAllSorted(A){let t=[];for(let r of A){let n=this.getWithSortKey(r.id);n!==void 0&&t.push({...r,...n})}t.sort((r,n)=>wc(r.sortKey,n.sortKey));for(let r of t)delete r.sortKey;return t}getWithSortKey(A){var t=A;let r=[],n=this.get(t),i=n;if(n!==void 0){for(;t;)r.splice(0,0,n.fi),t=this.parent(t),t!==null&&(n=this.get(t));return{...i,sortKey:r}}}insertBeforeHelper(A,t,r){return this.insertAfterHelper(A,this.previous(A,t),r)}insertAfterHelper(A,t,r){let n=this.childrenArray(A);if(t===null){if(n.length===0)return nt(0,r,r);{let i=n[0].fi;return nt(i-r,i,r)}}else{let i=this.get(t);if(i===void 0||this.parent(t)!==A)throw new Error("illegal args");let a=n.find(l=>l.fi>i.fi);if(a===void 0){let l=n[n.length-1].fi;return nt(l,l+r,r)}else return nt(i.fi,a.fi,r)}}};var zr;(e=>{function o(A,t){if(t.type!==0)return null;if(Array.isArray(A)){let r=t.props,n={},i=[...A],a=!1;if(r)for(let l of Object.keys(r)){let u=parseInt(l);if(isNaN(u))throw new Error("wrong index");n[l]=i[u],i[u]=r[l],a=!0}return a?{data:i,actual:t,reverse:{type:0,props:n}}:null}else{let r=t.props,n={},i={...A},a=!1;if(r)for(let l of Object.keys(r)){n[l]=i[l];let u=r[l];u===void 0?delete i[l]:i[l]=u,a=!0}return a?{data:i,actual:t,reverse:{type:0,props:n}}:null}}e.runOp=o})(zr||(zr={}));var mA=class extends Array{constructor(...A){super(...A);Object.setPrototypeOf(this,mA.prototype)}deepFreeze(){let A=0;for(;A<this.length;)An(this[A]),A++}fillCaches0(A){this.objCaches.set(A.id,A)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let A of this)this.fillCaches0(A)}}randomId(){this.fillCaches();let A=Array.from(this.objCaches.keys());if(A.length!==0)return A[Math.max(0,Math.floor(Math.random()*A.length)-1)]}data(A){return this.get(A)?.data}get(A){return this.fillCaches(),this.objCaches.get(A)}modifyById(A,t){if(this.get(A)===void 0)throw new Error("not expected");{let n=this,i=n.findIndex(u=>u.id===A);if(i<0)throw new Error("not expected");let a=n[i];return n=[...n],n[i]={...a,data:t},this.modifyArrayBy(n)}}modifyArrayBy(A){Object.setPrototypeOf(A,mA.prototype);let t=A;return Sc()||t.fillCaches(),t}runOp(A){switch(A.type){case 4:return this.addOp(A);case 5:return this.deleteOp(A);case 6:return this.moveOp(A)}return null}addOp(A){let{fi:t,id:r,data:n}=A,i=this,a={fi:t,id:r,data:n};return i=[...i,a],i.sort((u,s)=>u.fi-s.fi),A.localIndex=i.indexOf(a),{data:this.modifyArrayBy(i),actual:A,reverse:{type:5,id:r}}}deleteOp(A){let{id:t}=A,r=this,n=r.findIndex(l=>l.id===t);if(n===-1)return null;A.localIndex=n,r=[...r];let i=r.splice(n,1)[0];return{data:this.modifyArrayBy(r),actual:A,reverse:{type:4,...i}}}moveOp(A){let{fi:t,id:r}=A,n=this;n=[...n];let i=n.findIndex(s=>s.id===r);if(i===-1)return null;let a=n[i].fi,l={...n[i],fi:t};return n[i]=l,n.sort((s,c)=>s.fi-c.fi),A.localIndex=n.indexOf(l),{data:this.modifyArrayBy(n),actual:A,reverse:{type:6,fi:a,id:r}}}previous(A){if(A===null)return this.length===0?null:this[this.length-1].id;let t=null;for(let r of this){if(r.id===A)return t;t=r.id}return null}insertBeforeHelper(A,t){return this.insertAfterHelper(this.previous(A),t)}insertAfterHelper(A,t){let r=this;if(A===null){if(r.length===0)return nt(0,t,t);{let n=r[0].fi;return nt(n-t,n,t)}}else{let n=this.get(A);if(n===void 0)throw new Error("illegal args");let i=r.find(a=>a.fi>n.fi);if(i===void 0){let a=r[r.length-1].fi;return nt(a,a+t,t)}else return nt(n.fi,i.fi,t)}}};function kr(o){return o&&typeof o=="object"&&o instanceof $A}var $A=class{unusedFunOverridesTable(e){}runOp(e){let A=[],t=this,r=0,n={};for(;r<e.path.length;){if(A.push(t),t=t===void 0?void 0:t[e.path[r]],t!==void 0&&!kr(t))return null;r+=1}t=t?yi(t):new $A;for(let[l,u]of Object.entries(e.props)){let s=t[l];n[l]=s,u===void 0?delete t[l]:t[l]=u}for(;r>0;){if(Object.keys(t).length===0){let l=A[r-1];l&&(t=yi(l),delete t[e.path[r-1]])}else{let l=A[r-1];if(l){let u=yi(l);u[e.path[r-1]]=t,t=u}else{let u=new $A;u[e.path[r-1]]=t,t=u}}r-=1}let i=Object.setPrototypeOf(t,$A.prototype),a={...e,props:n};return{data:i,actual:e,reverse:a}}},ma;(t=>{function o(r,n){return en(r,n)??r}t.apply=o;function e(r,n){return Nc(r,n)}t.merge=e;function A(r,n){let i=0,a=n.path,l=r;for(;i<a.length&&l!==void 0;){if(l=Me.zoomOnce(l,a[i]),l===void 0)return n;if(!kr(l))return;i+=1}if(l===void 0)return n;if(!!kr(l))if(n.type===0){let u={...n.props};for(let s of Object.keys(l))delete u[s];return{...n,props:u}}else if(n.type===1||n.type===4||n.type===7){let u=ha([n],l);return u?(console.log(u),u):n}else return n}t.filterOp=A})(ma||(ma={}));function ha(o,e){if(e===void 0)return;let A=!1,t=o.map(r=>{let n=r.id,i=en(r.data,e[n]);if(A=A||i!==void 0,i===void 0&&(i=r.data),r.children){let a=ha(r.children,e);return a!==void 0?A=!0:a=r.children,{...r,id:n,data:i,children:a}}else return{...r,id:n,data:i}});if(A)return t}function Vh(o,e){if(e===void 0)return;let A=!1,t=o.map(r=>{let n=r.id,i=en(r.data,e[n]);return A=A||i!==void 0,i===void 0&&(i=r.data),{...r,id:n,data:i}});if(A)return Object.setPrototypeOf(t,Object.getPrototypeOf(o)),t}function en(o,e){if(!kr(e))return e;if(o instanceof FA){let A=ha(o,e);return A!==void 0&&Object.setPrototypeOf(A,Object.getPrototypeOf(o)),A}else{if(o instanceof mA)return Vh(o,e);if(Array.isArray(o)){let A=!1,t=o.map((r,n)=>{let i=en(r,e[n]);return A=A||i!==void 0,i===void 0&&(i=r),i});return A?(Object.setPrototypeOf(t,Object.getPrototypeOf(o)),t):void 0}else if(o&&typeof o=="object"){let A={},t=!1;for(let[r,n]of Object.entries(o)){let i=en(n,e[r]);t=t||i!==void 0,i===void 0&&(i=n),A[r]=i}return t?(Object.setPrototypeOf(A,Object.getPrototypeOf(o)),A):void 0}}}function Nc(o,e){if(o===void 0)return e;if(e===void 0)return o;if(!kr(e))return e;if(!kr(o))return ma.apply(o,e);let A=new Set;for(let r of Object.keys(o))A.add(r);for(let r of Object.keys(e))A.add(r);let t=new $A;for(let r of A){let n=Nc(o===void 0?void 0:o[r],e===void 0?void 0:e[r]);t[r]=n}return t}function Pc(o,e){let A={cur:[],result:[],len:0};return o=tn(o,e,A)??o,[o,A.result]}function gi(o,e){return o===null?null:(o.cur[o.len]=e,o.len+=1,o)}function xi(o){o&&(o.len-=1)}function Fh(o){if(o===null)return null;o.result.push(o.cur.slice(0,o.len))}function Cc(o,e,A){let t=!1,r=o.map(n=>{let i=n.id,a=e[i];if(a!==void 0&&typeof a=="string"&&(t=!0,i=a,A!==null))throw new Error("not supported");let l=tn(n.data,e,gi(A,i));xi(A),t=t||l!==void 0,l===void 0&&(l=n.data);let u=Cc(n.children,e,A);return u!==void 0?t=!0:u=n.children,{...n,id:i,data:l,children:u}});if(t)return r}function jh(o,e,A){let t=!1,r=o.map(n=>{let i=n.id,a=e[i];if(a!==void 0&&typeof a=="string"&&(t=!0,i=a,A!==null))throw new Error("not supported");let l=tn(n.data,e,gi(A,i));return xi(A),t=t||l!==void 0,l===void 0&&(l=n.data),{...n,id:i,data:l}});if(t)return Object.setPrototypeOf(r,Object.getPrototypeOf(o)),r}function tn(o,e,A){if(o instanceof FA){let t=Cc(o,e,A);return t!==void 0&&Object.setPrototypeOf(t,Object.getPrototypeOf(o)),t}else{if(o instanceof mA)return jh(o,e,A);if(Array.isArray(o)){let t=!1,r=o.map((n,i)=>{let a=tn(n,e,gi(A,i));return xi(A),t=t||a!==void 0,a===void 0&&(a=n),a});return t?(Object.setPrototypeOf(r,Object.getPrototypeOf(o)),r):void 0}else if(o&&typeof o=="object"&&!jr(o)){let t={},r=!1;for(let[n,i]of Object.entries(o))if(n!=="name"&&n!=="text"){let a=e[n];if(typeof a=="string"){if(A!==null)throw new Error("not supported");r=!0,n=a}let l=tn(i,e,gi(A,n));xi(A),r=r||l!==void 0,l===void 0&&(l=i),t[n]=l}else t[n]=i;return r?(Object.setPrototypeOf(t,Object.getPrototypeOf(o)),t):void 0}else if(typeof o=="string"){let t=e[o];if(t!==void 0){if(o.length!==36)throw new Error("for now you should only call this method when the key is a uuid");Fh(A)}return t}else return}}var vi;(e=>{function o(A,t){let r=Me.zoom(t,A.path);if(typeof r=="object"){let n={};for(let i of Object.keys(A.props))n[i]=r[i];return{...A,props:n}}else return{...A,props:{}}}e.replaceProps=o})(vi||(vi={}));var re;(a=>{function o(l,u){return{...l,path:l.path.slice(u)}}a.drop=o;function e(l,u){return A(l,u)?.data??l}a.applySimple=e;function A(l,u){let s=u.path;for(var c=[];;){let d;if(l instanceof $A&&u.type===0&&(d=l.runOp({...u,path:s.slice(c.length)}),d===null&&(d=void 0)),c.length===s.length&&(l instanceof FA||l instanceof mA||l instanceof NA?d=l.runOp(u):d=zr.runOp(l,u)),d!==void 0)if(d!==null){let m=d.data;for(let h=c.length-1;h>=0;h--){let g=s[h],x=c[h];if(x instanceof FA){if(typeof g=="number")throw new Error("illegal arg");m=x.modifyById(g,m)}else if(x instanceof mA){if(typeof g=="number")throw new Error("illegal arg");m=x.modifyById(g,m)}else if(x instanceof NA){if(typeof g=="number")throw new Error("illegal arg");m=x.modifyById(g,m)}else if(x instanceof $A){let w={...x,[g]:m};m=Object.setPrototypeOf(w,$A.prototype)}else if(typeof x=="object")if(Array.isArray(x)){if(typeof g=="string"&&(g=parseInt(g),isNaN(g)))throw new Error("Invalid path");let w=m;m=[...x],m[g]=w}else m={...x,[g]:m};else return null}return{data:m,actual:{...d.actual,path:s},reverse:{...d.reverse,path:s}}}else return null;let p=s[c.length],f;if(l instanceof FA){if(typeof p=="number")throw new Error("");f=l.get(p)?.data}else if(l instanceof mA){if(typeof p=="number")throw new Error("");f=l.get(p)?.data}else l!==null&&(f=l[p]);if(f!==void 0)c.push(l),l=f;else return null}}a.apply=A;function t(l,u){for(let s=0;s<l.length&&s<u.length;s++)if(l[s]!==u[s])return!0;return!1}a.pathDisjoint=t;function r(l,u){if(l.length!==u.length)return!1;for(let s=0;s<l.length;s++)if(l[s]!==u[s])return!1;return!0}a.pathEq=r;function n(l,u){return t(l.path,u.path)}a.commutative=n;function i(l,u){return l.type===0&&u.type===0&&r(l.path,u.path)?Object.keys(l.props).every(s=>u.props[s]!==void 0):!1}a.subsumed=i})(re||(re={}));var ya;(l=>{function o(){return[]}l.empty=o;function e(u,s){let c=[];for(let d of u){let[p,...f]=d.path;p===s&&c.push({...d,path:f})}return c}l.removePrefix=e;function A(u,s){return u.map(c=>({...c,path:[s,...c.path]}))}l.addPrefix=A;function t(u,s){return[...u,...s]}l.concat=t;function r(u,s){return[...u.filter(d=>!s.some(p=>re.subsumed(d,p))),...s]}l.compress=r;function n(u,s){return u.every(c=>s.every(d=>re.commutative(c,d)))}l.commutative=n;function i(u,s){for(let c of s){let d=a(u,c);d!==null&&(u=d.data)}return u}l.applyAll=i;function a(u,s){var c=u;let d=[],p=[];for(let f of s)try{if(f.type===3){let m=Me.zoom(c,[...f.path,f.id]),h=re.apply(c,{...f,type:2});if(h!==null){c=h.data;let[g,x]=Pc(c,{[f.id]:m});c=g;for(let w of x){let v=w[w.length-1];w.splice(w.length-1,1),d.push({type:0,path:w,props:{[v]:m}}),p.push({type:0,path:w,props:{[v]:f.id}})}p.push(h.reverse),d.push(h.actual)}}else{let m=re.apply(c,f);m!==null&&(d.push(m.actual),c=m.data,p.push(m.reverse))}}catch(m){if(m instanceof Fr)return null;throw m}return{data:c,actual:d,reverse:p.reverse()}}l.apply=a})(ya||(ya={}));var Ic=Symbol(),zh=Symbol(),rn=Symbol(),kt=class{reportOp(e,A,t=[]){let r=this;if(A===null)return;r._current=A.data;let n=t;for(;!(r instanceof wi);){let i=r._path,a=r._current;if(i!==""&&n.splice(0,0,i),r=r._parent,r===null)return;r.update(i,a)}r.push(n,e,A.actual,A.reverse)}deleteChildren(e){if(this._children){let A=this._children[e];if(A){let t=A[rn];t&&t(),delete this._children[e]}}}},xa=class extends kt{constructor(e,A,t){super(),this._parent=e,this._path=A,this._current=t}update(e,A){if(Array.isArray(this._current)){if(typeof e=="string"&&(e=parseInt(e),isNaN(e)))throw new Error("Invalid path");this._current=[...this._current],this._current[e]=A}else this._current={...this._current,[e]:A}}runOp(e){this.reportOp(e,zr.runOp(this._current,e),e.path)}},va=class extends kt{constructor(e,A,t){super(),this._parent=e,this._path=A,this._current=t}update(e,A){this._current={...this._current,[e]:A},Object.setPrototypeOf(this._current,NA.prototype)}runOp(e){this.reportOp(e,this._current.runOp(e))}},Lc={get(o,e){if(e===rn)return()=>{o._parent=null};if(e===Ic)return o._current;if(e===zh)return o;let{_current:A,_children:t}=o;if(e==="push"&&Array.isArray(A))throw new Error("not supported to expand array");let r=t===void 0?void 0:t[e];if(r!==void 0)return r;let n=A[e],i=Si(o,e,n);return i!==n?(t===void 0&&(t={},o._children=t),t[e]=i,i):n},has(o,e){return e in o._current},ownKeys(o){return Reflect.ownKeys(o._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(o){return Object.getPrototypeOf(o._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(o,e){let A=o._current,t=Reflect.getOwnPropertyDescriptor(A,e);return t&&{writable:!0,configurable:!0,enumerable:t.enumerable,value:A[e]}}},kh={...Lc,set(o,e,A){let t={type:0,props:{[e]:oe(A)??A}};return o.deleteChildren(e),o.runOp(t),!0},deleteProperty(o,e){let A={type:0,props:{[e]:void 0}};return o.deleteChildren(e),o.runOp(A),!0}},Uh={...Lc,set(o,e,A){return A===void 0?this.deleteProperty(o,e):(o.deleteChildren(e),o.runOp({type:1,id:e,data:A})),!0},deleteProperty(o,e){return o.runOp({type:2,id:e}),!0}},Ur=class extends kt{constructor(e,A,t){super(),this._children={},this._parent=e,this._path=A,this._current=t,this[rn]=()=>{this._parent=null}}unproxy(){return this._current}update(e,A){this._current=this._current.modifyById(e,A)}runOp(e){this.reportOp(e,this._current.runOp(e))}randomId(){return this._current.randomId()}isDescendantOf(e,A){return this._current.isDescendantOf(e,A)}childrenOf(e){return this._current.childrenOf(e)}traverse(e){return this._current.traverse(e)}get(e){return this._current.get(e)}parent(e){return this._current.parent(e)}traverse(e){this._current.traverse((A,t)=>{e(A,this.data(A))})}data(e){let{_current:A,_children:t}=this,r=t===void 0?void 0:t[e];if(r!==void 0)return r;let n=A.get(e)?.data,i=Si(this,e,n);return i!==n?(t===void 0&&(t={},this._children=t),t[e]=i,i):n}add(e,A,t,r,n){this.runOp({type:7,parent:e,fi:A,id:t,data:r,children:n})}move(e,A,t){this.runOp({type:9,parent:e,fi:A,id:t})}insertAfter(e,A,t){let r=this._current.insertAfterHelper(e,A,t.length);for(let n=0;n<t.length;n++){let i=t[n];this.add(e,r[n],i.id,i.data,i.children)}}insertBefore(e,A,t){let r=this._current.insertBeforeHelper(e,A,t.length);for(let n=0;n<t.length;n++){let i=t[n];this.add(e,r[n],i.id,i.data,i.children)}}moveAfter(e,A,t){let r=this._current.insertAfterHelper(e,A,t.length);for(let n=0;n<t.length;n++){let i=t[n];this.move(e,r[n],i)}}moveBefore(e,A,t){let r=this._current.insertBeforeHelper(e,A,t.length);for(let n=0;n<t.length;n++){let i=t[n];this.move(e,r[n],i)}}delete(e){this.deleteChildren(e),this.runOp({type:8,id:e})}sortNext(e){return this._current.sortNext(e)}sortPrevious(e){return this._current.sortPrevious(e)}getAllSorted(e){return this._current.getAllSorted(e)}},bi=class extends kt{constructor(e,A,t){super(),this._parent=e,this._path=A,this._current=t,this[rn]=()=>{this._parent=null}}feedOp(e){let{path:A,...t}=e;this.reportOp(t,re.apply(this._current,e),A)}},Hr=class extends kt{constructor(e,A,t){super(),this._children={},this._parent=e,this._path=A,this._current=t,this[rn]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(e){let A=this.length;for(let t=0;t<A;t++){let r=this._current[t].id,n=this._current[t].fi;e(this.data(this._current[t].id),r,n)}}find(e){let A=this.length;for(let t=0;t<A;t++){let r=this._current[t].id;if(e(this.data(r),r))return this.get(r)}}update(e,A){this._current=this._current.modifyById(e,A)}randomId(){return this._current.randomId()}get(e){return{...this._current.get(e),data:this.data(e)}}data(e){let{_current:A,_children:t}=this,r=t===void 0?void 0:t[e];if(r!==void 0)return r;let n=A.get(e)?.data,i=Si(this,e,n);return i!==n?(t===void 0&&(t={},this._children=t),t[e]=i,i):n}runOp(e){this.reportOp(e,this._current.runOp(e))}add(e,A,t){this.runOp({type:4,fi:e,id:A,data:t})}move(e,A){this.runOp({type:6,fi:e,id:A})}insertAfter(e,A){let t=this._current.insertAfterHelper(e,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.add(t[r],n.id,n.data)}}insertBefore(e,A){let t=this._current.insertBeforeHelper(e,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.add(t[r],n.id,n.data)}}moveAfter(e,A){let t=this._current.insertAfterHelper(e,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.move(t[r],n)}}moveBefore(e,A){let t=this._current.insertBeforeHelper(e,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.move(t[r],n)}}delete(e){this.deleteChildren(e),this.runOp({type:5,id:e})}};function ga(o,e,A){if(o.length>0){let t=o[o.length-1];if(t.type===0&&e.type===0&&Me.equal(t.path,A)){Object.assign(t.props,e.props);return}}o.push({...e,path:A})}var wi=class extends kt{constructor(e){super(),this.ts=[],this.actual=[],this.reverse=[],this._current=e}update(e,A){if(e!=="")throw new Error("");this._current=A}push(e,A,t,r){ga(this.ts,A,e),ga(this.actual,t,e),ga(this.reverse,r,e)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Si(o,e,A){return A instanceof FA?new Ur(o,e,A):A instanceof mA?new Hr(o,e,A):A instanceof $A?new bi(o,e,A):A instanceof NA?new Proxy(new va(o,e,A),Uh):A!==null&&typeof A=="object"?jr(A)?A:new Proxy(new xa(o,e,A),kh):A}function ba(o){let e=new wi(o);return[Si(e,"",o),e]}function wa(o,e){let[A,t]=ba(o);return e(A),t.result()}function oe(o){return o instanceof Ur||o instanceof Hr||o instanceof bi?o._current:o!==null&&typeof o=="object"?o[Ic]:o}var Me;(r=>{function o(n,i){if(i.length===n.length)for(var a=0;a<n.length;){if(n[a]!==i[a])return!1;a+=1}else return!1;return!0}r.equal=o;function e(n,i,a){let l=t(a,n);if(l!==void 0&&typeof l=="object"&&l!==null){let u={...i};return Object.keys(l).forEach(s=>{delete u[s]}),u}else return i}r.removeOverridden=e;function A(n,i){if((n instanceof FA||n instanceof Ur)&&typeof i=="string")return n.data(i);if((n instanceof mA||n instanceof Hr)&&typeof i=="string")return n.data(i);if(typeof i=="number"&&Array.isArray(n))return n[i];if(typeof i=="string"&&typeof n=="object"&&n!==null)return n[i]}r.zoomOnce=A;function t(n,i,a=0){for(;a<i.length&&n!==void 0;)n=A(n,i[a]),a+=1;return n}r.zoom=t})(Me||(Me={}));function Mc(o,e){let A=[];if(e.length===o.length)for(var t=0;t<o.length;){if(e[t]==="*")A.push(o[t]);else if(o[t]!==e[t])return null;t+=1}else return null;return A}function Ut(o,e){let A=[];if(e.length<=o.length)for(var t=0;t<e.length;){if(e[t]==="*")A.push(o[t]);else if(o[t]!==e[t])return null;t+=1}else return null;return A}var Ti=class{},on=class extends Ti{constructor(A){super();this.id=A}},nn=class extends Ti{constructor(A){super();this.data=A}};var Ta;try{Ta=new TextDecoder}catch{}var oA,Wt,I=0;var jc=[],Oa=jc,Na=0,he={},bA,Ht,Be=0,it=0,Oe,Nt,le=[],PA,Bc={useRecords:!1,mapsAsObjects:!0},sn=class{},Ca=new sn;Ca.name="MessagePack 0xC1";var Wr=!1,st=class{constructor(e){e&&(e.useRecords===!1&&e.mapsAsObjects===void 0&&(e.mapsAsObjects=!0),e.structures?e.structures.sharedLength=e.structures.length:e.getStructures&&((e.structures=[]).uninitialized=!0,e.structures.sharedLength=0)),Object.assign(this,e)}unpack(e,A){if(oA)return Wc(()=>(Ni(),this?this.unpack(e,A):st.prototype.unpack.call(Bc,e,A)));Wt=A>-1?A:e.length,I=0,Na=0,it=0,Ht=null,Oa=jc,Oe=null,oA=e;try{PA=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(t){throw oA=null,e instanceof Uint8Array?t:new Error("Source must be a Uint8Array or Buffer but was a "+(e&&typeof e=="object"?e.constructor.name:typeof e))}if(this instanceof st){if(he=this,this.structures)return bA=this.structures,Oi();(!bA||bA.length>0)&&(bA=[])}else he=Bc,(!bA||bA.length>0)&&(bA=[]);return Oi()}unpackMultiple(e,A){let t,r=0;try{Wr=!0;let n=e.length,i=this?this.unpack(e,n):Ii.unpack(e,n);if(A){for(A(i);I<n;)if(r=I,A(Oi())===!1)return}else{for(t=[i];I<n;)r=I,t.push(Oi());return t}}catch(n){throw n.lastPosition=r,n.values=t,n}finally{Wr=!1,Ni()}}_mergeStructures(e,A){e=e||[];for(let t=0,r=e.length;t<r;t++){let n=e[t];n&&(n.isShared=!0,t>=32&&(n.highByte=t-32>>5))}e.sharedLength=e.length;for(let t in A||[])if(t>=0){let r=e[t],n=A[t];n&&(r&&((e.restoreStructures||(e.restoreStructures=[]))[t]=r),e[t]=n)}return this.structures=e}decode(e,A){return this.unpack(e,A)}};function Oi(){try{if(!he.trusted&&!Wr){let e=bA.sharedLength||0;e<bA.length&&(bA.length=e)}let o=DA();if(I==Wt)bA.restoreStructures&&Ec(),bA=null,oA=null,Nt&&(Nt=null);else if(I>Wt){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}else if(!Wr)throw new Error("Data read, but end of buffer not reached");return o}catch(o){throw bA.restoreStructures&&Ec(),Ni(),(o instanceof RangeError||o.message.startsWith("Unexpected end of buffer"))&&(o.incomplete=!0),o}}function Ec(){for(let o in bA.restoreStructures)bA[o]=bA.restoreStructures[o];bA.restoreStructures=null}function DA(){let o=oA[I++];if(o<160)if(o<128){if(o<64)return o;{let e=bA[o&63]||he.getStructures&&zc()[o&63];return e?(e.read||(e.read=Ia(e,o&63)),e.read()):o}}else if(o<144)if(o-=128,he.mapsAsObjects){let e={};for(let A=0;A<o;A++)e[Uc()]=DA();return e}else{let e=new Map;for(let A=0;A<o;A++)e.set(DA(),DA());return e}else{o-=144;let e=new Array(o);for(let A=0;A<o;A++)e[A]=DA();return e}else if(o<192){let e=o-160;if(it>=I)return Ht.slice(I-Be,(I+=e)-Be);if(it==0&&Wt<140){let A=e<16?La(e):kc(e);if(A!=null)return A}return Pa(e)}else{let e;switch(o){case 192:return null;case 193:return Oe?(e=DA(),e>0?Oe[1].slice(Oe.position1,Oe.position1+=e):Oe[0].slice(Oe.position0,Oe.position0-=e)):Ca;case 194:return!1;case 195:return!0;case 196:return Sa(oA[I++]);case 197:return e=PA.getUint16(I),I+=2,Sa(e);case 198:return e=PA.getUint32(I),I+=4,Sa(e);case 199:return fr(oA[I++]);case 200:return e=PA.getUint16(I),I+=2,fr(e);case 201:return e=PA.getUint32(I),I+=4,fr(e);case 202:if(e=PA.getFloat32(I),he.useFloat32>2){let A=Ci[(oA[I]&127)<<1|oA[I+1]>>7];return I+=4,(A*e+(e>0?.5:-.5)>>0)/A}return I+=4,e;case 203:return e=PA.getFloat64(I),I+=8,e;case 204:return oA[I++];case 205:return e=PA.getUint16(I),I+=2,e;case 206:return e=PA.getUint32(I),I+=4,e;case 207:return he.int64AsNumber?(e=PA.getUint32(I)*4294967296,e+=PA.getUint32(I+4)):e=PA.getBigUint64(I),I+=8,e;case 208:return PA.getInt8(I++);case 209:return e=PA.getInt16(I),I+=2,e;case 210:return e=PA.getInt32(I),I+=4,e;case 211:return he.int64AsNumber?(e=PA.getInt32(I)*4294967296,e+=PA.getUint32(I+4)):e=PA.getBigInt64(I),I+=8,e;case 212:if(e=oA[I++],e==114)return Fc(oA[I++]&63);{let A=le[e];if(A)return A.read?(I++,A.read(DA())):A.noBuffer?(I++,A()):A(oA.subarray(I,++I));throw new Error("Unknown extension "+e)}case 213:return e=oA[I],e==114?(I++,Fc(oA[I++]&63,oA[I++])):fr(2);case 214:return fr(4);case 215:return fr(8);case 216:return fr(16);case 217:return e=oA[I++],it>=I?Ht.slice(I-Be,(I+=e)-Be):Wh(e);case 218:return e=PA.getUint16(I),I+=2,it>=I?Ht.slice(I-Be,(I+=e)-Be):qh(e);case 219:return e=PA.getUint32(I),I+=4,it>=I?Ht.slice(I-Be,(I+=e)-Be):Qh(e);case 220:return e=PA.getUint16(I),I+=2,Gc(e);case 221:return e=PA.getUint32(I),I+=4,Gc(e);case 222:return e=PA.getUint16(I),I+=2,Rc(e);case 223:return e=PA.getUint32(I),I+=4,Rc(e);default:if(o>=224)return o-256;if(o===void 0){let A=new Error("Unexpected end of MessagePack data");throw A.incomplete=!0,A}throw new Error("Unknown MessagePack token "+o)}}}var Hh=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Ia(o,e){function A(){if(A.count++>2){let r=o.read=new Function("r","return function(){return {"+o.map(n=>Hh.test(n)?n+":r()":"["+JSON.stringify(n)+"]:r()").join(",")+"}}")(DA);return o.highByte===0&&(o.read=Dc(e,o.read)),r()}let t={};for(let r=0,n=o.length;r<n;r++){let i=o[r];t[i]=DA()}return t}return A.count=0,o.highByte===0?Dc(e,A):A}var Dc=(o,e)=>function(){let A=oA[I++];if(A===0)return e();let t=o<32?-(o+(A<<5)):o+(A<<5),r=bA[t]||zc()[t];if(!r)throw new Error("Record id is not defined for "+t);return r.read||(r.read=Ia(r,o)),r.read()};function zc(){let o=Wc(()=>(oA=null,he.getStructures()));return bA=he._mergeStructures(o,bA)}var Pa=Pi,Wh=Pi,qh=Pi,Qh=Pi;function Pi(o){let e;if(o<16&&(e=La(o)))return e;if(o>64&&Ta)return Ta.decode(oA.subarray(I,I+=o));let A=I+o,t=[];for(e="";I<A;){let r=oA[I++];if((r&128)===0)t.push(r);else if((r&224)===192){let n=oA[I++]&63;t.push((r&31)<<6|n)}else if((r&240)===224){let n=oA[I++]&63,i=oA[I++]&63;t.push((r&31)<<12|n<<6|i)}else if((r&248)===240){let n=oA[I++]&63,i=oA[I++]&63,a=oA[I++]&63,l=(r&7)<<18|n<<12|i<<6|a;l>65535&&(l-=65536,t.push(l>>>10&1023|55296),l=56320|l&1023),t.push(l)}else t.push(r);t.length>=4096&&(e+=YA.apply(String,t),t.length=0)}return t.length>0&&(e+=YA.apply(String,t)),e}function Gc(o){let e=new Array(o);for(let A=0;A<o;A++)e[A]=DA();return e}function Rc(o){if(he.mapsAsObjects){let e={};for(let A=0;A<o;A++)e[Uc()]=DA();return e}else{let e=new Map;for(let A=0;A<o;A++)e.set(DA(),DA());return e}}var YA=String.fromCharCode;function kc(o){let e=I,A=new Array(o);for(let t=0;t<o;t++){let r=oA[I++];if((r&128)>0){I=e;return}A[t]=r}return YA.apply(String,A)}function La(o){if(o<4)if(o<2){if(o===0)return"";{let e=oA[I++];if((e&128)>1){I-=1;return}return YA(e)}}else{let e=oA[I++],A=oA[I++];if((e&128)>0||(A&128)>0){I-=2;return}if(o<3)return YA(e,A);let t=oA[I++];if((t&128)>0){I-=3;return}return YA(e,A,t)}else{let e=oA[I++],A=oA[I++],t=oA[I++],r=oA[I++];if((e&128)>0||(A&128)>0||(t&128)>0||(r&128)>0){I-=4;return}if(o<6){if(o===4)return YA(e,A,t,r);{let n=oA[I++];if((n&128)>0){I-=5;return}return YA(e,A,t,r,n)}}else if(o<8){let n=oA[I++],i=oA[I++];if((n&128)>0||(i&128)>0){I-=6;return}if(o<7)return YA(e,A,t,r,n,i);let a=oA[I++];if((a&128)>0){I-=7;return}return YA(e,A,t,r,n,i,a)}else{let n=oA[I++],i=oA[I++],a=oA[I++],l=oA[I++];if((n&128)>0||(i&128)>0||(a&128)>0||(l&128)>0){I-=8;return}if(o<10){if(o===8)return YA(e,A,t,r,n,i,a,l);{let u=oA[I++];if((u&128)>0){I-=9;return}return YA(e,A,t,r,n,i,a,l,u)}}else if(o<12){let u=oA[I++],s=oA[I++];if((u&128)>0||(s&128)>0){I-=10;return}if(o<11)return YA(e,A,t,r,n,i,a,l,u,s);let c=oA[I++];if((c&128)>0){I-=11;return}return YA(e,A,t,r,n,i,a,l,u,s,c)}else{let u=oA[I++],s=oA[I++],c=oA[I++],d=oA[I++];if((u&128)>0||(s&128)>0||(c&128)>0||(d&128)>0){I-=12;return}if(o<14){if(o===12)return YA(e,A,t,r,n,i,a,l,u,s,c,d);{let p=oA[I++];if((p&128)>0){I-=13;return}return YA(e,A,t,r,n,i,a,l,u,s,c,d,p)}}else{let p=oA[I++],f=oA[I++];if((p&128)>0||(f&128)>0){I-=14;return}if(o<15)return YA(e,A,t,r,n,i,a,l,u,s,c,d,p,f);let m=oA[I++];if((m&128)>0){I-=15;return}return YA(e,A,t,r,n,i,a,l,u,s,c,d,p,f,m)}}}}}function Sa(o){return he.copyBuffers?Uint8Array.prototype.slice.call(oA,I,I+=o):oA.subarray(I,I+=o)}function fr(o){let e=oA[I++];if(le[e])return le[e](oA.subarray(I,I+=o));throw new Error("Unknown extension type "+e)}var Vc=new Array(4096);function Uc(){let o=oA[I++];if(o>=160&&o<192){if(o=o-160,it>=I)return Ht.slice(I-Be,(I+=o)-Be);if(!(it==0&&Wt<180))return Pa(o)}else return I--,DA();let e=(o<<5^(o>1?PA.getUint16(I):o>0?oA[I]:0))&4095,A=Vc[e],t=I,r=I+o-3,n,i=0;if(A&&A.bytes==o){for(;t<r;){if(n=PA.getUint32(t),n!=A[i++]){t=1879048192;break}t+=4}for(r+=3;t<r;)if(n=oA[t++],n!=A[i++]){t=1879048192;break}if(t===r)return I=t,A.string;r-=3,t=I}for(A=[],Vc[e]=A,A.bytes=o;t<r;)n=PA.getUint32(t),A.push(n),t+=4;for(r+=3;t<r;)n=oA[t++],A.push(n);let a=o<16?La(o):kc(o);return a!=null?A.string=a:A.string=Pa(o)}var Fc=(o,e)=>{var A=DA();let t=o;e!==void 0&&(o=o<32?-((e<<5)+o):(e<<5)+o,A.highByte=e);let r=bA[o];return r&&r.isShared&&((bA.restoreStructures||(bA.restoreStructures=[]))[o]=r),bA[o]=A,A.read=Ia(A,t),A.read()},Hc=typeof self=="object"?self:global;le[0]=()=>{};le[0].noBuffer=!0;le[101]=()=>{let o=DA();return(Hc[o[0]]||Error)(o[1])};le[105]=o=>{let e=PA.getUint32(I-4);Nt||(Nt=new Map);let A=oA[I],t;A>=144&&A<160||A==220||A==221?t=[]:t={};let r={target:t};Nt.set(e,r);let n=DA();return r.used?Object.assign(t,n):(r.target=n,n)};le[112]=o=>{let e=PA.getUint32(I-4),A=Nt.get(e);return A.used=!0,A.target};le[115]=()=>new Set(DA());var Ma=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(o=>o+"Array");le[116]=o=>{let e=o[0],A=Ma[e];if(!A)throw new Error("Could not find typed array for code "+e);return new Hc[A](Uint8Array.prototype.slice.call(o,1).buffer)};le[120]=()=>{let o=DA();return new RegExp(o[0],o[1])};le[98]=o=>{let e=(o[0]<<24)+(o[1]<<16)+(o[2]<<8)+o[3],A=I;I+=e-4,Oe=[DA(),DA()],Oe.position0=0,Oe.position1=0;let t=I;I=A;try{return DA()}finally{I=t}};le[255]=o=>o.length==4?new Date((o[0]*16777216+(o[1]<<16)+(o[2]<<8)+o[3])*1e3):o.length==8?new Date(((o[0]<<22)+(o[1]<<14)+(o[2]<<6)+(o[3]>>2))/1e6+((o[3]&3)*4294967296+o[4]*16777216+(o[5]<<16)+(o[6]<<8)+o[7])*1e3):o.length==12?new Date(((o[0]<<24)+(o[1]<<16)+(o[2]<<8)+o[3])/1e6+((o[4]&128?-281474976710656:0)+o[6]*1099511627776+o[7]*4294967296+o[8]*16777216+(o[9]<<16)+(o[10]<<8)+o[11])*1e3):new Date("invalid");function Wc(o){let e=Wt,A=I,t=Na,r=Be,n=it,i=Ht,a=Oa,l=Nt,u=Oe,s=new Uint8Array(oA.slice(0,Wt)),c=bA,d=bA.slice(0,bA.length),p=he,f=Wr,m=o();return Wt=e,I=A,Na=t,Be=r,it=n,Ht=i,Oa=a,Nt=l,Oe=u,oA=s,Wr=f,bA=c,bA.splice(0,bA.length,...d),he=p,PA=new DataView(oA.buffer,oA.byteOffset,oA.byteLength),m}function Ni(){oA=null,Nt=null,bA=null}function qc(o){o.unpack?le[o.type]=o.unpack:le[o.type]=o}var Ci=new Array(147);for(let o=0;o<256;o++)Ci[o]=+("1e"+Math.floor(45.15-o*.30103));var Ii=new st({useRecords:!1}),Yh=Ii.unpack,Xh=Ii.unpackMultiple,Kh=Ii.unpack,Li={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},Zh=new Float32Array(1),FN=new Uint8Array(Zh.buffer,0,4);var Mi;try{Mi=new TextEncoder}catch{}var Bi,Ea,Ei=typeof Buffer<"u",Ba=Ei?Buffer.allocUnsafeSlow:Uint8Array,Kc=Ei?Buffer:Uint8Array,Qc=Ei?4294967296:2144337920,V,VA,M=0,at,lt=null,Jh=/[\u0080-\uFFFF]/,an=Symbol("record-id"),mr=class extends st{constructor(e){super(e),this.offset=0;let A,t,r,n,i,a,l=0,u=Kc.prototype.utf8Write?function(y,P,O){return V.utf8Write(y,P,O)}:Mi&&Mi.encodeInto?function(y,P){return Mi.encodeInto(y,V.subarray(P)).written}:!1,s=this;e||(e={});let c=e&&e.sequential,d=e.structures||e.saveStructures,p=e.maxSharedStructures;if(p==null&&(p=d?32:0),p>8160)throw new Error("Maximum maxSharedStructure is 8160");let f=e.maxOwnStructures;f==null&&(f=d?32:64),c&&!e.saveStructures&&(this.structures=[]);let m=p>32||f+p>64,h=p+64,g=p+f+64;if(g>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],w=0,v=0;this.pack=this.encode=function(y,P){if(V||(V=new Ba(8192),VA=new DataView(V.buffer,0,8192),M=0),at=V.length-10,at-M<2048?(V=new Ba(V.length),VA=new DataView(V.buffer,0,V.length),at=V.length-10,M=0):M=M+7&2147483640,t=M,a=s.structuredClone?new Map:null,s.bundleStrings?(lt=["",""],V[M++]=214,V[M++]=98,lt.position=M-t,M+=4):lt=null,r=s.structures,r){r.uninitialized&&(r=s._mergeStructures(s.getStructures()));let O=r.sharedLength||0;if(O>p)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+r.sharedLength);if(!r.transitions){r.transitions=Object.create(null);for(let C=0;C<O;C++){let T=r[C];if(!T)continue;let L,B=r.transitions;for(let k=0,X=T.length;k<X;k++){let eA=T[k];L=B[eA],L||(L=B[eA]=Object.create(null)),B=L}B[an]=C+64}l=O}c||(r.nextId=O+64)}n&&(n=!1),i=r||[];try{if(b(y),lt){VA.setUint32(lt.position+t,M-lt.position-t);let O=lt;lt=null,b(O[0]),b(O[1])}if(s.offset=M,a&&a.idsToInsert){M+=a.idsToInsert.length*6,M>at&&S(M),s.offset=M;let O=$h(V.subarray(t,M),a.idsToInsert);return a=null,O}return P&Jc?(V.start=t,V.end=M,V):V.subarray(t,M)}finally{if(r){if(v<10&&v++,w>1e4)r.transitions=null,v=0,w=0,x.length>0&&(x=[]);else if(x.length>0&&!c){for(let O=0,C=x.length;O<C;O++)x[O][an]=0;x=[]}if(n&&s.saveStructures){let O=r.sharedLength||p;r.length>O&&(r=r.slice(0,O));let C=V.subarray(t,M);return s.saveStructures(r,l)===!1?(s._mergeStructures(s.getStructures()),s.pack(y)):(l=O,C)}}P&iy&&(M=t)}};let b=y=>{M>at&&(V=S(M));var P=typeof y,O;if(P==="string"){let C=y.length;if(lt&&C>=8&&C<4096){let B=Jh.test(y);lt[B?0:1]+=y,V[M++]=193,b(B?-C:C);return}let T;C<32?T=1:C<256?T=2:C<65536?T=3:T=5;let L=C*3;if(M+L>at&&(V=S(M+L)),C<64||!u){let B,k,X,eA=M+T;for(B=0;B<C;B++)k=y.charCodeAt(B),k<128?V[eA++]=k:k<2048?(V[eA++]=k>>6|192,V[eA++]=k&63|128):(k&64512)===55296&&((X=y.charCodeAt(B+1))&64512)===56320?(k=65536+((k&1023)<<10)+(X&1023),B++,V[eA++]=k>>18|240,V[eA++]=k>>12&63|128,V[eA++]=k>>6&63|128,V[eA++]=k&63|128):(V[eA++]=k>>12|224,V[eA++]=k>>6&63|128,V[eA++]=k&63|128);O=eA-M-T}else O=u(y,M+T,L);O<32?V[M++]=160|O:O<256?(T<2&&V.copyWithin(M+2,M+1,M+1+O),V[M++]=217,V[M++]=O):O<65536?(T<3&&V.copyWithin(M+3,M+2,M+2+O),V[M++]=218,V[M++]=O>>8,V[M++]=O&255):(T<5&&V.copyWithin(M+5,M+3,M+3+O),V[M++]=219,VA.setUint32(M,O),M+=4),M+=O}else if(P==="number")if(y>>>0===y)y<64?V[M++]=y:y<256?(V[M++]=204,V[M++]=y):y<65536?(V[M++]=205,V[M++]=y>>8,V[M++]=y&255):(V[M++]=206,VA.setUint32(M,y),M+=4);else if(y>>0===y)y>=-32?V[M++]=256+y:y>=-128?(V[M++]=208,V[M++]=y+256):y>=-32768?(V[M++]=209,VA.setInt16(M,y),M+=2):(V[M++]=210,VA.setInt32(M,y),M+=4);else{let C;if((C=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){V[M++]=202,VA.setFloat32(M,y);let T;if(C<4||(T=y*Ci[(V[M]&127)<<1|V[M+1]>>7])>>0===T){M+=4;return}else M--}V[M++]=203,VA.setFloat64(M,y),M+=8}else if(P==="object")if(!y)V[M++]=192;else{if(a){let T=a.get(y);if(T){if(!T.id){let L=a.idsToInsert||(a.idsToInsert=[]);T.id=L.push(T)}V[M++]=214,V[M++]=112,VA.setUint32(M,T.id),M+=4;return}else a.set(y,{offset:M-t})}let C=y.constructor;if(C===Object)N(y,!0);else if(C===Array){O=y.length,O<16?V[M++]=144|O:O<65536?(V[M++]=220,V[M++]=O>>8,V[M++]=O&255):(V[M++]=221,VA.setUint32(M,O),M+=4);for(let T=0;T<O;T++)b(y[T])}else if(C===Map){O=y.size,O<16?V[M++]=128|O:O<65536?(V[M++]=222,V[M++]=O>>8,V[M++]=O&255):(V[M++]=223,VA.setUint32(M,O),M+=4);for(let[T,L]of y)b(T),b(L)}else{for(let T=0,L=Bi.length;T<L;T++){let B=Ea[T];if(y instanceof B){let k=Bi[T];if(k.write){k.type&&(V[M++]=212,V[M++]=k.type,V[M++]=0),b(k.write.call(this,y));return}let X=V,eA=VA,nA=M;V=null;let U;try{U=k.pack.call(this,y,q=>(V=X,X=null,M+=q,M>at&&S(M),{target:V,targetView:VA,position:M-q}),b)}finally{X&&(V=X,VA=eA,M=nA,at=V.length-10)}U&&(U.length+M>at&&S(U.length+M),M=_h(U,V,M,k.type));return}}N(y,!y.hasOwnProperty)}}else if(P==="boolean")V[M++]=y?195:194;else if(P==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))V[M++]=211,VA.setBigInt64(M,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)V[M++]=207,VA.setBigUint64(M,y);else if(this.largeBigIntToFloat)V[M++]=203,VA.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(P==="undefined")this.encodeUndefinedAsNil?V[M++]=192:(V[M++]=212,V[M++]=0,V[M++]=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),O=P.length;O<16?V[M++]=128|O:O<65536?(V[M++]=222,V[M++]=O>>8,V[M++]=O&255):(V[M++]=223,VA.setUint32(M,O),M+=4);let C;for(let T=0;T<O;T++)b(C=P[T]),b(y[C])}:(y,P)=>{V[M++]=222;let O=M-t;M+=2;let C=0;for(let T in y)(P||y.hasOwnProperty(T))&&(b(T),b(y[T]),C++);V[O+++t]=C>>8,V[O+t]=C&255}:y=>{let P=Object.keys(y),O,C=i.transitions||(i.transitions=Object.create(null)),T=0;for(let B=0,k=P.length;B<k;B++){let X=P[B];O=C[X],O||(O=C[X]=Object.create(null),T++),C=O}let L=C[an];if(L)L>=96&&m?(V[M++]=((L-=96)&31)+96,V[M++]=L>>5):V[M++]=L;else{L=i.nextId,L||(L=64),L<h&&this.shouldShareStructure&&!this.shouldShareStructure(P)?(L=i.nextOwnId,L<g||(L=h),i.nextOwnId=L+1):(L>=g&&(L=h),i.nextId=L+1);let B=P.highByte=L>=96&&m?L-96>>5:-1;C[an]=L,i[L-64]=P,L<h?(P.isShared=!0,i.sharedLength=L-63,n=!0,B>=0?(V[M++]=(L&31)+96,V[M++]=B):V[M++]=L):(B>=0?(V[M++]=213,V[M++]=114,V[M++]=(L&31)+96,V[M++]=B):(V[M++]=212,V[M++]=114,V[M++]=L),T&&(w+=v*T),x.length>=f&&(x.shift()[an]=0),x.push(C),b(P))}for(let B=0,k=P.length;B<k;B++)b(y[P[B]])},S=y=>{let P;if(y>16777216){if(y-t>Qc)throw new Error("Packed buffer would be larger than maximum buffer size");P=Math.min(Qc,Math.round(Math.max((y-t)*(y>67108864?1.25:2),4194304)/4096)*4096)}else P=(Math.max(y-t<<2,V.length-1)>>12)+1<<12;let O=new Ba(P);return VA=new DataView(O.buffer,0,P),V.copy?V.copy(O,0,t,y):O.set(V.slice(t,y)),M-=t,t=0,at=O.length-10,V=O}}useBuffer(e){V=e,VA=new DataView(V.buffer,V.byteOffset,V.byteLength),M=0}};Ea=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,sn];Bi=[{pack(o,e,A){let t=o.getTime()/1e3;if((this.useTimestamp32||o.getMilliseconds()===0)&&t>=0&&t<4294967296){let{target:r,targetView:n,position:i}=e(6);r[i++]=214,r[i++]=255,n.setUint32(i,t)}else if(t>0&&t<17179869184){let{target:r,targetView:n,position:i}=e(10);r[i++]=215,r[i++]=255,n.setUint32(i,o.getMilliseconds()*4e6+(t/1e3/4294967296>>0)),n.setUint32(i+4,t)}else if(isNaN(t)){if(this.onInvalidDate)return e(0),A(this.onInvalidDate());let{target:r,targetView:n,position:i}=e(3);r[i++]=212,r[i++]=255,r[i++]=255}else{let{target:r,targetView:n,position:i}=e(15);r[i++]=199,r[i++]=12,r[i++]=255,n.setUint32(i,o.getMilliseconds()*1e6),n.setBigInt64(i+4,BigInt(Math.floor(t)))}}},{pack(o,e,A){let t=Array.from(o),{target:r,position:n}=e(this.structuredClone?3:0);this.structuredClone&&(r[n++]=212,r[n++]=115,r[n++]=0),A(t)}},{pack(o,e,A){let{target:t,position:r}=e(this.structuredClone?3:0);this.structuredClone&&(t[r++]=212,t[r++]=101,t[r++]=0),A([o.name,o.message])}},{pack(o,e,A){let{target:t,position:r}=e(this.structuredClone?3:0);this.structuredClone&&(t[r++]=212,t[r++]=120,t[r++]=0),A([o.source,o.flags])}},{pack(o,e){this.structuredClone?Yc(o,16,e):Xc(Ei?Buffer.from(o):new Uint8Array(o),e)}},{pack(o,e){let A=o.constructor;A!==Kc&&this.structuredClone?Yc(o,Ma.indexOf(A.name),e):Xc(o,e)}},{pack(o,e){let{target:A,position:t}=e(1);A[t]=193}}];function Yc(o,e,A,t){let r=o.byteLength;if(r+1<256){var{target:n,position:i}=A(4+r);n[i++]=199,n[i++]=r+1}else if(r+1<65536){var{target:n,position:i}=A(5+r);n[i++]=200,n[i++]=r+1>>8,n[i++]=r+1&255}else{var{target:n,position:i,targetView:a}=A(7+r);n[i++]=201,a.setUint32(i,r+1),i+=4}n[i++]=116,n[i++]=e,n.set(new Uint8Array(o.buffer,o.byteOffset,o.byteLength),i)}function Xc(o,e){let A=o.byteLength;var t,r;if(A<256){var{target:t,position:r}=e(A+2);t[r++]=196,t[r++]=A}else if(A<65536){var{target:t,position:r}=e(A+3);t[r++]=197,t[r++]=A>>8,t[r++]=A&255}else{var{target:t,position:r,targetView:n}=e(A+5);t[r++]=198,n.setUint32(r,A),r+=4}t.set(o,r)}function _h(o,e,A,t){let r=o.length;switch(r){case 1:e[A++]=212;break;case 2:e[A++]=213;break;case 4:e[A++]=214;break;case 8:e[A++]=215;break;case 16:e[A++]=216;break;default:r<256?(e[A++]=199,e[A++]=r):r<65536?(e[A++]=200,e[A++]=r>>8,e[A++]=r&255):(e[A++]=201,e[A++]=r>>24,e[A++]=r>>16&255,e[A++]=r>>8&255,e[A++]=r&255)}return e[A++]=t,e.set(o,A),A+=r,A}function $h(o,e){let A,t=e.length*6,r=o.length-t;for(e.sort((n,i)=>n.offset>i.offset?1:-1);A=e.pop();){let n=A.offset,i=A.id;o.copyWithin(n+t,n,r),t-=6;let a=n+t;o[a++]=214,o[a++]=105,o[a++]=i>>24,o[a++]=i>>16&255,o[a++]=i>>8&255,o[a++]=i&255,r=n}return o}function qt(o){if(o.Class){if(!o.pack&&!o.write)throw new Error("Extension has no pack or write function");if(o.pack&&!o.type)throw new Error("Extension has no type (numeric code to identify the extension)");Ea.unshift(o.Class),Bi.unshift(o)}qc(o)}var Zc=new mr({useRecords:!1}),Ay=Zc.pack,ey=Zc.pack;var{NEVER:ty,ALWAYS:ry,DECIMAL_ROUND:oy,DECIMAL_FIT:ny}=Li,Jc=512,iy=1024;var _c=new mr({structuredClone:!0});qt({Class:NA.prototype.constructor,type:1,write(o){return{...o}},read(o){return Object.setPrototypeOf(o,NA.prototype),o}});qt({Class:mA.prototype.constructor,type:2,write(o){return[...o]},read(o){return Object.setPrototypeOf(o,mA.prototype),o}});qt({Class:FA.prototype.constructor,type:3,write(o){return[...o]},read(o){return Object.setPrototypeOf(o,FA.prototype),o}});qt({Class:on.prototype.constructor,type:4,write(o){return o.id},read(o){return new on(o)}});qt({Class:nn.prototype.constructor,type:5,write(o){return o.data},read(o){return new nn(o)}});qt({Class:$A.prototype.constructor,type:6,write(o){return{...o}},read(o){return Object.setPrototypeOf(o,$A.prototype),o}});function sy(o){var e=0;if(o.length===0)return e;for(let A=0;A<o.length;A++){let t=o[A];e=(e<<5)-e+t,e=e&e}return e}function Da(o){if(jr(o))return o;if(Array.isArray(o))return o.map(Da);if(typeof o=="object"&&o!==null){let e={};for(let A of Object.keys(o).sort())e[A]=Da(o[A]);return Object.setPrototypeOf(e,Object.getPrototypeOf(o)),e}else return o}var Di;(t=>{function o(r){return _c.pack(r)}t.serialize=o;function e(r){return _c.unpack(r)}t.deserialize=e;function A(r){return sy(o(Da(r))).toString()}t.checksum=A})(Di||(Di={}));var $c;(A=>{function o(t,r){return t[0]===r[0]&&t[1]===r[1]}A.isEqual=o;function e(t,r,n){return[t[0]+(r[0]-t[0])*n,t[1]+(r[1]-t[1])*n]}A.lerp=e})($c||($c={}));var qr;(r=>{function o(n,i){return n[0]===i[0]&&n[1]===i[1]&&n[2]===i[2]}r.isEqual=o;function e(n,i){return[n[0]+i[0],n[1]+i[1],n[2]+i[2]]}r.add=e;function A(n,i){return[n[0]-i[0],n[1]-i[1],n[2]-i[2]]}r.sub=A;function t(n,i,a){return[n[0]+(i[0]-n[0])*a,n[1]+(i[1]-n[1])*a,n[2]+(i[2]-n[2])*a]}r.lerp=t})(qr||(qr={}));var Au;(A=>{function o(t,r){return t[0]===r[0]&&t[1]===r[1]&&t[2]===r[2]&&t[3]===r[3]}A.isEqual=o;function e(t,r,n){return[t[0]+(r[0]-t[0])*n,t[1]+(r[1]-t[1])*n,t[2]+(r[2]-t[2])*n,t[3]+(r[3]-t[3])*n]}A.lerp=e})(Au||(Au={}));var Qt;(r=>{r.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function e(n,i){for(let a=0;a<16;a++)if(n[a]!==i[a])return!1;return!0}r.isEqual=e;function A(n){return n??r.identity}r.simplify=A;function t(n,i){let a=i.slice(0);for(var l=0,u=i.length;l<u;l+=3){let s=n[3]*i[l]+n[7]*i[l+1]+n[11]*i[l+2]+n[15];a[l]=(n[0]*i[l]+n[4]*i[l+1]+n[8]*i[l+2]+n[12])/s,a[l+1]=(n[1]*i[l]+n[5]*i[l+1]+n[9]*i[l+2]+n[13])/s,a[l+2]=(n[2]*i[l]+n[6]*i[l+1]+n[10]*i[l+2]+n[14])/s}return a}r.applyMatrix4=t})(Qt||(Qt={}));var ye;(u=>{function o(s){return typeof s=="object"&&typeof s.r=="number"&&typeof s.g=="number"&&typeof s.b=="number"}u.isRGB=o,u.white={r:1,g:1,b:1},u.red={r:1,g:0,b:0},u.black={r:0,g:0,b:0};function r(s){return{r:Math.round(s.r*255),g:Math.round(s.g*255),b:Math.round(s.b*255),a:1}}u.toRgb255a1=r;function n(s){return{r:s.r,g:s.g,b:s.b}}u.clone=n;function i(s){return s=Math.floor(s),{r:(s>>16&255)/255,g:(s>>8&255)/255,b:(s&255)/255}}u.fromHex=i;function a(s,c){return s.r===c.r&&s.g===c.g&&s.b===c.b}u.equals=a;function l(s,c,d){return{r:s.r+(c.r-s.r)*d,g:s.g+(c.g-s.g)*d,b:s.b+(c.b-s.b)*d}}u.lerp=l})(ye||(ye={}));var qe;(a=>{a.white={...ye.white,a:1},a.transparent={...ye.white,a:0};function A(l){return{r:l[0],g:l[1],b:l[2],a:l[3]}}a.from0to1=A;function t(l,u){return{...ye.fromHex(l),a:u}}a.fromHexAndA=t;function r(l){return{r:Math.round(l.r*255),g:Math.round(l.g*255),b:Math.round(l.b*255),a:l.a}}a.toRgb255a1=r;function n(l,u){return ye.equals(l,u)&&l.a===u.a}a.equals=n;function i(l,u,s){return{r:l.r+(u.r-l.r)*s,g:l.g+(u.g-l.g)*s,b:l.b+(u.b-l.b)*s,a:l.a+(u.a-l.a)*s}}a.lerp=i})(qe||(qe={}));var Gi;(e=>e.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Gi||(Gi={}));var eu;(e=>e.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(eu||(eu={}));var tu;(e=>e.defaultData={control1:[.5,.05],control2:[.1,.3]})(tu||(tu={}));var Pt;(A=>{A.all=["PerspectiveCamera","OrthographicCamera"];function e(t){return A.all.includes(t)}A.is=e})(Pt||(Pt={}));var hr;(r=>{r.DefaultUp=[0,1,0],r.DefaultTargetOffset=1e3,r.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:r.DefaultUp,isUpVectorFlipped:!1,targetOffset:r.DefaultTargetOffset};function t(n){return n.type==="PerspectiveCamera"?n.perspective.zoom:n.orthographic.zoom}r.getZoom=t})(hr||(hr={}));var ln;(A=>{function o(t,r=.1){return{disabled:!1,type:"linear",hideBase:!1,count:3,radial:{radius:Math.max(t[0],t[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},linear:{scale:[1,1,1],rotation:[0,0,0],position:[t[0]+t[0]*r,0,0]},grid:{count:[2,2,2],size:t.map(n=>n*(1+r)),useCenter:!0},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}}}A.defaultData=o;function e(t,r){let n={...t};if(ay.forEach(i=>{Object.assign(n,{[i]:r[i]??t[i]})}),n.radial={...t.radial},r.radial){let i=t.radial,a=r.radial;ly.forEach(l=>{Object.assign(n.radial,{[l]:a[l]??i[l]})})}if(n.linear={...t.linear},r.linear){let i=t.linear,a=r.linear;cy.forEach(l=>{Object.assign(n.linear,{[l]:a[l]??i[l]})})}if(n.grid={...t.grid},r.grid){let i=t.grid,a=r.grid;uy.forEach(l=>{Object.assign(n.grid,{[l]:a[l]??i[l]})})}if(n.toObject={...t.toObject},r.toObject){let i=t.toObject,a=r.toObject;dy.forEach(l=>{Object.assign(n.toObject,{[l]:a[l]??i[l]})})}if(n.randomnessObject={...t.randomnessObject},r.randomnessObject){let i=t.randomnessObject,a=r.randomnessObject;py.forEach(l=>{Object.assign(n.randomnessObject,{[l]:a[l]??i[l]})})}return n}A.merge=e})(ln||(ln={}));var Ri;(t=>{t.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}};let e=["radial","linear","grid","toObject","randomnessObject"];function A(r,n){let i=[];r.count!==void 0&&i.push({type:0,path:n,props:{count:r.count}});for(let a of e){let l=r[a];l&&Object.keys(l).length>0&&i.push({type:0,path:[...n,a],props:l})}return i}t.toOps=A})(Ri||(Ri={}));var ay=["count"],ly=["radius","start","end","position","scale","rotation"],cy=["position","scale","rotation"],uy=["count","size"],dy=["count","position","scale","rotation"],py=["strength","scale","rotation","position","movement","seed","freqScale"];var Vi;(A=>{A.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function e(t){return A.all.includes(t)}A.is=e})(Vi||(Vi={}));var Fi;(A=>{function o(t){return e(t)}A.defaultData=o;function e(t){if(t==="PointLight")return{type:t,color:qe.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(t==="SpotLight")return{type:t,color:qe.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(t==="DirectionalLight")return{type:t,color:qe.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(Fi||(Fi={}));var Ga;(A=>{A.defaultData={castShadow:!0,receiveShadow:!0};function e(t,r){return t.castShadow===r.castShadow&&t.receiveShadow===r.receiveShadow}A.equals=e})(Ga||(Ga={}));var Ra;(A=>{A.defaultData={flatShading:!1,wireframe:!1,side:0};function e(t,r){return t.flatShading===r.flatShading&&t.side===r.side&&t.wireframe===r.wireframe}A.equals=e})(Ra||(Ra={}));var ji;(e=>e.defaultData={...Ra.defaultData,...Ga.defaultData})(ji||(ji={}));var ru="data:video/mp4;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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Lb/mqRv1RGizssN0zl5LaFhWN+cgTuNPIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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";var Qr;(A=>(A.defaultVideo={data:ru,thumb:"/_assets/_videos/catThumb.png",type:"video",name:"Cat video"},A.maxSize=3e7))(Qr||(Qr={}));var fy=typeof global=="object"&&global&&global.Object===Object&&global,zi=fy;var my=typeof self=="object"&&self&&self.Object===Object&&self,hy=zi||my||Function("return this")(),jA=hy;var yy=jA.Symbol,ce=yy;var ou=Object.prototype,gy=ou.hasOwnProperty,xy=ou.toString,cn=ce?ce.toStringTag:void 0;function vy(o){var e=gy.call(o,cn),A=o[cn];try{o[cn]=void 0;var t=!0}catch{}var r=xy.call(o);return t&&(e?o[cn]=A:delete o[cn]),r}var nu=vy;var by=Object.prototype,wy=by.toString;function Sy(o){return wy.call(o)}var iu=Sy;var Ty="[object Null]",Oy="[object Undefined]",su=ce?ce.toStringTag:void 0;function Ny(o){return o==null?o===void 0?Oy:Ty:su&&su in Object(o)?nu(o):iu(o)}var Ne=Ny;function Py(o){return o!=null&&typeof o=="object"}var ne=Py;var Cy="[object Symbol]";function Iy(o){return typeof o=="symbol"||ne(o)&&Ne(o)==Cy}var Yr=Iy;function Ly(o,e){for(var A=-1,t=o==null?0:o.length,r=Array(t);++A<t;)r[A]=e(o[A],A,o);return r}var ki=Ly;var My=Array.isArray,GA=My;var By=1/0,au=ce?ce.prototype:void 0,lu=au?au.toString:void 0;function cu(o){if(typeof o=="string")return o;if(GA(o))return ki(o,cu)+"";if(Yr(o))return lu?lu.call(o):"";var e=o+"";return e=="0"&&1/o==-By?"-0":e}var uu=cu;function Ey(o){var e=typeof o;return o!=null&&(e=="object"||e=="function")}var zA=Ey;function Dy(o){return o}var Ui=Dy;var Gy="[object AsyncFunction]",Ry="[object Function]",Vy="[object GeneratorFunction]",Fy="[object Proxy]";function jy(o){if(!zA(o))return!1;var e=Ne(o);return e==Ry||e==Vy||e==Gy||e==Fy}var Xr=jy;var zy=jA["__core-js_shared__"],Hi=zy;var du=function(){var o=/[^.]+$/.exec(Hi&&Hi.keys&&Hi.keys.IE_PROTO||"");return o?"Symbol(src)_1."+o:""}();function ky(o){return!!du&&du in o}var pu=ky;var Uy=Function.prototype,Hy=Uy.toString;function Wy(o){if(o!=null){try{return Hy.call(o)}catch{}try{return o+""}catch{}}return""}var Ct=Wy;var qy=/[\\^$.*+?()[\]{}|]/g,Qy=/^\[object .+?Constructor\]$/,Yy=Function.prototype,Xy=Object.prototype,Ky=Yy.toString,Zy=Xy.hasOwnProperty,Jy=RegExp("^"+Ky.call(Zy).replace(qy,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _y(o){if(!zA(o)||pu(o))return!1;var e=Xr(o)?Jy:Qy;return e.test(Ct(o))}var fu=_y;function $y(o,e){return o?.[e]}var mu=$y;function Ag(o,e){var A=mu(o,e);return fu(A)?A:void 0}var ge=Ag;var eg=ge(jA,"WeakMap"),Wi=eg;var hu=Object.create,tg=function(){function o(){}return function(e){if(!zA(e))return{};if(hu)return hu(e);o.prototype=e;var A=new o;return o.prototype=void 0,A}}(),yu=tg;function rg(o,e,A){switch(A.length){case 0:return o.call(e);case 1:return o.call(e,A[0]);case 2:return o.call(e,A[0],A[1]);case 3:return o.call(e,A[0],A[1],A[2])}return o.apply(e,A)}var gu=rg;function og(o,e){var A=-1,t=o.length;for(e||(e=Array(t));++A<t;)e[A]=o[A];return e}var qi=og;var ng=800,ig=16,sg=Date.now;function ag(o){var e=0,A=0;return function(){var t=sg(),r=ig-(t-A);if(A=t,r>0){if(++e>=ng)return arguments[0]}else e=0;return o.apply(void 0,arguments)}}var xu=ag;function lg(o){return function(){return o}}var vu=lg;var cg=function(){try{var o=ge(Object,"defineProperty");return o({},"",{}),o}catch{}}(),Kr=cg;var ug=Kr?function(o,e){return Kr(o,"toString",{configurable:!0,enumerable:!1,value:vu(e),writable:!0})}:Ui,bu=ug;var dg=xu(bu),Qi=dg;function pg(o,e){for(var A=-1,t=o==null?0:o.length;++A<t&&e(o[A],A,o)!==!1;);return o}var wu=pg;var fg=9007199254740991,mg=/^(?:0|[1-9]\d*)$/;function hg(o,e){var A=typeof o;return e=e??fg,!!e&&(A=="number"||A!="symbol"&&mg.test(o))&&o>-1&&o%1==0&&o<e}var Yt=hg;function yg(o,e,A){e=="__proto__"&&Kr?Kr(o,e,{configurable:!0,enumerable:!0,value:A,writable:!0}):o[e]=A}var Zr=yg;function gg(o,e){return o===e||o!==o&&e!==e}var Xt=gg;var xg=Object.prototype,vg=xg.hasOwnProperty;function bg(o,e,A){var t=o[e];(!(vg.call(o,e)&&Xt(t,A))||A===void 0&&!(e in o))&&Zr(o,e,A)}var Jr=bg;function wg(o,e,A,t){var r=!A;A||(A={});for(var n=-1,i=e.length;++n<i;){var a=e[n],l=t?t(A[a],o[a],a,A,o):void 0;l===void 0&&(l=o[a]),r?Zr(A,a,l):Jr(A,a,l)}return A}var Ee=wg;var Su=Math.max;function Sg(o,e,A){return e=Su(e===void 0?o.length-1:e,0),function(){for(var t=arguments,r=-1,n=Su(t.length-e,0),i=Array(n);++r<n;)i[r]=t[e+r];r=-1;for(var a=Array(e+1);++r<e;)a[r]=t[r];return a[e]=A(i),gu(o,this,a)}}var Yi=Sg;function Tg(o,e){return Qi(Yi(o,e,Ui),o+"")}var Tu=Tg;var Og=9007199254740991;function Ng(o){return typeof o=="number"&&o>-1&&o%1==0&&o<=Og}var _r=Ng;function Pg(o){return o!=null&&_r(o.length)&&!Xr(o)}var Kt=Pg;function Cg(o,e,A){if(!zA(A))return!1;var t=typeof e;return(t=="number"?Kt(A)&&Yt(e,A.length):t=="string"&&e in A)?Xt(A[e],o):!1}var Ou=Cg;function Ig(o){return Tu(function(e,A){var t=-1,r=A.length,n=r>1?A[r-1]:void 0,i=r>2?A[2]:void 0;for(n=o.length>3&&typeof n=="function"?(r--,n):void 0,i&&Ou(A[0],A[1],i)&&(n=r<3?void 0:n,r=1),e=Object(e);++t<r;){var a=A[t];a&&o(e,a,t,n)}return e})}var Nu=Ig;var Lg=Object.prototype;function Mg(o){var e=o&&o.constructor,A=typeof e=="function"&&e.prototype||Lg;return o===A}var $r=Mg;function Bg(o,e){for(var A=-1,t=Array(o);++A<o;)t[A]=e(A);return t}var Pu=Bg;var Eg="[object Arguments]";function Dg(o){return ne(o)&&Ne(o)==Eg}var Va=Dg;var Cu=Object.prototype,Gg=Cu.hasOwnProperty,Rg=Cu.propertyIsEnumerable,Vg=Va(function(){return arguments}())?Va:function(o){return ne(o)&&Gg.call(o,"callee")&&!Rg.call(o,"callee")},It=Vg;function Fg(){return!1}var Iu=Fg;var Bu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Lu=Bu&&typeof module=="object"&&module&&!module.nodeType&&module,jg=Lu&&Lu.exports===Bu,Mu=jg?jA.Buffer:void 0,zg=Mu?Mu.isBuffer:void 0,kg=zg||Iu,Ao=kg;var Ug="[object Arguments]",Hg="[object Array]",Wg="[object Boolean]",qg="[object Date]",Qg="[object Error]",Yg="[object Function]",Xg="[object Map]",Kg="[object Number]",Zg="[object Object]",Jg="[object RegExp]",_g="[object Set]",$g="[object String]",Ax="[object WeakMap]",ex="[object ArrayBuffer]",tx="[object DataView]",rx="[object Float32Array]",ox="[object Float64Array]",nx="[object Int8Array]",ix="[object Int16Array]",sx="[object Int32Array]",ax="[object Uint8Array]",lx="[object Uint8ClampedArray]",cx="[object Uint16Array]",ux="[object Uint32Array]",EA={};EA[rx]=EA[ox]=EA[nx]=EA[ix]=EA[sx]=EA[ax]=EA[lx]=EA[cx]=EA[ux]=!0;EA[Ug]=EA[Hg]=EA[ex]=EA[Wg]=EA[tx]=EA[qg]=EA[Qg]=EA[Yg]=EA[Xg]=EA[Kg]=EA[Zg]=EA[Jg]=EA[_g]=EA[$g]=EA[Ax]=!1;function dx(o){return ne(o)&&_r(o.length)&&!!EA[Ne(o)]}var Eu=dx;function px(o){return function(e){return o(e)}}var eo=px;var Du=typeof exports=="object"&&exports&&!exports.nodeType&&exports,un=Du&&typeof module=="object"&&module&&!module.nodeType&&module,fx=un&&un.exports===Du,Fa=fx&&zi.process,mx=function(){try{var o=un&&un.require&&un.require("util").types;return o||Fa&&Fa.binding&&Fa.binding("util")}catch{}}(),Lt=mx;var Gu=Lt&&Lt.isTypedArray,hx=Gu?eo(Gu):Eu,Xi=hx;var yx=Object.prototype,gx=yx.hasOwnProperty;function xx(o,e){var A=GA(o),t=!A&&It(o),r=!A&&!t&&Ao(o),n=!A&&!t&&!r&&Xi(o),i=A||t||r||n,a=i?Pu(o.length,String):[],l=a.length;for(var u in o)(e||gx.call(o,u))&&!(i&&(u=="length"||r&&(u=="offset"||u=="parent")||n&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Yt(u,l)))&&a.push(u);return a}var Ki=xx;function vx(o,e){return function(A){return o(e(A))}}var Zi=vx;var bx=Zi(Object.keys,Object),Ru=bx;var wx=Object.prototype,Sx=wx.hasOwnProperty;function Tx(o){if(!$r(o))return Ru(o);var e=[];for(var A in Object(o))Sx.call(o,A)&&A!="constructor"&&e.push(A);return e}var Vu=Tx;function Ox(o){return Kt(o)?Ki(o):Vu(o)}var to=Ox;function Nx(o){var e=[];if(o!=null)for(var A in Object(o))e.push(A);return e}var Fu=Nx;var Px=Object.prototype,Cx=Px.hasOwnProperty;function Ix(o){if(!zA(o))return Fu(o);var e=$r(o),A=[];for(var t in o)t=="constructor"&&(e||!Cx.call(o,t))||A.push(t);return A}var ju=Ix;function Lx(o){return Kt(o)?Ki(o,!0):ju(o)}var ct=Lx;var Mx=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Bx=/^\w*$/;function Ex(o,e){if(GA(o))return!1;var A=typeof o;return A=="number"||A=="symbol"||A=="boolean"||o==null||Yr(o)?!0:Bx.test(o)||!Mx.test(o)||e!=null&&o in Object(e)}var zu=Ex;var Dx=ge(Object,"create"),Mt=Dx;function Gx(){this.__data__=Mt?Mt(null):{},this.size=0}var ku=Gx;function Rx(o){var e=this.has(o)&&delete this.__data__[o];return this.size-=e?1:0,e}var Uu=Rx;var Vx="__lodash_hash_undefined__",Fx=Object.prototype,jx=Fx.hasOwnProperty;function zx(o){var e=this.__data__;if(Mt){var A=e[o];return A===Vx?void 0:A}return jx.call(e,o)?e[o]:void 0}var Hu=zx;var kx=Object.prototype,Ux=kx.hasOwnProperty;function Hx(o){var e=this.__data__;return Mt?e[o]!==void 0:Ux.call(e,o)}var Wu=Hx;var Wx="__lodash_hash_undefined__";function qx(o,e){var A=this.__data__;return this.size+=this.has(o)?0:1,A[o]=Mt&&e===void 0?Wx:e,this}var qu=qx;function ro(o){var e=-1,A=o==null?0:o.length;for(this.clear();++e<A;){var t=o[e];this.set(t[0],t[1])}}ro.prototype.clear=ku;ro.prototype.delete=Uu;ro.prototype.get=Hu;ro.prototype.has=Wu;ro.prototype.set=qu;var ja=ro;function Qx(){this.__data__=[],this.size=0}var Qu=Qx;function Yx(o,e){for(var A=o.length;A--;)if(Xt(o[A][0],e))return A;return-1}var Zt=Yx;var Xx=Array.prototype,Kx=Xx.splice;function Zx(o){var e=this.__data__,A=Zt(e,o);if(A<0)return!1;var t=e.length-1;return A==t?e.pop():Kx.call(e,A,1),--this.size,!0}var Yu=Zx;function Jx(o){var e=this.__data__,A=Zt(e,o);return A<0?void 0:e[A][1]}var Xu=Jx;function _x(o){return Zt(this.__data__,o)>-1}var Ku=_x;function $x(o,e){var A=this.__data__,t=Zt(A,o);return t<0?(++this.size,A.push([o,e])):A[t][1]=e,this}var Zu=$x;function oo(o){var e=-1,A=o==null?0:o.length;for(this.clear();++e<A;){var t=o[e];this.set(t[0],t[1])}}oo.prototype.clear=Qu;oo.prototype.delete=Yu;oo.prototype.get=Xu;oo.prototype.has=Ku;oo.prototype.set=Zu;var Jt=oo;var A0=ge(jA,"Map"),_t=A0;function e0(){this.size=0,this.__data__={hash:new ja,map:new(_t||Jt),string:new ja}}var Ju=e0;function t0(o){var e=typeof o;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?o!=="__proto__":o===null}var _u=t0;function r0(o,e){var A=o.__data__;return _u(e)?A[typeof e=="string"?"string":"hash"]:A.map}var $t=r0;function o0(o){var e=$t(this,o).delete(o);return this.size-=e?1:0,e}var $u=o0;function n0(o){return $t(this,o).get(o)}var Ad=n0;function i0(o){return $t(this,o).has(o)}var ed=i0;function s0(o,e){var A=$t(this,o),t=A.size;return A.set(o,e),this.size+=A.size==t?0:1,this}var td=s0;function no(o){var e=-1,A=o==null?0:o.length;for(this.clear();++e<A;){var t=o[e];this.set(t[0],t[1])}}no.prototype.clear=Ju;no.prototype.delete=$u;no.prototype.get=Ad;no.prototype.has=ed;no.prototype.set=td;var dn=no;var a0="Expected a function";function za(o,e){if(typeof o!="function"||e!=null&&typeof e!="function")throw new TypeError(a0);var A=function(){var t=arguments,r=e?e.apply(this,t):t[0],n=A.cache;if(n.has(r))return n.get(r);var i=o.apply(this,t);return A.cache=n.set(r,i)||n,i};return A.cache=new(za.Cache||dn),A}za.Cache=dn;var rd=za;var l0=500;function c0(o){var e=rd(o,function(t){return A.size===l0&&A.clear(),t}),A=e.cache;return e}var od=c0;var u0=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,d0=/\\(\\)?/g,p0=od(function(o){var e=[];return o.charCodeAt(0)===46&&e.push(""),o.replace(u0,function(A,t,r,n){e.push(r?n.replace(d0,"$1"):t||A)}),e}),nd=p0;function f0(o){return o==null?"":uu(o)}var id=f0;function m0(o,e){return GA(o)?o:zu(o,e)?[o]:nd(id(o))}var De=m0;var h0=1/0;function y0(o){if(typeof o=="string"||Yr(o))return o;var e=o+"";return e=="0"&&1/o==-h0?"-0":e}var Ar=y0;function g0(o,e){e=De(e,o);for(var A=0,t=e.length;o!=null&&A<t;)o=o[Ar(e[A++])];return A&&A==t?o:void 0}var Ji=g0;function x0(o,e){for(var A=-1,t=e.length,r=o.length;++A<t;)o[r+A]=e[A];return o}var io=x0;var sd=ce?ce.isConcatSpreadable:void 0;function v0(o){return GA(o)||It(o)||!!(sd&&o&&o[sd])}var ad=v0;function ld(o,e,A,t,r){var n=-1,i=o.length;for(A||(A=ad),r||(r=[]);++n<i;){var a=o[n];e>0&&A(a)?e>1?ld(a,e-1,A,t,r):io(r,a):t||(r[r.length]=a)}return r}var cd=ld;function b0(o){var e=o==null?0:o.length;return e?cd(o,1):[]}var ud=b0;function w0(o){return Qi(Yi(o,void 0,ud),o+"")}var _i=w0;var S0=Zi(Object.getPrototypeOf,Object),so=S0;var T0="[object Object]",O0=Function.prototype,N0=Object.prototype,dd=O0.toString,P0=N0.hasOwnProperty,C0=dd.call(Object);function I0(o){if(!ne(o)||Ne(o)!=T0)return!1;var e=so(o);if(e===null)return!0;var A=P0.call(e,"constructor")&&e.constructor;return typeof A=="function"&&A instanceof A&&dd.call(A)==C0}var $i=I0;function L0(o,e,A){var t=-1,r=o.length;e<0&&(e=-e>r?0:r+e),A=A>r?r:A,A<0&&(A+=r),r=e>A?0:A-e>>>0,e>>>=0;for(var n=Array(r);++t<r;)n[t]=o[t+e];return n}var pd=L0;function M0(){this.__data__=new Jt,this.size=0}var fd=M0;function B0(o){var e=this.__data__,A=e.delete(o);return this.size=e.size,A}var md=B0;function E0(o){return this.__data__.get(o)}var hd=E0;function D0(o){return this.__data__.has(o)}var yd=D0;var G0=200;function R0(o,e){var A=this.__data__;if(A instanceof Jt){var t=A.__data__;if(!_t||t.length<G0-1)return t.push([o,e]),this.size=++A.size,this;A=this.__data__=new dn(t)}return A.set(o,e),this.size=A.size,this}var gd=R0;function ao(o){var e=this.__data__=new Jt(o);this.size=e.size}ao.prototype.clear=fd;ao.prototype.delete=md;ao.prototype.get=hd;ao.prototype.has=yd;ao.prototype.set=gd;var As=ao;function V0(o,e){return o&&Ee(e,to(e),o)}var xd=V0;function F0(o,e){return o&&Ee(e,ct(e),o)}var vd=F0;var Td=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bd=Td&&typeof module=="object"&&module&&!module.nodeType&&module,j0=bd&&bd.exports===Td,wd=j0?jA.Buffer:void 0,Sd=wd?wd.allocUnsafe:void 0;function z0(o,e){if(e)return o.slice();var A=o.length,t=Sd?Sd(A):new o.constructor(A);return o.copy(t),t}var es=z0;function k0(o,e){for(var A=-1,t=o==null?0:o.length,r=0,n=[];++A<t;){var i=o[A];e(i,A,o)&&(n[r++]=i)}return n}var Od=k0;function U0(){return[]}var ts=U0;var H0=Object.prototype,W0=H0.propertyIsEnumerable,Nd=Object.getOwnPropertySymbols,q0=Nd?function(o){return o==null?[]:(o=Object(o),Od(Nd(o),function(e){return W0.call(o,e)}))}:ts,lo=q0;function Q0(o,e){return Ee(o,lo(o),e)}var Pd=Q0;var Y0=Object.getOwnPropertySymbols,X0=Y0?function(o){for(var e=[];o;)io(e,lo(o)),o=so(o);return e}:ts,rs=X0;function K0(o,e){return Ee(o,rs(o),e)}var Cd=K0;function Z0(o,e,A){var t=e(o);return GA(o)?t:io(t,A(o))}var os=Z0;function J0(o){return os(o,to,lo)}var Id=J0;function _0(o){return os(o,ct,rs)}var ns=_0;var $0=ge(jA,"DataView"),is=$0;var Av=ge(jA,"Promise"),ss=Av;var ev=ge(jA,"Set"),as=ev;var Ld="[object Map]",tv="[object Object]",Md="[object Promise]",Bd="[object Set]",Ed="[object WeakMap]",Dd="[object DataView]",rv=Ct(is),ov=Ct(_t),nv=Ct(ss),iv=Ct(as),sv=Ct(Wi),yr=Ne;(is&&yr(new is(new ArrayBuffer(1)))!=Dd||_t&&yr(new _t)!=Ld||ss&&yr(ss.resolve())!=Md||as&&yr(new as)!=Bd||Wi&&yr(new Wi)!=Ed)&&(yr=function(o){var e=Ne(o),A=e==tv?o.constructor:void 0,t=A?Ct(A):"";if(t)switch(t){case rv:return Dd;case ov:return Ld;case nv:return Md;case iv:return Bd;case sv:return Ed}return e});var co=yr;var av=Object.prototype,lv=av.hasOwnProperty;function cv(o){var e=o.length,A=new o.constructor(e);return e&&typeof o[0]=="string"&&lv.call(o,"index")&&(A.index=o.index,A.input=o.input),A}var Gd=cv;var uv=jA.Uint8Array,ka=uv;function dv(o){var e=new o.constructor(o.byteLength);return new ka(e).set(new ka(o)),e}var uo=dv;function pv(o,e){var A=e?uo(o.buffer):o.buffer;return new o.constructor(A,o.byteOffset,o.byteLength)}var Rd=pv;var fv=/\w*$/;function mv(o){var e=new o.constructor(o.source,fv.exec(o));return e.lastIndex=o.lastIndex,e}var Vd=mv;var Fd=ce?ce.prototype:void 0,jd=Fd?Fd.valueOf:void 0;function hv(o){return jd?Object(jd.call(o)):{}}var zd=hv;function yv(o,e){var A=e?uo(o.buffer):o.buffer;return new o.constructor(A,o.byteOffset,o.length)}var ls=yv;var gv="[object Boolean]",xv="[object Date]",vv="[object Map]",bv="[object Number]",wv="[object RegExp]",Sv="[object Set]",Tv="[object String]",Ov="[object Symbol]",Nv="[object ArrayBuffer]",Pv="[object DataView]",Cv="[object Float32Array]",Iv="[object Float64Array]",Lv="[object Int8Array]",Mv="[object Int16Array]",Bv="[object Int32Array]",Ev="[object Uint8Array]",Dv="[object Uint8ClampedArray]",Gv="[object Uint16Array]",Rv="[object Uint32Array]";function Vv(o,e,A){var t=o.constructor;switch(e){case Nv:return uo(o);case gv:case xv:return new t(+o);case Pv:return Rd(o,A);case Cv:case Iv:case Lv:case Mv:case Bv:case Ev:case Dv:case Gv:case Rv:return ls(o,A);case vv:return new t;case bv:case Tv:return new t(o);case wv:return Vd(o);case Sv:return new t;case Ov:return zd(o)}}var kd=Vv;function Fv(o){return typeof o.constructor=="function"&&!$r(o)?yu(so(o)):{}}var cs=Fv;var jv="[object Map]";function zv(o){return ne(o)&&co(o)==jv}var Ud=zv;var Hd=Lt&&Lt.isMap,kv=Hd?eo(Hd):Ud,Wd=kv;var Uv="[object Set]";function Hv(o){return ne(o)&&co(o)==Uv}var qd=Hv;var Qd=Lt&&Lt.isSet,Wv=Qd?eo(Qd):qd,Yd=Wv;var qv=1,Qv=2,Yv=4,Xd="[object Arguments]",Xv="[object Array]",Kv="[object Boolean]",Zv="[object Date]",Jv="[object Error]",Kd="[object Function]",_v="[object GeneratorFunction]",$v="[object Map]",Ab="[object Number]",Zd="[object Object]",eb="[object RegExp]",tb="[object Set]",rb="[object String]",ob="[object Symbol]",nb="[object WeakMap]",ib="[object ArrayBuffer]",sb="[object DataView]",ab="[object Float32Array]",lb="[object Float64Array]",cb="[object Int8Array]",ub="[object Int16Array]",db="[object Int32Array]",pb="[object Uint8Array]",fb="[object Uint8ClampedArray]",mb="[object Uint16Array]",hb="[object Uint32Array]",BA={};BA[Xd]=BA[Xv]=BA[ib]=BA[sb]=BA[Kv]=BA[Zv]=BA[ab]=BA[lb]=BA[cb]=BA[ub]=BA[db]=BA[$v]=BA[Ab]=BA[Zd]=BA[eb]=BA[tb]=BA[rb]=BA[ob]=BA[pb]=BA[fb]=BA[mb]=BA[hb]=!0;BA[Jv]=BA[Kd]=BA[nb]=!1;function us(o,e,A,t,r,n){var i,a=e&qv,l=e&Qv,u=e&Yv;if(A&&(i=r?A(o,t,r,n):A(o)),i!==void 0)return i;if(!zA(o))return o;var s=GA(o);if(s){if(i=Gd(o),!a)return qi(o,i)}else{var c=co(o),d=c==Kd||c==_v;if(Ao(o))return es(o,a);if(c==Zd||c==Xd||d&&!r){if(i=l||d?{}:cs(o),!a)return l?Cd(o,vd(i,o)):Pd(o,xd(i,o))}else{if(!BA[c])return r?o:{};i=kd(o,c,a)}}n||(n=new As);var p=n.get(o);if(p)return p;n.set(o,i),Yd(o)?o.forEach(function(h){i.add(us(h,e,A,h,o,n))}):Wd(o)&&o.forEach(function(h,g){i.set(g,us(h,e,A,g,o,n))});var f=u?l?ns:Id:l?ct:to,m=s?void 0:f(o);return wu(m||o,function(h,g){m&&(g=h,h=o[g]),Jr(i,g,us(h,e,A,g,o,n))}),i}var ds=us;var yb=1,gb=4;function xb(o){return ds(o,yb|gb)}var gr=xb;function vb(o,e){return o!=null&&e in Object(o)}var Jd=vb;function bb(o,e,A){e=De(e,o);for(var t=-1,r=e.length,n=!1;++t<r;){var i=Ar(e[t]);if(!(n=o!=null&&A(o,i)))break;o=o[i]}return n||++t!=r?n:(r=o==null?0:o.length,!!r&&_r(r)&&Yt(i,r)&&(GA(o)||It(o)))}var _d=bb;function wb(o,e){return o!=null&&_d(o,e,Jd)}var $d=wb;function Sb(o){return function(e,A,t){for(var r=-1,n=Object(e),i=t(e),a=i.length;a--;){var l=i[o?a:++r];if(A(n[l],l,n)===!1)break}return e}}var Ap=Sb;var Tb=Ap(),ep=Tb;function Ob(o,e,A){(A!==void 0&&!Xt(o[e],A)||A===void 0&&!(e in o))&&Zr(o,e,A)}var pn=Ob;function Nb(o){return ne(o)&&Kt(o)}var tp=Nb;function Pb(o,e){if(!(e==="constructor"&&typeof o[e]=="function")&&e!="__proto__")return o[e]}var fn=Pb;function Cb(o){return Ee(o,ct(o))}var rp=Cb;function Ib(o,e,A,t,r,n,i){var a=fn(o,A),l=fn(e,A),u=i.get(l);if(u){pn(o,A,u);return}var s=n?n(a,l,A+"",o,e,i):void 0,c=s===void 0;if(c){var d=GA(l),p=!d&&Ao(l),f=!d&&!p&&Xi(l);s=l,d||p||f?GA(a)?s=a:tp(a)?s=qi(a):p?(c=!1,s=es(l,!0)):f?(c=!1,s=ls(l,!0)):s=[]:$i(l)||It(l)?(s=a,It(a)?s=rp(a):(!zA(a)||Xr(a))&&(s=cs(l))):c=!1}c&&(i.set(l,s),r(s,l,t,n,i),i.delete(l)),pn(o,A,s)}var op=Ib;function np(o,e,A,t,r){o!==e&&ep(e,function(n,i){if(r||(r=new As),zA(n))op(o,e,i,A,np,t,r);else{var a=t?t(fn(o,i),n,i+"",o,e,r):void 0;a===void 0&&(a=n),pn(o,i,a)}},ct)}var ip=np;function Lb(o){var e=o==null?0:o.length;return e?o[e-1]:void 0}var sp=Lb;function Mb(o,e){return e.length<2?o:Ji(o,pd(e,0,-1))}var ap=Mb;var Bb=Nu(function(o,e,A){ip(o,e,A)}),Ua=Bb;function Eb(o,e){return e=De(e,o),o=ap(o,e),o==null||delete o[Ar(sp(e))]}var lp=Eb;function Db(o){return $i(o)?void 0:o}var cp=Db;var Gb=1,Rb=2,Vb=4,Fb=_i(function(o,e){var A={};if(o==null)return A;var t=!1;e=ki(e,function(n){return n=De(n,o),t||(t=n.length>1),n}),Ee(o,ns(o),A),t&&(A=ds(A,Gb|Rb|Vb,cp));for(var r=e.length;r--;)lp(A,e[r]);return A}),po=Fb;function jb(o,e,A,t){if(!zA(o))return o;e=De(e,o);for(var r=-1,n=e.length,i=n-1,a=o;a!=null&&++r<n;){var l=Ar(e[r]),u=A;if(l==="__proto__"||l==="constructor"||l==="prototype")return o;if(r!=i){var s=a[l];u=t?t(s,l,a):void 0,u===void 0&&(u=zA(s)?s:Yt(e[r+1])?[]:{})}Jr(a,l,u),a=a[l]}return o}var up=jb;function zb(o,e,A){for(var t=-1,r=e.length,n={};++t<r;){var i=e[t],a=Ji(o,i);A(a,i)&&up(n,De(i,o),a)}return n}var dp=zb;function kb(o,e){return dp(o,e,function(A,t){return $d(o,t)})}var pp=kb;var Ub=_i(function(o,e){return o==null?{}:pp(o,e)}),fo=Ub;var fp=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],mp=["wrapping","image","video"],ue;(r=>{function o(n,i){Ua(n,i)}r.patch=o;function e(n,i){return n==="light"&&i?A(i):t(n)}r.defaultData=e;function A(n){switch(n){case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:5,type:"light",alpha:.6,visible:!0,mode:0};case"toon":return{category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"lambert":return{category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0};case"physical":return{category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0}}}function t(n){switch(n){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:!1};case"video":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"video",projection:0,texture:{video:Qr.defaultVideo,wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:ye.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:{...ye.fromHex(6710886),a:1},colorB:{...ye.fromHex(6710886),a:1},colorC:{...ye.fromHex(16777215),a:1},colorD:{...ye.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:qe.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:qe.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:qe.fromHexAndA(0,1),contourColor:qe.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}}}})(ue||(ue={}));var Pe;(a=>{function o(l){return!l.layers.some(s=>s.data.type==="texture"&&s.data.projection!==0||s.data.type==="depth"&&!s.data.isWorldSpace||s.data.type==="noise"||s.data.type==="displace")}a.isMergable=o;function e(l){let u="";return l.layers.forEach(s=>{Object.entries(s.data).forEach(([c,d])=>{u+=`${c}${d}`,Array.isArray(d)?d.forEach(p=>u+=`${p}`):typeof d=="object"?Object.values(d).forEach(p=>{typeof p=="number"?u+=`${p.toFixed(4)}`:u+=`${p}`}):u+=`${d}`})}),u}a.getHash=e;function A(){return{layers:new mA}}a.defaultEmptyData=A;function t(l="layer1",u="layer2"){return r("phong",l,u)}a.defaultData=t;function r(l,u="layer1",s="layer2"){let c=new mA;return c.push({fi:0,data:ue.defaultData("light",l),id:u}),c.push({fi:1,data:ue.defaultData("color"),id:s}),{layers:c}}a.defaultTwoLayerData=r;function n(l,u="phong",s="layer1",c="layer2"){let d=ue.defaultData("texture");Object.assign(d.texture,{image:l});let p=new mA;return p.push({fi:0,data:d,id:s}),p.push({fi:1,data:ue.defaultData("light",u),id:c}),{layers:p}}a.defaultTwoLayerTextureData=n;function i(l,u="phong",s="layer1",c="layer2"){let d=ue.defaultData("video");Object.assign(d.texture,{video:l});let p=new mA;return p.push({fi:0,data:d,id:s}),p.push({fi:1,data:ue.defaultData("light",u),id:c}),{layers:p}}a.defaultTwoLayerVideoTextureData=i})(Pe||(Pe={}));var mo;(e=>{function o(){return{points:new mA,roundness:0,shapeHoles:[],isClosed:!1}}e.defaultData=o})(mo||(mo={}));var mn;(e=>{function o(A){return A==="PolygonGeometry"||A==="RectangleGeometry"||A==="StarGeometry"||A==="TriangleGeometry"||A==="EllipseGeometry"}e.is2DParametricMesh=o})(mn||(mn={}));var er;(e=>{function o(A){if(A==="RectangleGeometry")return{width:320,height:320,type:A,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(A==="VectorGeometry")return{width:1,height:1,type:A,subdivisions:12,shape:mo.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(A==="BooleanGeometry")return{type:A,operation:2,width:0,height:0,depth:0,phongAngle:35};if(A==="TextGeometry")return{type:A,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")}e.defaultData=o})(er||(er={}));var hn;(r=>{r.identity={...Gi.identity,hiddenMatrix:Qt.identity};function e(n){return{position:n.position,rotation:n.rotation,scale:n.scale,hiddenMatrix:n.hiddenMatrix}}r.fromObject=e;function A(n,i){return{position:i?.position||n.position,rotation:i?.rotation||n.rotation,scale:i?.scale||n.scale,hiddenMatrix:i?.hiddenMatrix||n.hiddenMatrix}}r.merge=A;function t(n,i){return{position:qr.isEqual(n.position,i.position)?null:i.position,rotation:qr.isEqual(n.rotation,i.rotation)?null:i.rotation,scale:qr.isEqual(n.scale,i.scale)?null:i.scale,hiddenMatrix:Qt.isEqual(n.hiddenMatrix,i.hiddenMatrix)?null:i.hiddenMatrix}}r.diff=t})(hn||(hn={}));var Ha;(e=>e.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]})(Ha||(Ha={}));var Qe;(e=>e.defaultData={states:new mA,events:new mA,visible:!0,raycastLock:!1,physics:null,...hn.identity,cloner:null})(Qe||(Qe={}));var hp;(e=>e.defaultData={type:"Empty",...Qe.defaultData})(hp||(hp={}));var xr;(e=>e.defaultData={type:"Mesh",...Qe.defaultData,...ji.defaultData})(xr||(xr={}));var ho;(e=>e.defaultData={...Qe.defaultData,...hn.identity,...hr.defaultData})(ho||(ho={}));var yp;(e=>{function o(A){return{...Qe.defaultData,...Fi.defaultData(A)}}e.defaultData=o})(yp||(yp={}));var gp;(r=>(r.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:Qt.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Ha.defaultData,states:new mA,events:new mA,cloner:null,...hr.defaultData},r.defaultMeshObject={name:"Rectangle",...Qe.defaultData,...xr.defaultData,geometry:er.defaultData("RectangleGeometry"),material:Pe.defaultTwoLayerData("phong","layer1","layer2")},r.defaultBooleanObject={name:"Boolean",...Qe.defaultData,...xr.defaultData,geometry:er.defaultData("BooleanGeometry"),material:Pe.defaultTwoLayerData("phong","layer1","layer2")},r.defaultTextObject={name:"Text",...Qe.defaultData,...xr.defaultData,geometry:er.defaultData("TextGeometry"),material:Pe.defaultTwoLayerData("phong","layer1","layer2")}))(gp||(gp={}));var vr;(r=>{function o(n,i){let a={name:i};return n.type==="Mesh"?(a.geometry={},"material"in n&&(a.material={layers:new NA}),"materials"in n&&(a.materials=n.materials.map(l=>({layers:new NA})))):Pt.is(n.type)&&(a.perspective={},a.orthographic={}),a}r.newEmpty=o;function e(n,i){if(i===void 0)return n;let a={...n};return"material"in a&&"material"in i&&i.material&&(a.material=wa(a.material,l=>{if(typeof l!="string")for(let[u,s]of Object.entries(i.material.layers)){let c=l.layers.data(u);c&&ue.patch(c,s)}}).data),a.materials&&i.materials&&(a.materials=wa(a.materials,l=>{for(let u=0;u<a.materials.length;u++){let s=i.materials[u];if(typeof s!="string")for(let[c,d]of Object.entries(s.layers)){let p=l[u]?.layers?.data(c);p&&ue.patch(p,d)}}}).data),a}function A(n,i){let a,l=[],u={orthographic:0,perspective:0,geometry:0};function s(c,d){for(let[p,f]of Object.entries(d.layers)){let{texture:m,...h}=f;if(m!==void 0&&Object.keys(m).length>0){let g={path:[...c,"layers",p,"texture"],props:m,type:0};l.push(g)}if(Object.keys(h).length>0){let g={path:[...c,"layers",p],props:h,type:0};l.push(g)}}}for(let[c,d]of Object.entries(i))if(c!=="name")if(c==="cloner")l.push(...Ri.toOps(d,["cloner"]));else if(c==="material")s(["material"],d);else if(c==="materials")for(let[p,f]of Object.entries(d))s(["materials",p],f);else if(u[c]===0){if(Object.keys(d).length>0){let p={path:[c],props:d,type:0};l.push(p)}}else a===void 0&&(a={path:[],props:{},type:0},l.push(a)),a.props[c]=d;return l}r.toOps=A;function t(n,i){if(i===void 0)return n;let a={...n};if(Object.assign(a,hn.merge(a,i)),Pt.is(n.type)){a.orthographic={...a.orthographic},a.perspective={...a.perspective};let l=i;l.orthographic?.zoom!==void 0&&(a.orthographic.zoom=l.orthographic.zoom),l.perspective?.zoom!==void 0&&(a.perspective.zoom=l.perspective.zoom),l.isUpVectorFlipped!==void 0&&(a.isUpVectorFlipped=l.isUpVectorFlipped),l.targetOffset!==void 0&&(a.targetOffset=l.targetOffset)}else if(n.type==="Mesh")i.geometry&&(a.geometry={...a.geometry},Object.assign(a.geometry,i.geometry)),(i.material||i.materials)&&(a=e(a,i)),a.cloner&&"cloner"in i&&Object.assign(a,{cloner:ln.merge(a.cloner,i.cloner)});else if(n.type==="Empty")a.cloner&&"cloner"in i&&Object.assign(a,{cloner:ln.merge(a.cloner,i.cloner)});else if(Vi.is(n.type)){let l=i;l.intensity!==void 0&&(a.intensity=l.intensity),l.color!==void 0&&(typeof l.color=="string"?a.color=l.color:a.color=ye.clone(l.color))}return a}r.patch=t})(vr||(vr={}));var yo;(e=>e.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,isTouchZoom:!0,orbitTouches:2,panTouches:3,resetHoverEffectOnPointerLeave:!0})(yo||(yo={}));var ps;(e=>e.defaultData={orbitControls:yo.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((A,t)=>{let r=0,n=0;return t<5?n=-30:t<10&&(n=30),t===0||t===10||t===5?r=30:(t===4||t===11||t===9)&&(r=-30),[120,[r,n],"show"]}),gameControlObject:null})(ps||(ps={}));function tr(o,e){return Object.setPrototypeOf(o,e),o}var vp=void 0!=="true";function bp(o){return Array.isArray(o)?o:[o]}function wp(o,e){let A=0;for(;A<o.length&&A<e.length;){if(o[A]<e[A])return-1;if(o[A]>e[A])return 1;A+=1}return A!==e.length?-1:A!==o.length?1:0}var fs;(A=>{function o(){let t={};return t["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},tr(t,NA.prototype)}A.defaultColors=o;function e(){return{materials:new NA,images:new NA,videos:new NA,colors:new NA,audios:new NA,fonts:new NA,penumbraSize:[.5,.5,.5]}}A.emptyData=e})(fs||(fs={}));import{MathUtils as ms}from"three";function Sp(o){o.layers.forEach(e=>{if(e.type==="depth"&&e.colorA!==void 0){let A=e.colorA,t=e.colorB,r=[[A.r,A.g,A.b,A.a],[t.r,t.g,t.b,t.a]],n=[0,1];for(let a=2;a<10;a++)r.push(r[1]),n.push(1);let i={...fo(oe(e),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,e.near),far:Math.max(0,e.far),colors:r,steps:n,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(e,i)}else if(e.type==="depth"&&e.gradientType===1&&(e.near<0||e.far<0)){let A={...oe(e),near:Math.max(e.near,0),far:Math.max(e.far,0)};Object.assign(e,A)}})}function hs(o,e){Object.values(o.shared.materials).forEach(A=>e(A))}function ys(o,e){o.scene.objects.traverse((A,t)=>{"materials"in t?t.materials.forEach(r=>{typeof r!="string"&&e(r)}):"material"in t&&typeof t.material!="string"&&e(t.material)})}function Hb(o){Object.assign(o.scene.publish,{orbitControls:{...yo.defaultData,...oe(o.scene.publish.orbitControls)}})}function Wb(o){Object.assign(o.scene.publish.settings,{video:{...ps.defaultData.settings.video,...oe(o.scene.publish.settings.video)}})}function qb(o){function e(A){if(A.layers){for(let t of Object.values(A.layers))if(t){for(let[r,n]of Object.entries(t))if((fp.includes(r)||typeof n=="boolean")&&delete t[r],r==="texture")for(let[i,a]of Object.entries(n))(mp.includes(i)||typeof a=="boolean")&&delete n[i]}}}o.scene.objects.traverse((A,t)=>{t.states.forEach(r=>{let n=r;n.material?e(n.material):n.materials&&n.materials.forEach(i=>{e(i)})})})}function Qb(o){o.scene.publish.withBackground=!0}function Yb(o){o.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function Xb(o){o.scene.objects.traverse((e,A)=>{let t=A.cloner;t&&(t.radial.scale=t.radial.scale.map(r=>r+1),t.linear.scale=t.linear.scale.map(r=>r+1))})}function Kb(o){o.scene.objects.traverse((e,A)=>{let t=A.geometry;t&&(t.type==="DodecahedronGeometry"||t.type==="IcosahedronGeometry")&&(t.detail=Math.round(t.detail))})}function Zb(o){o.scene.objects.traverse((e,A)=>{let t=o.scene.objects.unproxy().parent(e);if(t){let r=oe(o.scene.objects.data(t));r&&r.type==="Mesh"&&r.geometry.type==="BooleanGeometry"&&A.type==="Mesh"&&(A.visible=oe(A).booleanExclude!==!0)}})}function Jb(o){o.scene.objects.traverse((e,A)=>{if(A.type==="Mesh"){let t=A;A.geometry.type==="NonParametricGeometry"?t.material!==void 0&&delete t.material:t.materials!==void 0&&delete t.materials}})}function Tp(o){o.layers===void 0&&Object.assign(o,Pe.defaultTwoLayerData("lambert"))}function Wa(o){!o.layers||o.layers.forEach(e=>{if(e.type==="depth"&&e.colors.length===10){let A=[...e.colors];A.push(e.colors[9]);let t=[...e.steps];t.push(e.steps[9]);let r={...oe(e),colors:A,steps:t};Object.assign(e,r)}})}function _b(o){o.scene.objects.traverse((e,A)=>{A.type==="Mesh"&&(A.geometry.type==="BooleanGeometry"||A.geometry.type==="SubdivGeometry")&&(A.geometry.phongAngle=35)})}function Op(o){o.scene.objects.traverse((e,A)=>{"materials"in A?A.materials.forEach(t=>{typeof t!="string"&&Wa(t)}):"material"in A&&typeof A.material!="string"&&Wa(A.material)}),Object.values(o.shared.materials).forEach(e=>Wa(e))}function $b(o){o.scene.environment.ambientLight.softShadows=!1,o.scene.environment.ambientLight.softShadowQuality="low",o.scene.objects.traverse((e,A)=>{(A.type==="DirectionalLight"||A.type==="SpotLight")&&(A.shadowResolution=1024,A.shadowRadius=1,A.depth=1e5)}),o.shared.penumbraSize=new Array(5).fill(.5)}function Aw(o){o.shared.audios=tr({},NA.prototype)}function ew(o){o.shared.videos=tr({},NA.prototype)}function tw(o){let e=o.shared.materials;Object.entries(e).forEach(([A,t])=>{if(!t.layers){let r={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"phong",alpha:.6,visible:!0,mode:0,specular:{r:.2,g:.2,b:.2},shininess:5},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(e,{[A]:r})}})}function rw(o){Object.entries(oe(o.shared.images)).filter(t=>t[1].asset===!1).map(t=>t[0]).forEach(t=>{delete o.shared.images[t]}),Object.entries(oe(o.shared.audios)).filter(t=>t[1].asset===!1).map(t=>t[0]).forEach(t=>{delete o.shared.audios[t]})}function ow(o){o.scene.publish.settings.web.preload=!1}function Np(o){o.layers&&o.layers.forEach(e=>{e.type==="depth"&&e.num!==void 0&&(e.colors=e.colors.slice(0,e.num),e.steps=e.steps.slice(0,e.num),delete e.num)})}function nw(o){o.shared.fonts=tr({},NA.prototype)}function iw(o){return o.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(A=>A.charAt(0).toUpperCase()+A.slice(1)).join(" ")}function sw(o){let e=[];o.scene.objects.traverse((A,t)=>{let r=t;if(r.type==="TextFrame"){let n=Pe.defaultTwoLayerData("phong"),i=typeof r.color=="string"?o.shared.colors[r.color]:r.color;n.layers[1].data.color={r:i.r,g:i.g,b:i.b},n.layers[1].data.alpha=r.alpha;let a=iw(r.font);o.shared.fonts[a]===void 0&&(o.shared.fonts[a]={name:a});let l={name:r.name,...Qe.defaultData,...xr.defaultData,flatShading:!1,wireframe:!1,geometry:{...er.defaultData("TextGeometry"),width:r.width,height:r.height,font:a,depth:0,horizontalAlign:r.horizontalAlign,verticalAlign:r.verticalAlign,fontSize:r.fontSize*1.40625,lineHeight:r.lineHeight/1.40625,letterSpacing:r.letterSpacing-1,text:r.text,textTransform:r.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:n,states:oe(r.states),events:oe(r.events),visible:r.visible,raycastLock:r.raycastLock,position:r.position,rotation:r.rotation,scale:r.scale,hiddenMatrix:r.hiddenMatrix},u=oe(o.scene.objects).parent(A);o.scene.objects.insertAfter(u??null,A,[{id:A+"new",data:l,children:[]}]),e.push(A)}}),e.forEach(A=>{o.scene.objects.delete(A)})}function aw(o){let e={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};o.scene.objects.traverse((A,t)=>{t.events.forEach(r=>{if(!!e[Number(r.type)])if(Object.assign(r,{type:e[Number(r.type)]}),r.type==="Audio"&&"audioEvent"in r&&(Object.assign(r,{playAudio:r.audioEvent}),delete r.audioEvent),r.type==="GameControl")Object.assign(r,{gameActions:{idle:new mA,move:new mA,jump:new mA}});else{let n=new mA;Object.assign(r,{actions:n}),(r.type==="MouseDown"||r.type==="MouseUp"||r.type==="KeyDown"||r.type==="KeyUp")&&"url"in r&&n.push({fi:0,id:ms.generateUUID(),data:{type:"Link",url:r.url,delay:0}}),"targets"in r&&(r.targets.forEach((i,a,l)=>{let u={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},s={easing:i.easing,duration:i.duration};i.easing===6?Object.assign(s,fo(i,"mass","stiffness","damping","velocity")):i.easing===5&&Object.assign(s,{control1:{...i.control1},control2:{...i.control2}});let c={repeat:i.repeat?-1:0,delay:i.delay,delayDirection:i.delayDirection,direction:i.cycle&&i.rewind?"pingpong-rewind":i.cycle?"pingpong":"normal"},d={state:i.state,...c,...s},p={allowSlerp:!0,type:"Transition",object:i.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new mA({fi:0,id:ms.generateUUID(),data:u},{fi:1,id:ms.generateUUID(),data:d})};n.push({fi:l,id:a,data:p})}),delete r.targets)}})})}function lw(o){o.scene.objects.traverse((e,A)=>{function t(r,n){let i=new mA,a=[];if(A.events.forEach((l,u,s)=>{if(l.type==="Audio"&&l.trigger===n){let c;a.push(u),l.interaction==="play"?c={...fo(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")&&(c={...fo(l,"interaction","delay","object","playAudio"),type:"Audio"}),c&&i.push({fi:s,id:u,data:c})}}),a.forEach(l=>A.events.delete(l)),i.length){let l=A.events.find(u=>u.type===r)?.data;l?"actions"in l&&l.actions.insertBefore(null,i):A.events.insertBefore(null,[{id:ms.generateUUID(),data:{type:r,actions:i}}])}}t("Start","start"),t("MouseDown","mouseDown"),t("MouseUp","mouseUp"),t("KeyDown","keyDown"),t("KeyUp","keyUp")})}function Pp(o){let e=o.layers.find(A=>A.type==="light")?.data;if(e?.category==="basic"){let A=ue.defaultData("light","phong"),t=e;Object.assign(t,A),t.visible=!1}}function cw(o){hs(o,Pp),ys(o,Pp)}function uw(o){o.scene.objects.traverse((e,A)=>{A.type==="Mesh"&&A.geometry.type==="SubdivGeometry"&&(A.geometry.scaleBaked||(A.geometry.scaleBaked=[1,1,1]))})}function dw(o){o.scene.objects.traverse((e,A)=>{(A.type==="Empty"||A.type==="Mesh")&&A.cloner&&!A.cloner.randomnessObject&&!A.cloner.toObject&&!A.cloner.randomness&&(A.cloner={...A.cloner,toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}})})}var Cp=27;function Ip(o){let e=o.schema??0;e!==Cp&&(console.warn("updating from ",e,"to ",Cp),e<1&&(ys(o,Sp),hs(o,Sp),o.schema=1),e<2&&(Hb(o),o.schema=2),e<3&&(qb(o),o.schema=3),e<4&&(Qb(o),o.schema=4),e<5&&(Yb(o),o.schema=5),e<6&&(Xb(o),o.schema=6),e<7&&(Kb(o),o.schema=7),e<8&&(o.schema=8),e<9&&(Op(o),o.schema=9),e<10&&(_b(o),o.schema=10),e<11&&($b(o),o.schema=11),e<12&&(Op(o),o.schema=12),e<13&&(Aw(o),o.schema=13),e<14&&(tw(o),o.schema=14),e<15&&(rw(o),o.schema=15),e<16&&(ow(o),o.schema=16),e<17&&(ys(o,Np),hs(o,Np),o.schema=17),e<18&&(ys(o,Tp),hs(o,Tp),o.schema=18),e<19&&(Wb(o),o.schema=19),e<20&&(nw(o),sw(o),o.schema=20),e<21&&(aw(o),lw(o),o.schema=21),e<22&&(cw(o),o.schema=22),e<23&&(uw(o),o.schema=23),e<24&&(dw(o),o.schema=24),(e<25||o.shared.videos===void 0)&&(ew(o),e<25&&(o.schema=25)),e<26&&(Zb(o),o.schema=26),e<27&&(Jb(o),o.schema=27))}var gs;(e=>e.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(gs||(gs={}));var Yo=fa(Mp());import{Object3D as ST,Vector3 as Ie,Euler as uc,MathUtils as Dm,Matrix4 as Vr}from"three";var pw=.5*(Math.sqrt(3)-1),gn=(3-Math.sqrt(3))/6,fw=1/3,ut=1/6,wG=(Math.sqrt(5)-1)/4,SG=(5-Math.sqrt(5))/20,xn=o=>Math.floor(o)|0,Bp=new Float64Array([1,1,-1,1,1,-1,-1,-1,1,0,-1,0,1,0,-1,0,0,1,0,-1,0,1,0,-1]),Qa=new Float64Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]);function xs(o=Math.random){let e=Dp(o),A=new Float64Array(e).map(r=>Bp[r%12*2]),t=new Float64Array(e).map(r=>Bp[r%12*2+1]);return function(n,i){let a=0,l=0,u=0,s=(n+i)*pw,c=xn(n+s),d=xn(i+s),p=(c+d)*gn,f=c-p,m=d-p,h=n-f,g=i-m,x,w;h>g?(x=1,w=0):(x=0,w=1);let v=h-x+gn,b=g-w+gn,N=h-1+2*gn,S=g-1+2*gn,y=c&255,P=d&255,O=.5-h*h-g*g;if(O>=0){let L=y+e[P],B=A[L],k=t[L];O*=O,a=O*O*(B*h+k*g)}let C=.5-v*v-b*b;if(C>=0){let L=y+x+e[P+w],B=A[L],k=t[L];C*=C,l=C*C*(B*v+k*b)}let T=.5-N*N-S*S;if(T>=0){let L=y+1+e[P+1],B=A[L],k=t[L];T*=T,u=T*T*(B*N+k*S)}return 70*(a+l+u)}}function Ep(o=Math.random){let e=Dp(o),A=new Float64Array(e).map(n=>Qa[n%12*3]),t=new Float64Array(e).map(n=>Qa[n%12*3+1]),r=new Float64Array(e).map(n=>Qa[n%12*3+2]);return function(i,a,l){let u,s,c,d,p=(i+a+l)*fw,f=xn(i+p),m=xn(a+p),h=xn(l+p),g=(f+m+h)*ut,x=f-g,w=m-g,v=h-g,b=i-x,N=a-w,S=l-v,y,P,O,C,T,L;b>=N?N>=S?(y=1,P=0,O=0,C=1,T=1,L=0):b>=S?(y=1,P=0,O=0,C=1,T=0,L=1):(y=0,P=0,O=1,C=1,T=0,L=1):N<S?(y=0,P=0,O=1,C=0,T=1,L=1):b<S?(y=0,P=1,O=0,C=0,T=1,L=1):(y=0,P=1,O=0,C=1,T=1,L=0);let B=b-y+ut,k=N-P+ut,X=S-O+ut,eA=b-C+2*ut,nA=N-T+2*ut,U=S-L+2*ut,q=b-1+3*ut,Q=N-1+3*ut,j=S-1+3*ut,E=f&255,G=m&255,D=h&255,H=.6-b*b-N*N-S*S;if(H<0)u=0;else{let R=E+e[G+e[D]];H*=H,u=H*H*(A[R]*b+t[R]*N+r[R]*S)}let Y=.6-B*B-k*k-X*X;if(Y<0)s=0;else{let R=E+y+e[G+P+e[D+O]];Y*=Y,s=Y*Y*(A[R]*B+t[R]*k+r[R]*X)}let W=.6-eA*eA-nA*nA-U*U;if(W<0)c=0;else{let R=E+C+e[G+T+e[D+L]];W*=W,c=W*W*(A[R]*eA+t[R]*nA+r[R]*U)}let F=.6-q*q-Q*Q-j*j;if(F<0)d=0;else{let R=E+1+e[G+1+e[D+1]];F*=F,d=F*F*(A[R]*q+t[R]*Q+r[R]*j)}return 32*(u+s+c+d)}}function Dp(o){let A=new Uint8Array(512);for(let t=0;t<512/2;t++)A[t]=t;for(let t=0;t<512/2-1;t++){let r=t+~~(o()*(256-t)),n=A[t];A[t]=A[r],A[r]=n}for(let t=256;t<512;t++)A[t]=A[t-256];return A}import{Triangle as mw}from"three";var Ye=new mw,vs=class{constructor(e){this.weightAttribute=null;let A=e.geometry;if(!A.isBufferGeometry||A.attributes.position.itemSize!==3)throw new Error("THREE.MeshSurfaceSampler: Requires BufferGeometry triangle mesh.");A.index&&(A=A.toNonIndexed()),this.geometry=A,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.distribution=null}build(){let e=this.positionAttribute,A=new Float32Array(e.count/3);for(let r=0;r<e.count;r+=3){let n=1;Ye.a.fromBufferAttribute(e,r),Ye.b.fromBufferAttribute(e,r+1),Ye.c.fromBufferAttribute(e,r+2),n*=Ye.getArea(),A[r/3]=n}this.distribution=new Float32Array(e.count/3);let t=0;for(let r=0;r<A.length;r++)t+=A[r],this.distribution[r]=t;return this}setRandomGenerator(e){return this.randomFunction=e,this}sample(e,A){if(this.distribution){let t=this.distribution[this.distribution.length-1],r=this.binarySearch(this.randomFunction()*t);return this.sampleFace(r,e,A)}}binarySearch(e){if(!this.distribution)return 0;let A=this.distribution,t=0,r=A.length-1,n=-1;for(;t<=r;){let i=Math.ceil((t+r)/2);if(i===0||A[i-1]<=e&&A[i]>e){n=i;break}else e<A[i]?r=i-1:t=i+1}return n}sampleFace(e,A,t){let r=this.randomFunction(),n=this.randomFunction();return r+n>1&&(r=1-r,n=1-n),Ye.a.fromBufferAttribute(this.positionAttribute,e*3),Ye.b.fromBufferAttribute(this.positionAttribute,e*3+1),Ye.c.fromBufferAttribute(this.positionAttribute,e*3+2),A.set(0,0,0).addScaledVector(Ye.a,r).addScaledVector(Ye.b,n).addScaledVector(Ye.c,1-(r+n)),Ye.getNormal(t),this}};import{Object3D as yw}from"three";import{Object3D as hw,Matrix4 as Ya}from"three";var go=o=>class extends o{constructor(){super(...arguments);this.hiddenMatrix=new Ya}isDescendantOf(t){t instanceof hw&&(t=t.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===t)return!0;r=r.parent}return!1}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(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,t=!0);for(let r of this.children)r.updateMatrixWorld(t)}updateWorldMatrix(t,r){let n=this.parent;if(t&&n!==null&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),r)for(let i of this.children)i.updateWorldMatrix(!1,!0)}attach(t,r){this.updateWorldMatrix(!0,!1);let n=new Ya().copy(this.matrixWorld).invert();return t.parent!==null&&(t.parent.updateWorldMatrix(!0,!1),n.multiply(t.parent.matrixWorld)),"hiddenMatrix"in t&&t.hiddenMatrix instanceof Ya?t.hiddenMatrix.premultiply(n):t.applyMatrix4(n),t.updateWorldMatrix(!1,!1),this.add(t),r!==void 0&&(this.children.pop(),this.children.splice(r,0,t)),this}};var Xa=class extends go(yw){},gw=o=>o.type==="Mesh",Bt=class extends Xa{constructor(A){super();this.object=A;this.matrixAutoUpdate=!0}expand(){let A=0,t=this.object.entityChildren(A);for(;t;){let r=this.children[A];r?.object!==t&&(r&&this.remove(r),r=new Bt(t),this.add(r),r.matrixAutoUpdate=!1,r.matrix=t.matrix,r.hiddenMatrix=t.hiddenMatrix),r.expand(),A+=1,t=this.object.entityChildren(A)}for(;this.children.length>A;)this.remove(this.children[A])}get visible(){return this.object.visible||this.object.dataPatched.cloner?.hideBase===!0}set visible(A){}get castShadow(){return this.object.castShadow}set castShadow(A){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(A){}get isMesh(){return gw(this.object)}get isLight(){return this.object.isLight}get layers(){return this.object.layers}set layers(A){}get isCamera(){return!1}get geometry(){if(this.object.geometry)return this.object.geometry}get material(){if(this.object.material)return this.object.material}};import{Box3 as ZS,BufferGeometry as JS,MeshBasicMaterial as _S}from"three";import{Matrix4 as XS,Mesh as KS}from"three";import{Box3 as xw,Line3 as vw,Matrix4 as Ka,Vector3 as Ge}from"three";var br=new Ge,wr=new Ge,xo=new Ka,Rp=[new Ge(-1,1,1),new Ge(-1,-1,1),new Ge(1,-1,1),new Ge(1,1,1),new Ge(-1,1,-1),new Ge(-1,-1,-1),new Ge(1,-1,-1),new Ge(1,1,-1)],bw=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],ww=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]],Gp=(o,e,A)=>{o.updateEntityBoxSize(br,wr),xo.copy(e).multiply(o.matrixWorld),wr.x===0&&wr.y===0&&wr.z===0?A.push(new Ge(br.x,br.y,br.z).applyMatrix4(xo)):Rp.forEach(t=>{A.push(t.clone().multiply(wr).add(br).applyMatrix4(xo))})},vn=class extends xw{constructor(){super(...arguments);this.matrix=new Ka;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(A){return super.copy(A),this.matrix.copy(A.matrix),this.vertices=A.vertices.map(t=>t.clone()),this.faces=A.faces.map(t=>t.clone()),this.edges=A.edges.map(t=>t.clone()),this.centerEdges=A.centerEdges.map(t=>t.clone()),this}setFromObjectSize(A,t=!1){A.updateWorldMatrix(!1,t),this.makeEmpty(),this.matrix.copy(A.matrixWorld);let r=new Ka().copy(A.matrixWorld).invert();return this.expandByObjectSize(A,r,t)}expandByObjectSize(A,t,r=!1){let n=[];return r===!0?A.traverseEntity(i=>{i.visible&&Gp(i,t,n)}):Gp(A,t,n),this.setFromPoints(n)}getCenter(A){return A=super.getCenter(A),A.applyMatrix4(this.matrix),A}getPositionToCenter(A){return A=super.getCenter(A),A.applyMatrix4(xo.copy(this.matrix).setPosition(0,0,0)),A}computeVertices(){this.getSize(wr).multiplyScalar(.5),this.getCenter(br),xo.copy(this.matrix).setPosition(br),this.vertices=Rp.map(A=>A.clone().multiply(wr).applyMatrix4(xo))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=bw.map(([A,t])=>new vw(this.vertices[A],this.vertices[t])),this.centerEdges=this.edges.map(A=>A.getCenter(new Ge))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=ww.map(([A,t])=>this.vertices[A].clone().add(this.vertices[t]).multiplyScalar(.5))}};var rr={Cloner:()=>{},changeEntityProptotype:()=>{}};var Re;(e=>{function o(A){return A&&A.__isEntity}e.is=o})(Re||(Re={}));var Et=o=>Re.is(o),Ve=o=>class extends go(o){constructor(){super(...arguments);this.raycastLock=!1;this.scaleLock=!1;this.stateSelection=null;this.currentState=null;this.currentTransitionAction=null;this._singleBBox=new vn;this._recursiveBBox=new vn;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0}get __isEntity(){return!0}entityChildren(t){let r=this.children[t];if(Re.is(r))return r}get overrideDataCleanup(){if(!(this.overrideData&&Object.keys(this.overrideData).length===1&&"descendants"in this.overrideData))return this.overrideData}super_Entity(t,r){typeof t=="string"&&(this.uuid=t),this.identity=t,this.data=r,this.matrixAutoUpdate=!1,this.dataPatched=this.data}changeSelectedState(t,r,n=!1){if(!(this.data.states.length===0&&!n)){for(let i of this.data.states)vr.toOps(this.data,i.data).forEach(l=>{let u=vi.replaceProps(l,this.data);this.updateByPatchedOp(u,this.data,r)});if(t!==null){let i=this.data.states.data(t);i&&(this.dataPatched=vr.patch(this.data,i),vr.toOps(this.data,i).forEach(l=>{this.updateByPatchedOp(l,this.dataPatched,r)}))}else this.dataPatched=this.data;n&&this.updateTransformState(this.dataPatched),this.stateSelection=t}}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}updateEntityBoxSize(t,r){t.setScalar(0),r.setScalar(0)}resetBBoxNeedsUpdateSelf(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0}resetBBoxNeedsUpdate(){this.resetBBoxNeedsUpdateSelf(),this.traverseAncestors(t=>{Et(t)&&t.resetBBoxNeedsUpdateSelf()}),this.traverseEntity(t=>{t.resetBBoxNeedsUpdateSelf()})}find(t){let r;return this.traverseEntity(n=>{n.uuid===t&&(r=n)}),r}traverseSortNextHelper(){let t=this.parent;if(t){let r=t.children,n=r.indexOf(this)+1;if(Re.is(r[n]))return r[n];if(Re.is(t))return t.traverseSortNextHelper()}}sortNext(){let t=this.children;return this.children.length>0&&Re.is(this.children[0])?t[0]:this.traverseSortNextHelper()}goUp(t){let r=this;for(;t>0&&r!==null;)r=r.parent,t-=1;return r}hasAnccestorOrSelf(t){return this===t||this.hasAnccestor(t)}hasAnccestor(t){let r=this.parent;for(;r;){if(t===r)return!0;r=r.parent}return!1}countToAccestor(t){let r=0,n=this;for(;n!==t;){if(n===null)return-1;n=n.parent,r+=1}return r}traverseEntityAncestors(t){this.traverseAncestors(r=>{Re.is(r)&&t(r)})}traverseEntity(t,r=0){if(t(this,r)!==!0)for(let i of this.children)Et(i)&&i.traverseEntity(t,r+1)}traverseVisibleEntity(t){t(this);for(let r of this.children)Et(r)&&r.visible&&r.traverseVisibleEntity(t)}updateMatrix(){super.updateMatrix(),this.dispatchEvent({type:"updateMatrix"})}copy(t,r=!0){return super.copy(t,!1),this.raycastLock=t.raycastLock,this.scaleLock=t.scaleLock,this.hiddenMatrix.copy(t.hiddenMatrix),this}hasEntityChild(){return this.children.some(t=>Et(t))}isAncestorOf(t){if(this.uuid===t)return!1;let r=!1;return this.traverseEntity(n=>{n.uuid===t&&(r=!0)}),r}toObjectTransformState(t=[]){this.updateWorldMatrix(!0,!1);let r={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return po(r,t)}updateTransformState(t){let r=!1;return t.position&&(this.position.fromArray(t.position),r=!0),t.rotation&&(this.rotation.fromArray(t.rotation),r=!0),t.scale&&(r=!0,this.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&(r=!0,this.hiddenMatrix.fromArray(t.hiddenMatrix??Qt.identity)),r&&(this.updateMatrix(),this.resetBBoxNeedsUpdate(),this.invalidateClonerTransform(this),this.traverseEntityAncestors(n=>{n.invalidateClonerTransform(this)})),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&this.updateWorldMatrix(!1,!0),r}dispose(){this.cloner&&this.cloner.removeFromParent()}disposeRecursively(){this.dispose(),this.children.forEach(t=>{Re.is(t)&&t.disposeRecursively()})}toState(t=[]){let r={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(t)};return po(r,t)}updateByOp(t,r,n){this.data=r;let i=t,a=Ut(t.path,["states","*"]);if(a!==null){if(t.type===0){let[l]=a;if(this?.stateSelection===l){let u={...t.props};if(Object.values(t.props).some(s=>s===void 0)){let s=this.data;if(s!==void 0){let c=Me.zoom(s,t.path.slice(2));if(c)for(let d in t.props)t.props[d]===void 0&&d in c&&(u[d]=c[d])}}i={...t,props:u,path:t.path.slice(2)}}}}else if(t.type===0){let l=this.stateSelection?this.data.states.data(this.stateSelection):void 0;if(l!==void 0){if(t.props.name!==void 0&&l.name){let{name:s,...c}=l;l=c}if(t.props.material!==void 0&&"material"in l){let{material:s,...c}=l;l=c}let u=Me.removeOverridden(t.path,t.props,l);i={...t,props:u}}}this.updateByPatchedOpBase(i,vr.patch(this.data,this.stateSelection?this.data.states.data(this.stateSelection):void 0),n)}updateByPatchedOpBase(t,r,n){if(this.dataPatched=r,t.path.length===0&&t.type===0)t.props.type!==void 0&&!Pt.is(t.props.type)&&rr.changeEntityProptotype(this,r,n);else if(t.path.length===1&&t.path[0]==="geometry"&&t.type===0&&"type"in t.props){rr.changeEntityProptotype(this,r,n);for(let i of this.children)Re.is(i)&&i.updateVisible()}this.updateByPatchedOp(t,r,n)}updateByPatchedOp(t,r,n){if(t.path.length===0&&t.type===0&&this.updateState(t.props,n),Ut(t.path,["cloner"])!==null){let i=re.drop(t,1);i.path.length===0&&i.type===0&&i.props.disabled===!0?this.setFromClonerState(null,n):this.cloner?this.cloner.updateState(r.cloner,n.scene):(this.setFromClonerState(r.cloner,n),this.expandCloner(n.scene)),this.updateVisible()}}updateVisible(){this.visible=this.dataPatched.visible&&this.dataPatched.cloner?.hideBase!==!0}updateState_Entity(t,r){t.name!==void 0&&(this.name=t.name),t.raycastLock!==void 0&&(this.raycastLock=t.raycastLock),t.visible!==void 0&&(this.updateVisible(),this.resetBBoxNeedsUpdate()),"cloner"in t&&t.cloner!==void 0&&(this.setFromClonerState(t.cloner,r),this.updateVisible()),this.updateTransformState(t)}get attachedSurfaceCloners(){return this.children.filter(t=>t instanceof rr.Cloner&&t.parameters.type==="toObject")}setFromClonerState(t,r){t===null||t.disabled?(this.cloner&&this.cloner.removeFromParent(),this.cloner=void 0):(this.cloner===void 0&&(this.cloner=new rr.Cloner(this,t),r.scene.addPendingExpandCloner(this)),this.cloner.updateState(t,r.scene))}expandCloner(t){this.cloner&&this.cloner.expandClones(t)}invalidateClonerTransform(t){this.cloner&&this.cloner.invalidateTransform(t)}};import{ConeGeometry as Ow}from"three";import{BufferGeometry as Sw,CylinderGeometry as Tw,Float32BufferAttribute as Za,Vector2 as Xe,Vector3 as bs}from"three";var Fp=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},o.parameters),t=A.width/2,r=A.radiusTop??t,n=A.radiusBottom??t;return r===n?(r=t,n=t):r>n?(r=t,n=n*t/r):(r=r*t/n,n=t),{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width),radiusTop:r,radiusBottom:n})}}static build(o){let{width:e,depth:A,height:t,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:a,thetaLength:l,radiusTop:u,radiusBottom:s,cornerRadius:c,cornerSegments:d,hollow:p}=o.parameters,f;return c||p?f=new bn(u,s,t,r,n,i,a,l*Math.PI/180,c,c,d,p):f=new Tw(u,s,t,r,n,i,a,l*Math.PI/180),f.scale(1,1,A/e),Object.assign(f,{userData:{...o,type:"CylinderGeometry"}})}};function or(o,e,A){A.x=o.x*e.x,A.y=o.y,A.z=o.x*e.y}function Vp(o){return new Xe(o.y,-o.x)}var bn=class extends Sw{constructor(e,A,t,r,n,i,a,l,u,s,c,d,p=!1){super(),this.type="RoundedCylinderBufferGeometry",e=e!==void 0?e:1,A=A!==void 0?A:1,t=t||1,r=Math.floor(r)||8,n=Math.floor(n)||1,i=i!==void 0?i:!1,a=a!==void 0?a:0,l=l!==void 0?l:Math.PI*2,i&&(u=0,s=0);let f=[],m=[],h=[],g=[],x=0,w=t/2,v=new bs,b=new bs;p&&e==0&&(e=u),p&&A==0&&(A=s);let N=new Xe(e,w),S=new Xe(A,-w),y=null,P=null,O=null,C=null,T=N.clone().sub(S),L=0,B=0,k=0;d>0&&(L=Math.min(e,A)*(1-d),B=e-L,k=A-L);let X=N.clone();X.x-=L;let eA=Math.PI-T.angle(),nA=T.angle(),U=Math.tan(nA/2),q=Math.tan(eA/2),Q=U+q,j=d?Q:q,E=d?Q:U;if(u=Math.min(u,(e-B)/j,T.length()/Q),s=Math.min(s,(A-k)/E,T.length()/Q),u>0){let F=u/U;y=N.clone().sub(new Xe(F,u)),d&&(O=y.clone(),O.x-=L-Q*u),N.sub(T.clone().setLength(F))}if(s>0){let F=s/q;P=S.clone().sub(new Xe(F,-s)),S.add(T.clone().setLength(F)),d&&(C=P.clone(),C.x-=L-Q*s,X.sub(T.clone().setLength(F)))}T=N.clone().sub(S);let G=T.length()<.5,D=[];for(let F=0;F<=r;F++){let R=[],z=F/r,$=z*l+a,rA=new Xe(Math.sin($),Math.cos($));C&&P?(H(R,z,rA,eA,s,C,-1,!0),H(R,z,rA,nA,s,P,-1,!1)):P?(Y(R,rA,P.x,0,-1),H(R,z,rA,nA,s,P,-1,!1)):i||Y(R,rA,A,k,-1);let iA=Vp(T).normalize();if(or(iA,rA,v),!G)for(let tA=0;tA<=n;tA++){let AA=tA/n,_=T.clone().multiplyScalar(AA).add(S);or(_,rA,b),m.push(b.x,b.y,b.z),h.push(v.x,v.y,v.z),g.push(z,.5+b.y/t),R.push(x++)}if(O&&y?(H(R,z,rA,eA,u,y,1,!1),H(R,z,rA,nA,u,O,1,!0)):y?(H(R,z,rA,eA,u,y,1,!1),Y(R,rA,y.x,0,1)):i||Y(R,rA,e,B,1),d&&!G){let tA=Vp(T).multiplyScalar(-1).normalize();or(tA,rA,v);for(let AA=0;AA<=n;AA++){let _=AA/n,Z=T.clone().multiplyScalar(-_).add(X);or(Z,rA,b),m.push(b.x,b.y,b.z),h.push(v.x,v.y,v.z),g.push(z,.5+b.y/t),R.push(x++)}}d&&!i&&R.push(R[0]),D.push(R)}for(let F=0;F<D.length-1;F++)for(let R=0;R<D[0].length-1;R++){if(i&&d&&R==n)continue;let z=D[F][R],$=D[F+1][R],rA=D[F+1][R+1],iA=D[F][R+1],tA=m[rA*3+0],AA=m[rA*3+2];f.push(z,$,iA),(tA!=0||AA!=0)&&f.push($,rA,iA)}l<Math.PI*2&&(W(-1,D[0],a),W(1,D[D.length-1],a+l)),this.setIndex(f),this.setAttribute("position",new Za(m,3)),this.setAttribute("normal",new Za(h,3)),this.setAttribute("uv",new Za(g,2));function H(F,R,z,$,rA,iA,tA,AA){for(let _=0;_<c+1;_++){let Z=_/c,pA=tA<0?Z:1-Z;AA&&(pA-=1),pA*=$;let uA=new Xe(Math.sin(pA),Math.cos(pA)*tA),yA=uA.clone().multiplyScalar(rA).add(iA);or(yA,z,b),m.push(b.x,b.y,b.z),or(uA,z,v),h.push(v.x,v.y,v.z),g.push(R,.5+b.y/t),F.push(x++)}}function Y(F,R,z,$,rA){let iA=new bs,tA=new Xe,AA=[z,$];rA<0&&AA.reverse();for(let _ of AA)tA.set(_,w*rA),or(tA,R,iA),m.push(iA.x,iA.y,iA.z),h.push(0,rA,0),g.push(.5,.5),F.push(x++)}function W(F,R,z){let $=new Xe(Math.sin(z),Math.cos(z)),rA=new Xe(-Math.cos(z),Math.sin(z)),iA=new bs,tA=F<0?(Z,pA,uA)=>f.push(Z,pA,uA):(Z,pA,uA)=>f.push(Z,uA,pA),AA=new Xe((e+A+B+k)/4,0);or(AA,$,iA),m.push(iA.x,iA.y,iA.z),h.push(rA.x,0,rA.y),g.push(.5,.5);let _=x++;for(let Z of R){let pA=m.slice(Z*3,Z*3+3);m.push(...pA),h.push(rA.x,0,rA.y);let uA=g.slice(Z*2,Z*2+2);g.push(...uA),x++}for(let Z=_+1;Z<x-1;Z++)tA(_,Z,Z+1);tA(_,x-1,_+1)}}};var jp=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,depth:A,height:t,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:a,thetaLength:l,cornerRadiusTop:u,cornerRadiusBottom:s,cornerSegments:c}=o.parameters,d;return u>0||s>0||l<360?d=new bn(0,e/2,t,r,n,i,a,l*Math.PI/180,u,s,c,0,!0):d=new Ow(e/2,t,r,n,i),d.scale(1,1,A/e),Object.assign(d,{userData:{...o,type:"ConeGeometry"}})}};import{BoxGeometry as Nw,BufferGeometry as Pw,Float32BufferAttribute as Ja,Vector3 as wn}from"three";var zp=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,height:A,depth:t,widthSegments:r,heightSegments:n,depthSegments:i,cornerRadius:a,cornerSegments:l}=o.parameters,u;return a==0?u=new Nw(e,A,t,r,n,i):u=new $a(e,A,t,r,n,i,a,l),Object.assign(u,{userData:{...o,type:"CubeGeometry"}})}},_a=Math.PI/2,$a=class extends Pw{constructor(e=1,A=1,t=1,r=1,n=1,i=1,a=0,l=4){super(),this.type="BoxGeometry";let u=this;r=Math.floor(r),n=Math.floor(n),i=Math.floor(i),l=Math.floor(l),a=Math.min(a,e/2,A/2,t/2);let s=[],c=[],d=[],p=[],f=0,m=0;h("z","y","x",-1,-1,t,A,e,i,n,0),h("z","y","x",1,-1,t,A,-e,i,n,1),h("x","z","y",1,1,e,t,A,r,i,2),h("x","z","y",1,-1,e,t,-A,r,i,3),h("x","y","z",1,-1,e,A,t,r,n,4),h("x","y","z",-1,-1,e,A,-t,r,n,5),a>0&&(g("z","y","x",-1,-1,1,t,A,e,i,0),g("z","y","x",1,-1,-1,t,A,e,i,1),g("z","y","x",-1,1,-1,t,A,e,i,1),g("z","y","x",1,1,1,t,A,e,i,0),g("x","y","z",-1,-1,-1,e,A,t,r,0),g("x","y","z",1,-1,1,e,A,t,r,1),g("x","y","z",-1,1,1,e,A,t,r,0),g("x","y","z",1,1,-1,e,A,t,r,1),g("y","x","z",-1,-1,1,A,e,t,n,0),g("y","x","z",1,-1,-1,A,e,t,n,1),g("y","x","z",1,1,1,A,e,t,n,1),g("y","x","z",-1,1,-1,A,e,t,n,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(s),this.setAttribute("position",new Ja(c,3)),this.setAttribute("normal",new Ja(d,3)),this.setAttribute("uv",new Ja(p,2));function h(w,v,b,N,S,y,P,O,C,T,L){let B=(y-2*a)/C,k=(P-2*a)/T,X=y/2-a,eA=P/2-a,nA=O/2,U=C+1,q=T+1,Q=0,j=0,E=new wn;for(let G=0;G<q;G++){let D=G*k-eA;for(let H=0;H<U;H++){let Y=H*B-X;E[w]=Y*N,E[v]=D*S,E[b]=nA,c.push(E.x,E.y,E.z),E[w]=0,E[v]=0,E[b]=O>0?1:-1,d.push(E.x,E.y,E.z),p.push(H/C),p.push(1-G/T),Q+=1}}for(let G=0;G<T;G++)for(let D=0;D<C;D++){let H=f+D+U*G,Y=f+D+U*(G+1),W=f+(D+1)+U*(G+1),F=f+(D+1)+U*G;s.push(H,Y,F),s.push(Y,W,F),j+=6}u.addGroup(m,j,L),m+=j,f+=Q}function g(w,v,b,N,S,y,P,O,C,T,L){let B=(P-2*a)/T,k=P/2-a,X=O/2-a,eA=C/2,nA=T+1,U=0,q=0,Q=new wn,j=new wn;for(let E=0;E<l+1;E++){let G=E/l*_a,D=Math.sin(G)*a,H=(1-Math.cos(G))*a,Y=Math.sin(G),W=Math.cos(G);Q[v]=(X+D)*S,Q[b]=(eA-H)*y,j[w]=0,j[v]=Y*Math.sign(Q[v]),j[b]=W*Math.sign(Q[b]);for(let F=0;F<nA;F++){let R=F*B-k;Q[w]=R*N,c.push(Q.x,Q.y,Q.z),d.push(j.x,j.y,j.z),p.push(F/T),p.push(0),U+=1}}for(let E=0;E<l;E++)for(let G=0;G<T;G++){let D=f+G+nA*E,H=f+G+nA*(E+1),Y=f+(G+1)+nA*(E+1),W=f+(G+1)+nA*E;s.push(D,H,W),s.push(H,Y,W),q+=6}u.addGroup(m,q,L),m+=q,f+=U}function x(w,v,b){let N=new wn,S=new wn(e/2,A/2,t/2);S.subScalar(a);let y=[],P=w*v*b>0?(C,T,L)=>s.push(C,T,L):(C,T,L)=>s.push(C,L,T);for(let C=0;C<=l;C++){let T=[],L=_a*(1-C/l),B=Math.cos(L),k=Math.sin(L),X=0;for(let eA=0;eA<=C;eA++){let nA=Math.cos(X),U=Math.sin(X);N.x=B*nA,N.y=k,N.z=B*U;let q=S.clone().addScaledVector(N,a);c.push(w*q.x,v*q.y,b*q.z),d.push(w*N.x,v*N.y,b*N.z),p.push(0,0),T.push(f++),X+=_a/C}y.push(T)}let O=y.length-1;for(let C=0;C<O;C++){let T=y[C],L=y[C+1],B=T.length-1;P(T[0],L[1],L[0]);for(let k=1;k<=B;k++)P(T[k-1],T[k],L[k]),P(T[k],L[k+1],L[k])}}}};import{BufferGeometry as Cw,Float32BufferAttribute as Al,Triangle as Iw,Vector3 as Dt,Vector2 as el}from"three";var nr=class extends Cw{constructor(e=[],A=[],t="",r=1,n=.2,i=4){super(),this.type="PolyhedronGeometryRound";let a=[],l=[],u=[];s(),c(),this.setAttribute("position",new Al(a,3)),this.setAttribute("normal",new Al(u,3)),this.setAttribute("uv",new Al(l,2));return;function s(){n=Math.min(1-1e-5,n),n==0&&(i=0);let p={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[t],f=new Dt,m=f.clone(),h=new Iw,g=n*r,x=r-g,w=i+1,v=new Dt,b=(U,q)=>v.subVectors(U,q).normalize(),N=(U,q)=>Array(U).fill(void 0).map(q),S=N(e.length/3,(U,q)=>new Dt().fromArray(e,q*3).setLength(r)),y=[],P=1e6;for(let U=0;U<S.length;U++){let q=S[U],Q=[],j,E,G,D=1e10,H=-1;for(;(H=A.indexOf(U,H+1))!=-1;){let R=H-H%3;j=A[R+(H+1)%3],E=A[R+(H+2)%3],G=q.distanceToSquared(S[j]),D=Math.min(D,G),Q.push([j,E,G])}D+=1e-6;let Y=[],W=0,F=Q.length;for(let R=0;R<F;R++){[j,E,G]=Q[W];let z=y[j]?.includes(U)==!0;G<=D&&Y.push(j+ +z*P),W=Q.findIndex($=>$[0]==E)}y.push(Y)}let O=[];{let U=0,q=0,Q,j,E=p==3;for(let G=0;G<=i;G++){Q=G*(G+1)/2,j=(G+1)*(G+2)/2;for(let D=0;D<i-G;D++)[U,q]=[Q+D+G+2,j+D+G+3],O.push(Q,j,...E?[q,Q]:[U,j],q,U),[Q,j]=[U,q];O.push(Q,j,Q+i+2)}}let C=f.clone(),T=f.clone(),L=f.clone(),B=f.clone(),k=f.clone(),X=[],eA=N(S.length,()=>N(p,()=>f.clone()));for(let U=0;U<S.length;U++){f.copy(S[U]).normalize(),C.copy(f).multiplyScalar(x);let q=y[U];for(let Y=0;Y<q.length;Y++){let W=q[Y],F=q[(Y+1)%p];h.setFromPointsAndIndices(S,U,W%P,F%P),h.b.sub(h.a).setLength(1e10).add(h.a),h.c.sub(h.a).setLength(1e10).add(h.a),h.closestPointToPoint(C,eA[U][Y])}let Q=[],j=[],E=[],G=new Dt;i==0&&[...eA[U]].reduce((Y,W)=>Y.add(W),G).multiplyScalar(1/p);for(let Y=0;Y<p;Y++){let W=[],F=(Y-1+p)%p,R=eA[U][F],z=eA[U][Y];f.copy(R).sub(C),m.copy(z).sub(C);let $=C.angleTo(f),rA=f.angleTo(m),iA=Math.cos($)*g;i==0?T.copy(G):T.copy(C).setLength(x+iA),j.push(iA);let tA=[T,R,z];for(let AA=0;AA<2;AA++){let _=tA[AA],Z=tA[AA+1];B.subVectors(_,C),k.subVectors(Z,C),L.crossVectors(B,k).normalize();for(let pA=0;pA<w;pA++){let uA=[$,rA][AA]*pA/w;f.copy(B).applyAxisAngle(L,uA).add(C),Q.push(f.clone()),AA&&(b(f,C),W.push([pA==0?_:f.clone(),v.clone()]))}AA&&(b(Z,C),W.push([Z,v.clone()]))}E.push(W)}X.push(E);let D=2*w,H=2;for(let Y=0;Y<p;Y++){let W=D*Y,F=D*((Y+1)%p),R=[Q[W]];for(let $=1;$<w;$++){B=Q[W+$],k=Q[F+$],R.push(B);for(let rA=1,iA=$-H+1;rA<=iA;rA++)f.lerpVectors(B,k,rA/(iA+1)),f.sub(C).setLength(j[Y]).add(C),R.push(f.clone());R.push(k)}for(let $=0;$<w;$++)R.push(Q[$+w+W]);R.push(Q[F+w]);let z=O.map($=>R[$]);a.push(...z.map($=>[$.x,$.y,$.z]).flat()),u.push(...z.map($=>(b($,C),[v.x,v.y,v.z])).flat())}}let nA=[];for(let U=0;U<y.length;U++)for(let q=0;q<p;q++){let Q=y[U][q];if(Q<P){let j=y[Q].findIndex(D=>D%P==U),E=X[U][q],G=X[Q][j];for(let D=0;D<w;D++){let H=E[D],Y=G[w-D],W=E[D+1],F=G[w-(D+1)];[H,Y,W,W,Y,F].forEach(R=>{a.push(R[0].x,R[0].y,R[0].z),u.push(R[1].x,R[1].y,R[1].z)})}nA.push(E[0][0],G[w][0],E[w][0],G[0][0])}}for(;nA.length;){let U,q,Q,j;[U,q]=nA.splice(0,2);let E=[U];for(;U!=q;)E.push(q),Q=nA.indexOf(q),j=Q%2,q=nA.splice(Q-j,2)[1-j];v.subVectors(E[0],E[1]).cross(f.subVectors(E[0],E[2])).normalize();let G=v.dot(E[0])<0;G&&v.negate();for(let D=1;D<=E.length-2;D++)[E[D+ +G],E[D+1-+G],E[0]].forEach(H=>{a.push(H.x,H.y,H.z),u.push(v.x,v.y,v.z)})}}function c(){let d=new Dt;for(let S=0;S<a.length;S+=3){d.x=a[S+0],d.y=a[S+1],d.z=a[S+2];let y=b(d)/2/Math.PI+.5,P=N(d)/Math.PI+.5;l.push(y,1-P)}let p=new Dt,f=new Dt,m=new Dt,h=new Dt,g=new el,x=new el,w=new el,v=(S,y,P,O)=>{O<0&&S.x===1&&(l[y]=S.x-1),P.x===0&&P.z===0&&(l[y]=O/2/Math.PI+.5)};for(let S=0,y=0;S<a.length;S+=9,y+=6){p.set(a[S+0],a[S+1],a[S+2]),f.set(a[S+3],a[S+4],a[S+5]),m.set(a[S+6],a[S+7],a[S+8]),g.set(l[y+0],l[y+1]),x.set(l[y+2],l[y+3]),w.set(l[y+4],l[y+5]),h.copy(p).add(f).add(m).divideScalar(3);let P=b(h);v(g,y+0,p,P),v(x,y+2,f,P),v(w,y+4,m,P)}for(let S=0;S<l.length;S+=6){let y=l[S+0],P=l[S+2],O=l[S+4],C=Math.max(y,P,O),T=Math.min(y,P,O);C>.9&&T<.1&&(y<.2&&(l[S+0]+=1),P<.2&&(l[S+2]+=1),O<.2&&(l[S+4]+=1))}function b(S){return Math.atan2(S.z,-S.x)}function N(S){return Math.atan2(-S.y,Math.sqrt(S.x*S.x+S.z*S.z))}}}static fromJSON(e){return new nr(e.vertices,e.indices,e.radius,e.corner,e.cornerSides)}};import{DodecahedronGeometry as Lw}from"three";var kp=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,detail:0,corner:0,cornerSides:4},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,height:A,depth:t,detail:r,corner:n,cornerSides:i}=o.parameters,a=r===0&&n!==0?new Sn(e*.5,n,i):new Lw(e*.5,r);return a.scale(1,A/e,t/e),Object.assign(a,{userData:{...o,type:"DodecahedronGeometry"}})}},Sn=class extends nr{constructor(e=1,A=.2,t=4){let r=(1+Math.sqrt(5))/2,n=1/r,i=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-n,-r,0,-n,r,0,n,-r,0,n,r,-n,-r,0,-n,r,0,n,-r,0,n,r,0,-r,0,-n,r,0,-n,-r,0,n,r,0,n],a=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],l="DodecahedronGeometry";super(i,a,l,e,A,t),this.type=l}static fromJSON(e){return new Sn(e.radius,e.corner,e.cornerSides)}};import{Plane as kw,Shape as tf,Vector2 as Gt,Vector3 as Uw,MathUtils as al,LineCurve as ll,QuadraticBezierCurve as rf,CubicBezierCurve as Os}from"three";import{CubicBezierCurve as ws,EllipseCurve as Mw,LineCurve as Ss,LineCurve3 as Bw,MathUtils as Ew,QuadraticBezierCurve as rl,SplineCurve as Dw,Vector2 as ie,Vector3 as Wp}from"three";var Tn=1e-12,vo=class{constructor(e){this.position=new ie;this.startPosition=new ie;this.uuid=Ew.generateUUID();this.position=e.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(e){this.position.copy(this.startPosition).add(e)}copy(e){return this.position.copy(e.position),this.startPosition.copy(e.startPosition),this}clone(){return new vo(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},bo=class extends vo{constructor(A){super(A.position);this.parent=A}copy(A){return super.copy(A),this}clone(){return new bo(this.parent).copy(this)}},Ke=class extends vo{constructor(A,t){super(t);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=A,this.controls.push(new bo(this),new bo(this))}static create(A,t){let r=new Ke(A,new ie(...t.position));return r.controls[0].position.set(...t.controlPrevious.position),r.controls[1].position.set(...t.controlNext.position),r.roundness=t.roundness,r.areControlsDirectionsMirrored=t.areControlsDirectionsMirrored,r}getOppositeControl(A){let t=this.controls.indexOf(A);return t===0?this.controls[1]:t===1?this.controls[0]:null}applyOffsetToControls(A,t=1){for(let r=0,n=this.controls.length;r<n;r++){let i=this.controls[r];this.position.distanceTo(i.position)<=t?i.position.copy(this.position):i.applyOffset(A)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(A){return super.copy(A),this.controls[0].copy(A.controls[0]),this.controls[1].copy(A.controls[1]),this.roundness=A.roundness,this.uuid=A.uuid,this}clone(){return new Ke(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let A=this.curveBefore?.getTangentAt(1),t=this.curveAfter?.getTangentAt(0);return[A,t]}computeNormals(A=new ie,t=new ie){let[r,n]=this.computeTangents();return r&&n&&(Up(r,A),Up(n,t)),[A,t]}computeTangent(A=new ie){let[t,r]=this.computeTangents();return t&&r&&A.copy(t).add(r).normalize(),A}computeNormal(A=new ie){let[t,r]=this.computeNormals();return A.copy(t).add(r).normalize(),A}};function Up(o,e=new ie){let A=o.length();return e.set(-o.y/A,o.x/A)}var ol=o=>o,wo=new ie,Ts=new ie,Gw=new ie,Rw=new ie,Vw=new ie,Fw=new ie,qp=new Wp,Qp=new Wp;function Yp(o){let e=new ie;e.addVectors(o.v0,wo.subVectors(o.v1,o.v0).multiplyScalar(2/3));let A=new ie;return A.addVectors(o.v2,Ts.subVectors(o.v1,o.v2).multiplyScalar(2/3)),new ws(o.v0,e,A,o.v2)}function On(o,e,A=Number.EPSILON){return Math.abs(o-e)<A}function jw(o,e,A=Number.EPSILON){return o.distanceTo(e)<A}function zw(o,e,A=Number.EPSILON){return o.distanceTo(e)<A}function nl(o,e,A){let t=Math.sqrt(Math.pow(e.x-o.x,2)+Math.pow(e.y-o.y,2)),r=Math.sqrt(Math.pow(e.x-A.x,2)+Math.pow(e.y-A.y,2)),n=Math.sqrt(Math.pow(A.x-o.x,2)+Math.pow(A.y-o.y,2));return Math.acos((r*r+t*t-n*n)/(2*r*t))}function Xp(o,e,A){return Hp(o,e)&&Hp(e,A)&&tl(o.position,e.position,A.position)}function tl(o,e,A){return wo.copy(e).sub(o).cross(Ts.copy(A).sub(o))===0}function Kp(o,e,A,t,r){let n=Math.sqrt(Math.pow(e.x-o.x,2)+Math.pow(e.y-o.y,2)),i=(o.y+e.y)/2,a=(o.x+e.x)/2,l=Math.sqrt(Math.pow(A,2)-Math.pow(n/2,2))*(o.y-e.y)/n,u=Math.sqrt(Math.pow(A,2)-Math.pow(n/2,2))*(e.x-o.x)/n;return t.set(a+l,i+u),r.set(a-l,i-u),[t,r]}function Zp(o,e,A){let t=o.distanceTo(A),r=e.distanceTo(A);return t<r?e:o}function Jp(o,e,A,t,r,n){let i=e.x-o.x,a=e.y-o.y,l=A.x-o.x,u=A.y-o.y,s=Math.sqrt((i+l)*(i+l)+(a+u)*(a+u)),c;return nl(e,o,A)>Math.PI&&(s*=-1),On(u,a)?c=(a+u)*(t/s-.5)*8/3/(i-l):c=(i+l)*(t/s-.5)*8/3/(u-a),r.set(e.x-c*a,e.y+c*i),n.set(A.x+c*u,A.y-c*l),[r,n]}function il(o,e){return o.position.equals(o.controls[1].position)&&e.position.equals(e.controls[0].position)}function Hp(o,e){return tl(o.position,o.controls[1].position,e.position)&&tl(o.position,e.controls[0].position,e.position)}function _p(o,e,A,t,r=.5){let n=wo.subVectors(e,o).multiplyScalar(r).add(o),i=Ts.subVectors(A,e).multiplyScalar(r).add(e),a=Gw.subVectors(t,A).multiplyScalar(r).add(A),l=n,u=Rw.subVectors(i,n).multiplyScalar(r).add(n),s=Vw.subVectors(a,i).multiplyScalar(r).add(i),c=a,d=Fw.subVectors(s,u).multiplyScalar(r).add(u);return[o.x,o.y,l.x,l.y,u.x,u.y,d.x,d.y,s.x,s.y,c.x,c.y,t.x,t.y]}function $p(o,e,A=12,t=!0){let r=Qp.set(0,0,0),n,i=0,a=[];for(let l=0;l<e.length;l++){let u=ol(e[l]),s=wo,c=ir(u,A);a.push(c);for(let d=0;d<=c;d++)if(u instanceof ws||u instanceof rl||u instanceof Ss){if(u.getPoint(d/c,s),r.set(s.x,s.y,0),n!==void 0&&zw(n,r))continue;n===void 0&&(n=qp),n.copy(r),o.setXYZ(i,r.x,r.y,r.z),i++}}return t&&i>1&&!(o.getX(i-1)===o.getX(0)&&o.getY(i-1)===o.getY(0)&&o.getZ(i-1)===o.getZ(0))&&(o.setXYZ(i,o.getX(0),o.getY(0),o.getZ(0)),i++),o}function Af(o,e,A,t=12,r=!0){let n=Qp.set(0,0,0),i=0,a=[];for(let l=0;l<e.length;l++){if(A[l]===!1)continue;let u,s=ol(e[l]),c=wo,d=ir(s,t);a.push(d);for(let p=0;p<=d;p++)if(s instanceof ws||s instanceof rl||s instanceof Ss){if(s.getPoint(p/d,c),n.set(c.x,c.y,0),u?.equals(n))continue;u===void 0?u=qp:(o.setXYZ(i,u.x,u.y,u.z),i++,o.setXYZ(i,n.x,n.y,n.z),i++),u.copy(n)}}return r&&i>1&&!(o.getX(i-1)===o.getX(0)&&o.getY(i-1)===o.getY(0)&&o.getZ(i-1)===o.getZ(0))&&(o.setXYZ(i,o.getX(0),o.getY(0),o.getZ(0)),i++),a}function sl(o,e=12,A=!1){let t=[];for(let r=0,n=o.length;r<n;r++){let i=o[r],a=0;if(A&&i.roundedCurveCorner!==void 0){let l=ir(i.roundedCurveCorner,e)*.5;r>0&&(t[r-1]+=l),a+=l}i.curveAfter!==void 0&&(a+=ir(i.curveAfter,e)),t.push(a)}return o.length>0&&A&&o[0].roundedCurveCorner!==void 0&&(t[o.length-1]+=ir(o[0].roundedCurveCorner,e)*.5),t}function ir(o,e=12){return o&&o instanceof Mw?e*2:o&&(o instanceof Ss||o instanceof Bw)?1:o&&o instanceof Dw?e*o.points.length:e}function ef(o,e,A=12,t=!0){let r,n=0;for(let i=0;i<e.length;i++){let a=ol(e[i]),l=ir(a,A),u=wo;for(let s=0;s<=l;s++)if(a instanceof ws||a instanceof rl||a instanceof Ss){if(a.getPoint(s/l,u),r!==void 0&&jw(r,u,Tn))continue;r===void 0&&(r=Ts),r.copy(u),o.push(u.x,u.y),n++}}return On(o[0],o[o.length-2],Tn)&&On(o[1],o[o.length-1],Tn)&&(o.pop(),o.pop()),t&&n>1&&!(On(o[n-1],o[1],Tn)&&On(o[n-2],o[0],Tn))&&(o.push(o[0],o[1]),n++),o}var cl=new Gt,Hw=new Gt,Ww=new Gt,qw=new Gt,Qw=new Gt,Yw=new Gt,vA=class extends tf{constructor(A=100,t=100){super();this.points=[];this.shapeHoles=[];this.plane=new kw(new Uw(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=al.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=A,this._height=t}static createFromState(A,t,r){let n=new vA;return n.isClosed=A.isClosed,n.points=A.points.map(i=>Ke.create(i.id,i.data)),typeof A.roundness=="number"&&(n.roundness=A.roundness),n.shapeHoles=A.shapeHoles.map(i=>vA.createFromState(i)),t!==void 0&&r!==void 0&&n.applySize(t,r),n.update(),n}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(A){if(this._roundness!==A){this._roundness=A;for(let t=0,r=this.points.length;t<r;t++)this.points[t].roundness=A;this.needsUpdate=!0}}getPointsIndexesByIds(A){return A.map(t=>this.getPointIndexById(t)).filter(t=>t>=0)}getPointIndexById(A){let t=this.points.length,r=this.points.findIndex(n=>n.uuid===A);if(r<0){let n=t;for(let i=0,a=this.shapeHoles.length;i<a;i++){let l=this.shapeHoles[i],u=l.points.length,s=l.getPointIndexById(A);if(s<0)n+=u;else return s+n}}return r}getLineIndexById(A){return this.getPointIndexById(A)}getBezierPoint(A){if(A<=this.points.length-1)return this.points[A];if(this.shapeHoles.length>0){let t=this.points.length;for(let r=0,n=this.shapeHoles.length;r<n;r++){let i=this.shapeHoles[r],a=A-t;if(a<=i.points.length-1)return i.points[a];t+=i.points.length}}throw new Error("This shape does not have a point for this index: "+A)}getBezierPointIndex(A){let t=this.points.indexOf(A);if(t>=0)return t;if(t=this.points.length,this.shapeHoles.length>0)for(let r=0,n=this.shapeHoles.length;r<n;r++){let i=this.shapeHoles[r],a=i.points.indexOf(A);if(a>=0)return t+a;t+=i.points.length}return-1}getAllPoints(){let A=[].concat(...this.shapeHoles.map(t=>t.points));return[...this.points,...A]}applySize(A,t){A===0&&(A=.001),t===0&&(t=.001),this._width=A,this._height=t}applyScale(A,t){let r=cl.set(A,t);for(let n=0,i=this.points.length;n<i;n++){let a=this.points[n];a.position.multiply(r),a.controls[0].position.multiply(r),a.controls[1].position.multiply(r)}for(let n=0,i=this.shapeHoles.length;n<i;n++)this.shapeHoles[n].applyScale(A,t);this._update()}createPoint(A,t=0,r=al.generateUUID()){let n;A instanceof Gt?n=A:n=new Gt(A,t);let i=new Ke(r,n);return i.roundness=this.roundness,i}addPoint(A){this.points.push(A),this.needsUpdate=!0}addPointAt(A,t){this.points.splice(t,0,A),this.needsUpdate=!0}getPointByUuid(A){for(let t=0,r=this.points.length;t<r;t++){let n=this.points[t];if(n.uuid===A)return n}for(let t=0,r=this.shapeHoles.length;t<r;t++){let i=this.shapeHoles[t].getPointByUuid(A);if(i)return i}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(A){let t=this.points.indexOf(A);t>=0&&this.points.splice(t,1),this.needsUpdate=!0}removePointById(A){let t=this.points.find(r=>r.uuid===A);t&&this.removePoint(t)}update(){for(let A=0,t=this.shapeHoles.length;A<t;A++)this.shapeHoles[A].update();this._update()}extractShapePointsToBuffer(A,t=12,r=!1){this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t);let n=r?this.roundedCurveDivisions:this.curveDivisions;return $p(A,r?this.roundedCurves:this.curves,t,this.autoClose),n.reduce((i,a)=>i+a,0)+1}computeCurveDivisions(A=12){return this.curveDivisions=sl(this.points,A,!1),this.roundedCurveDivisions=sl(this.points,A,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(A,t,r=12){return Af(A,this.curves,t,r,this.autoClose).reduce((i,a)=>i+a,0)*2}extractShapePointsToFlatArray(A,t=12){return this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t),ef(A,this.roundedCurves,t,this.autoClose)}getCurveIndexFromVertexId(A,t=!1){let r=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let n=t?this.roundedCurveDivisions:this.curveDivisions,i=0;t&&this.points[0].roundedCurveCorner!==void 0&&(i=ir(this.points[0].roundedCurveCorner,this.subdivision)*.5);let a=A-i;a<0&&(a+=n.reduce((l,u)=>l+u,0));for(let l=0,u=n.length;l<u;l++){let s=n[l];if(a<r+s)return[l,(a-r+1)/s];r+=s}return[0,1]}getCurveT(A,t,r){let n=this.points[A],i=this.points[A>=this.points.length-1?0:A+1],a=this.curveDivisions,l=a[A];if(il(n,i)){let c=n.position.distanceTo(i.position);return n.position.distanceTo(cl.set(r.x,r.y))/c}let u=0;for(let c=0;c<A;c++)u+=a[c];return(t-u)/l}dispose(){}_applyCurveForPoint(A,t){il(t,A)?this.lineTo(A.position.x,A.position.y):this.bezierCurveTo(t.controls[1].position.x,t.controls[1].position.y,A.controls[0].position.x,A.controls[0].position.y,A.position.x,A.position.y);let r=this.curves[this.curves.length-1];A.curveBefore=r,t.curveAfter=r;let n=r.clone();A.roundedCurveBefore=n,t.roundedCurveAfter=n,A.roundedCurveCorner=void 0,this.roundedCurves.push(n)}_update(){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let t=0,r=this.points.length;t<r;t++){let n=this.points[t];if(t===0)this.moveTo(n.position.x,n.position.y);else{let i=this.points[t-1];this._applyCurveForPoint(n,i)}}let A=this.getLastPoint();if(A?.curveAfter&&(A.curveAfter=void 0),this.isClosed){let t=this.points[0],r=this.points[this.points.length-1];this._applyCurveForPoint(t,r)}if(this.points.length>2){let t=0;for(let r=0,n=this.points.length;r<n;r++){let i=this.points[r],a=this.points[r-1]??this.points[this.points.length-1],l=this.points[r+1]??this.points[0],u=i.roundness,s=a&&l&&Xp(a,i,l);if(!i.controlsMoved()&&u>0&&!s){let c=i.curveBefore,d=i.curveAfter;if(c===void 0||d===void 0)continue;let p=i.roundedCurveBefore,f=i.roundedCurveAfter,m=c.getLength(),h=d.getLength(),g=Math.min(u,m*.499),x=Math.min(u,h*.499),w=Math.min(g,x),v=1-w/m,b=w/h,N=c.getPointAt(v,cl),S=d.getPointAt(b,Hw);this._subSplitCurve(c,p,v,N,void 0),this._subSplitCurve(d,f,b,void 0,S);let y;if(this.useCubicForRoundedCorners){let P=nl(N,i.position,S)/2,O=Math.tan(P)*N.distanceTo(i.position),[C,T]=Kp(N,S,O,Ww,qw),L=Zp(C,T,i.position),[B,k]=Jp(L,N,S,O,Qw,Yw);y=new Os(N.clone(),B.clone(),k.clone(),S.clone())}else y=new rf(N.clone(),i.position.clone(),S.clone());i.roundedCurveCorner=y,this.roundedCurves.splice(r+t,0,y),t++}}}}_subSplitCurve(A,t,r,n,i){if(A instanceof ll)n!==void 0&&t.v2.copy(n),i!==void 0&&t.v1.copy(i);else{let a=A,l=t,u=a.getUtoTmapping(r,0),s=_p(a.v0,a.v1,a.v2,a.v3,u);return n!==void 0&&(l.v0.set(s[0],s[1]),l.v1.set(s[2],s[3]),l.v2.set(s[4],s[5]),l.v3.set(s[6],s[7])),i!==void 0&&(l.v0.set(s[6],s[7]),l.v1.set(s[8],s[9]),l.v2.set(s[10],s[11]),l.v3.set(s[12],s[13])),l}return t}clone(){let A=new vA(this._width,this._height);return A.points=this.points.map(t=>t.clone()),A.isClosed=this.isClosed,A.roundness=this.roundness,A.isMesh2D=this.isMesh2D,A.shapeHoles=this.shapeHoles.map(t=>t.clone()),A}toJSON(){return{points:this.points.reduce((A,t)=>A.concat(t.toJSON()),[]),shapeHoles:this.shapeHoles.map(A=>A.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(A){this.points=[],this.pointIDs=0;let t=A.points.length/7;for(let r=0;r<t;r++){let n=r*7,i=A.points[n+0],a=A.points[n+1],l=A.points[n+2],u=A.points[n+3],s=A.points[n+4],c=A.points[n+5],d=A.points[n+6],p=new Ke(al.generateUUID(),new Gt(i,a));p.controls[0].position.set(l,u),p.controls[1].position.set(s,c),p.roundness=d,this.points.push(p)}return this.shapeHoles=A.shapeHoles?.length?A.shapeHoles.map(r=>{let n=new vA;return n.fromJSON(r),n}):[],this.isClosed=A.isClosed,this._roundness=A.roundness,this._update(),this}fromShape(A){let t=(n,i)=>{i instanceof Os&&i.v3.equals(n.position)&&n.controls[0].position.copy(i.v2)},r=n=>{let i=[],a,l;for(a=0,l=n.length;a<l;a++)n[a]instanceof rf&&(n[a]=Yp(n[a]));for(a=0,l=n.length;a<l;a++){let c=n[a],d=a>0?n[a-1]:null,p;c instanceof Os?(p=this.createPoint(c.v0),p.controls[1].position.copy(c.v1)):c instanceof ll&&(p=this.createPoint(c.v1)),p!==void 0&&(d!==null&&t(p,d),i.push(p))}let u=n[n.length-1],s=!1;return u instanceof Os?u.v3.equals(i[0].position)&&(i[0].controls[0].position.copy(u.v2),s=!0):u instanceof ll&&u.v2.equals(i[0].position)&&(s=!0),this.isClosed=s,i};return this.points=r(A.curves),A instanceof tf&&(this.shapeHoles=A.holes.map(n=>{let i=new vA;return i.fromShape(n),i})),this.update(),this}updatePoint(A,t){let r=this.getPointByUuid(A);r&&(t.position!==void 0&&r.position.fromArray(t.position),t.roundness!==void 0&&(r.roundness=t.roundness),t.areControlsDirectionsMirrored!==void 0&&(r.areControlsDirectionsMirrored=t.areControlsDirectionsMirrored),this.needsUpdate=!0)}updatePreviousControl(A,t){let n=this.getPointByUuid(A)?.controls[0];n&&(t.position&&n.position.fromArray(t.position),this.needsUpdate=!0)}updateNextControl(A,t){let n=this.getPointByUuid(A)?.controls[1];n&&(t.position&&n.position.fromArray(t.position),this.needsUpdate=!0)}};var dl=Math.PI*2;function ul({x:o,y:e},A,t,r,n){return{x:o*A+r,y:e*t+n}}function Xw(o,e){let A=e===1.5707963267948966?.551915024494:e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),t=Math.cos(o),r=Math.sin(o),n=Math.cos(o+e),i=Math.sin(o+e);return[{x:t-r*A,y:r+t*A},{x:n+i*A,y:i-n*A},{x:n,y:i}]}function of(o,e,A,t){let r=o*t-e*A<0?-1:1,n=Math.min(1,Math.max(-1,o*A+e*t));return r*Math.acos(n)}function Kw(o,e,A,t,r,n,i,a,l,u){let s=Math.pow(r,2),c=Math.pow(n,2),d=Math.pow(i,2),p=Math.pow(a,2),f=s*c-s*p-c*d;f<0&&(f=0),f/=s*p+c*d,f=Math.sqrt(f)*(l===u?-1:1);let m=f*r/n*a,h=f*-n/r*i,g=m+(o+A)/2,x=h+(e+t)/2,w=(i-m)/r,v=(a-h)/n,b=(-i-m)/r,N=(-a-h)/n,S=of(1,0,w,v),y=of(w,v,b,N);return!u&&y>0&&(y-=dl),u&&y<0&&(y+=dl),{centerx:g,centery:x,ang1:S,ang2:y}}function nf({px:o,py:e,cx:A,cy:t,rx:r,ry:n,largeArcFlag:i,sweepFlag:a}){let l=[];if(r===0||n===0)return[];let u=(o-A)/2,s=(e-t)/2;if(u===0&&s===0)return[];r=Math.abs(r),n=Math.abs(n);let c=Math.pow(u,2)/Math.pow(r,2)+Math.pow(s,2)/Math.pow(n,2);c>1&&(r*=Math.sqrt(c),n*=Math.sqrt(c));let d=Kw(o,e,A,t,r,n,u,s,i,a),{ang1:p,ang2:f}=d,{centerx:m,centery:h}=d,g=Math.abs(f)/(dl/4);Math.abs(1-g)<1e-7&&(g=1);let x=Math.max(Math.ceil(g),1);f/=x;for(let w=0;w<x;w++)l.push(Xw(p,f)),p+=f;return l.map(w=>{let{x:v,y:b}=ul(w[0],r,n,m,h),{x:N,y:S}=ul(w[1],r,n,m,h),{x:y,y:P}=ul(w[2],r,n,m,h);return{x1:v,y1:b,x2:N,y2:S,x:y,y:P}})}import{BufferAttribute as Ps,BufferGeometry as AS}from"three";var LA;(function(o){o[o.ODD=0]="ODD",o[o.NONZERO=1]="NONZERO",o[o.POSITIVE=2]="POSITIVE",o[o.NEGATIVE=3]="NEGATIVE",o[o.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(LA||(LA={}));var kA;(function(o){o[o.POLYGONS=0]="POLYGONS",o[o.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",o[o.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(kA||(kA={}));function cA(o,e){if(!o)throw e||"Assertion Failed!"}var sA=function(){function o(){}return o.vertEq=function(e,A){return e.s===A.s&&e.t===A.t},o.vertLeq=function(e,A){return e.s<A.s||e.s===A.s&&e.t<=A.t},o.transLeq=function(e,A){return e.t<A.t||e.t===A.t&&e.s<=A.s},o.edgeGoesLeft=function(e){return o.vertLeq(e.Dst,e.Org)},o.edgeGoesRight=function(e){return o.vertLeq(e.Org,e.Dst)},o.vertL1dist=function(e,A){return Math.abs(e.s-A.s)+Math.abs(e.t-A.t)},o.edgeEval=function(e,A,t){cA(o.vertLeq(e,A)&&o.vertLeq(A,t));var r=A.s-e.s,n=t.s-A.s;return r+n>0?r<n?A.t-e.t+(e.t-t.t)*(r/(r+n)):A.t-t.t+(t.t-e.t)*(n/(r+n)):0},o.edgeSign=function(e,A,t){cA(o.vertLeq(e,A)&&o.vertLeq(A,t));var r=A.s-e.s,n=t.s-A.s;return r+n>0?(A.t-t.t)*r+(A.t-e.t)*n:0},o.transEval=function(e,A,t){cA(o.transLeq(e,A)&&o.transLeq(A,t));var r=A.t-e.t,n=t.t-A.t;return r+n>0?r<n?A.s-e.s+(e.s-t.s)*(r/(r+n)):A.s-t.s+(t.s-e.s)*(n/(r+n)):0},o.transSign=function(e,A,t){cA(o.transLeq(e,A)&&o.transLeq(A,t));var r=A.t-e.t,n=t.t-A.t;return r+n>0?(A.s-t.s)*r+(A.s-e.s)*n:0},o.vertCCW=function(e,A,t){return e.s*(A.t-t.t)+A.s*(t.t-e.t)+t.s*(e.t-A.t)>=0},o.interpolate=function(e,A,t,r){return e=e<0?0:e,t=t<0?0:t,e<=t?t===0?(A+r)/2:A+(r-A)*(e/(e+t)):r+(A-r)*(t/(e+t))},o.intersect=function(e,A,t,r,n){var i,a,l;o.vertLeq(e,A)||(l=e,e=A,A=l),o.vertLeq(t,r)||(l=t,t=r,r=l),o.vertLeq(e,t)||(l=e,e=t,t=l,l=A,A=r,r=l),o.vertLeq(t,A)?o.vertLeq(A,r)?(i=o.edgeEval(e,t,A),a=o.edgeEval(t,A,r),i+a<0&&(i=-i,a=-a),n.s=o.interpolate(i,t.s,a,A.s)):(i=o.edgeSign(e,t,A),a=-o.edgeSign(e,r,A),i+a<0&&(i=-i,a=-a),n.s=o.interpolate(i,t.s,a,r.s)):n.s=(t.s+A.s)/2,o.transLeq(e,A)||(l=e,e=A,A=l),o.transLeq(t,r)||(l=t,t=r,r=l),o.transLeq(e,t)||(l=e,e=t,t=l,l=A,A=r,r=l),o.transLeq(t,A)?o.transLeq(A,r)?(i=o.transEval(e,t,A),a=o.transEval(t,A,r),i+a<0&&(i=-i,a=-a),n.t=o.interpolate(i,t.t,a,A.t)):(i=o.transSign(e,t,A),a=-o.transSign(e,r,A),i+a<0&&(i=-i,a=-a),n.t=o.interpolate(i,t.t,a,r.t)):n.t=(t.t+A.t)/2},o}(),Nn=function(){function o(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return o}(),Ns=function(){function o(e){this.side=e,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(o.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(e){this.Sym.Lface=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(e){this.Sym.Org=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(e){this.Sym.Lnext=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(e){this.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(e){this.Lnext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(e){this.Sym.Onext=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(e){this.Sym.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(e){this.Sym.Lnext.Sym=e},enumerable:!0,configurable:!0}),o}(),So=function(){function o(){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 o}(),sf=function(){function o(){var e=new So,A=new Nn,t=new Ns(0),r=new Ns(1);e.next=e.prev=e,e.anEdge=null,A.next=A.prev=A,t.next=t,t.Sym=r,r.next=r,r.Sym=t,this.vHead=e,this.fHead=A,this.eHead=t,this.eHeadSym=r}return o.prototype.makeEdge_=function(e){var A=new Ns(0),t=new Ns(1);e.Sym.side<e.side&&(e=e.Sym);var r=e.Sym.next;return t.next=r,r.Sym.next=A,A.next=e,e.Sym.next=t,A.Sym=t,A.Onext=A,A.Lnext=t,A.Org=null,A.Lface=null,A.winding=0,A.activeRegion=null,t.Sym=A,t.Onext=t,t.Lnext=A,t.Org=null,t.Lface=null,t.winding=0,t.activeRegion=null,A},o.prototype.splice_=function(e,A){var t=e.Onext,r=A.Onext;t.Sym.Lnext=A,r.Sym.Lnext=e,e.Onext=r,A.Onext=t},o.prototype.makeVertex_=function(e,A,t){var r=e;cA(r,"Vertex can't be null!");var n=t.prev;r.prev=n,n.next=r,r.next=t,t.prev=r,r.anEdge=A;var i=A;do i.Org=r,i=i.Onext;while(i!==A)},o.prototype.makeFace_=function(e,A,t){var r=e;cA(r,"Face can't be null");var n=t.prev;r.prev=n,n.next=r,r.next=t,t.prev=r,r.anEdge=A,r.trail=null,r.marked=!1,r.inside=t.inside;var i=A;do i.Lface=r,i=i.Lnext;while(i!==A)},o.prototype.killEdge_=function(e){e.Sym.side<e.side&&(e=e.Sym);var A=e.next,t=e.Sym.next;A.Sym.next=t,t.Sym.next=A},o.prototype.killVertex_=function(e,A){var t=e.anEdge,r=t;do r.Org=A,r=r.Onext;while(r!==t);var n=e.prev,i=e.next;i.prev=n,n.next=i},o.prototype.killFace_=function(e,A){var t=e.anEdge,r=t;do r.Lface=A,r=r.Lnext;while(r!==t);var n=e.prev,i=e.next;i.prev=n,n.next=i},o.prototype.makeEdge=function(){var e=new So,A=new So,t=new Nn,r=this.makeEdge_(this.eHead);return this.makeVertex_(e,r,this.vHead),this.makeVertex_(A,r.Sym,this.vHead),this.makeFace_(t,r,this.fHead),r},o.prototype.splice=function(e,A){var t=!1,r=!1;if(e!==A){if(A.Org!==e.Org&&(r=!0,this.killVertex_(A.Org,e.Org)),A.Lface!==e.Lface&&(t=!0,this.killFace_(A.Lface,e.Lface)),this.splice_(A,e),!r){var n=new So;this.makeVertex_(n,A,e.Org),e.Org.anEdge=e}if(!t){var i=new Nn;this.makeFace_(i,A,e.Lface),e.Lface.anEdge=e}}},o.prototype.delete=function(e){var A=e.Sym,t=!1;if(e.Lface!==e.Rface&&(t=!0,this.killFace_(e.Lface,e.Rface)),e.Onext===e)this.killVertex_(e.Org,null);else if(e.Rface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev),!t){var r=new Nn;this.makeFace_(r,e,e.Lface)}A.Onext===A?(this.killVertex_(A.Org,null),this.killFace_(A.Lface,null)):(e.Lface.anEdge=A.Oprev,A.Org.anEdge=A.Onext,this.splice_(A,A.Oprev)),this.killEdge_(e)},o.prototype.addEdgeVertex=function(e){var A=this.makeEdge_(e),t=A.Sym;this.splice_(A,e.Lnext),A.Org=e.Dst;var r=new So;return this.makeVertex_(r,t,A.Org),A.Lface=t.Lface=e.Lface,A},o.prototype.splitEdge=function(e){var A=this.addEdgeVertex(e),t=A.Sym;return this.splice_(e.Sym,e.Sym.Oprev),this.splice_(e.Sym,t),e.Dst=t.Org,t.Dst.anEdge=t.Sym,t.Rface=e.Rface,t.winding=e.winding,t.Sym.winding=e.Sym.winding,t.idx=e.idx,t.Sym.idx=e.Sym.idx,t},o.prototype.connect=function(e,A){var t=!1,r=this.makeEdge_(e),n=r.Sym;if(A.Lface!==e.Lface&&(t=!0,this.killFace_(A.Lface,e.Lface)),this.splice_(r,e.Lnext),this.splice_(n,A),r.Org=e.Dst,n.Org=A.Org,r.Lface=n.Lface=e.Lface,e.Lface.anEdge=n,!t){var i=new Nn;this.makeFace_(i,r,e.Lface)}return r},o.prototype.zapFace=function(e){var A=e.anEdge,t,r,n,i,a;r=A.Lnext;do t=r,r=t.Lnext,t.Lface=null,t.Rface===null&&(t.Onext===t?this.killVertex_(t.Org,null):(t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev)),n=t.Sym,n.Onext===n?this.killVertex_(n.Org,null):(n.Org.anEdge=n.Onext,this.splice_(n,n.Oprev)),this.killEdge_(t));while(t!=A);i=e.prev,a=e.next,a.prev=i,i.next=a},o.prototype.countFaceVerts_=function(e){var A=e.anEdge,t=0;do t++,A=A.Lnext;while(A!==e.anEdge);return t},o.prototype.mergeConvexFaces=function(e){var A,t,r,n,i,a,l;for(A=this.fHead.next;A!==this.fHead;A=A.next)if(!!A.inside)for(t=A.anEdge,i=t.Org;r=t.Lnext,n=t.Sym,n&&n.Lface&&n.Lface.inside&&(a=this.countFaceVerts_(A),l=this.countFaceVerts_(n.Lface),a+l-2<=e&&sA.vertCCW(t.Lprev.Org,t.Org,n.Lnext.Lnext.Org)&&sA.vertCCW(n.Lprev.Org,n.Org,t.Lnext.Lnext.Org)&&(r=n.Lnext,this.delete(n),t=null,n=null)),!(t&&t.Lnext.Org===i);)t=r;return!0},o.prototype.check=function(){var e=this.fHead,A=this.vHead,t=this.eHead,r,n,i,a,l,u;for(n=e,n=e;(r=n.next)!==e;n=r){cA(r.prev===n),l=r.anEdge;do cA(l.Sym!==l),cA(l.Sym.Sym===l),cA(l.Lnext.Onext.Sym===l),cA(l.Onext.Sym.Lnext===l),cA(l.Lface===r),l=l.Lnext;while(l!==r.anEdge)}for(cA(r.prev===n&&r.anEdge===null),a=A,a=A;(i=a.next)!==A;a=i){cA(i.prev===a),l=i.anEdge;do cA(l.Sym!==l),cA(l.Sym.Sym===l),cA(l.Lnext.Onext.Sym===l),cA(l.Onext.Sym.Lnext===l),cA(l.Org===i),l=l.Onext;while(l!==i.anEdge)}for(cA(i.prev===a&&i.anEdge===null),u=t,u=t;(l=u.next)!==t;u=l)cA(l.Sym.next===u.Sym),cA(l.Sym!==l),cA(l.Sym.Sym===l),cA(l.Org!==null),cA(l.Dst!==null),cA(l.Lnext.Onext.Sym===l),cA(l.Onext.Sym.Lnext===l);cA(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)},o}(),af=function(){function o(){this.handle=null}return o}(),lf=function(){function o(){this.key=null,this.node=0}return o}(),Zw=function(){function o(e,A){this.leq=A,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=e,this.nodes=[],this.handles=[];for(var t=0;t<e+1;t++)this.nodes[t]=new af,this.handles[t]=new lf;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return o.prototype.floatDown_=function(e){var A=this.nodes,t=this.handles,r,n,i;for(r=A[e].handle;;){if(i=e<<1,i<this.size&&this.leq(t[A[i+1].handle].key,t[A[i].handle].key)&&++i,cA(i<=this.max),n=A[i].handle,i>this.size||this.leq(t[r].key,t[n].key)){A[e].handle=r,t[r].node=e;break}A[e].handle=n,t[n].node=e,e=i}},o.prototype.floatUp_=function(e){var A=this.nodes,t=this.handles,r,n,i;for(r=A[e].handle;;){if(i=e>>1,n=A[i].handle,i===0||this.leq(t[n].key,t[r].key)){A[e].handle=r,t[r].node=e;break}A[e].handle=n,t[n].node=e,e=i}},o.prototype.init=function(){for(var e=this.size;e>=1;--e)this.floatDown_(e);this.initialized=!0},o.prototype.min=function(){return this.handles[this.nodes[1].handle].key},o.prototype.insert=function(e){var A,t;if(A=++this.size,A*2>this.max){this.max*=2;var r,n;for(n=this.nodes.length,this.nodes.length=this.max+1,r=n;r<this.nodes.length;r++)this.nodes[r]=new af;for(n=this.handles.length,this.handles.length=this.max+1,r=n;r<this.handles.length;r++)this.handles[r]=new lf}return this.freeList===0?t=A:(t=this.freeList,this.freeList=this.handles[t].node),this.nodes[A].handle=t,this.handles[t].node=A,this.handles[t].key=e,this.initialized&&this.floatUp_(A),t},o.prototype.extractMin=function(){var e=this.nodes,A=this.handles,t=e[1].handle,r=A[t].key;return this.size>0&&(e[1].handle=e[this.size].handle,A[e[1].handle].node=1,A[t].key=null,A[t].node=this.freeList,this.freeList=t,--this.size,this.size>0&&this.floatDown_(1)),r},o.prototype.delete=function(e){var A=this.nodes,t=this.handles,r;cA(e>=1&&e<=this.max&&t[e].key!==null),r=t[e].node,A[r].handle=A[this.size].handle,t[A[r].handle].node=r,--this.size,r<=this.size&&(r<=1||this.leq(t[A[r>>1].handle].key,t[A[r].handle].key)?this.floatDown_(r):this.floatUp_(r)),t[e].key=null,t[e].node=this.freeList,this.freeList=e},o}(),pl=function(){function o(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return o}(),cf=function(){function o(){this.key=null,this.next=null,this.prev=null}return o}(),Jw=function(){function o(e,A){this.frame=e,this.leq=A,this.head=new cf,this.head.next=this.head,this.head.prev=this.head}return o.prototype.min=function(){return this.head.next},o.prototype.max=function(){return this.head.prev},o.prototype.insert=function(e){return this.insertBefore(this.head,e)},o.prototype.search=function(e){var A=this.head;do A=A.next;while(A.key!==null&&!this.leq(this.frame,e,A.key));return A},o.prototype.insertBefore=function(e,A){do e=e.prev;while(e.key!==null&&!this.leq(this.frame,e.key,A));var t=new cf;return t.key=A,t.next=e.next,e.next.prev=t,t.prev=e,e.next=t,t},o.prototype.delete=function(e){e.next.prev=e.prev,e.prev.next=e.next},o}(),_w=function(){function o(){}return o.regionBelow=function(e){return e.nodeUp.prev.key},o.regionAbove=function(e){return e.nodeUp.next.key},o.debugEvent=function(e){},o.addWinding=function(e,A){e.winding+=A.winding,e.Sym.winding+=A.Sym.winding},o.edgeLeq=function(e,A,t){var r=e.event,n=A.eUp,i=t.eUp;if(n.Dst===r)return i.Dst===r?sA.vertLeq(n.Org,i.Org)?sA.edgeSign(i.Dst,n.Org,i.Org)<=0:sA.edgeSign(n.Dst,i.Org,n.Org)>=0:sA.edgeSign(i.Dst,r,i.Org)<=0;if(i.Dst===r)return sA.edgeSign(n.Dst,r,n.Org)>=0;var a=sA.edgeEval(n.Dst,r,n.Org),l=sA.edgeEval(i.Dst,r,i.Org);return a>=l},o.deleteRegion=function(e,A){A.fixUpperEdge&&cA(A.eUp.winding===0),A.eUp.activeRegion=null,e.dict.delete(A.nodeUp)},o.fixUpperEdge=function(e,A,t){cA(A.fixUpperEdge),e.mesh.delete(A.eUp),A.fixUpperEdge=!1,A.eUp=t,t.activeRegion=A},o.topLeftRegion=function(e,A){var t=A.eUp.Org,r;do A=o.regionAbove(A);while(A.eUp.Org===t);if(A.fixUpperEdge){if(r=e.mesh.connect(o.regionBelow(A).eUp.Sym,A.eUp.Lnext),r===null)return null;o.fixUpperEdge(e,A,r),A=o.regionAbove(A)}return A},o.topRightRegion=function(e){var A=e.eUp.Dst;do e=o.regionAbove(e);while(e.eUp.Dst===A);return e},o.addRegionBelow=function(e,A,t){var r=new pl;return r.eUp=t,r.nodeUp=e.dict.insertBefore(A.nodeUp,r),r.fixUpperEdge=!1,r.sentinel=!1,r.dirty=!1,t.activeRegion=r,r},o.isWindingInside=function(e,A){switch(e.windingRule){case LA.ODD:return(A&1)!==0;case LA.NONZERO:return A!==0;case LA.POSITIVE:return A>0;case LA.NEGATIVE:return A<0;case LA.ABS_GEQ_TWO:return A>=2||A<=-2}throw new Error("Invalid winding rulle")},o.computeWinding=function(e,A){A.windingNumber=o.regionAbove(A).windingNumber+A.eUp.winding,A.inside=o.isWindingInside(e,A.windingNumber)},o.finishRegion=function(e,A){var t=A.eUp,r=t.Lface;r.inside=A.inside,r.anEdge=t,o.deleteRegion(e,A)},o.finishLeftRegions=function(e,A,t){for(var r,n=null,i=A,a=A.eUp;i!==t;){if(i.fixUpperEdge=!1,n=o.regionBelow(i),r=n.eUp,r.Org!=a.Org){if(!n.fixUpperEdge){o.finishRegion(e,i);break}r=e.mesh.connect(a.Lprev,r.Sym),o.fixUpperEdge(e,n,r)}a.Onext!==r&&(e.mesh.splice(r.Oprev,r),e.mesh.splice(a,r)),o.finishRegion(e,i),a=n.eUp,i=n}return a},o.addRightEdges=function(e,A,t,r,n,i){var a,l,u,s,c=!0;u=t;do cA(sA.vertLeq(u.Org,u.Dst)),o.addRegionBelow(e,A,u.Sym),u=u.Onext;while(u!==r);for(n===null&&(n=o.regionBelow(A).eUp.Rprev),l=A,s=n;a=o.regionBelow(l),u=a.eUp.Sym,u.Org===s.Org;)u.Onext!==s&&(e.mesh.splice(u.Oprev,u),e.mesh.splice(s.Oprev,u)),a.windingNumber=l.windingNumber-u.winding,a.inside=o.isWindingInside(e,a.windingNumber),l.dirty=!0,!c&&o.checkForRightSplice(e,l)&&(o.addWinding(u,s),o.deleteRegion(e,l),e.mesh.delete(s)),c=!1,l=a,s=u;l.dirty=!0,cA(l.windingNumber-u.winding===a.windingNumber),i&&o.walkDirtyRegions(e,l)},o.spliceMergeVertices=function(e,A,t){e.mesh.splice(A,t)},o.vertexWeights=function(e,A,t){var r=sA.vertL1dist(A,e),n=sA.vertL1dist(t,e),i=.5*n/(r+n),a=.5*r/(r+n);e.coords[0]+=i*A.coords[0]+a*t.coords[0],e.coords[1]+=i*A.coords[1]+a*t.coords[1],e.coords[2]+=i*A.coords[2]+a*t.coords[2]},o.getIntersectData=function(e,A,t,r,n,i){A.coords[0]=A.coords[1]=A.coords[2]=0,A.idx=-1,o.vertexWeights(A,t,r),o.vertexWeights(A,n,i)},o.checkForRightSplice=function(e,A){var t=o.regionBelow(A),r=A.eUp,n=t.eUp;if(sA.vertLeq(r.Org,n.Org)){if(sA.edgeSign(n.Dst,r.Org,n.Org)>0)return!1;sA.vertEq(r.Org,n.Org)?r.Org!==n.Org&&(e.pq.delete(r.Org.pqHandle),o.spliceMergeVertices(e,n.Oprev,r)):(e.mesh.splitEdge(n.Sym),e.mesh.splice(r,n.Oprev),A.dirty=t.dirty=!0)}else{if(sA.edgeSign(r.Dst,n.Org,r.Org)<0)return!1;o.regionAbove(A).dirty=A.dirty=!0,e.mesh.splitEdge(r.Sym),e.mesh.splice(n.Oprev,r)}return!0},o.checkForLeftSplice=function(e,A){var t=o.regionBelow(A),r=A.eUp,n=t.eUp,i;if(cA(!sA.vertEq(r.Dst,n.Dst)),sA.vertLeq(r.Dst,n.Dst)){if(sA.edgeSign(r.Dst,n.Dst,r.Org)<0)return!1;o.regionAbove(A).dirty=A.dirty=!0,i=e.mesh.splitEdge(r),e.mesh.splice(n.Sym,i),i.Lface.inside=A.inside}else{if(sA.edgeSign(n.Dst,r.Dst,n.Org)>0)return!1;A.dirty=t.dirty=!0,i=e.mesh.splitEdge(n),e.mesh.splice(r.Lnext,n.Sym),i.Rface.inside=A.inside}return!0},o.checkForIntersect=function(e,A){var t=o.regionBelow(A),r=A.eUp,n=t.eUp,i=r.Org,a=n.Org,l=r.Dst,u=n.Dst,s,c,d=new So,p,f;if(cA(!sA.vertEq(u,l)),cA(sA.edgeSign(l,e.event,i)<=0),cA(sA.edgeSign(u,e.event,a)>=0),cA(i!==e.event&&a!==e.event),cA(!A.fixUpperEdge&&!t.fixUpperEdge),i===a||(s=Math.min(i.t,l.t),c=Math.max(a.t,u.t),s>c))return!1;if(sA.vertLeq(i,a)){if(sA.edgeSign(u,i,a)>0)return!1}else if(sA.edgeSign(l,a,i)<0)return!1;return o.debugEvent(e),sA.intersect(l,i,u,a,d),cA(Math.min(i.t,l.t)<=d.t),cA(d.t<=Math.max(a.t,u.t)),cA(Math.min(u.s,l.s)<=d.s),cA(d.s<=Math.max(a.s,i.s)),sA.vertLeq(d,e.event)&&(d.s=e.event.s,d.t=e.event.t),p=sA.vertLeq(i,a)?i:a,sA.vertLeq(p,d)&&(d.s=p.s,d.t=p.t),sA.vertEq(d,i)||sA.vertEq(d,a)?(o.checkForRightSplice(e,A),!1):!sA.vertEq(l,e.event)&&sA.edgeSign(l,e.event,d)>=0||!sA.vertEq(u,e.event)&&sA.edgeSign(u,e.event,d)<=0?u===e.event?(e.mesh.splitEdge(r.Sym),e.mesh.splice(n.Sym,r),A=o.topLeftRegion(e,A),r=o.regionBelow(A).eUp,o.finishLeftRegions(e,o.regionBelow(A),t),o.addRightEdges(e,A,r.Oprev,r,r,!0),!0):l===e.event?(e.mesh.splitEdge(n.Sym),e.mesh.splice(r.Lnext,n.Oprev),t=A,A=o.topRightRegion(A),f=o.regionBelow(A).eUp.Rprev,t.eUp=n.Oprev,n=o.finishLeftRegions(e,t,null),o.addRightEdges(e,A,n.Onext,r.Rprev,f,!0),!0):(sA.edgeSign(l,e.event,d)>=0&&(o.regionAbove(A).dirty=A.dirty=!0,e.mesh.splitEdge(r.Sym),r.Org.s=e.event.s,r.Org.t=e.event.t),sA.edgeSign(u,e.event,d)<=0&&(A.dirty=t.dirty=!0,e.mesh.splitEdge(n.Sym),n.Org.s=e.event.s,n.Org.t=e.event.t),!1):(e.mesh.splitEdge(r.Sym),e.mesh.splitEdge(n.Sym),e.mesh.splice(n.Oprev,r),r.Org.s=d.s,r.Org.t=d.t,r.Org.pqHandle=e.pq.insert(r.Org),o.getIntersectData(e,r.Org,i,l,a,u),o.regionAbove(A).dirty=A.dirty=t.dirty=!0,!1)},o.walkDirtyRegions=function(e,A){for(var t=o.regionBelow(A),r,n;;){for(;t.dirty;)A=t,t=o.regionBelow(t);if(!A.dirty&&(t=A,A=o.regionAbove(A),A===null||!A.dirty))return;if(A.dirty=!1,r=A.eUp,n=t.eUp,r.Dst!==n.Dst&&o.checkForLeftSplice(e,A)&&(t.fixUpperEdge?(o.deleteRegion(e,t),e.mesh.delete(n),t=o.regionBelow(A),n=t.eUp):A.fixUpperEdge&&(o.deleteRegion(e,A),e.mesh.delete(r),A=o.regionAbove(t),r=A.eUp)),r.Org!==n.Org)if(r.Dst!==n.Dst&&!A.fixUpperEdge&&!t.fixUpperEdge&&(r.Dst===e.event||n.Dst===e.event)){if(o.checkForIntersect(e,A))return}else o.checkForRightSplice(e,A);r.Org===n.Org&&r.Dst===n.Dst&&(o.addWinding(n,r),o.deleteRegion(e,A),e.mesh.delete(r),A=o.regionAbove(t))}},o.connectRightVertex=function(e,A,t){var r,n=t.Onext,i=o.regionBelow(A),a=A.eUp,l=i.eUp,u=!1;if(a.Dst!==l.Dst&&o.checkForIntersect(e,A),sA.vertEq(a.Org,e.event)&&(e.mesh.splice(n.Oprev,a),A=o.topLeftRegion(e,A),n=o.regionBelow(A).eUp,o.finishLeftRegions(e,o.regionBelow(A),i),u=!0),sA.vertEq(l.Org,e.event)&&(e.mesh.splice(t,l.Oprev),t=o.finishLeftRegions(e,i,null),u=!0),u){o.addRightEdges(e,A,t.Onext,n,n,!0);return}sA.vertLeq(l.Org,a.Org)?r=l.Oprev:r=a,r=e.mesh.connect(t.Lprev,r),o.addRightEdges(e,A,r,r.Onext,r.Onext,!1),r.Sym.activeRegion.fixUpperEdge=!0,o.walkDirtyRegions(e,A)},o.connectLeftDegenerate=function(e,A,t){var r,n,i,a,l;if(r=A.eUp,sA.vertEq(r.Org,t)){cA(!1),o.spliceMergeVertices(e,r,t.anEdge);return}if(!sA.vertEq(r.Dst,t)){e.mesh.splitEdge(r.Sym),A.fixUpperEdge&&(e.mesh.delete(r.Onext),A.fixUpperEdge=!1),e.mesh.splice(t.anEdge,r),o.sweepEvent(e,t);return}cA(!1),A=o.topRightRegion(A),l=o.regionBelow(A),i=l.eUp.Sym,n=a=i.Onext,l.fixUpperEdge&&(cA(n!==i),o.deleteRegion(e,l),e.mesh.delete(i),i=n.Oprev),e.mesh.splice(t.anEdge,i),sA.edgeGoesLeft(n)||(n=null),o.addRightEdges(e,A,i.Onext,a,n,!0)},o.connectLeftVertex=function(e,A){var t,r,n,i,a,l,u=new pl;if(u.eUp=A.anEdge.Sym,t=e.dict.search(u).key,r=o.regionBelow(t),!!r){if(i=t.eUp,a=r.eUp,sA.edgeSign(i.Dst,A,i.Org)===0){o.connectLeftDegenerate(e,t,A);return}if(n=sA.vertLeq(a.Dst,i.Dst)?t:r,t.inside||n.fixUpperEdge){if(n===t)l=e.mesh.connect(A.anEdge.Sym,i.Lnext);else{var s=e.mesh.connect(a.Dnext,A.anEdge);l=s.Sym}n.fixUpperEdge?o.fixUpperEdge(e,n,l):o.computeWinding(e,o.addRegionBelow(e,t,l)),o.sweepEvent(e,A)}else o.addRightEdges(e,t,A.anEdge,A.anEdge,null,!0)}},o.sweepEvent=function(e,A){e.event=A,o.debugEvent(e);for(var t=A.anEdge;t.activeRegion===null;)if(t=t.Onext,t===A.anEdge){o.connectLeftVertex(e,A);return}var r=o.topLeftRegion(e,t.activeRegion);cA(r!==null);var n=o.regionBelow(r),i=n.eUp,a=o.finishLeftRegions(e,n,null);a.Onext===i?o.connectRightVertex(e,r,a):o.addRightEdges(e,r,a.Onext,i,i,!0)},o.addSentinel=function(e,A,t,r){var n=new pl,i=e.mesh.makeEdge();i.Org.s=t,i.Org.t=r,i.Dst.s=A,i.Dst.t=r,e.event=i.Dst,n.eUp=i,n.windingNumber=0,n.inside=!1,n.fixUpperEdge=!1,n.sentinel=!0,n.dirty=!1,n.nodeUp=e.dict.insert(n)},o.initEdgeDict=function(e){e.dict=new Jw(e,o.edgeLeq);var A=e.bmax[0]-e.bmin[0],t=e.bmax[1]-e.bmin[1],r=e.bmin[0]-A,n=e.bmax[0]+A,i=e.bmin[1]-t,a=e.bmax[1]+t;o.addSentinel(e,r,n,i),o.addSentinel(e,r,n,a)},o.doneEdgeDict=function(e){for(var A,t=0;(A=e.dict.min().key)!==null;)A.sentinel||(cA(A.fixUpperEdge),cA(++t===1)),cA(A.windingNumber===0),o.deleteRegion(e,A)},o.removeDegenerateEdges=function(e){var A,t,r,n=e.mesh.eHead;for(A=n.next;A!==n;A=t)t=A.next,r=A.Lnext,sA.vertEq(A.Org,A.Dst)&&A.Lnext.Lnext!==A&&(o.spliceMergeVertices(e,r,A),e.mesh.delete(A),A=r,r=A.Lnext),r.Lnext===A&&(r!==A&&((r===t||r===t.Sym)&&(t=t.next),e.mesh.delete(r)),(A===t||A===t.Sym)&&(t=t.next),e.mesh.delete(A))},o.initPriorityQ=function(e){var A,t,r,n=0;for(r=e.mesh.vHead,t=r.next;t!==r;t=t.next)n++;for(n+=8,A=e.pq=new Zw(n,sA.vertLeq),r=e.mesh.vHead,t=r.next;t!==r;t=t.next)t.pqHandle=A.insert(t);return t!==r?!1:(A.init(),!0)},o.donePriorityQ=function(e){e.pq=null},o.removeDegenerateFaces=function(e,A){var t,r,n;for(t=A.fHead.next;t!==A.fHead;t=r)r=t.next,n=t.anEdge,cA(n.Lnext!==n),n.Lnext.Lnext===n&&(o.addWinding(n.Onext,n),e.mesh.delete(n));return!0},o.computeInterior=function(e,A){A===void 0&&(A=!0);var t,r;if(o.removeDegenerateEdges(e),!o.initPriorityQ(e))return!1;for(o.initEdgeDict(e);(t=e.pq.extractMin())!==null;){for(;r=e.pq.min(),!(r===null||!sA.vertEq(r,t));)r=e.pq.extractMin(),o.spliceMergeVertices(e,t.anEdge,r.anEdge);o.sweepEvent(e,t)}return e.event=e.dict.min().key.eUp.Org,o.debugEvent(e),o.doneEdgeDict(e),o.donePriorityQ(e),o.removeDegenerateFaces(e,e.mesh)?(A&&e.mesh.check(),!0):!1},o}(),$w=function(){function o(){this.mesh=new sf,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=LA.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 o.prototype.dot_=function(e,A){return e[0]*A[0]+e[1]*A[1]+e[2]*A[2]},o.prototype.normalize_=function(e){var A=e[0]*e[0]+e[1]*e[1]+e[2]*e[2];if(!A)throw"Zero-size vector!";A=Math.sqrt(A),e[0]/=A,e[1]/=A,e[2]/=A},o.prototype.longAxis_=function(e){var A=0;return Math.abs(e[1])>Math.abs(e[0])&&(A=1),Math.abs(e[2])>Math.abs(e[A])&&(A=2),A},o.prototype.computeNormal_=function(e){var A,t,r,n,i,a,l=[0,0,0],u=[0,0,0],s=[0,0,0],c=[0,0,0],d=[0,0,0],p=[null,null,null],f=[null,null,null],m=this.mesh.vHead;A=m.next;for(var h=0;h<3;++h)n=A.coords[h],u[h]=n,f[h]=A,l[h]=n,p[h]=A;for(A=m.next;A!==m;A=A.next)for(var g=0;g<3;++g)n=A.coords[g],n<u[g]&&(u[g]=n,f[g]=A),n>l[g]&&(l[g]=n,p[g]=A);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]){e[0]=0,e[1]=0,e[2]=1;return}for(a=0,t=f[x],r=p[x],s[0]=t.coords[0]-r.coords[0],s[1]=t.coords[1]-r.coords[1],s[2]=t.coords[2]-r.coords[2],A=m.next;A!==m;A=A.next)c[0]=A.coords[0]-r.coords[0],c[1]=A.coords[1]-r.coords[1],c[2]=A.coords[2]-r.coords[2],d[0]=s[1]*c[2]-s[2]*c[1],d[1]=s[2]*c[0]-s[0]*c[2],d[2]=s[0]*c[1]-s[1]*c[0],i=d[0]*d[0]+d[1]*d[1]+d[2]*d[2],i>a&&(a=i,e[0]=d[0],e[1]=d[1],e[2]=d[2]);a<=0&&(e[0]=e[1]=e[2]=0,e[this.longAxis_(s)]=1)},o.prototype.checkOrientation_=function(){for(var e=this.mesh.fHead,A,t=this.mesh.vHead,r,n=0,i=e.next;i!==e;i=i.next)if(r=i.anEdge,!(r.winding<=0))do n+=(r.Org.s-r.Dst.s)*(r.Org.t+r.Dst.t),r=r.Lnext;while(r!==i.anEdge);if(n<0){for(A=t.next;A!==t;A=A.next)A.t=-A.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},o.prototype.projectPolygon_=function(){var e=this.mesh.vHead,A=[0,0,0],t,r,n=!1;A[0]=this.normal[0],A[1]=this.normal[1],A[2]=this.normal[2],!A[0]&&!A[1]&&!A[2]&&(this.computeNormal_(A),n=!0),t=this.sUnit,r=this.tUnit;var i=this.longAxis_(A);t[i]=0,t[(i+1)%3]=1,t[(i+2)%3]=0,r[i]=0,r[(i+1)%3]=0,r[(i+2)%3]=A[i]>0?1:-1;for(var a=e.next;a!==e;a=a.next)a.s=this.dot_(a.coords,t),a.t=this.dot_(a.coords,r);n&&this.checkOrientation_();for(var l=!0,u=e.next;u!==e;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))},o.prototype.addWinding_=function(e,A){e.winding+=A.winding,e.Sym.winding+=A.Sym.winding},o.prototype.tessellateMonoRegion_=function(e,A){var t,r;if(t=A.anEdge,!(t.Lnext!==t&&t.Lnext.Lnext!==t))throw"Mono region invalid";for(;sA.vertLeq(t.Dst,t.Org);t=t.Lprev);for(;sA.vertLeq(t.Org,t.Dst);t=t.Lnext);r=t.Lprev;for(var n=void 0;t.Lnext!==r;)if(sA.vertLeq(t.Dst,r.Org)){for(;r.Lnext!==t&&(sA.edgeGoesLeft(r.Lnext)||sA.edgeSign(r.Org,r.Dst,r.Lnext.Dst)<=0);)n=e.connect(r.Lnext,r),r=n.Sym;r=r.Lprev}else{for(;r.Lnext!==t&&(sA.edgeGoesRight(t.Lprev)||sA.edgeSign(t.Dst,t.Org,t.Lprev.Org)>=0);)n=e.connect(t,t.Lprev),t=n.Sym;t=t.Lnext}if(r.Lnext===t)throw"Mono region invalid";for(;r.Lnext.Lnext!==t;)n=e.connect(r.Lnext,r),r=n.Sym;return!0},o.prototype.tessellateInterior_=function(e){for(var A,t=e.fHead.next;t!==e.fHead;t=A)if(A=t.next,t.inside&&!this.tessellateMonoRegion_(e,t))return!1;return!0},o.prototype.discardExterior_=function(e){for(var A,t=e.fHead.next;t!==e.fHead;t=A)A=t.next,t.inside||e.zapFace(t)},o.prototype.setWindingNumber_=function(e,A,t){for(var r,n=e.eHead.next;n!==e.eHead;n=r)r=n.next,n.Rface.inside!==n.Lface.inside?n.winding=n.Lface.inside?A:-A:t?e.delete(n):n.winding=0},o.prototype.getNeighbourFace_=function(e){return!e.Rface||!e.Rface.inside?-1:e.Rface.n},o.prototype.outputPolymesh_=function(e,A,t,r){var n,i=0,a=0,l;t>3&&e.mergeConvexFaces(t);for(var u=e.vHead.next;u!==e.vHead;u=u.next)u.n=-1;for(var s=e.fHead.next;s!==e.fHead;s=s.next)if(s.n=-1,!!s.inside){n=s.anEdge,l=0;do{var u=n.Org;u.n===-1&&(u.n=a,a++),l++,n=n.Lnext}while(n!==s.anEdge);if(l>t)throw"Face vertex greater that support polygon";s.n=i,++i}this.elementCount=i,A===kA.CONNECTED_POLYGONS&&(i*=2),this.elements=[],this.elements.length=i*t,this.vertexCount=a,this.vertices=[],this.vertices.length=a*r,this.vertexIndices=[],this.vertexIndices.length=a;for(var u=e.vHead.next;u!==e.vHead;u=u.next)if(u.n!==-1){var c=u.n*r;this.vertices[c+0]=u.coords[0],this.vertices[c+1]=u.coords[1],r>2&&(this.vertices[c+2]=u.coords[2]),this.vertexIndices[u.n]=u.idx}for(var d=0,s=e.fHead.next;s!==e.fHead;s=s.next)if(!!s.inside){n=s.anEdge,l=0;do{var u=n.Org;this.elements[d++]=u.n,l++,n=n.Lnext}while(n!==s.anEdge);for(var p=l;p<t;++p)this.elements[d++]=-1;if(A===kA.CONNECTED_POLYGONS){n=s.anEdge;do this.elements[d++]=this.getNeighbourFace_(n),n=n.Lnext;while(n!==s.anEdge);for(var f=l;f<t;++f)this.elements[d++]=-1}}},o.prototype.outputContours_=function(e,A){var t,r,n=0,i=0;this.vertexCount=0,this.elementCount=0;for(var a=e.fHead.next;a!==e.fHead;a=a.next)if(!!a.inside){r=t=a.anEdge;do this.vertexCount++,t=t.Lnext;while(t!==r);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*A,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var l=0,u=0,s=0;n=0;for(var a=e.fHead.next;a!==e.fHead;a=a.next)if(!!a.inside){i=0,r=t=a.anEdge;do this.vertices[l++]=t.Org.coords[0],this.vertices[l++]=t.Org.coords[1],A>2&&(this.vertices[l++]=t.Org.coords[2]),this.vertexIndices[u++]=this.vertexIdCallback?this.vertexIdCallback(t):t.Org.idx,i++,t=t.Lnext;while(t!==r);this.elements[s++]=n,this.elements[s++]=i,n+=i}},o.prototype.addContour=function(e,A){this.mesh===null&&(this.mesh=new sf),e<2&&(e=2),e>3&&(e=3);for(var t=null,r=0;r<A.length;r+=e)t===null?(t=this.mesh.makeEdge(),this.mesh.splice(t,t.Sym)):(this.mesh.splitEdge(t),t=t.Lnext),t.Org.coords[0]=A[r+0],t.Org.coords[1]=A[r+1],e>2?t.Org.coords[2]=A[r+2]:t.Org.coords[2]=0,t.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(t),t.winding=1,t.Sym.winding=-1},o.prototype.tesselate=function(e,A,t,r,n,i){if(e===void 0&&(e=LA.ODD),A===void 0&&(A=kA.POLYGONS),i===void 0&&(i=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,n&&(this.normal[0]=n[0],this.normal[1]=n[1],this.normal[2]=n[2]),this.windingRule=e,r<2&&(r=2),r>3&&(r=3),!this.mesh)return!1;this.projectPolygon_(),_w.computeInterior(this,i);var a=this.mesh;return A===kA.BOUNDARY_CONTOURS?this.setWindingNumber_(a,1,!0):this.tessellateInterior_(a),i&&a.check(),A===kA.BOUNDARY_CONTOURS?this.outputContours_(a,r):this.outputPolymesh_(a,A,t,r),!0},o}();function Sr(o){var e=o.windingRule,A=e===void 0?LA.ODD:e,t=o.elementType,r=t===void 0?kA.POLYGONS:t,n=o.polySize,i=n===void 0?3:n,a=o.vertexSize,l=a===void 0?2:a,u=o.normal,s=u===void 0?[0,0,1]:u,c=o.contours,d=c===void 0?[]:c,p=o.strict,f=p===void 0?!0:p,m=o.debug,h=m===void 0?!1:m;if(!d&&f)throw new Error("Contours can't be empty");if(!!d){var g=new $w;o.edgeCreateCallback&&(g.edgeCreateCallback=o.edgeCreateCallback),o.vertexIdCallback&&(g.vertexIdCallback=o.vertexIdCallback);for(var x=0;x<d.length;x++)g.addContour(l||2,d[x]);return g.tesselate(A,r,i,l,s,f),{vertices:g.vertices,vertexIndices:g.vertexIndices,vertexCount:g.vertexCount,elements:g.elements,elementCount:g.elementCount,mesh:h?g.mesh:void 0}}}var MR=LA.ODD,BR=LA.NONZERO,ER=LA.POSITIVE,DR=LA.NEGATIVE,GR=LA.ABS_GEQ_TWO,RR=kA.POLYGONS,VR=kA.CONNECTED_POLYGONS,FR=kA.BOUNDARY_CONTOURS;var To=class extends AS{constructor(A,t=12,r={}){super();this.type="ShapeGeometry";this.windingRule=LA.ODD;this.elementType=kA.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=A,this._curveSegments=t,this._triangulationOptions=Object.assign({windingRule:LA.ODD,elementType:kA.POLYGONS,polySize:3,vertexSize:2,strict:!0},r);let n=this._shape.extractShapePointsToFlatArray([],this._curveSegments),i=this._shape.shapeHoles.map(f=>f.extractShapePointsToFlatArray([],this._curveSegments)),a,l=!0,u=!0,s,c;for(let f=0,m=n.length/2;f<m;f++){let h=f*2,g=n[h+0],x=n[h+1];if(s!==void 0&&g!==s&&(l=!1),c!==void 0&&x!==c&&(u=!1),s=g,c=x,!l&&!u)break}!l&&!u&&(a=Sr({contours:[n,...i],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let d=a?.vertexCount??1,p=a?.elementCount??1;if(this._positionAttribute=new Ps(new Float32Array(d*3),3),this._normalAttribute=new Ps(new Float32Array(d*3),3),this._uvAttribute=new Ps(new Float32Array(d*2),2),this._indexAttribute=new Ps(new Uint32Array(p*3),1),a){let f=1/0,m=-1/0,h=1/0,g=-1/0;for(let v=0,b=d;v<b;v++){let N=v*2,S=a.vertices[N+0],y=a.vertices[N+1];S<f&&(f=S),S>m&&(m=S),y<h&&(h=y),y>g&&(g=y)}let x=m-f,w=g-h;for(let v=0,b=d;v<b;v++){let N=v*2,S=a.vertices[N+0],y=a.vertices[N+1],P=(S-f)/x,O=(y-h)/w;this._positionAttribute.setXYZ(v,S,y,0),this._normalAttribute.setXYZ(v,0,0,1),this._uvAttribute.setXY(v,P,O)}for(let v=0,b=p;v<b;v++){let N=v*3,S=a.elements[N+0],y=a.elements[N+1],P=a.elements[N+2];this._indexAttribute.setX(N+0,S),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,(a?.elementCount??1)*3)}clone(){let A=new To(this._shape,this._curveSegments);return A.userData=gr(this.userData),A}};import{BufferAttribute as Is,BufferGeometry as eS}from"three";var Cs=class{constructor(e=256,A=!1){this.capacity=e,this.size=0,this.debug=A,this.debug&&console.log(`allocating with cap ${e}`);let t=e*Cs.eSize;this.buffer=new ArrayBuffer(t);let r=Float32Array.BYTES_PER_ELEMENT,n=0;this.positions=new Float32Array(this.buffer,n*r,3*e),n+=3*e,this.normals=new Float32Array(this.buffer,n*r,3*e),n+=3*e,this.uvs=new Float32Array(this.buffer,n*r,2*e)}realloc(e,A=!1){if(e<this.size)throw Error("cannot shrink buffer");if(e<=this.capacity&&!A)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${e}`);let t=e*Cs.eSize,r=new ArrayBuffer(t),n=Float32Array.BYTES_PER_ELEMENT,i=0,a=new Float32Array(r,i*n,3*e);i+=3*e;let l=new Float32Array(r,i*n,3*e);i+=3*e;let u=new Float32Array(r,i*n,2*e);a.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=r,this.positions=a,this.normals=l,this.uvs=u,this.capacity=e}get(e=1){let A=this.size+e;if(A>this.capacity){let r=this.capacity;for(;A>r;)r*=2;this.realloc(r)}let t=this.size;return this.size=A,t}reserve(e){let A=this.size+e;A>this.capacity&&this.realloc(A)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},Pn=Cs;Pn.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var fl=(o,e)=>([A,t])=>(t<A&&(t+=e),(o>=A?o:o+e)<=t),Oo=class extends eS{constructor(A,t,r=0,n=12,i=3,a=LA.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=A,this._depth=t,this._bevel=r,this._curveSegments=n,this._bevelSegmentsInput=i,r<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(r,t/2-1e-12),this._bevelSegments=Math.floor(i));let l=this._shape.extractShapePointsToFlatArray([],n),u=this._shape.shapeHoles.map(y=>{let P=y.extractShapePointsToFlatArray([],n),O=[];for(let C=P.length-1;C>=1;C-=2){let T=P[C-1],L=P[C-0];O.push(T,L)}return O}),s=Sr({windingRule:a,elementType:kA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[l]}),c=Sr({windingRule:LA.ODD,elementType:kA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...u]});if(!s)throw new Error("error generating geometry");let d=s.elementCount;if(c){s.elementCount+=c.elementCount;for(let y=0;y<c.elements.length;y++){let P=c.elements[y],O=y%2===0?s.vertexCount:0;s.elements.push(P+O)}for(let y=0;y<c.vertexIndices.length;y++){let P=c.vertexIndices[y],O=s.vertexCount;s.vertexIndices.push(P+O)}for(let y=0;y<c.vertices.length;y++){let P=c.vertices[y];s.vertices.push(P)}}let p=1/0,f=-1/0,m=1/0,h=-1/0;for(let y=0,P=s.vertexCount;y<P;y++){let O=y*2,C=s.vertices[O+0],T=s.vertices[O+1];C<p&&(p=C),C>f&&(f=C),T<m&&(m=T),T>h&&(h=T)}this._minX=p,this._minY=m,this._width=f-p,this._height=h-m;let g=s.vertexCount*2*(2+this._bevelSegments);this._buffer=new Pn(g);let x=[],w=[];for(let y=s.elementCount-1;y>=0;y--){let P=y>=d,O=y*2,C=s.elements[O+0],T=s.elements[O+1],L=C+T,B={start:C,count:T,normals:[],continuous:[],concave:[]},k=C,X=L-1,eA=C+1,nA=this._shape.roundedCurves.length;do{let j=k-C,E=s.vertices[X*2+0],G=s.vertices[X*2+1],D=s.vertices[k*2+0],H=s.vertices[k*2+1],Y=s.vertices[eA*2+0],W=s.vertices[eA*2+1],F=D-E,R=H-G,z=Math.sqrt(F*F+R*R);F/=z,R/=z;let $=D-Y,rA=H-W,iA=Math.sqrt($*$+rA*rA);$/=iA,rA/=iA,B.normals[j*2+0]=-rA,B.normals[j*2+1]=$,B.concave[j]=F*rA-R*$>0;let tA=s.vertexIndices[k];if(Array.isArray(tA))B.continuous[j]=!1;else{let[AA,_]=this._shape.getCurveIndexFromVertexId(tA-1,!0);if(_>0&&_<1)B.continuous[j]=!0;else{let Z=_===1?AA+1:AA-1;Z=(Z+nA)%nA;let pA=_===1?0:1,uA=this._shape.roundedCurves[AA].getTangent(_),yA=this._shape.roundedCurves[Z].getTangent(pA);B.continuous[j]=uA.dot(yA)>.95}}P&&(B.normals[j*2+0]*=-1,B.normals[j*2+1]*=-1),[X,k,eA]=[k,eA,eA+1],eA>=L&&(eA-=T)}while(eA!==C+1);let U=[];U.push({bevelI:0,angle:0,size:0,boundary:{vertices:s.vertices.slice(C*2,L*2),vertexCount:T,vertexIndices:new Array(T).fill(!0).map((j,E)=>[E,E]),elements:[0,T],elementCount:1,mesh:null},reverseMap:[],insetPoints:s.vertices.slice(C*2,L*2)});for(let j=1;j<=this._bevelSegments;j++){let E=j/this._bevelSegments*Math.PI/2,G=(1-Math.cos(E))*this._bevelSize,D=[],H=[],Y=[],W=[],F=0;for(let z=0;z<T;z++){let $=z*2,rA=(z-1+T)%T*2,iA=s.vertices[B.start*2+$+0],tA=s.vertices[B.start*2+$+1],AA=-B.normals[rA+0]*G,_=-B.normals[rA+1]*G,Z=-B.normals[$+0]*G,pA=-B.normals[$+1]*G;if(B.concave[z]||!B.concave[z]&&P){let uA=Math.atan2(_,AA),yA=Math.atan2(pA,Z);yA>uA&&(yA-=Math.PI*2);let QA=yA-uA;if(B.continuous[z]||P){let SA=uA+QA/2,OA=Math.cos(SA)*G,IA=Math.sin(SA)*G;D[2*F+0]=iA+OA*(P?-1:1),D[2*F+1]=tA+IA*(P?-1:1),W[F]=z,F++}else{let SA=Math.max(1,Math.floor(n/4*Math.abs(QA)/Math.PI));for(let OA=0;OA<=SA;OA++){let IA=uA+QA*(OA/SA),Le=Math.cos(IA)*G,zt=Math.sin(IA)*G;D[2*F+0]=iA+Le,D[2*F+1]=tA+zt,W[F]=z,F++}}}else D[2*F+0]=iA+AA,D[2*F+1]=tA+_,W[F]=z,H[z]=F,F++,D[2*F+0]=iA,D[2*F+1]=tA,W[F]=z,F++,D[2*F+0]=iA+Z,D[2*F+1]=tA+pA,W[F]=z,Y[z]=F,F++}let R=Sr({windingRule:LA.POSITIVE,elementType:kA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[D],edgeCreateCallback:z=>{let rA=z.Org.idx,iA=W[rA],tA=W[(rA+1)%W.length];z.idx=[iA,tA],z.Sym.idx=[tA,iA]},vertexIdCallback:z=>{let $=z.Lprev.idx;return[$?$[1]:0,z.idx[0]]}});if(!R)throw console.log("Error"),new Error(`error generating bevel geometry for ${j}'th loop`);if(!R.vertexCount)break;for(let z=0;z<R.vertexIndices.length;z++){let[$,rA]=R.vertexIndices[z];if($===rA)continue;let iA=rA;rA<$&&(iA+=T);for(let tA=$;tA<iA;tA++){let AA=tA%T,_=(tA+1)%T;if(!B.continuous[AA]||!B.continuous[_]){R.vertexIndices[z]=[$,AA],R.vertexIndices.splice(z+1,0,[_,rA]),R.vertices.splice((z+1)*2,0,R.vertices[z*2],R.vertices[z*2+1]);break}}}U.push({bevelI:j,angle:E,size:G,boundary:R,reverseMap:W,insetPoints:D})}let q=(j,E,G)=>{let D=0,H=j.boundary.vertexIndices.length;for(;D<H&&G(j.boundary.vertexIndices[E]);)E=(E+1)%H,D++;return D},Q=x.length;for(let j=1;j<U.length;j++){let E=U[j-1],G=U[j],D=E.boundary.vertexIndices.length,H=G.boundary.vertexIndices.length;if(!D||!H)break;let Y=B.concave.length,W=0,F=fl(W,T);for(;!E.boundary.vertexIndices.filter(F).length||!G.boundary.vertexIndices.filter(F).length;)W++,F=fl(W,T);let R=E.boundary.vertexIndices.findIndex(F),z=G.boundary.vertexIndices.findIndex(F);do R=(R+1)%D;while(F(E.boundary.vertexIndices[R]));do z=(z+1)%H;while(F(G.boundary.vertexIndices[z]));W=(W+1)%T;let $=W,rA=this.buildBevelVert(B,E,(R-1+D)%D),iA=this.buildBevelVert(B,G,(z-1+H)%H),tA=rA,AA=iA,_,Z,pA=!1;do{F=fl(W,T);let uA=q(E,R,F),yA=q(G,z,F),QA=pA;if(pA=!1,uA&&!yA){for(let SA=0;SA<uA;SA++)_=this.buildBevelVert(B,E,(R+SA)%D,SA/(uA-1)),x.push(tA.topN,_.topP,AA.topN),x.push(_.bottomP,tA.bottomN,AA.bottomN),tA=_;pA=!0}else if(!uA&&yA)for(let SA=0;SA<yA;SA++)Z=this.buildBevelVert(B,G,(z+SA)%H,SA/(yA-1)),x.push(AA.topN,tA.topP,Z.topP),x.push(tA.bottomP,AA.bottomN,Z.bottomP),AA=Z;else if(uA&&yA)if(_=this.buildBevelVert(B,E,R,0),Z=this.buildBevelVert(B,G,z,0),QA?(x.push(tA.topN,Z.topP,AA.topN),x.push(tA.topN,_.topP,Z.topP),x.push(Z.bottomP,tA.bottomN,AA.bottomN),x.push(Z.bottomP,_.bottomP,tA.bottomN)):(x.push(AA.topN,tA.topN,_.topP),x.push(AA.topN,_.topP,Z.topP),x.push(_.bottomP,tA.bottomN,AA.bottomN),x.push(_.bottomP,AA.bottomN,Z.bottomP)),tA=_,AA=Z,uA===yA)for(let SA=1;SA<uA;SA++)_=this.buildBevelVert(B,E,(R+SA)%D,SA/(uA-1)),Z=this.buildBevelVert(B,G,(z+SA)%H,SA/(yA-1)),x.push(tA.topN,_.topP,AA.topN),x.push(AA.topN,_.topP,Z.topP),x.push(_.bottomP,tA.bottomN,AA.bottomN),x.push(_.bottomP,AA.bottomN,Z.bottomP),tA=_,AA=Z;else if(uA>yA){let SA=uA/yA,OA=0;for(let IA=1;IA<uA;IA++)_=this.buildBevelVert(B,E,(R+IA)%D,IA/(uA-1)),x.push(tA.topN,_.topP,AA.topN),x.push(_.bottomP,tA.bottomN,AA.bottomN),tA=_,IA>(OA+1)*SA&&(OA++,Z=this.buildBevelVert(B,G,(z+OA)%H,OA/(yA-1)),x.push(AA.topN,_.topP,Z.topP),x.push(_.bottomP,AA.bottomN,Z.bottomP),AA=Z)}else{let SA=yA/uA,OA=0;for(let IA=1;IA<yA;IA++)Z=this.buildBevelVert(B,G,(z+IA)%H,IA/(yA-1)),x.push(AA.topN,_.topP,Z.topP),x.push(_.bottomP,AA.bottomN,Z.bottomP),AA=Z,IA>(OA+1)*SA&&(OA++,_=this.buildBevelVert(B,E,(R+OA)%D,OA/(uA-1)),x.push(tA.topN,_.topP,AA.topN),x.push(_.bottomP,tA.bottomN,AA.bottomN),tA=_)}R=(R+uA)%D,z=(z+yA)%H,W=(W+1)%Y}while(W!==$)}{let j=U[0];for(let E=0,G=j.boundary.vertexCount;E<G;E++){let D=this.buildBevelVert(B,j,E),H=this.buildBevelVert(B,j,(E+1)%G);x.push(H.topP,D.topN,D.bottomN),x.push(H.topP,D.bottomN,H.bottomP)}}if(P){let j=[];for(let E=x.length-1;E>=Q+2;E-=3){let G=x[E-2],D=x[E-1],H=x[E-0];j.push(H,D,G)}x.splice(Q,x.length-Q,...j)}if(P){let j=[];for(let E=U[U.length-1].boundary.vertices.length-1;E>=1;E-=2){let G=U[U.length-1].boundary.vertices[E-1],D=U[U.length-1].boundary.vertices[E-0];j.push(G,D)}w.push(j)}if(!P){let j=U[U.length-1],E=Sr({windingRule:U.length>1?LA.POSITIVE:LA.ODD,elementType:kA.POLYGONS,vertexSize:2,strict:!0,contours:[j.insetPoints,...w]});if(!E)throw new Error("Error generating geometry for surface");u.length===0&&Object.assign(this,{capStartIndex:x.length});for(let G=0;G<E.elementCount*3;G+=3){let D=this.buildSurfaceVert(E,E.elements[G+0]),H=this.buildSurfaceVert(E,E.elements[G+1]),Y=this.buildSurfaceVert(E,E.elements[G+2]);x.push(D.top,H.top,Y.top),x.push(Y.bottom,H.bottom,D.bottom)}}this.vertexCache={}}this._buffer.shrink();let v=new Is(Uint32Array.from(x),1),b=new Is(this._buffer.positions,3),N=new Is(this._buffer.normals,3),S=new Is(this._buffer.uvs,2);b.needsUpdate=!0,N.needsUpdate=!0,S.needsUpdate=!0,v.needsUpdate=!0,this.setAttribute("position",b),this.setAttribute("normal",N),this.setAttribute("uv",S),this.setIndex(v)}buildSurfaceVert(A,t){let r=t.toString();if(r in this.vertexCache)return this.vertexCache[r];let n=A.vertices[t*2+0],i=A.vertices[t*2+1],a=(n-this._minX)/this._width,l=(i-this._minY)/this._height,u=this._buffer.get(2),s=u*3,c=u*2,d={top:u+0,bottom:u+1};return this._buffer.positions[s+0]=n,this._buffer.positions[s+1]=i,this._buffer.positions[s+2]=this._depth,this._buffer.normals[s+0]=0,this._buffer.normals[s+1]=0,this._buffer.normals[s+2]=1,this._buffer.uvs[c+0]=a,this._buffer.uvs[c+1]=l,this._buffer.positions[s+3]=n,this._buffer.positions[s+4]=i,this._buffer.positions[s+5]=0,this._buffer.normals[s+3]=0,this._buffer.normals[s+4]=0,this._buffer.normals[s+5]=-1,this._buffer.uvs[c+2]=a,this._buffer.uvs[c+3]=l,this.vertexCache[r]=d,d}buildBevelVert(A,t,r,n=1){let i=`${t.bevelI}:${r}`;if(i in this.vertexCache)return this.vertexCache[i];let[a,l]=t.boundary.vertexIndices[r],u,s,c,d;a!==l?(s=a,u=l,d=!1,c=A.continuous[s]&&A.continuous[u]):(u=a,s=(u-1+A.count)%A.count,d=A.concave[u]&&t.bevelI>0,c=A.continuous[u]||d);let p=Math.cos(t.angle),f=Math.sin(t.angle),m=r*2,h=u*2,g=s*2,x=t.boundary.vertices[m+0],w=t.boundary.vertices[m+1],v=(1-f)*this._bevelSize,b=(x-this._minX)/this._width,N=(w-this._minY)/this._height,S=A.normals[h+0],y=A.normals[h+1],P=A.normals[g+0],O=A.normals[g+1];if(d){let k=P-S,X=O-y;S=S+k*(1-n),y=y+X*(1-n);let eA=Math.sqrt(S*S+y*y);S/=eA,y/=eA}let C=this._buffer.get(c?2:4),T=C*3,L=C*2,B={i:r,fi:u,topP:C+0,topN:C+0,bottomP:C+1,bottomN:C+1};return this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=w,this._buffer.positions[T+2]=this._depth-v,this._buffer.normals[T+0]=S*p,this._buffer.normals[T+1]=y*p,this._buffer.normals[T+2]=f,this._buffer.uvs[L+0]=b,this._buffer.uvs[L+1]=N,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=w,this._buffer.positions[T+5]=v,this._buffer.normals[T+3]=S*p,this._buffer.normals[T+4]=y*p,this._buffer.normals[T+5]=-f,this._buffer.uvs[L+2]=N,this._buffer.uvs[L+3]=b,c||(C+=2,T+=6,L+=4,B.topP=C+0,B.bottomP=C+1,this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=w,this._buffer.positions[T+2]=this._depth-v,this._buffer.normals[T+0]=P*p,this._buffer.normals[T+1]=O*p,this._buffer.normals[T+2]=f,this._buffer.uvs[L+0]=b,this._buffer.uvs[L+1]=N,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=w,this._buffer.positions[T+5]=v,this._buffer.normals[T+3]=P*p,this._buffer.normals[T+4]=O*p,this._buffer.normals[T+5]=-f,this._buffer.uvs[L+2]=N,this._buffer.uvs[L+3]=b),this.vertexCache[i]=B,B}clone(){let A=new Oo(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return A.userData=gr(this.userData),A}};var xe=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:LA.ODD},o.parameters),t=Math.abs(A.width),r=Math.abs(A.height??A.width),n=Math.abs(A.depth??0),i=o.shape??e?.shape,a=i?.roundness??A.roundness;i!==void 0&&(i instanceof vA?(i.width!==t||i.height!==r)&&i.applySize(t,r):i=new vA(t,r).fromJSON(i),o.parameters?.roundness!==void 0&&o.parameters?.roundness>0&&i.update());let l=i??new vA(t,r);return{parameters:Object.assign(A,{width:t,height:r,depth:n,roundness:a}),shape:l}}static build(o){let{depth:e,extrudeBevelSize:A,extrudeBevelSegments:t,subdivisions:r,roundness:n,windingRule:i}=o.parameters;o.shape.roundness=n;let a;return e<=0?a=new To(o.shape,r,{windingRule:i}):a=new Oo(o.shape,e,A,r,t,i),Object.assign(a,{userData:{...o,type:"VectorGeometry"}})}};import{MathUtils as df,Vector2 as pf}from"three";var ff=Math.PI*2,mf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},o.parameters);return{shape:o.shape&&o.shape instanceof vA?o.shape:new vA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:e,height:A,spikes:t,angle:r,innerRadius:n,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}=o.parameters,u=o.shape,s=e*.5,c=A*.5,d=tS(u,s,c,r*Math.PI/180,t,n);u.isClosed=!0,u.update();let p=xe.create({shape:u,parameters:{subdivisions:d,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}});return Object.assign(p,{userData:{...o,type:"EllipseGeometry"}})}};function tS(o,e,A,t,r,n){if(t>=ff)return r>30||r%4===0?(oS(o,e,A,n),Math.round(r/4)):uf(o,t,r,e,A,n);let i={x:0,y:A},a=t+Math.PI*.5,l={x:Math.cos(a)*e,y:Math.sin(a)*A},u=nf({px:i.x,py:i.y,cx:l.x,cy:l.y,rx:e,ry:A,largeArcFlag:t>Math.PI,sweepFlag:!0});return r>30||r%u.length===0?rS(o,i.x,i.y,u,r,e,A,n):uf(o,t,r,e,A,n)}function rS(o,e,A,t,r,n,i,a){let l=Math.round(r/t.length);o.addPoint(No(e,A));for(let u=0,s=t.length;u<s;u++){let c=t[u],d=o.points[u],p=No(c.x,c.y);d.controls[1].position.set(c.x1,c.y1),p.controls[0].position.set(c.x2,c.y2),o.addPoint(p)}return a>0?hf(o,n,i,a):o.addPoint(No(0,0)),l}function uf(o,e,A,t,r,n){let i=-e/A;for(let a=0;a<=A;a++){let l=i*a,u=Math.sin(l)*t,s=Math.cos(l)*r;o.addPoint(No(u,s))}return e<ff?n>0?hf(o,t,r,n):o.addPoint(No(0,0)):(o.removePoint(o.points[o.points.length-1]),n>0&&yf(o,t,r,n)),1}function oS(o,e,A,t=0,r=0,n=0){let i=.5522847498,a=e*i,l=A*i;o.addPoint(Ls(r-e,n,r-e,n-l,r-e,n+l)),o.addPoint(Ls(r,n+A,r-a,n+A,r+a,n+A)),o.addPoint(Ls(r+e,n,r+e,n+l,r+e,n-l)),o.addPoint(Ls(r,n-A,r+a,n-A,r-a,n-A)),t>0&&yf(o,e,A,t)}function No(o,e){return new Ke(df.generateUUID(),new pf(o,e))}function Ls(o,e,A,t,r,n){let i=No(o,e);return i.controls[0].position.set(A,t),i.controls[1].position.set(r,n),i}function hf(o,e,A,t){gf(o,e,A,t).forEach(n=>o.addPoint(n))}function yf(o,e,A,t){let r=gf(o,e,A,t),n=new vA;r.forEach(i=>n.addPoint(i)),n.isClosed=!0,o.shapeHoles.push(n)}function gf(o,e,A,t){let r=t*e/100,n=r*(Math.abs(A)/Math.abs(e)),i=new pf(r/e,n/A),a=o.points.map(l=>{let u=l.clone();return u.uuid=df.generateUUID(),u}).reverse();return a.forEach(l=>{l.position.multiply(i);let u=l.controls[0].position.clone().multiply(i),s=l.controls[1].position.clone().multiply(i);l.controls[0].position.copy(s),l.controls[1].position.copy(u)}),a}import{BufferGeometry as nS,Float32BufferAttribute as ml,Vector3 as xf}from"three";var vf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},o.parameters),t=Math.abs(A.width),r=Math.abs(A.height??t),n=Math.abs(A.depth??t),i=Math.abs(Math.min(t,n))/2;return{parameters:Object.assign(A,{width:t,height:r,depth:n,radius:i,segments:Math.round(A.segments),pathSegments:Math.round(A.pathSegments),cornerSegments:Math.round(A.cornerSegments)})}}static build(o){let{width:e,height:A,depth:t,radius:r,revolutions:n,segments:i,pathRadius:a,pathType:l,pathSegments:u,cornerRadius:s,cornerSegments:c}=o.parameters,d=new Cn(!1,e,A,t,r,n,i,a,l,u,s,c);return Object.assign(d,{userData:{...o,type:"HelixGeometry"}})}},Cn=class extends nS{constructor(e=!0,A=1,t=1,r=1,n=1,i=1,a=1,l=1,u=1,s=1,c=1,d=1){super();let p=e&&i===1;p&&(d=0),c>100&&(c=100);let f=()=>new xf,m=new xf,h=f(),g=f(),x=f(),w,v,b,N,S,y,P,O,C=f(),T=f(),L=f(),B=f(),k=f(),X=f(),eA=f(),nA=f(),U=t-2*l+.001,q=U/i,Q=Math.ceil(a*i),j=Q+1,E=U/Q,G=-U/2,D=s+1,H=2*Math.PI/s,Y=Math.PI/2/d,W=.01,F=Math.min((1-c/100)*l,l-W),R=l-F,z=0,$=2,rA=d*$+$,iA=D*rA/$,tA=iA+D*j,AA=D*(j+rA),[_,Z,pA]=[3,3,2].map(RA=>Array(AA*RA).fill(0)),uA=[],yA=n-l;function QA(RA,Te){let ot=Math.PI/2;y=Te*E,O=2*Math.PI*(y%q)/q+ot,y+=G,P=Math.sin(O)*yA,S=Math.cos(O)*yA,e?RA.set(S,P,y):RA.set(S,y,P)}QA(m,-1e-10),QA(h,0),C.copy(m),QA(m,1);let SA=m.distanceTo(h),OA=p?0:R+F,IA=SA*Q+2*OA,Le=F,zt=IA-OA;for(let RA=0;RA<=Q;RA++){QA(g,RA),nA.subVectors(g,C).normalize(),C.copy(g),X.copy(g).setComponent(+e+1,0).normalize(),eA.crossVectors(nA,X).normalize();let Te=RA===0,ot=RA===Q,Sh=Te?3*Math.PI/2:Y,Th=Te?Le:zt,Oh=Te?D:tA,Nh=Te?0:AA-D,Ph=nA.clone().multiplyScalar(Te?-R:R).add(g),Ch=nA.clone().multiplyScalar(Te?-1:1).normalize();for(let Ot=0;Ot<D;Ot++){let bc=Ot*H;if(T.addVectors(m.copy(X).multiplyScalar(l*Math.cos(bc)),h.copy(eA).multiplyScalar(l*Math.sin(bc))),L.copy(T).normalize(),Te||ot){p||(z=Nh+Ot,[0,1,2].forEach(me=>{_[z*3+me]=Ph.getComponent(me),Z[z*3+me]=Ch.getComponent(me)}),pA[z*2]=+ot,pA[z*2+1]=Ot/s),h.copy(L).multiplyScalar(F),x.addVectors(g,h);for(let me=0;me<d;me++){let ua=me*Y+Sh;B.addVectors(m.copy(nA).multiplyScalar(R*Math.sin(ua)),h.copy(L).multiplyScalar(R*Math.cos(ua))),k.copy(B).normalize(),h.addVectors(x,B),B.normalize(),z=Oh+me*D+Ot,[0,1,2].forEach(hi=>{_[z*3+hi]=h.getComponent(hi),Z[z*3+hi]=k.getComponent(hi)});let Ih=+Te+Math.sin(ua);pA[z*2]=(Th+R*Ih)/IA,pA[z*2+1]=Ot/s}}h.addVectors(g,T),z=iA+RA*D+Ot,[0,1,2].forEach(me=>{_[z*3+me]=h.getComponent(me),Z[z*3+me]=L.getComponent(me)}),pA[z*2]=(OA+RA*SA)/IA,pA[z*2+1]=Ot/s}}let Se=j+2*d+$,pi=1,[fi,mi]=[+p,Se-1];for(let RA=fi;RA<=mi-1;RA++){let Te=p&&RA===mi-1;for(let ot=0;ot<D-1;ot++)w=RA*D+ot,v=w+1,b=(Te?ot:w)+D,N=(Te?ot+1:v)+D,RA===0?uA.push(v,N,b):RA===Se-2?uA.push(w,v,b):uA.push(w,v,b,v,N,b)}this.setIndex(uA),this.setAttribute("position",new ml(_,3)),this.setAttribute("normal",new ml(Z,3)),this.setAttribute("uv",new ml(pA,2))}};import{IcosahedronGeometry as iS}from"three";var bf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,detail:0,corner:0,cornerSides:4},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,height:A,depth:t,detail:r,corner:n,cornerSides:i}=o.parameters,a=r===0&&n!==0?new In(e*.5,n,i):new iS(e*.5,r);return a.scale(1,A/e,t/e),Object.assign(a,{userData:{...o,type:"IcosahedronGeometry"}})}},In=class extends nr{constructor(e=1,A=.2,t=4){let r=(1+Math.sqrt(5))/2,n=[-1,r,0,1,r,0,-1,-r,0,1,-r,0,0,-1,r,0,1,r,0,-1,-r,0,1,-r,r,0,-1,r,0,1,-r,0,-1,-r,0,1],i=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],a="IcosahedronGeometry";super(n,i,a,e,A,t),this.type=a}static fromJSON(e){return new In(e.radius,e.corner,e.cornerSides)}};import{LatheGeometry as sS,Shape as aS}from"three";var wf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){(o.parameters?.points??[]).forEach(t=>{Array.isArray(t)&&(t.x=t[0],t.y=t[1])});let A=Object.assign({},e?.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}]},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{points:e,segments:A,verticalSegments:t}=o.parameters,r=new aS;r.moveTo(e[0].x,e[0].y),r.bezierCurveTo(e[1].x,e[1].y,e[2].x,e[2].y,e[3].x,e[3].y);let n=new sS(r.extractPoints(t).shape,A);return n.rotateZ(Math.PI),Object.assign(n,{userData:{...o,type:"LatheGeometry"}})}};import{BufferGeometry as Cf,BufferGeometryLoader as gS,Vector3 as xS,BoxGeometry as If}from"three";import{BufferGeometry as fS,Vector2 as gl,Vector3 as Pf}from"three";import{Box3 as lS,BufferAttribute as Ln,BufferGeometry as Sf,Color as Of,EventDispatcher as cS,Float32BufferAttribute as Po,Matrix3 as Tf,Matrix4 as Nf,MathUtils as uS,Object3D as dS,Sphere as pS,Vector2 as Fe,Vector3 as se}from"three";var dt=new Nf,hl=new dS,Ms=new se,sr=class extends cS{constructor(){super(),this.uuid=uS.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(e){let A=new Tf().getNormalMatrix(e);for(let t=0,r=this.vertices.length;t<r;t++)this.vertices[t].applyMatrix4(e);for(let t=0,r=this.faces.length;t<r;t++){let n=this.faces[t];n.normal.applyMatrix3(A).normalize();for(let i=0,a=n.vertexNormals.length;i<a;i++)n.vertexNormals[i].applyMatrix3(A).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(e){return dt.makeRotationX(e),this.applyMatrix4(dt),this}rotateY(e){return dt.makeRotationY(e),this.applyMatrix4(dt),this}rotateZ(e){return dt.makeRotationZ(e),this.applyMatrix4(dt),this}translate(e,A,t){return dt.makeTranslation(e,A,t),this.applyMatrix4(dt),this}scale(e,A,t){return dt.makeScale(e,A,t),this.applyMatrix4(dt),this}lookAt(e){return hl.lookAt(e),hl.updateMatrix(),this.applyMatrix4(hl.matrix),this}fromBufferGeometry(e){let A=this,t=e.index!==null?e.index:void 0,r=e.attributes;if(r.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let n=r.position,i=r.normal,a=r.color,l=r.uv,u=r.uv2;u!==void 0&&(this.faceVertexUvs[1]=[]);for(let d=0;d<n.count;d++)A.vertices.push(new se().fromBufferAttribute(n,d)),a!==void 0&&A.colors.push(new Of().fromBufferAttribute(a,d));function s(d,p,f,m){let h=a===void 0?[]:[A.colors[d].clone(),A.colors[p].clone(),A.colors[f].clone()],g=i===void 0?[]:[new se().fromBufferAttribute(i,d),new se().fromBufferAttribute(i,p),new se().fromBufferAttribute(i,f)],x=new Co(d,p,f,g,h,m);A.faces.push(x),l!==void 0&&A.faceVertexUvs[0].push([new Fe().fromBufferAttribute(l,d),new Fe().fromBufferAttribute(l,p),new Fe().fromBufferAttribute(l,f)]),u!==void 0&&A.faceVertexUvs[1].push([new Fe().fromBufferAttribute(u,d),new Fe().fromBufferAttribute(u,p),new Fe().fromBufferAttribute(u,f)])}let c=e.groups;if(c.length>0)for(let d=0;d<c.length;d++){let p=c[d],f=p.start,m=p.count;for(let h=f,g=f+m;h<g;h+=3)t!==void 0?s(t.getX(h),t.getX(h+1),t.getX(h+2),p.materialIndex):s(h,h+1,h+2,p.materialIndex)}else if(t!==void 0)for(let d=0;d<t.count;d+=3)s(t.getX(d),t.getX(d+1),t.getX(d+2));else for(let d=0;d<n.count;d+=3)s(d,d+1,d+2);return this.computeFaceNormals(),e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Ms).negate(),this.translate(Ms.x,Ms.y,Ms.z),this}normalize(){this.computeBoundingSphere();let e=this.boundingSphere.center,A=this.boundingSphere.radius,t=A===0?1:1/A,r=new Nf;return r.set(t,0,0,-t*e.x,0,t,0,-t*e.y,0,0,t,-t*e.z,0,0,0,1),this.applyMatrix4(r),this}computeFaceNormals(){let e=new se,A=new se;for(let t=0,r=this.faces.length;t<r;t++){let n=this.faces[t],i=this.vertices[n.a],a=this.vertices[n.b],l=this.vertices[n.c];e.subVectors(l,a),A.subVectors(i,a),e.cross(A),e.normalize(),n.normal.copy(e)}}computeVertexNormals(e=!0){let A=new Array(this.vertices.length);for(let t=0,r=this.vertices.length;t<r;t++)A[t]=new se;if(e){let t=new se,r=new se;for(let n=0,i=this.faces.length;n<i;n++){let a=this.faces[n],l=this.vertices[a.a],u=this.vertices[a.b],s=this.vertices[a.c];t.subVectors(s,u),r.subVectors(l,u),t.cross(r),A[a.a].add(t),A[a.b].add(t),A[a.c].add(t)}}else{this.computeFaceNormals();for(let t=0,r=this.faces.length;t<r;t++){let n=this.faces[t];A[n.a].add(n.normal),A[n.b].add(n.normal),A[n.c].add(n.normal)}}for(let t=0,r=this.vertices.length;t<r;t++)A[t].normalize();for(let t=0,r=this.faces.length;t<r;t++){let n=this.faces[t],i=n.vertexNormals;i.length===3?(i[0].copy(A[n.a]),i[1].copy(A[n.b]),i[2].copy(A[n.c])):(i[0]=A[n.a].clone(),i[1]=A[n.b].clone(),i[2]=A[n.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let e=0,A=this.faces.length;e<A;e++){let t=this.faces[e],r=t.vertexNormals;r.length===3?(r[0].copy(t.normal),r[1].copy(t.normal),r[2].copy(t.normal)):(r[0]=t.normal.clone(),r[1]=t.normal.clone(),r[2]=t.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let A=0,t=this.faces.length;A<t;A++){let r=this.faces[A];r.__originalFaceNormal?r.__originalFaceNormal.copy(r.normal):r.__originalFaceNormal=r.normal.clone(),r.__originalVertexNormals||(r.__originalVertexNormals=[]);for(let n=0,i=r.vertexNormals.length;n<i;n++)r.__originalVertexNormals[n]?r.__originalVertexNormals[n].copy(r.vertexNormals[n]):r.__originalVertexNormals[n]=r.vertexNormals[n].clone()}let e=new sr;e.faces=this.faces;for(let A=0,t=this.morphTargets.length;A<t;A++){if(!this.morphNormals[A]){this.morphNormals[A]={},this.morphNormals[A].faceNormals=[],this.morphNormals[A].vertexNormals=[];let n=this.morphNormals[A].faceNormals,i=this.morphNormals[A].vertexNormals;for(let a=0,l=this.faces.length;a<l;a++){let u=new se,s={a:new se,b:new se,c:new se};n.push(u),i.push(s)}}let r=this.morphNormals[A];e.vertices=this.morphTargets[A].vertices,e.computeFaceNormals(),e.computeVertexNormals();for(let n=0,i=this.faces.length;n<i;n++){let a=this.faces[n],l=r.faceNormals[n],u=r.vertexNormals[n];l.copy(a.normal),u.a.copy(a.vertexNormals[0]),u.b.copy(a.vertexNormals[1]),u.c.copy(a.vertexNormals[2])}}for(let A=0,t=this.faces.length;A<t;A++){let r=this.faces[A];r.normal=r.__originalFaceNormal,r.vertexNormals=r.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new lS),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new pS),this.boundingSphere.setFromPoints(this.vertices)}merge(e,A,t=0){if(!(e&&e.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",e);return}let r,n=this.vertices.length,i=this.vertices,a=e.vertices,l=this.faces,u=e.faces,s=this.colors,c=e.colors;A!==void 0&&(r=new Tf().getNormalMatrix(A));for(let d=0,p=a.length;d<p;d++){let m=a[d].clone();A!==void 0&&m.applyMatrix4(A),i.push(m)}for(let d=0,p=c.length;d<p;d++)s.push(c[d].clone());for(let d=0,p=u.length;d<p;d++){let f=u[d],m,h,g=f.vertexNormals,x=f.vertexColors,w=new Co(f.a+n,f.b+n,f.c+n);w.normal.copy(f.normal),r!==void 0&&w.normal.applyMatrix3(r).normalize();for(let v=0,b=g.length;v<b;v++)m=g[v].clone(),r!==void 0&&m.applyMatrix3(r).normalize(),w.vertexNormals.push(m);w.color.copy(f.color);for(let v=0,b=x.length;v<b;v++)h=x[v],w.vertexColors.push(h.clone());w.materialIndex=f.materialIndex+t,l.push(w)}for(let d=0,p=e.faceVertexUvs.length;d<p;d++){let f=e.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let m=0,h=f.length;m<h;m++){let g=f[m],x=[];for(let w=0,v=g.length;w<v;w++)x.push(g[w].clone());this.faceVertexUvs[d].push(x)}}}mergeMesh(e){if(!(e&&e.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",e);return}e.matrixAutoUpdate&&e.updateMatrix(),this.merge(e.geometry,e.matrix)}mergeVertices(e=4){let A={},t=[],r=[],n=Math.pow(10,e);for(let l=0,u=this.vertices.length;l<u;l++){let s=this.vertices[l],c=Math.round(s.x*n)+"_"+Math.round(s.y*n)+"_"+Math.round(s.z*n);A[c]===void 0?(A[c]=l,t.push(this.vertices[l]),r[l]=t.length-1):r[l]=r[A[c]]}let i=[];for(let l=0,u=this.faces.length;l<u;l++){let s=this.faces[l];s.a=r[s.a],s.b=r[s.b],s.c=r[s.c];let c=[s.a,s.b,s.c];for(let d=0;d<3;d++)if(c[d]===c[(d+1)%3]){i.push(l);break}}for(let l=i.length-1;l>=0;l--){let u=i[l];this.faces.splice(u,1);for(let s=0,c=this.faceVertexUvs.length;s<c;s++)this.faceVertexUvs[s].splice(u,1)}let a=this.vertices.length-t.length;return this.vertices=t,a}setFromPoints(e){this.vertices=[];for(let A=0,t=e.length;A<t;A++){let r=e[A];this.vertices.push(new se(r.x,r.y,r.z||0))}return this}sortFacesByMaterialIndex(){let e=this.faces,A=e.length;for(let l=0;l<A;l++)e[l]._id=l;function t(l,u){return l.materialIndex-u.materialIndex}e.sort(t);let r=this.faceVertexUvs[0],n=this.faceVertexUvs[1],i,a;r&&r.length===A&&(i=[]),n&&n.length===A&&(a=[]);for(let l=0;l<A;l++){let u=e[l]._id;i&&i.push(r[u]),a&&a.push(n[u])}i&&(this.faceVertexUvs[0]=i),a&&(this.faceVertexUvs[1]=a)}toJSON(){let e={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,this.name!==""&&(e.name=this.name),this.parameters!==void 0){let f=this.parameters;for(let m in f)f[m]!==void 0&&(e[m]=f[m]);return e}let A=[];for(let f=0;f<this.vertices.length;f++){let m=this.vertices[f];A.push(m.x,m.y,m.z)}let t=[],r=[],n={},i=[],a={},l=[],u={};for(let f=0;f<this.faces.length;f++){let m=this.faces[f],h=!0,g=!1,x=this.faceVertexUvs[0][f]!==void 0,w=m.normal.length()>0,v=m.vertexNormals.length>0,b=m.color.r!==1||m.color.g!==1||m.color.b!==1,N=m.vertexColors.length>0,S=0;if(S=s(S,0,0),S=s(S,1,h),S=s(S,2,g),S=s(S,3,x),S=s(S,4,w),S=s(S,5,v),S=s(S,6,b),S=s(S,7,N),t.push(S),t.push(m.a,m.b,m.c),t.push(m.materialIndex),x){let y=this.faceVertexUvs[0][f];t.push(p(y[0]),p(y[1]),p(y[2]))}if(w&&t.push(c(m.normal)),v){let y=m.vertexNormals;t.push(c(y[0]),c(y[1]),c(y[2]))}if(b&&t.push(d(m.color)),N){let y=m.vertexColors;t.push(d(y[0]),d(y[1]),d(y[2]))}}function s(f,m,h){return h?f|1<<m:f&~(1<<m)}function c(f){let m=f.x.toString()+f.y.toString()+f.z.toString();return n[m]!==void 0||(n[m]=r.length/3,r.push(f.x,f.y,f.z)),n[m]}function d(f){let m=f.r.toString()+f.g.toString()+f.b.toString();return a[m]!==void 0||(a[m]=i.length,i.push(f.getHex())),a[m]}function p(f){let m=f.x.toString()+f.y.toString();return u[m]!==void 0||(u[m]=l.length/2,l.push(f.x,f.y)),u[m]}return e.data={},e.data.vertices=A,e.data.normals=r,i.length>0&&(e.data.colors=i),l.length>0&&(e.data.uvs=[l]),e.data.faces=t,e}clone(){return new sr().copy(this)}copy(e){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=e.name;let A=e.vertices;for(let d=0,p=A.length;d<p;d++)this.vertices.push(A[d].clone());let t=e.colors;for(let d=0,p=t.length;d<p;d++)this.colors.push(t[d].clone());let r=e.faces;for(let d=0,p=r.length;d<p;d++)this.faces.push(r[d].clone());for(let d=0,p=e.faceVertexUvs.length;d<p;d++){let f=e.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let m=0,h=f.length;m<h;m++){let g=f[m],x=[];for(let w=0,v=g.length;w<v;w++){let b=g[w];x.push(b.clone())}this.faceVertexUvs[d].push(x)}}let n=e.morphTargets;for(let d=0,p=n.length;d<p;d++){let f={};if(f.name=n[d].name,n[d].vertices!==void 0){f.vertices=[];for(let m=0,h=n[d].vertices.length;m<h;m++)f.vertices.push(n[d].vertices[m].clone())}if(n[d].normals!==void 0){f.normals=[];for(let m=0,h=n[d].normals.length;m<h;m++)f.normals.push(n[d].normals[m].clone())}this.morphTargets.push(f)}let i=e.morphNormals;for(let d=0,p=i.length;d<p;d++){let f={};if(i[d].vertexNormals!==void 0){f.vertexNormals=[];for(let m=0,h=i[d].vertexNormals.length;m<h;m++){let g=i[d].vertexNormals[m],x={};x.a=g.a.clone(),x.b=g.b.clone(),x.c=g.c.clone(),f.vertexNormals.push(x)}}if(i[d].faceNormals!==void 0){f.faceNormals=[];for(let m=0,h=i[d].faceNormals.length;m<h;m++)f.faceNormals.push(i[d].faceNormals[m].clone())}this.morphNormals.push(f)}let a=e.skinWeights;for(let d=0,p=a.length;d<p;d++)this.skinWeights.push(a[d].clone());let l=e.skinIndices;for(let d=0,p=l.length;d<p;d++)this.skinIndices.push(l[d].clone());let u=e.lineDistances;for(let d=0,p=u.length;d<p;d++)this.lineDistances.push(u[d]);let s=e.boundingBox;s!==null&&(this.boundingBox=s.clone());let c=e.boundingSphere;return c!==null&&(this.boundingSphere=c.clone()),this.elementsNeedUpdate=e.elementsNeedUpdate,this.verticesNeedUpdate=e.verticesNeedUpdate,this.uvsNeedUpdate=e.uvsNeedUpdate,this.normalsNeedUpdate=e.normalsNeedUpdate,this.colorsNeedUpdate=e.colorsNeedUpdate,this.lineDistancesNeedUpdate=e.lineDistancesNeedUpdate,this.groupsNeedUpdate=e.groupsNeedUpdate,this}toBufferGeometry(){let e=new yl().fromGeometry(this),A=new Sf,t=new Float32Array(e.vertices.length*3);if(A.setAttribute("position",new Ln(t,3).copyVector3sArray(e.vertices)),e.normals.length>0){let r=new Float32Array(e.normals.length*3);A.setAttribute("normal",new Ln(r,3).copyVector3sArray(e.normals))}if(e.colors.length>0){let r=new Float32Array(e.colors.length*3);A.setAttribute("color",new Ln(r,3).copyColorsArray(e.colors))}if(e.uvs.length>0){let r=new Float32Array(e.uvs.length*2);A.setAttribute("uv",new Ln(r,2).copyVector2sArray(e.uvs))}if(e.uvs2.length>0){let r=new Float32Array(e.uvs2.length*2);A.setAttribute("uv2",new Ln(r,2).copyVector2sArray(e.uvs2))}A.groups=e.groups;for(let r in e.morphTargets){let n=[],i=e.morphTargets[r];for(let a=0,l=i.length;a<l;a++){let u=i[a],s=new Po(u.data.length*3,3);s.name=u.name,n.push(s.copyVector3sArray(u.data))}A.morphAttributes[r]=n}if(e.skinIndices.length>0){let r=new Po(e.skinIndices.length*4,4);A.setAttribute("skinIndex",r.copyVector4sArray(e.skinIndices))}if(e.skinWeights.length>0){let r=new Po(e.skinWeights.length*4,4);A.setAttribute("skinWeight",r.copyVector4sArray(e.skinWeights))}return e.boundingSphere!==null&&(A.boundingSphere=e.boundingSphere.clone()),e.boundingBox!==null&&(A.boundingBox=e.boundingBox.clone()),A}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(e){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(e)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(e){let A=new Sf,t=e.geometry;if(e.isPoints||e.isLine){let r=new Po(t.vertices.length*3,3),n=new Po(t.colors.length*3,3);if(A.setAttribute("position",r.copyVector3sArray(t.vertices)),A.setAttribute("color",n.copyColorsArray(t.colors)),t.lineDistances&&t.lineDistances.length===t.vertices.length){let i=new Po(t.lineDistances.length,1);A.setAttribute("lineDistance",i.copyArray(t.lineDistances))}t.boundingSphere!==null&&(A.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(A.boundingBox=t.boundingBox.clone())}else e.isMesh&&(A=t.toBufferGeometry());return A}};sr.prototype.isGeometry=!0;var yl=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(e){let A=[],t,r,n,i=e.faces;for(r=0;r<i.length;r++){let a=i[r];a.materialIndex!==n&&(n=a.materialIndex,t!==void 0&&(t.count=r*3-t.start,A.push(t)),t={start:r*3,materialIndex:n})}t!==void 0&&(t.count=r*3-t.start,A.push(t)),this.groups=A}fromGeometry(e){let A=e.faces,t=e.vertices,r=e.faceVertexUvs,n=r[0]&&r[0].length>0,i=r[1]&&r[1].length>0,a=e.morphTargets,l=a.length,u;if(l>0){u=[];for(let g=0;g<l;g++)u[g]={name:a[g].name,data:[]};this.morphTargets.position=u}let s=e.morphNormals,c=s.length,d;if(c>0){d=[];for(let g=0;g<c;g++)d[g]={name:s[g].name,data:[]};this.morphTargets.normal=d}let p=e.skinIndices,f=e.skinWeights,m=p.length===t.length,h=f.length===t.length;t.length>0&&A.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let g=0;g<A.length;g++){let x=A[g];this.vertices.push(t[x.a],t[x.b],t[x.c]);let w=x.vertexNormals;if(w.length===3)this.normals.push(w[0],w[1],w[2]);else{let b=x.normal;this.normals.push(b,b,b)}let v=x.vertexColors;if(v.length===3)this.colors.push(v[0],v[1],v[2]);else{let b=x.color;this.colors.push(b,b,b)}if(n===!0){let b=r[0][g];b!==void 0?this.uvs.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",g),this.uvs.push(new Fe,new Fe,new Fe))}if(i===!0){let b=r[1][g];b!==void 0?this.uvs2.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",g),this.uvs2.push(new Fe,new Fe,new Fe))}for(let b=0;b<l;b++){let N=a[b].vertices;u[b].data.push(N[x.a],N[x.b],N[x.c])}for(let b=0;b<c;b++){let N=s[b].vertexNormals[g];d[b].data.push(N.a,N.b,N.c)}m&&this.skinIndices.push(p[x.a],p[x.b],p[x.c]),h&&this.skinWeights.push(f[x.a],f[x.b],f[x.c])}return this.computeGroups(e),this.verticesNeedUpdate=e.verticesNeedUpdate,this.normalsNeedUpdate=e.normalsNeedUpdate,this.colorsNeedUpdate=e.colorsNeedUpdate,this.uvsNeedUpdate=e.uvsNeedUpdate,this.groupsNeedUpdate=e.groupsNeedUpdate,e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),this}},Co=class{constructor(e,A,t,r,n,i=0){this.a=e,this.b=A,this.c=t,this.normal=r&&r.isVector3?r:new se,this.vertexNormals=Array.isArray(r)?r:[],this.color=n&&n.isColor?n:new Of,this.vertexColors=Array.isArray(n)?n:[],this.materialIndex=i}clone(){return new this.constructor().copy(this)}copy(e){this.a=e.a,this.b=e.b,this.c=e.c,this.normal.copy(e.normal),this.color.copy(e.color),this.materialIndex=e.materialIndex;for(let A=0,t=e.vertexNormals.length;A<t;A++)this.vertexNormals[A]=e.vertexNormals[A].clone();for(let A=0,t=e.vertexColors.length;A<t;A++)this.vertexColors[A]=e.vertexColors[A].clone();return this}};var mS=["a","b","c"];function hS(o,e){switch(e){case"c":return o.c;case"b":return o.b;case"a":default:return o.a}}function xl(o,e,A){let t=Math.min(o,e),r=Math.max(o,e),n=t+"_"+r;return A.get(n)}function vl(o,e,A,t,r,n){let i=Math.min(o,e),a=Math.max(o,e),l=i+"_"+a,u;if(t.has(l))u=t.get(l);else{let s=A[i],c=A[a];u={a:s,b:c,newEdge:null,faces:[]},t.set(l,u)}u.faces.push(r),n[o].edges.push(u),n[e].edges.push(u)}function yS(o,e,A,t){let r,n,i;for(r=0,n=o.length;r<n;r++)A[r]={edges:[]};for(r=0,n=e.length;r<n;r++)i=e[r],vl(i.a,i.b,o,t,i,A),vl(i.b,i.c,o,t,i,A),vl(i.c,i.a,o,t,i,A)}function Bs(o,e,A,t,r){o.push(new Co(e,A,t,void 0,void 0,r))}function Io(o,e){return Math.abs(e-o)/2+Math.min(o,e)}function Es(o,e,A,t){o.push([e.clone(),A.clone(),t.clone()])}var Ds=class{constructor(e=1){this.subdivisions=e}modify(e){e instanceof fS?e=new sr().fromBufferGeometry(e):e=e.clone(),e.mergeVertices();let A=this.subdivisions;for(;A-- >0;)this._smooth(e);return e.computeFaceNormals(),e.computeVertexNormals(),e}_smooth(e){let A=new Pf,t,r,n,i,a,l=e.vertices,u=e.faces,s=e.faceVertexUvs[0],c=s!==void 0&&s.length>0,d=[],p=new Map;yS(l,u,d,p);let f=[],m,h,g,x,w,v,b;for(let W of Array.from(p.keys())){for(h=p.get(W),g=new Pf,w=3/8,v=1/8,b=h.faces.length,b!=2&&(w=.5,v=0,b!=1),g.addVectors(h.a,h.b).multiplyScalar(w),A.set(0,0,0),i=0;i<b;i++){for(x=h.faces[i],a=0;a<3&&(m=l[hS(x,mS[a])],!(m!==h.a&&m!==h.b));a++);m&&A.add(m)}A.multiplyScalar(v),g.add(A),h.newEdge=f.length,f.push(g)}let N,S,y,P,O,C,T,L=[];for(r=0,n=l.length;r<n;r++){for(C=l[r],O=d[r].edges,t=O.length,t==3?N=3/16:t>3&&(N=3/(8*t)),S=1-t*Number(N),y=N,t<=2&&(t==2?(S=3/4,y=1/8):t==1||t==0),T=C.clone().multiplyScalar(S),A.set(0,0,0),i=0;i<t;i++)P=O[i],m=P.a!==C?P.a:P.b,A.add(m);A.multiplyScalar(Number(y)),T.add(A),L.push(T)}let B=L.concat(f),k=L.length,X,eA,nA,U=[],q=[],Q,j,E,G,D=new gl,H=new gl,Y=new gl;for(r=0,n=u.length;r<n;r++)x=u[r],X=Number(xl(x.a,x.b,p).newEdge)+k,eA=Number(xl(x.b,x.c,p).newEdge)+k,nA=Number(xl(x.c,x.a,p).newEdge)+k,Bs(U,X,eA,nA,x.materialIndex),Bs(U,x.a,X,nA,x.materialIndex),Bs(U,x.b,eA,X,x.materialIndex),Bs(U,x.c,nA,eA,x.materialIndex),c&&(Q=s[r],j=Q[0],E=Q[1],G=Q[2],D.set(Io(j.x,E.x),Io(j.y,E.y)),H.set(Io(E.x,G.x),Io(E.y,G.y)),Y.set(Io(j.x,G.x),Io(j.y,G.y)),Es(q,D,H,Y),Es(q,j,D,Y),Es(q,E,H,D),Es(q,G,Y,H));e.vertices=B,e.faces=U,c&&(e.faceVertexUvs[0]=q)}};var UA=new xS,Lf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=o.geometry??e?.geometry??new Cf().copy(new If(100,100,100)),t;e===void 0?(A.computeBoundingBox(),A.boundingBox.getSize(UA),t={width:UA.x,height:UA.y,depth:UA.z,subdivisions:0}):t=e.parameters;let r={...t,...o.parameters};return{parameters:{width:Math.abs(r.width),height:Math.abs(r.height),depth:Math.abs(r.depth),subdivisions:Math.abs(r.subdivisions)},geometry:A}}static build(o){let{width:e,height:A,depth:t,subdivisions:r}=o.parameters,n=o.geometry??new Cf().copy(new If(100,100,100)),i=n.userData.parameters;i===void 0?(n.computeBoundingBox(),n.boundingBox.getSize(UA)):UA.set(i.width,i.height,i.depth),(e!==UA.x||A!==UA.y||t!==UA.z)&&n.scale(UA.x===0?1:e/UA.x,UA.y===0?1:A/UA.y,UA.z===0?1:t/UA.z);let a=n.originalGeometry;return r>0?(a===void 0||i?.subdivisions!==r)&&(a===void 0&&(a=n),n=new Ds(r).modify(a).toBufferGeometry()):(a!==void 0&&(n=a),a=void 0,n.getAttribute("normal")===void 0&&n.computeVertexNormals()),a!==void 0&&Object.assign(n,{originalGeometry:a}),delete o.geometry,Object.assign(n,{userData:{...o,type:"NonParametricGeometry"}})}static loadFromUrl(o,e,A){new gS(A).load(o,r=>{let n=this.normalizeInputs({geometry:r});r.boundingBox.getSize(UA);let i=100/UA.x;Object.assign(n.parameters,{width:100,height:UA.y*i,depth:UA.z*i}),e(this.build(n))})}};var Mf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},o.parameters);return{shape:o.shape&&o.shape instanceof vA?o.shape:new vA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:e,height:A,spikes:t,cornerRadius:r,depth:n,extrudeBevelSize:i,extrudeBevelSegments:a}=o.parameters,l=o.shape,u=e*.5,s=A*.5,c=0,d=0,p=2*Math.PI/t;for(let m=0;m<t;m++){let h=p*m,g=c+Math.sin(h)*u,x=d+Math.cos(h)*s;l.addPoint(l.createPoint(g,x))}l.isClosed=!0;for(let m=0,h=l.points.length;m<h;m++)l.points[m].roundness=r;l.roundness=r,l.update();let f=xe.create({shape:l,parameters:{roundness:r,depth:n,extrudeBevelSize:i,extrudeBevelSegments:a}});return Object.assign(f,{userData:{...o,type:"PolygonGeometry"}})}};import{BufferGeometry as vS,Float32BufferAttribute as bl,Vector2 as pt,Vector3 as XA}from"three";var Bf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,height:A,depth:t,radialSegments:r,heightSegments:n,openEnded:i,cornerRadius:a,cornerSegments:l}=o.parameters,u=new Sl(e*.5,A,r,n,i,a,l);return u.scale(1,1,t/e),Object.assign(u,{userData:{...o,type:"PyramidGeometry"}})}};function Mn(o,e,A){A.x=o.x*e.x,A.y=o.y,A.z=o.x*e.y}function wl(o,e,A,t,r,n){let i=e.clone().sub(o),a=A.clone().sub(o),l=i.angleTo(a);if(i.normalize(),a.normalize(),t===r){let u=i.add(a).normalize();n.copy(o).addScaledVector(u,t/Math.sin(l/2))}else{let u=i.angleTo(a);n.copy(o),n.addScaledVector(i,r/Math.sin(u)),n.addScaledVector(a,t/Math.sin(u))}}function bS(o,e,A){let t=o.clone().sub(e),r=A.clone().sub(e);return t.projectOnVector(r),t.add(e)}var Sl=class extends vS{constructor(e=.5,A=1,t=4,r=1,n=!1,i=0,a=4){super(),t=Math.floor(Math.max(3,t)),r=Math.floor(r),a=Math.floor(a);let l=[],u=[],s=[],c=[],d=0,p=A/2,f=Math.PI/t,m=e*Math.cos(Math.PI/t),h=2*Math.PI/t,g=(t-2)*Math.PI/t,x=Math.PI-g,w=new XA(0,-p,0),v=new XA(0,p,0),b=new pt(e,-p),N=new pt(m,-p),S=new pt(0,v.y).sub(N),y=new pt(0,v.y).sub(b),P=new pt(S.y,-S.x).normalize(),O=new pt(y.y,-y.x).normalize(),T=e*Math.cos(Math.PI/t)*Math.tan((Math.PI-S.angle())/2)-1e-8;i=Math.min(i,T);let L;{let q=new XA(P.x,P.y,0),Q=new XA(Math.cos(h)*q.x,q.y,Math.sin(h)*q.x);L=q.angleTo(Q)}let B=i/Math.tan((Math.PI-S.angle())/2),k=i/Math.tan((Math.PI-L)/2),X=new XA;if(!n){u.push(w.x,w.y,w.z),s.push(0,-1,0),c.push(0,0);let q=d++,Q=[],j=b.clone(),E=B/Math.cos(Math.PI/t);j.x-=E;for(let G=0;G<t;G++){let D=G/t*Math.PI*2+f,H=new pt(Math.sin(D),Math.cos(D));Mn(j,H,X),u.push(X.x,X.y,X.z),s.push(0,-1,0),c.push(0,0),Q.push(d++)}for(let G=0;G<Q.length;G++)l.push(Q[G],q,Q[(G+1)%Q.length])}let eA=[];{let q=new XA,Q=new XA,j=new XA,E=new XA,G=new XA,D=new XA;for(let H=0;H<t;H++){let Y=H/t*Math.PI*2+f,W=(H+.5)/t*Math.PI*2+f,F=(H+1)/t*Math.PI*2+f,R=new pt(Math.sin(Y),Math.cos(Y)),z=new pt(Math.sin(W),Math.cos(W)),$=new pt(Math.sin(F),Math.cos(F));Mn(b,R,Q),Mn(b,$,j),Mn(P,z,q),wl(v,Q,j,k,k,E),u.push(E.x,E.y,E.z),wl(Q,v,j,k,B,G),u.push(G.x,G.y,G.z),wl(j,Q,v,B,k,D),u.push(D.x,D.y,D.z),s.push(q.x,q.y,q.z),s.push(q.x,q.y,q.z),s.push(q.x,q.y,q.z),c.push(0,0),c.push(0,0),c.push(0,0);let rA=d++,iA=d++,tA=d++;if(l.push(rA,iA,tA),i>0){{let Z=Q.clone().add(j).multiplyScalar(.5),pA=v.clone().sub(Z).normalize(),yA=w.clone().sub(Z).normalize().add(pA).normalize().multiplyScalar(-1),QA=D.clone().sub(G);nA(Z,QA,yA,S.angle())}let AA,_;{let Z=new XA;Mn(O,$,Z);let pA=D.clone().add(E).multiplyScalar(.5);pA=bS(pA,j,v);let uA=D.clone().sub(E);[AA,_]=nA(pA,uA,Z,L,E.y)}{let Z=AA,pA=Z.clone().setY(0).normalize(),uA=new XA(0,-1,0),yA=pA.clone().cross(uA);U(Z,pA,uA,yA)}eA.concat(_);{let Z=S.angle(),pA=Math.PI-Z,uA=v.clone();uA.y-=i/Math.sin(Z-Math.PI/2);let yA=new XA,QA=[];for(let OA=0;OA<a;OA++){let IA=[],Le=Math.PI/2-pA*OA/a,zt=Math.cos(Le),Se=Math.sin(Le),pi=W;for(let fi=0;fi<=OA;fi++){let mi=Math.cos(pi),RA=Math.sin(pi);q.x=zt*RA,q.y=Se,q.z=zt*mi,yA.copy(uA).addScaledVector(q,i),u.push(yA.x,yA.y,yA.z),s.push(q.x,q.y,q.z),c.push(0,0),IA.push(d++),pi+=Math.PI*2/OA/t}QA.push(IA)}_.reverse(),QA.push(_);let SA=QA.length-1;for(let OA=0;OA<SA;OA++){let IA=QA[OA],Le=QA[OA+1],zt=IA.length-1;l.push(Le[1],IA[0],Le[0]);for(let Se=1;Se<=zt;Se++)l.push(IA[Se],IA[Se-1],Le[Se]),l.push(Le[Se+1],IA[Se],Le[Se])}}}}}this.setIndex(l),this.setAttribute("position",new bl(u,3)),this.setAttribute("normal",new bl(s,3)),this.setAttribute("uv",new bl(c,2));function nA(q,Q,j,E,G){let D=-E/2,H=(Math.PI-E)/2,Y=Q.clone().normalize().cross(j);q.addScaledVector(j,-i/Math.sin(H));let W=new XA,F=new XA,R=1,z=d,$=[];for(let rA=0;rA<=a;rA++){let iA=D+rA/a*E;F.set(0,0,0),F.addScaledVector(Y,Math.sin(iA)),F.addScaledVector(j,Math.cos(iA));for(let tA=0;tA<=R;tA++){let AA=tA/R-.5;if(W.copy(q),W.addScaledVector(Q,AA),W.addScaledVector(F,i),G!=null){let _=Math.max(0,W.y-G);W.addScaledVector(Q,-_/Q.y)}u.push(W.x,W.y,W.z),s.push(F.x,F.y,F.z),c.push(0,0),tA===0&&$.push(d),d++}}for(let rA=0;rA<a;rA++)for(let iA=0;iA<R;iA++){let tA=z+iA+(R+1)*rA,AA=tA+(R+1),_=AA+1,Z=tA+1;l.push(tA,AA,Z),l.push(AA,_,Z)}return[q.clone().addScaledVector(Q,.5),$]}function U(q,Q,j,E){let G=Math.PI/2,D=y.angle()-G,H=[],Y=new XA,W=new XA;for(let R=0;R<=a;R++){let z=[],$=R/a;for(let rA=0;rA<=R;rA++){let tA=((R?rA/R:0)-.5)*x,AA=Math.cos(tA),_=Math.sin(tA),Z=Math.atan(Math.tan(D)*AA),pA=(G+Z)*$,uA=Math.cos(pA),yA=Math.sin(pA);Y.set(0,0,0),Y.addScaledVector(Q,yA*AA),Y.addScaledVector(j,uA),Y.addScaledVector(E,yA*_),W.copy(q).addScaledVector(Y,i),u.push(W.x,W.y,W.z),s.push(Y.x,Y.y,Y.z),c.push(0,0),z.push(d++)}H.push(z)}let F=H.length-1;for(let R=0;R<F;R++){let z=H[R],$=H[R+1],rA=z.length-1;l.push(z[0],$[1],$[0]);for(let iA=1;iA<=rA;iA++)l.push(z[iA-1],z[iA],$[iA]),l.push(z[iA],$[iA+1],$[iA])}}}};var Ef=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},o.parameters),t=Object.assign(e?.ui??{enabledIndieCorners:!1},o.ui);return{shape:o.shape&&o.shape instanceof vA?o.shape:new vA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)}),ui:t}}static build(o){let e=o.shape,{width:A,height:t,cornerRadius:r,cornerType:n,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}=o.parameters,u={x:A*.5,y:t*.5},s={x:-u.x,y:-u.y},c={x:u.x,y:u.y};function d(v,b,N){return b>A&&N>t?Math.min(v*A/b,v*t/N):b>A?v*A/b:N>t?v*t/N:v}let p=[];p[0]=r[0]===0?0:d(r[0],r[0]+r[3],r[0]+r[1]),p[1]=r[1]===0?0:d(r[1],r[1]+r[2],r[1]+r[0]),p[2]=r[2]===0?0:d(r[2],r[2]+r[1],r[2]+r[3]),p[3]=r[3]===0?0:d(r[3],r[3]+r[0],r[3]+r[2]);let f=s.x,m=c.x,h=c.y,g=s.y;e.addPoint(e.createPoint(f,h)),e.addPoint(e.createPoint(m,h)),e.addPoint(e.createPoint(m,g)),e.addPoint(e.createPoint(f,g)),e.isClosed=!0;let x=!0;for(let v=0,b=e.points.length;v<b;v++)e.points[v].roundness=p[v],v>0&&p[v]!==p[v-1]&&(x=!1);x&&(e.roundness=p[0]),e.useCubicForRoundedCorners=n!==1,e.update();let w=xe.create({shape:e,parameters:{depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}});return Object.assign(w,{userData:{...o,type:"RectangleGeometry"}})}};import{SphereGeometry as wS}from"three";var Df=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e=100,height:A=e,depth:t=e,widthSegments:r=64,heightSegments:n=64,phiStart:i,phiLength:a,thetaStart:l,thetaLength:u}=o.parameters,s=new wS(.5*e,r,n,i,a,l,u);return s.scale(1,A/e,t/e),Object.assign(s,{userData:{...o,type:"SphereGeometry"}})}};import{PlaneGeometry as SS}from"three";var Gf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:0})}}static build(o){let{width:e=100,height:A=e,widthSegments:t=8,heightSegments:r=8}=o.parameters,n=new SS(e,A,t,r);return n.scale(1,1,1),Object.assign(n,{userData:{...o,type:"PlaneGeometry"}})}};import{BufferGeometry as TS,Float32BufferAttribute as Tl,Vector3 as OS}from"three";var Rf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,height:A,depth:t,angle:r,cornerRadius:n,cornerSegments:i}=o.parameters,a=new Ol(e,A,t,r,n,i);return Object.assign(a,{userData:{...o,type:"BackdropGeometry"}})}},Ol=class extends TS{constructor(e=1,A=1,t=1,r=90,n=10,i=24){super(),this.type="BackdropGeometry";let a=[],l=[],u=[],s=.001;n==0&&(i=1),i=Math.max(1,Math.floor(i)),n=Math.min(n,100),r=Math.min(180-s,r),r*=Math.PI/180;let c=[],d=Math.PI/2,p=(W=0,F=0,R=0)=>new OS(W,F,R),f=p(),m=p(),[h,g,x]=[A/2,e/2,t/2],w=-g,v=+g,[b,N,S]=[p(w,-h,+x),p(w,-h,-x),p(w,+h,-x)],y=(W,F=!1)=>Math.sin(W-Math.PI/(1+ +F)),P=(W,F=!1)=>Math.cos(W-Math.PI/(1+ +F));S.y=Math.sin(r)*A-h;let O=Math.cos(r)*A-x,C=b.z-s;r<=d?(S.z=Math.min(O,C),S.z==C&&(S.y-=(O-C)/Math.tan(d-r))):N.z=Math.min(N.z-O-x,b.z-s),f.subVectors(b,N),m.subVectors(S,N);let T=Math.min(f.length(),m.length())*n/100,L=T*Math.tan(r/2),B=T/Math.cos(r/2),k=f.clone().normalize().add(m.normalize()).setLength(B).add(N);f.set(0,y(r,!0),P(r,!0)),c.push([S,f.clone()]);let X=(Math.PI-r)/i;for(let W=0;W<=i;W++){let F=d+r+W*X;f.set(0,Math.sin(F)*L,Math.cos(F)*L),f.add(k),m.set(0,y(F),P(F)),c.push([f.clone(),m.clone()])}c.push([b,p(0,1,0)]);let eA=Math.sin(X/2)*L*2,nA=c.length-1,U=c[0][0].distanceTo(c[1][0]),q=c[nA-1][0].distanceTo(c[nA][0]),Q=U+eA*i+q;c[0].push(1);for(let W=0;W<=i;W++)c[W+1].push(1-(U+W*eA)/Q);c[nA].push(0);let[j,E,G]=c[0],D,H,Y;for(let W=1;W<c.length;W++)[D,H,Y]=c[W],a.push(w,j.y,j.z,w,D.y,D.z,v,j.y,j.z,v,j.y,j.z,w,D.y,D.z,v,D.y,D.z),l.push(0,E.y,E.z,0,H.y,H.z,0,E.y,E.z,0,E.y,E.z,0,H.y,H.z,0,H.y,H.z),u.push(0,G,0,Y,1,G,1,G,0,Y,1,Y),[j,E,G]=[D,H,Y];this.setAttribute("position",new Tl(a,3)),this.setAttribute("normal",new Tl(l,3)),this.setAttribute("uv",new Tl(u,2))}};var Vf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},o.parameters);return{shape:o.shape&&o.shape instanceof vA?o.shape:new vA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:e,height:A,innerRadiusPercent:t,spikes:r,cornerRadius:n,angle:i,depth:a,extrudeBevelSize:l,extrudeBevelSegments:u}=o.parameters,s=o.shape,c=e*.5,d=A*.5,p=0,f=0,m=i*Math.PI/360/r,h=Math.PI/2*3*-1,g=c*t/100,x=d*t/100;if(r===3&&t===50){m=2*Math.PI/r;for(let v=0;v<r;v++){let b=m*v,N=p+Math.sin(b)*c,S=f+Math.cos(b)*d;s.addPoint(s.createPoint(N,S))}}else for(let v=0;v<r;v++){let b=p+Math.cos(h)*c,N=f+Math.sin(h)*d;s.addPoint(s.createPoint(b,N)),h+=m,b=p+Math.cos(h)*g,N=f+Math.sin(h)*x,v<=r,s.addPoint(s.createPoint(b,N)),h+=m}s.isClosed=!0;for(let v=0,b=s.points.length;v<b;v++)s.points[v].roundness=n;s.roundness=n,s.update();let w=xe.create({shape:s,parameters:{roundness:n,depth:a,extrudeBevelSize:l,extrudeBevelSegments:u}});return Object.assign(w,{userData:{...o,type:"StarGeometry"}})}};import{PlaneGeometry as NS}from"three";var Ff=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:e,height:A}=o.parameters,t=new NS(e,A);return Object.assign(t,{userData:{...o,type:"TextFrameGeometry"}})}};var jf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},o.parameters),t=Math.abs(A.width),r=Math.abs(A.height??A.width),n=Math.round(Math.abs(A.depth??A.width*.25));return{parameters:Object.assign(A,{width:t,height:r,depth:n})}}static build(o){let{width:e,height:A,depth:t,radialSegments:r,tubularSegments:n,arc:i,cornerRadius:a,cornerSegments:l}=o.parameters,u=PS(e,A,t,e*.5,i,n,0,0,r,a,l);return u.scale(1,A/e,1),Object.assign(u,{userData:{...o,type:"TorusGeometry"}})}};function PS(o,e,A,t,r,n,i,a,l,u,s){return[e,A]=[A,e],i=e/2,r/=2*Math.PI,r==1&&(u=0),new Cn(!0,o,e,A,t,r,n,i,a,l,u,s)}import{TorusKnotGeometry as CS}from"three";var zf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width),tube:A.tube??A.width*.125})}}static build(o){let{width:e,tube:A,tubularSegments:t,radialSegments:r,p:n,q:i}=o.parameters,a=e*.5;a!==A&&(a-=A);let l=new CS(a,A,t,r,n,i);return Object.assign(l,{userData:{...o,type:"TorusKnotGeometry"}})}};var kf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},o.parameters);return{shape:o.shape&&o.shape instanceof vA?o.shape:new vA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width*(A.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(A.depth??0)})}}static build(o){let{width:e=100,height:A,cornerRadius:t,depth:r,extrudeBevelSize:n,extrudeBevelSegments:i,isRect:a}=o.parameters,l=o.shape,u=e*.5,s=A*.5;a?(l.addPoint(l.createPoint(-u,s)),l.addPoint(l.createPoint(u,-s)),l.addPoint(l.createPoint(-u,-s))):(l.addPoint(l.createPoint(0,s)),l.addPoint(l.createPoint(u,-s)),l.addPoint(l.createPoint(-u,-s))),l.isClosed=!0;for(let d=0,p=l.points.length;d<p;d++)l.points[d].roundness=t;l.roundness=t,l.update();let c=xe.create({shape:l,parameters:{roundness:t,depth:r,extrudeBevelSize:n,extrudeBevelSegments:i}});return Object.assign(c,{userData:{...o,type:"TriangleGeometry"}})}};import{BufferAttribute as Uf,BufferGeometry as Nl}from"three";import{mergeBufferGeometries as IS}from"three/examples/jsm/utils/BufferGeometryUtils.js";function LS(){let o=new Nl;return o.setAttribute("position",new Uf(new Float32Array([]),3)),o.setIndex(new Uf(new Uint16Array([]),1)),o}var MS=12,BS=1,Lo=class extends Nl{constructor(A,t){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.isLowResolution=!1;this.vectorShapes=[];this.userData={parameters:A,type:"TextGeometry"};let r=t.getFont(A.font);r?.isLoaded?(this.font=r,this.update(A)):this.updateFont(A.font,t).then(()=>{this.update(A),t._onFontLoad()})}async updateFont(A,t){let r=t.getFont(A);r&&(this.font=r,await r.loadingPromise)}update(A){let t=this.font;if(this.userData={parameters:A,type:"TextGeometry"},!t?.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:r,height:n,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l,text:u,textTransform:s}=A,c=s===2?u.toUpperCase():s===3?u.toLowerCase():u,d=ES(A,t,c),{shapes:p,charWidths:f,charCoords:m}=t.generateShapes(d,A),h=r*.5,g=n*.5,x=p.map(b=>new vA().fromShape(b));this.vectorShapes=x;let w=x.map(b=>xe.create({shape:b,parameters:{depth:i,extrudeBevelSegments:l,extrudeBevelSize:a,windingRule:i<=0?LA.NONZERO:LA.ODD,subdivisions:this.isLowResolution&&i>0?BS:MS}})),v=w.length?IS(w):LS();v.translate(-h,g,0),this.dispose(),this.wrappedText=d,this.charCoords=m,this.charWidths=f,this.deleteAttribute("extrudeNormal"),Object.entries(v.attributes).forEach(([b,N])=>{this.setAttribute(b,N)}),this.setIndex(v.index),this.computeBoundingSphere()}clone(){let A=tr(new Nl,Lo.prototype);return A.copy(this),console.log("CloneGeometry",this,A),A}copy(A){return Object.entries(A.attributes).forEach(([t,r])=>{this.setAttribute(t,r)}),this.setIndex(A.index),this.userData={parameters:{...A.userData.parameters},type:"TextGeometry"},this}async setText(A){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:A})}get text(){return this.userData.parameters.text??""}};function ES(o,e,A){A=A??o.text;let t=[""],r="";for(let n of A)r+=n,n===" "||n===`
|
|
2
2
|
`?(t[t.length-1]+=r,r="",n===`
|
|
3
|
-
`&&t.push("")):e.getTextWidth(t[t.length-1]+r,o)>o.width&&(t[t.length-1].length&&t.push(""),e.getTextWidth(t[t.length-1]+r,o)>o.width&&(r.length===1?(t[t.length-1]+=r,r=""):(t[t.length-1]+=r.slice(0,-1),r=r[r.length-1],t.push(""))));return t[t.length-1]+=r,t}import{BufferGeometry as em,BufferAttribute as tm,Uint32BufferAttribute as Pl,Float32BufferAttribute as Ol,Matrix4 as cS,Vector3 as js}from"three";import{BufferGeometryLoader as aS}from"three";function Vs(o,e){return lS(o)}function lS(o){let e={parameters:o,type:o.type};if(o.type==="VectorGeometry"){let t=vA.createFromState(o.shape,o.width,o.height);e.shape=t}else o.type==="NonParametricGeometry"&&(o.data.groups&&o.data.groups.forEach(t=>t.materialIndex=Math.max(t.materialIndex??0,0)),e.geometry=new aS().parse(o));let A;try{A=Bn(e)}catch(t){console.error(t)}if(!A){let t=vA.createFromState(uo.defaultData(),100,100);e.shape=t,A=Bn(e)}return A}var cA;go.then(o=>{cA=o});var rm=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),om=new Uint32Array([0,1,2,3]),nm=new Uint8Array([4]),je=class{static build(o,e,A,t,r){let n,i,a,l=o?.phongAngle??e?.phongAngle??35;if(t===!1&&(l=-1),o.positionWASM!==void 0){A&&A!==0&&(cA.free_bvh(A),cA.free_subdivision_surface(A));try{n=je.allocate(o,r)}catch(u){console.error(u,o),n=je.allocate({positionWASM:rm,indexWASM:om,verticesPerFaceWASM:nm},r)}cA.set_destination_refinement_level(n,0),i=je.buildLevel(n,!0,l)}else n=A,o.phongAngle!==void 0&&(i=je.buildLevel(n,!0,l));return o.subdivisions!==void 0&&(cA.set_destination_refinement_level(n,o.subdivisions),o.subdivisions>0?a=je.buildLevel(n,!1,l):a=null),{subdivPointer:n,originalGeometry:i,subdividedGeometry:a}}static primitiveToQuads(o,e){o.widthSegments>16&&(o.widthSegments=16),o.heightSegments>16&&(o.heightSegments=16),o.depthSegments>16&&(o.depthSegments=16),o.radialSegments>16&&(o.radialSegments=16),o.type==="DodecahedronGeometry"&&(o.detail=0);let A=o.shape!==void 0?e.geometry:Vs(o),t,r,n,i;({positions:t,triIndices:i}=Bl(A.getAttribute("position"),A.getIndex()));let a;if(o.type==="CylinderGeometry"&&o.cornerRadius===0&&o.hollow===0&&o.openEnded===!1){let l=o.radialSegments*o.heightSegments*3*2,u=l+o.radialSegments*3;a=[l,u]}return{indices:r,verticesPerFace:n}=El(t,i,A,a),{positions:t,indices:r,verticesPerFace:n}}static allocate(o,e){let A,t,r,n=[],i=[];o.positionWASM&&o.positionWASM.length>0?(A=o.positionWASM,t=o.indexWASM,r=o.verticesPerFaceWASM):(A=rm,t=om,r=nm);let a=A.length,l=t.length,u=r.length,s=A.length+n.length+i.length,c=t.length+r.length,d=s*Float32Array.BYTES_PER_ELEMENT+c*Uint32Array.BYTES_PER_ELEMENT,p=s*Float32Array.BYTES_PER_ELEMENT,f=c*Uint32Array.BYTES_PER_ELEMENT,m=cA._malloc(d),h=new Float32Array(cA.HEAPF32.buffer,m,s),x=new Uint32Array(cA.HEAPU32.buffer,m+p,c);h.set(A,0),h.set(n,A.length),h.set(i,A.length+n.length),x.set(t,0),x.set(r,t.length);let y;o?.scaleBaked?.some(w=>w!==1)&&(y=new cS().makeScale(...o.scaleBaked)),e&&(y?y.premultiply(e):y=e);let b=y?cA.alloc_subdivision_surface2(m,a,m+p,l,m+p+t.length*Uint32Array.BYTES_PER_ELEMENT,u,y.elements):cA.alloc_subdivision_surface(m,a,m+p,l,m+p+t.length*Uint32Array.BYTES_PER_ELEMENT,u);return cA._free(m),b}static buildLevel(o,e,A,t,r){let n=r?cA.get_mesh_data2(o,e?cA.Level.CONTROL:cA.Level.REFINED,A,r.elements):cA.get_mesh_data(o,e?cA.Level.CONTROL:cA.Level.REFINED,A),i=8,a=cA.HEAPU32.subarray(n>>2,(n>>2)+i),l=a.subarray(4,4+4),u=0,s=cA.HEAPU32[a[u]>>2],c=cA.HEAPF32.subarray(s>>2,(s>>2)+l[u]);u++;let d=cA.HEAPU32[a[u]>>2],p=cA.HEAPF32.subarray(d>>2,(d>>2)+l[u]);u++;let f=cA.HEAPU32[a[u]>>2],m=cA.HEAPU32.subarray(f>>2,(f>>2)+l[u]);u++;let h=cA.HEAPU32[a[u]>>2],x=cA.HEAPU32.subarray(h>>2,(h>>2)+l[u]);if(u++,t===void 0){let y=new em;if(y.setIndex(new Pl(x,1)),y.setAttribute("position",new Ol(c,3)),y.setAttribute("normal",new Ol(p,3)),e){y.setAttribute("faceMap",new Pl(m,1));let b=new Float32Array(p.length/3*4).fill(0);y.setAttribute("color",new tm(b,4))}return cA.free_mesh_data(n),y.userData.type="SubdivGeometry",y}t.getAttribute("position").copyArray(c),t.getAttribute("normal").copyArray(p),t.attributes.position.needsUpdate=!0,t.attributes.normal.needsUpdate=!0,cA.free_mesh_data(n)}static buildControlCageWireframe(o,e,A){let t=cA.get_wireframe_data_for_base_level(o),r=4,n=cA.HEAPU32.subarray(t>>2,(t>>2)+r),i=n.subarray(2,2+2),a=0,l=cA.HEAPU32[n[a]>>2],u=cA.HEAPF32.subarray(l>>2,(l>>2)+i[a]);a++;let s=cA.HEAPU32[n[a]>>2],c=cA.HEAPU32.subarray(s>>2,(s>>2)+i[a]);if(e===void 0){let d=new em;d.setAttribute("position",new Ol(u,3));let p=new Float32Array(u.length);for(let f=0,m=u.length;f<m;)p[f++]=A.r,p[f++]=A.g,p[f++]=A.b;return d.setAttribute("color",new tm(p,3)),d.setIndex(new Pl(c,1)),cA.free_wireframe_data_for_base_level(t),d}e.getAttribute("position").copyArray(u),e.attributes.position.needsUpdate=!0,cA.free_wireframe_data_for_base_level(t)}static updateCollabMesh(o,e,A){let t=e===0;t||cA.set_destination_refinement_level(o,e);let r=A?cA.get_topological_data2(o,t?cA.Level.CONTROL:cA.Level.REFINED,A.elements):cA.get_topological_data(o,t?cA.Level.CONTROL:cA.Level.REFINED),n=6,i=cA.HEAPU32.subarray(r>>2,(r>>2)+n),a=i.subarray(3,3+3),l=0,u=cA.HEAPU32[i[l]>>2],s=new Float32Array(cA.HEAPF32.subarray(u>>2,(u>>2)+a[l]));l++;let c=cA.HEAPU32[i[l]>>2],d=new Uint32Array(cA.HEAPU32.subarray(c>>2,(c>>2)+a[l]));l++;let p=cA.HEAPU32[i[l]>>2],f=new Uint8Array(cA.HEAPU32.subarray(p>>2,(p>>2)+a[l]));return cA.free_topological_data(r),{positions:s,indices:d,verticesPerFace:f}}};var im=["getX","getY","getZ"];function Bl(o,e){let A={},t=e?e.count:o.count,r=0,n=[],i=[],a=1e4;for(let u=0;u<t;u++){let s=e?e.getX(u):u,c="";for(let d=0;d<3;d++)c+=`${~~(o[im[d]](s)*a)},`;if(c in A)n.push(A[c]);else{for(let d=0;d<3;d++)i.push(o[im[d]](s));A[c]=r,n.push(r),r++}}let l=[];for(let u=0;u<n.length;u+=3)n[u]===n[u+1]||n[u]===n[u+2]||n[u+1]===n[u+2]||l.push(n[u],n[u+1],n[u+2]);return{positions:i,triIndices:l}}var Fs=new js,Cl=new js,Ll=new js,Ml=new js;function El(o,e,A,t){let r=[],n=[];if(A.userData.shape!==void 0&&A.userData.parameters.depth===0&&A.userData.shape.shapeHoles.length===0){let i=A.userData.shape.extractShapePointsToFlatArray([]),a=A.userData.parameters.spikes;if(A.userData.type==="EllipseGeometry"&&a<=24&&a%4===0&&A.userData.parameters.angle>=360){let s=i.length/2/a;i=i.filter((c,d)=>Math.floor(d/2)%s===0)}let l=0;for(let s=0;s<i.length;s+=2)l+=(i[s]-i[(s===0?i.length:s)-2])*(i[s+1]+i[(s===0?i.length:s)-1]);o.length=0;let u=0;if(l<0)for(let s=0;s<i.length;s+=2)o.push(i[s],i[s+1],0),r.push(u++);else for(let s=i.length-2;s>=0;s-=2)o.push(i[s],i[s+1],0),r.push(u++);return n.push(u),{indices:r,verticesPerFace:n}}for(let i=0,a=A.capStartIndex??e.length;i<a;)if(e[i+1]===e[i+3]&&e[i+2]===e[i+5]||e[i+0]===e[i+3]&&e[i+2]===e[i+4]){Fs.set(o[e[i]*3],o[e[i]*3+1],o[e[i]*3+2]),Cl.set(o[e[i+1]*3],o[e[i+1]*3+1],o[e[i+1]*3+2]),Ll.set(o[e[i+4]*3],o[e[i+4]*3+1],o[e[i+4]*3+2]),Ml.set(o[e[i+5]*3],o[e[i+5]*3+1],o[e[i+5]*3+2]),Cl.sub(Fs).normalize(),Ll.sub(Fs).normalize(),Ml.sub(Fs).normalize();let l=Cl.cross(Ll).dot(Ml);Math.abs(l)>.005||t&&t.some((u,s)=>s%2===1?!1:i>=t[s]&&i<t[s+1])?(r.push(e[i],e[i+1],e[i+2]),n.push(3),i+=3):(r.push(e[i],e[i+1],e[i+4],e[i+5]),n.push(4),i+=6)}else r.push(e[i],e[i+1],e[i+2]),n.push(3),i+=3;if(A.capStartIndex!==void 0){let i=[],a=[],l=0,u=new Float32Array([A.userData.parameters.depth])[0];for(let s=0,c=0;s<o.length;s+=3,c++)o[s+2]===0&&(i.push(c),l++),o[s+2]===u&&a.push(c);if(A.userData.parameters.extrudeBevelSize===0){let s=a[0];a[0]=a[1],a[1]=s}i.reverse(),r.push(...i,...a),n.push(l,l)}return{indices:r,verticesPerFace:n}}var Ye={};Dh(Ye,{calcBoolean:()=>mS,calcBooleanTopological:()=>fS,freeMeshSet:()=>yS,getMeshSet:()=>hS,transformMeshSet:()=>gS});var uS,sm=new Promise(o=>{uS=o});import{Float32BufferAttribute as am,Sphere as dS}from"three";var hA,Do;sm.then(o=>hA=o);function pS(o,e,A){let t,{positions:r,triIndices:n}=Bl(o.getAttribute("position"),o.getIndex()),i;if(e&&A){let{indices:a,verticesPerFace:l}=El(r,n,o);i=l.length,t=[];for(let u=0,s=0;u<i;u++){t.push(l[u]);for(let c=0;c<l[u];c++)t.push(a[s++])}}else{let a=n.length;t=Array(a+a/3),i=0;for(let l=0,u=0;u<t.length;)t[u++]=3,i++,t[u++]=n[l++],t[u++]=n[l++],t[u++]=n[l++]}return{positions:r,faceIndices:t,nFaces:i}}function lm(o){let e=o.length,A=e*Uint32Array.BYTES_PER_ELEMENT,t=e*Float32Array.BYTES_PER_ELEMENT,r=Number.isInteger(o[0])?A:t,n=hA._malloc(r);return(Number.isInteger(o[0])?new Uint32Array(hA.HEAPU32.buffer,n,e):new Float32Array(hA.HEAPF32.buffer,n,e)).set(o,0),n}function cm(o){switch(o){case 0:return hA.OP.UNION;case 1:return hA.OP.INTERSECTION;case 2:return hA.OP.A_MINUS_B;case 3:return hA.OP.B_MINUS_A;case 4:return hA.OP.SYMMETRIC_DIFFERENCE;case 5:return hA.OP.ALL;default:throw new Error("Unknown boolean operation "+o)}}function fS(o,e){Do===void 0&&(Do=hA.init_csg());let A=lm(o),t=hA.csg_calc_topological(Do,A,o.length,cm(e));hA._free(A);let r=6,n=hA.HEAPU32.subarray(t>>2,(t>>2)+r),i=n.subarray(3,3+3),a=0,l=hA.HEAPU32[n[a]>>2],u=new Float32Array(hA.HEAPF32.subarray(l>>2,(l>>2)+i[a]));a++;let s=hA.HEAPU32[n[a]>>2],c=new Uint32Array(hA.HEAPU32.subarray(s>>2,(s>>2)+i[a]));a++;let d=hA.HEAPU32[n[a]>>2],p=new Uint8Array(hA.HEAPU32.subarray(d>>2,(d>>2)+i[a]));return hA.free_mesh_data(t),{positions:u,indices:c,verticesPerFace:p}}function mS(o,e,A,t){Do===void 0&&(Do=hA.init_csg());let r=lm(o),n=hA.csg_calc(Do,r,o.length,t,cm(e));hA._free(r);let i=5,a=hA.HEAPU32.subarray(n>>2,(n>>2)+i),l=a.subarray(2,2+3),u=0,s=hA.HEAPU32[a[u]>>2],c=hA.HEAPF32.subarray(s>>2,(s>>2)+l[u]);u++;let d=hA.HEAPU32[a[u]>>2],p=hA.HEAPF32.subarray(d>>2,(d>>2)+l[u]);u++;let f=l[u];A.setAttribute("position",new am(c,3)),A.setAttribute("normal",new am(p,3));let m=hA.HEAPF32.subarray((n>>2)+5,(n>>2)+5+6);return A.boundingSphere===null&&(A.boundingSphere=new dS),A.boundingSphere.center.set(m[0],m[1],m[2]),A.boundingSphere.radius=(m[3]**2+m[4]**2+m[5]**2)**.5,A.userData.parameters={width:m[3]*2,height:m[4]*2,depth:m[5]*2},hA.free_mesh_data(n),f}function hS(o,e,A){if(hA===void 0)return-1;let t,r,n;if(e&&o.userData.positions!==void 0){let h=o.userData;n=h.verticesPerFace.length,t=h.positions,r=Array(h.verticesPerFace.reduce((x,y)=>x+y,0)+n);for(let x=0,y=0,b=0;x<h.verticesPerFace.length;x++){r[b++]=h.verticesPerFace[x];for(let w=0;w<h.verticesPerFace[x];w++)r[b++]=h.indices[y++]}}else({positions:t,faceIndices:r,nFaces:n}=pS(o,e,A));let i=t.length,a=r.length,l=t.length,u=r.length,s=l*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,c=l*Float32Array.BYTES_PER_ELEMENT,d=u*Uint32Array.BYTES_PER_ELEMENT,p=hA._malloc(s),f=new Float32Array(hA.HEAPF32.buffer,p,l),m=new Uint32Array(hA.HEAPU32.buffer,p+c,u);return f.set(t,0),m.set(r,0),hA.get_csg_mesh(p,i,p+c,a,n)}function gS(o,e){hA.transform_csg_mesh(o,e.elements)}function yS(o){hA.free_csg_mesh(o)}var Dl={ConeGeometry:gf,CubeGeometry:yf,CylinderGeometry:hf,DodecahedronGeometry:xf,EllipseGeometry:If,HelixGeometry:Mf,IcosahedronGeometry:Bf,LatheGeometry:Ef,NonParametricGeometry:kf,PolygonGeometry:Uf,PyramidGeometry:Hf,RectangleGeometry:Wf,SphereGeometry:qf,PlaneGeometry:Qf,BackdropGeometry:Yf,StarGeometry:Xf,TextFrameGeometry:Kf,TorusGeometry:Zf,TorusKnotGeometry:Jf,TriangleGeometry:_f,VectorGeometry:ee},Bn=o=>Dl[o.type].create(o);import{ShaderMaterial as lT}from"three";import{CubeReflectionMapping as LS,CubeRefractionMapping as MS,CubeUVReflectionMapping as BS,LinearEncoding as fm,sRGBEncoding as ES}from"three";var En=class{constructor(e){e=e??{},this.name=e.name,this.type=e.type,this.node=e.node,this.size=e.size,this.needsUpdate=e.needsUpdate}get value(){return this.node.value}set value(e){this.node.value=e}};import{MathUtils as xS}from"three";var JA=class{constructor(e){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=xS.generateUUID(),this.type=e,this.name=""}analyze(e,A){A=A??{},e.analyzing=!0,this.build(e.addFlow(A.slot,A.cache,A.context),"v4"),e.clearVertexNodeCode(),e.clearFragmentNodeCode(),e.removeFlow(),e.analyzing=!1}analyzeAndFlow(e,A,t){return t=t??{},this.analyze(e,t),this.flow(e,A,t)}flow(e,A,t){t=t??{},e.addFlow(t.slot,t.cache,t.context);let r={result:this.build(e,A),code:e.clearNodeCode(),extra:e.context.extra};return e.removeFlow(),r}build(e,A,t){A=A??this.getType(e,A);let r=e.getNodeData(t??this);return e.analyzing&&this.appendDepsNode(e,r,A),e.nodes.indexOf(this)===-1&&e.nodes.push(this),this.updateFrame!==void 0&&e.updaters.indexOf(this)===-1&&e.updaters.push(this),this.generate(e,A,t)}updateFrame(e){}generateReadonly(e,A,t,r,n,i){return""}generate(e,A,t,r,n){return""}parse(e,A,t,r){}appendDepsNode(e,A,t){A.deps=(A.deps||0)+1;let r=e.getTypeLength(t);(r>(A.outputMax||0)||this.getType(e,t))&&(A.outputMax=r,A.output=t)}setName(e){this.name=e}getName(){return this.name}getType(e,A){return A==="sampler2D"||A==="samplerCube"?A:this.type}getHash(){let e="{",A,t;for(A in this)t=this[A],t instanceof JA&&(e+='"'+A+'":'+t.getHash()+",");if(this.hashProperties)for(let r=0;r<this.hashProperties.length;r++)A=this.hashProperties[r],t=this[A],e+='"'+A+'":"'+String(t)+'",';return e+='"id":"'+this.uuid+'"}',e}};var Gl=class{constructor(){this.nodes={};this.keywords={}}add(e){this.nodes[e.name]=e}addKeyword(e,A,t){t=t!==void 0?t:!0,this.keywords[e]={callback:A,cache:t}}remove(e){delete this.nodes[e.name]}removeKeyword(e){delete this.keywords[e]}get(e){return this.nodes[e]}getKeyword(e,A){return this.keywords[e].callback(A)}getKeywordData(e){return this.keywords[e]}contains(e){return this.nodes[e]!==void 0}containsKeyword(e){return this.keywords[e]!==void 0}},WA=new Gl;import{Vector2 as um}from"three";import{MathUtils as vS}from"three";var aA=class extends JA{constructor(A,t){super(A);this.scope="";t=t??{},this.shared=t.shared!==void 0?t.shared:!0,this.unique=t.unique!==void 0?t.unique:!1}build(A,t,r,n){if(t=t??this.getType(A),this.getShared(A,t)){let i=this.getUnique(A,t);i&&this.uuid===void 0&&(this.uuid=vS.generateUUID()),r=A.getUUID(r??this.getUUID(),!i);let a=A.getNodeData(r),l=a.output||this.getType(A);if(A.analyzing)return(a.deps||0)>0||this.getLabel()?(this.appendDepsNode(A,a,t),this.generate(A,t,r)):super.build(A,t,r);if(i)return a.name=a.name||super.build(A,t,r),a.name;if(!this.getLabel()&&(!this.getShared(A,l)||A.context.ignoreCache||a.deps===1))return super.build(A,t,r);r=this.getUUID(!1);let u=this.getTemp(A,r);if(u)return A.format(u,l,t);{u=super.generate(A,t,r,a.output,n);let s=this.generate(A,l,r);return A.addNodeCode(u+" = "+s+";"),A.format(u,l,t)}}return super.build(A,t,r)}getShared(A,t){return t!=="sampler2D"&&t!=="samplerCube"&&this.shared}getUnique(A,t){return this.unique}setLabel(A){return this.label=A,this}getLabel(){return this.label}getUUID(A){let t=this.uuid;return typeof this.scope=="string"&&(t=this.scope+"-"+t),t}getTemp(A,t){t=t||this.uuid;let r=A.getVars()[t];return r?r.name:void 0}generate(A,t,r,n,i){return this.getShared(A,t)||console.error("TempNode is not shared"),r=r??this.uuid,A.getTempVar(r,n??this.getType(A),i,this.getLabel()).name}};var LA=class extends aA{constructor(A,t){t=t??{},t.shared=t.shared!==void 0?t.shared:!1;super(A,t);this.readonly=!1}setReadonly(A){return this.readonly=A,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(A,t,r,n,i,a){r=A.getUUID(r??this.getUUID()),n=n??this.getType(A);let l=A.getNodeData(r);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(A,t,r,n,i,a):A.isShader("vertex")?(l.vertex||(l.vertex=A.createVertexUniform(n,this,i,a,this.getLabel())),A.format(l.vertex.name,n,t)):(l.fragment||(l.fragment=A.createFragmentUniform(n,this,i,a,this.getLabel())),A.format(l.fragment.name,n,t))}};var _A=class extends LA{constructor(A=0,t){super("v2");this.nodeType="Vector2";this.value=A instanceof um?A:new um(A,t)}get x(){return this.value.x}set x(A){this.value.x=A}get y(){return this.value.y}set y(A){this.value.y=A}generateReadonly(A,t,r,n,i,a){return A.format("vec2("+this.value.x+", "+this.value.y+")",n,t)}};import{Vector3 as dm}from"three";var te=class extends LA{constructor(A=0,t,r){super("v3");this.nodeType="Vector3";this.value=A instanceof dm?A:new dm(A,t,r)}get x(){return this.value.x}set x(A){this.value.x=A}get y(){return this.value.y}set y(A){this.value.y=A}get z(){return this.value.z}set z(A){this.value.z=A}generateReadonly(A,t,r,n,i,a){return A.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",n,t)}};import{Color as bS}from"three";var qA=class extends bS{constructor(A,t,r,n){super(A,t,r);this.isColorA=!0;this.a=n}setRGBA(A,t,r,n){super.setRGB(A,t,r),this.a=n}copy(A){return super.copy(A),this.a="a"in A?A.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(A){this.r=A}set y(A){this.g=A}set z(A){this.b=A}set w(A){this.a=A}};var ze=class extends LA{constructor(A){super("v4");this.nodeType="Vector4";this.value=A instanceof qA?A:new qA(A.r,A.g,A.b,A.a)}generateReadonly(A,t,r,n,i,a){return A.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",n,t)}};var wS=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,pm=/[a-z_0-9]+/gi,K=class extends aA{constructor(A,t,r,n,i){super(i);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=i===void 0,this.isInterface=!1,this.parse(A,t,r,n)}getShared(A,t){return!this.isMethod}getType(A){return A.getTypeByFormat(this.type)}getInputByName(A){if(this.inputs){let t=this.inputs.length;for(;t--;)if(this.inputs[t].name===A)return this.inputs[t]}}getIncludeByName(A){if(this.includes){let t=this.includes.length;for(;t--;)if(this.includes[t].name===A)return this.includes[t]}}generate(A,t,r,n,i){let a,l=0,u=this.src;if(this.includes)for(let c=0;c<this.includes.length;c++)A.include(this.includes[c],this);for(let c in this.extensions)A.extensions[c]=!0;let s=[];for(;a=pm.exec(this.src);)s.push(a);for(let c=0;c<s.length;c++){let d=s[c],p=d[0],f=this.isMethod?!this.getInputByName(p):!0,m=p;if(this.keywords[p]||this.useKeywords&&f&&WA.containsKeyword(p)){let h=this.keywords[p];if(!h){let x=WA.getKeywordData(p);x.cache&&(h=A.keywords[p]),h=h||WA.getKeyword(p,A),x.cache&&(A.keywords[p]=h)}m=h.build(A)}p!==m&&u[d.index+l-1]!=="."&&(u=u.substring(0,d.index+l)+m+u.substring(d.index+p.length+l),l+=m.length-p.length),this.getIncludeByName(m)===void 0&&WA.contains(m)&&A.include(WA.get(m))}return t==="source"?u:this.isMethod?(this.isInterface||A.include(this,void 0,u),this.name):A.format("( "+u+" )",this.getType(A),t)}parse(A,t,r,n){if(this.src=A||"",this.includes=t??[],this.extensions=r??{},this.keywords=n??{},this.isMethod){let i=wS.exec(this.src);if(this.inputs=[],i&&i.length==4){this.type=i[1],this.name=i[2];let a=i[3].match(pm);if(a){let l=0;for(;l<a.length;){let u=a[l++],s;u==="in"||u==="out"||u==="inout"?s=a[l++]:(s=u,u="");let c=a[l++];this.inputs.push({name:c,type:s,qualifier:u})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var SS=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Rl=class extends aA{constructor(A="",t){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(A||Rl.PI,void 0,void 0,void 0,t)}getType(A){return A.getTypeByFormat(this.type)}parse(A,t,r,n,i){this.src=A||"";let a,l,u="",s=SS.exec(A);this.useDefine=i??this.src.charAt(0)==="#",s&&s.length>1?(l=s[1],a=s[2],u=s[3]):(a=this.src,l="f"),this.name=a,this.type=l,this.value=u}build(A,t){if(t==="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 A.include(this),A.format(this.name,this.getType(A),t)}generate(A,t,r,n,i){return A.format(this.name,this.getType(A),t)}},xA=Rl;xA.PI="PI",xA.PI2="PI2",xA.RECIPROCAL_PI="RECIPROCAL_PI",xA.RECIPROCAL_PI2="RECIPROCAL_PI2",xA.LOG2="LOG2",xA.EPSILON="EPSILON";var TS=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
|
|
4
|
-
)*?)}`,"gim"),
|
|
3
|
+
`&&t.push("")):e.getTextWidth(t[t.length-1]+r,o)>o.width&&(t[t.length-1].length&&t.push(""),e.getTextWidth(t[t.length-1]+r,o)>o.width&&(r.length===1?(t[t.length-1]+=r,r=""):(t[t.length-1]+=r.slice(0,-1),r=r[r.length-1],t.push(""))));return t[t.length-1]+=r,t}import{BufferGeometry as Cl,BufferAttribute as Hf,Uint32BufferAttribute as Il,Float32BufferAttribute as Ll,Matrix4 as RS,Vector3 as Bn,Sphere as VS,Box3 as FS}from"three";var DS,Mo=new Promise(o=>{DS=o});import{BufferGeometryLoader as GS}from"three";function Bo(o,e,A){let t={parameters:o,type:o.type};if(o.type==="VectorGeometry"){let n=vA.createFromState(o.shape,o.width,o.height);t.shape=n}else if(o.type==="NonParametricGeometry")o.data.groups&&o.data.groups.forEach(n=>n.materialIndex=Math.max(n.materialIndex??0,0)),t.geometry=new GS().parse(o);else{if(o.type==="SubdivGeometry")return new KA(o,A);if(o.type==="TextGeometry")return new Lo(o,e)}let r;try{r=Pl(t)}catch(n){console.error(n)}if(!r){let n=vA.createFromState(mo.defaultData(),100,100);t.shape=n,r=Pl(t)}return r}var Gs=new FS,Rs=new Bn,lA;Mo.then(o=>{lA=o});var Wf=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),qf=new Uint32Array([0,1,2,3]),Qf=new Uint8Array([4]),KA=class extends Cl{constructor(A,t){super();let{originalGeometry:r,subdividedGeometry:n,subdivPointer:i}=KA.build(A,void 0,!t,void 0);this.subdivPointer=i,this.originalGeometry=r,this.subdividedGeometry=n??void 0;let a=this.subdividedGeometry??this.originalGeometry;Object.assign(this,a),this.calcBoundingBox()}dispose(){KA.freeSubdivPointer(this.subdivPointer)}calcBoundingBox(){let A=this.originalGeometry;A.boundingSphere===null&&(A.boundingSphere=new VS,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=A.boundingSphere));let t=A.attributes.position,r=A.boundingSphere.center;Gs.setFromBufferAttribute(t),Gs.getCenter(r),A.boundingSphere.radius=r.distanceTo(Gs.max),isNaN(A.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Gs.getSize(Rs);let n={width:Rs.x,height:Rs.y,depth:Rs.z};return this.userData.parameters=n,n}static build(A,t,r,n){let i,a,l,u=A?.phongAngle??35;r===!1&&(u=-1),t&&(lA.free_bvh(t),lA.free_subdivision_surface(t));try{i=KA.allocate(A,n)}catch(s){console.error(s,A),i=KA.allocate({positionWASM:Wf,indexWASM:qf,verticesPerFaceWASM:Qf},n)}return lA.set_destination_refinement_level(i,0),a=KA.buildLevel(i,!0,u),A.subdivisions>0?(lA.set_destination_refinement_level(i,A.subdivisions),l=KA.buildLevel(i,!1,u)):l=null,{subdivPointer:i,originalGeometry:a,subdividedGeometry:l}}static primitiveToQuads(A,t,r){A.widthSegments>16&&(A.widthSegments=16),A.heightSegments>16&&(A.heightSegments=16),A.depthSegments>16&&(A.depthSegments=16),A.radialSegments>16&&(A.radialSegments=16),A.type==="DodecahedronGeometry"&&(A.detail=0);let n=A.shape!==void 0?t.geometry:Bo(A,r,!1),i,a,l,u;({positions:i,triIndices:u}=Dl(n.getAttribute("position"),n.getIndex()));let s;if(A.type==="CylinderGeometry"&&A.cornerRadius===0&&A.hollow===0&&A.openEnded===!1){let c=A.radialSegments*A.heightSegments*3*2,d=c+A.radialSegments*3;s=[c,d]}return{indices:a,verticesPerFace:l}=Gl(i,u,n,s),{positions:i,indices:a,verticesPerFace:l}}static allocate(A,t){let r,n,i,a=[],l=[];A.positionWASM&&A.positionWASM.length>0?(r=A.positionWASM,n=A.indexWASM,i=A.verticesPerFaceWASM):(r=Wf,n=qf,i=Qf);let u=r.length,s=n.length,c=i.length,d=r.length+a.length+l.length,p=n.length+i.length,f=d*Float32Array.BYTES_PER_ELEMENT+p*Uint32Array.BYTES_PER_ELEMENT,m=d*Float32Array.BYTES_PER_ELEMENT,h=p*Uint32Array.BYTES_PER_ELEMENT,g=lA._malloc(f),x=new Float32Array(lA.HEAPF32.buffer,g,d),w=new Uint32Array(lA.HEAPU32.buffer,g+m,p);x.set(r,0),x.set(a,r.length),x.set(l,r.length+a.length),w.set(n,0),w.set(i,n.length);let v;A?.scaleBaked?.some(N=>N!==1)&&(v=new RS().makeScale(...A.scaleBaked)),t&&(v?v.premultiply(t):v=t);let b=v?lA.alloc_subdivision_surface2(g,u,g+m,s,g+m+n.length*Uint32Array.BYTES_PER_ELEMENT,c,v.elements):lA.alloc_subdivision_surface(g,u,g+m,s,g+m+n.length*Uint32Array.BYTES_PER_ELEMENT,c);return lA._free(g),b}static buildLevel(A,t,r,n,i){let a=i?lA.get_mesh_data2(A,t?lA.Level.CONTROL:lA.Level.REFINED,r,i.elements):lA.get_mesh_data(A,t?lA.Level.CONTROL:lA.Level.REFINED,r),l=8,u=lA.HEAPU32.subarray(a>>2,(a>>2)+l),s=u.subarray(4,4+4),c=0,d=lA.HEAPU32[u[c]>>2],p=lA.HEAPF32.subarray(d>>2,(d>>2)+s[c]);c++;let f=lA.HEAPU32[u[c]>>2],m=lA.HEAPF32.subarray(f>>2,(f>>2)+s[c]);c++;let h=lA.HEAPU32[u[c]>>2],g=lA.HEAPU32.subarray(h>>2,(h>>2)+s[c]);c++;let x=lA.HEAPU32[u[c]>>2],w=lA.HEAPU32.subarray(x>>2,(x>>2)+s[c]);if(c++,n===void 0){let v=new Cl;if(v.setIndex(new Il(w,1)),v.setAttribute("position",new Ll(p,3)),v.setAttribute("normal",new Ll(m,3)),t){v.setAttribute("faceMap",new Il(g,1));let b=new Float32Array(m.length/3*4).fill(0);v.setAttribute("color",new Hf(b,4))}return lA.free_mesh_data(a),v.userData.type="SubdivGeometry",v}n.getAttribute("position").copyArray(p),n.getAttribute("normal").copyArray(m),n.attributes.position.needsUpdate=!0,n.attributes.normal.needsUpdate=!0,lA.free_mesh_data(a)}static freeSubdivPointer(A){lA.free_bvh(A),lA.free_subdivision_surface(A)}static buildControlCageWireframe(A,t,r){let n=lA.get_wireframe_data_for_base_level(A),i=4,a=lA.HEAPU32.subarray(n>>2,(n>>2)+i),l=a.subarray(2,2+2),u=0,s=lA.HEAPU32[a[u]>>2],c=lA.HEAPF32.subarray(s>>2,(s>>2)+l[u]);u++;let d=lA.HEAPU32[a[u]>>2],p=lA.HEAPU32.subarray(d>>2,(d>>2)+l[u]);if(t===void 0){let f=new Cl;f.setAttribute("position",new Ll(c,3));let m=new Float32Array(c.length);for(let h=0,g=c.length;h<g;)m[h++]=r.r,m[h++]=r.g,m[h++]=r.b;return f.setAttribute("color",new Hf(m,3)),f.setIndex(new Il(p,1)),lA.free_wireframe_data_for_base_level(n),f}t.getAttribute("position").copyArray(c),t.attributes.position.needsUpdate=!0,lA.free_wireframe_data_for_base_level(n)}static updateCollabMesh(A,t,r){let n=t===0;n||lA.set_destination_refinement_level(A,t);let i=r?lA.get_topological_data2(A,n?lA.Level.CONTROL:lA.Level.REFINED,r.elements):lA.get_topological_data(A,n?lA.Level.CONTROL:lA.Level.REFINED),a=6,l=lA.HEAPU32.subarray(i>>2,(i>>2)+a),u=l.subarray(3,3+3),s=0,c=lA.HEAPU32[l[s]>>2],d=new Float32Array(lA.HEAPF32.subarray(c>>2,(c>>2)+u[s]));s++;let p=lA.HEAPU32[l[s]>>2],f=new Uint32Array(lA.HEAPU32.subarray(p>>2,(p>>2)+u[s]));s++;let m=lA.HEAPU32[l[s]>>2],h=new Uint8Array(lA.HEAPU32.subarray(m>>2,(m>>2)+u[s]));return lA.free_topological_data(i),{positions:d,indices:f,verticesPerFace:h}}};var Yf=["getX","getY","getZ"];function Dl(o,e){let A={},t=e?e.count:o.count,r=0,n=[],i=[],a=1e4;for(let u=0;u<t;u++){let s=e?e.getX(u):u,c="";for(let d=0;d<3;d++)c+=`${~~(o[Yf[d]](s)*a)},`;if(c in A)n.push(A[c]);else{for(let d=0;d<3;d++)i.push(o[Yf[d]](s));A[c]=r,n.push(r),r++}}let l=[];for(let u=0;u<n.length;u+=3)n[u]===n[u+1]||n[u]===n[u+2]||n[u+1]===n[u+2]||l.push(n[u],n[u+1],n[u+2]);return{positions:i,triIndices:l}}var Vs=new Bn,Ml=new Bn,Bl=new Bn,El=new Bn;function Gl(o,e,A,t){let r=[],n=[];if(A.userData.shape!==void 0&&A.userData.parameters.depth===0&&A.userData.shape.shapeHoles.length===0){let i=A.userData.shape.extractShapePointsToFlatArray([]),a=A.userData.parameters.spikes;if(A.userData.type==="EllipseGeometry"&&a<=24&&a%4===0&&A.userData.parameters.angle>=360){let s=i.length/2/a;i=i.filter((c,d)=>Math.floor(d/2)%s===0)}let l=0;for(let s=0;s<i.length;s+=2)l+=(i[s]-i[(s===0?i.length:s)-2])*(i[s+1]+i[(s===0?i.length:s)-1]);o.length=0;let u=0;if(l<0)for(let s=0;s<i.length;s+=2)o.push(i[s],i[s+1],0),r.push(u++);else for(let s=i.length-2;s>=0;s-=2)o.push(i[s],i[s+1],0),r.push(u++);return n.push(u),{indices:r,verticesPerFace:n}}for(let i=0,a=A.capStartIndex??e.length;i<a;)if(e[i+1]===e[i+3]&&e[i+2]===e[i+5]||e[i+0]===e[i+3]&&e[i+2]===e[i+4]){Vs.set(o[e[i]*3],o[e[i]*3+1],o[e[i]*3+2]),Ml.set(o[e[i+1]*3],o[e[i+1]*3+1],o[e[i+1]*3+2]),Bl.set(o[e[i+4]*3],o[e[i+4]*3+1],o[e[i+4]*3+2]),El.set(o[e[i+5]*3],o[e[i+5]*3+1],o[e[i+5]*3+2]),Ml.sub(Vs).normalize(),Bl.sub(Vs).normalize(),El.sub(Vs).normalize();let l=Ml.cross(Bl).dot(El);Math.abs(l)>.005||t&&t.some((u,s)=>s%2===1?!1:i>=t[s]&&i<t[s+1])?(r.push(e[i],e[i+1],e[i+2]),n.push(3),i+=3):(r.push(e[i],e[i+1],e[i+4],e[i+5]),n.push(4),i+=6)}else r.push(e[i],e[i+1],e[i+2]),n.push(3),i+=3;if(A.capStartIndex!==void 0){let i=[],a=[],l=0,u=new Float32Array([A.userData.parameters.depth])[0];for(let s=0,c=0;s<o.length;s+=3,c++)o[s+2]===0&&(i.push(c),l++),o[s+2]===u&&a.push(c);if(A.userData.parameters.extrudeBevelSize===0){let s=a[0];a[0]=a[1],a[1]=s}i.reverse(),r.push(...i,...a),n.push(l,l)}return{indices:r,verticesPerFace:n}}var Ze={};Gh(Ze,{calcBoolean:()=>HS,calcBooleanTopological:()=>US,freeMeshSet:()=>QS,getMeshSet:()=>WS,transformMeshSet:()=>qS});var jS,Xf=new Promise(o=>{jS=o});import{Float32BufferAttribute as Kf,Sphere as zS}from"three";var hA,Eo;Xf.then(o=>hA=o);function kS(o,e,A){let t,{positions:r,triIndices:n}=Dl(o.getAttribute("position"),o.getIndex()),i;if(e&&A){let{indices:a,verticesPerFace:l}=Gl(r,n,o);i=l.length,t=[];for(let u=0,s=0;u<i;u++){t.push(l[u]);for(let c=0;c<l[u];c++)t.push(a[s++])}}else{let a=n.length;t=Array(a+a/3),i=0;for(let l=0,u=0;u<t.length;)t[u++]=3,i++,t[u++]=n[l++],t[u++]=n[l++],t[u++]=n[l++]}return{positions:r,faceIndices:t,nFaces:i}}function Zf(o){let e=o.length,A=e*Uint32Array.BYTES_PER_ELEMENT,t=e*Float32Array.BYTES_PER_ELEMENT,r=Number.isInteger(o[0])?A:t,n=hA._malloc(r);return(Number.isInteger(o[0])?new Uint32Array(hA.HEAPU32.buffer,n,e):new Float32Array(hA.HEAPF32.buffer,n,e)).set(o,0),n}function Jf(o){switch(o){case 0:return hA.OP.UNION;case 1:return hA.OP.INTERSECTION;case 2:return hA.OP.A_MINUS_B;case 3:return hA.OP.B_MINUS_A;case 4:return hA.OP.SYMMETRIC_DIFFERENCE;case 5:return hA.OP.ALL;default:throw new Error("Unknown boolean operation "+o)}}function US(o,e){Eo===void 0&&(Eo=hA.init_csg());let A=Zf(o),t=hA.csg_calc_topological(Eo,A,o.length,Jf(e));hA._free(A);let r=6,n=hA.HEAPU32.subarray(t>>2,(t>>2)+r),i=n.subarray(3,3+3),a=0,l=hA.HEAPU32[n[a]>>2],u=new Float32Array(hA.HEAPF32.subarray(l>>2,(l>>2)+i[a]));a++;let s=hA.HEAPU32[n[a]>>2],c=new Uint32Array(hA.HEAPU32.subarray(s>>2,(s>>2)+i[a]));a++;let d=hA.HEAPU32[n[a]>>2],p=new Uint8Array(hA.HEAPU32.subarray(d>>2,(d>>2)+i[a]));return hA.free_mesh_data(t),{positions:u,indices:c,verticesPerFace:p}}function HS(o,e,A,t){Eo===void 0&&(Eo=hA.init_csg());let r=Zf(o),n=hA.csg_calc(Eo,r,o.length,t,Jf(e));hA._free(r);let i=5,a=hA.HEAPU32.subarray(n>>2,(n>>2)+i),l=a.subarray(2,2+3),u=0,s=hA.HEAPU32[a[u]>>2],c=hA.HEAPF32.subarray(s>>2,(s>>2)+l[u]);u++;let d=hA.HEAPU32[a[u]>>2],p=hA.HEAPF32.subarray(d>>2,(d>>2)+l[u]);u++;let f=l[u];A.setAttribute("position",new Kf(c,3)),A.setAttribute("normal",new Kf(p,3));let m=hA.HEAPF32.subarray((n>>2)+5,(n>>2)+5+6);return A.boundingSphere===null&&(A.boundingSphere=new zS),A.boundingSphere.center.set(m[0],m[1],m[2]),A.boundingSphere.radius=(m[3]**2+m[4]**2+m[5]**2)**.5,A.userData.parameters={width:m[3]*2,height:m[4]*2,depth:m[5]*2},hA.free_mesh_data(n),f}function WS(o,e,A){if(hA===void 0)return-1;let t,r,n;if(e&&o.userData.positions!==void 0){let h=o.userData;n=h.verticesPerFace.length,t=h.positions,r=Array(h.verticesPerFace.reduce((g,x)=>g+x,0)+n);for(let g=0,x=0,w=0;g<h.verticesPerFace.length;g++){r[w++]=h.verticesPerFace[g];for(let v=0;v<h.verticesPerFace[g];v++)r[w++]=h.indices[x++]}}else({positions:t,faceIndices:r,nFaces:n}=kS(o,e,A));let i=t.length,a=r.length,l=t.length,u=r.length,s=l*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,c=l*Float32Array.BYTES_PER_ELEMENT,d=u*Uint32Array.BYTES_PER_ELEMENT,p=hA._malloc(s),f=new Float32Array(hA.HEAPF32.buffer,p,l),m=new Uint32Array(hA.HEAPU32.buffer,p+c,u);return f.set(t,0),m.set(r,0),hA.get_csg_mesh(p,i,p+c,a,n)}function qS(o,e){hA.transform_csg_mesh(o,e.elements)}function QS(o){hA.free_csg_mesh(o)}var YS={ConeGeometry:jp,CubeGeometry:zp,CylinderGeometry:Fp,DodecahedronGeometry:kp,EllipseGeometry:mf,HelixGeometry:vf,IcosahedronGeometry:bf,LatheGeometry:wf,NonParametricGeometry:Lf,PolygonGeometry:Mf,PyramidGeometry:Bf,RectangleGeometry:Ef,SphereGeometry:Df,PlaneGeometry:Gf,BackdropGeometry:Rf,StarGeometry:Vf,TextFrameGeometry:Ff,TorusGeometry:jf,TorusKnotGeometry:zf,TriangleGeometry:kf,VectorGeometry:xe},Pl=o=>YS[o.type].create(o);function En(o){return o!==null&&"booleanOp"in o}var Do=class extends Ve(KS){constructor(){super(...arguments);this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new XS}updateVisible(){super.updateVisible(),this.visible=!En(this.parent)&&this.visible,En(this.parent)&&this.parent.invalidateDownstreamBooleanData()}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(Ze.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(A=!1){return A?this.booleanWasTransformed=!0:this.freeBooleanPointer(),En(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let A of this.children)A instanceof Do&&(A.freeBooleanPointer(),En(A)&&A.invalidateUpstreamBooleanData())}updateTransformState(A){let t=super.updateTransformState(A);return t&&En(this.parent)&&this.invalidateDownstreamBooleanData(!0),t}};var Fs=new ZS;function Rl(o,e=0,A=o.count,t,r){let n=1/0,i=1/0,a=1/0,l=-1/0,u=-1/0,s=-1/0;for(let c=e;c<A;c++){let d=o.getX(c),p=o.getY(c),f=o.getZ(c);d<n&&(n=d),p<i&&(i=p),f<a&&(a=f),d>l&&(l=d),p>u&&(u=p),f>s&&(s=f)}Fs.min.set(n,i,a),Fs.max.set(l,u,s),Fs.getCenter(t),Fs.getSize(r).multiplyScalar(.5)}var $S=new JS,A1=new _S,Ae=class extends Do{constructor(e,A){super($S,A1),this.super_Entity(e,A)}updateState(e,A){this.updateState_Entity(e,A)}updateEntityBoxSize(e,A){let t=this.geometry.getAttribute("position");t!==void 0?Rl(t,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:t.count,e,A):super.updateEntityBoxSize(e,A)}};import{Box3 as aT,Matrix4 as Br,Sphere as Om,Vector3 as lT}from"three";var Nm=fa($f());import{BufferAttribute as nT,Float32BufferAttribute as Tm,MathUtils as sc,Vector3 as ac}from"three";import{ShaderMaterial as Q1}from"three";import{CubeReflectionMapping as d1,CubeRefractionMapping as p1,CubeUVReflectionMapping as f1,LinearEncoding as rm,sRGBEncoding as m1}from"three";var Dn=class{constructor(e){e=e??{},this.name=e.name,this.type=e.type,this.node=e.node,this.size=e.size,this.needsUpdate=e.needsUpdate}get value(){return this.node.value}set value(e){this.node.value=e}};import{MathUtils as e1}from"three";var ZA=class{constructor(e){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=e1.generateUUID(),this.type=e,this.name=""}analyze(e,A){A=A??{},e.analyzing=!0,this.build(e.addFlow(A.slot,A.cache,A.context),"v4"),e.clearVertexNodeCode(),e.clearFragmentNodeCode(),e.removeFlow(),e.analyzing=!1}analyzeAndFlow(e,A,t){return t=t??{},this.analyze(e,t),this.flow(e,A,t)}flow(e,A,t){t=t??{},e.addFlow(t.slot,t.cache,t.context);let r={result:this.build(e,A),code:e.clearNodeCode(),extra:e.context.extra};return e.removeFlow(),r}build(e,A,t){A=A??this.getType(e,A);let r=e.getNodeData(t??this);return e.analyzing&&this.appendDepsNode(e,r,A),e.nodes.indexOf(this)===-1&&e.nodes.push(this),this.updateFrame!==void 0&&e.updaters.indexOf(this)===-1&&e.updaters.push(this),this.generate(e,A,t)}updateFrame(e){}generateReadonly(e,A,t,r,n,i){return""}generate(e,A,t,r,n){return""}parse(e,A,t,r){}appendDepsNode(e,A,t){A.deps=(A.deps||0)+1;let r=e.getTypeLength(t);(r>(A.outputMax||0)||this.getType(e,t))&&(A.outputMax=r,A.output=t)}setName(e){this.name=e}getName(){return this.name}getType(e,A){return A==="sampler2D"||A==="samplerCube"?A:this.type}getHash(){let e="{",A,t;for(A in this)t=this[A],t instanceof ZA&&(e+='"'+A+'":'+t.getHash()+",");if(this.hashProperties)for(let r=0;r<this.hashProperties.length;r++)A=this.hashProperties[r],t=this[A],e+='"'+A+'":"'+String(t)+'",';return e+='"id":"'+this.uuid+'"}',e}};var Vl=class{constructor(){this.nodes={};this.keywords={}}add(e){this.nodes[e.name]=e}addKeyword(e,A,t){t=t!==void 0?t:!0,this.keywords[e]={callback:A,cache:t}}remove(e){delete this.nodes[e.name]}removeKeyword(e){delete this.keywords[e]}get(e){return this.nodes[e]}getKeyword(e,A){return this.keywords[e].callback(A)}getKeywordData(e){return this.keywords[e]}contains(e){return this.nodes[e]!==void 0}containsKeyword(e){return this.keywords[e]!==void 0}},HA=new Vl;import{Vector2 as Am}from"three";import{MathUtils as t1}from"three";var aA=class extends ZA{constructor(A,t){super(A);this.scope="";t=t??{},this.shared=t.shared!==void 0?t.shared:!0,this.unique=t.unique!==void 0?t.unique:!1}build(A,t,r,n){if(t=t??this.getType(A),this.getShared(A,t)){let i=this.getUnique(A,t);i&&this.uuid===void 0&&(this.uuid=t1.generateUUID()),r=A.getUUID(r??this.getUUID(),!i);let a=A.getNodeData(r),l=a.output||this.getType(A);if(A.analyzing)return(a.deps||0)>0||this.getLabel()?(this.appendDepsNode(A,a,t),this.generate(A,t,r)):super.build(A,t,r);if(i)return a.name=a.name||super.build(A,t,r),a.name;if(!this.getLabel()&&(!this.getShared(A,l)||A.context.ignoreCache||a.deps===1))return super.build(A,t,r);r=this.getUUID(!1);let u=this.getTemp(A,r);if(u)return A.format(u,l,t);{u=super.generate(A,t,r,a.output,n);let s=this.generate(A,l,r);return A.addNodeCode(u+" = "+s+";"),A.format(u,l,t)}}return super.build(A,t,r)}getShared(A,t){return t!=="sampler2D"&&t!=="samplerCube"&&this.shared}getUnique(A,t){return this.unique}setLabel(A){return this.label=A,this}getLabel(){return this.label}getUUID(A){let t=this.uuid;return typeof this.scope=="string"&&(t=this.scope+"-"+t),t}getTemp(A,t){t=t||this.uuid;let r=A.getVars()[t];return r?r.name:void 0}generate(A,t,r,n,i){return this.getShared(A,t)||console.error("TempNode is not shared"),r=r??this.uuid,A.getTempVar(r,n??this.getType(A),i,this.getLabel()).name}};var MA=class extends aA{constructor(A,t){t=t??{},t.shared=t.shared!==void 0?t.shared:!1;super(A,t);this.readonly=!1}setReadonly(A){return this.readonly=A,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(A,t,r,n,i,a){r=A.getUUID(r??this.getUUID()),n=n??this.getType(A);let l=A.getNodeData(r);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(A,t,r,n,i,a):A.isShader("vertex")?(l.vertex||(l.vertex=A.createVertexUniform(n,this,i,a,this.getLabel())),A.format(l.vertex.name,n,t)):(l.fragment||(l.fragment=A.createFragmentUniform(n,this,i,a,this.getLabel())),A.format(l.fragment.name,n,t))}};var JA=class extends MA{constructor(A=0,t){super("v2");this.nodeType="Vector2";this.value=A instanceof Am?A:new Am(A,t)}get x(){return this.value.x}set x(A){this.value.x=A}get y(){return this.value.y}set y(A){this.value.y=A}generateReadonly(A,t,r,n,i,a){return A.format("vec2("+this.value.x+", "+this.value.y+")",n,t)}};import{Vector3 as em}from"three";var ee=class extends MA{constructor(A=0,t,r){super("v3");this.nodeType="Vector3";this.value=A instanceof em?A:new em(A,t,r)}get x(){return this.value.x}set x(A){this.value.x=A}get y(){return this.value.y}set y(A){this.value.y=A}get z(){return this.value.z}set z(A){this.value.z=A}generateReadonly(A,t,r,n,i,a){return A.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",n,t)}};import{Color as r1}from"three";var WA=class extends r1{constructor(A,t,r,n){super(A,t,r);this.isColorA=!0;this.a=n}setRGBA(A,t,r,n){super.setRGB(A,t,r),this.a=n}copy(A){return super.copy(A),this.a="a"in A?A.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(A){this.r=A}set y(A){this.g=A}set z(A){this.b=A}set w(A){this.a=A}};var je=class extends MA{constructor(A){super("v4");this.nodeType="Vector4";this.value=A instanceof WA?A:new WA(A.r,A.g,A.b,A.a)}generateReadonly(A,t,r,n,i,a){return A.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",n,t)}};var o1=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,tm=/[a-z_0-9]+/gi,K=class extends aA{constructor(A,t,r,n,i){super(i);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=i===void 0,this.isInterface=!1,this.parse(A,t,r,n)}getShared(A,t){return!this.isMethod}getType(A){return A.getTypeByFormat(this.type)}getInputByName(A){if(this.inputs){let t=this.inputs.length;for(;t--;)if(this.inputs[t].name===A)return this.inputs[t]}}getIncludeByName(A){if(this.includes){let t=this.includes.length;for(;t--;)if(this.includes[t].name===A)return this.includes[t]}}generate(A,t,r,n,i){let a,l=0,u=this.src;if(this.includes)for(let c=0;c<this.includes.length;c++)A.include(this.includes[c],this);for(let c in this.extensions)A.extensions[c]=!0;let s=[];for(;a=tm.exec(this.src);)s.push(a);for(let c=0;c<s.length;c++){let d=s[c],p=d[0],f=this.isMethod?!this.getInputByName(p):!0,m=p;if(this.keywords[p]||this.useKeywords&&f&&HA.containsKeyword(p)){let h=this.keywords[p];if(!h){let g=HA.getKeywordData(p);g.cache&&(h=A.keywords[p]),h=h||HA.getKeyword(p,A),g.cache&&(A.keywords[p]=h)}m=h.build(A)}p!==m&&u[d.index+l-1]!=="."&&(u=u.substring(0,d.index+l)+m+u.substring(d.index+p.length+l),l+=m.length-p.length),this.getIncludeByName(m)===void 0&&HA.contains(m)&&A.include(HA.get(m))}return t==="source"?u:this.isMethod?(this.isInterface||A.include(this,void 0,u),this.name):A.format("( "+u+" )",this.getType(A),t)}parse(A,t,r,n){if(this.src=A||"",this.includes=t??[],this.extensions=r??{},this.keywords=n??{},this.isMethod){let i=o1.exec(this.src);if(this.inputs=[],i&&i.length==4){this.type=i[1],this.name=i[2];let a=i[3].match(tm);if(a){let l=0;for(;l<a.length;){let u=a[l++],s;u==="in"||u==="out"||u==="inout"?s=a[l++]:(s=u,u="");let c=a[l++];this.inputs.push({name:c,type:s,qualifier:u})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var n1=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Fl=class extends aA{constructor(A="",t){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(A||Fl.PI,void 0,void 0,void 0,t)}getType(A){return A.getTypeByFormat(this.type)}parse(A,t,r,n,i){this.src=A||"";let a,l,u="",s=n1.exec(A);this.useDefine=i??this.src.charAt(0)==="#",s&&s.length>1?(l=s[1],a=s[2],u=s[3]):(a=this.src,l="f"),this.name=a,this.type=l,this.value=u}build(A,t){if(t==="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 A.include(this),A.format(this.name,this.getType(A),t)}generate(A,t,r,n,i){return A.format(this.name,this.getType(A),t)}},xA=Fl;xA.PI="PI",xA.PI2="PI2",xA.RECIPROCAL_PI="RECIPROCAL_PI",xA.RECIPROCAL_PI2="RECIPROCAL_PI2",xA.LOG2="LOG2",xA.EPSILON="EPSILON";var i1=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
|
|
4
|
+
)*?)}`,"gim"),s1=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Go=class extends aA{constructor(A=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(A)}getType(A){return A.getTypeByFormat(this.name)}getInputByName(A){let t=this.inputs.length;for(;t--;)if(this.inputs[t].name===A)return this.inputs[t]}generate(A,t,r,n,i){return t==="source"?this.src+";":A.format("( "+this.src+" )",this.getType(A),t)}parse(A=""){this.src=A,this.inputs=[];let t=i1.exec(A);if(t){let r=t[2],n;for(;n=s1.exec(r);)this.inputs.push({type:n[1],name:n[2]});this.name=t[1]}else this.name="";this.type=this.name}};var Ro=class extends aA{constructor(A){super("v2",{shared:!1});this.nodeType="UV";this.index=A??0}generate(A,t){A.requires.uv[this.index]=!0;let r=this.index>0?this.index+1:"",n=A.isShader("vertex")?"uv"+r:"vUv"+r;return A.format(n,this.getType(A),t)}};HA.addKeyword("uv",function(){return new Ro});HA.addKeyword("uv2",function(){return new Ro(1)});import{LinearEncoding as a1,sRGBEncoding as l1}from"three";var Tr=class extends aA{constructor(A,t){super("v4");this.nodeType="ColorSpace";this.input=A,this.method=t??Tr.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(A){switch(A){case a1:return["Linear"];case l1:return["sRGB"];default:return[]}}generate(A,t){let r=this.input.build(A,"v4"),n=this.getType(A),i=Tr.Nodes[this.method],a=A.include(i);if(a===Tr.LINEAR_TO_LINEAR)return A.format(r,n,t);if(i.inputs?.length===2){let l=this.factor.build(A,"f");return A.format(a+"( "+r+", "+l+" )",n,t)}else return A.format(a+"( "+r+" )",n,t)}fromEncoding(A){let t=Tr.getEncodingComponents(A);this.method="LinearTo"+t[0],this.factor=t[1]}fromDecoding(A){let t=Tr.getEncodingComponents(A);this.method=t[0]+"ToLinear",this.factor=t[1]}},de=Tr;de.Nodes={LinearToLinear:new K(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
|
|
5
5
|
`)),sRGBToLinear:new K(["vec4 sRGBToLinear( in vec4 value ) {"," return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );","}"].join(`
|
|
6
6
|
`)),LinearTosRGB:new K(["vec4 LinearTosRGB( in vec4 value ) {"," return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );","}"].join(`
|
|
7
|
-
`))},
|
|
7
|
+
`))},de.LINEAR_TO_LINEAR="LinearToLinear",de.SRGB_TO_LINEAR="sRGBToLinear",de.LINEAR_TO_SRGB="LinearTosRGB";var wA=class extends K{constructor(A="",t,r,n,i){super(A,i,n,r,t);this.nodeType="Expression"}};import{Texture as c1}from"three";var ve=class extends MA{constructor(A=new c1,t,r,n){super("v4",{shared:!0});this.nodeType="Texture";this.value=A,this.uv=t??new Ro,this.bias=r,this.project=n!==void 0?n:!1}getTexture(A,t){return super.generate(A,t,this.value.uuid,"t")}generate(A,t){if(t==="sampler2D")return this.getTexture(A,t);let r=this.getTexture(A,t),n=this.uv.build(A,this.project?"v4":"v2"),i=this.bias?this.bias.build(A,"f"):void 0;i===void 0&&A.context.bias&&(i=A.context.bias.setTexture(this).build(A,"f"));let a,l;this.project?a="texture2DProj":a=i?"tex2DBias":"tex2D",i?l=a+"( "+r+", "+n+", "+i+" )":l=a+"( "+r+", "+n+" )";let u={include:A.isShader("vertex"),ignoreCache:!0},s=this.getType(A);return A.addContext(u),this.colorSpace=this.colorSpace??new de(new wA("",s)),this.colorSpace.fromDecoding(A.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(l),l=this.colorSpace.build(A,s),A.removeContext(),A.format(l,s,t)}};var J=class extends MA{constructor(A){super("f");this.nodeType="Float";this.value=A??0}generateReadonly(A,t,r,n,i,a){return A.format(this.value+(this.value%1?"":".0"),n,t)}};var Gn=class extends aA{constructor(A,t){super();this.inputs=[];this.nodeType="FunctionCall";this.value=A,this.inputs=t??[]}getFunction(){return this.value}getType(A){return this.value.getType(A)}generate(A,t,r,n,i){n=this.getType(A);let a=this.value,l=a.build(A,t)+"( ",u=[];if(a.inputs){for(let s=0;s<a.inputs.length;s++){let c=a.inputs[s],d=this.inputs[s]||this.inputs[c.name];u.push(d.build(A,A.getTypeByFormat(c.type)))}l+=u.join(", ")+" )"}return A.format(l,n,t)}};var jl=class extends aA{constructor(A,t,r=jl.ADD){super();this.nodeType="Operator";this.type=A.type,this.a=A,this.b=t,this.op=r}getType(A){let t=this.a.getType(A),r=this.b.getType(A);return A.isTypeMatrix(t)?"v4":A.getTypeLength(r)>A.getTypeLength(t)?r:t}generate(A,t){let r=this.getType(A);this.type=r;let n=this.a.build(A,r),i=this.b.build(A,r);return A.format("( "+n+" "+this.op+" "+i+" )",r,t)}},be=jl;be.ADD="+",be.SUB="-",be.MUL="*",be.DIV="/";var CA=class extends aA{constructor(A,t=CA.ABS,r,n){super();this.nodeType="Math";this.a=A,typeof t!="string"?this.b=t:n=t,typeof r!="string"?this.c=r:n=r,this.method=n,this.hashProperties=["method"]}getNumInputs(A){switch(this.method){case CA.MIX:case CA.CLAMP:case CA.REFRACT:case CA.SMOOTHSTEP:case CA.FACEFORWARD:return 3;case CA.MIN:case CA.MAX:case CA.MOD:case CA.STEP:case CA.REFLECT:case CA.DISTANCE:case CA.DOT:case CA.CROSS:case CA.POW:return 2;default:return 1}}getInputType(A){let t=A.getTypeLength(this.a.getType(A)),r=this.b?A.getTypeLength(this.b.getType(A)):0,n=this.c?A.getTypeLength(this.c.getType(A)):0;return t>r&&t>n?this.a.getType(A):r>n?this.b.getType(A):this.c.getType(A)}getType(A){switch(this.method){case CA.LENGTH:case CA.DISTANCE:case CA.DOT:return"f";case CA.CROSS:return"v3"}return this.getInputType(A)}generate(A,t){let r,n,i,a=this.a?A.getTypeLength(this.a.getType(A)):0,l=this.b?A.getTypeLength(this.b.getType(A)):0,u=this.c?A.getTypeLength(this.c.getType(A)):0,s=this.getInputType(A),c=this.getType(A);switch(this.type=c,this.method){case CA.NEGATE:return A.format("( -"+this.a.build(A,s)+" )",s,t);case CA.INVERT:return A.format("( 1.0 - "+this.a.build(A,s)+" )",s,t);case CA.CROSS:r=this.a.build(A,"v3"),n=this.b.build(A,"v3");break;case CA.STEP:r=this.a.build(A,a===1?"f":s),n=this.b.build(A,s);break;case CA.MIN:case CA.MAX:case CA.MOD:r=this.a.build(A,s),n=this.b.build(A,l===1?"f":s);break;case CA.REFRACT:r=this.a.build(A,s),n=this.b.build(A,s),i=this.c.build(A,"f");break;case CA.MIX:r=this.a.build(A,s),n=this.b.build(A,s),i=this.c.build(A,u===1?"f":s);break;default:r=this.a.build(A,s),this.b&&(n=this.b.build(A,s)),this.c&&(i=this.c.build(A,s));break}let d=[];d.push(r),n&&d.push(n),i&&d.push(i);let p=this.getNumInputs(A);if(d.length!==p)throw Error(`Arguments not match used in "${this.method}". Require ${p}, currently ${d.length}.`);return A.format(this.method+"( "+d.join(", ")+" )",c,t)}},dA=CA;dA.RAD="radians",dA.DEG="degrees",dA.EXP="exp",dA.EXP2="exp2",dA.LOG="log",dA.LOG2="log2",dA.SQRT="sqrt",dA.INV_SQRT="inversesqrt",dA.FLOOR="floor",dA.CEIL="ceil",dA.NORMALIZE="normalize",dA.FRACT="fract",dA.SATURATE="saturate",dA.SIN="sin",dA.COS="cos",dA.TAN="tan",dA.ASIN="asin",dA.ACOS="acos",dA.ARCTAN="atan",dA.ABS="abs",dA.SIGN="sign",dA.LENGTH="length",dA.NEGATE="negate",dA.INVERT="invert",dA.MIN="min",dA.MAX="max",dA.MOD="mod",dA.STEP="step",dA.REFLECT="reflect",dA.DISTANCE="distance",dA.DOT="dot",dA.CROSS="cross",dA.POW="pow",dA.MIX="mix",dA.CLAMP="clamp",dA.REFRACT="refract",dA.SMOOTHSTEP="smoothstep",dA.FACEFORWARD="faceforward";var Vo=class extends aA{constructor(A,t,r){super("v4");this.nodeType="TextureCubeUV";this.value=A,this.uv=t,this.bias=r}bilinearCubeUV(A,t,r,n){let i=new Gn(Vo.Nodes.bilinearCubeUV,[t,r,n]);this.colorSpaceTL=this.colorSpaceTL??new de(new wA("","v4")),this.colorSpaceTL.fromDecoding(A.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(i.build(A)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new de(new wA("","v4")),this.colorSpaceTR.fromDecoding(A.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(i.build(A)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new de(new wA("","v4")),this.colorSpaceBL.fromDecoding(A.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(i.build(A)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new de(new wA("","v4")),this.colorSpaceBR.fromDecoding(A.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(i.build(A)+".br");let a={include:A.isShader("vertex"),ignoreCache:!0};A.addContext(a),this.colorSpaceTLExp=new wA(this.colorSpaceTL.build(A,"v4"),"v4"),this.colorSpaceTRExp=new wA(this.colorSpaceTR.build(A,"v4"),"v4"),this.colorSpaceBLExp=new wA(this.colorSpaceBL.build(A,"v4"),"v4"),this.colorSpaceBRExp=new wA(this.colorSpaceBR.build(A,"v4"),"v4"),A.removeContext();let l=new wA("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=i,l}generate(A,t){if(A.isShader("fragment")){let r=this.uv,n=this.bias||A.context.roughness,i=new Gn(Vo.Nodes.roughnessToMip,[n]),a=new dA(i,Vo.Nodes.m0,Vo.Nodes.cubeUV_maxMipLevel,dA.CLAMP),l=new dA(a,dA.FLOOR),u=new dA(a,dA.FRACT),s=this.bilinearCubeUV(A,this.value,r,l),c=this.bilinearCubeUV(A,this.value,r,new be(l,new J(1).setReadonly(!0),be.ADD)),d=new dA(s,c,u,dA.MIX);return A.format(d.build(A),"v4",t)}else return console.warn("TextureCubeUVNode is not compatible with "+A.shader+" shader."),A.format("vec4( 0.0 )",this.getType(A),t)}},Fo=Vo;Fo.Nodes=function(){let A=new Go(`struct TextureCubeUVData {
|
|
8
8
|
vec4 tl;
|
|
9
9
|
vec4 tr;
|
|
10
10
|
vec4 br;
|
|
@@ -69,7 +69,7 @@ var Ch=Object.create;var sa=Object.defineProperty;var Lh=Object.getOwnPropertyDe
|
|
|
69
69
|
uv.x -= texelSize;
|
|
70
70
|
vec4 bl = texture2D(envMap, uv);
|
|
71
71
|
return TextureCubeUVData( tl, tr, br, bl, f );
|
|
72
|
-
}`,[A,a,l,t,r,n,i]);u.useKeywords=!1;let s=new xA("float r0 1.0",!0),c=new xA("float v0 0.339",!0),d=new xA("float m0 -2.0",!0),p=new xA("float r1 0.8",!0),f=new xA("float v1 0.276",!0),m=new xA("float m1 -1.0",!0),h=new xA("float r4 0.4",!0),
|
|
72
|
+
}`,[A,a,l,t,r,n,i]);u.useKeywords=!1;let s=new xA("float r0 1.0",!0),c=new xA("float v0 0.339",!0),d=new xA("float m0 -2.0",!0),p=new xA("float r1 0.8",!0),f=new xA("float v1 0.276",!0),m=new xA("float m1 -1.0",!0),h=new xA("float r4 0.4",!0),g=new xA("float v4 0.046",!0),x=new xA("float m4 2.0",!0),w=new xA("float r5 0.305",!0),v=new xA("float v5 0.016",!0),b=new xA("float m5 3.0",!0),N=new xA("float r6 0.21",!0),S=new xA("float v6 0.0038",!0),y=new xA("float m6 4.0",!0),P=[s,c,d,p,f,m,h,g,x,w,v,b,N,S,y],O=new K(`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,7 +83,7 @@ var Ch=Object.create;var sa=Object.defineProperty;var Lh=Object.getOwnPropertyDe
|
|
|
83
83
|
mip = -2.0 * log2(1.16 * roughness);// 1.16 = 1.79^0.25
|
|
84
84
|
}
|
|
85
85
|
return mip;
|
|
86
|
-
}`,P);return{bilinearCubeUV:u,roughnessToMip:
|
|
86
|
+
}`,P);return{bilinearCubeUV:u,roughnessToMip:O,m0:d,cubeUV_maxMipLevel:t}}();var Or=class extends aA{constructor(A){super("v3");this.nodeType="Normal";this.scope=A??Or.VIEW}getShared(){return this.scope===Or.WORLD}build(A,t,r,n){let i=A.context[this.scope+"Normal"];return i?i.build(A,t,r,n):super.build(A,t,r)}generate(A,t,r,n,i){let a;switch(this.scope){case Or.VIEW:A.isShader("vertex")?a="transformedNormal":a="geometryNormal";break;case Or.LOCAL:A.isShader("vertex")?a="objectNormal":(A.requires.normal=!0,a="vObjectNormal");break;case Or.WORLD:A.isShader("vertex")?a="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(A.requires.worldNormal=!0,a="vWNormal");break}return A.format(a,this.getType(A),t)}},_A=Or;_A.LOCAL="local",_A.WORLD="world",_A.VIEW="view",_A.NORMAL="normal";HA.addKeyword("viewNormal",function(){return new _A(_A.VIEW)});HA.addKeyword("localNormal",function(){return new _A(_A.NORMAL)});HA.addKeyword("worldNormal",function(){return new _A(_A.WORLD)});var ft=class extends aA{constructor(A){super("v3");this.nodeType="Position";this.scope=A??ft.LOCAL}getType(){switch(this.scope){case ft.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case ft.LOCAL:case ft.WORLD:return!1}return!0}generate(A,t,r,n,i){let a;switch(this.scope){case ft.LOCAL:A.isShader("vertex")?a="transformed":(A.requires.position=!0,a="vPosition");break;case ft.WORLD:if(A.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";A.requires.worldPosition=!0,a="vWPosition";break;case ft.VIEW:a=A.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case ft.PROJECTION:a=A.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return A.format(a,this.getType(),t)}},we=ft;we.LOCAL="local",we.WORLD="world",we.VIEW="view",we.PROJECTION="projection";HA.addKeyword("position",function(){return new we});HA.addKeyword("worldPosition",function(){return new we(we.WORLD)});HA.addKeyword("viewPosition",function(){return new we(we.VIEW)});var Je=class extends aA{constructor(A){super("v3");this.nodeType="Reflect";this.scope=A??Je.CUBE}getUnique(A){return!A.context.viewNormal}getType(){switch(this.scope){case Je.SPHERE:return"v2"}return this.type}generate(A,t){let r=this.getUnique(A);if(A.isShader("fragment")){let n;switch(this.scope){case Je.VECTOR:{let i=new _A(_A.VIEW),a=A.context.roughness,l=i.build(A,"v3"),u=new we(we.VIEW).build(A,"v3"),s=a?a.build(A,"f"):void 0,c=`reflect( -normalize( ${u} ), ${l} )`;s&&(c=`normalize( mix( ${c}, ${l}, ${s} * ${s} ) )`);let d=`inverseTransformDirection( ${c}, viewMatrix )`;r?(A.addNodeCode(`vec3 reflectVec = ${d};`),n="reflectVec"):n=d;break}case Je.CUBE:{let i=new Je(Je.VECTOR).build(A,"v3"),a="vec3( -"+i+".x, "+i+".yz )";r?(A.addNodeCode(`vec3 reflectCubeVec = ${a};`),n="reflectCubeVec"):n=a;break}case Je.SPHERE:{let a="normalize( ( viewMatrix * vec4( "+new Je(Je.VECTOR).build(A,"v3")+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";r?(A.addNodeCode(`vec2 reflectSphereVec = ${a};`),n="reflectSphereVec"):n=a;break}}return A.format(n,this.getType(),t)}else return console.warn("ReflectNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.type,t)}},mt=Je;mt.CUBE="cube",mt.SPHERE="sphere",mt.VECTOR="vector";var zs=class extends aA{constructor(A=new ve,t,r){super("v4");this.nodeType="TextureCube";this.value=A,this.radianceNode=new Fo(this.value,t??new mt(mt.VECTOR),r),this.irradianceNode=new Fo(this.value,new _A(_A.WORLD),new J(1).setReadonly(!0))}generate(A,t){return A.isShader("fragment")?(A.require("irradiance"),A.context.bias&&A.context.bias.setTexture(this.value),(A.slot==="irradiance"?this.irradianceNode:this.radianceNode).build(A,t)):(console.warn("TextureCubeNode is not compatible with "+A.shader+" shader."),A.format("vec4( 0.0 )",this.getType(A),t))}};import{CubeTexture as u1}from"three";var ks=class extends MA{constructor(A=new u1,t,r){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=A,this.uv=t??new mt,this.bias=r}getTexture(A,t){return super.generate(A,t,this.value.uuid,"tc")}generate(A,t){if(t==="samplerCube")return this.getTexture(A,t);let r=this.getTexture(A,t),n=this.uv?.build(A,"v3"),i=this.bias?this.bias.build(A,"f"):void 0;i===void 0&&A.context.bias&&(i=A.context.bias.setTexture(this).build(A,"f"));let a;i?a="texCubeBias( "+r+", "+n+", "+i+" )":a="texCube( "+r+", "+n+" )";let l={include:A.isShader("vertex"),ignoreCache:!0},u=this.getType(A);return A.addContext(l),this.colorSpace=this.colorSpace??new de(new wA("",u)),this.colorSpace.fromDecoding(A.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(a),a=this.colorSpace.build(A,u),A.removeContext(),A.format(a,u,t)}};var om=["x","y","z","w"],h1=["float","vec2","vec3","vec4"],y1={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},g1={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[]"},Us=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};this.getIncludesCode=function(){function e(A,t){return A.deps.length-t.deps.length}return function(t,r){let n=this.getIncludes(t,r);if(!n)return"";let i="";n=n.sort(e);for(let a=0;a<n.length;a++)n[a].src&&(i+=n[a].src+`
|
|
87
87
|
`);return i}}();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
|
|
@@ -121,14 +121,14 @@ var Ch=Object.create;var sa=Object.defineProperty;var Lh=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(e,A){this.buildShader("vertex",e),this.buildShader("fragment",A);for(let t=0;t<this.requires.uv.length;t++)if(this.requires.uv[t]){let r=t>0?t+1:"";this.addVaryCode("varying vec2 vUv"+r+";"),t>0&&this.addVertexParsCode("attribute vec2 uv"+r+";"),this.addVertexFinalCode("vUv"+r+" = uv"+r+";")}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(e,A){this.resultCode[e]=A.build(this.setShader(e),"v4")}setMaterial(e,A){return this.
|
|
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(e,A){this.buildShader("vertex",e),this.buildShader("fragment",A);for(let t=0;t<this.requires.uv.length;t++)if(this.requires.uv[t]){let r=t>0?t+1:"";this.addVaryCode("varying vec2 vUv"+r+";"),t>0&&this.addVertexParsCode("attribute vec2 uv"+r+";"),this.addVertexFinalCode("vUv"+r+" = uv"+r+";")}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(e,A){this.resultCode[e]=A.build(this.setShader(e),"v4")}setMaterial(e,A){return this.defines={},this}addFlow(e,A,t){return this.addSlot(e).addCache(A).addContext(t)}removeFlow(){return this.removeSlot().removeCache().removeContext()}addCache(e){return this.cache=e??"",this.caches.push(this.cache),this}removeCache(){return this.caches.pop(),this.cache=this.caches[this.caches.length-1]||"",this}addContext(e){return this.context=Object.assign({},this.context,e),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(e){return this.slot=e||"",this.slots.push(this.slot),this}removeSlot(){return this.slots.pop(),this.slot=this.slots[this.slots.length-1]||"",this}addFragmentVariable(e,A){this.fragmentVariables[e]===void 0&&(this.addFragmentCode(`${A} ${e};`),this.fragmentVariables[e]="")}addFragmentParsVariable(e,A){this.fragmentParsVariables[e]===void 0&&(this.addFragmentParsCode(`${A} ${e};`),this.fragmentParsVariables[e]="")}addVertexParsVariable(e,A){this.vertexParsVariables[e]===void 0&&(this.addVertexParsCode(`${A} ${e};`),this.vertexParsVariables[e]="")}addVertexCode(e){this.addCode(e,"vertex")}addFragmentCode(e){this.addCode(e,"fragment")}addCode(e,A){this.code[A??this.shader]+=e+`
|
|
125
125
|
`}addVertexNodeCode(e){this.addNodeCode(e,"vertex")}addFragmentNodeCode(e){this.addNodeCode(e,"fragment")}addNodeCode(e,A){this.nodeCode[A??this.shader]+=e+`
|
|
126
126
|
`}clearNodeCode(e){e=e??this.shader;let A=this.nodeCode[e];return this.nodeCode[e]="",A}clearVertexNodeCode(){return this.clearNodeCode("vertex")}clearFragmentNodeCode(){return this.clearNodeCode("fragment")}addVertexFinalCode(e){this.addFinalCode(e,"vertex")}addFragmentFinalCode(e){this.addFinalCode(e,"fragment")}addFinalCode(e,A){this.finalCode[A??this.shader]+=e+`
|
|
127
127
|
`}addVertexParsCode(e){this.addParsCode(e,"vertex")}addFragmentParsCode(e){this.addParsCode(e,"fragment")}addParsCode(e,A){this.parsCode[A??this.shader]+=e+`
|
|
128
128
|
`}addVaryCode(e){this.addVertexParsCode(e),this.addFragmentParsCode(e)}isCache(e){return this.caches.indexOf(e)!==-1}isSlot(e){return this.slots.indexOf(e)!==-1}define(e,A){this.defines[e]=A===void 0?1:A}require(e){this.requires[e]=!0}isDefined(e){return this.defines[e]!==void 0}getVar(e,A,t,r="varying",n="V",i=""){let a=this.getVars(r),l=a[e];if(!l){let u=a.length;l={name:t||"node"+n+u+(i?"_"+i:""),type:A},a.push(l),a[e]=l}return l}getTempVar(e,A,t,r){return this.getVar(e,A,t,this.shader,"T",r)}getAttribute(e,A){if(!this.attributes[e]){let t=this.getVar(e,A);this.addVertexParsCode("attribute "+A+" "+e+";"),this.addVertexFinalCode(t.name+" = "+e+";"),this.attributes[e]={varying:t,name:e,type:A}}return this.attributes[e]}getCode(e){return[this.prefixCode,this.parsCode[e],this.getVarListCode(this.getVars("varying"),"varying"),this.getVarListCode(this.inputs.uniforms[e],"uniform"),this.getVarListCode(this.inputs.arrayUniforms[e],"uniform"),this.getIncludesCode("consts",e),this.getIncludesCode("structs",e),this.getIncludesCode("functions",e),"void main() {",this.getVarListCode(this.getVars(e)),this.code[e],this.resultCode[e],this.finalCode[e],"}"].join(`
|
|
129
129
|
`)}getVarListCode(e,A){A=A??"";let t="";for(let r=0,n=e.length;r<n;++r){let i=e[r],a=i.type,l=i.name,u=i.size,s=this.getFormatByType(a);if(s===void 0)throw new Error("Node pars "+s+" not found.");s.includes("[]")?t+=A+" "+s.substring(0,s.length-2)+" "+l+`[${u}];
|
|
130
130
|
`:t+=A+" "+s+" "+l+`;
|
|
131
|
-
`}return t}getVars(e){return this.inputs.vars[e??this.shader]}getNodeData(e){let A=e instanceof
|
|
131
|
+
`}return t}getVars(e){return this.inputs.vars[e??this.shader]}getNodeData(e){let A=e instanceof ZA?e.uuid:e;return this.nodeData[A]=this.nodeData[A]||{}}createUniform(e,A,t,r,n,i){if(A.includes("[]")){let a=this.inputs.arrayUniforms,l=a.list.length,u=new Dn({type:A,size:t.size,name:r||"nodeUA"+l+(i?"_"+i:""),node:t,needsUpdate:n});return a.list.push(u),a[e].push(u),a[e][u.name]=u,this.uniforms[u.name]=u,u}else{let a=this.inputs.uniforms,l=a.list.length,u=new Dn({type:A,name:r||"nodeU"+l+(i?"_"+i:""),node:t,needsUpdate:n});return a.list.push(u),a[e].push(u),a[e][u.name]=u,this.uniforms[u.name]=u,u}}createVertexUniform(e,A,t,r,n){return this.createUniform("vertex",e,A,t,r,n)}createFragmentUniform(e,A,t,r,n){return this.createUniform("fragment",e,A,t,r,n)}include(e,A,t){let r;if(e=typeof e=="string"?HA.get(e):e,this.context.include===!1)return e.name;e instanceof K?r=this.includes.functions:e instanceof xA?r=this.includes.consts:e instanceof Go&&(r=this.includes.structs);let n=r[this.shader]=r[this.shader]||[];if(e){let i=n[e.name];if(i||(i=n[e.name]={node:e,deps:[]},n.push(i),i.src=e.build(this,"source")),e instanceof K&&A&&n[A.name]&&n[A.name].deps.indexOf(e)===-1&&(n[A.name].deps.push(e),e.includes?.length)){let a=0;do this.include(e.includes[a++],A);while(a<e.includes.length)}return t&&(i.src=t),e.name}else throw new Error("Include not found.")}colorToVectorProperties(e){return e.replace("r","x").replace("g","y").replace("b","z").replace("a","w")}colorToVector(e){return e.replace(/c/g,"v3")}getIncludes(e,A){return this.includes[e][A||this.shader]}getConstructorFromLength(e){return h1[e-1]}isTypeMatrix(e){return/^m/.test(e)}getTypeLength(e){return e==="f"?1:parseInt(this.colorToVector(e).substr(1))}getTypeFromLength(e){return e===1?"f":"v"+e}findNode(...e){for(let A=0;A<arguments.length;A++){let t=e[A];if(t?.isNode)return t}}resolve(...e){for(let A=0;A<arguments.length;A++){let t=e[A];if(t!==void 0){if(t.isNode)return t;if(t.isTexture)switch(t.mapping){case d1:case p1:return new ks(t);case f1:return new zs(new ve(t));default:return new ve(t)}else{if(t.isVector2)return new JA(t);if(t.isVector3)return new ee(t);if(t.isVector4)return new je(t)}}}}format(e,A,t){switch(this.colorToVector(t+" <- "+A)){case"f <- v2":return e+".x";case"f <- v3":return e+".x";case"f <- v4":return e+".x";case"f <- i":case"f <- b":return"float( "+e+" )";case"v2 <- f":return"vec2( "+e+" )";case"v2 <- v3":return e+".xy";case"v2 <- v4":return e+".xy";case"v2 <- i":case"v2 <- b":return"vec2( float( "+e+" ) )";case"v3 <- f":return"vec3( "+e+" )";case"v3 <- v2":return"vec3( "+e+", 0.0 )";case"v3 <- v4":return e+".xyz";case"v3 <- i":case"v3 <- b":return"vec2( float( "+e+" ) )";case"v4 <- f":return"vec4( "+e+" )";case"v4 <- v2":return"vec4( "+e+", 0.0, 1.0 )";case"v4 <- v3":return"vec4( "+e+", 1.0 )";case"v4 <- i":case"v4 <- b":return"vec4( float( "+e+" ) )";case"i <- f":case"i <- b":return"int( "+e+" )";case"i <- v2":return"int( "+e+".x )";case"i <- v3":return"int( "+e+".x )";case"i <- v4":return"int( "+e+".x )";case"b <- f":return"( "+e+" != 0.0 )";case"b <- v2":return"( "+e+" != vec2( 0.0 ) )";case"b <- v3":return"( "+e+" != vec3( 0.0 ) )";case"b <- v4":return"( "+e+" != vec4( 0.0 ) )";case"b <- i":return"( "+e+" != 0 )"}return e}getTypeByFormat(e){return y1[e]||e}getFormatByType(e){return g1[e]||e}getUUID(e,A){return A=A!==void 0?A:!0,A&&this.cache&&(e=this.cache+"-"+e),e}getElementByIndex(e){return om[e]}getIndexByElement(e){return om.indexOf(e)}isShader(e){return this.shader===e}setShader(e){return this.shader=e,this}mergeDefines(e){for(let A in e)this.defines[A]=e[A];return this.defines}mergeUniform(e){for(let A in e)this.uniforms[A]=e[A];return this.uniforms}getTextureEncodingFromMap(e){let A;return e?e.isTexture&&(A=e.encoding):A=rm,A===rm&&this.context.gamma&&(A=m1),A}};import{Vector2 as Cr,Vector3 as gt,Vector4 as ko}from"three";var TA=class extends MA{constructor(A=0,t,r,n){super("c");this.nodeType="Color";this.value=A instanceof WA?A:new WA(A||0,t,r,n)}setRGBA(A){this.value.setRGBA(A.r,A.g,A.b,A.a)}generate(A,t,r,n,i,a){r=A.getUUID(r??this.getUUID()),n=n??this.getType(A);let l=A.getNodeData(r),u=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let s=this.alpha.build(A,"f");A.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${s};`)}return u?this.generateReadonly(A,t,r,n,i,a):A.isShader("vertex")?(l.vertex||(l.vertex=A.createVertexUniform(n,this,i,a,this.getLabel())),A.format(l.vertex.name,n,t)):(l.fragment||(l.fragment=A.createFragmentUniform(n,this,i,a,this.getLabel())),A.format(l.fragment.name,n,t))}generateReadonly(A,t,r,n,i,a){return A.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",n,t)}};var gA=class extends MA{constructor(A){super("i");this.nodeType="Int";this.value=Math.floor(A??0)}generateReadonly(A,t,r,n,i,a){return A.format(this.value.toString(),n,t)}};import{UniformsLib as x1,UniformsUtils as v1}from"three";var Nr=class extends ZA{constructor(){super("basic");this.nodeType="Basic";this.color=new TA(5855577),this.shadingAlpha=new J(1),this.shadingBlend=new gA(0)}get category(){return"phong"}generate(A){let t;if(A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(v1.merge([x1.fog])),A.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
|
|
132
132
|
`));let n=["#include <beginnormal_vertex>",`
|
|
133
133
|
#if !defined( USE_LAYER_DISPLACE )
|
|
134
134
|
#include <defaultnormal_vertex>
|
|
@@ -148,7 +148,236 @@ var Ch=Object.create;var sa=Object.defineProperty;var Lh=Object.getOwnPropertyDe
|
|
|
148
148
|
`];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=n.join(`
|
|
149
149
|
`)}else{this.color===void 0&&(this.color=new TA(5855577)),this.color.analyze(A,{slot:"color"}),this.alpha&&this.alpha.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"});let r=this.color.flow(A,"c",{slot:"color"}),n=this.alpha?this.alpha.flow(A,"f"):void 0,i=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0;A.requires.transparent=n!==void 0,A.addParsCode(["varying vec3 vWPosition;","#include <fog_pars_fragment>","#include <dithering_pars_fragment>","varying vec3 vViewPosition;","#include <normal_pars_fragment>"].join(`
|
|
150
150
|
`));let a=["#include <normal_fragment_begin>",r.code];n&&a.push(n.code,"#ifdef ALPHATEST"," if ( "+n.result+" <= ALPHATEST ) discard;","#endif"),i?a.push(i.code,`vec3 outgoingLight = ${r.result};`,`vec3 finalColor = spe_blend(outgoingLight, ${i.result}, 1.0, SPE_BLENDING_NORMAL);`):a.push(`vec3 finalColor = ${r.result};`),n?a.push(`gl_FragColor = vec4( finalColor, accumAlpha * ${n.result} );`):a.push("gl_FragColor = vec4("+r.result+", 1.0 );"),a.push("#include <fog_fragment>","#include <dithering_fragment>"),t=a.join(`
|
|
151
|
-
`)}return t}};import{UniformsLib as
|
|
151
|
+
`)}return t}};import{UniformsLib as nm,UniformsUtils as b1}from"three";var _e=class extends MA{constructor(A=1,t){super("f[]");this.nodeType="FloatArray";this.size=A,this.value=Array.isArray(t)?t:typeof t=="number"?new Array(A).fill(t):new Array(A).fill(0)}};var te={normalRenderTarget:new ve,normalRenderTargetDepth:new ve,transmissionRenderTarget:new ve,transmissionSize:new JA(2048,2048),transmissionRenderTargetDepth:new ve,pixelRatioNode:new J(1),resolution:new JA,penumbraSize:new _e(5,.5)};for(let o of Object.values(te))o.isRenderGlobal=!0;var Rn=class extends ZA{constructor(){super("lambert");this.nodeType="Lambert";this.color=new TA(5855577),this.emissive=new TA(0),this.emissiveIntensity=new J(1),this.shadingAlpha=new J(1),this.shadingBlend=new gA(0)}get category(){return"lambert"}build(A){let t;if(A.define("LAMBERT"),A.requires.lights=!0,A.extensions.derivatives=!0,A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(b1.merge([nm.fog,nm.lights])),A.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(`
|
|
152
|
+
`));let n=["#include <beginnormal_vertex>",`
|
|
153
|
+
#ifndef USE_LAYER_DISPLACE
|
|
154
|
+
#include <defaultnormal_vertex>
|
|
155
|
+
#endif
|
|
156
|
+
|
|
157
|
+
vec3 displaced_position = position;
|
|
158
|
+
vec3 displaced_normal = normal;
|
|
159
|
+
|
|
160
|
+
#ifdef USE_LAYER_DISPLACE
|
|
161
|
+
vec3 transformed;
|
|
162
|
+
vec3 transformedNormal;
|
|
163
|
+
#endif
|
|
164
|
+
`,"#include <normal_vertex>",`
|
|
165
|
+
#ifndef USE_LAYER_DISPLACE
|
|
166
|
+
#include <begin_vertex>
|
|
167
|
+
#endif
|
|
168
|
+
`];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push(" #include <project_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>",`
|
|
169
|
+
vec3 diffuse = vec3( 1.0 );
|
|
170
|
+
GeometricContext geometry;
|
|
171
|
+
geometry.position = mvPosition.xyz;
|
|
172
|
+
geometry.normal = normalize( transformedNormal );
|
|
173
|
+
geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );
|
|
174
|
+
GeometricContext backGeometry;
|
|
175
|
+
backGeometry.position = geometry.position;
|
|
176
|
+
backGeometry.normal = -geometry.normal;
|
|
177
|
+
backGeometry.viewDir = geometry.viewDir;
|
|
178
|
+
vLightFront = vec3( 0.0 );
|
|
179
|
+
vIndirectFront = vec3( 0.0 );
|
|
180
|
+
#ifdef DOUBLE_SIDED
|
|
181
|
+
vLightBack = vec3( 0.0 );
|
|
182
|
+
vIndirectBack = vec3( 0.0 );
|
|
183
|
+
#endif
|
|
184
|
+
IncidentLight directLight;
|
|
185
|
+
float dotNL;
|
|
186
|
+
vec3 directLightColor_Diffuse;
|
|
187
|
+
vIndirectFront += getAmbientLightIrradiance( ambientLightColor );
|
|
188
|
+
vIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );
|
|
189
|
+
#ifdef DOUBLE_SIDED
|
|
190
|
+
vIndirectBack += getAmbientLightIrradiance( ambientLightColor );
|
|
191
|
+
vIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );
|
|
192
|
+
#endif
|
|
193
|
+
#if NUM_POINT_LIGHTS > 0
|
|
194
|
+
#pragma unroll_loop_start
|
|
195
|
+
for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {
|
|
196
|
+
getPointLightInfo( pointLights[ i ], geometry, directLight );
|
|
197
|
+
dotNL = dot( geometry.normal, directLight.direction );
|
|
198
|
+
directLightColor_Diffuse = directLight.color;
|
|
199
|
+
vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
|
|
200
|
+
#ifdef DOUBLE_SIDED
|
|
201
|
+
vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;
|
|
202
|
+
#endif
|
|
203
|
+
}
|
|
204
|
+
#pragma unroll_loop_end
|
|
205
|
+
#endif
|
|
206
|
+
#if NUM_SPOT_LIGHTS > 0
|
|
207
|
+
#pragma unroll_loop_start
|
|
208
|
+
for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {
|
|
209
|
+
getSpotLightInfo( spotLights[ i ], geometry, directLight );
|
|
210
|
+
dotNL = dot( geometry.normal, directLight.direction );
|
|
211
|
+
directLightColor_Diffuse = directLight.color;
|
|
212
|
+
vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
|
|
213
|
+
#ifdef DOUBLE_SIDED
|
|
214
|
+
vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;
|
|
215
|
+
#endif
|
|
216
|
+
}
|
|
217
|
+
#pragma unroll_loop_end
|
|
218
|
+
#endif
|
|
219
|
+
#if NUM_DIR_LIGHTS > 0
|
|
220
|
+
#pragma unroll_loop_start
|
|
221
|
+
for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {
|
|
222
|
+
getDirectionalLightInfo( directionalLights[ i ], geometry, directLight );
|
|
223
|
+
dotNL = dot( geometry.normal, directLight.direction );
|
|
224
|
+
directLightColor_Diffuse = directLight.color;
|
|
225
|
+
vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
|
|
226
|
+
#ifdef DOUBLE_SIDED
|
|
227
|
+
vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;
|
|
228
|
+
#endif
|
|
229
|
+
}
|
|
230
|
+
#pragma unroll_loop_end
|
|
231
|
+
#endif
|
|
232
|
+
#if NUM_HEMI_LIGHTS > 0
|
|
233
|
+
#pragma unroll_loop_start
|
|
234
|
+
for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {
|
|
235
|
+
vIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );
|
|
236
|
+
#ifdef DOUBLE_SIDED
|
|
237
|
+
vIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );
|
|
238
|
+
#endif
|
|
239
|
+
}
|
|
240
|
+
#pragma unroll_loop_end
|
|
241
|
+
#endif
|
|
242
|
+
`," #include <shadowmap_vertex>"," #include <fog_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=n.join(`
|
|
243
|
+
`)}else{A.mergeUniform({penumbraSize:te.penumbraSize}),this.color===void 0&&(this.color=new TA(5855577)),this.color.analyze(A,{slot:"color"}),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A);let r=this.color.flow(A,"c",{slot:"color"}),n=this.emissive.flow(A,"c",{slot:"emissive"}),i=this.emissiveIntensity.flow(A,"f",{slot:"emissive"}),a=this.shadingAlpha.flow(A,"f"),l=this.shadingBlend.flow(A,"i"),u=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,s=this.alpha?this.alpha.flow(A,"f"):void 0;A.requires.transparent=s!==void 0,A.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(`
|
|
244
|
+
`));let c=["#include <normal_fragment_begin>",`
|
|
245
|
+
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
246
|
+
vec3 viewdx = dFdx(vViewPosition);
|
|
247
|
+
vec3 viewdy = dFdy(vViewPosition);
|
|
248
|
+
vec3 faceNormal = normalize(cross(viewdx, viewdy));
|
|
249
|
+
bool isFrontFacing = (dot(normal, faceNormal) >= 0.0);
|
|
250
|
+
`,"#include <clipping_planes_fragment>"];c.push(r.code,"vec3 diffuseColor = "+r.result+";","ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"),s&&c.push(s.code,"#ifdef ALPHATEST","if ( "+s.result+" <= ALPHATEST ) discard;","#endif"),c.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();"),n&&c.push(n.code,"reflectedLight.directDiffuse += "+n.result+" * "+i.result+";"),c.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;"),c.push(`
|
|
251
|
+
if (outgoingLight != diffuseColor) {
|
|
252
|
+
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
253
|
+
accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
|
|
254
|
+
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
|
|
255
|
+
}
|
|
256
|
+
`),u&&c.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),s?c.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${s.result} );`):c.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),c.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),t=c.join(`
|
|
257
|
+
`)}return t}};import{UniformsLib as im,UniformsUtils as w1}from"three";var Hs=class extends ZA{constructor(){super("phong");this.nodeType="Phong";this.color=new TA(5855577),this.specular=new TA(1118481),this.shininess=new J(30),this.shadingAlpha=new J(1),this.shadingBlend=new gA(0)}get category(){return"phong"}build(A){let t;if(A.define("PHONG"),A.requires.lights=!0,A.extensions.derivatives=!0,A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(w1.merge([im.fog,im.lights])),A.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(`
|
|
258
|
+
`));let n=["#include <beginnormal_vertex>",`
|
|
259
|
+
#ifndef USE_LAYER_DISPLACE
|
|
260
|
+
#include <defaultnormal_vertex>
|
|
261
|
+
#endif
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
vec3 displaced_position = position;
|
|
265
|
+
vec3 displaced_normal = normal;
|
|
266
|
+
|
|
267
|
+
#ifdef USE_LAYER_DISPLACE
|
|
268
|
+
vec3 transformed;
|
|
269
|
+
vec3 transformedNormal;
|
|
270
|
+
#endif
|
|
271
|
+
`,"#include <normal_vertex>",`
|
|
272
|
+
#ifndef USE_LAYER_DISPLACE
|
|
273
|
+
#include <begin_vertex>
|
|
274
|
+
#endif
|
|
275
|
+
`];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push(" #include <project_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=n.join(`
|
|
276
|
+
`)}else{A.mergeUniform({penumbraSize:te.penumbraSize}),this.color===void 0&&(this.color=new TA(5855577)),this.color.analyze(A,{slot:"color"}),this.specular.analyze(A),this.shininess.analyze(A),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A);let r=this.color.flow(A,"c",{slot:"color"}),n=this.specular.flow(A,"c"),i=this.shininess.flow(A,"f"),a=this.shadingAlpha.flow(A,"f"),l=this.shadingBlend.flow(A,"i"),u=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,s=this.alpha?this.alpha.flow(A,"f"):void 0;A.requires.transparent=s!==void 0,A.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(`
|
|
277
|
+
`));let c=["#include <normal_fragment_begin>",`
|
|
278
|
+
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
279
|
+
vec3 viewdx = dFdx(vViewPosition);
|
|
280
|
+
vec3 viewdy = dFdy(vViewPosition);
|
|
281
|
+
vec3 faceNormal = normalize(cross(viewdx,viewdy));
|
|
282
|
+
if (dot(normal, faceNormal) < 0.0) {
|
|
283
|
+
normal *= -1.0;
|
|
284
|
+
}
|
|
285
|
+
`," BlinnPhongMaterial material;"];c.push(r.code," vec3 diffuseColor = "+r.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveRadiance = emissive;",n.code," vec3 specular = "+n.result+";",i.code," float shininess = max( 0.0001, "+i.result+" );"," float specularStrength = 1.0;"),s&&c.push(s.code,"#ifdef ALPHATEST","if ( "+s.result+" <= ALPHATEST ) discard;","#endif"),c.push("material.diffuseColor = diffuseColor;"),c.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),c.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;"),c.push(`
|
|
286
|
+
if (outgoingLight != diffuseColor) {
|
|
287
|
+
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
288
|
+
accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
|
|
289
|
+
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
|
|
290
|
+
}
|
|
291
|
+
`),u&&c.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),s?c.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${s.result} );`):c.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),c.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),t=c.join(`
|
|
292
|
+
`)}return t}};import{UniformsLib as zl,UniformsUtils as S1}from"three";var Vn=class extends ZA{constructor(){super("standard");this.nodeType="Standard";this.color=new TA(5855577),this.roughness=new J(.3),this.metalness=new J(0),this.reflectivity=new J(.5),this.shadingAlpha=new J(1),this.shadingBlend=new gA(0)}get category(){return"physical"}build(A){let t;if(A.define("STANDARD"),A.requires.lights=!0,A.extensions.derivatives=!0,A.extensions.shaderTextureLOD=!0,A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(S1.merge([zl.fog,zl.lights])),zl.LTC_1&&(A.uniforms.ltc_1={value:void 0},A.uniforms.ltc_2={value:void 0}),A.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(`
|
|
293
|
+
`));let n=["#include <beginnormal_vertex>",`
|
|
294
|
+
#if !defined( USE_LAYER_DISPLACE )
|
|
295
|
+
#include <defaultnormal_vertex>
|
|
296
|
+
#endif
|
|
297
|
+
|
|
298
|
+
vec3 displaced_position = position;
|
|
299
|
+
vec3 displaced_normal = normal;
|
|
300
|
+
|
|
301
|
+
#if defined( USE_LAYER_DISPLACE )
|
|
302
|
+
vec3 transformed;
|
|
303
|
+
vec3 transformedNormal;
|
|
304
|
+
#endif
|
|
305
|
+
`,"#include <normal_vertex>",`
|
|
306
|
+
#if !defined( USE_LAYER_DISPLACE )
|
|
307
|
+
#include <begin_vertex>
|
|
308
|
+
#endif /* !USE_LAYER_DISPLACE */
|
|
309
|
+
`];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>","#include <shadowmap_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=n.join(`
|
|
310
|
+
`)}else{A.mergeUniform({penumbraSize:te.penumbraSize});let r={gamma:!0};this.color===void 0&&(this.color=new TA(5855577)),this.color.analyze(A,{slot:"color",context:r}),this.roughness.analyze(A),this.metalness.analyze(A),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A),this.reflectivity&&this.reflectivity.analyze(A);let n=this.color.flow(A,"c",{slot:"color",context:r}),i=this.roughness.flow(A,"f"),a=this.metalness.flow(A,"f"),l=this.shadingAlpha.flow(A,"f"),u=this.shadingBlend.flow(A,"i"),s=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(A,"f"):void 0,d=this.reflectivity?this.reflectivity.flow(A,"f"):void 0;A.requires.transparent=c!==void 0,A.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(`
|
|
311
|
+
`));let p=["#include <clipping_planes_fragment>"," #include <normal_fragment_begin>",`
|
|
312
|
+
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
313
|
+
vec3 viewdx = dFdx(vViewPosition);
|
|
314
|
+
vec3 viewdy = dFdy(vViewPosition);
|
|
315
|
+
vec3 faceNormal = normalize(cross(viewdx,viewdy));
|
|
316
|
+
if (dot(normal, faceNormal) < 0.0) {
|
|
317
|
+
normal *= -1.0;
|
|
318
|
+
}
|
|
319
|
+
`," PhysicalMaterial material;"," material.diffuseColor = vec3( 1.0 );"];p.push(n.code," vec3 diffuseColor = "+n.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",i.code," float roughnessFactor = "+i.result+";",a.code," float metalnessFactor = "+a.result+";"),c&&p.push(c.code,"#ifdef ALPHATEST"," if ( "+c.result+" <= ALPHATEST ) discard;","#endif"),p.push("vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );"),p.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?p.push(d.code,"material.specularColor = mix( vec3( 0.16 * pow2( "+d.result+" ) ), diffuseColor, metalnessFactor );"):p.push("material.specularColor = mix( vec3( 0.04 ), diffuseColor, metalnessFactor );"),p.push("#include <lights_fragment_begin>"),p.push("#include <lights_fragment_end>"),p.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;"),p.push(`
|
|
320
|
+
if (outgoingLight != diffuseColor) {
|
|
321
|
+
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
322
|
+
accumAlpha += ( 1.0 - accumAlpha ) * ${l.result} * lightAccu;
|
|
323
|
+
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${u.result} );
|
|
324
|
+
}
|
|
325
|
+
`),s&&p.push(s.code,`outgoingLight = spe_blend(outgoingLight, ${s.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>"),t=p.join(`
|
|
326
|
+
`)}return t}};import{UniformsLib as sm,UniformsUtils as T1}from"three";var Fn=class extends ZA{constructor(){super("toon");this.nodeType="Toon";this.color=new TA(5855577),this.specular=new TA(1118481),this.shininess=new J(30),this.shadingAlpha=new J(1),this.shadingBlend=new gA(0)}get category(){return"toon"}build(A){let t;if(A.define("TOON"),A.requires.lights=!0,A.extensions.derivatives=!0,A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(T1.merge([sm.fog,sm.lights])),A.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(`
|
|
327
|
+
`));let n=["#include <beginnormal_vertex>",`
|
|
328
|
+
#ifndef USE_LAYER_DISPLACE
|
|
329
|
+
#include <defaultnormal_vertex>
|
|
330
|
+
#endif
|
|
331
|
+
|
|
332
|
+
vec3 displaced_position = position;
|
|
333
|
+
vec3 displaced_normal = normal;
|
|
334
|
+
|
|
335
|
+
#ifdef USE_LAYER_DISPLACE
|
|
336
|
+
vec3 transformed;
|
|
337
|
+
vec3 transformedNormal;
|
|
338
|
+
#endif
|
|
339
|
+
`,"#include <normal_vertex>",`
|
|
340
|
+
#ifndef USE_LAYER_DISPLACE
|
|
341
|
+
#include <begin_vertex>
|
|
342
|
+
#endif
|
|
343
|
+
`];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push(" #include <project_vertex>"," #include <fog_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=n.join(`
|
|
344
|
+
`)}else{A.mergeUniform({penumbraSize:te.penumbraSize}),this.color===void 0&&(this.color=new TA(5855577)),this.color.analyze(A,{slot:"color"}),this.specular.analyze(A),this.shininess.analyze(A),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A);let r=this.color.flow(A,"c",{slot:"color"}),n=this.specular.flow(A,"c"),i=this.shininess.flow(A,"f"),a=this.shadingAlpha.flow(A,"f"),l=this.shadingBlend.flow(A,"i"),u=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,s=this.alpha?this.alpha.flow(A,"f"):void 0;A.requires.transparent=s!==void 0,A.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>",`
|
|
345
|
+
varying vec3 vViewPosition;
|
|
346
|
+
struct ToonMaterial {
|
|
347
|
+
vec3 diffuseColor;
|
|
348
|
+
vec3 specularColor;
|
|
349
|
+
float specularShininess;
|
|
350
|
+
float specularStrength;
|
|
351
|
+
};
|
|
352
|
+
void RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
|
|
353
|
+
vec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;
|
|
354
|
+
|
|
355
|
+
reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
|
|
356
|
+
reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;
|
|
357
|
+
}
|
|
358
|
+
void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
|
|
359
|
+
reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
|
|
360
|
+
}
|
|
361
|
+
#define RE_Direct RE_Direct_Toon
|
|
362
|
+
#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon
|
|
363
|
+
#define Material_LightProbeLOD( material ) (0)
|
|
364
|
+
`,"#include <shadowmap_pars_fragment>","#include <bumpmap_pars_fragment>","#include <normalmap_pars_fragment>"].join(`
|
|
365
|
+
`));let c=["#include <normal_fragment_begin>",`
|
|
366
|
+
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
367
|
+
vec3 viewdx = dFdx(vViewPosition);
|
|
368
|
+
vec3 viewdy = dFdy(vViewPosition);
|
|
369
|
+
vec3 faceNormal = normalize(cross(viewdx,viewdy));
|
|
370
|
+
if (dot(normal, faceNormal) < 0.0) {
|
|
371
|
+
normal *= -1.0;
|
|
372
|
+
}
|
|
373
|
+
`," ToonMaterial material;"];c.push(r.code," vec3 diffuseColor = "+r.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",n.code," vec3 specular = "+n.result+";",i.code," float shininess = max( 0.0001, "+i.result+" );"," float specularStrength = 1.0;"),s&&c.push(s.code,"#ifdef ALPHATEST","if ( "+s.result+" <= ALPHATEST ) discard;","#endif"),c.push("material.diffuseColor = diffuseColor;"),c.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),c.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;"),c.push(`
|
|
374
|
+
if (outgoingLight != diffuseColor) {
|
|
375
|
+
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
376
|
+
accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
|
|
377
|
+
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
|
|
378
|
+
}
|
|
379
|
+
`),u&&c.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),s?c.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${s.result} );`):c.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),c.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),t=c.join(`
|
|
380
|
+
`)}return t}};var ar=class extends MA{constructor(A){super("b");this.nodeType="Bool";this.value=A??!1}generateReadonly(A,t,r,n){return A.format(this.value?"true":"false",n,t)}};import{Matrix3 as O1}from"three";var jo=class extends MA{constructor(A){super("m3");this.nodeType="Matrix3";this.value=A??new O1}generateReadonly(A,t,r,n,i,a){return A.format("mat3("+this.value.elements.join(", ")+")",n,t)}get elements(){return this.value.elements}set elements(A){this.value.fromArray(A)}};import{Vector4 as am}from"three";var $e=class extends MA{constructor(A=1,t){super("v4[]");this.nodeType="Vector4Array";this.size=A,this.value=Array.isArray(t)?t:t instanceof am?new Array(A).fill(t):new Array(A).fill(new am(0))}};var jn=(n=>(n.SIMPLEX="simplex3d",n.SIMPLEX_FRACTAL="simplex3dFractal",n.ASHIMA="simplexAshima",n.FBM="fbm",n.PERLIN="perlin",n))(jn||{}),ae=function(){let e=new K(`vec3 random3(vec3 c) {
|
|
152
381
|
float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));
|
|
153
382
|
vec3 r;
|
|
154
383
|
r.z = fract(512.0*j);
|
|
@@ -325,7 +554,7 @@ var Ch=Object.create;var sa=Object.defineProperty;var Lh=Object.getOwnPropertyDe
|
|
|
325
554
|
vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);
|
|
326
555
|
float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);
|
|
327
556
|
return 2.2 * n_xyz;
|
|
328
|
-
}`,[r,n,c]);return{simplex:A,simplexFractal:t,simplexAshima:i,fbm:s,perlin:d}}();var
|
|
557
|
+
}`,[r,n,c]);return{simplex:A,simplexFractal:t,simplexAshima:i,fbm:s,perlin:d}}();var zn=class extends aA{constructor(A,t,r,n,i,a,l,u,s,c,d,p){super("v3");this.nodeType="Noise";this.scale=A,this.size=t,this.move=r,this.fA=n,this.fB=i,this.distortion=a,this.colorA=l,this.colorB=u,this.colorC=s,this.colorD=c,this.alpha=d,this.noiseType=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t,r,n,i){A.require("uv"),A.requires.uv=[!0],A.addFragmentVariable(this.calpha,"float");let a=Object.values(jn)[this.noiseType.value],l=new K(`vec3 ${a}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
558
|
vec3 st = position / size;
|
|
330
559
|
st /= scale;
|
|
331
560
|
vec3 q = vec3(${a}(st),
|
|
@@ -345,49 +574,14 @@ var Ch=Object.create;var sa=Object.defineProperty;var Lh=Object.getOwnPropertyDe
|
|
|
345
574
|
|
|
346
575
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
347
576
|
return clamp(color, 0.0, 1.0).rgb;
|
|
348
|
-
}`,[
|
|
349
|
-
`));let n=["#include <beginnormal_vertex>",`
|
|
350
|
-
#ifndef USE_LAYER_DISPLACE
|
|
351
|
-
#include <defaultnormal_vertex>
|
|
352
|
-
#endif
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
vec3 displaced_position = position;
|
|
356
|
-
vec3 displaced_normal = normal;
|
|
357
|
-
|
|
358
|
-
#ifdef USE_LAYER_DISPLACE
|
|
359
|
-
vec3 transformed;
|
|
360
|
-
vec3 transformedNormal;
|
|
361
|
-
#endif
|
|
362
|
-
`,"#include <normal_vertex>",`
|
|
363
|
-
#ifndef USE_LAYER_DISPLACE
|
|
364
|
-
#include <begin_vertex>
|
|
365
|
-
#endif
|
|
366
|
-
`];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push(" #include <project_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=n.join(`
|
|
367
|
-
`)}else{A.mergeUniform({penumbraSize:re.penumbraSize}),this.color===void 0&&(this.color=new TA(5855577)),this.color.analyze(A,{slot:"color"}),this.specular.analyze(A),this.shininess.analyze(A),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A);let r=this.color.flow(A,"c",{slot:"color"}),n=this.specular.flow(A,"c"),i=this.shininess.flow(A,"f"),a=this.shadingAlpha.flow(A,"f"),l=this.shadingBlend.flow(A,"i"),u=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,s=this.alpha?this.alpha.flow(A,"f"):void 0;A.requires.transparent=s!==void 0,A.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 c=["#include <normal_fragment_begin>",`
|
|
369
|
-
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
370
|
-
vec3 viewdx = dFdx(vViewPosition);
|
|
371
|
-
vec3 viewdy = dFdy(vViewPosition);
|
|
372
|
-
vec3 faceNormal = normalize(cross(viewdx,viewdy));
|
|
373
|
-
if (dot(normal, faceNormal) < 0.0) {
|
|
374
|
-
normal *= -1.0;
|
|
375
|
-
}
|
|
376
|
-
`," BlinnPhongMaterial material;"];c.push(r.code," vec3 diffuseColor = "+r.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveRadiance = emissive;",n.code," vec3 specular = "+n.result+";",i.code," float shininess = max( 0.0001, "+i.result+" );"," float specularStrength = 1.0;"),s&&c.push(s.code,"#ifdef ALPHATEST","if ( "+s.result+" <= ALPHATEST ) discard;","#endif"),c.push("material.diffuseColor = diffuseColor;"),c.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),c.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;"),c.push(`
|
|
377
|
-
if (outgoingLight != diffuseColor) {
|
|
378
|
-
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
379
|
-
accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
|
|
380
|
-
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
|
|
381
|
-
}
|
|
382
|
-
`),u&&c.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),s?c.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${s.result} );`):c.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),c.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),t=c.join(`
|
|
383
|
-
`)}return t}};var Fl=class extends aA{constructor(A,t,r,n,i,a,l){super("v3");this.nodeType="Fresnel";this.color=A,this.bias=t,this.scale=r,this.intensity=n,this.factor=i,this.alpha=a,this.mode=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.require("vWorldViewDir"),A.require("worldNormal"),A.isShader("fragment")){A.addFragmentVariable(this.calpha,"float");let r=A.include(Fl.Nodes.fresnel),n=[];return n.push(this.color.build(A,"c")),n.push(this.bias.build(A,"f")),n.push(this.scale.build(A,"f")),n.push(this.intensity.build(A,"f")),n.push(this.factor.build(A,"f")),n.push(this.alpha.build(A,"f")),n.push(this.mode.build(A,"i")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("FresnelNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},Vn=Fl;Vn.Nodes=function(){return{fresnel:new K(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, float alpha, int mode, out float calpha) {
|
|
577
|
+
}`,[ae.simplex,ae.simplexFractal,ae.simplexAshima,ae.fbm,ae.perlin]),u=A.include(l),s=[];return s.push(this.scale.build(A,"f")),s.push(this.size.build(A,"v3")),s.push(this.move.build(A,"f")),s.push(this.fA.build(A,"v2")),s.push(this.fB.build(A,"v2")),s.push(this.distortion.build(A,"v2")),s.push(this.colorA.build(A,"v4")),s.push(this.colorB.build(A,"v4")),s.push(this.colorC.build(A,"v4")),s.push(this.colorD.build(A,"v4")),s.push(this.alpha.build(A,"f")),s.push(this.calpha),A.format(u+"("+s.join(",")+")",this.getType(A),t)}};zn.numOctaves=5;var kl=class extends aA{constructor(A,t,r,n,i,a,l){super("v3");this.nodeType="Fresnel";this.color=A,this.bias=t,this.scale=r,this.intensity=n,this.factor=i,this.alpha=a,this.mode=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.require("vWorldViewDir"),A.require("worldNormal"),A.isShader("fragment")){A.addFragmentVariable(this.calpha,"float");let r=A.include(kl.Nodes.fresnel),n=[];return n.push(this.color.build(A,"c")),n.push(this.bias.build(A,"f")),n.push(this.scale.build(A,"f")),n.push(this.intensity.build(A,"f")),n.push(this.factor.build(A,"f")),n.push(this.alpha.build(A,"f")),n.push(this.mode.build(A,"i")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("FresnelNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},kn=kl;kn.Nodes=function(){return{fresnel:new K(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, float alpha, int mode, out float calpha) {
|
|
384
578
|
float fresnel = bias + scale * pow( abs( factor + dot( normalize( vWorldViewDir ), normalize( vWNormal ) ) ), intensity );
|
|
385
579
|
|
|
386
580
|
float lalpha = clamp( fresnel, 0.0, 1.0 ) * alpha;
|
|
387
581
|
calpha = lalpha / clamp(lalpha + accumAlpha, 0.001, 1.0);
|
|
388
582
|
accumAlpha += (1.0 - accumAlpha) * lalpha;
|
|
389
583
|
return color;
|
|
390
|
-
}`)}}();var
|
|
584
|
+
}`)}}();var Ul=class extends aA{constructor(A,t,r,n,i,a,l){super("v3");this.nodeType="Rainbow";this.filmThickness=A,this.movement=t,this.wavelengths=r,this.noiseStrength=n,this.noiseScale=i,this.offset=a,this.alpha=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.require("vWorldViewDir"),A.require("worldNormal"),A.isShader("fragment")){A.require("uv"),A.requires.uv=[!0],A.addFragmentVariable(this.calpha,"float");let r=A.include(Ul.Nodes.rainbow),n=[];return n.push(this.filmThickness.build(A,"f")),n.push(this.movement.build(A,"f")),n.push(this.wavelengths.build(A,"v3")),n.push(this.noiseStrength.build(A,"f")),n.push(this.noiseScale.build(A,"f")),n.push(this.offset.build(A,"v3")),n.push(this.alpha.build(A,"f")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("RainbowNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},Un=Ul;Un.Nodes=function(){let A=new K(`vec3 attenuation(vec3 wavelengths, float filmThickness, float movement, float noiseStrength, float noiseScale, vec3 offset) {
|
|
391
585
|
vec3 st = position / noiseScale;
|
|
392
586
|
vec3 q = vec3(simplex3d(st),
|
|
393
587
|
simplex3d(st + vec3(1.0)),
|
|
@@ -400,7 +594,7 @@ var Ch=Object.create;var sa=Object.defineProperty;var Lh=Object.getOwnPropertyDe
|
|
|
400
594
|
float noise = simplex3d(st + r);
|
|
401
595
|
|
|
402
596
|
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
|
-
}`,[
|
|
597
|
+
}`,[ae.simplex]);return{rainbow:new K(`vec3 rainbow(float filmThickness, float movement, vec3 wavelengths, float noiseStrength, float noiseScale, vec3 offset, float alpha, out float calpha) {
|
|
404
598
|
vec3 res = clamp(attenuation(wavelengths, filmThickness, movement, noiseStrength, noiseScale, offset), 0.0, 2.0);
|
|
405
599
|
|
|
406
600
|
float rainbowContribution = clamp(res.r + res.g + res.b, 0.0, 1.0);
|
|
@@ -409,7 +603,7 @@ var Ch=Object.create;var sa=Object.defineProperty;var Lh=Object.getOwnPropertyDe
|
|
|
409
603
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
410
604
|
|
|
411
605
|
return res;
|
|
412
|
-
}`,[A])}}();var
|
|
606
|
+
}`,[A])}}();var Hl=class extends aA{constructor(A,t,r,n,i,a,l,u,s,c,d,p,f,m,h,g){super("v3");this.nodeType="Outline";this.firstTime=!0,this.outlineColor=A,this.contourColor=t,this.outlineWidth=r,this.contourWidth=n,this.contourThreshold=i,this.outlineThreshold=a,this.contourFrequency=l,this.outlineSmoothing=u,this.contourDirection=s,this.positionalLines=c,this.compensation=d,this.resolution=p,this.normalMap=f,this.depthMap=m,this.pixelRatio=h,this.alpha=g,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.require("vWorldViewDir"),A.require("worldNormal"),A.extensions.derivatives=!0,this.firstTime){let r=this.outlineWidth.build(A,"f"),n=this.resolution.build(A,"v2"),i=this.compensation.build(A,"b"),a=this.pixelRatio.build(A,"f");A.addVertexParsVariable("randomColor","attribute vec3"),A.addVertexParsVariable("extrudeNormal","attribute vec3"),A.addVertexParsVariable(r,"uniform float"),A.addVertexParsVariable(n,"uniform vec2"),A.addVertexParsVariable(i,"uniform bool"),A.addVertexParsVariable(a,"uniform float"),A.addVertexParsVariable("vID","flat out float"),A.addFragmentParsVariable("vID","flat in float");let l=`g${this.uuid.toString().replace(/-/g,"")}`;A.addVertexFinalCode(`
|
|
413
607
|
vID = randomColor.r;
|
|
414
608
|
if (${i}) {
|
|
415
609
|
vec4 ${l}_clipPosition = projectionMatrix * (modelViewMatrix * vec4(position, 1.0));
|
|
@@ -423,7 +617,7 @@ var Ch=Object.create;var sa=Object.defineProperty;var Lh=Object.getOwnPropertyDe
|
|
|
423
617
|
// if this offset is the biggest of all the potential offsets
|
|
424
618
|
gl_Position = ${l}_clipPosition;
|
|
425
619
|
}
|
|
426
|
-
`)}if(A.isShader("fragment")){A.require("uv"),A.requires.uv=[!0],A.addFragmentVariable(this.calpha,"float");let r=A.include(
|
|
620
|
+
`)}if(A.isShader("fragment")){A.require("uv"),A.requires.uv=[!0],A.addFragmentVariable(this.calpha,"float");let r=A.include(Hl.Nodes.outline),n=[];return n.push(this.outlineColor.build(A,"c")),n.push(this.contourColor.build(A,"c")),n.push(this.outlineWidth.build(A,"f")),n.push(this.contourWidth.build(A,"f")),n.push(this.contourThreshold.build(A,"f")),n.push(this.outlineThreshold.build(A,"f")),n.push(this.contourFrequency.build(A,"f")),n.push(this.outlineSmoothing.build(A,"f")),n.push(this.contourDirection.build(A,"v3")),n.push(this.positionalLines.build(A,"b")),n.push(this.resolution.build(A,"v2")),n.push(this.normalMap.getTexture(A,"t")),n.push(this.depthMap.getTexture(A,"t")),n.push(this.pixelRatio.build(A,"f")),n.push(this.compensation.build(A,"b")),n.push(this.alpha.build(A,"f")),n.push(this.calpha),this.firstTime=!this.firstTime,A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("OutlineNode is not compatible with "+A.shader+" shader."),""}},Hn=Hl;Hn.Nodes=function(){let A=new K(`
|
|
427
621
|
float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outlineWidth, float pixelRatio)
|
|
428
622
|
{
|
|
429
623
|
vec2 texelSize = (vec2(1.0) / resolution) * outlineWidth * pixelRatio;
|
|
@@ -563,7 +757,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
|
|
|
563
757
|
calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
|
|
564
758
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
565
759
|
return result;
|
|
566
|
-
}`,[A])}}();var
|
|
760
|
+
}`,[A])}}();var Wl=class extends aA{constructor(A,t,r,n,i,a,l,u){super("v3");this.nodeType="Transmission";this.thickness=A,this.ior=t,this.roughness=r,this.transmissionSamplerSize=n,this.transmissionSamplerMap=i,this.transmissionDepthMap=a,this.aspectRatio=l,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.extensions.shaderTextureLOD=!0,A.extensions.derivatives=!0,A.isShader("fragment")){A.define("NUM_SAMPLES",30),A.require("worldPosition"),A.requires.worldNormal=!0,A.requires.modelMatrix=!0,A.requires.projectionMatrix=!0,A.addFragmentVariable(this.calpha,"float");let r=A.include(Wl.Nodes.transmission),n=[];return n.push(this.thickness.build(A,"f")),n.push(this.ior.build(A,"f")),n.push(this.roughness.build(A,"f")),n.push(this.transmissionSamplerSize.build(A,"v2")),n.push(this.transmissionSamplerMap.getTexture(A,"t")),n.push(this.transmissionDepthMap.getTexture(A,"t")),n.push(this.aspectRatio.build(A,"v2")),n.push("normal"),n.push(this.alpha.build(A,"f")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("TransmissionNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},Wn=Wl;Wn.Nodes=function(){let A=new K(`
|
|
567
761
|
float gaussian(vec2 i) {
|
|
568
762
|
const float sigma = float(NUM_SAMPLES) * .25;
|
|
569
763
|
return exp( -.5* dot(i/=sigma,i) ) / ( 6.28 * sigma*sigma );
|
|
@@ -691,7 +885,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
691
885
|
|
|
692
886
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
693
887
|
return color.rgb;
|
|
694
|
-
}`,[zo.Nodes.vectorLinearWorldSpaceDepth,zo.Nodes.vectorLinearObjectSpaceDepth,zo.Nodes.vectorSphericalObjectSpaceDepth,zo.Nodes.vectorSphericalWorldSpaceDepth]);if(A.isShader("fragment")){A.define(`${r}_MAX_COLORS`,this.colors.value.length),this.smooth.value&&A.define(`${r}_SMOOTH`),this.isVector.value>.5&&A.define(`${r}_IS_VECTOR`),this.gradientType.value===0&&A.define(`${r}_LINEAR`),this.isWorldSpace.value>.5&&A.define(`${r}_WORLDSPACE`),A.require("worldPosition"),A.addFragmentVariable(this.calpha,"float");let i=A.include(n),a=[];return a.push(this.near.build(A,"f")),a.push(this.far.build(A,"f")),a.push(this.origin.build(A,"v3")),a.push(this.direction.build(A,"v3")),a.push(this.colors.build(A,"v4[]")),a.push(this.steps.build(A,"f[]")),a.push(this.alpha.build(A,"f")),a.push(this.calpha),A.format(i+"("+a.join(",")+")",this.getType(A),t)}else return console.warn("DepthNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},
|
|
888
|
+
}`,[zo.Nodes.vectorLinearWorldSpaceDepth,zo.Nodes.vectorLinearObjectSpaceDepth,zo.Nodes.vectorSphericalObjectSpaceDepth,zo.Nodes.vectorSphericalWorldSpaceDepth]);if(A.isShader("fragment")){A.define(`${r}_MAX_COLORS`,this.colors.value.length),this.smooth.value&&A.define(`${r}_SMOOTH`),this.isVector.value>.5&&A.define(`${r}_IS_VECTOR`),this.gradientType.value===0&&A.define(`${r}_LINEAR`),this.isWorldSpace.value>.5&&A.define(`${r}_WORLDSPACE`),A.require("worldPosition"),A.addFragmentVariable(this.calpha,"float");let i=A.include(n),a=[];return a.push(this.near.build(A,"f")),a.push(this.far.build(A,"f")),a.push(this.origin.build(A,"v3")),a.push(this.direction.build(A,"v3")),a.push(this.colors.build(A,"v4[]")),a.push(this.steps.build(A,"f[]")),a.push(this.alpha.build(A,"f")),a.push(this.calpha),A.format(i+"("+a.join(",")+")",this.getType(A),t)}else return console.warn("DepthNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},qn=zo;qn.Nodes=function(){let A=new K(`float vectorLinearWorldSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
|
|
695
889
|
vec3 n = normalize(direction);
|
|
696
890
|
float dist = (n.x*(vWPosition.x - origin.x) + n.y*(vWPosition.y - origin.y) + n.z*(vWPosition.z - origin.z));
|
|
697
891
|
return ( dist - near ) / ( far - near );
|
|
@@ -705,11 +899,11 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
705
899
|
}`),n=new K(`float vectorSphericalObjectSpaceDepth(vec3 origin, float near, float far) {
|
|
706
900
|
float dist = length(position - origin);
|
|
707
901
|
return ( dist - near ) / ( far - near );
|
|
708
|
-
}`);return{vectorLinearWorldSpaceDepth:A,vectorLinearObjectSpaceDepth:t,vectorSphericalWorldSpaceDepth:r,vectorSphericalObjectSpaceDepth:n}}();var
|
|
902
|
+
}`);return{vectorLinearWorldSpaceDepth:A,vectorLinearObjectSpaceDepth:t,vectorSphericalWorldSpaceDepth:r,vectorSphericalObjectSpaceDepth:n}}();var Qn=class extends aA{constructor(A,t,r,n){super("v3");this.nodeType="Blend";this.a=A,this.b=t,this.alpha=r,this.mode=n}generate(A,t){if(A.isShader("fragment")){let r=[];return r.push(this.a.build(A,"c")),r.push(this.b.build(A,"c")),r.push(this.alpha.build(A,"f")),r.push(this.mode.build(A,"i")),A.format("spe_blend("+r.join(",")+")",this.getType(A),t)}else return console.warn("BlendNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}};var ql=(A=>(A.NOISE="noise",A.MAP="map",A))(ql||{}),Ql=class extends aA{constructor(A,t,r,n,i){super("v3");this.displacementTypeIndex=new gA(0);this.nodeType="VertexDisplacement";this.intensity=A,this.movementOrTexture=t,Object.values(ql)[this.displacementTypeIndex.value]==="map"&&(this.mat=new jo(this.movementOrTexture.value.matrix)),this.cropOrOffset=r,this.scale=n,this.noiseFunctionIndex=i}generate(A,t){if(A.isShader("vertex")){A.define("USE_LAYER_DISPLACE");let r,n=[];switch(n.push("displaced_position"),n.push("displaced_normal"),Object.values(ql)[this.displacementTypeIndex.value]){case"map":{r=A.include(Ql.Nodes.map),n.push(this.movementOrTexture.getTexture(A,"t")),n.push("uv"),n.push(this.cropOrOffset.build(A,"f")),this.mat&&n.push(this.mat.build(A,"mat3"));break}case"noise":{let a=Object.values(jn)[this.noiseFunctionIndex.value],l=new K(`vec3 orthogonal(vec3 v) {
|
|
709
903
|
return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
|
|
710
904
|
}`),u=new K(`vec3 distorted(vec3 p, vec3 n, float scale, float intensity, vec3 offset, float neighbour_offset, float movement) {
|
|
711
905
|
return p + n * ${a}((p + offset) * scale * 0.001 + neighbour_offset + (movement * 0.1)) * intensity;
|
|
712
|
-
}`,[
|
|
906
|
+
}`,[ae.simplex,ae.simplexFractal,ae.simplexAshima,ae.fbm,ae.perlin]),s=new K(`vec3 vertexDisplacementNoise(vec3 position, vec3 normal, float scale, vec3 offset, float movement, float intensity, out vec3 displaced_normal) {
|
|
713
907
|
vec3 displaced_position = distorted(position, normal, scale, intensity, offset, neighbor_offset, movement);
|
|
714
908
|
vec3 tangent1 = orthogonal(normal);
|
|
715
909
|
vec3 tangent2 = normalize(cross(normal, tangent1));
|
|
@@ -725,7 +919,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
725
919
|
vec3 distorted2 = distorted(nearby2, normal, scale, intensity, offset, neighbor_offset, movement);
|
|
726
920
|
displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
|
|
727
921
|
return displaced_position;
|
|
728
|
-
}`,[u,l]);r=A.include(s),n.push(this.scale.build(A,"f")),n.push(this.cropOrOffset.build(A,"v3")),n.push(this.movementOrTexture.build(A,"f"));break}}return n.push(this.intensity.build(A,"f")),n.push("displaced_normal"),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("VertexDisplacementNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},
|
|
922
|
+
}`,[u,l]);r=A.include(s),n.push(this.scale.build(A,"f")),n.push(this.cropOrOffset.build(A,"v3")),n.push(this.movementOrTexture.build(A,"f"));break}}return n.push(this.intensity.build(A,"f")),n.push("displaced_normal"),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("VertexDisplacementNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},Yn=Ql;Yn.Nodes=function(){let A=new K(`vec3 orthogonal(vec3 v) {
|
|
729
923
|
return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
|
|
730
924
|
}`),t=new K(`float displacementMapTexture(sampler2D tex, float crop, vec2 uv, mat3 mat, vec2 offset) {
|
|
731
925
|
vec2 uvs = (mat * vec3(uv * 2.0 - 1.0, 1.0) / 2.0 + 0.5).xy + offset;
|
|
@@ -747,7 +941,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
747
941
|
vec3 distorted2 = nearby2 + normal * displacementMapTexture(tex, crop, uv, mat, vec2(neighbor_offset)) * intensity;
|
|
748
942
|
displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
|
|
749
943
|
return displaced_position;
|
|
750
|
-
}`,[A,t])}}();var
|
|
944
|
+
}`,[A,t])}}();var Yl=class extends aA{constructor(A,t,r,n,i,a,l,u){super("v3");this.nodeType="Gradient";this.gradientType=A,this.smooth=t,this.colors=r,this.steps=n,this.offset=i,this.morph=a,this.angle=l,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.isShader("fragment")){A.define("GRAD_MAX",10),A.require("uv"),A.requires.uv=[!0],A.addFragmentVariable(this.calpha,"float");let r=A.include(Yl.Nodes.gradient),n=[];return n.push(this.gradientType.build(A,"i")),n.push(this.smooth.build(A,"b")),n.push(this.colors.build(A,"v4[]")),n.push(this.steps.build(A,"f[]")),n.push(this.offset.build(A,"v2")),n.push(this.morph.build(A,"v2")),n.push(this.angle.build(A,"f")),n.push(this.alpha.build(A,"f")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("GradientNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},Xn=Yl;Xn.Nodes=function(){return{gradient:new K(`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
945
|
vec4 color = colors[0];
|
|
752
946
|
vec2 m = morph / vUv.xy;
|
|
753
947
|
vec2 rot = vec2( 0.5 + m.x, m.y );
|
|
@@ -789,7 +983,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
789
983
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
790
984
|
|
|
791
985
|
return color.xyz;
|
|
792
|
-
}`)}}();var
|
|
986
|
+
}`)}}();var Zn=class extends aA{constructor(A,t,r,n,i,a,l,u,s,c){super("v3");this.nodeType="CustomTexture";this.firstTime=!0,this.texture=A,this.textureSize=t,this.crop=r,this.projection=n,this.axis=i,this.side=a,this.size=l,this.mat=u,this.alpha=s,this.mode=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){A.require("position"),A.require("normal"),A.require("uv"),A.requires.uv=[!0],A.extensions.shaderTextureLOD=!0,A.extensions.derivatives=!0;let r=`g${this.uuid.toString().replace(/-/g,"")}`,n;switch(this.projection.value){case 3:n=A.include(Zn.Nodes.cylindrical);break;case 2:n=A.include(Zn.Nodes.spherical);break;case 1:let a=["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 K(`
|
|
793
987
|
vec3 ${r}_planarTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
|
|
794
988
|
|
|
795
989
|
vec2 uvs = ( mat * vec3( (${r}_vCustomUv * 2. - 1.) / (size * .5), 1. ) / 2. + 0.5 ).xy;
|
|
@@ -808,7 +1002,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
808
1002
|
calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
|
|
809
1003
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
810
1004
|
return col;
|
|
811
|
-
}`);n=A.include(l);break;default:n=A.include(
|
|
1005
|
+
}`);n=A.include(l);break;default:n=A.include(Zn.Nodes.uv);break}if(this.projection.value===1&&this.firstTime){A.addVertexParsCode(`varying vec2 ${r}_vCustomUv;`),A.addFragmentParsCode(`varying vec2 ${r}_vCustomUv;`);let a=["zy","xz","xy"][this.axis.value];A.addVertexFinalCode(`${r}_vCustomUv = (1. + (transformed.${a})) / 2.;`)}A.addFragmentVariable(this.calpha,"float");let i=[];return i.push(this.texture.generate(A,"t")),i.push(this.textureSize.build(A,"v2")),i.push(this.crop.build(A,"f")),i.push(this.mat.build(A,"mat3")),i.push(this.size.build(A,"v2")),i.push(this.alpha.build(A,"f")),i.push(this.mode.build(A,"i")),i.push(this.calpha),this.firstTime=!this.firstTime,A.format(n+"("+i.join(",")+")",this.getType(A),t)}},Kn=Zn;Kn.Nodes=function(){let A=new K(`
|
|
812
1006
|
vec3 cylindricalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
|
|
813
1007
|
vec3 posN = normalize(position);
|
|
814
1008
|
float u = 0.5 + atan(posN.z, posN.x) / (2.*3.1415);
|
|
@@ -882,208 +1076,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
882
1076
|
calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
|
|
883
1077
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
884
1078
|
return col;
|
|
885
|
-
}`);return{cylindrical:A,spherical:t,uv:r}}();var
|
|
1079
|
+
}`);return{cylindrical:A,spherical:t,uv:r}}();var Xl=class extends aA{constructor(A,t){super("v3");this.nodeType="CustomNormal";this.cnormal=A,this.alpha=t}generate(A,t){if(A.isShader("fragment")){let r=A.include(Xl.Nodes.customNormal),n=[];return n.push(this.cnormal.build(A,"v3")),n.push("normal"),n.push(this.alpha.build(A,"f")),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("CustomNormalNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},Jn=Xl;Jn.Nodes=function(){return{customNormal:new K(`vec3 customNormal(vec3 cnormal, vec3 norm, float alpha) {
|
|
886
1080
|
vec3 normal = packNormalToRGB( norm ).rgb;
|
|
887
1081
|
normal *= step( vec3(0.5), cnormal );
|
|
888
1082
|
|
|
889
1083
|
accumAlpha += ( 1.0 - accumAlpha ) * alpha;
|
|
890
1084
|
|
|
891
1085
|
return normal;
|
|
892
|
-
}`)}}();
|
|
893
|
-
`));let n=["#include <beginnormal_vertex>",`
|
|
894
|
-
#ifndef USE_LAYER_DISPLACE
|
|
895
|
-
#include <defaultnormal_vertex>
|
|
896
|
-
#endif
|
|
897
|
-
|
|
898
|
-
vec3 displaced_position = position;
|
|
899
|
-
vec3 displaced_normal = normal;
|
|
900
|
-
|
|
901
|
-
#ifdef USE_LAYER_DISPLACE
|
|
902
|
-
vec3 transformed;
|
|
903
|
-
vec3 transformedNormal;
|
|
904
|
-
#endif
|
|
905
|
-
`,"#include <normal_vertex>",`
|
|
906
|
-
#ifndef USE_LAYER_DISPLACE
|
|
907
|
-
#include <begin_vertex>
|
|
908
|
-
#endif
|
|
909
|
-
`];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push(" #include <project_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>",`
|
|
910
|
-
vec3 diffuse = vec3( 1.0 );
|
|
911
|
-
GeometricContext geometry;
|
|
912
|
-
geometry.position = mvPosition.xyz;
|
|
913
|
-
geometry.normal = normalize( transformedNormal );
|
|
914
|
-
geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );
|
|
915
|
-
GeometricContext backGeometry;
|
|
916
|
-
backGeometry.position = geometry.position;
|
|
917
|
-
backGeometry.normal = -geometry.normal;
|
|
918
|
-
backGeometry.viewDir = geometry.viewDir;
|
|
919
|
-
vLightFront = vec3( 0.0 );
|
|
920
|
-
vIndirectFront = vec3( 0.0 );
|
|
921
|
-
#ifdef DOUBLE_SIDED
|
|
922
|
-
vLightBack = vec3( 0.0 );
|
|
923
|
-
vIndirectBack = vec3( 0.0 );
|
|
924
|
-
#endif
|
|
925
|
-
IncidentLight directLight;
|
|
926
|
-
float dotNL;
|
|
927
|
-
vec3 directLightColor_Diffuse;
|
|
928
|
-
vIndirectFront += getAmbientLightIrradiance( ambientLightColor );
|
|
929
|
-
vIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );
|
|
930
|
-
#ifdef DOUBLE_SIDED
|
|
931
|
-
vIndirectBack += getAmbientLightIrradiance( ambientLightColor );
|
|
932
|
-
vIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );
|
|
933
|
-
#endif
|
|
934
|
-
#if NUM_POINT_LIGHTS > 0
|
|
935
|
-
#pragma unroll_loop_start
|
|
936
|
-
for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {
|
|
937
|
-
getPointLightInfo( pointLights[ i ], geometry, directLight );
|
|
938
|
-
dotNL = dot( geometry.normal, directLight.direction );
|
|
939
|
-
directLightColor_Diffuse = directLight.color;
|
|
940
|
-
vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
|
|
941
|
-
#ifdef DOUBLE_SIDED
|
|
942
|
-
vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;
|
|
943
|
-
#endif
|
|
944
|
-
}
|
|
945
|
-
#pragma unroll_loop_end
|
|
946
|
-
#endif
|
|
947
|
-
#if NUM_SPOT_LIGHTS > 0
|
|
948
|
-
#pragma unroll_loop_start
|
|
949
|
-
for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {
|
|
950
|
-
getSpotLightInfo( spotLights[ i ], geometry, directLight );
|
|
951
|
-
dotNL = dot( geometry.normal, directLight.direction );
|
|
952
|
-
directLightColor_Diffuse = directLight.color;
|
|
953
|
-
vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
|
|
954
|
-
#ifdef DOUBLE_SIDED
|
|
955
|
-
vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;
|
|
956
|
-
#endif
|
|
957
|
-
}
|
|
958
|
-
#pragma unroll_loop_end
|
|
959
|
-
#endif
|
|
960
|
-
#if NUM_DIR_LIGHTS > 0
|
|
961
|
-
#pragma unroll_loop_start
|
|
962
|
-
for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {
|
|
963
|
-
getDirectionalLightInfo( directionalLights[ i ], geometry, directLight );
|
|
964
|
-
dotNL = dot( geometry.normal, directLight.direction );
|
|
965
|
-
directLightColor_Diffuse = directLight.color;
|
|
966
|
-
vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
|
|
967
|
-
#ifdef DOUBLE_SIDED
|
|
968
|
-
vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;
|
|
969
|
-
#endif
|
|
970
|
-
}
|
|
971
|
-
#pragma unroll_loop_end
|
|
972
|
-
#endif
|
|
973
|
-
#if NUM_HEMI_LIGHTS > 0
|
|
974
|
-
#pragma unroll_loop_start
|
|
975
|
-
for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {
|
|
976
|
-
vIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );
|
|
977
|
-
#ifdef DOUBLE_SIDED
|
|
978
|
-
vIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );
|
|
979
|
-
#endif
|
|
980
|
-
}
|
|
981
|
-
#pragma unroll_loop_end
|
|
982
|
-
#endif
|
|
983
|
-
`," #include <shadowmap_vertex>"," #include <fog_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=n.join(`
|
|
984
|
-
`)}else{A.mergeUniform({penumbraSize:re.penumbraSize}),this.color===void 0&&(this.color=new TA(5855577)),this.color.analyze(A,{slot:"color"}),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A);let r=this.color.flow(A,"c",{slot:"color"}),n=this.emissive.flow(A,"c",{slot:"emissive"}),i=this.emissiveIntensity.flow(A,"f",{slot:"emissive"}),a=this.shadingAlpha.flow(A,"f"),l=this.shadingBlend.flow(A,"i"),u=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,s=this.alpha?this.alpha.flow(A,"f"):void 0;A.requires.transparent=s!==void 0,A.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 c=["#include <normal_fragment_begin>",`
|
|
986
|
-
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
987
|
-
vec3 viewdx = dFdx(vViewPosition);
|
|
988
|
-
vec3 viewdy = dFdy(vViewPosition);
|
|
989
|
-
vec3 faceNormal = normalize(cross(viewdx, viewdy));
|
|
990
|
-
bool isFrontFacing = (dot(normal, faceNormal) >= 0.0);
|
|
991
|
-
`,"#include <clipping_planes_fragment>"];c.push(r.code,"vec3 diffuseColor = "+r.result+";","ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"),s&&c.push(s.code,"#ifdef ALPHATEST","if ( "+s.result+" <= ALPHATEST ) discard;","#endif"),c.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();"),n&&c.push(n.code,"reflectedLight.directDiffuse += "+n.result+" * "+i.result+";"),c.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;"),c.push(`
|
|
992
|
-
if (outgoingLight != diffuseColor) {
|
|
993
|
-
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
994
|
-
accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
|
|
995
|
-
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
|
|
996
|
-
}
|
|
997
|
-
`),u&&c.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),s?c.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${s.result} );`):c.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),c.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),t=c.join(`
|
|
998
|
-
`)}return t}};import{UniformsLib as Ql,UniformsUtils as US}from"three";var Kn=class extends JA{constructor(){super("standard");this.nodeType="Standard";this.color=new TA(5855577),this.roughness=new J(.3),this.metalness=new J(0),this.reflectivity=new J(.5),this.shadingAlpha=new J(1),this.shadingBlend=new yA(0)}build(A){let t;if(A.define("STANDARD"),A.requires.lights=!0,A.extensions.derivatives=!0,A.extensions.shaderTextureLOD=!0,A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(US.merge([Ql.fog,Ql.lights])),Ql.LTC_1&&(A.uniforms.ltc_1={value:void 0},A.uniforms.ltc_2={value:void 0}),A.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
|
-
`));let n=["#include <beginnormal_vertex>",`
|
|
1000
|
-
#if !defined( USE_LAYER_DISPLACE )
|
|
1001
|
-
#include <defaultnormal_vertex>
|
|
1002
|
-
#endif
|
|
1003
|
-
|
|
1004
|
-
vec3 displaced_position = position;
|
|
1005
|
-
vec3 displaced_normal = normal;
|
|
1006
|
-
|
|
1007
|
-
#if defined( USE_LAYER_DISPLACE )
|
|
1008
|
-
vec3 transformed;
|
|
1009
|
-
vec3 transformedNormal;
|
|
1010
|
-
#endif
|
|
1011
|
-
`,"#include <normal_vertex>",`
|
|
1012
|
-
#if !defined( USE_LAYER_DISPLACE )
|
|
1013
|
-
#include <begin_vertex>
|
|
1014
|
-
#endif /* !USE_LAYER_DISPLACE */
|
|
1015
|
-
`];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>","#include <shadowmap_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=n.join(`
|
|
1016
|
-
`)}else{A.mergeUniform({penumbraSize:re.penumbraSize});let r={gamma:!0};this.color===void 0&&(this.color=new TA(5855577)),this.color.analyze(A,{slot:"color",context:r}),this.roughness.analyze(A),this.metalness.analyze(A),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A),this.reflectivity&&this.reflectivity.analyze(A);let n=this.color.flow(A,"c",{slot:"color",context:r}),i=this.roughness.flow(A,"f"),a=this.metalness.flow(A,"f"),l=this.shadingAlpha.flow(A,"f"),u=this.shadingBlend.flow(A,"i"),s=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(A,"f"):void 0,d=this.reflectivity?this.reflectivity.flow(A,"f"):void 0;A.requires.transparent=c!==void 0,A.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 p=["#include <clipping_planes_fragment>"," #include <normal_fragment_begin>",`
|
|
1018
|
-
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
1019
|
-
vec3 viewdx = dFdx(vViewPosition);
|
|
1020
|
-
vec3 viewdy = dFdy(vViewPosition);
|
|
1021
|
-
vec3 faceNormal = normalize(cross(viewdx,viewdy));
|
|
1022
|
-
if (dot(normal, faceNormal) < 0.0) {
|
|
1023
|
-
normal *= -1.0;
|
|
1024
|
-
}
|
|
1025
|
-
`," PhysicalMaterial material;"," material.diffuseColor = vec3( 1.0 );"];p.push(n.code," vec3 diffuseColor = "+n.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",i.code," float roughnessFactor = "+i.result+";",a.code," float metalnessFactor = "+a.result+";"),c&&p.push(c.code,"#ifdef ALPHATEST"," if ( "+c.result+" <= ALPHATEST ) discard;","#endif"),p.push("vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );"),p.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?p.push(d.code,"material.specularColor = mix( vec3( 0.16 * pow2( "+d.result+" ) ), diffuseColor, metalnessFactor );"):p.push("material.specularColor = mix( vec3( 0.04 ), diffuseColor, metalnessFactor );"),p.push("#include <lights_fragment_begin>"),p.push("#include <lights_fragment_end>"),p.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;"),p.push(`
|
|
1026
|
-
if (outgoingLight != diffuseColor) {
|
|
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} );
|
|
1030
|
-
}
|
|
1031
|
-
`),s&&p.push(s.code,`outgoingLight = spe_blend(outgoingLight, ${s.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>"),t=p.join(`
|
|
1032
|
-
`)}return t}};import{UniformsLib as xm,UniformsUtils as HS}from"three";var Zn=class extends JA{constructor(){super("toon");this.nodeType="Toon";this.color=new TA(5855577),this.specular=new TA(1118481),this.shininess=new J(30),this.shadingAlpha=new J(1),this.shadingBlend=new yA(0)}build(A){let t;if(A.define("TOON"),A.requires.lights=!0,A.extensions.derivatives=!0,A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(HS.merge([xm.fog,xm.lights])),A.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
|
-
`));let n=["#include <beginnormal_vertex>",`
|
|
1034
|
-
#ifndef USE_LAYER_DISPLACE
|
|
1035
|
-
#include <defaultnormal_vertex>
|
|
1036
|
-
#endif
|
|
1037
|
-
|
|
1038
|
-
vec3 displaced_position = position;
|
|
1039
|
-
vec3 displaced_normal = normal;
|
|
1040
|
-
|
|
1041
|
-
#ifdef USE_LAYER_DISPLACE
|
|
1042
|
-
vec3 transformed;
|
|
1043
|
-
vec3 transformedNormal;
|
|
1044
|
-
#endif
|
|
1045
|
-
`,"#include <normal_vertex>",`
|
|
1046
|
-
#ifndef USE_LAYER_DISPLACE
|
|
1047
|
-
#include <begin_vertex>
|
|
1048
|
-
#endif
|
|
1049
|
-
`];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push(" #include <project_vertex>"," #include <fog_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=n.join(`
|
|
1050
|
-
`)}else{A.mergeUniform({penumbraSize:re.penumbraSize}),this.color===void 0&&(this.color=new TA(5855577)),this.color.analyze(A,{slot:"color"}),this.specular.analyze(A),this.shininess.analyze(A),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A);let r=this.color.flow(A,"c",{slot:"color"}),n=this.specular.flow(A,"c"),i=this.shininess.flow(A,"f"),a=this.shadingAlpha.flow(A,"f"),l=this.shadingBlend.flow(A,"i"),u=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,s=this.alpha?this.alpha.flow(A,"f"):void 0;A.requires.transparent=s!==void 0,A.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
|
-
varying vec3 vViewPosition;
|
|
1052
|
-
struct ToonMaterial {
|
|
1053
|
-
vec3 diffuseColor;
|
|
1054
|
-
vec3 specularColor;
|
|
1055
|
-
float specularShininess;
|
|
1056
|
-
float specularStrength;
|
|
1057
|
-
};
|
|
1058
|
-
void RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
|
|
1059
|
-
vec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;
|
|
1060
|
-
|
|
1061
|
-
reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
|
|
1062
|
-
reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;
|
|
1063
|
-
}
|
|
1064
|
-
void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
|
|
1065
|
-
reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
|
|
1066
|
-
}
|
|
1067
|
-
#define RE_Direct RE_Direct_Toon
|
|
1068
|
-
#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon
|
|
1069
|
-
#define Material_LightProbeLOD( material ) (0)
|
|
1070
|
-
`,"#include <shadowmap_pars_fragment>","#include <bumpmap_pars_fragment>","#include <normalmap_pars_fragment>"].join(`
|
|
1071
|
-
`));let c=["#include <normal_fragment_begin>",`
|
|
1072
|
-
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
1073
|
-
vec3 viewdx = dFdx(vViewPosition);
|
|
1074
|
-
vec3 viewdy = dFdy(vViewPosition);
|
|
1075
|
-
vec3 faceNormal = normalize(cross(viewdx,viewdy));
|
|
1076
|
-
if (dot(normal, faceNormal) < 0.0) {
|
|
1077
|
-
normal *= -1.0;
|
|
1078
|
-
}
|
|
1079
|
-
`," ToonMaterial material;"];c.push(r.code," vec3 diffuseColor = "+r.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",n.code," vec3 specular = "+n.result+";",i.code," float shininess = max( 0.0001, "+i.result+" );"," float specularStrength = 1.0;"),s&&c.push(s.code,"#ifdef ALPHATEST","if ( "+s.result+" <= ALPHATEST ) discard;","#endif"),c.push("material.diffuseColor = diffuseColor;"),c.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),c.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;"),c.push(`
|
|
1080
|
-
if (outgoingLight != diffuseColor) {
|
|
1081
|
-
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
1082
|
-
accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
|
|
1083
|
-
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
|
|
1084
|
-
}
|
|
1085
|
-
`),u&&c.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),s?c.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${s.result} );`):c.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),c.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),t=c.join(`
|
|
1086
|
-
`)}return t}};import{Vector2 as Jn,Vector3 as jt,Vector4 as Ws}from"three";function vm(o,e){switch(o.type){case"fresnel":return QS(o,e);case"gradient":return YS(o);case"depth":return XS(o);case"normal":return KS(o);case"noise":return ZS(o,e);case"rainbow":return JS(o);case"toon":return _S(o,e);case"outline":return $S(o,e);case"transmission":return AT(o,e);case"color":return qS(o,e)}}function WS(o){return{type:o.type}}function xt(o){let{alpha:e,mode:A}=o;return{...WS(o),alpha:e,mode:A}}function qS(o,e){return{...xt(o),color:KA(o.color,e)}}function QS(o,e){let{bias:A,scale:t,intensity:r,factor:n,color:i}=o;return{...xt(o),color:KA(i,e),bias:A,scale:t,intensity:r,factor:n}}function YS(o){let{gradientType:e,smooth:A,colors:t,steps:r,angle:n,offset:i,morph:a}=o;return{...xt(o),gradientType:e,smooth:A,colors:t.map(l=>new Ws(l[0],l[1],l[2],l[3])),num:t.length,steps:r,offset:new Jn(...i),morph:new Jn(...a),angle:n}}function XS(o){let{gradientType:e,near:A,far:t,isVector:r,isWorldSpace:n,origin:i,direction:a,colors:l,steps:u,smooth:s}=o;return{...xt(o),gradientType:e,near:A,far:t,isVector:r,isWorldSpace:n,origin:new jt(...i),direction:a?new jt(...a):new jt(1,0,0),colors:l.map(c=>c!==void 0?new Ws(c[0],c[1],c[2],c[3]):new Ws(0,0,0,0)),steps:u.slice(0,l.length),smooth:s}}function KS(o){let{cnormal:e}=o;return{...xt(o),cnormal:new jt(e[0],e[1],e[2])}}function ZS(o,e){return{...xt(o),scale:o.scale,move:o.move,fA:new Jn(...o.fA),fB:new Jn(...o.fB),size:new jt(...o.size),distortion:new Jn(...o.distortion),colorA:KA(o.colorA,e),colorB:KA(o.colorB,e),colorC:KA(o.colorC,e),colorD:KA(o.colorD,e),noiseType:o.noiseType}}function JS(o){return{...xt(o),filmThickness:o.filmThickness,movement:o.movement,wavelengths:new jt(...o.wavelengths),noiseStrength:o.noiseStrength,noiseScale:o.noiseScale,offset:new jt(...o.offset)}}function _S(o,e){return{...xt(o),positioning:o.positioning,colors:o.colors.map(A=>new Ws(A[0],A[1],A[2],A[3])),num:o.colors.length,steps:o.steps,source:new jt(...o.source),isWorldSpace:o.isWorldSpace,noiseStrength:o.noiseStrength,noiseScale:o.noiseScale,shadowColor:KA(o.shadowColor,e),offset:new jt(...o.offset)}}function $S(o,e){return{...xt(o),outlineColor:KA(o.outlineColor,e),contourColor:KA(o.contourColor,e),outlineWidth:o.outlineWidth,contourWidth:o.contourWidth,outlineThreshold:o.outlineThreshold,contourThreshold:o.contourThreshold,outlineSmoothing:o.outlineSmoothing,contourFrequency:o.contourFrequency,contourDirection:o.contourDirection,positionalLines:o.positionalLines,compensation:o.compensation}}function AT(o,e){return{...xt(o),thickness:o.thickness,ior:o.ior,roughness:o.roughness}}var cr=class extends qA{};import{Vector4 as rT}from"three";import{VideoTexture as eT,Texture as tT}from"three";var qs=class{constructor(e=1e3*10){this.timeout=e;this.cache=new Map;this.head={data:null,time:0,src:null,next:null,prev:null};this.tail={data:null,time:1/0,src:null,next:null,prev:null};this.hasClean=!1;this.head.next=this.tail,this.tail.prev=this.head}log(...e){}scheduleCleanup(){this.hasClean||(this.log("scheduled cleanup"),this.hasClean=!0,setTimeout(()=>{this.hasClean=!1,this.log("cleaning");let e=Date.now(),A=this.head.next;for(;A.time<e-this.timeout;)this.dispose(A.src,A.data),this.cache.delete(A.src),A=A.next,A.prev=this.head,this.head.next=A;this.head.next!==this.tail?this.scheduleCleanup():this.log("no more cleanup")},this.timeout+1e3))}load(e){let A=Date.now(),t=this.cache.get(e);return t===void 0?(t={data:this.create(e),src:e,time:A,next:null,prev:null},this.cache.set(e,t)):(t.time=A,t.prev.next=t.next,t.next.prev=t.prev),t.prev=this.tail.prev,t.next=this.tail,this.tail.prev.next=t,this.tail.prev=t,this.scheduleCleanup(),t.data}};var Xl=class extends qs{create(e){return URL.createObjectURL(new Blob([e]))}dispose(e,A){URL.revokeObjectURL(A)}},Yl;function bm(o){return typeof o=="string"?o:(Yl||(Yl=new Xl),Yl.load(o))}var Or=class{constructor(e,A){this.data=e;this.onImageLoad=A;this.loaded=!1;this.isVideo=!1;this.isVideo=e.type=="video",this.updateSrc(e.data)}async updateSrc(e){if(typeof document>"u")return;this.dispose(),this.loaded=!1;let A=()=>{this.loaded=!0;let r=[1e3,1001,1002];for(let n of r){let i=this[n];i&&(i.image=this.img,i.needsUpdate=!0)}this.onImageLoad&&this.onImageLoad()};if(this.isVideo){if(this.img=document.createElement("video"),this.img.preload="auto",this.img.playsInline=!0,this.img.currentTime=.01,this.img.autoplay=!0,this.img.muted=!0,this.img.pause(),typeof e!="string"){var t=new FileReader;t.readAsDataURL(new Blob([e],{type:"video/mp4"}));let r;await new Promise(n=>{t.onloadend=i=>{r=i.target?.result,n(null)}}),this.img.src=r}else this.img.src=e;this.img.onloadeddata=A}else this.img=new Image,this.img.src=bm(e),this.img.onload=A}getTexture(e){let A=this[e];if(A)return A;{let t;return this.isVideo?t=new eT(this.img,void 0,e,e):t=new tT(this.img,void 0,e,e),this.loaded&&(t.needsUpdate=!0),this[e]=t,t}}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 vt=class extends Or{};var ur=class extends LA{};var Kl={noise:["noiseType"],texture:["projection","axis","side"],video:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},Zl={depth:["colors"]};function oT(o,e,A){let t=Kl[o.type],r=Zl[o.type];if(r!==void 0){let n=o.color;if(r.includes(e)){let i=n[e]?.value?.length;if(i!==void 0&&i!==A.length)return!0}}return t!==void 0?t.includes(e):!1}function Jl(o,e,A){let t=A.uniforms[`f${A.id}_texture`];if(!t)return!1;let r=!1,n=o;if("image"in n){let i=n.image,a=e.image(i),l=t;l instanceof vt||l.image.dispose(),l.image=a}if("video"in n){let i=n.video,a=e.video(i),l=t;l instanceof vt||l.image.dispose(),l.image=a}if("wrapping"in n){let i=t;i.wrap=n.wrapping}if("repeat"in n||"offset"in n){let i="mat",a=A.uniforms[`f${A.id}_${i}`];"repeat"in n&&(a.repeat=n.repeat),"offset"in n&&(a.offset=n.offset),a.updateMatrix()}return r}function wm(o,e,A,t){let r=!1;for(let[n,i]of Object.entries(o)){if(!n||i===void 0)continue;if(_l(n,A,t)){n==="visible"&&A.type==="light"&&(r=!0);continue}A.visible=t.visible;let a=A.uniforms[`f${A.id}_${n}`];if(!!a&&!(a instanceof ur))switch(r=r||oT(A,n,i),a.constructor){case TA:if(typeof i=="string"){let l=e.getColor(i);l&&(a.value=l);break}else{let l=i;a.value instanceof cr?a.value=new qA(l.r,l.g,l.b,l.a):a.setRGBA(l);break}case ze:if(typeof i=="string"){let l=e.getColor(i);l&&(a.value=l);break}else{let l=i;a.value instanceof cr?a.value=new qA(l.r,l.g,l.b,l.a):a.value.setRGBA(l.r,l.g,l.b,l.a);break}case _A:{let l=i;a.value.setX(l[0]),a.value.setY(l[1]);break}case te:{let l=i;a.value.setX(l[0]),a.value.setY(l[1]),a.value.setZ(l[2]);break}case ve:{Jl(i,e,A);break}case Ze:{a.value=i.map(l=>new rT(...l));break}default:{a.value=i;break}}}return r}var $l=class extends aA{constructor(A,t,r){super("v3");this.nodeType="Matcap";this.texture=A,this.alpha=t,this.mode=r,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.isShader("fragment")){A.addFragmentVariable(this.calpha,"float");let r=A.include($l.Nodes.matcap);A.require("normal"),A.requires.normal=!0;let n=[];return n.push(this.texture.generate(A,"t")),n.push("normal"),n.push(this.alpha.build(A,"f")),n.push(this.mode.build(A,"i")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("MatcapNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},_n=$l;_n.Nodes=function(){return{matcap:new K(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
|
|
1086
|
+
}`)}}();import{Vector2 as _n,Vector3 as Rt,Vector4 as Ws}from"three";function pe(o,e){return e.color(o)}function lm(o,e){switch(o.type){case"fresnel":return C1(o,e);case"gradient":return I1(o);case"depth":return L1(o);case"normal":return M1(o);case"noise":return B1(o,e);case"rainbow":return E1(o);case"toon":return D1(o,e);case"outline":return G1(o,e);case"transmission":return R1(o,e);case"color":return P1(o,e)}}function N1(o){return{type:o.type}}function yt(o){let{alpha:e,mode:A}=o;return{...N1(o),alpha:e,mode:A}}function P1(o,e){return{...yt(o),color:pe(o.color,e)}}function C1(o,e){let{bias:A,scale:t,intensity:r,factor:n,color:i}=o;return{...yt(o),color:pe(i,e),bias:A,scale:t,intensity:r,factor:n}}function I1(o){let{gradientType:e,smooth:A,colors:t,steps:r,angle:n,offset:i,morph:a}=o;return{...yt(o),gradientType:e,smooth:A,colors:t.map(l=>new Ws(l[0],l[1],l[2],l[3])),num:t.length,steps:r,offset:new _n(...i),morph:new _n(...a),angle:n}}function L1(o){let{gradientType:e,near:A,far:t,isVector:r,isWorldSpace:n,origin:i,direction:a,colors:l,steps:u,smooth:s}=o;return{...yt(o),gradientType:e,near:A,far:t,isVector:r,isWorldSpace:n,origin:new Rt(...i),direction:a?new Rt(...a):new Rt(1,0,0),colors:l.map(c=>c!==void 0?new Ws(c[0],c[1],c[2],c[3]):new Ws(0,0,0,0)),steps:u.slice(0,l.length),smooth:s}}function M1(o){let{cnormal:e}=o;return{...yt(o),cnormal:new Rt(e[0],e[1],e[2])}}function B1(o,e){return{...yt(o),scale:o.scale,move:o.move,fA:new _n(...o.fA),fB:new _n(...o.fB),size:new Rt(...o.size),distortion:new _n(...o.distortion),colorA:pe(o.colorA,e),colorB:pe(o.colorB,e),colorC:pe(o.colorC,e),colorD:pe(o.colorD,e),noiseType:o.noiseType}}function E1(o){return{...yt(o),filmThickness:o.filmThickness,movement:o.movement,wavelengths:new Rt(...o.wavelengths),noiseStrength:o.noiseStrength,noiseScale:o.noiseScale,offset:new Rt(...o.offset)}}function D1(o,e){return{...yt(o),positioning:o.positioning,colors:o.colors.map(A=>new Ws(A[0],A[1],A[2],A[3])),num:o.colors.length,steps:o.steps,source:new Rt(...o.source),isWorldSpace:o.isWorldSpace,noiseStrength:o.noiseStrength,noiseScale:o.noiseScale,shadowColor:pe(o.shadowColor,e),offset:new Rt(...o.offset)}}function G1(o,e){return{...yt(o),outlineColor:pe(o.outlineColor,e),contourColor:pe(o.contourColor,e),outlineWidth:o.outlineWidth,contourWidth:o.contourWidth,outlineThreshold:o.outlineThreshold,contourThreshold:o.contourThreshold,outlineSmoothing:o.outlineSmoothing,contourFrequency:o.contourFrequency,contourDirection:o.contourDirection,positionalLines:o.positionalLines,compensation:o.compensation}}function R1(o,e){return{...yt(o),thickness:o.thickness,ior:o.ior,roughness:o.roughness}}var lr=class extends WA{};import{Vector4 as j1}from"three";import{VideoTexture as V1,Texture as F1}from"three";var qs=class{constructor(e=1e3*10){this.timeout=e;this.cache=new Map;this.head={data:null,time:0,src:null,next:null,prev:null};this.tail={data:null,time:1/0,src:null,next:null,prev:null};this.hasClean=!1;this.head.next=this.tail,this.tail.prev=this.head}log(...e){}scheduleCleanup(){this.hasClean||(this.log("scheduled cleanup"),this.hasClean=!0,setTimeout(()=>{this.hasClean=!1,this.log("cleaning");let e=Date.now(),A=this.head.next;for(;A.time<e-this.timeout;)this.dispose(A.src,A.data),this.cache.delete(A.src),A=A.next,A.prev=this.head,this.head.next=A;this.head.next!==this.tail?this.scheduleCleanup():this.log("no more cleanup")},this.timeout+1e3))}load(e){let A=Date.now(),t=this.cache.get(e);return t===void 0?(t={data:this.create(e),src:e,time:A,next:null,prev:null},this.cache.set(e,t)):(t.time=A,t.prev.next=t.next,t.next.prev=t.prev),t.prev=this.tail.prev,t.next=this.tail,this.tail.prev.next=t,this.tail.prev=t,this.scheduleCleanup(),t.data}};var Zl=class extends qs{create(e){return URL.createObjectURL(new Blob([e]))}dispose(e,A){URL.revokeObjectURL(A)}},Kl;function cm(o){return typeof o=="string"?o:(Kl||(Kl=new Zl),Kl.load(o))}var Pr=class{constructor(e,A){this.data=e;this.onImageLoad=A;this.loaded=!1;this.isVideo=!1;this.isVideo=e.type=="video",this.updateSrc(e.data)}async updateSrc(e){if(typeof document>"u")return;this.dispose(),this.loaded=!1;let A=()=>{this.loaded=!0;let r=[1e3,1001,1002];for(let n of r){let i=this[n];i&&(i.image=this.img,i.needsUpdate=!0)}this.onImageLoad&&this.onImageLoad()};if(this.isVideo){if(this.img=document.createElement("video"),this.img.preload="auto",this.img.playsInline=!0,this.img.currentTime=.01,this.img.muted=!0,typeof e!="string"){var t=new FileReader;t.readAsDataURL(new Blob([e],{type:"video/mp4"}));let r;await new Promise(n=>{t.onloadend=i=>{r=i.target?.result,n(null)}}),this.img.src=r}else this.img.src=e;this.img.onloadeddata=()=>{A()}}else this.img=new Image,this.img.src=cm(e),this.img.onload=A}getTexture(e){let A=this[e];if(A)return A;{let t;return this.isVideo?t=new V1(this.img,void 0,e,e):t=new F1(this.img,void 0,e,e),this.loaded&&(t.needsUpdate=!0),this[e]=t,t}}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 ze=class extends Pr{};var cr=class extends MA{};var Jl={noise:["noiseType"],texture:["projection","axis","side"],video:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},_l={depth:["colors"]};function z1(o,e,A){let t=Jl[o.type],r=_l[o.type];if(r!==void 0){let n=o.color;if(r.includes(e)){let i=n[e]?.value?.length;if(i!==void 0&&i!==A.length)return!0}}return t!==void 0?t.includes(e):!1}function $l(o,e,A){let t=A.uniforms[`f${A.id}_texture`];if(!t)return!1;let r=!1,n=o;if("image"in n){let i=n.image,a=e.image(i),l=t;l instanceof ze||l.image.dispose(),l.image=a}if("video"in n){let i=n.video,a=e.video(i),l=t;l instanceof ze||l.image.dispose(),l.image=a}if("wrapping"in n){let i=t;i.wrap=n.wrapping}if("repeat"in n||"offset"in n){let i="mat",a=A.uniforms[`f${A.id}_${i}`];"repeat"in n&&(a.repeat=n.repeat),"offset"in n&&(a.offset=n.offset),a.updateMatrix()}return r}function um(o,e,A,t){let r=!1;for(let[n,i]of Object.entries(o)){if(!n||i===void 0)continue;if(Ac(n,A,t)){n==="visible"&&A.type==="light"&&(r=!0);continue}A.visible=t.visible;let a=A.uniforms[`f${A.id}_${n}`];if(!!a&&!(a instanceof cr))switch(r=r||z1(A,n,i),a.constructor){case TA:if(typeof i=="string"){let l=e.getColor(i);l&&(a.value=l);break}else{let l=i;a.value instanceof lr?a.value=new WA(l.r,l.g,l.b,l.a):a.setRGBA(l);break}case je:if(typeof i=="string"){let l=e.getColor(i);l&&(a.value=l);break}else{let l=i;a.value instanceof lr?a.value=new WA(l.r,l.g,l.b,l.a):a.value.setRGBA(l.r,l.g,l.b,l.a);break}case JA:{let l=i;a.value.setX(l[0]),a.value.setY(l[1]);break}case ee:{let l=i;a.value.setX(l[0]),a.value.setY(l[1]),a.value.setZ(l[2]);break}case ve:{$l(i,e,A);break}case $e:{a.value=i.map(l=>new j1(...l));break}default:{a.value=i;break}}}return r}var ec=class extends aA{constructor(A,t,r){super("v3");this.nodeType="Matcap";this.texture=A,this.alpha=t,this.mode=r,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.isShader("fragment")){A.addFragmentVariable(this.calpha,"float");let r=A.include(ec.Nodes.matcap);A.require("normal"),A.requires.normal=!0;let n=[];return n.push(this.texture.generate(A,"t")),n.push("normal"),n.push(this.alpha.build(A,"f")),n.push(this.mode.build(A,"i")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("MatcapNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},$n=ec;$n.Nodes=function(){return{matcap:new K(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
|
|
1087
1087
|
vec3 viewDir = normalize( vViewPosition );
|
|
1088
1088
|
vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
|
|
1089
1089
|
vec3 y = cross( viewDir, x );
|
|
@@ -1095,7 +1095,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1095
1095
|
|
|
1096
1096
|
return matcapColor.rgb;
|
|
1097
1097
|
}
|
|
1098
|
-
`)}}();var
|
|
1098
|
+
`)}}();var Ai=class extends cr{constructor(A,t){super("t");this.image=A;this.wrap=t}get value(){return this.image.getTexture(this.wrap)}};import{Vector3 as k1}from"three";var Qs=class extends cr{constructor(A){super("v3");this.image=A;this._value=new k1}get value(){return this._value.x=this.image.isVideo?this.image.img.videoWidth??0:this.image.img.width,this._value.y=this.image.isVideo?this.image.img.videoHeight??0:this.image.img.height,this._value}};var tc=class extends aA{constructor(A,t,r,n,i,a,l,u,s,c){super("v3");this.nodeType="Toon";this.positioning=A,this.colors=t,this.steps=r,this.source=n,this.isWorldSpace=i,this.noiseStrength=a,this.noiseScale=l,this.shadowColor=u,this.offset=s,this.alpha=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.require("worldNormal"),A.require("worldPosition"),A.isShader("fragment")){A.define("COLORS_MAX",10),A.addFragmentVariable(this.calpha,"float");let r=A.include(tc.Nodes.toon),n=[];return n.push(this.positioning.build(A,"i")),n.push(this.colors.build(A,"v4[]")),n.push(this.steps.build(A,"f[]")),n.push(this.source.build(A,"v3")),n.push(this.isWorldSpace.build(A,"b")),n.push(this.noiseStrength.build(A,"f")),n.push(this.noiseScale.build(A,"f")),n.push(this.shadowColor.build(A,"v4")),n.push(this.offset.build(A,"v3")),n.push(this.alpha.build(A,"f")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("ToonNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},ei=tc;ei.Nodes=function(){let A=new K(`float rand(float n) {
|
|
1099
1099
|
return fract(sin(n) * 43758.5453123);
|
|
1100
1100
|
}`),t=new K(`float hash1(float p) {
|
|
1101
1101
|
p = fract(p * 0.011);
|
|
@@ -1331,8 +1331,8 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1331
1331
|
|
|
1332
1332
|
return color.xyz;
|
|
1333
1333
|
|
|
1334
|
-
}`,[se.simplex,A,r,i])}}();import{Matrix3 as iT}from"three";function Sm(o,e,A){o.setUvTransform(A[0],A[1],e[0],e[1],0,0,0)}var Ys=class extends jo{constructor(A,t){super(new iT);this.repeat=A;this.offset=t;Sm(this.value,A,t)}updateMatrix(){Sm(this.value,this.repeat,this.offset)}};var wt=class{constructor(e,A,t,r){this.id=e;this.uuid=A;this.data=t;this.uniforms={};for(let n in r)this.uniforms[`f${this.id}_${n}`]=r[n];for(let n in t)_l(n,this,t)}get type(){return this.data.type}static create(e,A,t,r){if(t.type==="light")return St.createLigherLayer(e,A,t,r);if(t.type==="texture"||t.type==="video"){let n=t.type==="texture"?r.image(t.texture.image):r.video(t.texture.video),i=new $n(n,t.texture.wrapping),a=new Qs(n),l=new Ys(t.texture.repeat,t.texture.offset),u=new J(t.crop?1:0),s=new yA(t.projection??0),c=new yA(["x","y","z"].indexOf(t.axis)??0),d=new yA(t.side??0),p=new _A(t.size?new Cr(t.size[0],t.size[1]):new Cr(100,100)),f=new J(t.alpha??1),m=new yA(t.mode??0),h=new qn(i,a,u,s,c,d,p,l,f,m),x=new wA(h.calpha,"f");return new QA(e,A,t,{texture:i,textureSize:a,crop:u,projection:s,axis:c,side:d,size:p,mat:l,alpha:f,mode:m},h,m,x)}else if(t.type==="matcap"){let n=r.image(t.texture.image),i=new $n(n,t.texture.wrapping),a=new J(t.alpha??1),l=new yA(t.mode??0),u=new _n(i,a,l),s=new wA(u.calpha,"f");return new QA(e,A,t,{texture:i,alpha:a,mode:l},u,l,s)}else if(t.type==="displace")if(t.displacementType==="noise"){let n=new te(new bt(...t.offset)),i=new J(t.scale??10),a=new J(t.intensity??8),l=new J(t.movement??1),u=new yA(t.noiseType??0),s=new Hn(a,l,n,i,u);return new ei(e,A,t,{offset:n,scale:i,intensity:a,movement:l,noiseType:u},s)}else throw new Error;else return aT(e,A,t,r)}updateByOp(e,A,t){let r=e;if(r.path[0]===void 0){if(r.type===0)return"type"in r.props||"category"in r.props?!0:wm(r.props,t,this,A)}else if(r.path[0]==="texture")return"texture"in A||"video"in A?Jl(r.props,t,this):!0;return!1}dispose(){}hasValueByKey(e){return this.uniforms[e]!==void 0}hasValue(e){return this.hasValueByKey(`f${this.id}_${e}`)}setValue(e,A){let t=`f${this.id}_${e}`;this.hasValueByKey(t)&&A!==void 0&&(this.uniforms[t].value=A)}getNode(e){let A=`f${this.id}_${e}`;if(this.hasValueByKey(A))return this.uniforms[A]}getValue(e){let A=`f${this.id}_${e}`;if(this.hasValueByKey(A))return this.uniforms[A].value}getName(e){let t=/f\d+_(.*)/.exec(e);if(t&&t.length>1)return t[1];console.log(`Layer.getName: error ${e}`)}getNames(){let e=[];for(let A in this.uniforms){let t=this.getName(A);t&&e.push(t)}return e}},QA=class extends wt{constructor(A,t,r,n,i,a,l){super(A,t,r,n);this.color=i;this.mode=a;this.alpha=l}},ei=class extends wt{constructor(A,t,r,n,i){super(A,t,r,n);this.position=i}},St=class extends wt{constructor(A,t,r,n,i){super(A,t,r,i);this.data=r;this.node=n}static createLigherLayer(A,t,r,n){let i,a=new J(r.alpha),l=new yA(r.mode),u;if(!r.visible)i=new Pr,u={};else if(r.category==="lambert"){i=new Xn;let s=new TA(n.color(r.emissive)??0);u={emissive:s},i.emissive=s}else if(r.category==="toon"){i=new Zn;let s=new J(r.shininess??30),c=new TA(n.color(r.specular)??1118481);u={shininess:s,specular:c},i.shininess=s,i.specular=c}else if(r.category==="physical"){i=new Kn;let s=new J(r.roughness??.3),c=new J(r.metalness??0),d=new J(r.reflectivity??.5);u={roughness:s,metalness:c,reflectivity:d},i.roughness=s,i.metalness=c,i.reflectivity=d}else{i=new Hs;let s=new J(r.shininess??30),c=new TA(n.color(r.specular)??1118481);u={shininess:s,specular:c},i.shininess=s,i.specular=c}return i.alpha=new J(1),i.shadingAlpha=a,i.shadingBlend=l,u.alpha=i.shadingAlpha,u.mode=i.shadingBlend,new St(A,t,r,i,u)}};function Tm(o){let e=o instanceof wt?o.type:o;return e==="texture"||e==="video"||e==="displace_map"||e==="matcap"}function sT(o,e,A,t){switch(o.type){case"color":{let r=new TA(t.color??5855577),n=new J(t.alpha??1),i=new wA("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");i.keywords.alpha=n;let a=new yA(t.mode??0);return r.alpha=n,new QA(e,A,o,{color:r,alpha:n,mode:a},r,a,i)}case"fresnel":{let r=new TA(t.color??16777215),n=new J(t.bias??.1),i=new J(t.scale??1),a=new J(t.intensity??2),l=new J(t.factor??1),u=new J(t.alpha??1),s=new yA(t.mode??0),c=new Vn(r,n,i,a,l,u,s),d=new wA(c.calpha,"f");return new QA(e,A,o,{color:r,bias:n,scale:i,intensity:a,factor:l,alpha:u,mode:s},c,s,d)}case"rainbow":{let r=new J(t.filmThickness??30),n=new J(t.movement??0),i=new te(t.wavelengths??new bt(0,0,0)),a=new J(t.noiseStrength??0),l=new J(t.noiseScale??1),u=new te(t.offset??new bt(0,0,0)),s=new J(t.alpha??1),c=new Fn(r,n,i,a,l,u,s),d=new wA(c.calpha,"f"),p=new yA(t.mode??0);return new QA(e,A,o,{filmThickness:r,movement:n,wavelengths:i,noiseStrength:a,noiseScale:l,offset:u,alpha:s,mode:p},c,p,d)}case"transmission":{let r=new J(t.thickness??10),n=new J(t.ior??1.5),i=new J(t.roughness??.5),a=re.transmissionSize,l=re.transmissionRenderTarget,u=re.transmissionRenderTargetDepth,s=window.innerWidth,c=window.innerHeight,d=s>=c?new _A(c/s,1):new _A(1,s/c),p=new J(t.alpha??1),f=new zn(r,n,i,a,l,u,d,p),m=new wA(f.calpha,"f"),h=new yA(t.mode??0);return new QA(e,A,o,{thickness:r,ior:n,roughness:i,aspectRatio:d,alpha:p,mode:h},f,h,m)}case"toon":{let r=new yA(t.positioning??0),n;t.colors?n=new Ze(t.colors.length,t.colors):(n=new Ze(10,new ko(0,0,0,1)),n.value[1]=new ko(1,1,1,1));let i;t.steps?i=new Ke(t.steps.length,t.steps):(i=new Ke(10,1),i.value[0]=0);let a=new te(t.source??new bt(0,0,0)),l=new lr(t.isWorldSpace??!0),u=new J(t.noiseStrength??0),s=new J(t.noiseScale??1),c=new ze(t.shadowColor),d=new te(t.offset??new bt(0,0,0)),p=new J(t.alpha??1),f=new Ai(r,n,i,a,l,u,s,c,d,p),m=new wA(f.calpha,"f"),h=new yA(t.mode??0);return new QA(e,A,o,{positioning:r,colors:n,steps:i,source:a,isWorldSpace:l,noiseStrength:u,noiseScale:s,shadowColor:c,offset:d,alpha:p,mode:h},f,h,m)}case"outline":{let r=new TA(t.outlineColor??16777215),n=new TA(t.contourColor??16777215),i=new J(t.outlineWidth??.1),a=new J(t.contourWidth??.1),l=new J(t.outlineThreshold??.1),u=new J(t.contourThreshold??.1),s=new J(t.outlineSmoothing??.1),c=new J(t.contourFrequency??.1),d=new te(t.contourDirections??new bt(0,1,0)),p=new lr(t.positionalLines??!1),f=new lr(t.compensation??!0),m=re.normalRenderTarget,h=re.normalRenderTargetDepth,x=re.pixelRatioNode,y=re.resolution,b=new J(t.alpha??1),w=new jn(r,n,i,a,l,u,s,c,d,p,f,y,m,h,x,b),v=new wA(w.calpha,"f"),I=new yA(t.mode??0);return new QA(e,A,o,{outlineColor:r,contourColor:n,outlineWidth:i,contourWidth:a,outlineThreshold:l,contourThreshold:u,outlineSmoothing:s,contourFrequency:c,contourDirection:d,positionalLines:p,compensation:f,alpha:b,mode:I},w,I,v)}case"depth":{let r=new yA(t.gradientType??0),n=new lr(t.smooth??!1),i=new J(t.near??50),a=new J(t.far??200),l=new J(t.isVector??1),u=new J(t.isWorldSpace??0),s=new te(t.origin??new bt),c=new te(t.direction??new bt),d;t.colors?d=new Ze(t.colors.length,t.colors):(d=new Ze(2,new ko(0,0,0,1)),d.value[1]=new ko(1,1,1,1));let p;t.steps?p=new Ke(t.steps.length,t.steps):(p=new Ke(2,1),p.value[0]=0);let f=new J(t.alpha??1),m=new yA(t.mode??0),h=new kn(r,n,i,a,l,u,s,c,d,p,f),x=new wA(h.calpha,"f");return new QA(e,A,o,{gradientType:r,smooth:n,near:i,far:a,isVector:l,isWorldSpace:u,origin:s,direction:c,colors:d,steps:p,alpha:f,mode:m},h,m,x)}case"noise":{let r=new J(t.scale??1),n=new te(t.size??new bt(100,100,100)),i=new J(t.move??1),a=new _A(t.fA??new Cr(1.7,9.2)),l=new _A(t.fB??new Cr(8.3,2.8)),u=new _A(t.distortion??new Cr(1,1)),s=new ze(t.colorA),c=new ze(t.colorB),d=new ze(t.colorC),p=new ze(t.colorD),f=new J(t.alpha??1),m=new yA(t.mode??0),h=new yA(t.noiseType??0),x=new Rn(r,n,i,a,l,u,s,c,d,p,f,h),y=new wA(x.calpha,"f");return new QA(e,A,o,{scale:r,size:n,move:i,fA:a,fB:l,distortion:u,colorA:s,colorB:c,colorC:d,colorD:p,alpha:f,mode:m,noiseType:h},x,m,y)}case"normal":{let r=new te(t.cnormal??new bt(1,1,1)),n=new J(t.alpha??1),i=new yA(t.mode??0),a=new Yn(r,n),l=new wA("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return l.keywords.alpha=n,new QA(e,A,o,{cnormal:r,alpha:n,mode:i},a,i,l)}case"gradient":{let r=new yA(t.gradientType??0),n=new lr(t.smooth??!1),i;t.colors?i=new Ze(t.colors.length,t.colors):(i=new Ze(10,new ko(0,0,0,1)),i.value[1]=new ko(1,1,1,1));let a;t.steps?a=new Ke(t.steps.length,t.steps):(a=new Ke(10,1),a.value[0]=0);let l=new _A(t.offset??new Cr(0,0)),u=new _A(t.morph??new Cr(0,0)),s=new J(t.angle??0),c=new J(t.alpha??1),d=new yA(t.mode??0),p=new Wn(r,n,i,a,l,u,s,c),f=new wA(p.calpha,"f");return new QA(e,A,o,{gradientType:r,smooth:n,colors:i,steps:a,offset:l,morph:u,angle:s,alpha:c,mode:d},p,d,f)}default:{let r=new TA(1,0,0,1),n=new J(1),i=new wA("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");i.keywords.alpha=n;let a=new yA(0);return r.alpha=n,new QA(e,A,o,{color:r,alpha:n,mode:a},r,a,i)}}}function aT(o,e,A,t){let r=vm(A,t);return sT(A,o,e,r)}function _l(o,e,A){if(A.type==="displace"&&(o==="intensity"||o==="visible")){let t=e.uniforms[`f${e.id}_intensity`];return t?(t.value=A.intensity*(A.visible?1:0),t):void 0}if(A.type!=="displace"&&(o==="alpha"||o==="visible")){let t=e.uniforms[`f${e.id}_alpha`];if(!t)return;if(t.value=A.alpha*(A.visible?1:0),A.type==="outline"&&o==="visible"){let r=e.uniforms[`f${e.id}_compensation`];r&&(r.value=A.compensation&&A.visible)}return t}}var Pe=class extends lT{constructor(A,t){super(void 0);this.data=A;this.layerIdGen=0;this.type="NodeMaterial";this.fog=!0,this.updaters=[],this.dithering=!0,this.vertexColors=!0,this.onBeforeCompile=this._onBeforeCompile,this.reset(A,t)}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.data.category}reset(A,t){let r=A.layers??ue.defaultTwoLayerData("phong").layers;this.layers=r.map(n=>wt.create(this.layerIdGen++,n.id,n.data,t)),this.layers.reverse(),this.name=A.name??"Untitled Material",this.onUpdate(t),this.transparent=ue.isTransparent(A,t)}getLayersOfType(A){return this.layers.filter(t=>t.type===A)}getLayerByUuid(A){return this.layers.find(t=>t.uuid===A)}onUpdate(A){this.lightLayer=this.layers.find(t=>t instanceof St),this.lightLayer===void 0&&(this.lightLayer=new St(0,"",{...ce.defaultData("light","phong"),visible:!1},new Pr,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(A,t,r){if(this.data=t,this.transparent=ue.isTransparent(t,r),A.path[0]==="layers"){let n=A.path[1];if(n===void 0){if(this.layers.reverse(),A.type===4){let i=wt.create(this.layerIdGen++,A.id,A.data,r);this.layers.splice(A.localIndex,0,i)}else if(A.type===5)this.layers.splice(A.localIndex,1)[0].dispose();else if(A.type===6){let i=this.layers.findIndex(l=>l.uuid===A.id),a=this.layers[i];this.layers.splice(i,1),this.layers.splice(A.localIndex,0,a)}this.layers.reverse(),this.onUpdate(r)}else{let i=this.layers.find(a=>a.uuid===n);if(i){let a=t.layers.data(n);if(i.updateByOp({...A,path:A.path.slice(2)},a,r)){let u=wt.create(this.layerIdGen++,n,a,r);this.layers.splice(this.layers.findIndex(s=>s.uuid===n),1,u),this.onUpdate(r)}}}}}blendColors(){let A=this.layers.findIndex(r=>r instanceof QA),t=this.layers.findIndex(r=>r instanceof St);if(A!==-1&&A<t){let r=this.layers[A].color;for(let n=A+1;n<t;++n){let i=this.layers[n];i instanceof QA&&(r=new Un(r,i.color,i.alpha,i.mode))}this.fragment.color=r}else this.fragment.color=void 0}blendAfterColors(){let A=new wA("outgoingLight","f"),t=this.layers.findIndex(r=>r instanceof St);if(this.layers.length>t+1){for(let r=t+1;r<this.layers.length;++r){let n=this.layers[r];n instanceof QA&&(A=new Un(A,n.color,n.alpha,n.mode))}this.fragment.afterColor=A}else this.fragment.afterColor=void 0}blendPositions(){let A=this.layers.filter(t=>t instanceof ei);if(A.length>0){let t=A[0].position;for(let r=1;r<A.length;++r)A[r]&&(t=new be(t,A[r].position,be.ADD),t=new be(t,new J(.5).setReadonly(!0),be.MUL));this.fragment.position=t}else this.fragment.position=void 0}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}_onBeforeCompile(A,t){this.build({renderer:t}),A.defines=this.defines,A.uniforms=this.uniforms,A.vertexShader=this.vertexShader,A.fragmentShader=this.fragmentShader,A.extensionDerivatives=this.extensions.derivatives===!0,A.extensionFragDepth=this.extensions.fragDepth===!0,A.extensionDrawBuffers=this.extensions.drawBuffers===!0,A.extensionShaderTextureLOD=this.extensions.shaderTextureLOD===!0}clampUniformsForPreview(A,t){let r=(n,i,a)=>Math.min(Math.max(n,i),a);for(let n of this.layers)if(n.type==="displace"){let i=r(n.uniforms[`f${n.id}_intensity`].value,A,t);n.uniforms[`f${n.id}_intensity`].value=i}}customProgramCacheKey(){let A="[";for(let{data:t}of this.data.layers)if(t.type==="light")A+=`"${t.visible?t.category.toUpperCase():"Basic"}"`;else{let r=(Kl[t.type]??[]).map(a=>t[a]),n=(Zl[t.type]??[]).map(a=>t[a]?.length??0),i=[...r,...n];i.length?A+=`["${t.type}", "${i.join('","')}"],`:A+=`"${t.type}",`}return A=A.slice(0,-1)+"]",A}updateFrame(A){for(let t=0;t<this.updaters.length;++t)A.updateNode(this.updaters[t])}build(A){A=A??{};let t=A.builder??new Us;return this.lights=this.lightLayer.data.visible,t.setMaterial(this,A.renderer),t.build(this.fragment,this.fragment),this.vertexShader=t.getCode("vertex"),this.fragmentShader=t.getCode("fragment"),this.defines=t.defines,this.uniforms=t.uniforms,this.extensions=t.extensions,this.updaters=t.updaters,this}dispose(){this.layers.forEach(A=>A.dispose()),super.dispose()}getHash(){let A="{";return A+='"fragment":'+this.fragment.getHash(),A+="}",A}};Object.defineProperties(Pe.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(o){o===!0&&this.version++,this.needsCompile=o},get:function(){return this.needsCompile}}});import{MathUtils as ec,BufferAttribute as cT,Vector3 as tc,Float32BufferAttribute as Nm}from"three";function uT(o){if(o.geometry.attributes.extrudeNormal||!o.geometry.attributes.position||!o.geometry.attributes.normal)return;let e=new Map,A=o.geometry.attributes.position.array,t=o.geometry.attributes.normal.array,r=new Float32Array(A.length);for(let n=0;n<A.length;n+=3){let i=`${A[n]}_${A[n+1]}_${A[n+2]}`,a=new tc(t[n],t[n+1],t[n+2]);e.has(i)?e.get(i)?.normals.push(a):e.set(i,{normals:[a],result:new tc})}e.forEach((n,i)=>{for(let a of n.normals)n.result.add(a);n.result.divideScalar(n.normals.length)});for(let n=0;n<A.length;n+=3){let i=`${A[n]}_${A[n+1]}_${A[n+2]}`,a=e.get(i)?.result;a&&(r[n]=a.x,r[n+1]=a.y,r[n+2]=a.z)}o.geometry.setAttribute("extrudeNormal",new Nm(r,3))}function dT(o){if(o.geometry.attributes.extrudeNormals||!o.geometry.attributes.position)return;let e=o.geometry.attributes.position.array,A=new Float32Array(e.length),t=new tc;for(let r=0;r<e.length;r+=3)t.set(e[r],e[r+1],e[r+2]).normalize(),A[r]=t.x,A[r+1]=t.y,A[r+2]=t.z;o.geometry.setAttribute("extrudeNormal",new Nm(A,3))}function Tt(o){if(Array.isArray(o.material)){for(let e of o.material)if(e.getLayersOfType("outline").length===0)return}else if(!(o.material instanceof Pe)||o.material.getLayersOfType("outline").length===0)return;o.objectType==="Mesh2D"||o.objectType==="TextFrame"&&o.data?.geometry?.depth===0?dT(o):uT(o)}function Nt(o){if(!o.geometry.attributes.position)return;let e=o.geometry.attributes.position.array,A=new Float32Array(e.length),t=parseInt(o.uuid.replace(/\D/g,"")),r=[ec.seededRandom(t),ec.seededRandom(t+1e4),ec.seededRandom(t+2e4)];for(let n=0;n<e.length;n++)A[n]=r[n%3];o.geometry.setAttribute("randomColor",new cT(A,3))}import{Group as pT}from"three";var It=(o,e)=>class extends o{constructor(){super(...arguments);this.objectHelper=new e(this)}get geometryHelper(){return e.geometryHelper}raycast(r,n){this.objectHelper.raycast(r,n)}fromLightState(r,n){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let i=this;r.color!==void 0&&(i.color=KA(r.color,n)),r.intensity!==void 0&&(i.intensity=r.intensity),r.depth!==void 0&&(i.shadow.camera.far=r.depth,i.shadow.needsUpdate=!0),r.shadows!==void 0&&(this.castShadow=r.shadows)}return this}};var zt=class extends It(Ge(pT),bo){constructor(){super(...arguments);this.objectType="EmptyObject"}createFromState(A,t){let r=new zt().fromState(t);return r.uuid=A,r.objectHelper.update(),r.setFromClonerState(t.cloner||null),r}get cloner(){return this._cloner}set cloner(A){this._cloner&&(this.remove(this._cloner),this._cloner.removeSampleObjectClones()),A&&this.add(A),this._cloner=A}setFromClonerState(A){A===null||A.disabled?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Gt(this,A)),this.cloner.fromClonerState(A))}};function hT(o){let e=o.parent;for(;e;){if(e instanceof zt&&e.cloner?.parameters.hideBase)return!0;e=e.parent}return!1}var FA=class extends Ge(fT){constructor(A,t){super(A,t);this.isAbstractMesh=!0;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new mT;this.booleanExclude=null;Array.isArray(t)&&A.groups.length===0&&A.addGroup(0,Math.max(A.getIndex()?.count??0,A.getAttribute("position").count),0)}get isGroup(){return this._cloner?.parameters.hideBase===!0||hT(this)}get isMesh(){return!this.isGroup}set isMesh(A){}get cloner(){return this._cloner}set cloner(A){this._cloner&&(this.remove(this._cloner),this._cloner.removeSampleObjectClones()),A&&this.add(A),this._cloner=A}updateGeometry(A,t){let r=this.geometry,n=Dl[r.userData.type],i=this.objectType==="NonParametric"?Object.assign({},r.userData,{geometry:r}):r.userData,a=n.build(n.normalizeInputs(A,i)),l=r.uuid;this.geometry.dispose(),this.geometry=a,this.geometry.uuid=l,this.geometry.computeBoundingSphere(),Tt(this),r.getAttribute("randomColor")&&Nt(this)}clone(A){let t=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,r=Bn(t),n=this.material;return new this.constructor(r,n).copy(this,A)}copy(A,t=!0){return super.copy(A,t),A.cloner&&(this.cloner=new Gt(A,A.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(A){A===null||A.disabled?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Gt(this,A)),this.cloner.fromClonerState(A))}fromState(A,t){return super.fromState(A),A.type==="Mesh"&&(this.setFromClonerState(A.cloner),this.castShadow=A.castShadow??!0,this.receiveShadow=A.receiveShadow??!0,this.booleanExclude=A.booleanExclude??null),this}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(Ye.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(A=!1){return A?this.booleanWasTransformed=!0:this.freeBooleanPointer(),at(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let A of this.children)st(A)&&(A.freeBooleanPointer(),at(A)&&A.invalidateUpstreamBooleanData())}};var xT=new rc(0,0,1),Im=new rc,Pm=new rc,Om=new yT,Uo=class extends FA{constructor(A=ee.create({}),t){super(A,t);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new gT;this._onShapeUpdate=()=>{this.updateGeometry({}),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=A.userData.shape,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}fromState(A){return super.fromState(A),this.shape.update(),this}setHelperVisibility(){}updateGeometry(A,t){if(super.updateGeometry(A,t),"userData"in this.geometry){let r=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:r})}}setShape(A){this.shape&&this.shape.eventDispatcher?.removeEventListener("update",this._onShapeUpdate),this.shape=A,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(A,t){super.updateWorldMatrix(A,t),Om.getNormalMatrix(this.matrixWorld),Im.copy(xT).applyMatrix3(Om).normalize(),Pm.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(Im,Pm)}clone(A){let t=this.shape.clone(),r=this.material,n=this.geometry.userData,i=ee.create(Object.assign({},n,{shape:t})),a=new Uo(i,r).copy(this,A);return a.shape=t,t.update(),a}raycast(A,t){FA.prototype.raycast.call(this,A,t)}};var Ho=new Je,oc=new Je,kt=class extends It(Ge(vT),bs){constructor(A=window.innerWidth,t=window.innerHeight,r=45,n,i=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=gr.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=A,this.height=t,this.orthoCamera=new bT(A*-.5,A*.5,t*.5,t*-.5,n??-5e4,i),this.perspCamera=new wT(r,A/t,n??50,i),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(A,t){let r=new kt().fromState(t);return r.objectHelper.update(),r.uuid=A,r}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}setNear(A,t){A==="PerspectiveCamera"?this.perspCamera.near=t:this.orthoCamera.near=t}setZoom(A,t){t>=0&&(A==="PerspectiveCamera"?this.perspCamera.zoom=t:this.orthoCamera.zoom=t)}set cameraType(A){A==="PerspectiveCamera"?this.toPerspective():A==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(A){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=A:this.orthoCamera.near=A}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(A){A>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=A:this.orthoCamera.zoom=A)}lookAt(A){super.lookAt(A),this.getWorldPosition(Ho),this.targetOffset=Ho.distanceTo(A)}getTarget(A=new Je){return this.getWorldDirection(oc),this.getWorldPosition(Ho),oc.multiplyScalar(this.targetOffset),A.copy(Ho).add(oc),A}getDistanceToTarget(){let A=this.getTarget();return this.getWorldPosition(Ho),Ho.distanceTo(A)}updateUp(){let A=this.getWorldQuaternion(new ST),t=new Je(0,0,1).applyQuaternion(A),r=new Je().copy(Cm.DefaultUp);this.isUpVectorFlipped&&r.negate(),r.applyQuaternion(A);let n=new Je().copy(Cm.DefaultUp).projectOnPlane(t),i=new Je().crossVectors(n,r).dot(t)>=0?1:-1;this.angleOffsetFromUp=n.angleTo(r)*i}getViewFrontToObject(A){let t=A.getWorldPosition(new Je),n=A.getWorldDirection(new Je).multiplyScalar(this.targetOffset);return{position:t.clone().add(n),target:t}}getViewToObject(A){let t=A.getWorldPosition(new Je),n=this.getWorldDirection(new Je).multiplyScalar(this.targetOffset);return{position:t.clone().sub(n),target:t}}setViewplaneSize(A,t){this.left=-A*.5,this.right=A*.5,this.top=t*.5,this.bottom=-t*.5,this.aspect=A/t,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(A){this.perspCamera.setFocalLength(A),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(A,t,r,n,i,a){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(A,t,r,n,i,a):this.orthoCamera.setViewOffset(A,t,r,n,i,a)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}updateProjectionMatrix(){this._cameraType==="PerspectiveCamera"?this.toPerspective():this._cameraType==="OrthographicCamera"&&this.toOrthographic()}updateMatrixWorld(A){super.updateMatrixWorld(A),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(A,t){super.updateWorldMatrix(A,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(A,t){return super.copy(A,t),this.orthoCamera.copy(A.orthoCamera),this.perspCamera.copy(A.perspCamera),this.left=A.left,this.right=A.right,this.top=A.top,this.bottom=A.bottom,this.far=A.far,this.view=A.view===null?null:Object.assign({},A.view),this._cameraType=A._cameraType,this.aspect=A.aspect,this.fov=A.fov,this.focus=A.focus,this.filmGauge=A.filmGauge,this.filmOffset=A.filmOffset,this.targetOffset=A.targetOffset,this.updateProjectionMatrix(),this}toCameraState(A=[]){let t={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 lo(t,A)}fromCameraState(A){let{orthographic:t,perspective:r}=A;return A.type!==void 0&&(this.cameraType=A.type),A.far!==void 0&&(this.far=A.far),t!==void 0&&(t.near!==void 0&&(this.orthoCamera.near=t.near),t.zoom!==void 0&&(this.orthoCamera.zoom=t.zoom)),r!==void 0&&(r.near!==void 0&&(this.perspCamera.near=r.near),r.fov!==void 0&&(this.perspCamera.fov=r.fov),r.zoom!==void 0&&(this.perspCamera.zoom=r.zoom)),A.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),A.up!==void 0&&this.up.fromArray(A.up),A.targetOffset!==void 0&&(this.targetOffset=A.targetOffset),A.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=A.isUpVectorFlipped),this.updateProjectionMatrix(),this}toState(A){return{...super.toState(A),...this.toCameraState(A),type:this.cameraType}}fromState(A){return super.fromState(A),this.fromCameraState(A),this}};import{BufferGeometry as Lm,Matrix4 as TT}from"three";var Mm=new TT;var Xs=class extends FA{constructor(A=new Lm,t){super(A,t);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(A,t=!0){if(this.booleanMeshSetAddress!==-1)return;for(let n=0;n<this.children.length;n++){let i=this.children[n];at(i)&&i.recomputeBoolean(A===!0,t)}this.meshSetAddresses=[];for(let n=0;n<this.children.length;n++){let i=this.children[n];if(Bp(i)&&i.booleanExclude===!1&&i.geometry.attributes.position?.count>0&&i.geometry.drawRange.count>0){if(i.booleanMeshSetAddress===-1){if((i.geometry.index??i.geometry.getAttribute("position")).count/3<15e5&&(i.booleanMeshSetAddress=Ye.getMeshSet(i.geometry,A===!0,t)),i.booleanMeshSetAddress===-1)return;Ye.transformMeshSet(i.booleanMeshSetAddress,i.matrix),i.booleanMatrixInvOld.copy(i.matrix).invert(),i.booleanWasTransformed=!1}else at(i)&&i.needsTransformForDownstream===!0?(Ye.transformMeshSet(i.booleanMeshSetAddress,i.matrix),i.needsTransformForDownstream=!1):i.booleanWasTransformed===!0&&(Mm.multiplyMatrices(i.matrix,i.booleanMatrixInvOld),Ye.transformMeshSet(i.booleanMeshSetAddress,Mm),i.booleanMatrixInvOld.copy(i.matrix).invert(),i.booleanWasTransformed=!1);this.meshSetAddresses.push(i.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setDrawRange(0,0);return}if(A===!0)return Ye.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let r=this.geometry;r.dispose(),this.geometry=new Lm,this.geometry.userData=r.userData,this.geometry.boundingSphere=r.boundingSphere;try{this.booleanMeshSetAddress=Ye.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(n){this.booleanMeshSetAddress=0,console.error(n)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,Tt(this),Nt(this)}updateGeometry(A,t){let r=A.parameters;r.operation!==void 0&&(this.booleanOp=r.operation),r.phongAngle!==void 0&&(this.phongAngle=r.phongAngle),this.invalidateDownstreamBooleanData().recomputeBoolean()}};import{DirectionalLight as NT,CameraHelper as Ks}from"three";var Wo=class extends It(Ge(NT),vo){constructor(...A){super(...A);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 r=this.shadow.camera;r.top=1250,r.bottom=-1250,r.right=1250,r.left=-1250,r.near=-1e4,r.far=2500;let n=new Ks(this.shadow.camera);n.visible=!1,this._gizmos.shadowmap=n,this.update()}static createFromState(A,t,r){let n=new Wo().fromState(t,r);return n.uuid=A,n}get gizmos(){return this._gizmos}showGizmos(){for(let A in this._gizmos){let t=this._gizmos[A];t instanceof Ks&&(t.visible=!0)}}hideGizmos(){for(let A in this._gizmos){let t=this._gizmos[A];t instanceof Ks&&(t.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let A in this._gizmos){let t=this._gizmos[A];t instanceof Ks&&t.update()}}updateMatrixWorld(A){super.updateMatrixWorld(A),this.objectHelper&&this.objectHelper.update()}fromDirectionalLightState(A,t){let r=A.depth!==void 0&&A.depth!==this.shadow.camera.far||A.size!==void 0&&A.size/2!==this.shadow.camera.right;return super.fromLightState(A,t),A.size!==void 0&&Pp(this,A.size),A.shadowRadius!==void 0&&(this.shadow.radius=A.shadowRadius),A.shadowResolution!==void 0&&(this.shadow.mapSize.set(A.shadowResolution,A.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),r&&this.update(),this}fromState(A,t){return super.fromState(A),this.fromDirectionalLightState(A,t),this}};import{PointLight as IT,Vector3 as Zs,Box3 as PT,Box3Helper as Js,Color as OT}from"three";var qo=class extends It(Ge(IT),wo){constructor(...A){super(...A);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 r=this.shadow.camera;r.fov=90,r.aspect=1,r.near=100,r.far=2500;let n=new Zs(-r.far+this.position.x,-r.far+this.position.y,-r.far+this.position.z),i=new Zs(r.far+this.position.x,r.far+this.position.y,r.far+this.position.z),a=new PT(n,i),l=new Js(a,new OT(16755200));l.visible=!1,this._gizmos.shadowmap=l,this.update()}static createFromState(A,t,r){let n=new qo().fromState(t,r);return n.uuid=A,n}get gizmos(){return this._gizmos}showGizmos(){for(let A in this._gizmos){let t=this._gizmos[A];t instanceof Js&&(t.visible=!0)}}hideGizmos(){for(let A in this._gizmos){let t=this._gizmos[A];t instanceof Js&&(t.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let A in this._gizmos){let t=this._gizmos[A];if(t instanceof Js){let r=this.shadow.camera,n=new Zs(-r.far+this.position.x,-r.far+this.position.y,-r.far+this.position.z),i=new Zs(r.far+this.position.x,r.far+this.position.y,r.far+this.position.z);t.box.set(n,i),t.updateMatrixWorld(!0)}}}updateMatrixWorld(A){super.updateMatrixWorld(A),this.objectHelper&&this.objectHelper.update()}fromPointLightState(A,t){return super.fromLightState(A,t),A.distance!==void 0&&(this.distance=A.distance),A.decay!==void 0&&(this.decay=A.decay),A.shadowRadius!==void 0&&(this.shadow.radius=A.shadowRadius),A.shadowResolution!==void 0&&(this.shadow.mapSize.set(A.shadowResolution,A.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(A,t){return super.fromState(A),this.fromPointLightState(A,t),this}};import{SpotLight as CT,CameraHelper as _s,MathUtils as LT,Vector3 as Gm,Quaternion as MT}from"three";var Bm=new Gm,Em=new Gm,Dm=new MT,Qo=class extends It(Ge(CT),vn){constructor(...A){super(...A);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 r=this.shadow.camera;r.fov=LT.RAD2DEG*2*this.angle,r.aspect=1,r.near=100,r.far=2500;let n=new _s(this.shadow.camera);n.visible=!1,this._gizmos.shadowmap=n,this.update()}static createFromState(A,t,r){let n=new Qo().fromState(t,r);return n.uuid=A,n}get gizmos(){return this._gizmos}showGizmos(){for(let A in this._gizmos){let t=this._gizmos[A];t instanceof _s&&(t.visible=!0)}}hideGizmos(){for(let A in this._gizmos){let t=this._gizmos[A];t instanceof _s&&(t.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let A in this._gizmos){let t=this._gizmos[A];t instanceof _s&&t.update()}}updateMatrixWorld(A){super.updateMatrixWorld(A),Em.setFromMatrixPosition(this.matrixWorld),Dm.setFromRotationMatrix(this.matrixWorld),Bm.copy(this.up).applyQuaternion(Dm).negate().multiplyScalar(this.distance),this.target.position.copy(Em).add(Bm),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}fromSpotLightState(A,t){return super.fromLightState(A,t),A.distance!==void 0&&(this.distance=A.distance),A.decay!==void 0&&(this.decay=A.decay),A.angle!==void 0&&(this.angle=A.angle),A.penumbra!==void 0&&(this.penumbra=A.penumbra),A.shadowRadius!==void 0&&(this.shadow.radius=A.shadowRadius),A.shadowResolution!==void 0&&(this.shadow.mapSize.set(A.shadowResolution,A.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(A,t){return super.fromState(A),this.fromSpotLightState(A,t),this}};var Rm=o=>o.tagName==="VIDEO",Yo=class{static resize(e,A,t){let r=e/A,n;if(!t.image||!t.video)return;let i=t.image;Rm(i)?n=i.videoWidth/i.videoHeight:n=i.width/i.height,r>n&&(t.imageType=="WEBCAM"?t.repeat.set(-1,1*n/r):t.repeat.set(1,1*n/r)),r<n&&(t.imageType=="WEBCAM"?t.repeat.set(1*r/n*-1,1):t.repeat.set(1*r/n,1)),r==n&&(t.imageType=="WEBCAM"?t.repeat.set(-1,1):t.repeat.set(1,1))}static resizeTextureLayer(e,A,t){let r=e/A,n=t.image!==void 0?t.image.width/t.image.height:1,i;r>n?i={x:1,y:n/r}:r<n?i={x:r/n,y:1}:i={x:1,y:1},t.repeat.set(i.x,i.y),t.updateMatrix()}static resizeTextureLayers(e,A,t){let r=t.layers;for(let n=0;n<r.length;n++){let i=r[n];Tm(i)&&Yo.resizeTextureLayer(e,A,i.uniforms[`f${i.id}_texture`].value)}}static resizeComplex(e,A,t,r){let n=e/A,i,a=t.image;Rm(a)?i=a.videoWidth/a.videoHeight:i=a.width/a.height,r.geometry.type.includes("Shape")?(n>i&&(t.imageType=="WEBCAM"?t.repeat.set(1/e*-1,1/A*i/n):t.repeat.set(1/e,1/A*i/n)),n<i&&(t.imageType=="WEBCAM"?t.repeat.set(1/e*n/i*-1,1/A):t.repeat.set(1/e*n/i,1/A)),n==i&&(t.imageType=="WEBCAM"?t.repeat.set(1/e*-1,1/A):t.repeat.set(1/e,1/A))):(n>i&&(t.imageType=="WEBCAM"?t.repeat.set(-1,1*i/n):t.repeat.set(1,1*i/n)),n<i&&(t.imageType=="WEBCAM"?t.repeat.set(1*n/i*-1,1):t.repeat.set(1*n/i,1)),n==i&&(t.imageType=="WEBCAM"?t.repeat.set(-1,1):t.repeat.set(1,1)))}};var $s=class extends FA{constructor(A,t){super(A,t);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(A,t){super.updateGeometry(A,t),this.material.layers&&Yo.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var Xo=class extends FA{constructor(A,t){super(A,t);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var Aa=class extends Xo{constructor(A,t){super(A,t);this.objectType="NonParametric"}};var Fm,ri=new Promise(o=>{Fm=o}),Vm=!1;async function jm(){if(Vm)return;let o=await import("./opentype.js");Fm(o),Vm=!0}var oi=class{async load(e,A,t=()=>{}){let{load:r}=await ri;r(e,(n,i)=>{n||!i?t(n??"Something went wrong"):A(i)})}async parse(e){let{parse:A}=await ri;try{return A(e)}catch(t){console.error(t)}}};async function BT(o){return await(await fetch(o)).arrayBuffer()}var ET=new oi;async function nc(o){let e,A,t=!1;if(o.url?(e=await BT(o.url),A=o.url,t=o.url.startsWith("/")):o.data&&(e=o.data.buffer),e){let r=await ET.parse(e);if(r)return{font:r,url:A,intercepted:t,arr:e}}}import{Vector3 as DT,Matrix4 as GT,Ray as RT}from"three";var zm=new DT,km=new GT,Um=new RT;function Hm(o){let e=!1;return o.scene.objects.traverse((A,t)=>{t.type==="Mesh"&&t.geometry.type==="TextGeometry"&&(e=!0)}),e}var ea=class extends FA{constructor(A,t,r){super(new Eo(t.geometry,r),r.material(t.material));this.data=t;this.objectType="TextFrame";this.wrappedText=[""];this.charWidths=[];this.charCoords=[];this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.name=t.name,this.uuid=A,this.updateState(t,r)}async updateGeometry(A,t){let r=A.parameters,n={...this.geometry.userData.parameters,...r};this.geometry.userData={parameters:n,type:"TextGeometry"},t&&(r.font||!this.geometry.font&&t.getFont(n.font))&&await this.geometry.updateFont(r.font??n.font,t),await this.geometry.update(n),Tt(this),Nt(this);let{wrappedText:i,charCoords:a,charWidths:l}=this.geometry;this.wrappedText=i,this.charWidths=l,this.charCoords=a,this.resetBBoxNeedsUpdate(),this.invalidateDownstreamBooleanData()}updateState(A,t){this.data=A,this.material=t.material(A.material),this.fromState(A,t),this.updateGeometry({parameters:A.geometry},t)}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(A,t){let{matrixWorld:r}=this;if(km.copy(r).invert(),Um.copy(A.ray).applyMatrix4(km),Um.intersectBox(this.singleBBox,zm)){let n=zm.applyMatrix4(r),i=A.ray.origin.distanceTo(n);t.push({distance:i,point:n.clone(),object:this})}}};import{Box3 as VT,Matrix4 as Lr,Sphere as Qm,Vector3 as FT}from"three";var Xm=la(qm());var ic;go.then(o=>{ic=o});var Km=new Lr,jT=new Lr,zT=new Lr,_e=new VT,dr=new FT,kT=new Lr,UT=new Lr;var Ko=class extends FA{constructor(A,t,r,n){super(r??t,n);this.subdivPointer=A;this.originalGeometry=t;this.subdividedGeometry=r;this.objectType="SubdivObject";this.hiddenMatrixOld=new Lr;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new Lr;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(A,t,r){let{subdivPointer:n,originalGeometry:i,subdividedGeometry:a}=je.build(t.geometry,void 0,void 0,!t.flatShading),l=r.material(t.material),u=new Ko(n,i,a||void 0,l);return t.geometry.phongAngle!==void 0&&(u.phongAngle=t.geometry.phongAngle),u.calcBoundingBox(),u.freeSubdivPointer(),u.uuid=A,u.fromState(t),u}buildFromStore(A,t){let{originalGeometry:r,subdividedGeometry:n,subdivPointer:i}=je.build(A,t,this.subdivPointer,this.smoothShading,this.shearScale);A.phongAngle!==void 0&&(this.phongAngle=A.phongAngle),this.subdivPointer=i,r!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=r),n!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=n??void 0),this.geometry=this.subdividedGeometry??this.originalGeometry,Tt(this),Nt(this),A.width&&(this.geometry.userData.parameters={width:A.width,height:A.height,depth:A.depth})}updateMesh(A=!1){je.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,A?this.shearScaleInv:void 0),this.subdividedGeometry&&je.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,A?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=je.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=je.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(A,t){this.geometry=this.originalGeometry,FA.prototype.raycast.call(this,A,t),this.geometry=this.subdividedGeometry??this.originalGeometry}updateMatrixWorldSVD(){let A=this.matrixWorld.elements,t=[[A[0],A[4],A[8]],[A[1],A[5],A[9]],[A[2],A[6],A[10]]],{u:r,v:n,q:i}=(0,Xm.SVD)(t),a=Km.set(r[0][0],r[0][1],r[0][2],0,r[1][0],r[1][1],r[1][2],0,r[2][0],r[2][1],r[2][2],0,0,0,0,1),l=jT.set(n[0][0],n[0][1],n[0][2],0,n[1][0],n[1][1],n[1][2],0,n[2][0],n[2][1],n[2][2],0,0,0,0,1),u=zT.copy(l).transpose();this.shearScale=kT.makeScale(i[0],i[1],i[2]).multiply(u).premultiply(l),this.shearScaleInv=UT.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(a,u),i.every(s=>Math.abs(i[0]-s)<.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 A=this.originalGeometry;A.boundingSphere===null&&(A.boundingSphere=new Qm);let t=A.attributes.position,r=A.boundingSphere.center;_e.setFromBufferAttribute(t),_e.getCenter(r),A.boundingSphere.radius=r.distanceTo(_e.max),isNaN(A.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),_e.getSize(dr);let n={width:dr.x,height:dr.y,depth:dr.z};return this.geometry.userData.parameters=n,n}updateBoundingBox(A){let t=this.originalGeometry;_e.min.set(A[0],A[2],A[4]),_e.max.set(A[1],A[3],A[5]),this.shearScaleInv&&(_e.min.applyMatrix4(this.shearScaleInv),_e.max.applyMatrix4(this.shearScaleInv)),t.boundingSphere===null&&(t.boundingSphere=new Qm);let r=t.boundingSphere.center;_e.getCenter(r),t.boundingSphere.radius=r.distanceTo(_e.max),isNaN(t.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),_e.getSize(dr);let n={width:dr.x,height:dr.y,depth:dr.z};return this.geometry.userData.parameters=n,n}freeSubdivPointer(){this.subdivPointer&&(ic.free_bvh(this.subdivPointer),ic.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(A,t){this.geometry.userData.scale||(this.geometry.userData.scale=Array(3)),this.geometry.userData.scale[0]=this.geometry.userData.parameters.width===0?1:A.parameters.width/this.geometry.userData.parameters.width,this.geometry.userData.scale[1]=this.geometry.userData.parameters.height===0?1:A.parameters.height/this.geometry.userData.parameters.height,this.geometry.userData.scale[2]=this.geometry.userData.parameters.depth===0?1:A.parameters.depth/this.geometry.userData.parameters.depth,Ym(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(Ym(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters={...A.parameters}}};function Ym(o,e,A,t){let r=o.position.array,n=o.normal.array,i=Km.makeScale(e,A,t).invert().elements,a,l,u;for(var s=0,c=r.length;s<c;s+=3)r[s]*=e,r[s+1]*=A,r[s+2]*=t,a=n[s],l=n[s+1],u=n[s+2],n[s]=i[0]*a+i[4]*l+i[8]*u,n[s+1]=i[1]*a+i[5]*l+i[9]*u,n[s+2]=i[2]*a+i[6]*l+i[10]*u}import{BackSide as HT,BufferGeometry as WT,DoubleSide as qT,FrontSide as QT}from"three";function Zm(o,e){e.flatShading!==void 0&&(o.flatShading=e.flatShading,o.needsUpdate=!0),e.wireframe!==void 0&&(o.wireframe=e.wireframe),e.side!==void 0&&(e.side===0?o.side=QT:e.side===1?o.side=HT:o.side=qT)}function YT(o,e){if(Array.isArray(o.material))for(let A of o.material)Zm(A,e);else{let A=o.material;Zm(A,e)}o.objectType==="SubdivObject"&&e.flatShading!==void 0&&(o.material.flatShading=!1,o.smoothShading=!e.flatShading,o.updateMesh())}function Jm(o,e,A){let t;if(e.geometry.type==="SubdivGeometry")t=Ko.createFromState(o,e,A);else{let r=e.geometry.type==="BooleanGeometry"?new WT:Vs(e.geometry,A),n="materials"in e?e.materials.map(i=>A.material(i)):A.material(e.material);po.is2DParametricMesh(r.userData.type)?t=new $s(r,n):r?.userData.type==="VectorGeometry"?t=new Uo(r,n):e.geometry.type==="NonParametricGeometry"?t=new Aa(r,n):e.geometry.type==="BooleanGeometry"?(t=new Xs(void 0,n),t.booleanOp=e.geometry.operation,e.geometry.phongAngle!==void 0&&(t.phongAngle=e.geometry.phongAngle)):t=new Xo(r,n),t.uuid=o,t.fromState(e,A)}return YT(t,e),t}function _m(o,e,A){return e.type==="Mesh"?e.geometry.type==="TextGeometry"?new ea(o,e,A):Jm(o,e,A):e.type==="Empty"?new zt().createFromState(o,e):e.type==="PointLight"?qo.createFromState(o,e,A):e.type==="SpotLight"?Qo.createFromState(o,e,A):e.type==="DirectionalLight"?Wo.createFromState(o,e,A):kr.is(e.type)?kt.createFromState(o,e):(console.error(e),new zt)}var Mr=class extends Pe{};import{Mesh as eh,Ray as KT,Matrix4 as ZT,Raycaster as JT}from"three";function $m(o,e){let A=!1,t=e.getLayersOfType("transmission"),r=e.getLayersOfType("outline");return r.length>0&&(o.layers.set(8),t.length>0&&o.layers.enable(3),A=!0,Nt(o),Tt(o)),t.length===0&&r.length===0&&o.layers.set(0),A}function Ah(o,e){if(!e.layers)return!1;let A=!1,t=e.getLayersOfType("transmission"),r=e.getLayersOfType("outline");return t.length>0&&(o.layers.set(3),r.length>0&&o.layers.enable(8),A=!0),t.length===0&&r.length===0&&o.layers.set(0),A}function th(o){let e=!1;return o.traverseEntity(A=>{if(A instanceof eh)if(Array.isArray(A.material))for(let t=0;t<A.material.length;t++)$m(A,A.material[t])&&(e=!0);else $m(A,A.material)&&(e=!0)}),e}function rh(o){let e=!1;return o.traverseEntity(A=>{if(A instanceof eh)if(Array.isArray(A.material))for(let t=0;t<A.material.length;t++)Ah(A,A.material[t])&&(e=!0);else Ah(A,A.material)&&(e=!0)}),e}function oh(o){"material"in o&&_T(o.material),"geometry"in o&&o.geometry.dispose()}function _T(o){up(o).forEach(e=>{e instanceof Mr||e.dispose()})}var $T=new JT,AN=new ZT,eN=new KT;function nh(o,e,A){let t=o.cloner;if(t)for(let r of t.children){let n=AN.copy(r.matrixWorld).invert(),i=eN.copy(e.ray).applyMatrix4(n),a=o.matrixWorld;i.applyMatrix4(a);let l=$T;l.set(i.origin,i.direction),l.near=e.near,l.far=e.far,l.intersectObject(o,!1).length>0&&A.push({object:o})}}var ih=new oN,sc=class extends ms(rN){constructor(A,t){super();this.objectType="Scene";this.backupFog=new nN(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 qA(1,1,1,1);this.entityByUuid={};this.ambientLight=new tN(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.ambientLight.layers.enable(3),this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.postprocessing=A.postprocessing,this.objectsData=A.objects.map(({data:r,id:n})=>({data:r,id:n})),this.init(A,t),this.matrixAutoUpdate=!1}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=rh(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=th(this),this.needsNormalDirty=!1),this._needsNormal}find(A){if(A===""||A===void 0)return;let t=this.entityByUuid[A];return t===void 0?this.getObjectByProperty("uuid",A):t}get enableFog(){return this.fog!==null}set enableFog(A){this.fog=A===!0?this.backupFog:null}init(A,t){if(this.createChildrenObjects(A.objects,this,t),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(KA(A.backgroundColor,t)),this.updateFog(A.fog,t),this.updateAmbientLight(A.environment.ambientLight,t),this.activeCamera=this.personalCamera,A.publish.playCamera!==null){let r=this.find(A.publish.playCamera);r instanceof kt&&this.switchActiveCamera(r)}this.traverse(r=>{at(r)&&r.recomputeBoolean()}),setTimeout(()=>this.updateCloner())}clearScene(){this.traverseEntity(A=>{oh(A)});for(let A of this.children)De(A)&&A.removeFromParent()}resetAfterClear(A,t){this.init(A,t)}createPersonalCamera(){let A=kt.createFromState(sc.PERSONAL_CAMERA_ID,{...ns.defaultData,name:"Personal Camera"});return A.objectHelper.visible=!1,delete A.isEntity,this.registerObjectCreatedInLegacy(A),A}raycast(A){let t=[],r=n=>{for(let i of n.children)De(i)&&!i.raycastLock&&i.visible&&((st(i)||fs(i)&&this.enableHelpers&&i.objectHelper.visible)&&(A.intersectObject(i,!1,t),nh(i,A,t)),r(i))};return r(this),t}traverseEntity(A){for(let t of this.children)De(t)&&t.traverseEntity(A)}traverseVisibleEntity(A){for(let t of this.children)De(t)&&t.visible&&t.traverseVisibleEntity(A)}updateFog(A,t){this.enableFog=A.enabled,this.fogUseBGColor=A.useBackgroundColor,A.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=KA(A.color,t),this.backupFog.near=A.near,this.backupFog.far=A.far}dispose(){this.clearScene()}updateAmbientLight(A,t){Ip(this.ambientLight,A,t),A.groundColor!==void 0&&(this.ambientLight.groundColor=KA(A.groundColor,t)),A.enabled!==void 0&&(this.ambientLight.visible=A.enabled)}switchActiveCamera(A){this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=A,A.objectHelper.visible=!1}setBackgroundColor(A){this.bgColor=A,this.fogUseBGColor===!0&&(this.backupFog.color=A)}createChildrenObjects(A,t,r){for(let n of A)this.createChildObject(n.id,n.data,n.children,t,r)}updateObjectCloner(A){if(A.parameters.type==="toObject"){let t=A.parameters.toObject.object;if(!t)return;let r=this.find(t);if(r){let n,i=this.objectsData.find(a=>a.id===r.uuid);if(i&&(n=i.data),r.objectType==="SubdivObject"){let a=r;n&&!a.subdivPointer&&a.buildFromStore(n.geometry)}A.setObjectForSample(r),A.update()}}}updateCloner(){this.traverse(A=>{let t=A;t.cloner&&(t.cloner._updateCount(0),t.cloner.update(),this.updateObjectCloner(t.cloner))})}registerObjectCreatedInLegacy(A){this.entityByUuid[A.uuid]=A}unregisterObject(A){delete this.entityByUuid[A.uuid];for(let t of A.children)this.unregisterObject(t)}createChildObject(A,t,r,n,i){let a=_m(A,t,i);return a&&(this.entityByUuid[A]=a,n.add(a),at(n)&&st(a)&&(a.prevBooleanObjectParent=n),this.createChildrenObjects(r,a,i)),"cloner"in a&&(a.cloner?._updateCount(0),a.cloner?.update()),a}getCenter(A){let t=[];for(let n=0,i=A.length;n<i;++n){let{id:a,recursive:l}=A[n],u=this.find(a),s=l?u.recursiveBBox:u.singleBBox;t.push(...s.vertices)}let r=new iN;return r.setFromPoints(t),r.getCenter(ih),ih}copyMatrixWorld(A,t){if(A===null){t.identity();return}let r=this.find(A);r?t.copy(r.matrixWorld):t.identity()}copyParentMatrixWorld(A,t){if(A===null){t.identity();return}let r=this.find(A)?.parent;r?t.copy(r.matrixWorld):t.identity()}traverseMaterial(A){this.traverseEntity(t=>{if(t instanceof FA)if(Array.isArray(t.material))for(let r=0;r<t.material.length;r++)t.material[r]instanceof Pe&&A(t.material[r]);else t.material instanceof Pe&&A(t.material)})}updateCanvasSize(A,t){this.activeCamera.setViewplaneSize(A,t);let r,n;A>=t?(r=t/A,n=1):(r=1,n=A/t),this.traverseMaterial(i=>{i.getLayersOfType("transmission").forEach(l=>{l.uniforms[`f${l.id}_aspectRatio`].value.x=r,l.uniforms[`f${l.id}_aspectRatio`].value.y=n})})}},ni=sc;ni.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var ch=la(sh());var ah=new Map;function lh(o){if(typeof o=="string")return o;let e=ah.get(o);return e||(e={url:URL.createObjectURL(new Blob([o]))},ah.set(o,e)),e.url}var Zo=class{constructor({src:e,volume:A,delay:t,loop:r}){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 n;typeof e=="string"?n={src:e}:n={src:lh(e),format:"wav"},this.sound=new ch.Howl(n),this.sound.on("end",this.onEnd),this.src=e,A!==void 0&&(this.volume=A),t!==void 0&&(this.delay=t),r!==void 0&&(this.loop=r)}get status(){return this._status}get volume(){return this._volume}set volume(e){this._volume=e,this.sound.volume(e)}get loop(){return this._loop}set loop(e){this._loop=e,this.loopsRemaining=e}replay(){this.clearDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.clearDelay()},this.delay)}fade(e,A=1e3){e?(this.sound.volume(this._volume),this.clearFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,A),this.clearFade()},e)):this.sound.fade(this._volume,0,A)}on(e,A,t){this.sound.on(e,A,t)}off(e,A,t){this.sound.off(e,A,t)}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(e=!1){this.off(),this.stop(),this.clearFade(),this.clearDelay()}};import{Box2 as sN,Vector2 as Br,Path as uh,Shape as aN,ShapeUtils as lN,Color as cN}from"three";var oa=class{constructor(){this.type="ShapePath";this.color=new cN;this.subPaths=[];this.currentPath=null}moveTo(e,A){return this.currentPath=new uh,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,A),this}lineTo(e,A){return this.currentPath?.lineTo(e,A),this}quadraticCurveTo(e,A,t,r){return this.currentPath?.quadraticCurveTo(e,A,t,r),this}bezierCurveTo(e,A,t,r,n,i){return this.currentPath?.bezierCurveTo(e,A,t,r,n,i),this}splineThru(e){return this.currentPath?.splineThru(e),this}toShapes(){let A={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},t={loc:A.ORIGIN,t:0};function r(m,h,x,y){let b=m.x,w=h.x,v=x.x,I=y.x,S=m.y,g=h.y,P=x.y,N=y.y,O=(I-v)*(S-P)-(N-P)*(b-v),T=(w-b)*(S-P)-(g-S)*(b-v),L=(N-P)*(w-b)-(I-v)*(g-S),B=O/L,k=T/L;if(L===0&&O!==0||B<=0||B>=1||k<0||k>1)return null;if(O===0&&L===0){for(let X=0;X<2;X++)if(n(X===0?x:y,m,h),t.loc===A.ORIGIN){let eA=X===0?x:y;return{x:eA.x,y:eA.y,t:t.t}}else if(t.loc===A.BETWEEN){let eA=+(b+t.t*(w-b)).toPrecision(10),nA=+(S+t.t*(g-S)).toPrecision(10);return{x:eA,y:nA,t:t.t}}return null}else{for(let nA=0;nA<2;nA++)if(n(nA===0?x:y,m,h),t.loc===A.ORIGIN){let U=nA===0?x:y;return{x:U.x,y:U.y,t:t.t}}let X=+(b+B*(w-b)).toPrecision(10),eA=+(S+B*(g-S)).toPrecision(10);return{x:X,y:eA,t:B}}}function n(m,h,x){let y=x.x-h.x,b=x.y-h.y,w=m.x-h.x,v=m.y-h.y,I=y*v-w*b;if(m.x===h.x&&m.y===h.y){t.loc=A.ORIGIN,t.t=0;return}if(m.x===x.x&&m.y===x.y){t.loc=A.DESTINATION,t.t=1;return}if(I<-Number.EPSILON){t.loc=A.LEFT;return}if(I>Number.EPSILON){t.loc=A.RIGHT;return}if(y*w<0||b*v<0){t.loc=A.BEHIND;return}if(Math.sqrt(y*y+b*b)<Math.sqrt(w*w+v*v)){t.loc=A.BEYOND;return}let S;y!==0?S=w/y:S=v/b,t.loc=A.BETWEEN,t.t=S}function i(m,h){let x=[],y=[];for(let b=1;b<m.length;b++){let w=m[b-1],v=m[b];for(let I=1;I<h.length;I++){let S=h[I-1],g=h[I],P=r(w,v,S,g);P!==null&&x.find(N=>N.t<=P.t+Number.EPSILON&&N.t>=P.t-Number.EPSILON)===void 0&&(x.push(P),y.push(new Br(P.x,P.y)))}}return y}function a(m,h,x){let y=new Br;h.getCenter(y);let b=[];return x.forEach(w=>{w.boundingBox.containsPoint(y)&&i(m,w.points).forEach(I=>{b.push({identifier:w.identifier,isCW:w.isCW,point:I})})}),b.sort((w,v)=>w.point.x-v.point.x),b}function l(m,h,x,y,b){(b==null||b==="")&&(b="nonzero");let w=new Br;m.boundingBox.getCenter(w);let v=[new Br(x,w.y),new Br(y,w.y)],I=a(v,m.boundingBox,h);I.sort((T,L)=>T.point.x-L.point.x);let S=[],g=[];I.forEach(T=>{T.identifier===m.identifier?S.push(T):g.push(T)});let P=S[0].point.x,N=[],O=0;for(;O<g.length&&g[O].point.x<P;)N.length>0&&N[N.length-1]===g[O].identifier?N.pop():N.push(g[O].identifier),O++;if(N.push(m.identifier),b==="evenodd"){let T=N.length%2===0,L=N[N.length-2];return{identifier:m.identifier,isHole:T,for:L}}else if(b==="nonzero"){let T=!0,L=null,B=null;for(let k=0;k<N.length;k++){let X=N[k];h[X]&&(T?(B=h[X].isCW,T=!1,L=X):B!==h[X].isCW&&(B=h[X].isCW,T=!0))}return{identifier:m.identifier,isHole:T,for:L}}else console.warn('fill-rule: "'+b+'" is currently not implemented.')}let u=0,s=999999999,c=-999999999,d=[];this.subPaths.forEach(m=>{let h=m.getPoints(),x=-999999999,y=999999999,b=-999999999,w=999999999;for(let v=0;v<h.length;v++){let I=h[v];I.y>x&&(x=I.y),I.y<y&&(y=I.y),I.x>b&&(b=I.x),I.x<w&&(w=I.x)}c<=b&&(c=b+1),s>=w&&(s=w-1),h.length&&d.push({curves:m.curves,points:h,isCW:lN.isClockWise(h),identifier:u++,boundingBox:new sN(new Br(w,y),new Br(b,x))})});let p=d.map(m=>l(m,d,s,c,this.userData?.style.fillRule)),f=[];return d.forEach(m=>{let h=p[m.identifier];if(h&&!h.isHole){let x=new aN;x.curves=m.curves,p.filter(b=>b?.isHole&&b.for===m.identifier).forEach(b=>{if(b){let w=d[b.identifier],v=new uh;v.curves=w.curves,x.holes.push(v)}}),f.push(x)}}),f}};import{CubicBezierCurve as fN,LineCurve as mN,QuadraticBezierCurve as hN}from"three";import{DRACOLoader as uN}from"three/examples/jsm/loaders/DRACOLoader.js";var pr;function dN(){return pr||(pr=new uN,pr.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),pr.decoderPending}async function pN(o){if(pr){let e={attributeIDs:pr.defaultAttributeIDs,attributeTypes:pr.defaultAttributeTypes,useUniqueIDs:!1},A;try{A=await pr.decodeGeometry(new Int8Array(o).buffer,e)}catch(t){console.error(t)}if(A)return{index:A.index?{array:A.index.array}:void 0,attributes:Object.entries(A.attributes).map(([t,r])=>({name:t,itemSize:r.itemSize,array:r.array}))}}return null}async function dh(o,e){let[A,t]=ma(Pi.deserialize(new Uint8Array(o)));yp(A);let r=[];A.scene.objects.traverse((n,i)=>{i.type==="Mesh"&&i.geometry.type==="NonParametricGeometry"&&i.geometry.data.draco!==void 0&&r.push(i)}),r.length&&await dN();for(let n of r){let i=await pN(me(n.geometry.data.draco));if(i){i.index&&(n.geometry.data.index={array:i.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let a={};i.attributes.forEach(({name:l,array:u,itemSize:s})=>{a[l]={array:u,itemSize:s,type:"Float32Array",normalized:!1}}),n.geometry.data.attributes=a,n.geometry.data.draco=void 0}}return e&&e(A),t.result().data}function gN(o,e){return e.state.glyphIndex===o||e.state.fina===o||e.state.medi===o||e.state.init===o}var na=class{constructor(e,A){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=e.isUserFont??!1,this._loadingPromise=nc(e).then(t=>{t&&(this._arrayBuffer=t.arr,this._url=t.url,this.font=t.font,this._intercepted=t.intercepted,this._isLoaded=!0,A())})}update(e,A){this._isLoaded=!1,this._isUserFont=e.isUserFont??!1,this._loadingPromise=nc(e).then(t=>{t&&(this._arrayBuffer=t.arr,this._url=t.url,this.font=t.font,this._intercepted=t.intercepted,this._isLoaded=!0,A())})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}async reverseLigaturesTable(e,A,t){let{Bidi:r}=await ri,n=new r,i=c=>e.charToGlyphIndex(c.char);n.registerModifier("glyphIndex",null,i),n.applyFeatures(e,e.defaultRenderOptions.features),n.getTextGlyphs(A);let a=n.tokenizer.tokens,l=[],u=0,s=t.length===a.length;for(let c=0;c<t.length;c++){let d=t[c].index,p=String.fromCharCode(t[c].unicode),f=a[u];if(gN(d,f)||s)l.push({char:p,index:d,replacements:[f.state.glyphIndex],replacementChars:[f.char]}),u++;else{let m=f.char,h="",x=[f.state.glyphIndex],y=[],b=!1;for(;!b;)u++,h=A.charAt(u),m+=h,x.push(e.charToGlyphIndex(h)),y=e.stringToGlyphs(m),y.length===1&&y[0].index===d&&(b=!0),u>A.length&&(b=!0);l.push({char:p,index:d,replacements:x,replacementChars:Array.from(m)}),u++}}return l}async generateShapes(e,A){await this._loadingPromise;let t=this.font,r=A.fontSize/this.unitsPerEm,n=A.fontSize*A.lineHeight,i=e.map(y=>this.getTextWidth(y,A)),a=A.width,l=this.getCharWidth(`
|
|
1335
|
-
`,A),u=A.horizontalAlign===1?l:0,s=this.computeSpaceWidthForLine(e,0,A),c=this.getLineInitialOffsetX(i[0],a,A.horizontalAlign,e[0],l),d=this.getLineInitialOffsetY(n,e.length,A.height,r,A.verticalAlign),p=[],f=e.map(
|
|
1336
|
-
`:
|
|
1337
|
-
`)L=u;else if(P===" ")L=s;else{let B=this.createPath(
|
|
1338
|
-
`)>=0&&(e-=n),t===3?A*.5-e*.5:t===2?A-e:0}getLineInitialOffsetY(e,A,t,r,n){let i=A*e,a=Math.abs(this.ascender-this.descender)*r,l=e-a,u=-this.ascender*r-l/2;return n===3?-(t-i-u):n===2?-(t*.5-i*.5-u):u}createPath(e,A,t,r,n){let i=e.getPath(t,-r,n.fontSize,{kerning:!1,letterSpacing:n.letterSpacing});if(!i){console.error('THREE.Font: character "'+e+'" does not exists in font family '+this.familyName+".");return}let a=new oa,l=(e.advanceWidth??1)*A;if(e)for(let u of i.commands){let s=a.currentPath?.currentPoint;if(!(s&&u.type!=="Z"&&s.x===u.x&&-s.y===u.y))switch(u.type){case"M":a.moveTo(u.x,-u.y);break;case"L":a.lineTo(u.x,-u.y);break;case"Q":a.quadraticCurveTo(u.x1,-u.y1,u.x,-u.y);break;case"C":a.bezierCurveTo(u.x1,-u.y1,u.x2,-u.y2,u.x,-u.y);break}}return a.subPaths.forEach(u=>{let s=yN(u.curves);s!==void 0&&u.currentPoint.distanceTo(s)>0&&u.lineTo(s.x,s.y)}),{offsetX:l+n.fontSize*n.letterSpacing,path:a}}getCharWidth(e,A){return this.font?.getAdvanceWidth(e,A.fontSize,{kerning:!0,letterSpacing:A.letterSpacing})??0}getTextWidth(e,A){return this.font?.getAdvanceWidth(e,A.fontSize,{kerning:!0,letterSpacing:A.letterSpacing})??0}computeSpaceWidthForLine(e,A,t){let r=this.getCharWidth(" ",t),n=e[A];if(n){let i=this.countSpaces(n.trimEnd());if(t.horizontalAlign===4&&A<e.length-1&&i){let a=t.width,l=this.getTextWidth(n,t);return(a-(l-i*r))/i}}return r}countSpaces(e){return(e.match(/ /g)||[]).length}};function yN(o){if(o.length){let e=o[0];if(e instanceof mN)return e.v1;if(e instanceof fN||e instanceof hN)return e.v0}}var ii=class{constructor(e,A={}){this.deletedMaterial=new Mr(ue.defaultTwoLayerData("phong"),this);this.deletedImage=new vt(us.emptyImage);this.deletedVideo=new vt(Ur.defaultVideo);this.materials={};this.images={};this.videos={};this.colors={};this.audios={};this.fonts={};this.penumbraSize=[];this.onImageLoad=()=>{this._onImageLoad&&this._onImageLoad()};this.onFontLoad=()=>{this._onFontLoad&&this._onFontLoad()};if(A.images)for(let[t,r]of Object.entries(A.images))this.addImage(t,r);if(A.videos)for(let[t,r]of Object.entries(A.videos))this.addVideo(t,r);if(A.audios)for(let[t,r]of Object.entries(A.audios))this.addAudio(t,r.data);this.reset(e)}setOnImageLoad(e){this._onImageLoad=e}setOnFontLoad(e){this._onFontLoad=e}reset(e){for(let[A,t]of Object.entries(e.images))this.addImage(A,t);for(let[A,t]of Object.entries(e.videos))this.addVideo(A,t);for(let[A,t]of Object.entries(e.colors))this.addColor(A,t);for(let[A,t]of Object.entries(e.materials))this.addMaterial(A,new Mr(t,this));for(let[A,t]of Object.entries(e.audios))this.addAudio(A,t.data);for(let[A,t]of Object.entries(e.fonts))this.addFont(A,t);this.penumbraSize=e.penumbraSize}addMaterial(e,A){A.uuid=e,this.materials[e]=A}deleteMaterial(e){this.materials[e]&&(this.materials[e].dispose(),delete this.materials[e])}getMaterial(e){let A=this.materials[e];return A}getMaterialOrDeletedPlaceholder(e){return this.materials[e]??this.deletedMaterial}material(e){return typeof e=="string"?this.getMaterialOrDeletedPlaceholder(e):new Pe(e,this)}getMaterials(){return this.materials}addImage(e,A){return this.images[e]?(this.images[e].updateSrc(A.data),!0):(this.images[e]=new vt(A,this.onImageLoad),!1)}deleteImage(e){this.images[e]&&delete this.images[e]}getDefaultImage(){return this.images.image_0}getImage(e){return this.images[e]??this.deletedImage}image(e){return typeof e=="string"?this.getImage(e):new Or(e,this.onImageLoad)}addVideo(e,A){return this.videos[e]?(this.videos[e].updateSrc(A.data),!0):(this.videos[e]=new vt(A,this.onImageLoad),!1)}deleteVideo(e){this.videos[e]&&delete this.videos[e]}getVideo(e){return this.videos[e]??this.deletedVideo}video(e){return typeof e=="string"?this.getVideo(e):new Or(e,this.onImageLoad)}addColor(e,A){return this.colors[e]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(e),"a"in A?this.colors[e].setRGBA(A.r,A.g,A.b,A.a):this.colors[e].setRGBA(A.r,A.g,A.b,1),!0):("a"in A?this.colors[e]=new cr(A.r,A.g,A.b,A.a):this.colors[e]=new cr(A.r,A.g,A.b,1),!1)}updateColor(e,A){if(this.colors[e]){this.onColorOrImageUpdate&&this.onColorOrImageUpdate(e);let t=this.colors[e];return this.colors[e].r=A.r??t.r,this.colors[e].g=A.g??t.g,this.colors[e].b=A.b??t.b,this.colors[e].a=A.a??t.a,!0}return!1}deleteColor(e){this.colors[e]&&delete this.colors[e]}getColor(e){return this.colors[e]}color(e){let A;if(typeof e=="string"){let t=this.getColor(e);t?A=t:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),A=new qA(0,0,0,0))}else return"a"in e?new qA(e.r,e.g,e.b,e.a):new qA(e.r,e.g,e.b,1);return A}addAudio(e,A){this.audios[e]=A}getAudio(e){let A=this.audios[e];if(A instanceof Zo)return A;{let t=new Zo({src:A});return this.audios[e]=t,t}}deleteAudio(e){this.audios[e]&&delete this.audios[e]}addFont(e,A){this.fonts[e]=new na(A,this.onFontLoad)}getFont(e){return this.fonts[e]}deleteFont(e){this.fonts[e]&&delete this.fonts[e]}dispose(){Object.keys(this.materials).forEach(A=>this.deleteMaterial(A)),this._onImageLoad=void 0,this._onFontLoad=void 0,Object.values(this.audios).forEach(A=>{A instanceof Zo&&A.dispose()}),this.audios={}}},wQ=new ii(ss.emptyData());import{Mesh as IQ}from"three";import{mergeBufferGeometries as CQ}from"three/examples/jsm/utils/BufferGeometryUtils.js";function ph(o){let e;if(!!o.index)for(let A=0;A<o.index.array.length;A+=3)e=o.index.array[A],o.index.array[A]=o.index.array[A+2],o.index.array[A+2]=e}import{Color as fh,ShaderLib as xN}from"three";function mh(o){let e=new Set;return o.traverse(A=>{if(st(A))if(GA(A.material))A.material.forEach(t=>{let r=t;e.has(r)||e.add(r)});else{let t=A.material;e.has(t)||e.add(t)}}),e.forEach(A=>{if(A instanceof Array)return;let t=A.onBeforeCompile.bind(A);if(vN(A)){Object.assign(A,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new fh,specularColor:new fh});let r=0;A.onBeforeCompile=(n,i)=>{t&&t(n,i),n.uniforms=Object.assign({},xN.physical.uniforms,n.uniforms),A.getLayersOfType("transmission").forEach(a=>{if(n.uniforms.transmissionSamplerMap.value){let l=a.color;l&&(l.transmissionSamplerMap.value=n.uniforms.transmissionSamplerMap.value,l.transmissionSamplerSize.value=n.uniforms.transmissionSamplerSize.value)}else r++,r<2&&(A.needsUpdate=!0)})}}else bN(A)||(A.onBeforeCompile=(r,n)=>{t&&t(r,n),A.transparent=!1})}),o}function vN(o){return o.getLayersOfType("transmission").length>0}function bN(o){let e=0;return o.layers.forEach(A=>{if(A.type!=="light"&&A.type!=="fresnel"){let t=A.uniforms["f"+A.id+"_alpha"];t&&(e+=(1-e)*t.value)}}),e<1}function hh(o){return o.traverse(e=>{if(e.type==="Camera"){let A=e;A.type=A.cameraType}}),o}function gh(o){let e=[],A=(t,r=0)=>{let n=r>0?t+r:t;return e.includes(n)?A(t,r+1):n};return o.traverse(t=>{if(e.includes(t.name)){let r=t.name,n=A(t.name);if(t.name=n,t.isMesh){let i=t;i.material instanceof Array?i.material.forEach(a=>{a.name=a.name.replace(r,n)}):i.material.isAsset||(i.material.name=i.material.name.replace(r,n))}}e.push(t.name)}),o}import{mergeBufferGeometries as wN}from"three/examples/jsm/utils/BufferGeometryUtils.js";function yh(o){let e=[];return o.traverse(A=>{A instanceof Gt&&e.push(A)}),e.forEach(A=>{let t=A.object,n=A.children.map(a=>{a.updateMatrix();let l=a.geometry.clone().applyMatrix4(a.matrix);return a.matrix.determinant()<0&&ph(l),l}),i=wN(A.parameters.hideBase?n:[t instanceof FA?t.geometry:[],...n]);t instanceof FA&&(t.geometry=i),t.remove(A),t.cloner=void 0}),o}function xh(o){return o.traverse(e=>{e.matrixAutoUpdate=!0}),o}function vh(o){Object.values(o.shared.materials).forEach(e=>{ac(e)}),o.scene.objects.traverse((e,A)=>{"material"in A?ac(A.material):"materials"in A&&A.materials.forEach(t=>{ac(t)})})}function ac(o){if(typeof o=="string")return;let e=[];o.layers.forEach((A,t)=>{A.type==="outline"&&e.push(t)}),e.reverse().forEach(A=>{o.layers.delete(A)}),e.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var bh="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",lc=class extends TN{load(e,A,t,r=console.error){let n=new SN(this.manager);n.setPath(this.path),n.setResponseType("arraybuffer"),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),e.endsWith(".spline")?console.warn(bh+" The .spline files are only meant to be used by the Editor."):e.endsWith(".splinecode")||console.warn(bh),n.load(e,async i=>{try{if(typeof i=="string")throw new Error("The .spline file is not binary!");let a=await this.parse(i);A(a)}catch(a){r(a)}},t,r)}async parse(e){let A=await dh(e,vh);Hm(A)&&await jm();let t=new ii(A.shared);Object.values(t.getMaterials()).forEach(i=>Object.assign(i,{isAsset:!0}));let r=new ni(A.scene,t);r.remove(r.personalCamera),A.scene.environment.ambientLight.enabled||r.remove(r.ambientLight);let n=A.scene.publish.playCamera;if(n){let i=r.find(n);i&&Np(i)&&Object.assign(i,{makeDefault:!0})}return r=yh(r),r=mh(r),r=hh(r),r=gh(r),r=xh(r),r}};export{lc as default};
|
|
1334
|
+
}`,[ae.simplex,A,r,i])}}();import{Matrix3 as U1}from"three";function dm(o,e,A){o.setUvTransform(A[0],A[1],e[0],e[1],0,0,0)}var Ys=class extends jo{constructor(A,t){super(new U1);this.repeat=A;this.offset=t;dm(this.value,A,t)}updateMatrix(){dm(this.value,this.repeat,this.offset)}};var xt=class{constructor(e,A,t,r){this.id=e;this.uuid=A;this.data=t;this.uniforms={};for(let n in r)this.uniforms[`f${this.id}_${n}`]=r[n];for(let n in t)Ac(n,this,t)}get type(){return this.data.type}static create(e,A,t,r){if(t.type==="light")return vt.createLigherLayer(e,A,t,r);if(t.type==="texture"||t.type==="video"){let n=t.type==="texture"?r.image(t.texture.image):r.video(t.texture.video),i=new Ai(n,t.texture.wrapping),a=new Qs(n),l=new Ys(t.texture.repeat,t.texture.offset),u=new J(t.crop?1:0),s=new gA(t.projection??0),c=new gA(["x","y","z"].indexOf(t.axis)??0),d=new gA(t.side??0),p=new JA(t.size?new Cr(t.size[0],t.size[1]):new Cr(100,100)),f=new J(t.alpha??1),m=new gA(t.mode??0),h=new Kn(i,a,u,s,c,d,p,l,f,m),g=new wA(h.calpha,"f");return new qA(e,A,t,{texture:i,textureSize:a,crop:u,projection:s,axis:c,side:d,size:p,mat:l,alpha:f,mode:m},h,m,g)}else if(t.type==="matcap"){let n=r.image(t.texture.image),i=new Ai(n,t.texture.wrapping),a=new J(t.alpha??1),l=new gA(t.mode??0),u=new $n(i,a,l),s=new wA(u.calpha,"f");return new qA(e,A,t,{texture:i,alpha:a,mode:l},u,l,s)}else if(t.type==="displace")if(t.displacementType==="noise"){let n=new ee(new gt(...t.offset)),i=new J(t.scale??10),a=new J(t.intensity??8),l=new J(t.movement??1),u=new gA(t.noiseType??0),s=new Yn(a,l,n,i,u);return new ti(e,A,t,{offset:n,scale:i,intensity:a,movement:l,noiseType:u},s)}else throw new Error;else return q1(e,A,t,r)}updateByOp(e,A,t){let r=e;if(r.path[0]===void 0){if(r.type===0)return"type"in r.props||"category"in r.props?(t.scene?.markNeedsUpdateRendererDirty(),!0):um(r.props,t.shared,this,A)}else if(r.path[0]==="texture")return"texture"in A||"video"in A?$l(r.props,t.shared,this):!0;return!1}dispose(){if(H1(this)){let e=this.uniforms[`f${this.id}_texture`];if(!e)return!1;let A=e;A instanceof ze||A.image.dispose()}}hasValueByKey(e){return this.uniforms[e]!==void 0}hasValue(e){return this.hasValueByKey(`f${this.id}_${e}`)}setValue(e,A){let t=`f${this.id}_${e}`;this.hasValueByKey(t)&&A!==void 0&&(this.uniforms[t].value=A)}getNode(e){let A=`f${this.id}_${e}`;if(this.hasValueByKey(A))return this.uniforms[A]}getValue(e){let A=`f${this.id}_${e}`;if(this.hasValueByKey(A))return this.uniforms[A].value}getName(e){let t=/f\d+_(.*)/.exec(e);if(t&&t.length>1)return t[1];console.log(`Layer.getName: error ${e}`)}getNames(){let e=[];for(let A in this.uniforms){let t=this.getName(A);t&&e.push(t)}return e}},qA=class extends xt{constructor(A,t,r,n,i,a,l){super(A,t,r,n);this.color=i;this.mode=a;this.alpha=l}},ti=class extends xt{constructor(A,t,r,n,i){super(A,t,r,n);this.position=i}},vt=class extends xt{constructor(A,t,r,n,i){super(A,t,r,i);this.node=n}static createLigherLayer(A,t,r,n){let i,a=new J(r.alpha),l=new gA(r.mode),u;if(!r.visible)i=new Nr,u={};else if(r.category==="lambert"){i=new Rn;let s=new TA(n.color(r.emissive)??0);u={emissive:s},i.emissive=s}else if(r.category==="toon"){i=new Fn;let s=new J(r.shininess??30),c=new TA(n.color(r.specular)??1118481);u={shininess:s,specular:c},i.shininess=s,i.specular=c}else if(r.category==="physical"){i=new Vn;let s=new J(r.roughness??.3),c=new J(r.metalness??0),d=new J(r.reflectivity??.5);u={roughness:s,metalness:c,reflectivity:d},i.roughness=s,i.metalness=c,i.reflectivity=d}else{i=new Hs;let s=new J(r.shininess??30),c=new TA(n.color(r.specular)??1118481);u={shininess:s,specular:c},i.shininess=s,i.specular=c}return i.alpha=new J(1),i.shadingAlpha=a,i.shadingBlend=l,u.alpha=i.shadingAlpha,u.mode=i.shadingBlend,new vt(A,t,r,i,u)}get category(){return this.node.category}};function H1(o){let e=o instanceof xt?o.type:o;return e==="texture"||e==="video"||e==="displace_map"||e==="matcap"}function W1(o,e,A,t){switch(o.type){case"color":{let r=new TA(t.color??5855577),n=new J(t.alpha??1),i=new wA("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");i.keywords.alpha=n;let a=new gA(t.mode??0);return r.alpha=n,new qA(e,A,o,{color:r,alpha:n,mode:a},r,a,i)}case"fresnel":{let r=new TA(t.color??16777215),n=new J(t.bias??.1),i=new J(t.scale??1),a=new J(t.intensity??2),l=new J(t.factor??1),u=new J(t.alpha??1),s=new gA(t.mode??0),c=new kn(r,n,i,a,l,u,s),d=new wA(c.calpha,"f");return new qA(e,A,o,{color:r,bias:n,scale:i,intensity:a,factor:l,alpha:u,mode:s},c,s,d)}case"rainbow":{let r=new J(t.filmThickness??30),n=new J(t.movement??0),i=new ee(t.wavelengths??new gt(0,0,0)),a=new J(t.noiseStrength??0),l=new J(t.noiseScale??1),u=new ee(t.offset??new gt(0,0,0)),s=new J(t.alpha??1),c=new Un(r,n,i,a,l,u,s),d=new wA(c.calpha,"f"),p=new gA(t.mode??0);return new qA(e,A,o,{filmThickness:r,movement:n,wavelengths:i,noiseStrength:a,noiseScale:l,offset:u,alpha:s,mode:p},c,p,d)}case"transmission":{let r=new J(t.thickness??10),n=new J(t.ior??1.5),i=new J(t.roughness??.5),a=te.transmissionSize,l=te.transmissionRenderTarget,u=te.transmissionRenderTargetDepth,s=window.innerWidth,c=window.innerHeight,d=s>=c?new JA(c/s,1):new JA(1,s/c),p=new J(t.alpha??1),f=new Wn(r,n,i,a,l,u,d,p),m=new wA(f.calpha,"f"),h=new gA(t.mode??0);return new qA(e,A,o,{thickness:r,ior:n,roughness:i,aspectRatio:d,alpha:p,mode:h},f,h,m)}case"toon":{let r=new gA(t.positioning??0),n;t.colors?n=new $e(t.colors.length,t.colors):(n=new $e(10,new ko(0,0,0,1)),n.value[1]=new ko(1,1,1,1));let i;t.steps?i=new _e(t.steps.length,t.steps):(i=new _e(10,1),i.value[0]=0);let a=new ee(t.source??new gt(0,0,0)),l=new ar(t.isWorldSpace??!0),u=new J(t.noiseStrength??0),s=new J(t.noiseScale??1),c=new je(t.shadowColor),d=new ee(t.offset??new gt(0,0,0)),p=new J(t.alpha??1),f=new ei(r,n,i,a,l,u,s,c,d,p),m=new wA(f.calpha,"f"),h=new gA(t.mode??0);return new qA(e,A,o,{positioning:r,colors:n,steps:i,source:a,isWorldSpace:l,noiseStrength:u,noiseScale:s,shadowColor:c,offset:d,alpha:p,mode:h},f,h,m)}case"outline":{let r=new TA(t.outlineColor??16777215),n=new TA(t.contourColor??16777215),i=new J(t.outlineWidth??.1),a=new J(t.contourWidth??.1),l=new J(t.outlineThreshold??.1),u=new J(t.contourThreshold??.1),s=new J(t.outlineSmoothing??.1),c=new J(t.contourFrequency??.1),d=new ee(t.contourDirections??new gt(0,1,0)),p=new ar(t.positionalLines??!1),f=new ar(t.compensation??!0),m=te.normalRenderTarget,h=te.normalRenderTargetDepth,g=te.pixelRatioNode,x=te.resolution,w=new J(t.alpha??1),v=new Hn(r,n,i,a,l,u,s,c,d,p,f,x,m,h,g,w),b=new wA(v.calpha,"f"),N=new gA(t.mode??0);return new qA(e,A,o,{outlineColor:r,contourColor:n,outlineWidth:i,contourWidth:a,outlineThreshold:l,contourThreshold:u,outlineSmoothing:s,contourFrequency:c,contourDirection:d,positionalLines:p,compensation:f,alpha:w,mode:N},v,N,b)}case"depth":{let r=new gA(t.gradientType??0),n=new ar(t.smooth??!1),i=new J(t.near??50),a=new J(t.far??200),l=new J(t.isVector??1),u=new J(t.isWorldSpace??0),s=new ee(t.origin??new gt),c=new ee(t.direction??new gt),d;t.colors?d=new $e(t.colors.length,t.colors):(d=new $e(2,new ko(0,0,0,1)),d.value[1]=new ko(1,1,1,1));let p;t.steps?p=new _e(t.steps.length,t.steps):(p=new _e(2,1),p.value[0]=0);let f=new J(t.alpha??1),m=new gA(t.mode??0),h=new qn(r,n,i,a,l,u,s,c,d,p,f),g=new wA(h.calpha,"f");return new qA(e,A,o,{gradientType:r,smooth:n,near:i,far:a,isVector:l,isWorldSpace:u,origin:s,direction:c,colors:d,steps:p,alpha:f,mode:m},h,m,g)}case"noise":{let r=new J(t.scale??1),n=new ee(t.size??new gt(100,100,100)),i=new J(t.move??1),a=new JA(t.fA??new Cr(1.7,9.2)),l=new JA(t.fB??new Cr(8.3,2.8)),u=new JA(t.distortion??new Cr(1,1)),s=new je(t.colorA),c=new je(t.colorB),d=new je(t.colorC),p=new je(t.colorD),f=new J(t.alpha??1),m=new gA(t.mode??0),h=new gA(t.noiseType??0),g=new zn(r,n,i,a,l,u,s,c,d,p,f,h),x=new wA(g.calpha,"f");return new qA(e,A,o,{scale:r,size:n,move:i,fA:a,fB:l,distortion:u,colorA:s,colorB:c,colorC:d,colorD:p,alpha:f,mode:m,noiseType:h},g,m,x)}case"normal":{let r=new ee(t.cnormal??new gt(1,1,1)),n=new J(t.alpha??1),i=new gA(t.mode??0),a=new Jn(r,n),l=new wA("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return l.keywords.alpha=n,new qA(e,A,o,{cnormal:r,alpha:n,mode:i},a,i,l)}case"gradient":{let r=new gA(t.gradientType??0),n=new ar(t.smooth??!1),i;t.colors?i=new $e(t.colors.length,t.colors):(i=new $e(10,new ko(0,0,0,1)),i.value[1]=new ko(1,1,1,1));let a;t.steps?a=new _e(t.steps.length,t.steps):(a=new _e(10,1),a.value[0]=0);let l=new JA(t.offset??new Cr(0,0)),u=new JA(t.morph??new Cr(0,0)),s=new J(t.angle??0),c=new J(t.alpha??1),d=new gA(t.mode??0),p=new Xn(r,n,i,a,l,u,s,c),f=new wA(p.calpha,"f");return new qA(e,A,o,{gradientType:r,smooth:n,colors:i,steps:a,offset:l,morph:u,angle:s,alpha:c,mode:d},p,d,f)}default:{let r=new TA(1,0,0,1),n=new J(1),i=new wA("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");i.keywords.alpha=n;let a=new gA(0);return r.alpha=n,new qA(e,A,o,{color:r,alpha:n,mode:a},r,a,i)}}}function q1(o,e,A,t){let r=lm(A,t);return W1(A,o,e,r)}function Ac(o,e,A){if(A.type==="displace"&&(o==="intensity"||o==="visible")){let t=e.uniforms[`f${e.id}_intensity`];return t?(t.value=A.intensity*(A.visible?1:0),t):void 0}if(A.type!=="displace"&&(o==="alpha"||o==="visible")){let t=e.uniforms[`f${e.id}_alpha`];if(!t)return;if(t.value=A.alpha*(A.visible?1:0),A.type==="outline"&&o==="visible"){let r=e.uniforms[`f${e.id}_compensation`];r&&(r.value=A.compensation&&A.visible)}return t}}function pm(o,e){let A=0;for(let t of o.layers)if(t.data.type!=="displace"&&"alpha"in t.data&&t.data.type!=="light"&&t.data.type!=="fresnel"&&t.data.type!=="texture"&&t.data.type!=="matcap"&&t.data.type!=="rainbow"&&t.data.type!=="outline"){let r=t.data.visible?t.data.alpha:0;if(r==1&&t.data.type=="depth"||t.data.type=="gradient"){for(let n of t.data.colors)if(n[3]<1){r=n[3];break}}else if(r==1&&t.data.type=="noise"){let n=e.color(t.data.colorA).a,i=e.color(t.data.colorB).a,a=e.color(t.data.colorC).a,l=e.color(t.data.colorD).a,u=Math.min(n,Math.min(i,Math.min(a,l)));u<1&&(r=u)}A+=(1-A)*r}return A<1}var Ce=class extends Q1{constructor(){super(void 0);this.flatShading=!1;this.cacheKey="";this.fog=!0,this.dithering=!0,this.vertexColors=!0,this.transparent=!0}customProgramCacheKey(){return this.cacheKey}},rc=class extends Ce{constructor(A,t,r,n){super();this.flatShading=A;this.side=t;this.wireframe=r;this.root=n}updateAfterBuild(){let A=this.root;this.lights=A.lights,this.vertexShader=A.vertexShader,this.fragmentShader=A.fragmentShader,this.defines=A.defines,this.uniforms=A.uniforms,this.extensions=A.extensions,this.transparent=A.transparent,this.cacheKey=A.customProgramCacheKey()+"flat"+this.flatShading+this.side}onBeforeCompile(A,t){this.root.onBeforeCompile(A)}get data(){return this.root.data}get category(){return this.root.category}getFlavor(A,t,r){return this.root.getFlavor(A,t,r)}get layers(){return this.root.layers}get fragment(){return this.root.fragment}getLayersOfType(A){return this.root.getLayersOfType(A)}getLayerByUuid(A){return this.root.getLayerByUuid(A)}updateByOp(A,t,r){this.root.updateByOp(A,t,r)}},Uo=class extends Ce{constructor(A,t){super();this.data=A;this.layerIdGen=0;this.flavors=[];this.type="NodeMaterial";this.updaters=[],this.reset0(A,t)}get nodeMaterial(){return this}getFlavor(A,t,r){let n=r?6:(A?3:0)+t;if(n===0)return this;this.flavors===void 0&&(this.flavors=[]),n-=1;let i=this.flavors[n];return i===void 0&&(i=new rc(A,t,r,this),this.flavors[n]=i,i.flatShading=A,i.side=t,i.updateAfterBuild()),i}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.category}reset(A,t){this.data!==A&&this.reset0(A,t)}reset0(A,t){this.data=A;let r=A.layers??Pe.defaultTwoLayerData("phong").layers;this.layers=r.map(n=>xt.create(this.layerIdGen++,n.id,n.data,t.shared)),this.layers.reverse(),this.name=A.name??"Untitled Material",this.onUpdate(),this.transparent=pm(A,t.shared)}getLayersOfType(A){return this.layers.filter(t=>t.type===A)}getLayerByUuid(A){return this.layers.find(t=>t.uuid===A)}onUpdate(){this.cacheKey=this.computeCacheKey(),this.lightLayer=this.layers.find(A=>A instanceof vt),this.lightLayer===void 0&&(this.lightLayer=new vt(0,"",{...ue.defaultData("light","phong"),visible:!1},new Nr,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(A,t,r){if(this.data=t,this.transparent=pm(t,r.shared),A.path[0]==="layers"){this.data=t;let n=r.shared,i=A.path[1];if(i===void 0){if(this.layers.reverse(),A.type===4){let a=xt.create(this.layerIdGen++,A.id,A.data,r.shared);this.layers.splice(A.localIndex,0,a),r.scene?.markNeedsUpdateRendererDirty()}else if(A.type===5)this.layers.splice(A.localIndex,1)[0].dispose(),r.scene?.markNeedsUpdateRendererDirty();else if(A.type===6){let a=this.layers.findIndex(u=>u.uuid===A.id),l=this.layers[a];this.layers.splice(a,1),this.layers.splice(A.localIndex,0,l),r.scene?.markNeedsUpdateRendererDirty()}this.layers.reverse(),this.onUpdate()}else{let a=this.layers.find(l=>l.uuid===i);if(a){let l=t.layers.data(i);if(a.updateByOp({...A,path:A.path.slice(2)},l,r)){let s=xt.create(this.layerIdGen++,i,l,n);this.layers.splice(this.layers.findIndex(c=>c.uuid===i),1,s),this.onUpdate()}}}}else this.reset(t,r)}blendColors(){let A=this.layers.findIndex(r=>r instanceof qA),t=this.layers.findIndex(r=>r instanceof vt);if(A!==-1&&A<t){let r=this.layers[A].color;for(let n=A+1;n<t;++n){let i=this.layers[n];i instanceof qA&&(r=new Qn(r,i.color,i.alpha,i.mode))}this.fragment.color=r}else this.fragment.color=void 0}blendAfterColors(){let A=new wA("outgoingLight","f"),t=this.layers.findIndex(r=>r instanceof vt);if(this.layers.length>t+1){for(let r=t+1;r<this.layers.length;++r){let n=this.layers[r];n instanceof qA&&(A=new Qn(A,n.color,n.alpha,n.mode))}this.fragment.afterColor=A}else this.fragment.afterColor=void 0}blendPositions(){let A=this.layers.filter(t=>t instanceof ti);if(A.length>0){let t=A[0].position;for(let r=1;r<A.length;++r)A[r]&&(t=new be(t,A[r].position,be.ADD),t=new be(t,new J(.5).setReadonly(!0),be.MUL));this.fragment.position=t}else this.fragment.position=void 0}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}onBeforeCompile(A){this.build(),A.defines=this.defines,A.uniforms=this.uniforms,A.vertexShader=this.vertexShader,A.fragmentShader=this.fragmentShader,A.extensionDerivatives=this.extensions.derivatives===!0,A.extensionFragDepth=this.extensions.fragDepth===!0,A.extensionDrawBuffers=this.extensions.drawBuffers===!0,A.extensionShaderTextureLOD=this.extensions.shaderTextureLOD===!0}clampUniformsForPreview(A,t){let r=(n,i,a)=>Math.min(Math.max(n,i),a);for(let n of this.layers)if(n.type==="displace"){let i=r(n.uniforms[`f${n.id}_intensity`].value,A,t);n.uniforms[`f${n.id}_intensity`].value=i}}computeCacheKey(){let A="[";for(let{data:t}of this.data.layers)if(t.type==="light")A+=`"${t.visible?t.category.toUpperCase():"Basic"}"`;else{let r=(Jl[t.type]??[]).map(a=>t[a]),n=(_l[t.type]??[]).map(a=>t[a]?.length??0),i=[...r,...n];i.length?A+=`["${t.type}", "${i.join('","')}"],`:A+=`"${t.type}",`}return A=A.slice(0,-1)+"]",A}updateFrame(A){for(let t=0;t<this.updaters.length;++t)A.updateNode(this.updaters[t])}build(){let A=new Us;this.lights=this.lightLayer.data.visible,A.build(this.fragment,this.fragment),this.vertexShader=A.getCode("vertex"),this.fragmentShader=A.getCode("fragment"),this.defines=A.defines,this.uniforms=A.uniforms,this.extensions=A.extensions,this.updaters=A.updaters;for(let t of this.flavors)t&&t.updateAfterBuild();return this}dispose(){this.layers.forEach(A=>A.dispose()),super.dispose();for(let A of this.flavors)A&&A.dispose()}getHash(){let A="{";return A+='"fragment":'+this.fragment.getHash(),A+="}",A}};Object.defineProperties(Ce.prototype,{properties:{get:function(){return this.fragment.properties}}});var Ir=class extends Uo{};var ym=fa(fm());var mm=new Map;function hm(o){if(typeof o=="string")return o;let e=mm.get(o);return e||(e={url:URL.createObjectURL(new Blob([o]))},mm.set(o,e)),e.url}var Ho=class{constructor({src:e,volume:A,delay:t,loop:r}){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 n;typeof e=="string"?n={src:e}:n={src:hm(e),format:"wav"},this.sound=new ym.Howl(n),this.sound.on("end",this.onEnd),this.src=e,A!==void 0&&(this.volume=A),t!==void 0&&(this.delay=t),r!==void 0&&(this.loop=r)}get status(){return this._status}get volume(){return this._volume}set volume(e){this._volume=e,this.sound.volume(e)}get loop(){return this._loop}set loop(e){this._loop=e,this.loopsRemaining=e}replay(){this.clearDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.clearDelay()},this.delay)}fade(e,A=1e3){e?(this.sound.volume(this._volume),this.clearFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,A),this.clearFade()},e)):this.sound.fade(this._volume,0,A)}on(e,A,t){this.sound.on(e,A,t)}off(e,A,t){this.sound.off(e,A,t)}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(e=!1){this.off(),this.stop(),this.clearFade(),this.clearDelay()}};import{Box2 as Y1,Vector2 as Lr,Path as gm,Shape as X1,ShapeUtils as K1,Color as Z1}from"three";var Ks=class{constructor(){this.type="ShapePath";this.color=new Z1;this.subPaths=[];this.currentPath=null}moveTo(e,A){return this.currentPath=new gm,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,A),this}lineTo(e,A){return this.currentPath?.lineTo(e,A),this}quadraticCurveTo(e,A,t,r){return this.currentPath?.quadraticCurveTo(e,A,t,r),this}bezierCurveTo(e,A,t,r,n,i){return this.currentPath?.bezierCurveTo(e,A,t,r,n,i),this}splineThru(e){return this.currentPath?.splineThru(e),this}toShapes(){let A={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},t={loc:A.ORIGIN,t:0};function r(m,h,g,x){let w=m.x,v=h.x,b=g.x,N=x.x,S=m.y,y=h.y,P=g.y,O=x.y,C=(N-b)*(S-P)-(O-P)*(w-b),T=(v-w)*(S-P)-(y-S)*(w-b),L=(O-P)*(v-w)-(N-b)*(y-S),B=C/L,k=T/L;if(L===0&&C!==0||B<=0||B>=1||k<0||k>1)return null;if(C===0&&L===0){for(let X=0;X<2;X++)if(n(X===0?g:x,m,h),t.loc===A.ORIGIN){let eA=X===0?g:x;return{x:eA.x,y:eA.y,t:t.t}}else if(t.loc===A.BETWEEN){let eA=+(w+t.t*(v-w)).toPrecision(10),nA=+(S+t.t*(y-S)).toPrecision(10);return{x:eA,y:nA,t:t.t}}return null}else{for(let nA=0;nA<2;nA++)if(n(nA===0?g:x,m,h),t.loc===A.ORIGIN){let U=nA===0?g:x;return{x:U.x,y:U.y,t:t.t}}let X=+(w+B*(v-w)).toPrecision(10),eA=+(S+B*(y-S)).toPrecision(10);return{x:X,y:eA,t:B}}}function n(m,h,g){let x=g.x-h.x,w=g.y-h.y,v=m.x-h.x,b=m.y-h.y,N=x*b-v*w;if(m.x===h.x&&m.y===h.y){t.loc=A.ORIGIN,t.t=0;return}if(m.x===g.x&&m.y===g.y){t.loc=A.DESTINATION,t.t=1;return}if(N<-Number.EPSILON){t.loc=A.LEFT;return}if(N>Number.EPSILON){t.loc=A.RIGHT;return}if(x*v<0||w*b<0){t.loc=A.BEHIND;return}if(Math.sqrt(x*x+w*w)<Math.sqrt(v*v+b*b)){t.loc=A.BEYOND;return}let S;x!==0?S=v/x:S=b/w,t.loc=A.BETWEEN,t.t=S}function i(m,h){let g=[],x=[];for(let w=1;w<m.length;w++){let v=m[w-1],b=m[w];for(let N=1;N<h.length;N++){let S=h[N-1],y=h[N],P=r(v,b,S,y);P!==null&&g.find(O=>O.t<=P.t+Number.EPSILON&&O.t>=P.t-Number.EPSILON)===void 0&&(g.push(P),x.push(new Lr(P.x,P.y)))}}return x}function a(m,h,g){let x=new Lr;h.getCenter(x);let w=[];return g.forEach(v=>{v.boundingBox.containsPoint(x)&&i(m,v.points).forEach(N=>{w.push({identifier:v.identifier,isCW:v.isCW,point:N})})}),w.sort((v,b)=>v.point.x-b.point.x),w}function l(m,h,g,x,w){(w==null||w==="")&&(w="nonzero");let v=new Lr;m.boundingBox.getCenter(v);let b=[new Lr(g,v.y),new Lr(x,v.y)],N=a(b,m.boundingBox,h);N.sort((T,L)=>T.point.x-L.point.x);let S=[],y=[];N.forEach(T=>{T.identifier===m.identifier?S.push(T):y.push(T)});let P=S[0].point.x,O=[],C=0;for(;C<y.length&&y[C].point.x<P;)O.length>0&&O[O.length-1]===y[C].identifier?O.pop():O.push(y[C].identifier),C++;if(O.push(m.identifier),w==="evenodd"){let T=O.length%2===0,L=O[O.length-2];return{identifier:m.identifier,isHole:T,for:L}}else if(w==="nonzero"){let T=!0,L=null,B=null;for(let k=0;k<O.length;k++){let X=O[k];h[X]&&(T?(B=h[X].isCW,T=!1,L=X):B!==h[X].isCW&&(B=h[X].isCW,T=!0))}return{identifier:m.identifier,isHole:T,for:L}}else console.warn('fill-rule: "'+w+'" is currently not implemented.')}let u=0,s=999999999,c=-999999999,d=[];this.subPaths.forEach(m=>{let h=m.getPoints(),g=-999999999,x=999999999,w=-999999999,v=999999999;for(let b=0;b<h.length;b++){let N=h[b];N.y>g&&(g=N.y),N.y<x&&(x=N.y),N.x>w&&(w=N.x),N.x<v&&(v=N.x)}c<=w&&(c=w+1),s>=v&&(s=v-1),h.length&&d.push({curves:m.curves,points:h,isCW:K1.isClockWise(h),identifier:u++,boundingBox:new Y1(new Lr(v,x),new Lr(w,g))})});let p=d.map(m=>l(m,d,s,c,this.userData?.style.fillRule)),f=[];return d.forEach(m=>{let h=p[m.identifier];if(h&&!h.isHole){let g=new X1;g.curves=m.curves,p.filter(w=>w?.isHole&&w.for===m.identifier).forEach(w=>{if(w){let v=d[w.identifier],b=new gm;b.curves=v.curves,g.holes.push(b)}}),f.push(g)}}),f}};var vm,oc=new Promise(o=>{vm=o}),xm=!1;async function bm(){if(xm)return;let o=await import("./opentype.js");vm(o),xm=!0}var ri=class{async load(e,A,t=()=>{}){let{load:r}=await oc;r(e,(n,i)=>{n||!i?t(n??"Something went wrong"):A(i)})}async parse(e){let{parse:A,Bidi:t}=await oc;try{let r=A(e),n=new t,i=a=>r.charToGlyphIndex(a.char);return n.registerModifier("glyphIndex",null,i),n.applyFeatures(r,r.defaultRenderOptions.features),{font:r,bidi:n}}catch(r){console.error(r)}}};async function J1(o){return await(await fetch(o)).arrayBuffer()}var _1=new ri;async function nc(o){let e,A,t=!1;if(o.url?(e=await J1(o.url),A=o.url,t=o.url.startsWith("/")):o.data&&(e=o.data.buffer),e){let r=await _1.parse(e);if(r)return{font:r.font,url:A,intercepted:t,arr:e,bidi:r.bidi}}}import{CubicBezierCurve as $1,LineCurve as AT,QuadraticBezierCurve as eT}from"three";function tT(o,e){return e.state.glyphIndex===o||e.state.fina===o||e.state.medi===o||e.state.init===o}var Zs=class{constructor(e,A){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=e.isUserFont??!1,this._loadingPromise=nc(e).then(t=>{t&&(this._arrayBuffer=t.arr,this._url=t.url,this.font=t.font,this._intercepted=t.intercepted,this._isLoaded=!0,this._bidi=t.bidi,A())})}update(e,A){this._isLoaded=!1,this._isUserFont=e.isUserFont??!1,this._loadingPromise=nc(e).then(t=>{t&&(this._arrayBuffer=t.arr,this._url=t.url,this.font=t.font,this._intercepted=t.intercepted,this._isLoaded=!0,this._bidi=t.bidi,A())})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}reverseLigaturesTable(e,A,t){if(!this._bidi)return[];let r=this._bidi;r.getTextGlyphs(A);let n=r.tokenizer.tokens,i=[],a=0,l=t.length===n.length;for(let u=0;u<t.length;u++){let s=t[u].index,c=String.fromCharCode(t[u].unicode),d=n[a];if(tT(s,d)||l)i.push({char:c,index:s,replacements:[d.state.glyphIndex],replacementChars:[d.char]}),a++;else{let p=d.char,f="",m=[d.state.glyphIndex],h=[],g=!1;for(;!g;)a++,f=A.charAt(a),p+=f,m.push(e.charToGlyphIndex(f)),h=e.stringToGlyphs(p),h.length===1&&h[0].index===s&&(g=!0),a>A.length&&(g=!0);i.push({char:c,index:s,replacements:m,replacementChars:Array.from(p)}),a++}}return i}generateShapes(e,A){if(!this._isLoaded)return;let t=this.font,r=A.fontSize/this.unitsPerEm,n=A.fontSize*A.lineHeight,i=e.map(x=>this.getTextWidth(x,A)),a=A.width,l=this.getCharWidth(`
|
|
1335
|
+
`,A),u=A.horizontalAlign===1?l:0,s=this.computeSpaceWidthForLine(e,0,A),c=this.getLineInitialOffsetX(i[0],a,A.horizontalAlign,e[0],l),d=this.getLineInitialOffsetY(n,e.length,A.height,r,A.verticalAlign),p=[],f=e.map(x=>[]),m=e.map(x=>[]),h;for(let x=0;x<e.length;x++){let w=e[x],v={features:{liga:!0}},b=[];try{b=t.stringToGlyphs(w,v)}catch(S){console.warn(S)}c=this.getLineInitialOffsetX(i[x],a,A.horizontalAlign,w,l);let N=[];try{N=this.reverseLigaturesTable(t,w,b)}catch(S){console.warn(S)}s=this.computeSpaceWidthForLine(e,x,A);for(let S=0;S<b.length;S++){let y=b[S],P=y.index===0?`
|
|
1336
|
+
`:y.unicode?String.fromCharCode(y.unicode):void 0,O=N[S],C=0,T=0;S===0&&A.horizontalAlign===2&&y.leftSideBearing!==void 0&&(T=-y.leftSideBearing*r),h&&(C=t.getKerningValue(y,h)*r),c+=T+C;let L=0;if(P===`
|
|
1337
|
+
`)L=u;else if(P===" ")L=s;else{let B=this.createPath(y,r,c,d,A);B&&(L=B.offsetX-(C+T),p.push(B.path))}if(O.replacements.length===1)m[x].push([c,d]),f[x].push(L);else{let B=O.replacements.map(nA=>(t.glyphs.get(nA).advanceWidth??0)*r),k=B.reduce((nA,U)=>nA+=U,0),X=B.map(nA=>nA/k),eA=c;for(let nA=0;nA<X.length;nA++){let U=L*X[nA];m[x].push([eA,d]),f[x].push(U),eA+=U}}c+=L,h=y}d-=n}let g=[];for(let x=0,w=p.length;x<w;x++)g.push(...p[x].toShapes());return{shapes:g,charWidths:f,lineWidths:i,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(e,A,t,r,n){return(t===3||t===2)&&r.indexOf(`
|
|
1338
|
+
`)>=0&&(e-=n),t===3?A*.5-e*.5:t===2?A-e:0}getLineInitialOffsetY(e,A,t,r,n){let i=A*e,a=Math.abs(this.ascender-this.descender)*r,l=e-a,u=-this.ascender*r-l/2;return n===3?-(t-i-u):n===2?-(t*.5-i*.5-u):u}createPath(e,A,t,r,n){let i=e.getPath(t,-r,n.fontSize,{kerning:!1,letterSpacing:n.letterSpacing});if(!i){console.error('THREE.Font: character "'+e+'" does not exists in font family '+this.familyName+".");return}let a=new Ks,l=(e.advanceWidth??1)*A;if(e)for(let u of i.commands){let s=a.currentPath?.currentPoint;if(!(s&&u.type!=="Z"&&s.x===u.x&&-s.y===u.y))switch(u.type){case"M":a.moveTo(u.x,-u.y);break;case"L":a.lineTo(u.x,-u.y);break;case"Q":a.quadraticCurveTo(u.x1,-u.y1,u.x,-u.y);break;case"C":a.bezierCurveTo(u.x1,-u.y1,u.x2,-u.y2,u.x,-u.y);break}}return a.subPaths.forEach(u=>{let s=rT(u.curves);s!==void 0&&u.currentPoint.distanceTo(s)>0&&u.lineTo(s.x,s.y)}),{offsetX:l+n.fontSize*n.letterSpacing,path:a}}getCharWidth(e,A){return this.font?.getAdvanceWidth(e,A.fontSize,{kerning:!0,letterSpacing:A.letterSpacing})??0}getTextWidth(e,A){return this.font?.getAdvanceWidth(e,A.fontSize,{kerning:!0,letterSpacing:A.letterSpacing})??0}computeSpaceWidthForLine(e,A,t){let r=this.getCharWidth(" ",t),n=e[A];if(n){let i=this.countSpaces(n.trimEnd());if(t.horizontalAlign===4&&A<e.length-1&&i){let a=t.width,l=this.getTextWidth(n,t);return(a-(l-i*r))/i}}return r}countSpaces(e){return(e.match(/ /g)||[]).length}};function rT(o){if(o.length){let e=o[0];if(e instanceof AT)return e.v1;if(e instanceof $1||e instanceof eT)return e.v0}}var ic=class{constructor(){this.objects=new Map;this.unreachable=new Set}getCached(e){return this.objects.get(e)}get size(){return this.objects.size}get(e,A){let t=this.objects.get(e);return t===void 0&&(t=this.createObject(e,A),this.objects.set(e,t)),t}startGc(){this.unreachable=new Set(this.objects.keys())}markAsReachable(e,A){let t=this.objects.get(e);A===t?this.unreachable.delete(e):vp&&console.warn("Reachable but deleted",e)}endGc(){this.unreachable.forEach(e=>{this.disposeObject(this.objects.get(e)),this.objects.delete(e)}),this.unreachable.clear()}dispose(){this.objects.forEach(e=>{this.disposeObject(e)}),this.objects.clear()}},oi=class extends ic{constructor(A){super();this.flatShading=A}disposeObject(A){A.dispose()}createObject(A,t){let r=Bo(A,t,this.flatShading);return r.computeBoundingSphere(),r}};var wm={find(o){},markNeedsUpdateRendererDirty:function(){},markGeometryCacheDirty:function(){},addPendingExpandCloner:function(o){}};var Mr=class{constructor(e,A={}){this.geometryCache=new oi(!0);this.geometryCache2=new oi(!1);this.thisContext={scene:wm,shared:this};this.deletedMaterial=new Ir(Pe.defaultTwoLayerData("phong"),this.thisContext);this.deletedImage=new ze(gs.emptyImage);this.deletedVideo=new ze(Qr.defaultVideo);this.materials={};this.images={};this.videos={};this.colors={};this.audios={};this.fonts={};this.penumbraSize=[];this.onImageLoad=()=>{this._onImageLoad&&this._onImageLoad()};this.onFontLoad=()=>{this._onFontLoad&&this._onFontLoad()};if(A.images)for(let[t,r]of Object.entries(A.images))this.addImage(t,r);if(A.videos)for(let[t,r]of Object.entries(A.videos))this.addVideo(t,r);if(A.audios)for(let[t,r]of Object.entries(A.audios))this.addAudio(t,r.data);this.reset(e)}setOnImageLoad(e){this._onImageLoad=e}setOnFontLoad(e){this._onFontLoad=e}reset(e){for(let[A,t]of Object.entries(e.images))this.addImage(A,t);for(let[A,t]of Object.entries(e.videos))this.addVideo(A,t);for(let[A,t]of Object.entries(e.colors))this.addColor(A,t);for(let[A,t]of Object.entries(e.materials))this.addMaterial(A,new Ir(t,this.thisContext));for(let[A,t]of Object.entries(e.audios))this.addAudio(A,t.data);for(let[A,t]of Object.entries(e.fonts))this.addFont(A,t);this.penumbraSize=e.penumbraSize}addMaterial(e,A){A.uuid=e,this.materials[e]=A}deleteMaterial(e){this.materials[e]&&(this.materials[e].dispose(),delete this.materials[e])}getMaterial(e){let A=this.materials[e];return A}getMaterialOrDeletedPlaceholder(e){return this.materials[e]??this.deletedMaterial}material(e){return typeof e=="string"?this.getMaterialOrDeletedPlaceholder(e):new Uo(e,this.thisContext)}getMaterials(){return this.materials}addImage(e,A){return this.images[e]?(this.images[e].updateSrc(A.data),!0):(this.images[e]=new ze(A,this.onImageLoad),!1)}deleteImage(e){this.images[e]&&delete this.images[e]}getDefaultImage(){return this.images.image_0}getImage(e){return this.images[e]??this.deletedImage}image(e){return typeof e=="string"?this.getImage(e):new Pr(e,this.onImageLoad)}addVideo(e,A){return this.videos[e]?(this.videos[e].updateSrc(A.data),!0):(this.videos[e]=new ze(A,this.onImageLoad),!1)}deleteVideo(e){this.videos[e]&&delete this.videos[e]}getVideo(e){return this.videos[e]??this.deletedVideo}video(e){return typeof e=="string"?this.getVideo(e):new Pr(e,this.onImageLoad)}addColor(e,A){return this.colors[e]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(e),"a"in A?this.colors[e].setRGBA(A.r,A.g,A.b,A.a):this.colors[e].setRGBA(A.r,A.g,A.b,1),!0):("a"in A?this.colors[e]=new lr(A.r,A.g,A.b,A.a):this.colors[e]=new lr(A.r,A.g,A.b,1),!1)}updateColor(e,A){if(this.colors[e]){this.onColorOrImageUpdate&&this.onColorOrImageUpdate(e);let t=this.colors[e];return this.colors[e].r=A.r??t.r,this.colors[e].g=A.g??t.g,this.colors[e].b=A.b??t.b,this.colors[e].a=A.a??t.a,!0}return!1}deleteColor(e){this.colors[e]&&delete this.colors[e]}getColor(e){return this.colors[e]}color(e){let A;if(typeof e=="string"){let t=this.getColor(e);t?A=t:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),A=new WA(0,0,0,0))}else return"a"in e?new WA(e.r,e.g,e.b,e.a):new WA(e.r,e.g,e.b,1);return A}addAudio(e,A){this.audios[e]=A}getAudio(e){let A=this.audios[e];if(A instanceof Ho)return A;{let t=new Ho({src:A});return this.audios[e]=t,t}}deleteAudio(e){this.audios[e]&&delete this.audios[e]}addFont(e,A){this.fonts[e]=new Zs(A,this.onFontLoad)}getFont(e){return this.fonts[e]}deleteFont(e){this.fonts[e]&&delete this.fonts[e]}dispose(){Object.keys(this.materials).forEach(A=>this.deleteMaterial(A)),this._onImageLoad=void 0,this._onFontLoad=void 0,Object.values(this.audios).forEach(A=>{A instanceof Ho&&A.dispose()}),this.audios={},this.geometryCache.dispose(),this.geometryCache2.dispose()}},Sm=new Mr(fs.emptyData());var At=class extends Ae{updateByPatchedOp(A,t,r){if(super.updateByPatchedOp(A,t,r),Mc(A.path,["materials"])!==null&&A.type===0&&Array.isArray(this.material))for(let[n,i]of Object.entries(A.props)){let a=r.shared.material(i);this.material[Number(n)]=a}else if(Ut(A.path,["material"])&&this.material instanceof Ce)"material"in t&&typeof t.material!="string"&&this.material.updateByOp(re.drop(A,1),t.material,r);else if(Ut(A.path,["materials","*"])&&Array.isArray(this.material)){let n=A.path[1];if("materials"in t&&n<this.material.length){let i=t.materials[n];typeof i!="string"&&this.material[n].updateByOp(re.drop(A,2),i,r)}}}updateState(A,t){super.updateState(A,t),A.castShadow!==void 0&&(this.castShadow=A.castShadow),A.receiveShadow!==void 0&&(this.receiveShadow=A.receiveShadow);let r=this.dataPatched;if(A.geometry?.type!=="NonParametricGeometry"&&"material"in A&&A.material!==void 0&&(this.disposeMaterial(),this.material=t.shared.material(A.material).getFlavor(r.flatShading,r.side,r.wireframe),t.scene?.markNeedsUpdateRendererDirty()),A.geometry?.type==="NonParametricGeometry"&&("materials"in A&&A.materials!==void 0?(this.disposeMaterial(),this.material=A.materials.map(n=>t.shared.material(n).getFlavor(r.flatShading,r.side,r.wireframe)),t.scene?.markNeedsUpdateRendererDirty()):"material"in A&&A.material!==void 0&&(this.disposeMaterial(),this.material=[t.shared.material(A.material).getFlavor(r.flatShading,r.side,r.wireframe)],t.scene?.markNeedsUpdateRendererDirty())),A.flatShading!==void 0||A.wireframe!==void 0||A.side!==void 0)if(Array.isArray(this.material))for(let n=0;n<this.material.length;n++)this.material[n]=this.material[n].getFlavor(r.flatShading,r.side,r.wireframe);else this.material=this.material.getFlavor(r.flatShading,r.side,r.wireframe)}disposeMaterial(){this.material&&bp(this.material).forEach(A=>{A instanceof Ir||A.dispose()})}dispose(){this.disposeMaterial(),super.dispose()}};import{BufferGeometry as oT}from"three";var ke=class extends At{constructor(A,t,r){super(A,t);this.data=t;this.localGeometry=void 0}chooseGeoemtryCache(A){return A.geometryCache}markGeometryAsReachable(A){this.geometryCreateDeleyed instanceof oT&&this.chooseGeoemtryCache(A).markAsReachable(this.dataPatched.geometry,this.geometryCreateDeleyed)}get geometry(){if(this.localGeometry!==void 0)return this.localGeometry;if(this.geometryCreateDeleyed instanceof Mr){let A=this.geometryCreateDeleyed,t=this.chooseGeoemtryCache(A);this.geometryCreateDeleyed=t.get(this.dataPatched.geometry,A)}return this.geometryCreateDeleyed}set geometry(A){this.localGeometry=A}get is2DAndNoDepth(){let A=this.dataPatched.geometry;return mn.is2DParametricMesh(A.type)&&A.depth===0}get is2DType(){return mn.is2DParametricMesh(this.geometry.userData.type)}updateByPatchedOp(A,t,r){super.updateByPatchedOp(A,t,r),Ut(A.path,["geometry"])&&this.updateByPatchedOpGeometry(re.drop(A,1),t.geometry,r)}removeInteractionGeometry(){this.localGeometry?.dispose(),this.localGeometry=void 0}updateGeometryInteractions(A,t){this.invalidateDownstreamBooleanData();let r={...this.data.geometry,...A};this.localGeometry?.dispose(),this.localGeometry=Bo(r,t,this.data.flatShading)}createGeometryDelayed(A){this.geometryCreateDeleyed=A.shared;for(let t of this.attachedSurfaceCloners)t.update()}updateByPatchedOpGeometry(A,t,r){r.scene?.markGeometryCacheDirty(),this.createGeometryDelayed(r),this.resetBBoxNeedsUpdate(),this.invalidateDownstreamBooleanData()}updateGeometryOnStateUpdate(A,t){this.createGeometryDelayed(t)}updateState(A,t){A.geometry!==void 0&&this.updateGeometryOnStateUpdate(A.geometry,t),super.updateState(A,t),Array.isArray(this.material)&&this.geometry.groups.length===0&&this.geometry.addGroup(0,Math.max(this.geometry.getIndex()?.count??0,this.geometry.getAttribute("position").count),0)}updateEntityBoxSize(A,t){let r=this.geometry.userData.parameters;this.is2DType?A.set(0,0,r.depth*.5):A.setScalar(0),t.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}};function iT(o){if(o.geometry.attributes.extrudeNormal||!o.geometry.attributes.position||!o.geometry.attributes.normal)return;let e=new Map,A=o.geometry.attributes.position.array,t=o.geometry.attributes.normal.array,r=new Float32Array(A.length);for(let n=0;n<A.length;n+=3){let i=`${A[n]}_${A[n+1]}_${A[n+2]}`,a=new ac(t[n],t[n+1],t[n+2]);e.has(i)?e.get(i)?.normals.push(a):e.set(i,{normals:[a],result:new ac})}e.forEach((n,i)=>{for(let a of n.normals)n.result.add(a);n.result.divideScalar(n.normals.length)});for(let n=0;n<A.length;n+=3){let i=`${A[n]}_${A[n+1]}_${A[n+2]}`,a=e.get(i)?.result;a&&(r[n]=a.x,r[n+1]=a.y,r[n+2]=a.z)}o.geometry.setAttribute("extrudeNormal",new Tm(r,3))}function sT(o){if(o.geometry.attributes.extrudeNormals||!o.geometry.attributes.position)return;let e=o.geometry.attributes.position.array,A=new Float32Array(e.length),t=new ac;for(let r=0;r<e.length;r+=3)t.set(e[r],e[r+1],e[r+2]).normalize(),A[r]=t.x,A[r+1]=t.y,A[r+2]=t.z;o.geometry.setAttribute("extrudeNormal",new Tm(A,3))}function Wo(o){if(Array.isArray(o.material)){for(let e of o.material)if(e.getLayersOfType("outline").length===0)return}else if(!(o.material instanceof Ce)||o.material.getLayersOfType("outline").length===0)return;o instanceof ke&&o.is2DAndNoDepth?sT(o):iT(o)}function qo(o){if(!o.geometry.attributes.position)return;let e=o.geometry.attributes.position.array,A=new Float32Array(e.length),t=parseInt(o.uuid.replace(/\D/g,"")),r=[sc.seededRandom(t),sc.seededRandom(t+1e4),sc.seededRandom(t+2e4)];for(let n=0;n<e.length;n++)A[n]=r[n%3];o.geometry.setAttribute("randomColor",new nT(A,3))}var cT;Mo.then(o=>{cT=o});var uT=new Br,dT=new Br,pT=new Br,et=new aT,ur=new lT,fT=new Br,mT=new Br;var Er=class extends ke{constructor(A,t,r){super(A,t,r);this.data=t;this.hiddenMatrixOld=new Br;this.smoothShading=!0;this.matrixWorldRigid=new Br;this.skipReactionUpdate=!1}chooseGeoemtryCache(A){return this.dataPatched.flatShading?A.geometryCache:A.geometryCache2}get subdivPointerNew(){return this.localGeometry!==void 0?this.subdivPointer:this.geometry.subdivPointer}get originalGeometryNew(){return this.localGeometry!==void 0?this.originalGeometry:this.geometry.originalGeometry}get phongAngle(){return this.data.geometry.phongAngle??45}updateEntityBoxSize(A,t){let r=this.geometry.userData.parameters;A.copy(this.originalGeometryNew.boundingSphere.center),t.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}createGeometryByControls(A){if(this.skipReactionUpdate===!0)return;let t=this.localGeometry?.uuid,{originalGeometry:r,subdividedGeometry:n,subdivPointer:i}=KA.build(A,this.subdivPointer,this.smoothShading,this.shearScale);this.subdivPointer=i,r!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=r),n!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=n??void 0),this.localGeometry=this.subdividedGeometry??this.originalGeometry,Wo(this),qo(this),this.calcBoundingBox(),t&&(this.localGeometry.uuid=t)}updateState(A,t){if(super.updateState(A,t),A.flatShading!==void 0){let r=this.material;this.material=r.getFlavor(!1,r.side,r.wireframe),this.smoothShading=!A.flatShading,this.createGeometryDelayed(t)}}updateMesh(A=!1){KA.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,A?this.shearScaleInv:void 0),this.subdividedGeometry&&KA.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,A?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=KA.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=KA.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.localGeometry=this.subdividedGeometry??this.originalGeometry}raycast(A,t){let r=this.localGeometry;this.localGeometry=this.originalGeometryNew,Ae.prototype.raycast.call(this,A,t),this.localGeometry=r}updateMatrixWorldSVD(){let A=this.matrixWorld.elements,t=[[A[0],A[4],A[8]],[A[1],A[5],A[9]],[A[2],A[6],A[10]]],{u:r,v:n,q:i}=(0,Nm.SVD)(t),a=uT.set(r[0][0],r[0][1],r[0][2],0,r[1][0],r[1][1],r[1][2],0,r[2][0],r[2][1],r[2][2],0,0,0,0,1),l=dT.set(n[0][0],n[0][1],n[0][2],0,n[1][0],n[1][1],n[1][2],0,n[2][0],n[2][1],n[2][2],0,0,0,0,1),u=pT.copy(l).transpose();this.shearScale=fT.makeScale(i[0],i[1],i[2]).multiply(u).premultiply(l),this.shearScaleInv=mT.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(a,u),i.every(s=>Math.abs(i[0]-s)<.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 A=this.originalGeometry;A.boundingSphere===null&&(A.boundingSphere=new Om,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=A.boundingSphere));let t=A.attributes.position,r=A.boundingSphere.center;et.setFromBufferAttribute(t),et.getCenter(r),A.boundingSphere.radius=r.distanceTo(et.max),isNaN(A.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),et.getSize(ur);let n={width:ur.x,height:ur.y,depth:ur.z};return this.geometry.userData.parameters=n,n}updateBoundingBox(A){let t=this.originalGeometry;et.min.set(A[0],A[2],A[4]),et.max.set(A[1],A[3],A[5]),this.shearScaleInv&&(et.min.applyMatrix4(this.shearScaleInv),et.max.applyMatrix4(this.shearScaleInv)),t.boundingSphere===null&&(t.boundingSphere=new Om);let r=t.boundingSphere.center;et.getCenter(r),t.boundingSphere.radius=r.distanceTo(et.max),isNaN(t.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),et.getSize(ur);let n={width:ur.x,height:ur.y,depth:ur.z};return this.geometry.userData.parameters=n,n}freeSubdivPointer(){this.subdivPointer&&(KA.freeSubdivPointer(this.subdivPointer),this.subdivPointer=0),this.localGeometry=void 0,this.originalGeometry?.dispose(),this.subdividedGeometry?.dispose()}dispose(){super.dispose(),this.freeSubdivPointer()}updateByPatchedOpGeometry(A,t,r){super.updateByPatchedOpGeometry(A,t,r),this.localGeometry&&this.createGeometryByControls(t)}};import{Triangle as hT,Vector3 as Gr}from"three";var Pm=-1,yT=1,Cm={x:[1,0,0],"-x":[-1,0,0],y:[0,1,0],"-y":[0,-1,0],z:[0,0,1],"-z":[0,0,-1]},Im={polygon_center:0,edge:1,vertex:2},ni=(o,e)=>(A,t)=>!e||A===0||o===0?0:o*t/100,fA=(o,e)=>{let A=Math.abs(e),t=A*-1;return(o-Pm)*(A-t)/(yT-Pm)+t};function Lm(o){let e=[],A={};for(var t=0,r=o.length;t<r;t++){var n=JSON.stringify(o[t].pos.map(i=>Math.round(i*1e4)/1e4));A[n]||(e.push(o[t]),A[n]=!0)}return e}var gT=new Gr,Js=new Gr,xT=new Gr,vT=new Gr;function Qo(o,e){let A=xT.fromArray(o),t=vT.fromArray(e);Js.copy(t).sub(A);let r=Js.length();return Js.normalize().multiplyScalar(r*.5),gT.copy(A).add(Js).toArray()}var Ue=new hT,_s=new Gr,$s=new Gr,Dr=new Gr;function Mm(o){let e=[];for(let A=0;A<=o.index.count;A++)if(_s.fromArray(o.index.array,A*3),Ue.setFromAttributeAndIndices(o.attributes.position,_s.x,_s.y,_s.z),Ue.getNormal($s),Ue.getMidpoint(Dr),!(isNaN(Dr.x)||isNaN(Dr.y)||isNaN(Dr.z))){let{a:t,b:r,c:n}=Ue,i=t.toArray(),a=r.toArray(),l=n.toArray(),u=t.distanceTo(r),s=r.distanceTo(n),c=n.distanceTo(t),d=Qo(i,a),p=Qo(a,l),f=Qo(l,i),m=[u,s,c],h=Math.max(...m),g=m.filter(v=>Math.round(v)===Math.round(h)).length>1,x=[],w=Ue.getMidpoint(Dr).toArray();h===u&&!g&&(x=[p,f,f],w=d),h===s&&!g&&(x=[d,f,f],w=p),h===c&&!g&&(x=[d,p,p],w=f),g&&(x=[d,p,f]),e.push({vertices:[i,a,l],faceCenters:x,midpoint:w,norm:Ue.getNormal($s).toArray()})}return e}function Bm(o){let e=[],{position:A}=o.attributes;for(let t=0;t<A.count;t++){Ue.setFromAttributeAndIndices(A,t*3,t*3+1,t*3+2),Ue.getNormal($s),Ue.getMidpoint(Dr);let r=Ue.a.toArray(),n=Ue.b.toArray(),i=Ue.c.toArray();e.push({vertices:[r,n,i],faceCenters:[Qo(r,n),Qo(n,i),Qo(i,r)],midpoint:Dr.toArray(),norm:$s.toArray()})}return e}var bT=4,wT=.5,lc=o=>.5*(1-Math.cos(o*Math.PI)),cc=class{constructor(){this.perlin=new Array(4095+1)}noise(e,A=0,t=0){if(this.perlin==null){this.perlin=new Array(4095+1);for(let g=0;g<4095+1;g++)this.perlin[g]=Math.random()}e<0&&(e=-e),A<0&&(A=-A),t<0&&(t=-t);let r=Math.floor(e),n=Math.floor(A),i=Math.floor(t),a=e-r,l=A-n,u=t-i,s,c,d=0,p=.5,f,m,h;for(let g=0;g<bT;g++){let x=r+(n<<4)+(i<<8);s=lc(a),c=lc(l),f=this.perlin[x&4095],f+=s*(this.perlin[x+1&4095]-f),m=this.perlin[x+16&4095],m+=s*(this.perlin[x+16+1&4095]-m),f+=c*(m-f),x+=256,m=this.perlin[x&4095],m+=s*(this.perlin[x+1&4095]-m),h=this.perlin[x+16&4095],h+=s*(this.perlin[x+16+1&4095]-h),m+=c*(h-m),f+=lc(u)*(m-f),d+=f*p,p*=wT,r<<=1,a*=2,n<<=1,l*=2,i<<=1,u*=2,a>=1&&(r++,a--),l>=1&&(n++,l--),u>=1&&(i++,u--)}return d}noiseSeed(e){let A=(()=>{let i,a;return{setSeed(l){a=i=(l??Math.random()*4294967296)>>>0},getSeed(){return i},rand(){return a=(1664525*a+1013904223)%4294967296,a/4294967296}}})();A.setSeed(e),this.perlin=new Array(4095+1);for(let t=0;t<4095+1;t++)this.perlin[t]=A.rand()}},Em=cc;var fe=1e-4,bt,Vm,Fm,jm,Gm=new Ie,Rm=new Ie;Mo.then(o=>{bt=o,Vm=[bt.get_face_center,bt.get_edge_midpoint,bt.get_vertex_position],Fm=[bt.get_face_normal,bt.get_edge_normal,bt.get_vertex_normal],jm=[bt.face_count,bt.edge_count,bt.vertex_count]});var TT=new Vr,OT=new Vr,dr=new Ie,Rr=new Ie,ii=new Ie,dc=new Ie,NT=new Ie,PT=new Ie;var Vt=new Em,Xo=class extends go(ST){constructor(A,t){super();this.parameters=t;this.objectForSample=void 0;this.object=A}resetOnMove(){this.removeFromParent(),this.parent=null}expandClones(A){if(this.parent===null)this.updateState(this.parameters,A);else for(let t of this.children)t instanceof Bt&&t.expand()}invalidateTransform(A){this.matrixWorldNeedsUpdate=!0,this.traverse(t=>{t instanceof Bt&&t.object===A&&(t.matrixWorldNeedsUpdate=!0)})}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters);break;case"toObject":this._updateToObject(this.parameters)}}_updateCount(A){let t;if(A!==void 0?t=A:t=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count,this.parameters.type==="toObject"&&!this.parameters.toObject.object&&(t=0),this.parameters.type==="toObject"&&this.objectForSample){for(let n=0,i=this.children.length;n<i;++n)this.remove(this.children[0]);let r=this.children;if(r.length===t)return;if(r.length<t)for(let n=0,i=t-r.length;n<i;++n){let a=new Bt(this.object);a.expand(),this.add(a)}else for(let n=0,i=r.length-t;n<i;++n)this.remove(r[n])}else{if(this.children.length===t)return;if(this.children.length<t)for(let r=0,n=t-this.children.length;r<n;++r){let i=new Bt(this.object);i.expand(),this.add(i)}else for(let r=0,n=this.children.length-t;r<n;++r)this.remove(this.children[0])}}_updateRadial(A){let t=A.radial,r=t.start*Dm.DEG2RAD,n=t.end*Dm.DEG2RAD,i=r-n,a=new uc(t.rotation[0],t.rotation[1],t.rotation[2]),l;switch(t.axis){case"z":l=new Ie(0,0,1);break;case"y":l=new Ie(0,1,0);break;default:case"x":l=new Ie(1,0,0);break}let u=A.randomnessObject,s=u.noiseType==="perlin";Vt.noiseSeed(u.seed);let c=xs((0,Yo.default)(u.seed)),d=ni(u.strength,this.parameters.randomness);for(let[p,f]of this.children.entries()){let m=p*(u.freqScale/10)+u.movement,h=s?Vt.noise(m):c(m,m);f.scale.x=t.scale[0]+d(p,fA(h,u.scale[0]))||fe,f.scale.y=t.scale[1]+d(p,fA(h,u.scale[1]))||fe,f.scale.z=t.scale[2]+d(p,fA(h,u.scale[2]))||fe,f.position.setScalar(0);let g=i/A.count*p-r;switch(t.axis){case"x":f.rotation.set(0,g,0);break;case"y":f.rotation.set(0,0,g);break;case"z":f.rotation.set(g,0,0);break}f.translateOnAxis(l,t.radius),f.position.x+=t.position[0]+d(p,fA(h,u.position[0])),f.position.y+=t.position[1]+d(p,fA(h,u.position[1])),f.position.z+=t.position[2]+d(p,fA(h,u.position[2]));let x=d(p,fA(h,u.rotation[0])),w=d(p,fA(h,u.rotation[1])),v=d(p,fA(h,u.rotation[2]));t.alignment===!0?(f.rotation.x+=a.x+x,f.rotation.y+=a.y+w,f.rotation.z+=a.z+v):f.rotation.set(a.x+x,a.y+w,a.z+v)}}_updateLinear(A){if(A.type!=="linear")throw new Error;let t=A.linear,r=new uc(t.rotation[0],t.rotation[1],t.rotation[2]),n=A.randomnessObject,i=n.noiseType==="perlin";Vt.noiseSeed(n.seed);let a=xs((0,Yo.default)(n.seed)),l=ni(n.strength,this.parameters.randomness);for(let[u,s]of this.children.entries()){let c=u*(n.freqScale/10)+n.movement,d=i?Vt.noise(c):a(c,c),p=l(u,fA(d,n.rotation[0])),f=l(u,fA(d,n.rotation[1])),m=l(u,fA(d,n.rotation[2]));s.scale.x=1+(t.scale[0]-1)*u+l(u,fA(d,n.scale[0]))||fe,s.scale.y=1+(t.scale[1]-1)*u+l(u,fA(d,n.scale[1]))||fe,s.scale.z=1+(t.scale[2]-1)*u+l(u,fA(d,n.scale[2]))||fe,s.rotation.x=r.x*u+p,s.rotation.y=r.y*u+f,s.rotation.z=r.z*u+m,s.position.x=t.position[0]*u+l(u,fA(d,n.position[0])),s.position.y=t.position[1]*u+l(u,fA(d,n.position[1])),s.position.z=t.position[2]*u+l(u,fA(d,n.position[2]))}}_updateGrid(A){let t=0,r=A.grid,n=A.randomnessObject,i=ni(n.strength,this.parameters.randomness),a=n.noiseType==="perlin";Vt.noiseSeed(n.seed);let l=Ep((0,Yo.default)(n.seed));if(r.useCenter===!0){let u={x:r.count[0]%2===0?2:1,y:r.count[1]%2===0?2:1,z:r.count[2]%2===0?2:1},s=new Ie(r.size[0]*(r.count[0]-u.x)*.5,r.size[1]*(r.count[1]-u.y)*.5,r.size[2]*(r.count[2]-u.z)*.5);for(let c=0;c<r.count[0];c++)for(let d=0;d<r.count[1];d++)for(let p=0;p<r.count[2];p++){let f=[(c+1)*(n.freqScale/10)+n.movement,(d+1)*(n.freqScale/10)+n.movement,(p+1)*(n.freqScale/10)+n.movement],m=a?Vt.noise(...f):l(...f),h=this.children[t++];h.scale.x=1+i(t,fA(m,n.scale[0]))||fe,h.scale.y=1+i(t,fA(m,n.scale[1]))||fe,h.scale.z=1+i(t,fA(m,n.scale[2]))||fe;let g=i(t,fA(m,n.rotation[0])),x=i(t,fA(m,n.rotation[1])),w=i(t,fA(m,n.rotation[2]));h.rotation.set(g,x,w),h.position.x=r.size[0]*c-s.x+i(t,fA(m,n.position[0])),h.position.y=r.size[1]*d-s.y+i(t,fA(m,n.position[1])),h.position.z=r.size[2]*p-s.z+i(t,fA(m,n.position[2]))}}else for(let u=0;u<r.count[0];u++)for(let s=0;s<r.count[1];s++)for(let c=0;c<r.count[2];c++){let d=[(u+1)*(n.freqScale/10)+n.movement,(s+1)*(n.freqScale/10)+n.movement,(c+1)*(n.freqScale/10)+n.movement],p=a?Vt.noise(...d):l(...d),f=this.children[t++];f.scale.x=1+i(t,fA(p,n.scale[0]))||fe,f.scale.y=1+i(t,fA(p,n.scale[1]))||fe,f.scale.z=1+i(t,fA(p,n.scale[2]))||fe;let m=i(t,fA(p,n.rotation[0])),h=i(t,fA(p,n.rotation[1])),g=i(t,fA(p,n.rotation[2]));f.rotation.set(m,h,g),f.position.x=r.size[0]*u+i(t,fA(p,n.position[0])),f.position.y=-r.size[1]*s+i(t,fA(p,n.position[1])),f.position.z=-r.size[2]*c+i(t,fA(p,n.position[2]))}}_updateToObject(A){if(A.type!=="toObject")throw new Error;let{toObject:t}=A,r=new uc(t.rotation[0],t.rotation[1],t.rotation[2]),n=A.randomnessObject,i=n.noiseType==="perlin";Vt.noiseSeed(n.seed);let a=xs((0,Yo.default)(n.seed)),l=ni(n.strength,this.parameters.randomness);if(!t.object){for(let[,g]of this.children.entries())g.position.set(0,0,0),g.scale.setScalar(1),g.rotation.set(0,0,0);this.objectForSample=void 0;return}if(!this.objectForSample)return;let u=this.getSubdivData(),s=[],c=g=>{let x=g.length,w=g.map(N=>N[0]).reduce((N,S)=>N+S,0),v=g.map(N=>N[1]).reduce((N,S)=>N+S,0),b=g.map(N=>N[2]).reduce((N,S)=>N+S,0);return[w/x,v/x,b/x]},d=g=>Math.round(g*1e6)/1e6;u.forEach(g=>{let x=u.filter(w=>d(g.pos[0])===d(w.pos[0])&&d(g.pos[1])===d(w.pos[1])&&d(g.pos[2])===d(w.pos[2]));x.length>1?s.push({pos:g.pos,norm:c(x.map(w=>w.norm))}):s.push(g)});let p=Lm(s);if(u.length>0){let g=Math.round(p.length*t.count/100);this._updateCount(g)}this.objectForSample.updateMatrixWorld();let f=new vs(this.objectForSample).build(),m=Cm[t.axis],h=this.children;f.setRandomGenerator((0,Yo.default)(this.object.uuid+t.seed));for(let[g,x]of h.entries()){let w=g*(n.freqScale/10)+n.movement,v=i?Vt.noise(w):a(w,w),b=l(g,fA(v,n.rotation[0])),N=l(g,fA(v,n.rotation[1])),S=l(g,fA(v,n.rotation[2]));t.spreadType==="random"?f.sample(ii,dc):(p.length&&(ii.fromArray(p[g].pos),dc.fromArray(p[g].norm)),this.objectForSample instanceof Er&&ii.applyMatrix4(TT.copy(this.objectForSample.matrixWorld).invert())),ii.applyMatrix4(this.object.hiddenMatrix.clone().invert()),x.position.copy(ii),dr.fromArray(m);let y=t.align==="normal"?dc:this.object.getWorldDirection(PT),P=Rr.fromArray(t.position);Rr.x+=Rr.x+l(g,fA(v,n.position[0])),Rr.y+=Rr.y+l(g,fA(v,n.position[1])),Rr.z+=Rr.z+l(g,fA(v,n.position[2]));let O=Math.acos(y.dot(dr)),C=NT.crossVectors(dr,y).normalize(),T=OT.makeRotationAxis(C,O),L=y.clone().cross(this.object.up).normalize(),B=L.clone().cross(y).normalize(),k=new Vr().makeBasis(L,y,B),X=new Ie(dr.y,dr.z,dr.x).normalize(),eA=X.clone().cross(dr).normalize(),nA=new Vr().makeBasis(X,dr,eA).invert(),U=new Vr().multiplyMatrices(k,nA);x.rotation.setFromRotationMatrix(U),P.applyMatrix4(T),x.position.add(P),x.rotation.x=x.rotation.x+r.x+b,x.rotation.y=x.rotation.y+r.y+N,x.rotation.z=x.rotation.z+r.z+S,x.scale.setScalar(1),x.scale.x=x.scale.x+t.scale[0]+l(g,fA(v,n.scale[0]))||fe,x.scale.y=x.scale.y+t.scale[1]+l(g,fA(v,n.scale[1]))||fe,x.scale.z=x.scale.z+t.scale[2]+l(g,fA(v,n.scale[2]))||fe,x.scale.multiply(this.object.scale),x.hiddenMatrix=this.object.hiddenMatrix}}getSubdivData(){if(!this.objectForSample)return[];let A=this.parameters.toObject.spreadType;if(A==="random")return[];if(this.objectForSample instanceof Er){let t=this.objectForSample,r=Im[A],n=jm[r],i=Vm[r],a=Fm[r],l=[],u=n(t.subdivPointerNew);for(let s=0;s<=u-1;s++){let c=i(t.subdivPointerNew,s),d=a(t.subdivPointerNew,s);Gm.fromArray(c).applyMatrix4(t.matrixWorld),Rm.fromArray(d),l.push({pos:Gm.toArray(),norm:Rm.toArray()})}return l}else return(this.objectForSample.geometry.index?Mm(this.objectForSample.geometry):Bm(this.objectForSample.geometry)).map((r,n)=>A==="polygon_center"?{pos:r.midpoint,norm:r.norm}:A==="vertex"?[{pos:r.vertices[0],norm:r.norm},{pos:r.vertices[1],norm:r.norm},{pos:r.vertices[2],norm:r.norm}]:A==="edge"?[{pos:r.faceCenters[0],norm:r.norm},{pos:r.faceCenters[1],norm:r.norm},{pos:r.faceCenters[2],norm:r.norm}]:[]).flat()}updateState(A,t){if(this.parameters=gr(A),this.parameters.type!=="toObject")(this.parent===null||this.parent!==this.object)&&(this.removeFromParent(),this.object.parent?.add(this),this.matrix=this.object.matrix,this.hiddenMatrix=this.object.hiddenMatrix,this.matrixWorldNeedsUpdate=!0,this.matrixAutoUpdate=!1);else if(this.parent===null||this.parent.uuid!==this.parameters.toObject.object){this.removeFromParent();let r=t.find(this.parameters.toObject.object);r instanceof Ae?this.objectForSample=r:this.objectForSample=void 0,this.matrix=new Vr,this.hiddenMatrix=new Vr,this.matrixWorldNeedsUpdate=!0,this.matrixAutoUpdate=!1,r&&r.add(this)}this.update()}};import{HemisphereLight as yO,Scene as gO,Vector3 as xO,Fog as vO,Box3 as bO,MeshStandardMaterial as wO}from"three";import{Camera as jT,OrthographicCamera as zT,PerspectiveCamera as kT,Vector3 as rt,Object3D as Hm,Quaternion as UT}from"three";import{Camera as ET,LineSegments as DT,BufferGeometry as GT,LineBasicMaterial as RT,Color as fc,Vector3 as VT,Float32BufferAttribute as km}from"three";import{BoxGeometry as CT}from"three";var wt=o=>{var e;return e=class extends o{},e.geometryHelper=new CT(30,30,30),e};import{Ray as IT,Sphere as LT,Matrix4 as MT,Vector3 as Ft}from"three";var Aa=new IT,pc=new LT,zm=new MT,St=(o,e,A,t,r=!1)=>{let n=e,i=o.matrixWorld;if(n.boundingSphere===null&&n.computeBoundingSphere(),pc.copy(n.boundingSphere),pc.applyMatrix4(i),A.ray.intersectsSphere(pc)===!1||(zm.copy(i).invert(),Aa.copy(A.ray).applyMatrix4(zm),n.boundingBox!==null&&Aa.intersectsBox(n.boundingBox)===!1))return;let a,l,u,s,c=n.index,d=n.attributes.position,p=n.drawRange,f,m;if(r===!1){let g=Math.max(0,p.start),x=Math.min(c.count,p.start+p.count);for(f=g,m=x;f<m;f+=3)if(l=c.getX(f),u=c.getX(f+1),s=c.getX(f+2),a=h(o,A,Aa,d,l,u,s),a){a.faceIndex=Math.floor(f/3),t.push(a);return}}else{let x=n.attributes.position,w=new Ft,v=new Ft,b=new Ft,N=new Ft,S=2,P=1/((o.scale.x+o.scale.y+o.scale.z)/3),O=P*P,C=Math.max(0,p.start),T=Math.min(x.count,p.start+p.count);for(let L=C,B=T-1;L<B;L+=S){if(w.fromBufferAttribute(x,L),v.fromBufferAttribute(x,L+1),Aa.distanceSqToSegment(w,v,N,b)>O)continue;N.applyMatrix4(o.matrixWorld);let X=A.ray.origin.distanceTo(N);X<A.near||X>A.far||t.push({distance:X,point:b.clone().applyMatrix4(o.matrixWorld),object:o})}}function h(g,x,w,v,b,N,S){let y=new Ft,P=new Ft,O=new Ft,C=new Ft,T=new Ft;if(y.fromBufferAttribute(v,b),P.fromBufferAttribute(v,N),O.fromBufferAttribute(v,S),w.intersectTriangle(y,P,O,!1,C)===null)return null;T.copy(C),T.applyMatrix4(g.matrixWorld);let B=x.ray.origin.distanceTo(T);return B<x.near||B>x.far?null:{faceIndex:1,distance:B,point:T.clone(),object:g}}};var ea=new VT,He=new ET,mc=class extends DT{constructor(A){let t=new GT,r=new RT({color:16777215,vertexColors:!0,toneMapped:!1}),n=[],i=[],a={},l=new fc(15711266),u=new fc(15711266),s=new fc(2857471);c("n1","n2",l),c("n2","n4",l),c("n4","n3",l),c("n3","n1",l),c("f1","f2",l),c("f2","f4",l),c("f4","f3",l),c("f3","f1",l),c("n1","f1",l),c("n2","f2",l),c("n3","f3",l),c("n4","f4",l),c("p","n1",u),c("p","n2",u),c("p","n3",u),c("p","n4",u),c("u1","u2",s),c("u2","u3",s),c("u3","u1",s);function c(p,f,m){d(p,m),d(f,m)}function d(p,f){n.push(0,0,0),i.push(f.r,f.g,f.b),a[p]===void 0&&(a[p]=[]),a[p].push(n.length/3-1)}t.setAttribute("position",new km(n,3)),t.setAttribute("color",new km(i,3));super(t,r);this.type="CameraHelper",this.camera=A,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=A.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=a,this.update()}update(){let A=this.geometry,t=this.pointMap,r=!0;He.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let n=1,i=1,a=r?.8:1e-4;tt("n1",t,A,He,-n,-i,a),tt("n2",t,A,He,n,-i,a),tt("n3",t,A,He,-n,i,a),tt("n4",t,A,He,n,i,a);let l=a;tt("f1",t,A,He,-n,-i,l),tt("f2",t,A,He,n,-i,l),tt("f3",t,A,He,-n,i,l),tt("f4",t,A,He,n,i,l);let u=l,s=.5;tt("u1",t,A,He,n*.7*s,i*1.1,u),tt("u2",t,A,He,-n*.7*s,i*1.1,u),tt("u3",t,A,He,0,i*(1.1+.9*s),u),A.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function tt(o,e,A,t,r,n,i){ea.set(r,n,i).unproject(t);let a=e[o];if(a!==void 0){let l=A.getAttribute("position");for(let u=0,s=a.length;u<s;u++)l.setXYZ(a[u],ea.x,ea.y,ea.z)}}var ta=class extends wt(mc){constructor(A){super(A);this.object=A;this.object=A,this.name=`CombinedCameraHelper: ${A.uuid}`}updateMatrixWorld(A){super.updateMatrixWorld(A),this.updateTarget()}updateTarget(){let A=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(A)}raycast(A,t){St(this.object,this.geometry,A,t,!0)}};import{Box3Helper as Um,BoxGeometry as FT}from"three";var ra;(e=>e.is=A=>"objectHelper"in A)(ra||(ra={}));var Tt=(o,e)=>class extends o{constructor(){super(...arguments);this.objectHelper=new e(this);this.gizmos={}}get geometryHelper(){return e.geometryHelper}raycast(r,n){this.objectHelper.raycast(r,n)}showGizmos(){for(let r in this.gizmos){let n=this.gizmos[r];n instanceof Um&&(n.visible=!0)}}updateEntityBoxSize(r,n){this.objectHelper.visible&&this.geometryHelper instanceof FT?(r.setScalar(0),n.set(this.geometryHelper.parameters.width,this.geometryHelper.parameters.height,this.geometryHelper.parameters.height).multiplyScalar(.5)):super.updateEntityBoxSize(r,n)}hideGizmos(){for(let r in this.gizmos){let n=this.gizmos[r];n instanceof Um&&(n.visible=!1)}}};var Ko=new rt,hc=new rt,jt=class extends Tt(Ve(jT),ta){constructor(A="",t={...ho.defaultData,name:""}){super();this._cameraType="OrthographicCamera";this.targetOffset=hr.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.super_Entity(A,t),this.matrixAutoUpdate=!0,this.width=window.innerWidth,this.height=window.innerHeight;let r=this.width,n=this.height;this.orthoCamera=new zT(r*-.5,r*.5,n*.5,n*-.5,-5e4,1e4),this.perspCamera=new kT(45,r/n,50,1e4),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.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.objectHelper.update()}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}set fov(A){this.perspCamera.fov=A}get fov(){return this.perspCamera.fov}setNear(A,t){A==="PerspectiveCamera"?this.perspCamera.near=t:this.orthoCamera.near=t}setZoom(A,t){t>=0&&(A==="PerspectiveCamera"?this.perspCamera.zoom=t:this.orthoCamera.zoom=t)}set cameraType(A){A==="PerspectiveCamera"?this.toPerspective():A==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(A){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=A:this.orthoCamera.near=A}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(A){A>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=A:this.orthoCamera.zoom=A)}lookAt(A){super.lookAt(A),this.getWorldPosition(Ko),this.targetOffset=Ko.distanceTo(A)}getTarget(A=new rt){return this.getWorldDirection(hc),this.getWorldPosition(Ko),hc.multiplyScalar(this.targetOffset),A.copy(Ko).add(hc),A}getDistanceToTarget(){let A=this.getTarget();return this.getWorldPosition(Ko),Ko.distanceTo(A)}updateUp(){let A=this.getWorldQuaternion(new UT),t=new rt(0,0,1).applyQuaternion(A),r=new rt().copy(Hm.DefaultUp);this.isUpVectorFlipped&&r.negate(),r.applyQuaternion(A);let n=new rt().copy(Hm.DefaultUp).projectOnPlane(t),i=new rt().crossVectors(n,r).dot(t)>=0?1:-1;this.angleOffsetFromUp=n.angleTo(r)*i}updateTransformState(A){let t=super.updateTransformState(A);return A.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=A.isUpVectorFlipped),this.updateUp(),t}getViewFrontToObject(A){let t=A.getWorldPosition(new rt),n=A.getWorldDirection(new rt).multiplyScalar(this.targetOffset);return{position:t.clone().add(n),target:t}}getViewToObject(A){let t=A.getWorldPosition(new rt),n=this.getWorldDirection(new rt).multiplyScalar(this.targetOffset);return{position:t.clone().sub(n),target:t}}setViewplaneSize(A,t){this.left=-A*.5,this.right=A*.5,this.top=t*.5,this.bottom=-t*.5,this.aspect=A/t,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(A){this.perspCamera.setFocalLength(A),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(A,t,r,n,i,a){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(A,t,r,n,i,a):this.orthoCamera.setViewOffset(A,t,r,n,i,a)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}updateProjectionMatrix(){this._cameraType==="PerspectiveCamera"?this.toPerspective():this._cameraType==="OrthographicCamera"&&this.toOrthographic()}updateMatrixWorld(A){super.updateMatrixWorld(A),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(A,t){super.updateWorldMatrix(A,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(A,t){return super.copy(A,t),this.orthoCamera.copy(A.orthoCamera),this.perspCamera.copy(A.perspCamera),this.left=A.left,this.right=A.right,this.top=A.top,this.bottom=A.bottom,this.far=A.far,this.view=A.view===null?null:Object.assign({},A.view),this._cameraType=A._cameraType,this.aspect=A.aspect,this.fov=A.fov,this.focus=A.focus,this.filmGauge=A.filmGauge,this.filmOffset=A.filmOffset,this.targetOffset=A.targetOffset,this.updateProjectionMatrix(),this}toCameraState(A=[]){let t={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 po(t,A)}updateCameraSubtype(A,t){let r=A==="perspective"?"PerspectiveCamera":"OrthographicCamera";t.zoom!==void 0&&this.setZoom(r,t.zoom),t.near!==void 0&&this.setNear(r,t.near),t.fov!==void 0&&r==="PerspectiveCamera"&&(this.fov=t.fov)}updateState(A){this.updateCameraState(A)}updateCameraState(A){this.updateState_Entity(A,{}),A.far!==void 0&&(this.far=A.far),A.orthographic!==void 0&&this.updateCameraSubtype("orthographic",A.orthographic),A.perspective!==void 0&&this.updateCameraSubtype("perspective",A.perspective),A.type!==void 0&&(this.cameraType=A.type),A.up!==void 0&&this.up.fromArray(A.up),A.targetOffset!==void 0&&(this.targetOffset=A.targetOffset),A.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=A.isUpVectorFlipped),this.updateProjectionMatrix()}updateByPatchedOp(A,t,r){super.updateByPatchedOp(A,t,r),A.path.length===1&&A.type===0&&this.updateCameraSubtype(A.path[0],A.props)}toState(A){return{...super.toState(A),...this.toCameraState(A),type:this.cameraType}}};import{BufferGeometry as Wm,Matrix4 as HT}from"three";var qm=new HT;var We=class extends At{constructor(A,t,r){super(A,t);this.data=t;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.geometry=new Wm;this.geometry.userData.parameters={width:0,height:0,depth:0}}get booleanOp(){return this.data.geometry.operation}get phongAngle(){return this.data.geometry.phongAngle??45}get isLOD(){return this.recomputeBoolean(),!1}updateByPatchedOp(A,t,r){super.updateByPatchedOp(A,t,r),A.path.length===1&&A.path[0]==="geometry"&&A.type===0&&A.props.operation!==void 0&&(this.freeBooleanPointer(),this.resetBBoxNeedsUpdate())}freeBooleanPointer(){super.freeBooleanPointer(),this.geometry.dispose()}recomputeBoolean(A,t=!0){if(this.booleanMeshSetAddress!==-1)return;for(let n=0;n<this.children.length;n++){let i=this.children[n];i instanceof We&&i.recomputeBoolean(A===!0,t)}this.meshSetAddresses=[];for(let n=0;n<this.children.length;n++){let i=this.children[n];if(i instanceof Ae&&i.dataPatched.visible===!0&&i.geometry.attributes.position?.count>0&&i.geometry.drawRange.count>0){if(i.booleanMeshSetAddress===-1){if((i.geometry.index??i.geometry.getAttribute("position")).count/3<15e5&&(i.booleanMeshSetAddress=Ze.getMeshSet(i.geometry,A===!0,t)),i.booleanMeshSetAddress===-1)return;Ze.transformMeshSet(i.booleanMeshSetAddress,i.matrix),i.booleanMatrixInvOld.copy(i.matrix).invert(),i.booleanWasTransformed=!1}else i instanceof We&&i.needsTransformForDownstream===!0?(Ze.transformMeshSet(i.booleanMeshSetAddress,i.matrix),i.needsTransformForDownstream=!1):i.booleanWasTransformed===!0&&(qm.multiplyMatrices(i.matrix,i.booleanMatrixInvOld),Ze.transformMeshSet(i.booleanMeshSetAddress,qm),i.booleanMatrixInvOld.copy(i.matrix).invert(),i.booleanWasTransformed=!1);this.meshSetAddresses.push(i.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setDrawRange(0,0);return}if(A===!0)return Ze.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let r=this.geometry;r.dispose(),this.geometry=new Wm,this.geometry.userData=r.userData,this.geometry.boundingSphere=r.boundingSphere;try{this.booleanMeshSetAddress=Ze.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(n){this.booleanMeshSetAddress=0,console.error(n)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,Wo(this),qo(this)}dispose(){super.dispose(),this.geometry.dispose()}};import{Light as WT}from"three";var Qm;(e=>{function o(A){return Re.is(A)&&A instanceof WT}e.is=o})(Qm||(Qm={}));var Zo=o=>class extends o{updateState_Light(A,t){this.updateState_Entity(A,t),A.color!==void 0&&(this.color=t.shared.color(A.color)),A.intensity!==void 0&&(this.intensity=A.intensity),A.depth!==void 0&&(this.shadow.camera.far=A.depth,this.shadow.needsUpdate=!0),A.shadows!==void 0&&(this.castShadow=A.shadows)}};var si=o=>o instanceof Ae,ai=o=>o!==null&&o instanceof We,Ym=o=>o instanceof jt;var Xm=o=>ra.is(o);import{Group as QT}from"three";import{AxesHelper as qT}from"three";var Jo=class extends wt(qT){constructor(A,t=15){super(t);this.object=A;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${A.uuid}`,this.matrix=A.matrixWorld,this.matrixAutoUpdate=!1}raycast(A,t){St(this.object,Jo.geometryHelper,A,t)}update(){}};var li=class extends Tt(Ve(QT),Jo){constructor(e,A){super(),this.super_Entity(e,A),this.objectHelper.update()}updateState(e,A){this.updateState_Entity(e,A)}};import{DirectionalLight as JT,CameraHelper as Km}from"three";import{DirectionalLightHelper as YT}from"three";var _o=class extends wt(YT){constructor(A,t=15,r=10066329){super(A,t,r);this.object=A;this.added=!1;this.name=`DirectionalLightHelper: ${A.uuid}`}raycast(A,t){St(this.object,_o.geometryHelper,A,t)}};import{PointLightHelper as XT}from"three";var $o=class extends wt(XT){constructor(A,t=15,r=6710886){super(A,t,r);this.object=A;this.name=`PointLightHelper: ${A.uuid}`}raycast(A,t){St(this.object,$o.geometryHelper,A,t)}};import{SpotLightHelper as KT,Vector3 as ZT}from"three";var oa=class extends wt(KT){constructor(A,t=6710886){super(A,t);this.object=A;this.name=`SpotLightHelper: ${A.uuid}`}raycast(A,t){St(this.object,oa.geometryHelper,A,t)}update(){if(this.object!==void 0){let A=oa._vector,t=this.object.distance?this.object.distance:1e3,r=t*Math.tan(this.object.angle);this.cone.scale.set(r,r,t),A.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(A);let n=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let i=0,a=this.cone.material.length;i<a;i++)this.cone.material[i].color.set(n);else this.cone.material.color.set(n)}}},ci=oa;ci._vector=new ZT;function _T(o,e){o.shadow.camera.right=e/2,o.shadow.camera.left=-e/2,o.shadow.camera.top=e/2,o.shadow.camera.bottom=-e/2,o.shadow.needsUpdate=!0}var na=class extends Zo(Tt(Ve(JT),_o)){constructor(e,A,t){super(),this.super_Entity(e,A),this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let n=this.shadow.camera;n.top=1250,n.bottom=-1250,n.right=1250,n.left=-1250,n.near=-1e4,n.far=2500;let i=new Km(this.shadow.camera);i.visible=!1,this.gizmos.shadowmap=i}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this.gizmos){let A=this.gizmos[e];A instanceof Km&&A.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}updateState(e,A){this.updateState_Light(e,A);let t=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;e.size!==void 0&&_T(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)),t&&this.update()}};import{PointLight as $T,Vector3 as ia,Box3 as AO,Box3Helper as Zm,Color as eO}from"three";var sa=class extends Zo(Tt(Ve($T),$o)){constructor(e,A,t){super(),this.super_Entity(e,A),this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let n=this.shadow.camera;n.fov=90,n.aspect=1,n.near=100,n.far=2500;let i=new ia(-n.far+this.position.x,-n.far+this.position.y,-n.far+this.position.z),a=new ia(n.far+this.position.x,n.far+this.position.y,n.far+this.position.z),l=new AO(i,a),u=new Zm(l,new eO(16755200));u.visible=!1,this.gizmos.shadowmap=u,this.update()}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this.gizmos))for(let e in this.gizmos){let A=this.gizmos[e];if(A instanceof Zm){let t=this.shadow.camera,r=new ia(-t.far+this.position.x,-t.far+this.position.y,-t.far+this.position.z),n=new ia(t.far+this.position.x,t.far+this.position.y,t.far+this.position.z);A.box.set(r,n),A.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}updateState(e,A){this.updateState_Light(e,A),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))}};import{SpotLight as tO,CameraHelper as Jm,MathUtils as rO,Vector3 as eh,Quaternion as oO}from"three";var _m=new eh,$m=new eh,Ah=new oO,aa=class extends Zo(Tt(Ve(tO),ci)){constructor(e,A,t){super(),this.super_Entity(e,A),this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let n=this.shadow.camera;n.fov=rO.RAD2DEG*2*this.angle,n.aspect=1,n.near=100,n.far=2500;let i=new Jm(this.shadow.camera);i.visible=!1,this.gizmos.shadowmap=i,this.update()}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this.gizmos){let A=this.gizmos[e];A instanceof Jm&&A.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),$m.setFromMatrixPosition(this.matrixWorld),Ah.setFromRotationMatrix(this.matrixWorld),_m.copy(this.up).applyQuaternion(Ah).negate().multiplyScalar(this.distance),this.target.position.copy($m).add(_m),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}updateState(e,A){this.updateState_Light(e,A),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))}};var la=class extends ke{get forceComputeSize(){return!0}get shape(){return this.geometry.userData.shape}constructor(e,A,t){super(e,A,t)}updateEntityBoxSize(e,A){let t=this.geometry.getAttribute("position");t!==void 0?Rl(t,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:t.count,e,A):super.updateEntityBoxSize(e,A)}};import{Vector3 as nO,Matrix4 as iO,Ray as sO}from"three";var th=new nO,rh=new iO,oh=new sO;function nh(o){let e=!1;return o.scene.objects.traverse((A,t)=>{t.type==="Mesh"&&t.geometry.type==="TextGeometry"&&(e=!0)}),e}var ca=class extends ke{constructor(A,t,r){super(A,t,r);this.data=t}get textGeometry(){return this.geometry}get charWidths(){return this.textGeometry.charWidths}get charCoords(){return this.textGeometry.charCoords}get wrappedText(){return this.textGeometry.wrappedText}get font(){return this.textGeometry.font}get initialOffsetY(){let A=this.dataPatched;return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,A.geometry.height,this.fontScale,A.geometry.verticalAlign)??0}get fontScale(){let A=this.dataPatched;return this.font?A.geometry.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(){let A=this.dataPatched;return A.geometry.fontSize*A.geometry.lineHeight}raycast(A,t){let{matrixWorld:r}=this;if(rh.copy(r).invert(),oh.copy(A.ray).applyMatrix4(rh),oh.intersectBox(this.singleBBox,th)){let n=th.applyMatrix4(r),i=A.ray.origin.distanceTo(n);t.push({distance:i,point:n.clone(),object:this})}}};function aO(o,e,A){let t;return e.geometry.type==="TextGeometry"?new ca(o,e,A):(e.geometry.type==="SubdivGeometry"?t=new Er(o,e,A):e.geometry.type==="VectorGeometry"?t=new la(o,e,A):e.geometry.type==="BooleanGeometry"?t=new We(o,e,A):t=new ke(o,e,A),t)}function yc(o,e,A){return e.type==="Mesh"?aO(o,e,A):e.type==="Empty"?new li(o,e):e.type==="PointLight"?new sa(o,e,A):e.type==="SpotLight"?new aa(o,e,A):e.type==="DirectionalLight"?new na(o,e,A):Pt.is(e.type)?new jt(o,e):(console.error(e),new li(o,e))}function lO(o,e,A){let t=yc(o.identity,e,A),r=o.children,n=o.parent,i=o.overrideData,a=o.uuid,l=o.stateSelection;o.dispose();for(let u of Object.keys(o))delete o[u];Object.setPrototypeOf(o,Object.getPrototypeOf(t));for(let u of Object.keys(t))o[u]=t[u];o.children=[...o.children,...r],o.parent=n,o.uuid=a,o.overrideData=i,o.updateState(o.data,A),l&&o.changeSelectedState(l,A),o.resetBBoxNeedsUpdate()}rr.changeEntityProptotype=lO;rr.Cloner=Xo;function ih(o,e,A,t){o.data=A,o.updateByOp(e,A,t)}import{Matrix4 as uO,Ray as dO,Raycaster as pO}from"three";function sh(o,e){let A=!1,t=e.getLayersOfType("transmission"),r=e.getLayersOfType("outline");return r.length>0&&(o.layers.set(8),t.length>0&&o.layers.enable(3),A=!0,qo(o),Wo(o)),t.length===0&&r.length===0&&o.layers.set(0),A}function ah(o,e){if(!e.layers)return!1;let A=!1,t=e.getLayersOfType("transmission"),r=e.getLayersOfType("outline");return t.length>0&&(o.layers.set(3),r.length>0&&o.layers.enable(8),A=!0),t.length===0&&r.length===0&&o.layers.set(0),A}function lh(o){let e=!1;return o.traverseEntity(A=>{if(A instanceof At)if(Array.isArray(A.material))for(let t=0;t<A.material.length;t++)sh(A,A.material[t])&&(e=!0);else sh(A,A.material)&&(e=!0)}),e}function ch(o){let e=!1;return o.traverseEntity(A=>{if(A instanceof At)if(Array.isArray(A.material))for(let t=0;t<A.material.length;t++)ah(A,A.material[t])&&(e=!0);else ah(A,A.material)&&(e=!0)}),e}var fO=new pO,mO=new uO,hO=new dO;function uh(o,e,A){let t=o.cloner;if(t)for(let r of t.children){let n=mO.copy(r.matrixWorld).invert(),i=hO.copy(e.ray).applyMatrix4(n),a=o.matrixWorld;i.applyMatrix4(a);let l=fO;l.set(i.origin,i.direction),l.near=e.near,l.far=e.far,l.intersectObject(o,!1).length>0&&A.push({object:o})}}var SO=new wO;SO.wireframe=!0;var dh=new xO,gc=class extends gO{constructor(A,t){super();this.data=A;this.backupFog=new vO(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.geometryCacheChanged=!1;this.bgColor=new WA(1,1,1,1);this.entityByUuid={};this.toExpandCloner=new Set;this.ambientLight=new yO(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.ambientLight.layers.enable(3),this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.postprocessing=A.postprocessing,this.init(A,t),this.matrixAutoUpdate=!1}markGeometryCacheDirty(){this.geometryCacheChanged=!0}markNeedsUpdateRendererDirty(){this.needsTransmissionDirty=!0,this.needsNormalDirty=!0}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=ch(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=lh(this),this.needsNormalDirty=!1),this._needsNormal}getWithSortKey(A){let t=this.find(A);if(t===void 0)return;let r=[],n=t;for(;n!==this;){let i=n;n=n.parent;let a=n.children.indexOf(i);r.splice(0,0,a)}return{entity:t,sortKey:r}}getAllSorted(A){let t=[];for(let r of A){let n=this.getWithSortKey(r.id);n!==void 0&&t.push(n)}return t.sort((r,n)=>wp(r.sortKey,n.sortKey)),t.map(r=>r.entity)}find(A){if(A===""||A===void 0)return;let t=this.entityByUuid[A];return t===void 0?this.getObjectByProperty("uuid",A):t}addPendingExpandCloner(A){this.toExpandCloner.add(A)}markToExpandCloner(A){this.toExpandCloner.add(A),A.traverseEntityAncestors(t=>{this.toExpandCloner.add(t)})}doPendingExpandCloner(){this.toExpandCloner.forEach(A=>{A.expandCloner(this)}),this.toExpandCloner.clear()}updateTreeByOp(A,t){if(A.path.length===0&&A.type===7){let r=A.parent===null?this:this.find(A.parent);if(r===void 0)throw new Error("unexpected");let n=this.createChildObject(A.id,A.data,A.children,r,A.localIndex,t);n.updateVisible(),n.resetBBoxNeedsUpdate(),si(n)&&ai(n.parent)&&(n.invalidateUpstreamBooleanData(),n.parent.invalidateDownstreamBooleanData().recomputeBoolean()),this.markToExpandCloner(n)}else if(A.path.length===0&&A.type===8){let r=this.find(A.id);if(r===void 0)throw new Error("unexpected");this.markToExpandCloner(r),r.resetBBoxNeedsUpdate(),this.unregisterObject(r);let n=r.parent;r.parent.remove(r),ai(r.parent)&&(r.parent.invalidateUpstreamBooleanData(),r.parent.invalidateDownstreamBooleanData().recomputeBoolean()),si(r)&&(r.freeBooleanPointer(),n instanceof We&&n.invalidateDownstreamBooleanData().recomputeBoolean()),r.dispose()}else if(A.path.length===0&&A.type===9){let r=this.find(A.id);if(r===void 0)throw new Error("unexpected");let n=r.parent;r.cloner?.resetOnMove(),this.markToExpandCloner(r);let i=A.parent===null?this:this.find(A.parent);if(i===void 0)throw new Error("unexpected");i.add(r),this.markToExpandCloner(r),r.invalidateClonerTransform(r),r.updateVisible(),r.resetBBoxNeedsUpdate();let a=A.localIndex;i.children.splice(a,0,i.children.pop()),si(r)&&(r.invalidateUpstreamBooleanData(),ai(r.parent)?r.parent.invalidateDownstreamBooleanData().recomputeBoolean():n instanceof We&&n.invalidateDownstreamBooleanData().recomputeBoolean())}this.markNeedsUpdateRendererDirty(),this.markGeometryCacheDirty()}updateEntityByOp(A,t,r,n){let i=this.find(A);i&&ih(i,t,r,{scene:this,shared:n})}get enableFog(){return this.fog!==null}set enableFog(A){this.fog=A===!0?this.backupFog:null}init(A,t){if(this.createChildrenObjects(A.objects,this,t),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(pe(A.backgroundColor,t)),this.updateFog(A.fog,t),this.updateAmbientLight(A.environment.ambientLight,t),this.activeCamera=this.personalCamera,A.publish.playCamera!==null){let r=this.find(A.publish.playCamera);r instanceof jt&&this.switchActiveCamera(r)}this.traverseEntity(r=>{ai(r)&&r.recomputeBoolean()}),this.doPendingExpandCloner()}clearScene(){for(let A of this.children)Et(A)&&A.disposeRecursively();this.children.length=0}resetAfterClear(A,t){this.init(A,t)}createPersonalCamera(){let A=new jt(gc.PERSONAL_CAMERA_ID,{...ho.defaultData,name:"Personal Camera"});return A.objectHelper.visible=!1,this.registerObjectCreatedInLegacy(A),A}raycast(A){let t=[],r=n=>{for(let i of n.children)Et(i)&&!i.raycastLock&&i.visible&&((si(i)||Xm(i)&&this.enableHelpers&&i.objectHelper.visible)&&(A.intersectObject(i,!1,t),uh(i,A,t)),r(i))};return r(this),t}traverseEntity(A){for(let t of this.children)Et(t)&&t.traverseEntity(A)}traverseVisibleEntity(A){for(let t of this.children)Et(t)&&t.visible&&t.traverseVisibleEntity(A)}updateFog(A,t){this.enableFog=A.enabled,this.fogUseBGColor=A.useBackgroundColor,A.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=pe(A.color,t),this.backupFog.near=A.near,this.backupFog.far=A.far}dispose(){this.clearScene()}updateAmbientLight(A,t){A.color!==void 0&&(this.ambientLight.color=pe(A.color,t)),A.intensity!==void 0&&(this.ambientLight.intensity=A.intensity),A.groundColor!==void 0&&(this.ambientLight.groundColor=pe(A.groundColor,t)),A.enabled!==void 0&&(this.ambientLight.visible=A.enabled)}switchActiveCamera(A){this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=A,A.objectHelper.visible=!1}setBackgroundColor(A){this.bgColor=A,this.fogUseBGColor===!0&&(this.backupFog.color=A)}createChildrenObjects(A,t,r){let n=0;for(let i of A)this.createChildObject(i.id,i.data,i.children,t,n,r),n+=1}registerObjectCreatedInLegacy(A){this.entityByUuid[A.uuid]=A}unregisterObject(A){delete this.entityByUuid[A.uuid];for(let t of A.children)this.unregisterObject(t)}createChildObject(A,t,r,n,i,a){let l={scene:this,shared:a},u=yc(A,t,l);return u&&(this.entityByUuid[A]=u,n.add(u),n.children.splice(i,0,n.children.pop()),this.createChildrenObjects(r,u,a),u.updateState(t,l),u.updateVisible()),u.cloner&&this.toExpandCloner.add(u),u}getCenter(A){let t=[];for(let n=0,i=A.length;n<i;++n){let{id:a,recursive:l}=A[n],u=this.find(a),s=l?u.recursiveBBox:u.singleBBox;t.push(...s.vertices)}let r=new bO;return r.setFromPoints(t),r.getCenter(dh),dh}copyMatrixWorld(A,t){if(A===null){t.identity();return}let r=this.find(A);r?t.copy(r.matrixWorld):t.identity()}copyParentMatrixWorld(A,t){if(A===null){t.identity();return}let r=this.find(A)?.parent;r?t.copy(r.matrixWorld):t.identity()}traverseMaterial(A){this.traverseEntity(t=>{if(t instanceof Ae)if(Array.isArray(t.material))for(let r=0;r<t.material.length;r++)t.material[r]instanceof Ce&&A(t.material[r]);else t.material instanceof Ce&&A(t.material)})}updateCanvasSize(A,t){this.activeCamera.setViewplaneSize(A,t);let r,n;A>=t?(r=t/A,n=1):(r=1,n=A/t),this.traverseMaterial(i=>{i.getLayersOfType("transmission").forEach(l=>{l.uniforms[`f${l.id}_aspectRatio`].value.x=r,l.uniforms[`f${l.id}_aspectRatio`].value.y=n})})}},di=gc;di.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";import{DRACOLoader as TO}from"three/examples/jsm/loaders/DRACOLoader.js";var pr;function OO(){return pr||(pr=new TO,pr.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),pr.decoderPending}async function NO(o){if(pr){let e={attributeIDs:pr.defaultAttributeIDs,attributeTypes:pr.defaultAttributeTypes,useUniqueIDs:!1},A;try{A=await pr.decodeGeometry(new Int8Array(o).buffer,e)}catch(t){console.error(t)}if(A)return{index:A.index?{array:A.index.array}:void 0,attributes:Object.entries(A.attributes).map(([t,r])=>({name:t,itemSize:r.itemSize,array:r.array}))}}return null}async function ph(o,e){let[A,t]=ba(Di.deserialize(new Uint8Array(o)));Ip(A);let r=[];A.scene.objects.traverse((n,i)=>{i.type==="Mesh"&&i.geometry.type==="NonParametricGeometry"&&i.geometry.data.draco!==void 0&&r.push(i)}),r.length&&await OO();for(let n of r){let i=await NO(oe(n.geometry.data.draco));if(i){i.index&&(n.geometry.data.index={array:i.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let a={};i.attributes.forEach(({name:l,array:u,itemSize:s})=>{a[l]={array:u,itemSize:s,type:"Float32Array",normalized:!1}}),n.geometry.data.attributes=a,n.geometry.data.draco=void 0}}return e&&e(A),t.result().data}import{Mesh as TY}from"three";import{mergeBufferGeometries as PY}from"three/examples/jsm/utils/BufferGeometryUtils.js";function fh(o){let e;if(!!o.index)for(let A=0;A<o.index.array.length;A+=3)e=o.index.array[A],o.index.array[A]=o.index.array[A+2],o.index.array[A+2]=e}import{Color as mh,ShaderLib as PO}from"three";function hh(o){let e=new Set;return o.traverse(A=>{if(A instanceof At)if(GA(A.material))A.material.forEach(t=>{let r=t;e.has(r)||e.add(r)});else{let t=A.material;e.has(t)||e.add(t)}}),e.forEach(A=>{if(A instanceof Array)return;let t=A.onBeforeCompile.bind(A);if(CO(A)){Object.assign(A,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new mh,specularColor:new mh});let r=0;A.onBeforeCompile=(n,i)=>{t&&t(n,i),n.uniforms=Object.assign({},PO.physical.uniforms,n.uniforms),A.getLayersOfType("transmission").forEach(a=>{if(n.uniforms.transmissionSamplerMap.value){let l=a.color;l&&(l.transmissionSamplerMap.value=n.uniforms.transmissionSamplerMap.value,l.transmissionSamplerSize.value=n.uniforms.transmissionSamplerSize.value)}else r++,r<2&&(A.needsUpdate=!0)})}}else IO(A)||(A.onBeforeCompile=(r,n)=>{t&&t(r,n),A.transparent=!1})}),o}function CO(o){return o.getLayersOfType("transmission").length>0}function IO(o){let e=0;return o.layers.forEach(A=>{if(A.type!=="light"&&A.type!=="fresnel"){let t=A.uniforms["f"+A.id+"_alpha"];t&&(e+=(1-e)*t.value)}}),e<1}function yh(o){return o.traverse(e=>{if(e.type==="Camera"){let A=e;A.type=A.cameraType}}),o}function gh(o){let e=[],A=(t,r=0)=>{let n=r>0?t+r:t;return e.includes(n)?A(t,r+1):n};return o.traverse(t=>{if(e.includes(t.name)){let r=t.name,n=A(t.name);if(t.name=n,t.isMesh){let i=t;i.material instanceof Array?i.material.forEach(a=>{a.name=a.name.replace(r,n)}):i.material.isAsset||(i.material.name=i.material.name.replace(r,n))}}e.push(t.name)}),o}import{mergeBufferGeometries as LO}from"three/examples/jsm/utils/BufferGeometryUtils.js";function xh(o){let e=[];return o.traverse(A=>{A instanceof Xo&&e.push(A)}),e.forEach(A=>{let t=A.object,n=A.children.map(a=>{a.updateMatrix();let l=a.geometry.clone().applyMatrix4(a.matrix);return a.matrix.determinant()<0&&fh(l),l}),i=LO(A.parameters.hideBase?n:[t instanceof Ae?t.geometry:[],...n]);t instanceof Ae&&(t.geometry=i),A.removeFromParent(),t.setFromClonerState(null,{scene:o,shared:Sm})}),o}function vh(o){return o.traverse(e=>{e.matrixAutoUpdate=!0}),o}function bh(o){Object.values(o.shared.materials).forEach(e=>{xc(e)}),o.scene.objects.traverse((e,A)=>{"material"in A?xc(A.material):"materials"in A&&A.materials.forEach(t=>{xc(t)})})}function xc(o){if(typeof o=="string")return;let e=[];o.layers.forEach((A,t)=>{A.type==="outline"&&e.push(t)}),e.reverse().forEach(A=>{o.layers.delete(A)}),e.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var wh="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",vc=class extends BO{load(e,A,t,r=console.error){let n=new MO(this.manager);n.setPath(this.path),n.setResponseType("arraybuffer"),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),e.endsWith(".spline")?console.warn(wh+" The .spline files are only meant to be used by the Editor."):e.endsWith(".splinecode")||console.warn(wh),n.load(e,async i=>{try{if(typeof i=="string")throw new Error("The .spline file is not binary!");let a=await this.parse(i);A(a)}catch(a){r(a)}},t,r)}async parse(e){let A=await ph(e,bh);nh(A)&&await bm();let t=new Mr(A.shared);Object.values(t.getMaterials()).forEach(i=>Object.assign(i,{isAsset:!0}));let r=new di(A.scene,t);r.remove(r.personalCamera),A.scene.environment.ambientLight.enabled||r.remove(r.ambientLight);let n=A.scene.publish.playCamera;if(n){let i=r.find(n);i&&Ym(i)&&Object.assign(i,{makeDefault:!0})}return r=xh(r),r=hh(r),r=yh(r),r=gh(r),r=vh(r),r}};export{vc as default};
|