1 2!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3f431e2f-c564-5369-aed2-819851c9a45e")}catch(e){}}(); 3!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._posthogChunkIds=e._posthogChunkIds||{},e._posthogChunkIds[n]="01a0d3ec-edd3-72e2-b47a-d7c7de674bfc")}catch(e){}}();(function(){try{var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{};e.SENTRY_RELEASE={id:`a8094e049e03f829f1c2e300bc93708abe9374a5`}}catch{}})();import{a as e,c as t,i as n,l as r,n as i,r as a,s as o,t as s,u as c}from"./rails-tune-B13_YDfh.js";import{At as l,Bt as u,Ct as d,Ht as f,I as p,It as m,Lt as h,M as g,Mt as _,N as v,O as y,Pt as b,T as x,Ut as S,Vt as C,Z as w,_ as T,_t as E,at as D,b as O,c as k,ct as A,dt as j,en as M,f as N,h as P,i as F,it as I,k as L,m as ee,n as R,on as z,ot as te,q as B,rn as V,rt as H,sn as U,t as ne,tn as re,u as ie,un as W,ut as ae,v as oe,vt as se,x as G,yt as K,zt as ce}from"./three.module-BbdaTAM2.js";import{t as le}from"./guardWebGLRenderer-DJVzRa0c.js";var ue=class extends ce{constructor(){super(),this.name=`RoomEnvironment`,this.position.y=-3.5;let e=new ie;e.deleteAttribute(`uv`);let t=new j({side:1}),n=new j,r=new d(16777215,900,28,2);r.position.set(.418,16.199,.3),this.add(r);let i=new D(e,t);i.position.set(-.757,13.219,.717),i.scale.set(31.713,28.305,28.591),this.add(i);let a=new p(e,n,6),o=new E;o.position.set(-10.906,2.009,1.846),o.rotation.set(0,-.195,0),o.scale.set(2.328,7.905,4.651),o.updateMatrix(),a.setMatrixAt(0,o.matrix),o.position.set(-5.607,-.754,-.758),o.rotation.set(0,.994,0),o.scale.set(1.97,1.534,3.955),o.updateMatrix(),a.setMatrixAt(1,o.matrix),o.position.set(6.167,.857,7.803),o.rotation.set(0,.561,0),o.scale.set(3.927,6.285,3.687),o.updateMatrix(),a.setMatrixAt(2,o.matrix),o.position.set(-2.017,.018,6.124),o.rotation.set(0,.333,0),o.scale.set(2.002,4.566,2.064),o.updateMatrix(),a.setMatrixAt(3,o.matrix),o.position.set(2.291,-.756,-2.621),o.rotation.set(0,-.286,0),o.scale.set(1.546,1.552,1.496),o.updateMatrix(),a.setMatrixAt(4,o.matrix),o.position.set(-2.193,-.369,-5.547),o.rotation.set(0,.516,0),o.scale.set(3.875,3.487,2.986),o.updateMatrix(),a.setMatrixAt(5,o.matrix),this.add(a);let s=new D(e,de(50));s.position.set(-16.116,14.37,8.208),s.scale.set(.1,2.428,2.739),this.add(s);let c=new D(e,de(50));c.position.set(-16.109,18.021,-8.207),c.scale.set(.1,2.425,2.751),this.add(c);let l=new D(e,de(17));l.position.set(14.904,12.198,-1.832),l.scale.set(.15,4.265,6.331),this.add(l);let u=new D(e,de(43));u.position.set(-.462,8.89,14.52),u.scale.set(4.38,5.441,.088),this.add(u);let f=new D(e,de(20));f.position.set(3.235,11.486,-12.541),f.scale.set(2.5,2,.1),this.add(f);let m=new D(e,de(100));m.position.set(0,20,0),m.scale.set(1,.1,1),this.add(m)}dispose(){let e=new Set;this.traverse(t=>{t.isMesh&&(e.add(t.geometry),e.add(t.material))});for(let t of e)t.dispose()}};function de(e){return new A({color:0,emissive:16777215,emissiveIntensity:e})}var fe=h,pe=class e extends w{constructor(e){super(e),this.defaultDPI=90,this.defaultUnit=`px`}load(e,t,n,r){let i=this,a=new y(i.manager);a.setPath(i.path),a.setRequestHeader(i.requestHeader),a.setWithCredentials(i.withCredentials),a.load(e,function(n){try{t(i.parse(n))}catch(t){r?r(t):console.error(t),i.manager.itemError(e)}},n,r)}parse(e){let t=this;function n(e,t){if(e.nodeType!==1)return;let a=b(e),o=!1,f=null;switch(e.nodeName){case`svg`:t=m(e,t);break;case`style`:i(e);break;case`g`:t=m(e,t);break;case`path`:t=m(e,t),e.hasAttribute(`d`)&&(f=r(e));break;case`rect`:t=m(e,t),f=s(e);break;case`polygon`:t=m(e,t),f=c(e);break;case`polyline`:t=m(e,t),f=l(e);break;case`circle`:t=m(e,t),f=u(e);break;case`ellipse`:t=m(e,t),f=d(e);break;case`line`:t=m(e,t),f=p(e);break;case`defs`:o=!0;break;case`use`:t=m(e,t);let a=(e.getAttributeNS(`http://www.w3.org/1999/xlink`,`href`)||``).substring(1),h=e.viewportElement.getElementById(a);
3h?n(h,t):console.warn(`SVGLoader: 'use node' references non-existent node id: `+a);break;default:}f&&(t.fill!==void 0&&t.fill!==`none`&&f.color.setStyle(t.fill,fe),S(f,L),O.push(f),f.userData={node:e,style:t});let h=e.childNodes;for(let e=0;e<h.length;e++){let r=h[e];o&&r.nodeName!==`style`&&r.nodeName!==`defs`||n(r,t)}a&&(A.pop(),A.length>0?L.copy(A[A.length-1]):L.identity())}function r(e){let t=new f,n=new z,r=new z,i=new z,o=!0,s=!1,c=e.getAttribute(`d`);if(c===``||c===`none`)return null;let l=c.match(/[a-df-z][^a-df-z]*/gi);for(let e=0,c=l.length;e<c;e++){let c=l[e],u=c.charAt(0),d=c.slice(1).trim();o===!0&&(s=!0,o=!1);let f;switch(u){case`M`:f=g(d);for(let e=0,a=f.length;e<a;e+=2)n.x=f[e+0],n.y=f[e+1],r.x=n.x,r.y=n.y,e===0?t.moveTo(n.x,n.y):t.lineTo(n.x,n.y),e===0&&i.copy(n);break;case`H`:f=g(d);for(let e=0,a=f.length;e<a;e++)n.x=f[e],r.x=n.x,r.y=n.y,t.lineTo(n.x,n.y),e===0&&s===!0&&i.copy(n);break;case`V`:f=g(d);for(let e=0,a=f.length;e<a;e++)n.y=f[e],r.x=n.x,r.y=n.y,t.lineTo(n.x,n.y),e===0&&s===!0&&i.copy(n);break;case`L`:f=g(d);for(let e=0,a=f.length;e<a;e+=2)n.x=f[e+0],n.y=f[e+1],r.x=n.x,r.y=n.y,t.lineTo(n.x,n.y),e===0&&s===!0&&i.copy(n);break;case`C`:f=g(d);for(let e=0,a=f.length;e<a;e+=6)t.bezierCurveTo(f[e+0],f[e+1],f[e+2],f[e+3],f[e+4],f[e+5]),r.x=f[e+2],r.y=f[e+3],n.x=f[e+4],n.y=f[e+5],e===0&&s===!0&&i.copy(n);break;case`S`:f=g(d);for(let e=0,a=f.length;e<a;e+=4)t.bezierCurveTo(h(n.x,r.x),h(n.y,r.y),f[e+0],f[e+1],f[e+2],f[e+3]),r.x=f[e+0],r.y=f[e+1],n.x=f[e+2],n.y=f[e+3],e===0&&s===!0&&i.copy(n);break;case`Q`:f=g(d);for(let e=0,a=f.length;e<a;e+=4)t.quadraticCurveTo(f[e+0],f[e+1],f[e+2],f[e+3]),r.x=f[e+0],r.y=f[e+1],n.x=f[e+2],n.y=f[e+3],e===0&&s===!0&&i.copy(n);break;case`T`:f=g(d);for(let e=0,a=f.length;e<a;e+=2){let a=h(n.x,r.x),o=h(n.y,r.y);t.quadraticCurveTo(a,o,f[e+0],f[e+1]),r.x=a,r.y=o,n.x=f[e+0],n.y=f[e+1],e===0&&s===!0&&i.copy(n)}break;case`A`:f=g(d,[3,4],7);for(let e=0,o=f.length;e<o;e+=7){if(f[e+5]==n.x&&f[e+6]==n.y)continue;let o=n.clone();n.x=f[e+5],n.y=f[e+6],r.x=n.x,r.y=n.y,a(t,f[e],f[e+1],f[e+2],f[e+3],f[e+4],o,n),e===0&&s===!0&&i.copy(n)}break;case`m`:f=g(d);for(let e=0,a=f.length;e<a;e+=2)n.x+=f[e+0],n.y+=f[e+1],r.x=n.x,r.y=n.y,e===0?t.moveTo(n.x,n.y):t.lineTo(n.x,n.y),e===0&&i.copy(n);break;case`h`:f=g(d);for(let e=0,a=f.length;e<a;e++)n.x+=f[e],r.x=n.x,r.y=n.y,t.lineTo(n.x,n.y),e===0&&s===!0&&i.copy(n);break;case`v`:f=g(d);for(let e=0,a=f.length;e<a;e++)n.y+=f[e],r.x=n.x,r.y=n.y,t.lineTo(n.x,n.y),e===0&&s===!0&&i.copy(n);break;case`l`:f=g(d);for(let e=0,a=f.length;e<a;e+=2)n.x+=f[e+0],n.y+=f[e+1],r.x=n.x,r.y=n.y,t.lineTo(n.x,n.y),e===0&&s===!0&&i.copy(n);break;case`c`:f=g(d);for(let e=0,a=f.length;e<a;e+=6)t.bezierCurveTo(n.x+f[e+0],n.y+f[e+1],n.x+f[e+2],n.y+f[e+3],n.x+f[e+4],n.y+f[e+5]),r.x=n.x+f[e+2],r.y=n.y+f[e+3],n.x+=f[e+4],n.y+=f[e+5],e===0&&s===!0&&i.copy(n);break;case`s`:f=g(d);for(let e=0,a=f.length;e<a;e+=4)t.bezierCurveTo(h(n.x,r.x),h(n.y,r.y),n.x+f[e+0],n.y+f[e+1],n.x+f[e+2],n.y+f[e+3]),r.x=n.x+f[e+0],r.y=n.y+f[e+1],n.x+=f[e+2],n.y+=f[e+3],e===0&&s===!0&&i.copy(n);break;case`q`:f=g(d);for(let e=0,a=f.length;e<a;e+=4)t.quadraticCurveTo(n.x+f[e+0],n.y+f[e+1],n.x+f[e+2],n.y+f[e+3]),r.x=n.x+f[e+0],r.y=n.y+f[e+1],n.x+=f[e+2],n.y+=f[e+3],e===0&&s===!0&&i.copy(n);break;case`t`:f=g(d);for(let e=0,a=f.length;e<a;e+=2){let a=h(n.x,r.x),o=h(n.y,r.y);t.quadraticCurveTo(a,o,n.x+f[e+0],n.y+f[e+1]),r.x=a,r.y=o,n.x+=f[e+0],n.y+=f[e+1],e===0&&s===!0&&i.copy(n)}break;case`a`:f=g(d,[3,4],7);for(let e=0,o=f.length;e<o;e+=7){if(f[e+5]==0&&f[e+6]==0)continue;let o=n.clone();n.x+=f[e+5],n.y+=f[e+6],r.x=n.x,r.y=n.y,a(t,f[e],f[e+1],f[e+2],f[e+3],f[e+4],o,n),e===0&&s===!0&&i.copy(n)}break;case`Z`:case`z`:t.currentPath.autoClose=!0,t.currentPath.curves.length>0&&(n.copy(i),t.currentPath.currentPoint.copy(n),o=!0);break;default:console.warn(c)}s=!1}return t}function i(e){if(!(!e.sheet||!e.sheet.cssRules||!e.sheet.cssRules.length))for(let t=0;t<e.sheet.cssRules.length;t++){let n=e.sheet.cssRules[t];if(n.type!==1)continue;let r=n.selectorText.split(/,/gm).filter(Boolean).map(e=>e.trim());for(let e=0;e<r.length;e++){let t=Object.fromEntries(Object.entries(n.style).filter(([,e])=>e!==``));k[r[e]]=Object.assign(k[r[e]]||{},t)}}}function a(e,t,n,r,i,a,s,c){if(t==0||n==0){e.lineTo(c.x,c.y);return}r=r*Math.PI/180,t=Math.abs(t),n=Math.abs(n);let l=(s.x-c.x)/2,u=(s.y-c.y)/2,d=Math.cos(r)*l+Math.sin(r)*u,f=-Math.sin(r)*l+Math.cos(r)*u,p=t*t,m=n*n,h=d*d,g=f*f,_=h/p+g/m;if(_>1){let e=Math.sqrt(_);t=e*t,n=e*n,p=t*t,m=n*n}let v=p*g+m*h,y=(p*m-v)/v,b=Math.sqrt(Math.max(0,y));i===a&&(b=-b);let x=b*t*f/n,S=-b*n*d/t,C=Math.cos(r)*x-Math.sin(r)*S+(s.x+c.x)/2,w=Math.sin(r)*x+Math.cos(r)*S+(s.y+c.y)/2,T=o(1,0,(d-x)/t,(f-S)/n),E=o((d-x)/t,(f-S)/n,(-d-x)/t,(-f-S)/n)%(Math.PI*2);e.currentPath.absellipse(C,w,t,n,T,T+E,a===0,r)}function o(e,t,n,r){let i=e*n+t*r,a=Math.sqrt(e*e+t*t)*Math.sqrt(n*n+r*r),o=Math.acos(Math.max(-1,Math.min(1,i/a)));return e*r-t*n<0&&(o=-o),o}function s(e){let t=y(e.getAttribute(`x`)||0),n=y(e.getAttribute(`y`)||0),r=y(e.getAttribute(`rx`)||e.getAttribute(`ry`)||0),i=y(e.getAttribute(`ry`)||e.getAttribute(`rx`)||0),a=y(e.getAttribute(`width`)),o=y(e.getAttribute(`height`)),s=.448084975506,c=new f;return c.moveTo(t+r,n),c.lineTo(t+a-r,n),(r!==0||i!==0)&&c.bezierCurveTo(t+a-r*s,n,t+a,n+i*s,t+a,n+i),c.lineTo(t+a,n+o-i),(r!==0||i!==0)&&c.bezierCurveTo(t+a,n+o-i*s,t+a-r*s,n+o,t+a-r,n+o),c.lineTo(t+r,n+o),(r!==0||i!==0)&&c.bezierCurveTo(t+r*s,n+o,t,n+o-i*s,t,n+o-i),c.lineTo(t,n+i),(r!==0||i!==0)&&c.bezierCurveTo(t,n+i*s,t+r*s,n,t+r,n),c}function c(e){function t(e,t,n){let a=y(t),o=y(n);i===0?r.moveTo(a,o):r.lineTo(a,o),i++}let n=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,r=new f,i=0;return e.getAttribute(`points`).replace(n,t),r.currentPath.autoClose=!0,r}function l(e){function t(e,t,n){let a=y(t),o=y(n);i===0?r.moveTo(a,o):r.lineTo(a,o),i++}let n=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,r=new f,i=0;return e.getAttribute(`points`).replace(n,t),r.currentPath.autoClose=!1,r}function u(e){let t=y(e.getAttribute(`cx`)||0),n=y(e.getAttribute(`cy`)||0),r=y(e.getAttribute(`r`)||0),i=new K;i.absarc(t,n,r,0,Math.PI*2);let a=new f;return a.subPaths.push(i),a}function d(e){let t=y(e.getAttribute(`cx`)||0),n=y(e.getAttribute(`cy`)||0),r=y(e.getAttribute(`rx`)||0),i=y(e.getAttribute(`ry`)||0),a=new K;a.absellipse(t,n,r,i,0,Math.PI*2);let o=new f;return o.subPaths.push(a),o}function p(e){let t=y(e.getAttribute(`x1`)||0),n=y(e.getAttribute(`y1`)||0),r=y(e.getAttribute(`x2`)||0),i=y(e.getAttribute(`y2`)||0),a=new f;return a.moveTo(t,n),a.lineTo(r,i),a.currentPath.autoClose=!1,a}function m(e,t){t=Object.assign({},t);let n={};if(e.hasAttribute(`class`)){let t=e.getAttribute(`class`).split(/\s/).filter(
3Boolean).map(e=>e.trim());for(let e=0;e<t.length;e++)n=Object.assign(n,k[`.`+t[e]])}e.hasAttribute(`id`)&&(n=Object.assign(n,k[`#`+e.getAttribute(`id`)]));function r(r,i,a){a===void 0&&(a=function(e){return e.startsWith(`url`)&&console.warn(`SVGLoader: url access in attributes is not implemented.`),e}),e.hasAttribute(r)&&(t[i]=a(e.getAttribute(r))),n[i]&&(t[i]=a(n[i])),e.style&&e.style[r]!==``&&(t[i]=a(e.style[r]))}function i(e){return Math.max(0,Math.min(1,y(e)))}function a(e){return Math.max(0,y(e))}return r(`fill`,`fill`),r(`fill-opacity`,`fillOpacity`,i),r(`fill-rule`,`fillRule`),r(`opacity`,`opacity`,i),r(`stroke`,`stroke`),r(`stroke-opacity`,`strokeOpacity`,i),r(`stroke-width`,`strokeWidth`,a),r(`stroke-linejoin`,`strokeLineJoin`),r(`stroke-linecap`,`strokeLineCap`),r(`stroke-miterlimit`,`strokeMiterLimit`,a),r(`visibility`,`visibility`),t}function h(e,t){return e-(t-e)}function g(e,t,n){if(typeof e!=`string`)throw TypeError(`Invalid input: `+typeof e);let r={SEPARATOR:/[ \t\r\n\,.\-+]/,WHITESPACE:/[ \t\r\n]/,DIGIT:/[\d]/,SIGN:/[-+]/,POINT:/\./,COMMA:/,/,EXP:/e/i,FLAGS:/[01]/},i=0,a=!0,o=``,s=``,c=[];function l(e,t,n){let r=SyntaxError(`Unexpected character "`+e+`" at index `+t+`.`);throw r.partial=n,r}function u(){o!==``&&(s===``?c.push(Number(o)):c.push(Number(o)*10**Number(s))),o=``,s=``}let d,f=e.length;for(let p=0;p<f;p++){if(d=e[p],Array.isArray(t)&&t.includes(c.length%n)&&r.FLAGS.test(d)){i=1,o=d,u();continue}if(i===0){if(r.WHITESPACE.test(d))continue;if(r.DIGIT.test(d)||r.SIGN.test(d)){i=1,o=d;continue}if(r.POINT.test(d)){i=2,o=d;continue}r.COMMA.test(d)&&(a&&l(d,p,c),a=!0)}if(i===1){if(r.DIGIT.test(d)){o+=d;continue}if(r.POINT.test(d)){o+=d,i=2;continue}if(r.EXP.test(d)){i=3;continue}r.SIGN.test(d)&&o.length===1&&r.SIGN.test(o[0])&&l(d,p,c)}if(i===2){if(r.DIGIT.test(d)){o+=d;continue}if(r.EXP.test(d)){i=3;continue}r.POINT.test(d)&&o[o.length-1]===`.`&&l(d,p,c)}if(i===3){if(r.DIGIT.test(d)){s+=d;continue}if(r.SIGN.test(d)){if(s===``){s+=d;continue}s.length===1&&r.SIGN.test(s)&&l(d,p,c)}}r.WHITESPACE.test(d)?(u(),i=0,a=!1):r.COMMA.test(d)?(u(),i=0,a=!0):r.SIGN.test(d)?(u(),i=1,o=d):r.POINT.test(d)?(u(),i=2,o=d):l(d,p,c)}return u(),c}let _=[`mm`,`cm`,`in`,`pt`,`pc`,`px`],v={mm:{mm:1,cm:.1,in:1/25.4,pt:72/25.4,pc:6/25.4,px:-1},cm:{mm:10,cm:1,in:1/2.54,pt:72/2.54,pc:6/2.54,px:-1},in:{mm:25.4,cm:2.54,in:1,pt:72,pc:6,px:-1}
3,pt:{mm:25.4/72,cm:2.54/72,in:1/72,pt:1,pc:6/72,px:-1},pc:{mm:25.4/6,cm:2.54/6,in:1/6,pt:72/6,pc:1,px:-1},px:{px:1}};function y(e){let n=`px`;if(typeof e==`string`||e instanceof String)for(let t=0,r=_.length;t<r;t++){let r=_[t];if(e.endsWith(r)){n=r,e=e.substring(0,e.length-r.length);break}}let r;return n===`px`&&t.defaultUnit!==`px`?r=v.in[t.defaultUnit]/t.defaultDPI:(r=v[n][t.defaultUnit],r<0&&(r=v[n].in*t.defaultDPI)),r*parseFloat(e)}function b(e){if(!(e.hasAttribute(`transform`)||e.nodeName===`use`&&(e.hasAttribute(`x`)||e.hasAttribute(`y`))))return null;let t=x(e);return A.length>0&&t.premultiply(A[A.length-1]),L.copy(t),A.push(t),t}function x(e){let t=new H,n=j;if(e.nodeName===`use`&&(e.hasAttribute(`x`)||e.hasAttribute(`y`))){let n=y(e.getAttribute(`x`)||0),r=y(e.getAttribute(`y`)||0);t.translate(n,r)}if(e.hasAttribute(`transform`)){let r=e.getAttribute(`transform`).split(`)`);for(let e=r.length-1;e>=0;e--){let i=r[e].trim();if(i===``)continue;let a=i.indexOf(`(`),o=i.length;if(a>0&&a<o){let e=i.slice(0,a),t=g(i.slice(a+1));switch(n.identity(),e){case`translate`:if(t.length>=1){let e=t[0],r=0;t.length>=2&&(r=t[1]),n.translate(e,r)}break;case`rotate`:if(t.length>=1){let e=0,r=0,i=0;e=t[0]*Math.PI/180,t.length>=3&&(r=t[1],i=t[2]),M.makeTranslation(-r,-i),N.makeRotation(e),P.multiplyMatrices(N,M),M.makeTranslation(r,i),n.multiplyMatrices(M,P)}break;case`scale`:if(t.length>=1){let e=t[0],r=e;t.length>=2&&(r=t[1]),n.scale(e,r)}break;case`skewX`:t.length===1&&n.set(1,Math.tan(t[0]*Math.PI/180),0,0,1,0,0,0,1);break;case`skewY`:t.length===1&&n.set(1,0,0,Math.tan(t[0]*Math.PI/180),1,0,0,0,1);break;case`matrix`:t.length===6&&n.set(t[0],t[2],t[4],t[1],t[3],t[5],0,0,1);break}}t.premultiply(n)}}return t}function S(e,t){function n(e){I.set(e.x,e.y,1).applyMatrix3(t),e.set(I.x,I.y)}function r(e){let n=e.xRadius,r=e.yRadius,i=Math.cos(e.aRotation),a=Math.sin(e.aRotation),o=new U(n*i,n*a,0),s=new U(-r*a,r*i,0),c=o.applyMatrix3(t),l=s.applyMatrix3(t),u=j.set(c.x,l.x,0,c.y,l.y,0,0,0,1),d=M.copy(u).invert(),f=N.copy(d).transpose().multiply(d).elements,p=D(f[0],f[1],f[4]),m=Math.sqrt(p.rt1),h=Math.sqrt(p.rt2);if(e.xRadius=1/m,e.yRadius=1/h,e.aRotation=Math.atan2(p.sn,p.cs),!((e.aEndAngle-e.aStartAngle)%(2*Math.PI)<2**-52)){let n=M.set(m,0,0,0,h,0,0,0,1),r=N.set(p.cs,p.sn,0,-p.sn,p.cs,0,0,0,1),i=n.multiply(r).multiply(u),a=e=>{let{x:t,y:n}=new U(Math.cos(e),Math.sin(e),0).applyMatrix3(i);return Math.atan2(n,t)};e.aStartAngle=a(e.aStartAngle),e.aEndAngle=a(e.aEndAngle),C(t)&&(e.aClockwise=!e.aClockwise)}}function i(e){let n=T(t),r=E(t);e.xRadius*=n,e.yRadius*=r;let i=n>2**-52?Math.atan2(t.elements[1],t.elements[0]):Math.atan2(-t.elements[3],t.elements[4]);e.aRotation+=i,C(t)&&(e.aStartAngle*=-1,e.aEndAngle*=-1,e.aClockwise=!e.aClockwise)}let a=e.subPaths;for(let e=0,o=a.length;e<o;e++){let o=a[e].curves;for(let e=0;e<o.length;e++){let a=o[e];a.isLineCurve?(n(a.v1),n(a.v2)):a.isCubicBezierCurve?(n(a.v0),n(a.v1),n(a.v2),n(a.v3)):a.isQuadraticBezierCurve?(n(a.v0),n(a.v1),n(a.v2)):a.isEllipseCurve&&(F.set(a.aX,a.aY),n(F),a.aX=F.x,a.aY=F.y,w(t)?r(a):i(a))}}}function C(e){let t=e.elements;return t[0]*t[4]-t[1]*t[3]<0}function w(e){let t=e.elements,n=t[0]*t[3]+t[1]*t[4];if(n===0)return!1;let r=T(e),i=E(e);return Math.abs(n/(r*i))>2**-52}function T(e){let t=e.elements;return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function E(e){let t=e.elements;return Math.sqrt(t[3]*t[3]+t[4]*t[4])}function D(e,t,n){let r,i,a,o,s,c=e+n,l=e-n,u=Math.sqrt(l*l+4*t*t);return c>0?(r=.5*(c+u),s=1/r,i=e*s*n-t*s*t):c<0?i=.5*(c-u):(r=.5*u,i=-.5*u),a=l>0?l+u:l-u,Math.abs(a)>2*Math.abs(t)?(s=-2*t/a,o=1/Math.sqrt(1+s*s),a=s*o):Math.abs(t)===0?(a=1,o=0):(s=-.5*a/t,a=1/Math.sqrt(1+s*s),o=s*a),l>0&&(s=a,a=-o,o=s),{rt1:r,rt2:i,cs:a,sn:o}}let O=[],k={},A=[],j=new H,M=new H,N=new H,P=new H,F=new z,I=new U,L=new H,ee=new DOMParser().parseFromString(e,`image/svg+xml`);return n(ee.documentElement,{fill:`#000`,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:`miter`,strokeLineCap:`butt`,strokeMiterLimit:4}),{paths:O,xml:ee.documentElement}}static createShapes(e){let t=999999999,n={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:n.ORIGIN,t:0};
3function i(e,t,i,o){let s=e.x,c=t.x,l=i.x,u=o.x,d=e.y,f=t.y,p=i.y,m=o.y,h=(u-l)*(d-p)-(m-p)*(s-l),g=(c-s)*(d-p)-(f-d)*(s-l),_=(m-p)*(c-s)-(u-l)*(f-d),v=h/_,y=g/_;if(_===0&&h!==0||v<=0||v>=1||y<0||y>1)return null;if(h===0&&_===0){for(let l=0;l<2;l++)if(a(l===0?i:o,e,t),r.loc==n.ORIGIN){let e=l===0?i:o;return{x:e.x,y:e.y,t:r.t}}else if(r.loc==n.BETWEEN)return{x:+(s+r.t*(c-s)).toPrecision(10),y:+(d+r.t*(f-d)).toPrecision(10),t:r.t};return null}else{for(let s=0;s<2;s++)if(a(s===0?i:o,e,t),r.loc==n.ORIGIN){let e=s===0?i:o;return{x:e.x,y:e.y,t:r.t}}return{x:+(s+v*(c-s)).toPrecision(10),y:+(d+v*(f-d)).toPrecision(10),t:v}}}function a(e,t,i){let a=i.x-t.x,o=i.y-t.y,s=e.x-t.x,c=e.y-t.y,l=a*c-s*o;if(e.x===t.x&&e.y===t.y){r.loc=n.ORIGIN,r.t=0;return}if(e.x===i.x&&e.y===i.y){r.loc=n.DESTINATION,r.t=1;return}if(l<-(2**-52)){r.loc=n.LEFT;return}if(l>2**-52){r.loc=n.RIGHT;return}if(a*s<0||o*c<0){r.loc=n.BEHIND;return}if(Math.sqrt(a*a+o*o)<Math.sqrt(s*s+c*c)){r.loc=n.BEYOND;return}let u;u=a===0?c/o:s/a,r.loc=n.BETWEEN,r.t=u}function o(e,t){let n=[],r=[];for(let a=1;a<e.length;a++){let o=e[a-1],s=e[a];for(let e=1;e<t.length;e++){let a=t[e-1],c=t[e],l=i(o,s,a,c);l!==null&&n.find(e=>e.t<=l.t+2**-52&&e.t>=l.t-2**-52)===void 0&&(n.push(l),r.push(new z(l.x,l.y)))}}return r}function s(e,t,n){let r=new z;t.getCenter(r);let i=[];return n.forEach(t=>{t.boundingBox.containsPoint(r)&&o(e,t.points).forEach(e=>{i.push({identifier:t.identifier,isCW:t.isCW,point:e})})}),i.sort((e,t)=>e.point.x-t.point.x),i}function c(e,t,n,r,i){(i==null||i===``)&&(i=`nonzero`);let a=new z;e.boundingBox.getCenter(a);let o=s([new z(n,a.y),new z(r,a.y)],e.boundingBox,t);o.sort((e,t)=>e.point.x-t.point.x);let c=[],l=[];o.forEach(t=>{t.identifier===e.identifier?c.push(t):l.push(t)});let u=c[0].point.x,d=[],f=0;for(;f<l.length&&l[f].point.x<u;)d.length>0&&d[d.length-1]===l[f].identifier?d.pop():d.push(l[f].identifier),f++;if(d.push(e.identifier),i===`evenodd`){let t=d.length%2==0,n=d[d.length-2];return{identifier:e.identifier,isHole:t,for:n}}else if(i===`nonzero`){let n=!0,r=null,i=null;for(let e=0;e<d.length;e++){let a=d[e];
3n?(i=t[a].isCW,n=!1,r=a):i!==t[a].isCW&&(i=t[a].isCW,n=!0)}return{identifier:e.identifier,isHole:n,for:r}}else console.warn(`fill-rule: "`+i+`" is currently not implemented.`)}let l=t,u=-999999999,d=e.subPaths.map(e=>{let n=e.getPoints(),r=-999999999,i=t,a=-999999999,o=t;for(let e=0;e<n.length;e++){let t=n[e];t.y>r&&(r=t.y),t.y<i&&(i=t.y),t.x>a&&(a=t.x),t.x<o&&(o=t.x)}return u<=a&&(u=a+1),l>=o&&(l=o-1),{curves:e.curves,points:n,isCW:S.isClockWise(n),identifier:-1,boundingBox:new k(new z(o,i),new z(a,r))}});d=d.filter(e=>e.points.length>1);for(let e=0;e<d.length;e++)d[e].identifier=e;let f=d.map(t=>c(t,d,l,u,e.userData?e.userData.style.fillRule:void 0)),p=[];return d.forEach(e=>{if(!f[e.identifier].isHole){let t=new C;t.curves=e.curves,f.filter(t=>t.isHole&&t.for===e.identifier).forEach(e=>{let n=d[e.identifier],r=new K;r.curves=n.curves,t.holes.push(r)}),p.push(t)}}),p}static getStrokeStyle(e,t,n,r,i){return e=e===void 0?1:e,t=t===void 0?`#000`:t,n=n===void 0?`miter`:n,r=r===void 0?`butt`:r,i=i===void 0?4:i,{strokeColor:t,strokeWidth:e,strokeLineJoin:n,strokeLineCap:r,strokeMiterLimit:i}}static pointsToStroke(t,n,r,i){let a=[],o=[],s=[];if(e.pointsToStrokeWithBuffers(t,n,r,i,a,o,s)===0)return null;let c=new N;return c.setAttribute(`position`,new L(a,3)),c.setAttribute(`normal`,new L(o,3)),c.setAttribute(`uv`,new L(s,2)),c}static pointsToStrokeWithBuffers(e,t,n,r,i,a,o,s){let c=new z,l=new z,u=new z,d=new z,f=new z,p=new z,m=new z,h=new z,g=new z,_=new z,v=new z,y=new z,b=new z,x=new z,S=new z,C=new z,w=new z;n=n===void 0?12:n,r=r===void 0?.001:r,s=s===void 0?0:s,e=W(e);let T=e.length;if(T<2)return 0;let E=e[0].equals(e[T-1]),D,O=e[0],k,A=t.strokeWidth/2,j=1/(T-1),M=0,N,P,F,I,L=!1,ee=0,R=s*3,te=s*2;B(e[0],e[1],c).multiplyScalar(A),h.copy(e[0]).sub(c),g.copy(e[0]).add(c),_.copy(h),v.copy(g);for(let n=1;n<T;n++){D=e[n],k=n===T-1?E?e[1]:void 0:e[n+1];let r=c;if(B(O,D,r),u.copy(r).multiplyScalar(A),y.copy(D).sub(u),b.copy(D).add(u),N=M+j,P=!1,k!==void 0){B(D,k,l),u.copy(l).multiplyScalar(A),x.copy(D).sub(u),S.copy(D).add(u),F=!0,u.subVectors(k,O),r.dot(u)<0&&(F=!1),n===1&&(L=F),u.subVectors(k,D),u.normalize();let e=Math.abs(r.dot(u));if(e>2**-52){let n=A/e;u.multiplyScalar(-n),d.subVectors(D,O),f.copy(d).setLength(n).add(u),C.copy(f).negate();let r=f.length(),i=d.length();d.divideScalar(i),p.subVectors(k,D);let a=p.length();switch(p.divideScalar(a),d.dot(C)<i&&p.dot(C)<a&&(P=!0),w.copy(f).add(D),C.add(D),I=!1,P?F?(S.copy(C),b.copy(C)):(x.copy(C),y.copy(C)):U(),t.strokeLineJoin){case`bevel`:ne(F,P,N);break;case`round`:re(F,P),F?H(D,y,x,N,0):H(D,S,b,N,1);break;default:let e=A*t.strokeMiterLimit/r;if(e<1)if(t.strokeLineJoin!==`miter-clip`){ne(F,P,N);break}else re(F,P),F?(p.subVectors(w,y).multiplyScalar(e).add(y),m.subVectors(w,x).multiplyScalar(e).add(x),V(y,N,0),V(p,N,0),V(D,N,.5),V(D,N,.5),V(p,N,0),V(m,N,0),V(D,N,.5),V(m,N,0),V(x,N,0)):(p.subVectors(w,b).multiplyScalar(e).add(b),m.subVectors(w,S).multiplyScalar(e).add(S),V(b,N,1),V(p,N,1),V(D,N,.5),V(D,N,.5),V(p,N,1),V(m,N,1),V(D,N,.5),V(m,N,1),V(S,N,1));else P?(F?(V(g,M,1),V(h,M,0),V(w,N,0),V(g,M,1),V(w,N,0),V(C,N,1)):(V(g,M,1),V(h,M,0),V(w,N,1),V(h,M,0),V(C,N,0),V(w,N,1)),F?x.copy(w):S.copy(w)):F?(V(y,N,0),V(w,N,0),V(D,N,.5),V(D,N,.5),V(w,N,0),V(x,N,0)):(V(b,N,1),V(w,N,1),V(D,N,.5),V(D,N,.5),V(w,N,1),V(S,N,1)),I=!0;break}}else U()}else U();!E&&n===T-1&&ie(e[0],_,v,F,!0,M),M=N,O=D,h.copy(x),g.copy(S)}if(!E)ie(D,y,b,F,!1,N);else if(P&&i){let e=w,t=C;L!==F&&(e=C,t=w),F?(I||L)&&(t.toArray(i,0),t.toArray(i,9),I&&e.toArray(i,3)):(I||!L)&&(t.toArray(i,3),t.toArray(i,9),I&&e.toArray(i,0))}return ee;function B(e,t,n){return n.subVectors(t,e),n.set(-n.y,n.x).normalize()}function V(e,t,n){i&&(i[R]=e.x,i[R+1]=e.y,i[R+2]=0,a&&(a[R]=0,a[R+1]=0,a[R+2]=1),R+=3,o&&(o[te]=t,o[te+1]=n,te+=2)),ee+=3}function H(e,t,r,i,a){c.copy(t).sub(e).normalize(),l.copy(r).sub(e).normalize();let o=Math.PI,s=c.dot(l);Math.abs(s)<1&&(o=Math.abs(Math.acos(s))),o/=n,u.copy(t);for(let t=0,r=n-1;t<r;t++)d.copy(u).rotateAround(e,o),V(u,i,a),V(d,i,a),V(e,i,.5),u.copy(d);V(u,i,a),V(r,i,a),V(e,i,.5)}function U(){V(g,M,1),V(h,M,0),V(y,N,0),V(g,M,1),V(y,N,0),V(b,N,1)}function ne(e,t,n){t?e?(V(g,M,1),V(h,M,0),V(y,N,0),V(g,M,1),V(y,N,0),V(C,N,1),V(y,n,0),V(x,n,0),V(C,n,.5)):(V(g,M,1),V(h,M,0),V(b,N,1),V(h,M,0),V(C,N,0),V(b,N,1),V(b,n,1),V(C,n,0),V(S,n,1)):e?(V(y,n,0),V(x,n,0),V(D,n,.5)):(V(b,n,1),V(S,n,0),V(D,n,.5))}function re(e,t){t&&(e?(V(g,M,1),V(h,M,0),V(y,N,0),V(g,M,1),V(y,N,0),V(C,N,1),V(y,M,0),V(D,N,.5),V(C,N,1),V(D,N,.5),V(x,M,0),V(C,N,1)):(V(g,M,1),V(h,M,0),V(b,N,1),V(h,M,0),V(C,N,0),V(b,N,1),V(b,M,1),V(C,N,0),V(D,N,.5),V(D,N,.5),V(C,N,0),V(S,M,1)))}function ie(e,n,r,a,s,f){switch(t.strokeLineCap){case`round`:s?H(e,r,n,f,.5):H(e,n,r,f,.5);break;case`square`:if(s)c.subVectors(n,e),l.set(c.y,-c.x),u.addVectors(c,l).add(e),d.subVectors(l,c).add(e),a?(u.toArray(i,3),d.toArray(i,0),d.toArray(i,9)):(u.toArray(i,3),o[7]===1?d.toArray(i,9):u.toArray(i,9),d.toArray(i,0));else{c.subVectors(r,e),l.set(c.y,-c.x),u.addVectors(c,l).add(e),d.subVectors(l,c).add(e);let t=i.length;a?(u.toArray(i,t-3),d.toArray(i,t-6),d.toArray(i,t-12)):(d.toArray(i,t-6),u.toArray(i,t-3),d.toArray(i,t-12))}break;default:break}}function W(e){let t=!1;for(let n=1,i=e.length-1;n<i;n++)if(e[n].distanceTo(e[n+1])<r){t=!0;break}if(!t)return e;let n=[];n.push(e[0]);for(let t=1,i=e.length-1;t<i;t++)e[t].distanceTo(e[t+1])>=r&&n.push(e[t]);return n.push(e[e.length-1]),n}}},q=4,J=1024,Y=4;function me(e=1){let t=new O(new Uint16Array(J*Y*e*q),J,Y*e,l,v);return t.wrapS=m,t.wrapY=m,t.magFilter=B,t.minFilter=B,t.needsUpdate=!0,t}function he(e,t,n=0){let r=Math.floor(Y/4*J);t.arcLengthDivisions=r/2,t.updateArcLengths();let i=t.getSpacedPoints(r),a=t.computeFrenetFrames(r,!0);for(let t=0;t<r;t++){let r=Math.floor(t/J),o=t%J,s=i[t];X(e,o,s.x,s.y,s.z,0+r+Y*n),s=a.tangents[t],X(e,o,s.x,s.y,s.z,1+r+Y*n),s=a.normals[t],X(e,o,s.x,s.y,s.z,2+r+Y*n),s=a.binormals[t],X(e,o,s.x,s.y,s.z,3+r+Y*n)}e.needsUpdate=!0}function X(e,t,n,r,i,a){let{data:o}=e.image,s=q*J*a;o[t*q+s+0]=G.toHalfFloat(n),o[t*q+s+1]=G.toHalfFloat(r),o[t*q+s+2]=G.toHalfFloat(i),o[t*q+s+3]=G.toHalfFloat(1)}function ge(e){return{spineTexture:{value:e},pathOffset:{type:`f`,value:0},pathSegment:{type:`f`,value:1},spineOffset:{type:`f`,value:161},spineLength:{type:`f`,value:400},flow:{type:`i`,value:1}}}function Z(e,t,n=1){e.__ok||(e.__ok=!0,e.onBeforeCompile=e=>{e.__modified||(e.__modified=!0,Object.assign(e.uniforms,t),e.vertexShader=` 4 uniform sampler2D spineTexture; 5 uniform float pathOffset; 6 uniform float pathSegment; 7 uniform float spineOffset; 8 uniform float spineLength; 9 uniform int flow; 10 11 float textureLayers = ${Y*n}.; 12 float textureStacks = ${Y/4}.; 13 14 ${e.vertexShader} 15 `.replace(`#include <beginnormal_vertex>`,``).replace(`#include <defaultnormal_vertex>`,``).replace(`#include <begin_vertex>`,``).replace(/void\s*main\s*\(\)\s*\{/,` 16void main() { 17#include <beginnormal_vertex> 18 19vec4 worldPos = modelMatrix * vec4(position, 1.); 20 21bool bend = flow > 0; 22float xWeight = bend ? 0. : 1.; 23 24#ifdef USE_INSTANCING 25float pathOffsetFromInstanceMatrix = instanceMatrix[3][2]; 26float spineLengthFromInstanceMatrix = instanceMatrix[3][0]; 27float spinePortion = bend ? (worldPos.x + spineOffset) / spineLengthFromInstanceMatrix : 0.; 28float mt = (spinePortion * pathSegment + pathOffset + pathOffsetFromInstanceMatrix)*textureStacks; 29#else 30float spinePortion = bend ? (worldPos.x + spineOffset) / spineLength : 0.; 31float mt = (spinePortion * pathSegment + pathOffset)*textureStacks; 32#endif 33 34mt = mod(mt, textureStacks); 35float rowOffset = floor(mt); 36 37#ifdef USE_INSTANCING 38rowOffset += instanceMatrix[3][1] * ${Y}.; 39#endif 40 41vec3 spinePos = texture2D(spineTexture, vec2(mt, (0. + rowOffset + 0.5) / textureLayers)).xyz; 42vec3 a = texture2D(spineTexture, vec2(mt, (1. + rowOffset + 0.5) / textureLayers)).xyz; 43vec3 b = texture2D(spineTexture, vec2(mt, (2. + rowOffset + 0.5) / textureLayers)).xyz; 44vec3 c = texture2D(spineTexture, vec2(mt, (3. + rowOffset + 0.5) / textureLayers)).xyz; 45mat3 basis = mat3(a, b, c); 46 47vec3 transformed = basis 48 * vec3(worldPos.x * xWeight, worldPos.y * 1., worldPos.z * 1.) 49 + spinePos; 50 51vec3 transformedNormal = normalMatrix * (basis * objectNormal); 52 `).replace(`#include <project_vertex>`,`vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 ); 53 gl_Position = projectionMatrix * mvPosition;`))})}var _e=class{constructor(e,t=1){let n=e.clone(),r=me(t),i=ge(r);n.traverse(function(e){if(e instanceof D||e instanceof p)if(Array.isArray(e.material)){let n=[];for(let r of e.material){let e=r.clone();Z(e,i,t),n.push(e)}e.material=n}else e.material=e.material.clone(),Z(e.material,i,t)}),this.curveArray=Array(t),this.curveLengthArray=Array(t),this.object3D=n,this.splineTexture=r,this.uniforms=i}updateCurve(e,t){if(e>=this.curveArray.length)throw Error(`Flow: Index out of range.`);let n=t.getLength();this.uniforms.spineLength.value=n,this.curveLengthArray[e]=n,this.curveArray[e]=t,he(this.splineTexture,t,e)}moveAlongCurve(e){this.uniforms.pathOffset.value+=e}};new I;var ve={name:`CopyShader`,uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:` 54 55 varying vec2 vUv; 56 57 void main() { 58 59 vUv = uv; 60 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 61 62 }`,fragmentShader:` 63 64 uniform float opacity; 65 66 uniform sampler2D tDiffuse; 67 68 varying vec2 vUv; 69 70 void main() { 71 72 vec4 texel = texture2D( tDiffuse, vUv ); 73 gl_FragColor = opacity * texel; 74 75 76 }`},ye=class{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error(`THREE.Pass: .render() must be implemented in derived pass.`)}dispose(){}},be=new se(-1,1,1,-1,0,1),xe=new class extends N{constructor(){super(),this.setAttribute(`position`,new L([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute(`uv`,new L([0,2,0,0,2,0],2))}},Se=class{constructor(e){this._mesh=new D(xe,e)}dispose(){this._mesh.geometry.dispose()}render(e){e.render(this._mesh,be)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}},Ce=class extends ye{constructor(e,t=`tDiffuse`){super(),this.textureID=t,this.uniforms=null,this.material=null,e instanceof u?(this.uniforms=e.uniforms,this.material=e):e&&(this.uniforms=V.clone(e.uniforms),this.material=new u({name:e.name===void 0?`unspecified`:e.name,defines:Object.assign({},e.defines),uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader})),this._fsQuad=new Se(this.material)}render(e,t,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this._fsQuad.material=this.material,this.renderToScreen?(e.setRenderTarget(null),this._fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this._fsQuad.render(e))}dispose(){this.material.dispose(),this._fsQuad.dispose()}},we=class extends ye{constructor(e,t){super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(e,t,n){let r=e.getContext(),i=e.state;i.buffers.color.setMask(!1),i.buffers.depth.setMask(!1),i.buffers.color.setLocked(!0),i.buffers.depth.setLocked(!0);let a,o;this.inverse?(a=0,o=1):(a=1,o=0),i.buffers.stencil.setTest(!0),i.buffers.stencil.setOp(r.REPLACE,r.REPLACE,r.REPLACE),i.buffers.stencil.setFunc(r.ALWAYS,a,4294967295),i.buffers.stencil.setClear(o),i.buffers.stencil.setLocked(!0),e.setRenderTarget(n),this.clear&&e.clear(),e.render(this.scene,this.camera),e.setRenderTarget(t),this.clear&&e.clear(),e.render(this.scene,this.camera),i.buffers.color.setLocked(!1),i.buffers.depth.setLocked(!1),i.buffers.color.setMask(!0),i.buffers.depth.setMask(!0),i.buffers.stencil.setLocked(!1),i.buffers.stencil.setFunc(r.EQUAL,1,4294967295),i.buffers.stencil.setOp(r.KEEP,r.KEEP,r.KEEP),i.buffers.stencil.setLocked(!0)}},Te=class extends ye{constructor(){super(),this.needsSwap=!1}render(e){e.state.buffers.stencil.setLocked(!1),e.state.buffers.stencil.setTest(!1)}},Ee=class{constructor(e,t){if(this.renderer=e,this._pixelRatio=e.getPixelRatio(),t===void 0){let n=e.getSize(new z);this._width=n.width,this._height=n.height,t=new W(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:v}),t.texture.name=`EffectComposer.rt1`}else this._width=t.width,this._height=t.height;this.renderTarget1=t,this.renderTarget2=t.clone(),this.renderTarget2.texture.name=`EffectComposer.rt2`,this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new Ce(ve),this.copyPass.material.blending=0,this.timer=new M}swapBuffers(){let e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e}addPass(e){this.passes.push(e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(e,t){this.passes.splice(t,0,e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(e){let t=this.passes.indexOf(e);t!==-1&&this.passes.splice(t,1)}isLastEnabledPass(e){for(let t=e+1;t<this.passes.length;t++)if(this.passes[t].enabled)return!1;return!0}
76render(e){this.timer.update(),e===void 0&&(e=this.timer.getDelta());let t=this.renderer.getRenderTarget(),n=!1;for(let t=0,r=this.passes.length;t<r;t++){let r=this.passes[t];if(r.enabled!==!1){if(r.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(t),r.render(this.renderer,this.writeBuffer,this.readBuffer,e,n),r.needsSwap){if(n){let t=this.renderer.getContext(),n=this.renderer.state.buffers.stencil;n.setFunc(t.NOTEQUAL,1,4294967295),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,e),n.setFunc(t.EQUAL,1,4294967295)}this.swapBuffers()}we!==void 0&&(r instanceof we?n=!0:r instanceof Te&&(n=!1))}}this.renderer.setRenderTarget(t)}reset(e){if(e===void 0){let t=this.renderer.getSize(new z);this._pixelRatio=this.renderer.getPixelRatio(),this._width=t.width,this._height=t.height,e=this.renderTarget1.clone(),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=e,this.renderTarget2=e.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(e,t){this._width=e,this._height=t;let n=this._width*this._pixelRatio,r=this._height*this._pixelRatio;this.renderTarget1.setSize(n,r),this.renderTarget2.setSize(n,r);for(let e=0;e<this.passes.length;e++)this.passes[e].setSize(n,r)}setPixelRatio(e){this._pixelRatio=e,this.setSize(this._width,this._height)}dispose(){this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.copyPass.dispose()}},De={name:`OutputShader`,uniforms:{tDiffuse:{value:null},toneMappingExposure:{value:1}},vertexShader:` 77 precision highp float; 78 79 uniform mat4 modelViewMatrix; 80 uniform mat4 projectionMatrix; 81 82 attribute vec3 position; 83 attribute vec2 uv; 84 85 varying vec2 vUv; 86 87 void main() { 88 89 vUv = uv; 90 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 91 92 }`,fragmentShader:` 93 94 precision highp float; 95 96 uniform sampler2D tDiffuse; 97 98 #include <tonemapping_pars_fragment> 99 #include <colorspace_pars_fragment> 100 101 varying vec2 vUv; 102 103 void main() { 104 105 gl_FragColor = texture2D( tDiffuse, vUv ); 106 107 // tone mapping 108 109 #ifdef LINEAR_TONE_MAPPING 110 111 gl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb ); 112 113 #elif defined( REINHARD_TONE_MAPPING ) 114 115 gl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb ); 116 117 #elif defined( CINEON_TONE_MAPPING ) 118 119 gl_FragColor.rgb = CineonToneMapping( gl_FragColor.rgb ); 120 121 #elif defined( ACES_FILMIC_TONE_MAPPING ) 122 123 gl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb ); 124 125 #elif defined( AGX_TONE_MAPPING ) 126 127 gl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb ); 128 129 #elif defined( NEUTRAL_TONE_MAPPING ) 130 131 gl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb ); 132 133 #elif defined( CUSTOM_TONE_MAPPING ) 134 135 gl_FragColor.rgb = CustomToneMapping( gl_FragColor.rgb ); 136 137 #endif 138 139 // color space 140 141 #ifdef SRGB_TRANSFER 142 143 gl_FragColor = sRGBTransferOETF( gl_FragColor ); 144 145 #endif 146 147 }`},Oe=class extends ye{constructor(){super(),this.isOutputPass=!0,this.uniforms=V.clone(De.uniforms),this.material=new _({name:De.name,uniforms:this.uniforms,vertexShader:De.vertexShader,fragmentShader:De.fragmentShader}),this._fsQuad=new Se(this.material),this._outputColorSpace=null,this._toneMapping=null}render(e,t,n){this.uniforms.tDiffuse.value=n.texture,this.uniforms.toneMappingExposure.value=e.toneMappingExposure,(this._outputColorSpace!==e.outputColorSpace||this._toneMapping!==e.toneMapping)&&(this._outputColorSpace=e.outputColorSpace,this._toneMapping=e.toneMapping,this.material.defines={},oe.getTransfer(this._outputColorSpace)===`srgb`&&(this.material.defines.SRGB_TRANSFER=``),this._toneMapping===1?this.material.defines.LINEAR_TONE_MAPPING=``:this._toneMapping===2?this.material.defines.REINHARD_TONE_MAPPING=``:this._toneMapping===3?this.material.defines.CINEON_TONE_MAPPING=``:this._toneMapping===4?this.material.defines.ACES_FILMIC_TONE_MAPPING=``:this._toneMapping===6?this.material.defines.AGX_TONE_MAPPING=``:this._toneMapping===7?this.material.defines.NEUTRAL_TONE_MAPPING=``:this._toneMapping===5&&(this.material.defines.CUSTOM_TONE_MAPPING=``),this.material.needsUpdate=!0),this.renderToScreen===!0?(e.setRenderTarget(null),this._fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this._fsQuad.render(e))}dispose(){this.material.dispose(),this._fsQuad.dispose()}},ke=class extends ye{constructor(e,t,n=null,r=null,i=null){super(),this.scene=e,this.camera=t,this.overrideMaterial=n,this.clearColor=r,this.clearAlpha=i,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this.isRenderPass=!0,this._oldClearColor=new T}render(e,t,n){let r=e.autoClear;e.autoClear=!1;let i,a;this.overrideMaterial!==null&&(a=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor!==null&&(e.getClearColor(this._oldClearColor),e.setClearColor(this.clearColor,e.getClearAlpha())),this.clearAlpha!==null&&(i=e.getClearAlpha(),e.setClearAlpha(this.clearAlpha)),this.clearDepth==1&&e.clearDepth(),e.setRenderTarget(this.renderToScreen?null:n),this.clear===!0&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.render(this.scene,this.camera),this.clearColor!==null&&e.setClearColor(this._oldClearColor),this.clearAlpha!==null&&e.setClearAlpha(i),this.overrideMaterial!==null&&(this.scene.overrideMaterial=a),e.autoClear=r}},Ae=`<svg width="1923" height="1177" viewBox="0 0 1923 1177" fill="none" xmlns="http://www.w3.org/2000/svg"> 148<g clip-path="url(#clip0_7163_2241)"> 149<path d="M272 1184.5L750.735 849.072C785.687 824.583 806.5 784.586 806.5 741.908C806.5 699.054 827.484 658.916 862.674 634.459L1465.5 215.5" stroke="url
149(#paint0_linear_7163_2241)" stroke-width="32"/> 150<path d="M1179 275.5L818.76 527.736C778.079 556.221 729.619 571.5 679.957 571.5H244.779C194.82 571.5 146.086 586.962 105.265 615.763L-102 762" stroke="url(#paint1_linear_7163_2241)" stroke-width="32"/> 151<path d="M-85.2148 1161.5L1159.44 289.949" stroke="url(#paint2_linear_7163_2241)" stroke-width="33" stroke-miterlimit="10"/> 152<path d="M-99 1083.5L18.619 1000.92C52.3836 977.219 92.6354 964.5 133.89 964.5C175.281 964.5 215.659 951.697 249.488 927.847L436.73 795.834C461.958 778.048 492.069 768.5 522.937 768.5C552.95 768.5 582.27 759.472 607.086 742.591L742.4 650.538C765.297 634.962 790.697 623.431 817.495 616.448L888.848 597.854C916.4 590.674 942.469 578.689 965.855 562.449L1753.5 15.5" stroke="url(#paint3_linear_7163_2241)" stroke-width="32"/> 153<path d="M159.5 1060L619.924 735.662C650.876 713.858 686.512 699.621 723.967 694.095L733.095 692.748C769.87 687.322 804.901 673.497 835.471 652.345L1099 470" stroke="url(#paint4_linear_7163_2241)" stroke-width="32"/> 154<path d="M392 1169L1314.5 523" stroke="url(#paint5_linear_7163_2241)" stroke-width="32"/> 155<path d="M28 1563.5L506.934 1225.24C541.779 1200.63 562.5 1160.63 562.5 1117.97C562.5 1075.07 583.461 1034.86 618.641 1010.3L736.5 928" stroke="url(#paint6_linear_7163_2241)" stroke-width="32"/> 156<path d="M211 1434.5L717.78 1076.58C735.163 1064.3 745.5 1044.34 745.5 1023.06C745.5 1001.43 756.176 981.198 774.029 968.987L823.188 935.365C840.905 923.247 851.5 903.055 851.5 881.59C851.5 860.319 861.972 840.302 879.5 828.251C897.028 816.2 907.5 796.055 907.5 774.784C907.5 753.442 917.899 733.201 935.367 720.939L1191 541.5" stroke="url(#paint7_linear_7163_2241)" stroke-width="32"/> 157<path d="M64.5 1674L545.362 1335.56C564.799 1321.88 577.248 1300.36 579.414 1276.69C581.678 1251.95 595.172 1229.61 616.021 1216.09L643.612 1198.2C662.562 1185.92 674 1164.87 674 1142.28C674 1120.49 684.657 1100.07 702.537 1087.61L773 1038.5" stroke="url(#paint8_linear_7163_2241)" stroke-width="32"/> 158<path d="M694 1366L832.019 1265.97C894.822 1220.45 932 1147.58 932 1070.02V917.345C932 838.462 970.446 764.53 1035.02 719.23L1233.5 580" stroke="url(#paint9_linear_7163_2241)" stroke-width="32"/> 159<path d="M-84 1141.1L1174.19 260.07" stroke="url(#paint10_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 160<path d="M-77.2305 1144.18L1174.19 267.889" stroke="url(#paint11_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 161<path d="M-70.4727 1147.25L1174.19 275.705" stroke="url(#paint12_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 162<path d="M-63.7031 1150.33L1174.18 283.523" stroke="url(#paint13_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 163<path d="M-56.9375 1153.41L1174.17 291.342" stroke="url(#paint14_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 164<path d="M-50.1641 1156.49L1174.18 299.16" stroke="url(#paint15_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 165<path d="M161.195 1213.65L1205.42 482.812" stroke="url(#paint16_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 166<path d="M127.352 1198.26L1205.42 443.725" stroke="url(#paint17_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 167<path d="M301.336 1183.47L1246.49 521.742" stroke="url(#paint18_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 168<path d="M295.496 1177.78L1246.48 511.969" stroke="url(#paint19_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 169<path d="M289.652 1172.11L1246.49 502.197" stroke="url(#paint20_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 170<path d="M283.812 1166.42L1246.49 492.432" stroke="url(#paint21_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 171<path d="M277.969 1160.73L1246.49 482.66" stroke="url(#paint22_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 172<path d="M375.016 1161.19L1288.79 521.436" stroke="url(#paint23_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 173<path d="M379.242 1163.12L1293.02 523.357" stroke="url(#paint24_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/>
174<path d="M383.477 1165.04L1297.25 525.277" stroke="url(#paint25_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 175<path d="M387.703 1166.96L1301.48 527.207" stroke="url(#paint26_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 176<path d="M391.938 1168.89L1305.72 529.127" stroke="url(#paint27_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 177<path d="M396.164 1170.81L1309.94 531.049" stroke="url(#paint28_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 178<path d="M400.398 1172.73L1314.18 532.969" stroke="url(#paint29_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 179<path d="M404.625 1174.65L1318.4 534.896" stroke="url(#paint30_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 180<path d="M408.859 1176.58L1322.64 536.818" stroke="url(#paint31_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 181<path d="M23.4453 1544.17L1174.18 738.814" stroke="url(#paint32_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 182<path d="M27.6797 1546.09L1178.41 740.734" stroke="url(#paint33_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 183<path d="M31.9062 1548.02L1182.64 742.664" stroke="url(#paint34_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 184<path d="M36.1406 1549.95L1186.87 744.586" stroke="url(#paint35_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 185<path d="M40.3672 1551.87L1191.1 746.506" stroke="url(#paint36_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 186<path d="M44.6016 1553.78L1195.34 748.434" stroke="url(#paint37_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 187<path d="M48.8281 1555.71L1199.56 750.355" stroke="url(#paint38_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 188<path d="M53.0625 1557.64L1203.8 752.277" stroke="url(#paint39_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 189<path d="M57.2891 1559.56L1208.02 754.197" stroke="url(#paint40_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 190<path d="M197.324 1080.43L1119.57 434.729" stroke="url(#paint41_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 191<path d="M204.094 1083.51L1119.57 442.547" stroke="url(#paint42_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 192<path d="M210.863 1086.59L1119.56 450.363" stroke="url(#paint43_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 193<path d="M217.633 1089.66L1119.57 458.182" stroke="url(#paint44_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 194<path d="M224.398 1092.74L1119.56 466" stroke="url(#paint45_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 195<path d="M231.168 1095.82L1119.56 473.818" stroke="url(#paint46_linear_7163_2241)" stroke-width="0.84609" stroke-miterlimit="10"/> 196</g> 197<defs> 198<linearGradient id="paint0_linear_7163_2241" x1="336.5" y1="1156" x2="1429.61" y2="1146.31" gradientUnits="userSpaceOnUse"> 199<stop stop-color="#00AAFF" stop-opacity="0"/> 200<stop offset="0.25" stop-color="#00AAFF" stop-opacity="0.5"/> 201<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 202</linearGradient> 203<linearGradient id="paint1_linear_7163_2241" x1="1178" y1="274" x2="314.5" y2="880" gradientUnits="userSpaceOnUse"> 204<stop stop-color="#1E1F1F" stop-opacity="0"/> 205<stop offset="0.5" stop-color="#1E1F1F"/> 206<stop offset="1" stop-color="#1E1F1F" stop-opacity="0"/> 207</linearGradient> 208<linearGradient id="paint2_linear_7163_2241" x1="1151.5" y1="295" x2="14.0372" y2="1095.55" gradientUnits="userSpaceOnUse"> 209<stop stop-color="#A033FF" stop-opacity="0"/> 210<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.8"/> 211<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 212</linearGradient> 213<linearGradient id="paint3_linear_7163_2241" x1="55.4998" y1="1084" x2="1612.89" y2="681.721" gradientUnits="userSpaceOnUse"> 214<stop stop-color="#00AAFF" stop-opacity="0"/> 215<stop offset="0.25" stop-color="#00AAFF" stop-opacity="0.5"/> 216<stop offset="0.75" stop-color="#A033FF" stop-opacity="0.5"/> 217<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 218</linearGradient> 219<linearGradient id="paint4_linear_7163_2241" x1="1091.5" y1="454.5" x2="205.128" y2="582.64" gradientUnits="userSpaceOnUse"> 220<stop stop-color="#A033FF" stop-opacity="0"/> 221<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.5"/> 222<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 223</linearGradient> 224<linearGradient id="paint5_linear_7163_2241" x1="468.937" y1="1169.3" x2="1344.17" y2="1115.73" gradientUnits="userSpaceOnUse"> 225<stop stop-color="#A033FF" stop-opacity="0"/> 226<stop offset="0.5" stop-color="#A033FF"/> 227<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 228</linearGradient> 229<linearGradient id="paint6_linear_7163_2241" x1="339" y1="1234" x2="734.119" y2="1256.24" gradientUnits="userSpaceOnUse"> 230<stop stop-color="#00AAFF" stop-opacity="0"/> 231<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.5"/> 232<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 233</linearGradient> 234<linearGradient id="paint7_linear_7163_2241" x1="1186" y1="522.5" x2="252.122" y2="611.18" gradientUnits="userSpaceOnUse"> 235<stop stop-color="#A033FF" stop-opacity="0"/> 236<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.5"/> 237<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 238</linearGradient> 239<linearGradient id="paint8_linear_7163_2241" x1="793.464" y1="994.74" x2="106.788" y2="1200.5" gradientUnits="userSpaceOnUse"> 240<stop stop-color="#1E1F1F" stop-opacity="0"/> 241<stop offset="0.5" stop-color="#1E1F1F"/> 242<stop offset="1" stop-color="#1E1F1F" stop-opacity="0"/> 243</linearGradient> 244<linearGradient id="paint9_linear_7163_2241" x1="805.555" y1="1413.62" x2="1334.22" y2="1307.48" gradientUnits="userSpaceOnUse"> 245<stop stop-color="#00AAFF" stop-opacity="0"/> 246<stop offset="0.25" stop-color="#00AAFF" stop-opacity="0.35"/> 247<stop offset="0.75" stop-color="#A033FF" stop-opacity="0.35"/> 248<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 249</linearGradient> 250<linearGradient id="paint10_linear_7163_2241" x1="432.652" y1="344.136" x2="521.218" y2="1065.31" gradientUnits="userSpaceOnUse"> 251<stop stop-color="#A033FF" stop-opacity="0"/> 252<stop offset="0.05" stop-color="#A033FF" stop-opacity="0"/> 253<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.8"/> 254<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 255</linearGradient>
256<linearGradient id="paint11_linear_7163_2241" x1="385.198" y1="327.248" x2="450.384" y2="1098.2" gradientUnits="userSpaceOnUse"> 257<stop stop-color="#00AAFF" stop-opacity="0"/> 258<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 259<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 260<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 261</linearGradient> 262<linearGradient id="paint12_linear_7163_2241" x1="440.623" y1="358.867" x2="528.237" y2="1072.28" gradientUnits="userSpaceOnUse"> 263<stop stop-color="#A033FF" stop-opacity="0"/> 264<stop offset="0.05" stop-color="#A033FF" stop-opacity="0"/> 265<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.8"/> 266<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 267</linearGradient> 268<linearGradient id="paint13_linear_7163_2241" x1="444.61" y1="366.232" x2="531.746" y2="1075.76" gradientUnits="userSpaceOnUse"> 269<stop stop-color="#A033FF" stop-opacity="0"/> 270<stop offset="0.05" stop-color="#A033FF" stop-opacity="0"/> 271<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.8"/> 272<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 273</linearGradient> 274<linearGradient id="paint14_linear_7163_2241" x1="397.987" y1="349.737" x2="462.115" y2="1108.18" gradientUnits="userSpaceOnUse"> 275<stop stop-color="#00AAFF" stop-opacity="0"/> 276<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 277<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 278<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 279</linearGradient> 280<linearGradient id="paint15_linear_7163_2241" x1="452.59" y1="380.965" x2="538.774" y2="1082.74" gradientUnits="userSpaceOnUse"> 281<stop stop-color="#A033FF" stop-opacity="0"/> 282<stop offset="0.05" stop-color="#A033FF" stop-opacity="0"/> 283<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.8"/> 284<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 285</linearGradient> 286<linearGradient id="paint16_linear_7163_2241" x1="589.988" y1="552.547" x2="663.421" y2="1150.79" gradientUnits="userSpaceOnUse"> 287<stop stop-color="#A033FF" stop-opacity="0"/> 288<stop offset="0.05" stop-color="#A033FF" stop-opacity="0"/> 289<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.9"/> 290<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 291</linearGradient> 292<linearGradient id="paint17_linear_7163_2241" x1="570.042" y1="515.721" x2="645.857" y2="1133.36" gradientUnits="userSpaceOnUse"> 293<stop stop-color="#A033FF" stop-opacity="0"/> 294<stop offset="0.05" stop-color="#A033FF" stop-opacity="0"/> 295<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.9"/> 296<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 297</linearGradient> 298<linearGradient id="paint18_linear_7163_2241" x1="689.445" y1="584.883" x2="755.956" y2="1126.55" gradientUnits="userSpaceOnUse"> 299<stop stop-color="#A033FF" stop-opacity="0"/> 300<stop offset="0.05" stop-color="#A033FF" stop-opacity="0"/> 301<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.95"/> 302<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 303</linearGradient> 304<linearGradient id="paint19_linear_7163_2241" x1="680.198" y1="575.876" x2="747.102" y2="1120.81" gradientUnits="userSpaceOnUse"> 305<stop stop-color="#00AAFF" stop-opacity="0"/> 306<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 307<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 308<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 309</linearGradient> 310<linearGradient id="paint20_linear_7163_2241" x1="682.559" y1="566.119" x2="749.893" y2="1114.48" gradientUnits="userSpaceOnUse"> 311<stop stop-color="#A033FF" stop-opacity="0"/> 312<stop offset="0.05" stop-color="#A033FF" stop-opacity="0"/> 313<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.95"/> 314<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 315</linearGradient> 316<linearGradient id="paint21_linear_7163_2241" x1="673.241" y1="557.123" x2="740.965" y2="1108.75" gradientUnits="userSpaceOnUse"> 317<stop stop-color="#00AAFF" stop-opacity="0"/> 318<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 319<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 320<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 321</linearGradient> 322<linearGradient id="paint22_linear_7163_2241" x1="675.674" y1="547.361" x2="743.826" y2="1102.41" gradientUnits="userSpaceOnUse"> 323<stop stop-color="#A033FF" stop-opacity="0"/> 324<stop offset="0.05" stop-color="#A033FF" stop-opacity="0"/> 325<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.95"/> 326<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 327</linearGradient> 328<linearGradient id="paint23_linear_7163_2241" x1="712.678" y1="564.772" x2="760.261" y2="
3281127.63" gradientUnits="userSpaceOnUse"> 329<stop stop-color="#00AAFF" stop-opacity="0"/> 330<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 331<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 332<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 333</linearGradient> 334<linearGradient id="paint24_linear_7163_2241" x1="716.904" y1="566.694" x2="764.489" y2="1129.56" gradientUnits="userSpaceOnUse"> 335<stop stop-color="#00AAFF" stop-opacity="0"/> 336<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 337<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 338<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 339</linearGradient> 340<linearGradient id="paint25_linear_7163_2241" x1="721.139" y1="568.614" x2="768.723" y2="1131.48" gradientUnits="userSpaceOnUse"> 341<stop stop-color="#00AAFF" stop-opacity="0"/> 342<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 343<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 344<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 345</linearGradient> 346<linearGradient id="paint26_linear_7163_2241" x1="725.365" y1="570.543" x2="772.948" y2="1133.4" gradientUnits="userSpaceOnUse"> 347<stop stop-color="#00AAFF" stop-opacity="0"/> 348<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 349<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 350<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 351</linearGradient> 352<linearGradient id="paint27_linear_7163_2241" x1="729.6" y1="572.464" x2="777.184" y2="1135.33" gradientUnits="userSpaceOnUse"> 353<stop stop-color="#00AAFF" stop-opacity="0"/> 354<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 355<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 356<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 357</linearGradient> 358<linearGradient id="paint28_linear_7163_2241" x1="733.826" y1="574.386" x2="781.41" y2="1137.25" gradientUnits="userSpaceOnUse"> 359<stop stop-color="#00AAFF" stop-opacity="0"/> 360<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 361<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 362<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 363</linearGradient> 364<linearGradient id="paint29_linear_7163_2241" x1="738.061" y1="576.306" x2="785.645" y2="1139.17" gradientUnits="userSpaceOnUse"> 365<stop stop-color="#00AAFF" stop-opacity="0"/> 366<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 367<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 368<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 369</linearGradient> 370<linearGradient id="paint30_linear_7163_2241" x1="742.287" y1="578.233" x2="789.87" y2="
3701141.09" gradientUnits="userSpaceOnUse"> 371<stop stop-color="#00AAFF" stop-opacity="0"/> 372<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 373<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 374<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 375</linearGradient> 376<linearGradient id="paint31_linear_7163_2241" x1="746.522" y1="580.155" x2="794.106" y2="1143.02" gradientUnits="userSpaceOnUse"> 377<stop stop-color="#00AAFF" stop-opacity="0"/> 378<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 379<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 380<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 381</linearGradient> 382<linearGradient id="paint32_linear_7163_2241" x1="448.668" y1="793.369" x2="508.547" y2="1501.93" gradientUnits="userSpaceOnUse"> 383<stop stop-color="#00AAFF" stop-opacity="0"/> 384<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 385<stop offset="0.75" stop-color="#00AAFF"/> 386<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 387</linearGradient> 388<linearGradient id="paint33_linear_7163_2241" x1="500.207" y1="817.58" x2="581.126" y2="1476.83" gradientUnits="userSpaceOnUse"> 389<stop stop-color="#A033FF" stop-opacity="0"/> 390<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.8"/> 391<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 392</linearGradient> 393<linearGradient id="paint34_linear_7163_2241" x1="457.129" y1="797.218" x2="517.007" y2="1505.77" gradientUnits="userSpaceOnUse"> 394<stop stop-color="#00AAFF" stop-opacity="0"/> 395<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 396<stop offset="0.75" stop-color="#00AAFF"/> 397<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 398</linearGradient> 399<linearGradient id="paint35_linear_7163_2241" x1="508.668" y1="821.432" x2="589.587" y2="1480.68" gradientUnits="userSpaceOnUse"> 400<stop stop-color="#A033FF" stop-opacity="0"/> 401<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.8"/> 402<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 403</linearGradient> 404<linearGradient id="paint36_linear_7163_2241" x1="465.59" y1="801.06" x2="525.469" y2="1509.62" gradientUnits="userSpaceOnUse"> 405<stop stop-color="#00AAFF" stop-opacity="0"/> 406<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 407<stop offset="0.75" stop-color="#00AAFF"/> 408<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 409</linearGradient> 410<linearGradient id="paint37_linear_7163_2241" x1="517.129" y1="825.279" x2="598.046" y2="1484.52" gradientUnits="userSpaceOnUse"> 411<stop stop-color="#A033FF" stop-opacity="0"/> 412<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.8"/> 413<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 414</linearGradient> 415<linearGradient id="paint38_linear_7163_2241" x1="474.051" y1="804.909" x2="533.929" y2="1513.46" gradientUnits="userSpaceOnUse"> 416<stop stop-color="#00AAFF" stop-opacity="0"/> 417<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 418<stop offset="0.75" stop-color="#00AAFF"/> 419<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 420</linearGradient> 421<linearGradient id="paint39_linear_7163_2241" x1="525.59" y1="829.123" x2="606.509" y2="1488.37" gradientUnits="userSpaceOnUse"> 422<stop stop-color="#A033FF" stop-opacity="0"/> 423<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.8"/> 424<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 425</linearGradient> 426<linearGradient id="paint40_linear_7163_2241" x1="482.512" y1="808.752" x2="542.391" y2="1517.31" gradientUnits="userSpaceOnUse"> 427<stop stop-color="#00AAFF" stop-opacity="0"/> 428<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 429<stop offset="0.75" stop-color="#00AAFF"/> 430<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 431</linearGradient> 432<linearGradient id="paint41_linear_7163_2241" x1="538.116" y1="478.468" x2="586.143" y2="1046.56" gradientUnits="userSpaceOnUse"> 433<stop stop-color="#00AAFF" stop-opacity="0"/> 434<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 435<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 436<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 437</linearGradient> 438<linearGradient id="paint42_linear_7163_2241" x1="542.384" y1="485.965" x2="590.059" y2="1049.89" gradientUnits="userSpaceOnUse"> 439<stop stop-color="#00AAFF" stop-opacity="0"/> 440<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 441<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 442<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 443</linearGradient> 444<linearGradient id="paint43_linear_7163_2241" x1="584.005" y1="511.071" x2="647.955" y2="1031.86" gradientUnits="userSpaceOnUse"> 445<stop stop-color="#A033FF" stop-opacity="0"/> 446<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.8"/> 447<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 448</linearGradient> 449<linearGradient id="paint44_linear_7163_2241" x1="587.995" y1="518.436" x2="651.467" y2="1035.34" gradientUnits="userSpaceOnUse"> 450<stop stop-color="#A033FF" stop-opacity="0"/> 451<stop offset="0.5" stop-color="#A033FF" stop-opacity="0.8"/> 452<stop offset="1" stop-color="#A033FF" stop-opacity="0"/> 453</linearGradient> 454<linearGradient id="paint45_linear_7163_2241" x1="555.182" y1="508.455" x2="601.799" y2="1059.86" gradientUnits="userSpaceOnUse"> 455<stop stop-color="#00AAFF" stop-opacity="0"/> 456<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 457<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 458<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 459</linearGradient> 460<linearGradient id="paint46_linear_7163_2241" x1="559.451" y1="515.952" x2="605.715" y2="1063.19" gradientUnits="userSpaceOnUse"> 461<stop stop-color="#00AAFF" stop-opacity="0"/> 462<stop offset="0.05" stop-color="#00AAFF" stop-opacity="0"/> 463<stop offset="0.5" stop-color="#00AAFF" stop-opacity="0.8"/> 464<stop offset="1" stop-color="#00AAFF" stop-opacity="0"/> 465</linearGradient> 466<clipPath id="clip0_7163_2241"> 467<rect width="1923" height="1177" fill="white"/> 468</clipPath> 469</defs> 470</svg> 471`,je=`varying vec2 vUv; void main(){ vUv = uv; gl_Position = vec4(position.xy, 0.0, 1.0); }`,Me=`varying vec2 vUv; 472 uniform sampler2D tDiffuse; uniform vec2 uDir; uniform vec2 uTexel; uniform float uRadius; 473 void main(){ 474 vec2 d = uDir * uTexel * uRadius; 475 vec4 c = texture2D(tDiffuse, vUv) * 0.227027; 476 c += texture2D(tDiffuse, vUv + d * 1.384615) * 0.316216; 477 c += texture2D(tDiffuse, vUv - d * 1.384615) * 0.316216; 478 c += texture2D(tDiffuse, vUv + d * 3.230769) * 0.070270; 479 c += texture2D(tDiffuse, vUv - d * 3.230769) * 0.070270; 480 gl_FragColor = c; 481 }
481`,Ne=`varying vec2 vUv; void main(){ vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); }`,Pe=`varying vec2 vUv; 482 uniform sampler2D tDiffuse; uniform sampler2D tGlow; uniform float uStrength; uniform float uLight; 483 void main(){ 484 vec4 scene = texture2D(tDiffuse, vUv); 485 vec3 glow = clamp(texture2D(tGlow, vUv).rgb * uStrength, 0.0, 1.0); 486 // Dark: screen lift toward the glow color. 487 vec3 lit = 1.0 - (1.0 - scene.rgb) * (1.0 - glow); 488 // Light: colored shadow â darken every channel EXCEPT the glow's own hue, by the halo amount. 489 float amt = max(glow.r, max(glow.g, glow.b)); 490 vec3 hue = amt > 0.0001 ? glow / amt : vec3(0.0); 491 vec3 shadow = scene.rgb * (1.0 - amt * (1.0 - hue)); 492 vec3 rgb = mix(lit, shadow, uLight); 493 float a = max(scene.a, amt); 494 gl_FragColor = vec4(rgb, a); 495 }`;function Fe(e){return`varying vec3 vBoxPos; 496 varying vec3 vBoxNormal; 497 ${e}`.replace(`vec4 worldPos = modelMatrix * vec4(position, 1.);`,`vec4 worldPos = modelMatrix * vec4(position, 1.); 498 vBoxPos = position; 499 vBoxNormal = normal;`)}function Ie(e,{boxHalf:t,boxLen:n,boxCrossHalf:i,cubeScale:a}){return`uniform sampler2D tBackdrop; 500 uniform vec2 uResolution; 501 uniform float uEntry; 502 uniform float uExit; 503 uniform float uGlow; 504 uniform vec3 uGlowColor; 505 uniform float uCubeGlow; 506 uniform float uSat; 507 varying vec3 vBoxPos; 508 varying vec3 vBoxNormal; 509 ${e}`.replace(`#include <opaque_fragment>`,`#include <opaque_fragment> 510 { 511 // ââ Beveled edges: brighten toward white near each face's borders ââ 512 // Box half-extents (the cube is scaled to its rail width). 513 vec3 he = vec3(${c(t)}, ${c(i)}, ${c(i)}); 514 vec3 an = abs(vBoxNormal); 515 // WORLD-unit distance to the nearest in-plane edge (0 at the edge), 516 // pair chosen by the face's dominant normal axis. Using absolute units 517 // (not normalized) keeps the bevel band the same width on every edge â 518 // otherwise the long axis (half 1.2) bevels ~5Ã wider than the short. 519 vec2 d2e; 520 if (an.x > an.y && an.x > an.z) d2e = he.yz - abs(vBoxPos.yz); 521 else if (an.y > an.z) d2e = he.xz - abs(vBoxPos.xz); 522 else d2e = he.xy - abs(vBoxPos.xy); 523 // Distance to the face boundary, but with ROUNDED corners â the bands 524 // (glow/bevel/seam) then fillet where two edges cross instead of making 525 // a sharp square notch. Rounded-rectangle SDF: straight edges stay 526 // exactly min(d2e), only the corners round off (radius CORNER_R). 527 float CORNER_R = ${c(r.cornerRadius*a)}; 528 vec2 q = vec2(CORNER_R) - d2e; 529 float distEdge = -(min(max(q.x, q.y), 0.0) + length(max(q, 0.0)) - CORNER_R); 530 531 // ââ Inner colored glow (the SVG innerShadow): a wider, softer band 532 // just inside each edge that boosts the surface color IN-HUE, giving 533 // the face depth beneath the white edge line. Sits under the bevel. 534 float GLOW_W = ${c(r.glow.width*a)}; 535 float GLOW_STR = ${c(r.glow.strength)}; 536 float glow = 1.0 - smoothstep(0.0, GLOW_W, distEdge); 537 gl_FragColor.rgb = mix(gl_FragColor.rgb, min(gl_FragColor.rgb * ${c(r.glow.boost)}, vec3(1.0)), glow * GLOW_STR); 538
539 float BEVEL_W = ${c(r.bevel.width*a)}; 540 float BEVEL_LIGHT = ${c(r.bevel.light)}; 541 float BEVEL_SOLID = ${c(r.bevel.solid)}; 542 float bevel = 1.0 - smoothstep(0.0, BEVEL_W, distEdge); 543 gl_FragColor.rgb = mix(gl_FragColor.rgb, vec3(1.0), bevel * BEVEL_LIGHT); 544 545 vec2 bUv = gl_FragCoord.xy / uResolution; 546 vec3 backdrop = texture2D(tBackdrop, bUv).rgb; 547 float facing = clamp(dot(normalize(vNormal), normalize(vViewPosition)), 0.0, 1.0); 548 // head-on (facingâ1) = more backdrop (glassier); grazing = more surface. 549 // Edges read more solid (less backdrop) so the bevel highlight pops. 550 float glassMix = mix(${c(r.glass.grazing)}, ${c(r.glass.headOn)}, facing) * (1.0 - bevel * BEVEL_SOLID); 551 // Per-face transparency: top (+Z, world-up) / sides (±Y) / caps (±X). 552 float faceST = an.z > max(an.x, an.y) 553 ? ${c(r.faceSeeThrough.top)} 554 : (an.y > an.x ? ${c(r.faceSeeThrough.side)} : ${c(r.faceSeeThrough.cap)}); 555 glassMix = clamp(glassMix * faceST, 0.0, 1.0); 556 // Surface-color glow: skip the see-through backdrop in the glow pass so the 557 // halo samples the cube's own shaded material, not the blurred scene behind it. 558 gl_FragColor.rgb = mix(gl_FragColor.rgb, backdrop, glassMix${r.haloGlow.surfaceColor?` * (1.0 - uGlow)`:``}); 559 560 // ââ Tip glow ââ In the SVG each face gradient ramps to white at the 561 // leading end; the bloom halo then glows off that white. Done in 562 // surface color (not emissive) and toward WHITE, so every cube color 563 // blooms identically. +X is the leading end (box X maps forward along 564 // the curve). Applied last so the tip reads solid, then bloom catches it. 565 float u = clamp((vBoxPos.x + ${c(t)}) / ${c(n)}, 0.0, 1.0); // 0 tail â 1 tip 566 float TIP_START = ${c(r.tip.start)}; 567 float TIP_STR = ${c(r.tip.strength)}; 568 float TIP_SEAM = ${c(r.tip.seam*a)}; 569 float tip = smoothstep(TIP_START, 1.0, u) * TIP_STR; 570 // Hold the glow off the face edges so a thin colored seam survives into 571 // the tip â keeps the facet division instead of one white blob. 572 tip *= smoothstep(0.0, TIP_SEAM, distEdge); 573 gl_FragColor.rgb = mix(gl_FragColor.rgb, vec3(1.0), tip); 574 575 // ââ End fade: gradient pass along the cube length (tipâtail). The 576 // dissolve front is anchored to u and swept by progress, so each 577 // fragment fades when the front reaches it. uEntry: tip appears first 578 // as it emerges; uExit: tip dissolves first as it exits past the end. 579 float SWEEP = 0.45; // softness of the gradient front (in u space) 580 // Remap 0..1 progress to -SWEEP..1+SWEEP so the sweep fully clears the 581 // whole cube at the extremes (else the soft front leaves the tip/tail 582 // partly visible at progress 0/1). 583 float eIn = uEntry * (1.0 + 2.0 * SWEEP) - SWEEP; 584 float eOut = uExit * (1.0 + 2.0 * SWEEP) - SWEEP; 585 float entryA = smoothstep((1.0 - u) - SWEEP, (1.0 - u) + SWEEP, eIn); 586 float exitA = 1.0 - smoothstep((1.0 - u) - SWEEP, (1.0 - u) + SWEEP, eOut); 587 gl_FragColor.a *= entryA * exitA; 588 589 // ââ Saturation ââ Push the color away from its luma (uSat>1) so the cubes 590 // read vivid on the light bg; uSat=1 (dark) is a no-op. 591 { 592 float satL = dot(gl_FragColor.rgb, vec3(0.2126, 0.7152, 0.0722)); 593 gl_FragColor.rgb = clamp(satL + (gl_FragColor.rgb - satL) * uSat, 0.0, 1.0); 594 } 595 596 // ââ Glow pass ââ Build the offscreen halo source. In flat-hue mode the 597 // cube emits its pure base color (clean, can't drift toward white/pink). In 598 // surfaceColor mode we leave the shaded color as-is (the backdrop see-through 599 // was already skipped above), so the halo tracks the cube's real appearance. 600 // Either way only the end-fade alpha is kept so the halo dissolves at the ends. 601 ${r.haloGlow.surfaceColor?``:`if (uGlow > 0.5) gl_FragColor = vec4(uGlowColor, gl_FragColor.a);`} 602 // Scale ONLY the cube's contribution to the glow buffer (independent of the rail-hover glow, 603 // which is boosted separately when rendered into the same buffer). Visible cube unaffected. 604 if (uGlow > 0.5) gl_FragColor.rgb *= uCubeGlow; 605 }`)}function Le(c,{onReady:d,onHover:f}){let p=!1,m=window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,_=c.clientWidth,y=c.clientHeight;window.matchMedia(`(max-width: 768px)`).matches;let S=Math.min(window.devicePixelRatio,1.5),C=new ce,w=32,E=_/y,k=new se(-w*E/2,w*E/2,w/2,-w/2,.1,200);k.up.set(0,1,0),k.position.set(40,40,40),k.lookAt(0,0,0);let A;
605try{A=new R({alpha:!0,antialias:!0})}catch{return()=>{}}let j=le(A,()=>f?.(null));A.setPixelRatio(S),A.setSize(_,y),A.toneMapping=0,c.appendChild(A.domElement);let M=new T(526344).convertSRGBToLinear(),N=new T(15396080).convertSRGBToLinear(),I=new T,L=()=>I.copy(document.documentElement.dataset.theme===`light`?N:M);L();let V=new ne(A),H=V.fromScene(new ue,.04).texture;C.environment=H,C.environmentIntensity=r.envIntensity;let oe=new g;C.add(oe),C.add(new F(16777215,r.ambient));let G=new x(16777215,r.keyLight.intensity);G.position.set(...r.keyLight.position),C.add(G);let K=console.warn;console.warn=(...e)=>{typeof e[0]==`string`&&e[0].includes(`url access in attributes`)||K(...e)};let de=new pe().parse(Ae);console.warn=K;let fe=new DOMParser().parseFromString(Ae,`image/svg+xml`),q=e=>{let t=e.replace(`#`,``);return[Number.parseInt(t.slice(0,2),16),Number.parseInt(t.slice(2,4),16),Number.parseInt(t.slice(4,6),16)]},J=new Map;for(let e of Array.from(fe.querySelectorAll(`linearGradient`)))J.set(e.id,{x1:Number(e.getAttribute(`x1`)),y1:Number(e.getAttribute(`y1`)),x2:Number(e.getAttribute(`x2`)),y2:Number(e.getAttribute(`y2`)),stops:Array.from(e.querySelectorAll(`stop`)).map(e=>({offset:e.hasAttribute(`offset`)?Number(e.getAttribute(`offset`)):0,color:q(e.getAttribute(`stop-color`)??`#ffffff`),opacity:e.hasAttribute(`stop-opacity`)?Number(e.getAttribute(`stop-opacity`)):1}))});let Y=e=>{let t=e?.match(/url\(#(.+?)\)/)?.[1];return t?J.get(t):void 0},me=(e,t,n)=>{let r=e.x2-e.x1,i=e.y2-e.y1;return((t-e.x1)*r+(n-e.y1)*i)/(r*r+i*i||1)},he=(e,t)=>{let n=Math.max(0,Math.min(1,t)),r=e.stops[0],i=e.stops[e.stops.length-1];for(let t=0;t<e.stops.length-1;t++)if(n>=e.stops[t].offset&&n<=e.stops[t+1].offset){r=e.stops[t],i=e.stops[t+1];break}let a=Math.max(0,Math.min(1,(n-r.offset)/(i.offset-r.offset||1)));return[r.color[0]+(i.color[0]-r.color[0])*a,r.color[1]+(i.color[1]-r.color[1])*a,r.color[2]+(i.color[2]-r.color[2])*a,r.opacity+(i.opacity-r.opacity)*a]},X=(e,t)=>{let n=Y(t);if(n)return e.map(e=>he(n,me(n,e.x,e.y)));let r=t?.startsWith(`#`)?q(t):[40,44,54];return e.map(()=>[r[0],r[1],r[2],1])},ge=e=>{let t=new Uint8Array(e.length*4);e.forEach((e,n)=>{t.set([e[0],e[1],e[2],Math.round(e[3]*255)],n*4)});let n=new O(t,e.length,1,l);
605return n.colorSpace=h,n.minFilter=B,n.magFilter=B,n.wrapS=P,n.generateMipmaps=!1,n.needsUpdate=!0,n},Z=[],ve=[],ye=[],be=[],xe=[],we=[];for(let e of de.paths){let t=e.userData?.style,n=t?.stroke;if(!n||n===`none`)continue;let r=Number(t?.strokeWidth)||1;for(let t of e.subPaths)if(r>=5){let e=t.getSpacedPoints(240);if(e.length<8)continue;Z.push(e),ve.push(n),ye.push(r)}else{let e=t.getSpacedPoints(16);if(e.length<2)continue;be.push(e),xe.push(n),we.push(r)}}let Te=e=>{let t=Y(e),n=t?he(t,.5):null;return n?(.2126*n[0]+.7152*n[1]+.0722*n[2])/255:1},De=Z.map((e,t)=>X(e,ve[t])),Le=ve.map(e=>Te(e)<.2),Re=new Set(o.flat()),ze=[...o];for(let e=0;e<Z.length;e++)Re.has(e)||ze.push([e]);let Be=[],Ve=[],He=[],Ue=[];for(let e of ze){let t=[],n=[],r=!1,i=0;for(let a of e){if(!Z[a])continue;let e=Z[a],o=De[a];if(t.length){let n=t[t.length-1];n.distanceTo(e[e.length-1])<n.distanceTo(e[0])&&(e=[...e].reverse(),o=[...o].reverse())}t=t.concat(e),n=n.concat(o),r||=Le[a],i||=ye[a]}t.length<8||(Be.push(t),Ve.push(n),He.push(i),Ue.push(r))}let We=1/0,Ge=-1/0,Ke=1/0,qe=-1/0;for(let e of Be)for(let t of e)We=Math.min(We,t.x),Ge=Math.max(Ge,t.x),Ke=Math.min(Ke,t.y),qe=Math.max(qe,t.y);let Je=(We+Ge)/2,Ye=(Ke+qe)/2,Xe=Math.SQRT2,Ze=Math.sqrt(6),Qe=Be.map(e=>e.map(e=>{let t=e.x-Je,n=e.y-Ye;return new z((Xe*t+Ze*n)/2,(Ze*n-Xe*t)/2)})),$e=1/0,et=-1/0;for(let e of Qe)for(let t of e)$e=Math.min($e,t.x,t.y),et=Math.max(et,t.x,t.y);let tt=30/(et-$e),nt=Qe.map(e=>e.map(e=>new U(e.x*tt,0,e.y*tt))),rt=e=>{let t=e.x-Je,n=e.y-Ye;return new U((Xe*t+Ze*n)/2*tt,0,(Ze*n-Xe*t)/2*tt)},it=1/0,at=-1/0,ot=1/0,st=-1/0;for(let e of nt)for(let t of e){let e=(t.x-t.z)/Xe,n=(t.x+t.z)/Ze;it=Math.min(it,e),at=Math.max(at,e),ot=Math.min(ot,n),st=Math.max(st,n)}let ct=r.viewPadding;w=Math.max(st-ot,(at-it)/E)*ct,k.top=w/2,k.bottom=-w/2,k.left=-w*E/2,k.right=w*E/2,k.updateProjectionMatrix();let lt=Math.sqrt(Math.sqrt(3))*tt,ut=[],dt=[],ft={value:document.documentElement.dataset.theme===`light`?r.hover.saturateLight:1},pt={value:document.documentElement.dataset.theme===`light`?r.cubeSaturateLight:1},mt=[],ht=q(t.dark),gt=q(t.light),_t=e=>{let t=!1,n=e.map(e=>Math.abs(e[0]-ht[0])<=2&&Math.abs(e[1]-ht[1])<=2&&Math.abs(e[2]-ht[2])<=2?(t=!0,[gt[0],gt[1],gt[2],e[3]]):e);return t?n:e},vt=[];for(let e=0;e<be.length;e++){let t=be[e],n=new ee(t.map(rt),!1,`catmullrom`,.5),r=Math.max(.004,we[e]/2*lt),i=new re(n,Math.max(12,t.length),r,6,!1),a=X(t,xe[e]),o=ge(a),s=new te({map:o,transparent:!0,depthWrite:!1}),c=new D(i,s);c.renderOrder=100,oe.add(c),mt.push(s);let l=_t(a);l!==a&&vt.push({mat:s,dark:o,light:ge(l)})}let yt=new U(0,1,0),bt=r.cubeColors,xt=[],St={tBackdrop:{value:null},uResolution:{value:new z(1,1)}},Ct={value:0},wt={value:r.haloGlow.cubeGlow},Tt=-1,Et=1/0;Be.forEach((e,t)=>{if(!Ue[t])return;let n=e.reduce((e,t)=>e+t.y,0)/e.length;n<Et&&(Et=n,Tt=t)});let Dt=e=>{let t=0;for(let n=2;n<e.length;n++){let r=e[n-1].x-e[n-2].x,i=e[n-1].z-e[n-2].z,a=e[n].x-e[n-1].x,o=e[n].z-e[n-1].z,s=Math.hypot(r,i),c=Math.hypot(a,o);s<1e-6||c<1e-6||(t+=Math.acos(Math.max(-1,Math.min(1,(r*a+i*o)/(s*c)))))}return t},Ot=-1,kt=-1;nt.forEach((e,t)=>{let n=Dt(e);n>kt&&(kt=n,Ot=t)});let At=nt.map((e,t)=>t).filter(e=>e%3==0);Ot>=0&&At.length>2&&(At[2]=Ot);let jt=s??At;nt.forEach((t,n)=>{if(t.length<4)return;let i=n===Tt,a=i?10499071:bt[Math.floor(n/3)%bt.length],o=(t[0].x-t[0].z)/Xe>(t[t.length-1].x-t[t.length-1].z)/Xe,s=o?[...t].reverse():t,c=o?[...Ve[n]].reverse():Ve[n],l=ge(c),u=_t(c),d=new ee(s,!1,`catmullrom`,.5),f=d.getLength(),p=new re(d,400,He[n]/2*lt,10,!1),m=new te({map:l,transparent:!0,depthWrite:!1}),h={value:0};m.onBeforeCompile=e=>{e.uniforms.uHover=h,e.uniforms.uSat=ft,e.fragmentShader=`uniform float uHover; 606 uniform float uSat; 607 ${e.fragmentShader}`.replace(`#include <opaque_fragment>`,`#include <opaque_fragment> 608 { 609 float l = dot(gl_FragColor.rgb, vec3(0.2126, 0.7152, 0.0722)); 610 vec3 sat = clamp(l + (gl_FragColor.rgb - l) * uSat, 0.0, 1.0); 611 gl_FragColor.rgb = mix(gl_FragColor.rgb, sat, uHover); 612 }`)};let g=new D(p,m);g.scale.set(1,.04,1),g.renderOrder=n,g.userData.railIdx=n,oe.add(g),ut.push(g),dt.push({mesh:g,mat:m,idx:n,dim:1,bright:1,glow:0,uHover:h}),u!==c&&vt.push({mat:m,dark:l,light:ge(u)});let _=jt.indexOf(n);if(_<0&&!i||f<4)return;let v=_>=0?_:99,y=e[v]??{},b=He[n]*lt/.5,x=2.4*b,S=x/2,C=.25*b,w=Math.min(y.fade??r.cubeFade,Math.max(.5,(f-x)*.4)),E=y.delay??r.cubeFadeDelay,O=Math.max(y.exit??r.cubeExit,E+w+3),k=s.map(e=>new U(e.x,C+r.cubeLift,e.z)),A=k.length,j=new U().subVectors(k[0],k[1]).normalize(),M=new U().subVectors(k[A-1],k[A-2]).normalize(),N=Math.max(k[0].distanceTo(k[1]),.05),P=Math.max(k[A-1].distanceTo(k[A-2]),.05),F=[],I=[];for(let e=N;e<=O;e+=N)F.push(k[0].clone().addScaledVector(j,e));for(let e=P;e<=O;e+=P)I.push(k[A-1].clone().addScaledVector(M,e));F.reverse();let L=new ee([...F,...k,...I],!1,`catmullrom`,.5),R=L.getLength(),z=O/R,B=(O+f)/R,V=w/R;L.computeFrenetFrames=e=>{let t=[],n=[],r=[];for(let i=0;i<=e;i++){let a=L.getTangentAt(i/e,new U);t.push(a),n.push(new U().crossVectors(yt,a).normalize()),r.push(yt.clone())}return{tangents:t,normals:n,binormals:r}};let H=new ie(x,C*2,C*2,64,1,1),ne=H.groups[5],W=H.getIndex();if(W&&ne){let e=Array.from(W.array);e.splice(ne.start,ne.count),H.setIndex(e),H.clearGroups()}let se=H.attributes.position,G=H.attributes.uv;
612for(let e=0;e<se.count;e++)G.setX(e,(se.getX(e)+S)/x);G.needsUpdate=!0;let K=new _e(new D(H,new ae({color:new T(a),metalness:0,roughness:.2,transmission:0,ior:1.35,specularIntensity:1,envMapIntensity:1})));K.updateCurve(0,L),oe.add(K.object3D),K.object3D.layers.enable(1);let ce=K.object3D.material;ce.transparent=!0;let le={value:1},ue={value:0},de=ce.onBeforeCompile;ce.onBeforeCompile=(e,t)=>{de.call(ce,e,t),e.uniforms.tBackdrop=St.tBackdrop,e.uniforms.uResolution=St.uResolution,e.uniforms.uEntry=le,e.uniforms.uExit=ue,e.uniforms.uGlow=Ct,e.uniforms.uGlowColor={value:new T(a).convertSRGBToLinear()},e.uniforms.uCubeGlow=wt,e.uniforms.uSat=pt,e.vertexShader=Fe(e.vertexShader),e.fragmentShader=Ie(e.fragmentShader,{boxHalf:S,boxLen:x,boxCrossHalf:C,cubeScale:b})},ce.needsUpdate=!0;let fe=K.uniforms,pe=fe.spineLength.value,q=fe.spineOffset.value/pe,J=S/pe,Y=E/R,me=z+J,he=B-J+Y,X=me-V,Z=he+V,ve=y.speed??r.cubeSpeed.base+v*.37%1*r.cubeSpeed.jitter,ye=y.periodFrames?(Z-X)/y.periodFrames:ve/R,be=X+(y.phase??v*.37%1)*(Z-X);K.uniforms.pathOffset.value=be-q,xt.push({flow:K,material:ce,baseOffset:q,minP:X,maxP:Z,entryEnd:me,exitStart:he,uEntry:le,uExit:ue,p:be,speed:ye,railIdx:n,dim:1})});let Mt=e=>{for(let t of vt)t.mat.map=e?t.light:t.dark,t.mat.needsUpdate=!0};Mt(document.documentElement.dataset.theme===`light`);let Nt=new W(_,y,{samples:5,type:v}),Q=new Ee(A,Nt);Q.setPixelRatio(S),Q.setSize(_,y),Q.addPass(new ke(C,k));let Pt=new Ce({uniforms:{tDiffuse:{value:null},tGlow:{value:null},uStrength:{value:r.haloGlow.strength},uLight:{value:+(document.documentElement.dataset.theme===`light`)}},vertexShader:Ne,fragmentShader:Pe});Q.addPass(Pt),Q.addPass(new Oe);let Ft=r.backdropDownsample,It=()=>Math.max(2,Math.floor(c.clientWidth*S/Ft)),Lt=()=>Math.max(2,Math.floor(c.clientHeight*S/Ft)),Rt={type:v,minFilter:B,magFilter:B},zt=new W(It(),Lt(),Rt),Bt=new W(It(),Lt(),{...Rt,depthBuffer:!1}),Vt=new W(It(),Lt(),{...Rt,depthBuffer:!1});St.tBackdrop.value=Vt.texture,St.uResolution.value.set(_*S,y*S);let Ht=new u({uniforms:{tDiffuse:{value:null},uDir:{value:new z(1,0)},uTexel:{value:new z(1/It(),1/Lt())},uRadius:{value:r.blurRadius}},depthTest:!1,depthWrite:!1,vertexShader:je,fragmentShader:Me}),Ut=new Se(Ht),Wt=()=>{for(let e of xt)e.flow.object3D.visible=!1;A.setRenderTarget(zt),A.setClearColor(I,1),A.clear(),A.render(C,k),Ht.uniforms.tDiffuse.value=zt.texture,Ht.uniforms.uDir.value.set(1,0),A.setRenderTarget(Bt),Ut.render(A),Ht.uniforms.tDiffuse.value=Bt.texture,Ht.uniforms.uDir.value.set(0,1),A.setRenderTarget(Vt),Ut.render(A);for(let e of xt)e.flow.object3D.visible=!0;A.setRenderTarget(null),A.setClearColor(I,1)},Gt=r.haloGlow.downsample,Kt=()=>Math.max(2,Math.floor(c.clientWidth*S/Gt)),$=()=>Math.max(2,Math.floor(c.clientHeight*S/Gt)),qt=new W(Kt(),$(),Rt),Jt=new W(Kt(),$(),{...Rt,depthBuffer:!1}),Yt=new W(Kt(),$(),{...Rt,depthBuffer:!1}),Xt=new u({uniforms:{tDiffuse:{value:null},uDir:{value:new z(1,0)},uTexel:{value:new z(1/Kt(),1/$())},uRadius:{value:r.haloGlow.radius}},depthTest:!1,depthWrite:!1,vertexShader:je,fragmentShader:Me}),Zt=new Se(Xt);Pt.uniforms.tGlow.value=Yt.texture;let Qt=()=>{Ct.value=1;for(let e of dt)e.glow>.001&&e.mat.color.setScalar(e.bright*r.hover.glow*e.glow);k.layers.set(1),A.setRenderTarget(qt),A.setClearColor(0,1),A.clear(),A.render(C,k),k.layers.set(0);for(let e of dt)e.glow>.001&&e.mat.color.setScalar(e.bright);Ct.value=0;let e=qt.texture;for(let t=0;t<r.haloGlow.iterations;t++)Xt.uniforms.tDiffuse.value=e,Xt.uniforms.uDir.value.set(1,0),A.setRenderTarget(Jt),Zt.render(A),Xt.uniforms.tDiffuse.value=Jt.texture,Xt.uniforms.uDir.value.set(0,1),A.setRenderTarget(Yt),Zt.render(A),e=Yt.texture;A.setRenderTarget(null),A.setClearColor(I,1)},$t=()=>{if(p||j.failed)return;let e=c.clientWidth,t=c.clientHeight,n=e/t;k.left=-w*n/2,k.right=w*n/2,k.top=w/2,k.bottom=-w/2,k.updateProjectionMatrix(),A.setSize(e,t),Q.setSize(e,t),zt.setSize(It(),Lt()),Bt.setSize(It(),Lt()),Vt.setSize(It(),Lt()),Ht.uniforms.uTexel.value.set(1/It(),1/Lt()),qt.setSize(Kt(),$()),Jt.setSize(Kt(),$()),Yt.setSize(Kt(),$()),Xt.uniforms.uTexel.value.set(1/Kt(),1/$()),St.uResolution.value.set(e*S,t*S),Wt()};window.addEventListener(`resize`,$t);let en=0,tn=!1,nn=()=>{tn||p||j.failed||(tn=!0,d())},rn=-1,an=new Set,on=new Set,sn=new Set(xt.map(e=>e.railIdx)),cn=1,ln=1,un=1e3/60,dn=0,fn=0,pn=document.documentElement.dataset.theme,mn=e=>
612{if(p||j.failed||(en=requestAnimationFrame(mn),dn===0&&(dn=e),fn+=e-dn,dn=e,fn<un))return;fn=Math.min(fn-un,un);let t=document.documentElement.dataset.theme;if(t!==pn){pn=t;let e=t===`light`;L(),Mt(e),Pt.uniforms.uLight.value=+!!e,ft.value=e?r.hover.saturateLight:1,pt.value=e?r.cubeSaturateLight:1,Wt()}let n=an.size>0,i=t===`light`?r.hover.dimLight:r.hover.dim,a=t===`light`?r.hover.brightnessLight:r.hover.brightness;ln+=((n?r.hover.cubeSlow:1)-ln)*r.hover.lerp;for(let e of xt){e.p+=e.speed*ln,e.p>e.maxP&&(e.p-=e.maxP-e.minP),e.flow.uniforms.pathOffset.value=e.p-e.baseOffset,e.uEntry.value=Math.max(0,Math.min(1,(e.p-e.minP)/(e.entryEnd-e.minP))),e.uExit.value=Math.max(0,Math.min(1,(e.p-e.exitStart)/(e.maxP-e.exitStart)));let t=!n||on.has(e.railIdx);e.dim+=((t?1:i)-e.dim)*r.hover.lerp,e.material.opacity=e.dim}for(let e of dt){let t=an.has(e.idx),o=!n||t?1:i,s=n&&t?a:1;e.dim+=(o-e.dim)*r.hover.lerp,e.bright+=(s-e.bright)*r.hover.lerp,e.glow+=(+!!t-e.glow)*r.hover.lerp,e.mat.opacity=e.dim,e.mat.color.setScalar(e.bright),e.uHover.value=e.glow,e.glow>.001?e.mesh.layers.enable(1):e.mesh.layers.disable(1)}cn+=((n?i:1)-cn)*r.hover.lerp;for(let e of mt)e.opacity=cn;Qt(),Q.render(),nn()},hn=!1,gn=()=>{hn||p||j.failed||(hn=!0,dn=0,fn=0,en=requestAnimationFrame(mn))},_n=()=>{hn=!1,cancelAnimationFrame(en),Sn(-1),f?.(null)};Wt();let vn;m?(Qt(),Q.render(),nn()):(vn=new IntersectionObserver(e=>{e[0]?.isIntersecting?gn():_n()},{rootMargin:`200px`}),vn.observe(c));let yn=new b,bn=new z,xn=c.closest(`section`),Sn=e=>{if(e!==rn){rn=e,an=new Set(e>=0?i.find(t=>t.includes(e))??[e]:[]),on=new Set;for(let e of an){let t=n[e];if(t)for(let e of t)on.add(e);else sn.has(e)&&on.add(e)}}},Cn=new U,wn=(e,t)=>{let n=Cn.copy(e).project(k);return{x:(n.x*.5+.5)*t.width,y:(-n.y*.5+.5)*t.height}},Tn=(e,t)=>{let n=nt[e],r=n[0],i=1/0;for(let e of n){let n=(e.x-t.x)**2+(e.z-t.z)**2;n<i&&(i=n,r=e)}return Cn.set(r.x,.3,r.z)},En=e=>{if(!hn||j.failed)return;let t=A.domElement.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;if(n<0||r<0||n>t.width||r>t.height){Sn(-1),f?.(null);return}let i=document.elementFromPoint(e.clientX,e.clientY);if(xn&&(!i||!xn.contains(i))){Sn(-1),f?.(null);return}bn.set(n/t.width*2-1,-(r/t.height)*2+1),yn.setFromCamera(bn,k);let o=yn.intersectObjects(ut,!1),s;for(let e of o)a.includes(e.object.userData.railIdx)||(!s||e.object.renderOrder>s.object.renderOrder)&&(s=e);if(!s){Sn(-1),f?.(null);return}let c=s.object.userData.railIdx;Sn(c);let l=wn(Tn(c,s.point),t);f?.({idx:c,x:l.x,y:l.y})};return m||window.addEventListener(`pointermove`,En),()=>{p=!0,j.dispose(),vn?.disconnect(),window.removeEventListener(`pointermove`,En),cancelAnimationFrame(en),window.removeEventListener(`resize`,$t),Ut.dispose(),Ht.dispose(),Zt.dispose(),Xt.dispose(),zt.dispose(),Bt.dispose(),Vt.dispose(),qt.dispose(),Jt.dispose(),Yt.dispose();for(let e of vt)e.light.dispose();Q.dispose(),H.dispose(),V.dispose(),A.dispose(),A.forceContextLoss(),A.domElement.remove()}}export{Le as createRailsScene}; 613//# sourceMappingURL=rails-scene-B7T_yXUP.js.map 614//# chunkId=01a0d3ec-edd3-72e2-b47a-d7c7de674bfc 615//# debugId=3f431e2f-c564-5369-aed2-819851c9a45e
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.